// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0-devel // protoc v4.22.3 // source: user.proto package user import ( chat "git.ikuban.com/server/pw-protobuf/api/chat" common "git.ikuban.com/server/pw-protobuf/api/common" statistics "git.ikuban.com/server/pw-protobuf/api/statistics" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" emptypb "google.golang.org/protobuf/types/known/emptypb" structpb "google.golang.org/protobuf/types/known/structpb" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type GetCreditConfigReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UnlockMessageCredit int64 `protobuf:"varint,1,opt,name=unlockMessageCredit,proto3" json:"unlockMessageCredit"` // 解锁信息需要的积分 SendMessageCredit int64 `protobuf:"varint,2,opt,name=sendMessageCredit,proto3" json:"sendMessageCredit"` // 发送信息需要的积分 LookBackScripCredit int64 `protobuf:"varint,3,opt,name=lookBackScripCredit,proto3" json:"lookBackScripCredit"` // 回看需要的积分 CreateScripNum int64 `protobuf:"varint,4,opt,name=createScripNum,proto3" json:"createScripNum"` // 每日免费创建纸条数 CreateScripCredit int64 `protobuf:"varint,5,opt,name=createScripCredit,proto3" json:"createScripCredit"` // 创建纸条需要的积分 ReplyScripCredit int64 `protobuf:"varint,6,opt,name=replyScripCredit,proto3" json:"replyScripCredit"` // 回复纸条需要的积分 ReplyScripNum int64 `protobuf:"varint,7,opt,name=replyScripNum,proto3" json:"replyScripNum"` // 每日免费回复数 MatchingNum int64 `protobuf:"varint,8,opt,name=matchingNum,proto3" json:"matchingNum"` // 每日免费匹配数 MatchingCredit int64 `protobuf:"varint,9,opt,name=matchingCredit,proto3" json:"matchingCredit"` // 匹配需要的积分 UnlockVoiceCredit int64 `protobuf:"varint,10,opt,name=unlockVoiceCredit,proto3" json:"unlockVoiceCredit"` // 解锁语音需要的积分 UnlockPictureCredit int64 `protobuf:"varint,11,opt,name=unlockPictureCredit,proto3" json:"unlockPictureCredit"` // 解锁图片需要的积分 FinishInformationAward int64 `protobuf:"varint,12,opt,name=finishInformationAward,proto3" json:"finishInformationAward"` // 完善资料奖励 GetAIRobotCredit int64 `protobuf:"varint,13,opt,name=getAIRobotCredit,proto3" json:"getAIRobotCredit"` // 创建ai会话 AiMessageSendCredit int64 `protobuf:"varint,14,opt,name=aiMessageSendCredit,proto3" json:"aiMessageSendCredit"` // ai发送消息 } func (x *GetCreditConfigReply) Reset() { *x = GetCreditConfigReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCreditConfigReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCreditConfigReply) ProtoMessage() {} func (x *GetCreditConfigReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetCreditConfigReply.ProtoReflect.Descriptor instead. func (*GetCreditConfigReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{0} } func (x *GetCreditConfigReply) GetUnlockMessageCredit() int64 { if x != nil { return x.UnlockMessageCredit } return 0 } func (x *GetCreditConfigReply) GetSendMessageCredit() int64 { if x != nil { return x.SendMessageCredit } return 0 } func (x *GetCreditConfigReply) GetLookBackScripCredit() int64 { if x != nil { return x.LookBackScripCredit } return 0 } func (x *GetCreditConfigReply) GetCreateScripNum() int64 { if x != nil { return x.CreateScripNum } return 0 } func (x *GetCreditConfigReply) GetCreateScripCredit() int64 { if x != nil { return x.CreateScripCredit } return 0 } func (x *GetCreditConfigReply) GetReplyScripCredit() int64 { if x != nil { return x.ReplyScripCredit } return 0 } func (x *GetCreditConfigReply) GetReplyScripNum() int64 { if x != nil { return x.ReplyScripNum } return 0 } func (x *GetCreditConfigReply) GetMatchingNum() int64 { if x != nil { return x.MatchingNum } return 0 } func (x *GetCreditConfigReply) GetMatchingCredit() int64 { if x != nil { return x.MatchingCredit } return 0 } func (x *GetCreditConfigReply) GetUnlockVoiceCredit() int64 { if x != nil { return x.UnlockVoiceCredit } return 0 } func (x *GetCreditConfigReply) GetUnlockPictureCredit() int64 { if x != nil { return x.UnlockPictureCredit } return 0 } func (x *GetCreditConfigReply) GetFinishInformationAward() int64 { if x != nil { return x.FinishInformationAward } return 0 } func (x *GetCreditConfigReply) GetGetAIRobotCredit() int64 { if x != nil { return x.GetAIRobotCredit } return 0 } func (x *GetCreditConfigReply) GetAiMessageSendCredit() int64 { if x != nil { return x.AiMessageSendCredit } return 0 } type PersonLookScripReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsNextLock bool `protobuf:"varint,1,opt,name=isNextLock,proto3" json:"isNextLock"` // 下一个小纸条是否需要解锁 } func (x *PersonLookScripReply) Reset() { *x = PersonLookScripReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PersonLookScripReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*PersonLookScripReply) ProtoMessage() {} func (x *PersonLookScripReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PersonLookScripReply.ProtoReflect.Descriptor instead. func (*PersonLookScripReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{1} } func (x *PersonLookScripReply) GetIsNextLock() bool { if x != nil { return x.IsNextLock } return false } type UpdateTodayRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId"` TodaySendUnreadReminderNum int64 `protobuf:"varint,2,opt,name=todaySendUnreadReminderNum,proto3" json:"todaySendUnreadReminderNum"` TodaySendVisitorReminderNum int64 `protobuf:"varint,3,opt,name=todaySendVisitorReminderNum,proto3" json:"todaySendVisitorReminderNum"` } func (x *UpdateTodayRequest) Reset() { *x = UpdateTodayRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateTodayRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateTodayRequest) ProtoMessage() {} func (x *UpdateTodayRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateTodayRequest.ProtoReflect.Descriptor instead. func (*UpdateTodayRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{2} } func (x *UpdateTodayRequest) GetUserId() string { if x != nil { return x.UserId } return "" } func (x *UpdateTodayRequest) GetTodaySendUnreadReminderNum() int64 { if x != nil { return x.TodaySendUnreadReminderNum } return 0 } func (x *UpdateTodayRequest) GetTodaySendVisitorReminderNum() int64 { if x != nil { return x.TodaySendVisitorReminderNum } return 0 } type UpdateLastSendTemplateTimeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId"` LastSendTemplateTime int64 `protobuf:"varint,2,opt,name=lastSendTemplateTime,proto3" json:"lastSendTemplateTime"` } func (x *UpdateLastSendTemplateTimeRequest) Reset() { *x = UpdateLastSendTemplateTimeRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateLastSendTemplateTimeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateLastSendTemplateTimeRequest) ProtoMessage() {} func (x *UpdateLastSendTemplateTimeRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateLastSendTemplateTimeRequest.ProtoReflect.Descriptor instead. func (*UpdateLastSendTemplateTimeRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{3} } func (x *UpdateLastSendTemplateTimeRequest) GetUserId() string { if x != nil { return x.UserId } return "" } func (x *UpdateLastSendTemplateTimeRequest) GetLastSendTemplateTime() int64 { if x != nil { return x.LastSendTemplateTime } return 0 } type UserPrivacyStatusInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsCloseGreet bool `protobuf:"varint,1,opt,name=isCloseGreet,proto3" json:"isCloseGreet"` // 是否关闭打招呼 IsCloseMatching bool `protobuf:"varint,2,opt,name=isCloseMatching,proto3" json:"isCloseMatching"` // 是否关闭匹配到我 } func (x *UserPrivacyStatusInfo) Reset() { *x = UserPrivacyStatusInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserPrivacyStatusInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserPrivacyStatusInfo) ProtoMessage() {} func (x *UserPrivacyStatusInfo) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserPrivacyStatusInfo.ProtoReflect.Descriptor instead. func (*UserPrivacyStatusInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{4} } func (x *UserPrivacyStatusInfo) GetIsCloseGreet() bool { if x != nil { return x.IsCloseGreet } return false } func (x *UserPrivacyStatusInfo) GetIsCloseMatching() bool { if x != nil { return x.IsCloseMatching } return false } type IsCanGetReturnRewordReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsCanGetReword bool `protobuf:"varint,1,opt,name=isCanGetReword,proto3" json:"isCanGetReword"` } func (x *IsCanGetReturnRewordReply) Reset() { *x = IsCanGetReturnRewordReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IsCanGetReturnRewordReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*IsCanGetReturnRewordReply) ProtoMessage() {} func (x *IsCanGetReturnRewordReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use IsCanGetReturnRewordReply.ProtoReflect.Descriptor instead. func (*IsCanGetReturnRewordReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{5} } func (x *IsCanGetReturnRewordReply) GetIsCanGetReword() bool { if x != nil { return x.IsCanGetReword } return false } type GetRandomMatchingRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sex int64 `protobuf:"varint,4,opt,name=sex,proto3" json:"sex"` // 性别 Province string `protobuf:"bytes,7,opt,name=province,proto3" json:"province"` // 省 City string `protobuf:"bytes,8,opt,name=city,proto3" json:"city"` // 市 MaxAge int64 `protobuf:"varint,9,opt,name=maxAge,proto3" json:"maxAge"` // 最大年龄 MinAge int64 `protobuf:"varint,10,opt,name=minAge,proto3" json:"minAge"` // 最小年龄 } func (x *GetRandomMatchingRequest) Reset() { *x = GetRandomMatchingRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetRandomMatchingRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetRandomMatchingRequest) ProtoMessage() {} func (x *GetRandomMatchingRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetRandomMatchingRequest.ProtoReflect.Descriptor instead. func (*GetRandomMatchingRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{6} } func (x *GetRandomMatchingRequest) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *GetRandomMatchingRequest) GetProvince() string { if x != nil { return x.Province } return "" } func (x *GetRandomMatchingRequest) GetCity() string { if x != nil { return x.City } return "" } func (x *GetRandomMatchingRequest) GetMaxAge() int64 { if x != nil { return x.MaxAge } return 0 } func (x *GetRandomMatchingRequest) GetMinAge() int64 { if x != nil { return x.MinAge } return 0 } type MatchUserDBWithoutMapRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsMatchingMap map[string]bool `protobuf:"bytes,1,rep,name=isMatchingMap,proto3" json:"isMatchingMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 已经匹配过的map Province string `protobuf:"bytes,2,opt,name=province,proto3" json:"province"` // 省 City string `protobuf:"bytes,3,opt,name=city,proto3" json:"city"` // 市 MaxAge int64 `protobuf:"varint,4,opt,name=maxAge,proto3" json:"maxAge"` // 最大年龄 MinAge int64 `protobuf:"varint,5,opt,name=minAge,proto3" json:"minAge"` // 最小年龄 Sex int64 `protobuf:"varint,6,opt,name=sex,proto3" json:"sex"` // 性别 } func (x *MatchUserDBWithoutMapRequest) Reset() { *x = MatchUserDBWithoutMapRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MatchUserDBWithoutMapRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*MatchUserDBWithoutMapRequest) ProtoMessage() {} func (x *MatchUserDBWithoutMapRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MatchUserDBWithoutMapRequest.ProtoReflect.Descriptor instead. func (*MatchUserDBWithoutMapRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{7} } func (x *MatchUserDBWithoutMapRequest) GetIsMatchingMap() map[string]bool { if x != nil { return x.IsMatchingMap } return make(map[string]bool, 0) } func (x *MatchUserDBWithoutMapRequest) GetProvince() string { if x != nil { return x.Province } return "" } func (x *MatchUserDBWithoutMapRequest) GetCity() string { if x != nil { return x.City } return "" } func (x *MatchUserDBWithoutMapRequest) GetMaxAge() int64 { if x != nil { return x.MaxAge } return 0 } func (x *MatchUserDBWithoutMapRequest) GetMinAge() int64 { if x != nil { return x.MinAge } return 0 } func (x *MatchUserDBWithoutMapRequest) GetSex() int64 { if x != nil { return x.Sex } return 0 } type GetUserLookHandPickNumReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Num int64 `protobuf:"varint,1,opt,name=num,proto3" json:"num"` UserIdList []string `protobuf:"bytes,2,rep,name=userIdList,proto3" json:"userIdList"` } func (x *GetUserLookHandPickNumReply) Reset() { *x = GetUserLookHandPickNumReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetUserLookHandPickNumReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetUserLookHandPickNumReply) ProtoMessage() {} func (x *GetUserLookHandPickNumReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetUserLookHandPickNumReply.ProtoReflect.Descriptor instead. func (*GetUserLookHandPickNumReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{8} } func (x *GetUserLookHandPickNumReply) GetNum() int64 { if x != nil { return x.Num } return 0 } func (x *GetUserLookHandPickNumReply) GetUserIdList() []string { if x != nil { return x.UserIdList } return make([]string, 0) } type FindUserVipListDBReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields VipMap map[string]*VipInfo `protobuf:"bytes,1,rep,name=vipMap,proto3" json:"vipMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *FindUserVipListDBReply) Reset() { *x = FindUserVipListDBReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindUserVipListDBReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindUserVipListDBReply) ProtoMessage() {} func (x *FindUserVipListDBReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindUserVipListDBReply.ProtoReflect.Descriptor instead. func (*FindUserVipListDBReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{9} } func (x *FindUserVipListDBReply) GetVipMap() map[string]*VipInfo { if x != nil { return x.VipMap } return make(map[string]*VipInfo, 0) } type FindUserCertificationDBReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CertificationMap map[string]bool `protobuf:"bytes,1,rep,name=certificationMap,proto3" json:"certificationMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *FindUserCertificationDBReply) Reset() { *x = FindUserCertificationDBReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindUserCertificationDBReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindUserCertificationDBReply) ProtoMessage() {} func (x *FindUserCertificationDBReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindUserCertificationDBReply.ProtoReflect.Descriptor instead. func (*FindUserCertificationDBReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{10} } func (x *FindUserCertificationDBReply) GetCertificationMap() map[string]bool { if x != nil { return x.CertificationMap } return make(map[string]bool, 0) } type VipInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsVip bool `protobuf:"varint,1,opt,name=isVip,proto3" json:"isVip"` // 是否是vip VipLevel int64 `protobuf:"varint,2,opt,name=vipLevel,proto3" json:"vipLevel"` // vip 等级˚ GrowthValue int64 `protobuf:"varint,3,opt,name=growthValue,proto3" json:"growthValue"` // vip成长值 RenewalTime int64 `protobuf:"varint,4,opt,name=renewalTime,proto3" json:"renewalTime"` // 会员的续费时间 ExpirationTime int64 `protobuf:"varint,5,opt,name=expirationTime,proto3" json:"expirationTime"` // 会员的到期时间˚˚ CreateTime int64 `protobuf:"varint,6,opt,name=createTime,proto3" json:"createTime"` // 会员的开始时间 IsYearVip bool `protobuf:"varint,7,opt,name=isYearVip,proto3" json:"isYearVip"` // 是否是年费vip VipFunctions []string `protobuf:"bytes,8,rep,name=vipFunctions,proto3" json:"vipFunctions"` // vip功能 UserId string `protobuf:"bytes,9,opt,name=userId,proto3" json:"userId"` // id } func (x *VipInfo) Reset() { *x = VipInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VipInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*VipInfo) ProtoMessage() {} func (x *VipInfo) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use VipInfo.ProtoReflect.Descriptor instead. func (*VipInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{11} } func (x *VipInfo) GetIsVip() bool { if x != nil { return x.IsVip } return false } func (x *VipInfo) GetVipLevel() int64 { if x != nil { return x.VipLevel } return 0 } func (x *VipInfo) GetGrowthValue() int64 { if x != nil { return x.GrowthValue } return 0 } func (x *VipInfo) GetRenewalTime() int64 { if x != nil { return x.RenewalTime } return 0 } func (x *VipInfo) GetExpirationTime() int64 { if x != nil { return x.ExpirationTime } return 0 } func (x *VipInfo) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *VipInfo) GetIsYearVip() bool { if x != nil { return x.IsYearVip } return false } func (x *VipInfo) GetVipFunctions() []string { if x != nil { return x.VipFunctions } return make([]string, 0) } func (x *VipInfo) GetUserId() string { if x != nil { return x.UserId } return "" } type SendMsgReduceCreditRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PersonID string `protobuf:"bytes,1,opt,name=personID,proto3" json:"personID"` // 查询目标的ID IsFree bool `protobuf:"varint,2,opt,name=isFree,proto3" json:"isFree"` // 是否免费 Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type"` // 消息类型 } func (x *SendMsgReduceCreditRequest) Reset() { *x = SendMsgReduceCreditRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendMsgReduceCreditRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendMsgReduceCreditRequest) ProtoMessage() {} func (x *SendMsgReduceCreditRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendMsgReduceCreditRequest.ProtoReflect.Descriptor instead. func (*SendMsgReduceCreditRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{12} } func (x *SendMsgReduceCreditRequest) GetPersonID() string { if x != nil { return x.PersonID } return "" } func (x *SendMsgReduceCreditRequest) GetIsFree() bool { if x != nil { return x.IsFree } return false } func (x *SendMsgReduceCreditRequest) GetType() string { if x != nil { return x.Type } return "" } type UserGetInformationAwardByActivityRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId"` Credit int64 `protobuf:"varint,2,opt,name=credit,proto3" json:"credit"` Desc string `protobuf:"bytes,3,opt,name=desc,proto3" json:"desc"` } func (x *UserGetInformationAwardByActivityRequest) Reset() { *x = UserGetInformationAwardByActivityRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserGetInformationAwardByActivityRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserGetInformationAwardByActivityRequest) ProtoMessage() {} func (x *UserGetInformationAwardByActivityRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserGetInformationAwardByActivityRequest.ProtoReflect.Descriptor instead. func (*UserGetInformationAwardByActivityRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{13} } func (x *UserGetInformationAwardByActivityRequest) GetUserId() string { if x != nil { return x.UserId } return "" } func (x *UserGetInformationAwardByActivityRequest) GetCredit() int64 { if x != nil { return x.Credit } return 0 } func (x *UserGetInformationAwardByActivityRequest) GetDesc() string { if x != nil { return x.Desc } return "" } type UserGetInformationAwardByActivityReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsError bool `protobuf:"varint,1,opt,name=isError,proto3" json:"isError"` } func (x *UserGetInformationAwardByActivityReply) Reset() { *x = UserGetInformationAwardByActivityReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserGetInformationAwardByActivityReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserGetInformationAwardByActivityReply) ProtoMessage() {} func (x *UserGetInformationAwardByActivityReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserGetInformationAwardByActivityReply.ProtoReflect.Descriptor instead. func (*UserGetInformationAwardByActivityReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{14} } func (x *UserGetInformationAwardByActivityReply) GetIsError() bool { if x != nil { return x.IsError } return false } type AddUserCreditRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` // id Credit int64 `protobuf:"varint,2,opt,name=credit,proto3" json:"credit"` // 积分 Detail string `protobuf:"bytes,3,opt,name=detail,proto3" json:"detail"` } func (x *AddUserCreditRequest) Reset() { *x = AddUserCreditRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddUserCreditRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddUserCreditRequest) ProtoMessage() {} func (x *AddUserCreditRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AddUserCreditRequest.ProtoReflect.Descriptor instead. func (*AddUserCreditRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{15} } func (x *AddUserCreditRequest) GetId() string { if x != nil { return x.Id } return "" } func (x *AddUserCreditRequest) GetCredit() int64 { if x != nil { return x.Credit } return 0 } func (x *AddUserCreditRequest) GetDetail() string { if x != nil { return x.Detail } return "" } type ReportUserBlackRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PersonId string `protobuf:"bytes,1,opt,name=personId,proto3" json:"personId"` Result string `protobuf:"bytes,2,opt,name=result,proto3" json:"result"` } func (x *ReportUserBlackRequest) Reset() { *x = ReportUserBlackRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReportUserBlackRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReportUserBlackRequest) ProtoMessage() {} func (x *ReportUserBlackRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReportUserBlackRequest.ProtoReflect.Descriptor instead. func (*ReportUserBlackRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{16} } func (x *ReportUserBlackRequest) GetPersonId() string { if x != nil { return x.PersonId } return "" } func (x *ReportUserBlackRequest) GetResult() string { if x != nil { return x.Result } return "" } type SendMessageRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int64 `protobuf:"varint,1,opt,name=roomId,proto3" json:"roomId"` // 房间ID Message *common.Message `protobuf:"bytes,2,opt,name=message,proto3" json:"message"` // 消息 MsgType string `protobuf:"bytes,3,opt,name=msgType,proto3" json:"msgType"` // 消息类型 WebsocketTag string `protobuf:"bytes,4,opt,name=websocketTag,proto3" json:"websocketTag"` } func (x *SendMessageRequest) Reset() { *x = SendMessageRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendMessageRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendMessageRequest) ProtoMessage() {} func (x *SendMessageRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendMessageRequest.ProtoReflect.Descriptor instead. func (*SendMessageRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{17} } func (x *SendMessageRequest) GetRoomId() int64 { if x != nil { return x.RoomId } return 0 } func (x *SendMessageRequest) GetMessage() *common.Message { if x != nil && x.Message != nil { return x.Message } return &common.Message{} } func (x *SendMessageRequest) GetMsgType() string { if x != nil { return x.MsgType } return "" } func (x *SendMessageRequest) GetWebsocketTag() string { if x != nil { return x.WebsocketTag } return "" } type GetRecommendUserDBRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sex int64 `protobuf:"varint,2,opt,name=sex,proto3" json:"sex"` PersonIds []string `protobuf:"bytes,3,rep,name=personIds,proto3" json:"personIds"` // 匹配过的用户 } func (x *GetRecommendUserDBRequest) Reset() { *x = GetRecommendUserDBRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetRecommendUserDBRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetRecommendUserDBRequest) ProtoMessage() {} func (x *GetRecommendUserDBRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetRecommendUserDBRequest.ProtoReflect.Descriptor instead. func (*GetRecommendUserDBRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{18} } func (x *GetRecommendUserDBRequest) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *GetRecommendUserDBRequest) GetPersonIds() []string { if x != nil { return x.PersonIds } return make([]string, 0) } type FindRecommendHighQualityUserRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Num int64 `protobuf:"varint,1,opt,name=num,proto3" json:"num"` // 数量 Sex int64 `protobuf:"varint,3,opt,name=sex,proto3" json:"sex"` PersonId string `protobuf:"bytes,4,opt,name=personId,proto3" json:"personId"` // ID } func (x *FindRecommendHighQualityUserRequest) Reset() { *x = FindRecommendHighQualityUserRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindRecommendHighQualityUserRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindRecommendHighQualityUserRequest) ProtoMessage() {} func (x *FindRecommendHighQualityUserRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindRecommendHighQualityUserRequest.ProtoReflect.Descriptor instead. func (*FindRecommendHighQualityUserRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{19} } func (x *FindRecommendHighQualityUserRequest) GetNum() int64 { if x != nil { return x.Num } return 0 } func (x *FindRecommendHighQualityUserRequest) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *FindRecommendHighQualityUserRequest) GetPersonId() string { if x != nil { return x.PersonId } return "" } type FindRecommendHighQualityUserReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PersonIdList []string `protobuf:"bytes,1,rep,name=personIdList,proto3" json:"personIdList"` } func (x *FindRecommendHighQualityUserReply) Reset() { *x = FindRecommendHighQualityUserReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindRecommendHighQualityUserReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindRecommendHighQualityUserReply) ProtoMessage() {} func (x *FindRecommendHighQualityUserReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindRecommendHighQualityUserReply.ProtoReflect.Descriptor instead. func (*FindRecommendHighQualityUserReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{20} } func (x *FindRecommendHighQualityUserReply) GetPersonIdList() []string { if x != nil { return x.PersonIdList } return make([]string, 0) } type UpdateUserMatchedNumAndReturnUserMsgReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TodayMatchedNum int64 `protobuf:"varint,1,opt,name=todayMatchedNum,proto3" json:"todayMatchedNum"` // 今日被匹配数 Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname"` // 昵称 AvatarUrl string `protobuf:"bytes,3,opt,name=avatarUrl,proto3" json:"avatarUrl"` // 头像链接 Sex int64 `protobuf:"varint,4,opt,name=sex,proto3" json:"sex"` // 性别 Age int64 `protobuf:"varint,5,opt,name=age,proto3" json:"age"` // 年龄 City string `protobuf:"bytes,6,opt,name=city,proto3" json:"city"` //城市 } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) Reset() { *x = UpdateUserMatchedNumAndReturnUserMsgReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateUserMatchedNumAndReturnUserMsgReply) ProtoMessage() {} func (x *UpdateUserMatchedNumAndReturnUserMsgReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateUserMatchedNumAndReturnUserMsgReply.ProtoReflect.Descriptor instead. func (*UpdateUserMatchedNumAndReturnUserMsgReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{21} } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) GetTodayMatchedNum() int64 { if x != nil { return x.TodayMatchedNum } return 0 } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) GetAvatarUrl() string { if x != nil { return x.AvatarUrl } return "" } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) GetAge() int64 { if x != nil { return x.Age } return 0 } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) GetCity() string { if x != nil { return x.City } return "" } type GetUserDBMsgFromWebsocketReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` // id Sex int64 `protobuf:"varint,2,opt,name=sex,proto3" json:"sex"` // 性别 Weight int64 `protobuf:"varint,3,opt,name=weight,proto3" json:"weight"` // 权重 WorkingStatus string `protobuf:"bytes,4,opt,name=workingStatus,proto3" json:"workingStatus"` // 工作状态 TodayMatchedNum int64 `protobuf:"varint,5,opt,name=todayMatchedNum,proto3" json:"todayMatchedNum"` // 今日被匹配数 Age int64 `protobuf:"varint,6,opt,name=age,proto3" json:"age"` // 年龄 Province string `protobuf:"bytes,7,opt,name=province,proto3" json:"province"` // 省 City string `protobuf:"bytes,8,opt,name=city,proto3" json:"city"` // 市 } func (x *GetUserDBMsgFromWebsocketReply) Reset() { *x = GetUserDBMsgFromWebsocketReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetUserDBMsgFromWebsocketReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetUserDBMsgFromWebsocketReply) ProtoMessage() {} func (x *GetUserDBMsgFromWebsocketReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetUserDBMsgFromWebsocketReply.ProtoReflect.Descriptor instead. func (*GetUserDBMsgFromWebsocketReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{22} } func (x *GetUserDBMsgFromWebsocketReply) GetId() string { if x != nil { return x.Id } return "" } func (x *GetUserDBMsgFromWebsocketReply) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *GetUserDBMsgFromWebsocketReply) GetWeight() int64 { if x != nil { return x.Weight } return 0 } func (x *GetUserDBMsgFromWebsocketReply) GetWorkingStatus() string { if x != nil { return x.WorkingStatus } return "" } func (x *GetUserDBMsgFromWebsocketReply) GetTodayMatchedNum() int64 { if x != nil { return x.TodayMatchedNum } return 0 } func (x *GetUserDBMsgFromWebsocketReply) GetAge() int64 { if x != nil { return x.Age } return 0 } func (x *GetUserDBMsgFromWebsocketReply) GetProvince() string { if x != nil { return x.Province } return "" } func (x *GetUserDBMsgFromWebsocketReply) GetCity() string { if x != nil { return x.City } return "" } type UpdateUserMatchedNumRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId string `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"` } func (x *UpdateUserMatchedNumRequest) Reset() { *x = UpdateUserMatchedNumRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateUserMatchedNumRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateUserMatchedNumRequest) ProtoMessage() {} func (x *UpdateUserMatchedNumRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateUserMatchedNumRequest.ProtoReflect.Descriptor instead. func (*UpdateUserMatchedNumRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{23} } func (x *UpdateUserMatchedNumRequest) GetUserId() string { if x != nil { return x.UserId } return "" } type SendMsgReduceCreditReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsSendReminder bool `protobuf:"varint,1,opt,name=isSendReminder,proto3" json:"isSendReminder"` // 是否发送免费次数用完提醒 } func (x *SendMsgReduceCreditReply) Reset() { *x = SendMsgReduceCreditReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendMsgReduceCreditReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendMsgReduceCreditReply) ProtoMessage() {} func (x *SendMsgReduceCreditReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendMsgReduceCreditReply.ProtoReflect.Descriptor instead. func (*SendMsgReduceCreditReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{24} } func (x *SendMsgReduceCreditReply) GetIsSendReminder() bool { if x != nil { return x.IsSendReminder } return false } type UserFreeNum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReplyScripNum int64 `protobuf:"varint,1,opt,name=replyScripNum,proto3" json:"replyScripNum"` // 今日可免费回复纸条的次数 CreateScripNum int64 `protobuf:"varint,2,opt,name=createScripNum,proto3" json:"createScripNum"` // 今日免费创建纸条的次数 MatchingNum int64 `protobuf:"varint,3,opt,name=matchingNum,proto3" json:"matchingNum"` // 今日免费匹配数 } func (x *UserFreeNum) Reset() { *x = UserFreeNum{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserFreeNum) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserFreeNum) ProtoMessage() {} func (x *UserFreeNum) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserFreeNum.ProtoReflect.Descriptor instead. func (*UserFreeNum) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{25} } func (x *UserFreeNum) GetReplyScripNum() int64 { if x != nil { return x.ReplyScripNum } return 0 } func (x *UserFreeNum) GetCreateScripNum() int64 { if x != nil { return x.CreateScripNum } return 0 } func (x *UserFreeNum) GetMatchingNum() int64 { if x != nil { return x.MatchingNum } return 0 } type ReplyScripRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ScripId int64 `protobuf:"varint,4,opt,name=scripId,proto3" json:"scripId"` // 小纸条ID Message *common.Message `protobuf:"bytes,5,opt,name=message,proto3" json:"message"` // 回复内容 只需要提供 回复小纸条的内容 或 回复小纸条的素材链接 MsgType string `protobuf:"bytes,6,opt,name=msgType,proto3" json:"msgType"` } func (x *ReplyScripRequest) Reset() { *x = ReplyScripRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReplyScripRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReplyScripRequest) ProtoMessage() {} func (x *ReplyScripRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReplyScripRequest.ProtoReflect.Descriptor instead. func (*ReplyScripRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{26} } func (x *ReplyScripRequest) GetScripId() int64 { if x != nil { return x.ScripId } return 0 } func (x *ReplyScripRequest) GetMessage() *common.Message { if x != nil && x.Message != nil { return x.Message } return &common.Message{} } func (x *ReplyScripRequest) GetMsgType() string { if x != nil { return x.MsgType } return "" } type PersonLookScripRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ScripId int64 `protobuf:"varint,3,opt,name=scripId,proto3" json:"scripId"` // 纸条id } func (x *PersonLookScripRequest) Reset() { *x = PersonLookScripRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PersonLookScripRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*PersonLookScripRequest) ProtoMessage() {} func (x *PersonLookScripRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PersonLookScripRequest.ProtoReflect.Descriptor instead. func (*PersonLookScripRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{27} } func (x *PersonLookScripRequest) GetScripId() int64 { if x != nil { return x.ScripId } return 0 } type UserFindScripRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NextId int64 `protobuf:"varint,3,opt,name=nextId,proto3" json:"nextId"` Offset int64 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset"` } func (x *UserFindScripRequest) Reset() { *x = UserFindScripRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserFindScripRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserFindScripRequest) ProtoMessage() {} func (x *UserFindScripRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserFindScripRequest.ProtoReflect.Descriptor instead. func (*UserFindScripRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{28} } func (x *UserFindScripRequest) GetNextId() int64 { if x != nil { return x.NextId } return 0 } func (x *UserFindScripRequest) GetOffset() int64 { if x != nil { return x.Offset } return 0 } type DeleteScripRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ScripId int64 `protobuf:"varint,1,opt,name=scripId,proto3" json:"scripId"` // 纸条id } func (x *DeleteScripRequest) Reset() { *x = DeleteScripRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteScripRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteScripRequest) ProtoMessage() {} func (x *DeleteScripRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteScripRequest.ProtoReflect.Descriptor instead. func (*DeleteScripRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{29} } func (x *DeleteScripRequest) GetScripId() int64 { if x != nil { return x.ScripId } return 0 } type CreateScripRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text"` // 纸条内容 PictureUrl string `protobuf:"bytes,2,opt,name=pictureUrl,proto3" json:"pictureUrl"` // 纸条背景图 Province string `protobuf:"bytes,3,opt,name=province,proto3" json:"province"` City string `protobuf:"bytes,4,opt,name=city,proto3" json:"city"` } func (x *CreateScripRequest) Reset() { *x = CreateScripRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateScripRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateScripRequest) ProtoMessage() {} func (x *CreateScripRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateScripRequest.ProtoReflect.Descriptor instead. func (*CreateScripRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{30} } func (x *CreateScripRequest) GetText() string { if x != nil { return x.Text } return "" } func (x *CreateScripRequest) GetPictureUrl() string { if x != nil { return x.PictureUrl } return "" } func (x *CreateScripRequest) GetProvince() string { if x != nil { return x.Province } return "" } func (x *CreateScripRequest) GetCity() string { if x != nil { return x.City } return "" } type FindMatchingAvatarAndNumReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Num int64 `protobuf:"varint,1,opt,name=num,proto3" json:"num"` // 匹配人数 List []string `protobuf:"bytes,2,rep,name=list,proto3" json:"list"` // 头像列表 } func (x *FindMatchingAvatarAndNumReply) Reset() { *x = FindMatchingAvatarAndNumReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindMatchingAvatarAndNumReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindMatchingAvatarAndNumReply) ProtoMessage() {} func (x *FindMatchingAvatarAndNumReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindMatchingAvatarAndNumReply.ProtoReflect.Descriptor instead. func (*FindMatchingAvatarAndNumReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{31} } func (x *FindMatchingAvatarAndNumReply) GetNum() int64 { if x != nil { return x.Num } return 0 } func (x *FindMatchingAvatarAndNumReply) GetList() []string { if x != nil { return x.List } return make([]string, 0) } type UserRechargeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RechargeTemplateId int64 `protobuf:"varint,1,opt,name=RechargeTemplateId,proto3" json:"RechargeTemplateId"` // 充值套餐ID } func (x *UserRechargeRequest) Reset() { *x = UserRechargeRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserRechargeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserRechargeRequest) ProtoMessage() {} func (x *UserRechargeRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserRechargeRequest.ProtoReflect.Descriptor instead. func (*UserRechargeRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{32} } func (x *UserRechargeRequest) GetRechargeTemplateId() int64 { if x != nil { return x.RechargeTemplateId } return 0 } type RechargeList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*RechargeInfo `protobuf:"bytes,1,rep,name=list,proto3" json:"list"` } func (x *RechargeList) Reset() { *x = RechargeList{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RechargeList) String() string { return protoimpl.X.MessageStringOf(x) } func (*RechargeList) ProtoMessage() {} func (x *RechargeList) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RechargeList.ProtoReflect.Descriptor instead. func (*RechargeList) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{33} } func (x *RechargeList) GetList() []*RechargeInfo { if x != nil { return x.List } return make([]*RechargeInfo, 0) } type VipRechargeList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*VipRechargeInfo `protobuf:"bytes,1,rep,name=list,proto3" json:"list"` } func (x *VipRechargeList) Reset() { *x = VipRechargeList{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VipRechargeList) String() string { return protoimpl.X.MessageStringOf(x) } func (*VipRechargeList) ProtoMessage() {} func (x *VipRechargeList) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use VipRechargeList.ProtoReflect.Descriptor instead. func (*VipRechargeList) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{34} } func (x *VipRechargeList) GetList() []*VipRechargeInfo { if x != nil { return x.List } return make([]*VipRechargeInfo, 0) } type VipRechargeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label"` // 标题 Price int64 `protobuf:"varint,3,opt,name=price,proto3" json:"price"` // 价格 OriginPrice int64 `protobuf:"varint,4,opt,name=originPrice,proto3" json:"originPrice"` // 原价 AveragePerDayPrice int64 `protobuf:"varint,5,opt,name=averagePerDayPrice,proto3" json:"averagePerDayPrice"` // 日常价格 AdditionalCoin int64 `protobuf:"varint,6,opt,name=additionalCoin,proto3" json:"additionalCoin"` // 赠送的积分 Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description"` // 描述 } func (x *VipRechargeInfo) Reset() { *x = VipRechargeInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VipRechargeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*VipRechargeInfo) ProtoMessage() {} func (x *VipRechargeInfo) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use VipRechargeInfo.ProtoReflect.Descriptor instead. func (*VipRechargeInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{35} } func (x *VipRechargeInfo) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *VipRechargeInfo) GetLabel() string { if x != nil { return x.Label } return "" } func (x *VipRechargeInfo) GetPrice() int64 { if x != nil { return x.Price } return 0 } func (x *VipRechargeInfo) GetOriginPrice() int64 { if x != nil { return x.OriginPrice } return 0 } func (x *VipRechargeInfo) GetAveragePerDayPrice() int64 { if x != nil { return x.AveragePerDayPrice } return 0 } func (x *VipRechargeInfo) GetAdditionalCoin() int64 { if x != nil { return x.AdditionalCoin } return 0 } func (x *VipRechargeInfo) GetDescription() string { if x != nil { return x.Description } return "" } type RechargeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` Price int64 `protobuf:"varint,2,opt,name=price,proto3" json:"price"` Credit int64 `protobuf:"varint,3,opt,name=credit,proto3" json:"credit"` // 积分 GiveCredit int64 `protobuf:"varint,4,opt,name=giveCredit,proto3" json:"giveCredit"` // 赠送的积分 Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description"` // 描述 Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title"` // 标题 } func (x *RechargeInfo) Reset() { *x = RechargeInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RechargeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*RechargeInfo) ProtoMessage() {} func (x *RechargeInfo) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RechargeInfo.ProtoReflect.Descriptor instead. func (*RechargeInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{36} } func (x *RechargeInfo) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *RechargeInfo) GetPrice() int64 { if x != nil { return x.Price } return 0 } func (x *RechargeInfo) GetCredit() int64 { if x != nil { return x.Credit } return 0 } func (x *RechargeInfo) GetGiveCredit() int64 { if x != nil { return x.GiveCredit } return 0 } func (x *RechargeInfo) GetDescription() string { if x != nil { return x.Description } return "" } func (x *RechargeInfo) GetTitle() string { if x != nil { return x.Title } return "" } type InformationStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsFinishInformation bool `protobuf:"varint,1,opt,name=isFinishInformation,proto3" json:"isFinishInformation"` //是否完善资料 IsGetAward bool `protobuf:"varint,2,opt,name=isGetAward,proto3" json:"isGetAward"` // 是否领取奖励 Credit int64 `protobuf:"varint,3,opt,name=credit,proto3" json:"credit"` // 奖励的金额 } func (x *InformationStatus) Reset() { *x = InformationStatus{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InformationStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*InformationStatus) ProtoMessage() {} func (x *InformationStatus) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InformationStatus.ProtoReflect.Descriptor instead. func (*InformationStatus) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{37} } func (x *InformationStatus) GetIsFinishInformation() bool { if x != nil { return x.IsFinishInformation } return false } func (x *InformationStatus) GetIsGetAward() bool { if x != nil { return x.IsGetAward } return false } func (x *InformationStatus) GetCredit() int64 { if x != nil { return x.Credit } return 0 } type UserBalance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` // id Credit int64 `protobuf:"varint,2,opt,name=credit,proto3" json:"credit"` // 积分 } func (x *UserBalance) Reset() { *x = UserBalance{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserBalance) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserBalance) ProtoMessage() {} func (x *UserBalance) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserBalance.ProtoReflect.Descriptor instead. func (*UserBalance) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{38} } func (x *UserBalance) GetId() string { if x != nil { return x.Id } return "" } func (x *UserBalance) GetCredit() int64 { if x != nil { return x.Credit } return 0 } type UserFindChatListReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*UserChatInfo `protobuf:"bytes,1,rep,name=list,proto3" json:"list"` NextId int64 `protobuf:"varint,2,opt,name=nextId,proto3" json:"nextId"` } func (x *UserFindChatListReply) Reset() { *x = UserFindChatListReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserFindChatListReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserFindChatListReply) ProtoMessage() {} func (x *UserFindChatListReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserFindChatListReply.ProtoReflect.Descriptor instead. func (*UserFindChatListReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{39} } func (x *UserFindChatListReply) GetList() []*UserChatInfo { if x != nil { return x.List } return make([]*UserChatInfo, 0) } func (x *UserFindChatListReply) GetNextId() int64 { if x != nil { return x.NextId } return 0 } type UserChatInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PersonId string `protobuf:"bytes,2,opt,name=personId,proto3" json:"personId"` // 用户ID UnreadNum int64 `protobuf:"varint,3,opt,name=unreadNum,proto3" json:"unreadNum"` // 用户未读数 LastContent string `protobuf:"bytes,4,opt,name=lastContent,proto3" json:"lastContent"` // 上次发送内容 LastTime int64 `protobuf:"varint,5,opt,name=lastTime,proto3" json:"lastTime"` // 上次发送时间 Likeability int64 `protobuf:"varint,6,opt,name=likeability,proto3" json:"likeability"` // 好感度 Sex int64 `protobuf:"varint,8,opt,name=sex,proto3" json:"sex"` // 性别 AvatarUrl string `protobuf:"bytes,9,opt,name=avatarUrl,proto3" json:"avatarUrl"` // 头像 Nickname string `protobuf:"bytes,10,opt,name=nickname,proto3" json:"nickname"` // 昵称 Age int64 `protobuf:"varint,11,opt,name=age,proto3" json:"age"` // 年龄 RoomId int64 `protobuf:"varint,12,opt,name=roomId,proto3" json:"roomId"` // 房间号ID IsVip bool `protobuf:"varint,15,opt,name=isVip,proto3" json:"isVip"` // 是否是Vip VipLevel int64 `protobuf:"varint,16,opt,name=vipLevel,proto3" json:"vipLevel"` // vip等级 IsYearVip bool `protobuf:"varint,17,opt,name=isYearVip,proto3" json:"isYearVip"` // 是否是年费Vip VipFunctions []string `protobuf:"bytes,18,rep,name=vipFunctions,proto3" json:"vipFunctions"` // vip功能 IsCertification bool `protobuf:"varint,26,opt,name=isCertification,proto3" json:"isCertification"` // 是否实名认证 } func (x *UserChatInfo) Reset() { *x = UserChatInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserChatInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserChatInfo) ProtoMessage() {} func (x *UserChatInfo) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserChatInfo.ProtoReflect.Descriptor instead. func (*UserChatInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{40} } func (x *UserChatInfo) GetPersonId() string { if x != nil { return x.PersonId } return "" } func (x *UserChatInfo) GetUnreadNum() int64 { if x != nil { return x.UnreadNum } return 0 } func (x *UserChatInfo) GetLastContent() string { if x != nil { return x.LastContent } return "" } func (x *UserChatInfo) GetLastTime() int64 { if x != nil { return x.LastTime } return 0 } func (x *UserChatInfo) GetLikeability() int64 { if x != nil { return x.Likeability } return 0 } func (x *UserChatInfo) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *UserChatInfo) GetAvatarUrl() string { if x != nil { return x.AvatarUrl } return "" } func (x *UserChatInfo) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *UserChatInfo) GetAge() int64 { if x != nil { return x.Age } return 0 } func (x *UserChatInfo) GetRoomId() int64 { if x != nil { return x.RoomId } return 0 } func (x *UserChatInfo) GetIsVip() bool { if x != nil { return x.IsVip } return false } func (x *UserChatInfo) GetVipLevel() int64 { if x != nil { return x.VipLevel } return 0 } func (x *UserChatInfo) GetIsYearVip() bool { if x != nil { return x.IsYearVip } return false } func (x *UserChatInfo) GetVipFunctions() []string { if x != nil { return x.VipFunctions } return make([]string, 0) } func (x *UserChatInfo) GetIsCertification() bool { if x != nil { return x.IsCertification } return false } type UserInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` // id Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname"` // 昵称 AvatarUrl string `protobuf:"bytes,3,opt,name=avatarUrl,proto3" json:"avatarUrl"` // 头像链接 Age int64 `protobuf:"varint,4,opt,name=age,proto3" json:"age"` // 年龄 Sex int64 `protobuf:"varint,5,opt,name=sex,proto3" json:"sex"` // 性别 Constellation string `protobuf:"bytes,6,opt,name=constellation,proto3" json:"constellation"` // 星座 Credit int64 `protobuf:"varint,7,opt,name=credit,proto3" json:"credit"` // 积分 TagList []int64 `protobuf:"varint,8,rep,packed,name=tagList,proto3" json:"tagList"` // 标签 Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature"` // 签名 IntroduceVoice string `protobuf:"bytes,10,opt,name=introduceVoice,proto3" json:"introduceVoice"` // 介绍语音 Province string `protobuf:"bytes,11,opt,name=province,proto3" json:"province"` // 省 City string `protobuf:"bytes,12,opt,name=city,proto3" json:"city"` // 市 Area string `protobuf:"bytes,13,opt,name=area,proto3" json:"area"` // 区 UserId int64 `protobuf:"varint,14,opt,name=userId,proto3" json:"userId"` // 用户ID IsBlack bool `protobuf:"varint,15,opt,name=isBlack,proto3" json:"isBlack"` // 是否被封号 IsRegister bool `protobuf:"varint,16,opt,name=isRegister,proto3" json:"isRegister"` // 是否注册 UpdateNicknameNum int64 `protobuf:"varint,17,opt,name=UpdateNicknameNum,proto3" json:"UpdateNicknameNum"` // 今日更新昵称数 UpdateAvatarUrlNum int64 `protobuf:"varint,18,opt,name=UpdateAvatarUrlNum,proto3" json:"UpdateAvatarUrlNum"` // 今日更新头像数 UpdatePicturesNum int64 `protobuf:"varint,19,opt,name=UpdatePicturesNum,proto3" json:"UpdatePicturesNum"` // 今日更新相册数 UpdateSignatureNum int64 `protobuf:"varint,20,opt,name=UpdateSignatureNum,proto3" json:"UpdateSignatureNum"` // 今日更新签名数 Phone string `protobuf:"bytes,21,opt,name=phone,proto3" json:"phone"` // 手机号 IsCertification bool `protobuf:"varint,28,opt,name=isCertification,proto3" json:"isCertification"` // 是否实名认证 } func (x *UserInfo) Reset() { *x = UserInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserInfo) ProtoMessage() {} func (x *UserInfo) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. func (*UserInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{41} } func (x *UserInfo) GetId() string { if x != nil { return x.Id } return "" } func (x *UserInfo) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *UserInfo) GetAvatarUrl() string { if x != nil { return x.AvatarUrl } return "" } func (x *UserInfo) GetAge() int64 { if x != nil { return x.Age } return 0 } func (x *UserInfo) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *UserInfo) GetConstellation() string { if x != nil { return x.Constellation } return "" } func (x *UserInfo) GetCredit() int64 { if x != nil { return x.Credit } return 0 } func (x *UserInfo) GetTagList() []int64 { if x != nil { return x.TagList } return make([]int64, 0) } func (x *UserInfo) GetSignature() string { if x != nil { return x.Signature } return "" } func (x *UserInfo) GetIntroduceVoice() string { if x != nil { return x.IntroduceVoice } return "" } func (x *UserInfo) GetProvince() string { if x != nil { return x.Province } return "" } func (x *UserInfo) GetCity() string { if x != nil { return x.City } return "" } func (x *UserInfo) GetArea() string { if x != nil { return x.Area } return "" } func (x *UserInfo) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *UserInfo) GetIsBlack() bool { if x != nil { return x.IsBlack } return false } func (x *UserInfo) GetIsRegister() bool { if x != nil { return x.IsRegister } return false } func (x *UserInfo) GetUpdateNicknameNum() int64 { if x != nil { return x.UpdateNicknameNum } return 0 } func (x *UserInfo) GetUpdateAvatarUrlNum() int64 { if x != nil { return x.UpdateAvatarUrlNum } return 0 } func (x *UserInfo) GetUpdatePicturesNum() int64 { if x != nil { return x.UpdatePicturesNum } return 0 } func (x *UserInfo) GetUpdateSignatureNum() int64 { if x != nil { return x.UpdateSignatureNum } return 0 } func (x *UserInfo) GetPhone() string { if x != nil { return x.Phone } return "" } func (x *UserInfo) GetIsCertification() bool { if x != nil { return x.IsCertification } return false } type KeyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key"` } func (x *KeyRequest) Reset() { *x = KeyRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KeyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*KeyRequest) ProtoMessage() {} func (x *KeyRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use KeyRequest.ProtoReflect.Descriptor instead. func (*KeyRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{42} } func (x *KeyRequest) GetKey() string { if x != nil { return x.Key } return "" } type CreatePayRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Money int64 `protobuf:"varint,1,opt,name=money,proto3" json:"money"` // 支付金额 单位 分 Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type"` // 类型 OpenId string `protobuf:"bytes,3,opt,name=openId,proto3" json:"openId"` Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description"` Attach string `protobuf:"bytes,5,opt,name=attach,proto3" json:"attach"` } func (x *CreatePayRequest) Reset() { *x = CreatePayRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreatePayRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreatePayRequest) ProtoMessage() {} func (x *CreatePayRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreatePayRequest.ProtoReflect.Descriptor instead. func (*CreatePayRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{43} } func (x *CreatePayRequest) GetMoney() int64 { if x != nil { return x.Money } return 0 } func (x *CreatePayRequest) GetType() string { if x != nil { return x.Type } return "" } func (x *CreatePayRequest) GetOpenId() string { if x != nil { return x.OpenId } return "" } func (x *CreatePayRequest) GetDescription() string { if x != nil { return x.Description } return "" } func (x *CreatePayRequest) GetAttach() string { if x != nil { return x.Attach } return "" } type PayInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PayInfo *structpb.Value `protobuf:"bytes,1,opt,name=payInfo,proto3" json:"payInfo"` OrderId int64 `protobuf:"varint,2,opt,name=orderId,proto3" json:"orderId"` } func (x *PayInfo) Reset() { *x = PayInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PayInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*PayInfo) ProtoMessage() {} func (x *PayInfo) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PayInfo.ProtoReflect.Descriptor instead. func (*PayInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{44} } func (x *PayInfo) GetPayInfo() *structpb.Value { if x != nil && x.PayInfo != nil { return x.PayInfo } return &structpb.Value{} } func (x *PayInfo) GetOrderId() int64 { if x != nil { return x.OrderId } return 0 } type PayOrderInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` OrderID int64 `protobuf:"varint,2,opt,name=orderID,proto3" json:"orderID"` // 订单的唯一ID Money int64 `protobuf:"varint,3,opt,name=money,proto3" json:"money"` // 支付金额 ,单位分 Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type"` // 类型 TransactionID string `protobuf:"bytes,5,opt,name=TransactionID,proto3" json:"TransactionID"` OpenId string `protobuf:"bytes,6,opt,name=openId,proto3" json:"openId"` Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description"` Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status"` // 状态 PayTime int64 `protobuf:"varint,10,opt,name=payTime,proto3" json:"payTime"` // 支付时间 CreateTime int64 `protobuf:"varint,11,opt,name=createTime,proto3" json:"createTime"` // 创建时间 } func (x *PayOrderInfo) Reset() { *x = PayOrderInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PayOrderInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*PayOrderInfo) ProtoMessage() {} func (x *PayOrderInfo) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PayOrderInfo.ProtoReflect.Descriptor instead. func (*PayOrderInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{45} } func (x *PayOrderInfo) GetUserID() string { if x != nil { return x.UserID } return "" } func (x *PayOrderInfo) GetOrderID() int64 { if x != nil { return x.OrderID } return 0 } func (x *PayOrderInfo) GetMoney() int64 { if x != nil { return x.Money } return 0 } func (x *PayOrderInfo) GetType() string { if x != nil { return x.Type } return "" } func (x *PayOrderInfo) GetTransactionID() string { if x != nil { return x.TransactionID } return "" } func (x *PayOrderInfo) GetOpenId() string { if x != nil { return x.OpenId } return "" } func (x *PayOrderInfo) GetDescription() string { if x != nil { return x.Description } return "" } func (x *PayOrderInfo) GetStatus() string { if x != nil { return x.Status } return "" } func (x *PayOrderInfo) GetPayTime() int64 { if x != nil { return x.PayTime } return 0 } func (x *PayOrderInfo) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } type PayOrderList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*PayOrderInfo `protobuf:"bytes,1,rep,name=list,proto3" json:"list"` NextId int64 `protobuf:"varint,2,opt,name=nextId,proto3" json:"nextId"` } func (x *PayOrderList) Reset() { *x = PayOrderList{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PayOrderList) String() string { return protoimpl.X.MessageStringOf(x) } func (*PayOrderList) ProtoMessage() {} func (x *PayOrderList) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PayOrderList.ProtoReflect.Descriptor instead. func (*PayOrderList) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{46} } func (x *PayOrderList) GetList() []*PayOrderInfo { if x != nil { return x.List } return make([]*PayOrderInfo, 0) } func (x *PayOrderList) GetNextId() int64 { if x != nil { return x.NextId } return 0 } type FindPayOrderListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NextId int64 `protobuf:"varint,1,opt,name=nextId,proto3" json:"nextId"` Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset"` Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status"` } func (x *FindPayOrderListRequest) Reset() { *x = FindPayOrderListRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindPayOrderListRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindPayOrderListRequest) ProtoMessage() {} func (x *FindPayOrderListRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindPayOrderListRequest.ProtoReflect.Descriptor instead. func (*FindPayOrderListRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{47} } func (x *FindPayOrderListRequest) GetNextId() int64 { if x != nil { return x.NextId } return 0 } func (x *FindPayOrderListRequest) GetOffset() int64 { if x != nil { return x.Offset } return 0 } func (x *FindPayOrderListRequest) GetStatus() string { if x != nil { return x.Status } return "" } type PayCallbackReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result []byte `protobuf:"bytes,1,opt,name=result,proto3" json:"result"` } func (x *PayCallbackReply) Reset() { *x = PayCallbackReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PayCallbackReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*PayCallbackReply) ProtoMessage() {} func (x *PayCallbackReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PayCallbackReply.ProtoReflect.Descriptor instead. func (*PayCallbackReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{48} } func (x *PayCallbackReply) GetResult() []byte { if x != nil { return x.Result } return make([]byte, 0) } var File_user_proto protoreflect.FileDescriptor var file_user_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x90, 0x05, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x13, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x6c, 0x6f, 0x6f, 0x6b, 0x42, 0x61, 0x63, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6c, 0x6f, 0x6f, 0x6b, 0x42, 0x61, 0x63, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x41, 0x49, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x67, 0x65, 0x74, 0x41, 0x49, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x69, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x61, 0x69, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x22, 0x36, 0x0a, 0x14, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x4e, 0x65, 0x78, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x22, 0xae, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x1a, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x40, 0x0a, 0x1b, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x56, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x56, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x6f, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x65, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x47, 0x72, 0x65, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x47, 0x72, 0x65, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x22, 0x43, 0x0a, 0x19, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x65, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x41, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x41, 0x67, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x1c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5f, 0x0a, 0x0d, 0x69, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x69, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x41, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x41, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x1a, 0x40, 0x0a, 0x12, 0x49, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4f, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x50, 0x69, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x44, 0x0a, 0x06, 0x76, 0x69, 0x70, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x56, 0x69, 0x70, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x76, 0x69, 0x70, 0x4d, 0x61, 0x70, 0x1a, 0x4c, 0x0a, 0x0b, 0x56, 0x69, 0x70, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x56, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcd, 0x01, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x68, 0x0a, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x1a, 0x43, 0x0a, 0x15, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa1, 0x02, 0x0a, 0x07, 0x56, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x76, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x77, 0x74, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x77, 0x74, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x69, 0x70, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x69, 0x70, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x64, 0x0a, 0x1a, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x46, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x46, 0x72, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x6e, 0x0a, 0x28, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x22, 0x42, 0x0a, 0x26, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x56, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x4c, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x61, 0x67, 0x22, 0x4b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x65, 0x0a, 0x23, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xc7, 0x01, 0x0a, 0x29, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x22, 0xec, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x22, 0x35, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4e, 0x75, 0x6d, 0x22, 0x76, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x32, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x2e, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x22, 0x78, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x22, 0x45, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x41, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x0f, 0x56, 0x69, 0x70, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x56, 0x69, 0x70, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xe9, 0x01, 0x0a, 0x0f, 0x56, 0x69, 0x70, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x50, 0x65, 0x72, 0x44, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x50, 0x65, 0x72, 0x44, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa4, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x69, 0x76, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x67, 0x69, 0x76, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x7d, 0x0a, 0x11, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x47, 0x65, 0x74, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x47, 0x65, 0x74, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x22, 0x35, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x22, 0x5b, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x22, 0xbc, 0x03, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x69, 0x6b, 0x65, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6c, 0x69, 0x6b, 0x65, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x76, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x69, 0x70, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x69, 0x70, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x05, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x2e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x2e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1e, 0x0a, 0x0a, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x8e, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x55, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x9c, 0x02, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2a, 0x0a, 0x10, 0x50, 0x61, 0x79, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x32, 0xe3, 0x57, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x3a, 0x01, 0x2a, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x31, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x22, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x31, 0x12, 0x69, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, 0x73, 0x65, 0x6e, 0x64, 0x12, 0x6c, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x7e, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6e, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x5d, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x48, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x3a, 0x01, 0x2a, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x68, 0x6f, 0x6d, 0x65, 0x12, 0x6f, 0x0a, 0x1b, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x6b, 0x65, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x6f, 0x6f, 0x6b, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x65, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6e, 0x75, 0x6d, 0x12, 0x71, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x6f, 0x6f, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x41, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x12, 0x5f, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x53, 0x65, 0x78, 0x12, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x74, 0x61, 0x67, 0x12, 0x76, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x12, 0x7d, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x7e, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x7e, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x72, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x6d, 0x73, 0x67, 0x12, 0x59, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x73, 0x4c, 0x69, 0x6b, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x4c, 0x69, 0x6b, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x69, 0x73, 0x6c, 0x69, 0x6b, 0x65, 0x12, 0x64, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x65, 0x6d, 0x65, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x6d, 0x65, 0x6d, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x6d, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x66, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4d, 0x65, 0x6d, 0x65, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x6d, 0x65, 0x6d, 0x65, 0x2f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x75, 0x0a, 0x12, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x77, 0x69, 0x66, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x53, 0x65, 0x78, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x2f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x68, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x65, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x6d, 0x65, 0x6d, 0x65, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x64, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x43, 0x61, 0x72, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x12, 0x6d, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x56, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x3a, 0x01, 0x2a, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x6b, 0x65, 0x12, 0x5a, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x55, 0x6e, 0x4c, 0x69, 0x6b, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x6e, 0x6c, 0x69, 0x6b, 0x65, 0x12, 0x5c, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x80, 0x01, 0x0a, 0x16, 0x46, 0x69, 0x6e, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6f, 0x76, 0x65, 0x72, 0x2f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x79, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x63, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x6b, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x73, 0x65, 0x6c, 0x66, 0x12, 0x6d, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x12, 0x77, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x12, 0x74, 0x0a, 0x0f, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x12, 0x6a, 0x0a, 0x13, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x4c, 0x6f, 0x6f, 0x6b, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x6d, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x65, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x6d, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x6e, 0x75, 0x6d, 0x12, 0x66, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x42, 0x79, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x71, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x41, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x6c, 0x69, 0x6b, 0x65, 0x12, 0x73, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x41, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x6c, 0x69, 0x6b, 0x65, 0x64, 0x12, 0x65, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x74, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x65, 0x74, 0x2f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x94, 0x01, 0x0a, 0x1e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x70, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x41, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x41, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6e, 0x75, 0x6d, 0x2f, 0x6c, 0x69, 0x6b, 0x65, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x12, 0x69, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x2f, 0x6e, 0x75, 0x6d, 0x12, 0x70, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x75, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x71, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x77, 0x61, 0x72, 0x64, 0x12, 0x65, 0x0a, 0x10, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x2f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5f, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x66, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x56, 0x69, 0x70, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2f, 0x76, 0x69, 0x70, 0x12, 0x66, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x70, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x64, 0x56, 0x69, 0x70, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x56, 0x69, 0x70, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2f, 0x76, 0x69, 0x70, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x67, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x61, 0x79, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x7c, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x12, 0x82, 0x01, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x41, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x41, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x63, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2f, 0x67, 0x65, 0x74, 0x12, 0x5e, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x72, 0x65, 0x65, 0x2f, 0x6e, 0x75, 0x6d, 0x12, 0x7f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x63, 0x0a, 0x0b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x67, 0x0a, 0x0d, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x6c, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x77, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x12, 0x6c, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x73, 0x65, 0x6e, 0x64, 0x12, 0x51, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x56, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x69, 0x70, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x6e, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x7f, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x50, 0x69, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x50, 0x69, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x2f, 0x68, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x2f, 0x6e, 0x75, 0x6d, 0x12, 0x77, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x50, 0x69, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x2f, 0x68, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x2f, 0x6e, 0x75, 0x6d, 0x2f, 0x73, 0x65, 0x74, 0x12, 0x7e, 0x0a, 0x14, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x65, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x65, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2f, 0x72, 0x65, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6d, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x65, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2f, 0x72, 0x65, 0x77, 0x6f, 0x72, 0x64, 0x2f, 0x67, 0x65, 0x74, 0x12, 0x71, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x71, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x2f, 0x73, 0x65, 0x74, 0x12, 0x6a, 0x0a, 0x0f, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x12, 0x6f, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x6c, 0x0a, 0x12, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x55, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x2f, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x75, 0x0a, 0x0d, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x12, 0x45, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x57, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x44, 0x42, 0x12, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x42, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x12, 0x82, 0x01, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x53, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x19, 0x4c, 0x6f, 0x6f, 0x6b, 0x42, 0x61, 0x63, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x49, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x13, 0x41, 0x49, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x84, 0x01, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x42, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x21, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x1b, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x15, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4d, 0x61, 0x70, 0x12, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x17, 0x43, 0x72, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x70, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x3d, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_user_proto_rawDescOnce sync.Once file_user_proto_rawDescData = file_user_proto_rawDesc ) func file_user_proto_rawDescGZIP() []byte { file_user_proto_rawDescOnce.Do(func() { file_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_proto_rawDescData) }) return file_user_proto_rawDescData } var file_user_proto_msgTypes = make([]protoimpl.MessageInfo, 52) var file_user_proto_goTypes = []interface{}{ (*GetCreditConfigReply)(nil), // 0: api.user.GetCreditConfigReply (*PersonLookScripReply)(nil), // 1: api.user.PersonLookScripReply (*UpdateTodayRequest)(nil), // 2: api.user.UpdateTodayRequest (*UpdateLastSendTemplateTimeRequest)(nil), // 3: api.user.UpdateLastSendTemplateTimeRequest (*UserPrivacyStatusInfo)(nil), // 4: api.user.UserPrivacyStatusInfo (*IsCanGetReturnRewordReply)(nil), // 5: api.user.IsCanGetReturnRewordReply (*GetRandomMatchingRequest)(nil), // 6: api.user.GetRandomMatchingRequest (*MatchUserDBWithoutMapRequest)(nil), // 7: api.user.MatchUserDBWithoutMapRequest (*GetUserLookHandPickNumReply)(nil), // 8: api.user.GetUserLookHandPickNumReply (*FindUserVipListDBReply)(nil), // 9: api.user.FindUserVipListDBReply (*FindUserCertificationDBReply)(nil), // 10: api.user.FindUserCertificationDBReply (*VipInfo)(nil), // 11: api.user.VipInfo (*SendMsgReduceCreditRequest)(nil), // 12: api.user.SendMsgReduceCreditRequest (*UserGetInformationAwardByActivityRequest)(nil), // 13: api.user.UserGetInformationAwardByActivityRequest (*UserGetInformationAwardByActivityReply)(nil), // 14: api.user.UserGetInformationAwardByActivityReply (*AddUserCreditRequest)(nil), // 15: api.user.AddUserCreditRequest (*ReportUserBlackRequest)(nil), // 16: api.user.ReportUserBlackRequest (*SendMessageRequest)(nil), // 17: api.user.SendMessageRequest (*GetRecommendUserDBRequest)(nil), // 18: api.user.GetRecommendUserDBRequest (*FindRecommendHighQualityUserRequest)(nil), // 19: api.user.FindRecommendHighQualityUserRequest (*FindRecommendHighQualityUserReply)(nil), // 20: api.user.FindRecommendHighQualityUserReply (*UpdateUserMatchedNumAndReturnUserMsgReply)(nil), // 21: api.user.UpdateUserMatchedNumAndReturnUserMsgReply (*GetUserDBMsgFromWebsocketReply)(nil), // 22: api.user.GetUserDBMsgFromWebsocketReply (*UpdateUserMatchedNumRequest)(nil), // 23: api.user.UpdateUserMatchedNumRequest (*SendMsgReduceCreditReply)(nil), // 24: api.user.SendMsgReduceCreditReply (*UserFreeNum)(nil), // 25: api.user.UserFreeNum (*ReplyScripRequest)(nil), // 26: api.user.ReplyScripRequest (*PersonLookScripRequest)(nil), // 27: api.user.PersonLookScripRequest (*UserFindScripRequest)(nil), // 28: api.user.UserFindScripRequest (*DeleteScripRequest)(nil), // 29: api.user.DeleteScripRequest (*CreateScripRequest)(nil), // 30: api.user.CreateScripRequest (*FindMatchingAvatarAndNumReply)(nil), // 31: api.user.FindMatchingAvatarAndNumReply (*UserRechargeRequest)(nil), // 32: api.user.UserRechargeRequest (*RechargeList)(nil), // 33: api.user.RechargeList (*VipRechargeList)(nil), // 34: api.user.VipRechargeList (*VipRechargeInfo)(nil), // 35: api.user.VipRechargeInfo (*RechargeInfo)(nil), // 36: api.user.RechargeInfo (*InformationStatus)(nil), // 37: api.user.InformationStatus (*UserBalance)(nil), // 38: api.user.UserBalance (*UserFindChatListReply)(nil), // 39: api.user.UserFindChatListReply (*UserChatInfo)(nil), // 40: api.user.UserChatInfo (*UserInfo)(nil), // 41: api.user.UserInfo (*KeyRequest)(nil), // 42: api.user.KeyRequest (*CreatePayRequest)(nil), // 43: api.user.CreatePayRequest (*PayInfo)(nil), // 44: api.user.PayInfo (*PayOrderInfo)(nil), // 45: api.user.PayOrderInfo (*PayOrderList)(nil), // 46: api.user.PayOrderList (*FindPayOrderListRequest)(nil), // 47: api.user.FindPayOrderListRequest (*PayCallbackReply)(nil), // 48: api.user.PayCallbackReply nil, // 49: api.user.MatchUserDBWithoutMapRequest.IsMatchingMapEntry nil, // 50: api.user.FindUserVipListDBReply.VipMapEntry nil, // 51: api.user.FindUserCertificationDBReply.CertificationMapEntry (*common.Message)(nil), // 52: api.common.Message (*structpb.Value)(nil), // 53: google.protobuf.Value (*emptypb.Empty)(nil), // 54: google.protobuf.Empty (*common.SendPhoneCodeRequest)(nil), // 55: api.common.SendPhoneCodeRequest (*common.CheckPhoneCodeRequest)(nil), // 56: api.common.CheckPhoneCodeRequest (*common.UpdateInformationRequest)(nil), // 57: api.common.UpdateInformationRequest (*common.CreateChatRoomParam)(nil), // 58: api.common.CreateChatRoomParam (*common.PersonParam)(nil), // 59: api.common.PersonParam (*common.ListPageRequest)(nil), // 60: api.common.ListPageRequest (*common.SexReq)(nil), // 61: api.common.SexReq (*common.ListPage2Request)(nil), // 62: api.common.ListPage2Request (*common.FindChatRecordListRequest)(nil), // 63: api.common.FindChatRecordListRequest (*common.FindChatRoomMsgRequest)(nil), // 64: api.common.FindChatRoomMsgRequest (*common.MemeRequest)(nil), // 65: api.common.MemeRequest (*common.FindChatTopicRequest)(nil), // 66: api.common.FindChatTopicRequest (*common.RandomNum)(nil), // 67: api.common.RandomNum (*common.RandomNumAndSex)(nil), // 68: api.common.RandomNumAndSex (*common.ReportChatRequest)(nil), // 69: api.common.ReportChatRequest (*common.UpdateLastScripIDRequest)(nil), // 70: api.common.UpdateLastScripIDRequest (*common.FindScripRequest)(nil), // 71: api.common.FindScripRequest (*common.RoomIDRequest)(nil), // 72: api.common.RoomIDRequest (*common.PartnerIDParam)(nil), // 73: api.common.PartnerIDParam (*common.PersonIDParam)(nil), // 74: api.common.PersonIDParam (*common.ScripIdRequest)(nil), // 75: api.common.ScripIdRequest (*common.CheckIdentifyRequest)(nil), // 76: api.common.CheckIdentifyRequest (*common.PersonIDList)(nil), // 77: api.common.PersonIDList (*common.UpdateLastScripIDDBRequest)(nil), // 78: api.common.UpdateLastScripIDDBRequest (*common.IDParam)(nil), // 79: api.common.IDParam (*common.GetUserDBAndInitReq)(nil), // 80: api.common.GetUserDBAndInitReq (*chat.RoomReply)(nil), // 81: api.chat.RoomReply (*common.HomeInfo)(nil), // 82: api.common.HomeInfo (*common.LookedAndLikedNum)(nil), // 83: api.common.LookedAndLikedNum (*statistics.LookAndLikeListReply)(nil), // 84: api.statistics.LookAndLikeListReply (*common.TagListReply)(nil), // 85: api.common.TagListReply (*common.RecommendPersonListReply)(nil), // 86: api.common.RecommendPersonListReply (*common.ChatRecordListReply)(nil), // 87: api.common.ChatRecordListReply (*common.ChatRoomMsg)(nil), // 88: api.common.ChatRoomMsg (*common.IsLike)(nil), // 89: api.common.IsLike (*common.MemeList)(nil), // 90: api.common.MemeList (*common.ChatTopicList)(nil), // 91: api.common.ChatTopicList (*common.CommonTextList)(nil), // 92: api.common.CommonTextList (*common.MemeTitleList)(nil), // 93: api.common.MemeTitleList (*common.ChatCardInfo)(nil), // 94: api.common.ChatCardInfo (*common.FindOverSevenDayAvatarReply)(nil), // 95: api.common.FindOverSevenDayAvatarReply (*common.ScripID)(nil), // 96: api.common.ScripID (*common.ScripReply)(nil), // 97: api.common.ScripReply (*common.ScripInfo)(nil), // 98: api.common.ScripInfo (*common.ChatRecordInfo)(nil), // 99: api.common.ChatRecordInfo (*chat.UnreadNumReply)(nil), // 100: api.chat.UnreadNumReply (*chat.UserRoomInfo)(nil), // 101: api.chat.UserRoomInfo (*chat.CheckUserPartnerIsRelationshipReply)(nil), // 102: api.chat.CheckUserPartnerIsRelationshipReply (*common.AddFriendMessageInfo)(nil), // 103: api.common.AddFriendMessageInfo (*statistics.LookAndLikeMessageReply)(nil), // 104: api.statistics.LookAndLikeMessageReply (*statistics.LookMessageReply)(nil), // 105: api.statistics.LookMessageReply (*chat.WindowInfo)(nil), // 106: api.chat.WindowInfo (*chat.GetRandomMatchingReply)(nil), // 107: api.chat.GetRandomMatchingReply (*common.SendMessageReply)(nil), // 108: api.common.SendMessageReply (*common.HandpickPersonListReply)(nil), // 109: api.common.HandpickPersonListReply (*common.CheckIdentifyReply)(nil), // 110: api.common.CheckIdentifyReply (*common.PersonMsg)(nil), // 111: api.common.PersonMsg (*common.PersonDBReply)(nil), // 112: api.common.PersonDBReply (*common.PersonDB)(nil), // 113: api.common.PersonDB (*common.PersonDBDetails)(nil), // 114: api.common.PersonDBDetails } var file_user_proto_depIdxs = []int32{ 49, // 0: api.user.MatchUserDBWithoutMapRequest.isMatchingMap:type_name -> api.user.MatchUserDBWithoutMapRequest.IsMatchingMapEntry 50, // 1: api.user.FindUserVipListDBReply.vipMap:type_name -> api.user.FindUserVipListDBReply.VipMapEntry 51, // 2: api.user.FindUserCertificationDBReply.certificationMap:type_name -> api.user.FindUserCertificationDBReply.CertificationMapEntry 52, // 3: api.user.SendMessageRequest.message:type_name -> api.common.Message 52, // 4: api.user.ReplyScripRequest.message:type_name -> api.common.Message 36, // 5: api.user.RechargeList.list:type_name -> api.user.RechargeInfo 35, // 6: api.user.VipRechargeList.list:type_name -> api.user.VipRechargeInfo 40, // 7: api.user.UserFindChatListReply.list:type_name -> api.user.UserChatInfo 53, // 8: api.user.PayInfo.payInfo:type_name -> google.protobuf.Value 45, // 9: api.user.PayOrderList.list:type_name -> api.user.PayOrderInfo 11, // 10: api.user.FindUserVipListDBReply.VipMapEntry.value:type_name -> api.user.VipInfo 54, // 11: api.user.User.GetUserInfo:input_type -> google.protobuf.Empty 54, // 12: api.user.User.GetUserInfo1:input_type -> google.protobuf.Empty 55, // 13: api.user.User.SendPhoneCode:input_type -> api.common.SendPhoneCodeRequest 56, // 14: api.user.User.CheckPhoneCode:input_type -> api.common.CheckPhoneCodeRequest 57, // 15: api.user.User.UpdateUserInformation:input_type -> api.common.UpdateInformationRequest 58, // 16: api.user.User.CreateUserPersonRoom:input_type -> api.common.CreateChatRoomParam 54, // 17: api.user.User.GetUserBalance:input_type -> google.protobuf.Empty 59, // 18: api.user.User.UserGetHomeInfo:input_type -> api.common.PersonParam 59, // 19: api.user.User.UserGetPersonLikedAndLooked:input_type -> api.common.PersonParam 60, // 20: api.user.User.FindLookList:input_type -> api.common.ListPageRequest 61, // 21: api.user.User.FindTagListBySex:input_type -> api.common.SexReq 62, // 22: api.user.User.FindOnlineList:input_type -> api.common.ListPage2Request 60, // 23: api.user.User.FindWithinSevenDayRoomList:input_type -> api.common.ListPageRequest 60, // 24: api.user.User.FindOverSevenDayRoomList:input_type -> api.common.ListPageRequest 60, // 25: api.user.User.FindCloseFriendRoomList:input_type -> api.common.ListPageRequest 63, // 26: api.user.User.FindChatRecordList:input_type -> api.common.FindChatRecordListRequest 64, // 27: api.user.User.FindChatRoomMsg:input_type -> api.common.FindChatRoomMsgRequest 59, // 28: api.user.User.GetUserIsLike:input_type -> api.common.PersonParam 65, // 29: api.user.User.FindMemeByType:input_type -> api.common.MemeRequest 66, // 30: api.user.User.FindChatTopic:input_type -> api.common.FindChatTopicRequest 67, // 31: api.user.User.RandomMeme:input_type -> api.common.RandomNum 68, // 32: api.user.User.RandomSwiftMessage:input_type -> api.common.RandomNumAndSex 54, // 33: api.user.User.FindMemeTitle:input_type -> google.protobuf.Empty 59, // 34: api.user.User.UserGetChatCard:input_type -> api.common.PersonParam 54, // 35: api.user.User.FindChatTopicTitle:input_type -> google.protobuf.Empty 59, // 36: api.user.User.UserLike:input_type -> api.common.PersonParam 59, // 37: api.user.User.UserUnLike:input_type -> api.common.PersonParam 69, // 38: api.user.User.Report:input_type -> api.common.ReportChatRequest 54, // 39: api.user.User.FindOverSevenDayAvatar:input_type -> google.protobuf.Empty 70, // 40: api.user.User.UpdateLastScripID:input_type -> api.common.UpdateLastScripIDRequest 30, // 41: api.user.User.CreateScrip:input_type -> api.user.CreateScripRequest 29, // 42: api.user.User.DeleteScrip:input_type -> api.user.DeleteScripRequest 28, // 43: api.user.User.FindMyScrip:input_type -> api.user.UserFindScripRequest 71, // 44: api.user.User.FindOtherScrip:input_type -> api.common.FindScripRequest 28, // 45: api.user.User.FindRecommendScrip:input_type -> api.user.UserFindScripRequest 27, // 46: api.user.User.PersonLookScrip:input_type -> api.user.PersonLookScripRequest 54, // 47: api.user.User.PersonClickLookBack:input_type -> google.protobuf.Empty 26, // 48: api.user.User.PersonReplyScrip:input_type -> api.user.ReplyScripRequest 72, // 49: api.user.User.UserDeleteChat:input_type -> api.common.RoomIDRequest 54, // 50: api.user.User.GetUserAllUnreadNum:input_type -> google.protobuf.Empty 59, // 51: api.user.User.GetUserRoomByPerson:input_type -> api.common.PersonParam 60, // 52: api.user.User.FindLikeList:input_type -> api.common.ListPageRequest 60, // 53: api.user.User.FindLikedList:input_type -> api.common.ListPageRequest 72, // 54: api.user.User.UserSetBlackChat:input_type -> api.common.RoomIDRequest 73, // 55: api.user.User.CheckUserPartnerIsRelationship:input_type -> api.common.PartnerIDParam 42, // 56: api.user.User.GetPartnerCircleInfo:input_type -> api.user.KeyRequest 54, // 57: api.user.User.GetLookAndLikeStatisticsMessage:input_type -> google.protobuf.Empty 54, // 58: api.user.User.GetUserLookNum:input_type -> google.protobuf.Empty 54, // 59: api.user.User.UserFinishInformation:input_type -> google.protobuf.Empty 54, // 60: api.user.User.UserInformationStatus:input_type -> google.protobuf.Empty 54, // 61: api.user.User.UserGetInformationAward:input_type -> google.protobuf.Empty 59, // 62: api.user.User.UnlockLookRecord:input_type -> api.common.PersonParam 32, // 63: api.user.User.UserRecharge:input_type -> api.user.UserRechargeRequest 32, // 64: api.user.User.UserRechargeVip:input_type -> api.user.UserRechargeRequest 54, // 65: api.user.User.FindRechargeList:input_type -> google.protobuf.Empty 54, // 66: api.user.User.FindVipRechargeList:input_type -> google.protobuf.Empty 47, // 67: api.user.User.FindPayList:input_type -> api.user.FindPayOrderListRequest 54, // 68: api.user.User.FindRecommendPersonList:input_type -> google.protobuf.Empty 54, // 69: api.user.User.FindMatchingAvatarAndNum:input_type -> google.protobuf.Empty 54, // 70: api.user.User.GetWindowInfo:input_type -> google.protobuf.Empty 54, // 71: api.user.User.GetUserFreeNum:input_type -> google.protobuf.Empty 6, // 72: api.user.User.GetRandomMatching:input_type -> api.user.GetRandomMatchingRequest 72, // 73: api.user.User.UnlockVoice:input_type -> api.common.RoomIDRequest 72, // 74: api.user.User.UnlockPicture:input_type -> api.common.RoomIDRequest 54, // 75: api.user.User.UpdateUserIsRegister:input_type -> google.protobuf.Empty 58, // 76: api.user.User.CreateUserPartnerRoom:input_type -> api.common.CreateChatRoomParam 17, // 77: api.user.User.SendMessage:input_type -> api.user.SendMessageRequest 54, // 78: api.user.User.GetVipInfo:input_type -> google.protobuf.Empty 54, // 79: api.user.User.FindHandpickUser:input_type -> google.protobuf.Empty 54, // 80: api.user.User.GetUserLookHandPickNum:input_type -> google.protobuf.Empty 74, // 81: api.user.User.SetUserLookHandPickNum:input_type -> api.common.PersonIDParam 54, // 82: api.user.User.IsCanGetReturnReword:input_type -> google.protobuf.Empty 54, // 83: api.user.User.UserGetReturnReword:input_type -> google.protobuf.Empty 54, // 84: api.user.User.UserPrivacyStatus:input_type -> google.protobuf.Empty 4, // 85: api.user.User.UserSetPrivacyStatus:input_type -> api.user.UserPrivacyStatusInfo 75, // 86: api.user.User.PersonStarScrip:input_type -> api.common.ScripIdRequest 56, // 87: api.user.User.UpdateUserPhone:input_type -> api.common.CheckPhoneCodeRequest 54, // 88: api.user.User.CleanUserUnReadNum:input_type -> google.protobuf.Empty 76, // 89: api.user.User.Certification:input_type -> api.common.CheckIdentifyRequest 54, // 90: api.user.User.GetCreditConfig:input_type -> google.protobuf.Empty 74, // 91: api.user.User.GetUserDBMsg:input_type -> api.common.PersonIDParam 77, // 92: api.user.User.FindUserDBList:input_type -> api.common.PersonIDList 78, // 93: api.user.User.UpdateLastScripIDDB:input_type -> api.common.UpdateLastScripIDDBRequest 74, // 94: api.user.User.UpdateUserLastLoginTime:input_type -> api.common.PersonIDParam 79, // 95: api.user.User.GetUserDBMsgByAccountID:input_type -> api.common.IDParam 19, // 96: api.user.User.FindRecommendHighQualityUserDBList:input_type -> api.user.FindRecommendHighQualityUserRequest 74, // 97: api.user.User.GetUserDBMsgFromWebsocket:input_type -> api.common.PersonIDParam 12, // 98: api.user.User.SendMsgReduceCredit:input_type -> api.user.SendMsgReduceCreditRequest 59, // 99: api.user.User.LookBackScripReduceCredit:input_type -> api.common.PersonParam 59, // 100: api.user.User.CreateScripReduceCredit:input_type -> api.common.PersonParam 59, // 101: api.user.User.ReplyScripReduceCredit:input_type -> api.common.PersonParam 59, // 102: api.user.User.MatchingCredit:input_type -> api.common.PersonParam 59, // 103: api.user.User.GetAIRobotCredit:input_type -> api.common.PersonParam 59, // 104: api.user.User.AIMessageSendCredit:input_type -> api.common.PersonParam 23, // 105: api.user.User.UpdateUserMatchedNumAndReturnUserMsg:input_type -> api.user.UpdateUserMatchedNumRequest 18, // 106: api.user.User.GetRecommendUserDB:input_type -> api.user.GetRecommendUserDBRequest 16, // 107: api.user.User.ReportUserBlack:input_type -> api.user.ReportUserBlackRequest 15, // 108: api.user.User.AddUserCredit:input_type -> api.user.AddUserCreditRequest 74, // 109: api.user.User.UserInformationStatusDB:input_type -> api.common.PersonIDParam 13, // 110: api.user.User.UserGetInformationAwardByActivity:input_type -> api.user.UserGetInformationAwardByActivityRequest 77, // 111: api.user.User.FindUserVipDBList:input_type -> api.common.PersonIDList 77, // 112: api.user.User.FindUserCertificationDBList:input_type -> api.common.PersonIDList 7, // 113: api.user.User.MatchUserDBWithoutMap:input_type -> api.user.MatchUserDBWithoutMapRequest 80, // 114: api.user.User.GetUserDBAndInit:input_type -> api.common.GetUserDBAndInitReq 2, // 115: api.user.User.UpdateToday:input_type -> api.user.UpdateTodayRequest 3, // 116: api.user.User.UpdateLastSendTemplateTime:input_type -> api.user.UpdateLastSendTemplateTimeRequest 54, // 117: api.user.User.CronRemoveExpirationVip:input_type -> google.protobuf.Empty 41, // 118: api.user.User.GetUserInfo:output_type -> api.user.UserInfo 41, // 119: api.user.User.GetUserInfo1:output_type -> api.user.UserInfo 54, // 120: api.user.User.SendPhoneCode:output_type -> google.protobuf.Empty 54, // 121: api.user.User.CheckPhoneCode:output_type -> google.protobuf.Empty 54, // 122: api.user.User.UpdateUserInformation:output_type -> google.protobuf.Empty 81, // 123: api.user.User.CreateUserPersonRoom:output_type -> api.chat.RoomReply 38, // 124: api.user.User.GetUserBalance:output_type -> api.user.UserBalance 82, // 125: api.user.User.UserGetHomeInfo:output_type -> api.common.HomeInfo 83, // 126: api.user.User.UserGetPersonLikedAndLooked:output_type -> api.common.LookedAndLikedNum 84, // 127: api.user.User.FindLookList:output_type -> api.statistics.LookAndLikeListReply 85, // 128: api.user.User.FindTagListBySex:output_type -> api.common.TagListReply 86, // 129: api.user.User.FindOnlineList:output_type -> api.common.RecommendPersonListReply 39, // 130: api.user.User.FindWithinSevenDayRoomList:output_type -> api.user.UserFindChatListReply 39, // 131: api.user.User.FindOverSevenDayRoomList:output_type -> api.user.UserFindChatListReply 39, // 132: api.user.User.FindCloseFriendRoomList:output_type -> api.user.UserFindChatListReply 87, // 133: api.user.User.FindChatRecordList:output_type -> api.common.ChatRecordListReply 88, // 134: api.user.User.FindChatRoomMsg:output_type -> api.common.ChatRoomMsg 89, // 135: api.user.User.GetUserIsLike:output_type -> api.common.IsLike 90, // 136: api.user.User.FindMemeByType:output_type -> api.common.MemeList 91, // 137: api.user.User.FindChatTopic:output_type -> api.common.ChatTopicList 92, // 138: api.user.User.RandomMeme:output_type -> api.common.CommonTextList 92, // 139: api.user.User.RandomSwiftMessage:output_type -> api.common.CommonTextList 93, // 140: api.user.User.FindMemeTitle:output_type -> api.common.MemeTitleList 94, // 141: api.user.User.UserGetChatCard:output_type -> api.common.ChatCardInfo 93, // 142: api.user.User.FindChatTopicTitle:output_type -> api.common.MemeTitleList 54, // 143: api.user.User.UserLike:output_type -> google.protobuf.Empty 54, // 144: api.user.User.UserUnLike:output_type -> google.protobuf.Empty 54, // 145: api.user.User.Report:output_type -> google.protobuf.Empty 95, // 146: api.user.User.FindOverSevenDayAvatar:output_type -> api.common.FindOverSevenDayAvatarReply 54, // 147: api.user.User.UpdateLastScripID:output_type -> google.protobuf.Empty 96, // 148: api.user.User.CreateScrip:output_type -> api.common.ScripID 54, // 149: api.user.User.DeleteScrip:output_type -> google.protobuf.Empty 97, // 150: api.user.User.FindMyScrip:output_type -> api.common.ScripReply 97, // 151: api.user.User.FindOtherScrip:output_type -> api.common.ScripReply 97, // 152: api.user.User.FindRecommendScrip:output_type -> api.common.ScripReply 1, // 153: api.user.User.PersonLookScrip:output_type -> api.user.PersonLookScripReply 98, // 154: api.user.User.PersonClickLookBack:output_type -> api.common.ScripInfo 99, // 155: api.user.User.PersonReplyScrip:output_type -> api.common.ChatRecordInfo 54, // 156: api.user.User.UserDeleteChat:output_type -> google.protobuf.Empty 100, // 157: api.user.User.GetUserAllUnreadNum:output_type -> api.chat.UnreadNumReply 101, // 158: api.user.User.GetUserRoomByPerson:output_type -> api.chat.UserRoomInfo 84, // 159: api.user.User.FindLikeList:output_type -> api.statistics.LookAndLikeListReply 84, // 160: api.user.User.FindLikedList:output_type -> api.statistics.LookAndLikeListReply 54, // 161: api.user.User.UserSetBlackChat:output_type -> google.protobuf.Empty 102, // 162: api.user.User.CheckUserPartnerIsRelationship:output_type -> api.chat.CheckUserPartnerIsRelationshipReply 103, // 163: api.user.User.GetPartnerCircleInfo:output_type -> api.common.AddFriendMessageInfo 104, // 164: api.user.User.GetLookAndLikeStatisticsMessage:output_type -> api.statistics.LookAndLikeMessageReply 105, // 165: api.user.User.GetUserLookNum:output_type -> api.statistics.LookMessageReply 54, // 166: api.user.User.UserFinishInformation:output_type -> google.protobuf.Empty 37, // 167: api.user.User.UserInformationStatus:output_type -> api.user.InformationStatus 54, // 168: api.user.User.UserGetInformationAward:output_type -> google.protobuf.Empty 54, // 169: api.user.User.UnlockLookRecord:output_type -> google.protobuf.Empty 44, // 170: api.user.User.UserRecharge:output_type -> api.user.PayInfo 44, // 171: api.user.User.UserRechargeVip:output_type -> api.user.PayInfo 33, // 172: api.user.User.FindRechargeList:output_type -> api.user.RechargeList 34, // 173: api.user.User.FindVipRechargeList:output_type -> api.user.VipRechargeList 46, // 174: api.user.User.FindPayList:output_type -> api.user.PayOrderList 86, // 175: api.user.User.FindRecommendPersonList:output_type -> api.common.RecommendPersonListReply 31, // 176: api.user.User.FindMatchingAvatarAndNum:output_type -> api.user.FindMatchingAvatarAndNumReply 106, // 177: api.user.User.GetWindowInfo:output_type -> api.chat.WindowInfo 25, // 178: api.user.User.GetUserFreeNum:output_type -> api.user.UserFreeNum 107, // 179: api.user.User.GetRandomMatching:output_type -> api.chat.GetRandomMatchingReply 54, // 180: api.user.User.UnlockVoice:output_type -> google.protobuf.Empty 54, // 181: api.user.User.UnlockPicture:output_type -> google.protobuf.Empty 54, // 182: api.user.User.UpdateUserIsRegister:output_type -> google.protobuf.Empty 81, // 183: api.user.User.CreateUserPartnerRoom:output_type -> api.chat.RoomReply 108, // 184: api.user.User.SendMessage:output_type -> api.common.SendMessageReply 11, // 185: api.user.User.GetVipInfo:output_type -> api.user.VipInfo 109, // 186: api.user.User.FindHandpickUser:output_type -> api.common.HandpickPersonListReply 8, // 187: api.user.User.GetUserLookHandPickNum:output_type -> api.user.GetUserLookHandPickNumReply 54, // 188: api.user.User.SetUserLookHandPickNum:output_type -> google.protobuf.Empty 5, // 189: api.user.User.IsCanGetReturnReword:output_type -> api.user.IsCanGetReturnRewordReply 54, // 190: api.user.User.UserGetReturnReword:output_type -> google.protobuf.Empty 4, // 191: api.user.User.UserPrivacyStatus:output_type -> api.user.UserPrivacyStatusInfo 54, // 192: api.user.User.UserSetPrivacyStatus:output_type -> google.protobuf.Empty 99, // 193: api.user.User.PersonStarScrip:output_type -> api.common.ChatRecordInfo 54, // 194: api.user.User.UpdateUserPhone:output_type -> google.protobuf.Empty 54, // 195: api.user.User.CleanUserUnReadNum:output_type -> google.protobuf.Empty 110, // 196: api.user.User.Certification:output_type -> api.common.CheckIdentifyReply 0, // 197: api.user.User.GetCreditConfig:output_type -> api.user.GetCreditConfigReply 111, // 198: api.user.User.GetUserDBMsg:output_type -> api.common.PersonMsg 112, // 199: api.user.User.FindUserDBList:output_type -> api.common.PersonDBReply 54, // 200: api.user.User.UpdateLastScripIDDB:output_type -> google.protobuf.Empty 54, // 201: api.user.User.UpdateUserLastLoginTime:output_type -> google.protobuf.Empty 111, // 202: api.user.User.GetUserDBMsgByAccountID:output_type -> api.common.PersonMsg 20, // 203: api.user.User.FindRecommendHighQualityUserDBList:output_type -> api.user.FindRecommendHighQualityUserReply 22, // 204: api.user.User.GetUserDBMsgFromWebsocket:output_type -> api.user.GetUserDBMsgFromWebsocketReply 54, // 205: api.user.User.SendMsgReduceCredit:output_type -> google.protobuf.Empty 54, // 206: api.user.User.LookBackScripReduceCredit:output_type -> google.protobuf.Empty 54, // 207: api.user.User.CreateScripReduceCredit:output_type -> google.protobuf.Empty 54, // 208: api.user.User.ReplyScripReduceCredit:output_type -> google.protobuf.Empty 54, // 209: api.user.User.MatchingCredit:output_type -> google.protobuf.Empty 54, // 210: api.user.User.GetAIRobotCredit:output_type -> google.protobuf.Empty 54, // 211: api.user.User.AIMessageSendCredit:output_type -> google.protobuf.Empty 21, // 212: api.user.User.UpdateUserMatchedNumAndReturnUserMsg:output_type -> api.user.UpdateUserMatchedNumAndReturnUserMsgReply 113, // 213: api.user.User.GetRecommendUserDB:output_type -> api.common.PersonDB 54, // 214: api.user.User.ReportUserBlack:output_type -> google.protobuf.Empty 54, // 215: api.user.User.AddUserCredit:output_type -> google.protobuf.Empty 37, // 216: api.user.User.UserInformationStatusDB:output_type -> api.user.InformationStatus 14, // 217: api.user.User.UserGetInformationAwardByActivity:output_type -> api.user.UserGetInformationAwardByActivityReply 9, // 218: api.user.User.FindUserVipDBList:output_type -> api.user.FindUserVipListDBReply 10, // 219: api.user.User.FindUserCertificationDBList:output_type -> api.user.FindUserCertificationDBReply 113, // 220: api.user.User.MatchUserDBWithoutMap:output_type -> api.common.PersonDB 114, // 221: api.user.User.GetUserDBAndInit:output_type -> api.common.PersonDBDetails 54, // 222: api.user.User.UpdateToday:output_type -> google.protobuf.Empty 54, // 223: api.user.User.UpdateLastSendTemplateTime:output_type -> google.protobuf.Empty 54, // 224: api.user.User.CronRemoveExpirationVip:output_type -> google.protobuf.Empty 118, // [118:225] is the sub-list for method output_type 11, // [11:118] is the sub-list for method input_type 11, // [11:11] is the sub-list for extension type_name 11, // [11:11] is the sub-list for extension extendee 0, // [0:11] is the sub-list for field type_name } func init() { file_user_proto_init() } func file_user_proto_init() { if File_user_proto != nil { return } if !protoimpl.UnsafeEnabled { file_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCreditConfigReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PersonLookScripReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateTodayRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateLastSendTemplateTimeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserPrivacyStatusInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsCanGetReturnRewordReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRandomMatchingRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MatchUserDBWithoutMapRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserLookHandPickNumReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindUserVipListDBReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindUserCertificationDBReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VipInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMsgReduceCreditRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserGetInformationAwardByActivityRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserGetInformationAwardByActivityReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddUserCreditRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReportUserBlackRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMessageRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRecommendUserDBRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindRecommendHighQualityUserRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindRecommendHighQualityUserReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateUserMatchedNumAndReturnUserMsgReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserDBMsgFromWebsocketReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateUserMatchedNumRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMsgReduceCreditReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserFreeNum); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplyScripRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PersonLookScripRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserFindScripRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteScripRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateScripRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindMatchingAvatarAndNumReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserRechargeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RechargeList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VipRechargeList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VipRechargeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RechargeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InformationStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserBalance); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserFindChatListReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserChatInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KeyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreatePayRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PayInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PayOrderInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PayOrderList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindPayOrderListRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PayCallbackReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_user_proto_rawDesc, NumEnums: 0, NumMessages: 52, NumExtensions: 0, NumServices: 1, }, GoTypes: file_user_proto_goTypes, DependencyIndexes: file_user_proto_depIdxs, MessageInfos: file_user_proto_msgTypes, }.Build() File_user_proto = out.File file_user_proto_rawDesc = nil file_user_proto_goTypes = nil file_user_proto_depIdxs = nil }