554325746@qq.com
2019-06-18 96ef80d40b8e4ae16a21f0bda25e260009137c3c
modify sdkinfo with task
2个文件已修改
652 ■■■■■ 已修改文件
protomsg.pb.go 552 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
protomsg.proto 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
protomsg.pb.go
@@ -91,20 +91,83 @@
    return fileDescriptor_32de24555f916688, []int{1}
}
type TaskLabel struct {
    Taskid               string   `protobuf:"bytes,1,opt,name=taskid,proto3" json:"taskid,omitempty"`
    Sdkids               []string `protobuf:"bytes,2,rep,name=sdkids,proto3" json:"sdkids,omitempty"`
    Index                int32    `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
type SdkmsgWithTask struct {
    Sdkid                string   `protobuf:"bytes,1,opt,name=sdkid,proto3" json:"sdkid,omitempty"`
    Sdktype              string   `protobuf:"bytes,2,opt,name=sdktype,proto3" json:"sdktype,omitempty"`
    Sdkdata              []byte   `protobuf:"bytes,3,opt,name=sdkdata,proto3" json:"sdkdata,omitempty"`
    XXX_NoUnkeyedLiteral struct{} `json:"-"`
    XXX_unrecognized     []byte   `json:"-"`
    XXX_sizecache        int32    `json:"-"`
}
func (m *SdkmsgWithTask) Reset()         { *m = SdkmsgWithTask{} }
func (m *SdkmsgWithTask) String() string { return proto.CompactTextString(m) }
func (*SdkmsgWithTask) ProtoMessage()    {}
func (*SdkmsgWithTask) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{0}
}
func (m *SdkmsgWithTask) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
}
func (m *SdkmsgWithTask) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    if deterministic {
        return xxx_messageInfo_SdkmsgWithTask.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 *SdkmsgWithTask) XXX_Merge(src proto.Message) {
    xxx_messageInfo_SdkmsgWithTask.Merge(m, src)
}
func (m *SdkmsgWithTask) XXX_Size() int {
    return m.Size()
}
func (m *SdkmsgWithTask) XXX_DiscardUnknown() {
    xxx_messageInfo_SdkmsgWithTask.DiscardUnknown(m)
}
var xxx_messageInfo_SdkmsgWithTask proto.InternalMessageInfo
func (m *SdkmsgWithTask) GetSdkid() string {
    if m != nil {
        return m.Sdkid
    }
    return ""
}
func (m *SdkmsgWithTask) GetSdktype() string {
    if m != nil {
        return m.Sdktype
    }
    return ""
}
func (m *SdkmsgWithTask) GetSdkdata() []byte {
    if m != nil {
        return m.Sdkdata
    }
    return nil
}
type TaskLabel struct {
    Taskid               string            `protobuf:"bytes,1,opt,name=taskid,proto3" json:"taskid,omitempty"`
    Sdkinfos             []*SdkmsgWithTask `protobuf:"bytes,2,rep,name=sdkinfos,proto3" json:"sdkinfos,omitempty"`
    Index                int32             `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
    XXX_NoUnkeyedLiteral struct{}          `json:"-"`
    XXX_unrecognized     []byte            `json:"-"`
    XXX_sizecache        int32             `json:"-"`
}
func (m *TaskLabel) Reset()         { *m = TaskLabel{} }
func (m *TaskLabel) String() string { return proto.CompactTextString(m) }
func (*TaskLabel) ProtoMessage()    {}
func (*TaskLabel) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{0}
    return fileDescriptor_32de24555f916688, []int{1}
}
func (m *TaskLabel) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -140,9 +203,9 @@
    return ""
}
func (m *TaskLabel) GetSdkids() []string {
func (m *TaskLabel) GetSdkinfos() []*SdkmsgWithTask {
    if m != nil {
        return m.Sdkids
        return m.Sdkinfos
    }
    return nil
}
@@ -168,7 +231,7 @@
func (m *SdkMessage) String() string { return proto.CompactTextString(m) }
func (*SdkMessage) ProtoMessage()    {}
func (*SdkMessage) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{1}
    return fileDescriptor_32de24555f916688, []int{2}
}
func (m *SdkMessage) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -232,7 +295,7 @@
func (m *Area) String() string { return proto.CompactTextString(m) }
func (*Area) ProtoMessage()    {}
func (*Area) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{2}
    return fileDescriptor_32de24555f916688, []int{3}
}
func (m *Area) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -307,7 +370,7 @@
func (m *Camera) String() string { return proto.CompactTextString(m) }
func (*Camera) ProtoMessage()    {}
func (*Camera) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{3}
    return fileDescriptor_32de24555f916688, []int{4}
}
func (m *Camera) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -447,7 +510,7 @@
func (m *CameraAndTaskInfo) String() string { return proto.CompactTextString(m) }
func (*CameraAndTaskInfo) ProtoMessage()    {}
func (*CameraAndTaskInfo) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{4}
    return fileDescriptor_32de24555f916688, []int{5}
}
func (m *CameraAndTaskInfo) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -509,7 +572,7 @@
func (m *Task) String() string { return proto.CompactTextString(m) }
func (*Task) ProtoMessage()    {}
func (*Task) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{5}
    return fileDescriptor_32de24555f916688, []int{6}
}
func (m *Task) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -606,7 +669,7 @@
func (m *TaskSdkInfo) String() string { return proto.CompactTextString(m) }
func (*TaskSdkInfo) ProtoMessage()    {}
func (*TaskSdkInfo) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{6}
    return fileDescriptor_32de24555f916688, []int{7}
}
func (m *TaskSdkInfo) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -672,7 +735,7 @@
func (m *CameraTask) String() string { return proto.CompactTextString(m) }
func (*CameraTask) ProtoMessage()    {}
func (*CameraTask) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{7}
    return fileDescriptor_32de24555f916688, []int{8}
}
func (m *CameraTask) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -799,7 +862,7 @@
func (m *CameraTimerule) String() string { return proto.CompactTextString(m) }
func (*CameraTimerule) ProtoMessage()    {}
func (*CameraTimerule) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{8}
    return fileDescriptor_32de24555f916688, []int{9}
}
func (m *CameraTimerule) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -862,7 +925,7 @@
func (m *DayCtl) String() string { return proto.CompactTextString(m) }
func (*DayCtl) ProtoMessage()    {}
func (*DayCtl) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{9}
    return fileDescriptor_32de24555f916688, []int{10}
}
func (m *DayCtl) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -918,7 +981,7 @@
func (m *TimeRange) String() string { return proto.CompactTextString(m) }
func (*TimeRange) ProtoMessage()    {}
func (*TimeRange) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{10}
    return fileDescriptor_32de24555f916688, []int{11}
}
func (m *TimeRange) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -975,7 +1038,7 @@
func (m *Polygon) String() string { return proto.CompactTextString(m) }
func (*Polygon) ProtoMessage()    {}
func (*Polygon) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{11}
    return fileDescriptor_32de24555f916688, []int{12}
}
func (m *Polygon) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1037,7 +1100,7 @@
func (m *CameraTaskArgs) String() string { return proto.CompactTextString(m) }
func (*CameraTaskArgs) ProtoMessage()    {}
func (*CameraTaskArgs) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{12}
    return fileDescriptor_32de24555f916688, []int{13}
}
func (m *CameraTaskArgs) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1092,7 +1155,7 @@
func (m *TaskGroupArgs) String() string { return proto.CompactTextString(m) }
func (*TaskGroupArgs) ProtoMessage()    {}
func (*TaskGroupArgs) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{13}
    return fileDescriptor_32de24555f916688, []int{14}
}
func (m *TaskGroupArgs) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1147,7 +1210,7 @@
func (m *GroupRule) String() string { return proto.CompactTextString(m) }
func (*GroupRule) ProtoMessage()    {}
func (*GroupRule) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{14}
    return fileDescriptor_32de24555f916688, []int{15}
}
func (m *GroupRule) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1212,7 +1275,7 @@
func (m *Rule) String() string { return proto.CompactTextString(m) }
func (*Rule) ProtoMessage()    {}
func (*Rule) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{15}
    return fileDescriptor_32de24555f916688, []int{16}
}
func (m *Rule) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1347,7 +1410,7 @@
func (m *Sdk) String() string { return proto.CompactTextString(m) }
func (*Sdk) ProtoMessage()    {}
func (*Sdk) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{16}
    return fileDescriptor_32de24555f916688, []int{17}
}
func (m *Sdk) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1471,7 +1534,7 @@
func (m *SdkArg) String() string { return proto.CompactTextString(m) }
func (*SdkArg) ProtoMessage()    {}
func (*SdkArg) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{17}
    return fileDescriptor_32de24555f916688, []int{18}
}
func (m *SdkArg) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1564,7 +1627,7 @@
func (m *DbChangeMessage) String() string { return proto.CompactTextString(m) }
func (*DbChangeMessage) ProtoMessage()    {}
func (*DbChangeMessage) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{18}
    return fileDescriptor_32de24555f916688, []int{19}
}
func (m *DbChangeMessage) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1639,7 +1702,7 @@
func (m *CameraPolygon) String() string { return proto.CompactTextString(m) }
func (*CameraPolygon) ProtoMessage()    {}
func (*CameraPolygon) Descriptor() ([]byte, []int) {
    return fileDescriptor_32de24555f916688, []int{19}
    return fileDescriptor_32de24555f916688, []int{20}
}
func (m *CameraPolygon) XXX_Unmarshal(b []byte) error {
    return m.Unmarshal(b)
@@ -1727,6 +1790,7 @@
func init() {
    proto.RegisterEnum("protomsg.TableChanged", TableChanged_name, TableChanged_value)
    proto.RegisterEnum("protomsg.DbAction", DbAction_name, DbAction_value)
    proto.RegisterType((*SdkmsgWithTask)(nil), "protomsg.SdkmsgWithTask")
    proto.RegisterType((*TaskLabel)(nil), "protomsg.TaskLabel")
    proto.RegisterType((*SdkMessage)(nil), "protomsg.SdkMessage")
    proto.RegisterType((*Area)(nil), "protomsg.Area")
@@ -1752,98 +1816,139 @@
func init() { proto.RegisterFile("protomsg.proto", fileDescriptor_32de24555f916688) }
var fileDescriptor_32de24555f916688 = []byte{
    // 1447 bytes of a gzipped FileDescriptorProto
    // 1484 bytes of a gzipped FileDescriptorProto
    0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0xcd, 0x8e, 0xd4, 0xc6,
    0x13, 0xc7, 0xf3, 0x69, 0xd7, 0x7c, 0x30, 0xf4, 0x9f, 0x3f, 0x18, 0x08, 0x9b, 0xc5, 0x10, 0x65,
    0x85, 0x12, 0x0e, 0x0b, 0x2f, 0x30, 0xb0, 0x22, 0x5a, 0x89, 0x20, 0xe8, 0xdd, 0x90, 0x5b, 0xac,
    0x9e, 0xe9, 0xde, 0xc1, 0x1a, 0xaf, 0x3d, 0xea, 0xee, 0x81, 0xec, 0x21, 0xcf, 0x90, 0x2b, 0xef,
    0x90, 0x17, 0xe1, 0x98, 0x37, 0x48, 0x44, 0xa4, 0x5c, 0xa2, 0xbc, 0x43, 0x54, 0xd5, 0x6d, 0x8f,
    0x67, 0x81, 0x84, 0x5b, 0xd5, 0xaf, 0xca, 0xd5, 0xd5, 0xbf, 0xfa, 0x68, 0xc3, 0x78, 0xa5, 0x4b,
    0x5b, 0x9e, 0x9a, 0xc5, 0x3d, 0x12, 0x58, 0x58, 0xe9, 0xd7, 0x61, 0x26, 0x8c, 0x72, 0x68, 0xf2,
    0x1c, 0xa2, 0x63, 0x61, 0x96, 0x4f, 0xc4, 0x4c, 0xe5, 0xec, 0x0a, 0xf4, 0xac, 0x30, 0xcb, 0x4c,
    0xc6, 0xc1, 0x6e, 0xb0, 0x17, 0x71, 0xaf, 0x21, 0x6e, 0xe4, 0x32, 0x93, 0x26, 0x6e, 0xed, 0xb6,
    0x11, 0x77, 0x1a, 0xbb, 0x0c, 0xdd, 0xac, 0x90, 0xea, 0xc7, 0xb8, 0xbd, 0x1b, 0xec, 0x75, 0xb9,
    0x53, 0x12, 0x01, 0x70, 0x24, 0x97, 0xdf, 0x2a, 0x63, 0xc4, 0x42, 0xb1, 0x09, 0xb4, 0xe7, 0x75,
    0x40, 0x14, 0xd9, 0xd7, 0xd0, 0xc7, 0xb8, 0xb9, 0x98, 0xc5, 0xad, 0xdd, 0x60, 0x6f, 0xb0, 0xff,
    0xbf, 0x7b, 0x75, 0xaa, 0x75, 0x2e, 0xbc, 0xf2, 0x61, 0x0c, 0x3a, 0x52, 0x58, 0x41, 0x67, 0x0c,
    0x39, 0xc9, 0xc9, 0x63, 0xe8, 0x4c, 0xb5, 0x12, 0x6c, 0x0c, 0x2d, 0x1f, 0xbb, 0xcb, 0x5b, 0x99,
    0x64, 0xd7, 0x21, 0x5c, 0x09, 0xad, 0x0a, 0x9b, 0x49, 0x8a, 0xdd, 0xe5, 0xb5, 0x8e, 0x71, 0x0a,
    0x71, 0xaa, 0x28, 0x4e, 0xc4, 0x49, 0x4e, 0xde, 0xb6, 0xa0, 0xf7, 0x48, 0x9c, 0x2a, 0xdd, 0x0c,
    0x15, 0x51, 0xa8, 0xca, 0xbd, 0xb5, 0x71, 0x47, 0xcc, 0x9e, 0xad, 0x94, 0xbf, 0x2e, 0xc9, 0x88,
    0x09, 0x29, 0x75, 0xdc, 0x71, 0x7e, 0x28, 0x23, 0x5f, 0x42, 0x2b, 0x91, 0xc9, 0xb8, 0x4b, 0x9e,
    0x5e, 0x63, 0x9f, 0x41, 0x94, 0x97, 0xc5, 0x22, 0xb3, 0x6b, 0xa9, 0xe2, 0xde, 0x6e, 0xb0, 0xd7,
    0xe2, 0x1b, 0x00, 0x93, 0xcf, 0x85, 0x75, 0xc6, 0x3e, 0x19, 0x6b, 0x1d, 0x4f, 0xd1, 0xd6, 0xac,
    0xe2, 0xd0, 0x9d, 0x82, 0x32, 0x65, 0xbc, 0x8a, 0x23, 0x9f, 0xf1, 0x0a, 0x7d, 0x56, 0xa5, 0xb6,
    0x31, 0xb8, 0xec, 0x50, 0xc6, 0x98, 0x6b, 0xa3, 0x34, 0xdd, 0x64, 0x40, 0x9e, 0xb5, 0xee, 0xc8,
    0x32, 0xe6, 0x75, 0xa9, 0x65, 0x3c, 0x74, 0xb6, 0x4a, 0xc7, 0xca, 0xce, 0xb4, 0x28, 0x64, 0x3c,
    0x22, 0x83, 0x53, 0xf0, 0x0b, 0xad, 0x8c, 0xd2, 0xaf, 0x94, 0x8c, 0xc7, 0xee, 0x8b, 0x4a, 0x4f,
    0xe6, 0x70, 0xc9, 0x31, 0x39, 0x2d, 0x24, 0x56, 0xf1, 0xb0, 0x38, 0x29, 0xd9, 0x1e, 0xf4, 0xe6,
    0x04, 0x12, 0xb1, 0x83, 0xfd, 0xc9, 0xa6, 0xd2, 0xce, 0x99, 0x7b, 0x3b, 0xbb, 0x03, 0x5d, 0x2c,
    0xb8, 0xeb, 0xb0, 0xc1, 0xfe, 0x78, 0xbb, 0x25, 0xb8, 0x33, 0x26, 0xbf, 0x05, 0xd0, 0x41, 0xfd,
    0xa3, 0x9d, 0x7a, 0x1d, 0x42, 0x94, 0x1a, 0x95, 0xab, 0x75, 0x76, 0x03, 0xa2, 0xb9, 0x56, 0xc2,
    0xaa, 0x54, 0x58, 0xdf, 0x05, 0xa1, 0x03, 0xa6, 0xb6, 0x61, 0x9c, 0x9d, 0xf9, 0x5a, 0x7a, 0xe3,
    0xc3, 0x33, 0x34, 0xae, 0x57, 0xd2, 0x7f, 0xd9, 0xf5, 0x34, 0x12, 0x30, 0xb5, 0x98, 0x8a, 0x2a,
    0xc4, 0x2c, 0x77, 0x15, 0x0d, 0xb9, 0xd7, 0xd8, 0x35, 0x08, 0x33, 0x93, 0x8a, 0x5c, 0xe8, 0x53,
    0x2a, 0x67, 0xc8, 0xfb, 0x99, 0x99, 0xa2, 0x8a, 0x26, 0xa9, 0xf2, 0xf4, 0x24, 0x17, 0x0b, 0xaa,
    0x68, 0xc8, 0xfb, 0x52, 0xe5, 0x8f, 0x73, 0xb1, 0x48, 0x8e, 0x61, 0x80, 0x17, 0x3c, 0x92, 0x8e,
    0xc0, 0x04, 0x3a, 0x98, 0xbf, 0xa7, 0xef, 0x3c, 0x2b, 0x64, 0x63, 0xb7, 0xa0, 0x63, 0x64, 0xcd,
    0xdc, 0x68, 0xe3, 0x73, 0x24, 0x97, 0x9c, 0x4c, 0xc9, 0x9f, 0x2d, 0x00, 0x47, 0x38, 0xb1, 0x77,
    0xbe, 0xd7, 0xf1, 0xf2, 0x64, 0x4d, 0xfd, 0xdc, 0xe0, 0xe5, 0x09, 0x38, 0x94, 0xec, 0xaa, 0x1b,
    0x57, 0x34, 0xb5, 0x37, 0x5c, 0x1f, 0xe2, 0x1c, 0x47, 0x36, 0x3b, 0x55, 0xa9, 0x5e, 0xe7, 0x2a,
    0xee, 0xd0, 0xe1, 0x8d, 0xfa, 0x1e, 0x88, 0xb3, 0x47, 0x36, 0xe7, 0x21, 0xba, 0xf0, 0x75, 0xae,
    0xd8, 0x4d, 0x00, 0xad, 0xc4, 0xdc, 0x3a, 0x7f, 0xc7, 0x62, 0x44, 0x08, 0x99, 0x6f, 0xc1, 0xd0,
    0x99, 0xa5, 0x7a, 0x95, 0xcd, 0x1d, 0x99, 0x11, 0x1f, 0x10, 0x76, 0x40, 0xd0, 0x16, 0x6d, 0xfd,
    0x2d, 0xda, 0xd8, 0xe7, 0x30, 0xf0, 0x15, 0x6a, 0x90, 0x0a, 0x0e, 0x22, 0x87, 0x4d, 0x95, 0xa2,
    0xad, 0x2a, 0x31, 0xe8, 0x98, 0xc6, 0xd0, 0xa0, 0x8c, 0x37, 0xce, 0x4c, 0x7a, 0xb2, 0xce, 0x73,
    0x9a, 0x99, 0x90, 0xf7, 0x32, 0xf3, 0x78, 0x9d, 0xe7, 0x6c, 0x17, 0x86, 0x79, 0x56, 0x2c, 0xd3,
    0x8a, 0x0f, 0x37, 0x35, 0x80, 0x18, 0xb5, 0xbc, 0x4c, 0x9e, 0xc3, 0xd8, 0xf3, 0x9c, 0x9d, 0x2a,
    0xbc, 0xe8, 0x27, 0xed, 0x95, 0x1b, 0x4d, 0x26, 0x7d, 0x67, 0x56, 0xbc, 0x25, 0x4f, 0xa1, 0xe7,
    0xb8, 0xc4, 0x55, 0x2a, 0xc5, 0x99, 0x5f, 0x77, 0x28, 0xb2, 0x7d, 0x00, 0xf7, 0xa1, 0x28, 0x16,
    0xca, 0x37, 0x40, 0x73, 0x9b, 0x62, 0x0c, 0x34, 0x71, 0x8a, 0x4f, 0x62, 0x72, 0x1f, 0xa2, 0x1a,
    0xc7, 0x39, 0x37, 0x56, 0x68, 0xeb, 0x13, 0x74, 0x0a, 0x1e, 0xa4, 0x8a, 0xaa, 0x13, 0x50, 0x4c,
    0x5e, 0x40, 0xff, 0x59, 0x99, 0x9f, 0x2d, 0xca, 0xe2, 0x93, 0x2e, 0xf4, 0x25, 0xf4, 0x56, 0x65,
    0x56, 0x58, 0x13, 0xb7, 0x29, 0xa7, 0x8b, 0x9b, 0x9c, 0x9e, 0x21, 0xce, 0xbd, 0x39, 0x99, 0xd7,
    0x7c, 0x09, 0xb3, 0x9c, 0xea, 0x85, 0xd9, 0xee, 0xc5, 0xe0, 0x5c, 0x2f, 0x3e, 0x80, 0x88, 0xb8,
    0x17, 0x7a, 0x51, 0xf5, 0xfb, 0xd5, 0xed, 0x99, 0xf8, 0x46, 0x97, 0xeb, 0x15, 0x06, 0x72, 0x83,
    0x8f, 0x52, 0xf2, 0x03, 0x8c, 0xb6, 0x4c, 0xcd, 0x96, 0x0e, 0xb6, 0x5a, 0xfa, 0x01, 0x0c, 0x16,
    0xe8, 0x45, 0x95, 0x30, 0xef, 0x13, 0x4a, 0x21, 0xb0, 0x2a, 0x1c, 0x16, 0x95, 0x68, 0x92, 0x27,
    0x10, 0xd5, 0x06, 0x6c, 0x52, 0x17, 0xa2, 0x0e, 0xde, 0x27, 0xfd, 0x50, 0xe2, 0x8e, 0x6b, 0xc6,
    0x6d, 0x4c, 0x33, 0x85, 0x74, 0xc6, 0xe4, 0xaf, 0x16, 0x74, 0xf8, 0x87, 0x3a, 0xe7, 0x0e, 0x8c,
    0x3d, 0x33, 0x55, 0xf2, 0x8e, 0xf2, 0xe1, 0xbc, 0x66, 0xf0, 0xf0, 0xdc, 0x2c, 0xb7, 0xcf, 0xf1,
    0x77, 0x13, 0x60, 0xe5, 0xca, 0x88, 0x56, 0xb7, 0xe6, 0x22, 0x8f, 0x1c, 0x4a, 0xf6, 0x7f, 0x7a,
    0xe7, 0x53, 0xff, 0x6e, 0x61, 0x3b, 0x48, 0x0c, 0x99, 0xc0, 0x08, 0x61, 0xa1, 0x17, 0xa9, 0xc8,
    0x33, 0x61, 0xaa, 0xd9, 0x34, 0x12, 0xf9, 0x9d, 0x22, 0x84, 0x8b, 0xb7, 0x5c, 0x29, 0x2d, 0x6c,
    0xa9, 0x69, 0x36, 0x23, 0x5e, 0xeb, 0xec, 0x36, 0x8c, 0x2a, 0x39, 0xa5, 0xf7, 0xd3, 0xbd, 0x62,
    0xc3, 0x0a, 0x3c, 0xc6, 0x77, 0xb4, 0x71, 0xc8, 0x2b, 0x91, 0xaf, 0x95, 0x7f, 0xd8, 0xfc, 0x21,
    0x2f, 0x10, 0xfa, 0xe0, 0xb0, 0x26, 0x30, 0x42, 0xde, 0xd2, 0xd7, 0x99, 0x7d, 0x99, 0xae, 0x74,
    0xf5, 0xcc, 0x0d, 0x10, 0xfc, 0x3e, 0xb3, 0x2f, 0x9f, 0xe9, 0xed, 0x9a, 0x0c, 0xb7, 0x6a, 0x92,
    0xfc, 0xd2, 0x82, 0xf6, 0x91, 0x7c, 0x7f, 0x25, 0x5e, 0x83, 0x10, 0xd3, 0xa1, 0x74, 0x1d, 0xcd,
    0x7d, 0x23, 0x97, 0x94, 0xa9, 0x37, 0x35, 0x7e, 0x26, 0xd0, 0xf4, 0x14, 0xfb, 0xfe, 0x0e, 0x74,
    0xa8, 0x35, 0xdf, 0xdb, 0x86, 0x47, 0x74, 0x0b, 0x4e, 0x56, 0xbc, 0x46, 0x36, 0x2f, 0x0b, 0x4f,
    0x32, 0xc9, 0x38, 0x72, 0x6b, 0x9d, 0x7b, 0x66, 0x51, 0xc4, 0x95, 0xe6, 0x5f, 0x24, 0x9c, 0x5d,
    0x4f, 0x2a, 0x38, 0x08, 0x07, 0xb8, 0xb1, 0xf3, 0xc8, 0xc1, 0x91, 0xea, 0x77, 0x1e, 0x39, 0x6c,
    0xbd, 0x69, 0xd1, 0xb9, 0x37, 0x2d, 0x86, 0xbe, 0x5b, 0x81, 0x92, 0xe8, 0x0c, 0x79, 0xa5, 0x6e,
    0xad, 0xd9, 0x01, 0x31, 0x5d, 0xbf, 0x4e, 0x6f, 0x02, 0xe8, 0xb9, 0xab, 0xe0, 0xe6, 0x70, 0xcd,
    0xe0, 0x37, 0x07, 0x29, 0xff, 0xf9, 0xd7, 0x14, 0x6d, 0xfe, 0x9a, 0x4e, 0xd7, 0xc6, 0x52, 0x0b,
    0x86, 0x9c, 0x64, 0xc4, 0xd6, 0x45, 0x56, 0x3d, 0xb0, 0x24, 0xe3, 0x29, 0x6e, 0xb7, 0x39, 0x62,
    0x9c, 0x52, 0xf7, 0x41, 0x7f, 0xd3, 0x07, 0xc9, 0xcf, 0x01, 0x5c, 0x3c, 0x98, 0x3d, 0x7a, 0x89,
    0x0e, 0xd5, 0xbf, 0xe7, 0x57, 0xf8, 0x53, 0x81, 0x3b, 0x1f, 0x73, 0x1c, 0xef, 0x5f, 0x69, 0xae,
    0x8a, 0x59, 0xae, 0x9c, 0xb3, 0xe4, 0xce, 0xc9, 0xb7, 0x40, 0xab, 0x6e, 0x81, 0xbb, 0xd0, 0x13,
    0x73, 0x9b, 0x95, 0x05, 0x65, 0x3e, 0xde, 0x67, 0x8d, 0xc7, 0x6d, 0x36, 0x25, 0x0b, 0xf7, 0x1e,
    0x54, 0xd2, 0xe2, 0xa4, 0xac, 0xfe, 0x02, 0x51, 0x4e, 0xfe, 0x0e, 0x60, 0xe4, 0x96, 0xdb, 0xc7,
    0x56, 0xe7, 0xbf, 0xbe, 0xbb, 0x1f, 0xf8, 0x5f, 0xc5, 0xa2, 0xf9, 0x69, 0xf5, 0x27, 0x55, 0x2a,
    0x3e, 0x9f, 0x56, 0x67, 0x8b, 0x85, 0xd2, 0x69, 0x9e, 0x15, 0xd5, 0xfb, 0x3a, 0xf0, 0xd8, 0x93,
    0xac, 0x50, 0xec, 0x0b, 0x18, 0xcb, 0x4c, 0x2b, 0x4a, 0xd8, 0x39, 0x39, 0x52, 0x47, 0x35, 0x4a,
    0x6e, 0x55, 0xb9, 0xfa, 0x8d, 0x72, 0xdd, 0x86, 0x91, 0x54, 0x27, 0xaa, 0x98, 0xab, 0xd4, 0x58,
    0x61, 0x5d, 0xb3, 0x75, 0xf9, 0xd0, 0x83, 0x47, 0x88, 0xdd, 0xfd, 0x09, 0x86, 0x4d, 0x5a, 0xd9,
    0x10, 0xc2, 0xe3, 0xd4, 0x11, 0x30, 0xb9, 0xc0, 0x26, 0x30, 0xac, 0x34, 0xdc, 0x54, 0x93, 0x80,
    0x5d, 0x86, 0x49, 0x13, 0xc1, 0xcd, 0x3c, 0x69, 0x31, 0x80, 0xde, 0x71, 0x4a, 0x1e, 0x6d, 0x36,
    0x82, 0xc8, 0xc9, 0x47, 0x72, 0x39, 0xe9, 0xb0, 0x4b, 0x30, 0xaa, 0x55, 0xdc, 0x90, 0x93, 0x2e,
    0x8b, 0xa0, 0x7b, 0x9c, 0xa2, 0xb5, 0x77, 0xf7, 0x1e, 0x84, 0x55, 0x59, 0x30, 0xc8, 0x61, 0x61,
    0x94, 0xb6, 0x93, 0x0b, 0x28, 0x7f, 0x47, 0x33, 0x31, 0x09, 0x50, 0x3e, 0x50, 0xb9, 0xb2, 0x6a,
    0xd2, 0x7a, 0x38, 0x79, 0xfb, 0x6e, 0x27, 0xf8, 0xf5, 0xdd, 0x4e, 0xf0, 0xfb, 0xbb, 0x9d, 0xe0,
    0xcd, 0x1f, 0x3b, 0x17, 0x66, 0x3d, 0xaa, 0xef, 0xfd, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x0d,
    0x90, 0x06, 0x83, 0x3a, 0x0d, 0x00, 0x00,
    0x85, 0x12, 0x0e, 0x0b, 0x2f, 0x30, 0xb0, 0x22, 0x1a, 0x89, 0x20, 0xd2, 0xbb, 0x21, 0x52, 0x0e,
    0xb1, 0x7a, 0xa6, 0x7b, 0x8d, 0x35, 0x1e, 0x7b, 0xd4, 0xed, 0x81, 0xec, 0x21, 0xcf, 0x90, 0x2b,
    0xef, 0x90, 0x17, 0xe1, 0x98, 0x37, 0x48, 0x44, 0xa4, 0x5c, 0xa2, 0xbc, 0x43, 0x54, 0xd5, 0x6d,
    0x8f, 0x67, 0x81, 0x84, 0x5b, 0x7d, 0x75, 0x75, 0xf5, 0xaf, 0xbe, 0x1a, 0xc6, 0x6b, 0x5d, 0x94,
    0xc5, 0xca, 0x24, 0xf7, 0x88, 0x60, 0x7e, 0xc5, 0x5f, 0x87, 0xb9, 0x30, 0xca, 0x4a, 0xa3, 0xef,
    0x61, 0x7c, 0x2c, 0x97, 0x2b, 0x93, 0x7c, 0x97, 0x96, 0x2f, 0x4e, 0x84, 0x59, 0xb2, 0xcb, 0xd0,
    0x35, 0x72, 0x99, 0xca, 0xd0, 0xdb, 0xf7, 0x0e, 0x02, 0x6e, 0x19, 0x16, 0x42, 0xdf, 0xc8, 0x65,
    0x79, 0xb6, 0x56, 0x61, 0x8b, 0xe4, 0x15, 0xeb, 0x34, 0x52, 0x94, 0x22, 0x6c, 0xef, 0x7b, 0x07,
    0x43, 0x5e, 0xb1, 0x51, 0x01, 0x01, 0x7a, 0x7c, 0x22, 0xe6, 0x2a, 0x63, 0x57, 0xa0, 0x57, 0x0a,
    0xb3, 0xf5, 0xeb, 0x38, 0xf6, 0x00, 0x7c, 0xbc, 0x21, 0x3f, 0x2d, 0x4c, 0xd8, 0xda, 0x6f, 0x1f,
    0x0c, 0x0e, 0xc3, 0x7b, 0x75, 0xe4, 0xbb, 0xa1, 0xf1, 0xda, 0x12, 0x83, 0x4c, 0x73, 0xa9, 0x7e,
    0xa4, 0x2b, 0xbb, 0xdc, 0x32, 0x91, 0x00, 0x38, 0x96, 0xcb, 0xaf, 0x95, 0x31, 0x22, 0x51, 0x6c,
    0x02, 0xed, 0x45, 0x7d, 0x1d, 0x92, 0xec, 0x4b, 0xe8, 0xe3, 0xad, 0x99, 0x98, 0xd3, 0x23, 0x06,
    0x87, 0xff, 0xdb, 0x5e, 0x55, 0x47, 0xca, 0x2b, 0x1b, 0xc6, 0xa0, 0xd3, 0x78, 0x16, 0xd1, 0xd1,
    0x63, 0xe8, 0x4c, 0xb5, 0x12, 0x6c, 0x0c, 0x2d, 0xe7, 0xbb, 0xcb, 0x5b, 0xa9, 0x64, 0xd7, 0xc1,
    0x5f, 0x0b, 0xad, 0xf2, 0x32, 0x95, 0xe4, 0xbb, 0xcb, 0x6b, 0x1e, 0xfd, 0xe4, 0x62, 0xa5, 0xc8,
    0x4f, 0xc0, 0x89, 0x8e, 0xde, 0xb4, 0xa0, 0xf7, 0x48, 0xac, 0x94, 0x6e, 0xba, 0x0a, 0xc8, 0x55,
    0x65, 0xde, 0xda, 0x9a, 0xa3, 0x8c, 0xb0, 0xb7, 0xcf, 0x25, 0x1a, 0x65, 0x42, 0x4a, 0x1d, 0x76,
    0xac, 0x1d, 0xd2, 0x88, 0xb2, 0xd0, 0x4a, 0xa4, 0x32, 0xec, 0x92, 0xa5, 0xe3, 0xd8, 0x27, 0x10,
    0x64, 0x45, 0x9e, 0xa4, 0xe5, 0x46, 0xaa, 0xb0, 0xb7, 0xef, 0x1d, 0xb4, 0xf8, 0x56, 0x80, 0xc1,
    0x67, 0xa2, 0xb4, 0xca, 0x3e, 0x29, 0x6b, 0x1e, 0x6f, 0xd1, 0xa5, 0x59, 0x87, 0xbe, 0xbd, 0x05,
    0x69, 0x8a, 0x78, 0x1d, 0x06, 0x2e, 0xe2, 0x35, 0xda, 0xac, 0x0b, 0x5d, 0x86, 0x60, 0xa3, 0x43,
    0x1a, 0x7d, 0x6e, 0x8c, 0xd2, 0xf4, 0x92, 0x01, 0x59, 0xd6, 0xbc, 0x05, 0xcb, 0x98, 0x57, 0x85,
    0x96, 0xe1, 0xd0, 0xea, 0x2a, 0x1e, 0x33, 0x3b, 0xd7, 0x22, 0x97, 0xe1, 0xc8, 0x96, 0x1f, 0x31,
    0x78, 0x42, 0x2b, 0xa3, 0xf4, 0x4b, 0x25, 0xc3, 0xb1, 0x3d, 0x51, 0xf1, 0xd1, 0x02, 0x2e, 0x59,
    0x24, 0xa7, 0xb9, 0xc4, 0x2c, 0xce, 0xf2, 0xd3, 0x82, 0x1d, 0x40, 0x6f, 0x41, 0x42, 0x02, 0x76,
    0x70, 0x38, 0xd9, 0x66, 0xda, 0x1a, 0x73, 0xa7, 0x67, 0x77, 0xa0, 0x8b, 0x09, 0xaf, 0xaa, 0x6f,
    0xbc, 0x5b, 0x12, 0xdc, 0x2a, 0xa3, 0xdf, 0x3c, 0xe8, 0x50, 0x7b, 0x7c, 0xa8, 0x8e, 0xaf, 0x83,
    0x8f, 0x54, 0x23, 0x73, 0x35, 0xcf, 0x6e, 0x40, 0xb0, 0xd0, 0x4a, 0x94, 0x2a, 0x16, 0xa5, 0xab,
    0x02, 0xdf, 0x0a, 0xa6, 0x65, 0x43, 0x39, 0x3f, 0x73, 0xb9, 0x74, 0xca, 0x87, 0x67, 0xa8, 0xdc,
    0xac, 0xa5, 0x3b, 0xd9, 0x75, 0x30, 0x92, 0x60, 0x5a, 0x62, 0x28, 0x2a, 0x17, 0xf3, 0xcc, 0x66,
    0xd4, 0xe7, 0x8e, 0x63, 0xd7, 0xc0, 0x4f, 0x4d, 0x2c, 0x32, 0xa1, 0x57, 0x94, 0x4e, 0x9f, 0xf7,
    0x53, 0x33, 0x45, 0x16, 0x55, 0x52, 0x65, 0xf1, 0x69, 0x26, 0x12, 0xca, 0xa8, 0xcf, 0xfb, 0x52,
    0x65, 0x8f, 0x33, 0x91, 0x44, 0x27, 0x30, 0xc0, 0x07, 0x1e, 0x4b, 0x0b, 0x60, 0x04, 0x1d, 0x8c,
    0xdf, 0xc1, 0x77, 0x1e, 0x15, 0xd2, 0xb1, 0x5b, 0xd0, 0x31, 0xb2, 0x46, 0x6e, 0xb4, 0xd3, 0xb7,
    0x9c, 0x54, 0xd1, 0x9f, 0x2d, 0x00, 0x0b, 0x38, 0xa1, 0x77, 0xbe, 0xd6, 0xf1, 0xf1, 0xa4, 0x8d,
    0x5d, 0xdf, 0xe0, 0xe3, 0x49, 0x30, 0x93, 0xec, 0xaa, 0x6d, 0x57, 0x54, 0xb5, 0xb7, 0x58, 0xcf,
    0xb0, 0x8f, 0x83, 0x32, 0x5d, 0xa9, 0x58, 0x6f, 0x32, 0x15, 0x76, 0xe8, 0xf2, 0x46, 0x7e, 0x8f,
    0xc4, 0xd9, 0xa3, 0x32, 0xe3, 0x3e, 0x9a, 0xf0, 0x4d, 0xa6, 0xd8, 0x4d, 0x00, 0xad, 0xc4, 0xa2,
    0xb4, 0xf6, 0x16, 0xc5, 0x80, 0x24, 0xa4, 0xbe, 0x05, 0x43, 0xab, 0x96, 0xea, 0x65, 0xba, 0xb0,
    0x60, 0x06, 0x7c, 0x40, 0xb2, 0x23, 0x12, 0xed, 0xc0, 0xd6, 0xdf, 0x81, 0x8d, 0x7d, 0x0a, 0x03,
    0x97, 0xa1, 0x06, 0xa8, 0x60, 0x45, 0x64, 0xb0, 0xcd, 0x52, 0xb0, 0x93, 0x25, 0x06, 0x1d, 0xd3,
    0x68, 0x1a, 0xa4, 0xf1, 0xc5, 0xa9, 0x89, 0x4f, 0x37, 0x59, 0x46, 0x3d, 0xe3, 0xf3, 0x5e, 0x6a,
    0x1e, 0x6f, 0xb2, 0x8c, 0xed, 0xc3, 0x30, 0x4b, 0xf3, 0x65, 0x5c, 0xe1, 0x61, 0xbb, 0x06, 0x50,
    0x46, 0x25, 0x2f, 0xa3, 0x6f, 0x60, 0xec, 0x70, 0x4e, 0x57, 0x0a, 0x1f, 0xfa, 0x51, 0x73, 0xe5,
    0x46, 0x13, 0x49, 0x57, 0x99, 0x15, 0x6e, 0xd1, 0x53, 0xe8, 0x59, 0x2c, 0x71, 0x94, 0x4a, 0x71,
    0xe6, 0xc6, 0x1d, 0x92, 0xec, 0x10, 0xc0, 0x1e, 0x14, 0x79, 0xa2, 0x5c, 0x01, 0x34, 0xa7, 0x29,
    0xfa, 0x40, 0x15, 0x27, 0xff, 0x44, 0x46, 0xf7, 0x21, 0xa8, 0xe5, 0xb4, 0x66, 0x4a, 0xa1, 0xcb,
    0x7a, 0xcd, 0x20, 0x83, 0x17, 0xa9, 0xbc, 0xaa, 0x04, 0x24, 0xa3, 0xe7, 0xd0, 0x7f, 0x56, 0x64,
    0x67, 0x49, 0x91, 0x7f, 0xd4, 0x83, 0x3e, 0x87, 0xde, 0xba, 0x48, 0xf3, 0xd2, 0x84, 0x6d, 0x8a,
    0xe9, 0xe2, 0x36, 0xa6, 0x67, 0x28, 0xe7, 0x4e, 0x1d, 0x2d, 0x6a, 0xbc, 0x84, 0x59, 0x4e, 0x75,
    0x62, 0x76, 0x6b, 0xd1, 0x3b, 0x57, 0x8b, 0x0f, 0x20, 0x20, 0xec, 0x85, 0x4e, 0xaa, 0x7a, 0xbf,
    0xba, 0xdb, 0x13, 0x5f, 0xe9, 0x62, 0xb3, 0x46, 0x47, 0xb6, 0xf1, 0x91, 0x8a, 0x7e, 0x80, 0xd1,
    0x8e, 0xaa, 0x59, 0xd2, 0xde, 0x4e, 0x49, 0x3f, 0x80, 0x41, 0x82, 0x56, 0x94, 0x09, 0xf3, 0x2e,
    0xa0, 0xe4, 0x02, 0xb3, 0xc2, 0x21, 0xa9, 0x48, 0x13, 0x3d, 0x81, 0xa0, 0x56, 0x60, 0x91, 0x5a,
    0x17, 0xb5, 0xf3, 0x3e, 0xf1, 0x33, 0x89, 0x33, 0xae, 0xe9, 0xb7, 0xd1, 0xcd, 0xe4, 0xd2, 0x2a,
    0xa3, 0xbf, 0x5a, 0xd0, 0xe1, 0xef, 0xab, 0x9c, 0x3b, 0x30, 0x76, 0xc8, 0x54, 0xc1, 0x5b, 0xc8,
    0x87, 0x8b, 0x1a, 0xc1, 0xd9, 0xb9, 0x5e, 0x6e, 0x9f, 0xc3, 0xef, 0x26, 0xc0, 0xda, 0xa6, 0x11,
    0xb5, 0x76, 0xcc, 0x05, 0x4e, 0x32, 0x93, 0xec, 0xff, 0xd0, 0x33, 0x92, 0x3c, 0x77, 0xeb, 0x5f,
    0xc7, 0x4c, 0xb2, 0x08, 0x46, 0x28, 0x16, 0x3a, 0x89, 0x45, 0x96, 0x0a, 0x53, 0xf5, 0xa6, 0x91,
    0x88, 0xef, 0x14, 0x45, 0x38, 0x78, 0x8b, 0xb5, 0xd2, 0xa2, 0x2c, 0x34, 0xf5, 0x66, 0xc0, 0x6b,
    0x9e, 0xdd, 0x86, 0x51, 0x45, 0xc7, 0xb4, 0x3f, 0xed, 0x16, 0x1b, 0x56, 0xc2, 0x13, 0xdc, 0xa3,
    0x8d, 0x4b, 0x5e, 0x8a, 0x6c, 0xa3, 0xdc, 0x62, 0x73, 0x97, 0x3c, 0x47, 0xd1, 0x7b, 0x9b, 0x35,
    0x82, 0x11, 0xe2, 0x16, 0xbf, 0x4a, 0xcb, 0x17, 0xf1, 0x5a, 0x57, 0x6b, 0x6e, 0x80, 0x42, 0xfc,
    0xb2, 0x3c, 0xd3, 0xbb, 0x39, 0x19, 0xee, 0xe4, 0x24, 0xfa, 0xa5, 0x05, 0xed, 0x63, 0xf9, 0xee,
    0x48, 0xbc, 0x46, 0x1f, 0xa2, 0xf8, 0xdc, 0x57, 0x8b, 0x22, 0x75, 0xaa, 0xc6, 0x67, 0x02, 0x55,
    0x4f, 0xb1, 0xee, 0xef, 0x40, 0x87, 0x4a, 0xf3, 0x9d, 0x69, 0x78, 0x4c, 0xaf, 0xe0, 0xa4, 0xc5,
    0x67, 0xa4, 0x8b, 0x22, 0x77, 0x20, 0x13, 0x8d, 0x2d, 0xb7, 0xd1, 0x99, 0x43, 0x16, 0x49, 0x1c,
    0x69, 0x6e, 0x23, 0x61, 0xef, 0x3a, 0x50, 0xc1, 0x8a, 0xb0, 0x81, 0x1b, 0x33, 0x8f, 0x0c, 0x2c,
    0xa8, 0x6e, 0xe6, 0x91, 0xc1, 0xce, 0x4e, 0x0b, 0xce, 0xed, 0xb4, 0x10, 0xfa, 0x76, 0x04, 0x4a,
    0x82, 0xd3, 0xe7, 0x15, 0xbb, 0x33, 0x66, 0x07, 0x84, 0x74, 0xbd, 0x9d, 0x5e, 0x7b, 0xd0, 0xb3,
    0x4f, 0xc1, 0xc9, 0x61, 0x8b, 0xc1, 0x4d, 0x0e, 0x62, 0xfe, 0xf3, 0xd7, 0x14, 0x6c, 0x7f, 0x4d,
    0xab, 0x8d, 0x29, 0xa9, 0x04, 0x7d, 0x4e, 0x34, 0xca, 0x36, 0x79, 0x5a, 0x2d, 0x58, 0xa2, 0xf1,
    0x16, 0x3b, 0xdb, 0x2c, 0x30, 0x96, 0xa9, 0xeb, 0xa0, 0xbf, 0xad, 0x83, 0xe8, 0x67, 0x0f, 0x2e,
    0x1e, 0xcd, 0x1f, 0xbd, 0x40, 0x83, 0xea, 0xef, 0xf9, 0x05, 0x7e, 0x2a, 0x70, 0xe6, 0x63, 0x8c,
    0xe3, 0xc3, 0x2b, 0xcd, 0x51, 0x31, 0xcf, 0x94, 0x35, 0x96, 0xdc, 0x1a, 0xb9, 0x12, 0x68, 0xd5,
    0x25, 0x70, 0x17, 0x7a, 0x62, 0x51, 0xa6, 0x45, 0x4e, 0x91, 0x8f, 0x0f, 0x59, 0x63, 0xb9, 0xcd,
    0xa7, 0xa4, 0xe1, 0xce, 0x82, 0x52, 0x9a, 0x9f, 0x16, 0xd5, 0x2f, 0x10, 0xe9, 0xe8, 0x6f, 0x0f,
    0x46, 0x76, 0xb8, 0x7d, 0x68, 0x74, 0xfe, 0xeb, 0xde, 0x7d, 0xcf, 0x7f, 0x15, 0x93, 0xe6, 0xba,
    0xd5, 0xdd, 0x54, 0xb1, 0xb8, 0x3e, 0x4b, 0x9d, 0x26, 0x89, 0xd2, 0x71, 0x96, 0xe6, 0xd5, 0x7e,
    0x1d, 0x38, 0xd9, 0x93, 0x34, 0x57, 0xec, 0x33, 0x18, 0xcb, 0x54, 0x2b, 0x0a, 0xd8, 0x1a, 0x59,
    0x50, 0x47, 0xb5, 0x94, 0xcc, 0xaa, 0x74, 0xf5, 0x1b, 0xe9, 0xba, 0x0d, 0x23, 0xa9, 0x4e, 0x55,
    0xbe, 0x50, 0xb1, 0x29, 0x45, 0x69, 0x8b, 0xad, 0xcb, 0x87, 0x4e, 0x78, 0x8c, 0xb2, 0xbb, 0x3f,
    0xc1, 0xb0, 0x09, 0x2b, 0x1b, 0x82, 0x7f, 0x12, 0x5b, 0x00, 0x26, 0x17, 0xd8, 0x04, 0x86, 0x15,
    0x87, 0x93, 0x6a, 0xe2, 0xb1, 0xcb, 0x30, 0x69, 0x4a, 0x70, 0x32, 0x4f, 0x5a, 0x0c, 0xa0, 0x77,
    0x12, 0x93, 0x45, 0x9b, 0x8d, 0x20, 0xb0, 0xf4, 0xb1, 0x5c, 0x4e, 0x3a, 0xec, 0x12, 0x8c, 0x6a,
    0x16, 0x27, 0xe4, 0xa4, 0xcb, 0x02, 0xe8, 0x9e, 0xc4, 0xa8, 0xed, 0xdd, 0xbd, 0x07, 0x7e, 0x95,
    0x16, 0x74, 0x32, 0xcb, 0x8d, 0xd2, 0xe5, 0xe4, 0x02, 0xd2, 0xdf, 0x52, 0x4f, 0x4c, 0x3c, 0xa4,
    0x8f, 0x54, 0xa6, 0x4a, 0x35, 0x69, 0x3d, 0x9c, 0xbc, 0x79, 0xbb, 0xe7, 0xfd, 0xfa, 0x76, 0xcf,
    0xfb, 0xfd, 0xed, 0x9e, 0xf7, 0xfa, 0x8f, 0xbd, 0x0b, 0xf3, 0x1e, 0xe5, 0xf7, 0xfe, 0x3f, 0x01,
    0x00, 0x00, 0xff, 0xff, 0xff, 0xa7, 0xc9, 0xd5, 0xb4, 0x0d, 0x00, 0x00,
}
func (m *SdkmsgWithTask) 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 *SdkmsgWithTask) MarshalTo(dAtA []byte) (int, error) {
    var i int
    _ = i
    var l int
    _ = l
    if len(m.Sdkid) > 0 {
        dAtA[i] = 0xa
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Sdkid)))
        i += copy(dAtA[i:], m.Sdkid)
    }
    if len(m.Sdktype) > 0 {
        dAtA[i] = 0x12
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Sdktype)))
        i += copy(dAtA[i:], m.Sdktype)
    }
    if len(m.Sdkdata) > 0 {
        dAtA[i] = 0x1a
        i++
        i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Sdkdata)))
        i += copy(dAtA[i:], m.Sdkdata)
    }
    if m.XXX_unrecognized != nil {
        i += copy(dAtA[i:], m.XXX_unrecognized)
    }
    return i, nil
}
func (m *TaskLabel) Marshal() (dAtA []byte, err error) {
@@ -1867,19 +1972,16 @@
        i = encodeVarintProtomsg(dAtA, i, uint64(len(m.Taskid)))
        i += copy(dAtA[i:], m.Taskid)
    }
    if len(m.Sdkids) > 0 {
        for _, s := range m.Sdkids {
    if len(m.Sdkinfos) > 0 {
        for _, msg := range m.Sdkinfos {
            dAtA[i] = 0x12
            i++
            l = len(s)
            for l >= 1<<7 {
                dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
                l >>= 7
                i++
            i = encodeVarintProtomsg(dAtA, i, uint64(msg.Size()))
            n, err := msg.MarshalTo(dAtA[i:])
            if err != nil {
                return 0, err
            }
            dAtA[i] = uint8(l)
            i++
            i += copy(dAtA[i:], s)
            i += n
        }
    }
    if m.Index != 0 {
@@ -3002,6 +3104,30 @@
    dAtA[offset] = uint8(v)
    return offset + 1
}
func (m *SdkmsgWithTask) Size() (n int) {
    if m == nil {
        return 0
    }
    var l int
    _ = l
    l = len(m.Sdkid)
    if l > 0 {
        n += 1 + l + sovProtomsg(uint64(l))
    }
    l = len(m.Sdktype)
    if l > 0 {
        n += 1 + l + sovProtomsg(uint64(l))
    }
    l = len(m.Sdkdata)
    if l > 0 {
        n += 1 + l + sovProtomsg(uint64(l))
    }
    if m.XXX_unrecognized != nil {
        n += len(m.XXX_unrecognized)
    }
    return n
}
func (m *TaskLabel) Size() (n int) {
    if m == nil {
        return 0
@@ -3012,9 +3138,9 @@
    if l > 0 {
        n += 1 + l + sovProtomsg(uint64(l))
    }
    if len(m.Sdkids) > 0 {
        for _, s := range m.Sdkids {
            l = len(s)
    if len(m.Sdkinfos) > 0 {
        for _, e := range m.Sdkinfos {
            l = e.Size()
            n += 1 + l + sovProtomsg(uint64(l))
        }
    }
@@ -3670,6 +3796,158 @@
func sozProtomsg(x uint64) (n int) {
    return sovProtomsg(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *SdkmsgWithTask) 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: SdkmsgWithTask: wiretype end group for non-group")
        }
        if fieldNum <= 0 {
            return fmt.Errorf("proto: SdkmsgWithTask: illegal tag %d (wire type %d)", fieldNum, wire)
        }
        switch fieldNum {
        case 1:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field Sdkid", 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.Sdkid = string(dAtA[iNdEx:postIndex])
            iNdEx = postIndex
        case 2:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field Sdktype", 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.Sdktype = string(dAtA[iNdEx:postIndex])
            iNdEx = postIndex
        case 3:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field Sdkdata", wireType)
            }
            var byteLen int
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
                }
                if iNdEx >= l {
                    return io.ErrUnexpectedEOF
                }
                b := dAtA[iNdEx]
                iNdEx++
                byteLen |= int(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
            if byteLen < 0 {
                return ErrInvalidLengthProtomsg
            }
            postIndex := iNdEx + byteLen
            if postIndex < 0 {
                return ErrInvalidLengthProtomsg
            }
            if postIndex > l {
                return io.ErrUnexpectedEOF
            }
            m.Sdkdata = append(m.Sdkdata[:0], dAtA[iNdEx:postIndex]...)
            if m.Sdkdata == nil {
                m.Sdkdata = []byte{}
            }
            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
            }
            m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
            iNdEx += skippy
        }
    }
    if iNdEx > l {
        return io.ErrUnexpectedEOF
    }
    return nil
}
func (m *TaskLabel) Unmarshal(dAtA []byte) error {
    l := len(dAtA)
    iNdEx := 0
@@ -3733,9 +4011,9 @@
            iNdEx = postIndex
        case 2:
            if wireType != 2 {
                return fmt.Errorf("proto: wrong wireType = %d for field Sdkids", wireType)
                return fmt.Errorf("proto: wrong wireType = %d for field Sdkinfos", wireType)
            }
            var stringLen uint64
            var msglen int
            for shift := uint(0); ; shift += 7 {
                if shift >= 64 {
                    return ErrIntOverflowProtomsg
@@ -3745,23 +4023,25 @@
                }
                b := dAtA[iNdEx]
                iNdEx++
                stringLen |= uint64(b&0x7F) << shift
                msglen |= int(b&0x7F) << shift
                if b < 0x80 {
                    break
                }
            }
            intStringLen := int(stringLen)
            if intStringLen < 0 {
            if msglen < 0 {
                return ErrInvalidLengthProtomsg
            }
            postIndex := iNdEx + intStringLen
            postIndex := iNdEx + msglen
            if postIndex < 0 {
                return ErrInvalidLengthProtomsg
            }
            if postIndex > l {
                return io.ErrUnexpectedEOF
            }
            m.Sdkids = append(m.Sdkids, string(dAtA[iNdEx:postIndex]))
            m.Sdkinfos = append(m.Sdkinfos, &SdkmsgWithTask{})
            if err := m.Sdkinfos[len(m.Sdkinfos)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
                return err
            }
            iNdEx = postIndex
        case 3:
            if wireType != 0 {
protomsg.proto
@@ -3,9 +3,15 @@
package protomsg;
message SdkmsgWithTask {
    string sdkid = 1;
    string sdktype = 2;
    bytes  sdkdata = 3;
}
message TaskLabel {
    string taskid = 1;
    repeated string sdkids = 2;
    repeated SdkmsgWithTask sdkinfos = 2;
    int32 index = 3 ;
}
@@ -14,98 +20,7 @@
    string    cid = 1;
    TaskLabel tasklab = 2;
    bytes      data =3 ;
   // Personaction personaction =4;
   // Vediopersons vedioperson = 5;
}
//message Personaction{
//    string imgKey       = 1;
//    string videoReqNum  = 2;
//    string sdkType      = 3;
//    string picName      = 4;
//    string content      = 5;
//    string cluster_id   = 6;
//    string personPicUrl = 7;
//    string channlId     = 8;
//    string likeDate     = 9;
//
//    string picAddress   = 10;
//    string picMaxUrl    = 11;
//    string picDate      = 12;
//    string picLocalUrl  = 13;
//    string isDelete     = 14;
//    string likePer      = 15;
//    string baseName     = 16;
//    string videoNum     = 17;
//    string collection   = 18;
//    string picSmUrl     = 19;
//
//    string indeviceid   = 20;
//    string idcard       = 21;
//    string ack_alarm    = 22;
//    string personId     = 23;
//    string id           = 24;
//    string indevicename = 25;
//    string faceFeature  = 26;
//    string personIsHub  = 27;
//    string videoIp      = 28;
//    string taskId       = 29;
//}
//
//message PersonBaseInfo {
//    string personNamae  = 1;
//    string iDCard       = 2;
//    string gender       = 3;
//    string personPicUrl = 4;
//    string likePer      = 5;
//    string tableId      = 6;
//    string monitorLevel = 7;
//    string personId     = 8;
//    string phoneNum     = 9;
//    string content      = 10;
//    string tableName    = 11;
//}
//
//message Vediopersons {
//    string iD           = 1;
//    string videoReqNum  = 2;
//    string sdkType=3;
//    string gender=4;
//    string picName=5;
//    string content=6;
//    string personPicUrl=7;
//    string channlId=8;
//    string likeDate=9;
//    string race=10;
//    string picAddress=11;
//    string picMaxUrl=12;
//    string age=13;
//    string picDate=14;
//    string picLocalUrl=15;
//    string isDelete=16;
//    repeated string tableName=17;
//    string videoNum=18;
//    string picSmUrl=19;
//    string simleLevel=20;
//    string indeviceId=21;
//    repeated string iDcard=22;
//    repeated string personId=23;
//    string beautyLevel=24;
//    string indeviceName=25;
//    string faceFeature=26;
//    string personIsHub=27;
//    string videoIp=28;
//    string ackAlarm=29;
//    string clusterId=30;
//    string taskId=31;
//    string taskName=32;
//    repeated PersonBaseInfo baseinfo =33;
//    string collection=34;
//    string ageDescription=35;
//    repeated string tableId=36;
//}
//Area结构体
message Area{
@@ -288,4 +203,3 @@
    string type = 7;
    int32 defence_state = 8;
}