zhangmeng
2019-06-25 0514f66a2b99f8f2e946fe05f20d75ec6ec2ba4d
sdk.pb.go
@@ -6,7 +6,7 @@
import (
   encoding_binary "encoding/binary"
   fmt "fmt"
   proto "github.com/golang/protobuf/proto"
   proto "github.com/gogo/protobuf/proto"
   io "io"
   math "math"
)
@@ -20,18 +20,15 @@
// 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.ProtoPackageIsVersion2 // please upgrade the proto package
const _ = proto.GoGoProtoPackageIsVersion2 // 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"`
   Timestamp            string   `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
   Id                   int64    `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   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"`
}
func (m *Image) Reset()         { *m = Image{} }
@@ -103,13 +100,10 @@
}
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"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   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"`
}
func (m *FaceAngle) Reset()         { *m = FaceAngle{} }
@@ -174,14 +168,11 @@
}
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"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   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"`
}
func (m *ThftResult) Reset()         { *m = ThftResult{} }
@@ -253,17 +244,14 @@
}
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"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
   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"`
}
func (m *FacePos) Reset()         { *m = FacePos{} }
@@ -356,18 +344,15 @@
}
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"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
   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"`
}
func (m *FaceInfo) Reset()         { *m = FaceInfo{} }
@@ -467,12 +452,9 @@
}
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"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   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"`
}
func (m *ObjInfo) Reset()         { *m = ObjInfo{} }
@@ -531,11 +513,8 @@
// 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"`
   XXX_NoUnkeyedLiteral struct{}    `json:"-"`
   XXX_unrecognized     []byte      `json:"-"`
   XXX_sizecache        int32       `json:"-"`
   Pos    *FacePos    `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
   Result *ThftResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
}
func (m *ResultFaceDetect) Reset()         { *m = ResultFaceDetect{} }
@@ -586,10 +565,7 @@
}
type ParamFacePos struct {
   Faces                []*ResultFaceDetect `protobuf:"bytes,1,rep,name=faces,proto3" json:"faces,omitempty"`
   XXX_NoUnkeyedLiteral struct{}            `json:"-"`
   XXX_unrecognized     []byte              `json:"-"`
   XXX_sizecache        int32               `json:"-"`
   Faces []*ResultFaceDetect `protobuf:"bytes,1,rep,name=faces,proto3" json:"faces,omitempty"`
}
func (m *ParamFacePos) Reset()         { *m = ParamFacePos{} }
@@ -632,18 +608,75 @@
   return nil
}
type ResultFaceExtCom struct {
   Pos   []byte `protobuf:"bytes,1,opt,name=pos,proto3" json:"pos,omitempty"`
   Feats []byte `protobuf:"bytes,2,opt,name=feats,proto3" json:"feats,omitempty"`
   Comp  []byte `protobuf:"bytes,3,opt,name=comp,proto3" json:"comp,omitempty"`
}
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 m.Unmarshal(b)
}
func (m *ResultFaceExtCom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_ResultFaceExtCom.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 *ResultFaceExtCom) XXX_Merge(src proto.Message) {
   xxx_messageInfo_ResultFaceExtCom.Merge(m, src)
}
func (m *ResultFaceExtCom) XXX_Size() int {
   return m.Size()
}
func (m *ResultFaceExtCom) XXX_DiscardUnknown() {
   xxx_messageInfo_ResultFaceExtCom.DiscardUnknown(m)
}
var xxx_messageInfo_ResultFaceExtCom proto.InternalMessageInfo
func (m *ResultFaceExtCom) GetPos() []byte {
   if m != nil {
      return m.Pos
   }
   return nil
}
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
}
type ParamFaceFeature struct {
   Feats                [][]byte `protobuf:"bytes,1,rep,name=feats,proto3" json:"feats,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
   ExtComp []*ResultFaceExtCom `protobuf:"bytes,1,rep,name=extComp,proto3" json:"extComp,omitempty"`
}
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{8}
   return fileDescriptor_70decb0fb6f436df, []int{9}
}
func (m *ParamFaceFeature) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
@@ -672,75 +705,16 @@
var xxx_messageInfo_ParamFaceFeature proto.InternalMessageInfo
func (m *ParamFaceFeature) GetFeats() [][]byte {
func (m *ParamFaceFeature) GetExtComp() []*ResultFaceExtCom {
   if m != nil {
      return m.Feats
   }
   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"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
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{9}
}
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"`
   XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   XXX_unrecognized     []byte     `json:"-"`
   XXX_sizecache        int32      `json:"-"`
   Infos []*ObjInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,omitempty"`
}
func (m *ParamYoloObj) Reset()         { *m = ParamYoloObj{} }
@@ -792,55 +766,57 @@
   proto.RegisterType((*ObjInfo)(nil), "protomsg.ObjInfo")
   proto.RegisterType((*ResultFaceDetect)(nil), "protomsg.ResultFaceDetect")
   proto.RegisterType((*ParamFacePos)(nil), "protomsg.ParamFacePos")
   proto.RegisterType((*ResultFaceExtCom)(nil), "protomsg.ResultFaceExtCom")
   proto.RegisterType((*ParamFaceFeature)(nil), "protomsg.ParamFaceFeature")
   proto.RegisterType((*ParamFaceCompare)(nil), "protomsg.ParamFaceCompare")
   proto.RegisterType((*ParamYoloObj)(nil), "protomsg.ParamYoloObj")
}
func init() { proto.RegisterFile("sdk.proto", fileDescriptor_70decb0fb6f436df) }
var fileDescriptor_70decb0fb6f436df = []byte{
   // 640 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0xcf, 0x6e, 0xd3, 0x4e,
   0x10, 0xfe, 0xd9, 0xa9, 0x9d, 0x66, 0x5a, 0xf5, 0x17, 0x96, 0x0a, 0x59, 0x15, 0x8a, 0x22, 0x83,
   0x68, 0x10, 0x50, 0x68, 0x38, 0x70, 0x43, 0xfc, 0x29, 0x95, 0x2a, 0x01, 0x8d, 0x56, 0x70, 0xe0,
   0xb8, 0xb1, 0xd7, 0x8e, 0x8b, 0xed, 0x35, 0xf6, 0x44, 0x25, 0x6f, 0xc2, 0x23, 0x71, 0xe0, 0xc0,
   0x23, 0xa0, 0x22, 0xde, 0x03, 0xed, 0x78, 0x5d, 0xbb, 0x52, 0x38, 0x71, 0xe5, 0x94, 0xfd, 0x66,
   0x3e, 0xef, 0x37, 0xdf, 0xcc, 0x4e, 0x60, 0x50, 0x85, 0x1f, 0x0f, 0x8a, 0x52, 0xa1, 0x62, 0x9b,
   0xf4, 0x93, 0x55, 0xf1, 0x1e, 0xcc, 0x45, 0x25, 0xeb, 0xa8, 0x7f, 0x0e, 0xce, 0x49, 0x26, 0x62,
   0xc9, 0x76, 0xc1, 0x39, 0x4f, 0x42, 0x5c, 0x78, 0xd6, 0xd8, 0x9a, 0x38, 0xbc, 0x06, 0xec, 0x06,
   0xb8, 0x0b, 0x99, 0xc4, 0x0b, 0xf4, 0x6c, 0x0a, 0x1b, 0xc4, 0x18, 0x6c, 0x84, 0x02, 0x85, 0xd7,
   0x1b, 0x5b, 0x93, 0x6d, 0x4e, 0x67, 0x76, 0x13, 0x06, 0x98, 0x64, 0xb2, 0x42, 0x91, 0x15, 0xde,
   0xc6, 0xd8, 0x9a, 0x0c, 0x78, 0x1b, 0x60, 0x3b, 0x60, 0x27, 0xa1, 0xe7, 0x8c, 0xad, 0x49, 0x8f,
   0xdb, 0x49, 0xe8, 0xc7, 0x30, 0x38, 0x16, 0x81, 0x7c, 0x9e, 0xc7, 0xa9, 0x64, 0x43, 0xe8, 0xad,
   0xc4, 0xb9, 0x91, 0xd6, 0x47, 0x5d, 0x4e, 0x91, 0x60, 0xb0, 0x30, 0xba, 0x35, 0xd0, 0xb2, 0xa5,
   0x4a, 0x53, 0x92, 0x75, 0x38, 0x9d, 0xd9, 0x08, 0x20, 0x50, 0x79, 0x94, 0x84, 0x32, 0x0f, 0x24,
   0xe9, 0xda, 0xbc, 0x13, 0xf1, 0x3f, 0x03, 0xbc, 0x5b, 0x44, 0xc8, 0x65, 0xb5, 0x4c, 0x51, 0x1b,
   0x8a, 0x65, 0x1e, 0xca, 0xd2, 0x88, 0x19, 0xa4, 0x2b, 0x10, 0xb1, 0x34, 0x6a, 0xfa, 0x48, 0x5a,
   0x22, 0x90, 0x97, 0x5a, 0x22, 0x90, 0xfa, 0xeb, 0xb9, 0x14, 0x4b, 0x5c, 0x91, 0x8e, 0xc3, 0x0d,
   0xd2, 0xd5, 0x56, 0x59, 0x92, 0x4a, 0xf2, 0xe7, 0xf0, 0x1a, 0xf8, 0xdf, 0x6c, 0xe8, 0x6b, 0x8f,
   0x33, 0x55, 0xb1, 0x3b, 0xe0, 0x96, 0x81, 0x06, 0xa4, 0xbb, 0x35, 0xdd, 0x39, 0x68, 0xc6, 0x71,
   0xc0, 0x65, 0x80, 0xdc, 0x64, 0xd9, 0x03, 0x18, 0x14, 0xf8, 0x5a, 0x46, 0xf8, 0x6a, 0x55, 0x57,
   0xb3, 0x35, 0xfd, 0xbf, 0xa5, 0xce, 0x54, 0x92, 0x23, 0x6f, 0x19, 0xec, 0x21, 0x40, 0x81, 0x5c,
   0x8f, 0x44, 0xf3, 0x7b, 0xeb, 0xf9, 0x1d, 0x0a, 0xbb, 0x0b, 0xfd, 0x02, 0xdf, 0xa8, 0x25, 0x2e,
   0xc8, 0xc2, 0x1a, 0x76, 0x93, 0x67, 0xfb, 0xe0, 0x16, 0xf8, 0x56, 0x55, 0xb5, 0xab, 0x35, 0x4c,
   0x93, 0x66, 0xf7, 0xc0, 0x8d, 0x68, 0x8e, 0x9e, 0x4b, 0xc4, 0xeb, 0x2d, 0xf1, 0x72, 0xc4, 0xdc,
   0x50, 0x98, 0x07, 0xfd, 0x4f, 0x4b, 0x91, 0x26, 0xb8, 0xf2, 0xfa, 0xd4, 0xac, 0x06, 0xea, 0x41,
   0x46, 0x22, 0x48, 0x44, 0x7a, 0xa4, 0x5f, 0xd6, 0x26, 0xbd, 0xac, 0x4e, 0xc4, 0xff, 0x65, 0xc3,
   0xa6, 0xbe, 0xef, 0x24, 0x8f, 0xd4, 0xbf, 0x7e, 0xfe, 0x75, 0x3f, 0xf5, 0x63, 0x8e, 0x74, 0x3b,
   0x8f, 0xbc, 0x01, 0x6d, 0xa5, 0x41, 0xfe, 0x7b, 0xe8, 0x9f, 0xce, 0xcf, 0xa8, 0xcb, 0xb7, 0xc1,
   0x29, 0x83, 0xd3, 0xf9, 0xd9, 0x1f, 0x9a, 0x5c, 0x27, 0xf5, 0xee, 0xe0, 0xaa, 0x68, 0x76, 0x07,
   0x57, 0x85, 0xde, 0x9d, 0xa2, 0x54, 0x73, 0x6a, 0xa0, 0xcd, 0xe9, 0xec, 0x4b, 0x18, 0xd6, 0x3b,
   0xa8, 0x3d, 0x1c, 0x49, 0x94, 0x01, 0xb2, 0x5b, 0xd0, 0x2b, 0x54, 0x65, 0x6e, 0xbf, 0x76, 0xd5,
   0xe6, 0x4c, 0x55, 0x5c, 0x67, 0xd9, 0x7d, 0x70, 0x4b, 0xfa, 0xd0, 0xcc, 0x6f, 0xb7, 0xe5, 0xb5,
   0x8b, 0xcd, 0x0d, 0xc7, 0x7f, 0x06, 0xdb, 0x33, 0x51, 0x8a, 0xac, 0x59, 0xbc, 0x47, 0xe0, 0x68,
   0x5f, 0x5a, 0xa4, 0x37, 0xd9, 0x9a, 0xee, 0x75, 0x2d, 0x5c, 0xad, 0x86, 0xd7, 0x44, 0x7f, 0x02,
   0xc3, 0xcb, 0x1b, 0x8e, 0xa5, 0xc0, 0x65, 0x49, 0xff, 0x8e, 0x91, 0x14, 0x58, 0xdf, 0xb2, 0xcd,
   0x6b, 0xe0, 0x3f, 0xed, 0x30, 0x5f, 0xaa, 0xac, 0x10, 0x2d, 0xf3, 0x90, 0x4c, 0x19, 0xe6, 0x61,
   0x13, 0x9d, 0x92, 0x05, 0x13, 0x9d, 0xfa, 0x4f, 0x4c, 0xad, 0x1f, 0x54, 0xaa, 0x74, 0x23, 0xf7,
   0xc1, 0x49, 0xf2, 0x48, 0x35, 0xb5, 0x76, 0x1a, 0x62, 0x06, 0xc2, 0xeb, 0xfc, 0x8b, 0xe1, 0xd7,
   0x8b, 0x91, 0xf5, 0xfd, 0x62, 0x64, 0xfd, 0xb8, 0x18, 0x59, 0x5f, 0x7e, 0x8e, 0xfe, 0x9b, 0xbb,
   0x44, 0x7d, 0xfc, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x99, 0xb3, 0x14, 0x59, 0xf1, 0x05, 0x00, 0x00,
   // 665 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x54, 0x4d, 0x6f, 0xd3, 0x40,
   0x10, 0xad, 0x9d, 0xda, 0x69, 0xa6, 0x51, 0x29, 0x4b, 0x85, 0xac, 0x0a, 0x59, 0x91, 0x41, 0x34,
   0x08, 0x28, 0xa8, 0x20, 0x71, 0xe5, 0xa3, 0xad, 0xa8, 0x04, 0x6d, 0xb4, 0x82, 0x03, 0xc7, 0x8d,
   0xbd, 0x76, 0x5c, 0x6c, 0xaf, 0xb1, 0x27, 0x6a, 0xf3, 0x2f, 0xf8, 0x59, 0x1c, 0x38, 0xf4, 0xc8,
   0x11, 0xb5, 0xe2, 0x7f, 0xa0, 0x59, 0xaf, 0x9b, 0x54, 0x2a, 0x5c, 0xb8, 0x72, 0xca, 0xcc, 0xce,
   0xf3, 0xbe, 0xf7, 0x66, 0x76, 0x02, 0xbd, 0x3a, 0xfa, 0xbc, 0x5d, 0x56, 0x0a, 0x15, 0x5b, 0xd1,
   0x3f, 0x79, 0x9d, 0x6c, 0xc2, 0x58, 0xd4, 0xb2, 0x39, 0x0d, 0x4e, 0xc0, 0x39, 0xc8, 0x45, 0x22,
   0xd9, 0x06, 0x38, 0x27, 0x69, 0x84, 0x13, 0xcf, 0x1a, 0x58, 0x43, 0x87, 0x37, 0x09, 0xbb, 0x0d,
   0xee, 0x44, 0xa6, 0xc9, 0x04, 0x3d, 0x5b, 0x1f, 0x9b, 0x8c, 0x31, 0x58, 0x8e, 0x04, 0x0a, 0xaf,
   0x33, 0xb0, 0x86, 0x7d, 0xae, 0x63, 0x76, 0x07, 0x7a, 0x98, 0xe6, 0xb2, 0x46, 0x91, 0x97, 0xde,
   0xf2, 0xc0, 0x1a, 0xf6, 0xf8, 0xfc, 0x80, 0xad, 0x81, 0x9d, 0x46, 0x9e, 0x33, 0xb0, 0x86, 0x1d,
   0x6e, 0xa7, 0x51, 0x90, 0x40, 0x6f, 0x5f, 0x84, 0xf2, 0x55, 0x91, 0x64, 0x92, 0xad, 0x43, 0x67,
   0x26, 0x4e, 0x0c, 0x35, 0x85, 0x24, 0xa7, 0x4c, 0x31, 0x9c, 0x18, 0xde, 0x26, 0x21, 0xda, 0x4a,
   0x65, 0x99, 0xa6, 0x75, 0xb8, 0x8e, 0x99, 0x0f, 0x10, 0xaa, 0x22, 0x4e, 0x23, 0x59, 0x84, 0x52,
   0xf3, 0xda, 0x7c, 0xe1, 0x24, 0x38, 0x05, 0xf8, 0x30, 0x89, 0x91, 0xcb, 0x7a, 0x9a, 0x21, 0x19,
   0x4a, 0x64, 0x11, 0xc9, 0xca, 0x90, 0x99, 0x8c, 0x14, 0x88, 0x44, 0x1a, 0x36, 0x0a, 0x35, 0x97,
   0x08, 0xe5, 0x25, 0x97, 0x08, 0x25, 0x7d, 0x3d, 0x96, 0x62, 0x8a, 0x33, 0xcd, 0xe3, 0x70, 0x93,
   0x91, 0xda, 0x3a, 0x4f, 0x33, 0xa9, 0xfd, 0x39, 0xbc, 0x49, 0x82, 0xef, 0x36, 0x74, 0xc9, 0xe3,
   0x48, 0xd5, 0xec, 0x3e, 0xb8, 0x55, 0x48, 0x89, 0xe6, 0x5d, 0xdd, 0x59, 0xdb, 0x6e, 0xc7, 0xb1,
   0xcd, 0x65, 0x88, 0xdc, 0x54, 0xd9, 0x63, 0xe8, 0x95, 0xf8, 0x4e, 0xc6, 0xb8, 0x37, 0x6b, 0xd4,
   0xac, 0xee, 0xdc, 0x98, 0x43, 0x47, 0x2a, 0x2d, 0x90, 0xcf, 0x11, 0xec, 0x09, 0x40, 0x89, 0x9c,
   0x46, 0x42, 0xf8, 0xce, 0xf5, 0xf8, 0x05, 0x08, 0x7b, 0x00, 0xdd, 0x12, 0xdf, 0xab, 0x29, 0x4e,
   0xb4, 0x85, 0x6b, 0xd0, 0x6d, 0x9d, 0x6d, 0x81, 0x5b, 0xe2, 0xa1, 0xaa, 0x1b, 0x57, 0xd7, 0x20,
   0x4d, 0x99, 0x3d, 0x04, 0x37, 0xd6, 0x73, 0xf4, 0x5c, 0x0d, 0xbc, 0x35, 0x07, 0x5e, 0x8e, 0x98,
   0x1b, 0x08, 0xf3, 0xa0, 0xfb, 0x65, 0x2a, 0xb2, 0x14, 0x67, 0x5e, 0x57, 0x37, 0xab, 0x4d, 0x69,
   0x90, 0xb1, 0x08, 0x53, 0x91, 0xed, 0xd2, 0xcb, 0x5a, 0xd1, 0x2f, 0x6b, 0xe1, 0x24, 0xf8, 0x65,
   0xc3, 0x0a, 0xdd, 0x77, 0x50, 0xc4, 0xea, 0x7f, 0x3f, 0xff, 0xb9, 0x9f, 0xf4, 0x98, 0x63, 0x6a,
   0xe7, 0xae, 0xd7, 0xd3, 0x5b, 0x69, 0xb2, 0xe0, 0x23, 0x74, 0x8f, 0xc6, 0xc7, 0xba, 0xcb, 0xf7,
   0xc0, 0xa9, 0xc2, 0xa3, 0xf1, 0xf1, 0x1f, 0x9a, 0xdc, 0x14, 0x69, 0x77, 0x70, 0x56, 0xb6, 0xbb,
   0x83, 0xb3, 0x92, 0x76, 0xa7, 0xac, 0xd4, 0x58, 0x37, 0xd0, 0xe6, 0x3a, 0x0e, 0x24, 0xac, 0x37,
   0x3b, 0x48, 0x1e, 0x76, 0x25, 0xca, 0x10, 0xd9, 0x5d, 0xe8, 0x94, 0xaa, 0x36, 0xb7, 0xdf, 0xbc,
   0x6a, 0x73, 0xa4, 0x6a, 0x4e, 0x55, 0xf6, 0x08, 0xdc, 0x4a, 0x7f, 0x68, 0xe6, 0xb7, 0x31, 0xc7,
   0xcd, 0x17, 0x9b, 0x1b, 0x4c, 0xf0, 0x12, 0xfa, 0x23, 0x51, 0x89, 0xbc, 0x5d, 0xbc, 0xa7, 0xe0,
   0x90, 0x2f, 0x22, 0xe9, 0x0c, 0x57, 0x77, 0x36, 0x17, 0x2d, 0x5c, 0x55, 0xc3, 0x1b, 0x60, 0x70,
   0xb8, 0x28, 0x74, 0xef, 0x14, 0xdf, 0xa8, 0x9c, 0x2c, 0xb6, 0x42, 0xfb, 0x8d, 0xaa, 0x0d, 0x70,
   0x62, 0x29, 0xb0, 0xd6, 0xa2, 0xfa, 0xbc, 0x49, 0xc8, 0x78, 0xa8, 0xf2, 0xb2, 0xfd, 0x5f, 0xa4,
   0x38, 0x78, 0x0b, 0xeb, 0x97, 0x8a, 0xf6, 0xa5, 0xc0, 0x69, 0x25, 0xd9, 0x73, 0xe8, 0x4a, 0x7d,
   0x73, 0xf9, 0x37, 0x5d, 0x0d, 0x39, 0x6f, 0xa1, 0xc1, 0x0b, 0xe3, 0xed, 0x93, 0xca, 0x14, 0x35,
   0x7e, 0x0b, 0x9c, 0xb4, 0x88, 0x55, 0xeb, 0x6d, 0xa1, 0x81, 0x66, 0x80, 0xbc, 0xa9, 0xbf, 0xf6,
   0xbe, 0x9d, 0xfb, 0xd6, 0xd9, 0xb9, 0x6f, 0xfd, 0x3c, 0xf7, 0xad, 0xaf, 0x17, 0xfe, 0xd2, 0xd9,
   0x85, 0xbf, 0xf4, 0xe3, 0xc2, 0x5f, 0x1a, 0xbb, 0xfa, 0x93, 0x67, 0xbf, 0x03, 0x00, 0x00, 0xff,
   0xff, 0x82, 0x5c, 0xa6, 0x5e, 0x29, 0x06, 0x00, 0x00,
}
func (m *Image) Marshal() (dAtA []byte, err error) {
@@ -885,9 +861,6 @@
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Id))
   }
   if m.XXX_unrecognized != nil {
      i += copy(dAtA[i:], m.XXX_unrecognized)
   }
   return i, nil
}
@@ -926,9 +899,6 @@
      i++
      encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Confidence))))
      i += 4
   }
   if m.XXX_unrecognized != nil {
      i += copy(dAtA[i:], m.XXX_unrecognized)
   }
   return i, nil
}
@@ -972,9 +942,6 @@
      dAtA[i] = 0x28
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.Smile))
   }
   if m.XXX_unrecognized != nil {
      i += copy(dAtA[i:], m.XXX_unrecognized)
   }
   return i, nil
}
@@ -1064,9 +1031,6 @@
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.FacialData)))
      i += copy(dAtA[i:], m.FacialData)
   }
   if m.XXX_unrecognized != nil {
      i += copy(dAtA[i:], m.XXX_unrecognized)
   }
   return i, nil
}
@@ -1162,9 +1126,6 @@
      i++
      i = encodeVarintSdk(dAtA, i, uint64(m.FaceID))
   }
   if m.XXX_unrecognized != nil {
      i += copy(dAtA[i:], m.XXX_unrecognized)
   }
   return i, nil
}
@@ -1204,9 +1165,6 @@
      encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Prob))))
      i += 4
   }
   if m.XXX_unrecognized != nil {
      i += copy(dAtA[i:], m.XXX_unrecognized)
   }
   return i, nil
}
@@ -1245,9 +1203,6 @@
      }
      i += n15
   }
   if m.XXX_unrecognized != nil {
      i += copy(dAtA[i:], m.XXX_unrecognized)
   }
   return i, nil
}
@@ -1278,8 +1233,41 @@
         i += n
      }
   }
   if m.XXX_unrecognized != nil {
      i += copy(dAtA[i:], m.XXX_unrecognized)
   return i, nil
}
func (m *ResultFaceExtCom) 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 *ResultFaceExtCom) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Pos) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Pos)))
      i += copy(dAtA[i:], m.Pos)
   }
   if len(m.Feats) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Feats)))
      i += copy(dAtA[i:], m.Feats)
   }
   if len(m.Comp) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintSdk(dAtA, i, uint64(len(m.Comp)))
      i += copy(dAtA[i:], m.Comp)
   }
   return i, nil
}
@@ -1299,49 +1287,17 @@
   _ = i
   var l int
   _ = l
   if len(m.Feats) > 0 {
      for _, b := range m.Feats {
   if len(m.ExtComp) > 0 {
      for _, msg := range m.ExtComp {
         dAtA[i] = 0xa
         i++
         i = encodeVarintSdk(dAtA, i, uint64(len(b)))
         i += copy(dAtA[i:], b)
         i = encodeVarintSdk(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   if m.XXX_unrecognized != nil {
      i += copy(dAtA[i:], m.XXX_unrecognized)
   }
   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)
   }
   if m.XXX_unrecognized != nil {
      i += copy(dAtA[i:], m.XXX_unrecognized)
   }
   return i, nil
}
@@ -1372,9 +1328,6 @@
         }
         i += n
      }
   }
   if m.XXX_unrecognized != nil {
      i += copy(dAtA[i:], m.XXX_unrecognized)
   }
   return i, nil
}
@@ -1411,9 +1364,6 @@
   if m.Id != 0 {
      n += 1 + sovSdk(uint64(m.Id))
   }
   if m.XXX_unrecognized != nil {
      n += len(m.XXX_unrecognized)
   }
   return n
}
@@ -1434,9 +1384,6 @@
   }
   if m.Confidence != 0 {
      n += 5
   }
   if m.XXX_unrecognized != nil {
      n += len(m.XXX_unrecognized)
   }
   return n
}
@@ -1461,9 +1408,6 @@
   }
   if m.Smile != 0 {
      n += 1 + sovSdk(uint64(m.Smile))
   }
   if m.XXX_unrecognized != nil {
      n += len(m.XXX_unrecognized)
   }
   return n
}
@@ -1504,9 +1448,6 @@
   l = len(m.FacialData)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.XXX_unrecognized != nil {
      n += len(m.XXX_unrecognized)
   }
   return n
}
@@ -1551,9 +1492,6 @@
   if m.FaceID != 0 {
      n += 1 + sovSdk(uint64(m.FaceID))
   }
   if m.XXX_unrecognized != nil {
      n += len(m.XXX_unrecognized)
   }
   return n
}
@@ -1573,9 +1511,6 @@
   if m.Prob != 0 {
      n += 5
   }
   if m.XXX_unrecognized != nil {
      n += len(m.XXX_unrecognized)
   }
   return n
}
@@ -1593,9 +1528,6 @@
      l = m.Result.Size()
      n += 1 + l + sovSdk(uint64(l))
   }
   if m.XXX_unrecognized != nil {
      n += len(m.XXX_unrecognized)
   }
   return n
}
@@ -1611,8 +1543,26 @@
         n += 1 + l + sovSdk(uint64(l))
      }
   }
   if m.XXX_unrecognized != nil {
      n += len(m.XXX_unrecognized)
   return n
}
func (m *ResultFaceExtCom) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Pos)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.Feats)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   l = len(m.Comp)
   if l > 0 {
      n += 1 + l + sovSdk(uint64(l))
   }
   return n
}
@@ -1623,34 +1573,11 @@
   }
   var l int
   _ = l
   if len(m.Feats) > 0 {
      for _, b := range m.Feats {
         l = len(b)
   if len(m.ExtComp) > 0 {
      for _, e := range m.ExtComp {
         l = e.Size()
         n += 1 + l + sovSdk(uint64(l))
      }
   }
   if m.XXX_unrecognized != nil {
      n += len(m.XXX_unrecognized)
   }
   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))
   }
   if m.XXX_unrecognized != nil {
      n += len(m.XXX_unrecognized)
   }
   return n
}
@@ -1666,9 +1593,6 @@
         l = e.Size()
         n += 1 + l + sovSdk(uint64(l))
      }
   }
   if m.XXX_unrecognized != nil {
      n += len(m.XXX_unrecognized)
   }
   return n
}
@@ -1853,7 +1777,6 @@
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
         iNdEx += skippy
      }
   }
