Add config of pulsar

Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>
pull/4973/head^2
zhenshan.cao 2020-09-07 16:56:57 +08:00 committed by yefu.chen
parent 8992611898
commit cae0f36bdd
16 changed files with 315 additions and 438 deletions

View File

@ -1905,7 +1905,7 @@ type InsertOrDeleteMsg struct {
RowsData *RowData `protobuf:"bytes,2,opt,name=rows_data,json=rowsData" json:"rows_data,omitempty"`
Uid int64 `protobuf:"varint,3,opt,name=uid" json:"uid,omitempty"`
PartitionTag string `protobuf:"bytes,4,opt,name=partition_tag,json=partitionTag" json:"partition_tag,omitempty"`
Timestamp int64 `protobuf:"varint,5,opt,name=timestamp" json:"timestamp,omitempty"`
Timestamp uint64 `protobuf:"varint,5,opt,name=timestamp" json:"timestamp,omitempty"`
SegmentId int64 `protobuf:"varint,6,opt,name=segment_id,json=segmentId" json:"segment_id,omitempty"`
ChannelId int64 `protobuf:"varint,7,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
Op OpType `protobuf:"varint,8,opt,name=op,enum=milvus.grpc.OpType" json:"op,omitempty"`
@ -1946,7 +1946,7 @@ func (m *InsertOrDeleteMsg) GetPartitionTag() string {
return ""
}
func (m *InsertOrDeleteMsg) GetTimestamp() int64 {
func (m *InsertOrDeleteMsg) GetTimestamp() uint64 {
if m != nil {
return m.Timestamp
}
@ -1993,7 +1993,7 @@ type SearchMsg struct {
Records *VectorRowRecord `protobuf:"bytes,2,opt,name=records" json:"records,omitempty"`
PartitionTag string `protobuf:"bytes,3,opt,name=partition_tag,json=partitionTag" json:"partition_tag,omitempty"`
Uid int64 `protobuf:"varint,4,opt,name=uid" json:"uid,omitempty"`
Timestamp int64 `protobuf:"varint,5,opt,name=timestamp" json:"timestamp,omitempty"`
Timestamp uint64 `protobuf:"varint,5,opt,name=timestamp" json:"timestamp,omitempty"`
ClientId int64 `protobuf:"varint,6,opt,name=client_id,json=clientId" json:"client_id,omitempty"`
ExtraParams []*KeyValuePair `protobuf:"bytes,7,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"`
}
@ -2031,7 +2031,7 @@ func (m *SearchMsg) GetUid() int64 {
return 0
}
func (m *SearchMsg) GetTimestamp() int64 {
func (m *SearchMsg) GetTimestamp() uint64 {
if m != nil {
return m.Timestamp
}
@ -2054,7 +2054,7 @@ func (m *SearchMsg) GetExtraParams() []*KeyValuePair {
type TimeSyncMsg struct {
Peer_Id int64 `protobuf:"varint,1,opt,name=peer_Id,json=peerId" json:"peer_Id,omitempty"`
Timestamp int64 `protobuf:"varint,2,opt,name=Timestamp" json:"Timestamp,omitempty"`
Timestamp uint64 `protobuf:"varint,2,opt,name=Timestamp" json:"Timestamp,omitempty"`
SyncType SyncType `protobuf:"varint,3,opt,name=sync_type,json=syncType,enum=milvus.grpc.SyncType" json:"sync_type,omitempty"`
}
@ -2070,7 +2070,7 @@ func (m *TimeSyncMsg) GetPeer_Id() int64 {
return 0
}
func (m *TimeSyncMsg) GetTimestamp() int64 {
func (m *TimeSyncMsg) GetTimestamp() uint64 {
if m != nil {
return m.Timestamp
}
@ -2167,183 +2167,183 @@ func init() {
func init() { proto.RegisterFile("message.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 2836 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x3a, 0xdd, 0x72, 0xdb, 0xc6,
0xd5, 0x04, 0x41, 0x91, 0xc4, 0x01, 0x29, 0x41, 0x6b, 0xd9, 0x96, 0xed, 0xf8, 0xb3, 0x83, 0x6f,
0xa6, 0x75, 0xdc, 0x19, 0x4f, 0xa2, 0xa4, 0xb6, 0x5b, 0x27, 0x69, 0xf8, 0x03, 0x49, 0xa8, 0x29,
0x52, 0x5e, 0x42, 0x76, 0x7e, 0xa6, 0x83, 0x42, 0xc4, 0x9a, 0x46, 0x43, 0x02, 0x2c, 0x00, 0x5a,
0xe6, 0x6d, 0xef, 0xdb, 0x99, 0x5e, 0x76, 0xa6, 0x37, 0xed, 0x2b, 0xf4, 0x2d, 0xfa, 0x02, 0xb9,
0xc8, 0x4c, 0x2f, 0x3b, 0x7d, 0x86, 0x5e, 0x75, 0xf6, 0x07, 0x24, 0x40, 0x91, 0x12, 0x19, 0xb5,
0x57, 0x5a, 0x9e, 0xb3, 0xe7, 0xec, 0xf9, 0xdf, 0xb3, 0x07, 0x82, 0xea, 0x90, 0x44, 0x91, 0xd3,
0x27, 0x8f, 0x46, 0x61, 0x10, 0x07, 0x48, 0x1d, 0x7a, 0x83, 0xb7, 0xe3, 0xe8, 0x51, 0x3f, 0x1c,
0xf5, 0xf4, 0x57, 0x50, 0xec, 0xc6, 0x4e, 0x3c, 0x8e, 0xd0, 0x4f, 0x01, 0x48, 0x18, 0x06, 0xa1,
0xdd, 0x0b, 0x5c, 0xb2, 0x2b, 0xdd, 0x97, 0x1e, 0x6c, 0xee, 0xdd, 0x78, 0x94, 0xda, 0xfb, 0xc8,
0xa0, 0xe8, 0x46, 0xe0, 0x12, 0xac, 0x90, 0x64, 0x89, 0x6e, 0x40, 0x31, 0x24, 0x4e, 0x14, 0xf8,
0xbb, 0xf9, 0xfb, 0xd2, 0x03, 0x05, 0x8b, 0x5f, 0xfa, 0x63, 0xa8, 0x3c, 0x27, 0x93, 0x97, 0xce,
0x60, 0x4c, 0x8e, 0x1d, 0x2f, 0x44, 0x1a, 0xc8, 0xdf, 0x92, 0x09, 0xe3, 0xab, 0x60, 0xba, 0x44,
0x3b, 0xb0, 0xf1, 0x96, 0xa2, 0x05, 0x21, 0xff, 0xa1, 0xff, 0x0c, 0x36, 0x1b, 0xc1, 0x60, 0x40,
0x7a, 0xb1, 0x17, 0xf8, 0x6d, 0x67, 0x48, 0xd0, 0x8f, 0x61, 0xab, 0x37, 0x85, 0xd8, 0xbe, 0x33,
0x24, 0x82, 0xcb, 0x66, 0x2f, 0xb3, 0x51, 0x1f, 0x00, 0xca, 0x92, 0xb6, 0xbc, 0x28, 0x46, 0x3f,
0x81, 0x62, 0xc4, 0x34, 0x64, 0x54, 0xea, 0xde, 0xb5, 0x8c, 0x4e, 0x5c, 0x79, 0x2c, 0xb6, 0xa0,
0x0f, 0x40, 0x9b, 0x3b, 0x2b, 0xda, 0xcd, 0xdf, 0x97, 0x1f, 0x28, 0x78, 0x2b, 0x7b, 0x58, 0xa4,
0x77, 0x41, 0xd9, 0xf7, 0xc8, 0xc0, 0x5d, 0x4b, 0x46, 0x74, 0x17, 0xe0, 0x35, 0xa5, 0xe2, 0x7b,
0xb8, 0xe6, 0xca, 0xeb, 0x84, 0x8f, 0xfe, 0x77, 0x09, 0x4a, 0x47, 0xce, 0x68, 0xe4, 0xf9, 0xfd,
0xf5, 0x04, 0x5f, 0x20, 0x40, 0x7e, 0xa1, 0x00, 0x94, 0x6b, 0xef, 0x0d, 0x19, 0x3a, 0xbb, 0xf2,
0x22, 0xae, 0x0c, 0x85, 0xc5, 0x16, 0xf4, 0x29, 0x54, 0xc8, 0xbb, 0x38, 0x74, 0xec, 0x91, 0x13,
0x3a, 0xc3, 0x68, 0xb7, 0x70, 0x5f, 0x7e, 0xa0, 0xee, 0xdd, 0xca, 0x90, 0xa4, 0xbd, 0x8c, 0x55,
0xb6, 0xfd, 0x98, 0xed, 0xd6, 0x23, 0x50, 0x85, 0x2e, 0xeb, 0x3b, 0xe2, 0x09, 0x54, 0x86, 0x9c,
0xd6, 0x1e, 0x78, 0x51, 0xcc, 0x9c, 0xa0, 0xee, 0xed, 0x64, 0x48, 0x04, 0x73, 0xac, 0x0e, 0x67,
0xa7, 0xe8, 0xcf, 0x61, 0xf3, 0xd8, 0x09, 0x63, 0x8f, 0x2a, 0xcc, 0xe4, 0x58, 0xdd, 0x37, 0x1a,
0xc8, 0xb1, 0xd3, 0x17, 0x76, 0xa3, 0x4b, 0x7d, 0x00, 0xd5, 0x29, 0xb3, 0xf5, 0x75, 0x78, 0x04,
0xd7, 0x46, 0x09, 0xb5, 0x1d, 0x3b, 0x7d, 0xdb, 0x09, 0x43, 0x67, 0x22, 0xe2, 0x69, 0x7b, 0x8a,
0xb2, 0x9c, 0x7e, 0x8d, 0x22, 0xf4, 0x17, 0xb0, 0xf5, 0x92, 0xf4, 0xe2, 0x20, 0xc4, 0xc1, 0x19,
0x26, 0xbd, 0x20, 0x74, 0x59, 0xb8, 0x0c, 0x02, 0x27, 0xb6, 0x5d, 0x27, 0x76, 0x76, 0xa5, 0xfb,
0xf2, 0x83, 0x3c, 0x56, 0x18, 0xa4, 0xe9, 0xc4, 0x0e, 0xba, 0x07, 0xea, 0xa9, 0xe7, 0x3b, 0xe1,
0x84, 0xe3, 0xa9, 0xe4, 0x15, 0x0c, 0x1c, 0x44, 0x37, 0xe8, 0xbf, 0x06, 0xc5, 0xf0, 0x63, 0x2f,
0x9e, 0x98, 0x6e, 0xb4, 0x9e, 0xf0, 0x3f, 0x82, 0x2d, 0xc2, 0x28, 0x6d, 0xcf, 0x4d, 0x09, 0x2e,
0xe3, 0x2a, 0x11, 0x0c, 0xb9, 0xd0, 0xfb, 0x50, 0x11, 0x42, 0x73, 0x89, 0x1f, 0x43, 0x29, 0x64,
0xab, 0x88, 0x89, 0xab, 0xee, 0xbd, 0x97, 0x39, 0x65, 0x4e, 0x41, 0x9c, 0x6c, 0xd6, 0xbf, 0x01,
0x95, 0xe3, 0xb8, 0xd3, 0x10, 0x14, 0x7e, 0x43, 0x8b, 0x0a, 0xf7, 0x14, 0x5b, 0xa3, 0xa7, 0x00,
0x61, 0x70, 0x66, 0x73, 0x0a, 0xa6, 0xec, 0x7c, 0x2c, 0xa6, 0x25, 0xc1, 0x4a, 0x98, 0x9c, 0xa2,
0xf7, 0x45, 0xae, 0x1e, 0x91, 0xd8, 0x99, 0x4b, 0x41, 0x69, 0x2e, 0x05, 0xd1, 0x07, 0x50, 0x88,
0x27, 0x23, 0x9e, 0x3e, 0x9b, 0x7b, 0xd7, 0x33, 0xfc, 0xa9, 0x4d, 0xad, 0xc9, 0x88, 0x60, 0xb6,
0x85, 0x06, 0x8c, 0xeb, 0x0d, 0x59, 0x22, 0xc9, 0x98, 0x2e, 0xf5, 0x1a, 0x14, 0x79, 0x0a, 0xa1,
0x27, 0xa0, 0xf2, 0x53, 0x86, 0x24, 0x76, 0x12, 0x5b, 0x64, 0xeb, 0xe9, 0x54, 0x24, 0xcc, 0x05,
0xa2, 0xcb, 0x48, 0xbf, 0x0b, 0x25, 0x1c, 0x9c, 0x31, 0xf7, 0x22, 0x28, 0x9c, 0x0e, 0x82, 0x53,
0x26, 0x63, 0x05, 0xb3, 0xb5, 0xfe, 0x97, 0x3c, 0xa8, 0xa6, 0x1f, 0x91, 0x30, 0x5e, 0x33, 0xba,
0x67, 0x89, 0x9f, 0xbf, 0x3c, 0xf1, 0x3f, 0x02, 0x6a, 0xbd, 0x88, 0x87, 0x95, 0xbc, 0x20, 0xf7,
0x84, 0x88, 0xb8, 0x4c, 0xb7, 0x31, 0x61, 0x17, 0x04, 0x4c, 0x61, 0x41, 0xc0, 0xa0, 0xff, 0x87,
0x6a, 0x26, 0x2b, 0x76, 0x37, 0x98, 0xb8, 0x95, 0x74, 0x3e, 0x9c, 0x2b, 0x3c, 0xc5, 0xb5, 0x0a,
0xcf, 0xbf, 0x24, 0x50, 0xbb, 0xc4, 0x09, 0x7b, 0x6f, 0xd6, 0xb4, 0xd1, 0x33, 0xa8, 0xbc, 0x65,
0x21, 0xc4, 0xcf, 0x15, 0x55, 0x67, 0x77, 0x41, 0x8c, 0x31, 0xc6, 0x58, 0x7d, 0x9b, 0x0a, 0x59,
0x1a, 0x0d, 0xd1, 0x80, 0x45, 0x83, 0x82, 0xe9, 0xf2, 0xbc, 0xaa, 0x05, 0x96, 0xfa, 0x17, 0xab,
0xba, 0xb1, 0x96, 0xaa, 0x67, 0xb0, 0xc3, 0x35, 0x35, 0xfd, 0x2e, 0xe9, 0x0f, 0x89, 0x2f, 0xc2,
0x42, 0x87, 0xea, 0x6b, 0x6f, 0x40, 0x66, 0xbe, 0x90, 0xd8, 0xd1, 0x2a, 0x05, 0x26, 0x9e, 0x78,
0x06, 0x95, 0x88, 0xd1, 0x4e, 0xb5, 0x95, 0xce, 0x69, 0x9b, 0x32, 0x23, 0x56, 0xa3, 0xd9, 0x0f,
0xfd, 0x4f, 0x12, 0x94, 0x59, 0x69, 0xf1, 0xc8, 0x9a, 0x95, 0x45, 0x03, 0xd9, 0x73, 0x23, 0x51,
0x4d, 0xe8, 0x12, 0xdd, 0x01, 0xe5, 0xad, 0x33, 0xf0, 0x5c, 0x3b, 0x0c, 0xce, 0x58, 0xb4, 0x95,
0x71, 0x99, 0x01, 0x70, 0x70, 0x96, 0x0d, 0xc5, 0xc2, 0x2a, 0xa1, 0xa8, 0xff, 0x5b, 0x02, 0xf5,
0xc5, 0x98, 0x84, 0x13, 0x4c, 0xa2, 0xf1, 0x60, 0xcd, 0xaa, 0xfd, 0x11, 0x94, 0x89, 0xd0, 0x4b,
0x58, 0x24, 0x5b, 0x03, 0x12, 0xa5, 0xf1, 0x74, 0x1b, 0xba, 0x09, 0x25, 0x5a, 0x98, 0xfc, 0x71,
0x52, 0x0b, 0x8a, 0x61, 0x70, 0xd6, 0x1e, 0x0f, 0x69, 0x73, 0x14, 0xf5, 0x82, 0x90, 0xf0, 0x9b,
0x33, 0x8f, 0xc5, 0x2f, 0xf4, 0x1e, 0x28, 0xae, 0x17, 0xc5, 0x8e, 0xdf, 0x23, 0xdc, 0xe1, 0x79,
0x3c, 0x03, 0x5c, 0x31, 0xf8, 0x7f, 0x05, 0x6a, 0x37, 0x0e, 0xe9, 0xbd, 0x48, 0x46, 0x83, 0xc9,
0x7a, 0xba, 0xbf, 0x0f, 0x95, 0x88, 0xd1, 0xda, 0x21, 0x25, 0x16, 0x57, 0xa1, 0x1a, 0xcd, 0xf8,
0xe9, 0xaf, 0x40, 0xa9, 0x07, 0xc1, 0xe0, 0x07, 0x30, 0xbf, 0x0b, 0x70, 0x1a, 0x04, 0x83, 0x14,
0xeb, 0x32, 0x56, 0x4e, 0x13, 0x5e, 0x7a, 0x94, 0xee, 0xde, 0x70, 0x70, 0xd6, 0x08, 0xc6, 0xfe,
0x9a, 0xae, 0xfb, 0x10, 0x76, 0x52, 0x79, 0x4e, 0x5d, 0xd2, 0xa3, 0x4c, 0xd8, 0x59, 0x32, 0x46,
0xbd, 0x73, 0xec, 0xf5, 0x3b, 0x50, 0x6a, 0x04, 0xc3, 0xa1, 0xe3, 0xbb, 0x34, 0x2c, 0x7b, 0x43,
0x37, 0x69, 0x50, 0x7b, 0x43, 0x57, 0xff, 0x87, 0x04, 0x60, 0xfa, 0x2e, 0x79, 0xc7, 0x53, 0xea,
0x7f, 0xd3, 0x8f, 0x65, 0x6f, 0x23, 0x79, 0xfe, 0x36, 0xba, 0x0b, 0xe0, 0x51, 0x11, 0x38, 0xba,
0xc0, 0xd1, 0x0c, 0xc2, 0xd0, 0x57, 0x2b, 0x1e, 0x5f, 0x00, 0xec, 0x0f, 0xc6, 0x91, 0xa8, 0x92,
0x7b, 0x70, 0x7d, 0x4e, 0xe4, 0x4c, 0xe9, 0xb8, 0x96, 0x15, 0x9c, 0xdf, 0xfe, 0x27, 0x50, 0x69,
0x04, 0xc3, 0x91, 0xd3, 0x5b, 0xf7, 0x36, 0x7a, 0x0f, 0x94, 0xf8, 0x4d, 0x48, 0xa2, 0x37, 0xc1,
0x80, 0x5f, 0xe5, 0x12, 0x9e, 0x01, 0xf4, 0x13, 0xd8, 0x6a, 0x92, 0x01, 0x89, 0x49, 0x7d, 0x62,
0x36, 0xd7, 0xe4, 0x7c, 0x0b, 0xca, 0x73, 0x1d, 0x4b, 0xc9, 0x13, 0xbd, 0xca, 0xd7, 0xe9, 0xb7,
0x85, 0xe9, 0xbf, 0x0e, 0xd6, 0xf3, 0xe9, 0x1d, 0x50, 0x68, 0x1f, 0x62, 0x7b, 0xfe, 0xeb, 0x40,
0x78, 0xb3, 0x4c, 0x01, 0x94, 0x93, 0xfe, 0x0d, 0x6c, 0x1f, 0x90, 0x58, 0x34, 0x5b, 0xcd, 0x68,
0x4d, 0xa1, 0xef, 0x02, 0x44, 0xbc, 0x7c, 0xdb, 0x9e, 0x2b, 0xe2, 0x55, 0x11, 0x10, 0xd3, 0xd5,
0xc7, 0xb0, 0x99, 0xb4, 0x71, 0xfc, 0x32, 0xfd, 0x6f, 0x98, 0x83, 0x76, 0x8f, 0xb3, 0xd0, 0x8b,
0x58, 0xe1, 0x55, 0x44, 0x2b, 0xc2, 0x9f, 0x38, 0x1f, 0x82, 0xc6, 0x6f, 0x3b, 0xd6, 0xa9, 0x70,
0x95, 0x58, 0xe9, 0x1a, 0x12, 0x3f, 0xf2, 0x44, 0x77, 0x26, 0xe3, 0x19, 0x40, 0xff, 0x83, 0x24,
0x3a, 0x2d, 0xda, 0x25, 0xa1, 0x4f, 0x40, 0xa1, 0x55, 0xdb, 0x66, 0xfd, 0x94, 0x74, 0x41, 0x3f,
0x75, 0x98, 0xc3, 0x65, 0x57, 0xac, 0x51, 0xfd, 0xdc, 0x25, 0x4c, 0x3d, 0x73, 0x77, 0xc1, 0x25,
0x3c, 0x13, 0xeb, 0x30, 0x97, 0xb9, 0x8b, 0xeb, 0x25, 0xf1, 0xb6, 0xd4, 0xbf, 0x93, 0x00, 0x52,
0xd2, 0x6f, 0x42, 0xde, 0xe3, 0x39, 0x5e, 0xc0, 0x79, 0xcf, 0xa5, 0x1d, 0x56, 0x2a, 0x37, 0xd9,
0x7a, 0xda, 0x00, 0xca, 0x97, 0x37, 0x80, 0x9f, 0x42, 0x85, 0x67, 0xe7, 0xca, 0xef, 0x23, 0x6f,
0x5a, 0x4f, 0xa2, 0x2b, 0x26, 0xef, 0x01, 0x6c, 0xa7, 0xac, 0x20, 0xba, 0xef, 0xbd, 0xe4, 0x4d,
0xbd, 0x4a, 0xef, 0x2d, 0x4c, 0xf4, 0xbd, 0x04, 0x8a, 0x45, 0xc2, 0x21, 0xbb, 0x31, 0x2f, 0xeb,
0x8e, 0xef, 0x80, 0xe2, 0xf9, 0xb1, 0x9d, 0x3c, 0xdc, 0x69, 0x3c, 0x95, 0x3d, 0x3f, 0x66, 0x32,
0xd2, 0xeb, 0xc3, 0x0d, 0xc6, 0xa7, 0x03, 0x22, 0xf0, 0x34, 0xa2, 0x24, 0xac, 0x72, 0x18, 0xdf,
0xc2, 0xaf, 0xfa, 0x31, 0x61, 0x97, 0x65, 0x81, 0x85, 0x4f, 0x99, 0x01, 0xe8, 0x75, 0xb9, 0x03,
0x1b, 0xa7, 0x41, 0x10, 0xc5, 0xac, 0x25, 0xcc, 0x63, 0xfe, 0xe3, 0x8a, 0xd7, 0xa1, 0x03, 0x2a,
0xab, 0x50, 0x21, 0x31, 0xde, 0x8d, 0x42, 0xf4, 0x14, 0xca, 0xc1, 0x88, 0x84, 0x4e, 0x1c, 0x84,
0x22, 0x22, 0xb3, 0x36, 0x12, 0x7b, 0x3b, 0x62, 0x0f, 0x9e, 0xee, 0x46, 0xbb, 0x50, 0x62, 0x6b,
0xdf, 0x15, 0xd1, 0x92, 0xfc, 0xd4, 0xff, 0x26, 0x01, 0x60, 0xc7, 0xef, 0x93, 0x95, 0x2c, 0xb8,
0x97, 0xe6, 0x73, 0xbe, 0xbd, 0x4c, 0x09, 0x3b, 0x3d, 0x61, 0x66, 0x18, 0xf9, 0x22, 0xc3, 0xac,
0xf7, 0x3a, 0xff, 0x4e, 0x4a, 0x5e, 0x5c, 0x2b, 0x89, 0x7d, 0x0f, 0xd4, 0xdf, 0xd2, 0x7d, 0x36,
0x17, 0x24, 0xcf, 0x04, 0x01, 0x06, 0xaa, 0x33, 0x69, 0x52, 0x0f, 0x3f, 0x79, 0x8d, 0x87, 0x1f,
0x4d, 0xc1, 0x38, 0x18, 0x7d, 0x2b, 0x82, 0x81, 0xad, 0xaf, 0x98, 0x19, 0xef, 0xa0, 0x42, 0x5b,
0x14, 0xe2, 0xf8, 0x5c, 0xb3, 0x07, 0xb0, 0x11, 0xf4, 0x7a, 0xe3, 0xc4, 0xe1, 0x28, 0xc3, 0xa6,
0x43, 0x31, 0x98, 0x6f, 0x40, 0x9f, 0x43, 0xb5, 0x4f, 0x7c, 0x12, 0x3a, 0x03, 0x9b, 0x69, 0x26,
0x3c, 0x94, 0x3d, 0xf8, 0x80, 0xef, 0xe0, 0x0d, 0x66, 0xa5, 0x9f, 0xfa, 0xa5, 0xff, 0x3e, 0x0f,
0x95, 0x34, 0x1a, 0x7d, 0x01, 0xd5, 0x53, 0x2e, 0x8a, 0x60, 0x28, 0x2d, 0x78, 0xb5, 0xa6, 0x85,
0x3d, 0xcc, 0xe1, 0xca, 0x69, 0x5a, 0xf8, 0x27, 0x00, 0x31, 0x09, 0x87, 0x53, 0x79, 0xa4, 0x73,
0xcf, 0xc8, 0x69, 0xee, 0x1e, 0xe6, 0xb0, 0x12, 0x4f, 0x13, 0xf9, 0xe7, 0xa0, 0x86, 0x34, 0x28,
0x05, 0x25, 0x9f, 0xf6, 0xdc, 0xcc, 0x76, 0xce, 0xd3, 0xa0, 0x3d, 0xcc, 0x61, 0x08, 0x67, 0x21,
0xfc, 0xd9, 0xb4, 0x04, 0x73, 0xe2, 0xc2, 0x82, 0x97, 0x41, 0x2a, 0x76, 0x66, 0xd5, 0x97, 0xfd,
0xa4, 0xd5, 0x97, 0xd1, 0xe9, 0xff, 0x94, 0xa0, 0x9a, 0x7a, 0x41, 0x1c, 0xd7, 0x57, 0xbf, 0xb7,
0xd6, 0x1c, 0x9e, 0x9c, 0x77, 0x9d, 0xbc, 0xc0, 0xd2, 0xcb, 0x5d, 0x77, 0xc5, 0x64, 0xfa, 0x9d,
0x0c, 0xdb, 0xfc, 0x55, 0xde, 0x09, 0x79, 0xe7, 0x72, 0x14, 0xf5, 0x57, 0x57, 0x36, 0xf3, 0xc6,
0xe1, 0x3e, 0xbe, 0xec, 0xb9, 0xad, 0x81, 0x3c, 0xf6, 0xdc, 0x64, 0xf6, 0x30, 0xf6, 0xdc, 0x45,
0xaf, 0xcd, 0xf3, 0x0f, 0x6b, 0xda, 0x77, 0x79, 0x43, 0x12, 0xc5, 0xce, 0x70, 0xc4, 0xca, 0xac,
0x8c, 0x67, 0x80, 0xb9, 0x36, 0xa4, 0x38, 0xd7, 0x86, 0x50, 0x74, 0xef, 0x8d, 0xe3, 0xfb, 0x64,
0x40, 0xd1, 0x25, 0x8e, 0x16, 0x10, 0x93, 0x0a, 0x90, 0x0f, 0x46, 0xbb, 0x65, 0x96, 0x64, 0xd9,
0x46, 0xaa, 0x33, 0x62, 0x97, 0x66, 0x3e, 0x18, 0xd1, 0x0b, 0xa0, 0x37, 0xf0, 0xc4, 0x09, 0x0a,
0xbf, 0x00, 0x38, 0xc0, 0x74, 0xcf, 0x39, 0x01, 0xd6, 0x72, 0xc2, 0x9f, 0xf3, 0xa0, 0xf0, 0x68,
0x5b, 0xcb, 0xf8, 0xa9, 0xc2, 0xc5, 0x4d, 0xbf, 0x62, 0xe1, 0x3a, 0x67, 0x6f, 0x79, 0x81, 0xbd,
0x85, 0x9b, 0x0a, 0x33, 0x37, 0x5d, 0xec, 0x81, 0x8c, 0x79, 0x8a, 0x97, 0x98, 0xa7, 0xb4, 0x66,
0x59, 0x54, 0x2d, 0x6f, 0x48, 0xba, 0x13, 0xbf, 0x47, 0xed, 0x73, 0x13, 0x4a, 0x23, 0x42, 0x42,
0xdb, 0x74, 0x45, 0x1b, 0x57, 0xa4, 0x3f, 0x4d, 0x26, 0xa0, 0x35, 0x15, 0x50, 0xb4, 0xa2, 0x53,
0x00, 0xda, 0x03, 0x25, 0x9a, 0xf8, 0x3d, 0x7b, 0x69, 0x8b, 0x44, 0xf9, 0x33, 0x6f, 0x97, 0x23,
0xb1, 0xd2, 0x3f, 0x03, 0x78, 0x4e, 0x26, 0x7b, 0x5d, 0xd2, 0xa7, 0x07, 0x0b, 0x93, 0x48, 0x33,
0x93, 0xcc, 0x77, 0xbf, 0x72, 0x26, 0xec, 0x1e, 0xfe, 0xb5, 0x00, 0xca, 0xf4, 0xdb, 0x03, 0x52,
0xa1, 0xd4, 0x3d, 0x69, 0x34, 0x8c, 0x6e, 0x57, 0xcb, 0xa1, 0x1d, 0xd0, 0x4e, 0xda, 0xc6, 0x97,
0xc7, 0x46, 0xc3, 0x32, 0x9a, 0xb6, 0x81, 0x71, 0x07, 0x6b, 0x12, 0x42, 0xb0, 0xd9, 0xe8, 0xb4,
0xdb, 0x46, 0xc3, 0xb2, 0xf7, 0x6b, 0x66, 0xcb, 0x68, 0x6a, 0x79, 0x74, 0x1d, 0xb6, 0x8f, 0x0d,
0x7c, 0x64, 0x76, 0xbb, 0x66, 0xa7, 0x6d, 0x37, 0x8d, 0xb6, 0x69, 0x34, 0x35, 0x19, 0xdd, 0x82,
0xeb, 0x8d, 0x4e, 0xab, 0x65, 0x34, 0x2c, 0x0a, 0x6e, 0x77, 0x2c, 0xdb, 0xf8, 0xd2, 0xec, 0x5a,
0x5d, 0xad, 0x40, 0x79, 0x9b, 0xad, 0x96, 0x71, 0x50, 0x6b, 0xd9, 0x35, 0x7c, 0x70, 0x72, 0x64,
0xb4, 0x2d, 0x6d, 0x83, 0xf2, 0x49, 0xa0, 0x4d, 0xf3, 0xc8, 0x68, 0x53, 0x76, 0x5a, 0x09, 0xdd,
0x00, 0x94, 0x80, 0xcd, 0x76, 0xd3, 0xf8, 0xd2, 0xb6, 0xbe, 0x3a, 0x36, 0xb4, 0x32, 0xba, 0x03,
0x37, 0x13, 0x78, 0xfa, 0x9c, 0xda, 0x91, 0xa1, 0x29, 0x48, 0x83, 0x4a, 0x82, 0xb4, 0x3a, 0xc7,
0xcf, 0x35, 0x48, 0x73, 0xc7, 0x9d, 0x57, 0xd8, 0x68, 0x74, 0x70, 0x53, 0x53, 0xd3, 0xe0, 0x97,
0x46, 0xc3, 0xea, 0x60, 0xdb, 0x6c, 0x6a, 0x15, 0x2a, 0x7c, 0x02, 0xee, 0x1a, 0x35, 0xdc, 0x38,
0xb4, 0xb1, 0xd1, 0x3d, 0x69, 0x59, 0x5a, 0x95, 0x9a, 0x60, 0xdf, 0x6c, 0x19, 0x4c, 0xa3, 0xfd,
0xce, 0x49, 0xbb, 0xa9, 0x6d, 0xa2, 0x2d, 0x50, 0x8f, 0x0c, 0xab, 0x96, 0xd8, 0x64, 0x8b, 0x9e,
0xdf, 0xa8, 0x35, 0x0e, 0x8d, 0x04, 0xa2, 0xa1, 0x5d, 0xd8, 0x69, 0xd4, 0xda, 0x94, 0xa8, 0x81,
0x8d, 0x9a, 0x65, 0xd8, 0xfb, 0x9d, 0x56, 0xd3, 0xc0, 0xda, 0x36, 0x55, 0x70, 0x0e, 0x63, 0xb6,
0x0c, 0x0d, 0xa5, 0x28, 0x9a, 0x46, 0xcb, 0x98, 0x51, 0x5c, 0x4b, 0x51, 0x24, 0x18, 0x4a, 0xb1,
0x43, 0x95, 0xa9, 0x9f, 0x98, 0xad, 0xa6, 0x30, 0x14, 0x77, 0xda, 0x75, 0xb4, 0x0d, 0xd5, 0x44,
0x99, 0x76, 0xcb, 0xec, 0x5a, 0xda, 0x0d, 0x74, 0x13, 0xae, 0x25, 0xa0, 0x23, 0xc3, 0xc2, 0x66,
0x83, 0x5b, 0xf5, 0x26, 0xdd, 0xdb, 0x39, 0xb1, 0xec, 0xce, 0xbe, 0x7d, 0x64, 0x1c, 0x75, 0xf0,
0x57, 0xda, 0xee, 0xc3, 0x3f, 0x4a, 0x50, 0x4e, 0xba, 0x73, 0x54, 0x86, 0x42, 0xbb, 0xd3, 0x36,
0xb4, 0x1c, 0x5d, 0xd5, 0x3b, 0x9d, 0x96, 0x26, 0xd1, 0x95, 0xd9, 0xb6, 0x9e, 0x6a, 0x79, 0xa4,
0xc0, 0x86, 0xd9, 0xb6, 0x3e, 0x7a, 0xac, 0xc9, 0x62, 0xf9, 0xf1, 0x9e, 0x56, 0x10, 0xcb, 0xc7,
0x9f, 0x68, 0x1b, 0x74, 0xb9, 0xdf, 0xea, 0xd4, 0x2c, 0x0d, 0x10, 0x40, 0xb1, 0xd9, 0x39, 0xa9,
0xb7, 0x0c, 0x4d, 0xa5, 0xeb, 0xae, 0x85, 0xcd, 0xf6, 0x81, 0xb6, 0x43, 0x25, 0x10, 0x9e, 0xa8,
0x9b, 0xed, 0x1a, 0xfe, 0x4a, 0x73, 0xa9, 0x35, 0x05, 0x88, 0x13, 0x93, 0x87, 0x0d, 0xd8, 0x9a,
0xeb, 0x27, 0x51, 0x11, 0xf2, 0x2d, 0x4b, 0xcb, 0xa1, 0x12, 0xc8, 0x2d, 0xcb, 0xd0, 0x24, 0x0a,
0x30, 0x5e, 0x68, 0x79, 0xfa, 0xf7, 0xc0, 0xd2, 0x64, 0x8a, 0x38, 0xb0, 0x0c, 0xad, 0x40, 0x01,
0x6d, 0x43, 0xdb, 0x78, 0xf8, 0x14, 0x36, 0x58, 0x8f, 0x42, 0x03, 0xdf, 0x6c, 0xbf, 0xac, 0xb5,
0xcc, 0x26, 0xd7, 0xeb, 0xe8, 0xa4, 0x6b, 0x69, 0x12, 0x93, 0xea, 0xb0, 0x73, 0xd2, 0xa2, 0x41,
0x5e, 0x81, 0x32, 0x85, 0x52, 0xaf, 0x6b, 0xf2, 0xc3, 0xfb, 0x50, 0xe4, 0x85, 0x97, 0xee, 0x31,
0xdb, 0x5d, 0x03, 0xd3, 0x93, 0xa9, 0x46, 0xcc, 0x1f, 0x9a, 0xf4, 0xf0, 0x1e, 0x94, 0x93, 0x74,
0xa5, 0x1c, 0xb1, 0x51, 0xa3, 0xbc, 0x15, 0xd8, 0x78, 0x85, 0x4d, 0xba, 0x61, 0xef, 0xfb, 0x2a,
0x54, 0x8f, 0x58, 0x72, 0x77, 0x49, 0xf8, 0xd6, 0xeb, 0x11, 0xf4, 0x0b, 0xd0, 0x1a, 0x21, 0x71,
0x62, 0x32, 0x7b, 0x49, 0xa3, 0x85, 0x9f, 0x65, 0x6e, 0x2f, 0x7a, 0x4b, 0xeb, 0x39, 0xb4, 0x0f,
0xd5, 0x43, 0x27, 0x4a, 0x51, 0xdf, 0x99, 0xeb, 0x7f, 0xd3, 0xc5, 0xf9, 0xf6, 0x8d, 0x73, 0x9d,
0x12, 0x9f, 0x16, 0xe5, 0x90, 0x09, 0xa8, 0x49, 0xa2, 0x5e, 0xe8, 0x9d, 0x92, 0x55, 0x99, 0x2d,
0x94, 0x53, 0xcf, 0xa1, 0x17, 0xd4, 0x4f, 0x63, 0x3f, 0x5e, 0x95, 0xcf, 0xbd, 0x25, 0xc8, 0xe9,
0x58, 0x29, 0x87, 0x7e, 0x09, 0x5b, 0xdd, 0x37, 0xf4, 0x67, 0x82, 0x8b, 0xe6, 0xac, 0x24, 0xc6,
0x4e, 0x4b, 0x79, 0x25, 0xdf, 0x2f, 0xf5, 0x1c, 0x3a, 0x06, 0x94, 0xe5, 0xc5, 0x46, 0x17, 0x17,
0x4a, 0xb8, 0x0c, 0xc9, 0x46, 0x15, 0x39, 0xd4, 0x84, 0xcd, 0x66, 0x18, 0x8c, 0x56, 0xd5, 0x77,
0x89, 0x27, 0x3f, 0x03, 0x95, 0x87, 0x02, 0x1b, 0x92, 0xa1, 0x6c, 0x6f, 0x39, 0x1b, 0x9c, 0x2d,
0x23, 0x6f, 0x40, 0x35, 0x71, 0xe0, 0x25, 0x0c, 0x96, 0x21, 0xf4, 0x1c, 0x7a, 0x06, 0x0a, 0xd5,
0xe4, 0x87, 0x49, 0x60, 0xc0, 0x16, 0x57, 0x60, 0xfa, 0x91, 0x6f, 0xce, 0x0e, 0xd9, 0x2f, 0x89,
0xcb, 0xd9, 0x54, 0x0e, 0x9d, 0x68, 0x45, 0x1e, 0xcb, 0x03, 0xfa, 0x39, 0x6c, 0x52, 0x37, 0x4f,
0xf7, 0x47, 0x17, 0x3b, 0xe5, 0xf6, 0xe2, 0x53, 0x44, 0xcc, 0x50, 0xe3, 0x86, 0xc1, 0xe8, 0x6a,
0x8a, 0x7d, 0x0a, 0x45, 0xde, 0xd4, 0xa2, 0xdd, 0x39, 0xcb, 0x4e, 0xbf, 0x3f, 0xcd, 0xe9, 0x33,
0xfd, 0xd8, 0xc8, 0xcc, 0x52, 0x9d, 0x4e, 0xc4, 0xea, 0x13, 0xb3, 0x39, 0x27, 0x42, 0x76, 0xa0,
0x75, 0x7b, 0xf1, 0x90, 0x5d, 0xcf, 0xa1, 0x43, 0xfa, 0xa4, 0x9a, 0x0d, 0xd6, 0xd0, 0xff, 0xcd,
0x75, 0xf4, 0x73, 0x33, 0xb7, 0x0b, 0x04, 0xfa, 0x1c, 0x8a, 0xbc, 0x3d, 0x44, 0x4b, 0xbf, 0x71,
0xdc, 0xce, 0x62, 0x52, 0x1f, 0x11, 0x58, 0x1e, 0x6e, 0xcd, 0x7d, 0x6b, 0x41, 0xef, 0x2f, 0x60,
0x94, 0xfd, 0x12, 0x73, 0x21, 0xc7, 0x27, 0x20, 0x37, 0x86, 0xee, 0x92, 0xca, 0x30, 0x27, 0x64,
0x6a, 0x06, 0x9f, 0x43, 0x35, 0x80, 0xd9, 0x80, 0x14, 0x65, 0x1b, 0xd6, 0xb9, 0xc9, 0xe9, 0x32,
0xe7, 0x1e, 0xc0, 0xf6, 0x71, 0x48, 0x06, 0x81, 0xe3, 0x5e, 0xb1, 0x0c, 0x3c, 0x81, 0x0d, 0x36,
0x45, 0x9e, 0x4b, 0xbf, 0xd9, 0x64, 0x79, 0x19, 0xe1, 0x33, 0x36, 0x7c, 0x1f, 0x39, 0xbd, 0x18,
0xdd, 0x3a, 0x3f, 0x03, 0x11, 0x23, 0xe5, 0x65, 0xc4, 0x75, 0x28, 0x0b, 0xbf, 0xd5, 0xd1, 0xed,
0x65, 0xee, 0x3c, 0xae, 0x5f, 0x64, 0xfe, 0x7a, 0xe9, 0xeb, 0x8d, 0x61, 0xd4, 0x1f, 0x9d, 0x9e,
0x16, 0xd9, 0x7f, 0xc6, 0x7c, 0xfc, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x1c, 0x0e, 0x0a,
0x2a, 0x23, 0x00, 0x00,
// 2837 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x5a, 0xdd, 0x72, 0xdb, 0xc6,
0xf5, 0x27, 0x08, 0x8a, 0x24, 0x0e, 0x48, 0x09, 0x5a, 0xcb, 0xb6, 0x6c, 0xc7, 0x7f, 0x3b, 0xf8,
0xcf, 0xb4, 0x8e, 0x3b, 0xe3, 0x49, 0x94, 0xd4, 0x76, 0xeb, 0x24, 0x0d, 0x3f, 0x20, 0x09, 0x35,
0x45, 0xca, 0x4b, 0xc8, 0xce, 0xc7, 0x74, 0x50, 0x88, 0x58, 0xd3, 0x68, 0x48, 0x80, 0x05, 0x40,
0xcb, 0xbc, 0xed, 0x7d, 0x3b, 0xd3, 0xcb, 0xce, 0xf4, 0xa6, 0x7d, 0x85, 0xbe, 0x45, 0x5f, 0x20,
0x17, 0x99, 0xe9, 0x65, 0xa7, 0xcf, 0xd0, 0xab, 0xce, 0x7e, 0x80, 0x04, 0x28, 0x52, 0x22, 0xa3,
0xf6, 0x4a, 0xcb, 0xb3, 0x7b, 0xce, 0xfe, 0xce, 0xe7, 0x9e, 0x5d, 0x08, 0xaa, 0x43, 0x12, 0x45,
0x4e, 0x9f, 0x3c, 0x1a, 0x85, 0x41, 0x1c, 0x20, 0x75, 0xe8, 0x0d, 0xde, 0x8e, 0xa3, 0x47, 0xfd,
0x70, 0xd4, 0xd3, 0x5f, 0x41, 0xb1, 0x1b, 0x3b, 0xf1, 0x38, 0x42, 0x3f, 0x05, 0x20, 0x61, 0x18,
0x84, 0x76, 0x2f, 0x70, 0xc9, 0xae, 0x74, 0x5f, 0x7a, 0xb0, 0xb9, 0x77, 0xe3, 0x51, 0x6a, 0xed,
0x23, 0x83, 0x4e, 0x37, 0x02, 0x97, 0x60, 0x85, 0x24, 0x43, 0x74, 0x03, 0x8a, 0x21, 0x71, 0xa2,
0xc0, 0xdf, 0xcd, 0xdf, 0x97, 0x1e, 0x28, 0x58, 0xfc, 0xd2, 0x1f, 0x43, 0xe5, 0x39, 0x99, 0xbc,
0x74, 0x06, 0x63, 0x72, 0xec, 0x78, 0x21, 0xd2, 0x40, 0xfe, 0x96, 0x4c, 0x98, 0x5c, 0x05, 0xd3,
0x21, 0xda, 0x81, 0x8d, 0xb7, 0x74, 0x5a, 0x30, 0xf2, 0x1f, 0xfa, 0xcf, 0x60, 0xb3, 0x11, 0x0c,
0x06, 0xa4, 0x17, 0x7b, 0x81, 0xdf, 0x76, 0x86, 0x04, 0xfd, 0x18, 0xb6, 0x7a, 0x53, 0x8a, 0xed,
0x3b, 0x43, 0x22, 0xa4, 0x6c, 0xf6, 0x32, 0x0b, 0xf5, 0x01, 0xa0, 0x2c, 0x6b, 0xcb, 0x8b, 0x62,
0xf4, 0x13, 0x28, 0x46, 0x4c, 0x43, 0xc6, 0xa5, 0xee, 0x5d, 0xcb, 0xe8, 0xc4, 0x95, 0xc7, 0x62,
0x09, 0xfa, 0x00, 0xb4, 0xb9, 0xbd, 0xa2, 0xdd, 0xfc, 0x7d, 0xf9, 0x81, 0x82, 0xb7, 0xb2, 0x9b,
0x45, 0x7a, 0x17, 0x94, 0x7d, 0x8f, 0x0c, 0xdc, 0xb5, 0x30, 0xa2, 0xbb, 0x00, 0xaf, 0x29, 0x17,
0x5f, 0xc3, 0x35, 0x57, 0x5e, 0x27, 0x72, 0xf4, 0xbf, 0x4b, 0x50, 0x3a, 0x72, 0x46, 0x23, 0xcf,
0xef, 0xaf, 0x07, 0x7c, 0x01, 0x80, 0xfc, 0x42, 0x00, 0x54, 0x6a, 0xef, 0x0d, 0x19, 0x3a, 0xbb,
0xf2, 0x22, 0xa9, 0x6c, 0x0a, 0x8b, 0x25, 0xe8, 0x53, 0xa8, 0x90, 0x77, 0x71, 0xe8, 0xd8, 0x23,
0x27, 0x74, 0x86, 0xd1, 0x6e, 0xe1, 0xbe, 0xfc, 0x40, 0xdd, 0xbb, 0x95, 0x61, 0x49, 0x7b, 0x19,
0xab, 0x6c, 0xf9, 0x31, 0x5b, 0xad, 0x47, 0xa0, 0x0a, 0x5d, 0xd6, 0x77, 0xc4, 0x13, 0xa8, 0x0c,
0x39, 0xaf, 0x3d, 0xf0, 0xa2, 0x98, 0x39, 0x41, 0xdd, 0xdb, 0xc9, 0xb0, 0x08, 0xe1, 0x58, 0x1d,
0xce, 0x76, 0xd1, 0x9f, 0xc3, 0xe6, 0xb1, 0x13, 0xc6, 0x1e, 0x55, 0x98, 0xe1, 0x58, 0xdd, 0x37,
0x1a, 0xc8, 0xb1, 0xd3, 0x17, 0x76, 0xa3, 0x43, 0x7d, 0x00, 0xd5, 0xa9, 0xb0, 0xf5, 0x75, 0x78,
0x04, 0xd7, 0x46, 0x09, 0xb7, 0x1d, 0x3b, 0x7d, 0xdb, 0x09, 0x43, 0x67, 0x22, 0xe2, 0x69, 0x7b,
0x3a, 0x65, 0x39, 0xfd, 0x1a, 0x9d, 0xd0, 0x5f, 0xc0, 0xd6, 0x4b, 0xd2, 0x8b, 0x83, 0x10, 0x07,
0x67, 0x98, 0xf4, 0x82, 0xd0, 0x65, 0xe1, 0x32, 0x08, 0x9c, 0xd8, 0x76, 0x9d, 0xd8, 0xd9, 0x95,
0xee, 0xcb, 0x0f, 0xf2, 0x58, 0x61, 0x94, 0xa6, 0x13, 0x3b, 0xe8, 0x1e, 0xa8, 0xa7, 0x9e, 0xef,
0x84, 0x13, 0x3e, 0x4f, 0x91, 0x57, 0x30, 0x70, 0x12, 0x5d, 0xa0, 0xff, 0x1a, 0x14, 0xc3, 0x8f,
0xbd, 0x78, 0x62, 0xba, 0xd1, 0x7a, 0xe0, 0x7f, 0x04, 0x5b, 0x84, 0x71, 0xda, 0x9e, 0x9b, 0x02,
0x2e, 0xe3, 0x2a, 0x11, 0x02, 0x39, 0xe8, 0x7d, 0xa8, 0x08, 0xd0, 0x1c, 0xf1, 0x63, 0x28, 0x85,
0x6c, 0x14, 0x31, 0xb8, 0xea, 0xde, 0x7b, 0x99, 0x5d, 0xe6, 0x14, 0xc4, 0xc9, 0x62, 0xfd, 0x1b,
0x50, 0xf9, 0x1c, 0x77, 0x1a, 0x82, 0xc2, 0x6f, 0x68, 0x51, 0xe1, 0x9e, 0x62, 0x63, 0xf4, 0x14,
0x20, 0x0c, 0xce, 0x6c, 0xce, 0xc1, 0x94, 0x9d, 0x8f, 0xc5, 0x34, 0x12, 0xac, 0x84, 0xc9, 0x2e,
0x7a, 0x5f, 0xe4, 0xea, 0x11, 0x89, 0x9d, 0xb9, 0x14, 0x94, 0xe6, 0x52, 0x10, 0x7d, 0x00, 0x85,
0x78, 0x32, 0xe2, 0xe9, 0xb3, 0xb9, 0x77, 0x3d, 0x23, 0x9f, 0xda, 0xd4, 0x9a, 0x8c, 0x08, 0x66,
0x4b, 0x68, 0xc0, 0xb8, 0xde, 0x90, 0x25, 0x92, 0x8c, 0xe9, 0x50, 0xaf, 0x41, 0x91, 0xa7, 0x10,
0x7a, 0x02, 0x2a, 0xdf, 0x65, 0x48, 0x62, 0x27, 0xb1, 0x45, 0xb6, 0x9e, 0x4e, 0x21, 0x61, 0x0e,
0x88, 0x0e, 0x23, 0xfd, 0x2e, 0x94, 0x70, 0x70, 0xc6, 0xdc, 0x8b, 0xa0, 0x70, 0x3a, 0x08, 0x4e,
0x19, 0xc6, 0x0a, 0x66, 0x63, 0xfd, 0x2f, 0x79, 0x50, 0x4d, 0x3f, 0x22, 0x61, 0xbc, 0x66, 0x74,
0xcf, 0x12, 0x3f, 0x7f, 0x79, 0xe2, 0x7f, 0x04, 0xd4, 0x7a, 0x11, 0x0f, 0x2b, 0x79, 0x41, 0xee,
0x09, 0x88, 0xb8, 0x4c, 0x97, 0x31, 0xb0, 0x0b, 0x02, 0xa6, 0xb0, 0x20, 0x60, 0xd0, 0xff, 0x43,
0x35, 0x93, 0x15, 0xbb, 0x1b, 0x0c, 0x6e, 0x25, 0x9d, 0x0f, 0xe7, 0x0a, 0x4f, 0x71, 0xad, 0xc2,
0xf3, 0x2f, 0x09, 0xd4, 0x2e, 0x71, 0xc2, 0xde, 0x9b, 0x35, 0x6d, 0xf4, 0x0c, 0x2a, 0x6f, 0x59,
0x08, 0xf1, 0x7d, 0x45, 0xd5, 0xd9, 0x5d, 0x10, 0x63, 0x4c, 0x30, 0x56, 0xdf, 0xa6, 0x42, 0x96,
0x46, 0x43, 0x34, 0x60, 0xd1, 0xa0, 0x60, 0x3a, 0x3c, 0xaf, 0x6a, 0x81, 0xa5, 0xfe, 0xc5, 0xaa,
0x6e, 0xac, 0xa5, 0xea, 0x19, 0xec, 0x70, 0x4d, 0x4d, 0xbf, 0x4b, 0xfa, 0x43, 0xe2, 0x8b, 0xb0,
0xd0, 0xa1, 0xfa, 0xda, 0x1b, 0x90, 0x99, 0x2f, 0x24, 0xb6, 0xb5, 0x4a, 0x89, 0x89, 0x27, 0x9e,
0x41, 0x25, 0x62, 0xbc, 0x53, 0x6d, 0xa5, 0x73, 0xda, 0xa6, 0xcc, 0x88, 0xd5, 0x68, 0xf6, 0x43,
0xff, 0x93, 0x04, 0x65, 0x56, 0x5a, 0x3c, 0xb2, 0x66, 0x65, 0xd1, 0x40, 0xf6, 0xdc, 0x48, 0x54,
0x13, 0x3a, 0x44, 0x77, 0x40, 0x79, 0xeb, 0x0c, 0x3c, 0xd7, 0x0e, 0x83, 0x33, 0x16, 0x6d, 0x65,
0x5c, 0x66, 0x04, 0x1c, 0x9c, 0x65, 0x43, 0xb1, 0xb0, 0x4a, 0x28, 0xea, 0xff, 0x96, 0x40, 0x7d,
0x31, 0x26, 0xe1, 0x04, 0x93, 0x68, 0x3c, 0x58, 0xb3, 0x6a, 0x7f, 0x04, 0x65, 0x22, 0xf4, 0x12,
0x16, 0xc9, 0xd6, 0x80, 0x44, 0x69, 0x3c, 0x5d, 0x86, 0x6e, 0x42, 0x89, 0x16, 0x26, 0x7f, 0x9c,
0xd4, 0x82, 0x62, 0x18, 0x9c, 0xb5, 0xc7, 0x43, 0xda, 0x1c, 0x45, 0xbd, 0x20, 0x24, 0xfc, 0xe4,
0xcc, 0x63, 0xf1, 0x0b, 0xbd, 0x07, 0x8a, 0xeb, 0x45, 0xb1, 0xe3, 0xf7, 0x08, 0x77, 0x78, 0x1e,
0xcf, 0x08, 0x57, 0x0c, 0xfe, 0x5f, 0x81, 0xda, 0x8d, 0x43, 0x7a, 0x2e, 0x92, 0xd1, 0x60, 0xb2,
0x9e, 0xee, 0xef, 0x43, 0x25, 0x62, 0xbc, 0x76, 0x48, 0x99, 0xc5, 0x51, 0xa8, 0x46, 0x33, 0x79,
0xfa, 0x2b, 0x50, 0xea, 0x41, 0x30, 0xf8, 0x01, 0xc2, 0xef, 0x02, 0x9c, 0x06, 0xc1, 0x20, 0x25,
0xba, 0x8c, 0x95, 0xd3, 0x44, 0x96, 0x1e, 0xa5, 0xbb, 0x37, 0x1c, 0x9c, 0x35, 0x82, 0xb1, 0xbf,
0xa6, 0xeb, 0x3e, 0x84, 0x9d, 0x54, 0x9e, 0x53, 0x97, 0xf4, 0xa8, 0x10, 0xb6, 0x97, 0x8c, 0x51,
0xef, 0x9c, 0x78, 0xfd, 0x0e, 0x94, 0x1a, 0xc1, 0x70, 0xe8, 0xf8, 0x2e, 0x0d, 0xcb, 0xde, 0xd0,
0x4d, 0x1a, 0xd4, 0xde, 0xd0, 0xd5, 0xff, 0x21, 0x01, 0x98, 0xbe, 0x4b, 0xde, 0xf1, 0x94, 0xfa,
0xdf, 0xf4, 0x63, 0xd9, 0xd3, 0x48, 0x9e, 0x3f, 0x8d, 0xee, 0x02, 0x78, 0x14, 0x02, 0x9f, 0x2e,
0xf0, 0x69, 0x46, 0x61, 0xd3, 0x57, 0x2b, 0x1e, 0x5f, 0x00, 0xec, 0x0f, 0xc6, 0x91, 0xa8, 0x92,
0x7b, 0x70, 0x7d, 0x0e, 0x72, 0xa6, 0x74, 0x5c, 0xcb, 0x02, 0xe7, 0xa7, 0xff, 0x09, 0x54, 0x1a,
0xc1, 0x70, 0xe4, 0xf4, 0xd6, 0x3d, 0x8d, 0xde, 0x03, 0x25, 0x7e, 0x13, 0x92, 0xe8, 0x4d, 0x30,
0xe0, 0x47, 0xb9, 0x84, 0x67, 0x04, 0xfd, 0x04, 0xb6, 0x9a, 0x64, 0x40, 0x62, 0x52, 0x9f, 0x98,
0xcd, 0x35, 0x25, 0xdf, 0x82, 0xf2, 0x5c, 0xc7, 0x52, 0xf2, 0x44, 0xaf, 0xf2, 0x75, 0xfa, 0x6e,
0x61, 0xfa, 0xaf, 0x83, 0xf5, 0x7c, 0x7a, 0x07, 0x14, 0xda, 0x87, 0xd8, 0x9e, 0xff, 0x3a, 0x10,
0xde, 0x2c, 0x53, 0x02, 0x95, 0xa4, 0x7f, 0x03, 0xdb, 0x07, 0x24, 0x16, 0xcd, 0x56, 0x33, 0x5a,
0x13, 0xf4, 0x5d, 0x80, 0x88, 0x97, 0x6f, 0xdb, 0x73, 0x45, 0xbc, 0x2a, 0x82, 0x62, 0xba, 0xfa,
0x18, 0x36, 0x93, 0x36, 0x8e, 0x1f, 0xa6, 0xff, 0x0d, 0x73, 0xd0, 0xee, 0x71, 0x16, 0x7a, 0x11,
0x2b, 0xbc, 0x8a, 0x68, 0x45, 0xf8, 0x15, 0xe7, 0x43, 0xd0, 0xf8, 0x69, 0xc7, 0x3a, 0x15, 0xae,
0x12, 0x2b, 0x5d, 0x43, 0xe2, 0x47, 0x9e, 0xe8, 0xce, 0x64, 0x3c, 0x23, 0xe8, 0x7f, 0x90, 0x44,
0xa7, 0x45, 0xbb, 0x24, 0xf4, 0x09, 0x28, 0xb4, 0x6a, 0xdb, 0xac, 0x9f, 0x92, 0x2e, 0xe8, 0xa7,
0x0e, 0x73, 0xb8, 0xec, 0x8a, 0x31, 0xaa, 0x9f, 0x3b, 0x84, 0xa9, 0x67, 0xee, 0x2e, 0x38, 0x84,
0x67, 0xb0, 0x0e, 0x73, 0x99, 0xb3, 0xb8, 0x5e, 0x12, 0x77, 0x4b, 0xfd, 0x3b, 0x09, 0x20, 0x85,
0x7e, 0x13, 0xf2, 0x1e, 0xcf, 0xf1, 0x02, 0xce, 0x7b, 0x2e, 0xed, 0xb0, 0x52, 0xb9, 0xc9, 0xc6,
0xd3, 0x06, 0x50, 0xbe, 0xbc, 0x01, 0xfc, 0x14, 0x2a, 0x3c, 0x3b, 0x57, 0xbe, 0x1f, 0x79, 0xd3,
0x7a, 0x12, 0x5d, 0x31, 0x79, 0x0f, 0x60, 0x3b, 0x65, 0x05, 0xd1, 0x7d, 0xef, 0x25, 0x77, 0xea,
0x55, 0x7a, 0x6f, 0x61, 0xa2, 0xef, 0x25, 0x50, 0x2c, 0x12, 0x0e, 0xd9, 0x89, 0x79, 0x59, 0x77,
0x7c, 0x07, 0x14, 0xcf, 0x8f, 0xed, 0xe4, 0xe2, 0x4e, 0xe3, 0xa9, 0xec, 0xf9, 0x31, 0xc3, 0x48,
0x8f, 0x0f, 0x37, 0x18, 0x9f, 0x0e, 0x88, 0x98, 0xa7, 0x11, 0x25, 0x61, 0x95, 0xd3, 0xf8, 0x12,
0x7e, 0xd4, 0x8f, 0x09, 0x3b, 0x2c, 0x0b, 0x2c, 0x7c, 0xca, 0x8c, 0x40, 0x8f, 0xcb, 0x1d, 0xd8,
0x38, 0x0d, 0x82, 0x28, 0x66, 0x2d, 0x61, 0x1e, 0xf3, 0x1f, 0x57, 0x3c, 0x0e, 0x1d, 0x50, 0x59,
0x85, 0x0a, 0x89, 0xf1, 0x6e, 0x14, 0xa2, 0xa7, 0x50, 0x0e, 0x46, 0x24, 0x74, 0xe2, 0x20, 0x14,
0x11, 0x99, 0xb5, 0x91, 0x58, 0xdb, 0x11, 0x6b, 0xf0, 0x74, 0x35, 0xda, 0x85, 0x12, 0x1b, 0xfb,
0xae, 0x88, 0x96, 0xe4, 0xa7, 0xfe, 0x37, 0x09, 0x00, 0x3b, 0x7e, 0x9f, 0xac, 0x64, 0xc1, 0xbd,
0xb4, 0x9c, 0xf3, 0xed, 0x65, 0x0a, 0xec, 0x74, 0x87, 0x99, 0x61, 0xe4, 0x8b, 0x0c, 0xb3, 0xde,
0xed, 0xfc, 0x3b, 0x29, 0xb9, 0x71, 0xad, 0x04, 0xfb, 0x1e, 0xa8, 0xbf, 0xa5, 0xeb, 0x6c, 0x0e,
0x24, 0xcf, 0x80, 0x00, 0x23, 0xd5, 0x19, 0x9a, 0xd4, 0xc5, 0x4f, 0x5e, 0xe3, 0xe2, 0x47, 0x53,
0x30, 0x0e, 0x46, 0xdf, 0x8a, 0x60, 0x60, 0xe3, 0x2b, 0x66, 0xc6, 0x3b, 0xa8, 0xd0, 0x16, 0x85,
0x38, 0x3e, 0xd7, 0xec, 0x01, 0x6c, 0x04, 0xbd, 0xde, 0x38, 0x71, 0x38, 0xca, 0x88, 0xe9, 0xd0,
0x19, 0xcc, 0x17, 0xa0, 0xcf, 0xa1, 0xda, 0x27, 0x3e, 0x09, 0x9d, 0x81, 0xcd, 0x34, 0x13, 0x1e,
0xca, 0x6e, 0x7c, 0xc0, 0x57, 0xf0, 0x06, 0xb3, 0xd2, 0x4f, 0xfd, 0xd2, 0x7f, 0x9f, 0x87, 0x4a,
0x7a, 0x1a, 0x7d, 0x01, 0xd5, 0x53, 0x0e, 0x45, 0x08, 0x94, 0x16, 0xdc, 0x5a, 0xd3, 0x60, 0x0f,
0x73, 0xb8, 0x72, 0x9a, 0x06, 0xff, 0x04, 0x20, 0x26, 0xe1, 0x70, 0x8a, 0x47, 0x3a, 0x77, 0x8d,
0x9c, 0xe6, 0xee, 0x61, 0x0e, 0x2b, 0xf1, 0x34, 0x91, 0x7f, 0x0e, 0x6a, 0x48, 0x83, 0x52, 0x70,
0xf2, 0xd7, 0x9e, 0x9b, 0xd9, 0xce, 0x79, 0x1a, 0xb4, 0x87, 0x39, 0x0c, 0xe1, 0x2c, 0x84, 0x3f,
0x9b, 0x96, 0x60, 0xce, 0x5c, 0x58, 0x70, 0x33, 0x48, 0xc5, 0xce, 0xac, 0xfa, 0xb2, 0x9f, 0xb4,
0xfa, 0x32, 0x3e, 0xfd, 0x9f, 0x12, 0x54, 0x53, 0x37, 0x88, 0xe3, 0xfa, 0xea, 0xe7, 0xd6, 0x9a,
0x8f, 0x27, 0xe7, 0x5d, 0x27, 0x2f, 0xb0, 0xf4, 0x72, 0xd7, 0x5d, 0x31, 0x99, 0x7e, 0x27, 0xc3,
0x36, 0xbf, 0x95, 0x77, 0x42, 0xde, 0xb9, 0x1c, 0x45, 0xfd, 0xd5, 0x95, 0xcd, 0xdc, 0x71, 0xb8,
0x8f, 0x2f, 0xbb, 0x6e, 0x6b, 0x20, 0x8f, 0x3d, 0x37, 0x79, 0x7b, 0x18, 0x7b, 0xee, 0xa2, 0xdb,
0xe6, 0xf9, 0x8b, 0x35, 0xed, 0xbb, 0xbc, 0x21, 0x89, 0x62, 0x67, 0x38, 0x62, 0x65, 0xb6, 0x80,
0x67, 0x84, 0xb9, 0x36, 0xa4, 0x38, 0xd7, 0x86, 0xd0, 0xe9, 0xde, 0x1b, 0xc7, 0xf7, 0xc9, 0x80,
0x4e, 0x97, 0xf8, 0xb4, 0xa0, 0x98, 0x14, 0x40, 0x3e, 0x18, 0xed, 0x96, 0x59, 0x92, 0x65, 0x1b,
0xa9, 0xce, 0x88, 0x1d, 0x9a, 0xf9, 0x60, 0x44, 0x0f, 0x80, 0xde, 0xc0, 0x13, 0x3b, 0x28, 0xfc,
0x00, 0xe0, 0x04, 0xd3, 0x3d, 0xe7, 0x04, 0x58, 0xcb, 0x09, 0x7f, 0xce, 0x83, 0xc2, 0xa3, 0x6d,
0x2d, 0xe3, 0xa7, 0x0a, 0x17, 0x37, 0xfd, 0x8a, 0x85, 0xeb, 0x9c, 0xbd, 0xe5, 0x05, 0xf6, 0x16,
0x6e, 0x2a, 0xcc, 0xdc, 0x74, 0xb1, 0x07, 0x32, 0xe6, 0x29, 0x5e, 0x62, 0x9e, 0xd2, 0x9a, 0x65,
0x51, 0xb5, 0xbc, 0x21, 0xe9, 0x4e, 0xfc, 0x1e, 0xb5, 0xcf, 0x4d, 0x28, 0x8d, 0x08, 0x09, 0x6d,
0xd3, 0x15, 0x6d, 0x5c, 0x91, 0xfe, 0x34, 0x19, 0x40, 0x6b, 0x0a, 0x30, 0xcf, 0x01, 0x4e, 0x09,
0x68, 0x0f, 0x94, 0x68, 0xe2, 0xf7, 0xec, 0xa5, 0x2d, 0x12, 0x95, 0xcf, 0xbc, 0x5d, 0x8e, 0xc4,
0x48, 0xff, 0x0c, 0xe0, 0x39, 0x99, 0xec, 0x75, 0x49, 0x9f, 0x6e, 0x2c, 0x4c, 0x22, 0xcd, 0x4c,
0x32, 0xdf, 0xfd, 0xca, 0x99, 0xb0, 0x7b, 0xf8, 0xd7, 0x02, 0x28, 0xd3, 0x6f, 0x0f, 0x48, 0x85,
0x52, 0xf7, 0xa4, 0xd1, 0x30, 0xba, 0x5d, 0x2d, 0x87, 0x76, 0x40, 0x3b, 0x69, 0x1b, 0x5f, 0x1e,
0x1b, 0x0d, 0xcb, 0x68, 0xda, 0x06, 0xc6, 0x1d, 0xac, 0x49, 0x08, 0xc1, 0x66, 0xa3, 0xd3, 0x6e,
0x1b, 0x0d, 0xcb, 0xde, 0xaf, 0x99, 0x2d, 0xa3, 0xa9, 0xe5, 0xd1, 0x75, 0xd8, 0x3e, 0x36, 0xf0,
0x91, 0xd9, 0xed, 0x9a, 0x9d, 0xb6, 0xdd, 0x34, 0xda, 0xa6, 0xd1, 0xd4, 0x64, 0x74, 0x0b, 0xae,
0x37, 0x3a, 0xad, 0x96, 0xd1, 0xb0, 0x28, 0xb9, 0xdd, 0xb1, 0x6c, 0xe3, 0x4b, 0xb3, 0x6b, 0x75,
0xb5, 0x02, 0x95, 0x6d, 0xb6, 0x5a, 0xc6, 0x41, 0xad, 0x65, 0xd7, 0xf0, 0xc1, 0xc9, 0x91, 0xd1,
0xb6, 0xb4, 0x0d, 0x2a, 0x27, 0xa1, 0x36, 0xcd, 0x23, 0xa3, 0x4d, 0xc5, 0x69, 0x25, 0x74, 0x03,
0x50, 0x42, 0x36, 0xdb, 0x4d, 0xe3, 0x4b, 0xdb, 0xfa, 0xea, 0xd8, 0xd0, 0xca, 0xe8, 0x0e, 0xdc,
0x4c, 0xe8, 0xe9, 0x7d, 0x6a, 0x47, 0x86, 0xa6, 0x20, 0x0d, 0x2a, 0xc9, 0xa4, 0xd5, 0x39, 0x7e,
0xae, 0x41, 0x5a, 0x3a, 0xee, 0xbc, 0xc2, 0x46, 0xa3, 0x83, 0x9b, 0x9a, 0x9a, 0x26, 0xbf, 0x34,
0x1a, 0x56, 0x07, 0xdb, 0x66, 0x53, 0xab, 0x50, 0xf0, 0x09, 0xb9, 0x6b, 0xd4, 0x70, 0xe3, 0xd0,
0xc6, 0x46, 0xf7, 0xa4, 0x65, 0x69, 0x55, 0x6a, 0x82, 0x7d, 0xb3, 0x65, 0x30, 0x8d, 0xf6, 0x3b,
0x27, 0xed, 0xa6, 0xb6, 0x89, 0xb6, 0x40, 0x3d, 0x32, 0xac, 0x5a, 0x62, 0x93, 0x2d, 0xba, 0x7f,
0xa3, 0xd6, 0x38, 0x34, 0x12, 0x8a, 0x86, 0x76, 0x61, 0xa7, 0x51, 0x6b, 0x53, 0xa6, 0x06, 0x36,
0x6a, 0x96, 0x61, 0xef, 0x77, 0x5a, 0x4d, 0x03, 0x6b, 0xdb, 0x54, 0xc1, 0xb9, 0x19, 0xb3, 0x65,
0x68, 0x28, 0xc5, 0xd1, 0x34, 0x5a, 0xc6, 0x8c, 0xe3, 0x5a, 0x8a, 0x23, 0x99, 0xa1, 0x1c, 0x3b,
0x54, 0x99, 0xfa, 0x89, 0xd9, 0x6a, 0x0a, 0x43, 0x71, 0xa7, 0x5d, 0x47, 0xdb, 0x50, 0x4d, 0x94,
0x69, 0xb7, 0xcc, 0xae, 0xa5, 0xdd, 0x40, 0x37, 0xe1, 0x5a, 0x42, 0x3a, 0x32, 0x2c, 0x6c, 0x36,
0xb8, 0x55, 0x6f, 0xd2, 0xb5, 0x9d, 0x13, 0xcb, 0xee, 0xec, 0xdb, 0x47, 0xc6, 0x51, 0x07, 0x7f,
0xa5, 0xed, 0x3e, 0xfc, 0xa3, 0x04, 0xe5, 0xa4, 0x3b, 0x47, 0x65, 0x28, 0xb4, 0x3b, 0x6d, 0x43,
0xcb, 0xd1, 0x51, 0xbd, 0xd3, 0x69, 0x69, 0x12, 0x1d, 0x99, 0x6d, 0xeb, 0xa9, 0x96, 0x47, 0x0a,
0x6c, 0x98, 0x6d, 0xeb, 0xa3, 0xc7, 0x9a, 0x2c, 0x86, 0x1f, 0xef, 0x69, 0x05, 0x31, 0x7c, 0xfc,
0x89, 0xb6, 0x41, 0x87, 0xfb, 0xad, 0x4e, 0xcd, 0xd2, 0x00, 0x01, 0x14, 0x9b, 0x9d, 0x93, 0x7a,
0xcb, 0xd0, 0x54, 0x3a, 0xee, 0x5a, 0xd8, 0x6c, 0x1f, 0x68, 0x3b, 0x14, 0x81, 0xf0, 0x44, 0xdd,
0x6c, 0xd7, 0xf0, 0x57, 0x9a, 0x4b, 0xad, 0x29, 0x48, 0x9c, 0x99, 0x3c, 0x6c, 0xc0, 0xd6, 0x5c,
0x3f, 0x89, 0x8a, 0x90, 0x6f, 0x59, 0x5a, 0x0e, 0x95, 0x40, 0x6e, 0x59, 0x86, 0x26, 0x51, 0x82,
0xf1, 0x42, 0xcb, 0xd3, 0xbf, 0x07, 0x96, 0x26, 0xd3, 0x89, 0x03, 0xcb, 0xd0, 0x0a, 0x94, 0xd0,
0x36, 0xb4, 0x8d, 0x87, 0x4f, 0x61, 0x83, 0xf5, 0x28, 0x34, 0xf0, 0xcd, 0xf6, 0xcb, 0x5a, 0xcb,
0x6c, 0x72, 0xbd, 0x8e, 0x4e, 0xba, 0x96, 0x26, 0x31, 0x54, 0x87, 0x9d, 0x93, 0x16, 0x0d, 0xf2,
0x0a, 0x94, 0x29, 0x95, 0x7a, 0x5d, 0x93, 0x1f, 0xde, 0x87, 0x22, 0x2f, 0xbc, 0x74, 0x8d, 0xd9,
0xee, 0x1a, 0x98, 0xee, 0x4c, 0x35, 0x62, 0xfe, 0xd0, 0xa4, 0x87, 0xf7, 0xa0, 0x9c, 0xa4, 0x2b,
0x95, 0x88, 0x8d, 0x1a, 0x95, 0xad, 0xc0, 0xc6, 0x2b, 0x6c, 0xd2, 0x05, 0x7b, 0xdf, 0x57, 0xa1,
0x7a, 0xc4, 0x92, 0xbb, 0x4b, 0xc2, 0xb7, 0x5e, 0x8f, 0xa0, 0x5f, 0x80, 0xd6, 0x08, 0x89, 0x13,
0x93, 0xd9, 0x4d, 0x1a, 0x2d, 0xfc, 0x2c, 0x73, 0x7b, 0xd1, 0x5d, 0x5a, 0xcf, 0xa1, 0x7d, 0xa8,
0x1e, 0x3a, 0x51, 0x8a, 0xfb, 0xce, 0x5c, 0xff, 0x9b, 0x2e, 0xce, 0xb7, 0x6f, 0x9c, 0xeb, 0x94,
0xf8, 0x6b, 0x51, 0x0e, 0x99, 0x80, 0x9a, 0x24, 0xea, 0x85, 0xde, 0x29, 0x59, 0x55, 0xd8, 0x42,
0x9c, 0x7a, 0x0e, 0xbd, 0xa0, 0x7e, 0x1a, 0xfb, 0xf1, 0xaa, 0x72, 0xee, 0x2d, 0x99, 0x9c, 0x3e,
0x2b, 0xe5, 0xd0, 0x2f, 0x61, 0xab, 0xfb, 0x86, 0xfe, 0x4c, 0xe6, 0xa2, 0x39, 0x2b, 0x89, 0x67,
0xa7, 0xa5, 0xb2, 0x92, 0xef, 0x97, 0x7a, 0x0e, 0x1d, 0x03, 0xca, 0xca, 0x62, 0x4f, 0x17, 0x17,
0x22, 0x5c, 0x36, 0xc9, 0x9e, 0x2a, 0x72, 0xa8, 0x09, 0x9b, 0xcd, 0x30, 0x18, 0xad, 0xaa, 0xef,
0x12, 0x4f, 0x7e, 0x06, 0x2a, 0x0f, 0x05, 0xf6, 0x48, 0x86, 0xb2, 0xbd, 0xe5, 0xec, 0xe1, 0x6c,
0x19, 0x7b, 0x03, 0xaa, 0x89, 0x03, 0x2f, 0x11, 0xb0, 0x6c, 0x42, 0xcf, 0xa1, 0x67, 0xa0, 0x50,
0x4d, 0x7e, 0x18, 0x02, 0x03, 0xb6, 0xb8, 0x02, 0xd3, 0x8f, 0x7c, 0x73, 0x76, 0xc8, 0x7e, 0x49,
0x5c, 0x2e, 0xa6, 0x72, 0xe8, 0x44, 0x2b, 0xca, 0x58, 0x1e, 0xd0, 0xcf, 0x61, 0x93, 0xba, 0x79,
0xba, 0x3e, 0xba, 0xd8, 0x29, 0xb7, 0x17, 0xef, 0x22, 0x62, 0x86, 0x1a, 0x37, 0x0c, 0x46, 0x57,
0x53, 0xec, 0x53, 0x28, 0xf2, 0xa6, 0x16, 0xed, 0xce, 0x59, 0x76, 0xfa, 0xfd, 0x69, 0x4e, 0x9f,
0xe9, 0xc7, 0x46, 0x66, 0x96, 0xea, 0xf4, 0x45, 0xac, 0x3e, 0x31, 0x9b, 0x73, 0x10, 0xb2, 0x0f,
0x5a, 0xb7, 0x17, 0x3f, 0xb2, 0xeb, 0x39, 0x74, 0x48, 0xaf, 0x54, 0xb3, 0x87, 0x35, 0xf4, 0x7f,
0x73, 0x1d, 0xfd, 0xdc, 0x9b, 0xdb, 0x05, 0x80, 0x3e, 0x87, 0x22, 0x6f, 0x0f, 0xd1, 0xd2, 0x6f,
0x1c, 0xb7, 0xb3, 0x33, 0xa9, 0x8f, 0x08, 0x2c, 0x0f, 0xb7, 0xe6, 0xbe, 0xb5, 0xa0, 0xf7, 0x17,
0x08, 0xca, 0x7e, 0x89, 0xb9, 0x50, 0xe2, 0x13, 0x90, 0x1b, 0x43, 0x77, 0x49, 0x65, 0x98, 0x03,
0x99, 0x7a, 0x83, 0xcf, 0xa1, 0x1a, 0xc0, 0xec, 0x81, 0x14, 0x65, 0x1b, 0xd6, 0xb9, 0x97, 0xd3,
0x65, 0xce, 0x3d, 0x80, 0xed, 0xe3, 0x90, 0x0c, 0x02, 0xc7, 0xbd, 0x62, 0x19, 0x78, 0x02, 0x1b,
0xec, 0x15, 0x79, 0x2e, 0xfd, 0x66, 0x2f, 0xcb, 0xcb, 0x18, 0x9f, 0xb1, 0xc7, 0xf7, 0x91, 0xd3,
0x8b, 0xd1, 0xad, 0xf3, 0x6f, 0x20, 0xe2, 0x49, 0x79, 0x19, 0x73, 0x1d, 0xca, 0xc2, 0x6f, 0x75,
0x74, 0x7b, 0x99, 0x3b, 0x8f, 0xeb, 0x17, 0x99, 0xbf, 0x5e, 0xfa, 0x7a, 0x63, 0x18, 0xf5, 0x47,
0xa7, 0xa7, 0x45, 0xf6, 0x9f, 0x31, 0x1f, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0x60, 0x92, 0xd0,
0x02, 0x2a, 0x23, 0x00, 0x00,
}

View File

@ -678,7 +678,7 @@ message InsertOrDeleteMsg {
RowData rows_data = 2;
int64 uid = 3; //optional
string partition_tag = 4;
int64 timestamp =5;
uint64 timestamp =5;
int64 segment_id = 6;
int64 channel_id = 7;
OpType op = 8;
@ -691,7 +691,7 @@ message SearchMsg {
VectorRowRecord records = 2;
string partition_tag = 3;
int64 uid = 4;
int64 timestamp =5;
uint64 timestamp =5;
int64 client_id = 6;
repeated KeyValuePair extra_params = 7;
}
@ -702,7 +702,7 @@ enum SyncType {
}
message TimeSyncMsg{
int64 peer_Id = 1;
int64 Timestamp = 2;
uint64 Timestamp = 2;
SyncType sync_type = 3;
}

View File

@ -32,8 +32,8 @@ message( STATUS "Build version = ${MILVUS_VERSION}" )
get_last_commit_id( LAST_COMMIT_ID )
message( STATUS "LAST_COMMIT_ID = ${LAST_COMMIT_ID}" )
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/version.h.in
${CMAKE_CURRENT_SOURCE_DIR}/src/version.h @ONLY )
#configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/version.h.in
# ${CMAKE_CURRENT_SOURCE_DIR}/src/version.h @ONLY )
# unset(CMAKE_EXPORT_COMPILE_COMMANDS CACHE)
set( CMAKE_EXPORT_COMPILE_COMMANDS ON )

View File

@ -11,17 +11,6 @@
version: 0.5
#----------------------+------------------------------------------------------------+------------+-----------------+
# Cluster Config | Description | Type | Default |
#----------------------+------------------------------------------------------------+------------+-----------------+
# enable | If running with Mishards, set true, otherwise false. | Boolean | false |
#----------------------+------------------------------------------------------------+------------+-----------------+
# role | Milvus deployment role: rw / ro | Role | rw |
#----------------------+------------------------------------------------------------+------------+-----------------+
cluster:
enable: false
role: rw
#----------------------+------------------------------------------------------------+------------+-----------------+
# General Config | Description | Type | Default |
#----------------------+------------------------------------------------------------+------------+-----------------+
@ -68,36 +57,6 @@ storage:
path: /tmp
auto_flush_interval: 1
#----------------------+------------------------------------------------------------+------------+-----------------+
# WAL Config | Description | Type | Default |
#----------------------+------------------------------------------------------------+------------+-----------------+
# enable | Whether to enable write-ahead logging (WAL) in Milvus. | Boolean | true |
# | If WAL is enabled, Milvus writes all data changes to log | | |
# | files in advance before implementing data changes. WAL | | |
# | ensures the atomicity and durability for Milvus operations.| | |
#----------------------+------------------------------------------------------------+------------+-----------------+
# recovery_error_ignore| Whether to ignore logs with errors that happens during WAL | Boolean | false |
# | recovery. If true, when Milvus restarts for recovery and | | |
# | there are errors in WAL log files, log files with errors | | |
# | are ignored. If false, Milvus does not restart when there | | |
# | are errors in WAL log files. | | |
#----------------------+------------------------------------------------------------+------------+-----------------+
# buffer_size | Sum total of the read buffer and the write buffer in Bytes.| String | 256MB |
# | buffer_size must be in range [64MB, 4096MB]. | | |
# | If the value you specified is out of range, Milvus | | |
# | automatically uses the boundary value closest to the | | |
# | specified value. It is recommended you set buffer_size to | | |
# | a value greater than the inserted data size of a single | | |
# | insert operation for better performance. | | |
#----------------------+------------------------------------------------------------+------------+-----------------+
# path | Location of WAL log files. | String | |
#----------------------+------------------------------------------------------------+------------+-----------------+
wal:
enable: true
recovery_error_ignore: false
buffer_size: 256MB
path: /tmp/wal
#----------------------+------------------------------------------------------------+------------+-----------------+
# Cache Config | Description | Type | Default |
#----------------------+------------------------------------------------------------+------------+-----------------+
@ -119,36 +78,6 @@ cache:
insert_buffer_size: 1GB
preload_collection:
#----------------------+------------------------------------------------------------+------------+-----------------+
# GPU Config | Description | Type | Default |
#----------------------+------------------------------------------------------------+------------+-----------------+
# enable | Use GPU devices or not. | Boolean | false |
#----------------------+------------------------------------------------------------+------------+-----------------+
# cache_size | The size of GPU memory per card used for cache. | String | 1GB |
#----------------------+------------------------------------------------------------+------------+-----------------+
# gpu_search_threshold | A Milvus performance tuning parameter. This value will be | Integer | 1000 |
# | compared with 'nq' to decide if the search computation will| | |
# | be executed on GPUs only. | | |
# | If nq >= gpu_search_threshold, the search computation will | | |
# | be executed on GPUs only; | | |
# | if nq < gpu_search_threshold, the search computation will | | |
# | be executed on both CPUs and GPUs. | | |
#----------------------+------------------------------------------------------------+------------+-----------------+
# search_devices | The list of GPU devices used for search computation. | DeviceList | gpu0 |
# | Must be in format gpux. | | |
#----------------------+------------------------------------------------------------+------------+-----------------+
# build_index_devices | The list of GPU devices used for index building. | DeviceList | gpu0 |
# | Must be in format gpux. | | |
#----------------------+------------------------------------------------------------+------------+-----------------+
gpu:
enable: false
cache_size: 1GB
gpu_search_threshold: 1000
search_devices:
- gpu0
build_index_devices:
- gpu0
#----------------------+------------------------------------------------------------+------------+-----------------+
# Logs Config | Description | Type | Default |
#----------------------+------------------------------------------------------------+------------+-----------------+
@ -172,17 +101,9 @@ logs:
max_log_file_size: 1024MB
log_rotate_num: 0
#----------------------+------------------------------------------------------------+------------+-----------------+
# Metric Config | Description | Type | Default |
#----------------------+------------------------------------------------------------+------------+-----------------+
# enable | Enable monitoring function or not. | Boolean | false |
#----------------------+------------------------------------------------------------+------------+-----------------+
# address | Pushgateway address | IP | 127.0.0.1 +
#----------------------+------------------------------------------------------------+------------+-----------------+
# port | Pushgateway port, port range (1024, 65535) | Integer | 9091 |
#----------------------+------------------------------------------------------------+------------+-----------------+
metric:
enable: false
address: 127.0.0.1
port: 9091
level: debug
pulsar:
address: 192.168.2.18
port: 6650

View File

@ -15,7 +15,6 @@ include_directories(${MILVUS_SOURCE_DIR})
include_directories(${MILVUS_ENGINE_SRC})
include_directories(${MILVUS_THIRDPARTY_SRC})
#include_directories(${MILVUS_ENGINE_SRC}/grpc/gen-status)
include_directories(${MILVUS_ENGINE_SRC}/grpc)
add_subdirectory( tracing )

View File

@ -13,7 +13,7 @@
#include <cstring>
#include <limits>
#include <unordered_map>
#include<iostream>
#include "config/ConfigMgr.h"
#include "config/ServerConfig.h"
@ -71,17 +71,9 @@ ConfigMgr::ConfigMgr() {
/* version */
{"version", CreateStringConfig("version", false, &config.version.value, "unknown", nullptr, nullptr)},
/* cluster */
{"cluster.enable",
CreateBoolConfig("cluster.enable", false, &config.cluster.enable.value, false, nullptr, nullptr)},
{"cluster.role", CreateEnumConfig("cluster.role", false, &ClusterRoleMap, &config.cluster.role.value,
ClusterRole::RW, nullptr, nullptr)},
/* general */
{"general.timezone",
CreateStringConfig("general.timezone", false, &config.general.timezone.value, "UTC+8", nullptr, nullptr)},
{"general.meta_uri", CreateStringConfig("general.meta_uri", false, &config.general.meta_uri.value,
"sqlite://:@:/", nullptr, nullptr)},
/* network */
{"network.bind.address", CreateStringConfig("network.bind.address", false, &config.network.bind.address.value,
@ -93,6 +85,13 @@ ConfigMgr::ConfigMgr() {
{"network.http.port", CreateIntegerConfig("network.http.port", false, 0, 65535, &config.network.http.port.value,
19121, nullptr, nullptr)},
/* pulsar */
{"pulsar.address", CreateStringConfig("pulsar.address", false, &config.pulsar.address.value,
"localhost", nullptr, nullptr)},
{"pulsar.port", CreateIntegerConfig("pulsar.port", false, 0, 65535, &config.pulsar.port.value,
6650, nullptr, nullptr)},
/* storage */
{"storage.path",
CreateStringConfig("storage.path", false, &config.storage.path.value, "/var/lib/milvus", nullptr, nullptr)},
@ -100,15 +99,6 @@ ConfigMgr::ConfigMgr() {
CreateIntegerConfig("storage.auto_flush_interval", true, 0, std::numeric_limits<int64_t>::max(),
&config.storage.auto_flush_interval.value, 1, nullptr, nullptr)},
/* wal */
{"wal.enable", CreateBoolConfig("wal.enable", false, &config.wal.enable.value, true, nullptr, nullptr)},
{"wal.recovery_error_ignore",
CreateBoolConfig("wal.recovery_error_ignore", false, &config.wal.recovery_error_ignore.value, false, nullptr,
nullptr)},
{"wal.buffer_size", CreateSizeConfig("wal.buffer_size", false, 64 * MB, 4096 * MB,
&config.wal.buffer_size.value, 256 * MB, nullptr, nullptr)},
{"wal.path",
CreateStringConfig("wal.path", false, &config.wal.path.value, "/var/lib/milvus/wal", nullptr, nullptr)},
/* cache */
{"cache.cache_size", CreateSizeConfig("cache.cache_size", true, 0, std::numeric_limits<int64_t>::max(),
@ -124,21 +114,6 @@ ConfigMgr::ConfigMgr() {
{"cache.preload_collection", CreateStringConfig("cache.preload_collection", false,
&config.cache.preload_collection.value, "", nullptr, nullptr)},
/* gpu */
{"gpu.enable", CreateBoolConfig("gpu.enable", false, &config.gpu.enable.value, false, nullptr, nullptr)},
{"gpu.cache_size", CreateSizeConfig("gpu.cache_size", true, 0, std::numeric_limits<int64_t>::max(),
&config.gpu.cache_size.value, 1 * GB, nullptr, nullptr)},
{"gpu.cache_threshold", CreateFloatingConfig("gpu.cache_threshold", false, 0.0, 1.0,
&config.gpu.cache_threshold.value, 0.7, nullptr, nullptr)},
{"gpu.gpu_search_threshold",
CreateIntegerConfig("gpu.gpu_search_threshold", true, 0, std::numeric_limits<int64_t>::max(),
&config.gpu.gpu_search_threshold.value, 1000, nullptr, nullptr)},
{"gpu.search_devices",
CreateStringConfig("gpu.search_devices", false, &config.gpu.search_devices.value, "gpu0", nullptr, nullptr)},
{"gpu.build_index_devices",
CreateStringConfig("gpu.build_index_devices", false, &config.gpu.build_index_devices.value, "gpu0", nullptr,
nullptr)},
/* log */
{"logs.level", CreateStringConfig("logs.level", false, &config.logs.level.value, "debug", nullptr, nullptr)},
{"logs.trace.enable",
@ -150,14 +125,6 @@ ConfigMgr::ConfigMgr() {
{"logs.log_rotate_num", CreateIntegerConfig("logs.log_rotate_num", false, 0, 1024,
&config.logs.log_rotate_num.value, 0, nullptr, nullptr)},
/* metric */
{"metric.enable",
CreateBoolConfig("metric.enable", false, &config.metric.enable.value, false, nullptr, nullptr)},
{"metric.address",
CreateStringConfig("metric.address", false, &config.metric.address.value, "127.0.0.1", nullptr, nullptr)},
{"metric.port",
CreateIntegerConfig("metric.port", false, 1024, 65535, &config.metric.port.value, 9091, nullptr, nullptr)},
/* tracing */
{"tracing.json_config_path", CreateStringConfig("tracing.json_config_path", false,
&config.tracing.json_config_path.value, "", nullptr, nullptr)},
@ -193,17 +160,19 @@ void
ConfigMgr::Load(const std::string& path) {
/* load from milvus.yaml */
auto yaml = YAML::LoadFile(path);
/* make it flattened */
std::unordered_map<std::string, std::string> flattened;
Flatten(yaml, flattened, "");
/* update config */
for (auto& it : flattened) Set(it.first, it.second, false);
}
void
ConfigMgr::Set(const std::string& name, const std::string& value, bool update) {
if (config_list_.find(name) == config_list_.end()){
std::cout<<"Config "<< name << " not found!"<<std::endl;
return;
}
try {
auto& config = config_list_.at(name);
std::unique_lock<std::mutex> lock(GetConfigMutex());

View File

@ -44,11 +44,6 @@ enum ClusterRole {
RO,
};
const configEnum ClusterRoleMap{
{"rw", ClusterRole::RW},
{"ro", ClusterRole::RO},
};
enum SimdType {
AUTO = 1,
SSE,
@ -71,14 +66,8 @@ struct ServerConfig {
String version{"unknown"};
struct Cluster {
Bool enable{false};
Integer role{0};
} cluster;
struct General {
String timezone{"unknown"};
String meta_uri{"unknown"};
} general;
struct Network {
@ -92,6 +81,11 @@ struct ServerConfig {
} http;
} network;
struct Pulsar{
String address{"localhost"};
Integer port{6650};
}pulsar;
struct Storage {
String path{"unknown"};
Integer auto_flush_interval{0};
@ -105,12 +99,6 @@ struct ServerConfig {
String preload_collection{"unknown"};
} cache;
struct Metric {
Bool enable{false};
String address{"unknown"};
Integer port{0};
} metric;
struct Engine {
Integer build_index_threshold{4096};
Integer search_combine_nq{0};
@ -119,25 +107,10 @@ struct ServerConfig {
Integer simd_type{0};
} engine;
struct GPU {
Bool enable{false};
Integer cache_size{0};
Floating cache_threshold{0.0};
Integer gpu_search_threshold{0};
String search_devices{"unknown"};
String build_index_devices{"unknown"};
} gpu;
struct Tracing {
String json_config_path{"unknown"};
} tracing;
struct WAL {
Bool enable{false};
Bool recovery_error_ignore{false};
Integer buffer_size{0};
String path{"unknown"};
} wal;
struct Logs {
String level{"unknown"};

View File

@ -12,7 +12,7 @@ add_library(message_client_cpp
target_include_directories(message_client_cpp PUBLIC ${PROJECT_BINARY_DIR}/thirdparty/pulsar/pulsar-src/pulsar-client-cpp/include)
target_link_libraries(message_client_cpp pulsarStatic libprotobuf)
target_link_libraries(message_client_cpp utils pulsarStatic libprotobuf)
#install(TARGETS message_client_cpp
# DESTINATION lib)

View File

@ -1,6 +1,8 @@
#include "ClientV2.h"
#include "pulsar/Result.h"
#include "PartitionPolicy.h"
#include "utils/CommonUtil.h"
#include "config/ServerConfig.h"
namespace {
int64_t gen_channe_id(int64_t uid) {
@ -13,7 +15,9 @@ namespace milvus::message_client {
MsgClientV2 &MsgClientV2::GetInstance() {
// TODO: do not hardcode pulsar message configure and init
std::string pulsar_server_addr = "pulsar://localhost:6650";
std::string pulsar_server_addr(std::string {"pulsar://"} + config.pulsar.address() + ":" + std::to_string(config.pulsar.port()));
// "pulsar://localhost:6650"
int64_t client_id = 0;
static MsgClientV2 msg_client(client_id, pulsar_server_addr);
return msg_client;
@ -38,7 +42,8 @@ Status MsgClientV2::Init(const std::string &insert_delete,
search_by_id_producer_ = std::make_shared<MsgProducer>(pulsar_client, search_by_id, producerConfiguration);
time_sync_producer_ = std::make_shared<MsgProducer>(pulsar_client, time_sync);
//create pulsar consumer
consumer_ = std::make_shared<MsgConsumer>(pulsar_client, search_result);
std::string subscribe_name = std::to_string(CommonUtil::RandomUINT64());
consumer_ = std::make_shared<MsgConsumer>(pulsar_client, search_result+subscribe_name);
auto result = consumer_->subscribe(search_result);
if (result != pulsar::Result::ResultOk) {

View File

@ -140,13 +140,6 @@ Server::Start() {
}
try {
auto meta_uri = config.general.meta_uri();
if (meta_uri.length() > 6 && strcasecmp("sqlite", meta_uri.substr(0, 6).c_str()) == 0) {
std::cout << "WARNING: You are using SQLite as the meta data management, "
"which can't be used in production. Please change it to MySQL!"
<< std::endl;
}
/* Init opentracing tracer from config */
std::string tracing_config_path = config.tracing.json_config_path();
tracing_config_path.empty() ? tracing::TracerUtil::InitGlobal()
@ -176,51 +169,6 @@ Server::Start() {
STATUS_CHECK(LogMgr::InitLog(config.logs.trace.enable(), config.logs.level(), config.logs.path(),
config.logs.max_log_file_size(), config.logs.log_rotate_num()));
bool cluster_enable = config.cluster.enable();
auto cluster_role = config.cluster.role();
Status s;
if ((not cluster_enable) || cluster_role == ClusterRole::RW) {
try {
// True if a new directory was created, otherwise false.
boost::filesystem::create_directories(config.storage.path());
} catch (std::exception& ex) {
return Status(SERVER_UNEXPECTED_ERROR, "Cannot create db directory, " + std::string(ex.what()));
} catch (...) {
return Status(SERVER_UNEXPECTED_ERROR, "Cannot create db directory");
}
s = InstanceLockCheck::Check(config.storage.path());
if (!s.ok()) {
if (not cluster_enable) {
std::cerr << "single instance lock db path failed." << s.message() << std::endl;
} else {
std::cerr << cluster_role << " instance lock db path failed." << s.message() << std::endl;
}
return s;
}
if (config.wal.enable()) {
std::string wal_path = config.wal.path();
try {
// True if a new directory was created, otherwise false.
boost::filesystem::create_directories(wal_path);
} catch (...) {
return Status(SERVER_UNEXPECTED_ERROR, "Cannot create wal directory");
}
s = InstanceLockCheck::Check(wal_path);
if (!s.ok()) {
if (not cluster_enable) {
std::cerr << "single instance lock wal path failed." << s.message() << std::endl;
} else {
std::cerr << cluster_role << " instance lock wal path failed." << s.message() << std::endl;
}
return s;
}
}
}
// print version information
LOG_SERVER_INFO_ << "Milvus " << BUILD_TYPE << " version: v" << MILVUS_VERSION << ", built at " << BUILD_TIME;
#ifdef MILVUS_GPU_VERSION
@ -238,9 +186,6 @@ Server::Start() {
<< std::string(15, '*') << "Config in memory" << std::string(15, '*') << "\n\n"
<< ConfigMgr::GetInstance().Dump();
// server::Metrics::GetInstance().Init();
// server::SystemInfo::GetInstance().Init();
return StartService();
} catch (std::exception& ex) {
std::string str = "Milvus server encounter exception: " + std::string(ex.what());

View File

@ -37,10 +37,6 @@ StorageChecker::CheckStoragePermission() {
return Status(SERVER_UNEXPECTED_ERROR, err_msg);
}
if (config.cluster.enable() && config.cluster.role() == ClusterRole::RO) {
return Status::OK();
}
/* Check db directory write permission */
const std::string& primary_path = config.storage.path();
@ -53,20 +49,6 @@ StorageChecker::CheckStoragePermission() {
return Status(SERVER_UNEXPECTED_ERROR, err_msg);
}
/* Check wal directory write permission */
if (config.wal.enable()) {
const std::string& wal_path = config.wal.path();
ret = access(wal_path.c_str(), F_OK | R_OK | W_OK);
if (0 != ret) {
std::string err_msg = " Access WAL storage path " + wal_path + " fail. " + strerror(errno) +
"(code: " + std::to_string(errno) + ")";
LOG_SERVER_FATAL_ << err_msg;
std::cerr << err_msg << std::endl;
return Status(SERVER_UNEXPECTED_ERROR, err_msg);
}
}
return Status::OK();
}

View File

@ -12,6 +12,9 @@
#include "utils/CommonUtil.h"
#include "utils/Log.h"
#include <random>
#include <limits>
#include <dirent.h>
#include <pwd.h>
#include <sys/stat.h>
@ -20,6 +23,7 @@
#include <iostream>
#include <vector>
namespace milvus {
namespace fs = boost::filesystem;
@ -181,6 +185,18 @@ CommonUtil::ConvertTime(tm time_struct, time_t& time_integer) {
time_integer = mktime(&time_struct);
}
uint64_t
CommonUtil::RandomUINT64(){
std::random_device rd; //Get a random seed from the OS entropy device, or whatever
std::mt19937_64 eng(rd()); //Use the 64-bit Mersenne Twister 19937 generator
//and seed it with entropy.
//Define the distribution, by default it goes from 0 to MAX(unsigned long long)
//or what have you.
std::uniform_int_distribution<uint64_t> distr;
return distr(eng);
}
#ifdef ENABLE_CPU_PROFILING
std::string
CommonUtil::GetCurrentTimeStr() {

View File

@ -45,6 +45,9 @@ class CommonUtil {
static void
ConvertTime(tm time_struct, time_t& time_integer);
static uint64_t
RandomUINT64();
#ifdef ENABLE_CPU_PROFILING
static std::string
GetCurrentTimeStr();

View File

@ -57,3 +57,16 @@ message( STATUS "grpc src compile options: ${var}" )
set( PROTOC_EXCUTABLE $<TARGET_FILE:protoc> )
set( GRPC_CPP_PLUGIN_EXCUTABLE $<TARGET_FILE:grpc_cpp_plugin> )
set( PROTO_PATH "${MILVUS_SOURCE_DIR}/src/grpc" )
set( PROTO_GEN_SCRIPTS_DIR "${PROJECT_SOURCE_DIR}/../scripts")
add_custom_target(generate_suvlim_pb_grpc ALL DEPENDS protoc grpc_cpp_plugin)
add_custom_command(TARGET generate_suvlim_pb_grpc
POST_BUILD
COMMAND echo "${PROTOC_EXCUTABLE}"
COMMAND bash "${PROTO_GEN_SCRIPTS_DIR}/generate_go.sh" -p "${PROTOC_EXCUTABLE}"
COMMAND echo "${PROTO_GEN_SCRIPTS_DIR}/generate_cpp.sh" -p "${PROTOC_EXCUTABLE}" -g "${GRPC_CPP_PLUGIN_EXCUTABLE}"
)
set_property( GLOBAL PROPERTY PROTOC_EXCUTABLE ${PROTOC_EXCUTABLE})
set_property( GLOBAL PROPERTY GRPC_CPP_PLUGIN_EXCUTABLE ${GRPC_CPP_PLUGIN_EXCUTABLE})

View File

@ -1,21 +1,51 @@
#!/usr/bin/env bash
protoc=`which protoc`
grpc_cpp_plugin=`which grpc_cpp_plugin`
SCRIPTS_DIR=$(dirname "$0")
while getopts "p:g:h" arg; do
case $arg in
p)
protoc=$(readlink -f "${OPTARG}")
;;
g)
grpc_cpp_plugin=$(readlink -f "${OPTARG}")
;;
h) # help
echo "
parameter:
-p: protoc path default(`which protoc`)
-g: grpc_cpp_plugin path default(`which grpc_cpp_plugin`)
-h: help
usage:
./build.sh [-h]
"
exit 0
;;
?)
echo "ERROR! unknown argument"
exit 1
;;
esac
done
ROOT_DIR="$SCRIPTS_DIR/.."
source $SCRIPTS_DIR/common.sh
#protoc=protoc
protoc=${ROOT_DIR}/proxy/cmake_build/thirdparty/grpc/grpc-build/third_party/protobuf/protoc
grpc_cpp_plugin=${ROOT_DIR}/proxy/cmake_build/thirdparty/grpc/grpc-build/grpc_cpp_plugin
#protoc=${ROOT_DIR}/proxy/cmake_build/thirdparty/grpc/grpc-build/third_party/protobuf/protoc
#grpc_cpp_plugin=${ROOT_DIR}/proxy/cmake_build/thirdparty/grpc/grpc-build/grpc_cpp_plugin
echo "generate cpp code..."
OUTDIR=${ROOT_DIR}/proxy/src/grpc
GRPC_INCLUDE=.:.
#GRPC_INCLUDE=.:../include
cd $ROOT_DIR
GRPC_INCLUDE=.:.
rm -rf proto-cpp && mkdir -p proto-cpp
PB_FILES=()

View File

@ -1,14 +1,36 @@
#!/usr/bin/env bash
SCRIPTS_DIR=$(dirname "$0")
protoc=protoc
while getopts "p:h" arg; do
case $arg in
p)
protoc=$(readlink -f "${OPTARG}")
;;
h) # help
echo "
parameter:
-p: protoc path default("protoc")
-h: help
usage:
./build.sh -p protoc [-h]
"
exit 0
;;
?)
echo "ERROR! unknown argument"
exit 1
;;
esac
done
ROOT_DIR=$SCRIPTS_DIR/..
source $SCRIPTS_DIR/common.sh
#protoc=protoc
protoc=${ROOT_DIR}/proxy/cmake_build/thirdparty/grpc/grpc-build/third_party/protobuf/protoc
push $SCRIPTS_DIR/..
KVPROTO_ROOT=`pwd`
pop
PROGRAM=$(basename "$0")
@ -20,7 +42,6 @@ if [ -z $GOPATH ]; then
fi
GO_PREFIX_PATH=github.com/czs007/suvlim/pkg
#export PATH=$KVPROTO_ROOT/_tools/bin:$GOPATH/bin:$PATH
function collect() {
file=$(basename $1)
@ -35,7 +56,7 @@ function collect() {
# Although eraftpb.proto is copying from raft-rs, however there is no
# official go code ship with the crate, so we need to generate it manually.
cd ../proto
cd ${ROOT_DIR}/proto
PB_FILES=("message.proto")
GRPC_FILES=("pdpb.proto" "metapb.proto")