cheliequan
2023-02-07 e5826a0b7cc29d176f69ec34fec83f7146cd1d30
es.pb.go
@@ -24,10 +24,13 @@
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
type Esinfo struct {
   Id           string  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Tableid      string  `protobuf:"bytes,2,opt,name=tableid,proto3" json:"tableid,omitempty"`
   FaceFeature  string  `protobuf:"bytes,3,opt,name=faceFeature,proto3" json:"faceFeature,omitempty"`
   CompareScore float32 `protobuf:"fixed32,4,opt,name=compareScore,proto3" json:"compareScore,omitempty"`
   Id            string  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   Tableid       string  `protobuf:"bytes,2,opt,name=tableid,proto3" json:"tableid,omitempty"`
   FaceFeature   string  `protobuf:"bytes,3,opt,name=faceFeature,proto3" json:"faceFeature,omitempty"`
   CompareScore  float32 `protobuf:"fixed32,4,opt,name=compareScore,proto3" json:"compareScore,omitempty"`
   Enable        int32   `protobuf:"varint,5,opt,name=enable,proto3" json:"enable,omitempty"`
   AnalyServerId string  `protobuf:"bytes,6,opt,name=analyServerId,proto3" json:"analyServerId,omitempty"`
   CarNo         string  `protobuf:"bytes,7,opt,name=carNo,proto3" json:"carNo,omitempty"`
}
func (m *Esinfo) Reset()         { *m = Esinfo{} }
@@ -91,25 +94,47 @@
   return 0
}
type DbPersonCompCache struct {
   Id          string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   TableId     string `protobuf:"bytes,2,opt,name=tableId,proto3" json:"tableId,omitempty"`
   FaceFeature string `protobuf:"bytes,3,opt,name=faceFeature,proto3" json:"faceFeature,omitempty"`
   Enable      int32  `protobuf:"varint,4,opt,name=enable,proto3" json:"enable,omitempty"`
func (m *Esinfo) GetEnable() int32 {
   if m != nil {
      return m.Enable
   }
   return 0
}
func (m *DbPersonCompCache) Reset()         { *m = DbPersonCompCache{} }
func (m *DbPersonCompCache) String() string { return proto.CompactTextString(m) }
func (*DbPersonCompCache) ProtoMessage()    {}
func (*DbPersonCompCache) Descriptor() ([]byte, []int) {
func (m *Esinfo) GetAnalyServerId() string {
   if m != nil {
      return m.AnalyServerId
   }
   return ""
}
func (m *Esinfo) GetCarNo() string {
   if m != nil {
      return m.CarNo
   }
   return ""
}
type MultiFeaCache struct {
   EsInfo         *Esinfo         `protobuf:"bytes,1,opt,name=esInfo,proto3" json:"esInfo,omitempty"`
   AttachFeature  string          `protobuf:"bytes,2,opt,name=attachFeature,proto3" json:"attachFeature,omitempty"`
   CameraId       string          `protobuf:"bytes,3,opt,name=cameraId,proto3" json:"cameraId,omitempty"`
   LinkEsInfo     []*LinkEsInfo   `protobuf:"bytes,4,rep,name=linkEsInfo,proto3" json:"linkEsInfo,omitempty"`
   TargetLocation *TargetLocation `protobuf:"bytes,5,opt,name=targetLocation,proto3" json:"targetLocation,omitempty"`
}
func (m *MultiFeaCache) Reset()         { *m = MultiFeaCache{} }
func (m *MultiFeaCache) String() string { return proto.CompactTextString(m) }
func (*MultiFeaCache) ProtoMessage()    {}
func (*MultiFeaCache) Descriptor() ([]byte, []int) {
   return fileDescriptor_718db5c20d0f3738, []int{1}
}
func (m *DbPersonCompCache) XXX_Unmarshal(b []byte) error {
func (m *MultiFeaCache) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *DbPersonCompCache) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *MultiFeaCache) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_DbPersonCompCache.Marshal(b, m, deterministic)
      return xxx_messageInfo_MultiFeaCache.Marshal(b, m, deterministic)
   } else {
      b = b[:cap(b)]
      n, err := m.MarshalTo(b)
@@ -119,44 +144,119 @@
      return b[:n], nil
   }
}
func (m *DbPersonCompCache) XXX_Merge(src proto.Message) {
   xxx_messageInfo_DbPersonCompCache.Merge(m, src)
func (m *MultiFeaCache) XXX_Merge(src proto.Message) {
   xxx_messageInfo_MultiFeaCache.Merge(m, src)
}
func (m *DbPersonCompCache) XXX_Size() int {
func (m *MultiFeaCache) XXX_Size() int {
   return m.Size()
}
func (m *DbPersonCompCache) XXX_DiscardUnknown() {
   xxx_messageInfo_DbPersonCompCache.DiscardUnknown(m)
func (m *MultiFeaCache) XXX_DiscardUnknown() {
   xxx_messageInfo_MultiFeaCache.DiscardUnknown(m)
}
var xxx_messageInfo_DbPersonCompCache proto.InternalMessageInfo
var xxx_messageInfo_MultiFeaCache proto.InternalMessageInfo
func (m *DbPersonCompCache) GetId() string {
func (m *MultiFeaCache) GetEsInfo() *Esinfo {
   if m != nil {
      return m.Id
      return m.EsInfo
   }
   return nil
}
func (m *MultiFeaCache) GetAttachFeature() string {
   if m != nil {
      return m.AttachFeature
   }
   return ""
}
func (m *DbPersonCompCache) GetTableId() string {
func (m *MultiFeaCache) GetCameraId() string {
   if m != nil {
      return m.TableId
      return m.CameraId
   }
   return ""
}
func (m *DbPersonCompCache) GetFaceFeature() string {
func (m *MultiFeaCache) GetLinkEsInfo() []*LinkEsInfo {
   if m != nil {
      return m.FaceFeature
      return m.LinkEsInfo
   }
   return nil
}
func (m *MultiFeaCache) GetTargetLocation() *TargetLocation {
   if m != nil {
      return m.TargetLocation
   }
   return nil
}
type LinkEsInfo struct {
   CameraId       string          `protobuf:"bytes,1,opt,name=cameraId,proto3" json:"cameraId,omitempty"`
   Feature        string          `protobuf:"bytes,2,opt,name=feature,proto3" json:"feature,omitempty"`
   AttachFeature  string          `protobuf:"bytes,3,opt,name=attachFeature,proto3" json:"attachFeature,omitempty"`
   TargetLocation *TargetLocation `protobuf:"bytes,4,opt,name=targetLocation,proto3" json:"targetLocation,omitempty"`
}
func (m *LinkEsInfo) Reset()         { *m = LinkEsInfo{} }
func (m *LinkEsInfo) String() string { return proto.CompactTextString(m) }
func (*LinkEsInfo) ProtoMessage()    {}
func (*LinkEsInfo) Descriptor() ([]byte, []int) {
   return fileDescriptor_718db5c20d0f3738, []int{2}
}
func (m *LinkEsInfo) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
}
func (m *LinkEsInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   if deterministic {
      return xxx_messageInfo_LinkEsInfo.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 *LinkEsInfo) XXX_Merge(src proto.Message) {
   xxx_messageInfo_LinkEsInfo.Merge(m, src)
}
func (m *LinkEsInfo) XXX_Size() int {
   return m.Size()
}
func (m *LinkEsInfo) XXX_DiscardUnknown() {
   xxx_messageInfo_LinkEsInfo.DiscardUnknown(m)
}
var xxx_messageInfo_LinkEsInfo proto.InternalMessageInfo
func (m *LinkEsInfo) GetCameraId() string {
   if m != nil {
      return m.CameraId
   }
   return ""
}
func (m *DbPersonCompCache) GetEnable() int32 {
func (m *LinkEsInfo) GetFeature() string {
   if m != nil {
      return m.Enable
      return m.Feature
   }
   return 0
   return ""
}
func (m *LinkEsInfo) GetAttachFeature() string {
   if m != nil {
      return m.AttachFeature
   }
   return ""
}
func (m *LinkEsInfo) GetTargetLocation() *TargetLocation {
   if m != nil {
      return m.TargetLocation
   }
   return nil
}
type Dbperson struct {
@@ -177,13 +277,18 @@
   MonitorLevel string `protobuf:"bytes,15,opt,name=monitorLevel,proto3" json:"monitorLevel,omitempty"`
   Enable       int32  `protobuf:"varint,16,opt,name=enable,proto3" json:"enable,omitempty"`
   Reserved     string `protobuf:"bytes,17,opt,name=reserved,proto3" json:"reserved,omitempty"`
   CarNo        string `protobuf:"bytes,18,opt,name=carNo,proto3" json:"carNo,omitempty"`
   CarPicUrls   string `protobuf:"bytes,19,opt,name=carPicUrls,proto3" json:"carPicUrls,omitempty"`
   CarType      int32  `protobuf:"varint,20,opt,name=carType,proto3" json:"carType,omitempty"`
   CarBrand     int32  `protobuf:"varint,21,opt,name=carBrand,proto3" json:"carBrand,omitempty"`
   CarColor     int32  `protobuf:"varint,22,opt,name=carColor,proto3" json:"carColor,omitempty"`
}
func (m *Dbperson) Reset()         { *m = Dbperson{} }
func (m *Dbperson) String() string { return proto.CompactTextString(m) }
func (*Dbperson) ProtoMessage()    {}
func (*Dbperson) Descriptor() ([]byte, []int) {
   return fileDescriptor_718db5c20d0f3738, []int{2}
   return fileDescriptor_718db5c20d0f3738, []int{3}
}
func (m *Dbperson) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
@@ -331,6 +436,41 @@
   return ""
}
func (m *Dbperson) GetCarNo() string {
   if m != nil {
      return m.CarNo
   }
   return ""
}
func (m *Dbperson) GetCarPicUrls() string {
   if m != nil {
      return m.CarPicUrls
   }
   return ""
}
func (m *Dbperson) GetCarType() int32 {
   if m != nil {
      return m.CarType
   }
   return 0
}
func (m *Dbperson) GetCarBrand() int32 {
   if m != nil {
      return m.CarBrand
   }
   return 0
}
func (m *Dbperson) GetCarColor() int32 {
   if m != nil {
      return m.CarColor
   }
   return 0
}
type Dbtable struct {
   Id            string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   TableName     string `protobuf:"bytes,2,opt,name=tableName,proto3" json:"tableName,omitempty"`
@@ -353,7 +493,7 @@
func (m *Dbtable) String() string { return proto.CompactTextString(m) }
func (*Dbtable) ProtoMessage()    {}
func (*Dbtable) Descriptor() ([]byte, []int) {
   return fileDescriptor_718db5c20d0f3738, []int{3}
   return fileDescriptor_718db5c20d0f3738, []int{4}
}
func (m *Dbtable) XXX_Unmarshal(b []byte) error {
   return m.Unmarshal(b)
@@ -489,7 +629,8 @@
func init() {
   proto.RegisterType((*Esinfo)(nil), "protomsg.Esinfo")
   proto.RegisterType((*DbPersonCompCache)(nil), "protomsg.DbPersonCompCache")
   proto.RegisterType((*MultiFeaCache)(nil), "protomsg.MultiFeaCache")
   proto.RegisterType((*LinkEsInfo)(nil), "protomsg.LinkEsInfo")
   proto.RegisterType((*Dbperson)(nil), "protomsg.Dbperson")
   proto.RegisterType((*Dbtable)(nil), "protomsg.Dbtable")
}
@@ -497,40 +638,53 @@
func init() { proto.RegisterFile("es.proto", fileDescriptor_718db5c20d0f3738) }
var fileDescriptor_718db5c20d0f3738 = []byte{
   // 523 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0x41, 0x6e, 0xda, 0x40,
   0x14, 0x86, 0x63, 0x68, 0xc0, 0x7e, 0x40, 0x9a, 0x78, 0x51, 0x8d, 0xaa, 0xc8, 0x42, 0x56, 0x17,
   0x59, 0x75, 0xd3, 0x1b, 0x04, 0x1a, 0x09, 0xa9, 0x8a, 0x22, 0x48, 0x0f, 0x30, 0xb6, 0x5f, 0x92,
   0x91, 0xb0, 0xc7, 0x9a, 0x31, 0x04, 0x6e, 0xd1, 0x9b, 0xf4, 0x1a, 0x5d, 0x66, 0xd9, 0x45, 0x17,
   0x15, 0x5c, 0xa4, 0x9a, 0x37, 0x36, 0xb6, 0x53, 0x35, 0xed, 0xa2, 0x2b, 0xf8, 0xff, 0x7f, 0x98,
   0xf7, 0xf3, 0x3e, 0xcb, 0xe0, 0xa2, 0x7e, 0x9f, 0x2b, 0x59, 0x48, 0xdf, 0xa5, 0x8f, 0x54, 0xdf,
   0x87, 0x1b, 0xe8, 0x7d, 0xd4, 0x22, 0xbb, 0x93, 0xfe, 0x09, 0x74, 0x44, 0xc2, 0x9c, 0xb1, 0x73,
   0xe1, 0xcd, 0x3b, 0x22, 0xf1, 0x19, 0xf4, 0x0b, 0x1e, 0x2d, 0x51, 0x24, 0xac, 0x43, 0x66, 0x25,
   0xfd, 0x31, 0x0c, 0xee, 0x78, 0x8c, 0x57, 0xc8, 0x8b, 0x95, 0x42, 0xd6, 0xa5, 0xb4, 0x69, 0xf9,
   0x21, 0x0c, 0x63, 0x99, 0xe6, 0x5c, 0xe1, 0x22, 0x96, 0x0a, 0xd9, 0xab, 0xb1, 0x73, 0xd1, 0x99,
   0xb7, 0xbc, 0xf0, 0x11, 0xce, 0xa6, 0xd1, 0x0d, 0x2a, 0x2d, 0xb3, 0x89, 0x4c, 0xf3, 0x09, 0x8f,
   0x1f, 0xf0, 0x8f, 0x25, 0x66, 0xed, 0x12, 0xb3, 0x7f, 0x29, 0xf1, 0x06, 0x7a, 0x98, 0x99, 0xd3,
   0x34, 0xfe, 0x78, 0x5e, 0xaa, 0xf0, 0x47, 0x17, 0xdc, 0x69, 0x94, 0xd3, 0xe4, 0xff, 0x3a, 0x30,
   0x84, 0xa1, 0xbd, 0xf5, 0x46, 0xc4, 0x9f, 0xd5, 0x92, 0xc6, 0x7a, 0xf3, 0x96, 0xe7, 0x07, 0x00,
   0x56, 0x5f, 0xf3, 0x14, 0xd9, 0x31, 0x9d, 0x68, 0x38, 0xfe, 0x29, 0x74, 0xf9, 0x3d, 0xb2, 0x1e,
   0x05, 0xe6, 0xab, 0x71, 0x34, 0x6e, 0x58, 0xdf, 0x3a, 0x1a, 0x37, 0xe6, 0x8f, 0x89, 0x64, 0xc2,
   0x55, 0xc2, 0x5c, 0x32, 0x4b, 0x65, 0xba, 0xe7, 0x22, 0x9e, 0xa2, 0x8e, 0x99, 0x67, 0xbb, 0x97,
   0xd2, 0x7f, 0x0b, 0x6e, 0xfe, 0x20, 0x33, 0xbc, 0x5e, 0xa5, 0x0c, 0x28, 0x3a, 0x68, 0xd3, 0x28,
   0x56, 0xc8, 0x0b, 0xbc, 0x15, 0x29, 0xb2, 0x81, 0x6d, 0x54, 0x3b, 0x26, 0x5f, 0xe5, 0x49, 0x95,
   0x0f, 0x6d, 0x5e, 0x3b, 0xe6, 0x6e, 0x7b, 0xfa, 0x72, 0xcb, 0x46, 0xf6, 0xee, 0x4a, 0x9b, 0x4c,
   0xe8, 0x29, 0x2e, 0xb1, 0x40, 0x76, 0x42, 0x10, 0x0e, 0xda, 0x6c, 0x2b, 0x95, 0x99, 0x28, 0xa4,
   0xfa, 0x84, 0x6b, 0x5c, 0xb2, 0xd7, 0x76, 0x5b, 0x4d, 0xaf, 0x81, 0xf0, 0xb4, 0x89, 0xd0, 0xdc,
   0xab, 0x50, 0xa3, 0x5a, 0x63, 0xc2, 0xce, 0xec, 0xcc, 0x4a, 0x87, 0x5f, 0xbb, 0xd0, 0x9f, 0x46,
   0x44, 0xed, 0x37, 0xba, 0xe7, 0xe0, 0x51, 0x40, 0xcb, 0xb7, 0x7c, 0x6b, 0xe3, 0x90, 0xd2, 0x06,
   0xbb, 0x8d, 0x94, 0x76, 0x58, 0xa5, 0xb7, 0xdb, 0x1c, 0x4b, 0xb4, 0xb5, 0x61, 0x9a, 0x46, 0x8f,
   0x14, 0x59, 0xa6, 0xa5, 0x32, 0xbf, 0xd2, 0x05, 0x57, 0x05, 0x2d, 0xcf, 0x52, 0xad, 0x0d, 0x43,
   0x0c, 0xb3, 0x84, 0x32, 0xcb, 0xb7, 0x92, 0xcf, 0xa8, 0xb8, 0x7f, 0xa1, 0xe2, 0xbd, 0x48, 0x05,
   0x5e, 0xa0, 0x32, 0x78, 0x46, 0xe5, 0x1c, 0x3c, 0xa1, 0xaf, 0xa4, 0xc2, 0x35, 0xaa, 0x12, 0x76,
   0x6d, 0x34, 0x78, 0x8c, 0x5a, 0x3c, 0xcc, 0x13, 0xa9, 0x17, 0xdb, 0x2c, 0x26, 0xca, 0xe6, 0x89,
   0x24, 0xe5, 0xbf, 0x83, 0x11, 0xcf, 0xf8, 0x72, 0xbb, 0x30, 0x68, 0xd4, 0x2c, 0x29, 0x21, 0xb7,
   0xcd, 0x4b, 0xf6, 0x6d, 0x17, 0x38, 0x4f, 0xbb, 0xc0, 0xf9, 0xb9, 0x0b, 0x9c, 0x2f, 0xfb, 0xe0,
   0xe8, 0x69, 0x1f, 0x1c, 0x7d, 0xdf, 0x07, 0x47, 0x51, 0x8f, 0xde, 0x53, 0x1f, 0x7e, 0x05, 0x00,
   0x00, 0xff, 0xff, 0x2e, 0x51, 0xfb, 0x32, 0xba, 0x04, 0x00, 0x00,
   // 732 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xcd, 0x4e, 0xdb, 0x4a,
   0x14, 0xc6, 0x49, 0xc8, 0xcf, 0x09, 0x01, 0xee, 0x5c, 0x2e, 0x1a, 0x21, 0x14, 0x45, 0xd1, 0x5d,
   0x64, 0xc5, 0x82, 0x7b, 0x1f, 0xa0, 0x82, 0x80, 0x14, 0x89, 0xa2, 0xca, 0xd0, 0x07, 0x98, 0x8c,
   0x4f, 0x60, 0x54, 0xc7, 0x13, 0x8d, 0x1d, 0xda, 0xbc, 0x45, 0x9f, 0xa3, 0x9b, 0xbe, 0x46, 0x17,
   0x5d, 0xb0, 0xec, 0xb2, 0x82, 0xbe, 0x41, 0x5f, 0xa0, 0x9a, 0x33, 0x76, 0x6c, 0x27, 0x94, 0xb6,
   0xab, 0xe4, 0xfb, 0x3e, 0x7b, 0xce, 0xf9, 0xe6, 0x7c, 0xc7, 0xd0, 0xc4, 0xf8, 0x68, 0x66, 0x74,
   0xa2, 0x59, 0x93, 0x7e, 0xa6, 0xf1, 0xcd, 0x41, 0x47, 0x28, 0x2d, 0x51, 0x44, 0x4e, 0xe8, 0x7f,
   0xf6, 0xa0, 0x7e, 0x16, 0xab, 0x68, 0xa2, 0xd9, 0x36, 0x54, 0x54, 0xc0, 0xbd, 0x9e, 0x37, 0x68,
   0xf9, 0x15, 0x15, 0x30, 0x0e, 0x8d, 0x44, 0x8c, 0x43, 0x54, 0x01, 0xaf, 0x10, 0x99, 0x41, 0xd6,
   0x83, 0xf6, 0x44, 0x48, 0x3c, 0x47, 0x91, 0xcc, 0x0d, 0xf2, 0x2a, 0xa9, 0x45, 0x8a, 0xf5, 0x61,
   0x4b, 0xea, 0xe9, 0x4c, 0x18, 0xbc, 0x92, 0xda, 0x20, 0xaf, 0xf5, 0xbc, 0x41, 0xc5, 0x2f, 0x71,
   0x6c, 0x1f, 0xea, 0x18, 0xd9, 0x13, 0xf9, 0x66, 0xcf, 0x1b, 0x6c, 0xfa, 0x29, 0x62, 0xff, 0x42,
   0x47, 0x44, 0x22, 0x5c, 0x5c, 0xa1, 0xb9, 0x43, 0x33, 0x0a, 0x78, 0x9d, 0xce, 0x2f, 0x93, 0x6c,
   0x0f, 0x36, 0xa5, 0x30, 0x97, 0x9a, 0x37, 0x48, 0x75, 0xa0, 0xff, 0xdd, 0x83, 0xce, 0xcb, 0x79,
   0x98, 0xa8, 0x73, 0x14, 0xa7, 0x42, 0xde, 0x22, 0x1b, 0x40, 0x1d, 0xe3, 0x51, 0x34, 0xd1, 0xe4,
   0xac, 0x7d, 0xbc, 0x7b, 0x94, 0x5d, 0xc5, 0x91, 0xf3, 0xed, 0xa7, 0x3a, 0xd5, 0x4d, 0x12, 0x21,
   0x6f, 0x33, 0x5f, 0x95, 0xb4, 0x6e, 0x91, 0x64, 0x07, 0xd0, 0x94, 0x62, 0x8a, 0x46, 0x8c, 0x82,
   0xd4, 0xf8, 0x12, 0xb3, 0xff, 0x01, 0x42, 0x15, 0xbd, 0x39, 0x73, 0xf5, 0x6a, 0xbd, 0xea, 0xa0,
   0x7d, 0xbc, 0x97, 0xd7, 0xbb, 0x58, 0x6a, 0x7e, 0xe1, 0x39, 0xf6, 0x02, 0xb6, 0x13, 0x61, 0x6e,
   0x30, 0xb9, 0xd0, 0x52, 0x24, 0x4a, 0x47, 0x74, 0x1f, 0xed, 0x63, 0x9e, 0xbf, 0x79, 0x5d, 0xd2,
   0xfd, 0x95, 0xe7, 0xfb, 0x1f, 0x3c, 0x80, 0xfc, 0xf0, 0x52, 0x8b, 0xde, 0x4a, 0x8b, 0x1c, 0x1a,
   0x93, 0x92, 0xbd, 0x0c, 0xae, 0xdb, 0xaf, 0x3e, 0x65, 0x7f, 0xbd, 0xd9, 0xda, 0x1f, 0x36, 0xfb,
   0xad, 0x06, 0xcd, 0xe1, 0x78, 0x86, 0x26, 0xd6, 0xd1, 0x4f, 0x33, 0x37, 0x2a, 0x67, 0x6e, 0xf4,
   0x9b, 0x99, 0x73, 0xa7, 0xbe, 0x52, 0xf2, 0xb5, 0x09, 0xa9, 0xb1, 0x96, 0x5f, 0xe2, 0x58, 0x17,
   0xc0, 0xe1, 0x4b, 0x31, 0x75, 0xb9, 0x6b, 0xf9, 0x05, 0x86, 0xed, 0x42, 0x55, 0xdc, 0x60, 0x9a,
   0x38, 0xfb, 0xd7, 0x32, 0x31, 0xbe, 0x4b, 0x53, 0x66, 0xff, 0xda, 0xdc, 0xaa, 0xe0, 0x54, 0x98,
   0x80, 0x37, 0x89, 0x4c, 0x91, 0xed, 0x7d, 0xa6, 0xe4, 0x10, 0x63, 0xc9, 0x5b, 0xae, 0xf7, 0x14,
   0xda, 0x81, 0xcc, 0x6e, 0x75, 0x84, 0x97, 0xf3, 0x29, 0x07, 0x37, 0x90, 0x0c, 0xdb, 0x8e, 0xa4,
   0x41, 0x91, 0xe0, 0xb5, 0x9a, 0x22, 0x6f, 0xbb, 0x8e, 0x72, 0xc6, 0xea, 0xf3, 0x59, 0x90, 0xe9,
   0x5b, 0x4e, 0xcf, 0x19, 0x1a, 0x36, 0x3d, 0x7d, 0xb2, 0xe0, 0x9d, 0x74, 0xd8, 0x29, 0xb6, 0x9a,
   0x8a, 0x87, 0x18, 0x62, 0x82, 0x7c, 0x9b, 0x76, 0x6c, 0x89, 0xed, 0x6d, 0x4d, 0x75, 0xa4, 0x12,
   0x6d, 0x2e, 0xf0, 0x0e, 0x43, 0xbe, 0xe3, 0x6e, 0xab, 0xc8, 0x15, 0x36, 0x74, 0xb7, 0xb4, 0xa1,
   0x07, 0xd0, 0x34, 0x18, 0xdb, 0x4d, 0x0c, 0xf8, 0x5f, 0xae, 0x66, 0x86, 0xf3, 0xbd, 0x64, 0x85,
   0xbd, 0x24, 0x97, 0xc2, 0xb8, 0x21, 0xc4, 0xfc, 0xef, 0xd4, 0xe5, 0x92, 0xb1, 0x77, 0x27, 0x85,
   0xb9, 0x5e, 0xcc, 0x90, 0xef, 0x51, 0xa9, 0x0c, 0xba, 0x30, 0x9b, 0x13, 0x23, 0xa2, 0x80, 0xff,
   0xe3, 0x3c, 0x64, 0x38, 0xd5, 0x4e, 0x75, 0xa8, 0x0d, 0xdf, 0x5f, 0x6a, 0x84, 0xfb, 0x1f, 0xab,
   0xd0, 0x18, 0x8e, 0x29, 0x3d, 0x6b, 0x29, 0x3b, 0x84, 0x16, 0x09, 0x14, 0x02, 0x97, 0xb3, 0x9c,
   0x58, 0xaa, 0x34, 0xc9, 0x6a, 0x41, 0xa5, 0x59, 0x66, 0x2a, 0xf5, 0x5a, 0x2b, 0xa8, 0xd4, 0xed,
   0x3e, 0xd4, 0xc7, 0x6f, 0x49, 0x72, 0xd9, 0x4a, 0x91, 0x7d, 0x2b, 0x4e, 0x84, 0x49, 0x68, 0x88,
   0x2e, 0x5d, 0x39, 0x61, 0xdd, 0x63, 0x14, 0x90, 0xe6, 0x72, 0x96, 0xc1, 0x95, 0x74, 0x34, 0x7f,
   0x91, 0x8e, 0xd6, 0xb3, 0xe9, 0x80, 0x67, 0xd2, 0xd1, 0x5e, 0x49, 0xc7, 0x21, 0xb4, 0x54, 0x7c,
   0xae, 0x0d, 0xde, 0xa1, 0x49, 0x43, 0x97, 0x13, 0x85, 0x5c, 0x74, 0x4a, 0xb9, 0xb0, 0x9b, 0x11,
   0x5f, 0x2d, 0x22, 0x49, 0x69, 0xb3, 0x9b, 0x41, 0x68, 0xfd, 0x8b, 0xbe, 0xf3, 0xc4, 0x17, 0xfd,
   0x84, 0x7f, 0x7a, 0xe8, 0x7a, 0xf7, 0x0f, 0x5d, 0xef, 0xeb, 0x43, 0xd7, 0x7b, 0xff, 0xd8, 0xdd,
   0xb8, 0x7f, 0xec, 0x6e, 0x7c, 0x79, 0xec, 0x6e, 0x8c, 0xeb, 0xf4, 0x6d, 0xf9, 0xef, 0x47, 0x00,
   0x00, 0x00, 0xff, 0xff, 0x61, 0x99, 0xc4, 0x66, 0xd0, 0x06, 0x00, 0x00,
}
func (m *Esinfo) Marshal() (dAtA []byte, err error) {
@@ -572,10 +726,27 @@
      encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.CompareScore))))
      i += 4
   }
   if m.Enable != 0 {
      dAtA[i] = 0x28
      i++
      i = encodeVarintEs(dAtA, i, uint64(m.Enable))
   }
   if len(m.AnalyServerId) > 0 {
      dAtA[i] = 0x32
      i++
      i = encodeVarintEs(dAtA, i, uint64(len(m.AnalyServerId)))
      i += copy(dAtA[i:], m.AnalyServerId)
   }
   if len(m.CarNo) > 0 {
      dAtA[i] = 0x3a
      i++
      i = encodeVarintEs(dAtA, i, uint64(len(m.CarNo)))
      i += copy(dAtA[i:], m.CarNo)
   }
   return i, nil
}
func (m *DbPersonCompCache) Marshal() (dAtA []byte, err error) {
func (m *MultiFeaCache) Marshal() (dAtA []byte, err error) {
   size := m.Size()
   dAtA = make([]byte, size)
   n, err := m.MarshalTo(dAtA)
@@ -585,33 +756,100 @@
   return dAtA[:n], nil
}
func (m *DbPersonCompCache) MarshalTo(dAtA []byte) (int, error) {
func (m *MultiFeaCache) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.Id) > 0 {
   if m.EsInfo != nil {
      dAtA[i] = 0xa
      i++
      i = encodeVarintEs(dAtA, i, uint64(len(m.Id)))
      i += copy(dAtA[i:], m.Id)
      i = encodeVarintEs(dAtA, i, uint64(m.EsInfo.Size()))
      n1, err1 := m.EsInfo.MarshalTo(dAtA[i:])
      if err1 != nil {
         return 0, err1
      }
      i += n1
   }
   if len(m.TableId) > 0 {
   if len(m.AttachFeature) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintEs(dAtA, i, uint64(len(m.TableId)))
      i += copy(dAtA[i:], m.TableId)
      i = encodeVarintEs(dAtA, i, uint64(len(m.AttachFeature)))
      i += copy(dAtA[i:], m.AttachFeature)
   }
   if len(m.FaceFeature) > 0 {
   if len(m.CameraId) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintEs(dAtA, i, uint64(len(m.FaceFeature)))
      i += copy(dAtA[i:], m.FaceFeature)
      i = encodeVarintEs(dAtA, i, uint64(len(m.CameraId)))
      i += copy(dAtA[i:], m.CameraId)
   }
   if m.Enable != 0 {
      dAtA[i] = 0x20
   if len(m.LinkEsInfo) > 0 {
      for _, msg := range m.LinkEsInfo {
         dAtA[i] = 0x22
         i++
         i = encodeVarintEs(dAtA, i, uint64(msg.Size()))
         n, err := msg.MarshalTo(dAtA[i:])
         if err != nil {
            return 0, err
         }
         i += n
      }
   }
   if m.TargetLocation != nil {
      dAtA[i] = 0x2a
      i++
      i = encodeVarintEs(dAtA, i, uint64(m.Enable))
      i = encodeVarintEs(dAtA, i, uint64(m.TargetLocation.Size()))
      n2, err2 := m.TargetLocation.MarshalTo(dAtA[i:])
      if err2 != nil {
         return 0, err2
      }
      i += n2
   }
   return i, nil
}
func (m *LinkEsInfo) 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 *LinkEsInfo) MarshalTo(dAtA []byte) (int, error) {
   var i int
   _ = i
   var l int
   _ = l
   if len(m.CameraId) > 0 {
      dAtA[i] = 0xa
      i++
      i = encodeVarintEs(dAtA, i, uint64(len(m.CameraId)))
      i += copy(dAtA[i:], m.CameraId)
   }
   if len(m.Feature) > 0 {
      dAtA[i] = 0x12
      i++
      i = encodeVarintEs(dAtA, i, uint64(len(m.Feature)))
      i += copy(dAtA[i:], m.Feature)
   }
   if len(m.AttachFeature) > 0 {
      dAtA[i] = 0x1a
      i++
      i = encodeVarintEs(dAtA, i, uint64(len(m.AttachFeature)))
      i += copy(dAtA[i:], m.AttachFeature)
   }
   if m.TargetLocation != nil {
      dAtA[i] = 0x22
      i++
      i = encodeVarintEs(dAtA, i, uint64(m.TargetLocation.Size()))
      n3, err3 := m.TargetLocation.MarshalTo(dAtA[i:])
      if err3 != nil {
         return 0, err3
      }
      i += n3
   }
   return i, nil
}
@@ -734,6 +972,43 @@
      i++
      i = encodeVarintEs(dAtA, i, uint64(len(m.Reserved)))
      i += copy(dAtA[i:], m.Reserved)
   }
   if len(m.CarNo) > 0 {
      dAtA[i] = 0x92
      i++
      dAtA[i] = 0x1
      i++
      i = encodeVarintEs(dAtA, i, uint64(len(m.CarNo)))
      i += copy(dAtA[i:], m.CarNo)
   }
   if len(m.CarPicUrls) > 0 {
      dAtA[i] = 0x9a
      i++
      dAtA[i] = 0x1
      i++
      i = encodeVarintEs(dAtA, i, uint64(len(m.CarPicUrls)))
      i += copy(dAtA[i:], m.CarPicUrls)
   }
   if m.CarType != 0 {
      dAtA[i] = 0xa0
      i++
      dAtA[i] = 0x1
      i++
      i = encodeVarintEs(dAtA, i, uint64(m.CarType))
   }
   if m.CarBrand != 0 {
      dAtA[i] = 0xa8
      i++
      dAtA[i] = 0x1
      i++
      i = encodeVarintEs(dAtA, i, uint64(m.CarBrand))
   }
   if m.CarColor != 0 {
      dAtA[i] = 0xb0
      i++
      dAtA[i] = 0x1
      i++
      i = encodeVarintEs(dAtA, i, uint64(m.CarColor))
   }
   return i, nil
}
@@ -874,29 +1149,72 @@
   if m.CompareScore != 0 {
      n += 5
   }
   if m.Enable != 0 {
      n += 1 + sovEs(uint64(m.Enable))
   }
   l = len(m.AnalyServerId)
   if l > 0 {
      n += 1 + l + sovEs(uint64(l))
   }
   l = len(m.CarNo)
   if l > 0 {
      n += 1 + l + sovEs(uint64(l))
   }
   return n
}
func (m *DbPersonCompCache) Size() (n int) {
func (m *MultiFeaCache) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.Id)
   if m.EsInfo != nil {
      l = m.EsInfo.Size()
      n += 1 + l + sovEs(uint64(l))
   }
   l = len(m.AttachFeature)
   if l > 0 {
      n += 1 + l + sovEs(uint64(l))
   }
   l = len(m.TableId)
   l = len(m.CameraId)
   if l > 0 {
      n += 1 + l + sovEs(uint64(l))
   }
   l = len(m.FaceFeature)
   if len(m.LinkEsInfo) > 0 {
      for _, e := range m.LinkEsInfo {
         l = e.Size()
         n += 1 + l + sovEs(uint64(l))
      }
   }
   if m.TargetLocation != nil {
      l = m.TargetLocation.Size()
      n += 1 + l + sovEs(uint64(l))
   }
   return n
}
func (m *LinkEsInfo) Size() (n int) {
   if m == nil {
      return 0
   }
   var l int
   _ = l
   l = len(m.CameraId)
   if l > 0 {
      n += 1 + l + sovEs(uint64(l))
   }
   if m.Enable != 0 {
      n += 1 + sovEs(uint64(m.Enable))
   l = len(m.Feature)
   if l > 0 {
      n += 1 + l + sovEs(uint64(l))
   }
   l = len(m.AttachFeature)
   if l > 0 {
      n += 1 + l + sovEs(uint64(l))
   }
   if m.TargetLocation != nil {
      l = m.TargetLocation.Size()
      n += 1 + l + sovEs(uint64(l))
   }
   return n
}
@@ -972,6 +1290,23 @@
   l = len(m.Reserved)
   if l > 0 {
      n += 2 + l + sovEs(uint64(l))
   }
   l = len(m.CarNo)
   if l > 0 {
      n += 2 + l + sovEs(uint64(l))
   }
   l = len(m.CarPicUrls)
   if l > 0 {
      n += 2 + l + sovEs(uint64(l))
   }
   if m.CarType != 0 {
      n += 2 + sovEs(uint64(m.CarType))
   }
   if m.CarBrand != 0 {
      n += 2 + sovEs(uint64(m.CarBrand))
   }
   if m.CarColor != 0 {
      n += 2 + sovEs(uint64(m.CarColor))
   }
   return n
}
@@ -1185,6 +1520,89 @@
         v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
         iNdEx += 4
         m.CompareScore = float32(math.Float32frombits(v))
      case 5:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Enable", wireType)
         }
         m.Enable = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Enable |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 6:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field AnalyServerId", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthEs
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthEs
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.AnalyServerId = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 7:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field CarNo", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthEs
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthEs
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.CarNo = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipEs(dAtA[iNdEx:])
@@ -1209,7 +1627,7 @@
   }
   return nil
}
func (m *DbPersonCompCache) Unmarshal(dAtA []byte) error {
func (m *MultiFeaCache) Unmarshal(dAtA []byte) error {
   l := len(dAtA)
   iNdEx := 0
   for iNdEx < l {
@@ -1232,17 +1650,17 @@
      fieldNum := int32(wire >> 3)
      wireType := int(wire & 0x7)
      if wireType == 4 {
         return fmt.Errorf("proto: DbPersonCompCache: wiretype end group for non-group")
         return fmt.Errorf("proto: MultiFeaCache: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: DbPersonCompCache: illegal tag %d (wire type %d)", fieldNum, wire)
         return fmt.Errorf("proto: MultiFeaCache: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
            return fmt.Errorf("proto: wrong wireType = %d for field EsInfo", wireType)
         }
         var stringLen uint64
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
@@ -1252,27 +1670,31 @@
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
         if msglen < 0 {
            return ErrInvalidLengthEs
         }
         postIndex := iNdEx + intStringLen
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthEs
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Id = string(dAtA[iNdEx:postIndex])
         if m.EsInfo == nil {
            m.EsInfo = &Esinfo{}
         }
         if err := m.EsInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field TableId", wireType)
            return fmt.Errorf("proto: wrong wireType = %d for field AttachFeature", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
@@ -1300,11 +1722,11 @@
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.TableId = string(dAtA[iNdEx:postIndex])
         m.AttachFeature = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field FaceFeature", wireType)
            return fmt.Errorf("proto: wrong wireType = %d for field CameraId", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
@@ -1332,13 +1754,13 @@
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.FaceFeature = string(dAtA[iNdEx:postIndex])
         m.CameraId = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 4:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field Enable", wireType)
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field LinkEsInfo", wireType)
         }
         m.Enable = 0
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
@@ -1348,11 +1770,247 @@
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.Enable |= int32(b&0x7F) << shift
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthEs
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthEs
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.LinkEsInfo = append(m.LinkEsInfo, &LinkEsInfo{})
         if err := m.LinkEsInfo[len(m.LinkEsInfo)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      case 5:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field TargetLocation", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthEs
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthEs
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.TargetLocation == nil {
            m.TargetLocation = &TargetLocation{}
         }
         if err := m.TargetLocation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipEs(dAtA[iNdEx:])
         if err != nil {
            return err
         }
         if skippy < 0 {
            return ErrInvalidLengthEs
         }
         if (iNdEx + skippy) < 0 {
            return ErrInvalidLengthEs
         }
         if (iNdEx + skippy) > l {
            return io.ErrUnexpectedEOF
         }
         iNdEx += skippy
      }
   }
   if iNdEx > l {
      return io.ErrUnexpectedEOF
   }
   return nil
}
func (m *LinkEsInfo) 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 ErrIntOverflowEs
         }
         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: LinkEsInfo: wiretype end group for non-group")
      }
      if fieldNum <= 0 {
         return fmt.Errorf("proto: LinkEsInfo: illegal tag %d (wire type %d)", fieldNum, wire)
      }
      switch fieldNum {
      case 1:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field CameraId", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthEs
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthEs
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.CameraId = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 2:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field Feature", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthEs
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthEs
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.Feature = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 3:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field AttachFeature", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthEs
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthEs
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.AttachFeature = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 4:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field TargetLocation", wireType)
         }
         var msglen int
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            msglen |= int(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         if msglen < 0 {
            return ErrInvalidLengthEs
         }
         postIndex := iNdEx + msglen
         if postIndex < 0 {
            return ErrInvalidLengthEs
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         if m.TargetLocation == nil {
            m.TargetLocation = &TargetLocation{}
         }
         if err := m.TargetLocation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
            return err
         }
         iNdEx = postIndex
      default:
         iNdEx = preIndex
         skippy, err := skipEs(dAtA[iNdEx:])
@@ -1924,6 +2582,127 @@
         }
         m.Reserved = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 18:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field CarNo", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthEs
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthEs
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.CarNo = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 19:
         if wireType != 2 {
            return fmt.Errorf("proto: wrong wireType = %d for field CarPicUrls", wireType)
         }
         var stringLen uint64
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            stringLen |= uint64(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
         intStringLen := int(stringLen)
         if intStringLen < 0 {
            return ErrInvalidLengthEs
         }
         postIndex := iNdEx + intStringLen
         if postIndex < 0 {
            return ErrInvalidLengthEs
         }
         if postIndex > l {
            return io.ErrUnexpectedEOF
         }
         m.CarPicUrls = string(dAtA[iNdEx:postIndex])
         iNdEx = postIndex
      case 20:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field CarType", wireType)
         }
         m.CarType = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.CarType |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 21:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field CarBrand", wireType)
         }
         m.CarBrand = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.CarBrand |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      case 22:
         if wireType != 0 {
            return fmt.Errorf("proto: wrong wireType = %d for field CarColor", wireType)
         }
         m.CarColor = 0
         for shift := uint(0); ; shift += 7 {
            if shift >= 64 {
               return ErrIntOverflowEs
            }
            if iNdEx >= l {
               return io.ErrUnexpectedEOF
            }
            b := dAtA[iNdEx]
            iNdEx++
            m.CarColor |= int32(b&0x7F) << shift
            if b < 0x80 {
               break
            }
         }
      default:
         iNdEx = preIndex
         skippy, err := skipEs(dAtA[iNdEx:])