// Code generated by protoc-gen-go. DO NOT EDIT. // source: aiot_common.proto package aiot 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 // 协议格式: // | int32 | | enum int32 | | int32 | | []byte | | enum int32 | | enum int32 | | []byte | | []byte | // ----------- -------------- -------------- --------------------------------------------------- ---------------- ---------------- ------------------------ -------------- // length receiver senderId deviceProto msgType reqType msgIdProto data // 数据包长度 接受者身份 发送者ID 设备信息 消息类型 请求类型 消息ID 消息体 // 4byte // {| string | | string | | string |} {| string | | string |} // ---------------- ------------------ --------------- ------------ ----------- // clusterId masterDeviceId DeviceIds msgId PreMsgId // 集群ID 集群Master设备ID 消息指向的设备ID 消息ID 原始消息ID // 消息接收者 type RECEIVER int32 const ( // 发送给saas RECEIVER_TO_SAAS RECEIVER = 0 // 发送给集群master RECEIVER_TO_MASTER RECEIVER = 1 // 发送给集群全部成员 RECEIVER_TO_CLUSTER RECEIVER = 2 // 发送给集群某一个节点 RECEIVER_TO_NODE RECEIVER = 3 // 发送给集群中部分节点 RECEIVER_TO_NODE_LIST RECEIVER = 4 ) var RECEIVER_name = map[int32]string{ 0: "TO_SAAS", 1: "TO_MASTER", 2: "TO_CLUSTER", 3: "TO_NODE", 4: "TO_NODE_LIST", } var RECEIVER_value = map[string]int32{ "TO_SAAS": 0, "TO_MASTER": 1, "TO_CLUSTER": 2, "TO_NODE": 3, "TO_NODE_LIST": 4, } func (x RECEIVER) String() string { return proto.EnumName(RECEIVER_name, int32(x)) } func (RECEIVER) EnumDescriptor() ([]byte, []int) { return fileDescriptor_828c587c973bbaf3, []int{0} } // 消息类型 type MSG_TYPE int32 const ( // 心跳 MSG_TYPE_HEART_BEAT MSG_TYPE = 0 // 注册 MSG_TYPE_REGISTER MSG_TYPE = 1 // 数据上报 MSG_TYPE_DATA_REPORT MSG_TYPE = 2 // 设备控制 MSG_TYPE_CONTROL MSG_TYPE = 3 // 业务消息 MSG_TYPE_BUSINESS MSG_TYPE = 9 ) var MSG_TYPE_name = map[int32]string{ 0: "HEART_BEAT", 1: "REGISTER", 2: "DATA_REPORT", 3: "CONTROL", 9: "BUSINESS", } var MSG_TYPE_value = map[string]int32{ "HEART_BEAT": 0, "REGISTER": 1, "DATA_REPORT": 2, "CONTROL": 3, "BUSINESS": 9, } func (x MSG_TYPE) String() string { return proto.EnumName(MSG_TYPE_name, int32(x)) } func (MSG_TYPE) EnumDescriptor() ([]byte, []int) { return fileDescriptor_828c587c973bbaf3, []int{1} } // 请求类型 type REQ_TYPE int32 const ( // 收到请求 REQ_TYPE_REQUEST REQ_TYPE = 0 // 收到应答 REQ_TYPE_RESPONSE REQ_TYPE = 1 ) var REQ_TYPE_name = map[int32]string{ 0: "REQUEST", 1: "RESPONSE", } var REQ_TYPE_value = map[string]int32{ "REQUEST": 0, "RESPONSE": 1, } func (x REQ_TYPE) String() string { return proto.EnumName(REQ_TYPE_name, int32(x)) } func (REQ_TYPE) EnumDescriptor() ([]byte, []int) { return fileDescriptor_828c587c973bbaf3, []int{2} } // 设备信息组成 type DeviceProto struct { // 集群ID ClusterId string `protobuf:"bytes,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"` // 主节点ID MasterDeviceId string `protobuf:"bytes,2,opt,name=masterDeviceId,proto3" json:"masterDeviceId,omitempty"` // 消息接收者 DeviceIds []string `protobuf:"bytes,3,rep,name=deviceIds,proto3" json:"deviceIds,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *DeviceProto) Reset() { *m = DeviceProto{} } func (m *DeviceProto) String() string { return proto.CompactTextString(m) } func (*DeviceProto) ProtoMessage() {} func (*DeviceProto) Descriptor() ([]byte, []int) { return fileDescriptor_828c587c973bbaf3, []int{0} } func (m *DeviceProto) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeviceProto.Unmarshal(m, b) } func (m *DeviceProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DeviceProto.Marshal(b, m, deterministic) } func (m *DeviceProto) XXX_Merge(src proto.Message) { xxx_messageInfo_DeviceProto.Merge(m, src) } func (m *DeviceProto) XXX_Size() int { return xxx_messageInfo_DeviceProto.Size(m) } func (m *DeviceProto) XXX_DiscardUnknown() { xxx_messageInfo_DeviceProto.DiscardUnknown(m) } var xxx_messageInfo_DeviceProto proto.InternalMessageInfo func (m *DeviceProto) GetClusterId() string { if m != nil { return m.ClusterId } return "" } func (m *DeviceProto) GetMasterDeviceId() string { if m != nil { return m.MasterDeviceId } return "" } func (m *DeviceProto) GetDeviceIds() []string { if m != nil { return m.DeviceIds } return nil } // 消息ID type MsgIdProto struct { MsgId string `protobuf:"bytes,1,opt,name=msgId,proto3" json:"msgId,omitempty"` PreMsgId string `protobuf:"bytes,2,opt,name=preMsgId,proto3" json:"preMsgId,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *MsgIdProto) Reset() { *m = MsgIdProto{} } func (m *MsgIdProto) String() string { return proto.CompactTextString(m) } func (*MsgIdProto) ProtoMessage() {} func (*MsgIdProto) Descriptor() ([]byte, []int) { return fileDescriptor_828c587c973bbaf3, []int{1} } func (m *MsgIdProto) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgIdProto.Unmarshal(m, b) } func (m *MsgIdProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_MsgIdProto.Marshal(b, m, deterministic) } func (m *MsgIdProto) XXX_Merge(src proto.Message) { xxx_messageInfo_MsgIdProto.Merge(m, src) } func (m *MsgIdProto) XXX_Size() int { return xxx_messageInfo_MsgIdProto.Size(m) } func (m *MsgIdProto) XXX_DiscardUnknown() { xxx_messageInfo_MsgIdProto.DiscardUnknown(m) } var xxx_messageInfo_MsgIdProto proto.InternalMessageInfo func (m *MsgIdProto) GetMsgId() string { if m != nil { return m.MsgId } return "" } func (m *MsgIdProto) GetPreMsgId() string { if m != nil { return m.PreMsgId } return "" } // 消息体 type BusinessProto struct { Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` Request []byte `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` Authorization string `protobuf:"bytes,3,opt,name=authorization,proto3" json:"authorization,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *BusinessProto) Reset() { *m = BusinessProto{} } func (m *BusinessProto) String() string { return proto.CompactTextString(m) } func (*BusinessProto) ProtoMessage() {} func (*BusinessProto) Descriptor() ([]byte, []int) { return fileDescriptor_828c587c973bbaf3, []int{2} } func (m *BusinessProto) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BusinessProto.Unmarshal(m, b) } func (m *BusinessProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_BusinessProto.Marshal(b, m, deterministic) } func (m *BusinessProto) XXX_Merge(src proto.Message) { xxx_messageInfo_BusinessProto.Merge(m, src) } func (m *BusinessProto) XXX_Size() int { return xxx_messageInfo_BusinessProto.Size(m) } func (m *BusinessProto) XXX_DiscardUnknown() { xxx_messageInfo_BusinessProto.DiscardUnknown(m) } var xxx_messageInfo_BusinessProto proto.InternalMessageInfo func (m *BusinessProto) GetTopic() string { if m != nil { return m.Topic } return "" } func (m *BusinessProto) GetRequest() []byte { if m != nil { return m.Request } return nil } func (m *BusinessProto) GetAuthorization() string { if m != nil { return m.Authorization } return "" } // 消息体组成 type Protocol struct { Receiver RECEIVER `protobuf:"varint,1,opt,name=receiver,proto3,enum=aiot.RECEIVER" json:"receiver,omitempty"` SenderId string `protobuf:"bytes,2,opt,name=senderId,proto3" json:"senderId,omitempty"` DeviceProto *DeviceProto `protobuf:"bytes,3,opt,name=deviceProto,proto3" json:"deviceProto,omitempty"` MsgType MSG_TYPE `protobuf:"varint,4,opt,name=msgType,proto3,enum=aiot.MSG_TYPE" json:"msgType,omitempty"` ReqType REQ_TYPE `protobuf:"varint,5,opt,name=reqType,proto3,enum=aiot.REQ_TYPE" json:"reqType,omitempty"` MsgProto *MsgIdProto `protobuf:"bytes,6,opt,name=msgProto,proto3" json:"msgProto,omitempty"` Data []byte `protobuf:"bytes,7,opt,name=data,proto3" json:"data,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *Protocol) Reset() { *m = Protocol{} } func (m *Protocol) String() string { return proto.CompactTextString(m) } func (*Protocol) ProtoMessage() {} func (*Protocol) Descriptor() ([]byte, []int) { return fileDescriptor_828c587c973bbaf3, []int{3} } func (m *Protocol) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Protocol.Unmarshal(m, b) } func (m *Protocol) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Protocol.Marshal(b, m, deterministic) } func (m *Protocol) XXX_Merge(src proto.Message) { xxx_messageInfo_Protocol.Merge(m, src) } func (m *Protocol) XXX_Size() int { return xxx_messageInfo_Protocol.Size(m) } func (m *Protocol) XXX_DiscardUnknown() { xxx_messageInfo_Protocol.DiscardUnknown(m) } var xxx_messageInfo_Protocol proto.InternalMessageInfo func (m *Protocol) GetReceiver() RECEIVER { if m != nil { return m.Receiver } return RECEIVER_TO_SAAS } func (m *Protocol) GetSenderId() string { if m != nil { return m.SenderId } return "" } func (m *Protocol) GetDeviceProto() *DeviceProto { if m != nil { return m.DeviceProto } return nil } func (m *Protocol) GetMsgType() MSG_TYPE { if m != nil { return m.MsgType } return MSG_TYPE_HEART_BEAT } func (m *Protocol) GetReqType() REQ_TYPE { if m != nil { return m.ReqType } return REQ_TYPE_REQUEST } func (m *Protocol) GetMsgProto() *MsgIdProto { if m != nil { return m.MsgProto } return nil } func (m *Protocol) GetData() []byte { if m != nil { return m.Data } return nil } // 心跳包 type HeartBeatProto struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *HeartBeatProto) Reset() { *m = HeartBeatProto{} } func (m *HeartBeatProto) String() string { return proto.CompactTextString(m) } func (*HeartBeatProto) ProtoMessage() {} func (*HeartBeatProto) Descriptor() ([]byte, []int) { return fileDescriptor_828c587c973bbaf3, []int{4} } func (m *HeartBeatProto) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_HeartBeatProto.Unmarshal(m, b) } func (m *HeartBeatProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_HeartBeatProto.Marshal(b, m, deterministic) } func (m *HeartBeatProto) XXX_Merge(src proto.Message) { xxx_messageInfo_HeartBeatProto.Merge(m, src) } func (m *HeartBeatProto) XXX_Size() int { return xxx_messageInfo_HeartBeatProto.Size(m) } func (m *HeartBeatProto) XXX_DiscardUnknown() { xxx_messageInfo_HeartBeatProto.DiscardUnknown(m) } var xxx_messageInfo_HeartBeatProto proto.InternalMessageInfo // 注册节点ID type DeviceNode struct { DeviceId string `protobuf:"bytes,1,opt,name=deviceId,proto3" json:"deviceId,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *DeviceNode) Reset() { *m = DeviceNode{} } func (m *DeviceNode) String() string { return proto.CompactTextString(m) } func (*DeviceNode) ProtoMessage() {} func (*DeviceNode) Descriptor() ([]byte, []int) { return fileDescriptor_828c587c973bbaf3, []int{5} } func (m *DeviceNode) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeviceNode.Unmarshal(m, b) } func (m *DeviceNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DeviceNode.Marshal(b, m, deterministic) } func (m *DeviceNode) XXX_Merge(src proto.Message) { xxx_messageInfo_DeviceNode.Merge(m, src) } func (m *DeviceNode) XXX_Size() int { return xxx_messageInfo_DeviceNode.Size(m) } func (m *DeviceNode) XXX_DiscardUnknown() { xxx_messageInfo_DeviceNode.DiscardUnknown(m) } var xxx_messageInfo_DeviceNode proto.InternalMessageInfo func (m *DeviceNode) GetDeviceId() string { if m != nil { return m.DeviceId } return "" } // 设备注册包 type DeviceRegister struct { // 设备ID DeviceId string `protobuf:"bytes,1,opt,name=deviceId,proto3" json:"deviceId,omitempty"` //设备名称 ServerName string `protobuf:"bytes,2,opt,name=serverName,proto3" json:"serverName,omitempty"` // 集群ID ClusterId string `protobuf:"bytes,3,opt,name=clusterId,proto3" json:"clusterId,omitempty"` // 集群名称 ClusterName string `protobuf:"bytes,4,opt,name=clusterName,proto3" json:"clusterName,omitempty"` // 漂移IP VirtualIp string `protobuf:"bytes,5,opt,name=virtualIp,proto3" json:"virtualIp,omitempty"` // 集群节点列表 DeviceList []*DeviceNode `protobuf:"bytes,6,rep,name=deviceList,proto3" json:"deviceList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *DeviceRegister) Reset() { *m = DeviceRegister{} } func (m *DeviceRegister) String() string { return proto.CompactTextString(m) } func (*DeviceRegister) ProtoMessage() {} func (*DeviceRegister) Descriptor() ([]byte, []int) { return fileDescriptor_828c587c973bbaf3, []int{6} } func (m *DeviceRegister) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeviceRegister.Unmarshal(m, b) } func (m *DeviceRegister) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DeviceRegister.Marshal(b, m, deterministic) } func (m *DeviceRegister) XXX_Merge(src proto.Message) { xxx_messageInfo_DeviceRegister.Merge(m, src) } func (m *DeviceRegister) XXX_Size() int { return xxx_messageInfo_DeviceRegister.Size(m) } func (m *DeviceRegister) XXX_DiscardUnknown() { xxx_messageInfo_DeviceRegister.DiscardUnknown(m) } var xxx_messageInfo_DeviceRegister proto.InternalMessageInfo func (m *DeviceRegister) GetDeviceId() string { if m != nil { return m.DeviceId } return "" } func (m *DeviceRegister) GetServerName() string { if m != nil { return m.ServerName } return "" } func (m *DeviceRegister) GetClusterId() string { if m != nil { return m.ClusterId } return "" } func (m *DeviceRegister) GetClusterName() string { if m != nil { return m.ClusterName } return "" } func (m *DeviceRegister) GetVirtualIp() string { if m != nil { return m.VirtualIp } return "" } func (m *DeviceRegister) GetDeviceList() []*DeviceNode { if m != nil { return m.DeviceList } return nil } // 数据上报 type DataReport struct { DataKey string `protobuf:"bytes,1,opt,name=dataKey,proto3" json:"dataKey,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } func (m *DataReport) Reset() { *m = DataReport{} } func (m *DataReport) String() string { return proto.CompactTextString(m) } func (*DataReport) ProtoMessage() {} func (*DataReport) Descriptor() ([]byte, []int) { return fileDescriptor_828c587c973bbaf3, []int{7} } func (m *DataReport) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DataReport.Unmarshal(m, b) } func (m *DataReport) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_DataReport.Marshal(b, m, deterministic) } func (m *DataReport) XXX_Merge(src proto.Message) { xxx_messageInfo_DataReport.Merge(m, src) } func (m *DataReport) XXX_Size() int { return xxx_messageInfo_DataReport.Size(m) } func (m *DataReport) XXX_DiscardUnknown() { xxx_messageInfo_DataReport.DiscardUnknown(m) } var xxx_messageInfo_DataReport proto.InternalMessageInfo func (m *DataReport) GetDataKey() string { if m != nil { return m.DataKey } return "" } func (m *DataReport) GetData() []byte { if m != nil { return m.Data } return nil } func init() { proto.RegisterEnum("aiot.RECEIVER", RECEIVER_name, RECEIVER_value) proto.RegisterEnum("aiot.MSG_TYPE", MSG_TYPE_name, MSG_TYPE_value) proto.RegisterEnum("aiot.REQ_TYPE", REQ_TYPE_name, REQ_TYPE_value) proto.RegisterType((*DeviceProto)(nil), "aiot.DeviceProto") proto.RegisterType((*MsgIdProto)(nil), "aiot.MsgIdProto") proto.RegisterType((*BusinessProto)(nil), "aiot.BusinessProto") proto.RegisterType((*Protocol)(nil), "aiot.Protocol") proto.RegisterType((*HeartBeatProto)(nil), "aiot.HeartBeatProto") proto.RegisterType((*DeviceNode)(nil), "aiot.DeviceNode") proto.RegisterType((*DeviceRegister)(nil), "aiot.DeviceRegister") proto.RegisterType((*DataReport)(nil), "aiot.DataReport") } func init() { proto.RegisterFile("aiot_common.proto", fileDescriptor_828c587c973bbaf3) } var fileDescriptor_828c587c973bbaf3 = []byte{ // 610 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0xd1, 0x6a, 0xdb, 0x30, 0x14, 0x6d, 0xe2, 0xb4, 0x49, 0x6e, 0xda, 0xcc, 0x15, 0x7b, 0x30, 0x63, 0x8c, 0x60, 0xb6, 0x51, 0xc2, 0x28, 0xa3, 0x7d, 0xdb, 0xc3, 0xc0, 0x69, 0x44, 0x6b, 0x96, 0xc6, 0xa9, 0xac, 0x0c, 0xf6, 0x64, 0xb4, 0x58, 0x64, 0x86, 0x3a, 0x4e, 0x25, 0x25, 0xd0, 0xfd, 0xcb, 0xfe, 0x6c, 0x1f, 0x33, 0x24, 0xcb, 0x4e, 0xd2, 0x87, 0xbd, 0xf9, 0x1c, 0x9d, 0x7b, 0xee, 0xd5, 0xd1, 0xc5, 0x70, 0xce, 0xb2, 0x42, 0x25, 0x8b, 0x22, 0xcf, 0x8b, 0xd5, 0xe5, 0x5a, 0x14, 0xaa, 0x40, 0x2d, 0x4d, 0xf9, 0x4f, 0xd0, 0x1b, 0xf3, 0x6d, 0xb6, 0xe0, 0x33, 0x43, 0xbe, 0x85, 0xee, 0xe2, 0x71, 0x23, 0x15, 0x17, 0x61, 0xea, 0x35, 0x06, 0x8d, 0x8b, 0x2e, 0xd9, 0x11, 0xe8, 0x23, 0xf4, 0x73, 0xa6, 0xbf, 0xcb, 0x92, 0x30, 0xf5, 0x9a, 0x46, 0xf2, 0x82, 0xd5, 0x2e, 0xa9, 0xfd, 0x96, 0x9e, 0x33, 0x70, 0xb4, 0x4b, 0x4d, 0xf8, 0x5f, 0x01, 0xee, 0xe5, 0x32, 0x4c, 0xcb, 0x8e, 0xaf, 0xe1, 0x38, 0xd7, 0xc8, 0x76, 0x2b, 0x01, 0x7a, 0x03, 0x9d, 0xb5, 0xe0, 0x46, 0x66, 0x7b, 0xd4, 0xd8, 0xe7, 0x70, 0x36, 0xda, 0xc8, 0x6c, 0xc5, 0xa5, 0xac, 0x2d, 0x54, 0xb1, 0xce, 0x16, 0x95, 0x85, 0x01, 0xc8, 0x83, 0xb6, 0xe0, 0x4f, 0x1b, 0x2e, 0x95, 0x71, 0x38, 0x25, 0x15, 0x44, 0xef, 0xe1, 0x8c, 0x6d, 0xd4, 0xaf, 0x42, 0x64, 0xbf, 0x99, 0xca, 0x8a, 0x95, 0xe7, 0x98, 0xba, 0x43, 0xd2, 0xff, 0xd3, 0x84, 0x8e, 0xf1, 0x5f, 0x14, 0x8f, 0x68, 0x08, 0x1d, 0xc1, 0x17, 0x3c, 0xdb, 0x72, 0x61, 0xba, 0xf4, 0xaf, 0xfa, 0x97, 0x3a, 0xbf, 0x4b, 0x82, 0x6f, 0x70, 0xf8, 0x1d, 0x13, 0x52, 0x9f, 0xeb, 0xd9, 0x25, 0x5f, 0xa5, 0x26, 0x42, 0x3b, 0x7b, 0x85, 0xd1, 0x35, 0xf4, 0xd2, 0x5d, 0xdc, 0xa6, 0x71, 0xef, 0xea, 0xbc, 0xb4, 0xda, 0x7b, 0x07, 0xb2, 0xaf, 0x42, 0x17, 0xd0, 0xce, 0xe5, 0x92, 0x3e, 0xaf, 0xb9, 0xd7, 0xda, 0xef, 0x7d, 0x1f, 0xdf, 0x26, 0xf4, 0xc7, 0x0c, 0x93, 0xea, 0x58, 0x2b, 0x05, 0x7f, 0x32, 0xca, 0xe3, 0xc3, 0x29, 0x1f, 0xac, 0xd2, 0x1e, 0xa3, 0x4f, 0xd0, 0xc9, 0xe5, 0xb2, 0x9c, 0xe2, 0xc4, 0x4c, 0xe1, 0x5a, 0xd3, 0xfa, 0x69, 0x48, 0xad, 0x40, 0x08, 0x5a, 0x29, 0x53, 0xcc, 0x6b, 0x9b, 0x20, 0xcd, 0xb7, 0xef, 0x42, 0xff, 0x8e, 0x33, 0xa1, 0x46, 0x9c, 0x29, 0xa3, 0xf2, 0x2f, 0x00, 0xca, 0x3b, 0x4c, 0x8b, 0x94, 0xeb, 0x18, 0xaa, 0x37, 0xb7, 0x0f, 0x53, 0x63, 0xff, 0x6f, 0x03, 0xfa, 0xa5, 0x94, 0xf0, 0x65, 0xa6, 0x77, 0xe7, 0x7f, 0x72, 0xf4, 0x0e, 0x40, 0x72, 0xb1, 0xe5, 0x62, 0xca, 0x72, 0x6e, 0x33, 0xdd, 0x63, 0x0e, 0xb7, 0xd6, 0x79, 0xb9, 0xb5, 0x03, 0xe8, 0x59, 0x60, 0xca, 0x5b, 0xe6, 0x7c, 0x9f, 0xd2, 0xf5, 0xdb, 0x4c, 0xa8, 0x0d, 0x7b, 0x0c, 0xd7, 0x26, 0xb8, 0x2e, 0xd9, 0x11, 0xe8, 0x33, 0x40, 0x39, 0xc9, 0x24, 0x93, 0xca, 0x3b, 0x19, 0x38, 0xbb, 0xb0, 0x76, 0xd7, 0x25, 0x7b, 0x1a, 0xff, 0x0b, 0xc0, 0x98, 0x29, 0x46, 0xf8, 0xba, 0x10, 0x4a, 0x2f, 0xa2, 0x0e, 0xec, 0x1b, 0x7f, 0xb6, 0x17, 0xab, 0x60, 0x1d, 0x6b, 0x73, 0x17, 0xeb, 0x70, 0x0e, 0x9d, 0x6a, 0xa7, 0x50, 0x0f, 0xda, 0x34, 0x4a, 0xe2, 0x20, 0x88, 0xdd, 0x23, 0x74, 0x06, 0x5d, 0x1a, 0x25, 0xf7, 0x41, 0x4c, 0x31, 0x71, 0x1b, 0xa8, 0x0f, 0x40, 0xa3, 0xe4, 0x66, 0x32, 0x37, 0xb8, 0x69, 0xb5, 0xd3, 0x68, 0x8c, 0x5d, 0x07, 0xb9, 0x70, 0x6a, 0x41, 0x32, 0x09, 0x63, 0xea, 0xb6, 0x86, 0x14, 0x3a, 0xd5, 0xba, 0xe8, 0xd2, 0x3b, 0x1c, 0x10, 0x9a, 0x8c, 0x70, 0x40, 0xdd, 0x23, 0x74, 0xaa, 0x5b, 0xde, 0x86, 0xd6, 0xf8, 0x15, 0xf4, 0xc6, 0x01, 0x0d, 0x12, 0x82, 0x67, 0x11, 0xa1, 0xa5, 0xf3, 0x4d, 0x34, 0xa5, 0x24, 0x9a, 0xb8, 0x8e, 0xd6, 0x8e, 0xe6, 0x71, 0x38, 0xc5, 0x71, 0xec, 0x76, 0x87, 0x1f, 0x74, 0x65, 0xb9, 0x5a, 0x5a, 0x46, 0xf0, 0xc3, 0x1c, 0xc7, 0xb5, 0x65, 0x3c, 0x8b, 0xa6, 0x31, 0x76, 0x1b, 0x3f, 0x4f, 0xcc, 0x1f, 0xe7, 0xfa, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x25, 0x00, 0x16, 0x86, 0x04, 0x00, 0x00, }