liuxiaolong
2019-08-29 eb5a5f99a7450eb279297f98f18f0a9700be7264
sdk.pb.go
@@ -1,13 +1,11 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: sdk.proto
package protomsg
import (
   encoding_binary "encoding/binary"
   fmt "fmt"
   proto "github.com/gogo/protobuf/proto"
   io "io"
   proto "github.com/golang/protobuf/proto"
   math "math"
)
@@ -20,13 +18,19 @@
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// Image ipc struct
type Image struct {
   Width  int32  `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"`
   Height int32  `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
   Data   []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
   Width                int32    `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"`
   Height               int32    `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
   Data                 []byte   `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
   Timestamp            string   `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
   Id                   int64    `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"`
   Cid                  string   `protobuf:"bytes,6,opt,name=cid,proto3" json:"cid,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *Image) Reset()         { *m = Image{} }
@@ -35,26 +39,18 @@
func (*Image) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{0}
}
func (m *Image) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_Image.Unmarshal(m, b)
}
func (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_Image.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_Image.Marshal(b, m, deterministic)
}
func (m *Image) XXX_Merge(src proto.Message) {
   xxx_messageInfo_Image.Merge(m, src)
}
func (m *Image) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_Image.Size(m)
}
func (m *Image) XXX_DiscardUnknown() {
   xxx_messageInfo_Image.DiscardUnknown(m)
@@ -83,11 +79,35 @@
   return nil
}
func (m *Image) GetTimestamp() string {
   if m != nil {
      return m.Timestamp
   }
   return ""
}
func (m *Image) GetId() int64 {
   if m != nil {
      return m.Id
   }
   return 0
}
func (m *Image) GetCid() string {
   if m != nil {
      return m.Cid
   }
   return ""
}
type FaceAngle struct {
   Yaw        int32   `protobuf:"varint,1,opt,name=yaw,proto3" json:"yaw,omitempty"`
   Pitch      int32   `protobuf:"varint,2,opt,name=pitch,proto3" json:"pitch,omitempty"`
   Roll       int32   `protobuf:"varint,3,opt,name=roll,proto3" json:"roll,omitempty"`
   Confidence float32 `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
   Yaw                  int32    `protobuf:"varint,1,opt,name=yaw,proto3" json:"yaw,omitempty"`
   Pitch                int32    `protobuf:"varint,2,opt,name=pitch,proto3" json:"pitch,omitempty"`
   Roll                 int32    `protobuf:"varint,3,opt,name=roll,proto3" json:"roll,omitempty"`
   Confidence           float32  `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *FaceAngle) Reset()         { *m = FaceAngle{} }
@@ -96,26 +116,18 @@
func (*FaceAngle) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{1}
}
func (m *FaceAngle) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_FaceAngle.Unmarshal(m, b)
}
func (m *FaceAngle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_FaceAngle.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_FaceAngle.Marshal(b, m, deterministic)
}
func (m *FaceAngle) XXX_Merge(src proto.Message) {
   xxx_messageInfo_FaceAngle.Merge(m, src)
}
func (m *FaceAngle) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_FaceAngle.Size(m)
}
func (m *FaceAngle) XXX_DiscardUnknown() {
   xxx_messageInfo_FaceAngle.DiscardUnknown(m)
@@ -152,11 +164,14 @@
}
type ThftResult struct {
   Gender int32 `protobuf:"varint,1,opt,name=gender,proto3" json:"gender,omitempty"`
   Age    int32 `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"`
   Race   int32 `protobuf:"varint,3,opt,name=race,proto3" json:"race,omitempty"`
   Beauty int32 `protobuf:"varint,4,opt,name=beauty,proto3" json:"beauty,omitempty"`
   Smile  int32 `protobuf:"varint,5,opt,name=smile,proto3" json:"smile,omitempty"`
   Gender               int32    `protobuf:"varint,1,opt,name=gender,proto3" json:"gender,omitempty"`
   Age                  int32    `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"`
   Race                 int32    `protobuf:"varint,3,opt,name=race,proto3" json:"race,omitempty"`
   Beauty               int32    `protobuf:"varint,4,opt,name=beauty,proto3" json:"beauty,omitempty"`
   Smile                int32    `protobuf:"varint,5,opt,name=smile,proto3" json:"smile,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *ThftResult) Reset()         { *m = ThftResult{} }
@@ -165,26 +180,18 @@
func (*ThftResult) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{2}
}
func (m *ThftResult) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_ThftResult.Unmarshal(m, b)
}
func (m *ThftResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ThftResult.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_ThftResult.Marshal(b, m, deterministic)
}
func (m *ThftResult) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ThftResult.Merge(m, src)
}
func (m *ThftResult) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_ThftResult.Size(m)
}
func (m *ThftResult) XXX_DiscardUnknown() {
   xxx_messageInfo_ThftResult.DiscardUnknown(m)
@@ -228,14 +235,18 @@
}
type FacePos struct {
   RcFace     *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
   PtLeftEye  *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
   PtRightEye *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
   PtMouth    *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
   PtNose     *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
   FAngle     *FaceAngle `protobuf:"bytes,6,opt,name=fAngle,proto3" json:"fAngle,omitempty"`
   Quality    int32      `protobuf:"varint,7,opt,name=quality,proto3" json:"quality,omitempty"`
   FacialData []byte     `protobuf:"bytes,8,opt,name=facialData,proto3" json:"facialData,omitempty"`
   RcFace               *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
   PtLeftEye            *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
   PtRightEye           *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
   PtMouth              *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
   PtNose               *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
   FAngle               *FaceAngle `protobuf:"bytes,6,opt,name=fAngle,proto3" json:"fAngle,omitempty"`
   Quality              int32      `protobuf:"varint,7,opt,name=quality,proto3" json:"quality,omitempty"`
   FacialData           []byte     `protobuf:"bytes,8,opt,name=facialData,proto3" json:"facialData,omitempty"`
   FaceID               uint64     `protobuf:"varint,9,opt,name=faceID,proto3" json:"faceID,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
}
func (m *FacePos) Reset()         { *m = FacePos{} }
@@ -244,26 +255,18 @@
func (*FacePos) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{3}
}
func (m *FacePos) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_FacePos.Unmarshal(m, b)
}
func (m *FacePos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_FacePos.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_FacePos.Marshal(b, m, deterministic)
}
func (m *FacePos) XXX_Merge(src proto.Message) {
   xxx_messageInfo_FacePos.Merge(m, src)
}
func (m *FacePos) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_FacePos.Size(m)
}
func (m *FacePos) XXX_DiscardUnknown() {
   xxx_messageInfo_FacePos.DiscardUnknown(m)
@@ -327,16 +330,26 @@
   return nil
}
func (m *FacePos) GetFaceID() uint64 {
   if m != nil {
      return m.FaceID
   }
   return 0
}
type FaceInfo struct {
   RcFace     *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
   PtLeftEye  *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
   PtRightEye *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
   PtMouth    *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
   PtNose     *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
   FAngle     *FaceAngle `protobuf:"bytes,6,opt,name=fAngle,proto3" json:"fAngle,omitempty"`
   Quality    int32      `protobuf:"varint,7,opt,name=quality,proto3" json:"quality,omitempty"`
   FacialData []byte     `protobuf:"bytes,8,opt,name=facialData,proto3" json:"facialData,omitempty"`
   FaceID     int64      `protobuf:"varint,9,opt,name=faceID,proto3" json:"faceID,omitempty"`
   RcFace               *Rect      `protobuf:"bytes,1,opt,name=rcFace,proto3" json:"rcFace,omitempty"`
   PtLeftEye            *Point     `protobuf:"bytes,2,opt,name=ptLeftEye,proto3" json:"ptLeftEye,omitempty"`
   PtRightEye           *Point     `protobuf:"bytes,3,opt,name=ptRightEye,proto3" json:"ptRightEye,omitempty"`
   PtMouth              *Point     `protobuf:"bytes,4,opt,name=ptMouth,proto3" json:"ptMouth,omitempty"`
   PtNose               *Point     `protobuf:"bytes,5,opt,name=ptNose,proto3" json:"ptNose,omitempty"`
   FAngle               *FaceAngle `protobuf:"bytes,6,opt,name=fAngle,proto3" json:"fAngle,omitempty"`
   Quality              int32      `protobuf:"varint,7,opt,name=quality,proto3" json:"quality,omitempty"`
   FacialData           []byte     `protobuf:"bytes,8,opt,name=facialData,proto3" json:"facialData,omitempty"`
   FaceID               int64      `protobuf:"varint,9,opt,name=faceID,proto3" json:"faceID,omitempty"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
}
func (m *FaceInfo) Reset()         { *m = FaceInfo{} }
@@ -345,26 +358,18 @@
func (*FaceInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{4}
}
func (m *FaceInfo) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_FaceInfo.Unmarshal(m, b)
}
func (m *FaceInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_FaceInfo.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_FaceInfo.Marshal(b, m, deterministic)
}
func (m *FaceInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_FaceInfo.Merge(m, src)
}
func (m *FaceInfo) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_FaceInfo.Size(m)
}
func (m *FaceInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_FaceInfo.DiscardUnknown(m)
@@ -436,9 +441,13 @@
}
type ObjInfo struct {
   RcObj *Rect   `protobuf:"bytes,1,opt,name=rcObj,proto3" json:"rcObj,omitempty"`
   Typ   int32   `protobuf:"varint,2,opt,name=typ,proto3" json:"typ,omitempty"`
   Prob  float32 `protobuf:"fixed32,3,opt,name=prob,proto3" json:"prob,omitempty"`
   RcObj                *Rect    `protobuf:"bytes,1,opt,name=rcObj,proto3" json:"rcObj,omitempty"`
   Typ                  int32    `protobuf:"varint,2,opt,name=typ,proto3" json:"typ,omitempty"`
   Prob                 float32  `protobuf:"fixed32,3,opt,name=prob,proto3" json:"prob,omitempty"`
   ObjID                uint64   `protobuf:"varint,4,opt,name=objID,proto3" json:"objID,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *ObjInfo) Reset()         { *m = ObjInfo{} }
@@ -447,26 +456,18 @@
func (*ObjInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{5}
}
func (m *ObjInfo) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_ObjInfo.Unmarshal(m, b)
}
func (m *ObjInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ObjInfo.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_ObjInfo.Marshal(b, m, deterministic)
}
func (m *ObjInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ObjInfo.Merge(m, src)
}
func (m *ObjInfo) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_ObjInfo.Size(m)
}
func (m *ObjInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_ObjInfo.DiscardUnknown(m)
@@ -495,39 +496,94 @@
   return 0
}
func (m *ObjInfo) GetObjID() uint64 {
   if m != nil {
      return m.ObjID
   }
   return 0
}
// sdk face property
type ResultFaceDetect struct {
   Pos                  *FacePos    `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
   Result               *ThftResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
   Feats                []byte      `protobuf:"bytes,3,opt,name=feats,proto3" json:"feats,omitempty"`
   XXX_NoUnkeyedLiteral struct{}    `json:"-"`
   XXX_unrecognized     []byte      `json:"-"`
   XXX_sizecache        int32       `json:"-"`
}
func (m *ResultFaceDetect) Reset()         { *m = ResultFaceDetect{} }
func (m *ResultFaceDetect) String() string { return proto.CompactTextString(m) }
func (*ResultFaceDetect) ProtoMessage()    {}
func (*ResultFaceDetect) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{6}
}
func (m *ResultFaceDetect) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ResultFaceDetect.Unmarshal(m, b)
}
func (m *ResultFaceDetect) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ResultFaceDetect.Marshal(b, m, deterministic)
}
func (m *ResultFaceDetect) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ResultFaceDetect.Merge(m, src)
}
func (m *ResultFaceDetect) XXX_Size() int {
   return xxx_messageInfo_ResultFaceDetect.Size(m)
}
func (m *ResultFaceDetect) XXX_DiscardUnknown() {
   xxx_messageInfo_ResultFaceDetect.DiscardUnknown(m)
}
var xxx_messageInfo_ResultFaceDetect proto.InternalMessageInfo
func (m *ResultFaceDetect) GetPos() *FacePos {
   if m != nil {
      return m.Pos
   }
   return nil
}
func (m *ResultFaceDetect) GetResult() *ThftResult {
   if m != nil {
      return m.Result
   }
   return nil
}
func (m *ResultFaceDetect) GetFeats() []byte {
   if m != nil {
      return m.Feats
   }
   return nil
}
type ParamFacePos struct {
   Pos    *FacePos    `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
   Result *ThftResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
   Img    *Image      `protobuf:"bytes,3,opt,name=img,proto3" json:"img,omitempty"`
   Faces                []*ResultFaceDetect `protobuf:"bytes,1,rep,name=faces,proto3" json:"faces,omitempty"`
   XXX_NoUnkeyedLiteral struct{}            `json:"-"`
   XXX_unrecognized     []byte              `json:"-"`
   XXX_sizecache        int32               `json:"-"`
}
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_70decb0fb6f436df, []int{6}
   return fileDescriptor_70decb0fb6f436df, []int{7}
}
func (m *ParamFacePos) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_ParamFacePos.Unmarshal(m, b)
}
func (m *ParamFacePos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ParamFacePos.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   return xxx_messageInfo_ParamFacePos.Marshal(b, m, deterministic)
}
func (m *ParamFacePos) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFacePos.Merge(m, src)
}
func (m *ParamFacePos) XXX_Size() int {
   return m.Size()
   return xxx_messageInfo_ParamFacePos.Size(m)
}
func (m *ParamFacePos) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFacePos.DiscardUnknown(m)
@@ -535,112 +591,133 @@
var xxx_messageInfo_ParamFacePos proto.InternalMessageInfo
func (m *ParamFacePos) GetPos() *FacePos {
func (m *ParamFacePos) GetFaces() []*ResultFaceDetect {
   if m != nil {
      return m.Faces
   }
   return nil
}
type ResultFaceExtCom struct {
   Feats                []byte            `protobuf:"bytes,1,opt,name=feats,proto3" json:"feats,omitempty"`
   Comp                 []byte            `protobuf:"bytes,2,opt,name=comp,proto3" json:"comp,omitempty"`
   Pos                  *ResultFaceDetect `protobuf:"bytes,3,opt,name=pos,proto3" json:"pos,omitempty"`
   XXX_NoUnkeyedLiteral struct{}          `json:"-"`
   XXX_unrecognized     []byte            `json:"-"`
   XXX_sizecache        int32             `json:"-"`
}
func (m *ResultFaceExtCom) Reset()         { *m = ResultFaceExtCom{} }
func (m *ResultFaceExtCom) String() string { return proto.CompactTextString(m) }
func (*ResultFaceExtCom) ProtoMessage()    {}
func (*ResultFaceExtCom) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{8}
}
func (m *ResultFaceExtCom) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ResultFaceExtCom.Unmarshal(m, b)
}
func (m *ResultFaceExtCom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ResultFaceExtCom.Marshal(b, m, deterministic)
}
func (m *ResultFaceExtCom) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ResultFaceExtCom.Merge(m, src)
}
func (m *ResultFaceExtCom) XXX_Size() int {
   return xxx_messageInfo_ResultFaceExtCom.Size(m)
}
func (m *ResultFaceExtCom) XXX_DiscardUnknown() {
   xxx_messageInfo_ResultFaceExtCom.DiscardUnknown(m)
}
var xxx_messageInfo_ResultFaceExtCom proto.InternalMessageInfo
func (m *ResultFaceExtCom) GetFeats() []byte {
   if m != nil {
      return m.Feats
   }
   return nil
}
func (m *ResultFaceExtCom) GetComp() []byte {
   if m != nil {
      return m.Comp
   }
   return nil
}
func (m *ResultFaceExtCom) GetPos() *ResultFaceDetect {
   if m != nil {
      return m.Pos
   }
   return nil
}
func (m *ParamFacePos) GetResult() *ThftResult {
type ParamFaceFeature struct {
   ExtComp              []*ResultFaceExtCom `protobuf:"bytes,2,rep,name=extComp,proto3" json:"extComp,omitempty"`
   XXX_NoUnkeyedLiteral struct{}            `json:"-"`
   XXX_unrecognized     []byte              `json:"-"`
   XXX_sizecache        int32               `json:"-"`
}
func (m *ParamFaceFeature) Reset()         { *m = ParamFaceFeature{} }
func (m *ParamFaceFeature) String() string { return proto.CompactTextString(m) }
func (*ParamFaceFeature) ProtoMessage()    {}
func (*ParamFaceFeature) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{9}
}
func (m *ParamFaceFeature) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_ParamFaceFeature.Unmarshal(m, b)
}
func (m *ParamFaceFeature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_ParamFaceFeature.Marshal(b, m, deterministic)
}
func (m *ParamFaceFeature) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFaceFeature.Merge(m, src)
}
func (m *ParamFaceFeature) XXX_Size() int {
   return xxx_messageInfo_ParamFaceFeature.Size(m)
}
func (m *ParamFaceFeature) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFaceFeature.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFaceFeature proto.InternalMessageInfo
func (m *ParamFaceFeature) GetExtComp() []*ResultFaceExtCom {
   if m != nil {
      return m.Result
   }
   return nil
}
func (m *ParamFacePos) GetImg() *Image {
   if m != nil {
      return m.Img
   }
   return nil
}
// sdk face extract
type ParamFaceCompare struct {
   Feat1 []byte `protobuf:"bytes,1,opt,name=feat1,proto3" json:"feat1,omitempty"`
   Feat2 []byte `protobuf:"bytes,2,opt,name=feat2,proto3" json:"feat2,omitempty"`
}
func (m *ParamFaceCompare) Reset()         { *m = ParamFaceCompare{} }
func (m *ParamFaceCompare) String() string { return proto.CompactTextString(m) }
func (*ParamFaceCompare) ProtoMessage()    {}
func (*ParamFaceCompare) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{7}
}
func (m *ParamFaceCompare) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *ParamFaceCompare) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ParamFaceCompare.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 *ParamFaceCompare) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ParamFaceCompare.Merge(m, src)
}
func (m *ParamFaceCompare) XXX_Size() int {
   return m.Size()
}
func (m *ParamFaceCompare) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamFaceCompare.DiscardUnknown(m)
}
var xxx_messageInfo_ParamFaceCompare proto.InternalMessageInfo
func (m *ParamFaceCompare) GetFeat1() []byte {
   if m != nil {
      return m.Feat1
   }
   return nil
}
func (m *ParamFaceCompare) GetFeat2() []byte {
   if m != nil {
      return m.Feat2
      return m.ExtComp
   }
   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"`
   Infos                []*ObjInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,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_70decb0fb6f436df, []int{8}
   return fileDescriptor_70decb0fb6f436df, []int{10}
}
func (m *ParamYoloObj) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
   return xxx_messageInfo_ParamYoloObj.Unmarshal(m, b)
}
func (m *ParamYoloObj) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ParamYoloObj.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
      if err != nil {
         return nil, err
      }
      return b[:n], nil
   }
   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 m.Size()
   return xxx_messageInfo_ParamYoloObj.Size(m)
}
func (m *ParamYoloObj) XXX_DiscardUnknown() {
   xxx_messageInfo_ParamYoloObj.DiscardUnknown(m)
@@ -655,11 +732,59 @@
   return nil
}
func (m *ParamYoloObj) GetImg() *Image {
type SoInfo struct {
   Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   SdkId                string   `protobuf:"bytes,2,opt,name=sdkId,proto3" json:"sdkId,omitempty"`
   SoName               string   `protobuf:"bytes,3,opt,name=soName,proto3" json:"soName,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *SoInfo) Reset()         { *m = SoInfo{} }
func (m *SoInfo) String() string { return proto.CompactTextString(m) }
func (*SoInfo) ProtoMessage()    {}
func (*SoInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_70decb0fb6f436df, []int{11}
}
func (m *SoInfo) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_SoInfo.Unmarshal(m, b)
}
func (m *SoInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_SoInfo.Marshal(b, m, deterministic)
}
func (m *SoInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SoInfo.Merge(m, src)
}
func (m *SoInfo) XXX_Size() int {
   return xxx_messageInfo_SoInfo.Size(m)
}
func (m *SoInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_SoInfo.DiscardUnknown(m)
}
var xxx_messageInfo_SoInfo proto.InternalMessageInfo
func (m *SoInfo) GetId() string {
   if m != nil {
      return m.Img
      return m.Id
   }
   return nil
   return ""
}
func (m *SoInfo) GetSdkId() string {
   if m != nil {
      return m.SdkId
   }
   return ""
}
func (m *SoInfo) GetSoName() string {
   if m != nil {
      return m.SoName
   }
   return ""
}
func init() {
@@ -669,2444 +794,60 @@
   proto.RegisterType((*FacePos)(nil), "protomsg.FacePos")
   proto.RegisterType((*FaceInfo)(nil), "protomsg.FaceInfo")
   proto.RegisterType((*ObjInfo)(nil), "protomsg.ObjInfo")
   proto.RegisterType((*ResultFaceDetect)(nil), "protomsg.ResultFaceDetect")
   proto.RegisterType((*ParamFacePos)(nil), "protomsg.ParamFacePos")
   proto.RegisterType((*ParamFaceCompare)(nil), "protomsg.ParamFaceCompare")
   proto.RegisterType((*ResultFaceExtCom)(nil), "protomsg.ResultFaceExtCom")
   proto.RegisterType((*ParamFaceFeature)(nil), "protomsg.ParamFaceFeature")
   proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
   proto.RegisterType((*SoInfo)(nil), "protomsg.SoInfo")
}
func init() { proto.RegisterFile("sdk.proto", fileDescriptor_70decb0fb6f436df) }
var fileDescriptor_70decb0fb6f436df = []byte{
   // 598 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0xcd, 0x6e, 0xd3, 0x40,
   0x10, 0xae, 0xed, 0xda, 0x69, 0xa6, 0x15, 0x94, 0xa5, 0x42, 0x16, 0x07, 0x2b, 0x18, 0x44, 0x83,
   0x80, 0x22, 0xc2, 0x1d, 0x09, 0x28, 0x48, 0x91, 0x80, 0x46, 0x2b, 0x38, 0xc0, 0x6d, 0xed, 0xac,
   0x7f, 0x8a, 0xed, 0x35, 0xf6, 0x46, 0xc5, 0x77, 0x1e, 0x80, 0xc7, 0xe2, 0xc0, 0xa1, 0x47, 0x8e,
   0x28, 0x11, 0xef, 0x81, 0x76, 0xbc, 0x4e, 0x52, 0x91, 0x9e, 0xb8, 0x72, 0xca, 0x7c, 0x33, 0x5f,
   0xe6, 0xe7, 0x9b, 0x1d, 0x43, 0xbf, 0x9e, 0x7e, 0x3a, 0x2a, 0x2b, 0x21, 0x05, 0xd9, 0xc1, 0x9f,
   0xbc, 0x8e, 0x6f, 0x42, 0xc0, 0x6a, 0xde, 0x7a, 0xfd, 0x31, 0xd8, 0xe3, 0x9c, 0xc5, 0x9c, 0x1c,
   0x80, 0x7d, 0x96, 0x4e, 0x65, 0xe2, 0x1a, 0x03, 0x63, 0x68, 0xd3, 0x16, 0x90, 0x1b, 0xe0, 0x24,
   0x3c, 0x8d, 0x13, 0xe9, 0x9a, 0xe8, 0xd6, 0x88, 0x10, 0xd8, 0x9e, 0x32, 0xc9, 0x5c, 0x6b, 0x60,
   0x0c, 0xf7, 0x28, 0xda, 0x7e, 0x0c, 0xfd, 0x57, 0x2c, 0xe4, 0xcf, 0x8a, 0x38, 0xe3, 0x64, 0x1f,
   0xac, 0x86, 0x9d, 0xe9, 0x64, 0xca, 0x54, 0x05, 0xca, 0x54, 0x86, 0x89, 0xce, 0xd4, 0x02, 0x95,
   0xa8, 0x12, 0x59, 0x86, 0x89, 0x6c, 0x8a, 0x36, 0xf1, 0x00, 0x42, 0x51, 0x44, 0xe9, 0x94, 0x17,
   0x21, 0x77, 0xb7, 0x07, 0xc6, 0xd0, 0xa4, 0x6b, 0x1e, 0xff, 0x0b, 0xc0, 0xbb, 0x24, 0x92, 0x94,
   0xd7, 0xb3, 0x4c, 0xaa, 0x16, 0x63, 0x5e, 0x4c, 0x79, 0xa5, 0x8b, 0x69, 0xa4, 0x3a, 0x60, 0x31,
   0xd7, 0xd5, 0x94, 0x89, 0xb5, 0x58, 0xc8, 0x97, 0xb5, 0x58, 0xc8, 0xd5, 0xbf, 0x03, 0xce, 0x66,
   0xb2, 0xc1, 0x3a, 0x36, 0xd5, 0x48, 0x75, 0x5b, 0xe7, 0x69, 0xc6, 0x5d, 0xbb, 0xed, 0x16, 0x81,
   0xff, 0xc3, 0x84, 0x9e, 0x9a, 0x71, 0x22, 0x6a, 0x72, 0x17, 0x9c, 0x2a, 0x54, 0x00, 0xeb, 0xee,
   0x8e, 0xae, 0x1c, 0x75, 0x02, 0x1f, 0x51, 0x1e, 0x4a, 0xaa, 0xa3, 0xe4, 0x21, 0xf4, 0x4b, 0xf9,
   0x9a, 0x47, 0xf2, 0x65, 0xd3, 0x76, 0xb3, 0x3b, 0xba, 0xba, 0xa2, 0x4e, 0x44, 0x5a, 0x48, 0xba,
   0x62, 0x90, 0x47, 0x00, 0xa5, 0xa4, 0x4a, 0x64, 0xc5, 0xb7, 0x36, 0xf3, 0xd7, 0x28, 0xe4, 0x1e,
   0xf4, 0x4a, 0xf9, 0x46, 0xcc, 0x64, 0x82, 0x23, 0x6c, 0x60, 0x77, 0x71, 0x72, 0x08, 0x4e, 0x29,
   0xdf, 0x8a, 0xba, 0x9d, 0x6a, 0x03, 0x53, 0x87, 0xc9, 0x7d, 0x70, 0x22, 0xdc, 0xa3, 0xeb, 0x20,
   0xf1, 0xfa, 0x8a, 0xb8, 0x5c, 0x31, 0xd5, 0x14, 0xe2, 0x42, 0xef, 0xf3, 0x8c, 0x65, 0xa9, 0x6c,
   0xdc, 0x1e, 0x8a, 0xd5, 0x41, 0xb5, 0xc8, 0x88, 0x85, 0x29, 0xcb, 0x8e, 0xd5, 0x5b, 0xd9, 0xc1,
   0xb7, 0xb2, 0xe6, 0xf1, 0x7f, 0x9b, 0xb0, 0xa3, 0xf2, 0x8d, 0x8b, 0x48, 0xfc, 0xd7, 0xf3, 0x9f,
   0xf5, 0x54, 0x8f, 0x39, 0x52, 0x72, 0x1e, 0xbb, 0xfd, 0x81, 0x31, 0xb4, 0xa8, 0x46, 0xfe, 0x7b,
   0xe8, 0x9d, 0x04, 0xa7, 0xa8, 0xf2, 0x1d, 0xb0, 0xab, 0xf0, 0x24, 0x38, 0xbd, 0x44, 0xe4, 0x36,
   0xa8, 0x6e, 0x47, 0x36, 0x65, 0x77, 0x3b, 0xb2, 0x29, 0xd5, 0xed, 0x94, 0x95, 0x08, 0x50, 0x40,
   0x93, 0xa2, 0xed, 0x7f, 0x35, 0x60, 0x6f, 0xc2, 0x2a, 0x96, 0x77, 0x27, 0x71, 0x1b, 0xac, 0x52,
   0xd4, 0x3a, 0xf5, 0xb5, 0x8b, 0x33, 0x4e, 0x44, 0x4d, 0x55, 0x94, 0x3c, 0x00, 0xa7, 0xc2, 0xcb,
   0xd5, 0xcb, 0x3b, 0x58, 0xf1, 0x56, 0x57, 0x4d, 0x35, 0x87, 0xdc, 0x02, 0x2b, 0xcd, 0xe3, 0xbf,
   0xf7, 0x86, 0x1f, 0x2d, 0xaa, 0x62, 0xfe, 0x53, 0xd8, 0x5f, 0x76, 0xf1, 0x42, 0xe4, 0x25, 0xab,
   0xf0, 0x6b, 0x16, 0x71, 0x26, 0x1f, 0x63, 0x2f, 0x7b, 0xb4, 0x05, 0x9d, 0x77, 0x84, 0x95, 0xb5,
   0x77, 0xe4, 0x7f, 0xd4, 0x53, 0x7c, 0x10, 0x99, 0x50, 0xc3, 0x1f, 0x82, 0x9d, 0x16, 0x11, 0xce,
   0x61, 0x5d, 0x9c, 0x43, 0x8b, 0x48, 0xdb, 0x78, 0xd7, 0x9b, 0x79, 0x79, 0x6f, 0xcf, 0xdd, 0xef,
   0x73, 0xcf, 0x38, 0x9f, 0x7b, 0xc6, 0xaf, 0xb9, 0x67, 0x7c, 0x5b, 0x78, 0x5b, 0xe7, 0x0b, 0x6f,
   0xeb, 0xe7, 0xc2, 0xdb, 0x0a, 0x1c, 0xa4, 0x3f, 0xf9, 0x13, 0x00, 0x00, 0xff, 0xff, 0x19, 0xbd,
   0x52, 0xcd, 0xa2, 0x05, 0x00, 0x00,
   // 703 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0x41, 0x6f, 0xd3, 0x4c,
   0x10, 0x95, 0x93, 0xd8, 0xa9, 0x27, 0x55, 0xbf, 0x7e, 0x4b, 0x85, 0xac, 0x0a, 0xa1, 0xc8, 0x20,
   0x1a, 0x44, 0x29, 0x28, 0x20, 0x71, 0x05, 0x91, 0x56, 0x44, 0x82, 0x36, 0x5a, 0xb8, 0x70, 0xdc,
   0xac, 0xd7, 0x89, 0x53, 0xdb, 0x6b, 0xec, 0x8d, 0xda, 0x88, 0x5f, 0xc0, 0xff, 0x84, 0xff, 0x81,
   0x66, 0x77, 0x1d, 0xbb, 0x52, 0xcb, 0x89, 0x23, 0xa7, 0xcc, 0xec, 0x3c, 0xe7, 0xbd, 0x79, 0xb3,
   0xb3, 0xe0, 0x57, 0xd1, 0xe5, 0x49, 0x51, 0x4a, 0x25, 0xc9, 0x8e, 0xfe, 0xc9, 0xaa, 0xc5, 0x21,
   0xcc, 0x59, 0x25, 0xcc, 0x69, 0xf8, 0xc3, 0x01, 0x77, 0x9a, 0xb1, 0x85, 0x20, 0x07, 0xe0, 0x5e,
   0x25, 0x91, 0x5a, 0x06, 0xce, 0xd0, 0x19, 0xb9, 0xd4, 0x24, 0xe4, 0x3e, 0x78, 0x4b, 0x91, 0x2c,
   0x96, 0x2a, 0xe8, 0xe8, 0x63, 0x9b, 0x11, 0x02, 0xbd, 0x88, 0x29, 0x16, 0x74, 0x87, 0xce, 0x68,
   0x97, 0xea, 0x98, 0x3c, 0x00, 0x5f, 0x25, 0x99, 0xa8, 0x14, 0xcb, 0x8a, 0xa0, 0x37, 0x74, 0x46,
   0x3e, 0x6d, 0x0e, 0xc8, 0x1e, 0x74, 0x92, 0x28, 0x70, 0x87, 0xce, 0xa8, 0x4b, 0x3b, 0x49, 0x44,
   0xf6, 0xa1, 0xcb, 0x93, 0x28, 0xf0, 0x34, 0x0e, 0xc3, 0x70, 0x01, 0xfe, 0x19, 0xe3, 0xe2, 0x5d,
   0xbe, 0x48, 0x05, 0x96, 0x37, 0xec, 0xca, 0x8a, 0xc1, 0x10, 0x05, 0x16, 0x89, 0xe2, 0x4b, 0xab,
   0xc4, 0x24, 0x28, 0xa4, 0x94, 0x69, 0xaa, 0x85, 0xb8, 0x54, 0xc7, 0xe4, 0x21, 0x00, 0x97, 0x79,
   0x9c, 0x44, 0x22, 0xe7, 0x42, 0x2b, 0xe9, 0xd0, 0xd6, 0x49, 0x78, 0x0d, 0xf0, 0x65, 0x19, 0x2b,
   0x2a, 0xaa, 0x75, 0xaa, 0xb0, 0xc5, 0x85, 0xc8, 0x23, 0x51, 0x5a, 0x32, 0x9b, 0xa1, 0x02, 0xb6,
   0x10, 0x96, 0x0d, 0x43, 0xcd, 0xc5, 0xb8, 0xd8, 0x72, 0x31, 0x2e, 0xf0, 0xeb, 0xb9, 0x60, 0x6b,
   0xb5, 0xd1, 0x3c, 0x2e, 0xb5, 0x19, 0xaa, 0xad, 0xb2, 0x24, 0x15, 0xba, 0x63, 0x97, 0x9a, 0x24,
   0xfc, 0xd9, 0x81, 0x3e, 0xf6, 0x38, 0x93, 0x15, 0x79, 0x02, 0x5e, 0xc9, 0x31, 0xd1, 0xbc, 0x83,
   0xf1, 0xde, 0x49, 0x3d, 0xa1, 0x13, 0x2a, 0xb8, 0xa2, 0xb6, 0x4a, 0x9e, 0x83, 0x5f, 0xa8, 0x8f,
   0x22, 0x56, 0xa7, 0x1b, 0xa3, 0x66, 0x30, 0xfe, 0xaf, 0x81, 0xce, 0x64, 0x92, 0x2b, 0xda, 0x20,
   0xc8, 0x0b, 0x80, 0x42, 0x51, 0x1c, 0x12, 0xe2, 0xbb, 0xb7, 0xe3, 0x5b, 0x10, 0xf2, 0x14, 0xfa,
   0x85, 0xfa, 0x24, 0xd7, 0x6a, 0xa9, 0x5b, 0xb8, 0x05, 0x5d, 0xd7, 0xc9, 0x11, 0x78, 0x85, 0x3a,
   0x97, 0x95, 0xe9, 0xea, 0x16, 0xa4, 0x2d, 0x93, 0x67, 0xe0, 0xc5, 0x7a, 0x8e, 0x7a, 0xbe, 0x83,
   0xf1, 0xbd, 0x06, 0xb8, 0x1d, 0x31, 0xb5, 0x10, 0x12, 0x40, 0xff, 0xdb, 0x9a, 0xa5, 0x89, 0xda,
   0x04, 0x7d, 0x6d, 0x56, 0x9d, 0xe2, 0x20, 0x63, 0xc6, 0x13, 0x96, 0x4e, 0xf0, 0xae, 0xed, 0xe8,
   0xbb, 0xd6, 0x3a, 0x41, 0xf3, 0x63, 0xc6, 0xc5, 0x74, 0x12, 0xf8, 0x43, 0x67, 0xd4, 0xa3, 0x36,
   0x0b, 0x7f, 0x75, 0x60, 0x07, 0x79, 0xa6, 0x79, 0x2c, 0xff, 0xf9, 0xfc, 0xb7, 0x7d, 0xee, 0x6e,
   0x7d, 0xbe, 0x84, 0xfe, 0xc5, 0x7c, 0xa5, 0x5d, 0x7e, 0x0c, 0x6e, 0xc9, 0x2f, 0xe6, 0xab, 0x3b,
   0x4c, 0x36, 0x45, 0xdc, 0x29, 0xb5, 0x29, 0xea, 0x9d, 0x52, 0x9b, 0x02, 0x77, 0xaa, 0x28, 0xe5,
   0x5c, 0x1b, 0xd8, 0xa1, 0x3a, 0xc6, 0xdd, 0x91, 0xf3, 0xd5, 0x74, 0xa2, 0x7d, 0xea, 0x51, 0x93,
   0x84, 0xdf, 0x61, 0xdf, 0x6c, 0x2c, 0x76, 0x36, 0x11, 0x4a, 0x70, 0x45, 0x1e, 0x41, 0xb7, 0x90,
   0x95, 0xe5, 0xfc, 0xff, 0x66, 0xf3, 0x33, 0x59, 0x51, 0xac, 0x92, 0x63, 0xf0, 0x4a, 0xfd, 0xa1,
   0x9d, 0xea, 0x41, 0x83, 0x6b, 0x9e, 0x01, 0x6a, 0x31, 0x48, 0x1e, 0x0b, 0xa6, 0x2a, 0xfb, 0xb4,
   0x99, 0x24, 0x7c, 0x0b, 0xbb, 0x33, 0x56, 0xb2, 0xac, 0x5e, 0xde, 0x97, 0xe0, 0xa2, 0x07, 0x48,
   0xdd, 0x1d, 0x0d, 0xc6, 0x87, 0xed, 0x76, 0x6f, 0x6a, 0xa4, 0x06, 0x18, 0xae, 0xda, 0xf2, 0x4f,
   0xaf, 0xd5, 0x7b, 0x99, 0x35, 0x5c, 0x4e, 0x8b, 0x0b, 0x2d, 0xe1, 0x32, 0x33, 0x2e, 0xed, 0x52,
   0x1d, 0x93, 0x63, 0xd3, 0xa8, 0xb9, 0x66, 0x7f, 0x62, 0x43, 0x58, 0xf8, 0x01, 0xf6, 0xb7, 0x6a,
   0xcf, 0x04, 0x53, 0xeb, 0x52, 0x90, 0xd7, 0xd0, 0x17, 0x9a, 0x15, 0xff, 0xf8, 0x4e, 0xcd, 0x46,
   0x18, 0xad, 0xa1, 0xe1, 0x1b, 0xdb, 0xf7, 0x57, 0x99, 0x4a, 0x1c, 0xe0, 0x11, 0xb8, 0x49, 0x1e,
   0xcb, 0xba, 0xef, 0x96, 0xe5, 0xf6, 0x22, 0x50, 0x53, 0x0f, 0xcf, 0xc0, 0xfb, 0x2c, 0xf5, 0xcd,
   0x30, 0x0f, 0xbf, 0xa3, 0xdf, 0x79, 0x7c, 0xf8, 0xf1, 0x65, 0x8c, 0x2e, 0xa7, 0x91, 0xee, 0xcf,
   0xa7, 0x26, 0xc1, 0x2b, 0x56, 0xc9, 0x73, 0x96, 0x99, 0x55, 0xf2, 0xa9, 0xcd, 0xe6, 0x9e, 0x26,
   0x78, 0xf5, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x4a, 0xab, 0xaa, 0xb7, 0xca, 0x06, 0x00, 0x00,
}
func (m *Image) 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 *Image) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Width != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Width))
   }
   if m.Height != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Height))
   }
   if len(m.Data) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Data)))
      i += copy(dAtA[i:], m.Data)
   }
   return i, nil
}
func (m *FaceAngle) 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 *FaceAngle) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Yaw != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Yaw))
   }
   if m.Pitch != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Pitch))
   }
   if m.Roll != 0 {
      dAtA[i] = 0x18
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Roll))
   }
   if m.Confidence != 0 {
      dAtA[i] = 0x25
      i++
      encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Confidence))))
      i += 4
   }
   return i, nil
}
func (m *ThftResult) 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 *ThftResult) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Gender != 0 {
      dAtA[i] = 0x8
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Gender))
   }
   if m.Age != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Age))
   }
   if m.Race != 0 {
      dAtA[i] = 0x18
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Race))
   }
   if m.Beauty != 0 {
      dAtA[i] = 0x20
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Beauty))
   }
   if m.Smile != 0 {
      dAtA[i] = 0x28
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Smile))
   }
   return i, nil
}
func (m *FacePos) 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 *FacePos) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.RcFace != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.RcFace.Size()))
      n1, err1 := m.RcFace.MarshalTo(dAtA[i:])
      if err1 != nil {
         return 0, err1
      }
      i += n1
   }
   if m.PtLeftEye != nil {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtLeftEye.Size()))
      n2, err2 := m.PtLeftEye.MarshalTo(dAtA[i:])
      if err2 != nil {
         return 0, err2
      }
      i += n2
   }
   if m.PtRightEye != nil {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtRightEye.Size()))
      n3, err3 := m.PtRightEye.MarshalTo(dAtA[i:])
      if err3 != nil {
         return 0, err3
      }
      i += n3
   }
   if m.PtMouth != nil {
      dAtA[i] = 0x22
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtMouth.Size()))
      n4, err4 := m.PtMouth.MarshalTo(dAtA[i:])
      if err4 != nil {
         return 0, err4
      }
      i += n4
   }
   if m.PtNose != nil {
      dAtA[i] = 0x2a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtNose.Size()))
      n5, err5 := m.PtNose.MarshalTo(dAtA[i:])
      if err5 != nil {
         return 0, err5
      }
      i += n5
   }
   if m.FAngle != nil {
      dAtA[i] = 0x32
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.FAngle.Size()))
      n6, err6 := m.FAngle.MarshalTo(dAtA[i:])
      if err6 != nil {
         return 0, err6
      }
      i += n6
   }
   if m.Quality != 0 {
      dAtA[i] = 0x38
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Quality))
   }
   if len(m.FacialData) > 0 {
      dAtA[i] = 0x42
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.FacialData)))
      i += copy(dAtA[i:], m.FacialData)
   }
   return i, nil
}
func (m *FaceInfo) 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 *FaceInfo) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.RcFace != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.RcFace.Size()))
      n7, err7 := m.RcFace.MarshalTo(dAtA[i:])
      if err7 != nil {
         return 0, err7
      }
      i += n7
   }
   if m.PtLeftEye != nil {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtLeftEye.Size()))
      n8, err8 := m.PtLeftEye.MarshalTo(dAtA[i:])
      if err8 != nil {
         return 0, err8
      }
      i += n8
   }
   if m.PtRightEye != nil {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtRightEye.Size()))
      n9, err9 := m.PtRightEye.MarshalTo(dAtA[i:])
      if err9 != nil {
         return 0, err9
      }
      i += n9
   }
   if m.PtMouth != nil {
      dAtA[i] = 0x22
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtMouth.Size()))
      n10, err10 := m.PtMouth.MarshalTo(dAtA[i:])
      if err10 != nil {
         return 0, err10
      }
      i += n10
   }
   if m.PtNose != nil {
      dAtA[i] = 0x2a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.PtNose.Size()))
      n11, err11 := m.PtNose.MarshalTo(dAtA[i:])
      if err11 != nil {
         return 0, err11
      }
      i += n11
   }
   if m.FAngle != nil {
      dAtA[i] = 0x32
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.FAngle.Size()))
      n12, err12 := m.FAngle.MarshalTo(dAtA[i:])
      if err12 != nil {
         return 0, err12
      }
      i += n12
   }
   if m.Quality != 0 {
      dAtA[i] = 0x38
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Quality))
   }
   if len(m.FacialData) > 0 {
      dAtA[i] = 0x42
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.FacialData)))
      i += copy(dAtA[i:], m.FacialData)
   }
   if m.FaceID != 0 {
      dAtA[i] = 0x48
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.FaceID))
   }
   return i, nil
}
func (m *ObjInfo) 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 *ObjInfo) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.RcObj != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.RcObj.Size()))
      n13, err13 := m.RcObj.MarshalTo(dAtA[i:])
      if err13 != nil {
         return 0, err13
      }
      i += n13
   }
   if m.Typ != 0 {
      dAtA[i] = 0x10
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Typ))
   }
   if m.Prob != 0 {
      dAtA[i] = 0x1d
      i++
      encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Prob))))
      i += 4
   }
   return i, nil
}
func (m *ParamFacePos) 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 *ParamFacePos) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if m.Pos != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Pos.Size()))
      n14, err14 := m.Pos.MarshalTo(dAtA[i:])
      if err14 != nil {
         return 0, err14
      }
      i += n14
   }
   if m.Result != nil {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Result.Size()))
      n15, err15 := m.Result.MarshalTo(dAtA[i:])
      if err15 != nil {
         return 0, err15
      }
      i += n15
   }
   if m.Img != nil {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Img.Size()))
      n16, err16 := m.Img.MarshalTo(dAtA[i:])
      if err16 != nil {
         return 0, err16
      }
      i += n16
   }
   return i, nil
}
func (m *ParamFaceCompare) 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 *ParamFaceCompare) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Feat1) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Feat1)))
      i += copy(dAtA[i:], m.Feat1)
   }
   if len(m.Feat2) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Feat2)))
      i += copy(dAtA[i:], m.Feat2)
   }
   return i, nil
}
func (m *ParamYoloObj) 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 *ParamYoloObj) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Infos) > 0 {
      for _, msg := range m.Infos {
         dAtA[i] = 0xa
         i++
         i = encodeVarintSdk(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   if m.Img != nil {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Img.Size()))
      n17, err17 := m.Img.MarshalTo(dAtA[i:])
      if err17 != nil {
         return 0, err17
      }
      i += n17
   }
   return i, nil
}
func encodeVarintSdk(dAtA []byte, offset int, v uint64) int {
   for v >= 1<<7 {
      dAtA[offset] = uint8(v&0x7f | 0x80)
      v >>= 7
      offset++
   }
   dAtA[offset] = uint8(v)
   return offset + 1
}
func (m *Image) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Width != 0 {
      n += 1 + sovSdk(uint64(m.Width))
   }
   if m.Height != 0 {
      n += 1 + sovSdk(uint64(m.Height))
   }
   l = len(m.Data)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
func (m *FaceAngle) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Yaw != 0 {
      n += 1 + sovSdk(uint64(m.Yaw))
   }
   if m.Pitch != 0 {
      n += 1 + sovSdk(uint64(m.Pitch))
   }
   if m.Roll != 0 {
      n += 1 + sovSdk(uint64(m.Roll))
   }
   if m.Confidence != 0 {
      n += 5
   }
   return n
}
func (m *ThftResult) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Gender != 0 {
      n += 1 + sovSdk(uint64(m.Gender))
   }
   if m.Age != 0 {
      n += 1 + sovSdk(uint64(m.Age))
   }
   if m.Race != 0 {
      n += 1 + sovSdk(uint64(m.Race))
   }
   if m.Beauty != 0 {
      n += 1 + sovSdk(uint64(m.Beauty))
   }
   if m.Smile != 0 {
      n += 1 + sovSdk(uint64(m.Smile))
   }
   return n
}
func (m *FacePos) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.RcFace != nil {
      l = m.RcFace.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtLeftEye != nil {
      l = m.PtLeftEye.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtRightEye != nil {
      l = m.PtRightEye.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtMouth != nil {
      l = m.PtMouth.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtNose != nil {
      l = m.PtNose.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.FAngle != nil {
      l = m.FAngle.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Quality != 0 {
      n += 1 + sovSdk(uint64(m.Quality))
   }
   l = len(m.FacialData)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
func (m *FaceInfo) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.RcFace != nil {
      l = m.RcFace.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtLeftEye != nil {
      l = m.PtLeftEye.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtRightEye != nil {
      l = m.PtRightEye.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtMouth != nil {
      l = m.PtMouth.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.PtNose != nil {
      l = m.PtNose.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.FAngle != nil {
      l = m.FAngle.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Quality != 0 {
      n += 1 + sovSdk(uint64(m.Quality))
   }
   l = len(m.FacialData)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.FaceID != 0 {
      n += 1 + sovSdk(uint64(m.FaceID))
   }
   return n
}
func (m *ObjInfo) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.RcObj != nil {
      l = m.RcObj.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Typ != 0 {
      n += 1 + sovSdk(uint64(m.Typ))
   }
   if m.Prob != 0 {
      n += 5
   }
   return n
}
func (m *ParamFacePos) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if m.Pos != nil {
      l = m.Pos.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Result != nil {
      l = m.Result.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.Img != nil {
      l = m.Img.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
func (m *ParamFaceCompare) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Feat1)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.Feat2)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
func (m *ParamYoloObj) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   if len(m.Infos) > 0 {
      for _, e := range m.Infos {
         l = e.Size()
         n += 1 + l + sovSdk(uint64(l))
      }
   }
   if m.Img != nil {
      l = m.Img.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
func sovSdk(x uint64) (n int) {
   for {
      n++
      x >>= 7
      if x == 0 {
         break
      }
   }
   return n
}
func sozSdk(x uint64) (n int) {
   return sovSdk(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *Image) 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 ErrIntOverflowSdk
         }
         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: Image: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: Image: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Width", wireType)
         }
         m.Width = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Width |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
         }
         m.Height = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Height |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
         if m.Data == nil {
            m.Data = []byte{}
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *FaceAngle) 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 ErrIntOverflowSdk
         }
         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: FaceAngle: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: FaceAngle: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Yaw", wireType)
         }
         m.Yaw = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Yaw |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Pitch", wireType)
         }
         m.Pitch = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Pitch |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Roll", wireType)
         }
         m.Roll = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Roll |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 4:
         if wireType != 5 {
            return fmt.Errorf("proto: wrong wireType = %d for field Confidence", wireType)
         }
         var v uint32
         if (iNdEx + 4) > l {
            return io.ErrUnexpectedEOF
         }
         v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
         iNdEx += 4
         m.Confidence = float32(math.Float32frombits(v))
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ThftResult) 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 ErrIntOverflowSdk
         }
         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: ThftResult: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ThftResult: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Gender", wireType)
         }
         m.Gender = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Gender |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Age", wireType)
         }
         m.Age = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Age |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Race", wireType)
         }
         m.Race = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Race |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 4:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Beauty", wireType)
         }
         m.Beauty = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Beauty |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 5:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Smile", wireType)
         }
         m.Smile = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Smile |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *FacePos) 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 ErrIntOverflowSdk
         }
         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: FacePos: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: FacePos: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field RcFace", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.RcFace == nil {
            m.RcFace = &Rect{}
         }
         if err := m.RcFace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtLeftEye", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtLeftEye == nil {
            m.PtLeftEye = &Point{}
         }
         if err := m.PtLeftEye.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtRightEye", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtRightEye == nil {
            m.PtRightEye = &Point{}
         }
         if err := m.PtRightEye.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtMouth", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtMouth == nil {
            m.PtMouth = &Point{}
         }
         if err := m.PtMouth.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 5:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtNose", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtNose == nil {
            m.PtNose = &Point{}
         }
         if err := m.PtNose.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 6:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FAngle", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.FAngle == nil {
            m.FAngle = &FaceAngle{}
         }
         if err := m.FAngle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 7:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Quality", wireType)
         }
         m.Quality = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Quality |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 8:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FacialData", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.FacialData = append(m.FacialData[:0], dAtA[iNdEx:postIndex]...)
         if m.FacialData == nil {
            m.FacialData = []byte{}
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *FaceInfo) 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 ErrIntOverflowSdk
         }
         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: FaceInfo: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: FaceInfo: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field RcFace", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.RcFace == nil {
            m.RcFace = &Rect{}
         }
         if err := m.RcFace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtLeftEye", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtLeftEye == nil {
            m.PtLeftEye = &Point{}
         }
         if err := m.PtLeftEye.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtRightEye", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtRightEye == nil {
            m.PtRightEye = &Point{}
         }
         if err := m.PtRightEye.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtMouth", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtMouth == nil {
            m.PtMouth = &Point{}
         }
         if err := m.PtMouth.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 5:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field PtNose", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.PtNose == nil {
            m.PtNose = &Point{}
         }
         if err := m.PtNose.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 6:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FAngle", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.FAngle == nil {
            m.FAngle = &FaceAngle{}
         }
         if err := m.FAngle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 7:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Quality", wireType)
         }
         m.Quality = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Quality |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 8:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FacialData", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.FacialData = append(m.FacialData[:0], dAtA[iNdEx:postIndex]...)
         if m.FacialData == nil {
            m.FacialData = []byte{}
         }
         iNdEx = postIndex
      case 9:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field FaceID", wireType)
         }
         m.FaceID = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.FaceID |= int64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ObjInfo) 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 ErrIntOverflowSdk
         }
         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: ObjInfo: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ObjInfo: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field RcObj", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.RcObj == nil {
            m.RcObj = &Rect{}
         }
         if err := m.RcObj.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Typ", wireType)
         }
         m.Typ = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Typ |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 3:
         if wireType != 5 {
            return fmt.Errorf("proto: wrong wireType = %d for field Prob", wireType)
         }
         var v uint32
         if (iNdEx + 4) > l {
            return io.ErrUnexpectedEOF
         }
         v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
         iNdEx += 4
         m.Prob = float32(math.Float32frombits(v))
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ParamFacePos) 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 ErrIntOverflowSdk
         }
         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: ParamFacePos: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ParamFacePos: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Pos", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Pos == nil {
            m.Pos = &FacePos{}
         }
         if err := m.Pos.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Result == nil {
            m.Result = &ThftResult{}
         }
         if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Img", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Img == nil {
            m.Img = &Image{}
         }
         if err := m.Img.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ParamFaceCompare) 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 ErrIntOverflowSdk
         }
         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: ParamFaceCompare: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ParamFaceCompare: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Feat1", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feat1 = append(m.Feat1[:0], dAtA[iNdEx:postIndex]...)
         if m.Feat1 == nil {
            m.Feat1 = []byte{}
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Feat2", wireType)
         }
         var byteLen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feat2 = append(m.Feat2[:0], dAtA[iNdEx:postIndex]...)
         if m.Feat2 == nil {
            m.Feat2 = []byte{}
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ParamYoloObj) 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 ErrIntOverflowSdk
         }
         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: ParamYoloObj: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ParamYoloObj: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Infos", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Infos = append(m.Infos, &ObjInfo{})
         if err := m.Infos[len(m.Infos)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Img", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.Img == nil {
            m.Img = &Image{}
         }
         if err := m.Img.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func skipSdk(dAtA []byte) (n int, err error) {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
      var wire uint64
      for shift := uint(0); ; shift += 7 {
         if shift >= 64 {
            return 0, ErrIntOverflowSdk
         }
         if iNdEx >= l {
            return 0, io.ErrUnexpectedEOF
         }
         b := dAtA[iNdEx]
         iNdEx++
         wire |= (uint64(b) & 0x7F) << shift
         if b < 0x80 {
            break
         }
      }
      wireType := int(wire & 0x7)
      switch wireType {
      case 0:
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return 0, ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return 0, io.ErrUnexpectedEOF
            }
            iNdEx++
            if dAtA[iNdEx-1] < 0x80 {
               break
            }
         }
         return iNdEx, nil
      case 1:
         iNdEx += 8
         return iNdEx, nil
      case 2:
         var length int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return 0, ErrIntOverflowSdk
            }
            if iNdEx >= l {
               return 0, io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            length |= (int(b) & 0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if length < 0 {
            return 0, ErrInvalidLengthSdk
         }
         iNdEx += length
         if iNdEx < 0 {
            return 0, ErrInvalidLengthSdk
         }
         return iNdEx, nil
      case 3:
         for {
            var innerWire uint64
            var start int = iNdEx
            for shift := uint(0); ; shift += 7 {
               if shift >= 64 {
                  return 0, ErrIntOverflowSdk
               }
               if iNdEx >= l {
                  return 0, io.ErrUnexpectedEOF
               }
               b := dAtA[iNdEx]
               iNdEx++
               innerWire |= (uint64(b) & 0x7F) << shift
               if b < 0x80 {
                  break
               }
            }
            innerWireType := int(innerWire & 0x7)
            if innerWireType == 4 {
               break
            }
            next, err := skipSdk(dAtA[start:])
            if err != nil {
               return 0, err
            }
            iNdEx = start + next
            if iNdEx < 0 {
               return 0, ErrInvalidLengthSdk
            }
         }
         return iNdEx, nil
      case 4:
         return iNdEx, nil
      case 5:
         iNdEx += 4
         return iNdEx, nil
      default:
         return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
      }
   }
   panic("unreachable")
}
var (
   ErrInvalidLengthSdk = fmt.Errorf("proto: negative length found during unmarshaling")
   ErrIntOverflowSdk   = fmt.Errorf("proto: integer overflow")
)