@@ -1975,7 +1898,6 @@
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
         iNdEx += skippy
      }
   }
@@ -2124,7 +2046,6 @@
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
         iNdEx += skippy
      }
   }
@@ -2447,7 +2368,6 @@
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
         iNdEx += skippy
      }
   }
@@ -2789,7 +2709,6 @@
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
         iNdEx += skippy
      }
   }
@@ -2909,7 +2828,6 @@
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
         iNdEx += skippy
      }
   }
@@ -3035,7 +2953,6 @@
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
         iNdEx += skippy
      }
   }
@@ -3123,7 +3040,161 @@
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *ResultFaceExtCom) 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: ResultFaceExtCom: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: ResultFaceExtCom: 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 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.Pos = append(m.Pos[:0], dAtA[iNdEx:postIndex]...)
         if m.Pos == nil {
            m.Pos = []byte{}
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Feats", 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.Feats = append(m.Feats[:0], dAtA[iNdEx:postIndex]...)
         if m.Feats == nil {
            m.Feats = []byte{}
         }
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Comp", 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.Comp = append(m.Comp[:0], dAtA[iNdEx:postIndex]...)
         if m.Comp == nil {
            m.Comp = []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
      }
   }
@@ -3164,9 +3235,9 @@
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Feats", wireType)
            return fmt.Errorf("proto: wrong wireType = %d for field ExtComp", wireType)
         }
         var byteLen int
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowSdk
@@ -3176,144 +3247,24 @@
            }
            b := dAtA[iNdEx]
            iNdEx++
            byteLen |= int(b&0x7F) << shift
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if byteLen < 0 {
         if msglen < 0 {
            return ErrInvalidLengthSdk
         }
         postIndex := iNdEx + byteLen
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthSdk
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feats = append(m.Feats, make([]byte, postIndex-iNdEx))
         copy(m.Feats[len(m.Feats)-1], dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipSdk(dAtA[iNdEx:])
         if err != nil {
         m.ExtComp = append(m.ExtComp, &ResultFaceExtCom{})
         if err := m.ExtComp[len(m.ExtComp)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthSdk
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *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:
@@ -3331,7 +3282,6 @@
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
         iNdEx += skippy
      }
   }
@@ -3419,7 +3369,6 @@
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
         iNdEx += skippy
      }
   }