// // Version 3.0 // 最后更新时间 2024–06-14 // 健康监测部级平台数据编码协议定义 //指定protobuf的版本,proto3是最新的语法版本 // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 // protoc v4.22.2 // source: MonitorDataProtocol-Ministry-v3.0.proto package protoFiles_zjhl_v3 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) ) // 监测数据类型:实时数据,特征值数据,特殊事件,数据抽查 // 1、REALTIME: 省平台有主动触发实时数据推送时(目前部级没有主动触发场景)发送 // 2、STATISTICS:常规特征值数据周期性发送时触发 // 3、SPECIALEVENT:单桥发生特殊事件时主动触发 // 4、INSPECTION:部级根据特殊事件具体情况,对单桥数据进行抽查时触发 // 这几个类型用于标识数据触发时的场景,至于具体发送的是原始实时数据还是特征值数据,在dataBody中有明确定义 type DataType int32 const ( DataType_REALTIME DataType = 0 DataType_STATISTICS DataType = 1 DataType_SPECIALEVENT DataType = 2 DataType_INSPECTION DataType = 3 ) // Enum value maps for DataType. var ( DataType_name = map[int32]string{ 0: "REALTIME", 1: "STATISTICS", 2: "SPECIALEVENT", 3: "INSPECTION", } DataType_value = map[string]int32{ "REALTIME": 0, "STATISTICS": 1, "SPECIALEVENT": 2, "INSPECTION": 3, } ) func (x DataType) Enum() *DataType { p := new(DataType) *p = x return p } func (x DataType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DataType) Descriptor() protoreflect.EnumDescriptor { return file_MonitorDataProtocol_Ministry_v3_0_proto_enumTypes[0].Descriptor() } func (DataType) Type() protoreflect.EnumType { return &file_MonitorDataProtocol_Ministry_v3_0_proto_enumTypes[0] } func (x DataType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use DataType.Descriptor instead. func (DataType) EnumDescriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{0} } type MonitoryType int32 const ( // 风速风向 MonitoryType_UAN MonitoryType = 0 // 温湿度 MonitoryType_RHS MonitoryType = 1 // 结构空间变形 MonitoryType_GNSS MonitoryType = 2 // 振动法索力 MonitoryType_VIC MonitoryType = 3 // 直接法索力 MonitoryType_DIC MonitoryType = 4 // 位移(支座位移、梁端纵向位移、高墩墩顶位移、拱顶位移、主梁横向位移) MonitoryType_DIS MonitoryType = 5 // 挠度 MonitoryType_HPT MonitoryType = 6 // 应变 MonitoryType_RSG MonitoryType = 7 // 转角 MonitoryType_INC MonitoryType = 8 // 振动 MonitoryType_VIB MonitoryType = 9 // 地震 MonitoryType_VIE MonitoryType = 10 // TMD监测 MonitoryType_TMD MonitoryType = 11 // 车辆荷载 MonitoryType_HSD MonitoryType = 12 // 结构温度 MonitoryType_TMP MonitoryType = 13 // 雨量 MonitoryType_PWS MonitoryType = 14 // 结冰 MonitoryType_FRZ MonitoryType = 15 // 路面状况 MonitoryType_LMZ MonitoryType = 16 // 支反力 MonitoryType_STF MonitoryType = 17 // 基础冲刷 MonitoryType_SCO MonitoryType = 18 // 裂缝 MonitoryType_CRK MonitoryType = 19 // 腐蚀 MonitoryType_COR MonitoryType = 20 // //振动法预应力 // VIS = 21; // // 预应力 MonitoryType_STR MonitoryType = 22 // 断丝 MonitoryType_BRK MonitoryType = 23 // 螺栓紧固力 MonitoryType_BTF MonitoryType = 24 // 滑移 MonitoryType_CSP MonitoryType = 25 // 风压 MonitoryType_WDP MonitoryType = 26 // 位移(锚碇位移、拱脚位移、桥墩沉降) MonitoryType_AND MonitoryType = 30 // 船舶撞击 MonitoryType_VID MonitoryType = 33 // 能见度 MonitoryType_VSB MonitoryType = 34 // 大气浓度 MonitoryType_ACN MonitoryType = 35 // 水位 MonitoryType_WLV MonitoryType = 36 // 表面变形 MonitoryType_PLD MonitoryType = 97 // 通用 MonitoryType_CMM MonitoryType = 99 ) // Enum value maps for MonitoryType. var ( MonitoryType_name = map[int32]string{ 0: "UAN", 1: "RHS", 2: "GNSS", 3: "VIC", 4: "DIC", 5: "DIS", 6: "HPT", 7: "RSG", 8: "INC", 9: "VIB", 10: "VIE", 11: "TMD", 12: "HSD", 13: "TMP", 14: "PWS", 15: "FRZ", 16: "LMZ", 17: "STF", 18: "SCO", 19: "CRK", 20: "COR", 22: "STR", 23: "BRK", 24: "BTF", 25: "CSP", 26: "WDP", 30: "AND", 33: "VID", 34: "VSB", 35: "ACN", 36: "WLV", 97: "PLD", 99: "CMM", } MonitoryType_value = map[string]int32{ "UAN": 0, "RHS": 1, "GNSS": 2, "VIC": 3, "DIC": 4, "DIS": 5, "HPT": 6, "RSG": 7, "INC": 8, "VIB": 9, "VIE": 10, "TMD": 11, "HSD": 12, "TMP": 13, "PWS": 14, "FRZ": 15, "LMZ": 16, "STF": 17, "SCO": 18, "CRK": 19, "COR": 20, "STR": 22, "BRK": 23, "BTF": 24, "CSP": 25, "WDP": 26, "AND": 30, "VID": 33, "VSB": 34, "ACN": 35, "WLV": 36, "PLD": 97, "CMM": 99, } ) func (x MonitoryType) Enum() *MonitoryType { p := new(MonitoryType) *p = x return p } func (x MonitoryType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MonitoryType) Descriptor() protoreflect.EnumDescriptor { return file_MonitorDataProtocol_Ministry_v3_0_proto_enumTypes[1].Descriptor() } func (MonitoryType) Type() protoreflect.EnumType { return &file_MonitorDataProtocol_Ministry_v3_0_proto_enumTypes[1] } func (x MonitoryType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MonitoryType.Descriptor instead. func (MonitoryType) EnumDescriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{1} } // 复合类型 type ComplexData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 各个监测数据组成的数据,解开后循环解析,生成CRC后进行加密 SensorData []*DataDefinition `protobuf:"bytes,1,rep,name=sensorData,proto3" json:"sensorData,omitempty"` } func (x *ComplexData) Reset() { *x = ComplexData{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ComplexData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ComplexData) ProtoMessage() {} func (x *ComplexData) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 ComplexData.ProtoReflect.Descriptor instead. func (*ComplexData) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{0} } func (x *ComplexData) GetSensorData() []*DataDefinition { if x != nil { return x.SensorData } return nil } // 定义数据内容 type DataDefinition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DataType DataType `protobuf:"varint,1,opt,name=dataType,proto3,enum=protoFiles_zjhl_v3.DataType" json:"dataType,omitempty"` // 桥梁唯一编码 2位省份编码+4位桥梁序号 BridgeCode string `protobuf:"bytes,14,opt,name=bridgeCode,proto3" json:"bridgeCode,omitempty"` // 省份代码 不传该字段 PlatformCode string `protobuf:"bytes,15,opt,name=platformCode,proto3" json:"platformCode,omitempty"` // Types that are assignable to DataBody: // // *DataDefinition_RealTimeData // *DataDefinition_StatisticData DataBody isDataDefinition_DataBody `protobuf_oneof:"dataBody"` } func (x *DataDefinition) Reset() { *x = DataDefinition{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DataDefinition) String() string { return protoimpl.X.MessageStringOf(x) } func (*DataDefinition) ProtoMessage() {} func (x *DataDefinition) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 DataDefinition.ProtoReflect.Descriptor instead. func (*DataDefinition) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{1} } func (x *DataDefinition) GetDataType() DataType { if x != nil { return x.DataType } return DataType_REALTIME } func (x *DataDefinition) GetBridgeCode() string { if x != nil { return x.BridgeCode } return "" } func (x *DataDefinition) GetPlatformCode() string { if x != nil { return x.PlatformCode } return "" } func (m *DataDefinition) GetDataBody() isDataDefinition_DataBody { if m != nil { return m.DataBody } return nil } func (x *DataDefinition) GetRealTimeData() *RealTimeData { if x, ok := x.GetDataBody().(*DataDefinition_RealTimeData); ok { return x.RealTimeData } return nil } func (x *DataDefinition) GetStatisticData() *StatisticData { if x, ok := x.GetDataBody().(*DataDefinition_StatisticData); ok { return x.StatisticData } return nil } type isDataDefinition_DataBody interface { isDataDefinition_DataBody() } type DataDefinition_RealTimeData struct { // 实时数据 RealTimeData *RealTimeData `protobuf:"bytes,2,opt,name=realTimeData,proto3,oneof"` } type DataDefinition_StatisticData struct { // 特征值数据 StatisticData *StatisticData `protobuf:"bytes,3,opt,name=statisticData,proto3,oneof"` } func (*DataDefinition_RealTimeData) isDataDefinition_DataBody() {} func (*DataDefinition_StatisticData) isDataDefinition_DataBody() {} // 实时数据 type RealTimeData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 监测类型 MonitorType MonitoryType `protobuf:"varint,1,opt,name=monitorType,proto3,enum=protoFiles_zjhl_v3.MonitoryType" json:"monitorType,omitempty"` // 测点编码唯一编码 2位省份编码+4位桥梁序号+5位桥梁测点序号 测点必须先注册后才可以发送 MonitorCode int64 `protobuf:"varint,2,opt,name=monitorCode,proto3" json:"monitorCode,omitempty"` // 记录时间戳 EventTime int64 `protobuf:"varint,3,opt,name=eventTime,proto3" json:"eventTime,omitempty"` // 实时数据 // // Types that are assignable to DataBody: // // *RealTimeData_Uan // *RealTimeData_Rhs // *RealTimeData_Tmp // *RealTimeData_Gnss // *RealTimeData_Vic // *RealTimeData_Dis // *RealTimeData_Hpt // *RealTimeData_Rsg // *RealTimeData_Inc // *RealTimeData_Vie // *RealTimeData_Tmd // *RealTimeData_Vib // *RealTimeData_Hsd // *RealTimeData_Pws // *RealTimeData_Frz // *RealTimeData_Lmz // *RealTimeData_Stf // *RealTimeData_Sco // *RealTimeData_Crk // *RealTimeData_Cor // *RealTimeData_Str // *RealTimeData_Brk // *RealTimeData_Btf // *RealTimeData_Csp // *RealTimeData_Vsb // *RealTimeData_Acn // *RealTimeData_Wlv // *RealTimeData_Pld // *RealTimeData_Wdp // *RealTimeData_And // *RealTimeData_Vid DataBody isRealTimeData_DataBody `protobuf_oneof:"dataBody"` } func (x *RealTimeData) Reset() { *x = RealTimeData{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RealTimeData) String() string { return protoimpl.X.MessageStringOf(x) } func (*RealTimeData) ProtoMessage() {} func (x *RealTimeData) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 RealTimeData.ProtoReflect.Descriptor instead. func (*RealTimeData) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{2} } func (x *RealTimeData) GetMonitorType() MonitoryType { if x != nil { return x.MonitorType } return MonitoryType_UAN } func (x *RealTimeData) GetMonitorCode() int64 { if x != nil { return x.MonitorCode } return 0 } func (x *RealTimeData) GetEventTime() int64 { if x != nil { return x.EventTime } return 0 } func (m *RealTimeData) GetDataBody() isRealTimeData_DataBody { if m != nil { return m.DataBody } return nil } func (x *RealTimeData) GetUan() *UANRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Uan); ok { return x.Uan } return nil } func (x *RealTimeData) GetRhs() *RHSRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Rhs); ok { return x.Rhs } return nil } func (x *RealTimeData) GetTmp() *TMPRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Tmp); ok { return x.Tmp } return nil } func (x *RealTimeData) GetGnss() *GNSSRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Gnss); ok { return x.Gnss } return nil } func (x *RealTimeData) GetVic() *VICRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Vic); ok { return x.Vic } return nil } func (x *RealTimeData) GetDis() *DISRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Dis); ok { return x.Dis } return nil } func (x *RealTimeData) GetHpt() *HPTRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Hpt); ok { return x.Hpt } return nil } func (x *RealTimeData) GetRsg() *RSGRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Rsg); ok { return x.Rsg } return nil } func (x *RealTimeData) GetInc() *INCRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Inc); ok { return x.Inc } return nil } func (x *RealTimeData) GetVie() *VIERealTime { if x, ok := x.GetDataBody().(*RealTimeData_Vie); ok { return x.Vie } return nil } func (x *RealTimeData) GetTmd() *TMDRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Tmd); ok { return x.Tmd } return nil } func (x *RealTimeData) GetVib() *VIBRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Vib); ok { return x.Vib } return nil } func (x *RealTimeData) GetHsd() *HSDRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Hsd); ok { return x.Hsd } return nil } func (x *RealTimeData) GetPws() *PWSRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Pws); ok { return x.Pws } return nil } func (x *RealTimeData) GetFrz() *FRZRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Frz); ok { return x.Frz } return nil } func (x *RealTimeData) GetLmz() *LMZRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Lmz); ok { return x.Lmz } return nil } func (x *RealTimeData) GetStf() *STFRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Stf); ok { return x.Stf } return nil } func (x *RealTimeData) GetSco() *SCORealTime { if x, ok := x.GetDataBody().(*RealTimeData_Sco); ok { return x.Sco } return nil } func (x *RealTimeData) GetCrk() *CRKRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Crk); ok { return x.Crk } return nil } func (x *RealTimeData) GetCor() *CORRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Cor); ok { return x.Cor } return nil } func (x *RealTimeData) GetStr() *STRRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Str); ok { return x.Str } return nil } func (x *RealTimeData) GetBrk() *BRKRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Brk); ok { return x.Brk } return nil } func (x *RealTimeData) GetBtf() *BTFRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Btf); ok { return x.Btf } return nil } func (x *RealTimeData) GetCsp() *CSPRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Csp); ok { return x.Csp } return nil } func (x *RealTimeData) GetVsb() *VSBRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Vsb); ok { return x.Vsb } return nil } func (x *RealTimeData) GetAcn() *ACNRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Acn); ok { return x.Acn } return nil } func (x *RealTimeData) GetWlv() *WLVRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Wlv); ok { return x.Wlv } return nil } func (x *RealTimeData) GetPld() *PLDRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Pld); ok { return x.Pld } return nil } func (x *RealTimeData) GetWdp() *WDPRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Wdp); ok { return x.Wdp } return nil } func (x *RealTimeData) GetAnd() *ANDRealTime { if x, ok := x.GetDataBody().(*RealTimeData_And); ok { return x.And } return nil } func (x *RealTimeData) GetVid() *VIDRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Vid); ok { return x.Vid } return nil } type isRealTimeData_DataBody interface { isRealTimeData_DataBody() } type RealTimeData_Uan struct { // 风速风向 Uan *UANRealTime `protobuf:"bytes,4,opt,name=uan,proto3,oneof"` } type RealTimeData_Rhs struct { // 温湿度 Rhs *RHSRealTime `protobuf:"bytes,5,opt,name=rhs,proto3,oneof"` } type RealTimeData_Tmp struct { // 结构温度 Tmp *TMPRealTime `protobuf:"bytes,6,opt,name=tmp,proto3,oneof"` } type RealTimeData_Gnss struct { // 空间变形 Gnss *GNSSRealTime `protobuf:"bytes,7,opt,name=gnss,proto3,oneof"` } type RealTimeData_Vic struct { // 索力 Vic *VICRealTime `protobuf:"bytes,8,opt,name=vic,proto3,oneof"` } type RealTimeData_Dis struct { // 直接法测索力 // // DICRealTime dic = 9; // // 位移(支座位移、梁端纵向位移、高墩墩顶位移、拱顶位移、主梁横向位移) Dis *DISRealTime `protobuf:"bytes,10,opt,name=dis,proto3,oneof"` } type RealTimeData_Hpt struct { // 挠度 Hpt *HPTRealTime `protobuf:"bytes,11,opt,name=hpt,proto3,oneof"` } type RealTimeData_Rsg struct { // 应变 Rsg *RSGRealTime `protobuf:"bytes,12,opt,name=rsg,proto3,oneof"` } type RealTimeData_Inc struct { // 转角 Inc *INCRealTime `protobuf:"bytes,13,opt,name=inc,proto3,oneof"` } type RealTimeData_Vie struct { // 地震 Vie *VIERealTime `protobuf:"bytes,14,opt,name=vie,proto3,oneof"` } type RealTimeData_Tmd struct { // TMD Tmd *TMDRealTime `protobuf:"bytes,15,opt,name=tmd,proto3,oneof"` } type RealTimeData_Vib struct { // 动力特性 Vib *VIBRealTime `protobuf:"bytes,16,opt,name=vib,proto3,oneof"` } type RealTimeData_Hsd struct { // 车辆荷载 Hsd *HSDRealTime `protobuf:"bytes,17,opt,name=hsd,proto3,oneof"` } type RealTimeData_Pws struct { // 雨量 Pws *PWSRealTime `protobuf:"bytes,18,opt,name=pws,proto3,oneof"` } type RealTimeData_Frz struct { // 结冰 Frz *FRZRealTime `protobuf:"bytes,19,opt,name=frz,proto3,oneof"` } type RealTimeData_Lmz struct { // 路面状况 Lmz *LMZRealTime `protobuf:"bytes,20,opt,name=lmz,proto3,oneof"` } type RealTimeData_Stf struct { // 支反力 Stf *STFRealTime `protobuf:"bytes,21,opt,name=stf,proto3,oneof"` } type RealTimeData_Sco struct { // 基础冲刷 Sco *SCORealTime `protobuf:"bytes,22,opt,name=sco,proto3,oneof"` } type RealTimeData_Crk struct { // 裂缝 Crk *CRKRealTime `protobuf:"bytes,23,opt,name=crk,proto3,oneof"` } type RealTimeData_Cor struct { // 腐蚀 Cor *CORRealTime `protobuf:"bytes,25,opt,name=cor,proto3,oneof"` } type RealTimeData_Str struct { // 振动法预应力 // // VISRealTime vis = 26; // // 预应力 Str *STRRealTime `protobuf:"bytes,27,opt,name=str,proto3,oneof"` } type RealTimeData_Brk struct { // 断丝 Brk *BRKRealTime `protobuf:"bytes,28,opt,name=brk,proto3,oneof"` } type RealTimeData_Btf struct { // 螺栓紧固力 Btf *BTFRealTime `protobuf:"bytes,29,opt,name=btf,proto3,oneof"` } type RealTimeData_Csp struct { // 滑移 Csp *CSPRealTime `protobuf:"bytes,30,opt,name=csp,proto3,oneof"` } type RealTimeData_Vsb struct { // 能见度 Vsb *VSBRealTime `protobuf:"bytes,31,opt,name=vsb,proto3,oneof"` } type RealTimeData_Acn struct { // 大气浓度 Acn *ACNRealTime `protobuf:"bytes,32,opt,name=acn,proto3,oneof"` } type RealTimeData_Wlv struct { // 水位 Wlv *WLVRealTime `protobuf:"bytes,33,opt,name=wlv,proto3,oneof"` } type RealTimeData_Pld struct { // 表面变形监测 Pld *PLDRealTime `protobuf:"bytes,34,opt,name=pld,proto3,oneof"` } type RealTimeData_Wdp struct { // 风压 Wdp *WDPRealTime `protobuf:"bytes,35,opt,name=wdp,proto3,oneof"` } type RealTimeData_And struct { // 位移 And *ANDRealTime `protobuf:"bytes,36,opt,name=and,proto3,oneof"` } type RealTimeData_Vid struct { // 船舶撞击 Vid *VIDRealTime `protobuf:"bytes,37,opt,name=vid,proto3,oneof"` } func (*RealTimeData_Uan) isRealTimeData_DataBody() {} func (*RealTimeData_Rhs) isRealTimeData_DataBody() {} func (*RealTimeData_Tmp) isRealTimeData_DataBody() {} func (*RealTimeData_Gnss) isRealTimeData_DataBody() {} func (*RealTimeData_Vic) isRealTimeData_DataBody() {} func (*RealTimeData_Dis) isRealTimeData_DataBody() {} func (*RealTimeData_Hpt) isRealTimeData_DataBody() {} func (*RealTimeData_Rsg) isRealTimeData_DataBody() {} func (*RealTimeData_Inc) isRealTimeData_DataBody() {} func (*RealTimeData_Vie) isRealTimeData_DataBody() {} func (*RealTimeData_Tmd) isRealTimeData_DataBody() {} func (*RealTimeData_Vib) isRealTimeData_DataBody() {} func (*RealTimeData_Hsd) isRealTimeData_DataBody() {} func (*RealTimeData_Pws) isRealTimeData_DataBody() {} func (*RealTimeData_Frz) isRealTimeData_DataBody() {} func (*RealTimeData_Lmz) isRealTimeData_DataBody() {} func (*RealTimeData_Stf) isRealTimeData_DataBody() {} func (*RealTimeData_Sco) isRealTimeData_DataBody() {} func (*RealTimeData_Crk) isRealTimeData_DataBody() {} func (*RealTimeData_Cor) isRealTimeData_DataBody() {} func (*RealTimeData_Str) isRealTimeData_DataBody() {} func (*RealTimeData_Brk) isRealTimeData_DataBody() {} func (*RealTimeData_Btf) isRealTimeData_DataBody() {} func (*RealTimeData_Csp) isRealTimeData_DataBody() {} func (*RealTimeData_Vsb) isRealTimeData_DataBody() {} func (*RealTimeData_Acn) isRealTimeData_DataBody() {} func (*RealTimeData_Wlv) isRealTimeData_DataBody() {} func (*RealTimeData_Pld) isRealTimeData_DataBody() {} func (*RealTimeData_Wdp) isRealTimeData_DataBody() {} func (*RealTimeData_And) isRealTimeData_DataBody() {} func (*RealTimeData_Vid) isRealTimeData_DataBody() {} // 风速风向指标 type UANRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 风速 WindVelocity float32 `protobuf:"fixed32,1,opt,name=windVelocity,proto3" json:"windVelocity,omitempty"` // 风向 WindDirection float32 `protobuf:"fixed32,2,opt,name=windDirection,proto3" json:"windDirection,omitempty"` // 风攻角 WindAttackAngle *float32 `protobuf:"fixed32,3,opt,name=windAttackAngle,proto3,oneof" json:"windAttackAngle,omitempty"` } func (x *UANRealTime) Reset() { *x = UANRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UANRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*UANRealTime) ProtoMessage() {} func (x *UANRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 UANRealTime.ProtoReflect.Descriptor instead. func (*UANRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{3} } func (x *UANRealTime) GetWindVelocity() float32 { if x != nil { return x.WindVelocity } return 0 } func (x *UANRealTime) GetWindDirection() float32 { if x != nil { return x.WindDirection } return 0 } func (x *UANRealTime) GetWindAttackAngle() float32 { if x != nil && x.WindAttackAngle != nil { return *x.WindAttackAngle } return 0 } // 温湿度指标 type RHSRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 温度 Temperature float32 `protobuf:"fixed32,1,opt,name=temperature,proto3" json:"temperature,omitempty"` // 湿度 Humidity float32 `protobuf:"fixed32,2,opt,name=humidity,proto3" json:"humidity,omitempty"` } func (x *RHSRealTime) Reset() { *x = RHSRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RHSRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*RHSRealTime) ProtoMessage() {} func (x *RHSRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 RHSRealTime.ProtoReflect.Descriptor instead. func (*RHSRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{4} } func (x *RHSRealTime) GetTemperature() float32 { if x != nil { return x.Temperature } return 0 } func (x *RHSRealTime) GetHumidity() float32 { if x != nil { return x.Humidity } return 0 } // 温度指标 type TMPRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 温度 Temperature float32 `protobuf:"fixed32,1,opt,name=temperature,proto3" json:"temperature,omitempty"` } func (x *TMPRealTime) Reset() { *x = TMPRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TMPRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*TMPRealTime) ProtoMessage() {} func (x *TMPRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 TMPRealTime.ProtoReflect.Descriptor instead. func (*TMPRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{5} } func (x *TMPRealTime) GetTemperature() float32 { if x != nil { return x.Temperature } return 0 } // 空间变形指标 type GNSSRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 横桥向 X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` // 纵桥向 Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` // 竖向 Z float32 `protobuf:"fixed32,3,opt,name=z,proto3" json:"z,omitempty"` } func (x *GNSSRealTime) Reset() { *x = GNSSRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GNSSRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*GNSSRealTime) ProtoMessage() {} func (x *GNSSRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 GNSSRealTime.ProtoReflect.Descriptor instead. func (*GNSSRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{6} } func (x *GNSSRealTime) GetX() float32 { if x != nil { return x.X } return 0 } func (x *GNSSRealTime) GetY() float32 { if x != nil { return x.Y } return 0 } func (x *GNSSRealTime) GetZ() float32 { if x != nil { return x.Z } return 0 } // 索力监测 type VICRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 索力值 CableForce float32 `protobuf:"fixed32,1,opt,name=cableForce,proto3" json:"cableForce,omitempty"` // 基频 FundamentalFrequency *float32 `protobuf:"fixed32,2,opt,name=fundamentalFrequency,proto3,oneof" json:"fundamentalFrequency,omitempty"` } func (x *VICRealTime) Reset() { *x = VICRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VICRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*VICRealTime) ProtoMessage() {} func (x *VICRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 VICRealTime.ProtoReflect.Descriptor instead. func (*VICRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{7} } func (x *VICRealTime) GetCableForce() float32 { if x != nil { return x.CableForce } return 0 } func (x *VICRealTime) GetFundamentalFrequency() float32 { if x != nil && x.FundamentalFrequency != nil { return *x.FundamentalFrequency } return 0 } // 位移(支座位移、梁端纵向位移、高墩墩顶位移、拱顶位移、主梁横向位移) type DISRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 位移值 Displacement float32 `protobuf:"fixed32,1,opt,name=displacement,proto3" json:"displacement,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *DISRealTime) Reset() { *x = DISRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DISRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*DISRealTime) ProtoMessage() {} func (x *DISRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 DISRealTime.ProtoReflect.Descriptor instead. func (*DISRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{8} } func (x *DISRealTime) GetDisplacement() float32 { if x != nil { return x.Displacement } return 0 } func (x *DISRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 裂缝 type CRKRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 裂缝宽度 CrackWidth float32 `protobuf:"fixed32,1,opt,name=crackWidth,proto3" json:"crackWidth,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *CRKRealTime) Reset() { *x = CRKRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CRKRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*CRKRealTime) ProtoMessage() {} func (x *CRKRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 CRKRealTime.ProtoReflect.Descriptor instead. func (*CRKRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{9} } func (x *CRKRealTime) GetCrackWidth() float32 { if x != nil { return x.CrackWidth } return 0 } func (x *CRKRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 挠度监测 type HPTRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 挠度值 Deflection float32 `protobuf:"fixed32,1,opt,name=deflection,proto3" json:"deflection,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *HPTRealTime) Reset() { *x = HPTRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HPTRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*HPTRealTime) ProtoMessage() {} func (x *HPTRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 HPTRealTime.ProtoReflect.Descriptor instead. func (*HPTRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{10} } func (x *HPTRealTime) GetDeflection() float32 { if x != nil { return x.Deflection } return 0 } func (x *HPTRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 静应变监测 type RSGRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 应变值 Strain float32 `protobuf:"fixed32,1,opt,name=strain,proto3" json:"strain,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *RSGRealTime) Reset() { *x = RSGRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RSGRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*RSGRealTime) ProtoMessage() {} func (x *RSGRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 RSGRealTime.ProtoReflect.Descriptor instead. func (*RSGRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{11} } func (x *RSGRealTime) GetStrain() float32 { if x != nil { return x.Strain } return 0 } func (x *RSGRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 梁端转角监测 type INCRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 横桥向X X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` // 纵桥向Y Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` // 传感器有温度数据 Temperature []float32 `protobuf:"fixed32,3,rep,packed,name=temperature,proto3" json:"temperature,omitempty"` } func (x *INCRealTime) Reset() { *x = INCRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *INCRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*INCRealTime) ProtoMessage() {} func (x *INCRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 INCRealTime.ProtoReflect.Descriptor instead. func (*INCRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{12} } func (x *INCRealTime) GetX() float32 { if x != nil { return x.X } return 0 } func (x *INCRealTime) GetY() float32 { if x != nil { return x.Y } return 0 } func (x *INCRealTime) GetTemperature() []float32 { if x != nil { return x.Temperature } return nil } // 动力特性指标 type VIBRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` } func (x *VIBRealTime) Reset() { *x = VIBRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIBRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIBRealTime) ProtoMessage() {} func (x *VIBRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 VIBRealTime.ProtoReflect.Descriptor instead. func (*VIBRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{13} } func (x *VIBRealTime) GetMonitorValues() []float32 { if x != nil { return x.MonitorValues } return nil } // 地震指标 type VIERealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 多通道监测值 MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` } func (x *VIERealTime) Reset() { *x = VIERealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIERealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIERealTime) ProtoMessage() {} func (x *VIERealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 VIERealTime.ProtoReflect.Descriptor instead. func (*VIERealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{14} } func (x *VIERealTime) GetMonitorValues() []float32 { if x != nil { return x.MonitorValues } return nil } // TMD指标 type TMDRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // TMD监测值 MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` } func (x *TMDRealTime) Reset() { *x = TMDRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TMDRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*TMDRealTime) ProtoMessage() {} func (x *TMDRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 TMDRealTime.ProtoReflect.Descriptor instead. func (*TMDRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{15} } func (x *TMDRealTime) GetMonitorValues() []float32 { if x != nil { return x.MonitorValues } return nil } // 车辆荷载指标 type HSDRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // * // 车道号 // 1,2,3,4... LaneId int32 `protobuf:"varint,1,opt,name=laneId,proto3" json:"laneId,omitempty"` // * // 上下行 // 0:上行 // 1:下行 OperDirec int32 `protobuf:"varint,2,opt,name=operDirec,proto3" json:"operDirec,omitempty"` // * // 车型 // 0:两轴车型 // 1:三轴车型 // 2:四轴车型 // 3:五轴车型 // 4:六轴及以上车型 VehType int32 `protobuf:"varint,3,opt,name=vehType,proto3" json:"vehType,omitempty"` // 车速 Speed int32 `protobuf:"varint,4,opt,name=speed,proto3" json:"speed,omitempty"` // 轴数 AxleNum int32 `protobuf:"varint,5,opt,name=axleNum,proto3" json:"axleNum,omitempty"` // 车重 GrossLoad int32 `protobuf:"varint,6,opt,name=grossLoad,proto3" json:"grossLoad,omitempty"` // 轴重(轴1重,轴2重……) AxleWeight []int32 `protobuf:"varint,7,rep,packed,name=axleWeight,proto3" json:"axleWeight,omitempty"` // 车牌号 LicencePlate *string `protobuf:"bytes,8,opt,name=licencePlate,proto3,oneof" json:"licencePlate,omitempty"` // 车牌颜色 LicencePlateColor *string `protobuf:"bytes,9,opt,name=licencePlateColor,proto3,oneof" json:"licencePlateColor,omitempty"` } func (x *HSDRealTime) Reset() { *x = HSDRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HSDRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*HSDRealTime) ProtoMessage() {} func (x *HSDRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 HSDRealTime.ProtoReflect.Descriptor instead. func (*HSDRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{16} } func (x *HSDRealTime) GetLaneId() int32 { if x != nil { return x.LaneId } return 0 } func (x *HSDRealTime) GetOperDirec() int32 { if x != nil { return x.OperDirec } return 0 } func (x *HSDRealTime) GetVehType() int32 { if x != nil { return x.VehType } return 0 } func (x *HSDRealTime) GetSpeed() int32 { if x != nil { return x.Speed } return 0 } func (x *HSDRealTime) GetAxleNum() int32 { if x != nil { return x.AxleNum } return 0 } func (x *HSDRealTime) GetGrossLoad() int32 { if x != nil { return x.GrossLoad } return 0 } func (x *HSDRealTime) GetAxleWeight() []int32 { if x != nil { return x.AxleWeight } return nil } func (x *HSDRealTime) GetLicencePlate() string { if x != nil && x.LicencePlate != nil { return *x.LicencePlate } return "" } func (x *HSDRealTime) GetLicencePlateColor() string { if x != nil && x.LicencePlateColor != nil { return *x.LicencePlateColor } return "" } // 雨量指标 type PWSRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 雨量 Rainfall float32 `protobuf:"fixed32,1,opt,name=rainfall,proto3" json:"rainfall,omitempty"` } func (x *PWSRealTime) Reset() { *x = PWSRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PWSRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*PWSRealTime) ProtoMessage() {} func (x *PWSRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 PWSRealTime.ProtoReflect.Descriptor instead. func (*PWSRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{17} } func (x *PWSRealTime) GetRainfall() float32 { if x != nil { return x.Rainfall } return 0 } // 结冰指标 type FRZRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 结冰厚度 IceThickness float32 `protobuf:"fixed32,1,opt,name=iceThickness,proto3" json:"iceThickness,omitempty"` // 传感器温度数据 Temperature float32 `protobuf:"fixed32,2,opt,name=temperature,proto3" json:"temperature,omitempty"` } func (x *FRZRealTime) Reset() { *x = FRZRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FRZRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*FRZRealTime) ProtoMessage() {} func (x *FRZRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 FRZRealTime.ProtoReflect.Descriptor instead. func (*FRZRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{18} } func (x *FRZRealTime) GetIceThickness() float32 { if x != nil { return x.IceThickness } return 0 } func (x *FRZRealTime) GetTemperature() float32 { if x != nil { return x.Temperature } return 0 } // 路面状况指标 type LMZRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 路面状况 RoadCondition float32 `protobuf:"fixed32,1,opt,name=roadCondition,proto3" json:"roadCondition,omitempty"` // 传感器温度数据 Temperature float32 `protobuf:"fixed32,2,opt,name=temperature,proto3" json:"temperature,omitempty"` } func (x *LMZRealTime) Reset() { *x = LMZRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LMZRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*LMZRealTime) ProtoMessage() {} func (x *LMZRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 LMZRealTime.ProtoReflect.Descriptor instead. func (*LMZRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{19} } func (x *LMZRealTime) GetRoadCondition() float32 { if x != nil { return x.RoadCondition } return 0 } func (x *LMZRealTime) GetTemperature() float32 { if x != nil { return x.Temperature } return 0 } // 支反力指标 type STFRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 反力值 SupportAction float32 `protobuf:"fixed32,1,opt,name=supportAction,proto3" json:"supportAction,omitempty"` // 传感器温度数据 Temperature float32 `protobuf:"fixed32,2,opt,name=temperature,proto3" json:"temperature,omitempty"` } func (x *STFRealTime) Reset() { *x = STFRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *STFRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*STFRealTime) ProtoMessage() {} func (x *STFRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 STFRealTime.ProtoReflect.Descriptor instead. func (*STFRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{20} } func (x *STFRealTime) GetSupportAction() float32 { if x != nil { return x.SupportAction } return 0 } func (x *STFRealTime) GetTemperature() float32 { if x != nil { return x.Temperature } return 0 } // 基础冲刷指标 type SCORealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 深度 Depth float32 `protobuf:"fixed32,1,opt,name=depth,proto3" json:"depth,omitempty"` } func (x *SCORealTime) Reset() { *x = SCORealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCORealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCORealTime) ProtoMessage() {} func (x *SCORealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 SCORealTime.ProtoReflect.Descriptor instead. func (*SCORealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{21} } func (x *SCORealTime) GetDepth() float32 { if x != nil { return x.Depth } return 0 } // 腐蚀指标 type CORRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 氯离子浓度 ChlorideConcentration float32 `protobuf:"fixed32,1,opt,name=chlorideConcentration,proto3" json:"chlorideConcentration,omitempty"` // 侵蚀深度 CorrosionDepth float32 `protobuf:"fixed32,2,opt,name=corrosionDepth,proto3" json:"corrosionDepth,omitempty"` } func (x *CORRealTime) Reset() { *x = CORRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CORRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*CORRealTime) ProtoMessage() {} func (x *CORRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 CORRealTime.ProtoReflect.Descriptor instead. func (*CORRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{22} } func (x *CORRealTime) GetChlorideConcentration() float32 { if x != nil { return x.ChlorideConcentration } return 0 } func (x *CORRealTime) GetCorrosionDepth() float32 { if x != nil { return x.CorrosionDepth } return 0 } // 预应力指标 type STRRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 预应力值 Stress float32 `protobuf:"fixed32,1,opt,name=stress,proto3" json:"stress,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *STRRealTime) Reset() { *x = STRRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *STRRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*STRRealTime) ProtoMessage() {} func (x *STRRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 STRRealTime.ProtoReflect.Descriptor instead. func (*STRRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{23} } func (x *STRRealTime) GetStress() float32 { if x != nil { return x.Stress } return 0 } func (x *STRRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 断丝指标 type BRKRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 状态 State bool `protobuf:"varint,1,opt,name=state,proto3" json:"state,omitempty"` } func (x *BRKRealTime) Reset() { *x = BRKRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BRKRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*BRKRealTime) ProtoMessage() {} func (x *BRKRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 BRKRealTime.ProtoReflect.Descriptor instead. func (*BRKRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{24} } func (x *BRKRealTime) GetState() bool { if x != nil { return x.State } return false } // 螺栓紧固力指标 type BTFRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 力值 BoltTightForce float32 `protobuf:"fixed32,1,opt,name=boltTightForce,proto3" json:"boltTightForce,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *BTFRealTime) Reset() { *x = BTFRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BTFRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*BTFRealTime) ProtoMessage() {} func (x *BTFRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 BTFRealTime.ProtoReflect.Descriptor instead. func (*BTFRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{25} } func (x *BTFRealTime) GetBoltTightForce() float32 { if x != nil { return x.BoltTightForce } return 0 } func (x *BTFRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 滑移指标 type CSPRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 位移值 Displacement float32 `protobuf:"fixed32,1,opt,name=displacement,proto3" json:"displacement,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *CSPRealTime) Reset() { *x = CSPRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPRealTime) ProtoMessage() {} func (x *CSPRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 CSPRealTime.ProtoReflect.Descriptor instead. func (*CSPRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{26} } func (x *CSPRealTime) GetDisplacement() float32 { if x != nil { return x.Displacement } return 0 } func (x *CSPRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 能见度指标 type VSBRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 能见度值 Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` } func (x *VSBRealTime) Reset() { *x = VSBRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VSBRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*VSBRealTime) ProtoMessage() {} func (x *VSBRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 VSBRealTime.ProtoReflect.Descriptor instead. func (*VSBRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{27} } func (x *VSBRealTime) GetValue() float32 { if x != nil { return x.Value } return 0 } // 大气浓度指标 type ACNRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 大气浓度最大值 Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` } func (x *ACNRealTime) Reset() { *x = ACNRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ACNRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*ACNRealTime) ProtoMessage() {} func (x *ACNRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 ACNRealTime.ProtoReflect.Descriptor instead. func (*ACNRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{28} } func (x *ACNRealTime) GetValue() float32 { if x != nil { return x.Value } return 0 } // 水位指标 type WLVRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 水位 Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` } func (x *WLVRealTime) Reset() { *x = WLVRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WLVRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*WLVRealTime) ProtoMessage() {} func (x *WLVRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 WLVRealTime.ProtoReflect.Descriptor instead. func (*WLVRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{29} } func (x *WLVRealTime) GetValue() float32 { if x != nil { return x.Value } return 0 } // 表面变形监测 type PLDRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // X方向 X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` // Y方向 Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` // Z方向 Z float32 `protobuf:"fixed32,3,opt,name=z,proto3" json:"z,omitempty"` } func (x *PLDRealTime) Reset() { *x = PLDRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PLDRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*PLDRealTime) ProtoMessage() {} func (x *PLDRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 PLDRealTime.ProtoReflect.Descriptor instead. func (*PLDRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{30} } func (x *PLDRealTime) GetX() float32 { if x != nil { return x.X } return 0 } func (x *PLDRealTime) GetY() float32 { if x != nil { return x.Y } return 0 } func (x *PLDRealTime) GetZ() float32 { if x != nil { return x.Z } return 0 } // 风压监测 type WDPRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 风压 Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` } func (x *WDPRealTime) Reset() { *x = WDPRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WDPRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*WDPRealTime) ProtoMessage() {} func (x *WDPRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_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 WDPRealTime.ProtoReflect.Descriptor instead. func (*WDPRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{31} } func (x *WDPRealTime) GetValue() float32 { if x != nil { return x.Value } return 0 } // 位移(锚碇位移、拱脚位移、桥墩沉降) type ANDRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 横桥向位移值 X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` // 纵桥向位移值 Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` // 竖向位移值 Z float32 `protobuf:"fixed32,3,opt,name=z,proto3" json:"z,omitempty"` } func (x *ANDRealTime) Reset() { *x = ANDRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ANDRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*ANDRealTime) ProtoMessage() {} func (x *ANDRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[32] 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 ANDRealTime.ProtoReflect.Descriptor instead. func (*ANDRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{32} } func (x *ANDRealTime) GetX() float32 { if x != nil { return x.X } return 0 } func (x *ANDRealTime) GetY() float32 { if x != nil { return x.Y } return 0 } func (x *ANDRealTime) GetZ() float32 { if x != nil { return x.Z } return 0 } // 船舶撞击 type VIDRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 多通道监测值 MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` } func (x *VIDRealTime) Reset() { *x = VIDRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIDRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIDRealTime) ProtoMessage() {} func (x *VIDRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[33] 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 VIDRealTime.ProtoReflect.Descriptor instead. func (*VIDRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{33} } func (x *VIDRealTime) GetMonitorValues() []float32 { if x != nil { return x.MonitorValues } return nil } // 特征值 type StatisticData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 监测类型 MonitorType MonitoryType `protobuf:"varint,1,opt,name=monitorType,proto3,enum=protoFiles_zjhl_v3.MonitoryType" json:"monitorType,omitempty"` // 测点编码唯一编码 2位省份编码+4位桥梁序号+5位桥梁测点序号 测点必须先注册后才可以发送 MonitorCode int64 `protobuf:"varint,2,opt,name=monitorCode,proto3" json:"monitorCode,omitempty"` // 记录时间戳 EventTime int64 `protobuf:"varint,3,opt,name=eventTime,proto3" json:"eventTime,omitempty"` // 采样周期 Interval int32 `protobuf:"varint,100,opt,name=interval,proto3" json:"interval,omitempty"` // Types that are assignable to DataBody: // // *StatisticData_Uan // *StatisticData_Rhs // *StatisticData_Tmp // *StatisticData_Gnss // *StatisticData_Vic // *StatisticData_Dis // *StatisticData_Hpt // *StatisticData_Rsg // *StatisticData_Inc // *StatisticData_Vie // *StatisticData_Tmd // *StatisticData_Vib // *StatisticData_Hsd // *StatisticData_And // *StatisticData_Crk // *StatisticData_Frz // *StatisticData_Pws // *StatisticData_Vsb // *StatisticData_Acn // *StatisticData_Wlv // *StatisticData_Btf // *StatisticData_Csp // *StatisticData_Pld // *StatisticData_Vid // *StatisticData_Wdp // *StatisticData_Stf // *StatisticData_Sco // *StatisticData_Cor // *StatisticData_Str DataBody isStatisticData_DataBody `protobuf_oneof:"dataBody"` } func (x *StatisticData) Reset() { *x = StatisticData{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StatisticData) String() string { return protoimpl.X.MessageStringOf(x) } func (*StatisticData) ProtoMessage() {} func (x *StatisticData) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[34] 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 StatisticData.ProtoReflect.Descriptor instead. func (*StatisticData) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{34} } func (x *StatisticData) GetMonitorType() MonitoryType { if x != nil { return x.MonitorType } return MonitoryType_UAN } func (x *StatisticData) GetMonitorCode() int64 { if x != nil { return x.MonitorCode } return 0 } func (x *StatisticData) GetEventTime() int64 { if x != nil { return x.EventTime } return 0 } func (x *StatisticData) GetInterval() int32 { if x != nil { return x.Interval } return 0 } func (m *StatisticData) GetDataBody() isStatisticData_DataBody { if m != nil { return m.DataBody } return nil } func (x *StatisticData) GetUan() *UANStatistic { if x, ok := x.GetDataBody().(*StatisticData_Uan); ok { return x.Uan } return nil } func (x *StatisticData) GetRhs() *RHSStatistic { if x, ok := x.GetDataBody().(*StatisticData_Rhs); ok { return x.Rhs } return nil } func (x *StatisticData) GetTmp() *TMPStatistic { if x, ok := x.GetDataBody().(*StatisticData_Tmp); ok { return x.Tmp } return nil } func (x *StatisticData) GetGnss() *GNSSStatistic { if x, ok := x.GetDataBody().(*StatisticData_Gnss); ok { return x.Gnss } return nil } func (x *StatisticData) GetVic() *VICStatistic { if x, ok := x.GetDataBody().(*StatisticData_Vic); ok { return x.Vic } return nil } func (x *StatisticData) GetDis() *DISStatistic { if x, ok := x.GetDataBody().(*StatisticData_Dis); ok { return x.Dis } return nil } func (x *StatisticData) GetHpt() *HPTStatistic { if x, ok := x.GetDataBody().(*StatisticData_Hpt); ok { return x.Hpt } return nil } func (x *StatisticData) GetRsg() *RSGStatistic { if x, ok := x.GetDataBody().(*StatisticData_Rsg); ok { return x.Rsg } return nil } func (x *StatisticData) GetInc() *INCStatistic { if x, ok := x.GetDataBody().(*StatisticData_Inc); ok { return x.Inc } return nil } func (x *StatisticData) GetVie() *VIEStatistic { if x, ok := x.GetDataBody().(*StatisticData_Vie); ok { return x.Vie } return nil } func (x *StatisticData) GetTmd() *TMDStatistic { if x, ok := x.GetDataBody().(*StatisticData_Tmd); ok { return x.Tmd } return nil } func (x *StatisticData) GetVib() *VIBStatistic { if x, ok := x.GetDataBody().(*StatisticData_Vib); ok { return x.Vib } return nil } func (x *StatisticData) GetHsd() *HSDStatistic { if x, ok := x.GetDataBody().(*StatisticData_Hsd); ok { return x.Hsd } return nil } func (x *StatisticData) GetAnd() *ANDStatistic { if x, ok := x.GetDataBody().(*StatisticData_And); ok { return x.And } return nil } func (x *StatisticData) GetCrk() *CRKStatistic { if x, ok := x.GetDataBody().(*StatisticData_Crk); ok { return x.Crk } return nil } func (x *StatisticData) GetFrz() *FRZStatistic { if x, ok := x.GetDataBody().(*StatisticData_Frz); ok { return x.Frz } return nil } func (x *StatisticData) GetPws() *PWSStatistic { if x, ok := x.GetDataBody().(*StatisticData_Pws); ok { return x.Pws } return nil } func (x *StatisticData) GetVsb() *VSBStatistic { if x, ok := x.GetDataBody().(*StatisticData_Vsb); ok { return x.Vsb } return nil } func (x *StatisticData) GetAcn() *ACNStatistic { if x, ok := x.GetDataBody().(*StatisticData_Acn); ok { return x.Acn } return nil } func (x *StatisticData) GetWlv() *WLVStatistic { if x, ok := x.GetDataBody().(*StatisticData_Wlv); ok { return x.Wlv } return nil } func (x *StatisticData) GetBtf() *BTFStatistic { if x, ok := x.GetDataBody().(*StatisticData_Btf); ok { return x.Btf } return nil } func (x *StatisticData) GetCsp() *CSPStatistic { if x, ok := x.GetDataBody().(*StatisticData_Csp); ok { return x.Csp } return nil } func (x *StatisticData) GetPld() *PLDStatistic { if x, ok := x.GetDataBody().(*StatisticData_Pld); ok { return x.Pld } return nil } func (x *StatisticData) GetVid() *VIDStatistic { if x, ok := x.GetDataBody().(*StatisticData_Vid); ok { return x.Vid } return nil } func (x *StatisticData) GetWdp() *WDPStatistic { if x, ok := x.GetDataBody().(*StatisticData_Wdp); ok { return x.Wdp } return nil } func (x *StatisticData) GetStf() *STFStatistic { if x, ok := x.GetDataBody().(*StatisticData_Stf); ok { return x.Stf } return nil } func (x *StatisticData) GetSco() *SCOStatistic { if x, ok := x.GetDataBody().(*StatisticData_Sco); ok { return x.Sco } return nil } func (x *StatisticData) GetCor() *CORStatistic { if x, ok := x.GetDataBody().(*StatisticData_Cor); ok { return x.Cor } return nil } func (x *StatisticData) GetStr() *STRStatistic { if x, ok := x.GetDataBody().(*StatisticData_Str); ok { return x.Str } return nil } type isStatisticData_DataBody interface { isStatisticData_DataBody() } type StatisticData_Uan struct { // 风速风向 Uan *UANStatistic `protobuf:"bytes,4,opt,name=uan,proto3,oneof"` } type StatisticData_Rhs struct { // 温湿度 Rhs *RHSStatistic `protobuf:"bytes,5,opt,name=rhs,proto3,oneof"` } type StatisticData_Tmp struct { // 结构温度 Tmp *TMPStatistic `protobuf:"bytes,6,opt,name=tmp,proto3,oneof"` } type StatisticData_Gnss struct { // 空间变形 Gnss *GNSSStatistic `protobuf:"bytes,7,opt,name=gnss,proto3,oneof"` } type StatisticData_Vic struct { // 索力 Vic *VICStatistic `protobuf:"bytes,8,opt,name=vic,proto3,oneof"` } type StatisticData_Dis struct { // 位移(支座位移、梁端纵向位移、高墩墩顶位移、拱顶位移、主梁横向位移) Dis *DISStatistic `protobuf:"bytes,9,opt,name=dis,proto3,oneof"` } type StatisticData_Hpt struct { // 挠度 Hpt *HPTStatistic `protobuf:"bytes,10,opt,name=hpt,proto3,oneof"` } type StatisticData_Rsg struct { // 应变 Rsg *RSGStatistic `protobuf:"bytes,11,opt,name=rsg,proto3,oneof"` } type StatisticData_Inc struct { // 转角 Inc *INCStatistic `protobuf:"bytes,12,opt,name=inc,proto3,oneof"` } type StatisticData_Vie struct { // 地震 Vie *VIEStatistic `protobuf:"bytes,13,opt,name=vie,proto3,oneof"` } type StatisticData_Tmd struct { // TMD Tmd *TMDStatistic `protobuf:"bytes,14,opt,name=tmd,proto3,oneof"` } type StatisticData_Vib struct { // 动力特性 Vib *VIBStatistic `protobuf:"bytes,15,opt,name=vib,proto3,oneof"` } type StatisticData_Hsd struct { // 车辆荷载 Hsd *HSDStatistic `protobuf:"bytes,16,opt,name=hsd,proto3,oneof"` } type StatisticData_And struct { // 位移(锚定位移、拱脚位移、桥墩沉降)监测特征值数据表 And *ANDStatistic `protobuf:"bytes,17,opt,name=and,proto3,oneof"` } type StatisticData_Crk struct { // 裂缝 Crk *CRKStatistic `protobuf:"bytes,18,opt,name=crk,proto3,oneof"` } type StatisticData_Frz struct { // 结冰 Frz *FRZStatistic `protobuf:"bytes,19,opt,name=frz,proto3,oneof"` } type StatisticData_Pws struct { // 降雨量 Pws *PWSStatistic `protobuf:"bytes,20,opt,name=pws,proto3,oneof"` } type StatisticData_Vsb struct { // 能见度 Vsb *VSBStatistic `protobuf:"bytes,21,opt,name=vsb,proto3,oneof"` } type StatisticData_Acn struct { // 大气浓度 Acn *ACNStatistic `protobuf:"bytes,22,opt,name=acn,proto3,oneof"` } type StatisticData_Wlv struct { // 水位 Wlv *WLVStatistic `protobuf:"bytes,23,opt,name=wlv,proto3,oneof"` } type StatisticData_Btf struct { // 螺杆状态 Btf *BTFStatistic `protobuf:"bytes,24,opt,name=btf,proto3,oneof"` } type StatisticData_Csp struct { // 滑移 Csp *CSPStatistic `protobuf:"bytes,25,opt,name=csp,proto3,oneof"` } type StatisticData_Pld struct { // 表面变形 Pld *PLDStatistic `protobuf:"bytes,26,opt,name=pld,proto3,oneof"` } type StatisticData_Vid struct { // 船舶撞击 Vid *VIDStatistic `protobuf:"bytes,27,opt,name=vid,proto3,oneof"` } type StatisticData_Wdp struct { // 风压 Wdp *WDPStatistic `protobuf:"bytes,28,opt,name=wdp,proto3,oneof"` } type StatisticData_Stf struct { // 支反力 Stf *STFStatistic `protobuf:"bytes,29,opt,name=stf,proto3,oneof"` } type StatisticData_Sco struct { // 基础冲刷 Sco *SCOStatistic `protobuf:"bytes,30,opt,name=sco,proto3,oneof"` } type StatisticData_Cor struct { // 腐蚀 Cor *CORStatistic `protobuf:"bytes,31,opt,name=cor,proto3,oneof"` } type StatisticData_Str struct { // 直接法预应力 Str *STRStatistic `protobuf:"bytes,32,opt,name=str,proto3,oneof"` } func (*StatisticData_Uan) isStatisticData_DataBody() {} func (*StatisticData_Rhs) isStatisticData_DataBody() {} func (*StatisticData_Tmp) isStatisticData_DataBody() {} func (*StatisticData_Gnss) isStatisticData_DataBody() {} func (*StatisticData_Vic) isStatisticData_DataBody() {} func (*StatisticData_Dis) isStatisticData_DataBody() {} func (*StatisticData_Hpt) isStatisticData_DataBody() {} func (*StatisticData_Rsg) isStatisticData_DataBody() {} func (*StatisticData_Inc) isStatisticData_DataBody() {} func (*StatisticData_Vie) isStatisticData_DataBody() {} func (*StatisticData_Tmd) isStatisticData_DataBody() {} func (*StatisticData_Vib) isStatisticData_DataBody() {} func (*StatisticData_Hsd) isStatisticData_DataBody() {} func (*StatisticData_And) isStatisticData_DataBody() {} func (*StatisticData_Crk) isStatisticData_DataBody() {} func (*StatisticData_Frz) isStatisticData_DataBody() {} func (*StatisticData_Pws) isStatisticData_DataBody() {} func (*StatisticData_Vsb) isStatisticData_DataBody() {} func (*StatisticData_Acn) isStatisticData_DataBody() {} func (*StatisticData_Wlv) isStatisticData_DataBody() {} func (*StatisticData_Btf) isStatisticData_DataBody() {} func (*StatisticData_Csp) isStatisticData_DataBody() {} func (*StatisticData_Pld) isStatisticData_DataBody() {} func (*StatisticData_Vid) isStatisticData_DataBody() {} func (*StatisticData_Wdp) isStatisticData_DataBody() {} func (*StatisticData_Stf) isStatisticData_DataBody() {} func (*StatisticData_Sco) isStatisticData_DataBody() {} func (*StatisticData_Cor) isStatisticData_DataBody() {} func (*StatisticData_Str) isStatisticData_DataBody() {} // 风速风向监测特征值 周期 10min type UANStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的风速平均值 AvgVelocity float32 `protobuf:"fixed32,1,opt,name=avgVelocity,proto3" json:"avgVelocity,omitempty"` // 统计时间范围内的风向平均值 AvgDirection float32 `protobuf:"fixed32,2,opt,name=avgDirection,proto3" json:"avgDirection,omitempty"` // 统计时间范围内的风攻角平均值 AvgAttackAngle *float32 `protobuf:"fixed32,3,opt,name=avgAttackAngle,proto3,oneof" json:"avgAttackAngle,omitempty"` } func (x *UANStatistic) Reset() { *x = UANStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UANStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*UANStatistic) ProtoMessage() {} func (x *UANStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[35] 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 UANStatistic.ProtoReflect.Descriptor instead. func (*UANStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{35} } func (x *UANStatistic) GetAvgVelocity() float32 { if x != nil { return x.AvgVelocity } return 0 } func (x *UANStatistic) GetAvgDirection() float32 { if x != nil { return x.AvgDirection } return 0 } func (x *UANStatistic) GetAvgAttackAngle() float32 { if x != nil && x.AvgAttackAngle != nil { return *x.AvgAttackAngle } return 0 } // 温湿度监测特征值 周期 1h type RHSStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的温度最大值 MaxTemperature float32 `protobuf:"fixed32,1,opt,name=maxTemperature,proto3" json:"maxTemperature,omitempty"` // 统计时间范围内的温度最小值 MinTemperature float32 `protobuf:"fixed32,2,opt,name=minTemperature,proto3" json:"minTemperature,omitempty"` // 统计时间范围内的温度平均值 AvgTemperature float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3" json:"avgTemperature,omitempty"` // 统计时间范围内的温差值 MaxTemperatureDifference float32 `protobuf:"fixed32,4,opt,name=maxTemperatureDifference,proto3" json:"maxTemperatureDifference,omitempty"` // 统计时间范围内的湿度最大值 MaxHumidity float32 `protobuf:"fixed32,5,opt,name=maxHumidity,proto3" json:"maxHumidity,omitempty"` // 统计时间范围内的湿度最小值 MinHumidity float32 `protobuf:"fixed32,6,opt,name=minHumidity,proto3" json:"minHumidity,omitempty"` // 统计时间范围内的湿度平均值 AvgHumidity float32 `protobuf:"fixed32,7,opt,name=avgHumidity,proto3" json:"avgHumidity,omitempty"` // 湿度超限持续时间,分钟 HumidityExceedDuration int32 `protobuf:"varint,8,opt,name=humidityExceedDuration,proto3" json:"humidityExceedDuration,omitempty"` } func (x *RHSStatistic) Reset() { *x = RHSStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RHSStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*RHSStatistic) ProtoMessage() {} func (x *RHSStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[36] 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 RHSStatistic.ProtoReflect.Descriptor instead. func (*RHSStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{36} } func (x *RHSStatistic) GetMaxTemperature() float32 { if x != nil { return x.MaxTemperature } return 0 } func (x *RHSStatistic) GetMinTemperature() float32 { if x != nil { return x.MinTemperature } return 0 } func (x *RHSStatistic) GetAvgTemperature() float32 { if x != nil { return x.AvgTemperature } return 0 } func (x *RHSStatistic) GetMaxTemperatureDifference() float32 { if x != nil { return x.MaxTemperatureDifference } return 0 } func (x *RHSStatistic) GetMaxHumidity() float32 { if x != nil { return x.MaxHumidity } return 0 } func (x *RHSStatistic) GetMinHumidity() float32 { if x != nil { return x.MinHumidity } return 0 } func (x *RHSStatistic) GetAvgHumidity() float32 { if x != nil { return x.AvgHumidity } return 0 } func (x *RHSStatistic) GetHumidityExceedDuration() int32 { if x != nil { return x.HumidityExceedDuration } return 0 } // 温度监测特征值 周期 1h type TMPStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的温度最大值 MaxTemperature float32 `protobuf:"fixed32,1,opt,name=maxTemperature,proto3" json:"maxTemperature,omitempty"` // 统计时间范围内的温度最小值 MinTemperature float32 `protobuf:"fixed32,2,opt,name=minTemperature,proto3" json:"minTemperature,omitempty"` // 统计时间范围内的温度平均值 AvgTemperature float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3" json:"avgTemperature,omitempty"` // 统计时间范围内的温差值 MaxDifference float32 `protobuf:"fixed32,4,opt,name=maxDifference,proto3" json:"maxDifference,omitempty"` } func (x *TMPStatistic) Reset() { *x = TMPStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TMPStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*TMPStatistic) ProtoMessage() {} func (x *TMPStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[37] 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 TMPStatistic.ProtoReflect.Descriptor instead. func (*TMPStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{37} } func (x *TMPStatistic) GetMaxTemperature() float32 { if x != nil { return x.MaxTemperature } return 0 } func (x *TMPStatistic) GetMinTemperature() float32 { if x != nil { return x.MinTemperature } return 0 } func (x *TMPStatistic) GetAvgTemperature() float32 { if x != nil { return x.AvgTemperature } return 0 } func (x *TMPStatistic) GetMaxDifference() float32 { if x != nil { return x.MaxDifference } return 0 } // 结构空间变形监测特征值 周期: 1h type GNSSStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的空间变形X绝对最大值 MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` // 统计时间范围内的空间变形X平均值 AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` // 统计时间范围内的空间变形X均方根 RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` // 统计时间范围内的空间变形Y绝对最大值 MaxAbsoluteValueY float32 `protobuf:"fixed32,4,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` // 统计时间范围内的空间变形Y平均值 AvgValueY float32 `protobuf:"fixed32,5,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` // 统计时间范围内的空间变形Y均方根 RootMeanSquareY float32 `protobuf:"fixed32,6,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` // 统计时间范围内的空间变形Z绝对最大值 MaxAbsoluteValueZ float32 `protobuf:"fixed32,7,opt,name=maxAbsoluteValueZ,proto3" json:"maxAbsoluteValueZ,omitempty"` // 统计时间范围内的空间变形Z平均值 AvgValueZ float32 `protobuf:"fixed32,8,opt,name=avgValueZ,proto3" json:"avgValueZ,omitempty"` // 统计时间范围内的空间变形Z均方根 RootMeanSquareZ float32 `protobuf:"fixed32,9,opt,name=rootMeanSquareZ,proto3" json:"rootMeanSquareZ,omitempty"` } func (x *GNSSStatistic) Reset() { *x = GNSSStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GNSSStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*GNSSStatistic) ProtoMessage() {} func (x *GNSSStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[38] 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 GNSSStatistic.ProtoReflect.Descriptor instead. func (*GNSSStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{38} } func (x *GNSSStatistic) GetMaxAbsoluteValueX() float32 { if x != nil { return x.MaxAbsoluteValueX } return 0 } func (x *GNSSStatistic) GetAvgValueX() float32 { if x != nil { return x.AvgValueX } return 0 } func (x *GNSSStatistic) GetRootMeanSquareX() float32 { if x != nil { return x.RootMeanSquareX } return 0 } func (x *GNSSStatistic) GetMaxAbsoluteValueY() float32 { if x != nil { return x.MaxAbsoluteValueY } return 0 } func (x *GNSSStatistic) GetAvgValueY() float32 { if x != nil { return x.AvgValueY } return 0 } func (x *GNSSStatistic) GetRootMeanSquareY() float32 { if x != nil { return x.RootMeanSquareY } return 0 } func (x *GNSSStatistic) GetMaxAbsoluteValueZ() float32 { if x != nil { return x.MaxAbsoluteValueZ } return 0 } func (x *GNSSStatistic) GetAvgValueZ() float32 { if x != nil { return x.AvgValueZ } return 0 } func (x *GNSSStatistic) GetRootMeanSquareZ() float32 { if x != nil { return x.RootMeanSquareZ } return 0 } // 位移(锚定位移、拱脚位移、桥墩沉降)监测特征值数据表 周期 24h type ANDStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的空间变形X绝对最大值 MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` // 统计时间范围内的空间变形X平均值 AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` // 统计时间范围内的空间变形X均方根 RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` // 统计时间范围内的空间变形Y绝对最大值 MaxAbsoluteValueY float32 `protobuf:"fixed32,4,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` // 统计时间范围内的空间变形Y平均值 AvgValueY float32 `protobuf:"fixed32,5,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` // 统计时间范围内的空间变形Y均方根 RootMeanSquareY float32 `protobuf:"fixed32,6,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` // 统计时间范围内的空间变形Z绝对最大值 MaxAbsoluteValueZ float32 `protobuf:"fixed32,7,opt,name=maxAbsoluteValueZ,proto3" json:"maxAbsoluteValueZ,omitempty"` // 统计时间范围内的空间变形Z平均值 AvgValueZ float32 `protobuf:"fixed32,8,opt,name=avgValueZ,proto3" json:"avgValueZ,omitempty"` // 统计时间范围内的空间变形Z均方根 RootMeanSquareZ float32 `protobuf:"fixed32,9,opt,name=rootMeanSquareZ,proto3" json:"rootMeanSquareZ,omitempty"` } func (x *ANDStatistic) Reset() { *x = ANDStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ANDStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*ANDStatistic) ProtoMessage() {} func (x *ANDStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[39] 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 ANDStatistic.ProtoReflect.Descriptor instead. func (*ANDStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{39} } func (x *ANDStatistic) GetMaxAbsoluteValueX() float32 { if x != nil { return x.MaxAbsoluteValueX } return 0 } func (x *ANDStatistic) GetAvgValueX() float32 { if x != nil { return x.AvgValueX } return 0 } func (x *ANDStatistic) GetRootMeanSquareX() float32 { if x != nil { return x.RootMeanSquareX } return 0 } func (x *ANDStatistic) GetMaxAbsoluteValueY() float32 { if x != nil { return x.MaxAbsoluteValueY } return 0 } func (x *ANDStatistic) GetAvgValueY() float32 { if x != nil { return x.AvgValueY } return 0 } func (x *ANDStatistic) GetRootMeanSquareY() float32 { if x != nil { return x.RootMeanSquareY } return 0 } func (x *ANDStatistic) GetMaxAbsoluteValueZ() float32 { if x != nil { return x.MaxAbsoluteValueZ } return 0 } func (x *ANDStatistic) GetAvgValueZ() float32 { if x != nil { return x.AvgValueZ } return 0 } func (x *ANDStatistic) GetRootMeanSquareZ() float32 { if x != nil { return x.RootMeanSquareZ } return 0 } // 位移(支座位移、梁端纵向位移、高墩墩顶位移、拱顶位移、主梁横向位移) 周期 1h type DISStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的位移平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的位移均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` // 统计时间范围内的绝对值累积量 TotalAbsoluteValue float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValue,proto3" json:"totalAbsoluteValue,omitempty"` } func (x *DISStatistic) Reset() { *x = DISStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DISStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*DISStatistic) ProtoMessage() {} func (x *DISStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[40] 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 DISStatistic.ProtoReflect.Descriptor instead. func (*DISStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{40} } func (x *DISStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *DISStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *DISStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } func (x *DISStatistic) GetTotalAbsoluteValue() float32 { if x != nil { return x.TotalAbsoluteValue } return 0 } // 挠度监测特征值 周期 1h type HPTStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的位移平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的位移均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *HPTStatistic) Reset() { *x = HPTStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HPTStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*HPTStatistic) ProtoMessage() {} func (x *HPTStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[41] 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 HPTStatistic.ProtoReflect.Descriptor instead. func (*HPTStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{41} } func (x *HPTStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *HPTStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *HPTStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 转角监测特征值 周期 1h type INCStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内横桥向的绝对最大值 MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` // 统计时间范围内横桥向的转角平均值 AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` // 统计时间范围内横桥向的转角均方根值 RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` // 统计时间范围内纵桥向的绝对最大值 MaxAbsoluteValueY float32 `protobuf:"fixed32,4,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` // 统计时间范围内纵桥向的转角平均值 AvgValueY float32 `protobuf:"fixed32,5,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` // 统计时间范围内纵桥向的转角均方根值 RootMeanSquareY float32 `protobuf:"fixed32,6,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` } func (x *INCStatistic) Reset() { *x = INCStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *INCStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*INCStatistic) ProtoMessage() {} func (x *INCStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[42] 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 INCStatistic.ProtoReflect.Descriptor instead. func (*INCStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{42} } func (x *INCStatistic) GetMaxAbsoluteValueX() float32 { if x != nil { return x.MaxAbsoluteValueX } return 0 } func (x *INCStatistic) GetAvgValueX() float32 { if x != nil { return x.AvgValueX } return 0 } func (x *INCStatistic) GetRootMeanSquareX() float32 { if x != nil { return x.RootMeanSquareX } return 0 } func (x *INCStatistic) GetMaxAbsoluteValueY() float32 { if x != nil { return x.MaxAbsoluteValueY } return 0 } func (x *INCStatistic) GetAvgValueY() float32 { if x != nil { return x.AvgValueY } return 0 } func (x *INCStatistic) GetRootMeanSquareY() float32 { if x != nil { return x.RootMeanSquareY } return 0 } // 应变监测特征值 周期 1h type RSGStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的应变/应力绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的应变/应力平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的温度平均值 AvgTemperature *float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3,oneof" json:"avgTemperature,omitempty"` } func (x *RSGStatistic) Reset() { *x = RSGStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RSGStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*RSGStatistic) ProtoMessage() {} func (x *RSGStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[43] 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 RSGStatistic.ProtoReflect.Descriptor instead. func (*RSGStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{43} } func (x *RSGStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *RSGStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *RSGStatistic) GetAvgTemperature() float32 { if x != nil && x.AvgTemperature != nil { return *x.AvgTemperature } return 0 } // 索力监测特征值 周期 1h type VICStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的索力最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的索力最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的索力平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的索力均方根值 RootMeanSquare float32 `protobuf:"fixed32,4,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *VICStatistic) Reset() { *x = VICStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VICStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*VICStatistic) ProtoMessage() {} func (x *VICStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[44] 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 VICStatistic.ProtoReflect.Descriptor instead. func (*VICStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{44} } func (x *VICStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *VICStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *VICStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *VICStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 动力特性监测特征值 振动(主梁、索塔、拱圈) 周期 10min type VIBStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的均方根值 RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *VIBStatistic) Reset() { *x = VIBStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIBStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIBStatistic) ProtoMessage() {} func (x *VIBStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[45] 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 VIBStatistic.ProtoReflect.Descriptor instead. func (*VIBStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{45} } func (x *VIBStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *VIBStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 地震船撞特性监测特征值 周期 10min type VIEStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的均方根值 RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *VIEStatistic) Reset() { *x = VIEStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIEStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIEStatistic) ProtoMessage() {} func (x *VIEStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[46] 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 VIEStatistic.ProtoReflect.Descriptor instead. func (*VIEStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{46} } func (x *VIEStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *VIEStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } type VIDStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的均方根值 RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *VIDStatistic) Reset() { *x = VIDStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIDStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIDStatistic) ProtoMessage() {} func (x *VIDStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[47] 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 VIDStatistic.ProtoReflect.Descriptor instead. func (*VIDStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{47} } func (x *VIDStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *VIDStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // TMD监测特征值 周期 10min type TMDStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的均方根值 RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *TMDStatistic) Reset() { *x = TMDStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TMDStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*TMDStatistic) ProtoMessage() {} func (x *TMDStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[48] 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 TMDStatistic.ProtoReflect.Descriptor instead. func (*TMDStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{48} } func (x *TMDStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *TMDStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 车辆载荷监测特征值-动态称重 周期 1h type HSDStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的车流量 TrafficFlow int32 `protobuf:"varint,1,opt,name=trafficFlow,proto3" json:"trafficFlow,omitempty"` // 统计时间范围内的最大车重 MaxTotalLoad int32 `protobuf:"varint,2,opt,name=maxTotalLoad,proto3" json:"maxTotalLoad,omitempty"` // 统计时间范围内的最大轴重 MaxAxleLoad int32 `protobuf:"varint,3,opt,name=maxAxleLoad,proto3" json:"maxAxleLoad,omitempty"` // 统计时间范围内的超载车数量 OverLoadCount int32 `protobuf:"varint,4,opt,name=overLoadCount,proto3" json:"overLoadCount,omitempty"` // 统计时间范围内的平均车重(kg) AvgLoad float32 `protobuf:"fixed32,5,opt,name=avgLoad,proto3" json:"avgLoad,omitempty"` } func (x *HSDStatistic) Reset() { *x = HSDStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HSDStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*HSDStatistic) ProtoMessage() {} func (x *HSDStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[49] 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 HSDStatistic.ProtoReflect.Descriptor instead. func (*HSDStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{49} } func (x *HSDStatistic) GetTrafficFlow() int32 { if x != nil { return x.TrafficFlow } return 0 } func (x *HSDStatistic) GetMaxTotalLoad() int32 { if x != nil { return x.MaxTotalLoad } return 0 } func (x *HSDStatistic) GetMaxAxleLoad() int32 { if x != nil { return x.MaxAxleLoad } return 0 } func (x *HSDStatistic) GetOverLoadCount() int32 { if x != nil { return x.OverLoadCount } return 0 } func (x *HSDStatistic) GetAvgLoad() float32 { if x != nil { return x.AvgLoad } return 0 } // 裂缝监测特征值 位移 周期 1h type CRKStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的位移平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的位移均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` // 统计时间范围内的绝对值累积量 TotalAbsoluteValue float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValue,proto3" json:"totalAbsoluteValue,omitempty"` } func (x *CRKStatistic) Reset() { *x = CRKStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CRKStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*CRKStatistic) ProtoMessage() {} func (x *CRKStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[50] 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 CRKStatistic.ProtoReflect.Descriptor instead. func (*CRKStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{50} } func (x *CRKStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *CRKStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *CRKStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } func (x *CRKStatistic) GetTotalAbsoluteValue() float32 { if x != nil { return x.TotalAbsoluteValue } return 0 } // 结冰 周期 1h type FRZStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的结冰最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的结冰最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的结冰平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *FRZStatistic) Reset() { *x = FRZStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FRZStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*FRZStatistic) ProtoMessage() {} func (x *FRZStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[51] 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 FRZStatistic.ProtoReflect.Descriptor instead. func (*FRZStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{51} } func (x *FRZStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *FRZStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *FRZStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 降雨量 周期 10min type PWSStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的降雨量平均值 AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *PWSStatistic) Reset() { *x = PWSStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PWSStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*PWSStatistic) ProtoMessage() {} func (x *PWSStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[52] 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 PWSStatistic.ProtoReflect.Descriptor instead. func (*PWSStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{52} } func (x *PWSStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 能见度 周期 10min type VSBStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的能见度值 AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *VSBStatistic) Reset() { *x = VSBStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VSBStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*VSBStatistic) ProtoMessage() {} func (x *VSBStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[53] 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 VSBStatistic.ProtoReflect.Descriptor instead. func (*VSBStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{53} } func (x *VSBStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 大气浓度 周期 1h type ACNStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的大气浓度最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的大气浓度最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的大气浓度平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *ACNStatistic) Reset() { *x = ACNStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ACNStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*ACNStatistic) ProtoMessage() {} func (x *ACNStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[54] 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 ACNStatistic.ProtoReflect.Descriptor instead. func (*ACNStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{54} } func (x *ACNStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *ACNStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *ACNStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 水位 周期 1h type WLVStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的水位最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的水位最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的水位平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *WLVStatistic) Reset() { *x = WLVStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WLVStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*WLVStatistic) ProtoMessage() {} func (x *WLVStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[55] 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 WLVStatistic.ProtoReflect.Descriptor instead. func (*WLVStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{55} } func (x *WLVStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *WLVStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *WLVStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 螺杆状态 周期 1h type BTFStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的螺杆状态平均值 AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的螺杆状态绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,2,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的螺杆状态均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *BTFStatistic) Reset() { *x = BTFStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BTFStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*BTFStatistic) ProtoMessage() {} func (x *BTFStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[56] 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 BTFStatistic.ProtoReflect.Descriptor instead. func (*BTFStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{56} } func (x *BTFStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *BTFStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *BTFStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 滑移 周期 1h type CSPStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的索夹滑移平均值 AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的索夹滑移绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,2,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的索夹滑移均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *CSPStatistic) Reset() { *x = CSPStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPStatistic) ProtoMessage() {} func (x *CSPStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[57] 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 CSPStatistic.ProtoReflect.Descriptor instead. func (*CSPStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{57} } func (x *CSPStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *CSPStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *CSPStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 表面变形监测特征值 周期: 1h type PLDStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的空间变形X绝对最大值 MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` // 统计时间范围内的空间变形X平均值 AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` // 统计时间范围内的空间变形X均方根 RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` // 统计时间范围内的空间变形Y绝对最大值 MaxAbsoluteValueY float32 `protobuf:"fixed32,4,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` // 统计时间范围内的空间变形Y平均值 AvgValueY float32 `protobuf:"fixed32,5,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` // 统计时间范围内的空间变形Y均方根 RootMeanSquareY float32 `protobuf:"fixed32,6,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` // 统计时间范围内的空间变形Z绝对最大值 MaxAbsoluteValueZ float32 `protobuf:"fixed32,7,opt,name=maxAbsoluteValueZ,proto3" json:"maxAbsoluteValueZ,omitempty"` // 统计时间范围内的空间变形Z平均值 AvgValueZ float32 `protobuf:"fixed32,8,opt,name=avgValueZ,proto3" json:"avgValueZ,omitempty"` // 统计时间范围内的空间变形Z均方根 RootMeanSquareZ float32 `protobuf:"fixed32,9,opt,name=rootMeanSquareZ,proto3" json:"rootMeanSquareZ,omitempty"` } func (x *PLDStatistic) Reset() { *x = PLDStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PLDStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*PLDStatistic) ProtoMessage() {} func (x *PLDStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[58] 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 PLDStatistic.ProtoReflect.Descriptor instead. func (*PLDStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{58} } func (x *PLDStatistic) GetMaxAbsoluteValueX() float32 { if x != nil { return x.MaxAbsoluteValueX } return 0 } func (x *PLDStatistic) GetAvgValueX() float32 { if x != nil { return x.AvgValueX } return 0 } func (x *PLDStatistic) GetRootMeanSquareX() float32 { if x != nil { return x.RootMeanSquareX } return 0 } func (x *PLDStatistic) GetMaxAbsoluteValueY() float32 { if x != nil { return x.MaxAbsoluteValueY } return 0 } func (x *PLDStatistic) GetAvgValueY() float32 { if x != nil { return x.AvgValueY } return 0 } func (x *PLDStatistic) GetRootMeanSquareY() float32 { if x != nil { return x.RootMeanSquareY } return 0 } func (x *PLDStatistic) GetMaxAbsoluteValueZ() float32 { if x != nil { return x.MaxAbsoluteValueZ } return 0 } func (x *PLDStatistic) GetAvgValueZ() float32 { if x != nil { return x.AvgValueZ } return 0 } func (x *PLDStatistic) GetRootMeanSquareZ() float32 { if x != nil { return x.RootMeanSquareZ } return 0 } // 风压监测特征值 周期: 10分钟 type WDPStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的风压平均值 AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的风压均方根 RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *WDPStatistic) Reset() { *x = WDPStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WDPStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*WDPStatistic) ProtoMessage() {} func (x *WDPStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[59] 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 WDPStatistic.ProtoReflect.Descriptor instead. func (*WDPStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{59} } func (x *WDPStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *WDPStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 支反力监测特征值 周期: 1小时 type STFStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的支反力最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的支反力最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的支反力平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *STFStatistic) Reset() { *x = STFStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *STFStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*STFStatistic) ProtoMessage() {} func (x *STFStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[60] 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 STFStatistic.ProtoReflect.Descriptor instead. func (*STFStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{60} } func (x *STFStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *STFStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *STFStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 基础冲刷监测特征值 周期: 1小时 type SCOStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的冲刷深度最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的冲刷范围 ScourRange float32 `protobuf:"fixed32,2,opt,name=scourRange,proto3" json:"scourRange,omitempty"` } func (x *SCOStatistic) Reset() { *x = SCOStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCOStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCOStatistic) ProtoMessage() {} func (x *SCOStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[61] 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 SCOStatistic.ProtoReflect.Descriptor instead. func (*SCOStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{61} } func (x *SCOStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *SCOStatistic) GetScourRange() float32 { if x != nil { return x.ScourRange } return 0 } // 腐蚀监测特征值 周期: 24小时 type CORStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 氯离子浓度最大值 ChlorideConcentrationMaxValue float32 `protobuf:"fixed32,1,opt,name=chlorideConcentrationMaxValue,proto3" json:"chlorideConcentrationMaxValue,omitempty"` // 氯离子浓度最小值 ChlorideConcentrationMinValue float32 `protobuf:"fixed32,2,opt,name=chlorideConcentrationMinValue,proto3" json:"chlorideConcentrationMinValue,omitempty"` // 氯离子浓度平均值 ChlorideConcentrationAvgValue float32 `protobuf:"fixed32,3,opt,name=chlorideConcentrationAvgValue,proto3" json:"chlorideConcentrationAvgValue,omitempty"` // 侵蚀深度最大值 CorrosionDepthMaxValue float32 `protobuf:"fixed32,4,opt,name=corrosionDepthMaxValue,proto3" json:"corrosionDepthMaxValue,omitempty"` // 侵蚀深度最小值 CorrosionDepthMinValue float32 `protobuf:"fixed32,5,opt,name=corrosionDepthMinValue,proto3" json:"corrosionDepthMinValue,omitempty"` // 侵蚀深度平均值 CorrosionDepthAvgValue float32 `protobuf:"fixed32,6,opt,name=corrosionDepthAvgValue,proto3" json:"corrosionDepthAvgValue,omitempty"` } func (x *CORStatistic) Reset() { *x = CORStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CORStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*CORStatistic) ProtoMessage() {} func (x *CORStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[62] 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 CORStatistic.ProtoReflect.Descriptor instead. func (*CORStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{62} } func (x *CORStatistic) GetChlorideConcentrationMaxValue() float32 { if x != nil { return x.ChlorideConcentrationMaxValue } return 0 } func (x *CORStatistic) GetChlorideConcentrationMinValue() float32 { if x != nil { return x.ChlorideConcentrationMinValue } return 0 } func (x *CORStatistic) GetChlorideConcentrationAvgValue() float32 { if x != nil { return x.ChlorideConcentrationAvgValue } return 0 } func (x *CORStatistic) GetCorrosionDepthMaxValue() float32 { if x != nil { return x.CorrosionDepthMaxValue } return 0 } func (x *CORStatistic) GetCorrosionDepthMinValue() float32 { if x != nil { return x.CorrosionDepthMinValue } return 0 } func (x *CORStatistic) GetCorrosionDepthAvgValue() float32 { if x != nil { return x.CorrosionDepthAvgValue } return 0 } // 直接法预应力监测 周期:24小时 type STRStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *STRStatistic) Reset() { *x = STRStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *STRStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*STRStatistic) ProtoMessage() {} func (x *STRStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[63] 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 STRStatistic.ProtoReflect.Descriptor instead. func (*STRStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP(), []int{63} } func (x *STRStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *STRStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *STRStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } var File_MonitorDataProtocol_Ministry_v3_0_proto protoreflect.FileDescriptor var file_MonitorDataProtocol_Ministry_v3_0_proto_rawDesc = []byte{ 0x0a, 0x27, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2d, 0x4d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2d, 0x76, 0x33, 0x2e, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x22, 0x51, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0xad, 0x02, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x46, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x42, 0x0a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x8c, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x03, 0x75, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x55, 0x41, 0x4e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x75, 0x61, 0x6e, 0x12, 0x33, 0x0a, 0x03, 0x72, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x52, 0x48, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x72, 0x68, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x74, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x54, 0x4d, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x04, 0x67, 0x6e, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x47, 0x4e, 0x53, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x67, 0x6e, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x76, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x56, 0x49, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x63, 0x12, 0x33, 0x0a, 0x03, 0x64, 0x69, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x44, 0x49, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x64, 0x69, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x68, 0x70, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x48, 0x50, 0x54, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x68, 0x70, 0x74, 0x12, 0x33, 0x0a, 0x03, 0x72, 0x73, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x52, 0x53, 0x47, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x72, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x03, 0x69, 0x6e, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x49, 0x4e, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x69, 0x6e, 0x63, 0x12, 0x33, 0x0a, 0x03, 0x76, 0x69, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x56, 0x49, 0x45, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x65, 0x12, 0x33, 0x0a, 0x03, 0x74, 0x6d, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x54, 0x4d, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6d, 0x64, 0x12, 0x33, 0x0a, 0x03, 0x76, 0x69, 0x62, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x56, 0x49, 0x42, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x62, 0x12, 0x33, 0x0a, 0x03, 0x68, 0x73, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x48, 0x53, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x68, 0x73, 0x64, 0x12, 0x33, 0x0a, 0x03, 0x70, 0x77, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x50, 0x57, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x70, 0x77, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x66, 0x72, 0x7a, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x46, 0x52, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x66, 0x72, 0x7a, 0x12, 0x33, 0x0a, 0x03, 0x6c, 0x6d, 0x7a, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x4c, 0x4d, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6d, 0x7a, 0x12, 0x33, 0x0a, 0x03, 0x73, 0x74, 0x66, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x53, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x66, 0x12, 0x33, 0x0a, 0x03, 0x73, 0x63, 0x6f, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x53, 0x43, 0x4f, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x73, 0x63, 0x6f, 0x12, 0x33, 0x0a, 0x03, 0x63, 0x72, 0x6b, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x43, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x63, 0x72, 0x6b, 0x12, 0x33, 0x0a, 0x03, 0x63, 0x6f, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x43, 0x4f, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x63, 0x6f, 0x72, 0x12, 0x33, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x53, 0x54, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x33, 0x0a, 0x03, 0x62, 0x72, 0x6b, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x42, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x62, 0x72, 0x6b, 0x12, 0x33, 0x0a, 0x03, 0x62, 0x74, 0x66, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x42, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x62, 0x74, 0x66, 0x12, 0x33, 0x0a, 0x03, 0x63, 0x73, 0x70, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x43, 0x53, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x63, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x03, 0x76, 0x73, 0x62, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x56, 0x53, 0x42, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x73, 0x62, 0x12, 0x33, 0x0a, 0x03, 0x61, 0x63, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x41, 0x43, 0x4e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x61, 0x63, 0x6e, 0x12, 0x33, 0x0a, 0x03, 0x77, 0x6c, 0x76, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x57, 0x4c, 0x56, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x77, 0x6c, 0x76, 0x12, 0x33, 0x0a, 0x03, 0x70, 0x6c, 0x64, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x50, 0x4c, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6c, 0x64, 0x12, 0x33, 0x0a, 0x03, 0x77, 0x64, 0x70, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x57, 0x44, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x77, 0x64, 0x70, 0x12, 0x33, 0x0a, 0x03, 0x61, 0x6e, 0x64, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x41, 0x4e, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x64, 0x12, 0x33, 0x0a, 0x03, 0x76, 0x69, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x56, 0x49, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x0b, 0x55, 0x41, 0x4e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x22, 0x4b, 0x0a, 0x0b, 0x52, 0x48, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x22, 0x2f, 0x0a, 0x0b, 0x54, 0x4d, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x38, 0x0a, 0x0c, 0x47, 0x4e, 0x53, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, 0x22, 0x7f, 0x0a, 0x0b, 0x56, 0x49, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x14, 0x66, 0x75, 0x6e, 0x64, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x14, 0x66, 0x75, 0x6e, 0x64, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x68, 0x0a, 0x0b, 0x44, 0x49, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x64, 0x0a, 0x0b, 0x43, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x64, 0x0a, 0x0b, 0x48, 0x50, 0x54, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x5c, 0x0a, 0x0b, 0x52, 0x53, 0x47, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x4f, 0x0a, 0x0b, 0x49, 0x4e, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x37, 0x0a, 0x0b, 0x56, 0x49, 0x42, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0b, 0x56, 0x49, 0x45, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0b, 0x54, 0x4d, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xd2, 0x02, 0x0a, 0x0b, 0x48, 0x53, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x78, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x78, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x73, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x73, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x78, 0x6c, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x78, 0x6c, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x27, 0x0a, 0x0c, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x11, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x29, 0x0a, 0x0b, 0x50, 0x57, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, 0x69, 0x6e, 0x66, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x72, 0x61, 0x69, 0x6e, 0x66, 0x61, 0x6c, 0x6c, 0x22, 0x53, 0x0a, 0x0b, 0x46, 0x52, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x63, 0x65, 0x54, 0x68, 0x69, 0x63, 0x6b, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x69, 0x63, 0x65, 0x54, 0x68, 0x69, 0x63, 0x6b, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x55, 0x0a, 0x0b, 0x4c, 0x4d, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x72, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x55, 0x0a, 0x0b, 0x53, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x53, 0x43, 0x4f, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x22, 0x6b, 0x0a, 0x0b, 0x43, 0x4f, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x22, 0x5c, 0x0a, 0x0b, 0x53, 0x54, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x42, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6c, 0x0a, 0x0b, 0x42, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x6f, 0x6c, 0x74, 0x54, 0x69, 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x62, 0x6f, 0x6c, 0x74, 0x54, 0x69, 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x68, 0x0a, 0x0b, 0x43, 0x53, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x56, 0x53, 0x42, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x41, 0x43, 0x4e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x57, 0x4c, 0x56, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x37, 0x0a, 0x0b, 0x50, 0x4c, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, 0x22, 0x23, 0x0a, 0x0b, 0x57, 0x44, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x37, 0x0a, 0x0b, 0x41, 0x4e, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, 0x22, 0x37, 0x0a, 0x0b, 0x56, 0x49, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xdc, 0x0d, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x64, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x34, 0x0a, 0x03, 0x75, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x55, 0x41, 0x4e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x75, 0x61, 0x6e, 0x12, 0x34, 0x0a, 0x03, 0x72, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x52, 0x48, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x72, 0x68, 0x73, 0x12, 0x34, 0x0a, 0x03, 0x74, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x54, 0x4d, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6d, 0x70, 0x12, 0x37, 0x0a, 0x04, 0x67, 0x6e, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x47, 0x4e, 0x53, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x67, 0x6e, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x03, 0x76, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x56, 0x49, 0x43, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x63, 0x12, 0x34, 0x0a, 0x03, 0x64, 0x69, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x44, 0x49, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x64, 0x69, 0x73, 0x12, 0x34, 0x0a, 0x03, 0x68, 0x70, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x48, 0x50, 0x54, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x68, 0x70, 0x74, 0x12, 0x34, 0x0a, 0x03, 0x72, 0x73, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x52, 0x53, 0x47, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x72, 0x73, 0x67, 0x12, 0x34, 0x0a, 0x03, 0x69, 0x6e, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x49, 0x4e, 0x43, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x69, 0x6e, 0x63, 0x12, 0x34, 0x0a, 0x03, 0x76, 0x69, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x56, 0x49, 0x45, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x65, 0x12, 0x34, 0x0a, 0x03, 0x74, 0x6d, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x54, 0x4d, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6d, 0x64, 0x12, 0x34, 0x0a, 0x03, 0x76, 0x69, 0x62, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x56, 0x49, 0x42, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x62, 0x12, 0x34, 0x0a, 0x03, 0x68, 0x73, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x48, 0x53, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x68, 0x73, 0x64, 0x12, 0x34, 0x0a, 0x03, 0x61, 0x6e, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x41, 0x4e, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x03, 0x63, 0x72, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x43, 0x52, 0x4b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x63, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x03, 0x66, 0x72, 0x7a, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x46, 0x52, 0x5a, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x66, 0x72, 0x7a, 0x12, 0x34, 0x0a, 0x03, 0x70, 0x77, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x50, 0x57, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x70, 0x77, 0x73, 0x12, 0x34, 0x0a, 0x03, 0x76, 0x73, 0x62, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x56, 0x53, 0x42, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, 0x73, 0x62, 0x12, 0x34, 0x0a, 0x03, 0x61, 0x63, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x41, 0x43, 0x4e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x61, 0x63, 0x6e, 0x12, 0x34, 0x0a, 0x03, 0x77, 0x6c, 0x76, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x57, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x77, 0x6c, 0x76, 0x12, 0x34, 0x0a, 0x03, 0x62, 0x74, 0x66, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x42, 0x54, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x62, 0x74, 0x66, 0x12, 0x34, 0x0a, 0x03, 0x63, 0x73, 0x70, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x43, 0x53, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x63, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x03, 0x70, 0x6c, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x50, 0x4c, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6c, 0x64, 0x12, 0x34, 0x0a, 0x03, 0x76, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x56, 0x49, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x03, 0x77, 0x64, 0x70, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x57, 0x44, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x77, 0x64, 0x70, 0x12, 0x34, 0x0a, 0x03, 0x73, 0x74, 0x66, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x53, 0x54, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x66, 0x12, 0x34, 0x0a, 0x03, 0x73, 0x63, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x53, 0x43, 0x4f, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x73, 0x63, 0x6f, 0x12, 0x34, 0x0a, 0x03, 0x63, 0x6f, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x43, 0x4f, 0x52, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x63, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x2e, 0x53, 0x54, 0x52, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x94, 0x01, 0x0a, 0x0c, 0x55, 0x41, 0x4e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x61, 0x76, 0x67, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x76, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x61, 0x76, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x76, 0x67, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x76, 0x67, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x22, 0xe0, 0x02, 0x0a, 0x0c, 0x52, 0x48, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x61, 0x76, 0x67, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x16, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x54, 0x4d, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xf1, 0x02, 0x0a, 0x0d, 0x47, 0x4e, 0x53, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x22, 0xf0, 0x02, 0x0a, 0x0c, 0x41, 0x4e, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x44, 0x49, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7e, 0x0a, 0x0c, 0x48, 0x50, 0x54, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0xfa, 0x01, 0x0a, 0x0c, 0x49, 0x4e, 0x43, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x22, 0x96, 0x01, 0x0a, 0x0c, 0x52, 0x53, 0x47, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x56, 0x49, 0x43, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x56, 0x49, 0x42, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x56, 0x49, 0x45, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x56, 0x49, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x54, 0x4d, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x0c, 0x48, 0x53, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x78, 0x6c, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x78, 0x6c, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x76, 0x67, 0x4c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x61, 0x76, 0x67, 0x4c, 0x6f, 0x61, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x43, 0x52, 0x4b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x46, 0x52, 0x5a, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2a, 0x0a, 0x0c, 0x50, 0x57, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2a, 0x0a, 0x0c, 0x56, 0x53, 0x42, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x41, 0x43, 0x4e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x57, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7e, 0x0a, 0x0c, 0x42, 0x54, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x7e, 0x0a, 0x0c, 0x43, 0x53, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x0c, 0x50, 0x4c, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x22, 0x52, 0x0a, 0x0c, 0x57, 0x44, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x54, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4a, 0x0a, 0x0c, 0x53, 0x43, 0x4f, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x88, 0x03, 0x0a, 0x0c, 0x43, 0x4f, 0x52, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x44, 0x0a, 0x1d, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1d, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, 0x1d, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1d, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, 0x1d, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1d, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x41, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x41, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2a, 0x4a, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x41, 0x4c, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54, 0x49, 0x53, 0x54, 0x49, 0x43, 0x53, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x2a, 0xb8, 0x02, 0x0a, 0x0c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x41, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x48, 0x53, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x47, 0x4e, 0x53, 0x53, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x43, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x49, 0x43, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x49, 0x53, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x48, 0x50, 0x54, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x53, 0x47, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x43, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x42, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x45, 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x4d, 0x44, 0x10, 0x0b, 0x12, 0x07, 0x0a, 0x03, 0x48, 0x53, 0x44, 0x10, 0x0c, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x4d, 0x50, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x57, 0x53, 0x10, 0x0e, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x52, 0x5a, 0x10, 0x0f, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4d, 0x5a, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x54, 0x46, 0x10, 0x11, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x43, 0x4f, 0x10, 0x12, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x52, 0x4b, 0x10, 0x13, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x4f, 0x52, 0x10, 0x14, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x54, 0x52, 0x10, 0x16, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x52, 0x4b, 0x10, 0x17, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x54, 0x46, 0x10, 0x18, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, 0x50, 0x10, 0x19, 0x12, 0x07, 0x0a, 0x03, 0x57, 0x44, 0x50, 0x10, 0x1a, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44, 0x10, 0x1e, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x44, 0x10, 0x21, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x53, 0x42, 0x10, 0x22, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x43, 0x4e, 0x10, 0x23, 0x12, 0x07, 0x0a, 0x03, 0x57, 0x4c, 0x56, 0x10, 0x24, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x4c, 0x44, 0x10, 0x61, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x4d, 0x4d, 0x10, 0x63, 0x42, 0x17, 0x5a, 0x15, 0x2e, 0x2e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x7a, 0x6a, 0x68, 0x6c, 0x5f, 0x76, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescOnce sync.Once file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescData = file_MonitorDataProtocol_Ministry_v3_0_proto_rawDesc ) func file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescGZIP() []byte { file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescOnce.Do(func() { file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescData = protoimpl.X.CompressGZIP(file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescData) }) return file_MonitorDataProtocol_Ministry_v3_0_proto_rawDescData } var file_MonitorDataProtocol_Ministry_v3_0_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes = make([]protoimpl.MessageInfo, 64) var file_MonitorDataProtocol_Ministry_v3_0_proto_goTypes = []interface{}{ (DataType)(0), // 0: protoFiles_zjhl_v3.DataType (MonitoryType)(0), // 1: protoFiles_zjhl_v3.MonitoryType (*ComplexData)(nil), // 2: protoFiles_zjhl_v3.ComplexData (*DataDefinition)(nil), // 3: protoFiles_zjhl_v3.DataDefinition (*RealTimeData)(nil), // 4: protoFiles_zjhl_v3.RealTimeData (*UANRealTime)(nil), // 5: protoFiles_zjhl_v3.UANRealTime (*RHSRealTime)(nil), // 6: protoFiles_zjhl_v3.RHSRealTime (*TMPRealTime)(nil), // 7: protoFiles_zjhl_v3.TMPRealTime (*GNSSRealTime)(nil), // 8: protoFiles_zjhl_v3.GNSSRealTime (*VICRealTime)(nil), // 9: protoFiles_zjhl_v3.VICRealTime (*DISRealTime)(nil), // 10: protoFiles_zjhl_v3.DISRealTime (*CRKRealTime)(nil), // 11: protoFiles_zjhl_v3.CRKRealTime (*HPTRealTime)(nil), // 12: protoFiles_zjhl_v3.HPTRealTime (*RSGRealTime)(nil), // 13: protoFiles_zjhl_v3.RSGRealTime (*INCRealTime)(nil), // 14: protoFiles_zjhl_v3.INCRealTime (*VIBRealTime)(nil), // 15: protoFiles_zjhl_v3.VIBRealTime (*VIERealTime)(nil), // 16: protoFiles_zjhl_v3.VIERealTime (*TMDRealTime)(nil), // 17: protoFiles_zjhl_v3.TMDRealTime (*HSDRealTime)(nil), // 18: protoFiles_zjhl_v3.HSDRealTime (*PWSRealTime)(nil), // 19: protoFiles_zjhl_v3.PWSRealTime (*FRZRealTime)(nil), // 20: protoFiles_zjhl_v3.FRZRealTime (*LMZRealTime)(nil), // 21: protoFiles_zjhl_v3.LMZRealTime (*STFRealTime)(nil), // 22: protoFiles_zjhl_v3.STFRealTime (*SCORealTime)(nil), // 23: protoFiles_zjhl_v3.SCORealTime (*CORRealTime)(nil), // 24: protoFiles_zjhl_v3.CORRealTime (*STRRealTime)(nil), // 25: protoFiles_zjhl_v3.STRRealTime (*BRKRealTime)(nil), // 26: protoFiles_zjhl_v3.BRKRealTime (*BTFRealTime)(nil), // 27: protoFiles_zjhl_v3.BTFRealTime (*CSPRealTime)(nil), // 28: protoFiles_zjhl_v3.CSPRealTime (*VSBRealTime)(nil), // 29: protoFiles_zjhl_v3.VSBRealTime (*ACNRealTime)(nil), // 30: protoFiles_zjhl_v3.ACNRealTime (*WLVRealTime)(nil), // 31: protoFiles_zjhl_v3.WLVRealTime (*PLDRealTime)(nil), // 32: protoFiles_zjhl_v3.PLDRealTime (*WDPRealTime)(nil), // 33: protoFiles_zjhl_v3.WDPRealTime (*ANDRealTime)(nil), // 34: protoFiles_zjhl_v3.ANDRealTime (*VIDRealTime)(nil), // 35: protoFiles_zjhl_v3.VIDRealTime (*StatisticData)(nil), // 36: protoFiles_zjhl_v3.StatisticData (*UANStatistic)(nil), // 37: protoFiles_zjhl_v3.UANStatistic (*RHSStatistic)(nil), // 38: protoFiles_zjhl_v3.RHSStatistic (*TMPStatistic)(nil), // 39: protoFiles_zjhl_v3.TMPStatistic (*GNSSStatistic)(nil), // 40: protoFiles_zjhl_v3.GNSSStatistic (*ANDStatistic)(nil), // 41: protoFiles_zjhl_v3.ANDStatistic (*DISStatistic)(nil), // 42: protoFiles_zjhl_v3.DISStatistic (*HPTStatistic)(nil), // 43: protoFiles_zjhl_v3.HPTStatistic (*INCStatistic)(nil), // 44: protoFiles_zjhl_v3.INCStatistic (*RSGStatistic)(nil), // 45: protoFiles_zjhl_v3.RSGStatistic (*VICStatistic)(nil), // 46: protoFiles_zjhl_v3.VICStatistic (*VIBStatistic)(nil), // 47: protoFiles_zjhl_v3.VIBStatistic (*VIEStatistic)(nil), // 48: protoFiles_zjhl_v3.VIEStatistic (*VIDStatistic)(nil), // 49: protoFiles_zjhl_v3.VIDStatistic (*TMDStatistic)(nil), // 50: protoFiles_zjhl_v3.TMDStatistic (*HSDStatistic)(nil), // 51: protoFiles_zjhl_v3.HSDStatistic (*CRKStatistic)(nil), // 52: protoFiles_zjhl_v3.CRKStatistic (*FRZStatistic)(nil), // 53: protoFiles_zjhl_v3.FRZStatistic (*PWSStatistic)(nil), // 54: protoFiles_zjhl_v3.PWSStatistic (*VSBStatistic)(nil), // 55: protoFiles_zjhl_v3.VSBStatistic (*ACNStatistic)(nil), // 56: protoFiles_zjhl_v3.ACNStatistic (*WLVStatistic)(nil), // 57: protoFiles_zjhl_v3.WLVStatistic (*BTFStatistic)(nil), // 58: protoFiles_zjhl_v3.BTFStatistic (*CSPStatistic)(nil), // 59: protoFiles_zjhl_v3.CSPStatistic (*PLDStatistic)(nil), // 60: protoFiles_zjhl_v3.PLDStatistic (*WDPStatistic)(nil), // 61: protoFiles_zjhl_v3.WDPStatistic (*STFStatistic)(nil), // 62: protoFiles_zjhl_v3.STFStatistic (*SCOStatistic)(nil), // 63: protoFiles_zjhl_v3.SCOStatistic (*CORStatistic)(nil), // 64: protoFiles_zjhl_v3.CORStatistic (*STRStatistic)(nil), // 65: protoFiles_zjhl_v3.STRStatistic } var file_MonitorDataProtocol_Ministry_v3_0_proto_depIdxs = []int32{ 3, // 0: protoFiles_zjhl_v3.ComplexData.sensorData:type_name -> protoFiles_zjhl_v3.DataDefinition 0, // 1: protoFiles_zjhl_v3.DataDefinition.dataType:type_name -> protoFiles_zjhl_v3.DataType 4, // 2: protoFiles_zjhl_v3.DataDefinition.realTimeData:type_name -> protoFiles_zjhl_v3.RealTimeData 36, // 3: protoFiles_zjhl_v3.DataDefinition.statisticData:type_name -> protoFiles_zjhl_v3.StatisticData 1, // 4: protoFiles_zjhl_v3.RealTimeData.monitorType:type_name -> protoFiles_zjhl_v3.MonitoryType 5, // 5: protoFiles_zjhl_v3.RealTimeData.uan:type_name -> protoFiles_zjhl_v3.UANRealTime 6, // 6: protoFiles_zjhl_v3.RealTimeData.rhs:type_name -> protoFiles_zjhl_v3.RHSRealTime 7, // 7: protoFiles_zjhl_v3.RealTimeData.tmp:type_name -> protoFiles_zjhl_v3.TMPRealTime 8, // 8: protoFiles_zjhl_v3.RealTimeData.gnss:type_name -> protoFiles_zjhl_v3.GNSSRealTime 9, // 9: protoFiles_zjhl_v3.RealTimeData.vic:type_name -> protoFiles_zjhl_v3.VICRealTime 10, // 10: protoFiles_zjhl_v3.RealTimeData.dis:type_name -> protoFiles_zjhl_v3.DISRealTime 12, // 11: protoFiles_zjhl_v3.RealTimeData.hpt:type_name -> protoFiles_zjhl_v3.HPTRealTime 13, // 12: protoFiles_zjhl_v3.RealTimeData.rsg:type_name -> protoFiles_zjhl_v3.RSGRealTime 14, // 13: protoFiles_zjhl_v3.RealTimeData.inc:type_name -> protoFiles_zjhl_v3.INCRealTime 16, // 14: protoFiles_zjhl_v3.RealTimeData.vie:type_name -> protoFiles_zjhl_v3.VIERealTime 17, // 15: protoFiles_zjhl_v3.RealTimeData.tmd:type_name -> protoFiles_zjhl_v3.TMDRealTime 15, // 16: protoFiles_zjhl_v3.RealTimeData.vib:type_name -> protoFiles_zjhl_v3.VIBRealTime 18, // 17: protoFiles_zjhl_v3.RealTimeData.hsd:type_name -> protoFiles_zjhl_v3.HSDRealTime 19, // 18: protoFiles_zjhl_v3.RealTimeData.pws:type_name -> protoFiles_zjhl_v3.PWSRealTime 20, // 19: protoFiles_zjhl_v3.RealTimeData.frz:type_name -> protoFiles_zjhl_v3.FRZRealTime 21, // 20: protoFiles_zjhl_v3.RealTimeData.lmz:type_name -> protoFiles_zjhl_v3.LMZRealTime 22, // 21: protoFiles_zjhl_v3.RealTimeData.stf:type_name -> protoFiles_zjhl_v3.STFRealTime 23, // 22: protoFiles_zjhl_v3.RealTimeData.sco:type_name -> protoFiles_zjhl_v3.SCORealTime 11, // 23: protoFiles_zjhl_v3.RealTimeData.crk:type_name -> protoFiles_zjhl_v3.CRKRealTime 24, // 24: protoFiles_zjhl_v3.RealTimeData.cor:type_name -> protoFiles_zjhl_v3.CORRealTime 25, // 25: protoFiles_zjhl_v3.RealTimeData.str:type_name -> protoFiles_zjhl_v3.STRRealTime 26, // 26: protoFiles_zjhl_v3.RealTimeData.brk:type_name -> protoFiles_zjhl_v3.BRKRealTime 27, // 27: protoFiles_zjhl_v3.RealTimeData.btf:type_name -> protoFiles_zjhl_v3.BTFRealTime 28, // 28: protoFiles_zjhl_v3.RealTimeData.csp:type_name -> protoFiles_zjhl_v3.CSPRealTime 29, // 29: protoFiles_zjhl_v3.RealTimeData.vsb:type_name -> protoFiles_zjhl_v3.VSBRealTime 30, // 30: protoFiles_zjhl_v3.RealTimeData.acn:type_name -> protoFiles_zjhl_v3.ACNRealTime 31, // 31: protoFiles_zjhl_v3.RealTimeData.wlv:type_name -> protoFiles_zjhl_v3.WLVRealTime 32, // 32: protoFiles_zjhl_v3.RealTimeData.pld:type_name -> protoFiles_zjhl_v3.PLDRealTime 33, // 33: protoFiles_zjhl_v3.RealTimeData.wdp:type_name -> protoFiles_zjhl_v3.WDPRealTime 34, // 34: protoFiles_zjhl_v3.RealTimeData.and:type_name -> protoFiles_zjhl_v3.ANDRealTime 35, // 35: protoFiles_zjhl_v3.RealTimeData.vid:type_name -> protoFiles_zjhl_v3.VIDRealTime 1, // 36: protoFiles_zjhl_v3.StatisticData.monitorType:type_name -> protoFiles_zjhl_v3.MonitoryType 37, // 37: protoFiles_zjhl_v3.StatisticData.uan:type_name -> protoFiles_zjhl_v3.UANStatistic 38, // 38: protoFiles_zjhl_v3.StatisticData.rhs:type_name -> protoFiles_zjhl_v3.RHSStatistic 39, // 39: protoFiles_zjhl_v3.StatisticData.tmp:type_name -> protoFiles_zjhl_v3.TMPStatistic 40, // 40: protoFiles_zjhl_v3.StatisticData.gnss:type_name -> protoFiles_zjhl_v3.GNSSStatistic 46, // 41: protoFiles_zjhl_v3.StatisticData.vic:type_name -> protoFiles_zjhl_v3.VICStatistic 42, // 42: protoFiles_zjhl_v3.StatisticData.dis:type_name -> protoFiles_zjhl_v3.DISStatistic 43, // 43: protoFiles_zjhl_v3.StatisticData.hpt:type_name -> protoFiles_zjhl_v3.HPTStatistic 45, // 44: protoFiles_zjhl_v3.StatisticData.rsg:type_name -> protoFiles_zjhl_v3.RSGStatistic 44, // 45: protoFiles_zjhl_v3.StatisticData.inc:type_name -> protoFiles_zjhl_v3.INCStatistic 48, // 46: protoFiles_zjhl_v3.StatisticData.vie:type_name -> protoFiles_zjhl_v3.VIEStatistic 50, // 47: protoFiles_zjhl_v3.StatisticData.tmd:type_name -> protoFiles_zjhl_v3.TMDStatistic 47, // 48: protoFiles_zjhl_v3.StatisticData.vib:type_name -> protoFiles_zjhl_v3.VIBStatistic 51, // 49: protoFiles_zjhl_v3.StatisticData.hsd:type_name -> protoFiles_zjhl_v3.HSDStatistic 41, // 50: protoFiles_zjhl_v3.StatisticData.and:type_name -> protoFiles_zjhl_v3.ANDStatistic 52, // 51: protoFiles_zjhl_v3.StatisticData.crk:type_name -> protoFiles_zjhl_v3.CRKStatistic 53, // 52: protoFiles_zjhl_v3.StatisticData.frz:type_name -> protoFiles_zjhl_v3.FRZStatistic 54, // 53: protoFiles_zjhl_v3.StatisticData.pws:type_name -> protoFiles_zjhl_v3.PWSStatistic 55, // 54: protoFiles_zjhl_v3.StatisticData.vsb:type_name -> protoFiles_zjhl_v3.VSBStatistic 56, // 55: protoFiles_zjhl_v3.StatisticData.acn:type_name -> protoFiles_zjhl_v3.ACNStatistic 57, // 56: protoFiles_zjhl_v3.StatisticData.wlv:type_name -> protoFiles_zjhl_v3.WLVStatistic 58, // 57: protoFiles_zjhl_v3.StatisticData.btf:type_name -> protoFiles_zjhl_v3.BTFStatistic 59, // 58: protoFiles_zjhl_v3.StatisticData.csp:type_name -> protoFiles_zjhl_v3.CSPStatistic 60, // 59: protoFiles_zjhl_v3.StatisticData.pld:type_name -> protoFiles_zjhl_v3.PLDStatistic 49, // 60: protoFiles_zjhl_v3.StatisticData.vid:type_name -> protoFiles_zjhl_v3.VIDStatistic 61, // 61: protoFiles_zjhl_v3.StatisticData.wdp:type_name -> protoFiles_zjhl_v3.WDPStatistic 62, // 62: protoFiles_zjhl_v3.StatisticData.stf:type_name -> protoFiles_zjhl_v3.STFStatistic 63, // 63: protoFiles_zjhl_v3.StatisticData.sco:type_name -> protoFiles_zjhl_v3.SCOStatistic 64, // 64: protoFiles_zjhl_v3.StatisticData.cor:type_name -> protoFiles_zjhl_v3.CORStatistic 65, // 65: protoFiles_zjhl_v3.StatisticData.str:type_name -> protoFiles_zjhl_v3.STRStatistic 66, // [66:66] is the sub-list for method output_type 66, // [66:66] is the sub-list for method input_type 66, // [66:66] is the sub-list for extension type_name 66, // [66:66] is the sub-list for extension extendee 0, // [0:66] is the sub-list for field type_name } func init() { file_MonitorDataProtocol_Ministry_v3_0_proto_init() } func file_MonitorDataProtocol_Ministry_v3_0_proto_init() { if File_MonitorDataProtocol_Ministry_v3_0_proto != nil { return } if !protoimpl.UnsafeEnabled { file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ComplexData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataDefinition); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RealTimeData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UANRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RHSRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TMPRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GNSSRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VICRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DISRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CRKRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HPTRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RSGRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*INCRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIBRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIERealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TMDRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HSDRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PWSRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FRZRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LMZRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*STFRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCORealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CORRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*STRRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BRKRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BTFRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VSBRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ACNRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WLVRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PLDRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WDPRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ANDRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIDRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatisticData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UANStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RHSStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TMPStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GNSSStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ANDStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DISStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HPTStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*INCStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RSGStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VICStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIBStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIEStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIDStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TMDStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HSDStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CRKStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FRZStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PWSStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VSBStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ACNStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WLVStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BTFStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PLDStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WDPStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*STFStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCOStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CORStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*STRStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[1].OneofWrappers = []interface{}{ (*DataDefinition_RealTimeData)(nil), (*DataDefinition_StatisticData)(nil), } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[2].OneofWrappers = []interface{}{ (*RealTimeData_Uan)(nil), (*RealTimeData_Rhs)(nil), (*RealTimeData_Tmp)(nil), (*RealTimeData_Gnss)(nil), (*RealTimeData_Vic)(nil), (*RealTimeData_Dis)(nil), (*RealTimeData_Hpt)(nil), (*RealTimeData_Rsg)(nil), (*RealTimeData_Inc)(nil), (*RealTimeData_Vie)(nil), (*RealTimeData_Tmd)(nil), (*RealTimeData_Vib)(nil), (*RealTimeData_Hsd)(nil), (*RealTimeData_Pws)(nil), (*RealTimeData_Frz)(nil), (*RealTimeData_Lmz)(nil), (*RealTimeData_Stf)(nil), (*RealTimeData_Sco)(nil), (*RealTimeData_Crk)(nil), (*RealTimeData_Cor)(nil), (*RealTimeData_Str)(nil), (*RealTimeData_Brk)(nil), (*RealTimeData_Btf)(nil), (*RealTimeData_Csp)(nil), (*RealTimeData_Vsb)(nil), (*RealTimeData_Acn)(nil), (*RealTimeData_Wlv)(nil), (*RealTimeData_Pld)(nil), (*RealTimeData_Wdp)(nil), (*RealTimeData_And)(nil), (*RealTimeData_Vid)(nil), } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[3].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[7].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[8].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[9].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[10].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[11].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[16].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[23].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[25].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[26].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[34].OneofWrappers = []interface{}{ (*StatisticData_Uan)(nil), (*StatisticData_Rhs)(nil), (*StatisticData_Tmp)(nil), (*StatisticData_Gnss)(nil), (*StatisticData_Vic)(nil), (*StatisticData_Dis)(nil), (*StatisticData_Hpt)(nil), (*StatisticData_Rsg)(nil), (*StatisticData_Inc)(nil), (*StatisticData_Vie)(nil), (*StatisticData_Tmd)(nil), (*StatisticData_Vib)(nil), (*StatisticData_Hsd)(nil), (*StatisticData_And)(nil), (*StatisticData_Crk)(nil), (*StatisticData_Frz)(nil), (*StatisticData_Pws)(nil), (*StatisticData_Vsb)(nil), (*StatisticData_Acn)(nil), (*StatisticData_Wlv)(nil), (*StatisticData_Btf)(nil), (*StatisticData_Csp)(nil), (*StatisticData_Pld)(nil), (*StatisticData_Vid)(nil), (*StatisticData_Wdp)(nil), (*StatisticData_Stf)(nil), (*StatisticData_Sco)(nil), (*StatisticData_Cor)(nil), (*StatisticData_Str)(nil), } file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[35].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes[43].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_MonitorDataProtocol_Ministry_v3_0_proto_rawDesc, NumEnums: 2, NumMessages: 64, NumExtensions: 0, NumServices: 0, }, GoTypes: file_MonitorDataProtocol_Ministry_v3_0_proto_goTypes, DependencyIndexes: file_MonitorDataProtocol_Ministry_v3_0_proto_depIdxs, EnumInfos: file_MonitorDataProtocol_Ministry_v3_0_proto_enumTypes, MessageInfos: file_MonitorDataProtocol_Ministry_v3_0_proto_msgTypes, }.Build() File_MonitorDataProtocol_Ministry_v3_0_proto = out.File file_MonitorDataProtocol_Ministry_v3_0_proto_rawDesc = nil file_MonitorDataProtocol_Ministry_v3_0_proto_goTypes = nil file_MonitorDataProtocol_Ministry_v3_0_proto_depIdxs = nil }