blob: a904729145cc6aa03e593a9586e5b1c7fc0be3cf [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: backend/backend.proto
package backend
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type LocalBackend struct {
// address of exec server. default "exec-server:5050"
ExecAddr string `protobuf:"bytes,1,opt,name=exec_addr,json=execAddr,proto3" json:"exec_addr,omitempty"`
// address of file server. default "file-server:5050"
FileAddr string `protobuf:"bytes,2,opt,name=file_addr,json=fileAddr,proto3" json:"file_addr,omitempty"`
// address of execlog server. default "execlog-server:5050"
ExeclogAddr string `protobuf:"bytes,3,opt,name=execlog_addr,json=execlogAddr,proto3" json:"execlog_addr,omitempty"`
EnableBytestream bool `protobuf:"varint,4,opt,name=enable_bytestream,json=enableBytestream,proto3" json:"enable_bytestream,omitempty"`
TraceOption *LocalBackend_TraceOption `protobuf:"bytes,5,opt,name=trace_option,json=traceOption,proto3" json:"trace_option,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *LocalBackend) Reset() { *m = LocalBackend{} }
func (m *LocalBackend) String() string { return proto.CompactTextString(m) }
func (*LocalBackend) ProtoMessage() {}
func (*LocalBackend) Descriptor() ([]byte, []int) {
return fileDescriptor_b81549028379a959, []int{0}
}
func (m *LocalBackend) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LocalBackend.Unmarshal(m, b)
}
func (m *LocalBackend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LocalBackend.Marshal(b, m, deterministic)
}
func (m *LocalBackend) XXX_Merge(src proto.Message) {
xxx_messageInfo_LocalBackend.Merge(m, src)
}
func (m *LocalBackend) XXX_Size() int {
return xxx_messageInfo_LocalBackend.Size(m)
}
func (m *LocalBackend) XXX_DiscardUnknown() {
xxx_messageInfo_LocalBackend.DiscardUnknown(m)
}
var xxx_messageInfo_LocalBackend proto.InternalMessageInfo
func (m *LocalBackend) GetExecAddr() string {
if m != nil {
return m.ExecAddr
}
return ""
}
func (m *LocalBackend) GetFileAddr() string {
if m != nil {
return m.FileAddr
}
return ""
}
func (m *LocalBackend) GetExeclogAddr() string {
if m != nil {
return m.ExeclogAddr
}
return ""
}
func (m *LocalBackend) GetEnableBytestream() bool {
if m != nil {
return m.EnableBytestream
}
return false
}
func (m *LocalBackend) GetTraceOption() *LocalBackend_TraceOption {
if m != nil {
return m.TraceOption
}
return nil
}
// attributes for cloud tracing when handling this backend request.
type LocalBackend_TraceOption struct {
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *LocalBackend_TraceOption) Reset() { *m = LocalBackend_TraceOption{} }
func (m *LocalBackend_TraceOption) String() string { return proto.CompactTextString(m) }
func (*LocalBackend_TraceOption) ProtoMessage() {}
func (*LocalBackend_TraceOption) Descriptor() ([]byte, []int) {
return fileDescriptor_b81549028379a959, []int{0, 0}
}
func (m *LocalBackend_TraceOption) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LocalBackend_TraceOption.Unmarshal(m, b)
}
func (m *LocalBackend_TraceOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LocalBackend_TraceOption.Marshal(b, m, deterministic)
}
func (m *LocalBackend_TraceOption) XXX_Merge(src proto.Message) {
xxx_messageInfo_LocalBackend_TraceOption.Merge(m, src)
}
func (m *LocalBackend_TraceOption) XXX_Size() int {
return xxx_messageInfo_LocalBackend_TraceOption.Size(m)
}
func (m *LocalBackend_TraceOption) XXX_DiscardUnknown() {
xxx_messageInfo_LocalBackend_TraceOption.DiscardUnknown(m)
}
var xxx_messageInfo_LocalBackend_TraceOption proto.InternalMessageInfo
func (m *LocalBackend_TraceOption) GetNamespace() string {
if m != nil {
return m.Namespace
}
return ""
}
func (m *LocalBackend_TraceOption) GetCluster() string {
if m != nil {
return m.Cluster
}
return ""
}
type HttpRpcBackend struct {
// target URL (scheme + host).
// request query will be preserved.
// e.g. "https://clients5.google.com/cxx-compiler-service"
Target string `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *HttpRpcBackend) Reset() { *m = HttpRpcBackend{} }
func (m *HttpRpcBackend) String() string { return proto.CompactTextString(m) }
func (*HttpRpcBackend) ProtoMessage() {}
func (*HttpRpcBackend) Descriptor() ([]byte, []int) {
return fileDescriptor_b81549028379a959, []int{1}
}
func (m *HttpRpcBackend) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HttpRpcBackend.Unmarshal(m, b)
}
func (m *HttpRpcBackend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_HttpRpcBackend.Marshal(b, m, deterministic)
}
func (m *HttpRpcBackend) XXX_Merge(src proto.Message) {
xxx_messageInfo_HttpRpcBackend.Merge(m, src)
}
func (m *HttpRpcBackend) XXX_Size() int {
return xxx_messageInfo_HttpRpcBackend.Size(m)
}
func (m *HttpRpcBackend) XXX_DiscardUnknown() {
xxx_messageInfo_HttpRpcBackend.DiscardUnknown(m)
}
var xxx_messageInfo_HttpRpcBackend proto.InternalMessageInfo
func (m *HttpRpcBackend) GetTarget() string {
if m != nil {
return m.Target
}
return ""
}
type RemoteBackend struct {
// target address.
// e.g. "goma.endpoints.goma-dev.cloud.goog:443"
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// api_key to access the backend.
// it is used to read api_key value in api-keys volume.
ApiKeyName string `protobuf:"bytes,2,opt,name=api_key_name,json=apiKeyName,proto3" json:"api_key_name,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RemoteBackend) Reset() { *m = RemoteBackend{} }
func (m *RemoteBackend) String() string { return proto.CompactTextString(m) }
func (*RemoteBackend) ProtoMessage() {}
func (*RemoteBackend) Descriptor() ([]byte, []int) {
return fileDescriptor_b81549028379a959, []int{2}
}
func (m *RemoteBackend) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoteBackend.Unmarshal(m, b)
}
func (m *RemoteBackend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RemoteBackend.Marshal(b, m, deterministic)
}
func (m *RemoteBackend) XXX_Merge(src proto.Message) {
xxx_messageInfo_RemoteBackend.Merge(m, src)
}
func (m *RemoteBackend) XXX_Size() int {
return xxx_messageInfo_RemoteBackend.Size(m)
}
func (m *RemoteBackend) XXX_DiscardUnknown() {
xxx_messageInfo_RemoteBackend.DiscardUnknown(m)
}
var xxx_messageInfo_RemoteBackend proto.InternalMessageInfo
func (m *RemoteBackend) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
func (m *RemoteBackend) GetApiKeyName() string {
if m != nil {
return m.ApiKeyName
}
return ""
}
type BackendMapping struct {
// id of group that uses the backend.
// group id matches with group id in ACL if not empty.
// empty group id will be used as default backend.
GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
// backend selection by query parameters, encoded form sorted by key
// as same as https://golang.org/pkg/net/url/#Values.Encode
// if specified, this backend will be used if all query parameters
// matches with query_params.
// if query_params is empty, any requests will match.
//
// it is not used for default backend (empty group id). i.e.
// if group_id is empty, query_params must be empty.
QueryParams string `protobuf:"bytes,4,opt,name=query_params,json=queryParams,proto3" json:"query_params,omitempty"`
// backend for the group.
//
// Types that are valid to be assigned to Backend:
// *BackendMapping_HttpRpc
// *BackendMapping_Remote
Backend isBackendMapping_Backend `protobuf_oneof:"backend"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BackendMapping) Reset() { *m = BackendMapping{} }
func (m *BackendMapping) String() string { return proto.CompactTextString(m) }
func (*BackendMapping) ProtoMessage() {}
func (*BackendMapping) Descriptor() ([]byte, []int) {
return fileDescriptor_b81549028379a959, []int{3}
}
func (m *BackendMapping) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BackendMapping.Unmarshal(m, b)
}
func (m *BackendMapping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BackendMapping.Marshal(b, m, deterministic)
}
func (m *BackendMapping) XXX_Merge(src proto.Message) {
xxx_messageInfo_BackendMapping.Merge(m, src)
}
func (m *BackendMapping) XXX_Size() int {
return xxx_messageInfo_BackendMapping.Size(m)
}
func (m *BackendMapping) XXX_DiscardUnknown() {
xxx_messageInfo_BackendMapping.DiscardUnknown(m)
}
var xxx_messageInfo_BackendMapping proto.InternalMessageInfo
func (m *BackendMapping) GetGroupId() string {
if m != nil {
return m.GroupId
}
return ""
}
func (m *BackendMapping) GetQueryParams() string {
if m != nil {
return m.QueryParams
}
return ""
}
type isBackendMapping_Backend interface {
isBackendMapping_Backend()
}
type BackendMapping_HttpRpc struct {
HttpRpc *HttpRpcBackend `protobuf:"bytes,2,opt,name=http_rpc,json=httpRpc,proto3,oneof"`
}
type BackendMapping_Remote struct {
Remote *RemoteBackend `protobuf:"bytes,3,opt,name=remote,proto3,oneof"`
}
func (*BackendMapping_HttpRpc) isBackendMapping_Backend() {}
func (*BackendMapping_Remote) isBackendMapping_Backend() {}
func (m *BackendMapping) GetBackend() isBackendMapping_Backend {
if m != nil {
return m.Backend
}
return nil
}
func (m *BackendMapping) GetHttpRpc() *HttpRpcBackend {
if x, ok := m.GetBackend().(*BackendMapping_HttpRpc); ok {
return x.HttpRpc
}
return nil
}
func (m *BackendMapping) GetRemote() *RemoteBackend {
if x, ok := m.GetBackend().(*BackendMapping_Remote); ok {
return x.Remote
}
return nil
}
// XXX_OneofWrappers is for the internal use of the proto package.
func (*BackendMapping) XXX_OneofWrappers() []interface{} {
return []interface{}{
(*BackendMapping_HttpRpc)(nil),
(*BackendMapping_Remote)(nil),
}
}
type BackendRule struct {
Backends []*BackendMapping `protobuf:"bytes,1,rep,name=backends,proto3" json:"backends,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BackendRule) Reset() { *m = BackendRule{} }
func (m *BackendRule) String() string { return proto.CompactTextString(m) }
func (*BackendRule) ProtoMessage() {}
func (*BackendRule) Descriptor() ([]byte, []int) {
return fileDescriptor_b81549028379a959, []int{4}
}
func (m *BackendRule) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BackendRule.Unmarshal(m, b)
}
func (m *BackendRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BackendRule.Marshal(b, m, deterministic)
}
func (m *BackendRule) XXX_Merge(src proto.Message) {
xxx_messageInfo_BackendRule.Merge(m, src)
}
func (m *BackendRule) XXX_Size() int {
return xxx_messageInfo_BackendRule.Size(m)
}
func (m *BackendRule) XXX_DiscardUnknown() {
xxx_messageInfo_BackendRule.DiscardUnknown(m)
}
var xxx_messageInfo_BackendRule proto.InternalMessageInfo
func (m *BackendRule) GetBackends() []*BackendMapping {
if m != nil {
return m.Backends
}
return nil
}
type BackendConfig struct {
// Types that are valid to be assigned to Backend:
// *BackendConfig_Local
// *BackendConfig_HttpRpc
// *BackendConfig_Remote
// *BackendConfig_Rule
Backend isBackendConfig_Backend `protobuf_oneof:"backend"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BackendConfig) Reset() { *m = BackendConfig{} }
func (m *BackendConfig) String() string { return proto.CompactTextString(m) }
func (*BackendConfig) ProtoMessage() {}
func (*BackendConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_b81549028379a959, []int{5}
}
func (m *BackendConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BackendConfig.Unmarshal(m, b)
}
func (m *BackendConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BackendConfig.Marshal(b, m, deterministic)
}
func (m *BackendConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_BackendConfig.Merge(m, src)
}
func (m *BackendConfig) XXX_Size() int {
return xxx_messageInfo_BackendConfig.Size(m)
}
func (m *BackendConfig) XXX_DiscardUnknown() {
xxx_messageInfo_BackendConfig.DiscardUnknown(m)
}
var xxx_messageInfo_BackendConfig proto.InternalMessageInfo
type isBackendConfig_Backend interface {
isBackendConfig_Backend()
}
type BackendConfig_Local struct {
Local *LocalBackend `protobuf:"bytes,1,opt,name=local,proto3,oneof"`
}
type BackendConfig_HttpRpc struct {
HttpRpc *HttpRpcBackend `protobuf:"bytes,2,opt,name=http_rpc,json=httpRpc,proto3,oneof"`
}
type BackendConfig_Remote struct {
Remote *RemoteBackend `protobuf:"bytes,3,opt,name=remote,proto3,oneof"`
}
type BackendConfig_Rule struct {
Rule *BackendRule `protobuf:"bytes,4,opt,name=rule,proto3,oneof"`
}
func (*BackendConfig_Local) isBackendConfig_Backend() {}
func (*BackendConfig_HttpRpc) isBackendConfig_Backend() {}
func (*BackendConfig_Remote) isBackendConfig_Backend() {}
func (*BackendConfig_Rule) isBackendConfig_Backend() {}
func (m *BackendConfig) GetBackend() isBackendConfig_Backend {
if m != nil {
return m.Backend
}
return nil
}
func (m *BackendConfig) GetLocal() *LocalBackend {
if x, ok := m.GetBackend().(*BackendConfig_Local); ok {
return x.Local
}
return nil
}
func (m *BackendConfig) GetHttpRpc() *HttpRpcBackend {
if x, ok := m.GetBackend().(*BackendConfig_HttpRpc); ok {
return x.HttpRpc
}
return nil
}
func (m *BackendConfig) GetRemote() *RemoteBackend {
if x, ok := m.GetBackend().(*BackendConfig_Remote); ok {
return x.Remote
}
return nil
}
func (m *BackendConfig) GetRule() *BackendRule {
if x, ok := m.GetBackend().(*BackendConfig_Rule); ok {
return x.Rule
}
return nil
}
// XXX_OneofWrappers is for the internal use of the proto package.
func (*BackendConfig) XXX_OneofWrappers() []interface{} {
return []interface{}{
(*BackendConfig_Local)(nil),
(*BackendConfig_HttpRpc)(nil),
(*BackendConfig_Remote)(nil),
(*BackendConfig_Rule)(nil),
}
}
func init() {
proto.RegisterType((*LocalBackend)(nil), "backend.LocalBackend")
proto.RegisterType((*LocalBackend_TraceOption)(nil), "backend.LocalBackend.TraceOption")
proto.RegisterType((*HttpRpcBackend)(nil), "backend.HttpRpcBackend")
proto.RegisterType((*RemoteBackend)(nil), "backend.RemoteBackend")
proto.RegisterType((*BackendMapping)(nil), "backend.BackendMapping")
proto.RegisterType((*BackendRule)(nil), "backend.BackendRule")
proto.RegisterType((*BackendConfig)(nil), "backend.BackendConfig")
}
func init() { proto.RegisterFile("backend/backend.proto", fileDescriptor_b81549028379a959) }
var fileDescriptor_b81549028379a959 = []byte{
// 466 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x53, 0xdb, 0x6e, 0xd3, 0x30,
0x18, 0x6e, 0x76, 0x68, 0x93, 0xdf, 0xdd, 0x04, 0x16, 0x1b, 0xe1, 0x70, 0xd1, 0xe5, 0xaa, 0x02,
0x51, 0x50, 0xc6, 0x0b, 0x50, 0x40, 0x0a, 0x1a, 0x27, 0x59, 0xdc, 0x47, 0x6e, 0xf2, 0x2f, 0x8b,
0x96, 0xc4, 0xc6, 0x71, 0x24, 0xfa, 0x40, 0x3c, 0x08, 0x0f, 0xc2, 0xbb, 0x20, 0x3b, 0x4e, 0xd6,
0x22, 0xae, 0xb9, 0xaa, 0xbe, 0x43, 0xed, 0xff, 0xfb, 0xfc, 0x07, 0xce, 0x36, 0x3c, 0xbb, 0xc5,
0x26, 0x7f, 0xe9, 0x7e, 0x57, 0x52, 0x09, 0x2d, 0xe8, 0xcc, 0xc1, 0xe8, 0xe7, 0x01, 0xcc, 0x3f,
0x8a, 0x8c, 0x57, 0xeb, 0x9e, 0xa0, 0x4f, 0x20, 0xc0, 0x1f, 0x98, 0xa5, 0x3c, 0xcf, 0x55, 0xe8,
0x2d, 0xbc, 0x65, 0xc0, 0x7c, 0x43, 0xbc, 0xc9, 0x73, 0x65, 0xc4, 0xeb, 0xb2, 0xc2, 0x5e, 0x3c,
0xe8, 0x45, 0x43, 0x58, 0xf1, 0x02, 0xe6, 0xc6, 0x58, 0x89, 0xa2, 0xd7, 0x0f, 0xad, 0x4e, 0x1c,
0x67, 0x2d, 0xcf, 0xe1, 0x3e, 0x36, 0x7c, 0x53, 0x61, 0xba, 0xd9, 0x6a, 0x6c, 0xb5, 0x42, 0x5e,
0x87, 0x47, 0x0b, 0x6f, 0xe9, 0xb3, 0x7b, 0xbd, 0xb0, 0x1e, 0x79, 0xfa, 0x0e, 0xe6, 0x5a, 0xf1,
0x0c, 0x53, 0x21, 0x75, 0x29, 0x9a, 0xf0, 0x78, 0xe1, 0x2d, 0x49, 0x7c, 0xb1, 0x1a, 0x92, 0xec,
0x8e, 0xbd, 0xfa, 0x66, 0x9c, 0x5f, 0xac, 0x91, 0x11, 0x7d, 0x07, 0x1e, 0xbf, 0x07, 0xb2, 0xa3,
0xd1, 0xa7, 0x10, 0x34, 0xbc, 0xc6, 0x56, 0xf2, 0x0c, 0x5d, 0xbc, 0x3b, 0x82, 0x86, 0x30, 0xcb,
0xaa, 0xae, 0xd5, 0x38, 0xa4, 0x1b, 0x60, 0xb4, 0x84, 0xd3, 0x44, 0x6b, 0xc9, 0x64, 0x36, 0x14,
0x75, 0x0e, 0x53, 0xcd, 0x55, 0x81, 0xda, 0x1d, 0xe3, 0x50, 0x74, 0x05, 0x27, 0x0c, 0x6b, 0xa1,
0x71, 0x30, 0x86, 0x30, 0x33, 0x7d, 0x60, 0xdb, 0x3a, 0xe7, 0x00, 0xe9, 0x02, 0xe6, 0x5c, 0x96,
0xe9, 0x2d, 0x6e, 0x53, 0x33, 0x83, 0xbb, 0x13, 0xb8, 0x2c, 0xaf, 0x70, 0xfb, 0x99, 0xd7, 0x18,
0xfd, 0xf2, 0xe0, 0xd4, 0x9d, 0xf3, 0x89, 0x4b, 0x59, 0x36, 0x05, 0x7d, 0x04, 0x7e, 0xa1, 0x44,
0x27, 0xd3, 0x32, 0x1f, 0xce, 0xb3, 0xf8, 0x43, 0x6e, 0x5e, 0xe0, 0x7b, 0x87, 0x6a, 0x9b, 0x4a,
0xae, 0x78, 0xdd, 0xda, 0x66, 0x03, 0x46, 0x2c, 0xf7, 0xd5, 0x52, 0xf4, 0x35, 0xf8, 0x37, 0x5a,
0xcb, 0x54, 0xc9, 0xcc, 0x5e, 0x47, 0xe2, 0x87, 0x63, 0xa1, 0xfb, 0x01, 0x93, 0x09, 0x9b, 0xdd,
0xf4, 0x0c, 0x7d, 0x05, 0x53, 0x65, 0x33, 0xd9, 0x47, 0x25, 0xf1, 0xf9, 0xf8, 0x9f, 0xbd, 0xa8,
0xc9, 0x84, 0x39, 0xdf, 0x3a, 0x80, 0x71, 0xc5, 0xd6, 0x40, 0x9c, 0xce, 0xba, 0x0a, 0xe9, 0x25,
0xf8, 0x4e, 0x31, 0x7d, 0x1c, 0xee, 0x4d, 0xb0, 0x1f, 0x95, 0x8d, 0xc6, 0xe8, 0xb7, 0x07, 0x27,
0x4e, 0x7c, 0x2b, 0x9a, 0xeb, 0xb2, 0xa0, 0x2f, 0xe0, 0xb8, 0x32, 0x0b, 0x60, 0x3b, 0x20, 0xf1,
0xd9, 0x3f, 0xd7, 0x22, 0x99, 0xb0, 0xde, 0xf5, 0xbf, 0x72, 0xd3, 0x67, 0x70, 0xa4, 0xba, 0x0a,
0x6d, 0xf5, 0x24, 0x7e, 0xf0, 0x77, 0x32, 0xd3, 0x40, 0x32, 0x61, 0xd6, 0xb3, 0xd3, 0xd1, 0x66,
0x6a, 0x3f, 0xcb, 0xcb, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x6d, 0x46, 0xb2, 0xaf, 0x03,
0x00, 0x00,
}