rts-sim-module/repository/model/proto/model.pb.go
2023-11-23 11:19:39 +08:00

4023 lines
134 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.23.1
// source: model.proto
package proto
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type DeviceType int32
const (
DeviceType_DeviceType_Unknown DeviceType = 0
DeviceType_DeviceType_PhysicalSection DeviceType = 1
DeviceType_DeviceType_CheckPoint DeviceType = 2
DeviceType_DeviceType_Turnout DeviceType = 3
DeviceType_DeviceType_Signal DeviceType = 4
DeviceType_DeviceType_Transponder DeviceType = 5
DeviceType_DeviceType_Slope DeviceType = 6
DeviceType_DeviceType_SectionalCurvature DeviceType = 7
DeviceType_DeviceType_Link DeviceType = 8
DeviceType_DeviceType_LinkNode DeviceType = 9
DeviceType_DeviceType_Relay DeviceType = 10
DeviceType_DeviceType_PhaseFailureProtector DeviceType = 11
DeviceType_DeviceType_Button DeviceType = 12
DeviceType_DeviceType_Light DeviceType = 13
DeviceType_DeviceType_Alarm DeviceType = 14
DeviceType_DeviceType_Psd DeviceType = 15
DeviceType_DeviceType_Station DeviceType = 16
DeviceType_DeviceType_Mkx DeviceType = 17
DeviceType_DeviceType_Key DeviceType = 18
DeviceType_DeviceType_Platform DeviceType = 19
// 信号机故障报警仪
DeviceType_DeviceType_SignalFaultAlarm DeviceType = 20
// 断路器
DeviceType_DeviceType_Breakers DeviceType = 21
// 电源屏
DeviceType_DeviceType_PowerScreen DeviceType = 22
)
// Enum value maps for DeviceType.
var (
DeviceType_name = map[int32]string{
0: "DeviceType_Unknown",
1: "DeviceType_PhysicalSection",
2: "DeviceType_CheckPoint",
3: "DeviceType_Turnout",
4: "DeviceType_Signal",
5: "DeviceType_Transponder",
6: "DeviceType_Slope",
7: "DeviceType_SectionalCurvature",
8: "DeviceType_Link",
9: "DeviceType_LinkNode",
10: "DeviceType_Relay",
11: "DeviceType_PhaseFailureProtector",
12: "DeviceType_Button",
13: "DeviceType_Light",
14: "DeviceType_Alarm",
15: "DeviceType_Psd",
16: "DeviceType_Station",
17: "DeviceType_Mkx",
18: "DeviceType_Key",
19: "DeviceType_Platform",
20: "DeviceType_SignalFaultAlarm",
21: "DeviceType_Breakers",
22: "DeviceType_PowerScreen",
}
DeviceType_value = map[string]int32{
"DeviceType_Unknown": 0,
"DeviceType_PhysicalSection": 1,
"DeviceType_CheckPoint": 2,
"DeviceType_Turnout": 3,
"DeviceType_Signal": 4,
"DeviceType_Transponder": 5,
"DeviceType_Slope": 6,
"DeviceType_SectionalCurvature": 7,
"DeviceType_Link": 8,
"DeviceType_LinkNode": 9,
"DeviceType_Relay": 10,
"DeviceType_PhaseFailureProtector": 11,
"DeviceType_Button": 12,
"DeviceType_Light": 13,
"DeviceType_Alarm": 14,
"DeviceType_Psd": 15,
"DeviceType_Station": 16,
"DeviceType_Mkx": 17,
"DeviceType_Key": 18,
"DeviceType_Platform": 19,
"DeviceType_SignalFaultAlarm": 20,
"DeviceType_Breakers": 21,
"DeviceType_PowerScreen": 22,
}
)
func (x DeviceType) Enum() *DeviceType {
p := new(DeviceType)
*p = x
return p
}
func (x DeviceType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (DeviceType) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[0].Descriptor()
}
func (DeviceType) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[0]
}
func (x DeviceType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use DeviceType.Descriptor instead.
func (DeviceType) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{0}
}
type Port int32
const (
Port_None Port = 0 //没有端口/未指定端口
Port_A Port = 1
Port_B Port = 2
Port_C Port = 3
)
// Enum value maps for Port.
var (
Port_name = map[int32]string{
0: "None",
1: "A",
2: "B",
3: "C",
}
Port_value = map[string]int32{
"None": 0,
"A": 1,
"B": 2,
"C": 3,
}
)
func (x Port) Enum() *Port {
p := new(Port)
*p = x
return p
}
func (x Port) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Port) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[1].Descriptor()
}
func (Port) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[1]
}
func (x Port) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Port.Descriptor instead.
func (Port) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{1}
}
// 左右行
type Direction int32
const (
Direction_LEFT Direction = 0
Direction_RIGHT Direction = 1
)
// Enum value maps for Direction.
var (
Direction_name = map[int32]string{
0: "LEFT",
1: "RIGHT",
}
Direction_value = map[string]int32{
"LEFT": 0,
"RIGHT": 1,
}
)
func (x Direction) Enum() *Direction {
p := new(Direction)
*p = x
return p
}
func (x Direction) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Direction) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[2].Descriptor()
}
func (Direction) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[2]
}
func (x Direction) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Direction.Descriptor instead.
func (Direction) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{2}
}
// 检测点类型
type CheckPointType int32
const (
CheckPointType_Boundary CheckPointType = 0 //区段边界
CheckPointType_AxleCounter CheckPointType = 1 //计轴器
CheckPointType_InsulatedJoint CheckPointType = 2 //绝缘节
)
// Enum value maps for CheckPointType.
var (
CheckPointType_name = map[int32]string{
0: "Boundary",
1: "AxleCounter",
2: "InsulatedJoint",
}
CheckPointType_value = map[string]int32{
"Boundary": 0,
"AxleCounter": 1,
"InsulatedJoint": 2,
}
)
func (x CheckPointType) Enum() *CheckPointType {
p := new(CheckPointType)
*p = x
return p
}
func (x CheckPointType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (CheckPointType) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[3].Descriptor()
}
func (CheckPointType) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[3]
}
func (x CheckPointType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use CheckPointType.Descriptor instead.
func (CheckPointType) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{3}
}
type Turnout_SwitchMachineType int32
const (
Turnout_Unknown Turnout_SwitchMachineType = 0
Turnout_ZDJ9_Single Turnout_SwitchMachineType = 1
Turnout_ZDJ9_Double Turnout_SwitchMachineType = 2
)
// Enum value maps for Turnout_SwitchMachineType.
var (
Turnout_SwitchMachineType_name = map[int32]string{
0: "Unknown",
1: "ZDJ9_Single",
2: "ZDJ9_Double",
}
Turnout_SwitchMachineType_value = map[string]int32{
"Unknown": 0,
"ZDJ9_Single": 1,
"ZDJ9_Double": 2,
}
)
func (x Turnout_SwitchMachineType) Enum() *Turnout_SwitchMachineType {
p := new(Turnout_SwitchMachineType)
*p = x
return p
}
func (x Turnout_SwitchMachineType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Turnout_SwitchMachineType) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[4].Descriptor()
}
func (Turnout_SwitchMachineType) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[4]
}
func (x Turnout_SwitchMachineType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Turnout_SwitchMachineType.Descriptor instead.
func (Turnout_SwitchMachineType) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{4, 0}
}
// 信号机模型类型枚举
// 从左向右,最左边为靠近灯座的灯
type Signal_Model int32
const (
Signal_HL Signal_Model = 0 //2XH-1 红绿
Signal_HLU_FU Signal_Model = 1 //2XH-1 红绿黄,封黄灯,无引导
Signal_HLU_DU_YY Signal_Model = 2 //3XH-1 红绿黄,不封灯,有单黄,带引导
Signal_HLU_YY Signal_Model = 3 //3XH-2或JDXH 红绿黄,不封灯,无单黄,带引导
Signal_HLU_FL_DU_YY Signal_Model = 4 //3XH-3 红绿黄,封绿灯,有单黄,带引导
Signal_HLU_DU Signal_Model = 5 //3XH-4 红绿黄,不封灯,有单黄,无引导
Signal_AB Signal_Model = 6 //DXCH 蓝白
Signal_HBU_DU Signal_Model = 7 //JCKXH 红白黄,不封灯,有单黄,无引导
)
// Enum value maps for Signal_Model.
var (
Signal_Model_name = map[int32]string{
0: "HL",
1: "HLU_FU",
2: "HLU_DU_YY",
3: "HLU_YY",
4: "HLU_FL_DU_YY",
5: "HLU_DU",
6: "AB",
7: "HBU_DU",
}
Signal_Model_value = map[string]int32{
"HL": 0,
"HLU_FU": 1,
"HLU_DU_YY": 2,
"HLU_YY": 3,
"HLU_FL_DU_YY": 4,
"HLU_DU": 5,
"AB": 6,
"HBU_DU": 7,
}
)
func (x Signal_Model) Enum() *Signal_Model {
p := new(Signal_Model)
*p = x
return p
}
func (x Signal_Model) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Signal_Model) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[5].Descriptor()
}
func (Signal_Model) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[5]
}
func (x Signal_Model) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Signal_Model.Descriptor instead.
func (Signal_Model) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{5, 0}
}
type Transponder_Type int32
const (
Transponder_FB Transponder_Type = 0 // 固定应答器
Transponder_WB Transponder_Type = 1 // 轮径校正应答器
Transponder_DB Transponder_Type = 2 // 休眠唤醒应答器
Transponder_VB Transponder_Type = 3 // 主信号应答器
Transponder_IB Transponder_Type = 4 // 预告应答器
)
// Enum value maps for Transponder_Type.
var (
Transponder_Type_name = map[int32]string{
0: "FB",
1: "WB",
2: "DB",
3: "VB",
4: "IB",
}
Transponder_Type_value = map[string]int32{
"FB": 0,
"WB": 1,
"DB": 2,
"VB": 3,
"IB": 4,
}
)
func (x Transponder_Type) Enum() *Transponder_Type {
p := new(Transponder_Type)
*p = x
return p
}
func (x Transponder_Type) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Transponder_Type) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[6].Descriptor()
}
func (Transponder_Type) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[6]
}
func (x Transponder_Type) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Transponder_Type.Descriptor instead.
func (Transponder_Type) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{7, 0}
}
type Relay_Model int32
const (
Relay_Unknown Relay_Model = 0
Relay_JPXC_1000 Relay_Model = 1
Relay_JPXC_1700 Relay_Model = 2
Relay_JWJXC_480 Relay_Model = 3
Relay_JWJXC_H125_80 Relay_Model = 4
Relay_JWXC_1700 Relay_Model = 5
Relay_JWXC_H340 Relay_Model = 6
Relay_JYJXC_160_260 Relay_Model = 7
Relay_JZXC_H18 Relay_Model = 8
)
// Enum value maps for Relay_Model.
var (
Relay_Model_name = map[int32]string{
0: "Unknown",
1: "JPXC_1000",
2: "JPXC_1700",
3: "JWJXC_480",
4: "JWJXC_H125_80",
5: "JWXC_1700",
6: "JWXC_H340",
7: "JYJXC_160_260",
8: "JZXC_H18",
}
Relay_Model_value = map[string]int32{
"Unknown": 0,
"JPXC_1000": 1,
"JPXC_1700": 2,
"JWJXC_480": 3,
"JWJXC_H125_80": 4,
"JWXC_1700": 5,
"JWXC_H340": 6,
"JYJXC_160_260": 7,
"JZXC_H18": 8,
}
)
func (x Relay_Model) Enum() *Relay_Model {
p := new(Relay_Model)
*p = x
return p
}
func (x Relay_Model) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Relay_Model) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[7].Descriptor()
}
func (Relay_Model) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[7]
}
func (x Relay_Model) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Relay_Model.Descriptor instead.
func (Relay_Model) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{13, 0}
}
type Button_ButtonType int32
const (
Button_Unknown Button_ButtonType = 0
Button_NO_Reset_Press Button_ButtonType = 1
Button_NO_Reset_Up Button_ButtonType = 2
Button_Reset_Press Button_ButtonType = 3
Button_Reset_Up Button_ButtonType = 4
Button_Key_Knob Button_ButtonType = 5
)
// Enum value maps for Button_ButtonType.
var (
Button_ButtonType_name = map[int32]string{
0: "Unknown",
1: "NO_Reset_Press",
2: "NO_Reset_Up",
3: "Reset_Press",
4: "Reset_Up",
5: "Key_Knob",
}
Button_ButtonType_value = map[string]int32{
"Unknown": 0,
"NO_Reset_Press": 1,
"NO_Reset_Up": 2,
"Reset_Press": 3,
"Reset_Up": 4,
"Key_Knob": 5,
}
)
func (x Button_ButtonType) Enum() *Button_ButtonType {
p := new(Button_ButtonType)
*p = x
return p
}
func (x Button_ButtonType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Button_ButtonType) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[8].Descriptor()
}
func (Button_ButtonType) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[8]
}
func (x Button_ButtonType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Button_ButtonType.Descriptor instead.
func (Button_ButtonType) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{16, 0}
}
type Light_LightAspect int32
const (
Light_L Light_LightAspect = 0 //绿灯
Light_H Light_LightAspect = 1 //红灯
Light_U Light_LightAspect = 2 //黄灯
Light_HU Light_LightAspect = 3 //红黄灯
Light_B Light_LightAspect = 4 //白灯
Light_A Light_LightAspect = 5 //蓝灯
)
// Enum value maps for Light_LightAspect.
var (
Light_LightAspect_name = map[int32]string{
0: "L",
1: "H",
2: "U",
3: "HU",
4: "B",
5: "A",
}
Light_LightAspect_value = map[string]int32{
"L": 0,
"H": 1,
"U": 2,
"HU": 3,
"B": 4,
"A": 5,
}
)
func (x Light_LightAspect) Enum() *Light_LightAspect {
p := new(Light_LightAspect)
*p = x
return p
}
func (x Light_LightAspect) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Light_LightAspect) Descriptor() protoreflect.EnumDescriptor {
return file_model_proto_enumTypes[9].Descriptor()
}
func (Light_LightAspect) Type() protoreflect.EnumType {
return &file_model_proto_enumTypes[9]
}
func (x Light_LightAspect) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Light_LightAspect.Descriptor instead.
func (Light_LightAspect) EnumDescriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{17, 0}
}
type Repository struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
PhysicalSections []*PhysicalSection `protobuf:"bytes,3,rep,name=physicalSections,proto3" json:"physicalSections,omitempty"`
CheckPoints []*CheckPoint `protobuf:"bytes,4,rep,name=checkPoints,proto3" json:"checkPoints,omitempty"`
Turnouts []*Turnout `protobuf:"bytes,5,rep,name=turnouts,proto3" json:"turnouts,omitempty"`
Signals []*Signal `protobuf:"bytes,6,rep,name=signals,proto3" json:"signals,omitempty"`
Transponders []*Transponder `protobuf:"bytes,7,rep,name=transponders,proto3" json:"transponders,omitempty"`
Slopes []*Slope `protobuf:"bytes,8,rep,name=slopes,proto3" json:"slopes,omitempty"`
SectionalCurvatures []*SectionalCurvature `protobuf:"bytes,9,rep,name=sectionalCurvatures,proto3" json:"sectionalCurvatures,omitempty"`
KilometerConverts []*KilometerConvert `protobuf:"bytes,10,rep,name=kilometerConverts,proto3" json:"kilometerConverts,omitempty"`
Relays []*Relay `protobuf:"bytes,11,rep,name=relays,proto3" json:"relays,omitempty"`
PhaseFailureProtectors []*PhaseFailureProtector `protobuf:"bytes,12,rep,name=phaseFailureProtectors,proto3" json:"phaseFailureProtectors,omitempty"`
Buttons []*Button `protobuf:"bytes,13,rep,name=buttons,proto3" json:"buttons,omitempty"`
Psds []*Psd `protobuf:"bytes,14,rep,name=psds,proto3" json:"psds,omitempty"`
Lights []*Light `protobuf:"bytes,15,rep,name=lights,proto3" json:"lights,omitempty"`
Alarms []*Alarm `protobuf:"bytes,16,rep,name=alarms,proto3" json:"alarms,omitempty"`
Stations []*Station `protobuf:"bytes,17,rep,name=stations,proto3" json:"stations,omitempty"`
Mkxs []*Mkx `protobuf:"bytes,18,rep,name=mkxs,proto3" json:"mkxs,omitempty"`
Platforms []*Platform `protobuf:"bytes,19,rep,name=platforms,proto3" json:"platforms,omitempty"`
MainCoordinateSystem string `protobuf:"bytes,20,opt,name=mainCoordinateSystem,proto3" json:"mainCoordinateSystem,omitempty"`
Keys []*Key `protobuf:"bytes,21,rep,name=Keys,proto3" json:"Keys,omitempty"`
CentralizedStationRefs []*CentralizedStationRef `protobuf:"bytes,22,rep,name=CentralizedStationRefs,proto3" json:"CentralizedStationRefs,omitempty"`
}
func (x *Repository) Reset() {
*x = Repository{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Repository) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Repository) ProtoMessage() {}
func (x *Repository) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[0]
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 Repository.ProtoReflect.Descriptor instead.
func (*Repository) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{0}
}
func (x *Repository) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Repository) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *Repository) GetPhysicalSections() []*PhysicalSection {
if x != nil {
return x.PhysicalSections
}
return nil
}
func (x *Repository) GetCheckPoints() []*CheckPoint {
if x != nil {
return x.CheckPoints
}
return nil
}
func (x *Repository) GetTurnouts() []*Turnout {
if x != nil {
return x.Turnouts
}
return nil
}
func (x *Repository) GetSignals() []*Signal {
if x != nil {
return x.Signals
}
return nil
}
func (x *Repository) GetTransponders() []*Transponder {
if x != nil {
return x.Transponders
}
return nil
}
func (x *Repository) GetSlopes() []*Slope {
if x != nil {
return x.Slopes
}
return nil
}
func (x *Repository) GetSectionalCurvatures() []*SectionalCurvature {
if x != nil {
return x.SectionalCurvatures
}
return nil
}
func (x *Repository) GetKilometerConverts() []*KilometerConvert {
if x != nil {
return x.KilometerConverts
}
return nil
}
func (x *Repository) GetRelays() []*Relay {
if x != nil {
return x.Relays
}
return nil
}
func (x *Repository) GetPhaseFailureProtectors() []*PhaseFailureProtector {
if x != nil {
return x.PhaseFailureProtectors
}
return nil
}
func (x *Repository) GetButtons() []*Button {
if x != nil {
return x.Buttons
}
return nil
}
func (x *Repository) GetPsds() []*Psd {
if x != nil {
return x.Psds
}
return nil
}
func (x *Repository) GetLights() []*Light {
if x != nil {
return x.Lights
}
return nil
}
func (x *Repository) GetAlarms() []*Alarm {
if x != nil {
return x.Alarms
}
return nil
}
func (x *Repository) GetStations() []*Station {
if x != nil {
return x.Stations
}
return nil
}
func (x *Repository) GetMkxs() []*Mkx {
if x != nil {
return x.Mkxs
}
return nil
}
func (x *Repository) GetPlatforms() []*Platform {
if x != nil {
return x.Platforms
}
return nil
}
func (x *Repository) GetMainCoordinateSystem() string {
if x != nil {
return x.MainCoordinateSystem
}
return ""
}
func (x *Repository) GetKeys() []*Key {
if x != nil {
return x.Keys
}
return nil
}
func (x *Repository) GetCentralizedStationRefs() []*CentralizedStationRef {
if x != nil {
return x.CentralizedStationRefs
}
return nil
}
// 信号布置数据
type SignalLayout struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 物理区段
PhysicalSections []*PhysicalSection `protobuf:"bytes,3,rep,name=physicalSections,proto3" json:"physicalSections,omitempty"`
CheckPoints []*CheckPoint `protobuf:"bytes,4,rep,name=checkPoints,proto3" json:"checkPoints,omitempty"`
Turnouts []*Turnout `protobuf:"bytes,5,rep,name=turnouts,proto3" json:"turnouts,omitempty"`
Signals []*Signal `protobuf:"bytes,6,rep,name=signals,proto3" json:"signals,omitempty"`
Transponders []*Transponder `protobuf:"bytes,7,rep,name=transponders,proto3" json:"transponders,omitempty"`
Slopes []*Slope `protobuf:"bytes,8,rep,name=slopes,proto3" json:"slopes,omitempty"`
SectionalCurvatures []*SectionalCurvature `protobuf:"bytes,9,rep,name=sectionalCurvatures,proto3" json:"sectionalCurvatures,omitempty"`
KilometerConverts []*KilometerConvert `protobuf:"bytes,10,rep,name=kilometerConverts,proto3" json:"kilometerConverts,omitempty"`
}
func (x *SignalLayout) Reset() {
*x = SignalLayout{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SignalLayout) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SignalLayout) ProtoMessage() {}
func (x *SignalLayout) ProtoReflect() protoreflect.Message {
mi := &file_model_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 SignalLayout.ProtoReflect.Descriptor instead.
func (*SignalLayout) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{1}
}
func (x *SignalLayout) GetPhysicalSections() []*PhysicalSection {
if x != nil {
return x.PhysicalSections
}
return nil
}
func (x *SignalLayout) GetCheckPoints() []*CheckPoint {
if x != nil {
return x.CheckPoints
}
return nil
}
func (x *SignalLayout) GetTurnouts() []*Turnout {
if x != nil {
return x.Turnouts
}
return nil
}
func (x *SignalLayout) GetSignals() []*Signal {
if x != nil {
return x.Signals
}
return nil
}
func (x *SignalLayout) GetTransponders() []*Transponder {
if x != nil {
return x.Transponders
}
return nil
}
func (x *SignalLayout) GetSlopes() []*Slope {
if x != nil {
return x.Slopes
}
return nil
}
func (x *SignalLayout) GetSectionalCurvatures() []*SectionalCurvature {
if x != nil {
return x.SectionalCurvatures
}
return nil
}
func (x *SignalLayout) GetKilometerConverts() []*KilometerConvert {
if x != nil {
return x.KilometerConverts
}
return nil
}
// 物理区段
type PhysicalSection struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
TurnoutIds []string `protobuf:"bytes,2,rep,name=turnoutIds,proto3" json:"turnoutIds,omitempty"` //道岔物理区段关联的道岔
ADevicePort *DevicePort `protobuf:"bytes,3,opt,name=aDevicePort,proto3" json:"aDevicePort,omitempty"` //非道岔物理区段A端关联的设备端口
BDevicePort *DevicePort `protobuf:"bytes,4,opt,name=bDevicePort,proto3" json:"bDevicePort,omitempty"`
// 物理区段所属集中站
CentralizedStation string `protobuf:"bytes,5,opt,name=centralizedStation,proto3" json:"centralizedStation,omitempty"`
}
func (x *PhysicalSection) Reset() {
*x = PhysicalSection{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PhysicalSection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PhysicalSection) ProtoMessage() {}
func (x *PhysicalSection) ProtoReflect() protoreflect.Message {
mi := &file_model_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 PhysicalSection.ProtoReflect.Descriptor instead.
func (*PhysicalSection) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{2}
}
func (x *PhysicalSection) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *PhysicalSection) GetTurnoutIds() []string {
if x != nil {
return x.TurnoutIds
}
return nil
}
func (x *PhysicalSection) GetADevicePort() *DevicePort {
if x != nil {
return x.ADevicePort
}
return nil
}
func (x *PhysicalSection) GetBDevicePort() *DevicePort {
if x != nil {
return x.BDevicePort
}
return nil
}
func (x *PhysicalSection) GetCentralizedStation() string {
if x != nil {
return x.CentralizedStation
}
return ""
}
// 区段检测点
type CheckPoint struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Km *Kilometer `protobuf:"bytes,2,opt,name=km,proto3" json:"km,omitempty"`
Type CheckPointType `protobuf:"varint,3,opt,name=type,proto3,enum=model.CheckPointType" json:"type,omitempty"`
DevicePorts []*DevicePort `protobuf:"bytes,4,rep,name=devicePorts,proto3" json:"devicePorts,omitempty"`
}
func (x *CheckPoint) Reset() {
*x = CheckPoint{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CheckPoint) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CheckPoint) ProtoMessage() {}
func (x *CheckPoint) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[3]
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 CheckPoint.ProtoReflect.Descriptor instead.
func (*CheckPoint) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{3}
}
func (x *CheckPoint) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *CheckPoint) GetKm() *Kilometer {
if x != nil {
return x.Km
}
return nil
}
func (x *CheckPoint) GetType() CheckPointType {
if x != nil {
return x.Type
}
return CheckPointType_Boundary
}
func (x *CheckPoint) GetDevicePorts() []*DevicePort {
if x != nil {
return x.DevicePorts
}
return nil
}
// 道岔
type Turnout struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Km *Kilometer `protobuf:"bytes,2,opt,name=km,proto3" json:"km,omitempty"`
ADevicePort *DevicePort `protobuf:"bytes,3,opt,name=aDevicePort,proto3" json:"aDevicePort,omitempty"`
BDevicePort *DevicePort `protobuf:"bytes,4,opt,name=bDevicePort,proto3" json:"bDevicePort,omitempty"`
CDevicePort *DevicePort `protobuf:"bytes,5,opt,name=cDevicePort,proto3" json:"cDevicePort,omitempty"`
SwitchMachineType Turnout_SwitchMachineType `protobuf:"varint,6,opt,name=switchMachineType,proto3,enum=model.Turnout_SwitchMachineType" json:"switchMachineType,omitempty"`
ElectronicComponentGroups []*ElectronicComponentGroup `protobuf:"bytes,7,rep,name=electronicComponentGroups,proto3" json:"electronicComponentGroups,omitempty"` //关联的电子元件组合
}
func (x *Turnout) Reset() {
*x = Turnout{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Turnout) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Turnout) ProtoMessage() {}
func (x *Turnout) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[4]
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 Turnout.ProtoReflect.Descriptor instead.
func (*Turnout) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{4}
}
func (x *Turnout) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Turnout) GetKm() *Kilometer {
if x != nil {
return x.Km
}
return nil
}
func (x *Turnout) GetADevicePort() *DevicePort {
if x != nil {
return x.ADevicePort
}
return nil
}
func (x *Turnout) GetBDevicePort() *DevicePort {
if x != nil {
return x.BDevicePort
}
return nil
}
func (x *Turnout) GetCDevicePort() *DevicePort {
if x != nil {
return x.CDevicePort
}
return nil
}
func (x *Turnout) GetSwitchMachineType() Turnout_SwitchMachineType {
if x != nil {
return x.SwitchMachineType
}
return Turnout_Unknown
}
func (x *Turnout) GetElectronicComponentGroups() []*ElectronicComponentGroup {
if x != nil {
return x.ElectronicComponentGroups
}
return nil
}
// 信号机
type Signal struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Km *Kilometer `protobuf:"bytes,2,opt,name=km,proto3" json:"km,omitempty"`
SectionId string `protobuf:"bytes,3,opt,name=sectionId,proto3" json:"sectionId,omitempty"` //关联的区段
TurnoutPort *DevicePort `protobuf:"bytes,4,opt,name=turnoutPort,proto3" json:"turnoutPort,omitempty"` //关联的区段端口
ElectronicComponentGroups []*ElectronicComponentGroup `protobuf:"bytes,7,rep,name=electronicComponentGroups,proto3" json:"electronicComponentGroups,omitempty"` //关联的电子元件组合
Code string `protobuf:"bytes,8,opt,name=code,proto3" json:"code,omitempty"` //信号机组合类型
Model Signal_Model `protobuf:"varint,9,opt,name=model,proto3,enum=model.Signal_Model" json:"model,omitempty"` //信号机模型类型(stationLayoutGraphics.proto Signal.Model枚举值)
}
func (x *Signal) Reset() {
*x = Signal{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Signal) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Signal) ProtoMessage() {}
func (x *Signal) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[5]
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 Signal.ProtoReflect.Descriptor instead.
func (*Signal) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{5}
}
func (x *Signal) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Signal) GetKm() *Kilometer {
if x != nil {
return x.Km
}
return nil
}
func (x *Signal) GetSectionId() string {
if x != nil {
return x.SectionId
}
return ""
}
func (x *Signal) GetTurnoutPort() *DevicePort {
if x != nil {
return x.TurnoutPort
}
return nil
}
func (x *Signal) GetElectronicComponentGroups() []*ElectronicComponentGroup {
if x != nil {
return x.ElectronicComponentGroups
}
return nil
}
func (x *Signal) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Signal) GetModel() Signal_Model {
if x != nil {
return x.Model
}
return Signal_HL
}
type Psd struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
PlatformId string `protobuf:"bytes,2,opt,name=platformId,proto3" json:"platformId,omitempty"`
AsdAmount int32 `protobuf:"varint,3,opt,name=asdAmount,proto3" json:"asdAmount,omitempty"`
AsdGroups []*AsdGroup `protobuf:"bytes,4,rep,name=asdGroups,proto3" json:"asdGroups,omitempty"`
ElectronicComponentGroups []*ElectronicComponentGroup `protobuf:"bytes,5,rep,name=electronicComponentGroups,proto3" json:"electronicComponentGroups,omitempty"` //关联的电子元件组合
}
func (x *Psd) Reset() {
*x = Psd{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Psd) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Psd) ProtoMessage() {}
func (x *Psd) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[6]
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 Psd.ProtoReflect.Descriptor instead.
func (*Psd) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{6}
}
func (x *Psd) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Psd) GetPlatformId() string {
if x != nil {
return x.PlatformId
}
return ""
}
func (x *Psd) GetAsdAmount() int32 {
if x != nil {
return x.AsdAmount
}
return 0
}
func (x *Psd) GetAsdGroups() []*AsdGroup {
if x != nil {
return x.AsdGroups
}
return nil
}
func (x *Psd) GetElectronicComponentGroups() []*ElectronicComponentGroup {
if x != nil {
return x.ElectronicComponentGroups
}
return nil
}
// 应答器
type Transponder struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Km *Kilometer `protobuf:"bytes,2,opt,name=km,proto3" json:"km,omitempty"`
SectionId string `protobuf:"bytes,3,opt,name=sectionId,proto3" json:"sectionId,omitempty"` //关联的区段
TurnoutPort *DevicePort `protobuf:"bytes,4,opt,name=turnoutPort,proto3" json:"turnoutPort,omitempty"` //关联的区段端口
FixedTelegram []byte `protobuf:"bytes,5,opt,name=fixedTelegram,proto3" json:"fixedTelegram,omitempty"` //无源应答器固定报文
Type Transponder_Type `protobuf:"varint,6,opt,name=type,proto3,enum=model.Transponder_Type" json:"type,omitempty"` //应答器类型
}
func (x *Transponder) Reset() {
*x = Transponder{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Transponder) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Transponder) ProtoMessage() {}
func (x *Transponder) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[7]
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 Transponder.ProtoReflect.Descriptor instead.
func (*Transponder) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{7}
}
func (x *Transponder) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Transponder) GetKm() *Kilometer {
if x != nil {
return x.Km
}
return nil
}
func (x *Transponder) GetSectionId() string {
if x != nil {
return x.SectionId
}
return ""
}
func (x *Transponder) GetTurnoutPort() *DevicePort {
if x != nil {
return x.TurnoutPort
}
return nil
}
func (x *Transponder) GetFixedTelegram() []byte {
if x != nil {
return x.FixedTelegram
}
return nil
}
func (x *Transponder) GetType() Transponder_Type {
if x != nil {
return x.Type
}
return Transponder_FB
}
// 坡度
type Slope struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Kms []*Kilometer `protobuf:"bytes,2,rep,name=kms,proto3" json:"kms,omitempty"`
Degree int32 `protobuf:"varint,3,opt,name=degree,proto3" json:"degree,omitempty"` //坡度角的sin * 1000
}
func (x *Slope) Reset() {
*x = Slope{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Slope) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Slope) ProtoMessage() {}
func (x *Slope) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[8]
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 Slope.ProtoReflect.Descriptor instead.
func (*Slope) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{8}
}
func (x *Slope) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Slope) GetKms() []*Kilometer {
if x != nil {
return x.Kms
}
return nil
}
func (x *Slope) GetDegree() int32 {
if x != nil {
return x.Degree
}
return 0
}
// 分段曲率
type SectionalCurvature struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Kms []*Kilometer `protobuf:"bytes,2,rep,name=kms,proto3" json:"kms,omitempty"`
Radius int32 `protobuf:"varint,3,opt,name=radius,proto3" json:"radius,omitempty"` //半径 mm
}
func (x *SectionalCurvature) Reset() {
*x = SectionalCurvature{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SectionalCurvature) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SectionalCurvature) ProtoMessage() {}
func (x *SectionalCurvature) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[9]
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 SectionalCurvature.ProtoReflect.Descriptor instead.
func (*SectionalCurvature) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{9}
}
func (x *SectionalCurvature) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *SectionalCurvature) GetKms() []*Kilometer {
if x != nil {
return x.Kms
}
return nil
}
func (x *SectionalCurvature) GetRadius() int32 {
if x != nil {
return x.Radius
}
return 0
}
// 设备及端口
type DevicePort struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DeviceId string `protobuf:"bytes,1,opt,name=deviceId,proto3" json:"deviceId,omitempty"`
DeviceType DeviceType `protobuf:"varint,2,opt,name=deviceType,proto3,enum=model.DeviceType" json:"deviceType,omitempty"`
Port Port `protobuf:"varint,3,opt,name=port,proto3,enum=model.Port" json:"port,omitempty"`
}
func (x *DevicePort) Reset() {
*x = DevicePort{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DevicePort) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DevicePort) ProtoMessage() {}
func (x *DevicePort) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[10]
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 DevicePort.ProtoReflect.Descriptor instead.
func (*DevicePort) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{10}
}
func (x *DevicePort) GetDeviceId() string {
if x != nil {
return x.DeviceId
}
return ""
}
func (x *DevicePort) GetDeviceType() DeviceType {
if x != nil {
return x.DeviceType
}
return DeviceType_DeviceType_Unknown
}
func (x *DevicePort) GetPort() Port {
if x != nil {
return x.Port
}
return Port_None
}
// 公里标
type Kilometer struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` //公里标mm
CoordinateSystem string `protobuf:"bytes,2,opt,name=coordinateSystem,proto3" json:"coordinateSystem,omitempty"` //坐标系
Direction Direction `protobuf:"varint,3,opt,name=direction,proto3,enum=model.Direction" json:"direction,omitempty"` //左右行
}
func (x *Kilometer) Reset() {
*x = Kilometer{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Kilometer) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Kilometer) ProtoMessage() {}
func (x *Kilometer) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[11]
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 Kilometer.ProtoReflect.Descriptor instead.
func (*Kilometer) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{11}
}
func (x *Kilometer) GetValue() int64 {
if x != nil {
return x.Value
}
return 0
}
func (x *Kilometer) GetCoordinateSystem() string {
if x != nil {
return x.CoordinateSystem
}
return ""
}
func (x *Kilometer) GetDirection() Direction {
if x != nil {
return x.Direction
}
return Direction_LEFT
}
// 公里标转换
type KilometerConvert struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
KmA *Kilometer `protobuf:"bytes,1,opt,name=kmA,proto3" json:"kmA,omitempty"`
KmB *Kilometer `protobuf:"bytes,2,opt,name=kmB,proto3" json:"kmB,omitempty"`
SameTrend bool `protobuf:"varint,3,opt,name=sameTrend,proto3" json:"sameTrend,omitempty"` //相同趋势(同增同减)?
}
func (x *KilometerConvert) Reset() {
*x = KilometerConvert{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *KilometerConvert) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KilometerConvert) ProtoMessage() {}
func (x *KilometerConvert) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[12]
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 KilometerConvert.ProtoReflect.Descriptor instead.
func (*KilometerConvert) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{12}
}
func (x *KilometerConvert) GetKmA() *Kilometer {
if x != nil {
return x.KmA
}
return nil
}
func (x *KilometerConvert) GetKmB() *Kilometer {
if x != nil {
return x.KmB
}
return nil
}
func (x *KilometerConvert) GetSameTrend() bool {
if x != nil {
return x.SameTrend
}
return false
}
// 继电器
type Relay struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Model Relay_Model `protobuf:"varint,3,opt,name=model,proto3,enum=model.Relay_Model" json:"model,omitempty"`
StationId string `protobuf:"bytes,4,opt,name=stationId,proto3" json:"stationId,omitempty"` // 所属车站id
}
func (x *Relay) Reset() {
*x = Relay{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Relay) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Relay) ProtoMessage() {}
func (x *Relay) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[13]
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 Relay.ProtoReflect.Descriptor instead.
func (*Relay) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{13}
}
func (x *Relay) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Relay) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Relay) GetModel() Relay_Model {
if x != nil {
return x.Model
}
return Relay_Unknown
}
func (x *Relay) GetStationId() string {
if x != nil {
return x.StationId
}
return ""
}
// 断相保护器
type PhaseFailureProtector struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *PhaseFailureProtector) Reset() {
*x = PhaseFailureProtector{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PhaseFailureProtector) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PhaseFailureProtector) ProtoMessage() {}
func (x *PhaseFailureProtector) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[14]
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 PhaseFailureProtector.ProtoReflect.Descriptor instead.
func (*PhaseFailureProtector) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{14}
}
func (x *PhaseFailureProtector) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *PhaseFailureProtector) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
// 电子元件组合
type ElectronicComponentGroup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` //组合的编号(名称)
ComponentIds []string `protobuf:"bytes,2,rep,name=componentIds,proto3" json:"componentIds,omitempty"` //组合内电子元件的id
}
func (x *ElectronicComponentGroup) Reset() {
*x = ElectronicComponentGroup{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ElectronicComponentGroup) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ElectronicComponentGroup) ProtoMessage() {}
func (x *ElectronicComponentGroup) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[15]
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 ElectronicComponentGroup.ProtoReflect.Descriptor instead.
func (*ElectronicComponentGroup) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{15}
}
func (x *ElectronicComponentGroup) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *ElectronicComponentGroup) GetComponentIds() []string {
if x != nil {
return x.ComponentIds
}
return nil
}
// 开关、按钮、旋钮
type Button struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
ButtonType Button_ButtonType `protobuf:"varint,3,opt,name=buttonType,proto3,enum=model.Button_ButtonType" json:"buttonType,omitempty"`
HasLight bool `protobuf:"varint,4,opt,name=hasLight,proto3" json:"hasLight,omitempty"`
}
func (x *Button) Reset() {
*x = Button{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Button) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Button) ProtoMessage() {}
func (x *Button) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[16]
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 Button.ProtoReflect.Descriptor instead.
func (*Button) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{16}
}
func (x *Button) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Button) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Button) GetButtonType() Button_ButtonType {
if x != nil {
return x.ButtonType
}
return Button_Unknown
}
func (x *Button) GetHasLight() bool {
if x != nil {
return x.HasLight
}
return false
}
// 灯
type Light struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Aspect Light_LightAspect `protobuf:"varint,3,opt,name=aspect,proto3,enum=model.Light_LightAspect" json:"aspect,omitempty"`
}
func (x *Light) Reset() {
*x = Light{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Light) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Light) ProtoMessage() {}
func (x *Light) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[17]
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 Light.ProtoReflect.Descriptor instead.
func (*Light) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{17}
}
func (x *Light) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Light) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Light) GetAspect() Light_LightAspect {
if x != nil {
return x.Aspect
}
return Light_L
}
// 报警器
type Alarm struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
}
func (x *Alarm) Reset() {
*x = Alarm{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Alarm) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Alarm) ProtoMessage() {}
func (x *Alarm) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[18]
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 Alarm.ProtoReflect.Descriptor instead.
func (*Alarm) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{18}
}
func (x *Alarm) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Alarm) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
// 车站
type Station struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
ElectronicGroup []*ElectronicGroup `protobuf:"bytes,3,rep,name=electronicGroup,proto3" json:"electronicGroup,omitempty"` // 关联电子元件组合
// 设备电子元件组合
Deccs []*DeviceEcc `protobuf:"bytes,4,rep,name=deccs,proto3" json:"deccs,omitempty"` // 暂时方案,后需重构
}
func (x *Station) Reset() {
*x = Station{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Station) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Station) ProtoMessage() {}
func (x *Station) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[19]
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 Station.ProtoReflect.Descriptor instead.
func (*Station) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{19}
}
func (x *Station) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Station) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Station) GetElectronicGroup() []*ElectronicGroup {
if x != nil {
return x.ElectronicGroup
}
return nil
}
func (x *Station) GetDeccs() []*DeviceEcc {
if x != nil {
return x.Deccs
}
return nil
}
// 设备电子元件组合
type DeviceEcc struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DeviceId string `protobuf:"bytes,1,opt,name=deviceId,proto3" json:"deviceId,omitempty"`
DeviceType DeviceType `protobuf:"varint,2,opt,name=deviceType,proto3,enum=model.DeviceType" json:"deviceType,omitempty"`
Egs []*ElectronicComponentGroup `protobuf:"bytes,3,rep,name=egs,proto3" json:"egs,omitempty"`
}
func (x *DeviceEcc) Reset() {
*x = DeviceEcc{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceEcc) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeviceEcc) ProtoMessage() {}
func (x *DeviceEcc) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[20]
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 DeviceEcc.ProtoReflect.Descriptor instead.
func (*DeviceEcc) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{20}
}
func (x *DeviceEcc) GetDeviceId() string {
if x != nil {
return x.DeviceId
}
return ""
}
func (x *DeviceEcc) GetDeviceType() DeviceType {
if x != nil {
return x.DeviceType
}
return DeviceType_DeviceType_Unknown
}
func (x *DeviceEcc) GetEgs() []*ElectronicComponentGroup {
if x != nil {
return x.Egs
}
return nil
}
// 元器件组信息
type ElectronicGroup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` //组合的编号(名称)
Components []*ElectronicComponent `protobuf:"bytes,2,rep,name=components,proto3" json:"components,omitempty"` //组合内电子元件
}
func (x *ElectronicGroup) Reset() {
*x = ElectronicGroup{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ElectronicGroup) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ElectronicGroup) ProtoMessage() {}
func (x *ElectronicGroup) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[21]
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 ElectronicGroup.ProtoReflect.Descriptor instead.
func (*ElectronicGroup) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{21}
}
func (x *ElectronicGroup) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *ElectronicGroup) GetComponents() []*ElectronicComponent {
if x != nil {
return x.Components
}
return nil
}
// 关联电子元件
type ElectronicComponent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 元器件ID
DeviceType DeviceType `protobuf:"varint,3,opt,name=deviceType,proto3,enum=model.DeviceType" json:"deviceType,omitempty"` // 元器件类型
}
func (x *ElectronicComponent) Reset() {
*x = ElectronicComponent{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ElectronicComponent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ElectronicComponent) ProtoMessage() {}
func (x *ElectronicComponent) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[22]
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 ElectronicComponent.ProtoReflect.Descriptor instead.
func (*ElectronicComponent) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{22}
}
func (x *ElectronicComponent) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ElectronicComponent) GetDeviceType() DeviceType {
if x != nil {
return x.DeviceType
}
return DeviceType_DeviceType_Unknown
}
// 门控箱
type Mkx struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
PsdId string `protobuf:"bytes,2,opt,name=psdId,proto3" json:"psdId,omitempty"`
PcbButtonId string `protobuf:"bytes,3,opt,name=pcbButtonId,proto3" json:"pcbButtonId,omitempty"`
PobButtonId string `protobuf:"bytes,4,opt,name=pobButtonId,proto3" json:"pobButtonId,omitempty"`
PabButtonId string `protobuf:"bytes,5,opt,name=pabButtonId,proto3" json:"pabButtonId,omitempty"`
PcbjId string `protobuf:"bytes,6,opt,name=pcbjId,proto3" json:"pcbjId,omitempty"`
PobjId string `protobuf:"bytes,7,opt,name=pobjId,proto3" json:"pobjId,omitempty"`
PabjId string `protobuf:"bytes,8,opt,name=pabjId,proto3" json:"pabjId,omitempty"`
}
func (x *Mkx) Reset() {
*x = Mkx{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Mkx) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Mkx) ProtoMessage() {}
func (x *Mkx) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[23]
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 Mkx.ProtoReflect.Descriptor instead.
func (*Mkx) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{23}
}
func (x *Mkx) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Mkx) GetPsdId() string {
if x != nil {
return x.PsdId
}
return ""
}
func (x *Mkx) GetPcbButtonId() string {
if x != nil {
return x.PcbButtonId
}
return ""
}
func (x *Mkx) GetPobButtonId() string {
if x != nil {
return x.PobButtonId
}
return ""
}
func (x *Mkx) GetPabButtonId() string {
if x != nil {
return x.PabButtonId
}
return ""
}
func (x *Mkx) GetPcbjId() string {
if x != nil {
return x.PcbjId
}
return ""
}
func (x *Mkx) GetPobjId() string {
if x != nil {
return x.PobjId
}
return ""
}
func (x *Mkx) GetPabjId() string {
if x != nil {
return x.PabjId
}
return ""
}
// 站台
type Platform struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
StationId string `protobuf:"bytes,3,opt,name=stationId,proto3" json:"stationId,omitempty"`
PhysicalSectionId string `protobuf:"bytes,4,opt,name=physicalSectionId,proto3" json:"physicalSectionId,omitempty"`
}
func (x *Platform) Reset() {
*x = Platform{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Platform) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Platform) ProtoMessage() {}
func (x *Platform) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[24]
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 Platform.ProtoReflect.Descriptor instead.
func (*Platform) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{24}
}
func (x *Platform) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Platform) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Platform) GetStationId() string {
if x != nil {
return x.StationId
}
return ""
}
func (x *Platform) GetPhysicalSectionId() string {
if x != nil {
return x.PhysicalSectionId
}
return ""
}
// 报警器
type Key struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Gear int32 `protobuf:"varint,3,opt,name=gear,proto3" json:"gear,omitempty"` // 挡位数量
}
func (x *Key) Reset() {
*x = Key{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Key) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Key) ProtoMessage() {}
func (x *Key) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[25]
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 Key.ProtoReflect.Descriptor instead.
func (*Key) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{25}
}
func (x *Key) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Key) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Key) GetGear() int32 {
if x != nil {
return x.Gear
}
return 0
}
// 集中站关联信息
type CentralizedStationRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
StationId string `protobuf:"bytes,1,opt,name=stationId,proto3" json:"stationId,omitempty"` // 集中站ID
TransponderId []string `protobuf:"bytes,2,rep,name=transponderId,proto3" json:"transponderId,omitempty"` // 应答器ID
CjList []*CjData `protobuf:"bytes,3,rep,name=cjList,proto3" json:"cjList,omitempty"` // 采集继电器配置信息
QdList []*QdData `protobuf:"bytes,4,rep,name=qdList,proto3" json:"qdList,omitempty"` // 驱动继电器配置信息
SectionCodePoints []*CiSectionCodePoint `protobuf:"bytes,5,rep,name=sectionCodePoints,proto3" json:"sectionCodePoints,omitempty"` //物理区段码表
}
func (x *CentralizedStationRef) Reset() {
*x = CentralizedStationRef{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CentralizedStationRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CentralizedStationRef) ProtoMessage() {}
func (x *CentralizedStationRef) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[26]
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 CentralizedStationRef.ProtoReflect.Descriptor instead.
func (*CentralizedStationRef) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{26}
}
func (x *CentralizedStationRef) GetStationId() string {
if x != nil {
return x.StationId
}
return ""
}
func (x *CentralizedStationRef) GetTransponderId() []string {
if x != nil {
return x.TransponderId
}
return nil
}
func (x *CentralizedStationRef) GetCjList() []*CjData {
if x != nil {
return x.CjList
}
return nil
}
func (x *CentralizedStationRef) GetQdList() []*QdData {
if x != nil {
return x.QdList
}
return nil
}
func (x *CentralizedStationRef) GetSectionCodePoints() []*CiSectionCodePoint {
if x != nil {
return x.SectionCodePoints
}
return nil
}
type CjData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Row int32 `protobuf:"varint,1,opt,name=row,proto3" json:"row,omitempty"` // 所在行
Col int32 `protobuf:"varint,2,opt,name=col,proto3" json:"col,omitempty"` // 所在列
RefRelays []*CjDataItem `protobuf:"bytes,3,rep,name=refRelays,proto3" json:"refRelays,omitempty"` //采集的继电器
}
func (x *CjData) Reset() {
*x = CjData{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CjData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CjData) ProtoMessage() {}
func (x *CjData) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[27]
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 CjData.ProtoReflect.Descriptor instead.
func (*CjData) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{27}
}
func (x *CjData) GetRow() int32 {
if x != nil {
return x.Row
}
return 0
}
func (x *CjData) GetCol() int32 {
if x != nil {
return x.Col
}
return 0
}
func (x *CjData) GetRefRelays() []*CjDataItem {
if x != nil {
return x.RefRelays
}
return nil
}
type CjDataItem struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RelayId string `protobuf:"bytes,1,opt,name=relayId,proto3" json:"relayId,omitempty"` //采集对应的继电器Id
Q bool `protobuf:"varint,2,opt,name=q,proto3" json:"q,omitempty"` //继电器的位置,是否前接点(即吸起位/定位)
}
func (x *CjDataItem) Reset() {
*x = CjDataItem{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CjDataItem) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CjDataItem) ProtoMessage() {}
func (x *CjDataItem) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[28]
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 CjDataItem.ProtoReflect.Descriptor instead.
func (*CjDataItem) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{28}
}
func (x *CjDataItem) GetRelayId() string {
if x != nil {
return x.RelayId
}
return ""
}
func (x *CjDataItem) GetQ() bool {
if x != nil {
return x.Q
}
return false
}
type QdData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Row int32 `protobuf:"varint,1,opt,name=row,proto3" json:"row,omitempty"` // 所在行
Col int32 `protobuf:"varint,2,opt,name=col,proto3" json:"col,omitempty"` // 所在列
RefRelays []string `protobuf:"bytes,3,rep,name=refRelays,proto3" json:"refRelays,omitempty"` //驱动的继电器Id
}
func (x *QdData) Reset() {
*x = QdData{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QdData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QdData) ProtoMessage() {}
func (x *QdData) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[29]
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 QdData.ProtoReflect.Descriptor instead.
func (*QdData) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{29}
}
func (x *QdData) GetRow() int32 {
if x != nil {
return x.Row
}
return 0
}
func (x *QdData) GetCol() int32 {
if x != nil {
return x.Col
}
return 0
}
func (x *QdData) GetRefRelays() []string {
if x != nil {
return x.RefRelays
}
return nil
}
// 滑动门编组
type AsdGroup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group int32 `protobuf:"varint,1,opt,name=group,proto3" json:"group,omitempty"` //编组
Start int32 `protobuf:"varint,2,opt,name=start,proto3" json:"start,omitempty"` //起始子门索引
End int32 `protobuf:"varint,3,opt,name=end,proto3" json:"end,omitempty"` //终止子门索引
}
func (x *AsdGroup) Reset() {
*x = AsdGroup{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AsdGroup) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AsdGroup) ProtoMessage() {}
func (x *AsdGroup) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[30]
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 AsdGroup.ProtoReflect.Descriptor instead.
func (*AsdGroup) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{30}
}
func (x *AsdGroup) GetGroup() int32 {
if x != nil {
return x.Group
}
return 0
}
func (x *AsdGroup) GetStart() int32 {
if x != nil {
return x.Start
}
return 0
}
func (x *AsdGroup) GetEnd() int32 {
if x != nil {
return x.End
}
return 0
}
// 联锁物理区段码位
type CiSectionCodePoint struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Row int32 `protobuf:"varint,1,opt,name=row,proto3" json:"row,omitempty"` //所在行
SectionId string `protobuf:"bytes,2,opt,name=sectionId,proto3" json:"sectionId,omitempty"` //物理区段id
}
func (x *CiSectionCodePoint) Reset() {
*x = CiSectionCodePoint{}
if protoimpl.UnsafeEnabled {
mi := &file_model_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CiSectionCodePoint) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CiSectionCodePoint) ProtoMessage() {}
func (x *CiSectionCodePoint) ProtoReflect() protoreflect.Message {
mi := &file_model_proto_msgTypes[31]
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 CiSectionCodePoint.ProtoReflect.Descriptor instead.
func (*CiSectionCodePoint) Descriptor() ([]byte, []int) {
return file_model_proto_rawDescGZIP(), []int{31}
}
func (x *CiSectionCodePoint) GetRow() int32 {
if x != nil {
return x.Row
}
return 0
}
func (x *CiSectionCodePoint) GetSectionId() string {
if x != nil {
return x.SectionId
}
return ""
}
var File_model_proto protoreflect.FileDescriptor
var file_model_proto_rawDesc = []byte{
0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x6d,
0x6f, 0x64, 0x65, 0x6c, 0x22, 0xac, 0x08, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
0x6f, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a,
0x10, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 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, 0x33, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73,
0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43,
0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b,
0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75,
0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75,
0x74, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x69, 0x67, 0x6e,
0x61, 0x6c, 0x52, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x36, 0x0a, 0x0c, 0x74,
0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70,
0x6f, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64,
0x65, 0x72, 0x73, 0x12, 0x24, 0x0a, 0x06, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x08, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x6c, 0x6f, 0x70,
0x65, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x13, 0x73, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72,
0x65, 0x52, 0x13, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x76,
0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x52, 0x11, 0x6b, 0x69, 0x6c, 0x6f,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x73, 0x12, 0x24, 0x0a,
0x06, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x06, 0x72, 0x65, 0x6c,
0x61, 0x79, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x70, 0x68, 0x61, 0x73, 0x65, 0x46, 0x61, 0x69, 0x6c,
0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0c, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x50, 0x68, 0x61, 0x73,
0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x6f,
0x72, 0x52, 0x16, 0x70, 0x68, 0x61, 0x73, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x50,
0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x62, 0x75, 0x74,
0x74, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x07, 0x62, 0x75, 0x74, 0x74, 0x6f,
0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x70, 0x73, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x0a, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x50, 0x73, 0x64, 0x52, 0x04, 0x70, 0x73,
0x64, 0x73, 0x12, 0x24, 0x0a, 0x06, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74,
0x52, 0x06, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x06, 0x61, 0x6c, 0x61, 0x72,
0x6d, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x52, 0x06, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x73, 0x12, 0x2a,
0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x0e, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x6d, 0x6b,
0x78, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x4d, 0x6b, 0x78, 0x52, 0x04, 0x6d, 0x6b, 0x78, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x09,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x6d, 0x61, 0x69,
0x6e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65,
0x6d, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6f,
0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a,
0x04, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6d, 0x6f,
0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x54, 0x0a,
0x16, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65,
0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x52, 0x16, 0x43, 0x65, 0x6e,
0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x65, 0x66, 0x73, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4c, 0x61,
0x79, 0x6f, 0x75, 0x74, 0x12, 0x42, 0x0a, 0x10, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16,
0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 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, 0x33, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x63,
0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74,
0x52, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a,
0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x0e, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x52,
0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x73, 0x69, 0x67,
0x6e, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61,
0x6c, 0x73, 0x12, 0x36, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65,
0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x74, 0x72,
0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x24, 0x0a, 0x06, 0x73, 0x6c,
0x6f, 0x70, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x2e, 0x53, 0x6c, 0x6f, 0x70, 0x65, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x73,
0x12, 0x4b, 0x0a, 0x13, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72,
0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43,
0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x13, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x45, 0x0a,
0x11, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72,
0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72,
0x74, 0x52, 0x11, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76,
0x65, 0x72, 0x74, 0x73, 0x22, 0xdb, 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, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x75, 0x72, 0x6e,
0x6f, 0x75, 0x74, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x75,
0x72, 0x6e, 0x6f, 0x75, 0x74, 0x49, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x61, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74,
0x52, 0x0b, 0x61, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x33, 0x0a,
0x0b, 0x62, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x62, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f,
0x72, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65,
0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12,
0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x22, 0x9e, 0x01, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e,
0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
0x64, 0x12, 0x20, 0x0a, 0x02, 0x6b, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52,
0x02, 0x6b, 0x6d, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x15, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50,
0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x33,
0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x04, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f,
0x72, 0x74, 0x73, 0x22, 0xcd, 0x03, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x12,
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
0x20, 0x0a, 0x02, 0x6b, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x6f,
0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x02, 0x6b,
0x6d, 0x12, 0x33, 0x0a, 0x0b, 0x61, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x61, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x62, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f,
0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b,
0x62, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x63,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50,
0x6f, 0x72, 0x74, 0x52, 0x0b, 0x63, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74,
0x12, 0x4e, 0x0a, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e,
0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6d, 0x6f,
0x64, 0x65, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x2e, 0x53, 0x77, 0x69, 0x74,
0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x73,
0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65,
0x12, 0x5d, 0x0a, 0x19, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f,
0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x07, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x45, 0x6c, 0x65, 0x63,
0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x52, 0x19, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63,
0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22,
0x42, 0x0a, 0x11, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65,
0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10,
0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x5a, 0x44, 0x4a, 0x39, 0x5f, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65,
0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x5a, 0x44, 0x4a, 0x39, 0x5f, 0x44, 0x6f, 0x75, 0x62, 0x6c,
0x65, 0x10, 0x02, 0x22, 0x95, 0x03, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20,
0x0a, 0x02, 0x6b, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x02, 0x6b, 0x6d,
0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x33,
0x0a, 0x0b, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50,
0x6f, 0x72, 0x74, 0x12, 0x5d, 0x0a, 0x19, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69,
0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73,
0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x45,
0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x19, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f,
0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18,
0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x53, 0x69,
0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65,
0x6c, 0x22, 0x68, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x06, 0x0a, 0x02, 0x48, 0x4c,
0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x4c, 0x55, 0x5f, 0x46, 0x55, 0x10, 0x01, 0x12, 0x0d,
0x0a, 0x09, 0x48, 0x4c, 0x55, 0x5f, 0x44, 0x55, 0x5f, 0x59, 0x59, 0x10, 0x02, 0x12, 0x0a, 0x0a,
0x06, 0x48, 0x4c, 0x55, 0x5f, 0x59, 0x59, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x4c, 0x55,
0x5f, 0x46, 0x4c, 0x5f, 0x44, 0x55, 0x5f, 0x59, 0x59, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x48,
0x4c, 0x55, 0x5f, 0x44, 0x55, 0x10, 0x05, 0x12, 0x06, 0x0a, 0x02, 0x41, 0x42, 0x10, 0x06, 0x12,
0x0a, 0x0a, 0x06, 0x48, 0x42, 0x55, 0x5f, 0x44, 0x55, 0x10, 0x07, 0x22, 0xe1, 0x01, 0x0a, 0x03,
0x50, 0x73, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x73, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x73, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x2d, 0x0a, 0x09, 0x61, 0x73, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x04,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x41, 0x73, 0x64,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, 0x61, 0x73, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73,
0x12, 0x5d, 0x0a, 0x19, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f,
0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x05, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x45, 0x6c, 0x65, 0x63,
0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x52, 0x19, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63,
0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22,
0x95, 0x02, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x12,
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
0x20, 0x0a, 0x02, 0x6b, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x6f,
0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x02, 0x6b,
0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12,
0x33, 0x0a, 0x0b, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x04,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74,
0x50, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x54, 0x65, 0x6c,
0x65, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x69, 0x78,
0x65, 0x64, 0x54, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x2b, 0x0a, 0x04, 0x74, 0x79,
0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x54, 0x79, 0x70,
0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12,
0x06, 0x0a, 0x02, 0x46, 0x42, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x57, 0x42, 0x10, 0x01, 0x12,
0x06, 0x0a, 0x02, 0x44, 0x42, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x56, 0x42, 0x10, 0x03, 0x12,
0x06, 0x0a, 0x02, 0x49, 0x42, 0x10, 0x04, 0x22, 0x53, 0x0a, 0x05, 0x53, 0x6c, 0x6f, 0x70, 0x65,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
0x12, 0x22, 0x0a, 0x03, 0x6b, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52,
0x03, 0x6b, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x18, 0x03,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x22, 0x60, 0x0a, 0x12,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75,
0x72, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x69, 0x64, 0x12, 0x22, 0x0a, 0x03, 0x6b, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65,
0x72, 0x52, 0x03, 0x6b, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x22, 0x7c,
0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08,
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d,
0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52,
0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x04, 0x70,
0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x6d, 0x6f, 0x64, 0x65,
0x6c, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x7d, 0x0a, 0x09,
0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12,
0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73,
0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6f, 0x72, 0x64,
0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2e, 0x0a, 0x09, 0x64,
0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10,
0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x78, 0x0a, 0x10, 0x4b,
0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x12,
0x22, 0x0a, 0x03, 0x6b, 0x6d, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d,
0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x03,
0x6b, 0x6d, 0x41, 0x12, 0x22, 0x0a, 0x03, 0x6b, 0x6d, 0x42, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x10, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74,
0x65, 0x72, 0x52, 0x03, 0x6b, 0x6d, 0x42, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x61, 0x6d, 0x65, 0x54,
0x72, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x61, 0x6d, 0x65,
0x54, 0x72, 0x65, 0x6e, 0x64, 0x22, 0x89, 0x02, 0x0a, 0x05, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x12,
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x28, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x12, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79,
0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x1c, 0x0a,
0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x05,
0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e,
0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x50, 0x58, 0x43, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x10,
0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x50, 0x58, 0x43, 0x5f, 0x31, 0x37, 0x30, 0x30, 0x10, 0x02,
0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x4a, 0x58, 0x43, 0x5f, 0x34, 0x38, 0x30, 0x10, 0x03, 0x12,
0x11, 0x0a, 0x0d, 0x4a, 0x57, 0x4a, 0x58, 0x43, 0x5f, 0x48, 0x31, 0x32, 0x35, 0x5f, 0x38, 0x30,
0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x58, 0x43, 0x5f, 0x31, 0x37, 0x30, 0x30, 0x10,
0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x57, 0x58, 0x43, 0x5f, 0x48, 0x33, 0x34, 0x30, 0x10, 0x06,
0x12, 0x11, 0x0a, 0x0d, 0x4a, 0x59, 0x4a, 0x58, 0x43, 0x5f, 0x31, 0x36, 0x30, 0x5f, 0x32, 0x36,
0x30, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x4a, 0x5a, 0x58, 0x43, 0x5f, 0x48, 0x31, 0x38, 0x10,
0x08, 0x22, 0x3b, 0x0a, 0x15, 0x50, 0x68, 0x61, 0x73, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72,
0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x52,
0x0a, 0x18, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70,
0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x22,
0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x18, 0x02,
0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49,
0x64, 0x73, 0x22, 0xef, 0x01, 0x0a, 0x06, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x38, 0x0a, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x42, 0x75,
0x74, 0x74, 0x6f, 0x6e, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52,
0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68,
0x61, 0x73, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68,
0x61, 0x73, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x22, 0x6b, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f,
0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e,
0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x5f, 0x52, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x50,
0x72, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x5f, 0x52, 0x65, 0x73,
0x65, 0x74, 0x5f, 0x55, 0x70, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x65, 0x74,
0x5f, 0x50, 0x72, 0x65, 0x73, 0x73, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65,
0x74, 0x5f, 0x55, 0x70, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x5f, 0x4b, 0x6e,
0x6f, 0x62, 0x10, 0x05, 0x22, 0x97, 0x01, 0x0a, 0x05, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x30, 0x0a, 0x06, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74,
0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x06, 0x61, 0x73,
0x70, 0x65, 0x63, 0x74, 0x22, 0x38, 0x0a, 0x0b, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x73, 0x70,
0x65, 0x63, 0x74, 0x12, 0x05, 0x0a, 0x01, 0x4c, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x48, 0x10,
0x01, 0x12, 0x05, 0x0a, 0x01, 0x55, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x48, 0x55, 0x10, 0x03,
0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, 0x04, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x05, 0x22, 0x2b,
0x0a, 0x05, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 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, 0x97, 0x01, 0x0a, 0x07,
0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 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, 0x40, 0x0a, 0x0f, 0x65,
0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x45, 0x6c, 0x65,
0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0f, 0x65, 0x6c,
0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x26, 0x0a,
0x05, 0x64, 0x65, 0x63, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d,
0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x63, 0x63, 0x52, 0x05,
0x64, 0x65, 0x63, 0x63, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x45, 0x63, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12,
0x31, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79,
0x70, 0x65, 0x12, 0x31, 0x0a, 0x03, 0x65, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x1f, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e,
0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x52, 0x03, 0x65, 0x67, 0x73, 0x22, 0x61, 0x0a, 0x0f, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f,
0x6e, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x0a,
0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x1a, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f,
0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x6f,
0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x58, 0x0a, 0x13, 0x45, 0x6c, 0x65, 0x63,
0x74, 0x72, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12,
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
0x31, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79,
0x70, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x03, 0x4d, 0x6b, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x73,
0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x73, 0x64, 0x49, 0x64,
0x12, 0x20, 0x0a, 0x0b, 0x70, 0x63, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x64, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x63, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e,
0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6f, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x49,
0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6f, 0x62, 0x42, 0x75, 0x74, 0x74,
0x6f, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f,
0x6e, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x62, 0x42, 0x75,
0x74, 0x74, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x63, 0x62, 0x6a, 0x49, 0x64,
0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x63, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x16,
0x0a, 0x06, 0x70, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x70, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x62, 0x6a, 0x49, 0x64,
0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x62, 0x6a, 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, 0x09, 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,
0x09, 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, 0x09, 0x52, 0x11, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61,
0x6c, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x03, 0x4b, 0x65,
0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x12, 0x0a, 0x04, 0x67, 0x65, 0x61, 0x72, 0x18, 0x03, 0x20,
0x01, 0x28, 0x05, 0x52, 0x04, 0x67, 0x65, 0x61, 0x72, 0x22, 0xf2, 0x01, 0x0a, 0x15, 0x43, 0x65,
0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x65, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72,
0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70,
0x6f, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x63, 0x6a, 0x4c, 0x69, 0x73,
0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
0x43, 0x6a, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x63, 0x6a, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25,
0x0a, 0x06, 0x71, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d,
0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x51, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x71,
0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x11, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x19, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43, 0x69, 0x53, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x11, 0x73, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x5d,
0x0a, 0x06, 0x43, 0x6a, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x6f, 0x77, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x6f, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6f,
0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x6f, 0x6c, 0x12, 0x2f, 0x0a, 0x09,
0x72, 0x65, 0x66, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x43, 0x6a, 0x44, 0x61, 0x74, 0x61, 0x49, 0x74,
0x65, 0x6d, 0x52, 0x09, 0x72, 0x65, 0x66, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x22, 0x34, 0x0a,
0x0a, 0x43, 0x6a, 0x44, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72,
0x65, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65,
0x6c, 0x61, 0x79, 0x49, 0x64, 0x12, 0x0c, 0x0a, 0x01, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
0x52, 0x01, 0x71, 0x22, 0x4a, 0x0a, 0x06, 0x51, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a,
0x03, 0x72, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x6f, 0x77, 0x12,
0x10, 0x0a, 0x03, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x6f,
0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x03,
0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x66, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x22,
0x48, 0x0a, 0x08, 0x41, 0x73, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x44, 0x0a, 0x12, 0x43, 0x69, 0x53,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12,
0x10, 0x0a, 0x03, 0x72, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x6f,
0x77, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x2a,
0xd3, 0x04, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16,
0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x6e, 0x6b,
0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x10,
0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f,
0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x10, 0x04,
0x12, 0x1a, 0x0a, 0x16, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54,
0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x6c, 0x6f, 0x70, 0x65,
0x10, 0x06, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
0x5f, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74,
0x75, 0x72, 0x65, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54,
0x79, 0x70, 0x65, 0x5f, 0x4c, 0x69, 0x6e, 0x6b, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x69, 0x6e, 0x6b, 0x4e, 0x6f, 0x64,
0x65, 0x10, 0x09, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70,
0x65, 0x5f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x10, 0x0a, 0x12, 0x24, 0x0a, 0x20, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x68, 0x61, 0x73, 0x65, 0x46, 0x61, 0x69,
0x6c, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x0b, 0x12,
0x15, 0x0a, 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x75,
0x74, 0x74, 0x6f, 0x6e, 0x10, 0x0c, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x5f, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x10, 0x0d, 0x12, 0x14, 0x0a, 0x10,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x41, 0x6c, 0x61, 0x72, 0x6d,
0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
0x5f, 0x50, 0x73, 0x64, 0x10, 0x0f, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x10, 0x12, 0x12,
0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x6b, 0x78,
0x10, 0x11, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
0x5f, 0x4b, 0x65, 0x79, 0x10, 0x12, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x10, 0x13, 0x12,
0x1f, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x53, 0x69,
0x67, 0x6e, 0x61, 0x6c, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x10, 0x14,
0x12, 0x17, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42,
0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x63, 0x72,
0x65, 0x65, 0x6e, 0x10, 0x16, 0x2a, 0x25, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x08, 0x0a,
0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x41, 0x10, 0x01, 0x12, 0x05,
0x0a, 0x01, 0x42, 0x10, 0x02, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x03, 0x2a, 0x20, 0x0a, 0x09,
0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x45, 0x46,
0x54, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x01, 0x2a, 0x43,
0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
0x12, 0x0c, 0x0a, 0x08, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x10, 0x00, 0x12, 0x0f,
0x0a, 0x0b, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x10, 0x01, 0x12,
0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4a, 0x6f, 0x69, 0x6e,
0x74, 0x10, 0x02, 0x42, 0x1a, 0x5a, 0x18, 0x2e, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
0x6f, 0x72, 0x79, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_model_proto_rawDescOnce sync.Once
file_model_proto_rawDescData = file_model_proto_rawDesc
)
func file_model_proto_rawDescGZIP() []byte {
file_model_proto_rawDescOnce.Do(func() {
file_model_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_proto_rawDescData)
})
return file_model_proto_rawDescData
}
var file_model_proto_enumTypes = make([]protoimpl.EnumInfo, 10)
var file_model_proto_msgTypes = make([]protoimpl.MessageInfo, 32)
var file_model_proto_goTypes = []interface{}{
(DeviceType)(0), // 0: model.DeviceType
(Port)(0), // 1: model.Port
(Direction)(0), // 2: model.Direction
(CheckPointType)(0), // 3: model.CheckPointType
(Turnout_SwitchMachineType)(0), // 4: model.Turnout.SwitchMachineType
(Signal_Model)(0), // 5: model.Signal.Model
(Transponder_Type)(0), // 6: model.Transponder.Type
(Relay_Model)(0), // 7: model.Relay.Model
(Button_ButtonType)(0), // 8: model.Button.ButtonType
(Light_LightAspect)(0), // 9: model.Light.LightAspect
(*Repository)(nil), // 10: model.Repository
(*SignalLayout)(nil), // 11: model.SignalLayout
(*PhysicalSection)(nil), // 12: model.PhysicalSection
(*CheckPoint)(nil), // 13: model.CheckPoint
(*Turnout)(nil), // 14: model.Turnout
(*Signal)(nil), // 15: model.Signal
(*Psd)(nil), // 16: model.Psd
(*Transponder)(nil), // 17: model.Transponder
(*Slope)(nil), // 18: model.Slope
(*SectionalCurvature)(nil), // 19: model.SectionalCurvature
(*DevicePort)(nil), // 20: model.DevicePort
(*Kilometer)(nil), // 21: model.Kilometer
(*KilometerConvert)(nil), // 22: model.KilometerConvert
(*Relay)(nil), // 23: model.Relay
(*PhaseFailureProtector)(nil), // 24: model.PhaseFailureProtector
(*ElectronicComponentGroup)(nil), // 25: model.ElectronicComponentGroup
(*Button)(nil), // 26: model.Button
(*Light)(nil), // 27: model.Light
(*Alarm)(nil), // 28: model.Alarm
(*Station)(nil), // 29: model.Station
(*DeviceEcc)(nil), // 30: model.DeviceEcc
(*ElectronicGroup)(nil), // 31: model.ElectronicGroup
(*ElectronicComponent)(nil), // 32: model.ElectronicComponent
(*Mkx)(nil), // 33: model.Mkx
(*Platform)(nil), // 34: model.Platform
(*Key)(nil), // 35: model.Key
(*CentralizedStationRef)(nil), // 36: model.CentralizedStationRef
(*CjData)(nil), // 37: model.CjData
(*CjDataItem)(nil), // 38: model.CjDataItem
(*QdData)(nil), // 39: model.QdData
(*AsdGroup)(nil), // 40: model.AsdGroup
(*CiSectionCodePoint)(nil), // 41: model.CiSectionCodePoint
}
var file_model_proto_depIdxs = []int32{
12, // 0: model.Repository.physicalSections:type_name -> model.PhysicalSection
13, // 1: model.Repository.checkPoints:type_name -> model.CheckPoint
14, // 2: model.Repository.turnouts:type_name -> model.Turnout
15, // 3: model.Repository.signals:type_name -> model.Signal
17, // 4: model.Repository.transponders:type_name -> model.Transponder
18, // 5: model.Repository.slopes:type_name -> model.Slope
19, // 6: model.Repository.sectionalCurvatures:type_name -> model.SectionalCurvature
22, // 7: model.Repository.kilometerConverts:type_name -> model.KilometerConvert
23, // 8: model.Repository.relays:type_name -> model.Relay
24, // 9: model.Repository.phaseFailureProtectors:type_name -> model.PhaseFailureProtector
26, // 10: model.Repository.buttons:type_name -> model.Button
16, // 11: model.Repository.psds:type_name -> model.Psd
27, // 12: model.Repository.lights:type_name -> model.Light
28, // 13: model.Repository.alarms:type_name -> model.Alarm
29, // 14: model.Repository.stations:type_name -> model.Station
33, // 15: model.Repository.mkxs:type_name -> model.Mkx
34, // 16: model.Repository.platforms:type_name -> model.Platform
35, // 17: model.Repository.Keys:type_name -> model.Key
36, // 18: model.Repository.CentralizedStationRefs:type_name -> model.CentralizedStationRef
12, // 19: model.SignalLayout.physicalSections:type_name -> model.PhysicalSection
13, // 20: model.SignalLayout.checkPoints:type_name -> model.CheckPoint
14, // 21: model.SignalLayout.turnouts:type_name -> model.Turnout
15, // 22: model.SignalLayout.signals:type_name -> model.Signal
17, // 23: model.SignalLayout.transponders:type_name -> model.Transponder
18, // 24: model.SignalLayout.slopes:type_name -> model.Slope
19, // 25: model.SignalLayout.sectionalCurvatures:type_name -> model.SectionalCurvature
22, // 26: model.SignalLayout.kilometerConverts:type_name -> model.KilometerConvert
20, // 27: model.PhysicalSection.aDevicePort:type_name -> model.DevicePort
20, // 28: model.PhysicalSection.bDevicePort:type_name -> model.DevicePort
21, // 29: model.CheckPoint.km:type_name -> model.Kilometer
3, // 30: model.CheckPoint.type:type_name -> model.CheckPointType
20, // 31: model.CheckPoint.devicePorts:type_name -> model.DevicePort
21, // 32: model.Turnout.km:type_name -> model.Kilometer
20, // 33: model.Turnout.aDevicePort:type_name -> model.DevicePort
20, // 34: model.Turnout.bDevicePort:type_name -> model.DevicePort
20, // 35: model.Turnout.cDevicePort:type_name -> model.DevicePort
4, // 36: model.Turnout.switchMachineType:type_name -> model.Turnout.SwitchMachineType
25, // 37: model.Turnout.electronicComponentGroups:type_name -> model.ElectronicComponentGroup
21, // 38: model.Signal.km:type_name -> model.Kilometer
20, // 39: model.Signal.turnoutPort:type_name -> model.DevicePort
25, // 40: model.Signal.electronicComponentGroups:type_name -> model.ElectronicComponentGroup
5, // 41: model.Signal.model:type_name -> model.Signal.Model
40, // 42: model.Psd.asdGroups:type_name -> model.AsdGroup
25, // 43: model.Psd.electronicComponentGroups:type_name -> model.ElectronicComponentGroup
21, // 44: model.Transponder.km:type_name -> model.Kilometer
20, // 45: model.Transponder.turnoutPort:type_name -> model.DevicePort
6, // 46: model.Transponder.type:type_name -> model.Transponder.Type
21, // 47: model.Slope.kms:type_name -> model.Kilometer
21, // 48: model.SectionalCurvature.kms:type_name -> model.Kilometer
0, // 49: model.DevicePort.deviceType:type_name -> model.DeviceType
1, // 50: model.DevicePort.port:type_name -> model.Port
2, // 51: model.Kilometer.direction:type_name -> model.Direction
21, // 52: model.KilometerConvert.kmA:type_name -> model.Kilometer
21, // 53: model.KilometerConvert.kmB:type_name -> model.Kilometer
7, // 54: model.Relay.model:type_name -> model.Relay.Model
8, // 55: model.Button.buttonType:type_name -> model.Button.ButtonType
9, // 56: model.Light.aspect:type_name -> model.Light.LightAspect
31, // 57: model.Station.electronicGroup:type_name -> model.ElectronicGroup
30, // 58: model.Station.deccs:type_name -> model.DeviceEcc
0, // 59: model.DeviceEcc.deviceType:type_name -> model.DeviceType
25, // 60: model.DeviceEcc.egs:type_name -> model.ElectronicComponentGroup
32, // 61: model.ElectronicGroup.components:type_name -> model.ElectronicComponent
0, // 62: model.ElectronicComponent.deviceType:type_name -> model.DeviceType
37, // 63: model.CentralizedStationRef.cjList:type_name -> model.CjData
39, // 64: model.CentralizedStationRef.qdList:type_name -> model.QdData
41, // 65: model.CentralizedStationRef.sectionCodePoints:type_name -> model.CiSectionCodePoint
38, // 66: model.CjData.refRelays:type_name -> model.CjDataItem
67, // [67:67] is the sub-list for method output_type
67, // [67:67] is the sub-list for method input_type
67, // [67:67] is the sub-list for extension type_name
67, // [67:67] is the sub-list for extension extendee
0, // [0:67] is the sub-list for field type_name
}
func init() { file_model_proto_init() }
func file_model_proto_init() {
if File_model_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_model_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Repository); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SignalLayout); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PhysicalSection); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CheckPoint); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Turnout); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Signal); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Psd); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Transponder); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Slope); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SectionalCurvature); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DevicePort); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Kilometer); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*KilometerConvert); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Relay); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PhaseFailureProtector); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ElectronicComponentGroup); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Button); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Light); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Alarm); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Station); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeviceEcc); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ElectronicGroup); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ElectronicComponent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Mkx); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Platform); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Key); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CentralizedStationRef); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CjData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CjDataItem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*QdData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AsdGroup); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_model_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CiSectionCodePoint); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_model_proto_rawDesc,
NumEnums: 10,
NumMessages: 32,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_model_proto_goTypes,
DependencyIndexes: file_model_proto_depIdxs,
EnumInfos: file_model_proto_enumTypes,
MessageInfos: file_model_proto_msgTypes,
}.Build()
File_model_proto = out.File
file_model_proto_rawDesc = nil
file_model_proto_goTypes = nil
file_model_proto_depIdxs = nil
}