liuxiaolong
2020-03-04 2637c4209590f557a295b0309d055704437e3fdd
add sensor
2个文件已修改
1072 ■■■■ 已修改文件
protomsg.pb.go 1056 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
protomsg.proto 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
protomsg.pb.go
@@ -252,6 +252,9 @@
    RunEnable   bool    `protobuf:"varint,18,opt,name=run_enable,json=runEnable,proto3" json:"run_enable,omitempty"`
    RunType     int32   `protobuf:"varint,19,opt,name=run_type,json=runType,proto3" json:"run_type,omitempty"`
    RunServerId string  `protobuf:"bytes,20,opt,name=run_server_id,json=runServerId,proto3" json:"run_server_id,omitempty"`
    ResolutionWidth  int32     `protobuf:"varint,21,opt,name=resolution_width,json=resolutionWidth,proto3" json:"resolution_width,omitempty"`
    ResolutionHeight int32     `protobuf:"varint,22,opt,name=resolution_height,json=resolutionHeight,proto3" json:"resolution_height,omitempty"`
    Sensors          []*Sensor `protobuf:"bytes,23,rep,name=sensors,proto3" json:"sensors,omitempty"`
}
func (m *Camera) Reset()         { *m = Camera{} }
@@ -427,6 +430,135 @@
    return ""
}
func (m *Camera) GetResolutionWidth() int32 {
    if m != nil {
        return m.ResolutionWidth
    }
    return 0
}
func (m *Camera) GetResolutionHeight() int32 {
    if m != nil {
        return m.ResolutionHeight
    }
    return 0
}
func (m *Camera) GetSensors() []*Sensor {
    if m != nil {
        return m.Sensors
    }
    return nil
}
type Sensor struct {
    Id        string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
    Type      int32  `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"`
    Ip        string `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"`
    Port      int32  `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"`
    Username  string `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"`
    Password  string `protobuf:"bytes,6,opt,name=password,proto3" json:"password,omitempty"`
    Threshold int32  `protobuf:"varint,7,opt,name=threshold,proto3" json:"threshold,omitempty"`
    Enable    bool   `protobuf:"varint,8,opt,name=enable,proto3" json:"enable,omitempty"`
    DevId     string `protobuf:"bytes,9,opt,name=devId,proto3" json:"devId,omitempty"`
}
func (m *Sensor) Reset()         { *m = Sensor{} }
func (m *Sensor) String() string { return proto.CompactTextString(m) }
func (*Sensor) ProtoMessage()    {}
func (*Sensor) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{2}
}
func (m *Sensor) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
}
func (m *Sensor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    if deterministic {
        return xxx_messageInfo_Sensor.Marshal(b, m, deterministic)
    } else {
        b = b[:cap(b)]
        n, err := m.MarshalTo(b)
        if err != nil {
            return nil, err
        }
        return b[:n], nil
    }
}
func (m *Sensor) XXX_Merge(src proto.Message) {
    xxx_messageInfo_Sensor.Merge(m, src)
}
func (m *Sensor) XXX_Size() int {
    return m.Size()
}
func (m *Sensor) XXX_DiscardUnknown() {
    xxx_messageInfo_Sensor.DiscardUnknown(m)
}
var xxx_messageInfo_Sensor proto.InternalMessageInfo
func (m *Sensor) GetId() string {
    if m != nil {
        return m.Id
    }
    return ""
}
func (m *Sensor) GetType() int32 {
    if m != nil {
        return m.Type
    }
    return 0
}
func (m *Sensor) GetIp() string {
    if m != nil {
        return m.Ip
    }
    return ""
}
func (m *Sensor) GetPort() int32 {
    if m != nil {
        return m.Port
    }
    return 0
}
func (m *Sensor) GetUsername() string {
    if m != nil {
        return m.Username
    }
    return ""
}
func (m *Sensor) GetPassword() string {
    if m != nil {
        return m.Password
    }
    return ""
}
func (m *Sensor) GetThreshold() int32 {
    if m != nil {
        return m.Threshold
    }
    return 0
}
func (m *Sensor) GetEnable() bool {
    if m != nil {
        return m.Enable
    }
    return false
}
func (m *Sensor) GetDevId() string {
    if m != nil {
        return m.DevId
    }
    return ""
}
//摄像机联动
type CameraLink struct {
    CameraIds  string `protobuf:"bytes,1,opt,name=camera_ids,json=cameraIds,proto3" json:"camera_ids,omitempty"`
@@ -437,7 +569,7 @@
func (m *CameraLink) String() string { return proto.CompactTextString(m) }
func (*CameraLink) ProtoMessage()    {}
func (*CameraLink) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{2}
    return fileDescriptor_32de24555f916688, []int{3}
}
func (m *CameraLink) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -490,7 +622,7 @@
func (m *CameraAndTaskInfo) String() string { return proto.CompactTextString(m) }
func (*CameraAndTaskInfo) ProtoMessage()    {}
func (*CameraAndTaskInfo) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{3}
    return fileDescriptor_32de24555f916688, []int{4}
}
func (m *CameraAndTaskInfo) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -549,7 +681,7 @@
func (m *Task) String() string { return proto.CompactTextString(m) }
func (*Task) ProtoMessage()    {}
func (*Task) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{4}
    return fileDescriptor_32de24555f916688, []int{5}
}
func (m *Task) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -643,7 +775,7 @@
func (m *TaskSdkInfo) String() string { return proto.CompactTextString(m) }
func (*TaskSdkInfo) ProtoMessage()    {}
func (*TaskSdkInfo) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{5}
    return fileDescriptor_32de24555f916688, []int{6}
}
func (m *TaskSdkInfo) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -695,7 +827,7 @@
func (m *SdkRun) String() string { return proto.CompactTextString(m) }
func (*SdkRun) ProtoMessage()    {}
func (*SdkRun) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{6}
    return fileDescriptor_32de24555f916688, []int{7}
}
func (m *SdkRun) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -747,7 +879,7 @@
func (m *TaskSdkRun) String() string { return proto.CompactTextString(m) }
func (*TaskSdkRun) ProtoMessage()    {}
func (*TaskSdkRun) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{7}
    return fileDescriptor_32de24555f916688, []int{8}
}
func (m *TaskSdkRun) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -810,7 +942,7 @@
func (m *CameraTask) String() string { return proto.CompactTextString(m) }
func (*CameraTask) ProtoMessage()    {}
func (*CameraTask) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{8}
    return fileDescriptor_32de24555f916688, []int{9}
}
func (m *CameraTask) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -934,7 +1066,7 @@
func (m *CameraTimerule) String() string { return proto.CompactTextString(m) }
func (*CameraTimerule) ProtoMessage()    {}
func (*CameraTimerule) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{9}
    return fileDescriptor_32de24555f916688, []int{10}
}
func (m *CameraTimerule) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -994,7 +1126,7 @@
func (m *DayCtl) String() string { return proto.CompactTextString(m) }
func (*DayCtl) ProtoMessage()    {}
func (*DayCtl) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{10}
    return fileDescriptor_32de24555f916688, []int{11}
}
func (m *DayCtl) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1047,7 +1179,7 @@
func (m *TimeRange) String() string { return proto.CompactTextString(m) }
func (*TimeRange) ProtoMessage()    {}
func (*TimeRange) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{11}
    return fileDescriptor_32de24555f916688, []int{12}
}
func (m *TimeRange) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1101,7 +1233,7 @@
func (m *Polygon) String() string { return proto.CompactTextString(m) }
func (*Polygon) ProtoMessage()    {}
func (*Polygon) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{12}
    return fileDescriptor_32de24555f916688, []int{13}
}
func (m *Polygon) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1160,7 +1292,7 @@
func (m *CameraTaskArgs) String() string { return proto.CompactTextString(m) }
func (*CameraTaskArgs) ProtoMessage()    {}
func (*CameraTaskArgs) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{13}
    return fileDescriptor_32de24555f916688, []int{14}
}
func (m *CameraTaskArgs) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1213,7 +1345,7 @@
func (m *TaskGroupArgs) String() string { return proto.CompactTextString(m) }
func (*TaskGroupArgs) ProtoMessage()    {}
func (*TaskGroupArgs) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{14}
    return fileDescriptor_32de24555f916688, []int{15}
}
func (m *TaskGroupArgs) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1276,7 +1408,7 @@
func (m *GroupRule) String() string { return proto.CompactTextString(m) }
func (*GroupRule) ProtoMessage()    {}
func (*GroupRule) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{15}
    return fileDescriptor_32de24555f916688, []int{16}
}
func (m *GroupRule) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1366,7 +1498,7 @@
func (m *Rule) String() string { return proto.CompactTextString(m) }
func (*Rule) ProtoMessage()    {}
func (*Rule) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{16}
    return fileDescriptor_32de24555f916688, []int{17}
}
func (m *Rule) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1499,7 +1631,7 @@
func (m *Sdk) String() string { return proto.CompactTextString(m) }
func (*Sdk) ProtoMessage()    {}
func (*Sdk) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{17}
    return fileDescriptor_32de24555f916688, []int{18}
}
func (m *Sdk) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1622,7 +1754,7 @@
func (m *TaskSdkRule) String() string { return proto.CompactTextString(m) }
func (*TaskSdkRule) ProtoMessage()    {}
func (*TaskSdkRule) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{18}
    return fileDescriptor_32de24555f916688, []int{19}
}
func (m *TaskSdkRule) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1683,7 +1815,7 @@
func (m *SdkRuleSet) String() string { return proto.CompactTextString(m) }
func (*SdkRuleSet) ProtoMessage()    {}
func (*SdkRuleSet) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{19}
    return fileDescriptor_32de24555f916688, []int{20}
}
func (m *SdkRuleSet) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1751,7 +1883,7 @@
func (m *SdkRule) String() string { return proto.CompactTextString(m) }
func (*SdkRule) ProtoMessage()    {}
func (*SdkRule) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{20}
    return fileDescriptor_32de24555f916688, []int{21}
}
func (m *SdkRule) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1825,7 +1957,7 @@
func (m *SdkArg) String() string { return proto.CompactTextString(m) }
func (*SdkArg) ProtoMessage()    {}
func (*SdkArg) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{21}
    return fileDescriptor_32de24555f916688, []int{22}
}
func (m *SdkArg) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1926,7 +2058,7 @@
func (m *SdkChanSet) String() string { return proto.CompactTextString(m) }
func (*SdkChanSet) ProtoMessage()    {}
func (*SdkChanSet) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{22}
    return fileDescriptor_32de24555f916688, []int{23}
}
func (m *SdkChanSet) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1981,7 +2113,7 @@
func (m *DbChangeMessage) String() string { return proto.CompactTextString(m) }
func (*DbChangeMessage) ProtoMessage()    {}
func (*DbChangeMessage) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{23}
    return fileDescriptor_32de24555f916688, []int{24}
}
func (m *DbChangeMessage) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -2053,7 +2185,7 @@
func (m *CameraPolygon) String() string { return proto.CompactTextString(m) }
func (*CameraPolygon) ProtoMessage()    {}
func (*CameraPolygon) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{24}
    return fileDescriptor_32de24555f916688, []int{25}
}
func (m *CameraPolygon) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -2152,7 +2284,7 @@
func (m *VideotapeInfo) String() string { return proto.CompactTextString(m) }
func (*VideotapeInfo) ProtoMessage()    {}
func (*VideotapeInfo) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{25}
    return fileDescriptor_32de24555f916688, []int{26}
}
func (m *VideotapeInfo) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -2249,7 +2381,7 @@
func (m *CompareArgs) String() string { return proto.CompactTextString(m) }
func (*CompareArgs) ProtoMessage()    {}
func (*CompareArgs) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{26}
    return fileDescriptor_32de24555f916688, []int{27}
}
func (m *CompareArgs) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -2371,7 +2503,7 @@
func (m *CompareEvent) String() string { return proto.CompactTextString(m) }
func (*CompareEvent) ProtoMessage()    {}
func (*CompareEvent) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{27}
    return fileDescriptor_32de24555f916688, []int{28}
}
func (m *CompareEvent) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -2424,7 +2556,7 @@
func (m *SdkCompareEach) String() string { return proto.CompactTextString(m) }
func (*SdkCompareEach) ProtoMessage()    {}
func (*SdkCompareEach) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{28}
    return fileDescriptor_32de24555f916688, []int{29}
}
func (m *SdkCompareEach) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -2482,7 +2614,7 @@
func (m *SdkCompareResult) String() string { return proto.CompactTextString(m) }
func (*SdkCompareResult) ProtoMessage()    {}
func (*SdkCompareResult) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{29}
    return fileDescriptor_32de24555f916688, []int{30}
}
func (m *SdkCompareResult) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -2537,7 +2669,7 @@
func (m *EventPush) String() string { return proto.CompactTextString(m) }
func (*EventPush) ProtoMessage()    {}
func (*EventPush) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{30}
    return fileDescriptor_32de24555f916688, []int{31}
}
func (m *EventPush) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -2664,7 +2796,7 @@
func (m *EventPushRule) String() string { return proto.CompactTextString(m) }
func (*EventPushRule) ProtoMessage()    {}
func (*EventPushRule) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{31}
    return fileDescriptor_32de24555f916688, []int{32}
}
func (m *EventPushRule) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -2752,7 +2884,7 @@
func (m *PushIpPort) String() string { return proto.CompactTextString(m) }
func (*PushIpPort) ProtoMessage()    {}
func (*PushIpPort) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{32}
    return fileDescriptor_32de24555f916688, []int{33}
}
func (m *PushIpPort) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -2811,7 +2943,7 @@
func (m *PushUrl) String() string { return proto.CompactTextString(m) }
func (*PushUrl) ProtoMessage()    {}
func (*PushUrl) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{33}
    return fileDescriptor_32de24555f916688, []int{34}
}
func (m *PushUrl) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -2867,7 +2999,7 @@
func (m *PushAttach) String() string { return proto.CompactTextString(m) }
func (*PushAttach) ProtoMessage()    {}
func (*PushAttach) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{34}
    return fileDescriptor_32de24555f916688, []int{35}
}
func (m *PushAttach) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -2951,7 +3083,7 @@
func (m *EsPersonCacheChange) String() string { return proto.CompactTextString(m) }
func (*EsPersonCacheChange) ProtoMessage()    {}
func (*EsPersonCacheChange) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{35}
    return fileDescriptor_32de24555f916688, []int{36}
}
func (m *EsPersonCacheChange) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -3029,6 +3161,7 @@
    proto.RegisterEnum("protomsg.EsCacheChanged", EsCacheChanged_name, EsCacheChanged_value)
    proto.RegisterType((*Area)(nil), "protomsg.Area")
    proto.RegisterType((*Camera)(nil), "protomsg.Camera")
    proto.RegisterType((*Sensor)(nil), "protomsg.Sensor")
    proto.RegisterType((*CameraLink)(nil), "protomsg.CameraLink")
    proto.RegisterType((*CameraAndTaskInfo)(nil), "protomsg.CameraAndTaskInfo")
    proto.RegisterType((*Task)(nil), "protomsg.Task")
