From 1101edd1d33d0371f3421b3e9e7fa70f4b438a7a Mon Sep 17 00:00:00 2001 From: walker Date: Wed, 27 Dec 2023 13:04:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4repo=E5=AE=9A=E4=B9=89=20?= =?UTF-8?q?=E5=9F=8E=E8=BD=A8=E5=92=8C=E5=9B=BD=E9=93=81=E5=88=86=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proto/src/{repo.proto => cg_repo.proto} | 70 +- repo/api.go | 2 +- repo/dto/{repo.pb.go => cg_repo.pb.go} | 1745 ++++++++++------------- repo/idmapping_build.go | 25 +- repo/manage.go | 6 +- repo/repo.go | 2 +- 6 files changed, 821 insertions(+), 1029 deletions(-) rename proto/src/{repo.proto => cg_repo.proto} (93%) rename repo/dto/{repo.pb.go => cg_repo.pb.go} (57%) diff --git a/proto/src/repo.proto b/proto/src/cg_repo.proto similarity index 93% rename from proto/src/repo.proto rename to proto/src/cg_repo.proto index edef20f..6c76f68 100644 --- a/proto/src/repo.proto +++ b/proto/src/cg_repo.proto @@ -4,17 +4,13 @@ package message; option go_package = "./repo/dto"; -message Repo { +// 城轨数据 +message CgRepo { string id = 1; - oneof data { - CGData cgData = 2; - GTData gtData = 3; - } -} - -// 国铁数据 -message GTData { - + // 线路数据 + repeated Line lines = 2; + // 监控盘(IBP/PSL/MKX等)数据,线路相关数据会引用这里 + repeated JKP jkps = 3; } // 列车运行方向(Train Running Direction) @@ -25,14 +21,6 @@ enum TRD { Downward = 1; } -// 城轨数据 -message CGData { - // 线路数据 - repeated Line lines = 1; - // 监控盘(IBP/PSL/MKX等)数据,线路相关数据会引用这里 - repeated JKP jkps = 2; -} - // 城轨线路数据 message Line { // 所在城市 @@ -179,11 +167,12 @@ message DevidingPoint { // 所属设备集中站id repeated uint32 ecsIds = 6; } -// 设备 -message Device { - // 设备类型 + +// 模型 +message Model { + // 模型类型 enum Type { - // 错误未知类型 + // 未知无效 Unknown = 0; // 区段 Section = 1; @@ -192,39 +181,32 @@ message Device { // 信号机 Signal = 3; } - // 设备端点(区段、道岔) - enum Port { - A = 0; - B = 1; - C = 2; - } - // 设备id + // 模型id uint32 id = 1; - // 设备类型 + // 模型类型 Type type = 2; } // 区段端点 message SectionPort { - // 区段类型 - enum SectionType { - // 区段 - Section = 0; - // 道岔 - Turnout = 1; - } - // 端点类型 - enum PortType { + enum Type { A = 0; B = 1; C = 2; } + // 元素类型 + // enum ElementType { + // // 区段 + // Section = 0; + // // 道岔 + // Turnout = 1; + // } // 类型 - SectionType type = 1; + Model.Type type = 1; // 区段/道岔 id uint32 id = 2; // 端点 - PortType port = 3; + Type port = 3; } // 信号机 message Signal { @@ -272,6 +254,8 @@ message Signal { Model model = 3; // 所属设备集中站id uint32 ecsId = 4; + // 列车运行方向(上下行) + TRD trd = 5; } // 道岔 message Turnout { @@ -318,6 +302,8 @@ message Section { SectionPort bsp = 5; // 所属设备集中站id uint32 ecsId = 6; + // 列车运行方向(上下行) + TRD trd = 7; } // 屏蔽门 message Psd { @@ -478,7 +464,7 @@ message Lamp { // 设备电子元件组合 message DeviceEcc { // 设备类型 - Device.Type deviceType = 1; + Model.Type deviceType = 1; // 设备编号 string deviceCode = 2; // 电子元件组合 diff --git a/repo/api.go b/repo/api.go index 02eb763..0281e87 100644 --- a/repo/api.go +++ b/repo/api.go @@ -2,7 +2,7 @@ package repo import "joylink.club/rtsssimulation/repo/model" -type Repo interface { +type CgRepo interface { // 模型仓库id Id() string // 通过uid查询模型对象 diff --git a/repo/dto/repo.pb.go b/repo/dto/cg_repo.pb.go similarity index 57% rename from repo/dto/repo.pb.go rename to repo/dto/cg_repo.pb.go index 08a4ba6..0e3a220 100644 --- a/repo/dto/repo.pb.go +++ b/repo/dto/cg_repo.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.31.0 // protoc v4.23.1 -// source: repo.proto +// source: cg_repo.proto package dto @@ -20,6 +20,55 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// 列车运行方向(Train Running Direction) +type TRD int32 + +const ( + // 上行 + TRD_Upward TRD = 0 + // 下行 + TRD_Downward TRD = 1 +) + +// Enum value maps for TRD. +var ( + TRD_name = map[int32]string{ + 0: "Upward", + 1: "Downward", + } + TRD_value = map[string]int32{ + "Upward": 0, + "Downward": 1, + } +) + +func (x TRD) Enum() *TRD { + p := new(TRD) + *p = x + return p +} + +func (x TRD) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TRD) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[0].Descriptor() +} + +func (TRD) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[0] +} + +func (x TRD) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TRD.Descriptor instead. +func (TRD) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{0} +} + // 应答器类型 type Balise_Type int32 @@ -53,11 +102,11 @@ func (x Balise_Type) String() string { } func (Balise_Type) Descriptor() protoreflect.EnumDescriptor { - return file_repo_proto_enumTypes[0].Descriptor() + return file_cg_repo_proto_enumTypes[1].Descriptor() } func (Balise_Type) Type() protoreflect.EnumType { - return &file_repo_proto_enumTypes[0] + return &file_cg_repo_proto_enumTypes[1] } func (x Balise_Type) Number() protoreflect.EnumNumber { @@ -66,7 +115,7 @@ func (x Balise_Type) Number() protoreflect.EnumNumber { // Deprecated: Use Balise_Type.Descriptor instead. func (Balise_Type) EnumDescriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{13, 0} + return file_cg_repo_proto_rawDescGZIP(), []int{11, 0} } // 区段分界点类型 @@ -106,11 +155,11 @@ func (x DevidingPoint_Type) String() string { } func (DevidingPoint_Type) Descriptor() protoreflect.EnumDescriptor { - return file_repo_proto_enumTypes[1].Descriptor() + return file_cg_repo_proto_enumTypes[2].Descriptor() } func (DevidingPoint_Type) Type() protoreflect.EnumType { - return &file_repo_proto_enumTypes[1] + return &file_cg_repo_proto_enumTypes[2] } func (x DevidingPoint_Type) Number() protoreflect.EnumNumber { @@ -119,32 +168,32 @@ func (x DevidingPoint_Type) Number() protoreflect.EnumNumber { // Deprecated: Use DevidingPoint_Type.Descriptor instead. func (DevidingPoint_Type) EnumDescriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{14, 0} + return file_cg_repo_proto_rawDescGZIP(), []int{12, 0} } -// 设备类型 -type Device_Type int32 +// 模型类型 +type Model_Type int32 const ( - // 错误未知类型 - Device_Unknown Device_Type = 0 + // 未知无效 + Model_Unknown Model_Type = 0 // 区段 - Device_Section Device_Type = 1 + Model_Section Model_Type = 1 // 道岔 - Device_Turnout Device_Type = 2 + Model_Turnout Model_Type = 2 // 信号机 - Device_Signal Device_Type = 3 + Model_Signal Model_Type = 3 ) -// Enum value maps for Device_Type. +// Enum value maps for Model_Type. var ( - Device_Type_name = map[int32]string{ + Model_Type_name = map[int32]string{ 0: "Unknown", 1: "Section", 2: "Turnout", 3: "Signal", } - Device_Type_value = map[string]int32{ + Model_Type_value = map[string]int32{ "Unknown": 0, "Section": 1, "Turnout": 2, @@ -152,180 +201,80 @@ var ( } ) -func (x Device_Type) Enum() *Device_Type { - p := new(Device_Type) +func (x Model_Type) Enum() *Model_Type { + p := new(Model_Type) *p = x return p } -func (x Device_Type) String() string { +func (x Model_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (Device_Type) Descriptor() protoreflect.EnumDescriptor { - return file_repo_proto_enumTypes[2].Descriptor() +func (Model_Type) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[3].Descriptor() } -func (Device_Type) Type() protoreflect.EnumType { - return &file_repo_proto_enumTypes[2] +func (Model_Type) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[3] } -func (x Device_Type) Number() protoreflect.EnumNumber { +func (x Model_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use Device_Type.Descriptor instead. -func (Device_Type) EnumDescriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{15, 0} +// Deprecated: Use Model_Type.Descriptor instead. +func (Model_Type) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{13, 0} } -// 设备端点(区段、道岔) -type Device_Port int32 +type SectionPort_Type int32 const ( - Device_A Device_Port = 0 - Device_B Device_Port = 1 - Device_C Device_Port = 2 + SectionPort_A SectionPort_Type = 0 + SectionPort_B SectionPort_Type = 1 + SectionPort_C SectionPort_Type = 2 ) -// Enum value maps for Device_Port. +// Enum value maps for SectionPort_Type. var ( - Device_Port_name = map[int32]string{ + SectionPort_Type_name = map[int32]string{ 0: "A", 1: "B", 2: "C", } - Device_Port_value = map[string]int32{ + SectionPort_Type_value = map[string]int32{ "A": 0, "B": 1, "C": 2, } ) -func (x Device_Port) Enum() *Device_Port { - p := new(Device_Port) +func (x SectionPort_Type) Enum() *SectionPort_Type { + p := new(SectionPort_Type) *p = x return p } -func (x Device_Port) String() string { +func (x SectionPort_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (Device_Port) Descriptor() protoreflect.EnumDescriptor { - return file_repo_proto_enumTypes[3].Descriptor() +func (SectionPort_Type) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[4].Descriptor() } -func (Device_Port) Type() protoreflect.EnumType { - return &file_repo_proto_enumTypes[3] +func (SectionPort_Type) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[4] } -func (x Device_Port) Number() protoreflect.EnumNumber { +func (x SectionPort_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use Device_Port.Descriptor instead. -func (Device_Port) EnumDescriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{15, 1} -} - -// 区段类型 -type SectionPort_SectionType int32 - -const ( - // 区段 - SectionPort_Section SectionPort_SectionType = 0 - // 道岔 - SectionPort_Turnout SectionPort_SectionType = 1 -) - -// Enum value maps for SectionPort_SectionType. -var ( - SectionPort_SectionType_name = map[int32]string{ - 0: "Section", - 1: "Turnout", - } - SectionPort_SectionType_value = map[string]int32{ - "Section": 0, - "Turnout": 1, - } -) - -func (x SectionPort_SectionType) Enum() *SectionPort_SectionType { - p := new(SectionPort_SectionType) - *p = x - return p -} - -func (x SectionPort_SectionType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (SectionPort_SectionType) Descriptor() protoreflect.EnumDescriptor { - return file_repo_proto_enumTypes[4].Descriptor() -} - -func (SectionPort_SectionType) Type() protoreflect.EnumType { - return &file_repo_proto_enumTypes[4] -} - -func (x SectionPort_SectionType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use SectionPort_SectionType.Descriptor instead. -func (SectionPort_SectionType) EnumDescriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{16, 0} -} - -// 端点类型 -type SectionPort_PortType int32 - -const ( - SectionPort_A SectionPort_PortType = 0 - SectionPort_B SectionPort_PortType = 1 - SectionPort_C SectionPort_PortType = 2 -) - -// Enum value maps for SectionPort_PortType. -var ( - SectionPort_PortType_name = map[int32]string{ - 0: "A", - 1: "B", - 2: "C", - } - SectionPort_PortType_value = map[string]int32{ - "A": 0, - "B": 1, - "C": 2, - } -) - -func (x SectionPort_PortType) Enum() *SectionPort_PortType { - p := new(SectionPort_PortType) - *p = x - return p -} - -func (x SectionPort_PortType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (SectionPort_PortType) Descriptor() protoreflect.EnumDescriptor { - return file_repo_proto_enumTypes[5].Descriptor() -} - -func (SectionPort_PortType) Type() protoreflect.EnumType { - return &file_repo_proto_enumTypes[5] -} - -func (x SectionPort_PortType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use SectionPort_PortType.Descriptor instead. -func (SectionPort_PortType) EnumDescriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{16, 1} +// Deprecated: Use SectionPort_Type.Descriptor instead. +func (SectionPort_Type) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{14, 0} } // 信号机模型型号 @@ -417,11 +366,11 @@ func (x Signal_Model) String() string { } func (Signal_Model) Descriptor() protoreflect.EnumDescriptor { - return file_repo_proto_enumTypes[6].Descriptor() + return file_cg_repo_proto_enumTypes[5].Descriptor() } func (Signal_Model) Type() protoreflect.EnumType { - return &file_repo_proto_enumTypes[6] + return &file_cg_repo_proto_enumTypes[5] } func (x Signal_Model) Number() protoreflect.EnumNumber { @@ -430,7 +379,7 @@ func (x Signal_Model) Number() protoreflect.EnumNumber { // Deprecated: Use Signal_Model.Descriptor instead. func (Signal_Model) EnumDescriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{17, 0} + return file_cg_repo_proto_rawDescGZIP(), []int{15, 0} } // 道岔模型型号 @@ -466,11 +415,11 @@ func (x Turnout_Model) String() string { } func (Turnout_Model) Descriptor() protoreflect.EnumDescriptor { - return file_repo_proto_enumTypes[7].Descriptor() + return file_cg_repo_proto_enumTypes[6].Descriptor() } func (Turnout_Model) Type() protoreflect.EnumType { - return &file_repo_proto_enumTypes[7] + return &file_cg_repo_proto_enumTypes[6] } func (x Turnout_Model) Number() protoreflect.EnumNumber { @@ -479,56 +428,60 @@ func (x Turnout_Model) Number() protoreflect.EnumNumber { // Deprecated: Use Turnout_Model.Descriptor instead. func (Turnout_Model) EnumDescriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{18, 0} + return file_cg_repo_proto_rawDescGZIP(), []int{16, 0} } // 物理区段类型 -type PhysicalSection_Type int32 +type Section_Type int32 const ( // 一般物理区段 - PhysicalSection_General PhysicalSection_Type = 0 + Section_Physical Section_Type = 0 // 道岔物理区段 - PhysicalSection_Turnout PhysicalSection_Type = 1 + Section_TurnoutPhysical Section_Type = 1 + // 逻辑区段 + Section_Logical Section_Type = 2 ) -// Enum value maps for PhysicalSection_Type. +// Enum value maps for Section_Type. var ( - PhysicalSection_Type_name = map[int32]string{ - 0: "General", - 1: "Turnout", + Section_Type_name = map[int32]string{ + 0: "Physical", + 1: "TurnoutPhysical", + 2: "Logical", } - PhysicalSection_Type_value = map[string]int32{ - "General": 0, - "Turnout": 1, + Section_Type_value = map[string]int32{ + "Physical": 0, + "TurnoutPhysical": 1, + "Logical": 2, } ) -func (x PhysicalSection_Type) Enum() *PhysicalSection_Type { - p := new(PhysicalSection_Type) +func (x Section_Type) Enum() *Section_Type { + p := new(Section_Type) *p = x return p } -func (x PhysicalSection_Type) String() string { +func (x Section_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (PhysicalSection_Type) Descriptor() protoreflect.EnumDescriptor { - return file_repo_proto_enumTypes[8].Descriptor() +func (Section_Type) Descriptor() protoreflect.EnumDescriptor { + return file_cg_repo_proto_enumTypes[7].Descriptor() } -func (PhysicalSection_Type) Type() protoreflect.EnumType { - return &file_repo_proto_enumTypes[8] +func (Section_Type) Type() protoreflect.EnumType { + return &file_cg_repo_proto_enumTypes[7] } -func (x PhysicalSection_Type) Number() protoreflect.EnumNumber { +func (x Section_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use PhysicalSection_Type.Descriptor instead. -func (PhysicalSection_Type) EnumDescriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{19, 0} +// Deprecated: Use Section_Type.Descriptor instead. +func (Section_Type) EnumDescriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{17, 0} } // 继电器型号 @@ -580,11 +533,11 @@ func (x Relay_Model) String() string { } func (Relay_Model) Descriptor() protoreflect.EnumDescriptor { - return file_repo_proto_enumTypes[9].Descriptor() + return file_cg_repo_proto_enumTypes[8].Descriptor() } func (Relay_Model) Type() protoreflect.EnumType { - return &file_repo_proto_enumTypes[9] + return &file_cg_repo_proto_enumTypes[8] } func (x Relay_Model) Number() protoreflect.EnumNumber { @@ -593,7 +546,7 @@ func (x Relay_Model) Number() protoreflect.EnumNumber { // Deprecated: Use Relay_Model.Descriptor instead. func (Relay_Model) EnumDescriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{30, 0} + return file_cg_repo_proto_rawDescGZIP(), []int{28, 0} } // 监控盘类型 @@ -633,11 +586,11 @@ func (x JKP_Type) String() string { } func (JKP_Type) Descriptor() protoreflect.EnumDescriptor { - return file_repo_proto_enumTypes[10].Descriptor() + return file_cg_repo_proto_enumTypes[9].Descriptor() } func (JKP_Type) Type() protoreflect.EnumType { - return &file_repo_proto_enumTypes[10] + return &file_cg_repo_proto_enumTypes[9] } func (x JKP_Type) Number() protoreflect.EnumNumber { @@ -646,39 +599,39 @@ func (x JKP_Type) Number() protoreflect.EnumNumber { // Deprecated: Use JKP_Type.Descriptor instead. func (JKP_Type) EnumDescriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{31, 0} + return file_cg_repo_proto_rawDescGZIP(), []int{29, 0} } -type Repo struct { +// 城轨数据 +type CgRepo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - // Types that are assignable to Data: - // - // *Repo_CgData - // *Repo_GtData - Data isRepo_Data `protobuf_oneof:"data"` + // 线路数据 + Lines []*Line `protobuf:"bytes,2,rep,name=lines,proto3" json:"lines,omitempty"` + // 监控盘(IBP/PSL/MKX等)数据,线路相关数据会引用这里 + Jkps []*JKP `protobuf:"bytes,3,rep,name=jkps,proto3" json:"jkps,omitempty"` } -func (x *Repo) Reset() { - *x = Repo{} +func (x *CgRepo) Reset() { + *x = CgRepo{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[0] + mi := &file_cg_repo_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Repo) String() string { +func (x *CgRepo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Repo) ProtoMessage() {} +func (*CgRepo) ProtoMessage() {} -func (x *Repo) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[0] +func (x *CgRepo) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -689,146 +642,26 @@ func (x *Repo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Repo.ProtoReflect.Descriptor instead. -func (*Repo) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{0} +// Deprecated: Use CgRepo.ProtoReflect.Descriptor instead. +func (*CgRepo) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{0} } -func (x *Repo) GetId() string { +func (x *CgRepo) GetId() string { if x != nil { return x.Id } return "" } -func (m *Repo) GetData() isRepo_Data { - if m != nil { - return m.Data - } - return nil -} - -func (x *Repo) GetCgData() *CGData { - if x, ok := x.GetData().(*Repo_CgData); ok { - return x.CgData - } - return nil -} - -func (x *Repo) GetGtData() *GTData { - if x, ok := x.GetData().(*Repo_GtData); ok { - return x.GtData - } - return nil -} - -type isRepo_Data interface { - isRepo_Data() -} - -type Repo_CgData struct { - CgData *CGData `protobuf:"bytes,2,opt,name=cgData,proto3,oneof"` -} - -type Repo_GtData struct { - GtData *GTData `protobuf:"bytes,3,opt,name=gtData,proto3,oneof"` -} - -func (*Repo_CgData) isRepo_Data() {} - -func (*Repo_GtData) isRepo_Data() {} - -// 国铁数据 -type GTData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *GTData) Reset() { - *x = GTData{} - if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GTData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GTData) ProtoMessage() {} - -func (x *GTData) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GTData.ProtoReflect.Descriptor instead. -func (*GTData) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{1} -} - -// 城轨数据 -type CGData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // 线路数据 - Lines []*Line `protobuf:"bytes,1,rep,name=lines,proto3" json:"lines,omitempty"` - // 监控盘(IBP/PSL/MKX等)数据,线路相关数据会引用这里 - Jkps []*JKP `protobuf:"bytes,2,rep,name=jkps,proto3" json:"jkps,omitempty"` -} - -func (x *CGData) Reset() { - *x = CGData{} - if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CGData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CGData) ProtoMessage() {} - -func (x *CGData) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CGData.ProtoReflect.Descriptor instead. -func (*CGData) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{2} -} - -func (x *CGData) GetLines() []*Line { +func (x *CgRepo) GetLines() []*Line { if x != nil { return x.Lines } return nil } -func (x *CGData) GetJkps() []*JKP { +func (x *CgRepo) GetJkps() []*JKP { if x != nil { return x.Jkps } @@ -854,7 +687,7 @@ type Line struct { func (x *Line) Reset() { *x = Line{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[3] + mi := &file_cg_repo_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -867,7 +700,7 @@ func (x *Line) String() string { func (*Line) ProtoMessage() {} func (x *Line) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[3] + mi := &file_cg_repo_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -880,7 +713,7 @@ func (x *Line) ProtoReflect() protoreflect.Message { // Deprecated: Use Line.ProtoReflect.Descriptor instead. func (*Line) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{3} + return file_cg_repo_proto_rawDescGZIP(), []int{1} } func (x *Line) GetCity() string { @@ -925,8 +758,8 @@ type XHBZ struct { Platforms []*Platform `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms,omitempty"` // 屏蔽门 Psds []*Psd `protobuf:"bytes,4,rep,name=psds,proto3" json:"psds,omitempty"` - // 物理区段 - PhysicalSections []*PhysicalSection `protobuf:"bytes,5,rep,name=physicalSections,proto3" json:"physicalSections,omitempty"` + // 区段 + Sections []*Section `protobuf:"bytes,5,rep,name=sections,proto3" json:"sections,omitempty"` // 道岔 Turnouts []*Turnout `protobuf:"bytes,6,rep,name=turnouts,proto3" json:"turnouts,omitempty"` // 检测点 @@ -958,7 +791,7 @@ type XHBZ struct { func (x *XHBZ) Reset() { *x = XHBZ{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[4] + mi := &file_cg_repo_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -971,7 +804,7 @@ func (x *XHBZ) String() string { func (*XHBZ) ProtoMessage() {} func (x *XHBZ) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[4] + mi := &file_cg_repo_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -984,7 +817,7 @@ func (x *XHBZ) ProtoReflect() protoreflect.Message { // Deprecated: Use XHBZ.ProtoReflect.Descriptor instead. func (*XHBZ) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{4} + return file_cg_repo_proto_rawDescGZIP(), []int{2} } func (x *XHBZ) GetId() string { @@ -1015,9 +848,9 @@ func (x *XHBZ) GetPsds() []*Psd { return nil } -func (x *XHBZ) GetPhysicalSections() []*PhysicalSection { +func (x *XHBZ) GetSections() []*Section { if x != nil { - return x.PhysicalSections + return x.Sections } return nil } @@ -1129,7 +962,7 @@ type SPKS struct { func (x *SPKS) Reset() { *x = SPKS{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[5] + mi := &file_cg_repo_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1142,7 +975,7 @@ func (x *SPKS) String() string { func (*SPKS) ProtoMessage() {} func (x *SPKS) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[5] + mi := &file_cg_repo_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1155,7 +988,7 @@ func (x *SPKS) ProtoReflect() protoreflect.Message { // Deprecated: Use SPKS.ProtoReflect.Descriptor instead. func (*SPKS) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{5} + return file_cg_repo_proto_rawDescGZIP(), []int{3} } func (x *SPKS) GetId() uint32 { @@ -1195,7 +1028,7 @@ type PSL struct { func (x *PSL) Reset() { *x = PSL{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[6] + mi := &file_cg_repo_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1208,7 +1041,7 @@ func (x *PSL) String() string { func (*PSL) ProtoMessage() {} func (x *PSL) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[6] + mi := &file_cg_repo_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1221,7 +1054,7 @@ func (x *PSL) ProtoReflect() protoreflect.Message { // Deprecated: Use PSL.ProtoReflect.Descriptor instead. func (*PSL) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{6} + return file_cg_repo_proto_rawDescGZIP(), []int{4} } func (x *PSL) GetId() uint32 { @@ -1261,7 +1094,7 @@ type Mkx struct { func (x *Mkx) Reset() { *x = Mkx{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[7] + mi := &file_cg_repo_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1274,7 +1107,7 @@ func (x *Mkx) String() string { func (*Mkx) ProtoMessage() {} func (x *Mkx) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[7] + mi := &file_cg_repo_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1287,7 +1120,7 @@ func (x *Mkx) ProtoReflect() protoreflect.Message { // Deprecated: Use Mkx.ProtoReflect.Descriptor instead. func (*Mkx) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{7} + return file_cg_repo_proto_rawDescGZIP(), []int{5} } func (x *Mkx) GetId() uint32 { @@ -1327,7 +1160,7 @@ type TDT struct { func (x *TDT) Reset() { *x = TDT{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[8] + mi := &file_cg_repo_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1340,7 +1173,7 @@ func (x *TDT) String() string { func (*TDT) ProtoMessage() {} func (x *TDT) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[8] + mi := &file_cg_repo_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1353,7 +1186,7 @@ func (x *TDT) ProtoReflect() protoreflect.Message { // Deprecated: Use TDT.ProtoReflect.Descriptor instead. func (*TDT) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{8} + return file_cg_repo_proto_rawDescGZIP(), []int{6} } func (x *TDT) GetId() uint32 { @@ -1393,7 +1226,7 @@ type EMP struct { func (x *EMP) Reset() { *x = EMP{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[9] + mi := &file_cg_repo_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1406,7 +1239,7 @@ func (x *EMP) String() string { func (*EMP) ProtoMessage() {} func (x *EMP) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[9] + mi := &file_cg_repo_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1419,7 +1252,7 @@ func (x *EMP) ProtoReflect() protoreflect.Message { // Deprecated: Use EMP.ProtoReflect.Descriptor instead. func (*EMP) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{9} + return file_cg_repo_proto_rawDescGZIP(), []int{7} } func (x *EMP) GetId() uint32 { @@ -1455,7 +1288,7 @@ type Qd struct { func (x *Qd) Reset() { *x = Qd{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[10] + mi := &file_cg_repo_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1468,7 +1301,7 @@ func (x *Qd) String() string { func (*Qd) ProtoMessage() {} func (x *Qd) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[10] + mi := &file_cg_repo_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1481,7 +1314,7 @@ func (x *Qd) ProtoReflect() protoreflect.Message { // Deprecated: Use Qd.ProtoReflect.Descriptor instead. func (*Qd) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{10} + return file_cg_repo_proto_rawDescGZIP(), []int{8} } func (x *Qd) GetId() uint32 { @@ -1503,7 +1336,7 @@ type Pd struct { func (x *Pd) Reset() { *x = Pd{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[11] + mi := &file_cg_repo_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1516,7 +1349,7 @@ func (x *Pd) String() string { func (*Pd) ProtoMessage() {} func (x *Pd) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[11] + mi := &file_cg_repo_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1529,7 +1362,7 @@ func (x *Pd) ProtoReflect() protoreflect.Message { // Deprecated: Use Pd.ProtoReflect.Descriptor instead. func (*Pd) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{11} + return file_cg_repo_proto_rawDescGZIP(), []int{9} } func (x *Pd) GetId() uint32 { @@ -1555,7 +1388,7 @@ type ParkingSpot struct { func (x *ParkingSpot) Reset() { *x = ParkingSpot{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[12] + mi := &file_cg_repo_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1568,7 +1401,7 @@ func (x *ParkingSpot) String() string { func (*ParkingSpot) ProtoMessage() {} func (x *ParkingSpot) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[12] + mi := &file_cg_repo_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1581,7 +1414,7 @@ func (x *ParkingSpot) ProtoReflect() protoreflect.Message { // Deprecated: Use ParkingSpot.ProtoReflect.Descriptor instead. func (*ParkingSpot) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{12} + return file_cg_repo_proto_rawDescGZIP(), []int{10} } func (x *ParkingSpot) GetId() uint32 { @@ -1623,7 +1456,7 @@ type Balise struct { func (x *Balise) Reset() { *x = Balise{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[13] + mi := &file_cg_repo_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1636,7 +1469,7 @@ func (x *Balise) String() string { func (*Balise) ProtoMessage() {} func (x *Balise) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[13] + mi := &file_cg_repo_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1649,7 +1482,7 @@ func (x *Balise) ProtoReflect() protoreflect.Message { // Deprecated: Use Balise.ProtoReflect.Descriptor instead. func (*Balise) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{13} + return file_cg_repo_proto_rawDescGZIP(), []int{11} } func (x *Balise) GetId() uint32 { @@ -1702,7 +1535,7 @@ type DevidingPoint struct { func (x *DevidingPoint) Reset() { *x = DevidingPoint{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[14] + mi := &file_cg_repo_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1715,7 +1548,7 @@ func (x *DevidingPoint) String() string { func (*DevidingPoint) ProtoMessage() {} func (x *DevidingPoint) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[14] + mi := &file_cg_repo_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1728,7 +1561,7 @@ func (x *DevidingPoint) ProtoReflect() protoreflect.Message { // Deprecated: Use DevidingPoint.ProtoReflect.Descriptor instead. func (*DevidingPoint) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{14} + return file_cg_repo_proto_rawDescGZIP(), []int{12} } func (x *DevidingPoint) GetId() uint32 { @@ -1773,35 +1606,35 @@ func (x *DevidingPoint) GetEcsIds() []uint32 { return nil } -// 设备 -type Device struct { +// 模型 +type Model struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 设备id + // 模型id Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - // 设备类型 - Type Device_Type `protobuf:"varint,2,opt,name=type,proto3,enum=message.Device_Type" json:"type,omitempty"` + // 模型类型 + Type Model_Type `protobuf:"varint,2,opt,name=type,proto3,enum=message.Model_Type" json:"type,omitempty"` } -func (x *Device) Reset() { - *x = Device{} +func (x *Model) Reset() { + *x = Model{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[15] + mi := &file_cg_repo_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Device) String() string { +func (x *Model) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Device) ProtoMessage() {} +func (*Model) ProtoMessage() {} -func (x *Device) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[15] +func (x *Model) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1812,23 +1645,23 @@ func (x *Device) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Device.ProtoReflect.Descriptor instead. -func (*Device) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{15} +// Deprecated: Use Model.ProtoReflect.Descriptor instead. +func (*Model) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{13} } -func (x *Device) GetId() uint32 { +func (x *Model) GetId() uint32 { if x != nil { return x.Id } return 0 } -func (x *Device) GetType() Device_Type { +func (x *Model) GetType() Model_Type { if x != nil { return x.Type } - return Device_Unknown + return Model_Unknown } // 区段端点 @@ -1837,18 +1670,27 @@ type SectionPort struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // 元素类型 + // + // enum ElementType { + // // 区段 + // Section = 0; + // // 道岔 + // Turnout = 1; + // } + // // 类型 - Type SectionPort_SectionType `protobuf:"varint,1,opt,name=type,proto3,enum=message.SectionPort_SectionType" json:"type,omitempty"` + Type Model_Type `protobuf:"varint,1,opt,name=type,proto3,enum=message.Model_Type" json:"type,omitempty"` // 区段/道岔 id Id uint32 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` // 端点 - Port SectionPort_PortType `protobuf:"varint,3,opt,name=port,proto3,enum=message.SectionPort_PortType" json:"port,omitempty"` + Port SectionPort_Type `protobuf:"varint,3,opt,name=port,proto3,enum=message.SectionPort_Type" json:"port,omitempty"` } func (x *SectionPort) Reset() { *x = SectionPort{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[16] + mi := &file_cg_repo_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1861,7 +1703,7 @@ func (x *SectionPort) String() string { func (*SectionPort) ProtoMessage() {} func (x *SectionPort) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[16] + mi := &file_cg_repo_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1874,14 +1716,14 @@ func (x *SectionPort) ProtoReflect() protoreflect.Message { // Deprecated: Use SectionPort.ProtoReflect.Descriptor instead. func (*SectionPort) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{16} + return file_cg_repo_proto_rawDescGZIP(), []int{14} } -func (x *SectionPort) GetType() SectionPort_SectionType { +func (x *SectionPort) GetType() Model_Type { if x != nil { return x.Type } - return SectionPort_Section + return Model_Unknown } func (x *SectionPort) GetId() uint32 { @@ -1891,7 +1733,7 @@ func (x *SectionPort) GetId() uint32 { return 0 } -func (x *SectionPort) GetPort() SectionPort_PortType { +func (x *SectionPort) GetPort() SectionPort_Type { if x != nil { return x.Port } @@ -1911,12 +1753,14 @@ type Signal struct { Model Signal_Model `protobuf:"varint,3,opt,name=model,proto3,enum=message.Signal_Model" json:"model,omitempty"` // 所属设备集中站id EcsId uint32 `protobuf:"varint,4,opt,name=ecsId,proto3" json:"ecsId,omitempty"` + // 列车运行方向(上下行) + Trd TRD `protobuf:"varint,5,opt,name=trd,proto3,enum=message.TRD" json:"trd,omitempty"` } func (x *Signal) Reset() { *x = Signal{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[17] + mi := &file_cg_repo_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1929,7 +1773,7 @@ func (x *Signal) String() string { func (*Signal) ProtoMessage() {} func (x *Signal) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[17] + mi := &file_cg_repo_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1942,7 +1786,7 @@ func (x *Signal) ProtoReflect() protoreflect.Message { // Deprecated: Use Signal.ProtoReflect.Descriptor instead. func (*Signal) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{17} + return file_cg_repo_proto_rawDescGZIP(), []int{15} } func (x *Signal) GetId() uint32 { @@ -1973,6 +1817,13 @@ func (x *Signal) GetEcsId() uint32 { return 0 } +func (x *Signal) GetTrd() TRD { + if x != nil { + return x.Trd + } + return TRD_Upward +} + // 道岔 type Turnout struct { state protoimpl.MessageState @@ -1997,7 +1848,7 @@ type Turnout struct { func (x *Turnout) Reset() { *x = Turnout{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[18] + mi := &file_cg_repo_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2010,7 +1861,7 @@ func (x *Turnout) String() string { func (*Turnout) ProtoMessage() {} func (x *Turnout) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[18] + mi := &file_cg_repo_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2023,7 +1874,7 @@ func (x *Turnout) ProtoReflect() protoreflect.Message { // Deprecated: Use Turnout.ProtoReflect.Descriptor instead. func (*Turnout) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{18} + return file_cg_repo_proto_rawDescGZIP(), []int{16} } func (x *Turnout) GetId() uint32 { @@ -2076,7 +1927,7 @@ func (x *Turnout) GetEcsId() uint32 { } // 物理区段 -type PhysicalSection struct { +type Section struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2085,32 +1936,34 @@ type PhysicalSection struct { // 编号 Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 物理区段类型 - Type PhysicalSection_Type `protobuf:"varint,3,opt,name=type,proto3,enum=message.PhysicalSection_Type" json:"type,omitempty"` + Type Section_Type `protobuf:"varint,3,opt,name=type,proto3,enum=message.Section_Type" json:"type,omitempty"` // 物理区段A端关联的区段/道岔端点 Asp *SectionPort `protobuf:"bytes,4,opt,name=asp,proto3" json:"asp,omitempty"` // 物理区段B端关联的区段/道岔端点 Bsp *SectionPort `protobuf:"bytes,5,opt,name=bsp,proto3" json:"bsp,omitempty"` // 所属设备集中站id EcsId uint32 `protobuf:"varint,6,opt,name=ecsId,proto3" json:"ecsId,omitempty"` + // 列车运行方向(上下行) + Trd TRD `protobuf:"varint,7,opt,name=trd,proto3,enum=message.TRD" json:"trd,omitempty"` } -func (x *PhysicalSection) Reset() { - *x = PhysicalSection{} +func (x *Section) Reset() { + *x = Section{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[19] + mi := &file_cg_repo_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PhysicalSection) String() string { +func (x *Section) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PhysicalSection) ProtoMessage() {} +func (*Section) ProtoMessage() {} -func (x *PhysicalSection) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[19] +func (x *Section) ProtoReflect() protoreflect.Message { + mi := &file_cg_repo_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2121,53 +1974,60 @@ func (x *PhysicalSection) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PhysicalSection.ProtoReflect.Descriptor instead. -func (*PhysicalSection) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{19} +// Deprecated: Use Section.ProtoReflect.Descriptor instead. +func (*Section) Descriptor() ([]byte, []int) { + return file_cg_repo_proto_rawDescGZIP(), []int{17} } -func (x *PhysicalSection) GetId() uint32 { +func (x *Section) GetId() uint32 { if x != nil { return x.Id } return 0 } -func (x *PhysicalSection) GetCode() string { +func (x *Section) GetCode() string { if x != nil { return x.Code } return "" } -func (x *PhysicalSection) GetType() PhysicalSection_Type { +func (x *Section) GetType() Section_Type { if x != nil { return x.Type } - return PhysicalSection_General + return Section_Physical } -func (x *PhysicalSection) GetAsp() *SectionPort { +func (x *Section) GetAsp() *SectionPort { if x != nil { return x.Asp } return nil } -func (x *PhysicalSection) GetBsp() *SectionPort { +func (x *Section) GetBsp() *SectionPort { if x != nil { return x.Bsp } return nil } -func (x *PhysicalSection) GetEcsId() uint32 { +func (x *Section) GetEcsId() uint32 { if x != nil { return x.EcsId } return 0 } +func (x *Section) GetTrd() TRD { + if x != nil { + return x.Trd + } + return TRD_Upward +} + // 屏蔽门 type Psd struct { state protoimpl.MessageState @@ -2184,7 +2044,7 @@ type Psd struct { func (x *Psd) Reset() { *x = Psd{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[20] + mi := &file_cg_repo_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2197,7 +2057,7 @@ func (x *Psd) String() string { func (*Psd) ProtoMessage() {} func (x *Psd) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[20] + mi := &file_cg_repo_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2210,7 +2070,7 @@ func (x *Psd) ProtoReflect() protoreflect.Message { // Deprecated: Use Psd.ProtoReflect.Descriptor instead. func (*Psd) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{20} + return file_cg_repo_proto_rawDescGZIP(), []int{18} } func (x *Psd) GetId() uint32 { @@ -2252,7 +2112,7 @@ type Platform struct { func (x *Platform) Reset() { *x = Platform{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[21] + mi := &file_cg_repo_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2265,7 +2125,7 @@ func (x *Platform) String() string { func (*Platform) ProtoMessage() {} func (x *Platform) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[21] + mi := &file_cg_repo_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2278,7 +2138,7 @@ func (x *Platform) ProtoReflect() protoreflect.Message { // Deprecated: Use Platform.ProtoReflect.Descriptor instead. func (*Platform) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{21} + return file_cg_repo_proto_rawDescGZIP(), []int{19} } func (x *Platform) GetId() uint32 { @@ -2333,7 +2193,7 @@ type Station struct { func (x *Station) Reset() { *x = Station{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[22] + mi := &file_cg_repo_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2346,7 +2206,7 @@ func (x *Station) String() string { func (*Station) ProtoMessage() {} func (x *Station) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[22] + mi := &file_cg_repo_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2359,7 +2219,7 @@ func (x *Station) ProtoReflect() protoreflect.Message { // Deprecated: Use Station.ProtoReflect.Descriptor instead. func (*Station) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{22} + return file_cg_repo_proto_rawDescGZIP(), []int{20} } func (x *Station) GetId() uint32 { @@ -2428,7 +2288,7 @@ type GLB struct { func (x *GLB) Reset() { *x = GLB{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[23] + mi := &file_cg_repo_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2441,7 +2301,7 @@ func (x *GLB) String() string { func (*GLB) ProtoMessage() {} func (x *GLB) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[23] + mi := &file_cg_repo_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2454,7 +2314,7 @@ func (x *GLB) ProtoReflect() protoreflect.Message { // Deprecated: Use GLB.ProtoReflect.Descriptor instead. func (*GLB) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{23} + return file_cg_repo_proto_rawDescGZIP(), []int{21} } func (x *GLB) GetZbx() string { @@ -2503,7 +2363,7 @@ type CiJDQBZ struct { func (x *CiJDQBZ) Reset() { *x = CiJDQBZ{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[24] + mi := &file_cg_repo_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2516,7 +2376,7 @@ func (x *CiJDQBZ) String() string { func (*CiJDQBZ) ProtoMessage() {} func (x *CiJDQBZ) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[24] + mi := &file_cg_repo_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2529,7 +2389,7 @@ func (x *CiJDQBZ) ProtoReflect() protoreflect.Message { // Deprecated: Use CiJDQBZ.ProtoReflect.Descriptor instead. func (*CiJDQBZ) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{24} + return file_cg_repo_proto_rawDescGZIP(), []int{22} } func (x *CiJDQBZ) GetEcsName() string { @@ -2594,7 +2454,7 @@ type CiSectionTable struct { func (x *CiSectionTable) Reset() { *x = CiSectionTable{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[25] + mi := &file_cg_repo_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2607,7 +2467,7 @@ func (x *CiSectionTable) String() string { func (*CiSectionTable) ProtoMessage() {} func (x *CiSectionTable) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[25] + mi := &file_cg_repo_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2620,7 +2480,7 @@ func (x *CiSectionTable) ProtoReflect() protoreflect.Message { // Deprecated: Use CiSectionTable.ProtoReflect.Descriptor instead. func (*CiSectionTable) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{25} + return file_cg_repo_proto_rawDescGZIP(), []int{23} } func (x *CiSectionTable) GetSectionIds() []uint32 { @@ -2643,7 +2503,7 @@ type CiQdTable struct { func (x *CiQdTable) Reset() { *x = CiQdTable{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[26] + mi := &file_cg_repo_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2656,7 +2516,7 @@ func (x *CiQdTable) String() string { func (*CiQdTable) ProtoMessage() {} func (x *CiQdTable) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[26] + mi := &file_cg_repo_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2669,7 +2529,7 @@ func (x *CiQdTable) ProtoReflect() protoreflect.Message { // Deprecated: Use CiQdTable.ProtoReflect.Descriptor instead. func (*CiQdTable) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{26} + return file_cg_repo_proto_rawDescGZIP(), []int{24} } func (x *CiQdTable) GetRelayIds() []string { @@ -2692,7 +2552,7 @@ type CiCjTable struct { func (x *CiCjTable) Reset() { *x = CiCjTable{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[27] + mi := &file_cg_repo_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2705,7 +2565,7 @@ func (x *CiCjTable) String() string { func (*CiCjTable) ProtoMessage() {} func (x *CiCjTable) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[27] + mi := &file_cg_repo_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2718,7 +2578,7 @@ func (x *CiCjTable) ProtoReflect() protoreflect.Message { // Deprecated: Use CiCjTable.ProtoReflect.Descriptor instead. func (*CiCjTable) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{27} + return file_cg_repo_proto_rawDescGZIP(), []int{25} } func (x *CiCjTable) GetItems() []*CiCjItem { @@ -2743,7 +2603,7 @@ type CiCjItem struct { func (x *CiCjItem) Reset() { *x = CiCjItem{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[28] + mi := &file_cg_repo_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2756,7 +2616,7 @@ func (x *CiCjItem) String() string { func (*CiCjItem) ProtoMessage() {} func (x *CiCjItem) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[28] + mi := &file_cg_repo_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2769,7 +2629,7 @@ func (x *CiCjItem) ProtoReflect() protoreflect.Message { // Deprecated: Use CiCjItem.ProtoReflect.Descriptor instead. func (*CiCjItem) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{28} + return file_cg_repo_proto_rawDescGZIP(), []int{26} } func (x *CiCjItem) GetUint32() string { @@ -2800,7 +2660,7 @@ type PFP struct { func (x *PFP) Reset() { *x = PFP{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[29] + mi := &file_cg_repo_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2813,7 +2673,7 @@ func (x *PFP) String() string { func (*PFP) ProtoMessage() {} func (x *PFP) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[29] + mi := &file_cg_repo_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2826,7 +2686,7 @@ func (x *PFP) ProtoReflect() protoreflect.Message { // Deprecated: Use PFP.ProtoReflect.Descriptor instead. func (*PFP) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{29} + return file_cg_repo_proto_rawDescGZIP(), []int{27} } func (x *PFP) GetId() uint32 { @@ -2859,7 +2719,7 @@ type Relay struct { func (x *Relay) Reset() { *x = Relay{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[30] + mi := &file_cg_repo_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2872,7 +2732,7 @@ func (x *Relay) String() string { func (*Relay) ProtoMessage() {} func (x *Relay) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[30] + mi := &file_cg_repo_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2885,7 +2745,7 @@ func (x *Relay) ProtoReflect() protoreflect.Message { // Deprecated: Use Relay.ProtoReflect.Descriptor instead. func (*Relay) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{30} + return file_cg_repo_proto_rawDescGZIP(), []int{28} } func (x *Relay) GetId() uint32 { @@ -2932,7 +2792,7 @@ type JKP struct { func (x *JKP) Reset() { *x = JKP{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[31] + mi := &file_cg_repo_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2945,7 +2805,7 @@ func (x *JKP) String() string { func (*JKP) ProtoMessage() {} func (x *JKP) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[31] + mi := &file_cg_repo_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2958,7 +2818,7 @@ func (x *JKP) ProtoReflect() protoreflect.Message { // Deprecated: Use JKP.ProtoReflect.Descriptor instead. func (*JKP) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{31} + return file_cg_repo_proto_rawDescGZIP(), []int{29} } func (x *JKP) GetGid() string { @@ -3017,7 +2877,7 @@ type Alarm struct { func (x *Alarm) Reset() { *x = Alarm{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[32] + mi := &file_cg_repo_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3030,7 +2890,7 @@ func (x *Alarm) String() string { func (*Alarm) ProtoMessage() {} func (x *Alarm) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[32] + mi := &file_cg_repo_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3043,7 +2903,7 @@ func (x *Alarm) ProtoReflect() protoreflect.Message { // Deprecated: Use Alarm.ProtoReflect.Descriptor instead. func (*Alarm) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{32} + return file_cg_repo_proto_rawDescGZIP(), []int{30} } func (x *Alarm) GetId() uint32 { @@ -3078,7 +2938,7 @@ type KaiGuan struct { func (x *KaiGuan) Reset() { *x = KaiGuan{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[33] + mi := &file_cg_repo_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3091,7 +2951,7 @@ func (x *KaiGuan) String() string { func (*KaiGuan) ProtoMessage() {} func (x *KaiGuan) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[33] + mi := &file_cg_repo_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3104,7 +2964,7 @@ func (x *KaiGuan) ProtoReflect() protoreflect.Message { // Deprecated: Use KaiGuan.ProtoReflect.Descriptor instead. func (*KaiGuan) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{33} + return file_cg_repo_proto_rawDescGZIP(), []int{31} } func (x *KaiGuan) GetId() uint32 { @@ -3149,7 +3009,7 @@ type Lamp struct { func (x *Lamp) Reset() { *x = Lamp{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[34] + mi := &file_cg_repo_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3162,7 +3022,7 @@ func (x *Lamp) String() string { func (*Lamp) ProtoMessage() {} func (x *Lamp) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[34] + mi := &file_cg_repo_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3175,7 +3035,7 @@ func (x *Lamp) ProtoReflect() protoreflect.Message { // Deprecated: Use Lamp.ProtoReflect.Descriptor instead. func (*Lamp) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{34} + return file_cg_repo_proto_rawDescGZIP(), []int{32} } func (x *Lamp) GetId() uint32 { @@ -3199,7 +3059,7 @@ type DeviceEcc struct { unknownFields protoimpl.UnknownFields // 设备类型 - DeviceType Device_Type `protobuf:"varint,1,opt,name=deviceType,proto3,enum=message.Device_Type" json:"deviceType,omitempty"` + DeviceType Model_Type `protobuf:"varint,1,opt,name=deviceType,proto3,enum=message.Model_Type" json:"deviceType,omitempty"` // 设备编号 DeviceCode string `protobuf:"bytes,2,opt,name=deviceCode,proto3" json:"deviceCode,omitempty"` // 电子元件组合 @@ -3209,7 +3069,7 @@ type DeviceEcc struct { func (x *DeviceEcc) Reset() { *x = DeviceEcc{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[35] + mi := &file_cg_repo_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3222,7 +3082,7 @@ func (x *DeviceEcc) String() string { func (*DeviceEcc) ProtoMessage() {} func (x *DeviceEcc) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[35] + mi := &file_cg_repo_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3235,14 +3095,14 @@ func (x *DeviceEcc) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceEcc.ProtoReflect.Descriptor instead. func (*DeviceEcc) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{35} + return file_cg_repo_proto_rawDescGZIP(), []int{33} } -func (x *DeviceEcc) GetDeviceType() Device_Type { +func (x *DeviceEcc) GetDeviceType() Model_Type { if x != nil { return x.DeviceType } - return Device_Unknown + return Model_Unknown } func (x *DeviceEcc) GetDeviceCode() string { @@ -3274,7 +3134,7 @@ type Ecc struct { func (x *Ecc) Reset() { *x = Ecc{} if protoimpl.UnsafeEnabled { - mi := &file_repo_proto_msgTypes[36] + mi := &file_cg_repo_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3287,7 +3147,7 @@ func (x *Ecc) String() string { func (*Ecc) ProtoMessage() {} func (x *Ecc) ProtoReflect() protoreflect.Message { - mi := &file_repo_proto_msgTypes[36] + mi := &file_cg_repo_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3300,7 +3160,7 @@ func (x *Ecc) ProtoReflect() protoreflect.Message { // Deprecated: Use Ecc.ProtoReflect.Descriptor instead. func (*Ecc) Descriptor() ([]byte, []int) { - return file_repo_proto_rawDescGZIP(), []int{36} + return file_cg_repo_proto_rawDescGZIP(), []int{34} } func (x *Ecc) GetCode() string { @@ -3317,444 +3177,433 @@ func (x *Ecc) GetIds() []uint32 { return nil } -var File_repo_proto protoreflect.FileDescriptor +var File_cg_repo_proto protoreflect.FileDescriptor -var file_repo_proto_rawDesc = []byte{ - 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x74, 0x0a, 0x04, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x29, 0x0a, - 0x06, 0x63, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x47, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x06, 0x67, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x2e, 0x47, 0x54, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x06, 0x67, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x08, 0x0a, 0x06, 0x47, - 0x54, 0x44, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x06, 0x43, 0x47, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x23, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x52, 0x05, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x6a, 0x6b, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4a, 0x4b, 0x50, - 0x52, 0x04, 0x6a, 0x6b, 0x70, 0x73, 0x22, 0x7d, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, - 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x04, 0x78, 0x68, - 0x62, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x2e, 0x58, 0x48, 0x42, 0x5a, 0x52, 0x04, 0x78, 0x68, 0x62, 0x7a, 0x12, 0x26, 0x0a, - 0x05, 0x6a, 0x64, 0x71, 0x62, 0x7a, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x69, 0x4a, 0x44, 0x51, 0x42, 0x5a, 0x52, 0x05, - 0x6a, 0x64, 0x71, 0x62, 0x7a, 0x22, 0xf8, 0x05, 0x0a, 0x04, 0x58, 0x48, 0x42, 0x5a, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, - 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x0a, 0x09, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x20, 0x0a, - 0x04, 0x70, 0x73, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x73, 0x64, 0x52, 0x04, 0x70, 0x73, 0x64, 0x73, 0x12, - 0x44, 0x0a, 0x10, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x2e, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, - 0x75, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x52, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x29, - 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x61, 0x6c, 0x69, 0x73, 0x65, - 0x52, 0x07, 0x62, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x70, 0x61, 0x72, - 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x6f, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, - 0x67, 0x53, 0x70, 0x6f, 0x74, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x70, - 0x6f, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x03, 0x70, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0b, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x64, 0x52, 0x03, 0x70, - 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x03, 0x71, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0b, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x51, 0x64, 0x52, 0x03, 0x71, 0x64, - 0x73, 0x12, 0x20, 0x0a, 0x04, 0x65, 0x6d, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x4d, 0x50, 0x52, 0x04, 0x65, - 0x6d, 0x70, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x74, 0x64, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x44, 0x54, 0x52, - 0x04, 0x74, 0x64, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x6d, 0x6b, 0x78, 0x73, 0x18, 0x0f, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6b, - 0x78, 0x52, 0x04, 0x6d, 0x6b, 0x78, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x73, 0x6c, 0x73, 0x18, - 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, - 0x50, 0x53, 0x4c, 0x52, 0x04, 0x70, 0x73, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x73, 0x70, 0x6b, - 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x2e, 0x53, 0x50, 0x4b, 0x53, 0x52, 0x04, 0x73, 0x70, 0x6b, 0x73, 0x12, 0x32, 0x0a, 0x0a, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x45, 0x63, 0x63, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x73, - 0x22, 0x4a, 0x0a, 0x04, 0x53, 0x50, 0x4b, 0x53, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x03, - 0x50, 0x53, 0x4c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, +var file_cg_repo_proto_rawDesc = []byte{ + 0x0a, 0x0d, 0x63, 0x67, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5f, 0x0a, 0x06, 0x43, 0x67, 0x52, 0x65, + 0x70, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x23, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x65, + 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x6a, 0x6b, 0x70, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x4a, 0x4b, 0x50, 0x52, 0x04, 0x6a, 0x6b, 0x70, 0x73, 0x22, 0x7d, 0x0a, 0x04, 0x4c, 0x69, 0x6e, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, + 0x04, 0x78, 0x68, 0x62, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x58, 0x48, 0x42, 0x5a, 0x52, 0x04, 0x78, 0x68, 0x62, 0x7a, + 0x12, 0x26, 0x0a, 0x05, 0x6a, 0x64, 0x71, 0x62, 0x7a, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x69, 0x4a, 0x44, 0x51, 0x42, + 0x5a, 0x52, 0x05, 0x6a, 0x64, 0x71, 0x62, 0x7a, 0x22, 0xe0, 0x05, 0x0a, 0x04, 0x58, 0x48, 0x42, + 0x5a, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x2f, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, + 0x12, 0x20, 0x0a, 0x04, 0x70, 0x73, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x73, 0x64, 0x52, 0x04, 0x70, 0x73, + 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x2c, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x75, 0x72, + 0x6e, 0x6f, 0x75, 0x74, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x12, 0x3e, + 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0e, + 0x64, 0x65, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x29, + 0x0a, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x52, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x62, 0x61, 0x6c, + 0x69, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, + 0x69, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, + 0x70, 0x6f, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x6f, 0x74, + 0x52, 0x0c, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x6f, 0x74, 0x73, 0x12, 0x1d, + 0x0a, 0x03, 0x70, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x64, 0x52, 0x03, 0x70, 0x64, 0x73, 0x12, 0x1d, 0x0a, + 0x03, 0x71, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x51, 0x64, 0x52, 0x03, 0x71, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x04, + 0x65, 0x6d, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x4d, 0x50, 0x52, 0x04, 0x65, 0x6d, 0x70, 0x73, 0x12, 0x20, + 0x0a, 0x04, 0x74, 0x64, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x44, 0x54, 0x52, 0x04, 0x74, 0x64, 0x74, 0x73, + 0x12, 0x20, 0x0a, 0x04, 0x6d, 0x6b, 0x78, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6b, 0x78, 0x52, 0x04, 0x6d, 0x6b, + 0x78, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x73, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x53, 0x4c, 0x52, 0x04, + 0x70, 0x73, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x73, 0x70, 0x6b, 0x73, 0x18, 0x11, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x50, 0x4b, + 0x53, 0x52, 0x04, 0x73, 0x70, 0x6b, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x45, 0x63, 0x63, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x52, + 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x73, 0x22, 0x4a, 0x0a, 0x04, 0x53, + 0x50, 0x4b, 0x53, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64, 0x22, 0x3f, 0x0a, - 0x03, 0x4d, 0x6b, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x73, 0x64, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64, 0x22, 0x49, - 0x0a, 0x03, 0x54, 0x44, 0x54, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x03, 0x45, 0x4d, 0x50, + 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x03, 0x50, 0x53, 0x4c, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x03, 0x4d, 0x6b, 0x78, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x03, 0x54, 0x44, 0x54, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x49, 0x64, 0x22, 0x14, 0x0a, 0x02, 0x51, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x02, 0x50, 0x64, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, - 0x22, 0x4f, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x6f, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x10, 0x0a, 0x03, 0x74, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x67, - 0x6e, 0x12, 0x1e, 0x0a, 0x03, 0x67, 0x6c, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x4c, 0x42, 0x52, 0x03, 0x67, 0x6c, - 0x62, 0x22, 0x84, 0x01, 0x0a, 0x06, 0x42, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x72, 0x6d, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x03, 0x45, 0x4d, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x22, + 0x14, 0x0a, 0x02, 0x51, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x02, 0x50, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4f, 0x0a, 0x0b, 0x50, + 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x6f, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x67, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x67, 0x6e, 0x12, 0x1e, 0x0a, 0x03, + 0x67, 0x6c, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x2e, 0x47, 0x4c, 0x42, 0x52, 0x03, 0x67, 0x6c, 0x62, 0x22, 0x84, 0x01, 0x0a, + 0x06, 0x42, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x42, 0x61, 0x6c, 0x69, 0x73, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x46, 0x42, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x54, + 0x42, 0x10, 0x01, 0x22, 0xfd, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x63, - 0x73, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, - 0x22, 0x16, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x46, 0x42, 0x10, 0x00, - 0x12, 0x06, 0x0a, 0x02, 0x54, 0x42, 0x10, 0x01, 0x22, 0xfd, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x76, - 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x1e, 0x0a, 0x03, 0x67, 0x6c, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x4c, 0x42, 0x52, 0x03, 0x67, 0x6c, 0x62, 0x12, - 0x38, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, - 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x63, 0x73, - 0x49, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x63, 0x73, 0x49, 0x64, - 0x73, 0x22, 0x25, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x61, 0x72, 0x79, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4a, 0x5a, 0x10, 0x01, 0x12, - 0x07, 0x0a, 0x03, 0x4a, 0x59, 0x4a, 0x10, 0x02, 0x22, 0x9a, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x39, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, - 0x0b, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x10, 0x03, 0x22, 0x1b, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, 0x01, 0x12, 0x05, - 0x0a, 0x01, 0x43, 0x10, 0x02, 0x22, 0xd0, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x04, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x27, - 0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, - 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x75, - 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x10, 0x01, 0x22, 0x1f, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, - 0x01, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x02, 0x22, 0xb8, 0x02, 0x0a, 0x06, 0x53, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x22, 0xc6, 0x01, 0x0a, 0x05, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x30, 0x5f, 0x31, 0x5f, - 0x31, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x30, 0x5f, 0x30, 0x5f, 0x31, - 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x30, 0x5f, 0x31, 0x5f, 0x30, 0x10, - 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x55, 0x5f, 0x30, 0x5f, 0x30, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x4c, 0x5f, 0x31, 0x5f, 0x31, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x4c, 0x5f, 0x31, 0x5f, 0x30, 0x10, 0x05, 0x12, 0x0e, - 0x0a, 0x0a, 0x48, 0x4c, 0x55, 0x5f, 0x4c, 0x55, 0x5f, 0x30, 0x5f, 0x30, 0x10, 0x06, 0x12, 0x08, - 0x0a, 0x04, 0x48, 0x4c, 0x5f, 0x30, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x4c, 0x5f, 0x4c, - 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x55, 0x5f, 0x30, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, - 0x48, 0x55, 0x5f, 0x55, 0x10, 0x0a, 0x12, 0x05, 0x0a, 0x01, 0x48, 0x10, 0x0b, 0x12, 0x06, 0x0a, - 0x02, 0x41, 0x42, 0x10, 0x0c, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x42, 0x55, 0x5f, 0x30, 0x5f, 0x31, - 0x5f, 0x30, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x42, 0x55, 0x5f, 0x55, 0x5f, 0x30, 0x5f, - 0x30, 0x10, 0x0e, 0x22, 0x8a, 0x02, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x75, 0x72, - 0x6e, 0x6f, 0x75, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x73, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x6f, 0x72, 0x74, 0x52, 0x03, 0x61, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x03, 0x62, 0x73, 0x70, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x03, 0x62, 0x73, - 0x70, 0x12, 0x26, 0x0a, 0x03, 0x63, 0x73, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x6f, 0x72, 0x74, 0x52, 0x03, 0x63, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x63, 0x73, - 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x22, - 0x1f, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x0a, 0x0a, 0x06, 0x5a, 0x44, 0x4a, 0x39, - 0x5f, 0x31, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x5a, 0x44, 0x4a, 0x39, 0x5f, 0x32, 0x10, 0x01, - 0x22, 0xf0, 0x01, 0x0a, 0x0f, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x2e, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x61, - 0x73, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x03, - 0x61, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x03, 0x62, 0x73, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x67, 0x6c, + 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2e, 0x47, 0x4c, 0x42, 0x52, 0x03, 0x67, 0x6c, 0x62, 0x12, 0x38, 0x0a, 0x0c, 0x73, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x03, 0x62, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x63, 0x73, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x63, 0x73, 0x49, - 0x64, 0x22, 0x20, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, - 0x74, 0x10, 0x01, 0x22, 0x49, 0x0a, 0x03, 0x50, 0x73, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x22, 0x7a, - 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, - 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, - 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xb3, 0x01, 0x0a, 0x07, 0x53, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x7a, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x7a, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1e, 0x0a, 0x03, 0x67, 0x6c, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x4c, 0x42, 0x52, 0x03, 0x67, 0x6c, 0x62, - 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x45, 0x63, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x05, 0x69, 0x73, 0x45, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x43, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x43, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x63, - 0x73, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x0d, 0x65, 0x63, 0x73, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, - 0x22, 0x43, 0x0a, 0x03, 0x47, 0x4c, 0x42, 0x12, 0x10, 0x0a, 0x03, 0x7a, 0x62, 0x78, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x7a, 0x62, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x07, 0x43, 0x69, 0x4a, 0x44, 0x51, 0x42, - 0x5a, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x63, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x65, 0x63, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x06, 0x72, 0x65, 0x6c, - 0x61, 0x79, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x66, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x46, 0x50, 0x52, - 0x04, 0x70, 0x66, 0x70, 0x73, 0x12, 0x3a, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, - 0x63, 0x67, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, - 0x63, 0x52, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x73, 0x12, 0x24, 0x0a, 0x03, 0x63, 0x6a, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x69, 0x43, 0x6a, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x52, 0x03, 0x63, 0x6a, 0x74, 0x12, 0x24, 0x0a, 0x03, 0x71, 0x64, 0x74, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, - 0x69, 0x51, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x03, 0x71, 0x64, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x30, 0x0a, - 0x0e, 0x43, 0x69, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, - 0x27, 0x0a, 0x09, 0x43, 0x69, 0x51, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, - 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x73, 0x22, 0x34, 0x0a, 0x09, 0x43, 0x69, 0x43, 0x6a, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, - 0x69, 0x43, 0x6a, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x30, - 0x0a, 0x08, 0x43, 0x69, 0x43, 0x6a, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x69, - 0x6e, 0x74, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x69, 0x6e, 0x74, - 0x33, 0x32, 0x12, 0x0c, 0x0a, 0x01, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x01, 0x71, - 0x22, 0x29, 0x0a, 0x03, 0x50, 0x46, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xe0, 0x01, 0x0a, 0x05, - 0x52, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, - 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, - 0x0d, 0x0a, 0x09, 0x4a, 0x50, 0x58, 0x43, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x10, 0x00, 0x12, 0x0d, - 0x0a, 0x09, 0x4a, 0x50, 0x58, 0x43, 0x5f, 0x31, 0x37, 0x30, 0x30, 0x10, 0x01, 0x12, 0x0d, 0x0a, - 0x09, 0x4a, 0x57, 0x4a, 0x58, 0x43, 0x5f, 0x34, 0x38, 0x30, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, - 0x4a, 0x57, 0x4a, 0x58, 0x43, 0x5f, 0x48, 0x31, 0x32, 0x35, 0x5f, 0x38, 0x30, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x58, 0x43, 0x5f, 0x31, 0x37, 0x30, 0x30, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x4a, 0x57, 0x58, 0x43, 0x5f, 0x48, 0x33, 0x34, 0x30, 0x10, 0x05, 0x12, 0x11, 0x0a, - 0x0d, 0x4a, 0x59, 0x4a, 0x58, 0x43, 0x5f, 0x31, 0x36, 0x30, 0x5f, 0x32, 0x36, 0x30, 0x10, 0x06, - 0x12, 0x0c, 0x0a, 0x08, 0x4a, 0x5a, 0x58, 0x43, 0x5f, 0x48, 0x31, 0x38, 0x10, 0x07, 0x22, 0x86, - 0x02, 0x0a, 0x03, 0x4a, 0x4b, 0x50, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x2e, 0x4a, 0x4b, 0x50, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x22, 0x0a, 0x03, 0x6b, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4b, 0x61, 0x69, 0x47, 0x75, 0x61, 0x6e, 0x52, 0x03, - 0x6b, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x05, 0x6c, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x6d, - 0x70, 0x52, 0x05, 0x6c, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x26, 0x0a, 0x06, 0x61, 0x6c, 0x61, 0x72, - 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x2e, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x52, 0x06, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x73, - 0x12, 0x32, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x45, 0x63, 0x63, 0x73, 0x22, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, - 0x49, 0x42, 0x50, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x53, 0x4c, 0x10, 0x01, 0x12, 0x07, - 0x0a, 0x03, 0x4d, 0x4b, 0x58, 0x10, 0x02, 0x22, 0x2b, 0x0a, 0x05, 0x41, 0x6c, 0x61, 0x72, 0x6d, + 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6f, 0x72, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x63, 0x73, 0x49, 0x64, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x63, 0x73, 0x49, 0x64, 0x73, 0x22, 0x25, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, + 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4a, 0x5a, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4a, 0x59, + 0x4a, 0x10, 0x02, 0x22, 0x7b, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x39, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, + 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, + 0x75, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x10, 0x03, + 0x22, 0x92, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, + 0x12, 0x27, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, + 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x1b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, 0x01, 0x12, 0x05, + 0x0a, 0x01, 0x43, 0x10, 0x02, 0x22, 0xd8, 0x02, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x22, 0x53, 0x0a, 0x07, 0x4b, 0x61, 0x69, 0x47, 0x75, 0x61, 0x6e, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x7a, 0x66, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x03, 0x7a, 0x66, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x04, 0x6c, 0x61, 0x6d, 0x70, 0x22, 0x2a, 0x0a, 0x04, 0x4c, 0x61, 0x6d, - 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x45, 0x63, 0x63, 0x12, 0x34, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x65, 0x63, 0x63, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x2e, 0x45, 0x63, 0x63, 0x52, 0x03, 0x65, 0x63, 0x63, 0x22, 0x2b, 0x0a, 0x03, 0x45, 0x63, 0x63, - 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x03, 0x69, 0x64, 0x73, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x72, 0x65, 0x70, 0x6f, - 0x2f, 0x64, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x03, 0x74, 0x72, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, + 0x52, 0x44, 0x52, 0x03, 0x74, 0x72, 0x64, 0x22, 0xc6, 0x01, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x30, 0x5f, 0x31, 0x5f, 0x31, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x30, 0x5f, 0x30, 0x5f, 0x31, 0x10, 0x01, 0x12, + 0x0d, 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x30, 0x5f, 0x31, 0x5f, 0x30, 0x10, 0x02, 0x12, 0x0d, + 0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x55, 0x5f, 0x30, 0x5f, 0x30, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x4c, 0x5f, 0x31, 0x5f, 0x31, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x48, 0x4c, 0x55, 0x5f, 0x4c, 0x5f, 0x31, 0x5f, 0x30, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x48, + 0x4c, 0x55, 0x5f, 0x4c, 0x55, 0x5f, 0x30, 0x5f, 0x30, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x48, + 0x4c, 0x5f, 0x30, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x4c, 0x5f, 0x4c, 0x10, 0x08, 0x12, + 0x08, 0x0a, 0x04, 0x48, 0x55, 0x5f, 0x30, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x55, 0x5f, + 0x55, 0x10, 0x0a, 0x12, 0x05, 0x0a, 0x01, 0x48, 0x10, 0x0b, 0x12, 0x06, 0x0a, 0x02, 0x41, 0x42, + 0x10, 0x0c, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x42, 0x55, 0x5f, 0x30, 0x5f, 0x31, 0x5f, 0x30, 0x10, + 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x42, 0x55, 0x5f, 0x55, 0x5f, 0x30, 0x5f, 0x30, 0x10, 0x0e, + 0x22, 0x8a, 0x02, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x2c, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x16, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, + 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x26, + 0x0a, 0x03, 0x61, 0x73, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, + 0x74, 0x52, 0x03, 0x61, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x03, 0x62, 0x73, 0x70, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x03, 0x62, 0x73, 0x70, 0x12, 0x26, + 0x0a, 0x03, 0x63, 0x73, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, + 0x74, 0x52, 0x03, 0x63, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x22, 0x1f, 0x0a, 0x05, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x0a, 0x0a, 0x06, 0x5a, 0x44, 0x4a, 0x39, 0x5f, 0x31, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x5a, 0x44, 0x4a, 0x39, 0x5f, 0x32, 0x10, 0x01, 0x22, 0x96, 0x02, + 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x73, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x03, 0x61, 0x73, 0x70, + 0x12, 0x26, 0x0a, 0x03, 0x62, 0x73, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6f, 0x72, 0x74, 0x52, 0x03, 0x62, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x63, 0x73, 0x49, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x63, 0x73, 0x49, 0x64, 0x12, 0x1e, + 0x0a, 0x03, 0x74, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x52, 0x44, 0x52, 0x03, 0x74, 0x72, 0x64, 0x22, 0x36, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, + 0x61, 0x6c, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, + 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x6f, 0x67, + 0x69, 0x63, 0x61, 0x6c, 0x10, 0x02, 0x22, 0x49, 0x0a, 0x03, 0x50, 0x73, 0x64, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, + 0x64, 0x22, 0x7a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x2c, 0x0a, 0x11, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x68, 0x79, 0x73, + 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xb3, 0x01, + 0x0a, 0x07, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x7a, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x7a, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x67, 0x6c, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x4c, 0x42, 0x52, 0x03, + 0x67, 0x6c, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x45, 0x63, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x45, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x43, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x43, 0x64, 0x12, 0x24, 0x0a, + 0x0d, 0x65, 0x63, 0x73, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x65, 0x63, 0x73, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x73, 0x22, 0x43, 0x0a, 0x03, 0x47, 0x4c, 0x42, 0x12, 0x10, 0x0a, 0x03, 0x7a, 0x62, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x7a, 0x62, 0x78, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x07, 0x43, 0x69, 0x4a, + 0x44, 0x51, 0x42, 0x5a, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x63, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x63, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, + 0x0a, 0x06, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x06, + 0x72, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x66, 0x70, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, + 0x46, 0x50, 0x52, 0x04, 0x70, 0x66, 0x70, 0x73, 0x12, 0x3a, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x45, 0x63, 0x67, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x45, 0x63, 0x63, 0x52, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x67, 0x44, + 0x61, 0x74, 0x61, 0x73, 0x12, 0x24, 0x0a, 0x03, 0x63, 0x6a, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x69, 0x43, 0x6a, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x03, 0x63, 0x6a, 0x74, 0x12, 0x24, 0x0a, 0x03, 0x71, 0x64, + 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2e, 0x43, 0x69, 0x51, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x03, 0x71, 0x64, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, + 0x22, 0x30, 0x0a, 0x0e, 0x43, 0x69, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x73, 0x22, 0x27, 0x0a, 0x09, 0x43, 0x69, 0x51, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x73, 0x22, 0x34, 0x0a, 0x09, 0x43, + 0x69, 0x43, 0x6a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2e, 0x43, 0x69, 0x43, 0x6a, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x22, 0x30, 0x0a, 0x08, 0x43, 0x69, 0x43, 0x6a, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x0c, 0x0a, 0x01, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x01, 0x71, 0x22, 0x29, 0x0a, 0x03, 0x50, 0x46, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xe0, + 0x01, 0x0a, 0x05, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x05, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x50, 0x58, 0x43, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x50, 0x58, 0x43, 0x5f, 0x31, 0x37, 0x30, 0x30, 0x10, 0x01, + 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x4a, 0x58, 0x43, 0x5f, 0x34, 0x38, 0x30, 0x10, 0x02, 0x12, + 0x11, 0x0a, 0x0d, 0x4a, 0x57, 0x4a, 0x58, 0x43, 0x5f, 0x48, 0x31, 0x32, 0x35, 0x5f, 0x38, 0x30, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x58, 0x43, 0x5f, 0x31, 0x37, 0x30, 0x30, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x58, 0x43, 0x5f, 0x48, 0x33, 0x34, 0x30, 0x10, 0x05, + 0x12, 0x11, 0x0a, 0x0d, 0x4a, 0x59, 0x4a, 0x58, 0x43, 0x5f, 0x31, 0x36, 0x30, 0x5f, 0x32, 0x36, + 0x30, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x4a, 0x5a, 0x58, 0x43, 0x5f, 0x48, 0x31, 0x38, 0x10, + 0x07, 0x22, 0x86, 0x02, 0x0a, 0x03, 0x4a, 0x4b, 0x50, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x2e, 0x4a, 0x4b, 0x50, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x22, 0x0a, 0x03, 0x6b, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4b, 0x61, 0x69, 0x47, 0x75, 0x61, + 0x6e, 0x52, 0x03, 0x6b, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x05, 0x6c, 0x61, 0x6d, 0x70, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x4c, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x6c, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x26, 0x0a, 0x06, 0x61, + 0x6c, 0x61, 0x72, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x52, 0x06, 0x61, 0x6c, 0x61, + 0x72, 0x6d, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x52, 0x0a, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x73, 0x22, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x07, 0x0a, 0x03, 0x49, 0x42, 0x50, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x53, 0x4c, 0x10, + 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x4b, 0x58, 0x10, 0x02, 0x22, 0x2b, 0x0a, 0x05, 0x41, 0x6c, + 0x61, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x53, 0x0a, 0x07, 0x4b, 0x61, 0x69, 0x47, 0x75, + 0x61, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x7a, 0x66, 0x77, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x03, 0x7a, 0x66, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6d, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6c, 0x61, 0x6d, 0x70, 0x22, 0x2a, 0x0a, 0x04, + 0x4c, 0x61, 0x6d, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x12, 0x33, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x65, + 0x63, 0x63, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x2e, 0x45, 0x63, 0x63, 0x52, 0x03, 0x65, 0x63, 0x63, 0x22, 0x2b, 0x0a, 0x03, 0x45, + 0x63, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x03, 0x69, 0x64, 0x73, 0x2a, 0x1f, 0x0a, 0x03, 0x54, 0x52, 0x44, 0x12, + 0x0a, 0x0a, 0x06, 0x55, 0x70, 0x77, 0x61, 0x72, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, + 0x6f, 0x77, 0x6e, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x72, + 0x65, 0x70, 0x6f, 0x2f, 0x64, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_repo_proto_rawDescOnce sync.Once - file_repo_proto_rawDescData = file_repo_proto_rawDesc + file_cg_repo_proto_rawDescOnce sync.Once + file_cg_repo_proto_rawDescData = file_cg_repo_proto_rawDesc ) -func file_repo_proto_rawDescGZIP() []byte { - file_repo_proto_rawDescOnce.Do(func() { - file_repo_proto_rawDescData = protoimpl.X.CompressGZIP(file_repo_proto_rawDescData) +func file_cg_repo_proto_rawDescGZIP() []byte { + file_cg_repo_proto_rawDescOnce.Do(func() { + file_cg_repo_proto_rawDescData = protoimpl.X.CompressGZIP(file_cg_repo_proto_rawDescData) }) - return file_repo_proto_rawDescData + return file_cg_repo_proto_rawDescData } -var file_repo_proto_enumTypes = make([]protoimpl.EnumInfo, 11) -var file_repo_proto_msgTypes = make([]protoimpl.MessageInfo, 37) -var file_repo_proto_goTypes = []interface{}{ - (Balise_Type)(0), // 0: message.Balise.Type - (DevidingPoint_Type)(0), // 1: message.DevidingPoint.Type - (Device_Type)(0), // 2: message.Device.Type - (Device_Port)(0), // 3: message.Device.Port - (SectionPort_SectionType)(0), // 4: message.SectionPort.SectionType - (SectionPort_PortType)(0), // 5: message.SectionPort.PortType - (Signal_Model)(0), // 6: message.Signal.Model - (Turnout_Model)(0), // 7: message.Turnout.Model - (PhysicalSection_Type)(0), // 8: message.PhysicalSection.Type - (Relay_Model)(0), // 9: message.Relay.Model - (JKP_Type)(0), // 10: message.JKP.Type - (*Repo)(nil), // 11: message.Repo - (*GTData)(nil), // 12: message.GTData - (*CGData)(nil), // 13: message.CGData - (*Line)(nil), // 14: message.Line - (*XHBZ)(nil), // 15: message.XHBZ - (*SPKS)(nil), // 16: message.SPKS - (*PSL)(nil), // 17: message.PSL - (*Mkx)(nil), // 18: message.Mkx - (*TDT)(nil), // 19: message.TDT - (*EMP)(nil), // 20: message.EMP - (*Qd)(nil), // 21: message.Qd - (*Pd)(nil), // 22: message.Pd - (*ParkingSpot)(nil), // 23: message.ParkingSpot - (*Balise)(nil), // 24: message.Balise - (*DevidingPoint)(nil), // 25: message.DevidingPoint - (*Device)(nil), // 26: message.Device - (*SectionPort)(nil), // 27: message.SectionPort - (*Signal)(nil), // 28: message.Signal - (*Turnout)(nil), // 29: message.Turnout - (*PhysicalSection)(nil), // 30: message.PhysicalSection - (*Psd)(nil), // 31: message.Psd - (*Platform)(nil), // 32: message.Platform - (*Station)(nil), // 33: message.Station - (*GLB)(nil), // 34: message.GLB - (*CiJDQBZ)(nil), // 35: message.CiJDQBZ - (*CiSectionTable)(nil), // 36: message.CiSectionTable - (*CiQdTable)(nil), // 37: message.CiQdTable - (*CiCjTable)(nil), // 38: message.CiCjTable - (*CiCjItem)(nil), // 39: message.CiCjItem - (*PFP)(nil), // 40: message.PFP - (*Relay)(nil), // 41: message.Relay - (*JKP)(nil), // 42: message.JKP - (*Alarm)(nil), // 43: message.Alarm - (*KaiGuan)(nil), // 44: message.KaiGuan - (*Lamp)(nil), // 45: message.Lamp - (*DeviceEcc)(nil), // 46: message.DeviceEcc - (*Ecc)(nil), // 47: message.Ecc +var file_cg_repo_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_cg_repo_proto_msgTypes = make([]protoimpl.MessageInfo, 35) +var file_cg_repo_proto_goTypes = []interface{}{ + (TRD)(0), // 0: message.TRD + (Balise_Type)(0), // 1: message.Balise.Type + (DevidingPoint_Type)(0), // 2: message.DevidingPoint.Type + (Model_Type)(0), // 3: message.Model.Type + (SectionPort_Type)(0), // 4: message.SectionPort.Type + (Signal_Model)(0), // 5: message.Signal.Model + (Turnout_Model)(0), // 6: message.Turnout.Model + (Section_Type)(0), // 7: message.Section.Type + (Relay_Model)(0), // 8: message.Relay.Model + (JKP_Type)(0), // 9: message.JKP.Type + (*CgRepo)(nil), // 10: message.CgRepo + (*Line)(nil), // 11: message.Line + (*XHBZ)(nil), // 12: message.XHBZ + (*SPKS)(nil), // 13: message.SPKS + (*PSL)(nil), // 14: message.PSL + (*Mkx)(nil), // 15: message.Mkx + (*TDT)(nil), // 16: message.TDT + (*EMP)(nil), // 17: message.EMP + (*Qd)(nil), // 18: message.Qd + (*Pd)(nil), // 19: message.Pd + (*ParkingSpot)(nil), // 20: message.ParkingSpot + (*Balise)(nil), // 21: message.Balise + (*DevidingPoint)(nil), // 22: message.DevidingPoint + (*Model)(nil), // 23: message.Model + (*SectionPort)(nil), // 24: message.SectionPort + (*Signal)(nil), // 25: message.Signal + (*Turnout)(nil), // 26: message.Turnout + (*Section)(nil), // 27: message.Section + (*Psd)(nil), // 28: message.Psd + (*Platform)(nil), // 29: message.Platform + (*Station)(nil), // 30: message.Station + (*GLB)(nil), // 31: message.GLB + (*CiJDQBZ)(nil), // 32: message.CiJDQBZ + (*CiSectionTable)(nil), // 33: message.CiSectionTable + (*CiQdTable)(nil), // 34: message.CiQdTable + (*CiCjTable)(nil), // 35: message.CiCjTable + (*CiCjItem)(nil), // 36: message.CiCjItem + (*PFP)(nil), // 37: message.PFP + (*Relay)(nil), // 38: message.Relay + (*JKP)(nil), // 39: message.JKP + (*Alarm)(nil), // 40: message.Alarm + (*KaiGuan)(nil), // 41: message.KaiGuan + (*Lamp)(nil), // 42: message.Lamp + (*DeviceEcc)(nil), // 43: message.DeviceEcc + (*Ecc)(nil), // 44: message.Ecc } -var file_repo_proto_depIdxs = []int32{ - 13, // 0: message.Repo.cgData:type_name -> message.CGData - 12, // 1: message.Repo.gtData:type_name -> message.GTData - 14, // 2: message.CGData.lines:type_name -> message.Line - 42, // 3: message.CGData.jkps:type_name -> message.JKP - 15, // 4: message.Line.xhbz:type_name -> message.XHBZ - 35, // 5: message.Line.jdqbz:type_name -> message.CiJDQBZ - 33, // 6: message.XHBZ.stations:type_name -> message.Station - 32, // 7: message.XHBZ.platforms:type_name -> message.Platform - 31, // 8: message.XHBZ.psds:type_name -> message.Psd - 30, // 9: message.XHBZ.physicalSections:type_name -> message.PhysicalSection - 29, // 10: message.XHBZ.turnouts:type_name -> message.Turnout - 25, // 11: message.XHBZ.devidingPoints:type_name -> message.DevidingPoint - 28, // 12: message.XHBZ.signals:type_name -> message.Signal - 24, // 13: message.XHBZ.balises:type_name -> message.Balise - 23, // 14: message.XHBZ.parkingSpots:type_name -> message.ParkingSpot - 22, // 15: message.XHBZ.pds:type_name -> message.Pd - 21, // 16: message.XHBZ.qds:type_name -> message.Qd - 20, // 17: message.XHBZ.emps:type_name -> message.EMP - 19, // 18: message.XHBZ.tdts:type_name -> message.TDT - 18, // 19: message.XHBZ.mkxs:type_name -> message.Mkx - 17, // 20: message.XHBZ.psls:type_name -> message.PSL - 16, // 21: message.XHBZ.spks:type_name -> message.SPKS - 46, // 22: message.XHBZ.deviceEccs:type_name -> message.DeviceEcc - 34, // 23: message.ParkingSpot.glb:type_name -> message.GLB - 0, // 24: message.Balise.type:type_name -> message.Balise.Type - 1, // 25: message.DevidingPoint.type:type_name -> message.DevidingPoint.Type - 34, // 26: message.DevidingPoint.glb:type_name -> message.GLB - 27, // 27: message.DevidingPoint.sectionPorts:type_name -> message.SectionPort - 2, // 28: message.Device.type:type_name -> message.Device.Type - 4, // 29: message.SectionPort.type:type_name -> message.SectionPort.SectionType - 5, // 30: message.SectionPort.port:type_name -> message.SectionPort.PortType - 6, // 31: message.Signal.model:type_name -> message.Signal.Model - 7, // 32: message.Turnout.model:type_name -> message.Turnout.Model - 27, // 33: message.Turnout.asp:type_name -> message.SectionPort - 27, // 34: message.Turnout.bsp:type_name -> message.SectionPort - 27, // 35: message.Turnout.csp:type_name -> message.SectionPort - 8, // 36: message.PhysicalSection.type:type_name -> message.PhysicalSection.Type - 27, // 37: message.PhysicalSection.asp:type_name -> message.SectionPort - 27, // 38: message.PhysicalSection.bsp:type_name -> message.SectionPort - 34, // 39: message.Station.glb:type_name -> message.GLB - 41, // 40: message.CiJDQBZ.relays:type_name -> message.Relay - 40, // 41: message.CiJDQBZ.pfps:type_name -> message.PFP - 46, // 42: message.CiJDQBZ.deviceEcgDatas:type_name -> message.DeviceEcc - 38, // 43: message.CiJDQBZ.cjt:type_name -> message.CiCjTable - 37, // 44: message.CiJDQBZ.qdt:type_name -> message.CiQdTable - 39, // 45: message.CiCjTable.items:type_name -> message.CiCjItem - 9, // 46: message.Relay.model:type_name -> message.Relay.Model - 10, // 47: message.JKP.type:type_name -> message.JKP.Type - 44, // 48: message.JKP.kgs:type_name -> message.KaiGuan - 45, // 49: message.JKP.lamps:type_name -> message.Lamp - 43, // 50: message.JKP.alarms:type_name -> message.Alarm - 46, // 51: message.JKP.deviceEccs:type_name -> message.DeviceEcc - 2, // 52: message.DeviceEcc.deviceType:type_name -> message.Device.Type - 47, // 53: message.DeviceEcc.ecc:type_name -> message.Ecc +var file_cg_repo_proto_depIdxs = []int32{ + 11, // 0: message.CgRepo.lines:type_name -> message.Line + 39, // 1: message.CgRepo.jkps:type_name -> message.JKP + 12, // 2: message.Line.xhbz:type_name -> message.XHBZ + 32, // 3: message.Line.jdqbz:type_name -> message.CiJDQBZ + 30, // 4: message.XHBZ.stations:type_name -> message.Station + 29, // 5: message.XHBZ.platforms:type_name -> message.Platform + 28, // 6: message.XHBZ.psds:type_name -> message.Psd + 27, // 7: message.XHBZ.sections:type_name -> message.Section + 26, // 8: message.XHBZ.turnouts:type_name -> message.Turnout + 22, // 9: message.XHBZ.devidingPoints:type_name -> message.DevidingPoint + 25, // 10: message.XHBZ.signals:type_name -> message.Signal + 21, // 11: message.XHBZ.balises:type_name -> message.Balise + 20, // 12: message.XHBZ.parkingSpots:type_name -> message.ParkingSpot + 19, // 13: message.XHBZ.pds:type_name -> message.Pd + 18, // 14: message.XHBZ.qds:type_name -> message.Qd + 17, // 15: message.XHBZ.emps:type_name -> message.EMP + 16, // 16: message.XHBZ.tdts:type_name -> message.TDT + 15, // 17: message.XHBZ.mkxs:type_name -> message.Mkx + 14, // 18: message.XHBZ.psls:type_name -> message.PSL + 13, // 19: message.XHBZ.spks:type_name -> message.SPKS + 43, // 20: message.XHBZ.deviceEccs:type_name -> message.DeviceEcc + 31, // 21: message.ParkingSpot.glb:type_name -> message.GLB + 1, // 22: message.Balise.type:type_name -> message.Balise.Type + 2, // 23: message.DevidingPoint.type:type_name -> message.DevidingPoint.Type + 31, // 24: message.DevidingPoint.glb:type_name -> message.GLB + 24, // 25: message.DevidingPoint.sectionPorts:type_name -> message.SectionPort + 3, // 26: message.Model.type:type_name -> message.Model.Type + 3, // 27: message.SectionPort.type:type_name -> message.Model.Type + 4, // 28: message.SectionPort.port:type_name -> message.SectionPort.Type + 5, // 29: message.Signal.model:type_name -> message.Signal.Model + 0, // 30: message.Signal.trd:type_name -> message.TRD + 6, // 31: message.Turnout.model:type_name -> message.Turnout.Model + 24, // 32: message.Turnout.asp:type_name -> message.SectionPort + 24, // 33: message.Turnout.bsp:type_name -> message.SectionPort + 24, // 34: message.Turnout.csp:type_name -> message.SectionPort + 7, // 35: message.Section.type:type_name -> message.Section.Type + 24, // 36: message.Section.asp:type_name -> message.SectionPort + 24, // 37: message.Section.bsp:type_name -> message.SectionPort + 0, // 38: message.Section.trd:type_name -> message.TRD + 31, // 39: message.Station.glb:type_name -> message.GLB + 38, // 40: message.CiJDQBZ.relays:type_name -> message.Relay + 37, // 41: message.CiJDQBZ.pfps:type_name -> message.PFP + 43, // 42: message.CiJDQBZ.deviceEcgDatas:type_name -> message.DeviceEcc + 35, // 43: message.CiJDQBZ.cjt:type_name -> message.CiCjTable + 34, // 44: message.CiJDQBZ.qdt:type_name -> message.CiQdTable + 36, // 45: message.CiCjTable.items:type_name -> message.CiCjItem + 8, // 46: message.Relay.model:type_name -> message.Relay.Model + 9, // 47: message.JKP.type:type_name -> message.JKP.Type + 41, // 48: message.JKP.kgs:type_name -> message.KaiGuan + 42, // 49: message.JKP.lamps:type_name -> message.Lamp + 40, // 50: message.JKP.alarms:type_name -> message.Alarm + 43, // 51: message.JKP.deviceEccs:type_name -> message.DeviceEcc + 3, // 52: message.DeviceEcc.deviceType:type_name -> message.Model.Type + 44, // 53: message.DeviceEcc.ecc:type_name -> message.Ecc 54, // [54:54] is the sub-list for method output_type 54, // [54:54] is the sub-list for method input_type 54, // [54:54] is the sub-list for extension type_name @@ -3762,14 +3611,14 @@ var file_repo_proto_depIdxs = []int32{ 0, // [0:54] is the sub-list for field type_name } -func init() { file_repo_proto_init() } -func file_repo_proto_init() { - if File_repo_proto != nil { +func init() { file_cg_repo_proto_init() } +func file_cg_repo_proto_init() { + if File_cg_repo_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_repo_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Repo); i { + file_cg_repo_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CgRepo); i { case 0: return &v.state case 1: @@ -3780,31 +3629,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GTData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_repo_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CGData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_repo_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Line); i { case 0: return &v.state @@ -3816,7 +3641,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*XHBZ); i { case 0: return &v.state @@ -3828,7 +3653,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SPKS); i { case 0: return &v.state @@ -3840,7 +3665,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PSL); i { case 0: return &v.state @@ -3852,7 +3677,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Mkx); i { case 0: return &v.state @@ -3864,7 +3689,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TDT); i { case 0: return &v.state @@ -3876,7 +3701,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EMP); i { case 0: return &v.state @@ -3888,7 +3713,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Qd); i { case 0: return &v.state @@ -3900,7 +3725,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Pd); i { case 0: return &v.state @@ -3912,7 +3737,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ParkingSpot); i { case 0: return &v.state @@ -3924,7 +3749,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Balise); i { case 0: return &v.state @@ -3936,7 +3761,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DevidingPoint); i { case 0: return &v.state @@ -3948,8 +3773,8 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Device); i { + file_cg_repo_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Model); i { case 0: return &v.state case 1: @@ -3960,7 +3785,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SectionPort); i { case 0: return &v.state @@ -3972,7 +3797,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Signal); i { case 0: return &v.state @@ -3984,7 +3809,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Turnout); i { case 0: return &v.state @@ -3996,8 +3821,8 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PhysicalSection); i { + file_cg_repo_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Section); i { case 0: return &v.state case 1: @@ -4008,7 +3833,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Psd); i { case 0: return &v.state @@ -4020,7 +3845,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Platform); i { case 0: return &v.state @@ -4032,7 +3857,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Station); i { case 0: return &v.state @@ -4044,7 +3869,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GLB); i { case 0: return &v.state @@ -4056,7 +3881,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CiJDQBZ); i { case 0: return &v.state @@ -4068,7 +3893,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CiSectionTable); i { case 0: return &v.state @@ -4080,7 +3905,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CiQdTable); i { case 0: return &v.state @@ -4092,7 +3917,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CiCjTable); i { case 0: return &v.state @@ -4104,7 +3929,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CiCjItem); i { case 0: return &v.state @@ -4116,7 +3941,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PFP); i { case 0: return &v.state @@ -4128,7 +3953,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Relay); i { case 0: return &v.state @@ -4140,7 +3965,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JKP); i { case 0: return &v.state @@ -4152,7 +3977,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Alarm); i { case 0: return &v.state @@ -4164,7 +3989,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KaiGuan); i { case 0: return &v.state @@ -4176,7 +4001,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Lamp); i { case 0: return &v.state @@ -4188,7 +4013,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceEcc); i { case 0: return &v.state @@ -4200,7 +4025,7 @@ func file_repo_proto_init() { return nil } } - file_repo_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_cg_repo_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ecc); i { case 0: return &v.state @@ -4213,27 +4038,23 @@ func file_repo_proto_init() { } } } - file_repo_proto_msgTypes[0].OneofWrappers = []interface{}{ - (*Repo_CgData)(nil), - (*Repo_GtData)(nil), - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_repo_proto_rawDesc, - NumEnums: 11, - NumMessages: 37, + RawDescriptor: file_cg_repo_proto_rawDesc, + NumEnums: 10, + NumMessages: 35, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_repo_proto_goTypes, - DependencyIndexes: file_repo_proto_depIdxs, - EnumInfos: file_repo_proto_enumTypes, - MessageInfos: file_repo_proto_msgTypes, + GoTypes: file_cg_repo_proto_goTypes, + DependencyIndexes: file_cg_repo_proto_depIdxs, + EnumInfos: file_cg_repo_proto_enumTypes, + MessageInfos: file_cg_repo_proto_msgTypes, }.Build() - File_repo_proto = out.File - file_repo_proto_rawDesc = nil - file_repo_proto_goTypes = nil - file_repo_proto_depIdxs = nil + File_cg_repo_proto = out.File + file_cg_repo_proto_rawDesc = nil + file_cg_repo_proto_goTypes = nil + file_cg_repo_proto_depIdxs = nil } diff --git a/repo/idmapping_build.go b/repo/idmapping_build.go index fd40257..9980f40 100644 --- a/repo/idmapping_build.go +++ b/repo/idmapping_build.go @@ -122,20 +122,9 @@ func (m *IdMapping) checkUidAndAdd(idmap *idMap) (existed *idMap, uidExisted boo return } -// 构建id映射 -func BuildIdMapping(msgs *dto.Repo, errRecord *ErrorRecord) *IdMapping { - if cg := msgs.GetCgData(); cg != nil { - return BuildCgIdMapping(cg, errRecord) - } else if gt := msgs.GetGtData(); gt != nil { - return BuildGtIdMapping(gt) - } - errRecord.AddError("构建id映射表错误: 没有数据") - return nil -} - // 构建城轨id映射 -func BuildCgIdMapping(cg *dto.CGData, errRecord *ErrorRecord) *IdMapping { - if cg == nil { +func BuildIdMapping(msgs *dto.CgRepo, errRecord *ErrorRecord) *IdMapping { + if msgs == nil { errRecord.AddError("构建城轨id映射表错误: 未关联任何数据") return nil } @@ -144,14 +133,14 @@ func BuildCgIdMapping(cg *dto.CGData, errRecord *ErrorRecord) *IdMapping { uidMap: make(map[string]*idMap), } lineSet := make(map[string]struct{}) - for _, l := range cg.Lines { + for _, l := range msgs.Lines { if _, ok := lineSet[l.City+l.LineId]; ok { errRecord.AddError(fmt.Sprintf("构建城轨id映射表错误: 线路重复:%s_%s", l.City, l.LineId)) return nil } lineSet[l.City+l.LineId] = struct{}{} } - for _, line := range cg.Lines { + for _, line := range msgs.Lines { buildXhbz(idMapping, line, errRecord) if errRecord.HasError() { return nil @@ -221,7 +210,7 @@ func buildXhbz(idMapping *IdMapping, line *dto.Line, errRecord *ErrorRecord) { } } // 物理区段 - for _, ps := range xhbz.PhysicalSections { + for _, ps := range xhbz.Sections { eid := ps.Id if checkFieldEmpty(did, eid, ps.Code, errPrefix, "物理区段编号", errRecord) { continue @@ -478,7 +467,3 @@ func checkRepeatOrAddIdMap(idm *idMap, idMapping *IdMapping, prefix string, errR } return } - -func BuildGtIdMapping(gt *dto.GTData) *IdMapping { - panic("未实现") -} diff --git a/repo/manage.go b/repo/manage.go index b3231c8..4b36369 100644 --- a/repo/manage.go +++ b/repo/manage.go @@ -7,16 +7,16 @@ import ( ) type repoManager struct { - repoMap map[string]Repo + repoMap map[string]CgRepo lock sync.Mutex } var defaultManager = &repoManager{ - repoMap: make(map[string]Repo), + repoMap: make(map[string]CgRepo), } // 获取或构建模型仓库 -func GetOrBuildRepo(id string, dc func(errRecord *ErrorRecord) *dto.Repo) (Repo, *ErrorRecord) { +func GetOrBuildRepo(id string, dc func(errRecord *ErrorRecord) *dto.CgRepo) (CgRepo, *ErrorRecord) { manager := defaultManager manager.lock.Lock() defer manager.lock.Unlock() diff --git a/repo/repo.go b/repo/repo.go index 2658d76..62a91d1 100644 --- a/repo/repo.go +++ b/repo/repo.go @@ -15,7 +15,7 @@ type repo struct { turnoutMap map[string]*impl.Turnout // 道岔map,key为uid } -func BuildFrom(msgs *dto.Repo) (Repo, *ErrorRecord) { +func BuildFrom(msgs *dto.CgRepo) (CgRepo, *ErrorRecord) { errRecord := NewErrorRecord() idMapping := BuildIdMapping(msgs, errRecord) if errRecord.HasError() {