liuxiaolong
2019-05-30 0ea842491a96d18a269eda8cce926dfea37cfefd
protomsg.pb.go
@@ -20,6 +20,75 @@
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
//TableChanged enum
type TableChanged int32
const (
   TableChanged_T_Camera         TableChanged = 0
   TableChanged_T_CameraTask     TableChanged = 1
   TableChanged_T_CameraTaskArgs TableChanged = 2
   TableChanged_T_Task           TableChanged = 3
   TableChanged_T_TaskSdk        TableChanged = 4
   TableChanged_T_TaskSdkRule    TableChanged = 5
   TableChanged_T_Sdk            TableChanged = 6
)
var TableChanged_name = map[int32]string{
   0: "T_Camera",
   1: "T_CameraTask",
   2: "T_CameraTaskArgs",
   3: "T_Task",
   4: "T_TaskSdk",
   5: "T_TaskSdkRule",
   6: "T_Sdk",
}
var TableChanged_value = map[string]int32{
   "T_Camera":         0,
   "T_CameraTask":     1,
   "T_CameraTaskArgs": 2,
   "T_Task":           3,
   "T_TaskSdk":        4,
   "T_TaskSdkRule":    5,
   "T_Sdk":            6,
}
func (x TableChanged) String() string {
   return proto.EnumName(TableChanged_name, int32(x))
}
func (TableChanged) EnumDescriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{0}
}
type DbAction int32
const (
   DbAction_Insert DbAction = 0
   DbAction_Update DbAction = 1
   DbAction_Delete DbAction = 2
)
var DbAction_name = map[int32]string{
   0: "Insert",
   1: "Update",
   2: "Delete",
}
var DbAction_value = map[string]int32{
   "Insert": 0,
   "Update": 1,
   "Delete": 2,
}
func (x DbAction) String() string {
   return proto.EnumName(DbAction_name, int32(x))
}
func (DbAction) EnumDescriptor() ([]byte, []int) {
   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"`
@@ -75,6 +144,7 @@
   return 0
}
//SdkMessage struct test
type SdkMessage struct {
   Cid                  string     `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
   Tasklab              *TaskLabel `protobuf:"bytes,2,opt,name=tasklab,proto3" json:"tasklab,omitempty"`
@@ -386,6 +456,54 @@
   return ""
}
//摄像机的任务信息
type CameraAndTaskInfo struct {
   Camera               *Camera  `protobuf:"bytes,1,opt,name=camera,proto3" json:"camera,omitempty"`
   Tasks                []*Task  `protobuf:"bytes,2,rep,name=tasks,proto3" json:"tasks,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *CameraAndTaskInfo) Reset()         { *m = CameraAndTaskInfo{} }
func (m *CameraAndTaskInfo) String() string { return proto.CompactTextString(m) }
func (*CameraAndTaskInfo) ProtoMessage()    {}
func (*CameraAndTaskInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{5}
}
func (m *CameraAndTaskInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_CameraAndTaskInfo.Unmarshal(m, b)
}
func (m *CameraAndTaskInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_CameraAndTaskInfo.Marshal(b, m, deterministic)
}
func (m *CameraAndTaskInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_CameraAndTaskInfo.Merge(m, src)
}
func (m *CameraAndTaskInfo) XXX_Size() int {
   return xxx_messageInfo_CameraAndTaskInfo.Size(m)
}
func (m *CameraAndTaskInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_CameraAndTaskInfo.DiscardUnknown(m)
}
var xxx_messageInfo_CameraAndTaskInfo proto.InternalMessageInfo
func (m *CameraAndTaskInfo) GetCamera() *Camera {
   if m != nil {
      return m.Camera
   }
   return nil
}
func (m *CameraAndTaskInfo) GetTasks() []*Task {
   if m != nil {
      return m.Tasks
   }
   return nil
}
//Task结构体
type Task struct {
   Taskid               string   `protobuf:"bytes,1,opt,name=taskid,proto3" json:"taskid,omitempty"`
@@ -405,7 +523,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 {
@@ -482,30 +600,77 @@
   return false
}
//摄像机任务
type CameraTask struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   CameraIds            string   `protobuf:"bytes,2,opt,name=camera_ids,json=cameraIds,proto3" json:"camera_ids,omitempty"`
   TaskId               string   `protobuf:"bytes,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
   TimeRule             string   `protobuf:"bytes,4,opt,name=time_rule,json=timeRule,proto3" json:"time_rule,omitempty"`
   ReactRule            string   `protobuf:"bytes,5,opt,name=react_rule,json=reactRule,proto3" json:"react_rule,omitempty"`
   ReactDevice          string   `protobuf:"bytes,6,opt,name=react_device,json=reactDevice,proto3" json:"react_device,omitempty"`
   DelFlag              bool     `protobuf:"varint,7,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
   UpdateFlag           bool     `protobuf:"varint,8,opt,name=update_flag,json=updateFlag,proto3" json:"update_flag,omitempty"`
   Enable               bool     `protobuf:"varint,9,opt,name=enable,proto3" json:"enable,omitempty"`
   Sort                 int32    `protobuf:"varint,10,opt,name=sort,proto3" json:"sort,omitempty"`
   IsFull               bool     `protobuf:"varint,11,opt,name=is_full,json=isFull,proto3" json:"is_full,omitempty"`
   LinkGroupId          string   `protobuf:"bytes,12,opt,name=link_group_id,json=linkGroupId,proto3" json:"link_group_id,omitempty"`
type TaskSdkInfo struct {
   Task                 *Task    `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"`
   Sdks                 []*Sdk   `protobuf:"bytes,2,rep,name=sdks,proto3" json:"sdks,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *TaskSdkInfo) Reset()         { *m = TaskSdkInfo{} }
func (m *TaskSdkInfo) String() string { return proto.CompactTextString(m) }
func (*TaskSdkInfo) ProtoMessage()    {}
func (*TaskSdkInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{7}
}
func (m *TaskSdkInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_TaskSdkInfo.Unmarshal(m, b)
}
func (m *TaskSdkInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_TaskSdkInfo.Marshal(b, m, deterministic)
}
func (m *TaskSdkInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_TaskSdkInfo.Merge(m, src)
}
func (m *TaskSdkInfo) XXX_Size() int {
   return xxx_messageInfo_TaskSdkInfo.Size(m)
}
func (m *TaskSdkInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_TaskSdkInfo.DiscardUnknown(m)
}
var xxx_messageInfo_TaskSdkInfo proto.InternalMessageInfo
func (m *TaskSdkInfo) GetTask() *Task {
   if m != nil {
      return m.Task
   }
   return nil
}
func (m *TaskSdkInfo) GetSdks() []*Sdk {
   if m != nil {
      return m.Sdks
   }
   return nil
}
//摄像机任务
type CameraTask struct {
   Id                   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   CameraIds            string    `protobuf:"bytes,2,opt,name=camera_ids,json=cameraIds,proto3" json:"camera_ids,omitempty"`
   TaskId               string    `protobuf:"bytes,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
   TimeRule             []*DayCtl `protobuf:"bytes,4,rep,name=time_rule,json=timeRule,proto3" json:"time_rule,omitempty"`
   ReactRule            string    `protobuf:"bytes,5,opt,name=react_rule,json=reactRule,proto3" json:"react_rule,omitempty"`
   ReactDevice          string    `protobuf:"bytes,6,opt,name=react_device,json=reactDevice,proto3" json:"react_device,omitempty"`
   DelFlag              bool      `protobuf:"varint,7,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
   UpdateFlag           bool      `protobuf:"varint,8,opt,name=update_flag,json=updateFlag,proto3" json:"update_flag,omitempty"`
   Enable               bool      `protobuf:"varint,9,opt,name=enable,proto3" json:"enable,omitempty"`
   Sort                 int32     `protobuf:"varint,10,opt,name=sort,proto3" json:"sort,omitempty"`
   IsFull               bool      `protobuf:"varint,11,opt,name=is_full,json=isFull,proto3" json:"is_full,omitempty"`
   LinkGroupId          string    `protobuf:"bytes,12,opt,name=link_group_id,json=linkGroupId,proto3" json:"link_group_id,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
}
func (m *CameraTask) Reset()         { *m = CameraTask{} }
func (m *CameraTask) String() string { return proto.CompactTextString(m) }
func (*CameraTask) ProtoMessage()    {}
func (*CameraTask) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{6}
   return fileDescriptor_32de24555f916688, []int{8}
}
func (m *CameraTask) XXX_Unmarshal(b []byte) error {
@@ -547,11 +712,11 @@
   return ""
}
func (m *CameraTask) GetTimeRule() string {
func (m *CameraTask) GetTimeRule() []*DayCtl {
   if m != nil {
      return m.TimeRule
   }
   return ""
   return nil
}
func (m *CameraTask) GetReactRule() string {
@@ -623,7 +788,7 @@
func (m *DayCtl) String() string { return proto.CompactTextString(m) }
func (*DayCtl) ProtoMessage()    {}
func (*DayCtl) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{7}
   return fileDescriptor_32de24555f916688, []int{9}
}
func (m *DayCtl) XXX_Unmarshal(b []byte) error {
@@ -671,7 +836,7 @@
func (m *TimeRange) String() string { return proto.CompactTextString(m) }
func (*TimeRange) ProtoMessage()    {}
func (*TimeRange) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{8}
   return fileDescriptor_32de24555f916688, []int{10}
}
func (m *TimeRange) XXX_Unmarshal(b []byte) error {
@@ -720,7 +885,7 @@
func (m *Polygon) String() string { return proto.CompactTextString(m) }
func (*Polygon) ProtoMessage()    {}
func (*Polygon) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{9}
   return fileDescriptor_32de24555f916688, []int{11}
}
func (m *Polygon) XXX_Unmarshal(b []byte) error {
@@ -784,7 +949,7 @@
func (m *CameraTaskArgs) String() string { return proto.CompactTextString(m) }
func (*CameraTaskArgs) ProtoMessage()    {}
func (*CameraTaskArgs) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{10}
   return fileDescriptor_32de24555f916688, []int{12}
}
func (m *CameraTaskArgs) XXX_Unmarshal(b []byte) error {
@@ -891,26 +1056,27 @@
//Sdk struct
type Sdk struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   CreateTime           string   `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   UpdateTime           string   `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
   CreateBy             string   `protobuf:"bytes,4,opt,name=create_by,json=createBy,proto3" json:"create_by,omitempty"`
   DelFlag              string   `protobuf:"bytes,5,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
   Enabled              string   `protobuf:"bytes,6,opt,name=enabled,proto3" json:"enabled,omitempty"`
   SdkName              string   `protobuf:"bytes,7,opt,name=sdk_name,json=sdkName,proto3" json:"sdk_name,omitempty"`
   Icon                 string   `protobuf:"bytes,8,opt,name=icon,proto3" json:"icon,omitempty"`
   Url                  string   `protobuf:"bytes,9,opt,name=url,proto3" json:"url,omitempty"`
   Args                 string   `protobuf:"bytes,10,opt,name=args,proto3" json:"args,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   Id                   string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   SdkType              string    `protobuf:"bytes,2,opt,name=sdk_type,json=sdkType,proto3" json:"sdk_type,omitempty"`
   SdkName              string    `protobuf:"bytes,3,opt,name=sdk_name,json=sdkName,proto3" json:"sdk_name,omitempty"`
   Args                 []*SdkArg `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty"`
   Icon                 string    `protobuf:"bytes,5,opt,name=icon,proto3" json:"icon,omitempty"`
   Url                  string    `protobuf:"bytes,6,opt,name=url,proto3" json:"url,omitempty"`
   CreateTime           string    `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   UpdateTime           string    `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
   CreateBy             string    `protobuf:"bytes,9,opt,name=create_by,json=createBy,proto3" json:"create_by,omitempty"`
   Enabled              string    `protobuf:"bytes,10,opt,name=enabled,proto3" json:"enabled,omitempty"`
   DelFlag              string    `protobuf:"bytes,11,opt,name=del_flag,json=delFlag,proto3" json:"del_flag,omitempty"`
   XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   XXX_unrecognized     []byte    `json:"-"`
   XXX_sizecache        int32     `json:"-"`
}
func (m *Sdk) Reset()         { *m = Sdk{} }
func (m *Sdk) String() string { return proto.CompactTextString(m) }
func (*Sdk) ProtoMessage()    {}
func (*Sdk) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{11}
   return fileDescriptor_32de24555f916688, []int{13}
}
func (m *Sdk) XXX_Unmarshal(b []byte) error {
@@ -938,6 +1104,41 @@
   return ""
}
func (m *Sdk) GetSdkType() string {
   if m != nil {
      return m.SdkType
   }
   return ""
}
func (m *Sdk) GetSdkName() string {
   if m != nil {
      return m.SdkName
   }
   return ""
}
func (m *Sdk) GetArgs() []*SdkArg {
   if m != nil {
      return m.Args
   }
   return nil
}
func (m *Sdk) GetIcon() string {
   if m != nil {
      return m.Icon
   }
   return ""
}
func (m *Sdk) GetUrl() string {
   if m != nil {
      return m.Url
   }
   return ""
}
func (m *Sdk) GetCreateTime() string {
   if m != nil {
      return m.CreateTime
@@ -959,13 +1160,6 @@
   return ""
}
func (m *Sdk) GetDelFlag() string {
   if m != nil {
      return m.DelFlag
   }
   return ""
}
func (m *Sdk) GetEnabled() string {
   if m != nil {
      return m.Enabled
@@ -973,30 +1167,9 @@
   return ""
}
func (m *Sdk) GetSdkName() string {
func (m *Sdk) GetDelFlag() string {
   if m != nil {
      return m.SdkName
   }
   return ""
}
func (m *Sdk) GetIcon() string {
   if m != nil {
      return m.Icon
   }
   return ""
}
func (m *Sdk) GetUrl() string {
   if m != nil {
      return m.Url
   }
   return ""
}
func (m *Sdk) GetArgs() string {
   if m != nil {
      return m.Args
      return m.DelFlag
   }
   return ""
}
@@ -1018,7 +1191,7 @@
func (m *SdkArg) String() string { return proto.CompactTextString(m) }
func (*SdkArg) ProtoMessage()    {}
func (*SdkArg) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{12}
   return fileDescriptor_32de24555f916688, []int{14}
}
func (m *SdkArg) XXX_Unmarshal(b []byte) error {
@@ -1094,7 +1267,7 @@
func (m *Point) String() string { return proto.CompactTextString(m) }
func (*Point) ProtoMessage()    {}
func (*Point) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{13}
   return fileDescriptor_32de24555f916688, []int{15}
}
func (m *Point) XXX_Unmarshal(b []byte) error {
@@ -1143,7 +1316,7 @@
func (m *Rect) String() string { return proto.CompactTextString(m) }
func (*Rect) ProtoMessage()    {}
func (*Rect) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{14}
   return fileDescriptor_32de24555f916688, []int{16}
}
func (m *Rect) XXX_Unmarshal(b []byte) error {
@@ -1206,7 +1379,7 @@
func (m *FaceAngle) String() string { return proto.CompactTextString(m) }
func (*FaceAngle) ProtoMessage()    {}
func (*FaceAngle) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{15}
   return fileDescriptor_32de24555f916688, []int{17}
}
func (m *FaceAngle) XXX_Unmarshal(b []byte) error {
@@ -1270,7 +1443,7 @@
func (m *ThftResult) String() string { return proto.CompactTextString(m) }
func (*ThftResult) ProtoMessage()    {}
func (*ThftResult) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{16}
   return fileDescriptor_32de24555f916688, []int{18}
}
func (m *ThftResult) XXX_Unmarshal(b []byte) error {
@@ -1344,7 +1517,7 @@
func (m *FacePos) String() string { return proto.CompactTextString(m) }
func (*FacePos) ProtoMessage()    {}
func (*FacePos) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{17}
   return fileDescriptor_32de24555f916688, []int{19}
}
func (m *FacePos) XXX_Unmarshal(b []byte) error {
@@ -1440,7 +1613,7 @@
func (m *FaceInfo) String() string { return proto.CompactTextString(m) }
func (*FaceInfo) ProtoMessage()    {}
func (*FaceInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{18}
   return fileDescriptor_32de24555f916688, []int{20}
}
func (m *FaceInfo) XXX_Unmarshal(b []byte) error {
@@ -1537,7 +1710,7 @@
func (m *ObjInfo) String() string { return proto.CompactTextString(m) }
func (*ObjInfo) ProtoMessage()    {}
func (*ObjInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{19}
   return fileDescriptor_32de24555f916688, []int{21}
}
func (m *ObjInfo) XXX_Unmarshal(b []byte) error {
@@ -1580,7 +1753,7 @@
}
// sdk face property
type ParamFaceProperty struct {
type ParamFacePos struct {
   Pos                  *FacePos `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
   Img                  *Image   `protobuf:"bytes,2,opt,name=img,proto3" json:"img,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1588,39 +1761,39 @@
   XXX_sizecache        int32    `json:"-"`
}
func (m *ParamFaceProperty) Reset()         { *m = ParamFaceProperty{} }
func (m *ParamFaceProperty) String() string { return proto.CompactTextString(m) }
func (*ParamFaceProperty) ProtoMessage()    {}
func (*ParamFaceProperty) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{20}
func (m *ParamFacePos) Reset()         { *m = ParamFacePos{} }
func (m *ParamFacePos) String() string { return proto.CompactTextString(m) }
func (*ParamFacePos) ProtoMessage()    {}
func (*ParamFacePos) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{22}
}
func (m *ParamFaceProperty) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ParamFaceProperty.Unmarshal(m, b)
func (m *ParamFacePos) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ParamFacePos.Unmarshal(m, b)
}
func (m *ParamFaceProperty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ParamFaceProperty.Marshal(b, m, deterministic)
func (m *ParamFacePos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ParamFacePos.Marshal(b, m, deterministic)
}
func (m *ParamFaceProperty) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFaceProperty.Merge(m, src)
func (m *ParamFacePos) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFacePos.Merge(m, src)
}
func (m *ParamFaceProperty) XXX_Size() int {
   return xxx_messageInfo_ParamFaceProperty.Size(m)
func (m *ParamFacePos) XXX_Size() int {
   return xxx_messageInfo_ParamFacePos.Size(m)
}
func (m *ParamFaceProperty) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFaceProperty.DiscardUnknown(m)
func (m *ParamFacePos) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFacePos.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFaceProperty proto.InternalMessageInfo
var xxx_messageInfo_ParamFacePos proto.InternalMessageInfo
func (m *ParamFaceProperty) GetPos() *FacePos {
func (m *ParamFacePos) GetPos() *FacePos {
   if m != nil {
      return m.Pos
   }
   return nil
}
func (m *ParamFaceProperty) GetImg() *Image {
func (m *ParamFacePos) GetImg() *Image {
   if m != nil {
      return m.Img
   }
@@ -1640,7 +1813,7 @@
func (m *ParamFaceCompare) String() string { return proto.CompactTextString(m) }
func (*ParamFaceCompare) ProtoMessage()    {}
func (*ParamFaceCompare) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{21}
   return fileDescriptor_32de24555f916688, []int{23}
}
func (m *ParamFaceCompare) XXX_Unmarshal(b []byte) error {
@@ -1675,13 +1848,177 @@
   return nil
}
// sdk face property
type ParamFaceProperty struct {
   Result               *ThftResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
   Img                  *Image      `protobuf:"bytes,2,opt,name=img,proto3" json:"img,omitempty"`
   XXX_NoUnkeyedLiteral struct{}    `json:"-"`
   XXX_unrecognized     []byte      `json:"-"`
   XXX_sizecache        int32       `json:"-"`
}
func (m *ParamFaceProperty) Reset()         { *m = ParamFaceProperty{} }
func (m *ParamFaceProperty) String() string { return proto.CompactTextString(m) }
func (*ParamFaceProperty) ProtoMessage()    {}
func (*ParamFaceProperty) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{24}
}
func (m *ParamFaceProperty) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ParamFaceProperty.Unmarshal(m, b)
}
func (m *ParamFaceProperty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ParamFaceProperty.Marshal(b, m, deterministic)
}
func (m *ParamFaceProperty) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFaceProperty.Merge(m, src)
}
func (m *ParamFaceProperty) XXX_Size() int {
   return xxx_messageInfo_ParamFaceProperty.Size(m)
}
func (m *ParamFaceProperty) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFaceProperty.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFaceProperty proto.InternalMessageInfo
func (m *ParamFaceProperty) GetResult() *ThftResult {
   if m != nil {
      return m.Result
   }
   return nil
}
func (m *ParamFaceProperty) GetImg() *Image {
   if m != nil {
      return m.Img
   }
   return nil
}
// sdk yolo detect
type ParamYoloObj struct {
   Infos                []*ObjInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,omitempty"`
   Img                  *Image     `protobuf:"bytes,2,opt,name=img,proto3" json:"img,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
}
func (m *ParamYoloObj) Reset()         { *m = ParamYoloObj{} }
func (m *ParamYoloObj) String() string { return proto.CompactTextString(m) }
func (*ParamYoloObj) ProtoMessage()    {}
func (*ParamYoloObj) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{25}
}
func (m *ParamYoloObj) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ParamYoloObj.Unmarshal(m, b)
}
func (m *ParamYoloObj) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ParamYoloObj.Marshal(b, m, deterministic)
}
func (m *ParamYoloObj) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamYoloObj.Merge(m, src)
}
func (m *ParamYoloObj) XXX_Size() int {
   return xxx_messageInfo_ParamYoloObj.Size(m)
}
func (m *ParamYoloObj) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamYoloObj.DiscardUnknown(m)
}
var xxx_messageInfo_ParamYoloObj proto.InternalMessageInfo
func (m *ParamYoloObj) GetInfos() []*ObjInfo {
   if m != nil {
      return m.Infos
   }
   return nil
}
func (m *ParamYoloObj) GetImg() *Image {
   if m != nil {
      return m.Img
   }
   return nil
}
//publish db change message
type DbChangeMessage struct {
   Table                TableChanged `protobuf:"varint,1,opt,name=table,proto3,enum=protomsg.TableChanged" json:"table,omitempty"`
   Id                   string       `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
   Action               DbAction     `protobuf:"varint,3,opt,name=action,proto3,enum=protomsg.DbAction" json:"action,omitempty"`
   Info                 string       `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
   XXX_NoUnkeyedLiteral struct{}     `json:"-"`
   XXX_unrecognized     []byte       `json:"-"`
   XXX_sizecache        int32        `json:"-"`
}
func (m *DbChangeMessage) Reset()         { *m = DbChangeMessage{} }
func (m *DbChangeMessage) String() string { return proto.CompactTextString(m) }
func (*DbChangeMessage) ProtoMessage()    {}
func (*DbChangeMessage) Descriptor() ([]byte, []int) {
   return fileDescriptor_32de24555f916688, []int{26}
}
func (m *DbChangeMessage) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_DbChangeMessage.Unmarshal(m, b)
}
func (m *DbChangeMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_DbChangeMessage.Marshal(b, m, deterministic)
}
func (m *DbChangeMessage) XXX_Merge(src proto.Message) {
   xxx_messageInfo_DbChangeMessage.Merge(m, src)
}
func (m *DbChangeMessage) XXX_Size() int {
   return xxx_messageInfo_DbChangeMessage.Size(m)
}
func (m *DbChangeMessage) XXX_DiscardUnknown() {
   xxx_messageInfo_DbChangeMessage.DiscardUnknown(m)
}
var xxx_messageInfo_DbChangeMessage proto.InternalMessageInfo
func (m *DbChangeMessage) GetTable() TableChanged {
   if m != nil {
      return m.Table
   }
   return TableChanged_T_Camera
}
func (m *DbChangeMessage) GetId() string {
   if m != nil {
      return m.Id
   }
   return ""
}
func (m *DbChangeMessage) GetAction() DbAction {
   if m != nil {
      return m.Action
   }
   return DbAction_Insert
}
func (m *DbChangeMessage) GetInfo() string {
   if m != nil {
      return m.Info
   }
   return ""
}
func init() {
   proto.RegisterEnum("protomsg.TableChanged", TableChanged_name, TableChanged_value)
   proto.RegisterEnum("protomsg.DbAction", DbAction_name, DbAction_value)
   proto.RegisterType((*TaskLabel)(nil), "protomsg.TaskLabel")
   proto.RegisterType((*SdkMessage)(nil), "protomsg.SdkMessage")
   proto.RegisterType((*Image)(nil), "protomsg.Image")
   proto.RegisterType((*Area)(nil), "protomsg.Area")
   proto.RegisterType((*Camera)(nil), "protomsg.Camera")
   proto.RegisterType((*CameraAndTaskInfo)(nil), "protomsg.CameraAndTaskInfo")
   proto.RegisterType((*Task)(nil), "protomsg.Task")
   proto.RegisterType((*TaskSdkInfo)(nil), "protomsg.TaskSdkInfo")
   proto.RegisterType((*CameraTask)(nil), "protomsg.CameraTask")
   proto.RegisterType((*DayCtl)(nil), "protomsg.DayCtl")
   proto.RegisterType((*TimeRange)(nil), "protomsg.TimeRange")
@@ -1696,102 +2033,124 @@
   proto.RegisterType((*FacePos)(nil), "protomsg.FacePos")
   proto.RegisterType((*FaceInfo)(nil), "protomsg.FaceInfo")
   proto.RegisterType((*ObjInfo)(nil), "protomsg.ObjInfo")
   proto.RegisterType((*ParamFaceProperty)(nil), "protomsg.ParamFaceProperty")
   proto.RegisterType((*ParamFacePos)(nil), "protomsg.ParamFacePos")
   proto.RegisterType((*ParamFaceCompare)(nil), "protomsg.ParamFaceCompare")
   proto.RegisterType((*ParamFaceProperty)(nil), "protomsg.ParamFaceProperty")
   proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
   proto.RegisterType((*DbChangeMessage)(nil), "protomsg.DbChangeMessage")
}
func init() { proto.RegisterFile("protomsg.proto", fileDescriptor_32de24555f916688) }
var fileDescriptor_32de24555f916688 = []byte{
   // 1440 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x57, 0x4f, 0x6f, 0xdb, 0xc6,
   0x12, 0x87, 0x24, 0xeb, 0x0f, 0xc7, 0xb2, 0x5e, 0xc2, 0x97, 0xf7, 0x1e, 0x5f, 0xfa, 0x27, 0x0e,
   0x13, 0xb4, 0x2e, 0x8a, 0xa4, 0xa8, 0x73, 0x2f, 0xa0, 0xc6, 0x75, 0x21, 0x20, 0x71, 0xdc, 0x4d,
   0x9a, 0x02, 0xed, 0x41, 0x58, 0x71, 0x57, 0x14, 0xe3, 0x15, 0xc9, 0xee, 0x2e, 0x63, 0xf3, 0xde,
   0x0f, 0xd7, 0x43, 0x3f, 0x40, 0x6f, 0x3d, 0xf5, 0x33, 0xf4, 0x56, 0x14, 0x33, 0xbb, 0xa4, 0xe4,
   0xd8, 0x29, 0x0a, 0xf4, 0xda, 0xdb, 0xfc, 0x66, 0x46, 0xb3, 0x33, 0xbf, 0x9d, 0x99, 0xa5, 0x60,
   0x52, 0xea, 0xc2, 0x16, 0x6b, 0x93, 0x3e, 0x24, 0x21, 0x1c, 0x35, 0x38, 0xfe, 0x0a, 0x82, 0x17,
   0xdc, 0x9c, 0x3d, 0xe1, 0x0b, 0xa9, 0xc2, 0xff, 0xc2, 0xc0, 0x72, 0x73, 0x96, 0x89, 0xa8, 0xb3,
   0xdf, 0x39, 0x08, 0x98, 0x47, 0xa8, 0x37, 0xe2, 0x2c, 0x13, 0x26, 0xea, 0xee, 0xf7, 0x50, 0xef,
   0x50, 0x78, 0x0b, 0xfa, 0x59, 0x2e, 0xe4, 0x45, 0xd4, 0xdb, 0xef, 0x1c, 0xf4, 0x99, 0x03, 0x31,
   0x07, 0x78, 0x2e, 0xce, 0x9e, 0x4a, 0x63, 0x78, 0x2a, 0xc3, 0x1b, 0xd0, 0x4b, 0xda, 0x80, 0x28,
   0x86, 0x0f, 0x60, 0x88, 0x71, 0x15, 0x5f, 0x44, 0xdd, 0xfd, 0xce, 0xc1, 0xee, 0xe1, 0xbf, 0x1f,
   0xb6, 0xe9, 0xb5, 0xb9, 0xb0, 0xc6, 0x27, 0x0c, 0x61, 0x47, 0x70, 0xcb, 0xe9, 0x8c, 0x31, 0x23,
   0x39, 0x9e, 0x41, 0x7f, 0xb6, 0xc6, 0xe8, 0xb7, 0xa0, 0x7f, 0x9e, 0x09, 0xbb, 0xa2, 0xf8, 0x7d,
   0xe6, 0x00, 0xe6, 0xbb, 0x92, 0x59, 0xba, 0xb2, 0x74, 0x40, 0x9f, 0x79, 0x74, 0x6d, 0xa8, 0x63,
   0xd8, 0x99, 0x6a, 0xc9, 0xc3, 0x09, 0x74, 0x7d, 0x9a, 0x7d, 0xd6, 0xcd, 0x44, 0x78, 0x1b, 0x46,
   0x25, 0xd7, 0x32, 0xb7, 0x99, 0xf0, 0x51, 0x5a, 0x8c, 0x71, 0x72, 0xbe, 0x96, 0x14, 0x27, 0x60,
   0x24, 0xc7, 0x3f, 0x76, 0x61, 0xf0, 0x98, 0xaf, 0xa5, 0xde, 0x0e, 0x15, 0x50, 0xa8, 0xc6, 0xbd,
   0xbb, 0x71, 0x47, 0x9d, 0xad, 0x4b, 0xe9, 0x99, 0x23, 0x19, 0x75, 0x5c, 0x08, 0x1d, 0xed, 0x38,
   0x3f, 0x94, 0xb1, 0x14, 0xae, 0x25, 0xcf, 0x44, 0xd4, 0x77, 0xa5, 0x38, 0x14, 0xbe, 0x0b, 0x81,
   0x2a, 0xf2, 0x34, 0xb3, 0x95, 0x90, 0xd1, 0x60, 0xbf, 0x73, 0xd0, 0x65, 0x1b, 0x05, 0x26, 0xaf,
   0xb8, 0x75, 0xc6, 0x21, 0x19, 0x5b, 0x8c, 0xa7, 0x68, 0x6b, 0xca, 0x68, 0xe4, 0x4e, 0x41, 0x99,
   0x32, 0x2e, 0xa3, 0xc0, 0x67, 0x5c, 0xa2, 0x4f, 0x59, 0x68, 0x1b, 0x81, 0xcb, 0x0e, 0x65, 0x8c,
   0x59, 0x19, 0xa9, 0xa9, 0x92, 0x5d, 0xf2, 0x6c, 0xb1, 0x23, 0xcb, 0x98, 0xf3, 0x42, 0x8b, 0x68,
   0xec, 0x6c, 0x0d, 0xc6, 0x2b, 0x5a, 0x68, 0x9e, 0x8b, 0x68, 0x8f, 0x0c, 0x0e, 0xe0, 0x2f, 0xb4,
   0x34, 0x52, 0xbf, 0x96, 0x22, 0x9a, 0xb8, 0x5f, 0x34, 0x38, 0xfe, 0xa5, 0x03, 0x3b, 0xd8, 0x08,
   0x6f, 0xed, 0xc7, 0xdb, 0x30, 0x42, 0x69, 0x8b, 0xd4, 0x16, 0x87, 0xef, 0x40, 0x90, 0x68, 0xc9,
   0xad, 0x9c, 0x73, 0xeb, 0x2f, 0x68, 0xe4, 0x14, 0x53, 0xbb, 0x65, 0x5c, 0xd4, 0x9e, 0x66, 0x6f,
   0xfc, 0xbc, 0x46, 0x63, 0x55, 0x0a, 0xff, 0xcb, 0xbe, 0xaf, 0x90, 0x14, 0x53, 0x8b, 0xa9, 0xc8,
   0x9c, 0x2f, 0x94, 0x23, 0x7b, 0xc4, 0x3c, 0x0a, 0xff, 0x0f, 0xa3, 0xcc, 0xcc, 0xb9, 0xe2, 0x7a,
   0x4d, 0x4c, 0x8f, 0xd8, 0x30, 0x33, 0x53, 0x84, 0x68, 0x12, 0x52, 0xcd, 0x97, 0x8a, 0xa7, 0x44,
   0xf6, 0x88, 0x0d, 0x85, 0x54, 0xc7, 0x8a, 0xa7, 0xf1, 0xcf, 0x5d, 0x00, 0xd7, 0x2c, 0x54, 0xe7,
   0x9b, 0x0d, 0xf3, 0x1e, 0x40, 0x42, 0xd6, 0xb9, 0x9b, 0x39, 0xd4, 0x07, 0x4e, 0x33, 0x13, 0x26,
   0xfc, 0x9f, 0x1b, 0xa0, 0x79, 0x26, 0x7c, 0x81, 0xc4, 0xcb, 0x4c, 0x60, 0x05, 0x36, 0x5b, 0xcb,
   0xb9, 0xae, 0x94, 0x6c, 0xca, 0x43, 0x05, 0xab, 0x94, 0xc4, 0xa0, 0x5a, 0xf2, 0xc4, 0x3a, 0xab,
   0xab, 0x2f, 0x20, 0x0d, 0x99, 0xef, 0xc2, 0xd8, 0x99, 0x85, 0x7c, 0x9d, 0x25, 0xae, 0xcc, 0x80,
   0xed, 0x92, 0xee, 0x88, 0x54, 0x97, 0x0a, 0x1a, 0x5e, 0x2a, 0x28, 0xbc, 0x03, 0xbb, 0x9e, 0xbb,
   0xad, 0x72, 0xc1, 0xa9, 0xc8, 0x61, 0xc3, 0x5f, 0x70, 0x89, 0xbf, 0x10, 0x76, 0xcc, 0x56, 0xa7,
   0xa1, 0x8c, 0xf5, 0x65, 0x66, 0xbe, 0xac, 0x94, 0xa2, 0x46, 0x1b, 0xb1, 0x41, 0x66, 0x8e, 0x2b,
   0xa5, 0xc2, 0x18, 0xf6, 0x54, 0x96, 0x9f, 0xcd, 0x53, 0x5d, 0x54, 0x25, 0x96, 0xef, 0x7a, 0x6d,
   0x17, 0x95, 0x5f, 0xa2, 0x6e, 0x26, 0xe2, 0x13, 0x18, 0x1c, 0xf1, 0xfa, 0xb1, 0x55, 0xb8, 0x79,
   0x04, 0xaf, 0xfd, 0x48, 0xa3, 0x18, 0x1e, 0x02, 0x38, 0x7e, 0x78, 0x9e, 0x4a, 0xda, 0x65, 0x97,
   0x97, 0x0f, 0x52, 0x85, 0x26, 0x46, 0x34, 0x92, 0x18, 0x3f, 0x82, 0xa0, 0xd5, 0x63, 0x2f, 0x1b,
   0xcb, 0xb5, 0xf5, 0x77, 0xe5, 0x00, 0x1e, 0x24, 0x73, 0xe1, 0xef, 0x09, 0xc5, 0xf8, 0x25, 0x0c,
   0x4f, 0x0b, 0x55, 0xa7, 0x45, 0xfe, 0x97, 0x96, 0xc1, 0x87, 0x30, 0x28, 0x8b, 0x2c, 0xb7, 0x26,
   0xda, 0xa1, 0x9c, 0xfe, 0xb5, 0xc9, 0xe9, 0x14, 0xf5, 0xcc, 0x9b, 0xe3, 0xdf, 0xba, 0x30, 0xd9,
   0xf4, 0xcd, 0x54, 0xa7, 0xe6, 0x4a, 0xfc, 0xfb, 0x30, 0xf1, 0xbd, 0xd3, 0xf4, 0x88, 0x3b, 0x69,
   0x9c, 0xb4, 0xbf, 0x73, 0x9d, 0xd2, 0x76, 0x58, 0x3b, 0x25, 0xbe, 0xc1, 0xb0, 0x53, 0x4a, 0x97,
   0x3d, 0x5a, 0x5d, 0x1f, 0x05, 0x5e, 0x33, 0x13, 0xe1, 0x7f, 0xe8, 0x35, 0x98, 0xfb, 0x95, 0x84,
   0x2c, 0x08, 0x0c, 0x19, 0xc3, 0x1e, 0xaa, 0xb9, 0x4e, 0xe7, 0x5c, 0x65, 0xdc, 0x34, 0x1d, 0x64,
   0x04, 0x26, 0x3a, 0x45, 0x15, 0x0e, 0x6e, 0x51, 0x4a, 0xcd, 0x6d, 0xa1, 0xa9, 0x83, 0x02, 0xd6,
   0xe2, 0xf0, 0x1e, 0xec, 0x35, 0xf2, 0x9c, 0x56, 0xa3, 0x5b, 0x50, 0xe3, 0x46, 0xf9, 0x02, 0x57,
   0xe4, 0xd6, 0x21, 0xaf, 0xb9, 0xaa, 0xa4, 0xdf, 0x59, 0xfe, 0x90, 0x97, 0xa8, 0xba, 0xb6, 0xa5,
   0xee, 0xc3, 0x04, 0xdb, 0x7e, 0x7e, 0x9e, 0xd9, 0xd5, 0x3c, 0x97, 0x17, 0xd6, 0xaf, 0xb0, 0x31,
   0x6a, 0xbf, 0xc9, 0xec, 0xea, 0x44, 0x5e, 0x58, 0x6c, 0xf0, 0x37, 0x5a, 0x6b, 0x98, 0xfa, 0xb6,
   0xfa, 0xbd, 0x03, 0xbd, 0xe7, 0xe2, 0xea, 0xa8, 0xde, 0x81, 0x5d, 0xbf, 0x51, 0xb0, 0x65, 0x3c,
   0xd7, 0xe0, 0x54, 0xd8, 0x37, 0x5b, 0x93, 0x41, 0x0e, 0x8e, 0x6b, 0x3f, 0x19, 0xe4, 0xf0, 0xa7,
   0x3b, 0x69, 0x7b, 0xe4, 0x1c, 0xdb, 0xed, 0xc8, 0x45, 0x30, 0x74, 0x33, 0x24, 0x3c, 0xd3, 0x0d,
   0xc4, 0x1f, 0x21, 0x49, 0xd4, 0x66, 0x8e, 0xe5, 0xa1, 0x11, 0x67, 0x27, 0xfe, 0xd9, 0xc9, 0x92,
   0x22, 0x6f, 0x96, 0x3f, 0xca, 0xd8, 0xbe, 0x95, 0x56, 0x9e, 0x49, 0x14, 0xe9, 0x21, 0xd2, 0xa9,
   0x21, 0x06, 0xf1, 0x21, 0xd2, 0xa9, 0x89, 0x7f, 0xe8, 0xc0, 0xe0, 0x39, 0xb1, 0x8c, 0x53, 0xe0,
   0x6e, 0xd8, 0x55, 0xeb, 0xc0, 0x75, 0x8f, 0x62, 0xfb, 0xca, 0xf9, 0x17, 0xad, 0x79, 0xe5, 0xd6,
   0x95, 0x71, 0x1b, 0x76, 0xc4, 0x48, 0xc6, 0x88, 0x6e, 0x26, 0x5d, 0x25, 0x0e, 0xb4, 0x17, 0x39,
   0xdc, 0x5c, 0x64, 0x7c, 0x0f, 0xfa, 0x34, 0x12, 0xe1, 0x18, 0x3a, 0x17, 0x7e, 0xb6, 0x3b, 0x17,
   0x88, 0x6a, 0xff, 0x4c, 0x77, 0xea, 0xf8, 0x5b, 0xd8, 0x61, 0x32, 0xa1, 0xf7, 0x5e, 0xc9, 0xa5,
   0xf5, 0x6e, 0x24, 0x63, 0xb5, 0xb6, 0x28, 0xbd, 0x2f, 0x8a, 0x74, 0x38, 0x7d, 0x2c, 0xf8, 0xaf,
   0x18, 0x02, 0xb8, 0xb0, 0x16, 0x85, 0xb5, 0xc5, 0x9a, 0x92, 0xef, 0x33, 0x8f, 0xe2, 0x14, 0x82,
   0x63, 0x9e, 0xc8, 0x69, 0x9e, 0x2a, 0xfa, 0xb8, 0xa9, 0xf9, 0x79, 0xb3, 0x62, 0x6a, 0x7e, 0x8e,
   0xc1, 0xca, 0xcc, 0x26, 0x2b, 0x7f, 0x80, 0x03, 0xf4, 0xe6, 0x16, 0x4a, 0x35, 0xaf, 0x3d, 0xca,
   0xe1, 0xfb, 0x00, 0x49, 0x91, 0x2f, 0x33, 0x21, 0xf3, 0xc4, 0x31, 0xd4, 0x65, 0x5b, 0x9a, 0xf8,
   0x02, 0xe0, 0xc5, 0x6a, 0x69, 0x99, 0x34, 0x95, 0xa2, 0x74, 0x52, 0x99, 0x0b, 0xa9, 0xfd, 0x61,
   0x1e, 0x61, 0x06, 0x3c, 0x95, 0x4d, 0x39, 0xdc, 0xb1, 0xa6, 0x79, 0xd2, 0x7e, 0x59, 0xa0, 0x4c,
   0xc5, 0x48, 0x5e, 0xd9, 0xba, 0x2d, 0x86, 0x10, 0xed, 0xb3, 0x75, 0xe6, 0x9f, 0x83, 0x3e, 0x73,
   0x20, 0xfe, 0xa9, 0x0b, 0x43, 0xac, 0xf1, 0xb4, 0x30, 0xe1, 0x07, 0x30, 0xd0, 0x09, 0x02, 0x3a,
   0x77, 0xf7, 0x70, 0xb2, 0x59, 0x4d, 0x48, 0x31, 0xf3, 0xd6, 0xf0, 0x01, 0x04, 0xa5, 0x7d, 0x22,
   0x97, 0xf6, 0x8b, 0x5a, 0xfa, 0xcf, 0xba, 0x2b, 0x5b, 0x6c, 0xe3, 0x11, 0x7e, 0x02, 0x50, 0x5a,
   0x86, 0x44, 0xa3, 0x7f, 0xef, 0x7a, 0xff, 0x2d, 0x97, 0xf0, 0x23, 0x18, 0x96, 0xf6, 0x69, 0x51,
   0xd9, 0x15, 0x95, 0x70, 0x8d, 0x77, 0x63, 0xa7, 0x6d, 0x6a, 0x4f, 0x0a, 0xe3, 0xaa, 0xba, 0x76,
   0x9b, 0x92, 0x39, 0xfc, 0x18, 0x06, 0x4b, 0xba, 0x47, 0x6a, 0xbb, 0x4b, 0x4f, 0x41, 0x7b, 0xc5,
   0xcc, 0xbb, 0xe0, 0xb8, 0x7d, 0x5f, 0x71, 0x95, 0xd9, 0xda, 0xf7, 0x63, 0x03, 0xf1, 0x22, 0x97,
   0x3c, 0xc9, 0xb8, 0x3a, 0xc2, 0x6f, 0xcb, 0x11, 0x7d, 0x5b, 0x6e, 0x69, 0xe2, 0x5f, 0xbb, 0x30,
   0xc2, 0x78, 0xb3, 0x7c, 0x59, 0xfc, 0xc3, 0xe7, 0xdf, 0xe6, 0x13, 0x9b, 0x79, 0x89, 0x74, 0x1e,
   0xd1, 0xca, 0xea, 0x31, 0x8f, 0xe2, 0xaf, 0x61, 0xf8, 0x6c, 0xf1, 0x8a, 0x58, 0xbe, 0x0f, 0x7d,
   0x9d, 0x3c, 0x5b, 0xbc, 0x7a, 0x0b, 0xc9, 0xce, 0x48, 0xab, 0xa0, 0xde, 0xac, 0x82, 0xda, 0x7d,
   0xf7, 0xea, 0x62, 0x41, 0x04, 0x76, 0x19, 0xc9, 0xf1, 0x77, 0x70, 0xf3, 0x94, 0x6b, 0xbe, 0xa6,
   0x89, 0xd0, 0xf8, 0x1a, 0xd9, 0x3a, 0xbc, 0x07, 0xbd, 0xb2, 0x30, 0x3e, 0xfc, 0xcd, 0xcb, 0x75,
   0x9e, 0x16, 0x86, 0xa1, 0x35, 0xbc, 0x0b, 0xbd, 0x6c, 0x9d, 0x5e, 0xbd, 0x3d, 0xfa, 0xeb, 0xc2,
   0xd0, 0x16, 0x7f, 0x06, 0x37, 0xda, 0xe0, 0x8f, 0x8b, 0x35, 0xfe, 0xc3, 0xc0, 0xa1, 0x5c, 0x4a,
   0x6e, 0x3f, 0xa5, 0xe8, 0x63, 0xe6, 0x40, 0xa3, 0x3d, 0xa4, 0x70, 0x5e, 0x7b, 0xb8, 0x18, 0x50,
   0xd0, 0x47, 0x7f, 0x04, 0x00, 0x00, 0xff, 0xff, 0xc4, 0xf2, 0x45, 0x66, 0xe1, 0x0d, 0x00, 0x00,
   // 1743 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x57, 0xcd, 0x92, 0xe3, 0x48,
   0x11, 0x5e, 0xcb, 0x7f, 0x52, 0xb6, 0xdb, 0xeb, 0x29, 0x86, 0xc5, 0xbb, 0xfc, 0xf5, 0x68, 0x3a,
   0xd8, 0x66, 0x58, 0x86, 0xa0, 0xf7, 0x4e, 0x84, 0x99, 0x66, 0x08, 0x47, 0xec, 0xce, 0x36, 0xd5,
   0xbd, 0x43, 0xb0, 0x17, 0x47, 0x59, 0x55, 0x96, 0xb5, 0x2d, 0x4b, 0xa2, 0xaa, 0x3c, 0xdd, 0x3e,
   0x70, 0xe3, 0xce, 0x83, 0xf0, 0x22, 0x1c, 0x78, 0x07, 0x4e, 0x5c, 0x78, 0x01, 0xae, 0x44, 0x66,
   0x95, 0x64, 0x79, 0xba, 0x27, 0x62, 0x22, 0xb8, 0xee, 0x2d, 0xff, 0x94, 0x95, 0xf5, 0xe5, 0x4f,
   0xa5, 0x60, 0x5c, 0xe9, 0xd2, 0x96, 0x1b, 0x93, 0x3e, 0x27, 0x82, 0x85, 0x35, 0x1f, 0xff, 0x01,
   0xa2, 0x6b, 0x61, 0x6e, 0xbe, 0x10, 0x4b, 0x95, 0xb3, 0x8f, 0x60, 0x60, 0x85, 0xb9, 0xc9, 0xe4,
   0xb4, 0x73, 0xd2, 0x39, 0x8b, 0xb8, 0xe7, 0x50, 0x6e, 0xe4, 0x4d, 0x26, 0xcd, 0x34, 0x38, 0xe9,
   0xa2, 0xdc, 0x71, 0xec, 0x31, 0xf4, 0xb3, 0x42, 0xaa, 0xbb, 0x69, 0xf7, 0xa4, 0x73, 0xd6, 0xe7,
   0x8e, 0x89, 0x05, 0xc0, 0x95, 0xbc, 0xf9, 0x52, 0x19, 0x23, 0x52, 0xc5, 0x26, 0xd0, 0x4d, 0x1a,
   0x87, 0x48, 0xb2, 0x5f, 0xc2, 0x10, 0xfd, 0xe6, 0x62, 0x39, 0x0d, 0x4e, 0x3a, 0x67, 0x47, 0xe7,
   0xdf, 0x7b, 0xde, 0x84, 0xd7, 0xc4, 0xc2, 0x6b, 0x1b, 0xc6, 0xa0, 0x27, 0x85, 0x15, 0x74, 0xc6,
   0x88, 0x13, 0x1d, 0xcf, 0xa1, 0x3f, 0xdf, 0xa0, 0xf7, 0xc7, 0xd0, 0xbf, 0xcd, 0xa4, 0x5d, 0x93,
   0xff, 0x3e, 0x77, 0x0c, 0xc6, 0xbb, 0x56, 0x59, 0xba, 0xb6, 0x74, 0x40, 0x9f, 0x7b, 0xee, 0x41,
   0x57, 0x2f, 0xa1, 0x37, 0xd3, 0x4a, 0xb0, 0x31, 0x04, 0x3e, 0xcc, 0x3e, 0x0f, 0x32, 0xc9, 0x3e,
   0x81, 0xb0, 0x12, 0x5a, 0x15, 0x36, 0x93, 0xde, 0x4b, 0xc3, 0xa3, 0x9f, 0x42, 0x6c, 0x14, 0xf9,
   0x89, 0x38, 0xd1, 0xf1, 0x3f, 0x02, 0x18, 0xbc, 0x10, 0x1b, 0xa5, 0xdb, 0xae, 0x22, 0x72, 0x55,
   0x9b, 0x07, 0x7b, 0x73, 0x94, 0xd9, 0x5d, 0xa5, 0x3c, 0x72, 0x44, 0xa3, 0x4c, 0x48, 0xa9, 0xa7,
   0x3d, 0x67, 0x87, 0x34, 0x5e, 0x45, 0x68, 0x25, 0x32, 0x39, 0xed, 0xbb, 0xab, 0x38, 0x8e, 0xfd,
   0x08, 0xa2, 0xbc, 0x2c, 0xd2, 0xcc, 0x6e, 0xa5, 0x9a, 0x0e, 0x4e, 0x3a, 0x67, 0x01, 0xdf, 0x0b,
   0x30, 0xf8, 0x5c, 0x58, 0xa7, 0x1c, 0x92, 0xb2, 0xe1, 0xf1, 0x14, 0x6d, 0x4d, 0x35, 0x0d, 0xdd,
   0x29, 0x48, 0x53, 0xc4, 0xd5, 0x34, 0xf2, 0x11, 0x57, 0x68, 0x53, 0x95, 0xda, 0x4e, 0xc1, 0x45,
   0x87, 0x34, 0xfa, 0xdc, 0x1a, 0xa5, 0xe9, 0x26, 0x47, 0x64, 0xd9, 0xf0, 0x0e, 0x2c, 0x63, 0x6e,
   0x4b, 0x2d, 0xa7, 0x23, 0xa7, 0xab, 0x79, 0x4c, 0xd1, 0x52, 0x8b, 0x42, 0x4e, 0x8f, 0x49, 0xe1,
   0x18, 0xfc, 0x42, 0x2b, 0xa3, 0xf4, 0x1b, 0x25, 0xa7, 0x63, 0xf7, 0x45, 0xcd, 0xc7, 0x09, 0x3c,
   0x72, 0x48, 0xce, 0x0a, 0x89, 0x05, 0x31, 0x2f, 0x56, 0x25, 0x3b, 0x83, 0x41, 0x42, 0x42, 0x02,
   0xf6, 0xe8, 0x7c, 0xb2, 0x2f, 0x1a, 0x67, 0xcc, 0xbd, 0x9e, 0x9d, 0x42, 0x1f, 0x6b, 0xc7, 0x15,
   0xeb, 0xd1, 0xf9, 0xf8, 0xb0, 0xba, 0xb8, 0x53, 0xc6, 0xff, 0xea, 0x40, 0x0f, 0xf9, 0x77, 0x16,
   0xfd, 0x27, 0x10, 0x22, 0xd5, 0xca, 0x5c, 0xc3, 0xb3, 0x1f, 0x42, 0x94, 0x68, 0x25, 0xac, 0x5a,
   0x08, 0xeb, 0xab, 0x20, 0x74, 0x82, 0x99, 0x6d, 0x29, 0x97, 0x3b, 0x9f, 0x4b, 0xaf, 0xfc, 0xed,
   0x0e, 0x95, 0xdb, 0x4a, 0xfa, 0x2f, 0xfb, 0x1e, 0x46, 0x12, 0xcc, 0x2c, 0x86, 0xa2, 0x0a, 0xb1,
   0xcc, 0x5d, 0x46, 0x43, 0xee, 0x39, 0xf6, 0x31, 0x84, 0x99, 0x59, 0x88, 0x5c, 0xe8, 0x0d, 0xa5,
   0x33, 0xe4, 0xc3, 0xcc, 0xcc, 0x90, 0x45, 0x95, 0x54, 0xf9, 0x62, 0x95, 0x8b, 0x94, 0x32, 0x1a,
   0xf2, 0xa1, 0x54, 0xf9, 0xcb, 0x5c, 0xa4, 0xf1, 0x35, 0x1c, 0xe1, 0x05, 0xaf, 0xa4, 0x03, 0x30,
   0x86, 0x1e, 0xc6, 0xef, 0xe1, 0x7b, 0x1b, 0x15, 0xd2, 0xb1, 0x27, 0xd0, 0x33, 0xb2, 0x41, 0xee,
   0x78, 0x6f, 0x73, 0x25, 0x6f, 0x38, 0xa9, 0xe2, 0xff, 0x04, 0x00, 0x0e, 0x70, 0x42, 0xef, 0xed,
   0x5a, 0xff, 0x31, 0x80, 0x4b, 0xc3, 0xc2, 0x8d, 0x0b, 0x94, 0x47, 0x4e, 0x32, 0x97, 0x86, 0xfd,
   0xc0, 0xf5, 0xfe, 0x22, 0x93, 0x1e, 0x36, 0x42, 0x7b, 0x8e, 0x43, 0x21, 0xb2, 0xd9, 0x46, 0x2d,
   0xf4, 0x36, 0x57, 0xd3, 0x1e, 0x1d, 0xdf, 0xca, 0xf0, 0x85, 0xd8, 0xbd, 0xb0, 0x39, 0x0f, 0xd1,
   0x84, 0x6f, 0x73, 0x85, 0xc7, 0x68, 0x25, 0x12, 0xeb, 0xec, 0x1d, 0x8e, 0x11, 0x49, 0x48, 0xfd,
   0x04, 0x46, 0x4e, 0x2d, 0xd5, 0x9b, 0x2c, 0x71, 0x70, 0x46, 0xfc, 0x88, 0x64, 0x17, 0x24, 0x3a,
   0x00, 0x6e, 0x78, 0x00, 0x1c, 0xfb, 0x29, 0x1c, 0xf9, 0x1c, 0xb5, 0x60, 0x05, 0x27, 0x22, 0x83,
   0x7d, 0x9e, 0xa2, 0x83, 0x3c, 0x31, 0xe8, 0x99, 0x56, 0xdb, 0x20, 0x8d, 0x37, 0xce, 0xcc, 0x62,
   0xb5, 0xcd, 0x73, 0xea, 0x9a, 0x90, 0x0f, 0x32, 0xf3, 0x72, 0x9b, 0xe7, 0x2c, 0x86, 0xe3, 0x3c,
   0x2b, 0x6e, 0x16, 0xa9, 0x2e, 0xb7, 0x15, 0x02, 0xe2, 0x1a, 0xe7, 0x08, 0x85, 0xbf, 0x47, 0xd9,
   0x5c, 0xc6, 0xaf, 0x60, 0xe0, 0xae, 0x8e, 0x63, 0x54, 0x8a, 0x9d, 0x9f, 0x4f, 0x48, 0xb2, 0x73,
   0x00, 0x87, 0x98, 0x28, 0x52, 0xe5, 0x33, 0xd6, 0x9e, 0xa4, 0x08, 0x15, 0xaa, 0x38, 0x01, 0x4b,
   0x64, 0xfc, 0x39, 0x44, 0x8d, 0x1c, 0x1b, 0xd3, 0x58, 0xa1, 0xad, 0xcf, 0x9e, 0x63, 0xf0, 0x20,
   0x55, 0x48, 0x9f, 0x39, 0x24, 0xe3, 0xd7, 0x30, 0xbc, 0x2c, 0xf3, 0x5d, 0x5a, 0x16, 0xef, 0x35,
   0xd9, 0x3e, 0x85, 0x41, 0x55, 0x66, 0x85, 0x35, 0x3e, 0x8d, 0x1f, 0xee, 0x63, 0xba, 0x44, 0x39,
   0xf7, 0xea, 0xf8, 0xbf, 0x01, 0x8c, 0xf7, 0x95, 0x34, 0xd3, 0xa9, 0xb9, 0xe7, 0xff, 0x14, 0xc6,
   0xbe, 0x9a, 0xea, 0xaa, 0x71, 0x27, 0x8d, 0x92, 0xe6, 0xbb, 0xb9, 0xa4, 0x86, 0xab, 0x6b, 0xae,
   0xe9, 0x46, 0x5f, 0x72, 0x58, 0x29, 0x95, 0x8b, 0x1e, 0xb5, 0xae, 0x1d, 0x23, 0x2f, 0x99, 0x4b,
   0xf6, 0x7d, 0x7a, 0xda, 0x16, 0x7e, 0xbe, 0x22, 0x0a, 0x12, 0x5d, 0xc6, 0x70, 0x8c, 0x62, 0xa1,
   0xd3, 0x85, 0xc8, 0x33, 0x61, 0xea, 0x0a, 0x32, 0x12, 0x03, 0x9d, 0xa1, 0x08, 0x07, 0x44, 0x59,
   0x29, 0x2d, 0x6c, 0xa9, 0xa9, 0x82, 0x22, 0xde, 0xf0, 0xec, 0x29, 0x1c, 0xd7, 0xf4, 0x82, 0xe6,
   0xbc, 0x9b, 0xb6, 0xa3, 0x5a, 0x78, 0x8d, 0xf3, 0xbe, 0x75, 0xc8, 0x1b, 0x91, 0x6f, 0x95, 0x1f,
   0xc0, 0xfe, 0x90, 0xd7, 0x28, 0x7a, 0xb0, 0xa4, 0x4e, 0x61, 0x8c, 0x65, 0xbf, 0xb8, 0xcd, 0xec,
   0x7a, 0x51, 0xa8, 0x3b, 0xeb, 0xe7, 0xf1, 0x08, 0xa5, 0x7f, 0xcc, 0xec, 0xfa, 0x95, 0xba, 0xb3,
   0x58, 0xe0, 0x6f, 0x95, 0xd6, 0x30, 0xf5, 0x65, 0xf5, 0xf7, 0x00, 0xba, 0x57, 0xf2, 0x7e, 0xf3,
   0x7e, 0x0c, 0x21, 0x06, 0x44, 0x01, 0x3b, 0xa0, 0x87, 0x46, 0xde, 0x50, 0xac, 0x5e, 0xd5, 0x7a,
   0xf6, 0x50, 0xf5, 0x0a, 0x13, 0x7e, 0x0a, 0x3d, 0xa1, 0x53, 0x73, 0xbf, 0x6b, 0xaf, 0xe8, 0x1e,
   0x9c, 0xb4, 0x78, 0x91, 0x2c, 0x29, 0x0b, 0x0f, 0x33, 0xd1, 0x58, 0x6b, 0x5b, 0x9d, 0x7b, 0x6c,
   0x91, 0xc4, 0xd6, 0xf3, 0xb3, 0x13, 0x8b, 0xd6, 0xc3, 0x0a, 0x4e, 0x84, 0x95, 0xdb, 0xea, 0x4d,
   0x32, 0x70, 0xb0, 0xfa, 0xde, 0x24, 0x83, 0x83, 0xe9, 0x1b, 0xbd, 0x35, 0x7d, 0xa7, 0x30, 0x74,
   0xad, 0x2a, 0x09, 0xd0, 0x88, 0xd7, 0xec, 0xc1, 0x38, 0x70, 0x68, 0x36, 0x73, 0xf4, 0xaf, 0x1d,
   0x18, 0xb8, 0xab, 0x60, 0xcb, 0xb8, 0x72, 0x70, 0xe8, 0x38, 0xe6, 0xa1, 0x75, 0xa0, 0x79, 0xdf,
   0xfd, 0x5b, 0x5e, 0xbf, 0xef, 0x9b, 0xad, 0x71, 0x63, 0x3f, 0xe4, 0x44, 0xa3, 0x47, 0xd7, 0xc0,
   0x0e, 0x04, 0xc7, 0x34, 0x59, 0x1f, 0xee, 0xb3, 0x1e, 0x3f, 0x85, 0x3e, 0xf5, 0x0f, 0x1b, 0x41,
   0xe7, 0xce, 0x0f, 0x82, 0xce, 0x1d, 0x72, 0x3b, 0xbf, 0xa0, 0x74, 0x76, 0xf1, 0x37, 0xd0, 0xe3,
   0x2a, 0xa1, 0x4d, 0x27, 0x57, 0x2b, 0xeb, 0xcd, 0x88, 0x46, 0xb4, 0x6d, 0x59, 0x79, 0x5b, 0x24,
   0xe9, 0x70, 0x5a, 0x93, 0xfc, 0xfe, 0x46, 0x0c, 0x4e, 0xb7, 0x65, 0x69, 0x6d, 0xb9, 0xa1, 0xe0,
   0xfb, 0xdc, 0x73, 0x71, 0x0a, 0xd1, 0x4b, 0x91, 0xa8, 0x59, 0x91, 0xe6, 0xb4, 0xd6, 0xed, 0xc4,
   0x6d, 0x3d, 0x8f, 0x76, 0xe2, 0x16, 0x9d, 0x55, 0x99, 0x4d, 0xd6, 0xfe, 0x00, 0xc7, 0xd0, 0xb6,
   0x51, 0xe6, 0x79, 0xbd, 0xe7, 0x20, 0xcd, 0x7e, 0x02, 0x90, 0x94, 0xc5, 0x2a, 0x93, 0xaa, 0x48,
   0x1c, 0x42, 0x01, 0x6f, 0x49, 0xe2, 0x3b, 0x80, 0xeb, 0xf5, 0xca, 0x72, 0x65, 0xb6, 0x39, 0x85,
   0x93, 0xaa, 0x42, 0x2a, 0xed, 0x0f, 0xf3, 0x1c, 0x46, 0x20, 0x52, 0x55, 0x5f, 0x47, 0x38, 0xd4,
   0xb4, 0x48, 0x9a, 0x9d, 0x0a, 0x69, 0xba, 0x8c, 0x12, 0x5b, 0xbb, 0x6b, 0x2e, 0x43, 0x1c, 0x0d,
   0xbf, 0x4d, 0xe6, 0xdf, 0x8e, 0x3e, 0x77, 0x4c, 0xfc, 0xcf, 0x00, 0x86, 0x78, 0xc7, 0xcb, 0xd2,
   0xb0, 0x9f, 0xc1, 0x40, 0x27, 0xc8, 0xdc, 0x7f, 0x31, 0x11, 0x62, 0xee, 0xb5, 0xf8, 0x72, 0x55,
   0xf6, 0x0b, 0xb5, 0xb2, 0xbf, 0xdb, 0x29, 0xbf, 0xd0, 0xde, 0x1b, 0x79, 0x7b, 0x0b, 0xf6, 0x2b,
   0x80, 0xca, 0x72, 0x04, 0x1a, 0xed, 0xbb, 0x0f, 0xdb, 0xb7, 0x4c, 0xd8, 0xcf, 0x61, 0x58, 0xd9,
   0x2f, 0xcb, 0xad, 0x5d, 0xd3, 0x15, 0x1e, 0xb0, 0xae, 0xf5, 0x34, 0x7a, 0xed, 0xab, 0xd2, 0xb8,
   0x5b, 0x3d, 0x38, 0x7a, 0x49, 0xcd, 0x7e, 0x01, 0x83, 0x15, 0xe5, 0x91, 0xca, 0xee, 0xe0, 0xdd,
   0x68, 0x52, 0xcc, 0xbd, 0x09, 0x36, 0xcd, 0x9f, 0xb7, 0x22, 0xcf, 0xec, 0xce, 0xd7, 0x63, 0xcd,
   0x62, 0x22, 0x57, 0x22, 0xc9, 0x44, 0x7e, 0x81, 0x5b, 0x75, 0x48, 0x5b, 0x75, 0x4b, 0x12, 0xff,
   0x3b, 0x80, 0x10, 0xfd, 0xd1, 0xfe, 0xf1, 0x1d, 0x9e, 0xff, 0x2f, 0x9e, 0x58, 0xcc, 0x2b, 0x84,
   0xf3, 0x82, 0x06, 0x5b, 0x97, 0x7b, 0x2e, 0xfe, 0x1a, 0x86, 0x5f, 0x2d, 0xbf, 0x25, 0x94, 0x4f,
   0xa1, 0xaf, 0x93, 0xaf, 0x96, 0xdf, 0xbe, 0x03, 0x64, 0xa7, 0xa4, 0x51, 0xb0, 0xdb, 0x8f, 0x82,
   0x9d, 0xdb, 0xf8, 0x75, 0xb9, 0x24, 0x00, 0x03, 0x4e, 0x74, 0xfc, 0x1a, 0x46, 0x97, 0x42, 0x8b,
   0x4d, 0xdd, 0x11, 0x4f, 0xa1, 0x5b, 0x95, 0xc6, 0x7b, 0x7e, 0x74, 0x78, 0xc5, 0xcb, 0xd2, 0x70,
   0xd4, 0xb2, 0x27, 0xd0, 0xcd, 0x36, 0xe9, 0xfd, 0xc4, 0xd1, 0xff, 0x1a, 0x47, 0x5d, 0xfc, 0x1b,
   0x98, 0x34, 0x7e, 0x5f, 0x94, 0x1b, 0xfc, 0xad, 0xc2, 0x7e, 0x5c, 0x29, 0x61, 0x7f, 0x4d, 0xde,
   0x47, 0xdc, 0x31, 0xb5, 0xf4, 0x9c, 0xdc, 0x79, 0xe9, 0x79, 0x2c, 0xe1, 0xd1, 0x3e, 0x2e, 0x8d,
   0x4f, 0xaa, 0xdd, 0xb1, 0xcf, 0x60, 0xa0, 0x69, 0x60, 0xf8, 0xf8, 0x1e, 0xb7, 0x56, 0xa1, 0x66,
   0x98, 0x70, 0x6f, 0xf3, 0x3e, 0x51, 0x7e, 0xe3, 0x6f, 0xff, 0xa7, 0x32, 0x2f, 0x11, 0xb3, 0x4f,
   0xf1, 0x67, 0x77, 0x45, 0xf7, 0xef, 0x1e, 0xde, 0xdf, 0x63, 0xcf, 0x9d, 0xfe, 0x7d, 0x7c, 0xff,
   0xad, 0x03, 0x1f, 0x5e, 0x2c, 0x5f, 0xac, 0x71, 0xd8, 0xd7, 0x3f, 0xca, 0x9f, 0xe1, 0x6f, 0x0b,
   0xee, 0x94, 0x18, 0xff, 0xf8, 0xfc, 0xa3, 0xf6, 0x82, 0xbe, 0xcc, 0x95, 0x33, 0x96, 0xdc, 0x19,
   0xf9, 0xa7, 0x3b, 0x68, 0x9e, 0xee, 0x67, 0x30, 0x10, 0x89, 0xcd, 0xca, 0x82, 0x32, 0x38, 0x3e,
   0x67, 0xad, 0xe5, 0x79, 0x39, 0x23, 0x0d, 0xf7, 0x16, 0xf4, 0x14, 0x17, 0xab, 0xb2, 0x7e, 0x9b,
   0x90, 0x7e, 0xf6, 0x17, 0x18, 0xb5, 0x8f, 0x61, 0x23, 0x08, 0xaf, 0x17, 0x6e, 0x3b, 0x9b, 0x7c,
   0xc0, 0x26, 0x30, 0xaa, 0x39, 0xdc, 0xb9, 0x26, 0x1d, 0xf6, 0x18, 0x26, 0x6d, 0x09, 0x6e, 0x6f,
   0x93, 0x80, 0x01, 0x0c, 0xae, 0x17, 0x64, 0xd1, 0x65, 0xc7, 0x10, 0x39, 0xfa, 0x4a, 0xde, 0x4c,
   0x7a, 0xec, 0x11, 0x1c, 0x37, 0x2c, 0xee, 0xe8, 0x93, 0x3e, 0x8b, 0xa0, 0x7f, 0xbd, 0x40, 0xed,
   0xe0, 0xd9, 0x73, 0x08, 0xeb, 0x30, 0xd1, 0xc9, 0xbc, 0x30, 0x4a, 0xdb, 0xc9, 0x07, 0x48, 0x7f,
   0x4d, 0x6f, 0xfb, 0xa4, 0x83, 0xf4, 0x85, 0xca, 0x95, 0x55, 0x93, 0x60, 0x39, 0xa0, 0xdb, 0x7d,
   0xfe, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x86, 0xe6, 0xd3, 0x8d, 0xd9, 0x10, 0x00, 0x00,
}