@@ -3068,172 +3201,179 @@
func init() { proto.RegisterFile("protomsg.proto", fileDescriptor_32de24555f916688) }
var fileDescriptor_32de24555f916688 = []byte{
    // 2625 bytes of a gzipped FileDescriptorProto
    0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x58, 0xcd, 0x8f, 0x1c, 0x47,
    0x15, 0xdf, 0x9e, 0xef, 0x7e, 0xf3, 0xe1, 0x76, 0xdb, 0x24, 0x63, 0x27, 0xd9, 0x6c, 0x1a, 0x47,
    0x31, 0x56, 0x08, 0x68, 0x93, 0x03, 0xe2, 0x80, 0xb4, 0xf1, 0xda, 0x68, 0xa4, 0xc4, 0x2c, 0xbd,
    0x6b, 0x73, 0xa3, 0x55, 0xdb, 0x5d, 0x3b, 0xdb, 0xda, 0xda, 0xee, 0x56, 0x55, 0xf7, 0x26, 0x7b,
    0xe0, 0xc6, 0x85, 0x13, 0xfc, 0x43, 0x08, 0x8e, 0x1c, 0x38, 0xe4, 0xc0, 0x01, 0x4e, 0x41, 0xf1,
    0x05, 0x09, 0xf1, 0x1f, 0x80, 0x84, 0xde, 0xab, 0xaa, 0xfe, 0x98, 0x59, 0x27, 0x3e, 0x4d, 0xbd,
    0xdf, 0xab, 0xae, 0x7a, 0xf5, 0xbe, 0xdf, 0xc0, 0xa2, 0x90, 0x79, 0x99, 0x5f, 0xaa, 0xf5, 0x47,
    0xb4, 0xf0, 0x27, 0x96, 0xbe, 0x0f, 0xa7, 0x4c, 0x71, 0x8d, 0x06, 0x4f, 0x61, 0x70, 0x20, 0x39,
    0xf3, 0x17, 0xd0, 0x4b, 0x93, 0xa5, 0xb3, 0xe7, 0x3c, 0x1c, 0x86, 0xbd, 0x34, 0xf1, 0xef, 0xc3,
    0xa4, 0x60, 0x92, 0x67, 0x65, 0x9a, 0x2c, 0x7b, 0x84, 0xd6, 0xb4, 0xef, 0xc3, 0x20, 0x63, 0x97,
    0x7c, 0xd9, 0xdf, 0x73, 0x1e, 0xba, 0x21, 0xad, 0x83, 0xff, 0xf6, 0x61, 0xf4, 0x98, 0x5d, 0x72,
    0xd9, 0x3e, 0xca, 0xa5, 0xa3, 0xec, 0xf6, 0x5e, 0xb3, 0xdd, 0xbf, 0x0b, 0x43, 0x26, 0x52, 0xa6,
    0xcc, 0x19, 0x9a, 0xf0, 0xdf, 0x83, 0x99, 0xca, 0x58, 0xa1, 0xce, 0xf3, 0x32, 0xaa, 0xa4, 0x58,
    0x0e, 0x88, 0x39, 0xb5, 0xd8, 0x73, 0x29, 0xf0, 0xb0, 0xf2, 0xba, 0xe0, 0xcb, 0x21, 0xc9, 0x44,
    0x6b, 0xc4, 0x58, 0x92, 0xc8, 0xe5, 0x48, 0x5f, 0x80, 0x6b, 0xff, 0x6d, 0x70, 0x45, 0x9e, 0xad,
    0xd3, 0xb2, 0x4a, 0xf8, 0x72, 0xbc, 0xe7, 0x3c, 0xec, 0x85, 0x0d, 0x80, 0xaf, 0x13, 0xac, 0xd4,
    0xcc, 0x09, 0x31, 0x6b, 0x1a, 0x45, 0x3b, 0x13, 0x79, 0x2e, 0x97, 0x2e, 0x5d, 0xa1, 0x09, 0xbc,
    0x43, 0x96, 0xaa, 0x58, 0x82, 0xbe, 0x03, 0xd7, 0xf4, 0xd0, 0x62, 0x39, 0x35, 0x0f, 0x2d, 0x70,
    0x4f, 0x91, 0xcb, 0x72, 0x39, 0xd3, 0xb2, 0xe1, 0x1a, 0x6f, 0xaa, 0x14, 0x97, 0xa4, 0x80, 0x39,
    0xed, 0xac, 0x69, 0xad, 0x63, 0xa5, 0xbe, 0xc8, 0x65, 0xb2, 0x5c, 0x68, 0x9e, 0xa5, 0x51, 0x8a,
    0x53, 0xc9, 0xb2, 0x64, 0x79, 0x4b, 0x2b, 0x88, 0x08, 0xfc, 0x42, 0x72, 0xc5, 0xe5, 0x15, 0x4f,
    0x96, 0x9e, 0xfe, 0xc2, 0xd2, 0xfe, 0x3b, 0x00, 0xa9, 0x8a, 0x64, 0x95, 0x65, 0x69, 0xb6, 0x5e,
    0xde, 0xde, 0x73, 0x1e, 0x4e, 0x42, 0x37, 0x55, 0xa1, 0x06, 0x90, 0x2d, 0xab, 0x2c, 0xe2, 0x19,
    0x3b, 0x15, 0x7c, 0xe9, 0x6b, 0xb6, 0xac, 0xb2, 0x27, 0x04, 0xf8, 0xf7, 0x60, 0x82, 0x6c, 0xd2,
    0xed, 0x1d, 0x92, 0x7f, 0x2c, 0xab, 0xec, 0x04, 0xd5, 0x1b, 0xc0, 0x1c, 0x59, 0x74, 0x8d, 0x8c,
    0xd2, 0x64, 0x79, 0x57, 0x9b, 0x45, 0x56, 0xd9, 0x31, 0x61, 0xab, 0x24, 0xf8, 0x1c, 0x40, 0x5b,
    0xff, 0xb3, 0x34, 0xbb, 0xc0, 0xbb, 0x62, 0xa2, 0xa2, 0x34, 0x51, 0xc6, 0x13, 0x5c, 0x8d, 0xac,
    0x12, 0xe5, 0xef, 0xc1, 0x4c, 0xa4, 0xd9, 0x45, 0x54, 0x32, 0x75, 0x11, 0x19, 0xff, 0x72, 0x43,
    0x40, 0xec, 0x84, 0xa9, 0x8b, 0x55, 0x12, 0xc4, 0x70, 0x5b, 0x1f, 0x77, 0x90, 0x25, 0x04, 0x65,
    0x67, 0xb9, 0xff, 0x10, 0x46, 0xfa, 0x0c, 0x3a, 0x71, 0xba, 0xef, 0x7d, 0x54, 0x7b, 0xb8, 0xde,
    0x1c, 0x1a, 0xbe, 0xff, 0x00, 0x86, 0x78, 0xb6, 0x5a, 0xf6, 0xf6, 0xfa, 0x0f, 0xa7, 0xfb, 0x8b,
    0x66, 0x23, 0x1e, 0x16, 0x6a, 0x66, 0xf0, 0xb5, 0x03, 0x03, 0xa4, 0xfd, 0x37, 0x60, 0x84, 0x48,
    0xed, 0xb4, 0x86, 0x42, 0x6d, 0xe3, 0xaa, 0xe5, 0xbc, 0x35, 0xed, 0xbf, 0x05, 0x6e, 0x2c, 0x39,
    0x2b, 0x79, 0xc4, 0x4a, 0xe3, 0xc4, 0x13, 0x0d, 0x1c, 0x94, 0x2d, 0xe6, 0xe9, 0xb5, 0x71, 0x62,
    0xc3, 0xfc, 0xf4, 0x1a, 0x99, 0x55, 0x91, 0x98, 0x2f, 0x87, 0xc6, 0x25, 0x08, 0x38, 0x28, 0x51,
    0x14, 0x63, 0xa1, 0x11, 0x59, 0xc8, 0x50, 0x68, 0x9e, 0x54, 0x45, 0x4c, 0x30, 0x79, 0x49, 0xde,
    0x3c, 0x09, 0xc7, 0xa9, 0x3a, 0x40, 0x12, 0x59, 0x09, 0x17, 0xd1, 0x99, 0x60, 0x6b, 0xf2, 0xe5,
    0x49, 0x38, 0x4e, 0xb8, 0x78, 0x2a, 0xd8, 0x3a, 0x38, 0x81, 0x29, 0x3e, 0xf0, 0x38, 0xd1, 0x0a,
    0x0c, 0x60, 0x80, 0xf2, 0x1b, 0xf5, 0x6d, 0x6a, 0x85, 0x78, 0xfe, 0x7b, 0x30, 0x50, 0x49, 0xad,
    0xb9, 0x79, 0xb3, 0xe7, 0x38, 0xb9, 0x08, 0x89, 0x15, 0xfc, 0x14, 0x46, 0x48, 0x54, 0x99, 0xff,
    0x3d, 0x18, 0xa5, 0x45, 0x1c, 0xd5, 0x8a, 0x1b, 0xa6, 0x45, 0xbc, 0x4a, 0x50, 0x22, 0x95, 0x5c,
    0x68, 0x5f, 0xd2, 0x7a, 0x1b, 0xab, 0xe4, 0x02, 0x7d, 0x29, 0x78, 0x01, 0x60, 0x24, 0xc2, 0xef,
    0x5f, 0x47, 0xa0, 0x07, 0x1d, 0x81, 0xbc, 0xae, 0x40, 0x55, 0x66, 0x64, 0xfa, 0x5b, 0xcf, 0x3a,
    0x20, 0x59, 0x74, 0x33, 0x05, 0xa1, 0x41, 0xac, 0x43, 0x5a, 0x53, 0x5a, 0x7f, 0xf4, 0xdf, 0x84,
    0xb1, 0xf5, 0xc4, 0x7e, 0x63, 0xff, 0x15, 0x7d, 0x55, 0xa6, 0x97, 0x3c, 0x92, 0x95, 0xe0, 0xd6,
    0x8c, 0x08, 0x84, 0x95, 0xe0, 0x14, 0x4f, 0x9c, 0xc5, 0xa5, 0xe6, 0x6a, 0x3b, 0xba, 0x84, 0x10,
    0xfb, 0x3d, 0x98, 0x69, 0x76, 0xc2, 0xaf, 0xd2, 0x98, 0x9b, 0xdc, 0x34, 0x25, 0xec, 0x90, 0xa0,
    0x8e, 0xe1, 0xc6, 0x1d, 0xc3, 0xf9, 0xef, 0xc2, 0xd4, 0xf8, 0x48, 0xcb, 0xac, 0xa0, 0x21, 0xda,
    0xd0, 0xf8, 0x89, 0xdb, 0xf1, 0x13, 0x1f, 0x06, 0x0a, 0x53, 0x10, 0xe8, 0x14, 0x84, 0x6b, 0x7c,
    0x5f, 0xaa, 0xa2, 0xb3, 0x4a, 0x08, 0xca, 0x55, 0x93, 0x70, 0x94, 0xaa, 0xa7, 0x95, 0x10, 0x5b,
    0x71, 0x38, 0xdb, 0x8a, 0xc3, 0x5f, 0xc2, 0xc2, 0x68, 0x35, 0xbd, 0xe4, 0xf8, 0xd0, 0xd7, 0x4a,
    0xee, 0x1d, 0xbd, 0xf5, 0xbb, 0x7a, 0x0b, 0x9e, 0xc1, 0xe8, 0x90, 0x5d, 0x3f, 0x2e, 0x85, 0xef,
    0x41, 0x3f, 0x61, 0xd7, 0xa6, 0xe6, 0xe0, 0xd2, 0xdf, 0x07, 0xd0, 0x1f, 0xb2, 0x6c, 0xcd, 0x8d,
    0xc5, 0xef, 0xb4, 0xbc, 0x02, 0xcf, 0x40, 0x56, 0x48, 0xe7, 0xd3, 0x32, 0xf8, 0x18, 0xdc, 0x1a,
    0xc7, 0xac, 0xa9, 0x4a, 0x26, 0x4b, 0xeb, 0x8f, 0x44, 0xe0, 0x45, 0x3c, 0xb3, 0x76, 0xc7, 0x65,
    0xf0, 0x02, 0xc6, 0x47, 0xb9, 0xb8, 0x5e, 0xe7, 0xd9, 0x6b, 0x3d, 0xe8, 0x03, 0x18, 0x15, 0x79,
    0x9a, 0x95, 0x58, 0xae, 0x50, 0xa6, 0x5b, 0x8d, 0x4c, 0x47, 0x88, 0x87, 0x86, 0x1d, 0xc4, 0xb5,
    0xbe, 0x98, 0xba, 0x38, 0x90, 0x6b, 0xd5, 0xf5, 0x3c, 0x67, 0xc3, 0xf3, 0x3e, 0x01, 0x97, 0x74,
    0xcf, 0xe4, 0xda, 0x3a, 0xf8, 0x9b, 0xdd, 0x20, 0xf8, 0xb9, 0xcc, 0xab, 0x02, 0x0f, 0xd2, 0xa9,
    0x07, 0x57, 0xc1, 0x15, 0xcc, 0x3b, 0xac, 0xb6, 0x03, 0x3b, 0x1d, 0x07, 0xfe, 0x04, 0xa6, 0x6b,
    0xdc, 0x45, 0x96, 0x50, 0xdb, 0x0a, 0xa5, 0x23, 0xd0, 0x2a, 0x21, 0xac, 0xed, 0x52, 0xb5, 0x7c,
    0xab, 0xdf, 0xf6, 0xad, 0xe0, 0xaf, 0x0e, 0xb8, 0xf5, 0x17, 0xe8, 0xbd, 0xfa, 0xec, 0xfa, 0xd6,
    0x31, 0xd1, 0x2b, 0xaa, 0x44, 0x9a, 0x55, 0xf2, 0x2f, 0x4b, 0xa3, 0x48, 0x97, 0x90, 0x13, 0xfe,
    0x65, 0x89, 0xce, 0x4d, 0x89, 0x2c, 0x12, 0xfc, 0x8a, 0x0b, 0xba, 0x64, 0x18, 0x02, 0x41, 0x9f,
    0x21, 0x82, 0xe9, 0x5b, 0x0b, 0x3c, 0xd8, 0x4c, 0xdf, 0x24, 0xab, 0x66, 0x52, 0x96, 0xe1, 0x65,
    0x54, 0x77, 0x03, 0x98, 0x65, 0x78, 0x49, 0x15, 0xeb, 0xfb, 0x30, 0x4f, 0xf8, 0x19, 0xcf, 0x62,
    0x1e, 0xa9, 0x92, 0x95, 0x36, 0x99, 0xce, 0x0c, 0x78, 0x8c, 0x58, 0xf0, 0xef, 0x1e, 0x0c, 0xc2,
    0x9b, 0x5c, 0xfa, 0x01, 0x2c, 0x8c, 0xc9, 0xba, 0x05, 0x6a, 0x16, 0xd7, 0xa6, 0x5d, 0x6d, 0xa4,
    0x94, 0xfe, 0x86, 0x61, 0xdf, 0x01, 0x28, 0xb4, 0x7f, 0x21, 0x57, 0xa7, 0x0e, 0xd7, 0x20, 0xab,
    0x04, 0xf3, 0x26, 0x26, 0xc8, 0x34, 0x31, 0x82, 0x0f, 0x55, 0x82, 0x47, 0x06, 0x30, 0x47, 0x98,
    0xc9, 0x75, 0xa4, 0x9b, 0x23, 0x93, 0x34, 0x54, 0x82, 0x86, 0x3f, 0xa0, 0x16, 0xe9, 0x3e, 0x4c,
    0xf2, 0x82, 0x4b, 0x56, 0xe6, 0x92, 0x92, 0x86, 0x1b, 0xd6, 0x34, 0x3e, 0xdb, 0xae, 0xb5, 0x5a,
    0x26, 0x5a, 0x6e, 0x0b, 0xda, 0x6a, 0x6e, 0x2f, 0xb9, 0x62, 0xa2, 0xd2, 0x09, 0xa4, 0xbe, 0xe4,
    0x05, 0x42, 0x37, 0x66, 0x11, 0xea, 0x02, 0x04, 0x8f, 0xbe, 0x48, 0xcb, 0xf3, 0xa8, 0x90, 0xdc,
    0xf4, 0x3d, 0x53, 0x04, 0x7f, 0x95, 0x96, 0xe7, 0x47, 0xb2, 0xeb, 0x13, 0xb3, 0x8e, 0x4f, 0x04,
    0x7f, 0xee, 0x41, 0xff, 0x38, 0xd9, 0xce, 0xcc, 0x4d, 0x09, 0xe9, 0xbd, 0xaa, 0x84, 0xf4, 0x3b,
    0x25, 0xc4, 0xb2, 0x28, 0x48, 0x07, 0x35, 0xeb, 0x19, 0xc6, 0xe9, 0x03, 0x18, 0x50, 0x28, 0x0d,
    0x6f, 0xa8, 0x15, 0x07, 0x72, 0x1d, 0x12, 0x17, 0x5f, 0x97, 0xc6, 0x79, 0x66, 0xdb, 0x45, 0x5c,
    0x63, 0x8a, 0xc0, 0x86, 0x53, 0x6b, 0x14, 0x97, 0xe8, 0xa5, 0xa6, 0x86, 0x63, 0xae, 0x31, 0xaa,
    0x04, 0x0d, 0x61, 0xc2, 0x69, 0xe5, 0x68, 0xda, 0xa0, 0xd5, 0x68, 0x72, 0x34, 0x6d, 0xe8, 0x74,
    0x01, 0xb0, 0xd1, 0x05, 0x34, 0x41, 0x36, 0xdd, 0x2c, 0xf4, 0x75, 0x51, 0xd0, 0x7d, 0x64, 0x5d,
    0xcd, 0xf3, 0xba, 0x9a, 0x93, 0xdb, 0x9a, 0xae, 0x65, 0xb5, 0x19, 0xf4, 0xcd, 0xc9, 0xbd, 0xce,
    0xc9, 0x3f, 0x26, 0xbd, 0x51, 0x88, 0x9b, 0x34, 0x76, 0x77, 0xa3, 0x98, 0x0a, 0x7e, 0xcc, 0xcb,
    0xb0, 0xde, 0x15, 0x54, 0x00, 0x0d, 0x4e, 0xb9, 0x35, 0x69, 0xae, 0x33, 0x3e, 0x7b, 0x17, 0xb4,
    0xc5, 0xba, 0xe6, 0xfb, 0xc0, 0x46, 0xb0, 0xbe, 0xe8, 0xf6, 0xd6, 0x45, 0x36, 0x88, 0xad, 0xa7,
    0x0d, 0x1a, 0x4f, 0x0b, 0x7e, 0x03, 0x63, 0xfb, 0xc6, 0x4d, 0x6f, 0xd9, 0x8a, 0x90, 0xde, 0xb7,
    0x47, 0x48, 0x7f, 0x23, 0x42, 0xb6, 0x9c, 0x7f, 0xb0, 0xe5, 0xfc, 0xc1, 0xbf, 0x1c, 0xea, 0x6f,
    0x0e, 0xe4, 0xba, 0x99, 0x52, 0x9c, 0xf6, 0x94, 0x72, 0x53, 0x85, 0xb0, 0x63, 0x89, 0x19, 0x89,
    0xec, 0x58, 0x72, 0x59, 0x29, 0xfd, 0xb6, 0x49, 0x48, 0x6b, 0xc4, 0xaa, 0x2c, 0xb5, 0x7d, 0x1f,
    0xad, 0xf1, 0x16, 0x5d, 0xf0, 0xb4, 0x43, 0x6a, 0xc2, 0xe4, 0x30, 0x56, 0x89, 0xd2, 0x88, 0xaa,
    0x7d, 0x73, 0x66, 0x40, 0x1d, 0xa8, 0x3f, 0x00, 0xcf, 0x6e, 0xaa, 0xdf, 0xac, 0x3d, 0xf5, 0x96,
    0xc1, 0x7f, 0x61, 0x9f, 0x6e, 0x35, 0xed, 0xb6, 0x34, 0xfd, 0x29, 0x19, 0xf8, 0xf1, 0x39, 0xcb,
    0xd0, 0xc0, 0xed, 0x98, 0x73, 0xb6, 0x62, 0x2e, 0x3e, 0x67, 0x59, 0x94, 0x55, 0x97, 0x66, 0x1a,
    0x1c, 0x23, 0xfd, 0xac, 0xba, 0x0c, 0x7e, 0xef, 0xc0, 0xad, 0xc3, 0x53, 0x3c, 0x63, 0xcd, 0x3f,
    0xe7, 0x4a, 0xb1, 0x35, 0xf7, 0x3f, 0xc4, 0xfe, 0x1b, 0x3d, 0x10, 0x8f, 0x59, 0xec, 0xbf, 0xd1,
    0xae, 0x69, 0xa7, 0x82, 0xeb, 0xcd, 0x49, 0xa8, 0x37, 0x19, 0x23, 0xf7, 0x6a, 0x23, 0x3f, 0x82,
    0x11, 0x8b, 0xcb, 0x34, 0xcf, 0x48, 0x9b, 0x8b, 0x7d, 0xbf, 0xf9, 0xfc, 0xf0, 0xf4, 0x80, 0x38,
    0xa1, 0xd9, 0x41, 0xb1, 0x9c, 0x9d, 0xe5, 0xc6, 0x8e, 0xb4, 0x0e, 0xfe, 0xe3, 0xc0, 0x5c, 0x57,
    0xe1, 0x57, 0xd5, 0xf8, 0x6f, 0x6d, 0x07, 0x6f, 0x98, 0x6e, 0xfd, 0x25, 0x8c, 0x4d, 0xf6, 0xb6,
    0x29, 0xc7, 0x90, 0xd8, 0xe7, 0x95, 0x32, 0x5d, 0xaf, 0xb9, 0x8c, 0x44, 0x9a, 0xd9, 0x4a, 0x34,
    0x35, 0xd8, 0x67, 0x69, 0xc6, 0xfd, 0xf7, 0x61, 0x91, 0xa4, 0x92, 0x93, 0xc0, 0x7a, 0x93, 0x36,
    0xf4, 0xbc, 0x46, 0x69, 0x9b, 0x75, 0xa1, 0x71, 0xcb, 0x85, 0xb6, 0x0a, 0xd9, 0x84, 0x94, 0xdf,
    0x2d, 0x64, 0x7f, 0x74, 0x60, 0xfe, 0x22, 0x4d, 0x78, 0x5e, 0xb2, 0x82, 0x53, 0xa3, 0x7f, 0x1f,
    0x26, 0x5c, 0x1d, 0xb2, 0x92, 0xd5, 0xd1, 0x5a, 0xd3, 0xc8, 0xb3, 0x4f, 0xdd, 0x7a, 0x7a, 0x93,
    0x52, 0xba, 0x8d, 0x30, 0x06, 0xf9, 0xe5, 0x7a, 0xa5, 0x2b, 0x59, 0x3f, 0xd4, 0x04, 0x9e, 0x74,
    0x85, 0xd7, 0x3e, 0x97, 0xc2, 0xce, 0x31, 0x96, 0xc6, 0x93, 0x28, 0x3f, 0x60, 0x0d, 0xeb, 0xe3,
    0x49, 0x9a, 0xea, 0x3c, 0xd2, 0x8c, 0xef, 0xc1, 0xff, 0x7a, 0x30, 0x7d, 0x9c, 0x5f, 0x16, 0x4c,
    0x72, 0x6a, 0x67, 0x68, 0xec, 0x3a, 0x15, 0x7c, 0x45, 0xb3, 0x63, 0x5f, 0x8f, 0x5d, 0x9a, 0xf6,
    0x1f, 0x81, 0x17, 0xeb, 0xad, 0x27, 0xe7, 0x92, 0xab, 0xf3, 0x5c, 0xe8, 0x57, 0xf4, 0xc2, 0x2d,
    0xdc, 0xdf, 0x83, 0xe9, 0x19, 0x8b, 0xf9, 0x53, 0xce, 0xca, 0x4a, 0x6a, 0x7b, 0xce, 0xc2, 0x36,
    0x84, 0xef, 0xd2, 0x73, 0xe2, 0x80, 0xae, 0xd1, 0x84, 0xff, 0x36, 0xb8, 0xa5, 0xe4, 0xfc, 0x59,
    0x9e, 0x70, 0x5d, 0x4a, 0xdc, 0xb0, 0x01, 0xe8, 0x05, 0xec, 0xd4, 0xbe, 0x8b, 0xd6, 0xfe, 0x2e,
    0xb4, 0xda, 0x17, 0x63, 0xc0, 0x76, 0x43, 0xb3, 0x0b, 0xa0, 0x38, 0x93, 0xf1, 0xf9, 0x89, 0x2e,
    0x25, 0xf8, 0x65, 0x0b, 0x41, 0x7e, 0x9a, 0x15, 0x95, 0x0e, 0x6a, 0x5b, 0x49, 0x1a, 0x04, 0xf9,
    0x71, 0x2e, 0x84, 0x76, 0x16, 0x53, 0x4a, 0x5a, 0x08, 0x69, 0x3b, 0xaf, 0x64, 0x5c, 0x17, 0x13,
    0x4d, 0xf9, 0x0f, 0x60, 0xce, 0x32, 0x26, 0xae, 0xed, 0x98, 0x6e, 0x8a, 0x72, 0x17, 0x0c, 0x4e,
    0x61, 0x66, 0xd4, 0xff, 0xe4, 0x8a, 0x67, 0xa5, 0xff, 0x13, 0x70, 0x39, 0x2e, 0x4e, 0x6c, 0x22,
    0x58, 0xec, 0xdf, 0x6f, 0x8d, 0xda, 0xad, 0xad, 0xb8, 0x23, 0x6c, 0x36, 0x53, 0x98, 0xb0, 0x6b,
    0x91, 0x33, 0x6d, 0x94, 0x59, 0x68, 0xc9, 0xe0, 0xd7, 0xb0, 0xc0, 0x4c, 0x63, 0xbe, 0x65, 0xf1,
    0xf9, 0x56, 0x4c, 0x2e, 0xb1, 0x89, 0x3d, 0x15, 0xbc, 0x8e, 0x48, 0x4b, 0xfa, 0x01, 0xcc, 0x8c,
    0x6d, 0x8f, 0xe3, 0xdc, 0x18, 0xb2, 0x17, 0x76, 0xb0, 0x20, 0x04, 0xaf, 0x39, 0x3f, 0xe4, 0xaa,
    0x12, 0xa5, 0xff, 0x33, 0x98, 0xc7, 0x6d, 0x80, 0x9c, 0x69, 0xba, 0xbf, 0xec, 0x14, 0xa3, 0x96,
    0x48, 0x61, 0x77, 0x7b, 0xf0, 0xbb, 0x3e, 0xb8, 0xf4, 0xcc, 0xa3, 0x4a, 0x9d, 0xbf, 0xd6, 0x9c,
    0xf0, 0x8e, 0x99, 0x5f, 0xf4, 0x0c, 0xa2, 0x63, 0x88, 0x46, 0x95, 0x63, 0x9a, 0x43, 0xee, 0x01,
    0x8d, 0x41, 0x11, 0x0e, 0x23, 0x26, 0x8d, 0x20, 0xfd, 0x24, 0xa3, 0x9e, 0x33, 0x55, 0x91, 0x62,
    0x65, 0xaa, 0xce, 0xae, 0x23, 0x26, 0x74, 0x44, 0x4d, 0xc2, 0x59, 0xaa, 0x8e, 0x35, 0x78, 0x20,
    0x04, 0xe6, 0x2d, 0xea, 0xc1, 0xa8, 0xaf, 0x1e, 0x99, 0xff, 0x7f, 0x2a, 0xc1, 0xa9, 0xad, 0x6e,
    0xea, 0xfe, 0xb8, 0x53, 0xf7, 0xdf, 0x02, 0x57, 0x4f, 0x79, 0x4d, 0x47, 0x38, 0xa1, 0x11, 0x0f,
    0x2d, 0xf6, 0x2e, 0x4c, 0x89, 0x69, 0xa6, 0x54, 0xb7, 0x99, 0x00, 0xcd, 0x90, 0xfa, 0x23, 0x98,
    0xa4, 0x45, 0x54, 0xe4, 0xb2, 0x54, 0x4b, 0xd8, 0xec, 0x1a, 0x50, 0x31, 0xab, 0xe2, 0x28, 0x97,
    0x65, 0x38, 0x4e, 0xe9, 0x57, 0xf9, 0xef, 0xc3, 0xa0, 0x92, 0x42, 0x2d, 0xa7, 0x9b, 0x95, 0x1f,
    0x37, 0x3f, 0x97, 0x22, 0x24, 0xb6, 0xff, 0x43, 0xdb, 0x21, 0xcc, 0x36, 0xc7, 0x9e, 0x5a, 0xe5,
    0xad, 0x3e, 0x21, 0xf8, 0xda, 0x81, 0x79, 0x87, 0xb1, 0x65, 0x0f, 0xd4, 0x7d, 0x5e, 0xa4, 0x71,
    0xfb, 0x6f, 0x07, 0x97, 0x10, 0x7a, 0x28, 0xce, 0xa4, 0xc4, 0x66, 0x72, 0x5d, 0xcf, 0xa4, 0x08,
    0x60, 0x9d, 0x6f, 0xb7, 0x0c, 0x83, 0xef, 0x6a, 0xaa, 0x87, 0x37, 0x34, 0xd5, 0xf4, 0xe7, 0x9a,
    0xe0, 0xa6, 0x52, 0x8f, 0xcc, 0x9f, 0x01, 0x95, 0xe0, 0x3a, 0x7e, 0x03, 0x98, 0x53, 0x90, 0x44,
    0x45, 0xa5, 0xce, 0xb1, 0xe6, 0xe8, 0x14, 0x31, 0xe5, 0xf6, 0x45, 0xab, 0x24, 0x78, 0x0e, 0xd0,
    0xa8, 0x13, 0xc5, 0xb5, 0xff, 0xb7, 0x15, 0x36, 0x85, 0x6b, 0x60, 0xd5, 0xfc, 0xcf, 0xd8, 0x6b,
    0xfd, 0xcf, 0xf8, 0xaa, 0xa1, 0xed, 0x63, 0x18, 0x1b, 0xc5, 0xdb, 0x1e, 0xd7, 0x69, 0x7a, 0xdc,
    0x57, 0xb4, 0x8a, 0xc1, 0x9f, 0x1c, 0x2d, 0xcc, 0x41, 0x59, 0x62, 0xa8, 0xbe, 0x09, 0x63, 0x2b,
    0xb8, 0x69, 0x35, 0x0b, 0x92, 0xd9, 0x0f, 0xa0, 0x1f, 0x33, 0xdd, 0x11, 0xdc, 0xf4, 0x77, 0x1c,
    0x32, 0xdb, 0x2f, 0xa9, 0xe7, 0x24, 0xf3, 0x92, 0x04, 0xdd, 0xcf, 0x30, 0x5b, 0xed, 0x3c, 0x68,
    0x88, 0x3a, 0xfa, 0x7b, 0x30, 0x11, 0x79, 0xcc, 0x04, 0xaa, 0xc1, 0x0c, 0x79, 0x44, 0xaf, 0x0a,
    0x3c, 0x98, 0xca, 0x0d, 0xfd, 0x53, 0x3c, 0xea, 0xd6, 0x9f, 0xe0, 0x1f, 0x0e, 0xdc, 0x79, 0xa2,
    0x8e, 0xb8, 0x54, 0x79, 0xf6, 0x98, 0xc5, 0xe7, 0xa6, 0xe7, 0xf0, 0x3f, 0x34, 0xf5, 0x47, 0xa7,
    0xb5, 0x56, 0x2a, 0x78, 0xa2, 0x5a, 0xdb, 0x12, 0x53, 0x7e, 0xef, 0x99, 0x4a, 0xa4, 0xdb, 0x84,
    0x7e, 0x9d, 0x94, 0xf4, 0xf8, 0x57, 0xd0, 0xe9, 0xad, 0x67, 0x69, 0x60, 0x45, 0xb9, 0xec, 0xcc,
    0x54, 0x1d, 0x13, 0xe7, 0x86, 0x6c, 0xf5, 0x36, 0xc3, 0xef, 0xec, 0x6d, 0xba, 0xff, 0x05, 0x0e,
    0xad, 0x75, 0x1e, 0xfd, 0xb6, 0x07, 0xb3, 0x76, 0x1f, 0xe5, 0xcf, 0x60, 0x72, 0x12, 0x69, 0x9d,
    0x7b, 0x3b, 0xbe, 0x07, 0x33, 0x4b, 0xe1, 0xb8, 0xe0, 0x39, 0xfe, 0x5d, 0xf0, 0xda, 0x08, 0x16,
    0x59, 0xaf, 0xe7, 0x03, 0x8c, 0x4e, 0x22, 0xda, 0xd1, 0xf7, 0xe7, 0xe0, 0xea, 0xf5, 0x71, 0x72,
    0xe1, 0x0d, 0xfc, 0xdb, 0x30, 0xaf, 0x49, 0x0c, 0x36, 0x6f, 0xe8, 0xbb, 0x30, 0x3c, 0x89, 0x90,
    0x3b, 0xf2, 0xef, 0xc0, 0x2d, 0x7b, 0x9c, 0x69, 0xb0, 0xbc, 0xb1, 0xbf, 0x00, 0x38, 0x89, 0x4e,
    0xcc, 0x9f, 0x3c, 0xde, 0x44, 0xcb, 0xa4, 0x4b, 0x8c, 0xe7, 0x6a, 0x99, 0x8e, 0x72, 0x21, 0x1e,
    0xe7, 0xd9, 0x59, 0xba, 0xf6, 0x40, 0xdf, 0xfe, 0x34, 0x15, 0xdc, 0x9b, 0xea, 0xeb, 0x70, 0x7d,
    0xcc, 0xcb, 0x32, 0xcd, 0xd6, 0xde, 0x4c, 0x7f, 0xd0, 0xf4, 0xa6, 0xde, 0xdc, 0xbf, 0x05, 0x53,
    0xb3, 0xa9, 0x64, 0xf1, 0x85, 0xb7, 0x78, 0xf4, 0x11, 0x4c, 0xac, 0xca, 0xf0, 0xb4, 0x55, 0xa6,
    0xb8, 0x2c, 0xbd, 0x1d, 0x5c, 0x3f, 0xa7, 0x21, 0xcc, 0x73, 0x70, 0x7d, 0xc8, 0x05, 0x2f, 0xb9,
    0xd7, 0x7b, 0x74, 0x00, 0xde, 0x66, 0xed, 0xc2, 0x43, 0x43, 0xbe, 0xca, 0xd2, 0x92, 0x8c, 0xef,
    0xed, 0x20, 0xa0, 0x3f, 0xd6, 0x80, 0xe3, 0x4f, 0x61, 0x6c, 0xbe, 0xf2, 0x7a, 0x8f, 0x3e, 0x81,
    0x45, 0xd7, 0x4f, 0xb4, 0xe2, 0x0e, 0x4f, 0xc9, 0x1c, 0xde, 0x8e, 0x56, 0x8d, 0x21, 0xb5, 0xf3,
    0x79, 0xce, 0xa7, 0xcb, 0xbf, 0x7c, 0xb3, 0xeb, 0x7c, 0xf5, 0xcd, 0xae, 0xf3, 0xcf, 0x6f, 0x76,
    0x9d, 0x3f, 0xbc, 0xdc, 0xdd, 0xf9, 0xea, 0xe5, 0xee, 0xce, 0xdf, 0x5f, 0xee, 0xee, 0x9c, 0x8e,
    0xc8, 0xf8, 0x1f, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x0b, 0x36, 0x5f, 0xab, 0x19, 0x00,
    0x00,
    // 2743 bytes of a gzipped FileDescriptorProto
    0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x58, 0xcb, 0x6f, 0xdd, 0xc6,
    0xd5, 0x17, 0xef, 0x9b, 0xe7, 0x3e, 0x44, 0xd3, 0x4e, 0x4c, 0x3b, 0x89, 0xa2, 0xf0, 0x73, 0x10,
    0x47, 0x5f, 0xbe, 0x7c, 0x85, 0x93, 0x45, 0xd1, 0x45, 0x01, 0xc5, 0xb2, 0xdb, 0x0b, 0x24, 0xae,
    0x4a, 0xc9, 0xce, 0xae, 0xc4, 0x88, 0x1c, 0xdd, 0x4b, 0x88, 0x22, 0x89, 0x19, 0x52, 0x89, 0x16,
    0x05, 0xba, 0xe8, 0xa6, 0xab, 0xf6, 0x1f, 0x2a, 0xda, 0x65, 0x17, 0x5d, 0x64, 0x91, 0x45, 0xbb,
    0x4a, 0x91, 0x6c, 0x0a, 0x14, 0xfd, 0x13, 0x0a, 0x14, 0xe7, 0xcc, 0x0c, 0x1f, 0xf7, 0xca, 0x89,
    0x57, 0x77, 0xce, 0xef, 0xcc, 0x3d, 0x33, 0x73, 0xde, 0x87, 0xb0, 0x28, 0x44, 0x5e, 0xe6, 0x97,
    0x72, 0xf5, 0x21, 0x2d, 0xdc, 0x89, 0xa1, 0xef, 0xc3, 0x19, 0x93, 0x5c, 0xa1, 0xfe, 0x53, 0x18,
    0x1c, 0x0a, 0xce, 0xdc, 0x05, 0xf4, 0x92, 0xd8, 0xb3, 0xf6, 0xad, 0x87, 0xc3, 0xa0, 0x97, 0xc4,
    0xee, 0x7d, 0x98, 0x14, 0x4c, 0xf0, 0xac, 0x4c, 0x62, 0xaf, 0x47, 0x68, 0x4d, 0xbb, 0x2e, 0x0c,
    0x32, 0x76, 0xc9, 0xbd, 0xfe, 0xbe, 0xf5, 0xd0, 0x0e, 0x68, 0xed, 0xff, 0x66, 0x08, 0xa3, 0xc7,
    0xec, 0x92, 0x8b, 0xb6, 0x28, 0x9b, 0x44, 0x99, 0xed, 0xbd, 0x66, 0xbb, 0x7b, 0x07, 0x86, 0x2c,
    0x4d, 0x98, 0xd4, 0x32, 0x14, 0xe1, 0xbe, 0x03, 0x33, 0x99, 0xb1, 0x42, 0xae, 0xf3, 0x32, 0xac,
    0x44, 0xea, 0x0d, 0x88, 0x39, 0x35, 0xd8, 0x73, 0x91, 0xa2, 0xb0, 0xf2, 0xba, 0xe0, 0xde, 0x90,
    0xee, 0x44, 0x6b, 0xc4, 0x58, 0x1c, 0x0b, 0x6f, 0xa4, 0x0e, 0xc0, 0xb5, 0xfb, 0x26, 0xd8, 0x69,
    0x9e, 0xad, 0x92, 0xb2, 0x8a, 0xb9, 0x37, 0xde, 0xb7, 0x1e, 0xf6, 0x82, 0x06, 0xc0, 0xd7, 0xa5,
    0xac, 0x54, 0xcc, 0x09, 0x31, 0x6b, 0x1a, 0xaf, 0x76, 0x9e, 0xe6, 0xb9, 0xf0, 0x6c, 0x3a, 0x42,
    0x11, 0x78, 0x86, 0x28, 0x65, 0xe1, 0x81, 0x3a, 0x03, 0xd7, 0xf4, 0xd0, 0xc2, 0x9b, 0xea, 0x87,
    0x16, 0xb8, 0xa7, 0xc8, 0x45, 0xe9, 0xcd, 0xd4, 0xdd, 0x70, 0x8d, 0x27, 0x55, 0x92, 0x0b, 0x52,
    0xc0, 0x9c, 0x76, 0xd6, 0xb4, 0xd2, 0xb1, 0x94, 0x5f, 0xe4, 0x22, 0xf6, 0x16, 0x8a, 0x67, 0x68,
    0xbc, 0xc5, 0x99, 0x60, 0x59, 0xec, 0xed, 0x2a, 0x05, 0x11, 0x81, 0xff, 0x10, 0x5c, 0x72, 0x71,
    0xc5, 0x63, 0xcf, 0x51, 0xff, 0x30, 0xb4, 0xfb, 0x16, 0x40, 0x22, 0x43, 0x51, 0x65, 0x59, 0x92,
    0xad, 0xbc, 0x5b, 0xfb, 0xd6, 0xc3, 0x49, 0x60, 0x27, 0x32, 0x50, 0x00, 0xb2, 0x45, 0x95, 0x85,
    0x3c, 0x63, 0x67, 0x29, 0xf7, 0x5c, 0xc5, 0x16, 0x55, 0xf6, 0x84, 0x00, 0xf7, 0x1e, 0x4c, 0x90,
    0x4d, 0xba, 0xbd, 0x4d, 0xf7, 0x1f, 0x8b, 0x2a, 0x3b, 0x45, 0xf5, 0xfa, 0x30, 0x47, 0x16, 0x1d,
    0x23, 0xc2, 0x24, 0xf6, 0xee, 0x28, 0xb3, 0x88, 0x2a, 0x3b, 0x21, 0x6c, 0x19, 0xbb, 0xef, 0x83,
    0x23, 0xb8, 0xcc, 0xd3, 0xaa, 0x4c, 0xf2, 0x2c, 0xfc, 0x22, 0x89, 0xcb, 0xb5, 0xf7, 0x1a, 0x89,
    0xd9, 0x6d, 0xf0, 0xcf, 0x11, 0x76, 0xff, 0x17, 0x6e, 0xb5, 0xb6, 0xae, 0x79, 0xb2, 0x5a, 0x97,
    0xde, 0xeb, 0xb4, 0xb7, 0x25, 0xe3, 0xe7, 0x84, 0xbb, 0x07, 0x30, 0x96, 0x3c, 0x93, 0xb9, 0x90,
    0xde, 0xdd, 0xfd, 0xfe, 0xc3, 0xe9, 0x23, 0xe7, 0xc3, 0xda, 0xad, 0x4f, 0x88, 0x11, 0x98, 0x0d,
    0xfe, 0xd7, 0x16, 0x8c, 0x14, 0x76, 0x93, 0x0b, 0xd2, 0xcb, 0x7a, 0x2d, 0xaf, 0x51, 0xd6, 0xeb,
    0x6f, 0x59, 0x6f, 0xf0, 0x12, 0xeb, 0x0d, 0xbf, 0xc7, 0x7a, 0xa3, 0x0d, 0xeb, 0xbd, 0x09, 0x76,
    0xb9, 0x16, 0x5c, 0xae, 0xf3, 0x34, 0x26, 0xef, 0x1b, 0x06, 0x0d, 0xe0, 0xbe, 0x0e, 0x23, 0x6d,
    0x86, 0x09, 0x99, 0x41, 0x53, 0x68, 0xf3, 0x98, 0x5f, 0x2d, 0x63, 0xf2, 0x3c, 0x3b, 0x50, 0x84,
    0xff, 0x19, 0x80, 0x0a, 0xac, 0x4f, 0x93, 0xec, 0x02, 0xcd, 0x18, 0x11, 0x15, 0x26, 0xb1, 0xd4,
    0x2f, 0xb4, 0x15, 0xb2, 0x8c, 0xa5, 0xbb, 0x0f, 0xb3, 0x34, 0xc9, 0x2e, 0xc2, 0x92, 0xc9, 0x8b,
    0x50, 0x87, 0xae, 0x1d, 0x00, 0x62, 0xa7, 0x4c, 0x5e, 0x2c, 0x63, 0x3f, 0x82, 0x5b, 0x4a, 0xdc,
    0x61, 0x16, 0x13, 0x94, 0x9d, 0xe7, 0xee, 0x43, 0x18, 0x29, 0x19, 0x24, 0xb1, 0xa3, 0x65, 0xb5,
    0x39, 0xd0, 0x7c, 0xf7, 0x01, 0x0c, 0x51, 0xb6, 0xf4, 0x7a, 0x64, 0x8e, 0x45, 0xb3, 0x11, 0x85,
    0x05, 0x8a, 0xe9, 0x7f, 0x63, 0xc1, 0x00, 0x69, 0x7c, 0x2a, 0x22, 0xb5, 0x31, 0x34, 0x85, 0xca,
    0xc3, 0x55, 0x2b, 0x2f, 0xd4, 0xb4, 0xfb, 0x06, 0xd8, 0x91, 0xe0, 0xac, 0xe4, 0x21, 0x2b, 0xb5,
    0x7d, 0x26, 0x0a, 0x38, 0x2c, 0x5b, 0xcc, 0xb3, 0x6b, 0x9d, 0x1f, 0x34, 0xf3, 0x93, 0x6b, 0x64,
    0x56, 0x45, 0xac, 0xff, 0x69, 0xec, 0x45, 0xc0, 0x61, 0xd9, 0xd2, 0xfa, 0xa8, 0xa3, 0xf5, 0x7b,
    0x30, 0x49, 0x64, 0xc8, 0x52, 0x26, 0x2e, 0xc9, 0x54, 0x93, 0x60, 0x9c, 0xc8, 0x43, 0x24, 0x91,
    0x15, 0xf3, 0x34, 0x3c, 0x4f, 0xd9, 0x4a, 0x9b, 0x6a, 0x1c, 0xf3, 0xf4, 0x69, 0xca, 0x56, 0xfe,
    0x29, 0x4c, 0xf1, 0x81, 0x27, 0xb1, 0x52, 0xa0, 0x0f, 0x03, 0xbc, 0xbf, 0x56, 0xdf, 0xa6, 0x56,
    0x88, 0xe7, 0xbe, 0x03, 0x03, 0x19, 0xd7, 0x9a, 0x9b, 0xb7, 0x1c, 0x39, 0xbe, 0x08, 0x88, 0xe5,
    0xff, 0x04, 0x46, 0x48, 0x54, 0x99, 0xfb, 0x1a, 0x8c, 0x92, 0x22, 0x0a, 0x6b, 0xc5, 0x0d, 0x93,
    0x22, 0x5a, 0xc6, 0x78, 0x23, 0x19, 0x5f, 0x84, 0xb5, 0x33, 0xdb, 0xc1, 0x58, 0xc6, 0x17, 0x18,
    0xa6, 0xfe, 0x0b, 0x00, 0x7d, 0x23, 0xfc, 0xff, 0xab, 0x5c, 0xe8, 0x41, 0xe7, 0x42, 0x4e, 0xf7,
    0x42, 0x55, 0xa6, 0xef, 0xf4, 0x75, 0xcf, 0x38, 0x20, 0x59, 0x74, 0x33, 0xb4, 0xd0, 0x20, 0xc6,
    0x21, 0x8d, 0x29, 0x8d, 0x3f, 0xba, 0x77, 0x61, 0x6c, 0x3c, 0xb1, 0xdf, 0xd8, 0x7f, 0x49, 0xff,
    0x2a, 0x93, 0x4b, 0x1e, 0x8a, 0x2a, 0xe5, 0xc6, 0x8c, 0x08, 0x04, 0x55, 0xca, 0x29, 0x55, 0x71,
    0x16, 0x95, 0x8a, 0xab, 0xec, 0x68, 0x13, 0x42, 0xec, 0x77, 0x60, 0xa6, 0xd8, 0x31, 0xbf, 0x4a,
    0x22, 0xae, 0x83, 0x6f, 0x4a, 0xd8, 0x11, 0x41, 0x1d, 0xc3, 0x8d, 0x3b, 0x86, 0x73, 0xdf, 0x86,
    0xa9, 0xf6, 0x91, 0x96, 0x59, 0x41, 0x41, 0xb4, 0xa1, 0xf1, 0x13, 0xbb, 0xe3, 0x27, 0x2e, 0x0c,
    0x24, 0xe6, 0x07, 0x50, 0xf9, 0x01, 0xd7, 0xf8, 0xbe, 0x44, 0x86, 0xe7, 0x55, 0x9a, 0x52, 0x19,
    0x98, 0x04, 0xa3, 0x44, 0x3e, 0xad, 0xd2, 0x74, 0x2b, 0x0e, 0x67, 0x5b, 0x71, 0xf8, 0x4b, 0x58,
    0x68, 0xad, 0x26, 0x97, 0x1c, 0x1f, 0xfa, 0x4a, 0x75, 0xb3, 0xa3, 0xb7, 0x7e, 0x57, 0x6f, 0xfe,
    0x33, 0x18, 0x1d, 0xb1, 0xeb, 0xc7, 0x65, 0xea, 0x3a, 0xd0, 0x8f, 0xd9, 0xb5, 0x2e, 0xe7, 0xb8,
    0x74, 0x1f, 0x01, 0xa8, 0x3f, 0xb2, 0x6c, 0xc5, 0xb5, 0xc5, 0x6f, 0xb7, 0xbc, 0x02, 0x65, 0x20,
    0x2b, 0x20, 0xf9, 0xb4, 0xf4, 0x3f, 0x02, 0xbb, 0xc6, 0x31, 0x39, 0xc9, 0x92, 0x89, 0xd2, 0xf8,
    0x23, 0x11, 0x78, 0x10, 0xcf, 0x8c, 0xdd, 0x71, 0xe9, 0xbf, 0x80, 0xf1, 0x71, 0x9e, 0x5e, 0xaf,
    0xf2, 0xec, 0x95, 0x1e, 0xf4, 0x1e, 0x8c, 0x8a, 0x3c, 0xc9, 0x4a, 0xec, 0x04, 0xf0, 0x4e, 0xbb,
    0xcd, 0x9d, 0x8e, 0x11, 0x0f, 0x34, 0xdb, 0x8f, 0x6a, 0x7d, 0x31, 0x79, 0x71, 0x28, 0x56, 0xb2,
    0xeb, 0x79, 0xd6, 0x86, 0xe7, 0x7d, 0x0c, 0x36, 0xe9, 0x9e, 0x89, 0x95, 0x71, 0xf0, 0xbb, 0xdd,
    0x20, 0xf8, 0x99, 0xc8, 0xab, 0x02, 0x05, 0xa9, 0xd4, 0x83, 0x2b, 0xff, 0x0a, 0xe6, 0x1d, 0x56,
    0xdb, 0x81, 0xad, 0x8e, 0x03, 0x7f, 0x0c, 0xd3, 0x15, 0xee, 0x22, 0x4b, 0xc8, 0x6d, 0x85, 0x92,
    0x08, 0xb4, 0x4a, 0x00, 0x2b, 0xb3, 0x94, 0x2d, 0xdf, 0xea, 0xb7, 0x7d, 0xcb, 0xff, 0xab, 0x05,
    0x76, 0xfd, 0x0f, 0xf4, 0x5e, 0x25, 0xbb, 0x3e, 0x75, 0x4c, 0xf4, 0x92, 0x8a, 0xbc, 0x62, 0x95,
    0xfc, 0xcb, 0x52, 0x2b, 0xd2, 0x26, 0xe4, 0x94, 0x7f, 0x59, 0xa2, 0x73, 0x53, 0x22, 0x0b, 0x53,
    0x7e, 0xc5, 0x53, 0x3a, 0x64, 0x18, 0x00, 0x41, 0x9f, 0x22, 0x82, 0xe9, 0x5b, 0x5d, 0x78, 0xb0,
    0x99, 0xbe, 0xe9, 0xae, 0x8a, 0x49, 0x59, 0x86, 0x97, 0x61, 0xdd, 0x68, 0x61, 0x96, 0xe1, 0x25,
    0x35, 0x03, 0xff, 0x03, 0xf3, 0x98, 0x9f, 0xf3, 0x2c, 0xe2, 0xa1, 0x2c, 0x59, 0x69, 0x92, 0xe9,
    0x4c, 0x83, 0x27, 0x88, 0xf9, 0xff, 0xea, 0xc1, 0x20, 0xb8, 0xc9, 0xa5, 0x1f, 0xc0, 0x42, 0x9b,
    0xac, 0x5b, 0xa0, 0x66, 0x51, 0x6d, 0xda, 0xe5, 0x46, 0x4a, 0xe9, 0x6f, 0x18, 0xf6, 0x2d, 0x80,
    0x42, 0xf9, 0x17, 0x72, 0x55, 0xea, 0xb0, 0x35, 0xb2, 0x8c, 0x31, 0x6f, 0x62, 0x82, 0x4c, 0x62,
    0x7d, 0xf1, 0xa1, 0x8c, 0x51, 0xa4, 0x0f, 0x73, 0x84, 0x99, 0x58, 0x85, 0xaa, 0xef, 0xd4, 0x49,
    0x43, 0xc6, 0x68, 0xf8, 0x43, 0xea, 0x3e, 0xef, 0xc3, 0x24, 0x2f, 0xb8, 0x60, 0x65, 0x2e, 0x28,
    0x69, 0xd8, 0x41, 0x4d, 0xe3, 0xb3, 0xcd, 0x5a, 0xa9, 0x65, 0xa2, 0xee, 0x6d, 0x40, 0xd3, 0x28,
    0x99, 0x43, 0xae, 0x58, 0x5a, 0x71, 0x5d, 0xc7, 0xf5, 0x21, 0x2f, 0x10, 0xba, 0x31, 0x8b, 0x50,
    0x83, 0x95, 0xf2, 0xf0, 0x8b, 0xa4, 0x5c, 0x87, 0x85, 0xe0, 0xba, 0xa5, 0x9c, 0x22, 0xf8, 0x79,
    0x52, 0xae, 0x8f, 0x45, 0xd7, 0x27, 0x66, 0x1d, 0x9f, 0xf0, 0xff, 0xdc, 0x83, 0xfe, 0x49, 0xbc,
    0x9d, 0x99, 0x9b, 0x12, 0xd2, 0x7b, 0x59, 0x09, 0xe9, 0x77, 0x4a, 0x88, 0x61, 0x51, 0x90, 0x0e,
    0x6a, 0xd6, 0x33, 0x8c, 0xd3, 0x07, 0x30, 0xa0, 0x50, 0x1a, 0xde, 0x50, 0x2b, 0x0e, 0xc5, 0x2a,
    0x20, 0x2e, 0xbe, 0x2e, 0x89, 0xf2, 0xcc, 0x74, 0xe2, 0xb8, 0xc6, 0x14, 0x81, 0xbd, 0xbc, 0xd2,
    0x28, 0x2e, 0xd1, 0x4b, 0x75, 0x0d, 0xc7, 0x5c, 0xa3, 0x55, 0x09, 0x0a, 0xc2, 0x84, 0xd3, 0xca,
    0xd1, 0xb4, 0x41, 0xa9, 0x51, 0xe7, 0x68, 0xda, 0xd0, 0xe9, 0x02, 0x60, 0xa3, 0x0b, 0x68, 0x82,
    0x6c, 0xba, 0x59, 0xe8, 0xeb, 0xa2, 0xa0, 0x5a, 0xf4, 0xba, 0x9a, 0xe7, 0x75, 0x35, 0x27, 0xb7,
    0xd5, 0x5d, 0xcb, 0x72, 0x33, 0xe8, 0x1b, 0xc9, 0xbd, 0x8e, 0xe4, 0x1f, 0x91, 0xde, 0x28, 0xc4,
    0x75, 0x1a, 0xbb, 0xb3, 0x51, 0x4c, 0x53, 0x7e, 0xc2, 0xcb, 0xa0, 0xde, 0xe5, 0x57, 0x00, 0x0d,
    0x4e, 0xb9, 0x35, 0x6e, 0x8e, 0xd3, 0x3e, 0x7b, 0x07, 0x94, 0xc5, 0xba, 0xe6, 0x7b, 0xcf, 0x44,
    0xb0, 0x3a, 0xe8, 0xd6, 0xd6, 0x41, 0x26, 0x88, 0x8d, 0xa7, 0x0d, 0x1a, 0x4f, 0xf3, 0x7f, 0x0d,
    0x63, 0xf3, 0xc6, 0x4d, 0x6f, 0xd9, 0x8a, 0x90, 0xde, 0xf7, 0x47, 0x48, 0x7f, 0x23, 0x42, 0xb6,
    0x9c, 0x7f, 0xb0, 0xe5, 0xfc, 0xfe, 0x3f, 0x2d, 0xea, 0x6f, 0x0e, 0xc5, 0xaa, 0x19, 0x00, 0xad,
    0xf6, 0x00, 0x78, 0x53, 0x85, 0x30, 0xbd, 0xbb, 0x9e, 0x36, 0xcd, 0xc4, 0x77, 0x59, 0x49, 0xf5,
    0xb6, 0x49, 0x40, 0x6b, 0xc4, 0xaa, 0x2c, 0x31, 0x7d, 0x1f, 0xad, 0xf1, 0x14, 0x55, 0xf0, 0x94,
    0x43, 0x2a, 0x42, 0xe7, 0x30, 0x56, 0xa5, 0xa5, 0xbe, 0xaa, 0xf2, 0xcd, 0x99, 0x06, 0x55, 0xa0,
    0xbe, 0x0f, 0x8e, 0xd9, 0x54, 0xbf, 0x59, 0x79, 0xea, 0xae, 0xc6, 0x7f, 0x61, 0x9e, 0x6e, 0x34,
    0x6d, 0xb7, 0x34, 0xfd, 0x09, 0x19, 0xf8, 0xf1, 0x9a, 0x65, 0x68, 0xe0, 0x76, 0xcc, 0x59, 0x5b,
    0x31, 0x17, 0xad, 0x59, 0x16, 0x66, 0xd5, 0xa5, 0x1e, 0x4f, 0xc6, 0x48, 0x3f, 0xab, 0x2e, 0xfd,
    0xdf, 0x5b, 0xb0, 0x7b, 0x74, 0x86, 0x32, 0x56, 0xfc, 0x33, 0x2e, 0x25, 0x5b, 0x71, 0xf7, 0x03,
    0xec, 0xbf, 0xd1, 0x03, 0x51, 0xcc, 0xe2, 0xd1, 0xeb, 0xed, 0x9a, 0x76, 0x96, 0x72, 0xb5, 0x39,
    0x0e, 0xd4, 0x26, 0x6d, 0xe4, 0x5e, 0x6d, 0xe4, 0x03, 0x18, 0xb1, 0x08, 0xc7, 0x2b, 0xd2, 0xe6,
    0xe2, 0x91, 0xdb, 0xfc, 0xfd, 0xe8, 0xec, 0x90, 0x38, 0x81, 0xde, 0x41, 0xb1, 0x9c, 0x9d, 0xe7,
    0xda, 0x8e, 0xb4, 0xf6, 0xff, 0x6d, 0xc1, 0x5c, 0x55, 0xe1, 0x97, 0xd5, 0xf8, 0xef, 0x6d, 0x07,
    0x6f, 0xf8, 0x70, 0xe0, 0x7a, 0x30, 0xd6, 0xd9, 0xdb, 0xa4, 0x1c, 0x4d, 0x62, 0x9f, 0x57, 0x8a,
    0x64, 0xb5, 0xe2, 0x22, 0x4c, 0x93, 0xcc, 0x54, 0xa2, 0xa9, 0xc6, 0x3e, 0x4d, 0x32, 0xee, 0xbe,
    0x0b, 0x8b, 0x38, 0x11, 0x9c, 0x2e, 0xac, 0x36, 0x29, 0x43, 0xcf, 0x6b, 0x94, 0xb6, 0x19, 0x17,
    0x1a, 0xb7, 0x5c, 0x68, 0xab, 0x90, 0x4d, 0x48, 0xf9, 0xdd, 0x42, 0xf6, 0x47, 0x0b, 0xe6, 0x2f,
    0x92, 0x98, 0xe7, 0x25, 0x2b, 0x38, 0x35, 0xfa, 0xf7, 0x61, 0xc2, 0xe5, 0x11, 0x2b, 0x59, 0x1d,
    0xad, 0x35, 0x8d, 0x3c, 0xf3, 0xd4, 0xad, 0xa7, 0x37, 0x29, 0xa5, 0xdb, 0x08, 0x63, 0x90, 0x5f,
    0xae, 0x96, 0xaa, 0x92, 0xf5, 0x03, 0x45, 0xa0, 0xa4, 0x2b, 0x3c, 0xf6, 0xb9, 0x48, 0xcd, 0x1c,
    0x63, 0x68, 0x94, 0x44, 0xf9, 0x01, 0x6b, 0x58, 0x1f, 0x25, 0x29, 0xaa, 0xf3, 0x48, 0x3d, 0xe3,
    0xfa, 0xff, 0xe9, 0xc1, 0xf4, 0x71, 0x7e, 0x59, 0x30, 0xc1, 0xa9, 0x9d, 0xa1, 0xb1, 0xeb, 0x2c,
    0xe5, 0x4b, 0x9a, 0x1d, 0xfb, 0x6a, 0xec, 0x52, 0xb4, 0x7b, 0x00, 0x4e, 0xa4, 0xb6, 0x9e, 0xd6,
    0xa3, 0x6b, 0x8f, 0xbe, 0x8d, 0x6c, 0xe1, 0xee, 0x3e, 0x4c, 0xcf, 0x59, 0xc4, 0x9f, 0x72, 0x56,
    0x56, 0x42, 0xd9, 0x73, 0x16, 0xb4, 0x21, 0x7c, 0x97, 0x9a, 0x13, 0x07, 0x74, 0x8c, 0x22, 0x68,
    0x2e, 0x16, 0x9c, 0x3f, 0xcb, 0x63, 0xae, 0x4a, 0x89, 0x1d, 0x34, 0x00, 0xbd, 0x80, 0x9d, 0x99,
    0x77, 0xd1, 0xda, 0xdd, 0x83, 0x56, 0xfb, 0xa2, 0x0d, 0xd8, 0x6e, 0x68, 0xf6, 0x00, 0x24, 0x67,
    0x22, 0x5a, 0x9f, 0xaa, 0x52, 0x82, 0xff, 0x6c, 0x21, 0xc8, 0x4f, 0xb2, 0xa2, 0x52, 0x41, 0x6d,
    0x2a, 0x49, 0x83, 0x20, 0x3f, 0xca, 0xd3, 0x54, 0x39, 0x8b, 0x2e, 0x25, 0x2d, 0x84, 0xb4, 0x9d,
    0x57, 0x22, 0xaa, 0x8b, 0x89, 0xa2, 0xdc, 0x07, 0x30, 0x67, 0x19, 0x4b, 0xaf, 0xcd, 0x17, 0x10,
    0x5d, 0x94, 0xbb, 0xa0, 0x7f, 0x06, 0x33, 0xad, 0xfe, 0x27, 0x57, 0x3c, 0x2b, 0xdd, 0x1f, 0x83,
    0xcd, 0x71, 0x71, 0x6a, 0x12, 0xc1, 0xe2, 0xd1, 0xfd, 0xd6, 0xa8, 0xdd, 0xda, 0x8a, 0x3b, 0x82,
    0x66, 0x33, 0x85, 0x09, 0xbb, 0x4e, 0x73, 0xa6, 0x8c, 0x32, 0x0b, 0x0c, 0xe9, 0xff, 0x0a, 0x16,
    0x98, 0x69, 0xf4, 0x7f, 0x59, 0xb4, 0xde, 0x8a, 0x49, 0x0f, 0x9b, 0xd8, 0xb3, 0x94, 0xd7, 0x11,
    0x69, 0x48, 0xd7, 0x87, 0x99, 0xb6, 0xed, 0x49, 0x94, 0x6b, 0x43, 0xf6, 0x82, 0x0e, 0xe6, 0x07,
    0xe0, 0x34, 0xf2, 0x03, 0x2e, 0xab, 0xb4, 0x74, 0x7f, 0x0a, 0xf3, 0xa8, 0x0d, 0x90, 0x33, 0x4d,
    0x1f, 0x79, 0x9d, 0x62, 0xd4, 0xba, 0x52, 0xd0, 0xdd, 0xee, 0xff, 0xae, 0x0f, 0x36, 0x3d, 0xf3,
    0xb8, 0x92, 0xeb, 0x57, 0x9a, 0x13, 0xde, 0xd2, 0xf3, 0x8b, 0x9a, 0x41, 0x54, 0x0c, 0xd1, 0xa8,
    0x72, 0x42, 0x73, 0xc8, 0x3d, 0xa0, 0x31, 0x28, 0xc4, 0x61, 0x44, 0xa7, 0x11, 0xa4, 0x9f, 0x64,
    0xd4, 0x73, 0x26, 0x32, 0x94, 0xac, 0x4c, 0xe4, 0xf9, 0x75, 0xc8, 0x52, 0x15, 0x51, 0x93, 0x60,
    0x96, 0xc8, 0x13, 0x05, 0x1e, 0xa6, 0x29, 0xe6, 0x2d, 0xea, 0xc1, 0xa8, 0xaf, 0xd6, 0x9f, 0x73,
    0x10, 0xa0, 0xb6, 0xba, 0xa9, 0xfb, 0xe3, 0x4e, 0xdd, 0x7f, 0x03, 0x6c, 0x35, 0xe5, 0x35, 0x1d,
    0xe1, 0x84, 0x46, 0x3c, 0xb4, 0xd8, 0xdb, 0x30, 0x25, 0xa6, 0x9e, 0x52, 0xed, 0x66, 0x02, 0xd4,
    0x43, 0xea, 0xff, 0xc3, 0x24, 0x29, 0xc2, 0x22, 0x17, 0xa5, 0xf4, 0x60, 0xb3, 0x6b, 0x40, 0xc5,
    0x2c, 0x8b, 0xe3, 0x5c, 0x94, 0xc1, 0x38, 0xa1, 0x5f, 0xe9, 0xbe, 0x0b, 0x83, 0x4a, 0xa4, 0xd2,
    0x9b, 0x6e, 0x56, 0x7e, 0xdc, 0xfc, 0x5c, 0xa4, 0x01, 0xb1, 0xdd, 0xff, 0x33, 0x1d, 0xc2, 0x6c,
    0x73, 0xec, 0xa9, 0x55, 0xde, 0xea, 0x13, 0xfc, 0x6f, 0x2c, 0x98, 0x77, 0x18, 0x5b, 0xf6, 0x40,
    0xdd, 0xe7, 0x45, 0x12, 0xb5, 0x3f, 0x3b, 0xd8, 0x84, 0xd0, 0x43, 0x71, 0x26, 0x25, 0x36, 0x13,
    0xab, 0x7a, 0x26, 0x45, 0x00, 0xeb, 0x7c, 0xbb, 0x65, 0x18, 0xfc, 0x50, 0x53, 0x3d, 0xbc, 0xa1,
    0xa9, 0xa6, 0xef, 0x96, 0x29, 0xd7, 0x95, 0x7a, 0xa4, 0x3f, 0x06, 0x54, 0x29, 0x57, 0xf1, 0xeb,
    0xc3, 0x9c, 0x82, 0x24, 0x2c, 0x2a, 0xb9, 0xc6, 0x9a, 0xa3, 0x52, 0xc4, 0x94, 0x9b, 0x17, 0x2d,
    0x63, 0xff, 0x39, 0x40, 0xa3, 0x4e, 0xbc, 0xae, 0xf9, 0x94, 0x59, 0x98, 0x14, 0xae, 0x80, 0x65,
    0xf3, 0x11, 0xb0, 0xd7, 0xfa, 0x08, 0xf8, 0xb2, 0xa1, 0xed, 0x23, 0x18, 0x6b, 0xc5, 0x9b, 0x1e,
    0xd7, 0x6a, 0x7a, 0xdc, 0x97, 0xb4, 0x8a, 0xfe, 0x9f, 0x2c, 0x75, 0x99, 0xc3, 0xb2, 0xc4, 0x50,
    0xbd, 0x0b, 0x63, 0x73, 0x71, 0xdd, 0x6a, 0x16, 0x74, 0x67, 0xd7, 0x87, 0x7e, 0xc4, 0x54, 0x47,
    0x70, 0xd3, 0xe7, 0x38, 0x64, 0xb6, 0x5f, 0x52, 0xcf, 0x49, 0xd2, 0x7c, 0x91, 0x7d, 0x1b, 0xa6,
    0x9a, 0xd9, 0x6a, 0xe7, 0x41, 0x41, 0xd4, 0xd1, 0xdf, 0x83, 0x49, 0x9a, 0x47, 0x2c, 0x45, 0x35,
    0xe8, 0x21, 0x8f, 0xe8, 0x65, 0x81, 0x82, 0xa9, 0xdc, 0xd0, 0x47, 0xf8, 0x51, 0xb7, 0xfe, 0xf8,
    0x7f, 0xb7, 0xe0, 0xf6, 0x13, 0x79, 0xcc, 0x85, 0xcc, 0xb3, 0xc7, 0x2c, 0x5a, 0xeb, 0x9e, 0xc3,
    0xfd, 0x40, 0xd7, 0x1f, 0x95, 0xd6, 0x5a, 0xa9, 0xe0, 0x89, 0x6c, 0x6d, 0x8b, 0x75, 0xf9, 0xbd,
    0xa7, 0x2b, 0x91, 0x6a, 0x13, 0xfa, 0x75, 0x52, 0x52, 0xe3, 0x5f, 0x41, 0xd2, 0x5b, 0xcf, 0x52,
    0xc0, 0x92, 0x72, 0xd9, 0xb9, 0xae, 0x3a, 0x3a, 0xce, 0x35, 0xd9, 0xea, 0x6d, 0x86, 0x3f, 0xd8,
    0xdb, 0x74, 0xbf, 0x05, 0x0e, 0x8d, 0x75, 0x0e, 0x7e, 0xdb, 0x83, 0x59, 0xbb, 0x8f, 0x72, 0x67,
    0x30, 0x39, 0x0d, 0x95, 0xce, 0x9d, 0x1d, 0xd7, 0x81, 0x99, 0xa1, 0x70, 0x5c, 0x70, 0x2c, 0xf7,
    0x0e, 0x38, 0x6d, 0x04, 0x8b, 0xac, 0xd3, 0x73, 0x01, 0x46, 0xa7, 0x21, 0xed, 0xe8, 0xbb, 0x73,
    0xb0, 0xd5, 0xfa, 0x24, 0xbe, 0x70, 0x06, 0xee, 0x2d, 0x98, 0xd7, 0x24, 0x06, 0x9b, 0x33, 0x74,
    0x6d, 0x18, 0x9e, 0x86, 0xc8, 0x1d, 0xb9, 0xb7, 0x61, 0xd7, 0x88, 0xd3, 0x0d, 0x96, 0x33, 0x76,
    0x17, 0x00, 0xa7, 0xe1, 0xa9, 0xfe, 0xc8, 0xe3, 0x4c, 0xd4, 0x9d, 0x54, 0x89, 0x71, 0x6c, 0x75,
    0xa7, 0xe3, 0x3c, 0x4d, 0x1f, 0xe7, 0xd9, 0x79, 0xb2, 0x72, 0x40, 0x9d, 0xfe, 0x34, 0x49, 0xb9,
    0x33, 0x55, 0xc7, 0xe1, 0xfa, 0x84, 0x97, 0x65, 0x92, 0xad, 0x9c, 0x99, 0xfa, 0x43, 0xd3, 0x9b,
    0x3a, 0x73, 0x77, 0x17, 0xa6, 0x7a, 0x53, 0xc9, 0xa2, 0x0b, 0x67, 0x71, 0xf0, 0x21, 0x4c, 0x8c,
    0xca, 0x50, 0xda, 0x32, 0x93, 0x5c, 0x94, 0xce, 0x0e, 0xae, 0x9f, 0xd3, 0x10, 0xe6, 0x58, 0xb8,
    0x3e, 0xe2, 0x29, 0x2f, 0xb9, 0xd3, 0x3b, 0x38, 0x04, 0x67, 0xb3, 0x76, 0xa1, 0xd0, 0x80, 0x2f,
    0xb3, 0xa4, 0x24, 0xe3, 0x3b, 0x3b, 0x08, 0xa8, 0x3f, 0x2b, 0xc0, 0x72, 0xa7, 0x30, 0xd6, 0xff,
    0x72, 0x7a, 0x07, 0x1f, 0xc3, 0xa2, 0xeb, 0x27, 0x4a, 0x71, 0x47, 0x67, 0x64, 0x0e, 0x67, 0x47,
    0xa9, 0x46, 0x93, 0xca, 0xf9, 0x1c, 0xeb, 0x13, 0xef, 0x2f, 0xdf, 0xee, 0x59, 0x5f, 0x7d, 0xbb,
    0x67, 0xfd, 0xe3, 0xdb, 0x3d, 0xeb, 0x0f, 0xdf, 0xed, 0xed, 0x7c, 0xf5, 0xdd, 0xde, 0xce, 0xdf,
    0xbe, 0xdb, 0xdb, 0x39, 0x1b, 0x91, 0xf1, 0x3f, 0xfa, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb9,
    0x00, 0xf7, 0xc0, 0x06, 0x1b, 0x00, 0x00,
}
func (m *Area) Marshal() (dAtA []byte, err error) {
@@ -3418,6 +3558,107 @@
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(len(m.RunServerId)))
        i += copy(dAtA[i:], m.RunServerId)
    }
    if m.ResolutionWidth != 0 {
        dAtA[i] = 0xa8
        i++
        dAtA[i] = 0x1
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(m.ResolutionWidth))
    }
    if m.ResolutionHeight != 0 {
        dAtA[i] = 0xb0
        i++
        dAtA[i] = 0x1
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(m.ResolutionHeight))
    }
    if len(m.Sensors) > 0 {
        for _, msg := range m.Sensors {
            dAtA[i] = 0xba
            i++
            dAtA[i] = 0x1
            i++
            i = encodeVarintProtomsg(dAtA, i, uint64(msg.Size()))
            n, err := msg.MarshalTo(dAtA[i:])
            if err != nil {
                return 0, err
            }
            i += n
        }
    }
    return i, nil
}
func (m *Sensor) Marshal() (dAtA []byte, err error) {
    size := m.Size()
    dAtA = make([]byte, size)
    n, err := m.MarshalTo(dAtA)
    if err != nil {
        return nil, err
    }
    return dAtA[:n], nil
}
func (m *Sensor) MarshalTo(dAtA []byte) (int, error) {
    var i int
    _ = i
    var l int
    _ = l
    if len(m.Id) > 0 {
        dAtA[i] = 0xa
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Id)))
        i += copy(dAtA[i:], m.Id)
    }
    if m.Type != 0 {
        dAtA[i] = 0x10
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(m.Type))
    }
    if len(m.Ip) > 0 {
        dAtA[i] = 0x1a
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Ip)))
        i += copy(dAtA[i:], m.Ip)
    }
    if m.Port != 0 {
        dAtA[i] = 0x20
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(m.Port))
    }
    if len(m.Username) > 0 {
        dAtA[i] = 0x2a
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Username)))
        i += copy(dAtA[i:], m.Username)
    }
    if len(m.Password) > 0 {
        dAtA[i] = 0x32
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Password)))
        i += copy(dAtA[i:], m.Password)
    }
    if m.Threshold != 0 {
        dAtA[i] = 0x38
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(m.Threshold))
    }
    if m.Enable {
        dAtA[i] = 0x40
        i++
        if m.Enable {
            dAtA[i] = 1
        } else {
            dAtA[i] = 0
        }
        i++
    }
    if len(m.DevId) > 0 {
        dAtA[i] = 0x4a
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(len(m.DevId)))
        i += copy(dAtA[i:], m.DevId)
    }
    return i, nil
}
@@ -5379,6 +5620,59 @@
    if l > 0 {
        n += 2 + l + sovProtomsg(uint64(l))
    }
    if m.ResolutionWidth != 0 {
        n += 2 + sovProtomsg(uint64(m.ResolutionWidth))
    }
    if m.ResolutionHeight != 0 {
        n += 2 + sovProtomsg(uint64(m.ResolutionHeight))
    }
    if len(m.Sensors) > 0 {
        for _, e := range m.Sensors {
            l = e.Size()
            n += 2 + l + sovProtomsg(uint64(l))
        }
    }
    return n
}
func (m *Sensor) Size() (n int) {
    if m == nil {
        return 0
    }
    var l int
    _ = l
    l = len(m.Id)
    if l > 0 {
        n += 1 + l + sovProtomsg(uint64(l))
    }
    if m.Type != 0 {
        n += 1 + sovProtomsg(uint64(m.Type))
    }
    l = len(m.Ip)
    if l > 0 {
        n += 1 + l + sovProtomsg(uint64(l))
    }
    if m.Port != 0 {
        n += 1 + sovProtomsg(uint64(m.Port))
    }
    l = len(m.Username)
    if l > 0 {
        n += 1 + l + sovProtomsg(uint64(l))
    }
    l = len(m.Password)
    if l > 0 {
        n += 1 + l + sovProtomsg(uint64(l))
    }
    if m.Threshold != 0 {
        n += 1 + sovProtomsg(uint64(m.Threshold))
    }
    if m.Enable {
        n += 2
    }
    l = len(m.DevId)
    if l > 0 {
        n += 1 + l + sovProtomsg(uint64(l))
    }
    return n
}
@@ -7055,6 +7349,368 @@
            }
            m.RunServerId = string(dAtA[iNdEx:postIndex])
            iNdEx = postIndex
        case 21:
            if wireType != 0 {
                return fmt.Errorf("proto: wrong wireType = %d for field ResolutionWidth", wireType)
            }
            m.ResolutionWidth = 0
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                m.ResolutionWidth |= int32(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
        case 22:
            if wireType != 0 {
                return fmt.Errorf("proto: wrong wireType = %d for field ResolutionHeight", wireType)
            }
            m.ResolutionHeight = 0
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                m.ResolutionHeight |= int32(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
        case 23:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field Sensors", wireType)
            }
            var msglen int
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                msglen |= int(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
            if msglen < 0 {
                return ErrInvalidLengthProtomsg
            }
            postIndex := iNdEx + msglen
            if postIndex < 0 {
                return ErrInvalidLengthProtomsg
            }
            if postIndex > l {
                return io.ErrUnexpectedEOF
            }
            m.Sensors = append(m.Sensors, &Sensor{})
            if err := m.Sensors[len(m.Sensors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
                return err
            }
            iNdEx = postIndex
        default:
            iNdEx = preIndex
            skippy, err := skipProtomsg(dAtA[iNdEx:])
            if err != nil {
                return err
            }
            if skippy < 0 {
                return ErrInvalidLengthProtomsg
            }
            if (iNdEx + skippy) < 0 {
                return ErrInvalidLengthProtomsg
            }
            if (iNdEx + skippy) > l {
                return io.ErrUnexpectedEOF
            }
            iNdEx += skippy
        }
    }
    if iNdEx > l {
        return io.ErrUnexpectedEOF
    }
    return nil
}
func (m *Sensor) Unmarshal(dAtA []byte) error {
    l := len(dAtA)
    iNdEx := 0
    for iNdEx < l {
        preIndex := iNdEx
        var wire uint64
        for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
                return ErrIntOverflowProtomsg
            }
            if iNdEx >= l {
                return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            wire |= uint64(b&0x7F) << shift
            if b < 0x80 {
                break
            }
        }
        fieldNum := int32(wire >> 3)
        wireType := int(wire & 0x7)
        if wireType == 4 {
            return fmt.Errorf("proto: Sensor: wiretype end group for non-group")
        }
        if fieldNum <= 0 {
            return fmt.Errorf("proto: Sensor: illegal tag %d (wire type %d)", fieldNum, wire)
        }
        switch fieldNum {
        case 1:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
            }
            var stringLen uint64
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                stringLen |= uint64(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
            intStringLen := int(stringLen)
            if intStringLen < 0 {
                return ErrInvalidLengthProtomsg
            }
            postIndex := iNdEx + intStringLen
            if postIndex < 0 {
                return ErrInvalidLengthProtomsg
            }
            if postIndex > l {
                return io.ErrUnexpectedEOF
            }
            m.Id = string(dAtA[iNdEx:postIndex])
            iNdEx = postIndex
        case 2:
            if wireType != 0 {
                return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
            }
            m.Type = 0
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                m.Type |= int32(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
        case 3:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field Ip", wireType)
            }
            var stringLen uint64
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                stringLen |= uint64(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
            intStringLen := int(stringLen)
            if intStringLen < 0 {
                return ErrInvalidLengthProtomsg
            }
            postIndex := iNdEx + intStringLen
            if postIndex < 0 {
                return ErrInvalidLengthProtomsg
            }
            if postIndex > l {
                return io.ErrUnexpectedEOF
            }
            m.Ip = string(dAtA[iNdEx:postIndex])
            iNdEx = postIndex
        case 4:
            if wireType != 0 {
                return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType)
            }
            m.Port = 0
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                m.Port |= int32(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
        case 5:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field Username", wireType)
            }
            var stringLen uint64
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                stringLen |= uint64(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
            intStringLen := int(stringLen)
            if intStringLen < 0 {
                return ErrInvalidLengthProtomsg
            }
            postIndex := iNdEx + intStringLen
            if postIndex < 0 {
                return ErrInvalidLengthProtomsg
            }
            if postIndex > l {
                return io.ErrUnexpectedEOF
            }
            m.Username = string(dAtA[iNdEx:postIndex])
            iNdEx = postIndex
        case 6:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field Password", wireType)
            }
            var stringLen uint64
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                stringLen |= uint64(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
            intStringLen := int(stringLen)
            if intStringLen < 0 {
                return ErrInvalidLengthProtomsg
            }
            postIndex := iNdEx + intStringLen
            if postIndex < 0 {
                return ErrInvalidLengthProtomsg
            }
            if postIndex > l {
                return io.ErrUnexpectedEOF
            }
            m.Password = string(dAtA[iNdEx:postIndex])
            iNdEx = postIndex
        case 7:
            if wireType != 0 {
                return fmt.Errorf("proto: wrong wireType = %d for field Threshold", wireType)
            }
            m.Threshold = 0
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                m.Threshold |= int32(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
        case 8:
            if wireType != 0 {
                return fmt.Errorf("proto: wrong wireType = %d for field Enable", wireType)
            }
            var v int
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                v |= int(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
            m.Enable = bool(v != 0)
        case 9:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field DevId", wireType)
            }
            var stringLen uint64
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                stringLen |= uint64(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
            intStringLen := int(stringLen)
            if intStringLen < 0 {
                return ErrInvalidLengthProtomsg
            }
            postIndex := iNdEx + intStringLen
            if postIndex < 0 {
                return ErrInvalidLengthProtomsg
            }
            if postIndex > l {
                return io.ErrUnexpectedEOF
            }
            m.DevId = string(dAtA[iNdEx:postIndex])
            iNdEx = postIndex
        default:
            iNdEx = preIndex
            skippy, err := skipProtomsg(dAtA[iNdEx:])
protomsg.proto
@@ -36,6 +36,22 @@
    int32 run_type = 19;//做任务的类型(0:轮询,1:实时)
    string run_server_id = 20;//当前正在哪台服务器上做任务
    int32 resolution_width = 21; //分辨率宽
    int32 resolution_height = 22; //分辨率高
    repeated Sensor sensors = 23; //传感器
}
message Sensor {
    string id = 1;
    int32 type = 2;
    string ip = 3;
    int32 port = 4;
    string username = 5;
    string password = 6;
    int32 threshold = 7;
    bool enable = 8;
    string devId = 9;
}
//摄像机联动