diff --git a/api/accountFiee/accountFiee.pb.go b/api/accountFiee/accountFiee.pb.go index 60a00f5..bf80bfa 100644 --- a/api/accountFiee/accountFiee.pb.go +++ b/api/accountFiee/accountFiee.pb.go @@ -96,6 +96,206 @@ func (MsgType) EnumDescriptor() ([]byte, []int) { return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{0} } +type InviterListRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Ids []uint64 `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InviterListRequest) Reset() { + *x = InviterListRequest{} + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InviterListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InviterListRequest) ProtoMessage() {} + +func (x *InviterListRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InviterListRequest.ProtoReflect.Descriptor instead. +func (*InviterListRequest) Descriptor() ([]byte, []int) { + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{0} +} + +func (x *InviterListRequest) GetIds() []uint64 { + if x != nil { + return x.Ids + } + return nil +} + +type InviterListResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + List []*InviterInfoResponse `protobuf:"bytes,1,rep,name=list,proto3" json:"list"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InviterListResponse) Reset() { + *x = InviterListResponse{} + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InviterListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InviterListResponse) ProtoMessage() {} + +func (x *InviterListResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InviterListResponse.ProtoReflect.Descriptor instead. +func (*InviterListResponse) Descriptor() ([]byte, []int) { + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{1} +} + +func (x *InviterListResponse) GetList() []*InviterInfoResponse { + if x != nil { + return x.List + } + return nil +} + +type InviterInfoRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InviterInfoRequest) Reset() { + *x = InviterInfoRequest{} + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InviterInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InviterInfoRequest) ProtoMessage() {} + +func (x *InviterInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InviterInfoRequest.ProtoReflect.Descriptor instead. +func (*InviterInfoRequest) Descriptor() ([]byte, []int) { + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{2} +} + +func (x *InviterInfoRequest) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +type InviterInfoResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name"` + TelNum string `protobuf:"bytes,4,opt,name=telNum,proto3" json:"telNum"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InviterInfoResponse) Reset() { + *x = InviterInfoResponse{} + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InviterInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InviterInfoResponse) ProtoMessage() {} + +func (x *InviterInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InviterInfoResponse.ProtoReflect.Descriptor instead. +func (*InviterInfoResponse) Descriptor() ([]byte, []int) { + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{3} +} + +func (x *InviterInfoResponse) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *InviterInfoResponse) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *InviterInfoResponse) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *InviterInfoResponse) GetTelNum() string { + if x != nil { + return x.TelNum + } + return "" +} + type VerifySliderStatusRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NonceStr string `protobuf:"bytes,1,opt,name=nonceStr,proto3" json:"nonceStr"` @@ -105,7 +305,7 @@ type VerifySliderStatusRequest struct { func (x *VerifySliderStatusRequest) Reset() { *x = VerifySliderStatusRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[0] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -117,7 +317,7 @@ func (x *VerifySliderStatusRequest) String() string { func (*VerifySliderStatusRequest) ProtoMessage() {} func (x *VerifySliderStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[0] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -130,7 +330,7 @@ func (x *VerifySliderStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifySliderStatusRequest.ProtoReflect.Descriptor instead. func (*VerifySliderStatusRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{0} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{4} } func (x *VerifySliderStatusRequest) GetNonceStr() string { @@ -150,7 +350,7 @@ type VerifySliderStatusResponse struct { func (x *VerifySliderStatusResponse) Reset() { *x = VerifySliderStatusResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[1] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -162,7 +362,7 @@ func (x *VerifySliderStatusResponse) String() string { func (*VerifySliderStatusResponse) ProtoMessage() {} func (x *VerifySliderStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[1] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -175,7 +375,7 @@ func (x *VerifySliderStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifySliderStatusResponse.ProtoReflect.Descriptor instead. func (*VerifySliderStatusResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{1} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{5} } func (x *VerifySliderStatusResponse) GetNonceStr() string { @@ -206,7 +406,7 @@ type SendNationMsgRequest struct { func (x *SendNationMsgRequest) Reset() { *x = SendNationMsgRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[2] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -218,7 +418,7 @@ func (x *SendNationMsgRequest) String() string { func (*SendNationMsgRequest) ProtoMessage() {} func (x *SendNationMsgRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[2] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -231,7 +431,7 @@ func (x *SendNationMsgRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendNationMsgRequest.ProtoReflect.Descriptor instead. func (*SendNationMsgRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{2} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{6} } func (x *SendNationMsgRequest) GetDomain() string { @@ -285,7 +485,7 @@ type VerifySliderCaptchaResponse struct { func (x *VerifySliderCaptchaResponse) Reset() { *x = VerifySliderCaptchaResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[3] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -297,7 +497,7 @@ func (x *VerifySliderCaptchaResponse) String() string { func (*VerifySliderCaptchaResponse) ProtoMessage() {} func (x *VerifySliderCaptchaResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[3] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -310,7 +510,7 @@ func (x *VerifySliderCaptchaResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifySliderCaptchaResponse.ProtoReflect.Descriptor instead. func (*VerifySliderCaptchaResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{3} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{7} } func (x *VerifySliderCaptchaResponse) GetNonceStr() string { @@ -330,7 +530,7 @@ type VerifySliderCaptchaRequest struct { func (x *VerifySliderCaptchaRequest) Reset() { *x = VerifySliderCaptchaRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[4] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -342,7 +542,7 @@ func (x *VerifySliderCaptchaRequest) String() string { func (*VerifySliderCaptchaRequest) ProtoMessage() {} func (x *VerifySliderCaptchaRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[4] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -355,7 +555,7 @@ func (x *VerifySliderCaptchaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifySliderCaptchaRequest.ProtoReflect.Descriptor instead. func (*VerifySliderCaptchaRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{4} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{8} } func (x *VerifySliderCaptchaRequest) GetNonceStr() string { @@ -386,7 +586,7 @@ type GenerateSliderCaptchaResponse struct { func (x *GenerateSliderCaptchaResponse) Reset() { *x = GenerateSliderCaptchaResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[5] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -398,7 +598,7 @@ func (x *GenerateSliderCaptchaResponse) String() string { func (*GenerateSliderCaptchaResponse) ProtoMessage() {} func (x *GenerateSliderCaptchaResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[5] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -411,7 +611,7 @@ func (x *GenerateSliderCaptchaResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateSliderCaptchaResponse.ProtoReflect.Descriptor instead. func (*GenerateSliderCaptchaResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{5} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{9} } func (x *GenerateSliderCaptchaResponse) GetNonceStr() string { @@ -470,7 +670,7 @@ type GenerateSliderCaptchaRequest struct { func (x *GenerateSliderCaptchaRequest) Reset() { *x = GenerateSliderCaptchaRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[6] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -482,7 +682,7 @@ func (x *GenerateSliderCaptchaRequest) String() string { func (*GenerateSliderCaptchaRequest) ProtoMessage() {} func (x *GenerateSliderCaptchaRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[6] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -495,7 +695,7 @@ func (x *GenerateSliderCaptchaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateSliderCaptchaRequest.ProtoReflect.Descriptor instead. func (*GenerateSliderCaptchaRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{6} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{10} } func (x *GenerateSliderCaptchaRequest) GetCanvasWidth() uint64 { @@ -550,7 +750,7 @@ type CheckRealNameResponse struct { func (x *CheckRealNameResponse) Reset() { *x = CheckRealNameResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[7] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -562,7 +762,7 @@ func (x *CheckRealNameResponse) String() string { func (*CheckRealNameResponse) ProtoMessage() {} func (x *CheckRealNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[7] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -575,7 +775,7 @@ func (x *CheckRealNameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckRealNameResponse.ProtoReflect.Descriptor instead. func (*CheckRealNameResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{7} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{11} } func (x *CheckRealNameResponse) GetId() uint64 { @@ -603,7 +803,7 @@ type CheckRealNameRequest struct { func (x *CheckRealNameRequest) Reset() { *x = CheckRealNameRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[8] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -615,7 +815,7 @@ func (x *CheckRealNameRequest) String() string { func (*CheckRealNameRequest) ProtoMessage() {} func (x *CheckRealNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[8] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -628,7 +828,7 @@ func (x *CheckRealNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckRealNameRequest.ProtoReflect.Descriptor instead. func (*CheckRealNameRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{8} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{12} } func (x *CheckRealNameRequest) GetId() uint64 { @@ -664,7 +864,7 @@ type UserListResponse struct { func (x *UserListResponse) Reset() { *x = UserListResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[9] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -676,7 +876,7 @@ func (x *UserListResponse) String() string { func (*UserListResponse) ProtoMessage() {} func (x *UserListResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[9] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -689,7 +889,7 @@ func (x *UserListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UserListResponse.ProtoReflect.Descriptor instead. func (*UserListResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{9} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{13} } func (x *UserListResponse) GetCount() uint64 { @@ -745,13 +945,18 @@ type UserListInfo struct { IdNumber string `protobuf:"bytes,21,opt,name=idNumber,proto3" json:"idNumber"` DateOfBirth string `protobuf:"bytes,22,opt,name=dateOfBirth,proto3" json:"dateOfBirth"` Age string `protobuf:"bytes,23,opt,name=age,proto3" json:"age"` + Email string `protobuf:"bytes,24,opt,name=email,proto3" json:"email"` + AbroadTelAreaCode string `protobuf:"bytes,25,opt,name=AbroadTelAreaCode,proto3" json:"AbroadTelAreaCode"` + AbroadTel string `protobuf:"bytes,26,opt,name=AbroadTel,proto3" json:"AbroadTel"` + InviterName string `protobuf:"bytes,27,opt,name=inviterName,proto3" json:"inviterName"` + InviterCode string `protobuf:"bytes,28,opt,name=inviterCode,proto3" json:"inviterCode"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UserListInfo) Reset() { *x = UserListInfo{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[10] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -763,7 +968,7 @@ func (x *UserListInfo) String() string { func (*UserListInfo) ProtoMessage() {} func (x *UserListInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[10] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -776,7 +981,7 @@ func (x *UserListInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use UserListInfo.ProtoReflect.Descriptor instead. func (*UserListInfo) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{10} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{14} } func (x *UserListInfo) GetId() uint64 { @@ -940,6 +1145,41 @@ func (x *UserListInfo) GetAge() string { return "" } +func (x *UserListInfo) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *UserListInfo) GetAbroadTelAreaCode() string { + if x != nil { + return x.AbroadTelAreaCode + } + return "" +} + +func (x *UserListInfo) GetAbroadTel() string { + if x != nil { + return x.AbroadTel + } + return "" +} + +func (x *UserListInfo) GetInviterName() string { + if x != nil { + return x.InviterName + } + return "" +} + +func (x *UserListInfo) GetInviterCode() string { + if x != nil { + return x.InviterCode + } + return "" +} + type UserListRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain"` @@ -961,7 +1201,7 @@ type UserListRequest struct { func (x *UserListRequest) Reset() { *x = UserListRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[11] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -973,7 +1213,7 @@ func (x *UserListRequest) String() string { func (*UserListRequest) ProtoMessage() {} func (x *UserListRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[11] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -986,7 +1226,7 @@ func (x *UserListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UserListRequest.ProtoReflect.Descriptor instead. func (*UserListRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{11} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{15} } func (x *UserListRequest) GetDomain() string { @@ -1103,13 +1343,17 @@ type UserInfoResponse struct { TelAreaCode string `protobuf:"bytes,19,opt,name=telAreaCode,proto3" json:"telAreaCode"` IdNumber string `protobuf:"bytes,20,opt,name=idNumber,proto3" json:"idNumber"` DateOfBirth string `protobuf:"bytes,21,opt,name=dateOfBirth,proto3" json:"dateOfBirth"` + Email string `protobuf:"bytes,22,opt,name=email,proto3" json:"email"` + AbroadTelAreaCode string `protobuf:"bytes,23,opt,name=AbroadTelAreaCode,proto3" json:"AbroadTelAreaCode"` + AbroadTel string `protobuf:"bytes,24,opt,name=AbroadTel,proto3" json:"AbroadTel"` + InviterId uint64 `protobuf:"varint,25,opt,name=inviterId,proto3" json:"inviterId"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UserInfoResponse) Reset() { *x = UserInfoResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[12] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1121,7 +1365,7 @@ func (x *UserInfoResponse) String() string { func (*UserInfoResponse) ProtoMessage() {} func (x *UserInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[12] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1134,7 +1378,7 @@ func (x *UserInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UserInfoResponse.ProtoReflect.Descriptor instead. func (*UserInfoResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{12} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{16} } func (x *UserInfoResponse) GetId() uint64 { @@ -1284,6 +1528,34 @@ func (x *UserInfoResponse) GetDateOfBirth() string { return "" } +func (x *UserInfoResponse) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *UserInfoResponse) GetAbroadTelAreaCode() string { + if x != nil { + return x.AbroadTelAreaCode + } + return "" +} + +func (x *UserInfoResponse) GetAbroadTel() string { + if x != nil { + return x.AbroadTel + } + return "" +} + +func (x *UserInfoResponse) GetInviterId() uint64 { + if x != nil { + return x.InviterId + } + return 0 +} + type RealNameResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` @@ -1294,7 +1566,7 @@ type RealNameResponse struct { func (x *RealNameResponse) Reset() { *x = RealNameResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[13] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1306,7 +1578,7 @@ func (x *RealNameResponse) String() string { func (*RealNameResponse) ProtoMessage() {} func (x *RealNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[13] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1319,7 +1591,7 @@ func (x *RealNameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RealNameResponse.ProtoReflect.Descriptor instead. func (*RealNameResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{13} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{17} } func (x *RealNameResponse) GetId() uint64 { @@ -1356,7 +1628,7 @@ type RealNameRequest struct { func (x *RealNameRequest) Reset() { *x = RealNameRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[14] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1368,7 +1640,7 @@ func (x *RealNameRequest) String() string { func (*RealNameRequest) ProtoMessage() {} func (x *RealNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[14] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1381,7 +1653,7 @@ func (x *RealNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RealNameRequest.ProtoReflect.Descriptor instead. func (*RealNameRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{14} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{18} } func (x *RealNameRequest) GetId() uint64 { @@ -1479,7 +1751,7 @@ type RegisterResponse struct { func (x *RegisterResponse) Reset() { *x = RegisterResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[15] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1491,7 +1763,7 @@ func (x *RegisterResponse) String() string { func (*RegisterResponse) ProtoMessage() {} func (x *RegisterResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[15] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1504,7 +1776,7 @@ func (x *RegisterResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisterResponse.ProtoReflect.Descriptor instead. func (*RegisterResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{15} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{19} } func (x *RegisterResponse) GetID() uint64 { @@ -1538,7 +1810,7 @@ type UsersByJobNumRequest struct { func (x *UsersByJobNumRequest) Reset() { *x = UsersByJobNumRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[16] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1550,7 +1822,7 @@ func (x *UsersByJobNumRequest) String() string { func (*UsersByJobNumRequest) ProtoMessage() {} func (x *UsersByJobNumRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[16] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1563,7 +1835,7 @@ func (x *UsersByJobNumRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UsersByJobNumRequest.ProtoReflect.Descriptor instead. func (*UsersByJobNumRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{16} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{20} } func (x *UsersByJobNumRequest) GetDomain() string { @@ -1591,7 +1863,7 @@ type QueryPersonnelWithTheSameNameRequest struct { func (x *QueryPersonnelWithTheSameNameRequest) Reset() { *x = QueryPersonnelWithTheSameNameRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[17] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1603,7 +1875,7 @@ func (x *QueryPersonnelWithTheSameNameRequest) String() string { func (*QueryPersonnelWithTheSameNameRequest) ProtoMessage() {} func (x *QueryPersonnelWithTheSameNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[17] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1616,7 +1888,7 @@ func (x *QueryPersonnelWithTheSameNameRequest) ProtoReflect() protoreflect.Messa // Deprecated: Use QueryPersonnelWithTheSameNameRequest.ProtoReflect.Descriptor instead. func (*QueryPersonnelWithTheSameNameRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{17} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{21} } func (x *QueryPersonnelWithTheSameNameRequest) GetNames() []string { @@ -1650,7 +1922,7 @@ type QueryPersonnelWithTheSameNameResponse struct { func (x *QueryPersonnelWithTheSameNameResponse) Reset() { *x = QueryPersonnelWithTheSameNameResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[18] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1662,7 +1934,7 @@ func (x *QueryPersonnelWithTheSameNameResponse) String() string { func (*QueryPersonnelWithTheSameNameResponse) ProtoMessage() {} func (x *QueryPersonnelWithTheSameNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[18] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1675,7 +1947,7 @@ func (x *QueryPersonnelWithTheSameNameResponse) ProtoReflect() protoreflect.Mess // Deprecated: Use QueryPersonnelWithTheSameNameResponse.ProtoReflect.Descriptor instead. func (*QueryPersonnelWithTheSameNameResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{18} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{22} } func (x *QueryPersonnelWithTheSameNameResponse) GetNames() []string { @@ -1718,7 +1990,7 @@ type ListV2Request struct { func (x *ListV2Request) Reset() { *x = ListV2Request{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[19] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1730,7 +2002,7 @@ func (x *ListV2Request) String() string { func (*ListV2Request) ProtoMessage() {} func (x *ListV2Request) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[19] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1743,7 +2015,7 @@ func (x *ListV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ListV2Request.ProtoReflect.Descriptor instead. func (*ListV2Request) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{19} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{23} } func (x *ListV2Request) GetDomain() string { @@ -1888,7 +2160,7 @@ type SendClockInWechatRequest struct { func (x *SendClockInWechatRequest) Reset() { *x = SendClockInWechatRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[20] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1900,7 +2172,7 @@ func (x *SendClockInWechatRequest) String() string { func (*SendClockInWechatRequest) ProtoMessage() {} func (x *SendClockInWechatRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[20] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1913,7 +2185,7 @@ func (x *SendClockInWechatRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendClockInWechatRequest.ProtoReflect.Descriptor instead. func (*SendClockInWechatRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{20} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{24} } func (x *SendClockInWechatRequest) GetDomain() string { @@ -1983,7 +2255,7 @@ type MailAccountByNickNameRequest struct { func (x *MailAccountByNickNameRequest) Reset() { *x = MailAccountByNickNameRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[21] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1995,7 +2267,7 @@ func (x *MailAccountByNickNameRequest) String() string { func (*MailAccountByNickNameRequest) ProtoMessage() {} func (x *MailAccountByNickNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[21] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2008,7 +2280,7 @@ func (x *MailAccountByNickNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MailAccountByNickNameRequest.ProtoReflect.Descriptor instead. func (*MailAccountByNickNameRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{21} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{25} } func (x *MailAccountByNickNameRequest) GetDomain() string { @@ -2043,7 +2315,7 @@ type CreateMaiAccountRequest struct { func (x *CreateMaiAccountRequest) Reset() { *x = CreateMaiAccountRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[22] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2055,7 +2327,7 @@ func (x *CreateMaiAccountRequest) String() string { func (*CreateMaiAccountRequest) ProtoMessage() {} func (x *CreateMaiAccountRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[22] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2068,7 +2340,7 @@ func (x *CreateMaiAccountRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateMaiAccountRequest.ProtoReflect.Descriptor instead. func (*CreateMaiAccountRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{22} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{26} } func (x *CreateMaiAccountRequest) GetID() uint32 { @@ -2102,7 +2374,7 @@ type MaiAccountResponse struct { func (x *MaiAccountResponse) Reset() { *x = MaiAccountResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[23] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2114,7 +2386,7 @@ func (x *MaiAccountResponse) String() string { func (*MaiAccountResponse) ProtoMessage() {} func (x *MaiAccountResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[23] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2127,7 +2399,7 @@ func (x *MaiAccountResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MaiAccountResponse.ProtoReflect.Descriptor instead. func (*MaiAccountResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{23} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{27} } func (x *MaiAccountResponse) GetEnglishName() string { @@ -2158,7 +2430,7 @@ type FddCreateUserRequest struct { func (x *FddCreateUserRequest) Reset() { *x = FddCreateUserRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[24] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2170,7 +2442,7 @@ func (x *FddCreateUserRequest) String() string { func (*FddCreateUserRequest) ProtoMessage() {} func (x *FddCreateUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[24] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2183,7 +2455,7 @@ func (x *FddCreateUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FddCreateUserRequest.ProtoReflect.Descriptor instead. func (*FddCreateUserRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{24} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{28} } func (x *FddCreateUserRequest) GetOpenid() string { @@ -2231,7 +2503,7 @@ type WxBoxUserInfoRequest struct { func (x *WxBoxUserInfoRequest) Reset() { *x = WxBoxUserInfoRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[25] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2243,7 +2515,7 @@ func (x *WxBoxUserInfoRequest) String() string { func (*WxBoxUserInfoRequest) ProtoMessage() {} func (x *WxBoxUserInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[25] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2256,7 +2528,7 @@ func (x *WxBoxUserInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WxBoxUserInfoRequest.ProtoReflect.Descriptor instead. func (*WxBoxUserInfoRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{25} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{29} } func (x *WxBoxUserInfoRequest) GetOpenid() string { @@ -2284,7 +2556,7 @@ type WxGetOpenIdByCodeRequest struct { func (x *WxGetOpenIdByCodeRequest) Reset() { *x = WxGetOpenIdByCodeRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[26] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2296,7 +2568,7 @@ func (x *WxGetOpenIdByCodeRequest) String() string { func (*WxGetOpenIdByCodeRequest) ProtoMessage() {} func (x *WxGetOpenIdByCodeRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[26] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2309,7 +2581,7 @@ func (x *WxGetOpenIdByCodeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WxGetOpenIdByCodeRequest.ProtoReflect.Descriptor instead. func (*WxGetOpenIdByCodeRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{26} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{30} } func (x *WxGetOpenIdByCodeRequest) GetCode() string { @@ -2342,7 +2614,7 @@ type WxGetOpenIdByCodeResponse struct { func (x *WxGetOpenIdByCodeResponse) Reset() { *x = WxGetOpenIdByCodeResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[27] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2354,7 +2626,7 @@ func (x *WxGetOpenIdByCodeResponse) String() string { func (*WxGetOpenIdByCodeResponse) ProtoMessage() {} func (x *WxGetOpenIdByCodeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[27] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2367,7 +2639,7 @@ func (x *WxGetOpenIdByCodeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WxGetOpenIdByCodeResponse.ProtoReflect.Descriptor instead. func (*WxGetOpenIdByCodeResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{27} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{31} } func (x *WxGetOpenIdByCodeResponse) GetOpenId() string { @@ -2386,7 +2658,7 @@ type WxBoxTelNumByCodeResponse struct { func (x *WxBoxTelNumByCodeResponse) Reset() { *x = WxBoxTelNumByCodeResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[28] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2398,7 +2670,7 @@ func (x *WxBoxTelNumByCodeResponse) String() string { func (*WxBoxTelNumByCodeResponse) ProtoMessage() {} func (x *WxBoxTelNumByCodeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[28] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2411,7 +2683,7 @@ func (x *WxBoxTelNumByCodeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WxBoxTelNumByCodeResponse.ProtoReflect.Descriptor instead. func (*WxBoxTelNumByCodeResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{28} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{32} } func (x *WxBoxTelNumByCodeResponse) GetTelNum() string { @@ -2435,7 +2707,7 @@ type WxBoxUserInfo struct { func (x *WxBoxUserInfo) Reset() { *x = WxBoxUserInfo{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[29] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2447,7 +2719,7 @@ func (x *WxBoxUserInfo) String() string { func (*WxBoxUserInfo) ProtoMessage() {} func (x *WxBoxUserInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[29] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2460,7 +2732,7 @@ func (x *WxBoxUserInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WxBoxUserInfo.ProtoReflect.Descriptor instead. func (*WxBoxUserInfo) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{29} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{33} } func (x *WxBoxUserInfo) GetOpenId() string { @@ -2517,7 +2789,7 @@ type FddInfo struct { func (x *FddInfo) Reset() { *x = FddInfo{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[30] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2529,7 +2801,7 @@ func (x *FddInfo) String() string { func (*FddInfo) ProtoMessage() {} func (x *FddInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[30] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2542,7 +2814,7 @@ func (x *FddInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FddInfo.ProtoReflect.Descriptor instead. func (*FddInfo) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{30} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{34} } func (x *FddInfo) GetID() uint64 { @@ -2594,7 +2866,7 @@ type UserInfo struct { func (x *UserInfo) Reset() { *x = UserInfo{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[31] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2606,7 +2878,7 @@ func (x *UserInfo) String() string { func (*UserInfo) ProtoMessage() {} func (x *UserInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[31] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2619,7 +2891,7 @@ func (x *UserInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. func (*UserInfo) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{31} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{35} } func (x *UserInfo) GetID() uint64 { @@ -2722,7 +2994,7 @@ type CommonRequest struct { func (x *CommonRequest) Reset() { *x = CommonRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[32] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2734,7 +3006,7 @@ func (x *CommonRequest) String() string { func (*CommonRequest) ProtoMessage() {} func (x *CommonRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[32] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2747,7 +3019,7 @@ func (x *CommonRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonRequest.ProtoReflect.Descriptor instead. func (*CommonRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{32} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{36} } func (x *CommonRequest) GetID() uint64 { @@ -2766,7 +3038,7 @@ type WxAppRequest struct { func (x *WxAppRequest) Reset() { *x = WxAppRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[33] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2778,7 +3050,7 @@ func (x *WxAppRequest) String() string { func (*WxAppRequest) ProtoMessage() {} func (x *WxAppRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[33] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2791,7 +3063,7 @@ func (x *WxAppRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WxAppRequest.ProtoReflect.Descriptor instead. func (*WxAppRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{33} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{37} } func (x *WxAppRequest) GetGhId() string { @@ -2811,7 +3083,7 @@ type WxAppResponse struct { func (x *WxAppResponse) Reset() { *x = WxAppResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[34] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2823,7 +3095,7 @@ func (x *WxAppResponse) String() string { func (*WxAppResponse) ProtoMessage() {} func (x *WxAppResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[34] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2836,7 +3108,7 @@ func (x *WxAppResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WxAppResponse.ProtoReflect.Descriptor instead. func (*WxAppResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{34} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{38} } func (x *WxAppResponse) GetAppID() string { @@ -2863,7 +3135,7 @@ type WxUserUpdateRequest struct { func (x *WxUserUpdateRequest) Reset() { *x = WxUserUpdateRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[35] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2875,7 +3147,7 @@ func (x *WxUserUpdateRequest) String() string { func (*WxUserUpdateRequest) ProtoMessage() {} func (x *WxUserUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[35] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2888,7 +3160,7 @@ func (x *WxUserUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WxUserUpdateRequest.ProtoReflect.Descriptor instead. func (*WxUserUpdateRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{35} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{39} } func (x *WxUserUpdateRequest) GetWxID() uint32 { @@ -2915,7 +3187,7 @@ type WxUserOrCreateRequest struct { func (x *WxUserOrCreateRequest) Reset() { *x = WxUserOrCreateRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[36] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2927,7 +3199,7 @@ func (x *WxUserOrCreateRequest) String() string { func (*WxUserOrCreateRequest) ProtoMessage() {} func (x *WxUserOrCreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[36] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2940,7 +3212,7 @@ func (x *WxUserOrCreateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WxUserOrCreateRequest.ProtoReflect.Descriptor instead. func (*WxUserOrCreateRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{36} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{40} } func (x *WxUserOrCreateRequest) GetOpenID() string { @@ -2970,7 +3242,7 @@ type WxUserResponse struct { func (x *WxUserResponse) Reset() { *x = WxUserResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[37] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2982,7 +3254,7 @@ func (x *WxUserResponse) String() string { func (*WxUserResponse) ProtoMessage() {} func (x *WxUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[37] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2995,7 +3267,7 @@ func (x *WxUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WxUserResponse.ProtoReflect.Descriptor instead. func (*WxUserResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{37} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{41} } func (x *WxUserResponse) GetOpenID() string { @@ -3042,7 +3314,7 @@ type LoginLogsResponse struct { func (x *LoginLogsResponse) Reset() { *x = LoginLogsResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[38] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3054,7 +3326,7 @@ func (x *LoginLogsResponse) String() string { func (*LoginLogsResponse) ProtoMessage() {} func (x *LoginLogsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[38] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3067,7 +3339,7 @@ func (x *LoginLogsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginLogsResponse.ProtoReflect.Descriptor instead. func (*LoginLogsResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{38} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{42} } func (x *LoginLogsResponse) GetData() []*LoginLog { @@ -3096,7 +3368,7 @@ type LoginLog struct { func (x *LoginLog) Reset() { *x = LoginLog{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[39] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3108,7 +3380,7 @@ func (x *LoginLog) String() string { func (*LoginLog) ProtoMessage() {} func (x *LoginLog) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[39] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3121,7 +3393,7 @@ func (x *LoginLog) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginLog.ProtoReflect.Descriptor instead. func (*LoginLog) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{39} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{43} } func (x *LoginLog) GetDomain() string { @@ -3211,7 +3483,7 @@ type OnlineLogByIdRequest struct { func (x *OnlineLogByIdRequest) Reset() { *x = OnlineLogByIdRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[40] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3223,7 +3495,7 @@ func (x *OnlineLogByIdRequest) String() string { func (*OnlineLogByIdRequest) ProtoMessage() {} func (x *OnlineLogByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[40] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3236,7 +3508,7 @@ func (x *OnlineLogByIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OnlineLogByIdRequest.ProtoReflect.Descriptor instead. func (*OnlineLogByIdRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{40} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{44} } func (x *OnlineLogByIdRequest) GetDomain() string { @@ -3263,7 +3535,7 @@ type LoginInfosByUserIdRequest struct { func (x *LoginInfosByUserIdRequest) Reset() { *x = LoginInfosByUserIdRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[41] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3275,7 +3547,7 @@ func (x *LoginInfosByUserIdRequest) String() string { func (*LoginInfosByUserIdRequest) ProtoMessage() {} func (x *LoginInfosByUserIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[41] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3288,7 +3560,7 @@ func (x *LoginInfosByUserIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginInfosByUserIdRequest.ProtoReflect.Descriptor instead. func (*LoginInfosByUserIdRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{41} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{45} } func (x *LoginInfosByUserIdRequest) GetDomain() string { @@ -3319,7 +3591,7 @@ type SendNewTelNumMsgRequest struct { func (x *SendNewTelNumMsgRequest) Reset() { *x = SendNewTelNumMsgRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[42] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3331,7 +3603,7 @@ func (x *SendNewTelNumMsgRequest) String() string { func (*SendNewTelNumMsgRequest) ProtoMessage() {} func (x *SendNewTelNumMsgRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[42] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3344,7 +3616,7 @@ func (x *SendNewTelNumMsgRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendNewTelNumMsgRequest.ProtoReflect.Descriptor instead. func (*SendNewTelNumMsgRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{42} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{46} } func (x *SendNewTelNumMsgRequest) GetDomain() string { @@ -3399,7 +3671,7 @@ type UserByTelRequest struct { func (x *UserByTelRequest) Reset() { *x = UserByTelRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[43] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3411,7 +3683,7 @@ func (x *UserByTelRequest) String() string { func (*UserByTelRequest) ProtoMessage() {} func (x *UserByTelRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[43] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3424,7 +3696,7 @@ func (x *UserByTelRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UserByTelRequest.ProtoReflect.Descriptor instead. func (*UserByTelRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{43} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{47} } func (x *UserByTelRequest) GetDomain() string { @@ -3449,7 +3721,7 @@ type CommonResponse struct { func (x *CommonResponse) Reset() { *x = CommonResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[44] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3461,7 +3733,7 @@ func (x *CommonResponse) String() string { func (*CommonResponse) ProtoMessage() {} func (x *CommonResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[44] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3474,7 +3746,7 @@ func (x *CommonResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonResponse.ProtoReflect.Descriptor instead. func (*CommonResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{44} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{48} } type UsersByTelRequest struct { @@ -3487,7 +3759,7 @@ type UsersByTelRequest struct { func (x *UsersByTelRequest) Reset() { *x = UsersByTelRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[45] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3499,7 +3771,7 @@ func (x *UsersByTelRequest) String() string { func (*UsersByTelRequest) ProtoMessage() {} func (x *UsersByTelRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[45] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3512,7 +3784,7 @@ func (x *UsersByTelRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UsersByTelRequest.ProtoReflect.Descriptor instead. func (*UsersByTelRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{45} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{49} } func (x *UsersByTelRequest) GetDomain() string { @@ -3544,7 +3816,7 @@ type ListByIDsRequest struct { func (x *ListByIDsRequest) Reset() { *x = ListByIDsRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[46] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3556,7 +3828,7 @@ func (x *ListByIDsRequest) String() string { func (*ListByIDsRequest) ProtoMessage() {} func (x *ListByIDsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[46] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3569,7 +3841,7 @@ func (x *ListByIDsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListByIDsRequest.ProtoReflect.Descriptor instead. func (*ListByIDsRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{46} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{50} } func (x *ListByIDsRequest) GetDomain() string { @@ -3638,7 +3910,7 @@ type SendMsgRequest struct { func (x *SendMsgRequest) Reset() { *x = SendMsgRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[47] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3650,7 +3922,7 @@ func (x *SendMsgRequest) String() string { func (*SendMsgRequest) ProtoMessage() {} func (x *SendMsgRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[47] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3663,7 +3935,7 @@ func (x *SendMsgRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendMsgRequest.ProtoReflect.Descriptor instead. func (*SendMsgRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{47} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{51} } func (x *SendMsgRequest) GetDomain() string { @@ -3738,7 +4010,7 @@ type SendCustomMsgRequest struct { func (x *SendCustomMsgRequest) Reset() { *x = SendCustomMsgRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[48] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3750,7 +4022,7 @@ func (x *SendCustomMsgRequest) String() string { func (*SendCustomMsgRequest) ProtoMessage() {} func (x *SendCustomMsgRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[48] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3763,7 +4035,7 @@ func (x *SendCustomMsgRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendCustomMsgRequest.ProtoReflect.Descriptor instead. func (*SendCustomMsgRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{48} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{52} } func (x *SendCustomMsgRequest) GetDomain() string { @@ -3835,7 +4107,7 @@ type CheckMsgRequest struct { func (x *CheckMsgRequest) Reset() { *x = CheckMsgRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[49] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3847,7 +4119,7 @@ func (x *CheckMsgRequest) String() string { func (*CheckMsgRequest) ProtoMessage() {} func (x *CheckMsgRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[49] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3860,7 +4132,7 @@ func (x *CheckMsgRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckMsgRequest.ProtoReflect.Descriptor instead. func (*CheckMsgRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{49} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{53} } func (x *CheckMsgRequest) GetDomain() string { @@ -3906,7 +4178,7 @@ type SendMsgStatusResponse struct { func (x *SendMsgStatusResponse) Reset() { *x = SendMsgStatusResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[50] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3918,7 +4190,7 @@ func (x *SendMsgStatusResponse) String() string { func (*SendMsgStatusResponse) ProtoMessage() {} func (x *SendMsgStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[50] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3931,7 +4203,7 @@ func (x *SendMsgStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SendMsgStatusResponse.ProtoReflect.Descriptor instead. func (*SendMsgStatusResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{50} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{54} } type RemoveRequest struct { @@ -3945,7 +4217,7 @@ type RemoveRequest struct { func (x *RemoveRequest) Reset() { *x = RemoveRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[51] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3957,7 +4229,7 @@ func (x *RemoveRequest) String() string { func (*RemoveRequest) ProtoMessage() {} func (x *RemoveRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[51] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3970,7 +4242,7 @@ func (x *RemoveRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveRequest.ProtoReflect.Descriptor instead. func (*RemoveRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{51} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{55} } func (x *RemoveRequest) GetDomain() string { @@ -4017,7 +4289,7 @@ type WriteOffRequest struct { func (x *WriteOffRequest) Reset() { *x = WriteOffRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[52] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4029,7 +4301,7 @@ func (x *WriteOffRequest) String() string { func (*WriteOffRequest) ProtoMessage() {} func (x *WriteOffRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[52] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4042,7 +4314,7 @@ func (x *WriteOffRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WriteOffRequest.ProtoReflect.Descriptor instead. func (*WriteOffRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{52} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{56} } func (x *WriteOffRequest) GetId() uint64 { @@ -4166,7 +4438,7 @@ type WriteOffListRequest struct { func (x *WriteOffListRequest) Reset() { *x = WriteOffListRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[53] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4178,7 +4450,7 @@ func (x *WriteOffListRequest) String() string { func (*WriteOffListRequest) ProtoMessage() {} func (x *WriteOffListRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[53] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4191,7 +4463,7 @@ func (x *WriteOffListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WriteOffListRequest.ProtoReflect.Descriptor instead. func (*WriteOffListRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{53} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{57} } func (x *WriteOffListRequest) GetPage() uint64 { @@ -4260,7 +4532,7 @@ type WriteOffApproveRequest struct { func (x *WriteOffApproveRequest) Reset() { *x = WriteOffApproveRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[54] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4272,7 +4544,7 @@ func (x *WriteOffApproveRequest) String() string { func (*WriteOffApproveRequest) ProtoMessage() {} func (x *WriteOffApproveRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[54] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4285,7 +4557,7 @@ func (x *WriteOffApproveRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WriteOffApproveRequest.ProtoReflect.Descriptor instead. func (*WriteOffApproveRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{54} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{58} } func (x *WriteOffApproveRequest) GetId() uint64 { @@ -4312,7 +4584,7 @@ type WriteOffListResponse struct { func (x *WriteOffListResponse) Reset() { *x = WriteOffListResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[55] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4324,7 +4596,7 @@ func (x *WriteOffListResponse) String() string { func (*WriteOffListResponse) ProtoMessage() {} func (x *WriteOffListResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[55] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4337,7 +4609,7 @@ func (x *WriteOffListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WriteOffListResponse.ProtoReflect.Descriptor instead. func (*WriteOffListResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{55} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{59} } func (x *WriteOffListResponse) GetTotal() int64 { @@ -4362,7 +4634,7 @@ type RemoveResponse struct { func (x *RemoveResponse) Reset() { *x = RemoveResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[56] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4374,7 +4646,7 @@ func (x *RemoveResponse) String() string { func (*RemoveResponse) ProtoMessage() {} func (x *RemoveResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[56] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4387,22 +4659,25 @@ func (x *RemoveResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveResponse.ProtoReflect.Descriptor instead. func (*RemoveResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{56} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{60} } type UpdateRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID"` //ID - Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain"` - Language string `protobuf:"bytes,3,opt,name=Language,json=language,proto3" json:"Language"` - NickName string `protobuf:"bytes,4,opt,name=NickName,json=nickName,proto3" json:"NickName"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID"` //ID + Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain"` + Language string `protobuf:"bytes,3,opt,name=Language,json=language,proto3" json:"Language"` + NickName string `protobuf:"bytes,4,opt,name=NickName,json=nickName,proto3" json:"NickName"` + Email string `protobuf:"bytes,5,opt,name=Email,json=email,proto3" json:"Email"` + AbroadTel string `protobuf:"bytes,6,opt,name=AbroadTel,json=abroadTel,proto3" json:"AbroadTel"` + AbroadTelAreaCode string `protobuf:"bytes,7,opt,name=AbroadTelAreaCode,json=abroadTelAreaCode,proto3" json:"AbroadTelAreaCode"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdateRequest) Reset() { *x = UpdateRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[57] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4414,7 +4689,7 @@ func (x *UpdateRequest) String() string { func (*UpdateRequest) ProtoMessage() {} func (x *UpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[57] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4427,7 +4702,7 @@ func (x *UpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateRequest.ProtoReflect.Descriptor instead. func (*UpdateRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{57} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{61} } func (x *UpdateRequest) GetID() uint64 { @@ -4458,6 +4733,27 @@ func (x *UpdateRequest) GetNickName() string { return "" } +func (x *UpdateRequest) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *UpdateRequest) GetAbroadTel() string { + if x != nil { + return x.AbroadTel + } + return "" +} + +func (x *UpdateRequest) GetAbroadTelAreaCode() string { + if x != nil { + return x.AbroadTelAreaCode + } + return "" +} + type Operator struct { state protoimpl.MessageState `protogen:"open.v1"` ID uint32 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID"` @@ -4468,7 +4764,7 @@ type Operator struct { func (x *Operator) Reset() { *x = Operator{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[58] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4480,7 +4776,7 @@ func (x *Operator) String() string { func (*Operator) ProtoMessage() {} func (x *Operator) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[58] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4493,7 +4789,7 @@ func (x *Operator) ProtoReflect() protoreflect.Message { // Deprecated: Use Operator.ProtoReflect.Descriptor instead. func (*Operator) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{58} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{62} } func (x *Operator) GetID() uint32 { @@ -4522,7 +4818,7 @@ type TrainVideo struct { func (x *TrainVideo) Reset() { *x = TrainVideo{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[59] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4534,7 +4830,7 @@ func (x *TrainVideo) String() string { func (*TrainVideo) ProtoMessage() {} func (x *TrainVideo) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[59] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4547,7 +4843,7 @@ func (x *TrainVideo) ProtoReflect() protoreflect.Message { // Deprecated: Use TrainVideo.ProtoReflect.Descriptor instead. func (*TrainVideo) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{59} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{63} } func (x *TrainVideo) GetTrainUUID() string { @@ -4586,7 +4882,7 @@ type UpdateResponse struct { func (x *UpdateResponse) Reset() { *x = UpdateResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[60] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4598,7 +4894,7 @@ func (x *UpdateResponse) String() string { func (*UpdateResponse) ProtoMessage() {} func (x *UpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[60] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4611,7 +4907,7 @@ func (x *UpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateResponse.ProtoReflect.Descriptor instead. func (*UpdateResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{60} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{64} } type PrivacyInfoRequest struct { @@ -4625,7 +4921,7 @@ type PrivacyInfoRequest struct { func (x *PrivacyInfoRequest) Reset() { *x = PrivacyInfoRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[61] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4637,7 +4933,7 @@ func (x *PrivacyInfoRequest) String() string { func (*PrivacyInfoRequest) ProtoMessage() {} func (x *PrivacyInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[61] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4650,7 +4946,7 @@ func (x *PrivacyInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PrivacyInfoRequest.ProtoReflect.Descriptor instead. func (*PrivacyInfoRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{61} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{65} } func (x *PrivacyInfoRequest) GetID() uint64 { @@ -4690,7 +4986,7 @@ type ListRequest struct { func (x *ListRequest) Reset() { *x = ListRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[62] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4702,7 +4998,7 @@ func (x *ListRequest) String() string { func (*ListRequest) ProtoMessage() {} func (x *ListRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[62] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4715,7 +5011,7 @@ func (x *ListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRequest.ProtoReflect.Descriptor instead. func (*ListRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{62} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{66} } func (x *ListRequest) GetDomain() string { @@ -4786,7 +5082,7 @@ type ListResponse struct { func (x *ListResponse) Reset() { *x = ListResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[63] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4798,7 +5094,7 @@ func (x *ListResponse) String() string { func (*ListResponse) ProtoMessage() {} func (x *ListResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[63] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4811,7 +5107,7 @@ func (x *ListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListResponse.ProtoReflect.Descriptor instead. func (*ListResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{63} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{67} } func (x *ListResponse) GetStatus() string { @@ -4853,7 +5149,7 @@ type InfoRequest struct { func (x *InfoRequest) Reset() { *x = InfoRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[64] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4865,7 +5161,7 @@ func (x *InfoRequest) String() string { func (*InfoRequest) ProtoMessage() {} func (x *InfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[64] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4878,7 +5174,7 @@ func (x *InfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InfoRequest.ProtoReflect.Descriptor instead. func (*InfoRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{64} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{68} } func (x *InfoRequest) GetDomain() string { @@ -4913,7 +5209,7 @@ type InfoResponse struct { func (x *InfoResponse) Reset() { *x = InfoResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[65] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4925,7 +5221,7 @@ func (x *InfoResponse) String() string { func (*InfoResponse) ProtoMessage() {} func (x *InfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[65] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4938,7 +5234,7 @@ func (x *InfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use InfoResponse.ProtoReflect.Descriptor instead. func (*InfoResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{65} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{69} } func (x *InfoResponse) GetStatus() string { @@ -4975,7 +5271,7 @@ type DecryptJwtResponse struct { func (x *DecryptJwtResponse) Reset() { *x = DecryptJwtResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[66] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4987,7 +5283,7 @@ func (x *DecryptJwtResponse) String() string { func (*DecryptJwtResponse) ProtoMessage() {} func (x *DecryptJwtResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[66] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5000,7 +5296,7 @@ func (x *DecryptJwtResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DecryptJwtResponse.ProtoReflect.Descriptor instead. func (*DecryptJwtResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{66} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{70} } func (x *DecryptJwtResponse) GetDomain() string { @@ -5048,7 +5344,7 @@ type DecryptJwtRequest struct { func (x *DecryptJwtRequest) Reset() { *x = DecryptJwtRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[67] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5060,7 +5356,7 @@ func (x *DecryptJwtRequest) String() string { func (*DecryptJwtRequest) ProtoMessage() {} func (x *DecryptJwtRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[67] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5073,7 +5369,7 @@ func (x *DecryptJwtRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DecryptJwtRequest.ProtoReflect.Descriptor instead. func (*DecryptJwtRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{67} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{71} } func (x *DecryptJwtRequest) GetToken() string { @@ -5100,7 +5396,7 @@ type CheckPwdRequest struct { func (x *CheckPwdRequest) Reset() { *x = CheckPwdRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[68] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5112,7 +5408,7 @@ func (x *CheckPwdRequest) String() string { func (*CheckPwdRequest) ProtoMessage() {} func (x *CheckPwdRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[68] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5125,7 +5421,7 @@ func (x *CheckPwdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckPwdRequest.ProtoReflect.Descriptor instead. func (*CheckPwdRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{68} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{72} } func (x *CheckPwdRequest) GetToken() string { @@ -5153,7 +5449,7 @@ type AuthenticationRequest struct { func (x *AuthenticationRequest) Reset() { *x = AuthenticationRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[69] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5165,7 +5461,7 @@ func (x *AuthenticationRequest) String() string { func (*AuthenticationRequest) ProtoMessage() {} func (x *AuthenticationRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[69] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5178,7 +5474,7 @@ func (x *AuthenticationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthenticationRequest.ProtoReflect.Descriptor instead. func (*AuthenticationRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{69} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{73} } func (x *AuthenticationRequest) GetName() string { @@ -5213,7 +5509,7 @@ type RequestStatus struct { func (x *RequestStatus) Reset() { *x = RequestStatus{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[70] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5225,7 +5521,7 @@ func (x *RequestStatus) String() string { func (*RequestStatus) ProtoMessage() {} func (x *RequestStatus) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[70] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5238,7 +5534,7 @@ func (x *RequestStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use RequestStatus.ProtoReflect.Descriptor instead. func (*RequestStatus) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{70} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{74} } func (x *RequestStatus) GetStatus() string { @@ -5271,13 +5567,15 @@ type RegistRequest struct { TelAreaCode string `protobuf:"bytes,5,opt,name=telAreaCode,proto3" json:"telAreaCode"` Language string `protobuf:"bytes,6,opt,name=language,proto3" json:"language"` NickName string `protobuf:"bytes,7,opt,name=nickName,proto3" json:"nickName"` + InviterID uint64 `protobuf:"varint,8,opt,name=inviterID,proto3" json:"inviterID"` + InviterCode string `protobuf:"bytes,9,opt,name=inviterCode,proto3" json:"inviterCode"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *RegistRequest) Reset() { *x = RegistRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[71] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5289,7 +5587,7 @@ func (x *RegistRequest) String() string { func (*RegistRequest) ProtoMessage() {} func (x *RegistRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[71] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5302,7 +5600,7 @@ func (x *RegistRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RegistRequest.ProtoReflect.Descriptor instead. func (*RegistRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{71} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{75} } func (x *RegistRequest) GetDomain() string { @@ -5354,6 +5652,20 @@ func (x *RegistRequest) GetNickName() string { return "" } +func (x *RegistRequest) GetInviterID() uint64 { + if x != nil { + return x.InviterID + } + return 0 +} + +func (x *RegistRequest) GetInviterCode() string { + if x != nil { + return x.InviterCode + } + return "" +} + type LoginRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain"` @@ -5369,7 +5681,7 @@ type LoginRequest struct { func (x *LoginRequest) Reset() { *x = LoginRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[72] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5381,7 +5693,7 @@ func (x *LoginRequest) String() string { func (*LoginRequest) ProtoMessage() {} func (x *LoginRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[72] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5394,7 +5706,7 @@ func (x *LoginRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginRequest.ProtoReflect.Descriptor instead. func (*LoginRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{72} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{76} } func (x *LoginRequest) GetDomain() string { @@ -5459,7 +5771,7 @@ type TokenInfo struct { func (x *TokenInfo) Reset() { *x = TokenInfo{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[73] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5471,7 +5783,7 @@ func (x *TokenInfo) String() string { func (*TokenInfo) ProtoMessage() {} func (x *TokenInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[73] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5484,7 +5796,7 @@ func (x *TokenInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TokenInfo.ProtoReflect.Descriptor instead. func (*TokenInfo) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{73} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{77} } func (x *TokenInfo) GetAccountInfo() *AccountInfo { @@ -5534,7 +5846,7 @@ type Extend struct { func (x *Extend) Reset() { *x = Extend{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[74] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5546,7 +5858,7 @@ func (x *Extend) String() string { func (*Extend) ProtoMessage() {} func (x *Extend) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[74] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5559,7 +5871,7 @@ func (x *Extend) ProtoReflect() protoreflect.Message { // Deprecated: Use Extend.ProtoReflect.Descriptor instead. func (*Extend) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{74} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{78} } func (x *Extend) GetJumpTo() string { @@ -5600,7 +5912,7 @@ type Department struct { func (x *Department) Reset() { *x = Department{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[75] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5612,7 +5924,7 @@ func (x *Department) String() string { func (*Department) ProtoMessage() {} func (x *Department) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[75] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5625,7 +5937,7 @@ func (x *Department) ProtoReflect() protoreflect.Message { // Deprecated: Use Department.ProtoReflect.Descriptor instead. func (*Department) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{75} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{79} } func (x *Department) GetID() uint64 { @@ -5694,7 +6006,7 @@ type AccountInfo struct { func (x *AccountInfo) Reset() { *x = AccountInfo{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[76] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5706,7 +6018,7 @@ func (x *AccountInfo) String() string { func (*AccountInfo) ProtoMessage() {} func (x *AccountInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[76] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5719,7 +6031,7 @@ func (x *AccountInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountInfo.ProtoReflect.Descriptor instead. func (*AccountInfo) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{76} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{80} } func (x *AccountInfo) GetID() uint64 { @@ -6047,7 +6359,7 @@ type UserInfoV2 struct { func (x *UserInfoV2) Reset() { *x = UserInfoV2{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[77] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6059,7 +6371,7 @@ func (x *UserInfoV2) String() string { func (*UserInfoV2) ProtoMessage() {} func (x *UserInfoV2) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[77] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6072,7 +6384,7 @@ func (x *UserInfoV2) ProtoReflect() protoreflect.Message { // Deprecated: Use UserInfoV2.ProtoReflect.Descriptor instead. func (*UserInfoV2) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{77} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{81} } func (x *UserInfoV2) GetID() uint64 { @@ -6198,7 +6510,7 @@ type RefreshTokenRequest struct { func (x *RefreshTokenRequest) Reset() { *x = RefreshTokenRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[78] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6210,7 +6522,7 @@ func (x *RefreshTokenRequest) String() string { func (*RefreshTokenRequest) ProtoMessage() {} func (x *RefreshTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[78] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6223,7 +6535,7 @@ func (x *RefreshTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshTokenRequest.ProtoReflect.Descriptor instead. func (*RefreshTokenRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{78} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{82} } func (x *RefreshTokenRequest) GetRefreshToken() string { @@ -6262,7 +6574,7 @@ type PositionUser struct { func (x *PositionUser) Reset() { *x = PositionUser{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[79] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6274,7 +6586,7 @@ func (x *PositionUser) String() string { func (*PositionUser) ProtoMessage() {} func (x *PositionUser) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[79] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6287,7 +6599,7 @@ func (x *PositionUser) ProtoReflect() protoreflect.Message { // Deprecated: Use PositionUser.ProtoReflect.Descriptor instead. func (*PositionUser) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{79} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{83} } func (x *PositionUser) GetPositionID() uint64 { @@ -6349,7 +6661,7 @@ type JobNumGetInfoRequest struct { func (x *JobNumGetInfoRequest) Reset() { *x = JobNumGetInfoRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[80] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6361,7 +6673,7 @@ func (x *JobNumGetInfoRequest) String() string { func (*JobNumGetInfoRequest) ProtoMessage() {} func (x *JobNumGetInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[80] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6374,7 +6686,7 @@ func (x *JobNumGetInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use JobNumGetInfoRequest.ProtoReflect.Descriptor instead. func (*JobNumGetInfoRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{80} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{84} } func (x *JobNumGetInfoRequest) GetJobNum() string { @@ -6401,7 +6713,7 @@ type SubNumGetInfoRequest struct { func (x *SubNumGetInfoRequest) Reset() { *x = SubNumGetInfoRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[81] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6413,7 +6725,7 @@ func (x *SubNumGetInfoRequest) String() string { func (*SubNumGetInfoRequest) ProtoMessage() {} func (x *SubNumGetInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[81] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6426,7 +6738,7 @@ func (x *SubNumGetInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubNumGetInfoRequest.ProtoReflect.Descriptor instead. func (*SubNumGetInfoRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{81} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{85} } func (x *SubNumGetInfoRequest) GetSubNum() string { @@ -6454,7 +6766,7 @@ type CreateClockDeviceRequest struct { func (x *CreateClockDeviceRequest) Reset() { *x = CreateClockDeviceRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[82] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6466,7 +6778,7 @@ func (x *CreateClockDeviceRequest) String() string { func (*CreateClockDeviceRequest) ProtoMessage() {} func (x *CreateClockDeviceRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[82] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6479,7 +6791,7 @@ func (x *CreateClockDeviceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateClockDeviceRequest.ProtoReflect.Descriptor instead. func (*CreateClockDeviceRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{82} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{86} } func (x *CreateClockDeviceRequest) GetDeviceNum() string { @@ -6515,7 +6827,7 @@ type UpdateClockDeviceRequest struct { func (x *UpdateClockDeviceRequest) Reset() { *x = UpdateClockDeviceRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[83] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6527,7 +6839,7 @@ func (x *UpdateClockDeviceRequest) String() string { func (*UpdateClockDeviceRequest) ProtoMessage() {} func (x *UpdateClockDeviceRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[83] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6540,7 +6852,7 @@ func (x *UpdateClockDeviceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateClockDeviceRequest.ProtoReflect.Descriptor instead. func (*UpdateClockDeviceRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{83} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{87} } func (x *UpdateClockDeviceRequest) GetId() uint64 { @@ -6580,7 +6892,7 @@ type ClockDeviceResponse struct { func (x *ClockDeviceResponse) Reset() { *x = ClockDeviceResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[84] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6592,7 +6904,7 @@ func (x *ClockDeviceResponse) String() string { func (*ClockDeviceResponse) ProtoMessage() {} func (x *ClockDeviceResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[84] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6605,7 +6917,7 @@ func (x *ClockDeviceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockDeviceResponse.ProtoReflect.Descriptor instead. func (*ClockDeviceResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{84} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{88} } func (x *ClockDeviceResponse) GetId() uint64 { @@ -6624,7 +6936,7 @@ type RemoveClockDeviceRequest struct { func (x *RemoveClockDeviceRequest) Reset() { *x = RemoveClockDeviceRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[85] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6636,7 +6948,7 @@ func (x *RemoveClockDeviceRequest) String() string { func (*RemoveClockDeviceRequest) ProtoMessage() {} func (x *RemoveClockDeviceRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[85] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6649,7 +6961,7 @@ func (x *RemoveClockDeviceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveClockDeviceRequest.ProtoReflect.Descriptor instead. func (*RemoveClockDeviceRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{85} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{89} } func (x *RemoveClockDeviceRequest) GetId() uint64 { @@ -6674,7 +6986,7 @@ type ClockDeviceListRequest struct { func (x *ClockDeviceListRequest) Reset() { *x = ClockDeviceListRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[86] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6686,7 +6998,7 @@ func (x *ClockDeviceListRequest) String() string { func (*ClockDeviceListRequest) ProtoMessage() {} func (x *ClockDeviceListRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[86] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6699,7 +7011,7 @@ func (x *ClockDeviceListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockDeviceListRequest.ProtoReflect.Descriptor instead. func (*ClockDeviceListRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{86} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{90} } func (x *ClockDeviceListRequest) GetId() uint64 { @@ -6761,7 +7073,7 @@ type ClockDeviceListResponse struct { func (x *ClockDeviceListResponse) Reset() { *x = ClockDeviceListResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[87] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6773,7 +7085,7 @@ func (x *ClockDeviceListResponse) String() string { func (*ClockDeviceListResponse) ProtoMessage() {} func (x *ClockDeviceListResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[87] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6786,7 +7098,7 @@ func (x *ClockDeviceListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockDeviceListResponse.ProtoReflect.Descriptor instead. func (*ClockDeviceListResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{87} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{91} } func (x *ClockDeviceListResponse) GetCount() uint64 { @@ -6819,7 +7131,7 @@ type ClockUser struct { func (x *ClockUser) Reset() { *x = ClockUser{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[88] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6831,7 +7143,7 @@ func (x *ClockUser) String() string { func (*ClockUser) ProtoMessage() {} func (x *ClockUser) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[88] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[92] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6844,7 +7156,7 @@ func (x *ClockUser) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockUser.ProtoReflect.Descriptor instead. func (*ClockUser) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{88} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{92} } func (x *ClockUser) GetId() uint64 { @@ -6919,7 +7231,7 @@ type ClockDeviceInfo struct { func (x *ClockDeviceInfo) Reset() { *x = ClockDeviceInfo{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[89] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6931,7 +7243,7 @@ func (x *ClockDeviceInfo) String() string { func (*ClockDeviceInfo) ProtoMessage() {} func (x *ClockDeviceInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[89] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6944,7 +7256,7 @@ func (x *ClockDeviceInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockDeviceInfo.ProtoReflect.Descriptor instead. func (*ClockDeviceInfo) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{89} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{93} } func (x *ClockDeviceInfo) GetId() uint64 { @@ -7013,7 +7325,7 @@ type ClockDeviceInfoResponse struct { func (x *ClockDeviceInfoResponse) Reset() { *x = ClockDeviceInfoResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[90] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7025,7 +7337,7 @@ func (x *ClockDeviceInfoResponse) String() string { func (*ClockDeviceInfoResponse) ProtoMessage() {} func (x *ClockDeviceInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[90] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[94] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7038,7 +7350,7 @@ func (x *ClockDeviceInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockDeviceInfoResponse.ProtoReflect.Descriptor instead. func (*ClockDeviceInfoResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{90} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{94} } func (x *ClockDeviceInfoResponse) GetCount() uint64 { @@ -7069,7 +7381,7 @@ type ClockUserRel struct { func (x *ClockUserRel) Reset() { *x = ClockUserRel{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[91] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7081,7 +7393,7 @@ func (x *ClockUserRel) String() string { func (*ClockUserRel) ProtoMessage() {} func (x *ClockUserRel) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[91] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[95] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7094,7 +7406,7 @@ func (x *ClockUserRel) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockUserRel.ProtoReflect.Descriptor instead. func (*ClockUserRel) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{91} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{95} } func (x *ClockUserRel) GetId() uint64 { @@ -7150,7 +7462,7 @@ type ClockDeviceInfoRequest struct { func (x *ClockDeviceInfoRequest) Reset() { *x = ClockDeviceInfoRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[92] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7162,7 +7474,7 @@ func (x *ClockDeviceInfoRequest) String() string { func (*ClockDeviceInfoRequest) ProtoMessage() {} func (x *ClockDeviceInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[92] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[96] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7175,7 +7487,7 @@ func (x *ClockDeviceInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockDeviceInfoRequest.ProtoReflect.Descriptor instead. func (*ClockDeviceInfoRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{92} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{96} } func (x *ClockDeviceInfoRequest) GetId() uint64 { @@ -7210,7 +7522,7 @@ type ClockBatchBindRequest struct { func (x *ClockBatchBindRequest) Reset() { *x = ClockBatchBindRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[93] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7222,7 +7534,7 @@ func (x *ClockBatchBindRequest) String() string { func (*ClockBatchBindRequest) ProtoMessage() {} func (x *ClockBatchBindRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[93] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[97] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7235,7 +7547,7 @@ func (x *ClockBatchBindRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockBatchBindRequest.ProtoReflect.Descriptor instead. func (*ClockBatchBindRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{93} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{97} } func (x *ClockBatchBindRequest) GetId() uint64 { @@ -7268,7 +7580,7 @@ type ClockBatchListResponse struct { func (x *ClockBatchListResponse) Reset() { *x = ClockBatchListResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[94] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7280,7 +7592,7 @@ func (x *ClockBatchListResponse) String() string { func (*ClockBatchListResponse) ProtoMessage() {} func (x *ClockBatchListResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[94] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[98] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7293,7 +7605,7 @@ func (x *ClockBatchListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockBatchListResponse.ProtoReflect.Descriptor instead. func (*ClockBatchListResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{94} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{98} } func (x *ClockBatchListResponse) GetData() []*ClockUserDeviceBatch { @@ -7317,7 +7629,7 @@ type ClockUserDeviceBatch struct { func (x *ClockUserDeviceBatch) Reset() { *x = ClockUserDeviceBatch{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[95] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7329,7 +7641,7 @@ func (x *ClockUserDeviceBatch) String() string { func (*ClockUserDeviceBatch) ProtoMessage() {} func (x *ClockUserDeviceBatch) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[95] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[99] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7342,7 +7654,7 @@ func (x *ClockUserDeviceBatch) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockUserDeviceBatch.ProtoReflect.Descriptor instead. func (*ClockUserDeviceBatch) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{95} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{99} } func (x *ClockUserDeviceBatch) GetUserId() uint64 { @@ -7414,7 +7726,7 @@ type ClockLogInfo struct { func (x *ClockLogInfo) Reset() { *x = ClockLogInfo{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[96] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7426,7 +7738,7 @@ func (x *ClockLogInfo) String() string { func (*ClockLogInfo) ProtoMessage() {} func (x *ClockLogInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[96] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[100] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7439,7 +7751,7 @@ func (x *ClockLogInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockLogInfo.ProtoReflect.Descriptor instead. func (*ClockLogInfo) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{96} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{100} } func (x *ClockLogInfo) GetId() uint64 { @@ -7591,7 +7903,7 @@ type ClockLogReq struct { func (x *ClockLogReq) Reset() { *x = ClockLogReq{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[97] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7603,7 +7915,7 @@ func (x *ClockLogReq) String() string { func (*ClockLogReq) ProtoMessage() {} func (x *ClockLogReq) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[97] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[101] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7616,7 +7928,7 @@ func (x *ClockLogReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockLogReq.ProtoReflect.Descriptor instead. func (*ClockLogReq) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{97} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{101} } func (x *ClockLogReq) GetId() uint64 { @@ -7685,7 +7997,7 @@ type ClockLogListResponse struct { func (x *ClockLogListResponse) Reset() { *x = ClockLogListResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[98] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7697,7 +8009,7 @@ func (x *ClockLogListResponse) String() string { func (*ClockLogListResponse) ProtoMessage() {} func (x *ClockLogListResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[98] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[102] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7710,7 +8022,7 @@ func (x *ClockLogListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClockLogListResponse.ProtoReflect.Descriptor instead. func (*ClockLogListResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{98} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{102} } func (x *ClockLogListResponse) GetData() []*ClockLogInfo { @@ -7740,7 +8052,7 @@ type SubmitInfoRequest struct { func (x *SubmitInfoRequest) Reset() { *x = SubmitInfoRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[99] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7752,7 +8064,7 @@ func (x *SubmitInfoRequest) String() string { func (*SubmitInfoRequest) ProtoMessage() {} func (x *SubmitInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[99] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[103] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7765,7 +8077,7 @@ func (x *SubmitInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitInfoRequest.ProtoReflect.Descriptor instead. func (*SubmitInfoRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{99} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{103} } func (x *SubmitInfoRequest) GetFirstName() string { @@ -7812,7 +8124,7 @@ type CommonMsg struct { func (x *CommonMsg) Reset() { *x = CommonMsg{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[100] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7824,7 +8136,7 @@ func (x *CommonMsg) String() string { func (*CommonMsg) ProtoMessage() {} func (x *CommonMsg) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[100] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[104] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7837,7 +8149,7 @@ func (x *CommonMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonMsg.ProtoReflect.Descriptor instead. func (*CommonMsg) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{100} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{104} } func (x *CommonMsg) GetMsg() string { @@ -7870,7 +8182,7 @@ type ChatRecordData struct { func (x *ChatRecordData) Reset() { *x = ChatRecordData{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[101] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7882,7 +8194,7 @@ func (x *ChatRecordData) String() string { func (*ChatRecordData) ProtoMessage() {} func (x *ChatRecordData) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[101] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[105] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7895,7 +8207,7 @@ func (x *ChatRecordData) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatRecordData.ProtoReflect.Descriptor instead. func (*ChatRecordData) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{101} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{105} } func (x *ChatRecordData) GetID() int64 { @@ -8013,7 +8325,7 @@ type CreateChatRecordResp struct { func (x *CreateChatRecordResp) Reset() { *x = CreateChatRecordResp{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[102] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8025,7 +8337,7 @@ func (x *CreateChatRecordResp) String() string { func (*CreateChatRecordResp) ProtoMessage() {} func (x *CreateChatRecordResp) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[102] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[106] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8038,7 +8350,7 @@ func (x *CreateChatRecordResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateChatRecordResp.ProtoReflect.Descriptor instead. func (*CreateChatRecordResp) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{102} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{106} } func (x *CreateChatRecordResp) GetData() *ChatRecordData { @@ -8065,7 +8377,7 @@ type DeleteChatRecordRequest struct { func (x *DeleteChatRecordRequest) Reset() { *x = DeleteChatRecordRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[103] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8077,7 +8389,7 @@ func (x *DeleteChatRecordRequest) String() string { func (*DeleteChatRecordRequest) ProtoMessage() {} func (x *DeleteChatRecordRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[103] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[107] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8090,7 +8402,7 @@ func (x *DeleteChatRecordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteChatRecordRequest.ProtoReflect.Descriptor instead. func (*DeleteChatRecordRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{103} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{107} } func (x *DeleteChatRecordRequest) GetId() int64 { @@ -8116,7 +8428,7 @@ type GetChatRecordByIdRequest struct { func (x *GetChatRecordByIdRequest) Reset() { *x = GetChatRecordByIdRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[104] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8128,7 +8440,7 @@ func (x *GetChatRecordByIdRequest) String() string { func (*GetChatRecordByIdRequest) ProtoMessage() {} func (x *GetChatRecordByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[104] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[108] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8141,7 +8453,7 @@ func (x *GetChatRecordByIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatRecordByIdRequest.ProtoReflect.Descriptor instead. func (*GetChatRecordByIdRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{104} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{108} } func (x *GetChatRecordByIdRequest) GetId() int64 { @@ -8164,7 +8476,7 @@ type GetChatRecordListRequest struct { func (x *GetChatRecordListRequest) Reset() { *x = GetChatRecordListRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[105] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8176,7 +8488,7 @@ func (x *GetChatRecordListRequest) String() string { func (*GetChatRecordListRequest) ProtoMessage() {} func (x *GetChatRecordListRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[105] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[109] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8189,7 +8501,7 @@ func (x *GetChatRecordListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatRecordListRequest.ProtoReflect.Descriptor instead. func (*GetChatRecordListRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{105} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{109} } func (x *GetChatRecordListRequest) GetQuery() *ChatRecordData { @@ -8239,7 +8551,7 @@ type GetChatRecordListResp struct { func (x *GetChatRecordListResp) Reset() { *x = GetChatRecordListResp{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[106] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8251,7 +8563,7 @@ func (x *GetChatRecordListResp) String() string { func (*GetChatRecordListResp) ProtoMessage() {} func (x *GetChatRecordListResp) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[106] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[110] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8264,7 +8576,7 @@ func (x *GetChatRecordListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatRecordListResp.ProtoReflect.Descriptor instead. func (*GetChatRecordListResp) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{106} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{110} } func (x *GetChatRecordListResp) GetList() []*ChatRecordData { @@ -8310,7 +8622,7 @@ type RegisterWaiterRequest struct { func (x *RegisterWaiterRequest) Reset() { *x = RegisterWaiterRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[107] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8322,7 +8634,7 @@ func (x *RegisterWaiterRequest) String() string { func (*RegisterWaiterRequest) ProtoMessage() {} func (x *RegisterWaiterRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[107] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[111] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8335,7 +8647,7 @@ func (x *RegisterWaiterRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisterWaiterRequest.ProtoReflect.Descriptor instead. func (*RegisterWaiterRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{107} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{111} } func (x *RegisterWaiterRequest) GetOrigin() string { @@ -8396,7 +8708,7 @@ type RegisterWaiterResp struct { func (x *RegisterWaiterResp) Reset() { *x = RegisterWaiterResp{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[108] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8408,7 +8720,7 @@ func (x *RegisterWaiterResp) String() string { func (*RegisterWaiterResp) ProtoMessage() {} func (x *RegisterWaiterResp) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[108] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[112] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8421,7 +8733,7 @@ func (x *RegisterWaiterResp) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisterWaiterResp.ProtoReflect.Descriptor instead. func (*RegisterWaiterResp) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{108} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{112} } func (x *RegisterWaiterResp) GetUserId() int64 { @@ -8449,7 +8761,7 @@ type ChatMediaData struct { func (x *ChatMediaData) Reset() { *x = ChatMediaData{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[109] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8461,7 +8773,7 @@ func (x *ChatMediaData) String() string { func (*ChatMediaData) ProtoMessage() {} func (x *ChatMediaData) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[109] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[113] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8474,7 +8786,7 @@ func (x *ChatMediaData) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatMediaData.ProtoReflect.Descriptor instead. func (*ChatMediaData) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{109} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{113} } func (x *ChatMediaData) GetID() int64 { @@ -8557,7 +8869,7 @@ type CreateChatMediaResp struct { func (x *CreateChatMediaResp) Reset() { *x = CreateChatMediaResp{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[110] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8569,7 +8881,7 @@ func (x *CreateChatMediaResp) String() string { func (*CreateChatMediaResp) ProtoMessage() {} func (x *CreateChatMediaResp) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[110] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[114] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8582,7 +8894,7 @@ func (x *CreateChatMediaResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateChatMediaResp.ProtoReflect.Descriptor instead. func (*CreateChatMediaResp) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{110} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{114} } func (x *CreateChatMediaResp) GetData() *ChatMediaData { @@ -8609,7 +8921,7 @@ type DeleteChatMediaRequest struct { func (x *DeleteChatMediaRequest) Reset() { *x = DeleteChatMediaRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[111] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8621,7 +8933,7 @@ func (x *DeleteChatMediaRequest) String() string { func (*DeleteChatMediaRequest) ProtoMessage() {} func (x *DeleteChatMediaRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[111] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[115] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8634,7 +8946,7 @@ func (x *DeleteChatMediaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteChatMediaRequest.ProtoReflect.Descriptor instead. func (*DeleteChatMediaRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{111} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{115} } func (x *DeleteChatMediaRequest) GetId() int64 { @@ -8660,7 +8972,7 @@ type GetChatMediaByIdRequest struct { func (x *GetChatMediaByIdRequest) Reset() { *x = GetChatMediaByIdRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[112] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8672,7 +8984,7 @@ func (x *GetChatMediaByIdRequest) String() string { func (*GetChatMediaByIdRequest) ProtoMessage() {} func (x *GetChatMediaByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[112] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[116] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8685,7 +8997,7 @@ func (x *GetChatMediaByIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatMediaByIdRequest.ProtoReflect.Descriptor instead. func (*GetChatMediaByIdRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{112} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{116} } func (x *GetChatMediaByIdRequest) GetId() int64 { @@ -8708,7 +9020,7 @@ type GetChatMediaListRequest struct { func (x *GetChatMediaListRequest) Reset() { *x = GetChatMediaListRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[113] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8720,7 +9032,7 @@ func (x *GetChatMediaListRequest) String() string { func (*GetChatMediaListRequest) ProtoMessage() {} func (x *GetChatMediaListRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[113] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[117] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8733,7 +9045,7 @@ func (x *GetChatMediaListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatMediaListRequest.ProtoReflect.Descriptor instead. func (*GetChatMediaListRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{113} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{117} } func (x *GetChatMediaListRequest) GetQuery() *ChatMediaData { @@ -8783,7 +9095,7 @@ type GetChatMediaListResp struct { func (x *GetChatMediaListResp) Reset() { *x = GetChatMediaListResp{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[114] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8795,7 +9107,7 @@ func (x *GetChatMediaListResp) String() string { func (*GetChatMediaListResp) ProtoMessage() {} func (x *GetChatMediaListResp) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[114] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[118] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8808,7 +9120,7 @@ func (x *GetChatMediaListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatMediaListResp.ProtoReflect.Descriptor instead. func (*GetChatMediaListResp) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{114} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{118} } func (x *GetChatMediaListResp) GetList() []*ChatMediaData { @@ -8854,7 +9166,7 @@ type GetChatUserListRequest2 struct { func (x *GetChatUserListRequest2) Reset() { *x = GetChatUserListRequest2{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[115] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8866,7 +9178,7 @@ func (x *GetChatUserListRequest2) String() string { func (*GetChatUserListRequest2) ProtoMessage() {} func (x *GetChatUserListRequest2) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[115] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[119] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8879,7 +9191,7 @@ func (x *GetChatUserListRequest2) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatUserListRequest2.ProtoReflect.Descriptor instead. func (*GetChatUserListRequest2) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{115} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{119} } func (x *GetChatUserListRequest2) GetPage() int64 { @@ -8944,7 +9256,7 @@ type ChatUser2 struct { func (x *ChatUser2) Reset() { *x = ChatUser2{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[116] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8956,7 +9268,7 @@ func (x *ChatUser2) String() string { func (*ChatUser2) ProtoMessage() {} func (x *ChatUser2) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[116] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[120] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8969,7 +9281,7 @@ func (x *ChatUser2) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatUser2.ProtoReflect.Descriptor instead. func (*ChatUser2) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{116} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{120} } func (x *ChatUser2) GetUserId() int64 { @@ -9020,7 +9332,7 @@ type GetChatUserListResp2 struct { func (x *GetChatUserListResp2) Reset() { *x = GetChatUserListResp2{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[117] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9032,7 +9344,7 @@ func (x *GetChatUserListResp2) String() string { func (*GetChatUserListResp2) ProtoMessage() {} func (x *GetChatUserListResp2) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[117] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[121] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9045,7 +9357,7 @@ func (x *GetChatUserListResp2) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatUserListResp2.ProtoReflect.Descriptor instead. func (*GetChatUserListResp2) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{117} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{121} } func (x *GetChatUserListResp2) GetList() []*ChatUser2 { @@ -9099,7 +9411,7 @@ type ChatAutoReplyRulerData struct { func (x *ChatAutoReplyRulerData) Reset() { *x = ChatAutoReplyRulerData{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[118] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9111,7 +9423,7 @@ func (x *ChatAutoReplyRulerData) String() string { func (*ChatAutoReplyRulerData) ProtoMessage() {} func (x *ChatAutoReplyRulerData) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[118] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[122] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9124,7 +9436,7 @@ func (x *ChatAutoReplyRulerData) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatAutoReplyRulerData.ProtoReflect.Descriptor instead. func (*ChatAutoReplyRulerData) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{118} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{122} } func (x *ChatAutoReplyRulerData) GetID() int64 { @@ -9193,7 +9505,7 @@ type CreateChatAutoReplyRulerResp struct { func (x *CreateChatAutoReplyRulerResp) Reset() { *x = CreateChatAutoReplyRulerResp{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[119] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9205,7 +9517,7 @@ func (x *CreateChatAutoReplyRulerResp) String() string { func (*CreateChatAutoReplyRulerResp) ProtoMessage() {} func (x *CreateChatAutoReplyRulerResp) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[119] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[123] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9218,7 +9530,7 @@ func (x *CreateChatAutoReplyRulerResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateChatAutoReplyRulerResp.ProtoReflect.Descriptor instead. func (*CreateChatAutoReplyRulerResp) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{119} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{123} } func (x *CreateChatAutoReplyRulerResp) GetData() *ChatAutoReplyRulerData { @@ -9245,7 +9557,7 @@ type DeleteChatAutoReplyRulerRequest struct { func (x *DeleteChatAutoReplyRulerRequest) Reset() { *x = DeleteChatAutoReplyRulerRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[120] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9257,7 +9569,7 @@ func (x *DeleteChatAutoReplyRulerRequest) String() string { func (*DeleteChatAutoReplyRulerRequest) ProtoMessage() {} func (x *DeleteChatAutoReplyRulerRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[120] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[124] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9270,7 +9582,7 @@ func (x *DeleteChatAutoReplyRulerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteChatAutoReplyRulerRequest.ProtoReflect.Descriptor instead. func (*DeleteChatAutoReplyRulerRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{120} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{124} } func (x *DeleteChatAutoReplyRulerRequest) GetId() int64 { @@ -9296,7 +9608,7 @@ type GetChatAutoReplyRulerByIdRequest struct { func (x *GetChatAutoReplyRulerByIdRequest) Reset() { *x = GetChatAutoReplyRulerByIdRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[121] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9308,7 +9620,7 @@ func (x *GetChatAutoReplyRulerByIdRequest) String() string { func (*GetChatAutoReplyRulerByIdRequest) ProtoMessage() {} func (x *GetChatAutoReplyRulerByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[121] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[125] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9321,7 +9633,7 @@ func (x *GetChatAutoReplyRulerByIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatAutoReplyRulerByIdRequest.ProtoReflect.Descriptor instead. func (*GetChatAutoReplyRulerByIdRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{121} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{125} } func (x *GetChatAutoReplyRulerByIdRequest) GetId() int64 { @@ -9344,7 +9656,7 @@ type GetChatAutoReplyRulerListRequest struct { func (x *GetChatAutoReplyRulerListRequest) Reset() { *x = GetChatAutoReplyRulerListRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[122] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9356,7 +9668,7 @@ func (x *GetChatAutoReplyRulerListRequest) String() string { func (*GetChatAutoReplyRulerListRequest) ProtoMessage() {} func (x *GetChatAutoReplyRulerListRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[122] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[126] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9369,7 +9681,7 @@ func (x *GetChatAutoReplyRulerListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatAutoReplyRulerListRequest.ProtoReflect.Descriptor instead. func (*GetChatAutoReplyRulerListRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{122} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{126} } func (x *GetChatAutoReplyRulerListRequest) GetQuery() *ChatAutoReplyRulerData { @@ -9419,7 +9731,7 @@ type GetChatAutoReplyRulerListResp struct { func (x *GetChatAutoReplyRulerListResp) Reset() { *x = GetChatAutoReplyRulerListResp{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[123] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9431,7 +9743,7 @@ func (x *GetChatAutoReplyRulerListResp) String() string { func (*GetChatAutoReplyRulerListResp) ProtoMessage() {} func (x *GetChatAutoReplyRulerListResp) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[123] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[127] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9444,7 +9756,7 @@ func (x *GetChatAutoReplyRulerListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatAutoReplyRulerListResp.ProtoReflect.Descriptor instead. func (*GetChatAutoReplyRulerListResp) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{123} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{127} } func (x *GetChatAutoReplyRulerListResp) GetList() []*ChatAutoReplyRulerData { @@ -9493,7 +9805,7 @@ type ChatUserData struct { func (x *ChatUserData) Reset() { *x = ChatUserData{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[124] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9505,7 +9817,7 @@ func (x *ChatUserData) String() string { func (*ChatUserData) ProtoMessage() {} func (x *ChatUserData) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[124] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[128] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9518,7 +9830,7 @@ func (x *ChatUserData) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatUserData.ProtoReflect.Descriptor instead. func (*ChatUserData) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{124} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{128} } func (x *ChatUserData) GetID() int64 { @@ -9601,7 +9913,7 @@ type CreateChatUserResp struct { func (x *CreateChatUserResp) Reset() { *x = CreateChatUserResp{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[125] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9613,7 +9925,7 @@ func (x *CreateChatUserResp) String() string { func (*CreateChatUserResp) ProtoMessage() {} func (x *CreateChatUserResp) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[125] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[129] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9626,7 +9938,7 @@ func (x *CreateChatUserResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateChatUserResp.ProtoReflect.Descriptor instead. func (*CreateChatUserResp) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{125} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{129} } func (x *CreateChatUserResp) GetData() *ChatUserData { @@ -9653,7 +9965,7 @@ type DeleteChatUserRequest struct { func (x *DeleteChatUserRequest) Reset() { *x = DeleteChatUserRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[126] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9665,7 +9977,7 @@ func (x *DeleteChatUserRequest) String() string { func (*DeleteChatUserRequest) ProtoMessage() {} func (x *DeleteChatUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[126] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[130] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9678,7 +9990,7 @@ func (x *DeleteChatUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteChatUserRequest.ProtoReflect.Descriptor instead. func (*DeleteChatUserRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{126} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{130} } func (x *DeleteChatUserRequest) GetId() int64 { @@ -9704,7 +10016,7 @@ type GetChatUserByIdRequest struct { func (x *GetChatUserByIdRequest) Reset() { *x = GetChatUserByIdRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[127] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9716,7 +10028,7 @@ func (x *GetChatUserByIdRequest) String() string { func (*GetChatUserByIdRequest) ProtoMessage() {} func (x *GetChatUserByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[127] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[131] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9729,7 +10041,7 @@ func (x *GetChatUserByIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatUserByIdRequest.ProtoReflect.Descriptor instead. func (*GetChatUserByIdRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{127} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{131} } func (x *GetChatUserByIdRequest) GetId() int64 { @@ -9752,7 +10064,7 @@ type GetChatUserListRequest struct { func (x *GetChatUserListRequest) Reset() { *x = GetChatUserListRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[128] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9764,7 +10076,7 @@ func (x *GetChatUserListRequest) String() string { func (*GetChatUserListRequest) ProtoMessage() {} func (x *GetChatUserListRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[128] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[132] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9777,7 +10089,7 @@ func (x *GetChatUserListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatUserListRequest.ProtoReflect.Descriptor instead. func (*GetChatUserListRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{128} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{132} } func (x *GetChatUserListRequest) GetQuery() *ChatUserData { @@ -9827,7 +10139,7 @@ type GetChatUserListResp struct { func (x *GetChatUserListResp) Reset() { *x = GetChatUserListResp{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[129] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9839,7 +10151,7 @@ func (x *GetChatUserListResp) String() string { func (*GetChatUserListResp) ProtoMessage() {} func (x *GetChatUserListResp) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[129] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[133] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9852,7 +10164,7 @@ func (x *GetChatUserListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatUserListResp.ProtoReflect.Descriptor instead. func (*GetChatUserListResp) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{129} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{133} } func (x *GetChatUserListResp) GetList() []*ChatUserData { @@ -9903,7 +10215,7 @@ type CreateUserAndRealNameRequest struct { func (x *CreateUserAndRealNameRequest) Reset() { *x = CreateUserAndRealNameRequest{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[130] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9915,7 +10227,7 @@ func (x *CreateUserAndRealNameRequest) String() string { func (*CreateUserAndRealNameRequest) ProtoMessage() {} func (x *CreateUserAndRealNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[130] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[134] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9928,7 +10240,7 @@ func (x *CreateUserAndRealNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateUserAndRealNameRequest.ProtoReflect.Descriptor instead. func (*CreateUserAndRealNameRequest) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{130} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{134} } func (x *CreateUserAndRealNameRequest) GetUserNum() string { @@ -10026,7 +10338,7 @@ type CreateUserAndRealNameResponse struct { func (x *CreateUserAndRealNameResponse) Reset() { *x = CreateUserAndRealNameResponse{} - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[131] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10038,7 +10350,7 @@ func (x *CreateUserAndRealNameResponse) String() string { func (*CreateUserAndRealNameResponse) ProtoMessage() {} func (x *CreateUserAndRealNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_accountFiee_accountFiee_proto_msgTypes[131] + mi := &file_api_accountFiee_accountFiee_proto_msgTypes[135] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10051,7 +10363,7 @@ func (x *CreateUserAndRealNameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateUserAndRealNameResponse.ProtoReflect.Descriptor instead. func (*CreateUserAndRealNameResponse) Descriptor() ([]byte, []int) { - return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{131} + return file_api_accountFiee_accountFiee_proto_rawDescGZIP(), []int{135} } func (x *CreateUserAndRealNameResponse) GetUserId() int64 { @@ -10079,7 +10391,18 @@ var File_api_accountFiee_accountFiee_proto protoreflect.FileDescriptor const file_api_accountFiee_accountFiee_proto_rawDesc = "" + "\n" + - "!api/accountFiee/accountFiee.proto\x12\vaccountFiee\x1a\x1fapi/accountFiee/validator.proto\"7\n" + + "!api/accountFiee/accountFiee.proto\x12\vaccountFiee\x1a\x1fapi/accountFiee/validator.proto\"&\n" + + "\x12InviterListRequest\x12\x10\n" + + "\x03ids\x18\x01 \x03(\x04R\x03ids\"K\n" + + "\x13InviterListResponse\x124\n" + + "\x04list\x18\x01 \x03(\v2 .accountFiee.InviterInfoResponseR\x04list\"(\n" + + "\x12InviterInfoRequest\x12\x12\n" + + "\x04code\x18\x01 \x01(\tR\x04code\"e\n" + + "\x13InviterInfoResponse\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x04R\x02id\x12\x12\n" + + "\x04code\x18\x02 \x01(\tR\x04code\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\x12\x16\n" + + "\x06telNum\x18\x04 \x01(\tR\x06telNum\"7\n" + "\x19VerifySliderStatusRequest\x12\x1a\n" + "\bnonceStr\x18\x01 \x01(\tR\bnonceStr\"P\n" + "\x1aVerifySliderStatusResponse\x12\x1a\n" + @@ -10124,7 +10447,7 @@ const file_api_accountFiee_accountFiee_proto_rawDesc = "" + "\x05count\x18\x01 \x01(\x04R\x05count\x12\x12\n" + "\x04page\x18\x02 \x01(\x04R\x04page\x12\x1a\n" + "\bpageSize\x18\x03 \x01(\x04R\bpageSize\x125\n" + - "\buserList\x18\x04 \x03(\v2\x19.accountFiee.UserListInfoR\buserList\"\xd2\x05\n" + + "\buserList\x18\x04 \x03(\v2\x19.accountFiee.UserListInfoR\buserList\"\xf8\x06\n" + "\fUserListInfo\x12\x0e\n" + "\x02id\x18\x01 \x01(\x04R\x02id\x12\x16\n" + "\x06status\x18\x02 \x01(\x05R\x06status\x12\x12\n" + @@ -10153,7 +10476,12 @@ const file_api_accountFiee_accountFiee_proto_rawDesc = "" + "\bnickName\x18\x14 \x01(\tR\bnickName\x12\x1a\n" + "\bidNumber\x18\x15 \x01(\tR\bidNumber\x12 \n" + "\vdateOfBirth\x18\x16 \x01(\tR\vdateOfBirth\x12\x10\n" + - "\x03age\x18\x17 \x01(\tR\x03age\"\xff\x02\n" + + "\x03age\x18\x17 \x01(\tR\x03age\x12\x14\n" + + "\x05email\x18\x18 \x01(\tR\x05email\x12,\n" + + "\x11AbroadTelAreaCode\x18\x19 \x01(\tR\x11AbroadTelAreaCode\x12\x1c\n" + + "\tAbroadTel\x18\x1a \x01(\tR\tAbroadTel\x12 \n" + + "\vinviterName\x18\x1b \x01(\tR\vinviterName\x12 \n" + + "\vinviterCode\x18\x1c \x01(\tR\vinviterCode\"\xff\x02\n" + "\x0fUserListRequest\x12\x16\n" + "\x06domain\x18\x01 \x01(\tR\x06domain\x12\x16\n" + "\x06subNum\x18\x02 \x01(\tR\x06subNum\x12$\n" + @@ -10168,7 +10496,7 @@ const file_api_accountFiee_accountFiee_proto_rawDesc = "" + " \x01(\tR\vblurNameTel\x12\x10\n" + "\x03ids\x18\v \x03(\x03R\x03ids\x12 \n" + "\vnationality\x18\f \x01(\tR\vnationality\x12$\n" + - "\rnameAndNumber\x18\r \x01(\tR\rnameAndNumber\"\x92\x05\n" + + "\rnameAndNumber\x18\r \x01(\tR\rnameAndNumber\"\x92\x06\n" + "\x10UserInfoResponse\x12\x0e\n" + "\x02id\x18\x01 \x01(\x04R\x02id\x12\x16\n" + "\x06status\x18\x02 \x01(\x05R\x06status\x12\x12\n" + @@ -10195,7 +10523,11 @@ const file_api_accountFiee_accountFiee_proto_rawDesc = "" + "\x06telNum\x18\x12 \x01(\tR\x06telNum\x12 \n" + "\vtelAreaCode\x18\x13 \x01(\tR\vtelAreaCode\x12\x1a\n" + "\bidNumber\x18\x14 \x01(\tR\bidNumber\x12 \n" + - "\vdateOfBirth\x18\x15 \x01(\tR\vdateOfBirth\":\n" + + "\vdateOfBirth\x18\x15 \x01(\tR\vdateOfBirth\x12\x14\n" + + "\x05email\x18\x16 \x01(\tR\x05email\x12,\n" + + "\x11AbroadTelAreaCode\x18\x17 \x01(\tR\x11AbroadTelAreaCode\x12\x1c\n" + + "\tAbroadTel\x18\x18 \x01(\tR\tAbroadTel\x12\x1c\n" + + "\tinviterId\x18\x19 \x01(\x04R\tinviterId\":\n" + "\x10RealNameResponse\x12\x0e\n" + "\x02id\x18\x01 \x01(\x04R\x02id\x12\x16\n" + "\x06status\x18\x02 \x01(\tR\x06status\"\x83\x03\n" + @@ -10461,12 +10793,15 @@ const file_api_accountFiee_accountFiee_proto_rawDesc = "" + "\x14WriteOffListResponse\x12\x14\n" + "\x05total\x18\x01 \x01(\x03R\x05total\x12@\n" + "\fwriteOffList\x18\x02 \x03(\v2\x1c.accountFiee.WriteOffRequestR\fwriteOffList\"\x10\n" + - "\x0eRemoveResponse\"o\n" + + "\x0eRemoveResponse\"\xd1\x01\n" + "\rUpdateRequest\x12\x0e\n" + "\x02ID\x18\x01 \x01(\x04R\x02ID\x12\x16\n" + "\x06Domain\x18\x02 \x01(\tR\x06domain\x12\x1a\n" + "\bLanguage\x18\x03 \x01(\tR\blanguage\x12\x1a\n" + - "\bNickName\x18\x04 \x01(\tR\bnickName\".\n" + + "\bNickName\x18\x04 \x01(\tR\bnickName\x12\x14\n" + + "\x05Email\x18\x05 \x01(\tR\x05email\x12\x1c\n" + + "\tAbroadTel\x18\x06 \x01(\tR\tabroadTel\x12,\n" + + "\x11AbroadTelAreaCode\x18\a \x01(\tR\x11abroadTelAreaCode\".\n" + "\bOperator\x12\x0e\n" + "\x02ID\x18\x01 \x01(\rR\x02ID\x12\x12\n" + "\x04Name\x18\x02 \x01(\tR\x04Name\"\x82\x01\n" + @@ -10523,7 +10858,7 @@ const file_api_accountFiee_accountFiee_proto_rawDesc = "" + "\rRequestStatus\x12\x16\n" + "\x06Status\x18\x01 \x01(\tR\x06status\x12\x0e\n" + "\x02ID\x18\x02 \x01(\x04R\x02ID\x12\x18\n" + - "\aisExist\x18\x03 \x01(\bR\aisExist\"\xc7\x01\n" + + "\aisExist\x18\x03 \x01(\bR\aisExist\"\x87\x02\n" + "\rRegistRequest\x12\x16\n" + "\x06domain\x18\x01 \x01(\tR\x06domain\x12\x16\n" + "\x06telNum\x18\x02 \x01(\tR\x06telNum\x12\x12\n" + @@ -10531,7 +10866,9 @@ const file_api_accountFiee_accountFiee_proto_rawDesc = "" + "\aaddress\x18\x04 \x01(\tR\aaddress\x12 \n" + "\vtelAreaCode\x18\x05 \x01(\tR\vtelAreaCode\x12\x1a\n" + "\blanguage\x18\x06 \x01(\tR\blanguage\x12\x1a\n" + - "\bnickName\x18\a \x01(\tR\bnickName\"\xd1\x01\n" + + "\bnickName\x18\a \x01(\tR\bnickName\x12\x1c\n" + + "\tinviterID\x18\b \x01(\x04R\tinviterID\x12 \n" + + "\vinviterCode\x18\t \x01(\tR\vinviterCode\"\xd1\x01\n" + "\fLoginRequest\x12%\n" + "\x06Domain\x18\x01 \x01(\tB\r\xe2\xdf\x1f\t*\x0570001X\x01R\x06domain\x12\x16\n" + "\x06TelNum\x18\x02 \x01(\tR\x06telNum\x12\x12\n" + @@ -10965,7 +11302,7 @@ const file_api_accountFiee_accountFiee_proto_rawDesc = "" + "\fImageMsgType\x10\x02\x12\x10\n" + "\fAudioMsgType\x10\x03\x12\x10\n" + "\fVideoMsgType\x10\x04\x12\f\n" + - "\bCardType\x10\x052\x94.\n" + + "\bCardType\x10\x052\xc2/\n" + "\vAccountFiee\x12<\n" + "\x05Login\x12\x19.accountFiee.LoginRequest\x1a\x16.accountFiee.TokenInfo\"\x00\x12J\n" + "\fRefreshToken\x12 .accountFiee.RefreshTokenRequest\x1a\x16.accountFiee.TokenInfo\"\x00\x12G\n" + @@ -11009,7 +11346,9 @@ const file_api_accountFiee_accountFiee_proto_rawDesc = "" + "\x13VerifySliderCaptcha\x12'.accountFiee.VerifySliderCaptchaRequest\x1a(.accountFiee.VerifySliderCaptchaResponse\"\x00\x12X\n" + "\rSendNationMsg\x12!.accountFiee.SendNationMsgRequest\x1a\".accountFiee.SendMsgStatusResponse\"\x00\x12g\n" + "\x12VerifySliderStatus\x12&.accountFiee.VerifySliderStatusRequest\x1a'.accountFiee.VerifySliderStatusResponse\"\x00\x12`\n" + - "\x15SendNationTemplateMsg\x12!.accountFiee.SendNationMsgRequest\x1a\".accountFiee.SendMsgStatusResponse\"\x00\x12p\n" + + "\x15SendNationTemplateMsg\x12!.accountFiee.SendNationMsgRequest\x1a\".accountFiee.SendMsgStatusResponse\"\x00\x12U\n" + + "\x0eGetInviterInfo\x12\x1f.accountFiee.InviterInfoRequest\x1a .accountFiee.InviterInfoResponse\"\x00\x12U\n" + + "\x0eGetInviterList\x12\x1f.accountFiee.InviterListRequest\x1a .accountFiee.InviterListResponse\"\x00\x12p\n" + "\x15CreateUserAndRealName\x12).accountFiee.CreateUserAndRealNameRequest\x1a*.accountFiee.CreateUserAndRealNameResponse\"\x00\x12M\n" + "\x0eSaveSubmitInfo\x12\x1e.accountFiee.SubmitInfoRequest\x1a\x1b.accountFiee.CommonResponse\x12N\n" + "\x0eCreateChatUser\x12\x19.accountFiee.ChatUserData\x1a\x1f.accountFiee.CreateChatUserResp\"\x00\x12E\n" + @@ -11052,323 +11391,332 @@ func file_api_accountFiee_accountFiee_proto_rawDescGZIP() []byte { } var file_api_accountFiee_accountFiee_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_api_accountFiee_accountFiee_proto_msgTypes = make([]protoimpl.MessageInfo, 132) +var file_api_accountFiee_accountFiee_proto_msgTypes = make([]protoimpl.MessageInfo, 136) var file_api_accountFiee_accountFiee_proto_goTypes = []any{ (MsgType)(0), // 0: accountFiee.MsgType - (*VerifySliderStatusRequest)(nil), // 1: accountFiee.VerifySliderStatusRequest - (*VerifySliderStatusResponse)(nil), // 2: accountFiee.VerifySliderStatusResponse - (*SendNationMsgRequest)(nil), // 3: accountFiee.SendNationMsgRequest - (*VerifySliderCaptchaResponse)(nil), // 4: accountFiee.VerifySliderCaptchaResponse - (*VerifySliderCaptchaRequest)(nil), // 5: accountFiee.VerifySliderCaptchaRequest - (*GenerateSliderCaptchaResponse)(nil), // 6: accountFiee.GenerateSliderCaptchaResponse - (*GenerateSliderCaptchaRequest)(nil), // 7: accountFiee.GenerateSliderCaptchaRequest - (*CheckRealNameResponse)(nil), // 8: accountFiee.CheckRealNameResponse - (*CheckRealNameRequest)(nil), // 9: accountFiee.CheckRealNameRequest - (*UserListResponse)(nil), // 10: accountFiee.UserListResponse - (*UserListInfo)(nil), // 11: accountFiee.UserListInfo - (*UserListRequest)(nil), // 12: accountFiee.UserListRequest - (*UserInfoResponse)(nil), // 13: accountFiee.UserInfoResponse - (*RealNameResponse)(nil), // 14: accountFiee.RealNameResponse - (*RealNameRequest)(nil), // 15: accountFiee.RealNameRequest - (*RegisterResponse)(nil), // 16: accountFiee.RegisterResponse - (*UsersByJobNumRequest)(nil), // 17: accountFiee.UsersByJobNumRequest - (*QueryPersonnelWithTheSameNameRequest)(nil), // 18: accountFiee.QueryPersonnelWithTheSameNameRequest - (*QueryPersonnelWithTheSameNameResponse)(nil), // 19: accountFiee.QueryPersonnelWithTheSameNameResponse - (*ListV2Request)(nil), // 20: accountFiee.ListV2Request - (*SendClockInWechatRequest)(nil), // 21: accountFiee.SendClockInWechatRequest - (*MailAccountByNickNameRequest)(nil), // 22: accountFiee.MailAccountByNickNameRequest - (*CreateMaiAccountRequest)(nil), // 23: accountFiee.CreateMaiAccountRequest - (*MaiAccountResponse)(nil), // 24: accountFiee.MaiAccountResponse - (*FddCreateUserRequest)(nil), // 25: accountFiee.FddCreateUserRequest - (*WxBoxUserInfoRequest)(nil), // 26: accountFiee.WxBoxUserInfoRequest - (*WxGetOpenIdByCodeRequest)(nil), // 27: accountFiee.WxGetOpenIdByCodeRequest - (*WxGetOpenIdByCodeResponse)(nil), // 28: accountFiee.WxGetOpenIdByCodeResponse - (*WxBoxTelNumByCodeResponse)(nil), // 29: accountFiee.WxBoxTelNumByCodeResponse - (*WxBoxUserInfo)(nil), // 30: accountFiee.WxBoxUserInfo - (*FddInfo)(nil), // 31: accountFiee.FddInfo - (*UserInfo)(nil), // 32: accountFiee.UserInfo - (*CommonRequest)(nil), // 33: accountFiee.CommonRequest - (*WxAppRequest)(nil), // 34: accountFiee.WxAppRequest - (*WxAppResponse)(nil), // 35: accountFiee.WxAppResponse - (*WxUserUpdateRequest)(nil), // 36: accountFiee.WxUserUpdateRequest - (*WxUserOrCreateRequest)(nil), // 37: accountFiee.WxUserOrCreateRequest - (*WxUserResponse)(nil), // 38: accountFiee.WxUserResponse - (*LoginLogsResponse)(nil), // 39: accountFiee.LoginLogsResponse - (*LoginLog)(nil), // 40: accountFiee.LoginLog - (*OnlineLogByIdRequest)(nil), // 41: accountFiee.OnlineLogByIdRequest - (*LoginInfosByUserIdRequest)(nil), // 42: accountFiee.LoginInfosByUserIdRequest - (*SendNewTelNumMsgRequest)(nil), // 43: accountFiee.SendNewTelNumMsgRequest - (*UserByTelRequest)(nil), // 44: accountFiee.UserByTelRequest - (*CommonResponse)(nil), // 45: accountFiee.CommonResponse - (*UsersByTelRequest)(nil), // 46: accountFiee.UsersByTelRequest - (*ListByIDsRequest)(nil), // 47: accountFiee.ListByIDsRequest - (*SendMsgRequest)(nil), // 48: accountFiee.SendMsgRequest - (*SendCustomMsgRequest)(nil), // 49: accountFiee.SendCustomMsgRequest - (*CheckMsgRequest)(nil), // 50: accountFiee.CheckMsgRequest - (*SendMsgStatusResponse)(nil), // 51: accountFiee.SendMsgStatusResponse - (*RemoveRequest)(nil), // 52: accountFiee.RemoveRequest - (*WriteOffRequest)(nil), // 53: accountFiee.WriteOffRequest - (*WriteOffListRequest)(nil), // 54: accountFiee.WriteOffListRequest - (*WriteOffApproveRequest)(nil), // 55: accountFiee.WriteOffApproveRequest - (*WriteOffListResponse)(nil), // 56: accountFiee.WriteOffListResponse - (*RemoveResponse)(nil), // 57: accountFiee.RemoveResponse - (*UpdateRequest)(nil), // 58: accountFiee.UpdateRequest - (*Operator)(nil), // 59: accountFiee.Operator - (*TrainVideo)(nil), // 60: accountFiee.trainVideo - (*UpdateResponse)(nil), // 61: accountFiee.UpdateResponse - (*PrivacyInfoRequest)(nil), // 62: accountFiee.PrivacyInfoRequest - (*ListRequest)(nil), // 63: accountFiee.ListRequest - (*ListResponse)(nil), // 64: accountFiee.ListResponse - (*InfoRequest)(nil), // 65: accountFiee.InfoRequest - (*InfoResponse)(nil), // 66: accountFiee.InfoResponse - (*DecryptJwtResponse)(nil), // 67: accountFiee.DecryptJwtResponse - (*DecryptJwtRequest)(nil), // 68: accountFiee.DecryptJwtRequest - (*CheckPwdRequest)(nil), // 69: accountFiee.CheckPwdRequest - (*AuthenticationRequest)(nil), // 70: accountFiee.AuthenticationRequest - (*RequestStatus)(nil), // 71: accountFiee.RequestStatus - (*RegistRequest)(nil), // 72: accountFiee.RegistRequest - (*LoginRequest)(nil), // 73: accountFiee.LoginRequest - (*TokenInfo)(nil), // 74: accountFiee.TokenInfo - (*Extend)(nil), // 75: accountFiee.Extend - (*Department)(nil), // 76: accountFiee.Department - (*AccountInfo)(nil), // 77: accountFiee.AccountInfo - (*UserInfoV2)(nil), // 78: accountFiee.UserInfoV2 - (*RefreshTokenRequest)(nil), // 79: accountFiee.RefreshTokenRequest - (*PositionUser)(nil), // 80: accountFiee.PositionUser - (*JobNumGetInfoRequest)(nil), // 81: accountFiee.JobNumGetInfoRequest - (*SubNumGetInfoRequest)(nil), // 82: accountFiee.SubNumGetInfoRequest - (*CreateClockDeviceRequest)(nil), // 83: accountFiee.CreateClockDeviceRequest - (*UpdateClockDeviceRequest)(nil), // 84: accountFiee.UpdateClockDeviceRequest - (*ClockDeviceResponse)(nil), // 85: accountFiee.ClockDeviceResponse - (*RemoveClockDeviceRequest)(nil), // 86: accountFiee.RemoveClockDeviceRequest - (*ClockDeviceListRequest)(nil), // 87: accountFiee.ClockDeviceListRequest - (*ClockDeviceListResponse)(nil), // 88: accountFiee.ClockDeviceListResponse - (*ClockUser)(nil), // 89: accountFiee.ClockUser - (*ClockDeviceInfo)(nil), // 90: accountFiee.ClockDeviceInfo - (*ClockDeviceInfoResponse)(nil), // 91: accountFiee.ClockDeviceInfoResponse - (*ClockUserRel)(nil), // 92: accountFiee.ClockUserRel - (*ClockDeviceInfoRequest)(nil), // 93: accountFiee.ClockDeviceInfoRequest - (*ClockBatchBindRequest)(nil), // 94: accountFiee.ClockBatchBindRequest - (*ClockBatchListResponse)(nil), // 95: accountFiee.ClockBatchListResponse - (*ClockUserDeviceBatch)(nil), // 96: accountFiee.ClockUserDeviceBatch - (*ClockLogInfo)(nil), // 97: accountFiee.ClockLogInfo - (*ClockLogReq)(nil), // 98: accountFiee.ClockLogReq - (*ClockLogListResponse)(nil), // 99: accountFiee.ClockLogListResponse - (*SubmitInfoRequest)(nil), // 100: accountFiee.SubmitInfoRequest - (*CommonMsg)(nil), // 101: accountFiee.CommonMsg - (*ChatRecordData)(nil), // 102: accountFiee.ChatRecordData - (*CreateChatRecordResp)(nil), // 103: accountFiee.CreateChatRecordResp - (*DeleteChatRecordRequest)(nil), // 104: accountFiee.DeleteChatRecordRequest - (*GetChatRecordByIdRequest)(nil), // 105: accountFiee.GetChatRecordByIdRequest - (*GetChatRecordListRequest)(nil), // 106: accountFiee.GetChatRecordListRequest - (*GetChatRecordListResp)(nil), // 107: accountFiee.GetChatRecordListResp - (*RegisterWaiterRequest)(nil), // 108: accountFiee.RegisterWaiterRequest - (*RegisterWaiterResp)(nil), // 109: accountFiee.RegisterWaiterResp - (*ChatMediaData)(nil), // 110: accountFiee.ChatMediaData - (*CreateChatMediaResp)(nil), // 111: accountFiee.CreateChatMediaResp - (*DeleteChatMediaRequest)(nil), // 112: accountFiee.DeleteChatMediaRequest - (*GetChatMediaByIdRequest)(nil), // 113: accountFiee.GetChatMediaByIdRequest - (*GetChatMediaListRequest)(nil), // 114: accountFiee.GetChatMediaListRequest - (*GetChatMediaListResp)(nil), // 115: accountFiee.GetChatMediaListResp - (*GetChatUserListRequest2)(nil), // 116: accountFiee.GetChatUserListRequest2 - (*ChatUser2)(nil), // 117: accountFiee.ChatUser2 - (*GetChatUserListResp2)(nil), // 118: accountFiee.GetChatUserListResp2 - (*ChatAutoReplyRulerData)(nil), // 119: accountFiee.ChatAutoReplyRulerData - (*CreateChatAutoReplyRulerResp)(nil), // 120: accountFiee.CreateChatAutoReplyRulerResp - (*DeleteChatAutoReplyRulerRequest)(nil), // 121: accountFiee.DeleteChatAutoReplyRulerRequest - (*GetChatAutoReplyRulerByIdRequest)(nil), // 122: accountFiee.GetChatAutoReplyRulerByIdRequest - (*GetChatAutoReplyRulerListRequest)(nil), // 123: accountFiee.GetChatAutoReplyRulerListRequest - (*GetChatAutoReplyRulerListResp)(nil), // 124: accountFiee.GetChatAutoReplyRulerListResp - (*ChatUserData)(nil), // 125: accountFiee.ChatUserData - (*CreateChatUserResp)(nil), // 126: accountFiee.CreateChatUserResp - (*DeleteChatUserRequest)(nil), // 127: accountFiee.DeleteChatUserRequest - (*GetChatUserByIdRequest)(nil), // 128: accountFiee.GetChatUserByIdRequest - (*GetChatUserListRequest)(nil), // 129: accountFiee.GetChatUserListRequest - (*GetChatUserListResp)(nil), // 130: accountFiee.GetChatUserListResp - (*CreateUserAndRealNameRequest)(nil), // 131: accountFiee.CreateUserAndRealNameRequest - (*CreateUserAndRealNameResponse)(nil), // 132: accountFiee.CreateUserAndRealNameResponse + (*InviterListRequest)(nil), // 1: accountFiee.InviterListRequest + (*InviterListResponse)(nil), // 2: accountFiee.InviterListResponse + (*InviterInfoRequest)(nil), // 3: accountFiee.InviterInfoRequest + (*InviterInfoResponse)(nil), // 4: accountFiee.InviterInfoResponse + (*VerifySliderStatusRequest)(nil), // 5: accountFiee.VerifySliderStatusRequest + (*VerifySliderStatusResponse)(nil), // 6: accountFiee.VerifySliderStatusResponse + (*SendNationMsgRequest)(nil), // 7: accountFiee.SendNationMsgRequest + (*VerifySliderCaptchaResponse)(nil), // 8: accountFiee.VerifySliderCaptchaResponse + (*VerifySliderCaptchaRequest)(nil), // 9: accountFiee.VerifySliderCaptchaRequest + (*GenerateSliderCaptchaResponse)(nil), // 10: accountFiee.GenerateSliderCaptchaResponse + (*GenerateSliderCaptchaRequest)(nil), // 11: accountFiee.GenerateSliderCaptchaRequest + (*CheckRealNameResponse)(nil), // 12: accountFiee.CheckRealNameResponse + (*CheckRealNameRequest)(nil), // 13: accountFiee.CheckRealNameRequest + (*UserListResponse)(nil), // 14: accountFiee.UserListResponse + (*UserListInfo)(nil), // 15: accountFiee.UserListInfo + (*UserListRequest)(nil), // 16: accountFiee.UserListRequest + (*UserInfoResponse)(nil), // 17: accountFiee.UserInfoResponse + (*RealNameResponse)(nil), // 18: accountFiee.RealNameResponse + (*RealNameRequest)(nil), // 19: accountFiee.RealNameRequest + (*RegisterResponse)(nil), // 20: accountFiee.RegisterResponse + (*UsersByJobNumRequest)(nil), // 21: accountFiee.UsersByJobNumRequest + (*QueryPersonnelWithTheSameNameRequest)(nil), // 22: accountFiee.QueryPersonnelWithTheSameNameRequest + (*QueryPersonnelWithTheSameNameResponse)(nil), // 23: accountFiee.QueryPersonnelWithTheSameNameResponse + (*ListV2Request)(nil), // 24: accountFiee.ListV2Request + (*SendClockInWechatRequest)(nil), // 25: accountFiee.SendClockInWechatRequest + (*MailAccountByNickNameRequest)(nil), // 26: accountFiee.MailAccountByNickNameRequest + (*CreateMaiAccountRequest)(nil), // 27: accountFiee.CreateMaiAccountRequest + (*MaiAccountResponse)(nil), // 28: accountFiee.MaiAccountResponse + (*FddCreateUserRequest)(nil), // 29: accountFiee.FddCreateUserRequest + (*WxBoxUserInfoRequest)(nil), // 30: accountFiee.WxBoxUserInfoRequest + (*WxGetOpenIdByCodeRequest)(nil), // 31: accountFiee.WxGetOpenIdByCodeRequest + (*WxGetOpenIdByCodeResponse)(nil), // 32: accountFiee.WxGetOpenIdByCodeResponse + (*WxBoxTelNumByCodeResponse)(nil), // 33: accountFiee.WxBoxTelNumByCodeResponse + (*WxBoxUserInfo)(nil), // 34: accountFiee.WxBoxUserInfo + (*FddInfo)(nil), // 35: accountFiee.FddInfo + (*UserInfo)(nil), // 36: accountFiee.UserInfo + (*CommonRequest)(nil), // 37: accountFiee.CommonRequest + (*WxAppRequest)(nil), // 38: accountFiee.WxAppRequest + (*WxAppResponse)(nil), // 39: accountFiee.WxAppResponse + (*WxUserUpdateRequest)(nil), // 40: accountFiee.WxUserUpdateRequest + (*WxUserOrCreateRequest)(nil), // 41: accountFiee.WxUserOrCreateRequest + (*WxUserResponse)(nil), // 42: accountFiee.WxUserResponse + (*LoginLogsResponse)(nil), // 43: accountFiee.LoginLogsResponse + (*LoginLog)(nil), // 44: accountFiee.LoginLog + (*OnlineLogByIdRequest)(nil), // 45: accountFiee.OnlineLogByIdRequest + (*LoginInfosByUserIdRequest)(nil), // 46: accountFiee.LoginInfosByUserIdRequest + (*SendNewTelNumMsgRequest)(nil), // 47: accountFiee.SendNewTelNumMsgRequest + (*UserByTelRequest)(nil), // 48: accountFiee.UserByTelRequest + (*CommonResponse)(nil), // 49: accountFiee.CommonResponse + (*UsersByTelRequest)(nil), // 50: accountFiee.UsersByTelRequest + (*ListByIDsRequest)(nil), // 51: accountFiee.ListByIDsRequest + (*SendMsgRequest)(nil), // 52: accountFiee.SendMsgRequest + (*SendCustomMsgRequest)(nil), // 53: accountFiee.SendCustomMsgRequest + (*CheckMsgRequest)(nil), // 54: accountFiee.CheckMsgRequest + (*SendMsgStatusResponse)(nil), // 55: accountFiee.SendMsgStatusResponse + (*RemoveRequest)(nil), // 56: accountFiee.RemoveRequest + (*WriteOffRequest)(nil), // 57: accountFiee.WriteOffRequest + (*WriteOffListRequest)(nil), // 58: accountFiee.WriteOffListRequest + (*WriteOffApproveRequest)(nil), // 59: accountFiee.WriteOffApproveRequest + (*WriteOffListResponse)(nil), // 60: accountFiee.WriteOffListResponse + (*RemoveResponse)(nil), // 61: accountFiee.RemoveResponse + (*UpdateRequest)(nil), // 62: accountFiee.UpdateRequest + (*Operator)(nil), // 63: accountFiee.Operator + (*TrainVideo)(nil), // 64: accountFiee.trainVideo + (*UpdateResponse)(nil), // 65: accountFiee.UpdateResponse + (*PrivacyInfoRequest)(nil), // 66: accountFiee.PrivacyInfoRequest + (*ListRequest)(nil), // 67: accountFiee.ListRequest + (*ListResponse)(nil), // 68: accountFiee.ListResponse + (*InfoRequest)(nil), // 69: accountFiee.InfoRequest + (*InfoResponse)(nil), // 70: accountFiee.InfoResponse + (*DecryptJwtResponse)(nil), // 71: accountFiee.DecryptJwtResponse + (*DecryptJwtRequest)(nil), // 72: accountFiee.DecryptJwtRequest + (*CheckPwdRequest)(nil), // 73: accountFiee.CheckPwdRequest + (*AuthenticationRequest)(nil), // 74: accountFiee.AuthenticationRequest + (*RequestStatus)(nil), // 75: accountFiee.RequestStatus + (*RegistRequest)(nil), // 76: accountFiee.RegistRequest + (*LoginRequest)(nil), // 77: accountFiee.LoginRequest + (*TokenInfo)(nil), // 78: accountFiee.TokenInfo + (*Extend)(nil), // 79: accountFiee.Extend + (*Department)(nil), // 80: accountFiee.Department + (*AccountInfo)(nil), // 81: accountFiee.AccountInfo + (*UserInfoV2)(nil), // 82: accountFiee.UserInfoV2 + (*RefreshTokenRequest)(nil), // 83: accountFiee.RefreshTokenRequest + (*PositionUser)(nil), // 84: accountFiee.PositionUser + (*JobNumGetInfoRequest)(nil), // 85: accountFiee.JobNumGetInfoRequest + (*SubNumGetInfoRequest)(nil), // 86: accountFiee.SubNumGetInfoRequest + (*CreateClockDeviceRequest)(nil), // 87: accountFiee.CreateClockDeviceRequest + (*UpdateClockDeviceRequest)(nil), // 88: accountFiee.UpdateClockDeviceRequest + (*ClockDeviceResponse)(nil), // 89: accountFiee.ClockDeviceResponse + (*RemoveClockDeviceRequest)(nil), // 90: accountFiee.RemoveClockDeviceRequest + (*ClockDeviceListRequest)(nil), // 91: accountFiee.ClockDeviceListRequest + (*ClockDeviceListResponse)(nil), // 92: accountFiee.ClockDeviceListResponse + (*ClockUser)(nil), // 93: accountFiee.ClockUser + (*ClockDeviceInfo)(nil), // 94: accountFiee.ClockDeviceInfo + (*ClockDeviceInfoResponse)(nil), // 95: accountFiee.ClockDeviceInfoResponse + (*ClockUserRel)(nil), // 96: accountFiee.ClockUserRel + (*ClockDeviceInfoRequest)(nil), // 97: accountFiee.ClockDeviceInfoRequest + (*ClockBatchBindRequest)(nil), // 98: accountFiee.ClockBatchBindRequest + (*ClockBatchListResponse)(nil), // 99: accountFiee.ClockBatchListResponse + (*ClockUserDeviceBatch)(nil), // 100: accountFiee.ClockUserDeviceBatch + (*ClockLogInfo)(nil), // 101: accountFiee.ClockLogInfo + (*ClockLogReq)(nil), // 102: accountFiee.ClockLogReq + (*ClockLogListResponse)(nil), // 103: accountFiee.ClockLogListResponse + (*SubmitInfoRequest)(nil), // 104: accountFiee.SubmitInfoRequest + (*CommonMsg)(nil), // 105: accountFiee.CommonMsg + (*ChatRecordData)(nil), // 106: accountFiee.ChatRecordData + (*CreateChatRecordResp)(nil), // 107: accountFiee.CreateChatRecordResp + (*DeleteChatRecordRequest)(nil), // 108: accountFiee.DeleteChatRecordRequest + (*GetChatRecordByIdRequest)(nil), // 109: accountFiee.GetChatRecordByIdRequest + (*GetChatRecordListRequest)(nil), // 110: accountFiee.GetChatRecordListRequest + (*GetChatRecordListResp)(nil), // 111: accountFiee.GetChatRecordListResp + (*RegisterWaiterRequest)(nil), // 112: accountFiee.RegisterWaiterRequest + (*RegisterWaiterResp)(nil), // 113: accountFiee.RegisterWaiterResp + (*ChatMediaData)(nil), // 114: accountFiee.ChatMediaData + (*CreateChatMediaResp)(nil), // 115: accountFiee.CreateChatMediaResp + (*DeleteChatMediaRequest)(nil), // 116: accountFiee.DeleteChatMediaRequest + (*GetChatMediaByIdRequest)(nil), // 117: accountFiee.GetChatMediaByIdRequest + (*GetChatMediaListRequest)(nil), // 118: accountFiee.GetChatMediaListRequest + (*GetChatMediaListResp)(nil), // 119: accountFiee.GetChatMediaListResp + (*GetChatUserListRequest2)(nil), // 120: accountFiee.GetChatUserListRequest2 + (*ChatUser2)(nil), // 121: accountFiee.ChatUser2 + (*GetChatUserListResp2)(nil), // 122: accountFiee.GetChatUserListResp2 + (*ChatAutoReplyRulerData)(nil), // 123: accountFiee.ChatAutoReplyRulerData + (*CreateChatAutoReplyRulerResp)(nil), // 124: accountFiee.CreateChatAutoReplyRulerResp + (*DeleteChatAutoReplyRulerRequest)(nil), // 125: accountFiee.DeleteChatAutoReplyRulerRequest + (*GetChatAutoReplyRulerByIdRequest)(nil), // 126: accountFiee.GetChatAutoReplyRulerByIdRequest + (*GetChatAutoReplyRulerListRequest)(nil), // 127: accountFiee.GetChatAutoReplyRulerListRequest + (*GetChatAutoReplyRulerListResp)(nil), // 128: accountFiee.GetChatAutoReplyRulerListResp + (*ChatUserData)(nil), // 129: accountFiee.ChatUserData + (*CreateChatUserResp)(nil), // 130: accountFiee.CreateChatUserResp + (*DeleteChatUserRequest)(nil), // 131: accountFiee.DeleteChatUserRequest + (*GetChatUserByIdRequest)(nil), // 132: accountFiee.GetChatUserByIdRequest + (*GetChatUserListRequest)(nil), // 133: accountFiee.GetChatUserListRequest + (*GetChatUserListResp)(nil), // 134: accountFiee.GetChatUserListResp + (*CreateUserAndRealNameRequest)(nil), // 135: accountFiee.CreateUserAndRealNameRequest + (*CreateUserAndRealNameResponse)(nil), // 136: accountFiee.CreateUserAndRealNameResponse } var file_api_accountFiee_accountFiee_proto_depIdxs = []int32{ - 11, // 0: accountFiee.UserListResponse.userList:type_name -> accountFiee.UserListInfo - 32, // 1: accountFiee.WxBoxUserInfo.user:type_name -> accountFiee.UserInfo - 31, // 2: accountFiee.WxBoxUserInfo.fdd:type_name -> accountFiee.FddInfo - 40, // 3: accountFiee.LoginLogsResponse.Data:type_name -> accountFiee.LoginLog - 53, // 4: accountFiee.WriteOffListResponse.writeOffList:type_name -> accountFiee.WriteOffRequest - 77, // 5: accountFiee.ListResponse.Data:type_name -> accountFiee.AccountInfo - 77, // 6: accountFiee.InfoResponse.Info:type_name -> accountFiee.AccountInfo - 77, // 7: accountFiee.TokenInfo.AccountInfo:type_name -> accountFiee.AccountInfo - 75, // 8: accountFiee.AccountInfo.Extend:type_name -> accountFiee.Extend - 76, // 9: accountFiee.AccountInfo.Departments:type_name -> accountFiee.Department - 80, // 10: accountFiee.AccountInfo.Positions:type_name -> accountFiee.PositionUser - 89, // 11: accountFiee.AccountInfo.clocks:type_name -> accountFiee.ClockUser - 60, // 12: accountFiee.AccountInfo.TrainVideos:type_name -> accountFiee.trainVideo - 59, // 13: accountFiee.AccountInfo.operator:type_name -> accountFiee.Operator - 75, // 14: accountFiee.UserInfoV2.Extend:type_name -> accountFiee.Extend - 59, // 15: accountFiee.UserInfoV2.operator:type_name -> accountFiee.Operator - 90, // 16: accountFiee.ClockDeviceListResponse.data:type_name -> accountFiee.ClockDeviceInfo - 90, // 17: accountFiee.ClockUser.device:type_name -> accountFiee.ClockDeviceInfo - 92, // 18: accountFiee.ClockDeviceInfo.data:type_name -> accountFiee.ClockUserRel - 92, // 19: accountFiee.ClockDeviceInfoResponse.data:type_name -> accountFiee.ClockUserRel - 96, // 20: accountFiee.ClockBatchListResponse.data:type_name -> accountFiee.ClockUserDeviceBatch - 97, // 21: accountFiee.ClockLogListResponse.data:type_name -> accountFiee.ClockLogInfo - 0, // 22: accountFiee.ChatRecordData.msgType:type_name -> accountFiee.MsgType - 110, // 23: accountFiee.ChatRecordData.medias:type_name -> accountFiee.ChatMediaData - 102, // 24: accountFiee.CreateChatRecordResp.data:type_name -> accountFiee.ChatRecordData - 102, // 25: accountFiee.GetChatRecordListRequest.query:type_name -> accountFiee.ChatRecordData - 102, // 26: accountFiee.GetChatRecordListResp.list:type_name -> accountFiee.ChatRecordData - 110, // 27: accountFiee.CreateChatMediaResp.data:type_name -> accountFiee.ChatMediaData - 110, // 28: accountFiee.GetChatMediaListRequest.query:type_name -> accountFiee.ChatMediaData - 110, // 29: accountFiee.GetChatMediaListResp.list:type_name -> accountFiee.ChatMediaData - 117, // 30: accountFiee.GetChatUserListResp2.list:type_name -> accountFiee.ChatUser2 - 119, // 31: accountFiee.CreateChatAutoReplyRulerResp.data:type_name -> accountFiee.ChatAutoReplyRulerData - 119, // 32: accountFiee.GetChatAutoReplyRulerListRequest.query:type_name -> accountFiee.ChatAutoReplyRulerData - 119, // 33: accountFiee.GetChatAutoReplyRulerListResp.list:type_name -> accountFiee.ChatAutoReplyRulerData - 125, // 34: accountFiee.CreateChatUserResp.data:type_name -> accountFiee.ChatUserData - 125, // 35: accountFiee.GetChatUserListRequest.query:type_name -> accountFiee.ChatUserData - 125, // 36: accountFiee.GetChatUserListResp.list:type_name -> accountFiee.ChatUserData - 73, // 37: accountFiee.AccountFiee.Login:input_type -> accountFiee.LoginRequest - 79, // 38: accountFiee.AccountFiee.RefreshToken:input_type -> accountFiee.RefreshTokenRequest - 68, // 39: accountFiee.AccountFiee.Logout:input_type -> accountFiee.DecryptJwtRequest - 33, // 40: accountFiee.AccountFiee.OffLine:input_type -> accountFiee.CommonRequest - 42, // 41: accountFiee.AccountFiee.OnlineLog:input_type -> accountFiee.LoginInfosByUserIdRequest - 41, // 42: accountFiee.AccountFiee.OnlineLogById:input_type -> accountFiee.OnlineLogByIdRequest - 69, // 43: accountFiee.AccountFiee.CheckPwd:input_type -> accountFiee.CheckPwdRequest - 48, // 44: accountFiee.AccountFiee.SendMsg:input_type -> accountFiee.SendMsgRequest - 49, // 45: accountFiee.AccountFiee.SendCustomMsg:input_type -> accountFiee.SendCustomMsgRequest - 49, // 46: accountFiee.AccountFiee.SendExCustomMsg:input_type -> accountFiee.SendCustomMsgRequest - 48, // 47: accountFiee.AccountFiee.SendMsgRegister:input_type -> accountFiee.SendMsgRequest - 50, // 48: accountFiee.AccountFiee.CheckMsg:input_type -> accountFiee.CheckMsgRequest - 43, // 49: accountFiee.AccountFiee.SendNewTelNumMsg:input_type -> accountFiee.SendNewTelNumMsgRequest - 43, // 50: accountFiee.AccountFiee.UpdateTelNum:input_type -> accountFiee.SendNewTelNumMsgRequest - 70, // 51: accountFiee.AccountFiee.Authentication:input_type -> accountFiee.AuthenticationRequest - 68, // 52: accountFiee.AccountFiee.DecryptJwt:input_type -> accountFiee.DecryptJwtRequest - 65, // 53: accountFiee.AccountFiee.Info:input_type -> accountFiee.InfoRequest - 81, // 54: accountFiee.AccountFiee.JobNumGetInfo:input_type -> accountFiee.JobNumGetInfoRequest - 82, // 55: accountFiee.AccountFiee.SubNumGetInfo:input_type -> accountFiee.SubNumGetInfoRequest - 63, // 56: accountFiee.AccountFiee.List:input_type -> accountFiee.ListRequest - 63, // 57: accountFiee.AccountFiee.RandList:input_type -> accountFiee.ListRequest - 47, // 58: accountFiee.AccountFiee.ListByIDs:input_type -> accountFiee.ListByIDsRequest - 52, // 59: accountFiee.AccountFiee.Remove:input_type -> accountFiee.RemoveRequest - 58, // 60: accountFiee.AccountFiee.Update:input_type -> accountFiee.UpdateRequest - 46, // 61: accountFiee.AccountFiee.UsersByTel:input_type -> accountFiee.UsersByTelRequest - 44, // 62: accountFiee.AccountFiee.UserByTel:input_type -> accountFiee.UserByTelRequest - 48, // 63: accountFiee.AccountFiee.OnlySendMsg:input_type -> accountFiee.SendMsgRequest - 50, // 64: accountFiee.AccountFiee.OnlyCheckMsg:input_type -> accountFiee.CheckMsgRequest - 22, // 65: accountFiee.AccountFiee.MailAccountByNickName:input_type -> accountFiee.MailAccountByNickNameRequest - 20, // 66: accountFiee.AccountFiee.ListV2:input_type -> accountFiee.ListV2Request - 18, // 67: accountFiee.AccountFiee.QueryPersonnelWithTheSameName:input_type -> accountFiee.QueryPersonnelWithTheSameNameRequest - 17, // 68: accountFiee.AccountFiee.UsersByJobNum:input_type -> accountFiee.UsersByJobNumRequest - 15, // 69: accountFiee.AccountFiee.RealName:input_type -> accountFiee.RealNameRequest - 72, // 70: accountFiee.AccountFiee.Register:input_type -> accountFiee.RegistRequest - 12, // 71: accountFiee.AccountFiee.UserList:input_type -> accountFiee.UserListRequest - 9, // 72: accountFiee.AccountFiee.CheckRealName:input_type -> accountFiee.CheckRealNameRequest - 7, // 73: accountFiee.AccountFiee.GenerateSliderCaptcha:input_type -> accountFiee.GenerateSliderCaptchaRequest - 5, // 74: accountFiee.AccountFiee.VerifySliderCaptcha:input_type -> accountFiee.VerifySliderCaptchaRequest - 3, // 75: accountFiee.AccountFiee.SendNationMsg:input_type -> accountFiee.SendNationMsgRequest - 1, // 76: accountFiee.AccountFiee.VerifySliderStatus:input_type -> accountFiee.VerifySliderStatusRequest - 3, // 77: accountFiee.AccountFiee.SendNationTemplateMsg:input_type -> accountFiee.SendNationMsgRequest - 131, // 78: accountFiee.AccountFiee.CreateUserAndRealName:input_type -> accountFiee.CreateUserAndRealNameRequest - 100, // 79: accountFiee.AccountFiee.SaveSubmitInfo:input_type -> accountFiee.SubmitInfoRequest - 125, // 80: accountFiee.AccountFiee.CreateChatUser:input_type -> accountFiee.ChatUserData - 125, // 81: accountFiee.AccountFiee.UpdateChatUser:input_type -> accountFiee.ChatUserData - 125, // 82: accountFiee.AccountFiee.SaveChatUser:input_type -> accountFiee.ChatUserData - 127, // 83: accountFiee.AccountFiee.DeleteChatUser:input_type -> accountFiee.DeleteChatUserRequest - 128, // 84: accountFiee.AccountFiee.GetChatUserDetail:input_type -> accountFiee.GetChatUserByIdRequest - 129, // 85: accountFiee.AccountFiee.GetChatUserList:input_type -> accountFiee.GetChatUserListRequest - 116, // 86: accountFiee.AccountFiee.GetChatUserList2:input_type -> accountFiee.GetChatUserListRequest2 - 108, // 87: accountFiee.AccountFiee.RegisterWaiter:input_type -> accountFiee.RegisterWaiterRequest - 102, // 88: accountFiee.AccountFiee.CreateChatRecord:input_type -> accountFiee.ChatRecordData - 102, // 89: accountFiee.AccountFiee.UpdateChatRecord:input_type -> accountFiee.ChatRecordData - 102, // 90: accountFiee.AccountFiee.SaveChatRecord:input_type -> accountFiee.ChatRecordData - 104, // 91: accountFiee.AccountFiee.DeleteChatRecord:input_type -> accountFiee.DeleteChatRecordRequest - 105, // 92: accountFiee.AccountFiee.GetChatRecordDetail:input_type -> accountFiee.GetChatRecordByIdRequest - 106, // 93: accountFiee.AccountFiee.GetChatRecordList:input_type -> accountFiee.GetChatRecordListRequest - 110, // 94: accountFiee.AccountFiee.CreateChatMedia:input_type -> accountFiee.ChatMediaData - 110, // 95: accountFiee.AccountFiee.UpdateChatMedia:input_type -> accountFiee.ChatMediaData - 110, // 96: accountFiee.AccountFiee.SaveChatMedia:input_type -> accountFiee.ChatMediaData - 112, // 97: accountFiee.AccountFiee.DeleteChatMedia:input_type -> accountFiee.DeleteChatMediaRequest - 113, // 98: accountFiee.AccountFiee.GetChatMediaDetail:input_type -> accountFiee.GetChatMediaByIdRequest - 114, // 99: accountFiee.AccountFiee.GetChatMediaList:input_type -> accountFiee.GetChatMediaListRequest - 119, // 100: accountFiee.AccountFiee.CreateChatAutoReplyRuler:input_type -> accountFiee.ChatAutoReplyRulerData - 119, // 101: accountFiee.AccountFiee.UpdateChatAutoReplyRuler:input_type -> accountFiee.ChatAutoReplyRulerData - 119, // 102: accountFiee.AccountFiee.SaveChatAutoReplyRuler:input_type -> accountFiee.ChatAutoReplyRulerData - 121, // 103: accountFiee.AccountFiee.DeleteChatAutoReplyRuler:input_type -> accountFiee.DeleteChatAutoReplyRulerRequest - 122, // 104: accountFiee.AccountFiee.GetChatAutoReplyRulerDetail:input_type -> accountFiee.GetChatAutoReplyRulerByIdRequest - 123, // 105: accountFiee.AccountFiee.GetChatAutoReplyRulerList:input_type -> accountFiee.GetChatAutoReplyRulerListRequest - 74, // 106: accountFiee.AccountFiee.Login:output_type -> accountFiee.TokenInfo - 74, // 107: accountFiee.AccountFiee.RefreshToken:output_type -> accountFiee.TokenInfo - 45, // 108: accountFiee.AccountFiee.Logout:output_type -> accountFiee.CommonResponse - 45, // 109: accountFiee.AccountFiee.OffLine:output_type -> accountFiee.CommonResponse - 39, // 110: accountFiee.AccountFiee.OnlineLog:output_type -> accountFiee.LoginLogsResponse - 40, // 111: accountFiee.AccountFiee.OnlineLogById:output_type -> accountFiee.LoginLog - 61, // 112: accountFiee.AccountFiee.CheckPwd:output_type -> accountFiee.UpdateResponse - 51, // 113: accountFiee.AccountFiee.SendMsg:output_type -> accountFiee.SendMsgStatusResponse - 51, // 114: accountFiee.AccountFiee.SendCustomMsg:output_type -> accountFiee.SendMsgStatusResponse - 51, // 115: accountFiee.AccountFiee.SendExCustomMsg:output_type -> accountFiee.SendMsgStatusResponse - 51, // 116: accountFiee.AccountFiee.SendMsgRegister:output_type -> accountFiee.SendMsgStatusResponse - 51, // 117: accountFiee.AccountFiee.CheckMsg:output_type -> accountFiee.SendMsgStatusResponse - 51, // 118: accountFiee.AccountFiee.SendNewTelNumMsg:output_type -> accountFiee.SendMsgStatusResponse - 51, // 119: accountFiee.AccountFiee.UpdateTelNum:output_type -> accountFiee.SendMsgStatusResponse - 71, // 120: accountFiee.AccountFiee.Authentication:output_type -> accountFiee.RequestStatus - 67, // 121: accountFiee.AccountFiee.DecryptJwt:output_type -> accountFiee.DecryptJwtResponse - 13, // 122: accountFiee.AccountFiee.Info:output_type -> accountFiee.UserInfoResponse - 66, // 123: accountFiee.AccountFiee.JobNumGetInfo:output_type -> accountFiee.InfoResponse - 13, // 124: accountFiee.AccountFiee.SubNumGetInfo:output_type -> accountFiee.UserInfoResponse - 64, // 125: accountFiee.AccountFiee.List:output_type -> accountFiee.ListResponse - 64, // 126: accountFiee.AccountFiee.RandList:output_type -> accountFiee.ListResponse - 64, // 127: accountFiee.AccountFiee.ListByIDs:output_type -> accountFiee.ListResponse - 57, // 128: accountFiee.AccountFiee.Remove:output_type -> accountFiee.RemoveResponse - 61, // 129: accountFiee.AccountFiee.Update:output_type -> accountFiee.UpdateResponse - 64, // 130: accountFiee.AccountFiee.UsersByTel:output_type -> accountFiee.ListResponse - 13, // 131: accountFiee.AccountFiee.UserByTel:output_type -> accountFiee.UserInfoResponse - 51, // 132: accountFiee.AccountFiee.OnlySendMsg:output_type -> accountFiee.SendMsgStatusResponse - 51, // 133: accountFiee.AccountFiee.OnlyCheckMsg:output_type -> accountFiee.SendMsgStatusResponse - 24, // 134: accountFiee.AccountFiee.MailAccountByNickName:output_type -> accountFiee.MaiAccountResponse - 64, // 135: accountFiee.AccountFiee.ListV2:output_type -> accountFiee.ListResponse - 19, // 136: accountFiee.AccountFiee.QueryPersonnelWithTheSameName:output_type -> accountFiee.QueryPersonnelWithTheSameNameResponse - 64, // 137: accountFiee.AccountFiee.UsersByJobNum:output_type -> accountFiee.ListResponse - 14, // 138: accountFiee.AccountFiee.RealName:output_type -> accountFiee.RealNameResponse - 16, // 139: accountFiee.AccountFiee.Register:output_type -> accountFiee.RegisterResponse - 10, // 140: accountFiee.AccountFiee.UserList:output_type -> accountFiee.UserListResponse - 8, // 141: accountFiee.AccountFiee.CheckRealName:output_type -> accountFiee.CheckRealNameResponse - 6, // 142: accountFiee.AccountFiee.GenerateSliderCaptcha:output_type -> accountFiee.GenerateSliderCaptchaResponse - 4, // 143: accountFiee.AccountFiee.VerifySliderCaptcha:output_type -> accountFiee.VerifySliderCaptchaResponse - 51, // 144: accountFiee.AccountFiee.SendNationMsg:output_type -> accountFiee.SendMsgStatusResponse - 2, // 145: accountFiee.AccountFiee.VerifySliderStatus:output_type -> accountFiee.VerifySliderStatusResponse - 51, // 146: accountFiee.AccountFiee.SendNationTemplateMsg:output_type -> accountFiee.SendMsgStatusResponse - 132, // 147: accountFiee.AccountFiee.CreateUserAndRealName:output_type -> accountFiee.CreateUserAndRealNameResponse - 45, // 148: accountFiee.AccountFiee.SaveSubmitInfo:output_type -> accountFiee.CommonResponse - 126, // 149: accountFiee.AccountFiee.CreateChatUser:output_type -> accountFiee.CreateChatUserResp - 101, // 150: accountFiee.AccountFiee.UpdateChatUser:output_type -> accountFiee.CommonMsg - 101, // 151: accountFiee.AccountFiee.SaveChatUser:output_type -> accountFiee.CommonMsg - 101, // 152: accountFiee.AccountFiee.DeleteChatUser:output_type -> accountFiee.CommonMsg - 125, // 153: accountFiee.AccountFiee.GetChatUserDetail:output_type -> accountFiee.ChatUserData - 130, // 154: accountFiee.AccountFiee.GetChatUserList:output_type -> accountFiee.GetChatUserListResp - 118, // 155: accountFiee.AccountFiee.GetChatUserList2:output_type -> accountFiee.GetChatUserListResp2 - 109, // 156: accountFiee.AccountFiee.RegisterWaiter:output_type -> accountFiee.RegisterWaiterResp - 103, // 157: accountFiee.AccountFiee.CreateChatRecord:output_type -> accountFiee.CreateChatRecordResp - 101, // 158: accountFiee.AccountFiee.UpdateChatRecord:output_type -> accountFiee.CommonMsg - 101, // 159: accountFiee.AccountFiee.SaveChatRecord:output_type -> accountFiee.CommonMsg - 101, // 160: accountFiee.AccountFiee.DeleteChatRecord:output_type -> accountFiee.CommonMsg - 102, // 161: accountFiee.AccountFiee.GetChatRecordDetail:output_type -> accountFiee.ChatRecordData - 107, // 162: accountFiee.AccountFiee.GetChatRecordList:output_type -> accountFiee.GetChatRecordListResp - 111, // 163: accountFiee.AccountFiee.CreateChatMedia:output_type -> accountFiee.CreateChatMediaResp - 101, // 164: accountFiee.AccountFiee.UpdateChatMedia:output_type -> accountFiee.CommonMsg - 101, // 165: accountFiee.AccountFiee.SaveChatMedia:output_type -> accountFiee.CommonMsg - 101, // 166: accountFiee.AccountFiee.DeleteChatMedia:output_type -> accountFiee.CommonMsg - 110, // 167: accountFiee.AccountFiee.GetChatMediaDetail:output_type -> accountFiee.ChatMediaData - 115, // 168: accountFiee.AccountFiee.GetChatMediaList:output_type -> accountFiee.GetChatMediaListResp - 120, // 169: accountFiee.AccountFiee.CreateChatAutoReplyRuler:output_type -> accountFiee.CreateChatAutoReplyRulerResp - 101, // 170: accountFiee.AccountFiee.UpdateChatAutoReplyRuler:output_type -> accountFiee.CommonMsg - 101, // 171: accountFiee.AccountFiee.SaveChatAutoReplyRuler:output_type -> accountFiee.CommonMsg - 101, // 172: accountFiee.AccountFiee.DeleteChatAutoReplyRuler:output_type -> accountFiee.CommonMsg - 119, // 173: accountFiee.AccountFiee.GetChatAutoReplyRulerDetail:output_type -> accountFiee.ChatAutoReplyRulerData - 124, // 174: accountFiee.AccountFiee.GetChatAutoReplyRulerList:output_type -> accountFiee.GetChatAutoReplyRulerListResp - 106, // [106:175] is the sub-list for method output_type - 37, // [37:106] is the sub-list for method input_type - 37, // [37:37] is the sub-list for extension type_name - 37, // [37:37] is the sub-list for extension extendee - 0, // [0:37] is the sub-list for field type_name + 4, // 0: accountFiee.InviterListResponse.list:type_name -> accountFiee.InviterInfoResponse + 15, // 1: accountFiee.UserListResponse.userList:type_name -> accountFiee.UserListInfo + 36, // 2: accountFiee.WxBoxUserInfo.user:type_name -> accountFiee.UserInfo + 35, // 3: accountFiee.WxBoxUserInfo.fdd:type_name -> accountFiee.FddInfo + 44, // 4: accountFiee.LoginLogsResponse.Data:type_name -> accountFiee.LoginLog + 57, // 5: accountFiee.WriteOffListResponse.writeOffList:type_name -> accountFiee.WriteOffRequest + 81, // 6: accountFiee.ListResponse.Data:type_name -> accountFiee.AccountInfo + 81, // 7: accountFiee.InfoResponse.Info:type_name -> accountFiee.AccountInfo + 81, // 8: accountFiee.TokenInfo.AccountInfo:type_name -> accountFiee.AccountInfo + 79, // 9: accountFiee.AccountInfo.Extend:type_name -> accountFiee.Extend + 80, // 10: accountFiee.AccountInfo.Departments:type_name -> accountFiee.Department + 84, // 11: accountFiee.AccountInfo.Positions:type_name -> accountFiee.PositionUser + 93, // 12: accountFiee.AccountInfo.clocks:type_name -> accountFiee.ClockUser + 64, // 13: accountFiee.AccountInfo.TrainVideos:type_name -> accountFiee.trainVideo + 63, // 14: accountFiee.AccountInfo.operator:type_name -> accountFiee.Operator + 79, // 15: accountFiee.UserInfoV2.Extend:type_name -> accountFiee.Extend + 63, // 16: accountFiee.UserInfoV2.operator:type_name -> accountFiee.Operator + 94, // 17: accountFiee.ClockDeviceListResponse.data:type_name -> accountFiee.ClockDeviceInfo + 94, // 18: accountFiee.ClockUser.device:type_name -> accountFiee.ClockDeviceInfo + 96, // 19: accountFiee.ClockDeviceInfo.data:type_name -> accountFiee.ClockUserRel + 96, // 20: accountFiee.ClockDeviceInfoResponse.data:type_name -> accountFiee.ClockUserRel + 100, // 21: accountFiee.ClockBatchListResponse.data:type_name -> accountFiee.ClockUserDeviceBatch + 101, // 22: accountFiee.ClockLogListResponse.data:type_name -> accountFiee.ClockLogInfo + 0, // 23: accountFiee.ChatRecordData.msgType:type_name -> accountFiee.MsgType + 114, // 24: accountFiee.ChatRecordData.medias:type_name -> accountFiee.ChatMediaData + 106, // 25: accountFiee.CreateChatRecordResp.data:type_name -> accountFiee.ChatRecordData + 106, // 26: accountFiee.GetChatRecordListRequest.query:type_name -> accountFiee.ChatRecordData + 106, // 27: accountFiee.GetChatRecordListResp.list:type_name -> accountFiee.ChatRecordData + 114, // 28: accountFiee.CreateChatMediaResp.data:type_name -> accountFiee.ChatMediaData + 114, // 29: accountFiee.GetChatMediaListRequest.query:type_name -> accountFiee.ChatMediaData + 114, // 30: accountFiee.GetChatMediaListResp.list:type_name -> accountFiee.ChatMediaData + 121, // 31: accountFiee.GetChatUserListResp2.list:type_name -> accountFiee.ChatUser2 + 123, // 32: accountFiee.CreateChatAutoReplyRulerResp.data:type_name -> accountFiee.ChatAutoReplyRulerData + 123, // 33: accountFiee.GetChatAutoReplyRulerListRequest.query:type_name -> accountFiee.ChatAutoReplyRulerData + 123, // 34: accountFiee.GetChatAutoReplyRulerListResp.list:type_name -> accountFiee.ChatAutoReplyRulerData + 129, // 35: accountFiee.CreateChatUserResp.data:type_name -> accountFiee.ChatUserData + 129, // 36: accountFiee.GetChatUserListRequest.query:type_name -> accountFiee.ChatUserData + 129, // 37: accountFiee.GetChatUserListResp.list:type_name -> accountFiee.ChatUserData + 77, // 38: accountFiee.AccountFiee.Login:input_type -> accountFiee.LoginRequest + 83, // 39: accountFiee.AccountFiee.RefreshToken:input_type -> accountFiee.RefreshTokenRequest + 72, // 40: accountFiee.AccountFiee.Logout:input_type -> accountFiee.DecryptJwtRequest + 37, // 41: accountFiee.AccountFiee.OffLine:input_type -> accountFiee.CommonRequest + 46, // 42: accountFiee.AccountFiee.OnlineLog:input_type -> accountFiee.LoginInfosByUserIdRequest + 45, // 43: accountFiee.AccountFiee.OnlineLogById:input_type -> accountFiee.OnlineLogByIdRequest + 73, // 44: accountFiee.AccountFiee.CheckPwd:input_type -> accountFiee.CheckPwdRequest + 52, // 45: accountFiee.AccountFiee.SendMsg:input_type -> accountFiee.SendMsgRequest + 53, // 46: accountFiee.AccountFiee.SendCustomMsg:input_type -> accountFiee.SendCustomMsgRequest + 53, // 47: accountFiee.AccountFiee.SendExCustomMsg:input_type -> accountFiee.SendCustomMsgRequest + 52, // 48: accountFiee.AccountFiee.SendMsgRegister:input_type -> accountFiee.SendMsgRequest + 54, // 49: accountFiee.AccountFiee.CheckMsg:input_type -> accountFiee.CheckMsgRequest + 47, // 50: accountFiee.AccountFiee.SendNewTelNumMsg:input_type -> accountFiee.SendNewTelNumMsgRequest + 47, // 51: accountFiee.AccountFiee.UpdateTelNum:input_type -> accountFiee.SendNewTelNumMsgRequest + 74, // 52: accountFiee.AccountFiee.Authentication:input_type -> accountFiee.AuthenticationRequest + 72, // 53: accountFiee.AccountFiee.DecryptJwt:input_type -> accountFiee.DecryptJwtRequest + 69, // 54: accountFiee.AccountFiee.Info:input_type -> accountFiee.InfoRequest + 85, // 55: accountFiee.AccountFiee.JobNumGetInfo:input_type -> accountFiee.JobNumGetInfoRequest + 86, // 56: accountFiee.AccountFiee.SubNumGetInfo:input_type -> accountFiee.SubNumGetInfoRequest + 67, // 57: accountFiee.AccountFiee.List:input_type -> accountFiee.ListRequest + 67, // 58: accountFiee.AccountFiee.RandList:input_type -> accountFiee.ListRequest + 51, // 59: accountFiee.AccountFiee.ListByIDs:input_type -> accountFiee.ListByIDsRequest + 56, // 60: accountFiee.AccountFiee.Remove:input_type -> accountFiee.RemoveRequest + 62, // 61: accountFiee.AccountFiee.Update:input_type -> accountFiee.UpdateRequest + 50, // 62: accountFiee.AccountFiee.UsersByTel:input_type -> accountFiee.UsersByTelRequest + 48, // 63: accountFiee.AccountFiee.UserByTel:input_type -> accountFiee.UserByTelRequest + 52, // 64: accountFiee.AccountFiee.OnlySendMsg:input_type -> accountFiee.SendMsgRequest + 54, // 65: accountFiee.AccountFiee.OnlyCheckMsg:input_type -> accountFiee.CheckMsgRequest + 26, // 66: accountFiee.AccountFiee.MailAccountByNickName:input_type -> accountFiee.MailAccountByNickNameRequest + 24, // 67: accountFiee.AccountFiee.ListV2:input_type -> accountFiee.ListV2Request + 22, // 68: accountFiee.AccountFiee.QueryPersonnelWithTheSameName:input_type -> accountFiee.QueryPersonnelWithTheSameNameRequest + 21, // 69: accountFiee.AccountFiee.UsersByJobNum:input_type -> accountFiee.UsersByJobNumRequest + 19, // 70: accountFiee.AccountFiee.RealName:input_type -> accountFiee.RealNameRequest + 76, // 71: accountFiee.AccountFiee.Register:input_type -> accountFiee.RegistRequest + 16, // 72: accountFiee.AccountFiee.UserList:input_type -> accountFiee.UserListRequest + 13, // 73: accountFiee.AccountFiee.CheckRealName:input_type -> accountFiee.CheckRealNameRequest + 11, // 74: accountFiee.AccountFiee.GenerateSliderCaptcha:input_type -> accountFiee.GenerateSliderCaptchaRequest + 9, // 75: accountFiee.AccountFiee.VerifySliderCaptcha:input_type -> accountFiee.VerifySliderCaptchaRequest + 7, // 76: accountFiee.AccountFiee.SendNationMsg:input_type -> accountFiee.SendNationMsgRequest + 5, // 77: accountFiee.AccountFiee.VerifySliderStatus:input_type -> accountFiee.VerifySliderStatusRequest + 7, // 78: accountFiee.AccountFiee.SendNationTemplateMsg:input_type -> accountFiee.SendNationMsgRequest + 3, // 79: accountFiee.AccountFiee.GetInviterInfo:input_type -> accountFiee.InviterInfoRequest + 1, // 80: accountFiee.AccountFiee.GetInviterList:input_type -> accountFiee.InviterListRequest + 135, // 81: accountFiee.AccountFiee.CreateUserAndRealName:input_type -> accountFiee.CreateUserAndRealNameRequest + 104, // 82: accountFiee.AccountFiee.SaveSubmitInfo:input_type -> accountFiee.SubmitInfoRequest + 129, // 83: accountFiee.AccountFiee.CreateChatUser:input_type -> accountFiee.ChatUserData + 129, // 84: accountFiee.AccountFiee.UpdateChatUser:input_type -> accountFiee.ChatUserData + 129, // 85: accountFiee.AccountFiee.SaveChatUser:input_type -> accountFiee.ChatUserData + 131, // 86: accountFiee.AccountFiee.DeleteChatUser:input_type -> accountFiee.DeleteChatUserRequest + 132, // 87: accountFiee.AccountFiee.GetChatUserDetail:input_type -> accountFiee.GetChatUserByIdRequest + 133, // 88: accountFiee.AccountFiee.GetChatUserList:input_type -> accountFiee.GetChatUserListRequest + 120, // 89: accountFiee.AccountFiee.GetChatUserList2:input_type -> accountFiee.GetChatUserListRequest2 + 112, // 90: accountFiee.AccountFiee.RegisterWaiter:input_type -> accountFiee.RegisterWaiterRequest + 106, // 91: accountFiee.AccountFiee.CreateChatRecord:input_type -> accountFiee.ChatRecordData + 106, // 92: accountFiee.AccountFiee.UpdateChatRecord:input_type -> accountFiee.ChatRecordData + 106, // 93: accountFiee.AccountFiee.SaveChatRecord:input_type -> accountFiee.ChatRecordData + 108, // 94: accountFiee.AccountFiee.DeleteChatRecord:input_type -> accountFiee.DeleteChatRecordRequest + 109, // 95: accountFiee.AccountFiee.GetChatRecordDetail:input_type -> accountFiee.GetChatRecordByIdRequest + 110, // 96: accountFiee.AccountFiee.GetChatRecordList:input_type -> accountFiee.GetChatRecordListRequest + 114, // 97: accountFiee.AccountFiee.CreateChatMedia:input_type -> accountFiee.ChatMediaData + 114, // 98: accountFiee.AccountFiee.UpdateChatMedia:input_type -> accountFiee.ChatMediaData + 114, // 99: accountFiee.AccountFiee.SaveChatMedia:input_type -> accountFiee.ChatMediaData + 116, // 100: accountFiee.AccountFiee.DeleteChatMedia:input_type -> accountFiee.DeleteChatMediaRequest + 117, // 101: accountFiee.AccountFiee.GetChatMediaDetail:input_type -> accountFiee.GetChatMediaByIdRequest + 118, // 102: accountFiee.AccountFiee.GetChatMediaList:input_type -> accountFiee.GetChatMediaListRequest + 123, // 103: accountFiee.AccountFiee.CreateChatAutoReplyRuler:input_type -> accountFiee.ChatAutoReplyRulerData + 123, // 104: accountFiee.AccountFiee.UpdateChatAutoReplyRuler:input_type -> accountFiee.ChatAutoReplyRulerData + 123, // 105: accountFiee.AccountFiee.SaveChatAutoReplyRuler:input_type -> accountFiee.ChatAutoReplyRulerData + 125, // 106: accountFiee.AccountFiee.DeleteChatAutoReplyRuler:input_type -> accountFiee.DeleteChatAutoReplyRulerRequest + 126, // 107: accountFiee.AccountFiee.GetChatAutoReplyRulerDetail:input_type -> accountFiee.GetChatAutoReplyRulerByIdRequest + 127, // 108: accountFiee.AccountFiee.GetChatAutoReplyRulerList:input_type -> accountFiee.GetChatAutoReplyRulerListRequest + 78, // 109: accountFiee.AccountFiee.Login:output_type -> accountFiee.TokenInfo + 78, // 110: accountFiee.AccountFiee.RefreshToken:output_type -> accountFiee.TokenInfo + 49, // 111: accountFiee.AccountFiee.Logout:output_type -> accountFiee.CommonResponse + 49, // 112: accountFiee.AccountFiee.OffLine:output_type -> accountFiee.CommonResponse + 43, // 113: accountFiee.AccountFiee.OnlineLog:output_type -> accountFiee.LoginLogsResponse + 44, // 114: accountFiee.AccountFiee.OnlineLogById:output_type -> accountFiee.LoginLog + 65, // 115: accountFiee.AccountFiee.CheckPwd:output_type -> accountFiee.UpdateResponse + 55, // 116: accountFiee.AccountFiee.SendMsg:output_type -> accountFiee.SendMsgStatusResponse + 55, // 117: accountFiee.AccountFiee.SendCustomMsg:output_type -> accountFiee.SendMsgStatusResponse + 55, // 118: accountFiee.AccountFiee.SendExCustomMsg:output_type -> accountFiee.SendMsgStatusResponse + 55, // 119: accountFiee.AccountFiee.SendMsgRegister:output_type -> accountFiee.SendMsgStatusResponse + 55, // 120: accountFiee.AccountFiee.CheckMsg:output_type -> accountFiee.SendMsgStatusResponse + 55, // 121: accountFiee.AccountFiee.SendNewTelNumMsg:output_type -> accountFiee.SendMsgStatusResponse + 55, // 122: accountFiee.AccountFiee.UpdateTelNum:output_type -> accountFiee.SendMsgStatusResponse + 75, // 123: accountFiee.AccountFiee.Authentication:output_type -> accountFiee.RequestStatus + 71, // 124: accountFiee.AccountFiee.DecryptJwt:output_type -> accountFiee.DecryptJwtResponse + 17, // 125: accountFiee.AccountFiee.Info:output_type -> accountFiee.UserInfoResponse + 70, // 126: accountFiee.AccountFiee.JobNumGetInfo:output_type -> accountFiee.InfoResponse + 17, // 127: accountFiee.AccountFiee.SubNumGetInfo:output_type -> accountFiee.UserInfoResponse + 68, // 128: accountFiee.AccountFiee.List:output_type -> accountFiee.ListResponse + 68, // 129: accountFiee.AccountFiee.RandList:output_type -> accountFiee.ListResponse + 68, // 130: accountFiee.AccountFiee.ListByIDs:output_type -> accountFiee.ListResponse + 61, // 131: accountFiee.AccountFiee.Remove:output_type -> accountFiee.RemoveResponse + 65, // 132: accountFiee.AccountFiee.Update:output_type -> accountFiee.UpdateResponse + 68, // 133: accountFiee.AccountFiee.UsersByTel:output_type -> accountFiee.ListResponse + 17, // 134: accountFiee.AccountFiee.UserByTel:output_type -> accountFiee.UserInfoResponse + 55, // 135: accountFiee.AccountFiee.OnlySendMsg:output_type -> accountFiee.SendMsgStatusResponse + 55, // 136: accountFiee.AccountFiee.OnlyCheckMsg:output_type -> accountFiee.SendMsgStatusResponse + 28, // 137: accountFiee.AccountFiee.MailAccountByNickName:output_type -> accountFiee.MaiAccountResponse + 68, // 138: accountFiee.AccountFiee.ListV2:output_type -> accountFiee.ListResponse + 23, // 139: accountFiee.AccountFiee.QueryPersonnelWithTheSameName:output_type -> accountFiee.QueryPersonnelWithTheSameNameResponse + 68, // 140: accountFiee.AccountFiee.UsersByJobNum:output_type -> accountFiee.ListResponse + 18, // 141: accountFiee.AccountFiee.RealName:output_type -> accountFiee.RealNameResponse + 20, // 142: accountFiee.AccountFiee.Register:output_type -> accountFiee.RegisterResponse + 14, // 143: accountFiee.AccountFiee.UserList:output_type -> accountFiee.UserListResponse + 12, // 144: accountFiee.AccountFiee.CheckRealName:output_type -> accountFiee.CheckRealNameResponse + 10, // 145: accountFiee.AccountFiee.GenerateSliderCaptcha:output_type -> accountFiee.GenerateSliderCaptchaResponse + 8, // 146: accountFiee.AccountFiee.VerifySliderCaptcha:output_type -> accountFiee.VerifySliderCaptchaResponse + 55, // 147: accountFiee.AccountFiee.SendNationMsg:output_type -> accountFiee.SendMsgStatusResponse + 6, // 148: accountFiee.AccountFiee.VerifySliderStatus:output_type -> accountFiee.VerifySliderStatusResponse + 55, // 149: accountFiee.AccountFiee.SendNationTemplateMsg:output_type -> accountFiee.SendMsgStatusResponse + 4, // 150: accountFiee.AccountFiee.GetInviterInfo:output_type -> accountFiee.InviterInfoResponse + 2, // 151: accountFiee.AccountFiee.GetInviterList:output_type -> accountFiee.InviterListResponse + 136, // 152: accountFiee.AccountFiee.CreateUserAndRealName:output_type -> accountFiee.CreateUserAndRealNameResponse + 49, // 153: accountFiee.AccountFiee.SaveSubmitInfo:output_type -> accountFiee.CommonResponse + 130, // 154: accountFiee.AccountFiee.CreateChatUser:output_type -> accountFiee.CreateChatUserResp + 105, // 155: accountFiee.AccountFiee.UpdateChatUser:output_type -> accountFiee.CommonMsg + 105, // 156: accountFiee.AccountFiee.SaveChatUser:output_type -> accountFiee.CommonMsg + 105, // 157: accountFiee.AccountFiee.DeleteChatUser:output_type -> accountFiee.CommonMsg + 129, // 158: accountFiee.AccountFiee.GetChatUserDetail:output_type -> accountFiee.ChatUserData + 134, // 159: accountFiee.AccountFiee.GetChatUserList:output_type -> accountFiee.GetChatUserListResp + 122, // 160: accountFiee.AccountFiee.GetChatUserList2:output_type -> accountFiee.GetChatUserListResp2 + 113, // 161: accountFiee.AccountFiee.RegisterWaiter:output_type -> accountFiee.RegisterWaiterResp + 107, // 162: accountFiee.AccountFiee.CreateChatRecord:output_type -> accountFiee.CreateChatRecordResp + 105, // 163: accountFiee.AccountFiee.UpdateChatRecord:output_type -> accountFiee.CommonMsg + 105, // 164: accountFiee.AccountFiee.SaveChatRecord:output_type -> accountFiee.CommonMsg + 105, // 165: accountFiee.AccountFiee.DeleteChatRecord:output_type -> accountFiee.CommonMsg + 106, // 166: accountFiee.AccountFiee.GetChatRecordDetail:output_type -> accountFiee.ChatRecordData + 111, // 167: accountFiee.AccountFiee.GetChatRecordList:output_type -> accountFiee.GetChatRecordListResp + 115, // 168: accountFiee.AccountFiee.CreateChatMedia:output_type -> accountFiee.CreateChatMediaResp + 105, // 169: accountFiee.AccountFiee.UpdateChatMedia:output_type -> accountFiee.CommonMsg + 105, // 170: accountFiee.AccountFiee.SaveChatMedia:output_type -> accountFiee.CommonMsg + 105, // 171: accountFiee.AccountFiee.DeleteChatMedia:output_type -> accountFiee.CommonMsg + 114, // 172: accountFiee.AccountFiee.GetChatMediaDetail:output_type -> accountFiee.ChatMediaData + 119, // 173: accountFiee.AccountFiee.GetChatMediaList:output_type -> accountFiee.GetChatMediaListResp + 124, // 174: accountFiee.AccountFiee.CreateChatAutoReplyRuler:output_type -> accountFiee.CreateChatAutoReplyRulerResp + 105, // 175: accountFiee.AccountFiee.UpdateChatAutoReplyRuler:output_type -> accountFiee.CommonMsg + 105, // 176: accountFiee.AccountFiee.SaveChatAutoReplyRuler:output_type -> accountFiee.CommonMsg + 105, // 177: accountFiee.AccountFiee.DeleteChatAutoReplyRuler:output_type -> accountFiee.CommonMsg + 123, // 178: accountFiee.AccountFiee.GetChatAutoReplyRulerDetail:output_type -> accountFiee.ChatAutoReplyRulerData + 128, // 179: accountFiee.AccountFiee.GetChatAutoReplyRulerList:output_type -> accountFiee.GetChatAutoReplyRulerListResp + 109, // [109:180] is the sub-list for method output_type + 38, // [38:109] is the sub-list for method input_type + 38, // [38:38] is the sub-list for extension type_name + 38, // [38:38] is the sub-list for extension extendee + 0, // [0:38] is the sub-list for field type_name } func init() { file_api_accountFiee_accountFiee_proto_init() } @@ -11382,7 +11730,7 @@ func file_api_accountFiee_accountFiee_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_accountFiee_accountFiee_proto_rawDesc), len(file_api_accountFiee_accountFiee_proto_rawDesc)), NumEnums: 1, - NumMessages: 132, + NumMessages: 136, NumExtensions: 0, NumServices: 1, }, diff --git a/api/accountFiee/accountFiee.proto b/api/accountFiee/accountFiee.proto index 333b4ae..376a33e 100644 --- a/api/accountFiee/accountFiee.proto +++ b/api/accountFiee/accountFiee.proto @@ -66,6 +66,8 @@ service AccountFiee { rpc SendNationMsg (SendNationMsgRequest) returns (SendMsgStatusResponse) {} //发送境外国际短信验证码 --艺术商城 rpc VerifySliderStatus(VerifySliderStatusRequest) returns (VerifySliderStatusResponse) {}// 验证滑块验证码状态 rpc SendNationTemplateMsg (SendNationMsgRequest) returns (SendMsgStatusResponse) {} //发送境外国际短信验证码 --艺术商城 + rpc GetInviterInfo(InviterInfoRequest) returns(InviterInfoResponse) {} //获取邀请人信息 + rpc GetInviterList(InviterListRequest) returns(InviterListResponse) {} //获取邀请人信息 rpc CreateUserAndRealName (CreateUserAndRealNameRequest) returns (CreateUserAndRealNameResponse) {}// 创建用户并实名, 自动导入 @@ -101,7 +103,21 @@ service AccountFiee { rpc GetChatAutoReplyRulerDetail ( GetChatAutoReplyRulerByIdRequest )returns( ChatAutoReplyRulerData ){} //查询自动回复规则详情 rpc GetChatAutoReplyRulerList ( GetChatAutoReplyRulerListRequest )returns( GetChatAutoReplyRulerListResp ){} //查询自动回复规则列表 } - +message InviterListRequest{ + repeated uint64 ids =1; +} +message InviterListResponse{ + repeated InviterInfoResponse list = 1; +} +message InviterInfoRequest{ + string code = 1; +} +message InviterInfoResponse{ + uint64 id = 1; + string code = 2; + string name = 3; + string telNum = 4; +} message VerifySliderStatusRequest { string nonceStr = 1; } @@ -183,6 +199,11 @@ message UserListInfo{ string idNumber = 21; string dateOfBirth = 22; string age = 23; + string email = 24; + string AbroadTelAreaCode = 25; + string AbroadTel = 26; + string inviterName = 27; + string inviterCode = 28; } message UserListRequest{ string domain = 1; @@ -221,6 +242,11 @@ message UserInfoResponse{ string telAreaCode = 19; string idNumber = 20; string dateOfBirth = 21; + string email = 22; + string AbroadTelAreaCode = 23; + string AbroadTel = 24; + uint64 inviterId = 25; + } message RealNameResponse{ uint64 id = 1; @@ -541,6 +567,9 @@ message UpdateRequest { string Domain = 2 [json_name = "domain"]; string Language = 3 [json_name = "language"]; string NickName = 4 [json_name = "nickName"]; + string Email = 5 [json_name = "email"]; + string AbroadTel = 6 [json_name = "abroadTel"]; + string AbroadTelAreaCode = 7 [json_name = "abroadTelAreaCode"]; } message Operator { @@ -632,6 +661,8 @@ message RegistRequest { string telAreaCode = 5; string language = 6; string nickName = 7; + uint64 inviterID = 8; + string inviterCode = 9; } message LoginRequest { diff --git a/api/accountFiee/accountFiee.validator.pb.go b/api/accountFiee/accountFiee.validator.pb.go index 21f932e..235fb34 100644 --- a/api/accountFiee/accountFiee.validator.pb.go +++ b/api/accountFiee/accountFiee.validator.pb.go @@ -17,6 +17,25 @@ var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf +func (this *InviterListRequest) Validate() error { + return nil +} +func (this *InviterListResponse) Validate() error { + for _, item := range this.List { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("List", err) + } + } + } + return nil +} +func (this *InviterInfoRequest) Validate() error { + return nil +} +func (this *InviterInfoResponse) Validate() error { + return nil +} func (this *VerifySliderStatusRequest) Validate() error { return nil } diff --git a/api/accountFiee/accountFiee_triple.pb.go b/api/accountFiee/accountFiee_triple.pb.go index f495060..fd17b08 100644 --- a/api/accountFiee/accountFiee_triple.pb.go +++ b/api/accountFiee/accountFiee_triple.pb.go @@ -70,6 +70,8 @@ type AccountFieeClient interface { SendNationMsg(ctx context.Context, in *SendNationMsgRequest, opts ...grpc_go.CallOption) (*SendMsgStatusResponse, common.ErrorWithAttachment) VerifySliderStatus(ctx context.Context, in *VerifySliderStatusRequest, opts ...grpc_go.CallOption) (*VerifySliderStatusResponse, common.ErrorWithAttachment) SendNationTemplateMsg(ctx context.Context, in *SendNationMsgRequest, opts ...grpc_go.CallOption) (*SendMsgStatusResponse, common.ErrorWithAttachment) + GetInviterInfo(ctx context.Context, in *InviterInfoRequest, opts ...grpc_go.CallOption) (*InviterInfoResponse, common.ErrorWithAttachment) + GetInviterList(ctx context.Context, in *InviterListRequest, opts ...grpc_go.CallOption) (*InviterListResponse, common.ErrorWithAttachment) CreateUserAndRealName(ctx context.Context, in *CreateUserAndRealNameRequest, opts ...grpc_go.CallOption) (*CreateUserAndRealNameResponse, common.ErrorWithAttachment) // submit info SaveSubmitInfo(ctx context.Context, in *SubmitInfoRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) @@ -148,6 +150,8 @@ type AccountFieeClientImpl struct { SendNationMsg func(ctx context.Context, in *SendNationMsgRequest) (*SendMsgStatusResponse, error) VerifySliderStatus func(ctx context.Context, in *VerifySliderStatusRequest) (*VerifySliderStatusResponse, error) SendNationTemplateMsg func(ctx context.Context, in *SendNationMsgRequest) (*SendMsgStatusResponse, error) + GetInviterInfo func(ctx context.Context, in *InviterInfoRequest) (*InviterInfoResponse, error) + GetInviterList func(ctx context.Context, in *InviterListRequest) (*InviterListResponse, error) CreateUserAndRealName func(ctx context.Context, in *CreateUserAndRealNameRequest) (*CreateUserAndRealNameResponse, error) SaveSubmitInfo func(ctx context.Context, in *SubmitInfoRequest) (*CommonResponse, error) CreateChatUser func(ctx context.Context, in *ChatUserData) (*CreateChatUserResp, error) @@ -436,6 +440,18 @@ func (c *accountFieeClient) SendNationTemplateMsg(ctx context.Context, in *SendN return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SendNationTemplateMsg", in, out) } +func (c *accountFieeClient) GetInviterInfo(ctx context.Context, in *InviterInfoRequest, opts ...grpc_go.CallOption) (*InviterInfoResponse, common.ErrorWithAttachment) { + out := new(InviterInfoResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetInviterInfo", in, out) +} + +func (c *accountFieeClient) GetInviterList(ctx context.Context, in *InviterListRequest, opts ...grpc_go.CallOption) (*InviterListResponse, common.ErrorWithAttachment) { + out := new(InviterListResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetInviterList", in, out) +} + func (c *accountFieeClient) CreateUserAndRealName(ctx context.Context, in *CreateUserAndRealNameRequest, opts ...grpc_go.CallOption) (*CreateUserAndRealNameResponse, common.ErrorWithAttachment) { out := new(CreateUserAndRealNameResponse) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -650,6 +666,8 @@ type AccountFieeServer interface { SendNationMsg(context.Context, *SendNationMsgRequest) (*SendMsgStatusResponse, error) VerifySliderStatus(context.Context, *VerifySliderStatusRequest) (*VerifySliderStatusResponse, error) SendNationTemplateMsg(context.Context, *SendNationMsgRequest) (*SendMsgStatusResponse, error) + GetInviterInfo(context.Context, *InviterInfoRequest) (*InviterInfoResponse, error) + GetInviterList(context.Context, *InviterListRequest) (*InviterListResponse, error) CreateUserAndRealName(context.Context, *CreateUserAndRealNameRequest) (*CreateUserAndRealNameResponse, error) // submit info SaveSubmitInfo(context.Context, *SubmitInfoRequest) (*CommonResponse, error) @@ -811,6 +829,12 @@ func (UnimplementedAccountFieeServer) VerifySliderStatus(context.Context, *Verif func (UnimplementedAccountFieeServer) SendNationTemplateMsg(context.Context, *SendNationMsgRequest) (*SendMsgStatusResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SendNationTemplateMsg not implemented") } +func (UnimplementedAccountFieeServer) GetInviterInfo(context.Context, *InviterInfoRequest) (*InviterInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInviterInfo not implemented") +} +func (UnimplementedAccountFieeServer) GetInviterList(context.Context, *InviterListRequest) (*InviterListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInviterList not implemented") +} func (UnimplementedAccountFieeServer) CreateUserAndRealName(context.Context, *CreateUserAndRealNameRequest) (*CreateUserAndRealNameResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateUserAndRealName not implemented") } @@ -2112,6 +2136,64 @@ func _AccountFiee_SendNationTemplateMsg_Handler(srv interface{}, ctx context.Con return interceptor(ctx, in, info, handler) } +func _AccountFiee_GetInviterInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(InviterInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetInviterInfo", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _AccountFiee_GetInviterList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(InviterListRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetInviterList", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + func _AccountFiee_CreateUserAndRealName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(CreateUserAndRealNameRequest) if err := dec(in); err != nil { @@ -3095,6 +3177,14 @@ var AccountFiee_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "SendNationTemplateMsg", Handler: _AccountFiee_SendNationTemplateMsg_Handler, }, + { + MethodName: "GetInviterInfo", + Handler: _AccountFiee_GetInviterInfo_Handler, + }, + { + MethodName: "GetInviterList", + Handler: _AccountFiee_GetInviterList_Handler, + }, { MethodName: "CreateUserAndRealName", Handler: _AccountFiee_CreateUserAndRealName_Handler, diff --git a/api/aryshare/ayrshare.pb.go b/api/aryshare/ayrshare.pb.go index ade4d4d..a985148 100644 --- a/api/aryshare/ayrshare.pb.go +++ b/api/aryshare/ayrshare.pb.go @@ -28,9 +28,9 @@ type UserTag struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` - X float64 `protobuf:"fixed64,2,opt,name=x,proto3" json:"x,omitempty"` // Required for images, cannot be used with Reels - Y float64 `protobuf:"fixed64,3,opt,name=y,proto3" json:"y,omitempty"` // Required for images, cannot be used with Reels + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username"` + X float64 `protobuf:"fixed64,2,opt,name=x,proto3" json:"x"` // Required for images, cannot be used with Reels + Y float64 `protobuf:"fixed64,3,opt,name=y,proto3" json:"y"` // Required for images, cannot be used with Reels } func (x *UserTag) Reset() { @@ -92,17 +92,17 @@ type InstagramOptions struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ShareReelsFeed bool `protobuf:"varint,1,opt,name=shareReelsFeed,proto3" json:"shareReelsFeed,omitempty"` // Whether Reel can appear in both Feed and Reels tabs - AudioName string `protobuf:"bytes,2,opt,name=audioName,proto3" json:"audioName,omitempty"` // Name of the audio music for Reels - ThumbNail string `protobuf:"bytes,3,opt,name=thumbNail,proto3" json:"thumbNail,omitempty"` // URL of the Reel cover image (thumbnail) - ThumbNailOffset int32 `protobuf:"varint,4,opt,name=thumbNailOffset,proto3" json:"thumbNailOffset,omitempty"` // Offset in milliseconds of the thumbnail frame - Stories bool `protobuf:"varint,5,opt,name=stories,proto3" json:"stories,omitempty"` // Whether to post as Instagram Story - AltText []string `protobuf:"bytes,6,rep,name=altText,proto3" json:"altText,omitempty"` // Array of alternative text for images (up to 1000 chars per image) - LocationId string `protobuf:"bytes,7,opt,name=locationId,proto3" json:"locationId,omitempty"` // Facebook Page ID or Page name - UserTags []*UserTag `protobuf:"bytes,8,rep,name=userTags,proto3" json:"userTags,omitempty"` // Array of user tags with username and coordinates - Collaborators []string `protobuf:"bytes,9,rep,name=collaborators,proto3" json:"collaborators,omitempty"` // Array of Instagram usernames (up to 3) - AutoResize bool `protobuf:"varint,10,opt,name=autoResize,proto3" json:"autoResize,omitempty"` // Auto resize images to 1080x1080px (Max Pack required) - DisableComments bool `protobuf:"varint,11,opt,name=disableComments,proto3" json:"disableComments,omitempty"` // Disable comments on the published post + ShareReelsFeed bool `protobuf:"varint,1,opt,name=shareReelsFeed,proto3" json:"shareReelsFeed"` // Whether Reel can appear in both Feed and Reels tabs + AudioName string `protobuf:"bytes,2,opt,name=audioName,proto3" json:"audioName"` // Name of the audio music for Reels + ThumbNail string `protobuf:"bytes,3,opt,name=thumbNail,proto3" json:"thumbNail"` // URL of the Reel cover image (thumbnail) + ThumbNailOffset int32 `protobuf:"varint,4,opt,name=thumbNailOffset,proto3" json:"thumbNailOffset"` // Offset in milliseconds of the thumbnail frame + Stories bool `protobuf:"varint,5,opt,name=stories,proto3" json:"stories"` // Whether to post as Instagram Story + AltText []string `protobuf:"bytes,6,rep,name=altText,proto3" json:"altText"` // Array of alternative text for images (up to 1000 chars per image) + LocationId string `protobuf:"bytes,7,opt,name=locationId,proto3" json:"locationId"` // Facebook Page ID or Page name + UserTags []*UserTag `protobuf:"bytes,8,rep,name=userTags,proto3" json:"userTags"` // Array of user tags with username and coordinates + Collaborators []string `protobuf:"bytes,9,rep,name=collaborators,proto3" json:"collaborators"` // Array of Instagram usernames (up to 3) + AutoResize bool `protobuf:"varint,10,opt,name=autoResize,proto3" json:"autoResize"` // Auto resize images to 1080x1080px (Max Pack required) + DisableComments bool `protobuf:"varint,11,opt,name=disableComments,proto3" json:"disableComments"` // Disable comments on the published post } func (x *InstagramOptions) Reset() { @@ -220,19 +220,19 @@ type TikTokOptions struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AutoAddMusic bool `protobuf:"varint,1,opt,name=autoAddMusic,proto3" json:"autoAddMusic,omitempty"` // Whether to automatically add recommended music (image only) - DisableComments bool `protobuf:"varint,2,opt,name=disableComments,proto3" json:"disableComments,omitempty"` // Whether to disable comments on the published post - DisableDuet bool `protobuf:"varint,3,opt,name=disableDuet,proto3" json:"disableDuet,omitempty"` // Disable duets on the published video (video only) - DisableStitch bool `protobuf:"varint,4,opt,name=disableStitch,proto3" json:"disableStitch,omitempty"` // Disable stitch on the published video (video only) - Draft bool `protobuf:"varint,5,opt,name=draft,proto3" json:"draft,omitempty"` // Whether to create a draft post - IsAIGenerated bool `protobuf:"varint,6,opt,name=isAIGenerated,proto3" json:"isAIGenerated,omitempty"` // Whether to enable AI-generated content toggle (video only) - IsBrandedContent bool `protobuf:"varint,7,opt,name=isBrandedContent,proto3" json:"isBrandedContent,omitempty"` // Whether to enable Branded Content toggle - IsBrandOrganic bool `protobuf:"varint,8,opt,name=isBrandOrganic,proto3" json:"isBrandOrganic,omitempty"` // Whether to enable Brand Organic Content toggle - ImageCoverIndex int32 `protobuf:"varint,9,opt,name=imageCoverIndex,proto3" json:"imageCoverIndex,omitempty"` // Index of mediaUrls to be used as cover (image only, default 0) - Title string `protobuf:"bytes,10,opt,name=title,proto3" json:"title,omitempty"` // Title of the post (image only) - ThumbNailOffset int32 `protobuf:"varint,11,opt,name=thumbNailOffset,proto3" json:"thumbNailOffset,omitempty"` // Frame to use for video cover in milliseconds (video only) - ThumbNail string `protobuf:"bytes,12,opt,name=thumbNail,proto3" json:"thumbNail,omitempty"` // URL of thumbnail image for video (video only) - Visibility string `protobuf:"bytes,13,opt,name=visibility,proto3" json:"visibility,omitempty"` // How the post is shared: "public", "private", "followers", "friends" (image only, default "public") + AutoAddMusic bool `protobuf:"varint,1,opt,name=autoAddMusic,proto3" json:"autoAddMusic"` // Whether to automatically add recommended music (image only) + DisableComments bool `protobuf:"varint,2,opt,name=disableComments,proto3" json:"disableComments"` // Whether to disable comments on the published post + DisableDuet bool `protobuf:"varint,3,opt,name=disableDuet,proto3" json:"disableDuet"` // Disable duets on the published video (video only) + DisableStitch bool `protobuf:"varint,4,opt,name=disableStitch,proto3" json:"disableStitch"` // Disable stitch on the published video (video only) + Draft bool `protobuf:"varint,5,opt,name=draft,proto3" json:"draft"` // Whether to create a draft post + IsAIGenerated bool `protobuf:"varint,6,opt,name=isAIGenerated,proto3" json:"isAIGenerated"` // Whether to enable AI-generated content toggle (video only) + IsBrandedContent bool `protobuf:"varint,7,opt,name=isBrandedContent,proto3" json:"isBrandedContent"` // Whether to enable Branded Content toggle + IsBrandOrganic bool `protobuf:"varint,8,opt,name=isBrandOrganic,proto3" json:"isBrandOrganic"` // Whether to enable Brand Organic Content toggle + ImageCoverIndex int32 `protobuf:"varint,9,opt,name=imageCoverIndex,proto3" json:"imageCoverIndex"` // Index of mediaUrls to be used as cover (image only, default 0) + Title string `protobuf:"bytes,10,opt,name=title,proto3" json:"title"` // Title of the post (image only) + ThumbNailOffset int32 `protobuf:"varint,11,opt,name=thumbNailOffset,proto3" json:"thumbNailOffset"` // Frame to use for video cover in milliseconds (video only) + ThumbNail string `protobuf:"bytes,12,opt,name=thumbNail,proto3" json:"thumbNail"` // URL of thumbnail image for video (video only) + Visibility string `protobuf:"bytes,13,opt,name=visibility,proto3" json:"visibility"` // How the post is shared: "public", "private", "followers", "friends" (image only, default "public") } func (x *TikTokOptions) Reset() { @@ -364,15 +364,20 @@ type YouTubeOptions struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` // Video title (required for YouTube) - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` // Video description - Privacy string `protobuf:"bytes,3,opt,name=privacy,proto3" json:"privacy,omitempty"` // Privacy status: "public", "unlisted", "private" (default "public") - Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"` // Video tags - CategoryId string `protobuf:"bytes,5,opt,name=categoryId,proto3" json:"categoryId,omitempty"` // YouTube category ID - MadeForKids bool `protobuf:"varint,6,opt,name=madeForKids,proto3" json:"madeForKids,omitempty"` // Whether the video is made for kids - ThumbNail string `protobuf:"bytes,7,opt,name=thumbNail,proto3" json:"thumbNail,omitempty"` // URL of custom thumbnail image - PlaylistId string `protobuf:"bytes,8,opt,name=playlistId,proto3" json:"playlistId,omitempty"` // Playlist ID to add the video to - NotifySubscribers bool `protobuf:"varint,9,opt,name=notifySubscribers,proto3" json:"notifySubscribers,omitempty"` // Whether to notify subscribers (default true) + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` // Video title (required for YouTube, max 100 characters) + Visibility string `protobuf:"bytes,2,opt,name=visibility,proto3" json:"visibility"` // Visibility: "public", "unlisted", or "private" (default: "private") + Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags"` // Video tags (400 chars total, 2+ chars each) + CategoryId int32 `protobuf:"varint,4,opt,name=categoryId,proto3" json:"categoryId"` // YouTube category ID (e.g., 24 = Entertainment) + MadeForKids bool `protobuf:"varint,5,opt,name=madeForKids,proto3" json:"madeForKids"` // Whether the video is made for kids (default: false) + ThumbNail string `protobuf:"bytes,6,opt,name=thumbNail,proto3" json:"thumbNail"` // URL of custom thumbnail image (JPEG/PNG under 2MB, must end in png/jpg/jpeg) + PlaylistId string `protobuf:"bytes,7,opt,name=playlistId,proto3" json:"playlistId"` // Playlist ID to add the video to + NotifySubscribers bool `protobuf:"varint,8,opt,name=notifySubscribers,proto3" json:"notifySubscribers"` // Whether to notify subscribers (default: true) + Shorts bool `protobuf:"varint,9,opt,name=shorts,proto3" json:"shorts"` // Post as YouTube Short (max 3 minutes, adds #shorts) + ContainsSyntheticMedia bool `protobuf:"varint,10,opt,name=containsSyntheticMedia,proto3" json:"containsSyntheticMedia"` // Disclose that a video contains realistic Altered or Synthetic (A/S) content + PublishAt string `protobuf:"bytes,11,opt,name=publishAt,proto3" json:"publishAt"` // UTC publish time (YouTube controlled publishing) + SubTitleUrl string `protobuf:"bytes,12,opt,name=subTitleUrl,proto3" json:"subTitleUrl"` // URL to SRT or SBV subtitle file (must start with https:// and end in .srt or .sbv, under 100 MB) + SubTitleLanguage string `protobuf:"bytes,13,opt,name=subTitleLanguage,proto3" json:"subTitleLanguage"` // Language code of subtitles (default: "en") + SubTitleName string `protobuf:"bytes,14,opt,name=subTitleName,proto3" json:"subTitleName"` // Name of the caption track (max 150 chars, default: "English") } func (x *YouTubeOptions) Reset() { @@ -414,16 +419,9 @@ func (x *YouTubeOptions) GetTitle() string { return "" } -func (x *YouTubeOptions) GetDescription() string { +func (x *YouTubeOptions) GetVisibility() string { if x != nil { - return x.Description - } - return "" -} - -func (x *YouTubeOptions) GetPrivacy() string { - if x != nil { - return x.Privacy + return x.Visibility } return "" } @@ -435,11 +433,11 @@ func (x *YouTubeOptions) GetTags() []string { return nil } -func (x *YouTubeOptions) GetCategoryId() string { +func (x *YouTubeOptions) GetCategoryId() int32 { if x != nil { return x.CategoryId } - return "" + return 0 } func (x *YouTubeOptions) GetMadeForKids() bool { @@ -470,17 +468,55 @@ func (x *YouTubeOptions) GetNotifySubscribers() bool { return false } +func (x *YouTubeOptions) GetShorts() bool { + if x != nil { + return x.Shorts + } + return false +} + +func (x *YouTubeOptions) GetContainsSyntheticMedia() bool { + if x != nil { + return x.ContainsSyntheticMedia + } + return false +} + +func (x *YouTubeOptions) GetPublishAt() string { + if x != nil { + return x.PublishAt + } + return "" +} + +func (x *YouTubeOptions) GetSubTitleUrl() string { + if x != nil { + return x.SubTitleUrl + } + return "" +} + +func (x *YouTubeOptions) GetSubTitleLanguage() string { + if x != nil { + return x.SubTitleLanguage + } + return "" +} + +func (x *YouTubeOptions) GetSubTitleName() string { + if x != nil { + return x.SubTitleName + } + return "" +} + // Bluesky 特定发布选项 type BlueskyOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Labels []string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty"` // Content labels for the post - Langs []string `protobuf:"bytes,2,rep,name=langs,proto3" json:"langs,omitempty"` // Language codes (e.g., ["en", "zh"]) - QuotedPostUri string `protobuf:"bytes,3,opt,name=quotedPostUri,proto3" json:"quotedPostUri,omitempty"` // URI of the post to quote - ReplyToPostUri string `protobuf:"bytes,4,opt,name=replyToPostUri,proto3" json:"replyToPostUri,omitempty"` // URI of the post to reply to - ReplyToPostCid string `protobuf:"bytes,5,opt,name=replyToPostCid,proto3" json:"replyToPostCid,omitempty"` // CID of the post to reply to + AltText []string `protobuf:"bytes,6,rep,name=altText,proto3" json:"altText"` // Array of alternative text for images or videos (accessibility feature for screen readers) } func (x *BlueskyOptions) Reset() { @@ -515,60 +551,32 @@ func (*BlueskyOptions) Descriptor() ([]byte, []int) { return file_pb_ayrshare_proto_rawDescGZIP(), []int{4} } -func (x *BlueskyOptions) GetLabels() []string { +func (x *BlueskyOptions) GetAltText() []string { if x != nil { - return x.Labels + return x.AltText } return nil } -func (x *BlueskyOptions) GetLangs() []string { - if x != nil { - return x.Langs - } - return nil -} - -func (x *BlueskyOptions) GetQuotedPostUri() string { - if x != nil { - return x.QuotedPostUri - } - return "" -} - -func (x *BlueskyOptions) GetReplyToPostUri() string { - if x != nil { - return x.ReplyToPostUri - } - return "" -} - -func (x *BlueskyOptions) GetReplyToPostCid() string { - if x != nil { - return x.ReplyToPostCid - } - return "" -} - // 发布帖子到社交媒体平台 type PostRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Post string `protobuf:"bytes,1,opt,name=post,proto3" json:"post,omitempty"` - Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms,omitempty"` - MediaUrls []string `protobuf:"bytes,3,rep,name=mediaUrls,proto3" json:"mediaUrls,omitempty"` - IsVideo bool `protobuf:"varint,4,opt,name=isVideo,proto3" json:"isVideo,omitempty"` - ScheduleDate string `protobuf:"bytes,5,opt,name=scheduleDate,proto3" json:"scheduleDate,omitempty"` - ValidateScheduled bool `protobuf:"varint,6,opt,name=validateScheduled,proto3" json:"validateScheduled,omitempty"` - ShortenLinks bool `protobuf:"varint,7,opt,name=shortenLinks,proto3" json:"shortenLinks,omitempty"` - DisableComments bool `protobuf:"varint,8,opt,name=disableComments,proto3" json:"disableComments,omitempty"` - InstagramOptions *InstagramOptions `protobuf:"bytes,9,opt,name=instagramOptions,proto3" json:"instagramOptions,omitempty"` - TikTokOptions *TikTokOptions `protobuf:"bytes,10,opt,name=tikTokOptions,proto3" json:"tikTokOptions,omitempty"` - ProfileKey string `protobuf:"bytes,11,opt,name=profileKey,proto3" json:"profileKey,omitempty"` - YouTubeOptions *YouTubeOptions `protobuf:"bytes,12,opt,name=youTubeOptions,proto3" json:"youTubeOptions,omitempty"` - BlueskyOptions *BlueskyOptions `protobuf:"bytes,13,opt,name=blueskyOptions,proto3" json:"blueskyOptions,omitempty"` + Post string `protobuf:"bytes,1,opt,name=post,proto3" json:"post"` + Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"` + MediaUrls []string `protobuf:"bytes,3,rep,name=mediaUrls,proto3" json:"mediaUrls"` + IsVideo bool `protobuf:"varint,4,opt,name=isVideo,proto3" json:"isVideo"` + ScheduleDate string `protobuf:"bytes,5,opt,name=scheduleDate,proto3" json:"scheduleDate"` + ValidateScheduled bool `protobuf:"varint,6,opt,name=validateScheduled,proto3" json:"validateScheduled"` + ShortenLinks bool `protobuf:"varint,7,opt,name=shortenLinks,proto3" json:"shortenLinks"` + DisableComments bool `protobuf:"varint,8,opt,name=disableComments,proto3" json:"disableComments"` + InstagramOptions *InstagramOptions `protobuf:"bytes,9,opt,name=instagramOptions,proto3" json:"instagramOptions"` + TikTokOptions *TikTokOptions `protobuf:"bytes,10,opt,name=tikTokOptions,proto3" json:"tikTokOptions"` + ProfileKey string `protobuf:"bytes,11,opt,name=profileKey,proto3" json:"profileKey"` + YouTubeOptions *YouTubeOptions `protobuf:"bytes,12,opt,name=youTubeOptions,proto3" json:"youTubeOptions"` + BlueskyOptions *BlueskyOptions `protobuf:"bytes,13,opt,name=blueskyOptions,proto3" json:"blueskyOptions"` } func (x *PostRequest) Reset() { @@ -700,18 +708,18 @@ type PostId struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid,omitempty"` - PostUrl string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl,omitempty"` - Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"` - Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"` - Owner string `protobuf:"bytes,7,opt,name=owner,proto3" json:"owner,omitempty"` - MediaId string `protobuf:"bytes,8,opt,name=mediaId,proto3" json:"mediaId,omitempty"` - Ended string `protobuf:"bytes,9,opt,name=ended,proto3" json:"ended,omitempty"` - IdShare string `protobuf:"bytes,10,opt,name=idShare,proto3" json:"idShare,omitempty"` - IsVideo bool `protobuf:"varint,11,opt,name=isVideo,proto3" json:"isVideo,omitempty"` - UsedQuota int32 `protobuf:"varint,12,opt,name=usedQuota,proto3" json:"usedQuota,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid"` + PostUrl string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` + Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type"` + Owner string `protobuf:"bytes,7,opt,name=owner,proto3" json:"owner"` + MediaId string `protobuf:"bytes,8,opt,name=mediaId,proto3" json:"mediaId"` + Ended string `protobuf:"bytes,9,opt,name=ended,proto3" json:"ended"` + IdShare string `protobuf:"bytes,10,opt,name=idShare,proto3" json:"idShare"` + IsVideo bool `protobuf:"varint,11,opt,name=isVideo,proto3" json:"isVideo"` + UsedQuota int32 `protobuf:"varint,12,opt,name=usedQuota,proto3" json:"usedQuota"` } func (x *PostId) Reset() { @@ -836,14 +844,14 @@ type PostItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Errors []string `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` - PostIds []*PostId `protobuf:"bytes,3,rep,name=postIds,proto3" json:"postIds,omitempty"` - Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"` - RefId string `protobuf:"bytes,5,opt,name=refId,proto3" json:"refId,omitempty"` - ProfileTitle string `protobuf:"bytes,6,opt,name=profileTitle,proto3" json:"profileTitle,omitempty"` - Post string `protobuf:"bytes,7,opt,name=post,proto3" json:"post,omitempty"` - TikTokId string `protobuf:"bytes,8,opt,name=tikTokId,proto3" json:"tikTokId,omitempty"` // TikTok 特定的 ID + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Errors []string `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors"` + PostIds []*PostId `protobuf:"bytes,3,rep,name=postIds,proto3" json:"postIds"` + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` + RefId string `protobuf:"bytes,5,opt,name=refId,proto3" json:"refId"` + ProfileTitle string `protobuf:"bytes,6,opt,name=profileTitle,proto3" json:"profileTitle"` + Post string `protobuf:"bytes,7,opt,name=post,proto3" json:"post"` + TikTokId string `protobuf:"bytes,8,opt,name=tikTokId,proto3" json:"tikTokId"` // TikTok 特定的 ID } func (x *PostItem) Reset() { @@ -940,13 +948,13 @@ type PostResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Posts []*PostItem `protobuf:"bytes,2,rep,name=posts,proto3" json:"posts,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Posts []*PostItem `protobuf:"bytes,2,rep,name=posts,proto3" json:"posts"` // 兼容旧版本响应格式(不使用 profile key 时) - Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` - PostIds []*PostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds,omitempty"` - Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"` - IsValidated bool `protobuf:"varint,6,opt,name=isValidated,json=validate,proto3" json:"isValidated,omitempty"` // validateScheduled 请求的验证结果 + Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors"` + PostIds []*PostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds"` + Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id"` + IsValidated bool `protobuf:"varint,6,opt,name=isValidated,json=validate,proto3" json:"isValidated"` // validateScheduled 请求的验证结果 } func (x *PostResponse) Reset() { @@ -1029,8 +1037,8 @@ type GetPostRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` } func (x *GetPostRequest) Reset() { @@ -1085,19 +1093,19 @@ type GetPostResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Created string `protobuf:"bytes,1,opt,name=created,proto3" json:"created,omitempty"` - Errors []string `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` - Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` - MediaUrls []string `protobuf:"bytes,4,rep,name=mediaUrls,proto3" json:"mediaUrls,omitempty"` - Platforms []string `protobuf:"bytes,5,rep,name=platforms,proto3" json:"platforms,omitempty"` - Post string `protobuf:"bytes,6,opt,name=post,proto3" json:"post,omitempty"` - PostIds []*PostId `protobuf:"bytes,7,rep,name=postIds,proto3" json:"postIds,omitempty"` - ProfileTitle string `protobuf:"bytes,8,opt,name=profileTitle,proto3" json:"profileTitle,omitempty"` - RefId string `protobuf:"bytes,9,opt,name=refId,proto3" json:"refId,omitempty"` - ScheduleDate string `protobuf:"bytes,10,opt,name=scheduleDate,proto3" json:"scheduleDate,omitempty"` - ShortenLinks bool `protobuf:"varint,11,opt,name=shortenLinks,proto3" json:"shortenLinks,omitempty"` - Status string `protobuf:"bytes,12,opt,name=status,proto3" json:"status,omitempty"` - Type string `protobuf:"bytes,13,opt,name=type,proto3" json:"type,omitempty"` + Created string `protobuf:"bytes,1,opt,name=created,proto3" json:"created"` + Errors []string `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + MediaUrls []string `protobuf:"bytes,4,rep,name=mediaUrls,proto3" json:"mediaUrls"` + Platforms []string `protobuf:"bytes,5,rep,name=platforms,proto3" json:"platforms"` + Post string `protobuf:"bytes,6,opt,name=post,proto3" json:"post"` + PostIds []*PostId `protobuf:"bytes,7,rep,name=postIds,proto3" json:"postIds"` + ProfileTitle string `protobuf:"bytes,8,opt,name=profileTitle,proto3" json:"profileTitle"` + RefId string `protobuf:"bytes,9,opt,name=refId,proto3" json:"refId"` + ScheduleDate string `protobuf:"bytes,10,opt,name=scheduleDate,proto3" json:"scheduleDate"` + ShortenLinks bool `protobuf:"varint,11,opt,name=shortenLinks,proto3" json:"shortenLinks"` + Status string `protobuf:"bytes,12,opt,name=status,proto3" json:"status"` + Type string `protobuf:"bytes,13,opt,name=type,proto3" json:"type"` } func (x *GetPostResponse) Reset() { @@ -1229,8 +1237,8 @@ type GetUserRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ProfileKey string `protobuf:"bytes,1,opt,name=profileKey,proto3" json:"profileKey,omitempty"` - InstagramDetails bool `protobuf:"varint,2,opt,name=instagramDetails,proto3" json:"instagramDetails,omitempty"` + ProfileKey string `protobuf:"bytes,1,opt,name=profileKey,proto3" json:"profileKey"` + InstagramDetails bool `protobuf:"varint,2,opt,name=instagramDetails,proto3" json:"instagramDetails"` } func (x *GetUserRequest) Reset() { @@ -1285,9 +1293,9 @@ type Timestamp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Seconds int64 `protobuf:"varint,1,opt,name=seconds,json=_seconds,proto3" json:"seconds,omitempty"` - Nanoseconds int64 `protobuf:"varint,2,opt,name=nanoseconds,json=_nanoseconds,proto3" json:"nanoseconds,omitempty"` - Utc string `protobuf:"bytes,3,opt,name=utc,proto3" json:"utc,omitempty"` + Seconds int64 `protobuf:"varint,1,opt,name=seconds,json=_seconds,proto3" json:"seconds"` + Nanoseconds int64 `protobuf:"varint,2,opt,name=nanoseconds,json=_nanoseconds,proto3" json:"nanoseconds"` + Utc string `protobuf:"bytes,3,opt,name=utc,proto3" json:"utc"` } func (x *Timestamp) Reset() { @@ -1349,9 +1357,9 @@ type TwitterUsage struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MonthlyUsage int32 `protobuf:"varint,1,opt,name=monthlyUsage,proto3" json:"monthlyUsage,omitempty"` - MonthlyLimit int32 `protobuf:"varint,2,opt,name=monthlyLimit,proto3" json:"monthlyLimit,omitempty"` - MonthlyReset string `protobuf:"bytes,3,opt,name=monthlyReset,proto3" json:"monthlyReset,omitempty"` + MonthlyUsage int32 `protobuf:"varint,1,opt,name=monthlyUsage,proto3" json:"monthlyUsage"` + MonthlyLimit int32 `protobuf:"varint,2,opt,name=monthlyLimit,proto3" json:"monthlyLimit"` + MonthlyReset string `protobuf:"bytes,3,opt,name=monthlyReset,proto3" json:"monthlyReset"` } func (x *TwitterUsage) Reset() { @@ -1413,30 +1421,30 @@ type DisplayName struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Created string `protobuf:"bytes,1,opt,name=created,proto3" json:"created,omitempty"` - DisplayName string `protobuf:"bytes,2,opt,name=displayName,proto3" json:"displayName,omitempty"` - Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` - Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform,omitempty"` - ProfileUrl string `protobuf:"bytes,5,opt,name=profileUrl,proto3" json:"profileUrl,omitempty"` - UserImage string `protobuf:"bytes,6,opt,name=userImage,proto3" json:"userImage,omitempty"` - Username string `protobuf:"bytes,7,opt,name=username,proto3" json:"username,omitempty"` - Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"` - MessagingActive bool `protobuf:"varint,9,opt,name=messagingActive,proto3" json:"messagingActive,omitempty"` - PageName string `protobuf:"bytes,10,opt,name=pageName,proto3" json:"pageName,omitempty"` - UserId string `protobuf:"bytes,11,opt,name=userId,proto3" json:"userId,omitempty"` - MapsUrl string `protobuf:"bytes,12,opt,name=mapsUrl,proto3" json:"mapsUrl,omitempty"` - PlaceId string `protobuf:"bytes,13,opt,name=placeId,proto3" json:"placeId,omitempty"` - ReviewUrl string `protobuf:"bytes,14,opt,name=reviewUrl,proto3" json:"reviewUrl,omitempty"` - IgId string `protobuf:"bytes,15,opt,name=igId,proto3" json:"igId,omitempty"` - Type string `protobuf:"bytes,16,opt,name=type,proto3" json:"type,omitempty"` - UsedQuota int32 `protobuf:"varint,17,opt,name=usedQuota,proto3" json:"usedQuota,omitempty"` - RefreshDaysRemaining int32 `protobuf:"varint,18,opt,name=refreshDaysRemaining,proto3" json:"refreshDaysRemaining,omitempty"` - RefreshRequired string `protobuf:"bytes,19,opt,name=refreshRequired,proto3" json:"refreshRequired,omitempty"` - IsEligibleForGeoRestrictions bool `protobuf:"varint,20,opt,name=isEligibleForGeoRestrictions,proto3" json:"isEligibleForGeoRestrictions,omitempty"` - IsVerified bool `protobuf:"varint,21,opt,name=isVerified,proto3" json:"isVerified,omitempty"` - SubscriptionType string `protobuf:"bytes,22,opt,name=subscriptionType,proto3" json:"subscriptionType,omitempty"` - TwitterUsage *TwitterUsage `protobuf:"bytes,23,opt,name=twitterUsage,proto3" json:"twitterUsage,omitempty"` - VerifiedType string `protobuf:"bytes,24,opt,name=verifiedType,proto3" json:"verifiedType,omitempty"` + Created string `protobuf:"bytes,1,opt,name=created,proto3" json:"created"` + DisplayName string `protobuf:"bytes,2,opt,name=displayName,proto3" json:"displayName"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"` + ProfileUrl string `protobuf:"bytes,5,opt,name=profileUrl,proto3" json:"profileUrl"` + UserImage string `protobuf:"bytes,6,opt,name=userImage,proto3" json:"userImage"` + Username string `protobuf:"bytes,7,opt,name=username,proto3" json:"username"` + Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description"` + MessagingActive bool `protobuf:"varint,9,opt,name=messagingActive,proto3" json:"messagingActive"` + PageName string `protobuf:"bytes,10,opt,name=pageName,proto3" json:"pageName"` + UserId string `protobuf:"bytes,11,opt,name=userId,proto3" json:"userId"` + MapsUrl string `protobuf:"bytes,12,opt,name=mapsUrl,proto3" json:"mapsUrl"` + PlaceId string `protobuf:"bytes,13,opt,name=placeId,proto3" json:"placeId"` + ReviewUrl string `protobuf:"bytes,14,opt,name=reviewUrl,proto3" json:"reviewUrl"` + IgId string `protobuf:"bytes,15,opt,name=igId,proto3" json:"igId"` + Type string `protobuf:"bytes,16,opt,name=type,proto3" json:"type"` + UsedQuota int32 `protobuf:"varint,17,opt,name=usedQuota,proto3" json:"usedQuota"` + RefreshDaysRemaining int32 `protobuf:"varint,18,opt,name=refreshDaysRemaining,proto3" json:"refreshDaysRemaining"` + RefreshRequired string `protobuf:"bytes,19,opt,name=refreshRequired,proto3" json:"refreshRequired"` + IsEligibleForGeoRestrictions bool `protobuf:"varint,20,opt,name=isEligibleForGeoRestrictions,proto3" json:"isEligibleForGeoRestrictions"` + IsVerified bool `protobuf:"varint,21,opt,name=isVerified,proto3" json:"isVerified"` + SubscriptionType string `protobuf:"bytes,22,opt,name=subscriptionType,proto3" json:"subscriptionType"` + TwitterUsage *TwitterUsage `protobuf:"bytes,23,opt,name=twitterUsage,proto3" json:"twitterUsage"` + VerifiedType string `protobuf:"bytes,24,opt,name=verifiedType,proto3" json:"verifiedType"` } func (x *DisplayName) Reset() { @@ -1645,21 +1653,21 @@ type GetUserResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ActiveSocialAccounts []string `protobuf:"bytes,1,rep,name=activeSocialAccounts,proto3" json:"activeSocialAccounts,omitempty"` - Created *Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"` - DisplayNames []*DisplayName `protobuf:"bytes,3,rep,name=displayNames,proto3" json:"displayNames,omitempty"` - Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email,omitempty"` - LastApiCall string `protobuf:"bytes,5,opt,name=lastApiCall,proto3" json:"lastApiCall,omitempty"` - MessagingConversationMonthlyCount int32 `protobuf:"varint,6,opt,name=messagingConversationMonthlyCount,proto3" json:"messagingConversationMonthlyCount,omitempty"` - MessagingEnabled bool `protobuf:"varint,7,opt,name=messagingEnabled,proto3" json:"messagingEnabled,omitempty"` - MonthlyApiCalls int32 `protobuf:"varint,8,opt,name=monthlyApiCalls,proto3" json:"monthlyApiCalls,omitempty"` - MonthlyPostCount int32 `protobuf:"varint,9,opt,name=monthlyPostCount,proto3" json:"monthlyPostCount,omitempty"` - MonthlyPostQuota int32 `protobuf:"varint,10,opt,name=monthlyPostQuota,proto3" json:"monthlyPostQuota,omitempty"` - MonthlyApiCallsQuota int32 `protobuf:"varint,11,opt,name=monthlyApiCallsQuota,proto3" json:"monthlyApiCallsQuota,omitempty"` - RefId string `protobuf:"bytes,12,opt,name=refId,proto3" json:"refId,omitempty"` - Title string `protobuf:"bytes,13,opt,name=title,proto3" json:"title,omitempty"` - LastUpdated string `protobuf:"bytes,14,opt,name=lastUpdated,proto3" json:"lastUpdated,omitempty"` - NextUpdate string `protobuf:"bytes,15,opt,name=nextUpdate,proto3" json:"nextUpdate,omitempty"` + ActiveSocialAccounts []string `protobuf:"bytes,1,rep,name=activeSocialAccounts,proto3" json:"activeSocialAccounts"` + Created *Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created"` + DisplayNames []*DisplayName `protobuf:"bytes,3,rep,name=displayNames,proto3" json:"displayNames"` + Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email"` + LastApiCall string `protobuf:"bytes,5,opt,name=lastApiCall,proto3" json:"lastApiCall"` + MessagingConversationMonthlyCount int32 `protobuf:"varint,6,opt,name=messagingConversationMonthlyCount,proto3" json:"messagingConversationMonthlyCount"` + MessagingEnabled bool `protobuf:"varint,7,opt,name=messagingEnabled,proto3" json:"messagingEnabled"` + MonthlyApiCalls int32 `protobuf:"varint,8,opt,name=monthlyApiCalls,proto3" json:"monthlyApiCalls"` + MonthlyPostCount int32 `protobuf:"varint,9,opt,name=monthlyPostCount,proto3" json:"monthlyPostCount"` + MonthlyPostQuota int32 `protobuf:"varint,10,opt,name=monthlyPostQuota,proto3" json:"monthlyPostQuota"` + MonthlyApiCallsQuota int32 `protobuf:"varint,11,opt,name=monthlyApiCallsQuota,proto3" json:"monthlyApiCallsQuota"` + RefId string `protobuf:"bytes,12,opt,name=refId,proto3" json:"refId"` + Title string `protobuf:"bytes,13,opt,name=title,proto3" json:"title"` + LastUpdated string `protobuf:"bytes,14,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,15,opt,name=nextUpdate,proto3" json:"nextUpdate"` } func (x *GetUserResponse) Reset() { @@ -1805,15 +1813,15 @@ type CreateProfileRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - MessagingActive bool `protobuf:"varint,2,opt,name=messagingActive,proto3" json:"messagingActive,omitempty"` - HideTopHeader bool `protobuf:"varint,3,opt,name=hideTopHeader,proto3" json:"hideTopHeader,omitempty"` - TopHeader string `protobuf:"bytes,4,opt,name=topHeader,proto3" json:"topHeader,omitempty"` - DisableSocial []string `protobuf:"bytes,5,rep,name=disableSocial,proto3" json:"disableSocial,omitempty"` - Team bool `protobuf:"varint,6,opt,name=team,proto3" json:"team,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` - SubHeader string `protobuf:"bytes,8,opt,name=subHeader,proto3" json:"subHeader,omitempty"` - Tags []string `protobuf:"bytes,9,rep,name=tags,proto3" json:"tags,omitempty"` + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` + MessagingActive bool `protobuf:"varint,2,opt,name=messagingActive,proto3" json:"messagingActive"` + HideTopHeader bool `protobuf:"varint,3,opt,name=hideTopHeader,proto3" json:"hideTopHeader"` + TopHeader string `protobuf:"bytes,4,opt,name=topHeader,proto3" json:"topHeader"` + DisableSocial []string `protobuf:"bytes,5,rep,name=disableSocial,proto3" json:"disableSocial"` + Team bool `protobuf:"varint,6,opt,name=team,proto3" json:"team"` + Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email"` + SubHeader string `protobuf:"bytes,8,opt,name=subHeader,proto3" json:"subHeader"` + Tags []string `protobuf:"bytes,9,rep,name=tags,proto3" json:"tags"` } func (x *CreateProfileRequest) Reset() { @@ -1917,11 +1925,11 @@ type CreateProfileResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` - RefId string `protobuf:"bytes,3,opt,name=refId,proto3" json:"refId,omitempty"` - ProfileKey string `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey,omitempty"` - MessagingActive bool `protobuf:"varint,5,opt,name=messagingActive,proto3" json:"messagingActive,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` + RefId string `protobuf:"bytes,3,opt,name=refId,proto3" json:"refId"` + ProfileKey string `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey"` + MessagingActive bool `protobuf:"varint,5,opt,name=messagingActive,proto3" json:"messagingActive"` } func (x *CreateProfileResponse) Reset() { @@ -1997,17 +2005,17 @@ type GetProfilesRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - RefId string `protobuf:"bytes,2,opt,name=refId,proto3" json:"refId,omitempty"` - HasActiveSocialAccounts bool `protobuf:"varint,3,opt,name=hasActiveSocialAccounts,proto3" json:"hasActiveSocialAccounts,omitempty"` - IncludesActiveSocialAccounts []string `protobuf:"bytes,4,rep,name=includesActiveSocialAccounts,proto3" json:"includesActiveSocialAccounts,omitempty"` + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` + RefId string `protobuf:"bytes,2,opt,name=refId,proto3" json:"refId"` + HasActiveSocialAccounts bool `protobuf:"varint,3,opt,name=hasActiveSocialAccounts,proto3" json:"hasActiveSocialAccounts"` + IncludesActiveSocialAccounts []string `protobuf:"bytes,4,rep,name=includesActiveSocialAccounts,proto3" json:"includesActiveSocialAccounts"` // Types that are assignable to ActionLog: // // *GetProfilesRequest_ActionLogBool // *GetProfilesRequest_ActionLogInt ActionLog isGetProfilesRequest_ActionLog `protobuf_oneof:"actionLog"` - Limit int32 `protobuf:"varint,7,opt,name=limit,proto3" json:"limit,omitempty"` - Cursor string `protobuf:"bytes,8,opt,name=cursor,proto3" json:"cursor,omitempty"` + Limit int32 `protobuf:"varint,7,opt,name=limit,proto3" json:"limit"` + Cursor string `protobuf:"bytes,8,opt,name=cursor,proto3" json:"cursor"` } func (x *GetProfilesRequest) Reset() { @@ -2127,14 +2135,14 @@ type ProfileItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` - DisplayTitle string `protobuf:"bytes,3,opt,name=displayTitle,proto3" json:"displayTitle,omitempty"` - Created *Timestamp `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"` - CreatedUTC string `protobuf:"bytes,5,opt,name=createdUTC,proto3" json:"createdUTC,omitempty"` - RefId string `protobuf:"bytes,6,opt,name=refId,proto3" json:"refId,omitempty"` - ActiveSocialAccounts []string `protobuf:"bytes,7,rep,name=activeSocialAccounts,proto3" json:"activeSocialAccounts,omitempty"` - Suspended bool `protobuf:"varint,8,opt,name=suspended,proto3" json:"suspended,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` + DisplayTitle string `protobuf:"bytes,3,opt,name=displayTitle,proto3" json:"displayTitle"` + Created *Timestamp `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + CreatedUTC string `protobuf:"bytes,5,opt,name=createdUTC,proto3" json:"createdUTC"` + RefId string `protobuf:"bytes,6,opt,name=refId,proto3" json:"refId"` + ActiveSocialAccounts []string `protobuf:"bytes,7,rep,name=activeSocialAccounts,proto3" json:"activeSocialAccounts"` + Suspended bool `protobuf:"varint,8,opt,name=suspended,proto3" json:"suspended"` } func (x *ProfileItem) Reset() { @@ -2231,9 +2239,9 @@ type Pagination struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HasMore bool `protobuf:"varint,1,opt,name=hasMore,proto3" json:"hasMore,omitempty"` - NextCursor string `protobuf:"bytes,2,opt,name=nextCursor,proto3" json:"nextCursor,omitempty"` - Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` + HasMore bool `protobuf:"varint,1,opt,name=hasMore,proto3" json:"hasMore"` + NextCursor string `protobuf:"bytes,2,opt,name=nextCursor,proto3" json:"nextCursor"` + Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit"` } func (x *Pagination) Reset() { @@ -2295,11 +2303,11 @@ type GetProfilesResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Profiles []*ProfileItem `protobuf:"bytes,1,rep,name=profiles,proto3" json:"profiles,omitempty"` - Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` - LastUpdated string `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated,omitempty"` - NextUpdate string `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate,omitempty"` - Pagination *Pagination `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination,omitempty"` + Profiles []*ProfileItem `protobuf:"bytes,1,rep,name=profiles,proto3" json:"profiles"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count"` + LastUpdated string `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate"` + Pagination *Pagination `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination"` } func (x *GetProfilesResponse) Reset() { @@ -2375,9 +2383,9 @@ type Email struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - To string `protobuf:"bytes,1,opt,name=to,proto3" json:"to,omitempty"` - Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"` - Body string `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"` + To string `protobuf:"bytes,1,opt,name=to,proto3" json:"to"` + Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject"` + Body string `protobuf:"bytes,3,opt,name=body,proto3" json:"body"` } func (x *Email) Reset() { @@ -2439,16 +2447,16 @@ type GenerateJWTRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` - PrivateKey string `protobuf:"bytes,2,opt,name=privateKey,proto3" json:"privateKey,omitempty"` - ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey,omitempty"` - Logout bool `protobuf:"varint,4,opt,name=logout,proto3" json:"logout,omitempty"` - Redirect string `protobuf:"bytes,5,opt,name=redirect,proto3" json:"redirect,omitempty"` - AllowedSocial []string `protobuf:"bytes,6,rep,name=allowedSocial,proto3" json:"allowedSocial,omitempty"` - Verify bool `protobuf:"varint,7,opt,name=verify,proto3" json:"verify,omitempty"` - Base64 bool `protobuf:"varint,8,opt,name=base64,proto3" json:"base64,omitempty"` - ExpiresIn int32 `protobuf:"varint,9,opt,name=expiresIn,proto3" json:"expiresIn,omitempty"` - Email *Email `protobuf:"bytes,10,opt,name=email,proto3" json:"email,omitempty"` + Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain"` + PrivateKey string `protobuf:"bytes,2,opt,name=privateKey,proto3" json:"privateKey"` + ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"` + Logout bool `protobuf:"varint,4,opt,name=logout,proto3" json:"logout"` + Redirect string `protobuf:"bytes,5,opt,name=redirect,proto3" json:"redirect"` + AllowedSocial []string `protobuf:"bytes,6,rep,name=allowedSocial,proto3" json:"allowedSocial"` + Verify bool `protobuf:"varint,7,opt,name=verify,proto3" json:"verify"` + Base64 bool `protobuf:"varint,8,opt,name=base64,proto3" json:"base64"` + ExpiresIn int32 `protobuf:"varint,9,opt,name=expiresIn,proto3" json:"expiresIn"` + Email *Email `protobuf:"bytes,10,opt,name=email,proto3" json:"email"` } func (x *GenerateJWTRequest) Reset() { @@ -2559,12 +2567,12 @@ type GenerateJWTResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` - Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` - EmailSent bool `protobuf:"varint,5,opt,name=emailSent,proto3" json:"emailSent,omitempty"` - ExpiresIn string `protobuf:"bytes,6,opt,name=expiresIn,proto3" json:"expiresIn,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` + Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token"` + Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url"` + EmailSent bool `protobuf:"varint,5,opt,name=emailSent,proto3" json:"emailSent"` + ExpiresIn string `protobuf:"bytes,6,opt,name=expiresIn,proto3" json:"expiresIn"` } func (x *GenerateJWTResponse) Reset() { @@ -2647,11 +2655,11 @@ type HistoryPostId struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"` - PostUrl string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl,omitempty"` - IsVideo bool `protobuf:"varint,5,opt,name=isVideo,proto3" json:"isVideo,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform"` + PostUrl string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl"` + IsVideo bool `protobuf:"varint,5,opt,name=isVideo,proto3" json:"isVideo"` } func (x *HistoryPostId) Reset() { @@ -2727,26 +2735,26 @@ type HistoryItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Post string `protobuf:"bytes,2,opt,name=post,proto3" json:"post,omitempty"` - Platforms []string `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms,omitempty"` - PostIds []*HistoryPostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds,omitempty"` - Errors []string `protobuf:"bytes,5,rep,name=errors,proto3" json:"errors,omitempty"` - Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"` - Notes string `protobuf:"bytes,7,opt,name=notes,proto3" json:"notes,omitempty"` - Created string `protobuf:"bytes,8,opt,name=created,proto3" json:"created,omitempty"` - Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"` - ScheduleDate *Timestamp `protobuf:"bytes,10,opt,name=scheduleDate,proto3" json:"scheduleDate,omitempty"` - Approved bool `protobuf:"varint,11,opt,name=approved,proto3" json:"approved,omitempty"` - ApprovedBy string `protobuf:"bytes,12,opt,name=approvedBy,proto3" json:"approvedBy,omitempty"` - ApprovedDate string `protobuf:"bytes,13,opt,name=approvedDate,proto3" json:"approvedDate,omitempty"` - RejectedBy string `protobuf:"bytes,14,opt,name=rejectedBy,proto3" json:"rejectedBy,omitempty"` - RejectedDate string `protobuf:"bytes,15,opt,name=rejectedDate,proto3" json:"rejectedDate,omitempty"` - RequiresApproval bool `protobuf:"varint,16,opt,name=requiresApproval,proto3" json:"requiresApproval,omitempty"` - ProfileTitle string `protobuf:"bytes,17,opt,name=profileTitle,proto3" json:"profileTitle,omitempty"` - RefId string `protobuf:"bytes,18,opt,name=refId,proto3" json:"refId,omitempty"` - MediaUrls []string `protobuf:"bytes,19,rep,name=mediaUrls,proto3" json:"mediaUrls,omitempty"` - ShortenLinks bool `protobuf:"varint,20,opt,name=shortenLinks,proto3" json:"shortenLinks,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Post string `protobuf:"bytes,2,opt,name=post,proto3" json:"post"` + Platforms []string `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms"` + PostIds []*HistoryPostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds"` + Errors []string `protobuf:"bytes,5,rep,name=errors,proto3" json:"errors"` + Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type"` + Notes string `protobuf:"bytes,7,opt,name=notes,proto3" json:"notes"` + Created string `protobuf:"bytes,8,opt,name=created,proto3" json:"created"` + Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status"` + ScheduleDate *Timestamp `protobuf:"bytes,10,opt,name=scheduleDate,proto3" json:"scheduleDate"` + Approved bool `protobuf:"varint,11,opt,name=approved,proto3" json:"approved"` + ApprovedBy string `protobuf:"bytes,12,opt,name=approvedBy,proto3" json:"approvedBy"` + ApprovedDate string `protobuf:"bytes,13,opt,name=approvedDate,proto3" json:"approvedDate"` + RejectedBy string `protobuf:"bytes,14,opt,name=rejectedBy,proto3" json:"rejectedBy"` + RejectedDate string `protobuf:"bytes,15,opt,name=rejectedDate,proto3" json:"rejectedDate"` + RequiresApproval bool `protobuf:"varint,16,opt,name=requiresApproval,proto3" json:"requiresApproval"` + ProfileTitle string `protobuf:"bytes,17,opt,name=profileTitle,proto3" json:"profileTitle"` + RefId string `protobuf:"bytes,18,opt,name=refId,proto3" json:"refId"` + MediaUrls []string `protobuf:"bytes,19,rep,name=mediaUrls,proto3" json:"mediaUrls"` + ShortenLinks bool `protobuf:"varint,20,opt,name=shortenLinks,proto3" json:"shortenLinks"` } func (x *HistoryItem) Reset() { @@ -2927,15 +2935,15 @@ type GetHistoryRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - StartDate string `protobuf:"bytes,1,opt,name=startDate,proto3" json:"startDate,omitempty"` - EndDate string `protobuf:"bytes,2,opt,name=endDate,proto3" json:"endDate,omitempty"` - Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` - Platforms []string `protobuf:"bytes,4,rep,name=platforms,proto3" json:"platforms,omitempty"` - LastDays int32 `protobuf:"varint,5,opt,name=lastDays,proto3" json:"lastDays,omitempty"` - Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` - Type string `protobuf:"bytes,7,opt,name=type,proto3" json:"type,omitempty"` - AutoRepostId string `protobuf:"bytes,8,opt,name=autoRepostId,proto3" json:"autoRepostId,omitempty"` - ProfileKey string `protobuf:"bytes,9,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + StartDate string `protobuf:"bytes,1,opt,name=startDate,proto3" json:"startDate"` + EndDate string `protobuf:"bytes,2,opt,name=endDate,proto3" json:"endDate"` + Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit"` + Platforms []string `protobuf:"bytes,4,rep,name=platforms,proto3" json:"platforms"` + LastDays int32 `protobuf:"varint,5,opt,name=lastDays,proto3" json:"lastDays"` + Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status"` + Type string `protobuf:"bytes,7,opt,name=type,proto3" json:"type"` + AutoRepostId string `protobuf:"bytes,8,opt,name=autoRepostId,proto3" json:"autoRepostId"` + ProfileKey string `protobuf:"bytes,9,opt,name=profileKey,proto3" json:"profileKey"` } func (x *GetHistoryRequest) Reset() { @@ -3039,11 +3047,11 @@ type GetHistoryResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - History []*HistoryItem `protobuf:"bytes,1,rep,name=history,proto3" json:"history,omitempty"` - RefId string `protobuf:"bytes,2,opt,name=refId,proto3" json:"refId,omitempty"` - Count int32 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"` - LastUpdated string `protobuf:"bytes,4,opt,name=lastUpdated,proto3" json:"lastUpdated,omitempty"` - NextUpdate string `protobuf:"bytes,5,opt,name=nextUpdate,proto3" json:"nextUpdate,omitempty"` + History []*HistoryItem `protobuf:"bytes,1,rep,name=history,proto3" json:"history"` + RefId string `protobuf:"bytes,2,opt,name=refId,proto3" json:"refId"` + Count int32 `protobuf:"varint,3,opt,name=count,proto3" json:"count"` + LastUpdated string `protobuf:"bytes,4,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,5,opt,name=nextUpdate,proto3" json:"nextUpdate"` } func (x *GetHistoryResponse) Reset() { @@ -3119,9 +3127,9 @@ type GetHistoryByIdRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - SearchAllPosts bool `protobuf:"varint,2,opt,name=searchAllPosts,proto3" json:"searchAllPosts,omitempty"` - ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + SearchAllPosts bool `protobuf:"varint,2,opt,name=searchAllPosts,proto3" json:"searchAllPosts"` + ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"` } func (x *GetHistoryByIdRequest) Reset() { @@ -3183,19 +3191,19 @@ type GetHistoryByIdResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Tier string `protobuf:"bytes,1,opt,name=tier,proto3" json:"tier,omitempty"` - Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - MediaUrls []string `protobuf:"bytes,3,rep,name=mediaUrls,proto3" json:"mediaUrls,omitempty"` - PostIds []*HistoryPostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds,omitempty"` - Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"` - Errors []string `protobuf:"bytes,6,rep,name=errors,proto3" json:"errors,omitempty"` - Platforms []string `protobuf:"bytes,7,rep,name=platforms,proto3" json:"platforms,omitempty"` - ScheduleDate *Timestamp `protobuf:"bytes,8,opt,name=scheduleDate,proto3" json:"scheduleDate,omitempty"` - Created string `protobuf:"bytes,9,opt,name=created,proto3" json:"created,omitempty"` - ShortenLinks bool `protobuf:"varint,10,opt,name=shortenLinks,proto3" json:"shortenLinks,omitempty"` - Post string `protobuf:"bytes,11,opt,name=post,proto3" json:"post,omitempty"` - Notes string `protobuf:"bytes,12,opt,name=notes,proto3" json:"notes,omitempty"` - Type string `protobuf:"bytes,13,opt,name=type,proto3" json:"type,omitempty"` + Tier string `protobuf:"bytes,1,opt,name=tier,proto3" json:"tier"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"` + MediaUrls []string `protobuf:"bytes,3,rep,name=mediaUrls,proto3" json:"mediaUrls"` + PostIds []*HistoryPostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds"` + Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id"` + Errors []string `protobuf:"bytes,6,rep,name=errors,proto3" json:"errors"` + Platforms []string `protobuf:"bytes,7,rep,name=platforms,proto3" json:"platforms"` + ScheduleDate *Timestamp `protobuf:"bytes,8,opt,name=scheduleDate,proto3" json:"scheduleDate"` + Created string `protobuf:"bytes,9,opt,name=created,proto3" json:"created"` + ShortenLinks bool `protobuf:"varint,10,opt,name=shortenLinks,proto3" json:"shortenLinks"` + Post string `protobuf:"bytes,11,opt,name=post,proto3" json:"post"` + Notes string `protobuf:"bytes,12,opt,name=notes,proto3" json:"notes"` + Type string `protobuf:"bytes,13,opt,name=type,proto3" json:"type"` } func (x *GetHistoryByIdResponse) Reset() { @@ -3327,11 +3335,11 @@ type PlatformPost struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Post string `protobuf:"bytes,2,opt,name=post,proto3" json:"post,omitempty"` - PostUrl string `protobuf:"bytes,3,opt,name=postUrl,proto3" json:"postUrl,omitempty"` - Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"` - CreatedAt string `protobuf:"bytes,5,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Post string `protobuf:"bytes,2,opt,name=post,proto3" json:"post"` + PostUrl string `protobuf:"bytes,3,opt,name=postUrl,proto3" json:"postUrl"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + CreatedAt string `protobuf:"bytes,5,opt,name=createdAt,proto3" json:"createdAt"` } func (x *PlatformPost) Reset() { @@ -3407,8 +3415,8 @@ type GetHistoryByPlatformRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` - ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` } func (x *GetHistoryByPlatformRequest) Reset() { @@ -3463,10 +3471,10 @@ type GetHistoryByPlatformResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Posts []*PlatformPost `protobuf:"bytes,2,rep,name=posts,proto3" json:"posts,omitempty"` - LastUpdated string `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated,omitempty"` - NextUpdate string `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Posts []*PlatformPost `protobuf:"bytes,2,rep,name=posts,proto3" json:"posts"` + LastUpdated string `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate"` } func (x *GetHistoryByPlatformResponse) Reset() { @@ -3535,11 +3543,11 @@ type SendMessageRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` - RecipientId string `protobuf:"bytes,2,opt,name=recipientId,proto3" json:"recipientId,omitempty"` - Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` - MediaUrls []string `protobuf:"bytes,4,rep,name=mediaUrls,proto3" json:"mediaUrls,omitempty"` - ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform"` + RecipientId string `protobuf:"bytes,2,opt,name=recipientId,proto3" json:"recipientId"` + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message"` + MediaUrls []string `protobuf:"bytes,4,rep,name=mediaUrls,proto3" json:"mediaUrls"` + ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"` } func (x *SendMessageRequest) Reset() { @@ -3615,14 +3623,14 @@ type MessageItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - RecipientId string `protobuf:"bytes,2,opt,name=recipientId,proto3" json:"recipientId,omitempty"` - MessageId string `protobuf:"bytes,3,opt,name=messageId,proto3" json:"messageId,omitempty"` - Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` - Type string `protobuf:"bytes,5,opt,name=type,proto3" json:"type,omitempty"` - MediaUrl string `protobuf:"bytes,6,opt,name=mediaUrl,proto3" json:"mediaUrl,omitempty"` - Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action,omitempty"` - Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + RecipientId string `protobuf:"bytes,2,opt,name=recipientId,proto3" json:"recipientId"` + MessageId string `protobuf:"bytes,3,opt,name=messageId,proto3" json:"messageId"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message"` + Type string `protobuf:"bytes,5,opt,name=type,proto3" json:"type"` + MediaUrl string `protobuf:"bytes,6,opt,name=mediaUrl,proto3" json:"mediaUrl"` + Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code"` } func (x *MessageItem) Reset() { @@ -3719,15 +3727,15 @@ type SendMessageResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - RecipientId string `protobuf:"bytes,2,opt,name=recipientId,proto3" json:"recipientId,omitempty"` - MessageId string `protobuf:"bytes,3,opt,name=messageId,proto3" json:"messageId,omitempty"` - Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` // 成功消息的内容或错误消息的内容(根据 status 判断) - Type string `protobuf:"bytes,5,opt,name=type,proto3" json:"type,omitempty"` - MediaUrl string `protobuf:"bytes,6,opt,name=mediaUrl,proto3" json:"mediaUrl,omitempty"` - Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action,omitempty"` - Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code,omitempty"` - Messages []*MessageItem `protobuf:"bytes,9,rep,name=messages,proto3" json:"messages,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + RecipientId string `protobuf:"bytes,2,opt,name=recipientId,proto3" json:"recipientId"` + MessageId string `protobuf:"bytes,3,opt,name=messageId,proto3" json:"messageId"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message"` // 成功消息的内容或错误消息的内容(根据 status 判断) + Type string `protobuf:"bytes,5,opt,name=type,proto3" json:"type"` + MediaUrl string `protobuf:"bytes,6,opt,name=mediaUrl,proto3" json:"mediaUrl"` + Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code"` + Messages []*MessageItem `protobuf:"bytes,9,rep,name=messages,proto3" json:"messages"` } func (x *SendMessageResponse) Reset() { @@ -3831,11 +3839,11 @@ type GetMessagesRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` - Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - ConversationId string `protobuf:"bytes,3,opt,name=conversationId,proto3" json:"conversationId,omitempty"` - ConversationsOnly bool `protobuf:"varint,4,opt,name=conversationsOnly,proto3" json:"conversationsOnly,omitempty"` - ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"` + ConversationId string `protobuf:"bytes,3,opt,name=conversationId,proto3" json:"conversationId"` + ConversationsOnly bool `protobuf:"varint,4,opt,name=conversationsOnly,proto3" json:"conversationsOnly"` + ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"` } func (x *GetMessagesRequest) Reset() { @@ -3911,8 +3919,8 @@ type MessageAttachment struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url"` } func (x *MessageAttachment) Reset() { @@ -3967,10 +3975,10 @@ type MessageSenderDetails struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Picture string `protobuf:"bytes,3,opt,name=picture,proto3" json:"picture,omitempty"` - ProfileImage string `protobuf:"bytes,4,opt,name=profileImage,proto3" json:"profileImage,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Picture string `protobuf:"bytes,3,opt,name=picture,proto3" json:"picture"` + ProfileImage string `protobuf:"bytes,4,opt,name=profileImage,proto3" json:"profileImage"` } func (x *MessageSenderDetails) Reset() { @@ -4039,9 +4047,9 @@ type MessageRecipientDetails struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Picture string `protobuf:"bytes,3,opt,name=picture,proto3" json:"picture,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Picture string `protobuf:"bytes,3,opt,name=picture,proto3" json:"picture"` } func (x *MessageRecipientDetails) Reset() { @@ -4103,8 +4111,8 @@ type MessageReaction struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"` - Emoji string `protobuf:"bytes,2,opt,name=emoji,proto3" json:"emoji,omitempty"` + UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId"` + Emoji string `protobuf:"bytes,2,opt,name=emoji,proto3" json:"emoji"` } func (x *MessageReaction) Reset() { @@ -4159,19 +4167,19 @@ type GetMessagesItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - SenderId string `protobuf:"bytes,2,opt,name=senderId,proto3" json:"senderId,omitempty"` - SenderDetails *MessageSenderDetails `protobuf:"bytes,3,opt,name=senderDetails,proto3" json:"senderDetails,omitempty"` - RecipientId string `protobuf:"bytes,4,opt,name=recipientId,proto3" json:"recipientId,omitempty"` - RecipientDetails *MessageRecipientDetails `protobuf:"bytes,5,opt,name=recipientDetails,proto3" json:"recipientDetails,omitempty"` - ConversationId string `protobuf:"bytes,6,opt,name=conversationId,proto3" json:"conversationId,omitempty"` - Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` - Platform string `protobuf:"bytes,8,opt,name=platform,proto3" json:"platform,omitempty"` - Action string `protobuf:"bytes,9,opt,name=action,proto3" json:"action,omitempty"` - Created string `protobuf:"bytes,10,opt,name=created,proto3" json:"created,omitempty"` - Updated string `protobuf:"bytes,11,opt,name=updated,proto3" json:"updated,omitempty"` - Attachments []*MessageAttachment `protobuf:"bytes,12,rep,name=attachments,proto3" json:"attachments,omitempty"` - Reactions []*MessageReaction `protobuf:"bytes,13,rep,name=reactions,proto3" json:"reactions,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + SenderId string `protobuf:"bytes,2,opt,name=senderId,proto3" json:"senderId"` + SenderDetails *MessageSenderDetails `protobuf:"bytes,3,opt,name=senderDetails,proto3" json:"senderDetails"` + RecipientId string `protobuf:"bytes,4,opt,name=recipientId,proto3" json:"recipientId"` + RecipientDetails *MessageRecipientDetails `protobuf:"bytes,5,opt,name=recipientDetails,proto3" json:"recipientDetails"` + ConversationId string `protobuf:"bytes,6,opt,name=conversationId,proto3" json:"conversationId"` + Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message"` + Platform string `protobuf:"bytes,8,opt,name=platform,proto3" json:"platform"` + Action string `protobuf:"bytes,9,opt,name=action,proto3" json:"action"` + Created string `protobuf:"bytes,10,opt,name=created,proto3" json:"created"` + Updated string `protobuf:"bytes,11,opt,name=updated,proto3" json:"updated"` + Attachments []*MessageAttachment `protobuf:"bytes,12,rep,name=attachments,proto3" json:"attachments"` + Reactions []*MessageReaction `protobuf:"bytes,13,rep,name=reactions,proto3" json:"reactions"` } func (x *GetMessagesItem) Reset() { @@ -4303,9 +4311,9 @@ type ConversationParticipant struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Picture string `protobuf:"bytes,3,opt,name=picture,proto3" json:"picture,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Picture string `protobuf:"bytes,3,opt,name=picture,proto3" json:"picture"` } func (x *ConversationParticipant) Reset() { @@ -4367,10 +4375,10 @@ type ConversationDetail struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Participant *ConversationParticipant `protobuf:"bytes,2,opt,name=participant,proto3" json:"participant,omitempty"` - Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` - Watermark int64 `protobuf:"varint,4,opt,name=watermark,proto3" json:"watermark,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Participant *ConversationParticipant `protobuf:"bytes,2,opt,name=participant,proto3" json:"participant"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status"` + Watermark int64 `protobuf:"varint,4,opt,name=watermark,proto3" json:"watermark"` } func (x *ConversationDetail) Reset() { @@ -4439,15 +4447,15 @@ type GetMessagesResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Messages []*GetMessagesItem `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages,omitempty"` - LastUpdated string `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated,omitempty"` - NextUpdate string `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate,omitempty"` - ConversationIds []string `protobuf:"bytes,5,rep,name=conversationIds,proto3" json:"conversationIds,omitempty"` - ConversationsDetails []*ConversationDetail `protobuf:"bytes,6,rep,name=conversationsDetails,proto3" json:"conversationsDetails,omitempty"` - Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action,omitempty"` - Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code,omitempty"` - ErrMsg string `protobuf:"bytes,9,opt,name=errMsg,json=message,proto3" json:"errMsg,omitempty"` // 错误消息(JSON 字段名为 "message",但 proto 字段名为 errMsg 以区分) + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Messages []*GetMessagesItem `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages"` + LastUpdated string `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate"` + ConversationIds []string `protobuf:"bytes,5,rep,name=conversationIds,proto3" json:"conversationIds"` + ConversationsDetails []*ConversationDetail `protobuf:"bytes,6,rep,name=conversationsDetails,proto3" json:"conversationsDetails"` + Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code"` + ErrMsg string `protobuf:"bytes,9,opt,name=errMsg,json=message,proto3" json:"errMsg"` // 错误消息(JSON 字段名为 "message",但 proto 字段名为 errMsg 以区分) } func (x *GetMessagesResponse) Reset() { @@ -4551,12 +4559,12 @@ type PostCommentRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"` - Platforms []string `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms,omitempty"` - SearchPlatformId bool `protobuf:"varint,4,opt,name=searchPlatformId,proto3" json:"searchPlatformId,omitempty"` - MediaUrls []string `protobuf:"bytes,5,rep,name=mediaUrls,proto3" json:"mediaUrls,omitempty"` - ProfileKey string `protobuf:"bytes,6,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"` + Platforms []string `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms"` + SearchPlatformId bool `protobuf:"varint,4,opt,name=searchPlatformId,proto3" json:"searchPlatformId"` + MediaUrls []string `protobuf:"bytes,5,rep,name=mediaUrls,proto3" json:"mediaUrls"` + ProfileKey string `protobuf:"bytes,6,opt,name=profileKey,proto3" json:"profileKey"` } func (x *PostCommentRequest) Reset() { @@ -4639,10 +4647,10 @@ type InstagramCommentResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` - Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"` } func (x *InstagramCommentResponse) Reset() { @@ -4711,11 +4719,11 @@ type TikTokCommentResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` - Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform,omitempty"` - VideoId string `protobuf:"bytes,5,opt,name=videoId,proto3" json:"videoId,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"` + VideoId string `protobuf:"bytes,5,opt,name=videoId,proto3" json:"videoId"` } func (x *TikTokCommentResponse) Reset() { @@ -4791,12 +4799,12 @@ type BlueskyCommentResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid,omitempty"` - Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` - Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"` - PostUrl string `protobuf:"bytes,6,opt,name=postUrl,proto3" json:"postUrl,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` + PostUrl string `protobuf:"bytes,6,opt,name=postUrl,proto3" json:"postUrl"` } func (x *BlueskyCommentResponse) Reset() { @@ -4879,10 +4887,10 @@ type FacebookCommentResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` - Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"` } func (x *FacebookCommentResponse) Reset() { @@ -4951,11 +4959,11 @@ type LinkedInCommentResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` - CommentUrn string `protobuf:"bytes,4,opt,name=commentUrn,proto3" json:"commentUrn,omitempty"` - Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"` + CommentUrn string `protobuf:"bytes,4,opt,name=commentUrn,proto3" json:"commentUrn"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` } func (x *LinkedInCommentResponse) Reset() { @@ -5031,10 +5039,10 @@ type TwitterCommentResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` - PostUrl string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"` + PostUrl string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl"` } func (x *TwitterCommentResponse) Reset() { @@ -5103,10 +5111,10 @@ type YouTubeCommentResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` - Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"` } func (x *YouTubeCommentResponse) Reset() { @@ -5175,14 +5183,14 @@ type PlatformError struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"` - Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - Code int32 `protobuf:"varint,3,opt,name=code,proto3" json:"code,omitempty"` - Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` - Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"` - Post string `protobuf:"bytes,6,opt,name=post,proto3" json:"post,omitempty"` // 重复评论错误时包含的评论内容 - Detail string `protobuf:"bytes,7,opt,name=detail,proto3" json:"detail,omitempty"` // 错误详情 - Id string `protobuf:"bytes,8,opt,name=id,proto3" json:"id,omitempty"` // Ayrshare Post ID(错误响应中可能包含) + Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"` + Code int32 `protobuf:"varint,3,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` + Post string `protobuf:"bytes,6,opt,name=post,proto3" json:"post"` // 重复评论错误时包含的评论内容 + Detail string `protobuf:"bytes,7,opt,name=detail,proto3" json:"detail"` // 错误详情 + Id string `protobuf:"bytes,8,opt,name=id,proto3" json:"id"` // Ayrshare Post ID(错误响应中可能包含) } func (x *PlatformError) Reset() { @@ -5279,23 +5287,23 @@ type PostCommentResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentID string `protobuf:"bytes,2,opt,name=commentID,proto3" json:"commentID,omitempty"` - CommentIdAlt string `protobuf:"bytes,3,opt,name=commentIdAlt,json=commentId,proto3" json:"commentIdAlt,omitempty"` // 备用字段,用于错误响应 - Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"` - Instagram *InstagramCommentResponse `protobuf:"bytes,5,opt,name=instagram,proto3" json:"instagram,omitempty"` - Tiktok *TikTokCommentResponse `protobuf:"bytes,6,opt,name=tiktok,proto3" json:"tiktok,omitempty"` - Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action,omitempty"` - Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code,omitempty"` - Message string `protobuf:"bytes,9,opt,name=message,proto3" json:"message,omitempty"` - Platform string `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform,omitempty"` - Errors []*PlatformError `protobuf:"bytes,11,rep,name=errors,proto3" json:"errors,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentID string `protobuf:"bytes,2,opt,name=commentID,proto3" json:"commentID"` + CommentIdAlt string `protobuf:"bytes,3,opt,name=commentIdAlt,json=commentId,proto3" json:"commentIdAlt"` // 备用字段,用于错误响应 + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` + Instagram *InstagramCommentResponse `protobuf:"bytes,5,opt,name=instagram,proto3" json:"instagram"` + Tiktok *TikTokCommentResponse `protobuf:"bytes,6,opt,name=tiktok,proto3" json:"tiktok"` + Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,9,opt,name=message,proto3" json:"message"` + Platform string `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform"` + Errors []*PlatformError `protobuf:"bytes,11,rep,name=errors,proto3" json:"errors"` // 其它平台的发布评论结果 - Bluesky *BlueskyCommentResponse `protobuf:"bytes,12,opt,name=bluesky,proto3" json:"bluesky,omitempty"` - Facebook *FacebookCommentResponse `protobuf:"bytes,13,opt,name=facebook,proto3" json:"facebook,omitempty"` - Linkedin *LinkedInCommentResponse `protobuf:"bytes,14,opt,name=linkedin,proto3" json:"linkedin,omitempty"` - Twitter *TwitterCommentResponse `protobuf:"bytes,15,opt,name=twitter,proto3" json:"twitter,omitempty"` - Youtube *YouTubeCommentResponse `protobuf:"bytes,16,opt,name=youtube,proto3" json:"youtube,omitempty"` + Bluesky *BlueskyCommentResponse `protobuf:"bytes,12,opt,name=bluesky,proto3" json:"bluesky"` + Facebook *FacebookCommentResponse `protobuf:"bytes,13,opt,name=facebook,proto3" json:"facebook"` + Linkedin *LinkedInCommentResponse `protobuf:"bytes,14,opt,name=linkedin,proto3" json:"linkedin"` + Twitter *TwitterCommentResponse `protobuf:"bytes,15,opt,name=twitter,proto3" json:"twitter"` + Youtube *YouTubeCommentResponse `protobuf:"bytes,16,opt,name=youtube,proto3" json:"youtube"` } func (x *PostCommentResponse) Reset() { @@ -5448,8 +5456,8 @@ type GetCommentRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` } func (x *GetCommentRequest) Reset() { @@ -5504,9 +5512,9 @@ type InstagramUser struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username"` } func (x *InstagramUser) Reset() { @@ -5568,7 +5576,7 @@ type InstagramUserInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` } func (x *InstagramUserInfo) Reset() { @@ -5616,20 +5624,20 @@ type InstagramComment struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` - Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"` - From *InstagramUser `protobuf:"bytes,5,opt,name=from,proto3" json:"from,omitempty"` - Hidden bool `protobuf:"varint,6,opt,name=hidden,proto3" json:"hidden,omitempty"` - LikeCount int32 `protobuf:"varint,7,opt,name=likeCount,proto3" json:"likeCount,omitempty"` - ParentId string `protobuf:"bytes,8,opt,name=parentId,proto3" json:"parentId,omitempty"` - Platform string `protobuf:"bytes,9,opt,name=platform,proto3" json:"platform,omitempty"` - PostId string `protobuf:"bytes,10,opt,name=postId,proto3" json:"postId,omitempty"` - Replies []*InstagramComment `protobuf:"bytes,11,rep,name=replies,proto3" json:"replies,omitempty"` - User *InstagramUserInfo `protobuf:"bytes,12,opt,name=user,proto3" json:"user,omitempty"` - UserName string `protobuf:"bytes,13,opt,name=userName,proto3" json:"userName,omitempty"` - UsernameAlt string `protobuf:"bytes,14,opt,name=usernameAlt,json=username,proto3" json:"usernameAlt,omitempty"` // 备用字段,用于回复评论 + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + From *InstagramUser `protobuf:"bytes,5,opt,name=from,proto3" json:"from"` + Hidden bool `protobuf:"varint,6,opt,name=hidden,proto3" json:"hidden"` + LikeCount int32 `protobuf:"varint,7,opt,name=likeCount,proto3" json:"likeCount"` + ParentId string `protobuf:"bytes,8,opt,name=parentId,proto3" json:"parentId"` + Platform string `protobuf:"bytes,9,opt,name=platform,proto3" json:"platform"` + PostId string `protobuf:"bytes,10,opt,name=postId,proto3" json:"postId"` + Replies []*InstagramComment `protobuf:"bytes,11,rep,name=replies,proto3" json:"replies"` + User *InstagramUserInfo `protobuf:"bytes,12,opt,name=user,proto3" json:"user"` + UserName string `protobuf:"bytes,13,opt,name=userName,proto3" json:"userName"` + UsernameAlt string `protobuf:"bytes,14,opt,name=usernameAlt,json=username,proto3" json:"usernameAlt"` // 备用字段,用于回复评论 } func (x *InstagramComment) Reset() { @@ -5768,25 +5776,25 @@ type TikTokComment struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - Created string `protobuf:"bytes,3,opt,name=created,proto3" json:"created,omitempty"` - CreateTime string `protobuf:"bytes,4,opt,name=createTime,proto3" json:"createTime,omitempty"` - DisplayName string `protobuf:"bytes,5,opt,name=displayName,proto3" json:"displayName,omitempty"` - Liked bool `protobuf:"varint,6,opt,name=liked,proto3" json:"liked,omitempty"` - Likes int32 `protobuf:"varint,7,opt,name=likes,proto3" json:"likes,omitempty"` - LikeCount int32 `protobuf:"varint,8,opt,name=likeCount,proto3" json:"likeCount,omitempty"` - Owner bool `protobuf:"varint,9,opt,name=owner,proto3" json:"owner,omitempty"` - ParentCommentId string `protobuf:"bytes,10,opt,name=parentCommentId,proto3" json:"parentCommentId,omitempty"` - Pinned bool `protobuf:"varint,11,opt,name=pinned,proto3" json:"pinned,omitempty"` - Platform string `protobuf:"bytes,12,opt,name=platform,proto3" json:"platform,omitempty"` - ProfileImageUrl string `protobuf:"bytes,13,opt,name=profileImageUrl,proto3" json:"profileImageUrl,omitempty"` - Replies []*TikTokComment `protobuf:"bytes,14,rep,name=replies,proto3" json:"replies,omitempty"` - Status string `protobuf:"bytes,15,opt,name=status,proto3" json:"status,omitempty"` - UserId string `protobuf:"bytes,16,opt,name=userId,proto3" json:"userId,omitempty"` - Username string `protobuf:"bytes,17,opt,name=username,proto3" json:"username,omitempty"` - VideoId string `protobuf:"bytes,18,opt,name=videoId,proto3" json:"videoId,omitempty"` - Visibility string `protobuf:"bytes,19,opt,name=visibility,proto3" json:"visibility,omitempty"` + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Created string `protobuf:"bytes,3,opt,name=created,proto3" json:"created"` + CreateTime string `protobuf:"bytes,4,opt,name=createTime,proto3" json:"createTime"` + DisplayName string `protobuf:"bytes,5,opt,name=displayName,proto3" json:"displayName"` + Liked bool `protobuf:"varint,6,opt,name=liked,proto3" json:"liked"` + Likes int32 `protobuf:"varint,7,opt,name=likes,proto3" json:"likes"` + LikeCount int32 `protobuf:"varint,8,opt,name=likeCount,proto3" json:"likeCount"` + Owner bool `protobuf:"varint,9,opt,name=owner,proto3" json:"owner"` + ParentCommentId string `protobuf:"bytes,10,opt,name=parentCommentId,proto3" json:"parentCommentId"` + Pinned bool `protobuf:"varint,11,opt,name=pinned,proto3" json:"pinned"` + Platform string `protobuf:"bytes,12,opt,name=platform,proto3" json:"platform"` + ProfileImageUrl string `protobuf:"bytes,13,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + Replies []*TikTokComment `protobuf:"bytes,14,rep,name=replies,proto3" json:"replies"` + Status string `protobuf:"bytes,15,opt,name=status,proto3" json:"status"` + UserId string `protobuf:"bytes,16,opt,name=userId,proto3" json:"userId"` + Username string `protobuf:"bytes,17,opt,name=username,proto3" json:"username"` + VideoId string `protobuf:"bytes,18,opt,name=videoId,proto3" json:"videoId"` + Visibility string `protobuf:"bytes,19,opt,name=visibility,proto3" json:"visibility"` } func (x *TikTokComment) Reset() { @@ -5960,19 +5968,19 @@ type BlueskyComment struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - Created string `protobuf:"bytes,3,opt,name=created,proto3" json:"created,omitempty"` - DisplayName string `protobuf:"bytes,4,opt,name=displayName,proto3" json:"displayName,omitempty"` - LikeCount int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount,omitempty"` - Platform string `protobuf:"bytes,6,opt,name=platform,proto3" json:"platform,omitempty"` - ProfileImageUrl string `protobuf:"bytes,7,opt,name=profileImageUrl,proto3" json:"profileImageUrl,omitempty"` - QuoteCount int32 `protobuf:"varint,8,opt,name=quoteCount,proto3" json:"quoteCount,omitempty"` - Replies []*BlueskyComment `protobuf:"bytes,9,rep,name=replies,proto3" json:"replies,omitempty"` - ReplyCount int32 `protobuf:"varint,10,opt,name=replyCount,proto3" json:"replyCount,omitempty"` - ReplyTo string `protobuf:"bytes,11,opt,name=replyTo,proto3" json:"replyTo,omitempty"` - RepostCount int32 `protobuf:"varint,12,opt,name=repostCount,proto3" json:"repostCount,omitempty"` - UserName string `protobuf:"bytes,13,opt,name=userName,proto3" json:"userName,omitempty"` + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Created string `protobuf:"bytes,3,opt,name=created,proto3" json:"created"` + DisplayName string `protobuf:"bytes,4,opt,name=displayName,proto3" json:"displayName"` + LikeCount int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount"` + Platform string `protobuf:"bytes,6,opt,name=platform,proto3" json:"platform"` + ProfileImageUrl string `protobuf:"bytes,7,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + QuoteCount int32 `protobuf:"varint,8,opt,name=quoteCount,proto3" json:"quoteCount"` + Replies []*BlueskyComment `protobuf:"bytes,9,rep,name=replies,proto3" json:"replies"` + ReplyCount int32 `protobuf:"varint,10,opt,name=replyCount,proto3" json:"replyCount"` + ReplyTo string `protobuf:"bytes,11,opt,name=replyTo,proto3" json:"replyTo"` + RepostCount int32 `protobuf:"varint,12,opt,name=repostCount,proto3" json:"repostCount"` + UserName string `protobuf:"bytes,13,opt,name=userName,proto3" json:"userName"` } func (x *BlueskyComment) Reset() { @@ -6104,8 +6112,8 @@ type FacebookUser struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` } func (x *FacebookUser) Reset() { @@ -6160,10 +6168,10 @@ type FacebookParent struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CreatedTime string `protobuf:"bytes,1,opt,name=createdTime,proto3" json:"createdTime,omitempty"` - From *FacebookUser `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"` - Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` - Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"` + CreatedTime string `protobuf:"bytes,1,opt,name=createdTime,proto3" json:"createdTime"` + From *FacebookUser `protobuf:"bytes,2,opt,name=from,proto3" json:"from"` + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message"` + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` } func (x *FacebookParent) Reset() { @@ -6232,18 +6240,18 @@ type FacebookComment struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - CommentCount int32 `protobuf:"varint,3,opt,name=commentCount,proto3" json:"commentCount,omitempty"` - CommentUrl string `protobuf:"bytes,4,opt,name=commentUrl,proto3" json:"commentUrl,omitempty"` - Company bool `protobuf:"varint,5,opt,name=company,proto3" json:"company,omitempty"` - Created string `protobuf:"bytes,6,opt,name=created,proto3" json:"created,omitempty"` - From *FacebookUser `protobuf:"bytes,7,opt,name=from,proto3" json:"from,omitempty"` - LikeCount int32 `protobuf:"varint,8,opt,name=likeCount,proto3" json:"likeCount,omitempty"` - Parent *FacebookParent `protobuf:"bytes,9,opt,name=parent,proto3" json:"parent,omitempty"` - Platform string `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform,omitempty"` - UserLikes bool `protobuf:"varint,11,opt,name=userLikes,proto3" json:"userLikes,omitempty"` - Replies []*FacebookComment `protobuf:"bytes,12,rep,name=replies,proto3" json:"replies,omitempty"` + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + CommentCount int32 `protobuf:"varint,3,opt,name=commentCount,proto3" json:"commentCount"` + CommentUrl string `protobuf:"bytes,4,opt,name=commentUrl,proto3" json:"commentUrl"` + Company bool `protobuf:"varint,5,opt,name=company,proto3" json:"company"` + Created string `protobuf:"bytes,6,opt,name=created,proto3" json:"created"` + From *FacebookUser `protobuf:"bytes,7,opt,name=from,proto3" json:"from"` + LikeCount int32 `protobuf:"varint,8,opt,name=likeCount,proto3" json:"likeCount"` + Parent *FacebookParent `protobuf:"bytes,9,opt,name=parent,proto3" json:"parent"` + Platform string `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform"` + UserLikes bool `protobuf:"varint,11,opt,name=userLikes,proto3" json:"userLikes"` + Replies []*FacebookComment `protobuf:"bytes,12,rep,name=replies,proto3" json:"replies"` } func (x *FacebookComment) Reset() { @@ -6368,8 +6376,8 @@ type LinkedInMedia struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url"` } func (x *LinkedInMedia) Reset() { @@ -6424,10 +6432,10 @@ type LinkedInFrom struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` - Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description"` } func (x *LinkedInFrom) Reset() { @@ -6496,19 +6504,19 @@ type LinkedInComment struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - CommentUrn string `protobuf:"bytes,3,opt,name=commentUrn,proto3" json:"commentUrn,omitempty"` - Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"` - From *LinkedInFrom `protobuf:"bytes,5,opt,name=from,proto3" json:"from,omitempty"` - LikeCount int32 `protobuf:"varint,6,opt,name=likeCount,proto3" json:"likeCount,omitempty"` - Media []*LinkedInMedia `protobuf:"bytes,7,rep,name=media,proto3" json:"media,omitempty"` - Platform string `protobuf:"bytes,8,opt,name=platform,proto3" json:"platform,omitempty"` - ProfileImageUrl string `protobuf:"bytes,9,opt,name=profileImageUrl,proto3" json:"profileImageUrl,omitempty"` - UserName string `protobuf:"bytes,10,opt,name=userName,proto3" json:"userName,omitempty"` - Founded int32 `protobuf:"varint,11,opt,name=founded,proto3" json:"founded,omitempty"` - OrganizationType string `protobuf:"bytes,12,opt,name=organizationType,proto3" json:"organizationType,omitempty"` - Website string `protobuf:"bytes,13,opt,name=website,proto3" json:"website,omitempty"` + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + CommentUrn string `protobuf:"bytes,3,opt,name=commentUrn,proto3" json:"commentUrn"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + From *LinkedInFrom `protobuf:"bytes,5,opt,name=from,proto3" json:"from"` + LikeCount int32 `protobuf:"varint,6,opt,name=likeCount,proto3" json:"likeCount"` + Media []*LinkedInMedia `protobuf:"bytes,7,rep,name=media,proto3" json:"media"` + Platform string `protobuf:"bytes,8,opt,name=platform,proto3" json:"platform"` + ProfileImageUrl string `protobuf:"bytes,9,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + UserName string `protobuf:"bytes,10,opt,name=userName,proto3" json:"userName"` + Founded int32 `protobuf:"varint,11,opt,name=founded,proto3" json:"founded"` + OrganizationType string `protobuf:"bytes,12,opt,name=organizationType,proto3" json:"organizationType"` + Website string `protobuf:"bytes,13,opt,name=website,proto3" json:"website"` } func (x *LinkedInComment) Reset() { @@ -6640,8 +6648,8 @@ type RedditUser struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` } func (x *RedditUser) Reset() { @@ -6696,14 +6704,14 @@ type RedditComment struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - Created string `protobuf:"bytes,3,opt,name=created,proto3" json:"created,omitempty"` - From *RedditUser `protobuf:"bytes,4,opt,name=from,proto3" json:"from,omitempty"` - CommentUrl string `protobuf:"bytes,5,opt,name=commentUrl,proto3" json:"commentUrl,omitempty"` - Subreddit string `protobuf:"bytes,6,opt,name=subreddit,proto3" json:"subreddit,omitempty"` - Ups int32 `protobuf:"varint,7,opt,name=ups,proto3" json:"ups,omitempty"` - IsSubmitter bool `protobuf:"varint,8,opt,name=isSubmitter,proto3" json:"isSubmitter,omitempty"` + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Created string `protobuf:"bytes,3,opt,name=created,proto3" json:"created"` + From *RedditUser `protobuf:"bytes,4,opt,name=from,proto3" json:"from"` + CommentUrl string `protobuf:"bytes,5,opt,name=commentUrl,proto3" json:"commentUrl"` + Subreddit string `protobuf:"bytes,6,opt,name=subreddit,proto3" json:"subreddit"` + Ups int32 `protobuf:"varint,7,opt,name=ups,proto3" json:"ups"` + IsSubmitter bool `protobuf:"varint,8,opt,name=isSubmitter,proto3" json:"isSubmitter"` } func (x *RedditComment) Reset() { @@ -6800,22 +6808,22 @@ type ThreadsComment struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - CommentUrl string `protobuf:"bytes,3,opt,name=commentUrl,proto3" json:"commentUrl,omitempty"` - Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"` - HasReplies bool `protobuf:"varint,5,opt,name=hasReplies,proto3" json:"hasReplies,omitempty"` - IsQuotePost bool `protobuf:"varint,6,opt,name=isQuotePost,proto3" json:"isQuotePost,omitempty"` - IsReply bool `protobuf:"varint,7,opt,name=isReply,proto3" json:"isReply,omitempty"` - IsReplyOwnedByMe bool `protobuf:"varint,8,opt,name=isReplyOwnedByMe,proto3" json:"isReplyOwnedByMe,omitempty"` - MediaType string `protobuf:"bytes,9,opt,name=mediaType,proto3" json:"mediaType,omitempty"` - ParentId string `protobuf:"bytes,10,opt,name=parentId,proto3" json:"parentId,omitempty"` - Platform string `protobuf:"bytes,11,opt,name=platform,proto3" json:"platform,omitempty"` - PostId string `protobuf:"bytes,12,opt,name=postId,proto3" json:"postId,omitempty"` - Replies []*ThreadsComment `protobuf:"bytes,13,rep,name=replies,proto3" json:"replies,omitempty"` - ReplyAudience string `protobuf:"bytes,14,opt,name=replyAudience,proto3" json:"replyAudience,omitempty"` - Shortcode string `protobuf:"bytes,15,opt,name=shortcode,proto3" json:"shortcode,omitempty"` - UserName string `protobuf:"bytes,16,opt,name=userName,proto3" json:"userName,omitempty"` + Comment string `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + CommentUrl string `protobuf:"bytes,3,opt,name=commentUrl,proto3" json:"commentUrl"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + HasReplies bool `protobuf:"varint,5,opt,name=hasReplies,proto3" json:"hasReplies"` + IsQuotePost bool `protobuf:"varint,6,opt,name=isQuotePost,proto3" json:"isQuotePost"` + IsReply bool `protobuf:"varint,7,opt,name=isReply,proto3" json:"isReply"` + IsReplyOwnedByMe bool `protobuf:"varint,8,opt,name=isReplyOwnedByMe,proto3" json:"isReplyOwnedByMe"` + MediaType string `protobuf:"bytes,9,opt,name=mediaType,proto3" json:"mediaType"` + ParentId string `protobuf:"bytes,10,opt,name=parentId,proto3" json:"parentId"` + Platform string `protobuf:"bytes,11,opt,name=platform,proto3" json:"platform"` + PostId string `protobuf:"bytes,12,opt,name=postId,proto3" json:"postId"` + Replies []*ThreadsComment `protobuf:"bytes,13,rep,name=replies,proto3" json:"replies"` + ReplyAudience string `protobuf:"bytes,14,opt,name=replyAudience,proto3" json:"replyAudience"` + Shortcode string `protobuf:"bytes,15,opt,name=shortcode,proto3" json:"shortcode"` + UserName string `protobuf:"bytes,16,opt,name=userName,proto3" json:"userName"` } func (x *ThreadsComment) Reset() { @@ -6968,12 +6976,12 @@ type TwitterPublicMetrics struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - FollowersCount int32 `protobuf:"varint,1,opt,name=followersCount,proto3" json:"followersCount,omitempty"` - FollowingCount int32 `protobuf:"varint,2,opt,name=followingCount,proto3" json:"followingCount,omitempty"` - TweetCount int32 `protobuf:"varint,3,opt,name=tweetCount,proto3" json:"tweetCount,omitempty"` - ListedCount int32 `protobuf:"varint,4,opt,name=listedCount,proto3" json:"listedCount,omitempty"` - LikeCount int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount,omitempty"` - MediaCount int32 `protobuf:"varint,6,opt,name=mediaCount,proto3" json:"mediaCount,omitempty"` + FollowersCount int32 `protobuf:"varint,1,opt,name=followersCount,proto3" json:"followersCount"` + FollowingCount int32 `protobuf:"varint,2,opt,name=followingCount,proto3" json:"followingCount"` + TweetCount int32 `protobuf:"varint,3,opt,name=tweetCount,proto3" json:"tweetCount"` + ListedCount int32 `protobuf:"varint,4,opt,name=listedCount,proto3" json:"listedCount"` + LikeCount int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount"` + MediaCount int32 `protobuf:"varint,6,opt,name=mediaCount,proto3" json:"mediaCount"` } func (x *TwitterPublicMetrics) Reset() { @@ -7056,8 +7064,8 @@ type TwitterReferencedTweet struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"` } func (x *TwitterReferencedTweet) Reset() { @@ -7112,15 +7120,15 @@ type TwitterReplyTo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CreatedAt string `protobuf:"bytes,1,opt,name=createdAt,proto3" json:"createdAt,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` - Location string `protobuf:"bytes,4,opt,name=location,proto3" json:"location,omitempty"` - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - ProfileImageUrl string `protobuf:"bytes,6,opt,name=profileImageUrl,proto3" json:"profileImageUrl,omitempty"` - PublicMetrics *TwitterPublicMetrics `protobuf:"bytes,7,opt,name=publicMetrics,proto3" json:"publicMetrics,omitempty"` - Url string `protobuf:"bytes,8,opt,name=url,proto3" json:"url,omitempty"` - Username string `protobuf:"bytes,9,opt,name=username,proto3" json:"username,omitempty"` + CreatedAt string `protobuf:"bytes,1,opt,name=createdAt,proto3" json:"createdAt"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + Location string `protobuf:"bytes,4,opt,name=location,proto3" json:"location"` + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name"` + ProfileImageUrl string `protobuf:"bytes,6,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + PublicMetrics *TwitterPublicMetrics `protobuf:"bytes,7,opt,name=publicMetrics,proto3" json:"publicMetrics"` + Url string `protobuf:"bytes,8,opt,name=url,proto3" json:"url"` + Username string `protobuf:"bytes,9,opt,name=username,proto3" json:"username"` } func (x *TwitterReplyTo) Reset() { @@ -7224,24 +7232,24 @@ type TwitterComment struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BookmarkCount int32 `protobuf:"varint,1,opt,name=bookmarkCount,proto3" json:"bookmarkCount,omitempty"` - Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"` - CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId,omitempty"` - Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"` - Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` - Id string `protobuf:"bytes,6,opt,name=id,proto3" json:"id,omitempty"` - ImpressionCount int32 `protobuf:"varint,7,opt,name=impressionCount,proto3" json:"impressionCount,omitempty"` - LikeCount int32 `protobuf:"varint,8,opt,name=likeCount,proto3" json:"likeCount,omitempty"` - Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` - Platform string `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform,omitempty"` - ProfileImageUrl string `protobuf:"bytes,11,opt,name=profileImageUrl,proto3" json:"profileImageUrl,omitempty"` - PublicMetrics *TwitterPublicMetrics `protobuf:"bytes,12,opt,name=publicMetrics,proto3" json:"publicMetrics,omitempty"` - QuoteCount int32 `protobuf:"varint,13,opt,name=quoteCount,proto3" json:"quoteCount,omitempty"` - ReferencedTweets []*TwitterReferencedTweet `protobuf:"bytes,14,rep,name=referencedTweets,proto3" json:"referencedTweets,omitempty"` - ReplyCount int32 `protobuf:"varint,15,opt,name=replyCount,proto3" json:"replyCount,omitempty"` - ReplyTo *TwitterReplyTo `protobuf:"bytes,16,opt,name=replyTo,proto3" json:"replyTo,omitempty"` - ThreadNumber int32 `protobuf:"varint,17,opt,name=threadNumber,proto3" json:"threadNumber,omitempty"` - UserName string `protobuf:"bytes,18,opt,name=userName,proto3" json:"userName,omitempty"` + BookmarkCount int32 `protobuf:"varint,1,opt,name=bookmarkCount,proto3" json:"bookmarkCount"` + Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description"` + Id string `protobuf:"bytes,6,opt,name=id,proto3" json:"id"` + ImpressionCount int32 `protobuf:"varint,7,opt,name=impressionCount,proto3" json:"impressionCount"` + LikeCount int32 `protobuf:"varint,8,opt,name=likeCount,proto3" json:"likeCount"` + Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name"` + Platform string `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform"` + ProfileImageUrl string `protobuf:"bytes,11,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + PublicMetrics *TwitterPublicMetrics `protobuf:"bytes,12,opt,name=publicMetrics,proto3" json:"publicMetrics"` + QuoteCount int32 `protobuf:"varint,13,opt,name=quoteCount,proto3" json:"quoteCount"` + ReferencedTweets []*TwitterReferencedTweet `protobuf:"bytes,14,rep,name=referencedTweets,proto3" json:"referencedTweets"` + ReplyCount int32 `protobuf:"varint,15,opt,name=replyCount,proto3" json:"replyCount"` + ReplyTo *TwitterReplyTo `protobuf:"bytes,16,opt,name=replyTo,proto3" json:"replyTo"` + ThreadNumber int32 `protobuf:"varint,17,opt,name=threadNumber,proto3" json:"threadNumber"` + UserName string `protobuf:"bytes,18,opt,name=userName,proto3" json:"userName"` } func (x *TwitterComment) Reset() { @@ -7408,15 +7416,15 @@ type YouTubeReply struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ChannelUrl string `protobuf:"bytes,1,opt,name=channelUrl,proto3" json:"channelUrl,omitempty"` - Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"` - CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId,omitempty"` - Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"` - LikeCount int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount,omitempty"` - Platform string `protobuf:"bytes,6,opt,name=platform,proto3" json:"platform,omitempty"` - ProfileImageUrl string `protobuf:"bytes,7,opt,name=profileImageUrl,proto3" json:"profileImageUrl,omitempty"` - UserName string `protobuf:"bytes,8,opt,name=userName,proto3" json:"userName,omitempty"` - ParentId string `protobuf:"bytes,9,opt,name=parentId,proto3" json:"parentId,omitempty"` + ChannelUrl string `protobuf:"bytes,1,opt,name=channelUrl,proto3" json:"channelUrl"` + Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + LikeCount int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount"` + Platform string `protobuf:"bytes,6,opt,name=platform,proto3" json:"platform"` + ProfileImageUrl string `protobuf:"bytes,7,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + UserName string `protobuf:"bytes,8,opt,name=userName,proto3" json:"userName"` + ParentId string `protobuf:"bytes,9,opt,name=parentId,proto3" json:"parentId"` } func (x *YouTubeReply) Reset() { @@ -7520,16 +7528,16 @@ type YouTubeComment struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ChannelUrl string `protobuf:"bytes,1,opt,name=channelUrl,proto3" json:"channelUrl,omitempty"` - Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"` - CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId,omitempty"` - Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"` - IsPublic bool `protobuf:"varint,5,opt,name=isPublic,proto3" json:"isPublic,omitempty"` - LikeCount int32 `protobuf:"varint,6,opt,name=likeCount,proto3" json:"likeCount,omitempty"` - Platform string `protobuf:"bytes,7,opt,name=platform,proto3" json:"platform,omitempty"` - ProfileImageUrl string `protobuf:"bytes,8,opt,name=profileImageUrl,proto3" json:"profileImageUrl,omitempty"` - Replies []*YouTubeReply `protobuf:"bytes,9,rep,name=replies,proto3" json:"replies,omitempty"` - UserName string `protobuf:"bytes,10,opt,name=userName,proto3" json:"userName,omitempty"` + ChannelUrl string `protobuf:"bytes,1,opt,name=channelUrl,proto3" json:"channelUrl"` + Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"` + CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId"` + Created string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"` + IsPublic bool `protobuf:"varint,5,opt,name=isPublic,proto3" json:"isPublic"` + LikeCount int32 `protobuf:"varint,6,opt,name=likeCount,proto3" json:"likeCount"` + Platform string `protobuf:"bytes,7,opt,name=platform,proto3" json:"platform"` + ProfileImageUrl string `protobuf:"bytes,8,opt,name=profileImageUrl,proto3" json:"profileImageUrl"` + Replies []*YouTubeReply `protobuf:"bytes,9,rep,name=replies,proto3" json:"replies"` + UserName string `protobuf:"bytes,10,opt,name=userName,proto3" json:"userName"` } func (x *YouTubeComment) Reset() { @@ -7640,23 +7648,23 @@ type GetCommentResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Instagram []*InstagramComment `protobuf:"bytes,1,rep,name=instagram,proto3" json:"instagram,omitempty"` - Tiktok []*TikTokComment `protobuf:"bytes,2,rep,name=tiktok,proto3" json:"tiktok,omitempty"` - Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` - Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"` - LastUpdated string `protobuf:"bytes,5,opt,name=lastUpdated,proto3" json:"lastUpdated,omitempty"` - NextUpdate string `protobuf:"bytes,6,opt,name=nextUpdate,proto3" json:"nextUpdate,omitempty"` - Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action,omitempty"` - Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code,omitempty"` - Message string `protobuf:"bytes,9,opt,name=message,proto3" json:"message,omitempty"` + Instagram []*InstagramComment `protobuf:"bytes,1,rep,name=instagram,proto3" json:"instagram"` + Tiktok []*TikTokComment `protobuf:"bytes,2,rep,name=tiktok,proto3" json:"tiktok"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status"` + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` + LastUpdated string `protobuf:"bytes,5,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,6,opt,name=nextUpdate,proto3" json:"nextUpdate"` + Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,9,opt,name=message,proto3" json:"message"` // 其它平台的评论列表 - Bluesky []*BlueskyComment `protobuf:"bytes,10,rep,name=bluesky,proto3" json:"bluesky,omitempty"` - Facebook []*FacebookComment `protobuf:"bytes,11,rep,name=facebook,proto3" json:"facebook,omitempty"` - Linkedin []*LinkedInComment `protobuf:"bytes,12,rep,name=linkedin,proto3" json:"linkedin,omitempty"` - Reddit []*RedditComment `protobuf:"bytes,13,rep,name=reddit,proto3" json:"reddit,omitempty"` - Threads []*ThreadsComment `protobuf:"bytes,14,rep,name=threads,proto3" json:"threads,omitempty"` - Twitter []*TwitterComment `protobuf:"bytes,15,rep,name=twitter,proto3" json:"twitter,omitempty"` - Youtube []*YouTubeComment `protobuf:"bytes,16,rep,name=youtube,proto3" json:"youtube,omitempty"` + Bluesky []*BlueskyComment `protobuf:"bytes,10,rep,name=bluesky,proto3" json:"bluesky"` + Facebook []*FacebookComment `protobuf:"bytes,11,rep,name=facebook,proto3" json:"facebook"` + Linkedin []*LinkedInComment `protobuf:"bytes,12,rep,name=linkedin,proto3" json:"linkedin"` + Reddit []*RedditComment `protobuf:"bytes,13,rep,name=reddit,proto3" json:"reddit"` + Threads []*ThreadsComment `protobuf:"bytes,14,rep,name=threads,proto3" json:"threads"` + Twitter []*TwitterComment `protobuf:"bytes,15,rep,name=twitter,proto3" json:"twitter"` + Youtube []*YouTubeComment `protobuf:"bytes,16,rep,name=youtube,proto3" json:"youtube"` } func (x *GetCommentResponse) Reset() { @@ -7809,11 +7817,11 @@ type DeleteCommentRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms,omitempty"` - Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"` - SearchPlatformId bool `protobuf:"varint,4,opt,name=searchPlatformId,proto3" json:"searchPlatformId,omitempty"` - ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"` + Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform"` + SearchPlatformId bool `protobuf:"varint,4,opt,name=searchPlatformId,proto3" json:"searchPlatformId"` + ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"` } func (x *DeleteCommentRequest) Reset() { @@ -7889,10 +7897,10 @@ type InstagramDeleteResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"` - Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` - Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` + Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` } func (x *InstagramDeleteResponse) Reset() { @@ -7961,11 +7969,11 @@ type TikTokDeleteResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"` - Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId,omitempty"` - Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"` - Comment string `protobuf:"bytes,5,opt,name=comment,proto3" json:"comment,omitempty"` + Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId"` + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` + Comment string `protobuf:"bytes,5,opt,name=comment,proto3" json:"comment"` } func (x *TikTokDeleteResponse) Reset() { @@ -8041,20 +8049,20 @@ type DeleteCommentResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` // Instagram 和 TikTok 可能是单个对象或数组,使用 JSON 字符串存储 - Instagram string `protobuf:"bytes,2,opt,name=instagram,proto3" json:"instagram,omitempty"` - Tiktok string `protobuf:"bytes,3,opt,name=tiktok,proto3" json:"tiktok,omitempty"` - Action string `protobuf:"bytes,4,opt,name=action,proto3" json:"action,omitempty"` - Code int32 `protobuf:"varint,5,opt,name=code,proto3" json:"code,omitempty"` - Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message,omitempty"` + Instagram string `protobuf:"bytes,2,opt,name=instagram,proto3" json:"instagram"` + Tiktok string `protobuf:"bytes,3,opt,name=tiktok,proto3" json:"tiktok"` + Action string `protobuf:"bytes,4,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,5,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message"` // 其它平台删除结果,同样使用 JSON 字符串存储,兼容单条或多条返回 - Bluesky string `protobuf:"bytes,7,opt,name=bluesky,proto3" json:"bluesky,omitempty"` - Facebook string `protobuf:"bytes,8,opt,name=facebook,proto3" json:"facebook,omitempty"` - Linkedin string `protobuf:"bytes,9,opt,name=linkedin,proto3" json:"linkedin,omitempty"` - Threads string `protobuf:"bytes,10,opt,name=threads,proto3" json:"threads,omitempty"` - Twitter string `protobuf:"bytes,11,opt,name=twitter,proto3" json:"twitter,omitempty"` - Youtube string `protobuf:"bytes,12,opt,name=youtube,proto3" json:"youtube,omitempty"` + Bluesky string `protobuf:"bytes,7,opt,name=bluesky,proto3" json:"bluesky"` + Facebook string `protobuf:"bytes,8,opt,name=facebook,proto3" json:"facebook"` + Linkedin string `protobuf:"bytes,9,opt,name=linkedin,proto3" json:"linkedin"` + Threads string `protobuf:"bytes,10,opt,name=threads,proto3" json:"threads"` + Twitter string `protobuf:"bytes,11,opt,name=twitter,proto3" json:"twitter"` + Youtube string `protobuf:"bytes,12,opt,name=youtube,proto3" json:"youtube"` } func (x *DeleteCommentResponse) Reset() { @@ -8179,10 +8187,10 @@ type ReplyCommentRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"` - Platforms []string `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms,omitempty"` - ProfileKey string `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"` + Platforms []string `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms"` + ProfileKey string `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey"` } func (x *ReplyCommentRequest) Reset() { @@ -8251,11 +8259,11 @@ type InstagramReplyResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId,omitempty"` - Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` - Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` } func (x *InstagramReplyResponse) Reset() { @@ -8331,12 +8339,12 @@ type TikTokReplyResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId,omitempty"` - Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` - Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"` - VideoId string `protobuf:"bytes,6,opt,name=videoId,proto3" json:"videoId,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` + VideoId string `protobuf:"bytes,6,opt,name=videoId,proto3" json:"videoId"` } func (x *TikTokReplyResponse) Reset() { @@ -8419,13 +8427,13 @@ type BlueskyReplyResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId,omitempty"` - Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` - Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"` - Cid string `protobuf:"bytes,6,opt,name=cid,proto3" json:"cid,omitempty"` - PostUrl string `protobuf:"bytes,7,opt,name=postUrl,proto3" json:"postUrl,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` + Cid string `protobuf:"bytes,6,opt,name=cid,proto3" json:"cid"` + PostUrl string `protobuf:"bytes,7,opt,name=postUrl,proto3" json:"postUrl"` } func (x *BlueskyReplyResponse) Reset() { @@ -8515,11 +8523,11 @@ type FacebookReplyResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId,omitempty"` - Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` - Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` } func (x *FacebookReplyResponse) Reset() { @@ -8595,11 +8603,11 @@ type LinkedInReplyResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId,omitempty"` - Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` - Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` } func (x *LinkedInReplyResponse) Reset() { @@ -8675,12 +8683,12 @@ type TwitterReplyResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId,omitempty"` - Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` - Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"` - PostUrl string `protobuf:"bytes,6,opt,name=postUrl,proto3" json:"postUrl,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` + PostUrl string `protobuf:"bytes,6,opt,name=postUrl,proto3" json:"postUrl"` } func (x *TwitterReplyResponse) Reset() { @@ -8763,11 +8771,11 @@ type YouTubeReplyResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId,omitempty"` - Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` - Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"` } func (x *YouTubeReplyResponse) Reset() { @@ -8843,20 +8851,20 @@ type ReplyCommentResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId,omitempty"` - Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` - Instagram *InstagramReplyResponse `protobuf:"bytes,4,opt,name=instagram,proto3" json:"instagram,omitempty"` - Tiktok *TikTokReplyResponse `protobuf:"bytes,5,opt,name=tiktok,proto3" json:"tiktok,omitempty"` - Action string `protobuf:"bytes,6,opt,name=action,proto3" json:"action,omitempty"` - Code int32 `protobuf:"varint,7,opt,name=code,proto3" json:"code,omitempty"` - Message string `protobuf:"bytes,8,opt,name=message,proto3" json:"message,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` + Instagram *InstagramReplyResponse `protobuf:"bytes,4,opt,name=instagram,proto3" json:"instagram"` + Tiktok *TikTokReplyResponse `protobuf:"bytes,5,opt,name=tiktok,proto3" json:"tiktok"` + Action string `protobuf:"bytes,6,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,7,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,8,opt,name=message,proto3" json:"message"` // 其它平台的回复结果 - Bluesky *BlueskyReplyResponse `protobuf:"bytes,9,opt,name=bluesky,proto3" json:"bluesky,omitempty"` - Facebook *FacebookReplyResponse `protobuf:"bytes,10,opt,name=facebook,proto3" json:"facebook,omitempty"` - Linkedin *LinkedInReplyResponse `protobuf:"bytes,11,opt,name=linkedin,proto3" json:"linkedin,omitempty"` - Twitter *TwitterReplyResponse `protobuf:"bytes,12,opt,name=twitter,proto3" json:"twitter,omitempty"` - Youtube *YouTubeReplyResponse `protobuf:"bytes,13,opt,name=youtube,proto3" json:"youtube,omitempty"` + Bluesky *BlueskyReplyResponse `protobuf:"bytes,9,opt,name=bluesky,proto3" json:"bluesky"` + Facebook *FacebookReplyResponse `protobuf:"bytes,10,opt,name=facebook,proto3" json:"facebook"` + Linkedin *LinkedInReplyResponse `protobuf:"bytes,11,opt,name=linkedin,proto3" json:"linkedin"` + Twitter *TwitterReplyResponse `protobuf:"bytes,12,opt,name=twitter,proto3" json:"twitter"` + Youtube *YouTubeReplyResponse `protobuf:"bytes,13,opt,name=youtube,proto3" json:"youtube"` } func (x *ReplyCommentResponse) Reset() { @@ -8988,9 +8996,9 @@ type GetPostAnalyticsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms,omitempty"` - ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"` + ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"` } func (x *GetPostAnalyticsRequest) Reset() { @@ -9052,10 +9060,10 @@ type GetPostAnalyticsBySocialIDRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms,omitempty"` - SearchPlatformId bool `protobuf:"varint,3,opt,name=searchPlatformId,proto3" json:"searchPlatformId,omitempty"` - ProfileKey string `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Platforms []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"` + SearchPlatformId bool `protobuf:"varint,3,opt,name=searchPlatformId,proto3" json:"searchPlatformId"` + ProfileKey string `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey"` } func (x *GetPostAnalyticsBySocialIDRequest) Reset() { @@ -9124,20 +9132,20 @@ type GetPostAnalyticsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` - Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"` // 各平台的分析数据以 JSON 字符串形式存储 - Bluesky string `protobuf:"bytes,4,opt,name=bluesky,proto3" json:"bluesky,omitempty"` - Facebook string `protobuf:"bytes,5,opt,name=facebook,proto3" json:"facebook,omitempty"` - Instagram string `protobuf:"bytes,6,opt,name=instagram,proto3" json:"instagram,omitempty"` - Linkedin string `protobuf:"bytes,7,opt,name=linkedin,proto3" json:"linkedin,omitempty"` - Pinterest string `protobuf:"bytes,8,opt,name=pinterest,proto3" json:"pinterest,omitempty"` - Snapchat string `protobuf:"bytes,9,opt,name=snapchat,proto3" json:"snapchat,omitempty"` - Threads string `protobuf:"bytes,10,opt,name=threads,proto3" json:"threads,omitempty"` - Tiktok string `protobuf:"bytes,11,opt,name=tiktok,proto3" json:"tiktok,omitempty"` - Twitter string `protobuf:"bytes,12,opt,name=twitter,proto3" json:"twitter,omitempty"` - Youtube string `protobuf:"bytes,13,opt,name=youtube,proto3" json:"youtube,omitempty"` + Bluesky string `protobuf:"bytes,4,opt,name=bluesky,proto3" json:"bluesky"` + Facebook string `protobuf:"bytes,5,opt,name=facebook,proto3" json:"facebook"` + Instagram string `protobuf:"bytes,6,opt,name=instagram,proto3" json:"instagram"` + Linkedin string `protobuf:"bytes,7,opt,name=linkedin,proto3" json:"linkedin"` + Pinterest string `protobuf:"bytes,8,opt,name=pinterest,proto3" json:"pinterest"` + Snapchat string `protobuf:"bytes,9,opt,name=snapchat,proto3" json:"snapchat"` + Threads string `protobuf:"bytes,10,opt,name=threads,proto3" json:"threads"` + Tiktok string `protobuf:"bytes,11,opt,name=tiktok,proto3" json:"tiktok"` + Twitter string `protobuf:"bytes,12,opt,name=twitter,proto3" json:"twitter"` + Youtube string `protobuf:"bytes,13,opt,name=youtube,proto3" json:"youtube"` } func (x *GetPostAnalyticsResponse) Reset() { @@ -9269,8 +9277,8 @@ type GetSocialAnalyticsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Platforms []string `protobuf:"bytes,1,rep,name=platforms,proto3" json:"platforms,omitempty"` - ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Platforms []string `protobuf:"bytes,1,rep,name=platforms,proto3" json:"platforms"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` } func (x *GetSocialAnalyticsRequest) Reset() { @@ -9325,20 +9333,20 @@ type GetSocialAnalyticsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` // 各平台的分析数据以 JSON 字符串形式存储 - Bluesky string `protobuf:"bytes,2,opt,name=bluesky,proto3" json:"bluesky,omitempty"` - Facebook string `protobuf:"bytes,3,opt,name=facebook,proto3" json:"facebook,omitempty"` - Gmb string `protobuf:"bytes,4,opt,name=gmb,proto3" json:"gmb,omitempty"` - Instagram string `protobuf:"bytes,5,opt,name=instagram,proto3" json:"instagram,omitempty"` - Linkedin string `protobuf:"bytes,6,opt,name=linkedin,proto3" json:"linkedin,omitempty"` - Pinterest string `protobuf:"bytes,7,opt,name=pinterest,proto3" json:"pinterest,omitempty"` - Reddit string `protobuf:"bytes,8,opt,name=reddit,proto3" json:"reddit,omitempty"` - Snapchat string `protobuf:"bytes,9,opt,name=snapchat,proto3" json:"snapchat,omitempty"` - Threads string `protobuf:"bytes,10,opt,name=threads,proto3" json:"threads,omitempty"` - Tiktok string `protobuf:"bytes,11,opt,name=tiktok,proto3" json:"tiktok,omitempty"` - Twitter string `protobuf:"bytes,12,opt,name=twitter,proto3" json:"twitter,omitempty"` - Youtube string `protobuf:"bytes,13,opt,name=youtube,proto3" json:"youtube,omitempty"` + Bluesky string `protobuf:"bytes,2,opt,name=bluesky,proto3" json:"bluesky"` + Facebook string `protobuf:"bytes,3,opt,name=facebook,proto3" json:"facebook"` + Gmb string `protobuf:"bytes,4,opt,name=gmb,proto3" json:"gmb"` + Instagram string `protobuf:"bytes,5,opt,name=instagram,proto3" json:"instagram"` + Linkedin string `protobuf:"bytes,6,opt,name=linkedin,proto3" json:"linkedin"` + Pinterest string `protobuf:"bytes,7,opt,name=pinterest,proto3" json:"pinterest"` + Reddit string `protobuf:"bytes,8,opt,name=reddit,proto3" json:"reddit"` + Snapchat string `protobuf:"bytes,9,opt,name=snapchat,proto3" json:"snapchat"` + Threads string `protobuf:"bytes,10,opt,name=threads,proto3" json:"threads"` + Tiktok string `protobuf:"bytes,11,opt,name=tiktok,proto3" json:"tiktok"` + Twitter string `protobuf:"bytes,12,opt,name=twitter,proto3" json:"twitter"` + Youtube string `protobuf:"bytes,13,opt,name=youtube,proto3" json:"youtube"` } func (x *GetSocialAnalyticsResponse) Reset() { @@ -9470,11 +9478,11 @@ type AutoHashtagsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Post string `protobuf:"bytes,1,opt,name=post,proto3" json:"post,omitempty"` - Max int32 `protobuf:"varint,2,opt,name=max,proto3" json:"max,omitempty"` - Position string `protobuf:"bytes,3,opt,name=position,proto3" json:"position,omitempty"` - Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"` - ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Post string `protobuf:"bytes,1,opt,name=post,proto3" json:"post"` + Max int32 `protobuf:"varint,2,opt,name=max,proto3" json:"max"` + Position string `protobuf:"bytes,3,opt,name=position,proto3" json:"position"` + Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language"` + ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"` } func (x *AutoHashtagsRequest) Reset() { @@ -9550,11 +9558,11 @@ type AutoHashtagsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Post string `protobuf:"bytes,1,opt,name=post,proto3" json:"post,omitempty"` - Action string `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"` - Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` - Code int32 `protobuf:"varint,4,opt,name=code,proto3" json:"code,omitempty"` - Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"` + Post string `protobuf:"bytes,1,opt,name=post,proto3" json:"post"` + Action string `protobuf:"bytes,2,opt,name=action,proto3" json:"action"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status"` + Code int32 `protobuf:"varint,4,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message"` } func (x *AutoHashtagsResponse) Reset() { @@ -9630,8 +9638,8 @@ type CheckBannedHashtagRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Hashtag string `protobuf:"bytes,1,opt,name=hashtag,proto3" json:"hashtag,omitempty"` - ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Hashtag string `protobuf:"bytes,1,opt,name=hashtag,proto3" json:"hashtag"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` } func (x *CheckBannedHashtagRequest) Reset() { @@ -9686,12 +9694,12 @@ type CheckBannedHashtagResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Hashtag string `protobuf:"bytes,1,opt,name=hashtag,proto3" json:"hashtag,omitempty"` - Banned bool `protobuf:"varint,2,opt,name=banned,proto3" json:"banned,omitempty"` - Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"` - Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"` - Code int32 `protobuf:"varint,5,opt,name=code,proto3" json:"code,omitempty"` - Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message,omitempty"` + Hashtag string `protobuf:"bytes,1,opt,name=hashtag,proto3" json:"hashtag"` + Banned bool `protobuf:"varint,2,opt,name=banned,proto3" json:"banned"` + Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action"` + Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status"` + Code int32 `protobuf:"varint,5,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message"` } func (x *CheckBannedHashtagResponse) Reset() { @@ -9774,8 +9782,8 @@ type HashtagRecommendation struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ViewCount int64 `protobuf:"varint,1,opt,name=viewCount,proto3" json:"viewCount,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + ViewCount int64 `protobuf:"varint,1,opt,name=viewCount,proto3" json:"viewCount"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` } func (x *HashtagRecommendation) Reset() { @@ -9830,8 +9838,8 @@ type RecommendHashtagsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"` - ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword"` + ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"` } func (x *RecommendHashtagsRequest) Reset() { @@ -9886,12 +9894,12 @@ type RecommendHashtagsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"` - Recommendations []*HashtagRecommendation `protobuf:"bytes,2,rep,name=recommendations,proto3" json:"recommendations,omitempty"` - Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"` - Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"` - Code int32 `protobuf:"varint,5,opt,name=code,proto3" json:"code,omitempty"` - Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message,omitempty"` + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword"` + Recommendations []*HashtagRecommendation `protobuf:"bytes,2,rep,name=recommendations,proto3" json:"recommendations"` + Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action"` + Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status"` + Code int32 `protobuf:"varint,5,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message"` } func (x *RecommendHashtagsResponse) Reset() { @@ -9974,9 +9982,9 @@ type SearchHashtagsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"` - SearchType string `protobuf:"bytes,2,opt,name=searchType,proto3" json:"searchType,omitempty"` - ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey,omitempty"` + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword"` + SearchType string `protobuf:"bytes,2,opt,name=searchType,proto3" json:"searchType"` + ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"` } func (x *SearchHashtagsRequest) Reset() { @@ -10038,8 +10046,8 @@ type SearchHashtagInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` } func (x *SearchHashtagInfo) Reset() { @@ -10094,7 +10102,7 @@ type SearchHashtagChild struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` } func (x *SearchHashtagChild) Reset() { @@ -10142,7 +10150,7 @@ type SearchHashtagChildren struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data []*SearchHashtagChild `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + Data []*SearchHashtagChild `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` } func (x *SearchHashtagChildren) Reset() { @@ -10190,15 +10198,15 @@ type SearchHashtagMedia struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Caption string `protobuf:"bytes,1,opt,name=caption,proto3" json:"caption,omitempty"` - Children *SearchHashtagChildren `protobuf:"bytes,2,opt,name=children,proto3" json:"children,omitempty"` - CommentsCount int32 `protobuf:"varint,3,opt,name=commentsCount,proto3" json:"commentsCount,omitempty"` - Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"` - LikeCount int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount,omitempty"` - MediaType string `protobuf:"bytes,6,opt,name=mediaType,proto3" json:"mediaType,omitempty"` - MediaUrl string `protobuf:"bytes,7,opt,name=mediaUrl,proto3" json:"mediaUrl,omitempty"` - Permalink string `protobuf:"bytes,8,opt,name=permalink,proto3" json:"permalink,omitempty"` - Timestamp string `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Caption string `protobuf:"bytes,1,opt,name=caption,proto3" json:"caption"` + Children *SearchHashtagChildren `protobuf:"bytes,2,opt,name=children,proto3" json:"children"` + CommentsCount int32 `protobuf:"varint,3,opt,name=commentsCount,proto3" json:"commentsCount"` + Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"` + LikeCount int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount"` + MediaType string `protobuf:"bytes,6,opt,name=mediaType,proto3" json:"mediaType"` + MediaUrl string `protobuf:"bytes,7,opt,name=mediaUrl,proto3" json:"mediaUrl"` + Permalink string `protobuf:"bytes,8,opt,name=permalink,proto3" json:"permalink"` + Timestamp string `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp"` } func (x *SearchHashtagMedia) Reset() { @@ -10302,15 +10310,15 @@ type SearchHashtagsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Hashtag *SearchHashtagInfo `protobuf:"bytes,2,opt,name=hashtag,proto3" json:"hashtag,omitempty"` - SearchResults []*SearchHashtagMedia `protobuf:"bytes,3,rep,name=searchResults,proto3" json:"searchResults,omitempty"` - Count int32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"` - LastUpdated string `protobuf:"bytes,5,opt,name=lastUpdated,proto3" json:"lastUpdated,omitempty"` - NextUpdate string `protobuf:"bytes,6,opt,name=nextUpdate,proto3" json:"nextUpdate,omitempty"` - Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action,omitempty"` - Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code,omitempty"` - Message string `protobuf:"bytes,9,opt,name=message,proto3" json:"message,omitempty"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"` + Hashtag *SearchHashtagInfo `protobuf:"bytes,2,opt,name=hashtag,proto3" json:"hashtag"` + SearchResults []*SearchHashtagMedia `protobuf:"bytes,3,rep,name=searchResults,proto3" json:"searchResults"` + Count int32 `protobuf:"varint,4,opt,name=count,proto3" json:"count"` + LastUpdated string `protobuf:"bytes,5,opt,name=lastUpdated,proto3" json:"lastUpdated"` + NextUpdate string `protobuf:"bytes,6,opt,name=nextUpdate,proto3" json:"nextUpdate"` + Action string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"` + Code int32 `protobuf:"varint,8,opt,name=code,proto3" json:"code"` + Message string `protobuf:"bytes,9,opt,name=message,proto3" json:"message"` } func (x *SearchHashtagsResponse) Reset() { @@ -10475,755 +10483,710 @@ var file_pb_ayrshare_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, - 0xa4, 0x02, 0x0a, 0x0e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0xe8, 0x03, 0x0a, 0x0e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, - 0x69, 0x76, 0x61, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x69, - 0x76, 0x61, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, - 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x64, 0x65, - 0x46, 0x6f, 0x72, 0x4b, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6d, - 0x61, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x4b, 0x69, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, - 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, - 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, - 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, - 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6e, 0x6f, 0x74, 0x69, - 0x66, 0x79, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x0e, 0x42, 0x6c, 0x75, 0x65, 0x73, - 0x6b, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x05, 0x6c, 0x61, 0x6e, 0x67, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x64, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x69, 0x12, 0x26, 0x0a, - 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x69, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x50, 0x6f, - 0x73, 0x74, 0x55, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, - 0x50, 0x6f, 0x73, 0x74, 0x43, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, - 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x69, 0x64, 0x22, 0x8f, 0x05, - 0x0a, 0x0b, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, - 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, 0x1f, - 0x1a, 0x2a, 0x16, 0x70, 0x6f, 0x73, 0x74, 0xe5, 0x86, 0x85, 0xe5, 0xae, 0xb9, 0xe4, 0xb8, 0x8d, - 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x73, - 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, - 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, - 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, - 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, - 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, - 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, - 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x0d, - 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, - 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x74, 0x69, - 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x0e, 0x79, - 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, - 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0e, 0x79, - 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40, 0x0a, - 0x0e, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x0e, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0xa4, 0x02, 0x0a, 0x06, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x63, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, - 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x75, 0x73, 0x65, - 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x22, 0xe0, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x74, 0x49, - 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, - 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, - 0x08, 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x49, 0x64, 0x22, 0xc3, 0x01, 0x0a, 0x0c, 0x50, 0x6f, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, - 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x1d, 0x0a, 0x0b, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x22, - 0x5e, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xe2, - 0xdf, 0x1f, 0x18, 0x2a, 0x14, 0xe5, 0xb8, 0x96, 0xe5, 0xad, 0x90, 0x49, 0x44, 0xe4, 0xb8, 0x8d, - 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, - 0xfd, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, - 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, - 0x72, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, - 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x6d, 0x61, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x4b, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x6d, 0x61, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x4b, 0x69, 0x64, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, + 0x6f, 0x72, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x6f, 0x72, + 0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x53, 0x79, + 0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x16, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x53, 0x79, 0x6e, 0x74, + 0x68, 0x65, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x41, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x54, + 0x69, 0x74, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, + 0x75, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x75, + 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x75, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x54, 0x69, 0x74, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, + 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x2a, 0x0a, 0x0e, 0x42, 0x6c, + 0x75, 0x65, 0x73, 0x6b, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x6c, 0x74, 0x54, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x6c, 0x74, 0x54, 0x65, 0x78, 0x74, 0x22, 0x8f, 0x05, 0x0a, 0x0b, 0x50, 0x6f, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, 0x1f, 0x1a, 0x2a, 0x16, 0x70, 0x6f, 0x73, 0x74, + 0xe5, 0x86, 0x85, 0xe5, 0xae, 0xb9, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, + 0xa9, 0xba, 0x58, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, + 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, + 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, + 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, + 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, + 0x72, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x22, 0x0a, + 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, - 0x6e, 0x6b, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x5c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, - 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x5b, 0x0a, - 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x07, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x5f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, - 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x74, 0x63, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x74, 0x63, 0x22, 0x7a, 0x0a, 0x0c, 0x54, 0x77, - 0x69, 0x74, 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x6f, - 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x52, 0x65, 0x73, - 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x22, 0xb5, 0x06, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, - 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1c, - 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x73, - 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x73, 0x55, - 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, - 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x67, - 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x67, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, - 0x12, 0x32, 0x0a, 0x14, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x44, 0x61, 0x79, 0x73, 0x52, - 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, - 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x42, - 0x0a, 0x1c, 0x69, 0x73, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x47, - 0x65, 0x6f, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x69, 0x73, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, - 0x46, 0x6f, 0x72, 0x47, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, - 0x0a, 0x0c, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x18, 0x17, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, - 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x74, 0x77, - 0x69, 0x74, 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, - 0x05, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, - 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x72, - 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x70, - 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, - 0x74, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, - 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, - 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x2a, 0x0a, 0x10, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, - 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x74, - 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x51, - 0x75, 0x6f, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x14, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, - 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x14, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, - 0x6c, 0x6c, 0x73, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, - 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0xb7, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2f, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, - 0xe2, 0xdf, 0x1f, 0x15, 0x2a, 0x11, 0x74, 0x69, 0x74, 0x6c, 0x65, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, - 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, - 0x64, 0x65, 0x54, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x68, 0x69, 0x64, 0x65, 0x54, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, - 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, - 0x63, 0x69, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x75, 0x62, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x75, 0x62, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, - 0x22, 0xa5, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x1e, - 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x28, - 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xc7, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x17, 0x68, - 0x61, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, - 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1c, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, - 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0d, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x42, 0x6f, 0x6f, - 0x6c, 0x12, 0x24, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, - 0x75, 0x72, 0x73, 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x6f, 0x67, 0x22, 0x96, 0x02, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x74, - 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, - 0x69, 0x74, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x54, - 0x43, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x55, 0x54, 0x43, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, - 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x5c, 0x0a, 0x0a, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, - 0x4d, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, - 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, - 0x73, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xd6, 0x01, 0x0a, 0x13, 0x47, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, - 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0a, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x45, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x74, - 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0xdb, 0x02, 0x0a, 0x12, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, - 0x1f, 0x1a, 0x2a, 0x16, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0xe4, 0xb8, - 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0a, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x6f, - 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x24, 0x0a, 0x0d, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x6f, 0x63, 0x69, - 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, - 0x73, 0x65, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x61, 0x73, 0x65, - 0x36, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, - 0x12, 0x25, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, - 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x53, - 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, - 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x73, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, + 0x6e, 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x46, 0x0a, + 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x0d, 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, + 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x0e, 0x79, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0e, 0x79, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, + 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, + 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0e, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, + 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa4, 0x02, 0x0a, 0x06, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, - 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, - 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x22, 0xfb, 0x04, 0x0a, 0x0b, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x31, 0x0a, - 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, - 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 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, 0x37, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x22, 0x0a, - 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, - 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x73, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x22, 0x0a, - 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x55, 0x72, 0x6c, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, - 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, 0x6f, - 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x22, 0x8b, 0x02, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x61, 0x73, 0x74, 0x44, 0x61, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, - 0x61, 0x73, 0x74, 0x44, 0x61, 0x79, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x52, - 0x65, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, - 0x0a, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, - 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x8d, 0x01, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x1c, 0xe2, 0xdf, 0x1f, 0x18, 0x2a, 0x14, 0xe5, 0xb8, 0x96, 0xe5, 0xad, - 0x90, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, - 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, - 0x6c, 0x6c, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x1e, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x90, 0x03, - 0x0a, 0x16, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, - 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, - 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x73, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x22, - 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, - 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x84, 0x01, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x6f, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7b, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x20, 0xe2, 0xdf, 0x1f, 0x1c, 0x2a, 0x18, - 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xe4, 0xb8, 0x8d, 0xe8, - 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, - 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x4b, 0x65, 0x79, 0x22, 0xa6, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, - 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, - 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x50, 0x6f, 0x73, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6c, - 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0xe7, 0x01, - 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xe2, 0xdf, 0x1f, 0x16, 0x2a, 0x12, 0xe5, 0xb9, - 0xb3, 0xe5, 0x8f, 0xb0, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, - 0x58, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x41, 0x0a, 0x0b, - 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x1f, 0xe2, 0xdf, 0x1f, 0x1b, 0x2a, 0x17, 0xe6, 0x8e, 0xa5, 0xe6, 0x94, 0xb6, 0xe8, - 0x80, 0x85, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, - 0x58, 0x01, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xdb, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x96, 0x02, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0xda, - 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xe2, 0xdf, 0x1f, 0x16, 0x2a, 0x12, 0xe5, - 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, - 0xba, 0x58, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, - 0x11, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x6e, - 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x39, 0x0a, 0x11, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x78, 0x0a, 0x14, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x22, 0x57, 0x0a, 0x17, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x3f, 0x0a, 0x0f, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x22, 0x96, 0x04, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, - 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, - 0x10, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0b, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x57, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x9f, 0x01, 0x0a, - 0x12, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 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, - 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0xe7, - 0x02, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, - 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, - 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x73, 0x12, 0x50, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x14, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x17, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xa8, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x73, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xdf, 0x1f, - 0x12, 0x2a, 0x0e, 0x69, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, - 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, - 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, - 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, - 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, - 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, - 0x72, 0x6c, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, - 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x4b, 0x65, 0x79, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, - 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x9d, 0x01, 0x0a, - 0x15, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x22, 0xb0, 0x01, 0x0a, - 0x16, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, - 0x03, 0x63, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x22, - 0x85, 0x01, 0x0a, 0x17, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xa5, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x6e, 0x6b, - 0x65, 0x64, 0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x69, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x69, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x22, + 0xe0, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x07, + 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x52, + 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x22, + 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b, + 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b, + 0x49, 0x64, 0x22, 0xc3, 0x01, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x55, 0x72, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, - 0x82, 0x01, 0x0a, 0x16, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, - 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, - 0x74, 0x55, 0x72, 0x6c, 0x22, 0x84, 0x01, 0x0a, 0x16, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x70, + 0x6f, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, + 0x70, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x2a, 0x0a, + 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, + 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0b, 0x69, 0x73, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x22, 0x5e, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xe2, 0xdf, 0x1f, 0x18, 0x2a, 0x14, 0xe5, 0xb8, + 0x96, 0xe5, 0xad, 0x90, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, + 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xfd, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, + 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x2a, + 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, + 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, + 0x65, 0x66, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, + 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x5b, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x21, + 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x74, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x74, 0x63, 0x22, 0x7a, 0x0a, 0x0c, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x55, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x55, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, + 0x6c, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, + 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, + 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6d, + 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x22, + 0xb5, 0x06, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x73, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x73, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x55, + 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, + 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x67, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x69, 0x67, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x75, + 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, + 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x1c, 0x69, 0x73, 0x45, 0x6c, 0x69, + 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x47, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x69, + 0x73, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x47, 0x65, 0x6f, 0x52, + 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x69, + 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x73, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x74, 0x77, 0x69, 0x74, 0x74, + 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, + 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x55, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x05, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, + 0x2d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x39, + 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, + 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, + 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, + 0x6c, 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, + 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6d, + 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, + 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, + 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, + 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x32, 0x0a, + 0x14, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x73, + 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x51, 0x75, 0x6f, 0x74, + 0x61, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, + 0xb7, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0xe2, 0xdf, 0x1f, 0x15, 0x2a, 0x11, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, + 0x58, 0x01, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x64, 0x65, 0x54, 0x6f, 0x70, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x69, 0x64, 0x65, + 0x54, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x70, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, + 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x65, 0x61, + 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x62, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x15, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x22, 0xc7, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, + 0x65, 0x66, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x17, 0x68, 0x61, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x42, + 0x0a, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x42, + 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x24, 0x0a, 0x0c, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x42, 0x0b, + 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x22, 0x96, 0x02, 0x0a, 0x0b, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x2d, 0x0a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x54, 0x43, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x54, 0x43, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, + 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, + 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x22, 0x5c, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x22, 0xd6, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x45, 0x0a, 0x05, 0x45, + 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x74, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, + 0x64, 0x79, 0x22, 0xdb, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, + 0x57, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, 0x1f, 0x1a, 0x2a, 0x16, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, + 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, + 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x76, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x12, 0x25, 0x0a, 0x05, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, + 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1c, + 0x0a, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x22, 0xfb, 0x04, 0x0a, 0x0b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, + 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 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, 0x37, 0x0a, + 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x79, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, + 0x42, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x42, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6a, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, + 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, + 0x66, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x13, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, + 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, + 0x6b, 0x73, 0x22, 0x8b, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, + 0x22, 0xb3, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, + 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xe2, 0xdf, + 0x1f, 0x18, 0x2a, 0x14, 0xe5, 0xb8, 0x96, 0xe5, 0xad, 0x90, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, + 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, + 0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x50, 0x6f, 0x73, 0x74, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, + 0x6c, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x90, 0x03, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x70, + 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, + 0x6f, 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, + 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, + 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x6f, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x0c, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x22, 0x7b, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3c, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x20, 0xe2, 0xdf, 0x1f, 0x1c, 0x2a, 0x18, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, + 0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, + 0xba, 0x58, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xa6, 0x01, + 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x05, 0x70, + 0x6f, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0xe7, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x1a, 0xe2, 0xdf, 0x1f, 0x16, 0x2a, 0x12, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe4, 0xb8, 0x8d, + 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x41, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe2, 0xdf, 0x1f, 0x1b, + 0x2a, 0x17, 0xe6, 0x8e, 0xa5, 0xe6, 0x94, 0xb6, 0xe8, 0x80, 0x85, 0x49, 0x44, 0xe4, 0xb8, 0x8d, + 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0b, 0x72, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, + 0x22, 0xdb, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, + 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, + 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x96, + 0x02, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, + 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x1a, 0xe2, 0xdf, 0x1f, 0x16, 0x2a, 0x12, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe4, 0xb8, + 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x08, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, + 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, + 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4b, 0x65, 0x79, 0x22, 0x39, 0x0a, 0x11, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, + 0x78, 0x0a, 0x14, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, + 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x57, 0x0a, 0x17, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, + 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, + 0x72, 0x65, 0x22, 0x3f, 0x0a, 0x0f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x14, 0x0a, + 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, + 0x6f, 0x6a, 0x69, 0x22, 0x96, 0x04, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x10, 0x72, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x10, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x57, 0x0a, 0x17, + 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, + 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x0b, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 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, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x61, 0x74, + 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x77, 0x61, + 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0xe7, 0x02, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x50, 0x0a, 0x14, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, + 0x73, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x22, 0xa8, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xdf, 0x1f, 0x12, 0x2a, 0x0e, 0x69, 0x64, 0xe4, 0xb8, + 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x35, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, + 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, + 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, + 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x86, 0x01, 0x0a, + 0x18, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, @@ -11231,548 +11194,584 @@ var file_pb_ayrshare_proto_rawDesc = []byte{ 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xc5, 0x01, 0x0a, 0x0d, - 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x16, 0x0a, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x22, 0xbc, 0x05, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, - 0x44, 0x12, 0x1f, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x41, 0x6c, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x67, 0x72, 0x61, 0x6d, 0x12, 0x37, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, - 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x16, 0x0a, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, - 0x2f, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x12, 0x3a, 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, - 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x3d, 0x0a, 0x08, - 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x3d, 0x0a, 0x08, 0x6c, - 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, - 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x3a, 0x0a, 0x07, 0x74, 0x77, - 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, - 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x74, - 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, - 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, - 0x62, 0x65, 0x22, 0x5b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xdf, 0x1f, 0x12, 0x2a, 0x0e, 0x69, 0x64, 0xe4, 0xb8, 0x8d, - 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, - 0x4f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x23, 0x0a, 0x11, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xc9, 0x03, 0x0a, 0x10, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, - 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x49, 0x64, 0x22, 0xb0, 0x01, 0x0a, 0x16, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, + 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x22, 0x85, 0x01, 0x0a, 0x17, 0x46, 0x61, 0x63, + 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x22, 0xa5, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x04, - 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x64, - 0x64, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, - 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, - 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, - 0x34, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x6c, - 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xc4, 0x04, 0x0a, 0x0d, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, - 0x6b, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x06, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, - 0x31, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, - 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0xb4, 0x03, 0x0a, 0x0e, 0x42, 0x6c, 0x75, - 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, - 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x70, - 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, - 0x54, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, - 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x32, 0x0a, 0x0c, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x22, 0x88, 0x01, 0x0a, 0x0e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, - 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, - 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xac, - 0x03, 0x0a, 0x0f, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x1c, - 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x06, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, - 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, - 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, - 0x65, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, - 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, - 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x22, 0x35, 0x0a, - 0x0d, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x12, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x72, 0x6c, 0x22, 0x66, 0x0a, 0x0c, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, - 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 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, 0x22, 0xbe, 0x03, 0x0a, - 0x0f, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, - 0x65, 0x64, 0x49, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x1c, - 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x05, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, - 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x4d, - 0x65, 0x64, 0x69, 0x61, 0x52, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, - 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x22, 0x30, 0x0a, - 0x0a, 0x52, 0x65, 0x64, 0x64, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, - 0xfd, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x64, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x54, 0x77, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x64, - 0x64, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x1e, 0x0a, - 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, - 0x09, 0x73, 0x75, 0x62, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x75, 0x62, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x75, 0x70, 0x73, 0x12, 0x20, 0x0a, - 0x0b, 0x69, 0x73, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x22, - 0x8c, 0x04, 0x0a, 0x0e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x50, - 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x51, 0x75, 0x6f, - 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x64, - 0x42, 0x79, 0x4d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x42, 0x79, 0x4d, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, - 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x43, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x24, - 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x41, 0x75, 0x64, 0x69, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xe6, - 0x01, 0x0a, 0x14, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x26, 0x0a, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, - 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x77, 0x65, 0x65, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x77, 0x65, - 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, - 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6c, 0x69, - 0x73, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, - 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3c, 0x0a, 0x16, 0x54, 0x77, 0x69, 0x74, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xae, 0x02, 0x0a, 0x0e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, - 0x72, 0x6c, 0x12, 0x44, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa4, 0x05, 0x0a, 0x0e, 0x54, 0x77, 0x69, 0x74, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, - 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x44, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, - 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0d, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x71, - 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x10, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, 0x74, 0x73, 0x18, - 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, 0x74, 0x52, 0x10, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, - 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, - 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, 0x70, - 0x6c, 0x79, 0x54, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x54, 0x6f, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x12, 0x22, 0x0a, - 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9c, 0x02, - 0x0a, 0x0c, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xd0, 0x02, 0x0a, - 0x0e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x1c, 0x0a, - 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, - 0x6c, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, - 0x75, 0x54, 0x75, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, - 0x69, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x9e, 0x05, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, - 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x79, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, - 0x12, 0x2f, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, - 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, - 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, - 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, - 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x32, 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, - 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x62, 0x6c, - 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x35, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, - 0x6b, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x35, 0x0a, 0x08, - 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, - 0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, - 0x64, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x18, 0x0d, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, - 0x65, 0x64, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, - 0x64, 0x64, 0x69, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, - 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, - 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, - 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, - 0x22, 0xc4, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xdf, 0x1f, 0x12, 0x2a, 0x0e, 0x69, 0x64, 0xe4, - 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x73, 0x0a, 0x17, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x67, 0x72, 0x61, 0x6d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, - 0x14, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xcb, 0x02, - 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, - 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, - 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, - 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, - 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x18, 0x0a, - 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, - 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x13, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x16, 0xe2, 0xdf, 0x1f, 0x12, 0x2a, 0x0e, 0x69, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, - 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x07, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, - 0x1f, 0x17, 0x2a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, - 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, - 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, - 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1e, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xae, 0x01, - 0x0a, 0x16, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x22, 0x84, 0x01, + 0x0a, 0x16, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, - 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xc5, - 0x01, 0x0a, 0x13, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xc5, 0x01, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x70, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xbc, 0x05, 0x0a, + 0x13, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x0c, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x41, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, + 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x37, 0x0a, + 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, + 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x62, 0x6c, 0x75, + 0x65, 0x73, 0x6b, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x62, 0x6c, + 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x3d, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, + 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x3d, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, + 0x64, 0x69, 0x6e, 0x12, 0x3a, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, + 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, + 0x3a, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, + 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0x5b, 0x0a, 0x11, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xdf, + 0x1f, 0x12, 0x2a, 0x0e, 0x69, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, + 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x4f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x11, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xc9, + 0x03, 0x0a, 0x10, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x66, 0x72, + 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, + 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, + 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x2f, + 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, + 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, + 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0b, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc4, 0x04, 0x0a, 0x0d, 0x54, + 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, + 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x69, 0x6e, 0x6e, + 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, + 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, + 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x22, 0xb4, 0x03, 0x0a, 0x0e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, - 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x22, 0xd8, 0x01, 0x0a, 0x14, 0x42, 0x6c, 0x75, 0x65, 0x73, - 0x6b, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, + 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, + 0x70, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x32, 0x0a, 0x0c, 0x46, 0x61, 0x63, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x88, 0x01, 0x0a, + 0x0e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, + 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xac, 0x03, 0x0a, 0x0f, 0x46, 0x61, 0x63, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x66, + 0x72, 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6b, 0x65, + 0x73, 0x12, 0x33, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, + 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x22, 0x35, 0x0a, 0x0d, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, + 0x49, 0x6e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x66, 0x0a, + 0x0c, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x72, 0x6c, 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, 0x22, 0xbe, 0x03, 0x0a, 0x0f, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, + 0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x66, + 0x72, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x46, 0x72, 0x6f, + 0x6d, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, + 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x05, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65, + 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, + 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, + 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x22, 0x30, 0x0a, 0x0a, 0x52, 0x65, 0x64, 0x64, 0x69, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xfd, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x64, + 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x04, + 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x64, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x72, 0x65, 0x64, + 0x64, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x62, 0x72, 0x65, + 0x64, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x75, 0x70, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x53, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x22, 0x8c, 0x04, 0x0a, 0x0e, 0x54, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x68, 0x61, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x73, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x42, 0x79, 0x4d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4f, 0x77, 0x6e, 0x65, + 0x64, 0x42, 0x79, 0x4d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, + 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x73, + 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, + 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x79, + 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x72, 0x65, 0x70, 0x6c, 0x79, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x14, 0x54, 0x77, 0x69, 0x74, + 0x74, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, + 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x77, 0x65, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x77, 0x65, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x3c, 0x0a, 0x16, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xae, + 0x02, 0x0a, 0x0e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x54, + 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x44, 0x0a, 0x0d, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xa4, 0x05, 0x0a, 0x0e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, + 0x61, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 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, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, + 0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x44, + 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, 0x74, + 0x52, 0x10, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, + 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, + 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x52, 0x07, 0x72, + 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9c, 0x02, 0x0a, 0x0c, 0x59, 0x6f, 0x75, 0x54, 0x75, + 0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, + 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xd0, 0x02, 0x0a, 0x0e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9e, 0x05, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x38, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x74, 0x69, 0x6b, + 0x74, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x62, 0x6c, + 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x35, + 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x66, 0x61, 0x63, + 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x35, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, + 0x6e, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x06, + 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x64, 0x69, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x12, 0x32, 0x0a, + 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x12, 0x32, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x74, 0x77, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, + 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x14, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, + 0xe2, 0xdf, 0x1f, 0x12, 0x2a, 0x0e, 0x69, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, + 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, + 0x22, 0x73, 0x0a, 0x17, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x14, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xcb, 0x02, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x16, + 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x1a, + 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, + 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, + 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, + 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x79, 0x6f, + 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x79, 0x6f, 0x75, + 0x74, 0x75, 0x62, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xdf, 0x1f, 0x12, 0x2a, 0x0e, + 0x69, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, + 0x58, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, + 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, + 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, + 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xae, 0x01, 0x0a, 0x16, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xc5, 0x01, 0x0a, 0x13, 0x54, 0x69, 0x6b, 0x54, + 0x6f, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, @@ -11782,45 +11781,45 @@ var file_pb_ayrshare_proto_rawDesc = []byte{ 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, - 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, - 0x6c, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x22, 0xc6, 0x01, 0x0a, 0x14, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x22, 0xac, 0x01, 0x0a, 0x14, 0x59, - 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x22, + 0xd8, 0x01, 0x0a, 0x14, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, + 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, + 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x46, + 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4c, + 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xc6, 0x01, 0x0a, 0x14, 0x54, + 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, @@ -11830,362 +11829,375 @@ var file_pb_ayrshare_proto_rawDesc = []byte{ 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xc1, 0x04, 0x0a, 0x14, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, - 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, - 0x6f, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, - 0x3b, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x3b, 0x0a, 0x08, - 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, - 0x49, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x77, 0x69, - 0x74, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, - 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, - 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0xb2, 0x01, - 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xe2, 0xdf, 0x1f, 0x18, 0x2a, 0x14, 0xe5, 0xb8, 0x96, - 0xe5, 0xad, 0x90, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, - 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, - 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, - 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, - 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, - 0x65, 0x79, 0x22, 0xee, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x42, 0x79, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, - 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, 0xdf, 0x1f, 0x1e, 0x2a, 0x1a, 0x53, 0x6f, 0x63, 0x69, - 0x61, 0x6c, 0x20, 0x50, 0x6f, 0x73, 0x74, 0x20, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, - 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x09, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, - 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, - 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, - 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x4b, 0x65, 0x79, 0x22, 0xe6, 0x02, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, - 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, - 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, - 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, - 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, - 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, - 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, - 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0x86, 0x01, 0x0a, - 0x19, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, - 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, - 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, - 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xee, 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, - 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, - 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x6d, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x67, 0x6d, 0x62, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, - 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, - 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x1c, - 0x0a, 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, - 0x64, 0x64, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, - 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, - 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, - 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x79, - 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x6f, 0x48, - 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, - 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, - 0x1f, 0x1a, 0x2a, 0x16, 0x70, 0x6f, 0x73, 0x74, 0xe5, 0x86, 0x85, 0xe5, 0xae, 0xb9, 0xe4, 0xb8, - 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x04, 0x70, 0x6f, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x6d, 0x61, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x88, 0x01, 0x0a, - 0x14, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x72, 0x0a, 0x19, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x68, 0x61, 0x73, - 0x68, 0x74, 0x61, 0x67, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, - 0x58, 0x01, 0x52, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xac, 0x01, 0x0a, 0x1a, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, - 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, - 0x73, 0x68, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, - 0x68, 0x74, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x49, 0x0a, 0x15, 0x48, 0x61, + 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, + 0x74, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, + 0x55, 0x72, 0x6c, 0x22, 0xac, 0x01, 0x0a, 0x14, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x22, 0xc1, 0x04, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, + 0x6d, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, + 0x54, 0x6f, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, + 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, + 0x6b, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x3b, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x66, 0x61, 0x63, + 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x3b, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, + 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, + 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, + 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07, + 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x79, + 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x6f, + 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, + 0xe2, 0xdf, 0x1f, 0x18, 0x2a, 0x14, 0xe5, 0xb8, 0x96, 0xe5, 0xad, 0x90, 0x49, 0x44, 0xe4, 0xb8, + 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, + 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, + 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xee, 0x01, 0x0a, 0x21, + 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, + 0x42, 0x79, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x32, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, + 0xdf, 0x1f, 0x1e, 0x2a, 0x1a, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x50, 0x6f, 0x73, 0x74, + 0x20, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, + 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, + 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, + 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, + 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xe6, 0x02, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, + 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x6e, + 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x6e, + 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, + 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6b, + 0x74, 0x6f, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, + 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x79, + 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x79, 0x6f, + 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, + 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, + 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, + 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xee, + 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, + 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x67, + 0x6d, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x6d, 0x62, 0x12, 0x1c, 0x0a, + 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, + 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x77, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, + 0xb3, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, 0x1f, 0x1a, 0x2a, 0x16, 0x70, 0x6f, 0x73, + 0x74, 0xe5, 0x86, 0x85, 0xe5, 0xae, 0xb9, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, + 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x14, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, + 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x22, 0x72, 0x0a, 0x19, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, + 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, + 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, + 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0xe4, 0xb8, 0x8d, + 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x07, 0x68, 0x61, 0x73, + 0x68, 0x74, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, + 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4b, 0x65, 0x79, 0x22, 0xac, 0x01, 0x0a, 0x1a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x12, 0x16, 0x0a, + 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x22, 0x49, 0x0a, 0x15, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, + 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x71, + 0x0a, 0x18, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, + 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x6b, 0x65, + 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, + 0x17, 0x2a, 0x13, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, + 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, + 0x79, 0x22, 0xde, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, + 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x49, 0x0a, 0x0f, 0x72, 0x65, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x71, 0x0a, 0x18, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x35, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, - 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, - 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xde, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, - 0x12, 0x49, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x15, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x6b, 0x65, 0x79, 0x77, - 0x6f, 0x72, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, - 0x01, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x37, 0x0a, 0x11, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x24, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, - 0x68, 0x74, 0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x15, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, - 0x65, 0x6e, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0xb5, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, - 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x63, - 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, - 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, - 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, - 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc9, 0x02, 0x0a, - 0x16, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x35, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x68, - 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, - 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x0d, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x8c, 0x0e, 0x0a, 0x08, 0x41, 0x79, 0x72, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x15, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, - 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, - 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0d, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1e, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, - 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1c, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, - 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, - 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x53, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, - 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x25, 0x2e, 0x61, - 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, - 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x53, - 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, + 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x07, + 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, + 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, + 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, + 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x4b, 0x65, 0x79, 0x22, 0x37, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, + 0x68, 0x74, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x24, 0x0a, 0x12, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x43, 0x68, 0x69, + 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x22, 0x49, 0x0a, 0x15, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, + 0x74, 0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x30, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, + 0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb5, 0x02, + 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, + 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, + 0x6e, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, + 0x6d, 0x61, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc9, 0x02, 0x0a, 0x16, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x68, + 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, + 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x12, + 0x42, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x52, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, + 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, + 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x32, 0x8c, 0x0e, 0x0a, 0x08, 0x41, 0x79, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x35, + 0x0a, 0x04, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, + 0x12, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, - 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, - 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x79, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x79, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x12, 0x21, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x42, 0x79, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, - 0x49, 0x44, 0x12, 0x2b, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x42, 0x79, - 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, - 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x79, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, - 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, - 0x74, 0x61, 0x67, 0x73, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, - 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x41, - 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x12, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, - 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x79, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, - 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, - 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, - 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x12, 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, - 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, - 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, - 0x74, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x61, 0x72, 0x79, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, + 0x57, 0x54, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1b, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x79, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x6e, + 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, + 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, + 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x59, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, + 0x1a, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, + 0x73, 0x42, 0x79, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x2b, 0x2e, 0x61, 0x72, + 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x42, 0x79, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, + 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, + 0x63, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, + 0x0c, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1d, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, + 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, + 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, + 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x12, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, + 0x61, 0x67, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, + 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, + 0x11, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, + 0x67, 0x73, 0x12, 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, + 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x2e, + 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, + 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, + 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/bundle/bundle.pb.go b/api/bundle/bundle.pb.go index fc60d5f..912f484 100644 --- a/api/bundle/bundle.pb.go +++ b/api/bundle/bundle.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.21.1 +// protoc-gen-go v1.31.0 +// protoc v5.26.0 // source: pb/bundle.proto package bundle @@ -894,6 +894,8 @@ type OrderCreateRecord struct { PayType int32 `protobuf:"varint,19,opt,name=payType,proto3" json:"payType"` AddRecords []*OrderCreateAddRecord `protobuf:"bytes,20,rep,name=addRecords,proto3" json:"addRecords"` //增值服务 OrderNo string `protobuf:"bytes,21,opt,name=orderNo,proto3" json:"orderNo"` + PlatformIds []uint32 `protobuf:"varint,22,rep,packed,name=platformIds,proto3" json:"platformIds"` // 发布平台ID集合 (json 格式字符串) + InviterId uint64 `protobuf:"varint,23,opt,name=inviterId,proto3" json:"inviterId"` // 邀请人ID } func (x *OrderCreateRecord) Reset() { @@ -1075,6 +1077,20 @@ func (x *OrderCreateRecord) GetOrderNo() string { return "" } +func (x *OrderCreateRecord) GetPlatformIds() []uint32 { + if x != nil { + return x.PlatformIds + } + return nil +} + +func (x *OrderCreateRecord) GetInviterId() uint64 { + if x != nil { + return x.InviterId + } + return 0 +} + type OrderCreateAddRecord struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1472,6 +1488,9 @@ type OrderBundleRecordInfo struct { CustomerId int64 `protobuf:"varint,9,opt,name=customerId,proto3" json:"customerId"` PayTime string `protobuf:"bytes,10,opt,name=payTime,proto3" json:"payTime"` SubNum string `protobuf:"bytes,11,opt,name=subNum,proto3" json:"subNum"` + InviterId uint64 `protobuf:"varint,12,opt,name=inviterId,proto3" json:"inviterId"` + InviterCode string `protobuf:"bytes,13,opt,name=inviterCode,proto3" json:"inviterCode"` + InviterName string `protobuf:"bytes,14,opt,name=inviterName,proto3" json:"inviterName"` } func (x *OrderBundleRecordInfo) Reset() { @@ -1583,6 +1602,27 @@ func (x *OrderBundleRecordInfo) GetSubNum() string { return "" } +func (x *OrderBundleRecordInfo) GetInviterId() uint64 { + if x != nil { + return x.InviterId + } + return 0 +} + +func (x *OrderBundleRecordInfo) GetInviterCode() string { + if x != nil { + return x.InviterCode + } + return "" +} + +func (x *OrderBundleRecordInfo) GetInviterName() string { + if x != nil { + return x.InviterName + } + return "" +} + type OrderAddBundleRecordInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5940,18 +5980,18 @@ type GetBundleBalanceListReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` - Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status"` - BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` - Bought int32 `protobuf:"varint,4,opt,name=bought,proto3" json:"bought"` - StartTimeStart int64 `protobuf:"varint,5,opt,name=startTimeStart,proto3" json:"startTimeStart"` - StartTimeEnd int64 `protobuf:"varint,6,opt,name=startTimeEnd,proto3" json:"startTimeEnd"` - ExpiredTimeStart int64 `protobuf:"varint,7,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart"` - ExpiredTimeEnd int64 `protobuf:"varint,8,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd"` - Page int32 `protobuf:"varint,9,opt,name=page,proto3" json:"page"` - PageSize int32 `protobuf:"varint,10,opt,name=pageSize,proto3" json:"pageSize"` - Month string `protobuf:"bytes,11,opt,name=month,proto3" json:"month"` - StatusType int32 `protobuf:"varint,12,opt,name=statusType,proto3" json:"statusType"` + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status"` + BundleName string `protobuf:"bytes,3,opt,name=bundleName,proto3" json:"bundleName"` + Bought int32 `protobuf:"varint,4,opt,name=bought,proto3" json:"bought"` + StartTimeStart int64 `protobuf:"varint,5,opt,name=startTimeStart,proto3" json:"startTimeStart"` + StartTimeEnd int64 `protobuf:"varint,6,opt,name=startTimeEnd,proto3" json:"startTimeEnd"` + ExpiredTimeStart int64 `protobuf:"varint,7,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart"` + ExpiredTimeEnd int64 `protobuf:"varint,8,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd"` + Page int32 `protobuf:"varint,9,opt,name=page,proto3" json:"page"` + PageSize int32 `protobuf:"varint,10,opt,name=pageSize,proto3" json:"pageSize"` + Month []string `protobuf:"bytes,11,rep,name=month,proto3" json:"month"` + StatusType int32 `protobuf:"varint,12,opt,name=statusType,proto3" json:"statusType"` } func (x *GetBundleBalanceListReq) Reset() { @@ -6056,11 +6096,11 @@ func (x *GetBundleBalanceListReq) GetPageSize() int32 { return 0 } -func (x *GetBundleBalanceListReq) GetMonth() string { +func (x *GetBundleBalanceListReq) GetMonth() []string { if x != nil { return x.Month } - return "" + return nil } func (x *GetBundleBalanceListReq) GetStatusType() int32 { @@ -6888,6 +6928,9 @@ type BundleBalanceExportItem struct { MonthlyManualVideoConsumptionNumber int32 `protobuf:"varint,65,opt,name=monthlyManualVideoConsumptionNumber,proto3" json:"monthlyManualVideoConsumptionNumber"` // 当月手动扩展视频使用数 MonthlyManualImageConsumptionNumber int32 `protobuf:"varint,66,opt,name=monthlyManualImageConsumptionNumber,proto3" json:"monthlyManualImageConsumptionNumber"` // 当月手动扩展图文使用数 MonthlyManualDataAnalysisConsumptionNumber int32 `protobuf:"varint,67,opt,name=monthlyManualDataAnalysisConsumptionNumber,proto3" json:"monthlyManualDataAnalysisConsumptionNumber"` // 当月手动扩展数据分析使用数 + // 视频当月消耗金额 + MonthlyBundleVideoConsumptionPrice string `protobuf:"bytes,68,opt,name=monthlyBundleVideoConsumptionPrice,proto3" json:"monthlyBundleVideoConsumptionPrice"` //当月套餐消耗总金额 + MonthlyIncreaseVideoConsumptionPrice string `protobuf:"bytes,69,opt,name=monthlyIncreaseVideoConsumptionPrice,proto3" json:"monthlyIncreaseVideoConsumptionPrice"` //当月增值消耗总金额 } func (x *BundleBalanceExportItem) Reset() { @@ -7391,16 +7434,30 @@ func (x *BundleBalanceExportItem) GetMonthlyManualDataAnalysisConsumptionNumber( return 0 } +func (x *BundleBalanceExportItem) GetMonthlyBundleVideoConsumptionPrice() string { + if x != nil { + return x.MonthlyBundleVideoConsumptionPrice + } + return "" +} + +func (x *BundleBalanceExportItem) GetMonthlyIncreaseVideoConsumptionPrice() string { + if x != nil { + return x.MonthlyIncreaseVideoConsumptionPrice + } + return "" +} + type BundleBalanceExportReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Month string `protobuf:"bytes,1,opt,name=month,proto3" json:"month"` - UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName"` - ExpiredTimeStart uint64 `protobuf:"varint,3,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart"` - ExpiredTimeEnd uint64 `protobuf:"varint,4,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd"` - Status uint32 `protobuf:"varint,5,opt,name=status,proto3" json:"status"` + Month []string `protobuf:"bytes,1,rep,name=month,proto3" json:"month"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName"` + ExpiredTimeStart uint64 `protobuf:"varint,3,opt,name=expiredTimeStart,proto3" json:"expiredTimeStart"` + ExpiredTimeEnd uint64 `protobuf:"varint,4,opt,name=expiredTimeEnd,proto3" json:"expiredTimeEnd"` + Status uint32 `protobuf:"varint,5,opt,name=status,proto3" json:"status"` } func (x *BundleBalanceExportReq) Reset() { @@ -7435,11 +7492,11 @@ func (*BundleBalanceExportReq) Descriptor() ([]byte, []int) { return file_pb_bundle_proto_rawDescGZIP(), []int{68} } -func (x *BundleBalanceExportReq) GetMonth() string { +func (x *BundleBalanceExportReq) GetMonth() []string { if x != nil { return x.Month } - return "" + return nil } func (x *BundleBalanceExportReq) GetUserName() string { @@ -14902,7 +14959,7 @@ type MetricsArtistAccountExportReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Month string `protobuf:"bytes,1,opt,name=month,proto3" json:"month"` + Month []string `protobuf:"bytes,1,rep,name=month,proto3" json:"month"` } func (x *MetricsArtistAccountExportReq) Reset() { @@ -14937,11 +14994,11 @@ func (*MetricsArtistAccountExportReq) Descriptor() ([]byte, []int) { return file_pb_bundle_proto_rawDescGZIP(), []int{155} } -func (x *MetricsArtistAccountExportReq) GetMonth() string { +func (x *MetricsArtistAccountExportReq) GetMonth() []string { if x != nil { return x.Month } - return "" + return nil } type MetricsArtistAccountExportResp struct { @@ -14996,19 +15053,23 @@ type MetricsArtistAccountExportItem struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ArtistName string `protobuf:"bytes,1,opt,name=artistName,proto3" json:"artistName"` - UserNum string `protobuf:"bytes,2,opt,name=userNum,proto3" json:"userNum"` - DmAccount string `protobuf:"bytes,3,opt,name=dmAccount,proto3" json:"dmAccount"` - DmNickname string `protobuf:"bytes,4,opt,name=dmNickname,proto3" json:"dmNickname"` - DmAuthStatus int32 `protobuf:"varint,5,opt,name=dmAuthStatus,proto3" json:"dmAuthStatus"` - // string youtubeAccount = 3; 现在没有YouTube了 - // string youtubeNickname = 4; + ArtistName string `protobuf:"bytes,1,opt,name=artistName,proto3" json:"artistName"` + UserNum string `protobuf:"bytes,2,opt,name=userNum,proto3" json:"userNum"` + DmAccount string `protobuf:"bytes,3,opt,name=dmAccount,proto3" json:"dmAccount"` + DmNickname string `protobuf:"bytes,4,opt,name=dmNickname,proto3" json:"dmNickname"` + DmAuthStatus int32 `protobuf:"varint,5,opt,name=dmAuthStatus,proto3" json:"dmAuthStatus"` InstagramAccount string `protobuf:"bytes,6,opt,name=instagramAccount,proto3" json:"instagramAccount"` InstagramNickname string `protobuf:"bytes,7,opt,name=instagramNickname,proto3" json:"instagramNickname"` InsAuthStatus int32 `protobuf:"varint,8,opt,name=insAuthStatus,proto3" json:"insAuthStatus"` TiktokAccount string `protobuf:"bytes,9,opt,name=tiktokAccount,proto3" json:"tiktokAccount"` TiktokNickname string `protobuf:"bytes,10,opt,name=tiktokNickname,proto3" json:"tiktokNickname"` TiktokAuthStatus int32 `protobuf:"varint,11,opt,name=tiktokAuthStatus,proto3" json:"tiktokAuthStatus"` + YoutubeAccount string `protobuf:"bytes,12,opt,name=youtubeAccount,proto3" json:"youtubeAccount"` + YoutubeNickname string `protobuf:"bytes,13,opt,name=youtubeNickname,proto3" json:"youtubeNickname"` + YoutubeAuthStatus int32 `protobuf:"varint,14,opt,name=youtubeAuthStatus,proto3" json:"youtubeAuthStatus"` + BlueskyAccount string `protobuf:"bytes,15,opt,name=blueskyAccount,proto3" json:"blueskyAccount"` + BlueskyNickname string `protobuf:"bytes,16,opt,name=blueskyNickname,proto3" json:"blueskyNickname"` + BlueskyAuthStatus int32 `protobuf:"varint,17,opt,name=blueskyAuthStatus,proto3" json:"blueskyAuthStatus"` } func (x *MetricsArtistAccountExportItem) Reset() { @@ -15120,12 +15181,54 @@ func (x *MetricsArtistAccountExportItem) GetTiktokAuthStatus() int32 { return 0 } +func (x *MetricsArtistAccountExportItem) GetYoutubeAccount() string { + if x != nil { + return x.YoutubeAccount + } + return "" +} + +func (x *MetricsArtistAccountExportItem) GetYoutubeNickname() string { + if x != nil { + return x.YoutubeNickname + } + return "" +} + +func (x *MetricsArtistAccountExportItem) GetYoutubeAuthStatus() int32 { + if x != nil { + return x.YoutubeAuthStatus + } + return 0 +} + +func (x *MetricsArtistAccountExportItem) GetBlueskyAccount() string { + if x != nil { + return x.BlueskyAccount + } + return "" +} + +func (x *MetricsArtistAccountExportItem) GetBlueskyNickname() string { + if x != nil { + return x.BlueskyNickname + } + return "" +} + +func (x *MetricsArtistAccountExportItem) GetBlueskyAuthStatus() int32 { + if x != nil { + return x.BlueskyAuthStatus + } + return 0 +} + type MetricsVideoSubmitExportReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Month string `protobuf:"bytes,1,opt,name=month,proto3" json:"month"` + Month []string `protobuf:"bytes,1,rep,name=month,proto3" json:"month"` } func (x *MetricsVideoSubmitExportReq) Reset() { @@ -15160,11 +15263,11 @@ func (*MetricsVideoSubmitExportReq) Descriptor() ([]byte, []int) { return file_pb_bundle_proto_rawDescGZIP(), []int{158} } -func (x *MetricsVideoSubmitExportReq) GetMonth() string { +func (x *MetricsVideoSubmitExportReq) GetMonth() []string { if x != nil { return x.Month } - return "" + return nil } type MetricsVideoSubmitExportResp struct { @@ -15485,7 +15588,7 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc3, 0x05, 0x0a, 0x11, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x83, 0x06, 0x0a, 0x11, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, @@ -15529,7 +15632,11 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0x92, 0x03, 0x0a, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x20, 0x0a, 0x0b, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x92, 0x03, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, @@ -15602,7 +15709,7 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x22, 0x85, 0x03, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x6c, 0x22, 0xe7, 0x03, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, @@ -15626,1140 +15733,841 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x22, 0xda, 0x03, 0x0a, 0x18, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, - 0x0a, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, - 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x11, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, - 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x22, 0x47, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x50, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, - 0x6f, 0x22, 0x9b, 0x06, 0x0a, 0x0d, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, - 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x12, - 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, - 0x6d, 0x67, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, - 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, - 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, 0x0a, 0x15, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x68, 0x0a, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x1c, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x18, - 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, - 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, - 0x61, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, - 0xb0, 0x04, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xda, 0x03, 0x0a, 0x18, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x74, 0x74, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x46, + 0x65, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x50, 0x61, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2c, + 0x0a, 0x11, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x22, 0x47, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, + 0x65, 0x22, 0x50, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x4e, 0x6f, 0x22, 0x9b, 0x06, 0x0a, 0x0d, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x6f, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, - 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x12, - 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x41, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x49, 0x6e, - 0x66, 0x6f, 0x22, 0x59, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, - 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x65, 0x6e, - 0x65, 0x66, 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, - 0x0c, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x75, - 0x6d, 0x22, 0xab, 0x02, 0x0a, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, - 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x30, 0x0a, - 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0xb2, 0x02, 0x0a, 0x1c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x8d, 0x01, 0x0a, - 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x5b, 0x0a, 0x12, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x45, 0x0a, 0x13, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, + 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, + 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, + 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x73, + 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, 0x0a, + 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x15, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x68, 0x0a, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x1c, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x11, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, + 0x67, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x22, 0xb0, 0x04, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x53, + 0x69, 0x67, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, 0x72, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x67, 0x49, + 0x6d, 0x67, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x67, 0x49, 0x6d, 0x67, + 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x41, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, + 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x59, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, + 0x61, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x62, + 0x65, 0x6e, 0x65, 0x66, 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x52, 0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, + 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x4e, 0x75, 0x6d, 0x22, 0xab, 0x02, 0x0a, 0x15, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, + 0x30, 0x0a, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0xb2, 0x02, 0x0a, 0x1c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x44, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x6f, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x71, 0x75, 0x6f, + 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, + 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x8d, + 0x01, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x5b, + 0x0a, 0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x45, 0x0a, 0x13, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x22, 0x48, 0x0a, 0x10, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, + 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x73, 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x57, 0x0a, 0x14, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x59, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x12, + 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x22, 0xc8, 0x0b, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x22, 0x48, 0x0a, 0x10, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x65, 0x6c, - 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, - 0x68, 0x65, 0x6c, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x57, 0x0a, 0x14, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x22, 0x59, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x12, 0x2d, 0x0a, - 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xc8, - 0x0b, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, - 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 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, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, - 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, - 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, - 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x73, 0x65, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x20, - 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x1b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, - 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, - 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x63, - 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x28, 0x0a, 0x0f, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, - 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, - 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, - 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x12, 0x44, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2b, 0x0a, 0x08, 0x61, 0x64, - 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x61, - 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x53, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x79, 0x0a, 0x07, 0x41, 0x64, 0x64, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x10, - 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, - 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, - 0x55, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x74, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x74, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x22, 0xdd, 0x03, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, - 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, - 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 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, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, - 0x55, 0x49, 0x44, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x55, 0x55, 0x49, 0x44, 0x22, 0xc5, 0x01, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x50, 0x0a, 0x10, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0xa7, - 0x04, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, - 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, - 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, - 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, - 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x53, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x73, 0x48, 0x61, - 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, - 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, - 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x65, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, - 0xa1, 0x01, 0x0a, 0x19, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x65, 0x0a, 0x1a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdd, 0x02, 0x0a, 0x15, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, - 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x6f, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x6f, - 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1b, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x03, 0x6e, 0x75, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x28, 0xe2, 0xdf, 0x1f, 0x24, 0x10, 0x1d, 0x18, 0x65, - 0x2a, 0x1e, 0xe8, 0x87, 0xb3, 0xe5, 0xb0, 0x91, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x33, 0x30, - 0x2c, 0xe6, 0x9c, 0x80, 0xe5, 0xa4, 0x9a, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x31, 0x30, 0x30, - 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, - 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x71, - 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, - 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, - 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x31, 0x0a, 0x1b, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x7d, - 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, + 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 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, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, + 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x12, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, + 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, + 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, + 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, + 0x72, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, + 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x1e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x28, + 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, + 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x18, 0x20, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, + 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, + 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, + 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2b, 0x0a, 0x08, + 0x61, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x08, 0x61, 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x79, 0x0a, 0x07, 0x41, + 0x64, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, + 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, + 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, + 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x55, 0x55, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x74, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, + 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0xdd, 0x03, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x13, 0x61, 0x64, 0x64, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x61, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 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, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x22, 0xc5, 0x01, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, + 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x50, + 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x69, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, + 0x22, 0xa7, 0x04, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, + 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x73, + 0x48, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x12, 0x34, 0x0a, 0x15, + 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x66, 0x69, 0x6e, + 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0x65, 0x0a, 0x14, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0c, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x22, 0xa1, 0x01, 0x0a, 0x19, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, + 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x65, 0x0a, 0x1a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdd, 0x02, 0x0a, + 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x61, 0x76, 0x65, + 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, + 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x6f, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x12, + 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, + 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x55, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x1b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x03, 0x6e, + 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x28, 0xe2, 0xdf, 0x1f, 0x24, 0x10, 0x1d, + 0x18, 0x65, 0x2a, 0x1e, 0xe8, 0x87, 0xb3, 0xe5, 0xb0, 0x91, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, + 0x33, 0x30, 0x2c, 0xe6, 0x9c, 0x80, 0xe5, 0xa4, 0x9a, 0xe6, 0x95, 0xb0, 0xe4, 0xb8, 0xba, 0x31, + 0x30, 0x30, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0b, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x22, 0x71, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, + 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x38, 0x0a, - 0x1c, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0xb6, 0x02, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, - 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, - 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x30, - 0x0a, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0xcf, 0x03, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x31, 0x0a, + 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x22, 0x7d, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0x38, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0xb6, 0x02, 0x0a, 0x0f, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, + 0x12, 0x30, 0x0a, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xcf, 0x03, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x6f, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x71, 0x75, 0x6f, + 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, + 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x64, 0x22, 0xc4, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x1a, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, - 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, - 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x64, 0x22, 0xc4, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, - 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x61, 0x76, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x69, - 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x1a, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x90, 0x01, 0x0a, + 0x1b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0x4e, 0x0a, 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, + 0x74, 0x0a, 0x1d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x41, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x59, 0x0a, 0x15, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x22, 0x40, 0x0a, 0x16, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x22, 0x56, 0x0a, 0x22, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x75, 0x69, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x75, 0x75, 0x69, 0x64, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x23, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x55, 0x0a, 0x17, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x52, 0x17, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x8f, 0x04, 0x0a, 0x13, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, + 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, + 0x65, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x69, 0x6d, + 0x65, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, + 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, + 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x16, 0x0a, + 0x14, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x1b, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x49, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, - 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4e, 0x0a, - 0x1c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x74, 0x0a, - 0x1d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x41, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x52, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x22, 0x59, 0x0a, 0x15, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, - 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x40, - 0x0a, 0x16, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x22, 0x56, 0x0a, 0x22, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x75, 0x69, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x75, 0x75, 0x69, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, - 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x23, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x55, 0x0a, 0x17, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, - 0x52, 0x17, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x8f, 0x04, 0x0a, 0x13, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, - 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, - 0x6e, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, - 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x15, 0x61, - 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, - 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, - 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, - 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, - 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x1f, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbe, 0x04, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, - 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x76, - 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2a, - 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, - 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x34, - 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, - 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x74, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x74, - 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x8b, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x75, 0x67, 0x68, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x12, 0x26, - 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, - 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x22, 0xb7, 0x25, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, - 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, - 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, - 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x16, - 0x0a, 0x06, 0x62, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x62, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x46, - 0x0a, 0x1e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x42, 0x0a, 0x1c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x1e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, - 0x0a, 0x18, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x18, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1a, 0x69, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, - 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x1b, 0x6d, 0x6f, - 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x18, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x1d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x49, - 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x19, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, - 0x0a, 0x1a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x1a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, - 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, - 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, - 0x0a, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, - 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x74, - 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1e, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x1c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1c, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x1e, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x22, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x1e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x23, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, - 0x0a, 0x1a, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x24, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x1a, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x40, - 0x0a, 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x25, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x44, 0x0a, 0x1d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, - 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, - 0x4e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, - 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, - 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, - 0x6f, 0x6e, 0x74, 0x68, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x50, 0x0a, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x23, 0x6d, - 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x48, 0x0a, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x6d, 0x6f, 0x6e, - 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, - 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, - 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1a, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2f, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x23, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x25, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x30, 0x20, 0x01, 0x28, 0x05, 0x52, 0x25, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, - 0x0a, 0x1f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x31, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, 0x69, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x32, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x21, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x22, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x33, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x22, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x24, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x34, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x24, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, - 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x1f, 0x6d, 0x6f, - 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x35, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, - 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x28, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x37, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x28, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x5e, - 0x0a, 0x2a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x38, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x2a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x56, - 0x0a, 0x26, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x39, 0x20, 0x01, 0x28, 0x05, 0x52, 0x26, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x28, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x28, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, - 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, - 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x1b, 0x6d, 0x6f, 0x6e, 0x74, - 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1b, 0x6d, - 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x1b, 0x6d, 0x6f, - 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, 0x75, 0x61, - 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x22, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, - 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x22, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x25, 0x6d, 0x6f, 0x6e, 0x74, - 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x40, 0x20, 0x01, 0x28, 0x05, 0x52, 0x25, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, - 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, - 0x0a, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x41, 0x20, 0x01, 0x28, 0x05, 0x52, 0x23, 0x6d, 0x6f, 0x6e, - 0x74, 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x50, 0x0a, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, - 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x42, 0x20, 0x01, 0x28, 0x05, 0x52, 0x23, 0x6d, - 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x5e, 0x0a, 0x2a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, - 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x43, 0x20, 0x01, 0x28, 0x05, 0x52, 0x2a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4d, - 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x46, 0x0a, 0x1e, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x44, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x6d, 0x61, 0x6e, 0x75, - 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x1c, 0x6d, 0x61, - 0x6e, 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x45, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x1c, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, - 0x0a, 0x1c, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x46, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x1c, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x23, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x48, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x13, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x49, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x11, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x11, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x4b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xb3, - 0x22, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, - 0x6e, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, - 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, - 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, + 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x1f, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbe, 0x04, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, - 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x79, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x63, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x66, 0x65, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x14, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, - 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x30, 0x0a, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x34, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x1e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x1e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x4a, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x20, 0x69, 0x6e, 0x63, 0x72, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, + 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, + 0x12, 0x34, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, + 0x69, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x6e, + 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x8b, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x75, 0x67, + 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x6f, 0x75, 0x67, 0x68, 0x74, + 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x2a, 0x0a, 0x10, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, + 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xb7, 0x25, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, + 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, + 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x62, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x15, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x46, 0x0a, 0x1e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x1c, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x1c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x13, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x1c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1c, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x1e, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x1e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x46, 0x0a, 0x1e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x69, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x69, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1a, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, - 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, - 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, - 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x6d, - 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1a, 0x6d, 0x6f, 0x6e, 0x74, - 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x6d, 0x6f, - 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x6d, 0x6f, 0x6e, 0x74, - 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x25, 0x6d, 0x6f, - 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x25, 0x6d, 0x6f, 0x6e, 0x74, 0x68, - 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, + 0x12, 0x3a, 0x0a, 0x18, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x18, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1a, + 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x1a, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, + 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x1b, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, + 0x0a, 0x1d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, + 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x3e, 0x0a, 0x1a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, + 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, + 0x0a, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x23, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, @@ -16809,84 +16617,83 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x25, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x25, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, - 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x1f, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x2b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, - 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2c, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x3e, 0x0a, 0x1a, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2e, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x50, 0x0a, 0x23, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x23, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x54, 0x0a, 0x25, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x30, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x25, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x1f, 0x69, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x31, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x1f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, - 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x69, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x4e, 0x0a, 0x22, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x22, 0x6d, 0x6f, - 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x52, 0x0a, 0x24, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x6d, + 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, + 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, + 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, + 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1a, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x34, 0x20, 0x01, 0x28, 0x05, 0x52, 0x24, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x6d, - 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, - 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, - 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x5e, 0x0a, 0x2a, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, + 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x23, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x37, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x2a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x2c, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x38, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x2c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x25, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x30, 0x20, 0x01, 0x28, 0x05, 0x52, 0x25, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x48, 0x0a, 0x1f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x31, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x69, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, 0x69, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x22, 0x6d, 0x6f, 0x6e, 0x74, + 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x33, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x22, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x24, 0x6d, 0x6f, 0x6e, 0x74, + 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x34, 0x20, 0x01, 0x28, 0x05, 0x52, 0x24, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, + 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x1f, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, + 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x36, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, + 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x28, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x37, 0x20, 0x01, 0x28, 0x05, 0x52, 0x28, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x5e, 0x0a, 0x2a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x38, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x2a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x26, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, @@ -16943,2010 +16750,2342 @@ var file_pb_bundle_proto_rawDesc = []byte{ 0x65, 0x72, 0x18, 0x43, 0x20, 0x01, 0x28, 0x05, 0x52, 0x2a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x22, 0xb6, 0x01, 0x0a, 0x16, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, - 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, - 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x64, 0x0a, - 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x33, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x04, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, - 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, - 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, - 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, - 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x9b, 0x04, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, - 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x1e, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x44, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x6d, 0x61, + 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x1c, + 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x45, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x1c, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x12, 0x42, 0x0a, 0x1c, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, + 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1c, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, - 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, - 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x32, - 0x0a, 0x14, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x64, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x75, 0x73, 0x65, 0x64, 0x54, 0x79, - 0x70, 0x65, 0x22, 0xca, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, - 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, - 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, - 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, - 0x74, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x75, - 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x24, 0x0a, - 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x57, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, - 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x90, 0x04, 0x0a, 0x0c, 0x57, 0x6f, 0x72, - 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, - 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, - 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, - 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, - 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, - 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, 0x44, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2f, 0x0a, 0x15, 0x47, - 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x15, - 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x22, 0x86, 0x01, - 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x6d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, - 0x69, 0x6f, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x67, 0x0a, 0x15, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, - 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1e, - 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xb6, - 0x03, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x77, - 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, - 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x41, 0x63, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, - 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, - 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x76, 0x0a, 0x16, 0x54, 0x6f, 0x42, 0x65, 0x43, - 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x6e, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x35, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x16, - 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xc2, 0x0a, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, - 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, - 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, - 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x13, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x42, 0x0a, 0x1c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x36, 0x0a, - 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x47, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x23, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x48, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x13, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x75, + 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x49, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x11, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x4a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x11, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x4b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0xd7, 0x23, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, + 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x13, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x1e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x1e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x20, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, + 0x0a, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, + 0x0a, 0x1c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x1c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x46, 0x0a, 0x1e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x69, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x69, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1a, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, + 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1b, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x6d, 0x6f, 0x6e, 0x74, + 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x1d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, + 0x0a, 0x18, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x18, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1a, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x25, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x11, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x1c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1c, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, - 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x64, - 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x64, - 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x64, 0x61, 0x74, 0x61, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x19, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x23, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x64, 0x61, 0x74, - 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x64, 0x61, 0x74, 0x61, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x25, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x48, 0x0a, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x1c, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x1c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x46, + 0x0a, 0x1e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x23, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1a, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, + 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x24, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, + 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x40, 0x0a, 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, + 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, + 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, + 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x6d, 0x6f, 0x6e, 0x74, + 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, + 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x29, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x25, 0x6d, 0x6f, 0x6e, 0x74, + 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x25, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, + 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, + 0x0a, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x74, + 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, + 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1a, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x2e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x23, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x25, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x30, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x25, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x1f, 0x69, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x31, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x1f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x21, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, + 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x21, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x22, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x22, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x52, 0x0a, 0x24, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, + 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x34, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x24, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, + 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x1f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x5e, + 0x0a, 0x2a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x37, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x2a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x62, + 0x0a, 0x2c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x38, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x2c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, + 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x65, 0x72, 0x12, 0x56, 0x0a, 0x26, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x39, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x26, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x28, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x28, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, + 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x6d, + 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x1b, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x3c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, + 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x40, + 0x0a, 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, 0x75, + 0x61, 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x3d, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x1b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, + 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x4e, 0x0a, 0x22, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, + 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x22, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x3a, 0x0a, 0x18, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x3f, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x18, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4e, 0x65, 0x77, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x25, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x40, 0x20, 0x01, 0x28, 0x05, 0x52, 0x25, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, + 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x41, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4d, + 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x42, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x23, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x5e, 0x0a, 0x2a, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, + 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x43, 0x20, 0x01, 0x28, 0x05, 0x52, 0x2a, 0x6d, 0x6f, 0x6e, 0x74, + 0x68, 0x6c, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x22, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, + 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x44, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x22, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x24, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, + 0x79, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x45, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x24, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x49, 0x6e, 0x63, + 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x16, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x64, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x04, 0x0a, 0x16, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, + 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3c, 0x0a, 0x20, 0x4f, - 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, - 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, 0x5e, 0x0a, 0x1d, 0x4f, 0x6e, 0x6c, - 0x79, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0e, 0x41, 0x64, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x0d, 0x41, 0x64, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x70, - 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x79, 0x53, 0x65, - 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, - 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2c, - 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, - 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x91, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x49, - 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, + 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9b, 0x04, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, + 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x55, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x32, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, + 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, + 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x32, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0xca, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x77, + 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x45, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x73, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x73, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x57, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x90, + 0x04, 0x0a, 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, - 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x22, 0x49, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, - 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x1d, 0x41, - 0x75, 0x74, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6e, 0x64, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x53, - 0x0a, 0x0f, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, - 0x73, 0x12, 0x40, 0x0a, 0x0f, 0x75, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, - 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0f, 0x75, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x73, 0x22, 0xe6, 0x05, 0x0a, 0x0e, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x41, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x41, 0x72, 0x65, 0x61, 0x12, 0x18, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, - 0x53, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x53, - 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, - 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, - 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, - 0x74, 0x55, 0x72, 0x6c, 0x12, 0x32, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, - 0x72, 0x64, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, - 0x76, 0x65, 0x72, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x4e, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x79, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x50, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x53, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x46, 0x65, 0x65, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x46, - 0x65, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x50, 0x61, 0x79, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x79, 0x43, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x63, 0x79, 0x12, 0x32, 0x0a, 0x14, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x14, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x22, 0x31, 0x0a, 0x1f, - 0x53, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x49, 0x44, 0x22, - 0x25, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd6, 0x01, 0x0a, - 0x10, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x6f, 0x72, 0x74, 0x42, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x72, - 0x74, 0x42, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x54, - 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, - 0x62, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x22, 0xd6, 0x03, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, - 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, - 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x61, 0x73, 0x6b, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, - 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, - 0x6c, 0x61, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, - 0x75, 0x6d, 0x12, 0x38, 0x0a, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc5, 0x03, 0x0a, - 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, - 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, - 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x2a, - 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x36, 0x0a, 0x16, - 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x61, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfd, 0x02, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, - 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, - 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, - 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, - 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, - 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, - 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x6c, 0x0a, 0x1c, 0x41, 0x64, 0x64, 0x48, 0x69, 0x64, 0x64, 0x65, - 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, - 0x75, 0x6d, 0x22, 0x32, 0x0a, 0x1a, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x62, 0x0a, 0x12, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x22, 0x0a, 0x0c, - 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x22, 0x0a, + 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x49, + 0x44, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, + 0x63, 0x63, 0x49, 0x44, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, + 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, + 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x77, + 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, + 0x6b, 0x49, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, + 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, + 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, + 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x6d, 0x0a, 0x17, + 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x67, 0x0a, 0x15, 0x54, + 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x55, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x22, 0xb6, 0x03, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, + 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x41, 0x63, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x76, 0x0a, + 0x16, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x20, 0x0a, + 0x0b, 0x75, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0b, 0x75, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x12, + 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x35, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xc2, 0x0a, 0x0a, + 0x1c, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, + 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x11, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x1c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1c, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x16, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, + 0x11, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x1c, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x1c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x28, 0x0a, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x3a, 0x0a, 0x18, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x18, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x50, 0x0a, + 0x23, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x23, 0x64, 0x61, 0x74, 0x61, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x36, 0x0a, 0x16, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x16, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x44, 0x0a, 0x1d, 0x64, 0x61, 0x74, 0x61, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, + 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, + 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x3c, 0x0a, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x22, + 0x5e, 0x0a, 0x1d, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3d, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, + 0xb5, 0x01, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, + 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, + 0x6d, 0x65, 0x42, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, + 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x22, 0x2c, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, + 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, + 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, + 0x6b, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, + 0x6b, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, + 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x77, 0x6f, 0x72, + 0x6b, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, + 0x57, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x49, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x57, 0x61, 0x69, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x31, 0x0a, 0x1d, 0x41, 0x75, 0x74, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x41, 0x6e, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x53, 0x0a, 0x0f, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x40, 0x0a, 0x0f, 0x75, 0x6e, 0x66, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x75, 0x6e, 0x66, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xe6, 0x05, 0x0a, 0x0e, 0x55, 0x6e, + 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x41, 0x72, 0x65, + 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, + 0x41, 0x72, 0x65, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x12, 0x18, + 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x66, 0x52, 0x65, 0x73, + 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x55, 0x72, 0x6c, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, + 0x72, 0x64, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x32, 0x0a, 0x14, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x55, + 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x2e, + 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x50, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x34, 0x0a, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x46, + 0x65, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x46, 0x65, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, + 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x79, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x63, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x50, + 0x61, 0x79, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x32, 0x0a, 0x14, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x63, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x72, 0x64, + 0x4e, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x72, 0x64, 0x4e, + 0x75, 0x6d, 0x22, 0x31, 0x0a, 0x1f, 0x53, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x02, 0x49, 0x44, 0x22, 0x25, 0x0a, 0x11, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x14, 0x0a, 0x12, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x22, 0xd6, 0x01, 0x0a, 0x10, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, + 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x72, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x72, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x61, 0x73, + 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x11, + 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x30, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x74, 0x61, + 0x73, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xd6, 0x03, 0x0a, 0x12, 0x54, 0x61, + 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, + 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x61, + 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, + 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, + 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x38, 0x0a, 0x17, 0x70, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xc5, 0x03, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, + 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, + 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, + 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, + 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x16, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfd, 0x02, 0x0a, 0x19, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, + 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, + 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, - 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x5d, 0x0a, 0x1b, 0x52, 0x65, - 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x88, 0x03, 0x0a, 0x18, 0x45, 0x6d, - 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x6c, 0x0a, 0x1c, 0x41, 0x64, + 0x64, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, + 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, + 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x32, 0x0a, 0x1a, 0x52, 0x65, 0x63, 0x65, + 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x62, 0x0a, 0x12, + 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, - 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, - 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, + 0x22, 0x5d, 0x0a, 0x1b, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3e, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x52, + 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0x88, 0x03, 0x0a, 0x18, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x73, 0x6b, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, + 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, + 0x72, 0x74, 0x42, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x6e, + 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x22, 0x99, 0x01, 0x0a, 0x19, 0x45, + 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, - 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, - 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x22, 0x99, 0x01, 0x0a, 0x19, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, - 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x8c, 0x07, 0x0a, 0x14, 0x54, 0x61, 0x73, 0x6b, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x2c, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x74, + 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, + 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x12, + 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, + 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, + 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x38, 0x0a, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, + 0x18, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x18, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, + 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc7, 0x03, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, + 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, + 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x28, 0x0a, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x73, + 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, + 0x73, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x36, 0x0a, 0x16, 0x61, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x4b, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x61, + 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x61, 0x73, + 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x75, 0x0a, 0x1b, + 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x75, + 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, + 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, + 0x4e, 0x75, 0x6d, 0x22, 0x4a, 0x0a, 0x1a, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x22, + 0x4b, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, + 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x73, 0x22, 0x3b, 0x0a, 0x25, + 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x50, 0x0a, 0x20, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, + 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x22, 0x47, 0x0a, 0x21, 0x47, + 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x22, 0xe5, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, + 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, + 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6d, 0x70, 0x6c, 0x6f, + 0x79, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x91, 0x03, 0x0a, + 0x1d, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, + 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, + 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, + 0x72, 0x74, 0x42, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x1f, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x22, 0xda, 0x01, 0x0a, 0x1e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, + 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, + 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0xf2, + 0x03, 0x0a, 0x18, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x1c, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x36, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, + 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x1d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xf1, 0x0a, 0x0a, 0x15, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x2e, 0x0a, + 0x12, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x75, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, + 0x10, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x72, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x75, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x11, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, + 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2c, 0x0a, + 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, + 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x75, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x75, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x3c, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x19, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3c, 0x0a, + 0x19, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x19, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x18, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x54, + 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, + 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, + 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x19, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x22, 0x8c, 0x07, 0x0a, 0x14, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, - 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, - 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, - 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x70, - 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x38, 0x0a, - 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x50, - 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0xc7, 0x03, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, - 0x61, 0x73, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, - 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, - 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, - 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, - 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x4e, 0x75, 0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x61, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x28, 0x0a, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x12, 0x36, 0x0a, 0x16, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x16, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4b, 0x0a, 0x16, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x75, 0x0a, 0x1b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, + 0x22, 0x69, 0x0a, 0x1d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x86, 0x04, 0x0a, 0x1a, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x72, 0x65, + 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, + 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, + 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, + 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x70, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x18, + 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, + 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, + 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, + 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x70, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x3a, 0x0a, 0x18, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x18, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, + 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0xa0, 0x01, 0x0a, 0x1e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x72, 0x65, + 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x60, 0x0a, 0x14, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x11, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x34, 0x0a, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x26, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6f, + 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x8e, 0x01, 0x0a, 0x15, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x22, 0x56, 0x0a, 0x1a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0xe9, 0x05, 0x0a, 0x1b, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, + 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, + 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x40, + 0x0a, 0x1b, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x1b, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x38, 0x0a, 0x17, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x17, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x1e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x19, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x19, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x47, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, + 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1c, 0x0a, + 0x1a, 0x53, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x33, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x22, 0x30, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x19, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x22, 0x2e, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2d, 0x0a, + 0x17, 0x53, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1a, 0x0a, 0x18, + 0x53, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, + 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa8, 0x03, 0x0a, 0x18, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, - 0x55, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, - 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x4a, 0x0a, - 0x1a, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, - 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x61, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x19, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x55, 0x55, 0x49, 0x44, 0x73, 0x22, 0x3b, 0x0a, 0x25, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, - 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, - 0x55, 0x55, 0x49, 0x44, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x22, 0x50, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, - 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x55, 0x55, 0x49, 0x44, 0x22, 0x47, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, - 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x55, 0x55, - 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, - 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe5, - 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, - 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6d, - 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x4e, 0x75, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x91, 0x03, 0x0a, 0x1d, 0x54, 0x61, 0x73, 0x6b, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, - 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, - 0x72, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x75, - 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x73, - 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x1f, 0x0a, 0x0b, 0x43, 0x6f, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xda, 0x01, 0x0a, 0x1e, - 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, - 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x3a, 0x0a, 0x07, - 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, - 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0xf2, 0x03, 0x0a, 0x18, 0x54, 0x61, 0x73, - 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1c, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x34, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, - 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, - 0x1d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x1d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, - 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, - 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf1, 0x0a, - 0x0a, 0x15, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, - 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, - 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x2e, 0x0a, 0x12, 0x75, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x12, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x10, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x12, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x50, 0x6f, 0x73, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x75, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x6f, - 0x73, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x74, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x38, 0x0a, 0x17, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x17, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3c, 0x0a, 0x19, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3c, 0x0a, 0x19, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x72, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x18, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x61, 0x73, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x28, 0x0a, - 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x61, 0x73, 0x6b, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x38, 0x0a, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x96, 0x01, 0x0a, 0x19, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x33, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x69, 0x0a, 0x1d, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, - 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, - 0x62, 0x4e, 0x75, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x86, 0x04, 0x0a, 0x1a, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, - 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x17, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x70, - 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x3c, 0x0a, 0x19, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x19, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, - 0x0a, 0x16, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, - 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x6f, 0x73, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x16, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x22, 0xa0, - 0x01, 0x0a, 0x1e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x38, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, - 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x22, 0x60, 0x0a, 0x14, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, - 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x4e, - 0x75, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x11, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, - 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, - 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x28, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x15, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x56, 0x0a, 0x1a, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, - 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, - 0x75, 0x6d, 0x22, 0xe9, 0x05, 0x0a, 0x1b, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x32, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x1b, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1b, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x38, 0x0a, 0x17, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, - 0x0a, 0x1e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x20, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, - 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x47, - 0x0a, 0x19, 0x53, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x33, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x1a, 0x47, 0x65, - 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, - 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x19, 0x0a, 0x17, - 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, - 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x22, 0x2e, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2d, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x50, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x22, 0xa8, 0x03, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, - 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2c, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, - 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x55, 0x49, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, - 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, - 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x5c, 0x0a, - 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, - 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xcd, 0x0e, 0x0a, 0x13, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x18, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x3e, 0x0a, 0x1a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x1a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x22, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x50, - 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x6e, 0x65, 0x77, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x6e, 0x65, 0x77, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x6e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x18, 0x6e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, - 0x10, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x6e, 0x65, 0x77, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x30, 0x0a, 0x13, 0x6e, 0x65, 0x77, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x6e, 0x65, - 0x77, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x6e, 0x65, 0x77, - 0x52, 0x65, 0x70, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x70, 0x6f, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6e, 0x65, 0x77, - 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6e, 0x65, 0x77, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x6e, 0x65, 0x77, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x3e, 0x0a, 0x1a, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x73, 0x74, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x77, - 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, - 0x14, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x6e, 0x65, 0x77, - 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x30, 0x0a, 0x13, 0x6e, 0x65, 0x77, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, - 0x6e, 0x65, 0x77, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x42, 0x0a, 0x1c, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x73, 0x74, + 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, + 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x55, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x74, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, + 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, + 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x22, 0x0a, + 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x75, 0x6d, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x4e, 0x75, 0x6d, 0x22, 0x5c, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, + 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, + 0x64, 0x22, 0xcd, 0x0e, 0x0a, 0x13, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x73, + 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x18, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x1a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, - 0x6e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x46, 0x0a, 0x1e, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, + 0x65, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x36, 0x0a, 0x16, 0x6e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x16, 0x6e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x6e, 0x65, 0x77, 0x49, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x18, 0x6e, 0x65, 0x77, 0x49, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6e, + 0x65, 0x77, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x34, 0x0a, 0x15, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, + 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x6e, 0x65, 0x77, 0x46, 0x65, 0x65, 0x50, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x13, 0x6e, 0x65, 0x77, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0e, 0x6e, 0x65, 0x77, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x2e, 0x0a, 0x12, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x70, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x77, + 0x52, 0x65, 0x70, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x2c, 0x0a, 0x11, 0x6e, 0x65, 0x77, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6e, 0x65, 0x77, 0x41, + 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, + 0x17, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, + 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x1a, 0x6e, 0x65, 0x77, 0x43, 0x6f, + 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, 0x6e, 0x65, 0x77, + 0x43, 0x6f, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x65, 0x77, 0x49, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x10, 0x6e, 0x65, 0x77, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x14, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, + 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x14, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, + 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x6e, 0x65, 0x77, 0x41, 0x64, + 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6e, 0x65, 0x77, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x6e, 0x65, 0x77, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x6e, 0x65, + 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, + 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1c, 0x6e, 0x65, 0x77, 0x43, 0x6f, + 0x73, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x6e, + 0x65, 0x77, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x6e, + 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x1e, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x6e, + 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, + 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x6e, 0x65, 0x77, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x3e, 0x0a, 0x1a, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x1a, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x42, 0x0a, 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x15, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x1a, 0x6e, 0x65, 0x77, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x6e, - 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1c, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, - 0x15, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6e, 0x65, - 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x1a, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x15, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x1a, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1c, 0x6e, 0x65, 0x77, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1c, 0x6e, - 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x21, 0x6e, - 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x21, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x23, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x20, 0x20, 0x01, 0x28, 0x03, 0x52, 0x23, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x43, 0x0a, 0x19, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x64, - 0x22, 0xa8, 0x11, 0x0a, 0x1a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x4a, 0x0a, 0x20, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x20, 0x6e, 0x65, 0x77, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x22, 0x6e, + 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x6e, + 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1c, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x1c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, + 0x1c, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x1c, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x4c, 0x0a, 0x21, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x21, 0x6e, 0x65, + 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x50, 0x0a, 0x23, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x03, 0x52, 0x23, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x43, 0x0a, 0x19, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xa8, 0x11, 0x0a, 0x1a, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x20, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x20, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x4e, 0x0a, 0x22, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x22, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x22, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x22, 0x74, + 0x74, 0x12, 0x4e, 0x0a, 0x22, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x22, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x22, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x24, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x24, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, - 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x40, 0x0a, 0x1b, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x44, 0x0a, 0x1d, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, - 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x1d, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x48, 0x0a, - 0x1f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, - 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x1e, 0x6e, 0x65, 0x77, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x74, 0x12, 0x52, 0x0a, 0x24, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x24, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x1b, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x6e, 0x65, 0x77, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x1d, 0x6e, 0x65, 0x77, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, + 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, + 0x1d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x1f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1f, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x1e, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x4a, 0x0a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x6e, - 0x65, 0x77, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, - 0x6e, 0x65, 0x77, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x1b, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x20, 0x6e, - 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x20, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x22, 0x6e, 0x65, 0x77, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x22, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x22, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x40, 0x0a, 0x1b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x4a, 0x0a, 0x20, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x20, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x22, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x24, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, - 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x24, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x1b, 0x6e, - 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x1b, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, - 0x1d, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, + 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, + 0x22, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x1d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x1f, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x1f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, - 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x27, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x27, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5c, 0x0a, - 0x29, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x29, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5c, 0x0a, 0x29, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x29, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x60, 0x0a, 0x2b, 0x74, 0x6f, 0x74, + 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x22, 0x6e, 0x65, 0x77, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, + 0x22, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x22, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 0x0a, + 0x24, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x24, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, - 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x2b, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x22, 0x6e, + 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x40, 0x0a, 0x1b, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x1d, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x6e, 0x65, 0x77, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x1d, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x1d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x48, 0x0a, 0x1f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, + 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x27, 0x6e, 0x65, 0x77, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x27, 0x6e, 0x65, 0x77, 0x50, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x5c, 0x0a, 0x29, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x29, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x5c, 0x0a, 0x29, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x29, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x60, 0x0a, 0x2b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x2b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x4e, 0x0a, 0x22, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x22, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x22, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x24, 0x6e, - 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x12, 0x52, 0x0a, 0x24, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, + 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x24, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x24, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1b, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x24, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x26, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x24, 0x6e, 0x65, 0x77, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x52, 0x0a, 0x24, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x24, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x26, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x26, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x2f, 0x0a, 0x19, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, 0xa6, 0x0c, 0x0a, - 0x1a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x0f, 0x64, - 0x72, 0x61, 0x66, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x69, - 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x13, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x6a, 0x65, 0x63, - 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x10, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x77, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x15, 0x77, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x70, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x70, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, - 0x16, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x75, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, - 0x64, 0x72, 0x61, 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x30, 0x0a, 0x13, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x72, 0x65, - 0x76, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, - 0x15, 0x77, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x77, 0x61, - 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x72, 0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, - 0x15, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x61, 0x75, - 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, - 0x17, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, - 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x75, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x3e, 0x0a, 0x1a, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x1a, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x44, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x38, 0x0a, 0x17, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x17, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1c, 0x77, 0x61, 0x69, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x1c, 0x77, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, - 0x1e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, - 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1c, 0x61, 0x75, 0x74, - 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x1e, 0x70, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x1e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x75, 0x6e, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x26, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x46, 0x0a, 0x1e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x75, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x1d, 0x75, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x1d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x22, 0x2f, 0x0a, 0x19, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x65, 0x22, 0xa6, 0x0c, 0x0a, 0x1a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x64, 0x72, 0x61, 0x66, + 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x72, + 0x65, 0x76, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, + 0x69, 0x6e, 0x67, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, + 0x10, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x77, 0x61, 0x69, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x77, 0x61, 0x69, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x38, 0x0a, 0x17, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x17, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x75, 0x74, + 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x38, 0x0a, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x17, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x16, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x64, + 0x72, 0x61, 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x69, + 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x13, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x10, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x77, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x15, 0x77, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x70, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x70, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, + 0x16, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x75, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x1a, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x69, + 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x72, 0x65, 0x76, 0x69, 0x65, + 0x77, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x34, 0x0a, 0x15, 0x61, 0x62, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x41, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, - 0x61, 0x62, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x50, 0x0a, 0x1e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x18, 0x0a, - 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x1f, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, - 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0xbd, 0x03, 0x0a, 0x19, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, - 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x69, + 0x42, 0x0a, 0x1c, 0x77, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1c, 0x77, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x1e, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x1c, 0x61, + 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x46, 0x0a, 0x1e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x1e, 0x75, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x1e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x44, 0x0a, 0x1d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x62, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1b, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x61, 0x62, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x50, 0x0a, 0x1e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x75, 0x72, 0x63, + 0x68, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, + 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x58, 0x0a, + 0x1f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x75, + 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbd, 0x03, 0x0a, 0x19, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, + 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, - 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, - 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, - 0x0b, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x0b, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x09, 0x66, 0x65, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x61, 0x74, - 0x65, 0x22, 0x35, 0x0a, 0x1d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x22, 0x5c, 0x0a, 0x1e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb6, 0x03, 0x0a, 0x1e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, + 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, + 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x65, 0x65, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x22, 0x35, 0x0a, 0x1d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6d, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x6d, 0x41, 0x75, 0x74, 0x68, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, - 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4e, 0x69, - 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x41, 0x75, 0x74, 0x68, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, - 0x6b, 0x74, 0x6f, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x74, - 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x4e, 0x69, 0x63, 0x6b, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x41, 0x75, 0x74, - 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, - 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x33, 0x0a, 0x1b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, - 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, - 0x6f, 0x6e, 0x74, 0x68, 0x22, 0x58, 0x0a, 0x1c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xfa, - 0x01, 0x0a, 0x1c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x22, 0x5c, + 0x0a, 0x1e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x41, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb6, 0x05, 0x0a, + 0x1e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, - 0x69, 0x64, 0x65, 0x6f, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6d, 0x55, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0c, 0x64, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, - 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x2a, 0x0a, 0x10, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x69, 0x6b, 0x74, 0x6f, - 0x6b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x1d, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, - 0x74, 0x68, 0x32, 0xf0, 0x39, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, - 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, - 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, - 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, - 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, - 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, + 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x6d, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6d, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6d, 0x4e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x6d, 0x4e, + 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6d, 0x41, 0x75, 0x74, + 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, + 0x6d, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x67, 0x72, 0x61, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x41, 0x75, 0x74, 0x68, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x6e, + 0x73, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, + 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x4e, 0x69, 0x63, 0x6b, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x69, 0x6b, 0x74, 0x6f, + 0x6b, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x69, 0x6b, + 0x74, 0x6f, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x79, + 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, + 0x0f, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x4e, + 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x79, 0x6f, 0x75, 0x74, 0x75, + 0x62, 0x65, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x11, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x41, 0x75, 0x74, 0x68, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, + 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, + 0x0f, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x4e, + 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x6c, 0x75, 0x65, 0x73, + 0x6b, 0x79, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x11, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x41, 0x75, 0x74, 0x68, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x33, 0x0a, 0x1b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x22, 0x58, 0x0a, 0x1c, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0xfa, 0x01, 0x0a, 0x1c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, + 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x64, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x64, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x10, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x22, 0x35, 0x0a, 0x1d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x32, 0xf0, 0x39, 0x0a, 0x06, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, - 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x35, 0x56, 0x32, 0x12, 0x19, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x12, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4c, 0x61, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, - 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, - 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, - 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, + 0x65, 0x6c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x48, 0x61, 0x6e, + 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x59, - 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x19, 0x4f, 0x6e, 0x6c, - 0x79, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x28, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, - 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x11, 0x52, 0x65, 0x53, - 0x69, 0x67, 0x6e, 0x54, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x20, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x68, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x61, + 0x76, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, + 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x4f, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, + 0x00, 0x12, 0x49, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, + 0x35, 0x56, 0x32, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x12, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, - 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x24, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, - 0x42, 0x79, 0x55, 0x75, 0x69, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x1b, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x2a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, - 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x24, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, - 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, - 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x58, 0x0a, - 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x61, 0x0a, - 0x16, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, - 0x12, 0x61, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, - 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x56, - 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, - 0x56, 0x65, 0x64, 0x69, 0x6f, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, - 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1d, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, - 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, - 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x40, 0x0a, - 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x16, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, - 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x61, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, - 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, - 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, - 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x11, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, + 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, + 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x13, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x21, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, + 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x4c, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, - 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, - 0x0a, 0x28, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x53, 0x65, - 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x41, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x79, 0x53, 0x65, 0x72, 0x69, - 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x12, 0x48, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x13, 0x50, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, + 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x56, 0x32, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x56, 0x32, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x56, 0x32, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x6e, 0x0a, 0x19, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x28, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x64, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x4f, 0x0a, 0x11, 0x52, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x12, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, + 0x53, 0x69, 0x67, 0x6e, 0x54, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x63, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x13, 0x53, 0x61, 0x76, + 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x1a, 0x14, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, + 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x6b, 0x0a, 0x24, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x42, 0x79, 0x55, 0x75, 0x69, 0x64, 0x41, 0x6e, 0x64, 0x4c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, + 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x78, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x2a, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, + 0x61, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x15, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x41, 0x6e, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x18, 0x53, - 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x53, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x6e, 0x66, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, - 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, - 0x16, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x20, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, - 0x65, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x12, 0x23, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x6b, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x16, - 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x50, 0x0a, 0x13, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x42, - 0x79, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, - 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, - 0x12, 0x28, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, - 0x6b, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x55, - 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x75, 0x61, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x4e, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x59, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, - 0x79, 0x6f, 0x75, 0x74, 0x12, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x79, 0x6f, - 0x75, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x79, - 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x53, 0x65, 0x74, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x79, 0x6f, 0x75, - 0x74, 0x12, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x50, - 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, - 0x6f, 0x77, 0x6e, 0x12, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, - 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x1e, 0x52, 0x65, 0x76, 0x65, 0x72, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x79, 0x55, 0x55, 0x49, 0x44, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2d, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, 0x49, 0x74, 0x65, - 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x54, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x54, 0x61, 0x73, 0x6b, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x41, 0x64, 0x64, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x67, 0x12, 0x20, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x57, 0x6f, - 0x72, 0x6b, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, + 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x6c, 0x0a, 0x17, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x18, 0x47, 0x65, + 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, 0x0a, + 0x10, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x49, + 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x12, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x21, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, + 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x74, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x55, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, + 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x57, 0x6f, 0x72, 0x6b, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x65, 0x57, 0x6f, 0x72, 0x6b, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, + 0x54, 0x6f, 0x42, 0x65, 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x12, 0x1d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x6f, 0x42, 0x65, + 0x43, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, + 0x71, 0x1a, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x6f, 0x42, 0x65, 0x43, + 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, + 0x72, 0x6b, 0x12, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x57, + 0x61, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, + 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x16, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x21, - 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x16, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x1b, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, - 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x1a, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x2e, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x18, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x7f, 0x0a, 0x20, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x68, 0x65, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x28, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x42, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x2c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x42, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x16, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, + 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6e, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, + 0x00, 0x12, 0x5d, 0x0a, 0x18, 0x53, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x53, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x55, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x4b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, + 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x19, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, + 0x0a, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x19, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x51, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, + 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x22, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, + 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x45, + 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, + 0x61, 0x73, 0x6b, 0x73, 0x12, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x45, 0x6d, + 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x14, 0x43, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x75, 0x61, + 0x6c, 0x6c, 0x79, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x6c, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, + 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x63, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x13, 0x54, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, 0x12, 0x22, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x19, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, 0x12, 0x28, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x29, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, + 0x6b, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x55, + 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, + 0x0f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x61, 0x73, 0x6b, + 0x12, 0x1e, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x21, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x73, + 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x1f, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, + 0x73, 0x6b, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, + 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x5b, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, + 0x6b, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x1f, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x53, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, + 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x19, + 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x64, 0x6f, 0x77, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x1c, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, + 0x1e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x55, 0x55, 0x49, 0x44, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x2d, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x54, + 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x55, + 0x55, 0x49, 0x44, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x48, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x12, 0x24, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x48, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x11, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x67, + 0x12, 0x20, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x61, 0x73, 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0f, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x12, + 0x1a, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x42, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x73, 0x69, + 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x16, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x61, 0x0a, + 0x16, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x70, 0x0a, 0x1b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x75, + 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x1a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x25, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x67, 0x0a, 0x18, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2e, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x7f, 0x0a, 0x20, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x54, 0x68, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, + 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x68, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x68, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x2c, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x54, 0x68, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x2c, 0x2e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x68, 0x65, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, + 0x2f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/bundle/bundle_triple.pb.go b/api/bundle/bundle_triple.pb.go index 803e1a9..041358c 100644 --- a/api/bundle/bundle_triple.pb.go +++ b/api/bundle/bundle_triple.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-triple. DO NOT EDIT. // versions: -// - protoc-gen-go-triple v1.0.8 -// - protoc v3.21.1 +// - protoc-gen-go-triple v1.0.5 +// - protoc v5.26.0 // source: pb/bundle.proto package bundle diff --git a/api/cast/cast.pb.go b/api/cast/cast.pb.go index 22602ec..380c13f 100644 --- a/api/cast/cast.pb.go +++ b/api/cast/cast.pb.go @@ -468,6 +468,7 @@ type MediaUserListReq struct { MediaUserID string `protobuf:"bytes,11,opt,name=mediaUserID,proto3" json:"mediaUserID"` NeedStats bool `protobuf:"varint,12,opt,name=needStats,proto3" json:"needStats"` NeedAsInfo bool `protobuf:"varint,13,opt,name=needAsInfo,proto3" json:"needAsInfo"` + Expired int32 `protobuf:"varint,14,opt,name=expired,proto3" json:"expired"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -593,6 +594,13 @@ func (x *MediaUserListReq) GetNeedAsInfo() bool { return false } +func (x *MediaUserListReq) GetExpired() int32 { + if x != nil { + return x.Expired + } + return 0 +} + type MediaUserInfo struct { state protoimpl.MessageState `protogen:"open.v1"` PlatformUserName string `protobuf:"bytes,1,opt,name=platformUserName,proto3" json:"platformUserName"` @@ -613,6 +621,7 @@ type MediaUserInfo struct { ReleasedPostTotal int32 `protobuf:"varint,16,opt,name=releasedPostTotal,proto3" json:"releasedPostTotal"` AsInfo *AsInfo `protobuf:"bytes,17,opt,name=asInfo,proto3" json:"asInfo"` ArtistSubNum string `protobuf:"bytes,18,opt,name=artistSubNum,proto3" json:"artistSubNum"` + Expired int32 `protobuf:"varint,19,opt,name=expired,proto3" json:"expired"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -773,6 +782,13 @@ func (x *MediaUserInfo) GetArtistSubNum() string { return "" } +func (x *MediaUserInfo) GetExpired() int32 { + if x != nil { + return x.Expired + } + return 0 +} + type MediaUserListResp struct { state protoimpl.MessageState `protogen:"open.v1"` Data []*MediaUserInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` @@ -2006,6 +2022,7 @@ type WorkListReq struct { YoutubeStatus uint32 `protobuf:"varint,30,opt,name=youtubeStatus,proto3" json:"youtubeStatus"` BlueskyStatus uint32 `protobuf:"varint,31,opt,name=blueskyStatus,proto3" json:"blueskyStatus"` ArtistUuid string `protobuf:"bytes,32,opt,name=artistUuid,proto3" json:"artistUuid"` + SubmitTimeMonths []string `protobuf:"bytes,33,rep,name=submitTimeMonths,proto3" json:"submitTimeMonths"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2264,6 +2281,13 @@ func (x *WorkListReq) GetArtistUuid() string { return "" } +func (x *WorkListReq) GetSubmitTimeMonths() []string { + if x != nil { + return x.SubmitTimeMonths + } + return nil +} + type WorkListResp struct { state protoimpl.MessageState `protogen:"open.v1"` Data []*WorkListResp_Info `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` @@ -3379,6 +3403,120 @@ func (x *WorkInfoResp) GetWorkCategory() uint32 { return 0 } +// 发布成功的作品列表请求 +type WorkListPublishedReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid"` // 艺人UUID,为空则查询所有艺人 + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page"` // 页码 + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"` // 每页数量 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WorkListPublishedReq) Reset() { + *x = WorkListPublishedReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkListPublishedReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkListPublishedReq) ProtoMessage() {} + +func (x *WorkListPublishedReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[35] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkListPublishedReq.ProtoReflect.Descriptor instead. +func (*WorkListPublishedReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{35} +} + +func (x *WorkListPublishedReq) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +func (x *WorkListPublishedReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *WorkListPublishedReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +// 发布成功的作品列表响应 +type WorkListPublishedResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count"` // 总数 + Data []*WorkListPublishedResp_Info `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` // 作品列表 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WorkListPublishedResp) Reset() { + *x = WorkListPublishedResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkListPublishedResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkListPublishedResp) ProtoMessage() {} + +func (x *WorkListPublishedResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[36] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkListPublishedResp.ProtoReflect.Descriptor instead. +func (*WorkListPublishedResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{36} +} + +func (x *WorkListPublishedResp) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *WorkListPublishedResp) GetData() []*WorkListPublishedResp_Info { + if x != nil { + return x.Data + } + return nil +} + type ArtistInfoReq struct { state protoimpl.MessageState `protogen:"open.v1"` ArtistUuid string `protobuf:"bytes,1,opt,name=artistUuid,proto3" json:"artistUuid"` @@ -3388,7 +3526,7 @@ type ArtistInfoReq struct { func (x *ArtistInfoReq) Reset() { *x = ArtistInfoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[35] + mi := &file_pb_fiee_cast_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3400,7 +3538,7 @@ func (x *ArtistInfoReq) String() string { func (*ArtistInfoReq) ProtoMessage() {} func (x *ArtistInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[35] + mi := &file_pb_fiee_cast_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3413,7 +3551,7 @@ func (x *ArtistInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistInfoReq.ProtoReflect.Descriptor instead. func (*ArtistInfoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{35} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{37} } func (x *ArtistInfoReq) GetArtistUuid() string { @@ -3438,7 +3576,7 @@ type ArtistInfoResp struct { func (x *ArtistInfoResp) Reset() { *x = ArtistInfoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[36] + mi := &file_pb_fiee_cast_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3450,7 +3588,7 @@ func (x *ArtistInfoResp) String() string { func (*ArtistInfoResp) ProtoMessage() {} func (x *ArtistInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[36] + mi := &file_pb_fiee_cast_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3463,7 +3601,7 @@ func (x *ArtistInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistInfoResp.ProtoReflect.Descriptor instead. func (*ArtistInfoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{36} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{38} } func (x *ArtistInfoResp) GetTikTokEffectiveCount() uint32 { @@ -3524,7 +3662,7 @@ type ImportWorkBatchReq struct { func (x *ImportWorkBatchReq) Reset() { *x = ImportWorkBatchReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[37] + mi := &file_pb_fiee_cast_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3536,7 +3674,7 @@ func (x *ImportWorkBatchReq) String() string { func (*ImportWorkBatchReq) ProtoMessage() {} func (x *ImportWorkBatchReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[37] + mi := &file_pb_fiee_cast_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3549,7 +3687,7 @@ func (x *ImportWorkBatchReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportWorkBatchReq.ProtoReflect.Descriptor instead. func (*ImportWorkBatchReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{37} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{39} } func (x *ImportWorkBatchReq) GetImageWorks() []*UpdateWorkImageReq { @@ -3570,7 +3708,7 @@ type ImportWorkBatchResp struct { func (x *ImportWorkBatchResp) Reset() { *x = ImportWorkBatchResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[38] + mi := &file_pb_fiee_cast_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3582,7 +3720,7 @@ func (x *ImportWorkBatchResp) String() string { func (*ImportWorkBatchResp) ProtoMessage() {} func (x *ImportWorkBatchResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[38] + mi := &file_pb_fiee_cast_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3595,7 +3733,7 @@ func (x *ImportWorkBatchResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportWorkBatchResp.ProtoReflect.Descriptor instead. func (*ImportWorkBatchResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{38} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{40} } func (x *ImportWorkBatchResp) GetImageWorks() []*UpdateWorkImageReq { @@ -3636,7 +3774,7 @@ type PlatformInfo struct { func (x *PlatformInfo) Reset() { *x = PlatformInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[39] + mi := &file_pb_fiee_cast_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3648,7 +3786,7 @@ func (x *PlatformInfo) String() string { func (*PlatformInfo) ProtoMessage() {} func (x *PlatformInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[39] + mi := &file_pb_fiee_cast_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3661,7 +3799,7 @@ func (x *PlatformInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PlatformInfo.ProtoReflect.Descriptor instead. func (*PlatformInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{39} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{41} } func (x *PlatformInfo) GetWorkUuid() string { @@ -3736,7 +3874,7 @@ type UpdateWorkPlatformInfoReq struct { func (x *UpdateWorkPlatformInfoReq) Reset() { *x = UpdateWorkPlatformInfoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[40] + mi := &file_pb_fiee_cast_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3748,7 +3886,7 @@ func (x *UpdateWorkPlatformInfoReq) String() string { func (*UpdateWorkPlatformInfoReq) ProtoMessage() {} func (x *UpdateWorkPlatformInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[40] + mi := &file_pb_fiee_cast_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3761,7 +3899,7 @@ func (x *UpdateWorkPlatformInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkPlatformInfoReq.ProtoReflect.Descriptor instead. func (*UpdateWorkPlatformInfoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{40} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{42} } func (x *UpdateWorkPlatformInfoReq) GetPlatformInfoData() []*PlatformInfo { @@ -3780,7 +3918,7 @@ type UpdateWorkPlatformInfoResp struct { func (x *UpdateWorkPlatformInfoResp) Reset() { *x = UpdateWorkPlatformInfoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[41] + mi := &file_pb_fiee_cast_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3792,7 +3930,7 @@ func (x *UpdateWorkPlatformInfoResp) String() string { func (*UpdateWorkPlatformInfoResp) ProtoMessage() {} func (x *UpdateWorkPlatformInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[41] + mi := &file_pb_fiee_cast_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3805,7 +3943,7 @@ func (x *UpdateWorkPlatformInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkPlatformInfoResp.ProtoReflect.Descriptor instead. func (*UpdateWorkPlatformInfoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{41} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{43} } func (x *UpdateWorkPlatformInfoResp) GetWorkUuid() []string { @@ -3827,7 +3965,7 @@ type UpdateWorkPublishLogReq struct { func (x *UpdateWorkPublishLogReq) Reset() { *x = UpdateWorkPublishLogReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[42] + mi := &file_pb_fiee_cast_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3839,7 +3977,7 @@ func (x *UpdateWorkPublishLogReq) String() string { func (*UpdateWorkPublishLogReq) ProtoMessage() {} func (x *UpdateWorkPublishLogReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[42] + mi := &file_pb_fiee_cast_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3852,7 +3990,7 @@ func (x *UpdateWorkPublishLogReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkPublishLogReq.ProtoReflect.Descriptor instead. func (*UpdateWorkPublishLogReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{42} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{44} } func (x *UpdateWorkPublishLogReq) GetWorkUuid() string { @@ -3892,7 +4030,7 @@ type RefreshWorkListReq struct { func (x *RefreshWorkListReq) Reset() { *x = RefreshWorkListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[43] + mi := &file_pb_fiee_cast_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3904,7 +4042,7 @@ func (x *RefreshWorkListReq) String() string { func (*RefreshWorkListReq) ProtoMessage() {} func (x *RefreshWorkListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[43] + mi := &file_pb_fiee_cast_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3917,7 +4055,7 @@ func (x *RefreshWorkListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshWorkListReq.ProtoReflect.Descriptor instead. func (*RefreshWorkListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{43} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{45} } func (x *RefreshWorkListReq) GetPublishStatus() uint32 { @@ -3936,7 +4074,7 @@ type RefreshWorkListResp struct { func (x *RefreshWorkListResp) Reset() { *x = RefreshWorkListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[44] + mi := &file_pb_fiee_cast_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3948,7 +4086,7 @@ func (x *RefreshWorkListResp) String() string { func (*RefreshWorkListResp) ProtoMessage() {} func (x *RefreshWorkListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[44] + mi := &file_pb_fiee_cast_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3961,7 +4099,7 @@ func (x *RefreshWorkListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshWorkListResp.ProtoReflect.Descriptor instead. func (*RefreshWorkListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{44} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{46} } func (x *RefreshWorkListResp) GetData() []*RefreshWorkListResp_Info { @@ -3980,7 +4118,7 @@ type OAuthAccountReq struct { func (x *OAuthAccountReq) Reset() { *x = OAuthAccountReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[45] + mi := &file_pb_fiee_cast_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3992,7 +4130,7 @@ func (x *OAuthAccountReq) String() string { func (*OAuthAccountReq) ProtoMessage() {} func (x *OAuthAccountReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[45] + mi := &file_pb_fiee_cast_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4005,7 +4143,7 @@ func (x *OAuthAccountReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthAccountReq.ProtoReflect.Descriptor instead. func (*OAuthAccountReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{45} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{47} } func (x *OAuthAccountReq) GetMediaAccountUuid() string { @@ -4024,7 +4162,7 @@ type OAuthAccountResp struct { func (x *OAuthAccountResp) Reset() { *x = OAuthAccountResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[46] + mi := &file_pb_fiee_cast_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4036,7 +4174,7 @@ func (x *OAuthAccountResp) String() string { func (*OAuthAccountResp) ProtoMessage() {} func (x *OAuthAccountResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[46] + mi := &file_pb_fiee_cast_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4049,7 +4187,7 @@ func (x *OAuthAccountResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthAccountResp.ProtoReflect.Descriptor instead. func (*OAuthAccountResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{46} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{48} } func (x *OAuthAccountResp) GetUrl() string { @@ -4068,7 +4206,7 @@ type OAuthAccountV2Req struct { func (x *OAuthAccountV2Req) Reset() { *x = OAuthAccountV2Req{} - mi := &file_pb_fiee_cast_proto_msgTypes[47] + mi := &file_pb_fiee_cast_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4080,7 +4218,7 @@ func (x *OAuthAccountV2Req) String() string { func (*OAuthAccountV2Req) ProtoMessage() {} func (x *OAuthAccountV2Req) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[47] + mi := &file_pb_fiee_cast_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4093,7 +4231,7 @@ func (x *OAuthAccountV2Req) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthAccountV2Req.ProtoReflect.Descriptor instead. func (*OAuthAccountV2Req) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{47} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{49} } func (x *OAuthAccountV2Req) GetMediaAccountUuid() string { @@ -4115,7 +4253,7 @@ type OAuthAccountV2Resp struct { func (x *OAuthAccountV2Resp) Reset() { *x = OAuthAccountV2Resp{} - mi := &file_pb_fiee_cast_proto_msgTypes[48] + mi := &file_pb_fiee_cast_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4127,7 +4265,7 @@ func (x *OAuthAccountV2Resp) String() string { func (*OAuthAccountV2Resp) ProtoMessage() {} func (x *OAuthAccountV2Resp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[48] + mi := &file_pb_fiee_cast_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4140,7 +4278,7 @@ func (x *OAuthAccountV2Resp) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthAccountV2Resp.ProtoReflect.Descriptor instead. func (*OAuthAccountV2Resp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{48} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{50} } func (x *OAuthAccountV2Resp) GetArtistUuid() string { @@ -4182,7 +4320,7 @@ type OAuthYoutubeTokenReq struct { func (x *OAuthYoutubeTokenReq) Reset() { *x = OAuthYoutubeTokenReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[49] + mi := &file_pb_fiee_cast_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4194,7 +4332,7 @@ func (x *OAuthYoutubeTokenReq) String() string { func (*OAuthYoutubeTokenReq) ProtoMessage() {} func (x *OAuthYoutubeTokenReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[49] + mi := &file_pb_fiee_cast_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4207,7 +4345,7 @@ func (x *OAuthYoutubeTokenReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthYoutubeTokenReq.ProtoReflect.Descriptor instead. func (*OAuthYoutubeTokenReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{49} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{51} } func (x *OAuthYoutubeTokenReq) GetMediaAccountUuid() string { @@ -4235,7 +4373,7 @@ type OAuthYoutubeTokenResp struct { func (x *OAuthYoutubeTokenResp) Reset() { *x = OAuthYoutubeTokenResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[50] + mi := &file_pb_fiee_cast_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4247,7 +4385,7 @@ func (x *OAuthYoutubeTokenResp) String() string { func (*OAuthYoutubeTokenResp) ProtoMessage() {} func (x *OAuthYoutubeTokenResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[50] + mi := &file_pb_fiee_cast_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4260,7 +4398,7 @@ func (x *OAuthYoutubeTokenResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthYoutubeTokenResp.ProtoReflect.Descriptor instead. func (*OAuthYoutubeTokenResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{50} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{52} } func (x *OAuthYoutubeTokenResp) GetAccessToken() string { @@ -4296,7 +4434,7 @@ type OAuthCodeToTokenReq struct { func (x *OAuthCodeToTokenReq) Reset() { *x = OAuthCodeToTokenReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[51] + mi := &file_pb_fiee_cast_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4308,7 +4446,7 @@ func (x *OAuthCodeToTokenReq) String() string { func (*OAuthCodeToTokenReq) ProtoMessage() {} func (x *OAuthCodeToTokenReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[51] + mi := &file_pb_fiee_cast_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4321,7 +4459,7 @@ func (x *OAuthCodeToTokenReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthCodeToTokenReq.ProtoReflect.Descriptor instead. func (*OAuthCodeToTokenReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{51} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{53} } func (x *OAuthCodeToTokenReq) GetCode() string { @@ -4360,7 +4498,7 @@ type OAuthCodeToTokenResp struct { func (x *OAuthCodeToTokenResp) Reset() { *x = OAuthCodeToTokenResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[52] + mi := &file_pb_fiee_cast_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4372,7 +4510,7 @@ func (x *OAuthCodeToTokenResp) String() string { func (*OAuthCodeToTokenResp) ProtoMessage() {} func (x *OAuthCodeToTokenResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[52] + mi := &file_pb_fiee_cast_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4385,7 +4523,7 @@ func (x *OAuthCodeToTokenResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthCodeToTokenResp.ProtoReflect.Descriptor instead. func (*OAuthCodeToTokenResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{52} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{54} } type UpdateOAuthReq struct { @@ -4397,7 +4535,7 @@ type UpdateOAuthReq struct { func (x *UpdateOAuthReq) Reset() { *x = UpdateOAuthReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[53] + mi := &file_pb_fiee_cast_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4409,7 +4547,7 @@ func (x *UpdateOAuthReq) String() string { func (*UpdateOAuthReq) ProtoMessage() {} func (x *UpdateOAuthReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[53] + mi := &file_pb_fiee_cast_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4422,7 +4560,7 @@ func (x *UpdateOAuthReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateOAuthReq.ProtoReflect.Descriptor instead. func (*UpdateOAuthReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{53} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{55} } func (x *UpdateOAuthReq) GetData() []*UpdateOAuthReq_Info { @@ -4443,7 +4581,7 @@ type RefreshTokenReq struct { func (x *RefreshTokenReq) Reset() { *x = RefreshTokenReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[54] + mi := &file_pb_fiee_cast_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4455,7 +4593,7 @@ func (x *RefreshTokenReq) String() string { func (*RefreshTokenReq) ProtoMessage() {} func (x *RefreshTokenReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[54] + mi := &file_pb_fiee_cast_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4468,7 +4606,7 @@ func (x *RefreshTokenReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshTokenReq.ProtoReflect.Descriptor instead. func (*RefreshTokenReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{54} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{56} } func (x *RefreshTokenReq) GetRefreshToken() string { @@ -4502,7 +4640,7 @@ type RefreshTokenResp struct { func (x *RefreshTokenResp) Reset() { *x = RefreshTokenResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[55] + mi := &file_pb_fiee_cast_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4514,7 +4652,7 @@ func (x *RefreshTokenResp) String() string { func (*RefreshTokenResp) ProtoMessage() {} func (x *RefreshTokenResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[55] + mi := &file_pb_fiee_cast_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4527,7 +4665,7 @@ func (x *RefreshTokenResp) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshTokenResp.ProtoReflect.Descriptor instead. func (*RefreshTokenResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{55} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{57} } func (x *RefreshTokenResp) GetAccessToken() string { @@ -4555,7 +4693,7 @@ type PublishMediaInfoReq struct { func (x *PublishMediaInfoReq) Reset() { *x = PublishMediaInfoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[56] + mi := &file_pb_fiee_cast_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4567,7 +4705,7 @@ func (x *PublishMediaInfoReq) String() string { func (*PublishMediaInfoReq) ProtoMessage() {} func (x *PublishMediaInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[56] + mi := &file_pb_fiee_cast_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4580,7 +4718,7 @@ func (x *PublishMediaInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PublishMediaInfoReq.ProtoReflect.Descriptor instead. func (*PublishMediaInfoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{56} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{58} } func (x *PublishMediaInfoReq) GetWorkUuid() string { @@ -4616,7 +4754,7 @@ type PublishMediaInfoResp struct { func (x *PublishMediaInfoResp) Reset() { *x = PublishMediaInfoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[57] + mi := &file_pb_fiee_cast_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4628,7 +4766,7 @@ func (x *PublishMediaInfoResp) String() string { func (*PublishMediaInfoResp) ProtoMessage() {} func (x *PublishMediaInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[57] + mi := &file_pb_fiee_cast_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4641,7 +4779,7 @@ func (x *PublishMediaInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use PublishMediaInfoResp.ProtoReflect.Descriptor instead. func (*PublishMediaInfoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{57} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{59} } func (x *PublishMediaInfoResp) GetWorkUuid() string { @@ -4681,7 +4819,7 @@ type ToolsReq struct { func (x *ToolsReq) Reset() { *x = ToolsReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[58] + mi := &file_pb_fiee_cast_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4693,7 +4831,7 @@ func (x *ToolsReq) String() string { func (*ToolsReq) ProtoMessage() {} func (x *ToolsReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[58] + mi := &file_pb_fiee_cast_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4706,7 +4844,7 @@ func (x *ToolsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ToolsReq.ProtoReflect.Descriptor instead. func (*ToolsReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{58} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{60} } func (x *ToolsReq) GetAction() string { @@ -4735,7 +4873,7 @@ type UpdateVideoScriptReq struct { func (x *UpdateVideoScriptReq) Reset() { *x = UpdateVideoScriptReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[59] + mi := &file_pb_fiee_cast_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4747,7 +4885,7 @@ func (x *UpdateVideoScriptReq) String() string { func (*UpdateVideoScriptReq) ProtoMessage() {} func (x *UpdateVideoScriptReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[59] + mi := &file_pb_fiee_cast_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4760,7 +4898,7 @@ func (x *UpdateVideoScriptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateVideoScriptReq.ProtoReflect.Descriptor instead. func (*UpdateVideoScriptReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{59} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{61} } func (x *UpdateVideoScriptReq) GetUuid() string { @@ -4835,7 +4973,7 @@ type UpdateVideoScriptResp struct { func (x *UpdateVideoScriptResp) Reset() { *x = UpdateVideoScriptResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[60] + mi := &file_pb_fiee_cast_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4847,7 +4985,7 @@ func (x *UpdateVideoScriptResp) String() string { func (*UpdateVideoScriptResp) ProtoMessage() {} func (x *UpdateVideoScriptResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[60] + mi := &file_pb_fiee_cast_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4860,7 +4998,7 @@ func (x *UpdateVideoScriptResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateVideoScriptResp.ProtoReflect.Descriptor instead. func (*UpdateVideoScriptResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{60} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{62} } func (x *UpdateVideoScriptResp) GetUuid() string { @@ -4880,7 +5018,7 @@ type GetVideoScriptReq struct { func (x *GetVideoScriptReq) Reset() { *x = GetVideoScriptReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[61] + mi := &file_pb_fiee_cast_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4892,7 +5030,7 @@ func (x *GetVideoScriptReq) String() string { func (*GetVideoScriptReq) ProtoMessage() {} func (x *GetVideoScriptReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[61] + mi := &file_pb_fiee_cast_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4905,7 +5043,7 @@ func (x *GetVideoScriptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVideoScriptReq.ProtoReflect.Descriptor instead. func (*GetVideoScriptReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{61} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{63} } func (x *GetVideoScriptReq) GetUuid() string { @@ -4936,7 +5074,7 @@ type GetVideoScriptResp struct { func (x *GetVideoScriptResp) Reset() { *x = GetVideoScriptResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[62] + mi := &file_pb_fiee_cast_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4948,7 +5086,7 @@ func (x *GetVideoScriptResp) String() string { func (*GetVideoScriptResp) ProtoMessage() {} func (x *GetVideoScriptResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[62] + mi := &file_pb_fiee_cast_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4961,7 +5099,7 @@ func (x *GetVideoScriptResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVideoScriptResp.ProtoReflect.Descriptor instead. func (*GetVideoScriptResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{62} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{64} } func (x *GetVideoScriptResp) GetUuid() string { @@ -5073,7 +5211,7 @@ type ListVideoScriptsReq struct { func (x *ListVideoScriptsReq) Reset() { *x = ListVideoScriptsReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[63] + mi := &file_pb_fiee_cast_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5085,7 +5223,7 @@ func (x *ListVideoScriptsReq) String() string { func (*ListVideoScriptsReq) ProtoMessage() {} func (x *ListVideoScriptsReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[63] + mi := &file_pb_fiee_cast_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5098,7 +5236,7 @@ func (x *ListVideoScriptsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListVideoScriptsReq.ProtoReflect.Descriptor instead. func (*ListVideoScriptsReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{63} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{65} } func (x *ListVideoScriptsReq) GetTitle() string { @@ -5186,7 +5324,7 @@ type VideoScriptInfo struct { func (x *VideoScriptInfo) Reset() { *x = VideoScriptInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[64] + mi := &file_pb_fiee_cast_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5198,7 +5336,7 @@ func (x *VideoScriptInfo) String() string { func (*VideoScriptInfo) ProtoMessage() {} func (x *VideoScriptInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[64] + mi := &file_pb_fiee_cast_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5211,7 +5349,7 @@ func (x *VideoScriptInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoScriptInfo.ProtoReflect.Descriptor instead. func (*VideoScriptInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{64} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{66} } func (x *VideoScriptInfo) GetUuid() string { @@ -5322,7 +5460,7 @@ type ListVideoScriptsResp struct { func (x *ListVideoScriptsResp) Reset() { *x = ListVideoScriptsResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[65] + mi := &file_pb_fiee_cast_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5334,7 +5472,7 @@ func (x *ListVideoScriptsResp) String() string { func (*ListVideoScriptsResp) ProtoMessage() {} func (x *ListVideoScriptsResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[65] + mi := &file_pb_fiee_cast_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5347,7 +5485,7 @@ func (x *ListVideoScriptsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListVideoScriptsResp.ProtoReflect.Descriptor instead. func (*ListVideoScriptsResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{65} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{67} } func (x *ListVideoScriptsResp) GetData() []*VideoScriptInfo { @@ -5374,7 +5512,7 @@ type DeleteVideoScriptReq struct { func (x *DeleteVideoScriptReq) Reset() { *x = DeleteVideoScriptReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[66] + mi := &file_pb_fiee_cast_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5386,7 +5524,7 @@ func (x *DeleteVideoScriptReq) String() string { func (*DeleteVideoScriptReq) ProtoMessage() {} func (x *DeleteVideoScriptReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[66] + mi := &file_pb_fiee_cast_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5399,7 +5537,7 @@ func (x *DeleteVideoScriptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteVideoScriptReq.ProtoReflect.Descriptor instead. func (*DeleteVideoScriptReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{66} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{68} } func (x *DeleteVideoScriptReq) GetUuid() string { @@ -5418,7 +5556,7 @@ type UpdateVideoScriptBatchReq struct { func (x *UpdateVideoScriptBatchReq) Reset() { *x = UpdateVideoScriptBatchReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[67] + mi := &file_pb_fiee_cast_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5430,7 +5568,7 @@ func (x *UpdateVideoScriptBatchReq) String() string { func (*UpdateVideoScriptBatchReq) ProtoMessage() {} func (x *UpdateVideoScriptBatchReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[67] + mi := &file_pb_fiee_cast_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5443,7 +5581,7 @@ func (x *UpdateVideoScriptBatchReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateVideoScriptBatchReq.ProtoReflect.Descriptor instead. func (*UpdateVideoScriptBatchReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{67} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{69} } func (x *UpdateVideoScriptBatchReq) GetData() []*VideoScriptInfo { @@ -5464,7 +5602,7 @@ type UpdateVideoScriptBatchResp struct { func (x *UpdateVideoScriptBatchResp) Reset() { *x = UpdateVideoScriptBatchResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[68] + mi := &file_pb_fiee_cast_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5476,7 +5614,7 @@ func (x *UpdateVideoScriptBatchResp) String() string { func (*UpdateVideoScriptBatchResp) ProtoMessage() {} func (x *UpdateVideoScriptBatchResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[68] + mi := &file_pb_fiee_cast_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5489,7 +5627,7 @@ func (x *UpdateVideoScriptBatchResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateVideoScriptBatchResp.ProtoReflect.Descriptor instead. func (*UpdateVideoScriptBatchResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{68} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{70} } func (x *UpdateVideoScriptBatchResp) GetData() []*VideoScriptInfo { @@ -5525,7 +5663,7 @@ type UpdateScriptStatusReq struct { func (x *UpdateScriptStatusReq) Reset() { *x = UpdateScriptStatusReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[69] + mi := &file_pb_fiee_cast_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5537,7 +5675,7 @@ func (x *UpdateScriptStatusReq) String() string { func (*UpdateScriptStatusReq) ProtoMessage() {} func (x *UpdateScriptStatusReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[69] + mi := &file_pb_fiee_cast_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5550,7 +5688,7 @@ func (x *UpdateScriptStatusReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateScriptStatusReq.ProtoReflect.Descriptor instead. func (*UpdateScriptStatusReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{69} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{71} } func (x *UpdateScriptStatusReq) GetWorkAction() WorkActionENUM { @@ -5592,7 +5730,7 @@ type SetLayoutReq struct { func (x *SetLayoutReq) Reset() { *x = SetLayoutReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[70] + mi := &file_pb_fiee_cast_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5604,7 +5742,7 @@ func (x *SetLayoutReq) String() string { func (*SetLayoutReq) ProtoMessage() {} func (x *SetLayoutReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[70] + mi := &file_pb_fiee_cast_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5617,7 +5755,7 @@ func (x *SetLayoutReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SetLayoutReq.ProtoReflect.Descriptor instead. func (*SetLayoutReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{70} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{72} } func (x *SetLayoutReq) GetUserID() string { @@ -5651,7 +5789,7 @@ type GetLayoutReq struct { func (x *GetLayoutReq) Reset() { *x = GetLayoutReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[71] + mi := &file_pb_fiee_cast_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5663,7 +5801,7 @@ func (x *GetLayoutReq) String() string { func (*GetLayoutReq) ProtoMessage() {} func (x *GetLayoutReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[71] + mi := &file_pb_fiee_cast_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5676,7 +5814,7 @@ func (x *GetLayoutReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetLayoutReq.ProtoReflect.Descriptor instead. func (*GetLayoutReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{71} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{73} } func (x *GetLayoutReq) GetUserID() string { @@ -5703,7 +5841,7 @@ type GetLayoutResp struct { func (x *GetLayoutResp) Reset() { *x = GetLayoutResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[72] + mi := &file_pb_fiee_cast_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5715,7 +5853,7 @@ func (x *GetLayoutResp) String() string { func (*GetLayoutResp) ProtoMessage() {} func (x *GetLayoutResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[72] + mi := &file_pb_fiee_cast_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5728,7 +5866,7 @@ func (x *GetLayoutResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetLayoutResp.ProtoReflect.Descriptor instead. func (*GetLayoutResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{72} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{74} } func (x *GetLayoutResp) GetData() string { @@ -5757,7 +5895,7 @@ type UpdatePromptReq struct { func (x *UpdatePromptReq) Reset() { *x = UpdatePromptReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[73] + mi := &file_pb_fiee_cast_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5769,7 +5907,7 @@ func (x *UpdatePromptReq) String() string { func (*UpdatePromptReq) ProtoMessage() {} func (x *UpdatePromptReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[73] + mi := &file_pb_fiee_cast_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5782,7 +5920,7 @@ func (x *UpdatePromptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdatePromptReq.ProtoReflect.Descriptor instead. func (*UpdatePromptReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{73} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{75} } func (x *UpdatePromptReq) GetPromptUuid() string { @@ -5815,7 +5953,7 @@ type DeletePromptReq struct { func (x *DeletePromptReq) Reset() { *x = DeletePromptReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[74] + mi := &file_pb_fiee_cast_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5827,7 +5965,7 @@ func (x *DeletePromptReq) String() string { func (*DeletePromptReq) ProtoMessage() {} func (x *DeletePromptReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[74] + mi := &file_pb_fiee_cast_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5840,7 +5978,7 @@ func (x *DeletePromptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeletePromptReq.ProtoReflect.Descriptor instead. func (*DeletePromptReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{74} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{76} } func (x *DeletePromptReq) GetPromptUuid() string { @@ -5859,7 +5997,7 @@ type GetPromptReq struct { func (x *GetPromptReq) Reset() { *x = GetPromptReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[75] + mi := &file_pb_fiee_cast_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5871,7 +6009,7 @@ func (x *GetPromptReq) String() string { func (*GetPromptReq) ProtoMessage() {} func (x *GetPromptReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[75] + mi := &file_pb_fiee_cast_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5884,7 +6022,7 @@ func (x *GetPromptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPromptReq.ProtoReflect.Descriptor instead. func (*GetPromptReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{75} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{77} } func (x *GetPromptReq) GetPromptUuid() string { @@ -5906,7 +6044,7 @@ type GetPromptResp struct { func (x *GetPromptResp) Reset() { *x = GetPromptResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[76] + mi := &file_pb_fiee_cast_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5918,7 +6056,7 @@ func (x *GetPromptResp) String() string { func (*GetPromptResp) ProtoMessage() {} func (x *GetPromptResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[76] + mi := &file_pb_fiee_cast_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5931,7 +6069,7 @@ func (x *GetPromptResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPromptResp.ProtoReflect.Descriptor instead. func (*GetPromptResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{76} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{78} } func (x *GetPromptResp) GetPromptUuid() string { @@ -5977,7 +6115,7 @@ type ListPromptsReq struct { func (x *ListPromptsReq) Reset() { *x = ListPromptsReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[77] + mi := &file_pb_fiee_cast_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5989,7 +6127,7 @@ func (x *ListPromptsReq) String() string { func (*ListPromptsReq) ProtoMessage() {} func (x *ListPromptsReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[77] + mi := &file_pb_fiee_cast_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6002,7 +6140,7 @@ func (x *ListPromptsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPromptsReq.ProtoReflect.Descriptor instead. func (*ListPromptsReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{77} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{79} } func (x *ListPromptsReq) GetPrompt() string { @@ -6070,7 +6208,7 @@ type PromptInfo struct { func (x *PromptInfo) Reset() { *x = PromptInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[78] + mi := &file_pb_fiee_cast_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6082,7 +6220,7 @@ func (x *PromptInfo) String() string { func (*PromptInfo) ProtoMessage() {} func (x *PromptInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[78] + mi := &file_pb_fiee_cast_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6095,7 +6233,7 @@ func (x *PromptInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PromptInfo.ProtoReflect.Descriptor instead. func (*PromptInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{78} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{80} } func (x *PromptInfo) GetPromptUuid() string { @@ -6164,7 +6302,7 @@ type ListPromptsResp struct { func (x *ListPromptsResp) Reset() { *x = ListPromptsResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[79] + mi := &file_pb_fiee_cast_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6176,7 +6314,7 @@ func (x *ListPromptsResp) String() string { func (*ListPromptsResp) ProtoMessage() {} func (x *ListPromptsResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[79] + mi := &file_pb_fiee_cast_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6189,7 +6327,7 @@ func (x *ListPromptsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPromptsResp.ProtoReflect.Descriptor instead. func (*ListPromptsResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{79} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{81} } func (x *ListPromptsResp) GetData() []*PromptInfo { @@ -6215,7 +6353,7 @@ type UpdatePromptBatchReq struct { func (x *UpdatePromptBatchReq) Reset() { *x = UpdatePromptBatchReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[80] + mi := &file_pb_fiee_cast_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6227,7 +6365,7 @@ func (x *UpdatePromptBatchReq) String() string { func (*UpdatePromptBatchReq) ProtoMessage() {} func (x *UpdatePromptBatchReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[80] + mi := &file_pb_fiee_cast_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6240,7 +6378,7 @@ func (x *UpdatePromptBatchReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdatePromptBatchReq.ProtoReflect.Descriptor instead. func (*UpdatePromptBatchReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{80} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{82} } func (x *UpdatePromptBatchReq) GetData() []*PromptInfo { @@ -6261,7 +6399,7 @@ type UpdatePromptBatchResp struct { func (x *UpdatePromptBatchResp) Reset() { *x = UpdatePromptBatchResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[81] + mi := &file_pb_fiee_cast_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6273,7 +6411,7 @@ func (x *UpdatePromptBatchResp) String() string { func (*UpdatePromptBatchResp) ProtoMessage() {} func (x *UpdatePromptBatchResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[81] + mi := &file_pb_fiee_cast_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6286,7 +6424,7 @@ func (x *UpdatePromptBatchResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdatePromptBatchResp.ProtoReflect.Descriptor instead. func (*UpdatePromptBatchResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{81} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{83} } func (x *UpdatePromptBatchResp) GetData() []*PromptInfo { @@ -6323,7 +6461,7 @@ type ArtistInfo struct { func (x *ArtistInfo) Reset() { *x = ArtistInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[82] + mi := &file_pb_fiee_cast_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6335,7 +6473,7 @@ func (x *ArtistInfo) String() string { func (*ArtistInfo) ProtoMessage() {} func (x *ArtistInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[82] + mi := &file_pb_fiee_cast_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6348,7 +6486,7 @@ func (x *ArtistInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistInfo.ProtoReflect.Descriptor instead. func (*ArtistInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{82} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{84} } func (x *ArtistInfo) GetArtistUuid() string { @@ -6389,7 +6527,7 @@ type UpdateArtistReq struct { func (x *UpdateArtistReq) Reset() { *x = UpdateArtistReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[83] + mi := &file_pb_fiee_cast_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6401,7 +6539,7 @@ func (x *UpdateArtistReq) String() string { func (*UpdateArtistReq) ProtoMessage() {} func (x *UpdateArtistReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[83] + mi := &file_pb_fiee_cast_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6414,7 +6552,7 @@ func (x *UpdateArtistReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateArtistReq.ProtoReflect.Descriptor instead. func (*UpdateArtistReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{83} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{85} } func (x *UpdateArtistReq) GetArtistInfo() *ArtistInfo { @@ -6440,7 +6578,7 @@ type UpdateArtistResp struct { func (x *UpdateArtistResp) Reset() { *x = UpdateArtistResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[84] + mi := &file_pb_fiee_cast_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6452,7 +6590,7 @@ func (x *UpdateArtistResp) String() string { func (*UpdateArtistResp) ProtoMessage() {} func (x *UpdateArtistResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[84] + mi := &file_pb_fiee_cast_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6465,7 +6603,7 @@ func (x *UpdateArtistResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateArtistResp.ProtoReflect.Descriptor instead. func (*UpdateArtistResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{84} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{86} } func (x *UpdateArtistResp) GetArtistUuid() string { @@ -6484,7 +6622,7 @@ type GetArtistReq struct { func (x *GetArtistReq) Reset() { *x = GetArtistReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[85] + mi := &file_pb_fiee_cast_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6496,7 +6634,7 @@ func (x *GetArtistReq) String() string { func (*GetArtistReq) ProtoMessage() {} func (x *GetArtistReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[85] + mi := &file_pb_fiee_cast_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6509,7 +6647,7 @@ func (x *GetArtistReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtistReq.ProtoReflect.Descriptor instead. func (*GetArtistReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{85} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{87} } func (x *GetArtistReq) GetArtistUuid() string { @@ -6529,7 +6667,7 @@ type GetArtistResp struct { func (x *GetArtistResp) Reset() { *x = GetArtistResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[86] + mi := &file_pb_fiee_cast_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6541,7 +6679,7 @@ func (x *GetArtistResp) String() string { func (*GetArtistResp) ProtoMessage() {} func (x *GetArtistResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[86] + mi := &file_pb_fiee_cast_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6554,7 +6692,7 @@ func (x *GetArtistResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtistResp.ProtoReflect.Descriptor instead. func (*GetArtistResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{86} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{88} } func (x *GetArtistResp) GetArtistInfo() *ArtistInfo { @@ -6604,7 +6742,7 @@ type CreateWorkAnalysisReq struct { func (x *CreateWorkAnalysisReq) Reset() { *x = CreateWorkAnalysisReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[87] + mi := &file_pb_fiee_cast_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6616,7 +6754,7 @@ func (x *CreateWorkAnalysisReq) String() string { func (*CreateWorkAnalysisReq) ProtoMessage() {} func (x *CreateWorkAnalysisReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[87] + mi := &file_pb_fiee_cast_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6629,7 +6767,7 @@ func (x *CreateWorkAnalysisReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateWorkAnalysisReq.ProtoReflect.Descriptor instead. func (*CreateWorkAnalysisReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{87} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{89} } func (x *CreateWorkAnalysisReq) GetUuid() string { @@ -6809,7 +6947,7 @@ type CreateWorkAnalysisResp struct { func (x *CreateWorkAnalysisResp) Reset() { *x = CreateWorkAnalysisResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[88] + mi := &file_pb_fiee_cast_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6821,7 +6959,7 @@ func (x *CreateWorkAnalysisResp) String() string { func (*CreateWorkAnalysisResp) ProtoMessage() {} func (x *CreateWorkAnalysisResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[88] + mi := &file_pb_fiee_cast_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6834,7 +6972,7 @@ func (x *CreateWorkAnalysisResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateWorkAnalysisResp.ProtoReflect.Descriptor instead. func (*CreateWorkAnalysisResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{88} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{90} } func (x *CreateWorkAnalysisResp) GetUuid() string { @@ -6873,7 +7011,7 @@ type UpdateWorkAnalysisReq struct { func (x *UpdateWorkAnalysisReq) Reset() { *x = UpdateWorkAnalysisReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[89] + mi := &file_pb_fiee_cast_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6885,7 +7023,7 @@ func (x *UpdateWorkAnalysisReq) String() string { func (*UpdateWorkAnalysisReq) ProtoMessage() {} func (x *UpdateWorkAnalysisReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[89] + mi := &file_pb_fiee_cast_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6898,7 +7036,7 @@ func (x *UpdateWorkAnalysisReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkAnalysisReq.ProtoReflect.Descriptor instead. func (*UpdateWorkAnalysisReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{89} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{91} } func (x *UpdateWorkAnalysisReq) GetUuid() string { @@ -7064,7 +7202,7 @@ type UpdateWorkAnalysisStatusReq struct { func (x *UpdateWorkAnalysisStatusReq) Reset() { *x = UpdateWorkAnalysisStatusReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[90] + mi := &file_pb_fiee_cast_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7076,7 +7214,7 @@ func (x *UpdateWorkAnalysisStatusReq) String() string { func (*UpdateWorkAnalysisStatusReq) ProtoMessage() {} func (x *UpdateWorkAnalysisStatusReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[90] + mi := &file_pb_fiee_cast_proto_msgTypes[92] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7089,7 +7227,7 @@ func (x *UpdateWorkAnalysisStatusReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkAnalysisStatusReq.ProtoReflect.Descriptor instead. func (*UpdateWorkAnalysisStatusReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{90} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{92} } func (x *UpdateWorkAnalysisStatusReq) GetWorkAction() WorkActionENUM { @@ -7165,7 +7303,7 @@ type WorkAnalysisLogInfo struct { func (x *WorkAnalysisLogInfo) Reset() { *x = WorkAnalysisLogInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[91] + mi := &file_pb_fiee_cast_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7177,7 +7315,7 @@ func (x *WorkAnalysisLogInfo) String() string { func (*WorkAnalysisLogInfo) ProtoMessage() {} func (x *WorkAnalysisLogInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[91] + mi := &file_pb_fiee_cast_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7190,7 +7328,7 @@ func (x *WorkAnalysisLogInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisLogInfo.ProtoReflect.Descriptor instead. func (*WorkAnalysisLogInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{91} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{93} } func (x *WorkAnalysisLogInfo) GetWorkUuid() string { @@ -7273,7 +7411,7 @@ type WorkAnalysisFansSeries struct { func (x *WorkAnalysisFansSeries) Reset() { *x = WorkAnalysisFansSeries{} - mi := &file_pb_fiee_cast_proto_msgTypes[92] + mi := &file_pb_fiee_cast_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7285,7 +7423,7 @@ func (x *WorkAnalysisFansSeries) String() string { func (*WorkAnalysisFansSeries) ProtoMessage() {} func (x *WorkAnalysisFansSeries) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[92] + mi := &file_pb_fiee_cast_proto_msgTypes[94] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7298,7 +7436,7 @@ func (x *WorkAnalysisFansSeries) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisFansSeries.ProtoReflect.Descriptor instead. func (*WorkAnalysisFansSeries) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{92} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{94} } func (x *WorkAnalysisFansSeries) GetUuid() string { @@ -7374,7 +7512,7 @@ type WorkAnalysisViewsSeries struct { func (x *WorkAnalysisViewsSeries) Reset() { *x = WorkAnalysisViewsSeries{} - mi := &file_pb_fiee_cast_proto_msgTypes[93] + mi := &file_pb_fiee_cast_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7386,7 +7524,7 @@ func (x *WorkAnalysisViewsSeries) String() string { func (*WorkAnalysisViewsSeries) ProtoMessage() {} func (x *WorkAnalysisViewsSeries) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[93] + mi := &file_pb_fiee_cast_proto_msgTypes[95] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7399,7 +7537,7 @@ func (x *WorkAnalysisViewsSeries) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisViewsSeries.ProtoReflect.Descriptor instead. func (*WorkAnalysisViewsSeries) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{93} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{95} } func (x *WorkAnalysisViewsSeries) GetUuid() string { @@ -7475,7 +7613,7 @@ type WorkAnalysisLikesSeries struct { func (x *WorkAnalysisLikesSeries) Reset() { *x = WorkAnalysisLikesSeries{} - mi := &file_pb_fiee_cast_proto_msgTypes[94] + mi := &file_pb_fiee_cast_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7487,7 +7625,7 @@ func (x *WorkAnalysisLikesSeries) String() string { func (*WorkAnalysisLikesSeries) ProtoMessage() {} func (x *WorkAnalysisLikesSeries) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[94] + mi := &file_pb_fiee_cast_proto_msgTypes[96] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7500,7 +7638,7 @@ func (x *WorkAnalysisLikesSeries) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisLikesSeries.ProtoReflect.Descriptor instead. func (*WorkAnalysisLikesSeries) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{94} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{96} } func (x *WorkAnalysisLikesSeries) GetUuid() string { @@ -7576,7 +7714,7 @@ type WorkAnalysisCommentsSeries struct { func (x *WorkAnalysisCommentsSeries) Reset() { *x = WorkAnalysisCommentsSeries{} - mi := &file_pb_fiee_cast_proto_msgTypes[95] + mi := &file_pb_fiee_cast_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7588,7 +7726,7 @@ func (x *WorkAnalysisCommentsSeries) String() string { func (*WorkAnalysisCommentsSeries) ProtoMessage() {} func (x *WorkAnalysisCommentsSeries) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[95] + mi := &file_pb_fiee_cast_proto_msgTypes[97] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7601,7 +7739,7 @@ func (x *WorkAnalysisCommentsSeries) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisCommentsSeries.ProtoReflect.Descriptor instead. func (*WorkAnalysisCommentsSeries) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{95} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{97} } func (x *WorkAnalysisCommentsSeries) GetUuid() string { @@ -7677,7 +7815,7 @@ type WorkAnalysisSharesSeries struct { func (x *WorkAnalysisSharesSeries) Reset() { *x = WorkAnalysisSharesSeries{} - mi := &file_pb_fiee_cast_proto_msgTypes[96] + mi := &file_pb_fiee_cast_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7689,7 +7827,7 @@ func (x *WorkAnalysisSharesSeries) String() string { func (*WorkAnalysisSharesSeries) ProtoMessage() {} func (x *WorkAnalysisSharesSeries) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[96] + mi := &file_pb_fiee_cast_proto_msgTypes[98] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7702,7 +7840,7 @@ func (x *WorkAnalysisSharesSeries) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisSharesSeries.ProtoReflect.Descriptor instead. func (*WorkAnalysisSharesSeries) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{96} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{98} } func (x *WorkAnalysisSharesSeries) GetUuid() string { @@ -7774,7 +7912,7 @@ type WorkAnalysisTopCities struct { func (x *WorkAnalysisTopCities) Reset() { *x = WorkAnalysisTopCities{} - mi := &file_pb_fiee_cast_proto_msgTypes[97] + mi := &file_pb_fiee_cast_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7786,7 +7924,7 @@ func (x *WorkAnalysisTopCities) String() string { func (*WorkAnalysisTopCities) ProtoMessage() {} func (x *WorkAnalysisTopCities) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[97] + mi := &file_pb_fiee_cast_proto_msgTypes[99] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7799,7 +7937,7 @@ func (x *WorkAnalysisTopCities) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisTopCities.ProtoReflect.Descriptor instead. func (*WorkAnalysisTopCities) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{97} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{99} } func (x *WorkAnalysisTopCities) GetUuid() string { @@ -7843,7 +7981,7 @@ type WorkAnalysisMostActiveDay struct { func (x *WorkAnalysisMostActiveDay) Reset() { *x = WorkAnalysisMostActiveDay{} - mi := &file_pb_fiee_cast_proto_msgTypes[98] + mi := &file_pb_fiee_cast_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7855,7 +7993,7 @@ func (x *WorkAnalysisMostActiveDay) String() string { func (*WorkAnalysisMostActiveDay) ProtoMessage() {} func (x *WorkAnalysisMostActiveDay) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[98] + mi := &file_pb_fiee_cast_proto_msgTypes[100] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7868,7 +8006,7 @@ func (x *WorkAnalysisMostActiveDay) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisMostActiveDay.ProtoReflect.Descriptor instead. func (*WorkAnalysisMostActiveDay) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{98} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{100} } func (x *WorkAnalysisMostActiveDay) GetUuid() string { @@ -7912,7 +8050,7 @@ type WorkAnalysisBestPostTime struct { func (x *WorkAnalysisBestPostTime) Reset() { *x = WorkAnalysisBestPostTime{} - mi := &file_pb_fiee_cast_proto_msgTypes[99] + mi := &file_pb_fiee_cast_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7924,7 +8062,7 @@ func (x *WorkAnalysisBestPostTime) String() string { func (*WorkAnalysisBestPostTime) ProtoMessage() {} func (x *WorkAnalysisBestPostTime) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[99] + mi := &file_pb_fiee_cast_proto_msgTypes[101] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7937,7 +8075,7 @@ func (x *WorkAnalysisBestPostTime) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisBestPostTime.ProtoReflect.Descriptor instead. func (*WorkAnalysisBestPostTime) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{99} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{101} } func (x *WorkAnalysisBestPostTime) GetUuid() string { @@ -7982,7 +8120,7 @@ type WorkAnalysisExtra struct { func (x *WorkAnalysisExtra) Reset() { *x = WorkAnalysisExtra{} - mi := &file_pb_fiee_cast_proto_msgTypes[100] + mi := &file_pb_fiee_cast_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7994,7 +8132,7 @@ func (x *WorkAnalysisExtra) String() string { func (*WorkAnalysisExtra) ProtoMessage() {} func (x *WorkAnalysisExtra) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[100] + mi := &file_pb_fiee_cast_proto_msgTypes[102] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8007,7 +8145,7 @@ func (x *WorkAnalysisExtra) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisExtra.ProtoReflect.Descriptor instead. func (*WorkAnalysisExtra) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{100} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{102} } func (x *WorkAnalysisExtra) GetAnalysisUuid() string { @@ -8054,7 +8192,7 @@ type GetWorkAnalysisDetailReq struct { func (x *GetWorkAnalysisDetailReq) Reset() { *x = GetWorkAnalysisDetailReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[101] + mi := &file_pb_fiee_cast_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8066,7 +8204,7 @@ func (x *GetWorkAnalysisDetailReq) String() string { func (*GetWorkAnalysisDetailReq) ProtoMessage() {} func (x *GetWorkAnalysisDetailReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[101] + mi := &file_pb_fiee_cast_proto_msgTypes[103] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8079,7 +8217,7 @@ func (x *GetWorkAnalysisDetailReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWorkAnalysisDetailReq.ProtoReflect.Descriptor instead. func (*GetWorkAnalysisDetailReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{101} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{103} } func (x *GetWorkAnalysisDetailReq) GetUuid() string { @@ -8098,7 +8236,7 @@ type GetLatestWorkAnalysisReq struct { func (x *GetLatestWorkAnalysisReq) Reset() { *x = GetLatestWorkAnalysisReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[102] + mi := &file_pb_fiee_cast_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8110,7 +8248,7 @@ func (x *GetLatestWorkAnalysisReq) String() string { func (*GetLatestWorkAnalysisReq) ProtoMessage() {} func (x *GetLatestWorkAnalysisReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[102] + mi := &file_pb_fiee_cast_proto_msgTypes[104] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8123,7 +8261,7 @@ func (x *GetLatestWorkAnalysisReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetLatestWorkAnalysisReq.ProtoReflect.Descriptor instead. func (*GetLatestWorkAnalysisReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{102} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{104} } func (x *GetLatestWorkAnalysisReq) GetSubNum() string { @@ -8179,7 +8317,7 @@ type GetWorkAnalysisResp struct { func (x *GetWorkAnalysisResp) Reset() { *x = GetWorkAnalysisResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[103] + mi := &file_pb_fiee_cast_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8191,7 +8329,7 @@ func (x *GetWorkAnalysisResp) String() string { func (*GetWorkAnalysisResp) ProtoMessage() {} func (x *GetWorkAnalysisResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[103] + mi := &file_pb_fiee_cast_proto_msgTypes[105] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8204,7 +8342,7 @@ func (x *GetWorkAnalysisResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWorkAnalysisResp.ProtoReflect.Descriptor instead. func (*GetWorkAnalysisResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{103} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{105} } func (x *GetWorkAnalysisResp) GetUuid() string { @@ -8521,7 +8659,7 @@ type GetWorkAnalysisDetailResp struct { func (x *GetWorkAnalysisDetailResp) Reset() { *x = GetWorkAnalysisDetailResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[104] + mi := &file_pb_fiee_cast_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8533,7 +8671,7 @@ func (x *GetWorkAnalysisDetailResp) String() string { func (*GetWorkAnalysisDetailResp) ProtoMessage() {} func (x *GetWorkAnalysisDetailResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[104] + mi := &file_pb_fiee_cast_proto_msgTypes[106] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8546,7 +8684,7 @@ func (x *GetWorkAnalysisDetailResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWorkAnalysisDetailResp.ProtoReflect.Descriptor instead. func (*GetWorkAnalysisDetailResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{104} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{106} } func (x *GetWorkAnalysisDetailResp) GetUuid() string { @@ -8850,7 +8988,7 @@ type ListWorkAnalysisReq struct { func (x *ListWorkAnalysisReq) Reset() { *x = ListWorkAnalysisReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[105] + mi := &file_pb_fiee_cast_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8862,7 +9000,7 @@ func (x *ListWorkAnalysisReq) String() string { func (*ListWorkAnalysisReq) ProtoMessage() {} func (x *ListWorkAnalysisReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[105] + mi := &file_pb_fiee_cast_proto_msgTypes[107] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8875,7 +9013,7 @@ func (x *ListWorkAnalysisReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWorkAnalysisReq.ProtoReflect.Descriptor instead. func (*ListWorkAnalysisReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{105} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{107} } func (x *ListWorkAnalysisReq) GetUuidList() []string { @@ -8992,7 +9130,7 @@ type WorkAnalysisInfo struct { func (x *WorkAnalysisInfo) Reset() { *x = WorkAnalysisInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[106] + mi := &file_pb_fiee_cast_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9004,7 +9142,7 @@ func (x *WorkAnalysisInfo) String() string { func (*WorkAnalysisInfo) ProtoMessage() {} func (x *WorkAnalysisInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[106] + mi := &file_pb_fiee_cast_proto_msgTypes[108] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9017,7 +9155,7 @@ func (x *WorkAnalysisInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkAnalysisInfo.ProtoReflect.Descriptor instead. func (*WorkAnalysisInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{106} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{108} } func (x *WorkAnalysisInfo) GetUuid() string { @@ -9135,7 +9273,7 @@ type ListWorkAnalysisResp struct { func (x *ListWorkAnalysisResp) Reset() { *x = ListWorkAnalysisResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[107] + mi := &file_pb_fiee_cast_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9147,7 +9285,7 @@ func (x *ListWorkAnalysisResp) String() string { func (*ListWorkAnalysisResp) ProtoMessage() {} func (x *ListWorkAnalysisResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[107] + mi := &file_pb_fiee_cast_proto_msgTypes[109] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9160,7 +9298,7 @@ func (x *ListWorkAnalysisResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWorkAnalysisResp.ProtoReflect.Descriptor instead. func (*ListWorkAnalysisResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{107} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{109} } func (x *ListWorkAnalysisResp) GetData() []*WorkAnalysisInfo { @@ -9186,7 +9324,7 @@ type DeleteWorkAnalysisReq struct { func (x *DeleteWorkAnalysisReq) Reset() { *x = DeleteWorkAnalysisReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[108] + mi := &file_pb_fiee_cast_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9198,7 +9336,7 @@ func (x *DeleteWorkAnalysisReq) String() string { func (*DeleteWorkAnalysisReq) ProtoMessage() {} func (x *DeleteWorkAnalysisReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[108] + mi := &file_pb_fiee_cast_proto_msgTypes[110] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9211,7 +9349,7 @@ func (x *DeleteWorkAnalysisReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteWorkAnalysisReq.ProtoReflect.Descriptor instead. func (*DeleteWorkAnalysisReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{108} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{110} } func (x *DeleteWorkAnalysisReq) GetUuid() string { @@ -9238,7 +9376,7 @@ type ArtistDataListReq struct { func (x *ArtistDataListReq) Reset() { *x = ArtistDataListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[109] + mi := &file_pb_fiee_cast_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9250,7 +9388,7 @@ func (x *ArtistDataListReq) String() string { func (*ArtistDataListReq) ProtoMessage() {} func (x *ArtistDataListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[109] + mi := &file_pb_fiee_cast_proto_msgTypes[111] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9263,7 +9401,7 @@ func (x *ArtistDataListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistDataListReq.ProtoReflect.Descriptor instead. func (*ArtistDataListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{109} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{111} } func (x *ArtistDataListReq) GetArtistVal() string { @@ -9350,7 +9488,7 @@ type ArtistDataRespItem struct { func (x *ArtistDataRespItem) Reset() { *x = ArtistDataRespItem{} - mi := &file_pb_fiee_cast_proto_msgTypes[110] + mi := &file_pb_fiee_cast_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9362,7 +9500,7 @@ func (x *ArtistDataRespItem) String() string { func (*ArtistDataRespItem) ProtoMessage() {} func (x *ArtistDataRespItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[110] + mi := &file_pb_fiee_cast_proto_msgTypes[112] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9375,7 +9513,7 @@ func (x *ArtistDataRespItem) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistDataRespItem.ProtoReflect.Descriptor instead. func (*ArtistDataRespItem) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{110} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{112} } func (x *ArtistDataRespItem) GetArtistName() string { @@ -9522,7 +9660,7 @@ type ArtistDataListResp struct { func (x *ArtistDataListResp) Reset() { *x = ArtistDataListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[111] + mi := &file_pb_fiee_cast_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9534,7 +9672,7 @@ func (x *ArtistDataListResp) String() string { func (*ArtistDataListResp) ProtoMessage() {} func (x *ArtistDataListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[111] + mi := &file_pb_fiee_cast_proto_msgTypes[113] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9547,7 +9685,7 @@ func (x *ArtistDataListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistDataListResp.ProtoReflect.Descriptor instead. func (*ArtistDataListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{111} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{113} } func (x *ArtistDataListResp) GetData() []*ArtistDataRespItem { @@ -9578,7 +9716,7 @@ type MediaDataListReq struct { func (x *MediaDataListReq) Reset() { *x = MediaDataListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[112] + mi := &file_pb_fiee_cast_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9590,7 +9728,7 @@ func (x *MediaDataListReq) String() string { func (*MediaDataListReq) ProtoMessage() {} func (x *MediaDataListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[112] + mi := &file_pb_fiee_cast_proto_msgTypes[114] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9603,7 +9741,7 @@ func (x *MediaDataListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaDataListReq.ProtoReflect.Descriptor instead. func (*MediaDataListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{112} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{114} } func (x *MediaDataListReq) GetArtistVal() string { @@ -9665,7 +9803,7 @@ type MediaDataListItem struct { func (x *MediaDataListItem) Reset() { *x = MediaDataListItem{} - mi := &file_pb_fiee_cast_proto_msgTypes[113] + mi := &file_pb_fiee_cast_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9677,7 +9815,7 @@ func (x *MediaDataListItem) String() string { func (*MediaDataListItem) ProtoMessage() {} func (x *MediaDataListItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[113] + mi := &file_pb_fiee_cast_proto_msgTypes[115] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9690,7 +9828,7 @@ func (x *MediaDataListItem) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaDataListItem.ProtoReflect.Descriptor instead. func (*MediaDataListItem) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{113} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{115} } func (x *MediaDataListItem) GetArtistName() string { @@ -9809,7 +9947,7 @@ type MediaDataListResp struct { func (x *MediaDataListResp) Reset() { *x = MediaDataListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[114] + mi := &file_pb_fiee_cast_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9821,7 +9959,7 @@ func (x *MediaDataListResp) String() string { func (*MediaDataListResp) ProtoMessage() {} func (x *MediaDataListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[114] + mi := &file_pb_fiee_cast_proto_msgTypes[116] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9834,7 +9972,7 @@ func (x *MediaDataListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaDataListResp.ProtoReflect.Descriptor instead. func (*MediaDataListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{114} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{116} } func (x *MediaDataListResp) GetData() []*MediaDataListItem { @@ -9861,7 +9999,7 @@ type DataOverviewReq struct { func (x *DataOverviewReq) Reset() { *x = DataOverviewReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[115] + mi := &file_pb_fiee_cast_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9873,7 +10011,7 @@ func (x *DataOverviewReq) String() string { func (*DataOverviewReq) ProtoMessage() {} func (x *DataOverviewReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[115] + mi := &file_pb_fiee_cast_proto_msgTypes[117] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9886,7 +10024,7 @@ func (x *DataOverviewReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DataOverviewReq.ProtoReflect.Descriptor instead. func (*DataOverviewReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{115} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{117} } func (x *DataOverviewReq) GetDate() string { @@ -9925,7 +10063,7 @@ type DataOverviewResp struct { func (x *DataOverviewResp) Reset() { *x = DataOverviewResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[116] + mi := &file_pb_fiee_cast_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9937,7 +10075,7 @@ func (x *DataOverviewResp) String() string { func (*DataOverviewResp) ProtoMessage() {} func (x *DataOverviewResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[116] + mi := &file_pb_fiee_cast_proto_msgTypes[118] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9950,7 +10088,7 @@ func (x *DataOverviewResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DataOverviewResp.ProtoReflect.Descriptor instead. func (*DataOverviewResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{116} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{118} } func (x *DataOverviewResp) GetAccountCount() int64 { @@ -10108,7 +10246,7 @@ type ArtistMetricsSeriesReq struct { func (x *ArtistMetricsSeriesReq) Reset() { *x = ArtistMetricsSeriesReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[117] + mi := &file_pb_fiee_cast_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10120,7 +10258,7 @@ func (x *ArtistMetricsSeriesReq) String() string { func (*ArtistMetricsSeriesReq) ProtoMessage() {} func (x *ArtistMetricsSeriesReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[117] + mi := &file_pb_fiee_cast_proto_msgTypes[119] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10133,7 +10271,7 @@ func (x *ArtistMetricsSeriesReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistMetricsSeriesReq.ProtoReflect.Descriptor instead. func (*ArtistMetricsSeriesReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{117} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{119} } func (x *ArtistMetricsSeriesReq) GetArtistUUID() string { @@ -10194,7 +10332,7 @@ type ArtistMetricsSeriesResp struct { func (x *ArtistMetricsSeriesResp) Reset() { *x = ArtistMetricsSeriesResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[118] + mi := &file_pb_fiee_cast_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10206,7 +10344,7 @@ func (x *ArtistMetricsSeriesResp) String() string { func (*ArtistMetricsSeriesResp) ProtoMessage() {} func (x *ArtistMetricsSeriesResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[118] + mi := &file_pb_fiee_cast_proto_msgTypes[120] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10219,7 +10357,7 @@ func (x *ArtistMetricsSeriesResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistMetricsSeriesResp.ProtoReflect.Descriptor instead. func (*ArtistMetricsSeriesResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{118} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{120} } func (x *ArtistMetricsSeriesResp) GetFansSeries() *WorkAnalysisFansSeries { @@ -10283,7 +10421,7 @@ type ArtistMetricsDailyWindowReq struct { func (x *ArtistMetricsDailyWindowReq) Reset() { *x = ArtistMetricsDailyWindowReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[119] + mi := &file_pb_fiee_cast_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10295,7 +10433,7 @@ func (x *ArtistMetricsDailyWindowReq) String() string { func (*ArtistMetricsDailyWindowReq) ProtoMessage() {} func (x *ArtistMetricsDailyWindowReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[119] + mi := &file_pb_fiee_cast_proto_msgTypes[121] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10308,7 +10446,7 @@ func (x *ArtistMetricsDailyWindowReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistMetricsDailyWindowReq.ProtoReflect.Descriptor instead. func (*ArtistMetricsDailyWindowReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{119} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{121} } func (x *ArtistMetricsDailyWindowReq) GetArtistUUID() string { @@ -10343,7 +10481,7 @@ type SimplePoint struct { func (x *SimplePoint) Reset() { *x = SimplePoint{} - mi := &file_pb_fiee_cast_proto_msgTypes[120] + mi := &file_pb_fiee_cast_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10355,7 +10493,7 @@ func (x *SimplePoint) String() string { func (*SimplePoint) ProtoMessage() {} func (x *SimplePoint) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[120] + mi := &file_pb_fiee_cast_proto_msgTypes[122] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10368,7 +10506,7 @@ func (x *SimplePoint) ProtoReflect() protoreflect.Message { // Deprecated: Use SimplePoint.ProtoReflect.Descriptor instead. func (*SimplePoint) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{120} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{122} } func (x *SimplePoint) GetDate() int32 { @@ -10396,7 +10534,7 @@ type BestPostTimePoint struct { func (x *BestPostTimePoint) Reset() { *x = BestPostTimePoint{} - mi := &file_pb_fiee_cast_proto_msgTypes[121] + mi := &file_pb_fiee_cast_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10408,7 +10546,7 @@ func (x *BestPostTimePoint) String() string { func (*BestPostTimePoint) ProtoMessage() {} func (x *BestPostTimePoint) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[121] + mi := &file_pb_fiee_cast_proto_msgTypes[123] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10421,7 +10559,7 @@ func (x *BestPostTimePoint) ProtoReflect() protoreflect.Message { // Deprecated: Use BestPostTimePoint.ProtoReflect.Descriptor instead. func (*BestPostTimePoint) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{121} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{123} } func (x *BestPostTimePoint) GetTimePoint() string { @@ -10449,7 +10587,7 @@ type MostActiveDayPoint struct { func (x *MostActiveDayPoint) Reset() { *x = MostActiveDayPoint{} - mi := &file_pb_fiee_cast_proto_msgTypes[122] + mi := &file_pb_fiee_cast_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10461,7 +10599,7 @@ func (x *MostActiveDayPoint) String() string { func (*MostActiveDayPoint) ProtoMessage() {} func (x *MostActiveDayPoint) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[122] + mi := &file_pb_fiee_cast_proto_msgTypes[124] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10474,7 +10612,7 @@ func (x *MostActiveDayPoint) ProtoReflect() protoreflect.Message { // Deprecated: Use MostActiveDayPoint.ProtoReflect.Descriptor instead. func (*MostActiveDayPoint) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{122} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{124} } func (x *MostActiveDayPoint) GetDay() int32 { @@ -10512,7 +10650,7 @@ type ArtistMetricsDailyWindowResp struct { func (x *ArtistMetricsDailyWindowResp) Reset() { *x = ArtistMetricsDailyWindowResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[123] + mi := &file_pb_fiee_cast_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10524,7 +10662,7 @@ func (x *ArtistMetricsDailyWindowResp) String() string { func (*ArtistMetricsDailyWindowResp) ProtoMessage() {} func (x *ArtistMetricsDailyWindowResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[123] + mi := &file_pb_fiee_cast_proto_msgTypes[125] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10537,7 +10675,7 @@ func (x *ArtistMetricsDailyWindowResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistMetricsDailyWindowResp.ProtoReflect.Descriptor instead. func (*ArtistMetricsDailyWindowResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{123} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{125} } func (x *ArtistMetricsDailyWindowResp) GetFansCount() int64 { @@ -10636,7 +10774,7 @@ type TobeConfirmedListReq struct { func (x *TobeConfirmedListReq) Reset() { *x = TobeConfirmedListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[124] + mi := &file_pb_fiee_cast_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10648,7 +10786,7 @@ func (x *TobeConfirmedListReq) String() string { func (*TobeConfirmedListReq) ProtoMessage() {} func (x *TobeConfirmedListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[124] + mi := &file_pb_fiee_cast_proto_msgTypes[126] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10661,7 +10799,7 @@ func (x *TobeConfirmedListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use TobeConfirmedListReq.ProtoReflect.Descriptor instead. func (*TobeConfirmedListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{124} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{126} } func (x *TobeConfirmedListReq) GetArtistUuid() string { @@ -10710,7 +10848,7 @@ type TobeConfirmedItem struct { func (x *TobeConfirmedItem) Reset() { *x = TobeConfirmedItem{} - mi := &file_pb_fiee_cast_proto_msgTypes[125] + mi := &file_pb_fiee_cast_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10722,7 +10860,7 @@ func (x *TobeConfirmedItem) String() string { func (*TobeConfirmedItem) ProtoMessage() {} func (x *TobeConfirmedItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[125] + mi := &file_pb_fiee_cast_proto_msgTypes[127] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10735,7 +10873,7 @@ func (x *TobeConfirmedItem) ProtoReflect() protoreflect.Message { // Deprecated: Use TobeConfirmedItem.ProtoReflect.Descriptor instead. func (*TobeConfirmedItem) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{125} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{127} } func (x *TobeConfirmedItem) GetUuid() string { @@ -10861,7 +10999,7 @@ type TobeConfirmedListResp struct { func (x *TobeConfirmedListResp) Reset() { *x = TobeConfirmedListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[126] + mi := &file_pb_fiee_cast_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10873,7 +11011,7 @@ func (x *TobeConfirmedListResp) String() string { func (*TobeConfirmedListResp) ProtoMessage() {} func (x *TobeConfirmedListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[126] + mi := &file_pb_fiee_cast_proto_msgTypes[128] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10886,7 +11024,7 @@ func (x *TobeConfirmedListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use TobeConfirmedListResp.ProtoReflect.Descriptor instead. func (*TobeConfirmedListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{126} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{128} } func (x *TobeConfirmedListResp) GetData() []*TobeConfirmedItem { @@ -10913,7 +11051,7 @@ type UpdateWorkAnalysisApprovalIDReq struct { func (x *UpdateWorkAnalysisApprovalIDReq) Reset() { *x = UpdateWorkAnalysisApprovalIDReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[127] + mi := &file_pb_fiee_cast_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10925,7 +11063,7 @@ func (x *UpdateWorkAnalysisApprovalIDReq) String() string { func (*UpdateWorkAnalysisApprovalIDReq) ProtoMessage() {} func (x *UpdateWorkAnalysisApprovalIDReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[127] + mi := &file_pb_fiee_cast_proto_msgTypes[129] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10938,7 +11076,7 @@ func (x *UpdateWorkAnalysisApprovalIDReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkAnalysisApprovalIDReq.ProtoReflect.Descriptor instead. func (*UpdateWorkAnalysisApprovalIDReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{127} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{129} } func (x *UpdateWorkAnalysisApprovalIDReq) GetUuid() string { @@ -10983,7 +11121,7 @@ type MediaMetricsDailyItem struct { func (x *MediaMetricsDailyItem) Reset() { *x = MediaMetricsDailyItem{} - mi := &file_pb_fiee_cast_proto_msgTypes[128] + mi := &file_pb_fiee_cast_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10995,7 +11133,7 @@ func (x *MediaMetricsDailyItem) String() string { func (*MediaMetricsDailyItem) ProtoMessage() {} func (x *MediaMetricsDailyItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[128] + mi := &file_pb_fiee_cast_proto_msgTypes[130] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11008,7 +11146,7 @@ func (x *MediaMetricsDailyItem) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaMetricsDailyItem.ProtoReflect.Descriptor instead. func (*MediaMetricsDailyItem) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{128} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{130} } func (x *MediaMetricsDailyItem) GetUuid() string { @@ -11154,7 +11292,7 @@ type UpsertMediaMetricsDailyBatchReq struct { func (x *UpsertMediaMetricsDailyBatchReq) Reset() { *x = UpsertMediaMetricsDailyBatchReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[129] + mi := &file_pb_fiee_cast_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11166,7 +11304,7 @@ func (x *UpsertMediaMetricsDailyBatchReq) String() string { func (*UpsertMediaMetricsDailyBatchReq) ProtoMessage() {} func (x *UpsertMediaMetricsDailyBatchReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[129] + mi := &file_pb_fiee_cast_proto_msgTypes[131] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11179,7 +11317,7 @@ func (x *UpsertMediaMetricsDailyBatchReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertMediaMetricsDailyBatchReq.ProtoReflect.Descriptor instead. func (*UpsertMediaMetricsDailyBatchReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{129} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{131} } func (x *UpsertMediaMetricsDailyBatchReq) GetData() []*MediaMetricsDailyItem { @@ -11199,7 +11337,7 @@ type UpsertMediaMetricsDailyBatchResp struct { func (x *UpsertMediaMetricsDailyBatchResp) Reset() { *x = UpsertMediaMetricsDailyBatchResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[130] + mi := &file_pb_fiee_cast_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11211,7 +11349,7 @@ func (x *UpsertMediaMetricsDailyBatchResp) String() string { func (*UpsertMediaMetricsDailyBatchResp) ProtoMessage() {} func (x *UpsertMediaMetricsDailyBatchResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[130] + mi := &file_pb_fiee_cast_proto_msgTypes[132] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11224,7 +11362,7 @@ func (x *UpsertMediaMetricsDailyBatchResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertMediaMetricsDailyBatchResp.ProtoReflect.Descriptor instead. func (*UpsertMediaMetricsDailyBatchResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{130} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{132} } func (x *UpsertMediaMetricsDailyBatchResp) GetSuccess() bool { @@ -11261,7 +11399,7 @@ type WorkMetricsDailyItem struct { func (x *WorkMetricsDailyItem) Reset() { *x = WorkMetricsDailyItem{} - mi := &file_pb_fiee_cast_proto_msgTypes[131] + mi := &file_pb_fiee_cast_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11273,7 +11411,7 @@ func (x *WorkMetricsDailyItem) String() string { func (*WorkMetricsDailyItem) ProtoMessage() {} func (x *WorkMetricsDailyItem) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[131] + mi := &file_pb_fiee_cast_proto_msgTypes[133] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11286,7 +11424,7 @@ func (x *WorkMetricsDailyItem) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkMetricsDailyItem.ProtoReflect.Descriptor instead. func (*WorkMetricsDailyItem) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{131} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{133} } func (x *WorkMetricsDailyItem) GetUuid() string { @@ -11425,7 +11563,7 @@ type UpsertWorkMetricsDailyBatchReq struct { func (x *UpsertWorkMetricsDailyBatchReq) Reset() { *x = UpsertWorkMetricsDailyBatchReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[132] + mi := &file_pb_fiee_cast_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11437,7 +11575,7 @@ func (x *UpsertWorkMetricsDailyBatchReq) String() string { func (*UpsertWorkMetricsDailyBatchReq) ProtoMessage() {} func (x *UpsertWorkMetricsDailyBatchReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[132] + mi := &file_pb_fiee_cast_proto_msgTypes[134] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11450,7 +11588,7 @@ func (x *UpsertWorkMetricsDailyBatchReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertWorkMetricsDailyBatchReq.ProtoReflect.Descriptor instead. func (*UpsertWorkMetricsDailyBatchReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{132} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{134} } func (x *UpsertWorkMetricsDailyBatchReq) GetData() []*WorkMetricsDailyItem { @@ -11470,7 +11608,7 @@ type UpsertWorkMetricsDailyBatchResp struct { func (x *UpsertWorkMetricsDailyBatchResp) Reset() { *x = UpsertWorkMetricsDailyBatchResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[133] + mi := &file_pb_fiee_cast_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11482,7 +11620,7 @@ func (x *UpsertWorkMetricsDailyBatchResp) String() string { func (*UpsertWorkMetricsDailyBatchResp) ProtoMessage() {} func (x *UpsertWorkMetricsDailyBatchResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[133] + mi := &file_pb_fiee_cast_proto_msgTypes[135] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11495,7 +11633,7 @@ func (x *UpsertWorkMetricsDailyBatchResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertWorkMetricsDailyBatchResp.ProtoReflect.Descriptor instead. func (*UpsertWorkMetricsDailyBatchResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{133} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{135} } func (x *UpsertWorkMetricsDailyBatchResp) GetSuccess() bool { @@ -11519,7 +11657,7 @@ type GetArtistAyrShareInfoReq struct { func (x *GetArtistAyrShareInfoReq) Reset() { *x = GetArtistAyrShareInfoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[134] + mi := &file_pb_fiee_cast_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11531,7 +11669,7 @@ func (x *GetArtistAyrShareInfoReq) String() string { func (*GetArtistAyrShareInfoReq) ProtoMessage() {} func (x *GetArtistAyrShareInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[134] + mi := &file_pb_fiee_cast_proto_msgTypes[136] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11544,7 +11682,7 @@ func (x *GetArtistAyrShareInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtistAyrShareInfoReq.ProtoReflect.Descriptor instead. func (*GetArtistAyrShareInfoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{134} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{136} } func (x *GetArtistAyrShareInfoReq) GetArtistUuid() string { @@ -11600,7 +11738,7 @@ type ArtistAyrShareInfo struct { func (x *ArtistAyrShareInfo) Reset() { *x = ArtistAyrShareInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[135] + mi := &file_pb_fiee_cast_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11612,7 +11750,7 @@ func (x *ArtistAyrShareInfo) String() string { func (*ArtistAyrShareInfo) ProtoMessage() {} func (x *ArtistAyrShareInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[135] + mi := &file_pb_fiee_cast_proto_msgTypes[137] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11625,7 +11763,7 @@ func (x *ArtistAyrShareInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtistAyrShareInfo.ProtoReflect.Descriptor instead. func (*ArtistAyrShareInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{135} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{137} } func (x *ArtistAyrShareInfo) GetUuid() string { @@ -11702,7 +11840,7 @@ type GetArtistAyrShareInfoResp struct { func (x *GetArtistAyrShareInfoResp) Reset() { *x = GetArtistAyrShareInfoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[136] + mi := &file_pb_fiee_cast_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11714,7 +11852,7 @@ func (x *GetArtistAyrShareInfoResp) String() string { func (*GetArtistAyrShareInfoResp) ProtoMessage() {} func (x *GetArtistAyrShareInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[136] + mi := &file_pb_fiee_cast_proto_msgTypes[138] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11727,7 +11865,7 @@ func (x *GetArtistAyrShareInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetArtistAyrShareInfoResp.ProtoReflect.Descriptor instead. func (*GetArtistAyrShareInfoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{136} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{138} } func (x *GetArtistAyrShareInfoResp) GetData() []*ArtistAyrShareInfo { @@ -11744,6 +11882,120 @@ func (x *GetArtistAyrShareInfoResp) GetCount() int64 { return 0 } +// 根据平台ID查询关联的AyrShare信息请求 +type GetArtistAyrShareInfoByPlatformIDsReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + PlatformIDs []uint32 `protobuf:"varint,1,rep,packed,name=platformIDs,proto3" json:"platformIDs"` // 平台ID列表(1 抖音 2 YouTube 3 ins 4.dm 5.bulesky) + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page"` // 页码 + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"` // 每页数量 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetArtistAyrShareInfoByPlatformIDsReq) Reset() { + *x = GetArtistAyrShareInfoByPlatformIDsReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[139] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetArtistAyrShareInfoByPlatformIDsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtistAyrShareInfoByPlatformIDsReq) ProtoMessage() {} + +func (x *GetArtistAyrShareInfoByPlatformIDsReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[139] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetArtistAyrShareInfoByPlatformIDsReq.ProtoReflect.Descriptor instead. +func (*GetArtistAyrShareInfoByPlatformIDsReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{139} +} + +func (x *GetArtistAyrShareInfoByPlatformIDsReq) GetPlatformIDs() []uint32 { + if x != nil { + return x.PlatformIDs + } + return nil +} + +func (x *GetArtistAyrShareInfoByPlatformIDsReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetArtistAyrShareInfoByPlatformIDsReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +// 根据平台ID查询关联的AyrShare信息响应 +type GetArtistAyrShareInfoByPlatformIDsResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []*ArtistAyrShareInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` // 艺人AyrShare信息列表 + Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count"` // 总数 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetArtistAyrShareInfoByPlatformIDsResp) Reset() { + *x = GetArtistAyrShareInfoByPlatformIDsResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetArtistAyrShareInfoByPlatformIDsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtistAyrShareInfoByPlatformIDsResp) ProtoMessage() {} + +func (x *GetArtistAyrShareInfoByPlatformIDsResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[140] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetArtistAyrShareInfoByPlatformIDsResp.ProtoReflect.Descriptor instead. +func (*GetArtistAyrShareInfoByPlatformIDsResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{140} +} + +func (x *GetArtistAyrShareInfoByPlatformIDsResp) GetData() []*ArtistAyrShareInfo { + if x != nil { + return x.Data + } + return nil +} + +func (x *GetArtistAyrShareInfoByPlatformIDsResp) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + // 获取作品平台信息列表请求 type ListWorkPlatformInfoReq struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -11757,7 +12009,7 @@ type ListWorkPlatformInfoReq struct { func (x *ListWorkPlatformInfoReq) Reset() { *x = ListWorkPlatformInfoReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[137] + mi := &file_pb_fiee_cast_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11769,7 +12021,7 @@ func (x *ListWorkPlatformInfoReq) String() string { func (*ListWorkPlatformInfoReq) ProtoMessage() {} func (x *ListWorkPlatformInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[137] + mi := &file_pb_fiee_cast_proto_msgTypes[141] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11782,7 +12034,7 @@ func (x *ListWorkPlatformInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWorkPlatformInfoReq.ProtoReflect.Descriptor instead. func (*ListWorkPlatformInfoReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{137} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{141} } func (x *ListWorkPlatformInfoReq) GetPlatformIDs() []uint32 { @@ -11838,7 +12090,7 @@ type WorkPlatformInfo struct { func (x *WorkPlatformInfo) Reset() { *x = WorkPlatformInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[138] + mi := &file_pb_fiee_cast_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11850,7 +12102,7 @@ func (x *WorkPlatformInfo) String() string { func (*WorkPlatformInfo) ProtoMessage() {} func (x *WorkPlatformInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[138] + mi := &file_pb_fiee_cast_proto_msgTypes[142] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11863,7 +12115,7 @@ func (x *WorkPlatformInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkPlatformInfo.ProtoReflect.Descriptor instead. func (*WorkPlatformInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{138} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{142} } func (x *WorkPlatformInfo) GetUuid() string { @@ -11982,7 +12234,7 @@ type ListWorkPlatformInfoResp struct { func (x *ListWorkPlatformInfoResp) Reset() { *x = ListWorkPlatformInfoResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[139] + mi := &file_pb_fiee_cast_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11994,7 +12246,7 @@ func (x *ListWorkPlatformInfoResp) String() string { func (*ListWorkPlatformInfoResp) ProtoMessage() {} func (x *ListWorkPlatformInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[139] + mi := &file_pb_fiee_cast_proto_msgTypes[143] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12007,7 +12259,7 @@ func (x *ListWorkPlatformInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWorkPlatformInfoResp.ProtoReflect.Descriptor instead. func (*ListWorkPlatformInfoResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{139} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{143} } func (x *ListWorkPlatformInfoResp) GetData() []*WorkPlatformInfo { @@ -12038,7 +12290,7 @@ type ListMediaMetricsDailyReq struct { func (x *ListMediaMetricsDailyReq) Reset() { *x = ListMediaMetricsDailyReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[140] + mi := &file_pb_fiee_cast_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12050,7 +12302,7 @@ func (x *ListMediaMetricsDailyReq) String() string { func (*ListMediaMetricsDailyReq) ProtoMessage() {} func (x *ListMediaMetricsDailyReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[140] + mi := &file_pb_fiee_cast_proto_msgTypes[144] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12063,7 +12315,7 @@ func (x *ListMediaMetricsDailyReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMediaMetricsDailyReq.ProtoReflect.Descriptor instead. func (*ListMediaMetricsDailyReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{140} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{144} } func (x *ListMediaMetricsDailyReq) GetIsSuccess() uint32 { @@ -12131,7 +12383,7 @@ type MediaMetricsDailyInfo struct { func (x *MediaMetricsDailyInfo) Reset() { *x = MediaMetricsDailyInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[141] + mi := &file_pb_fiee_cast_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12143,7 +12395,7 @@ func (x *MediaMetricsDailyInfo) String() string { func (*MediaMetricsDailyInfo) ProtoMessage() {} func (x *MediaMetricsDailyInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[141] + mi := &file_pb_fiee_cast_proto_msgTypes[145] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12156,7 +12408,7 @@ func (x *MediaMetricsDailyInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaMetricsDailyInfo.ProtoReflect.Descriptor instead. func (*MediaMetricsDailyInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{141} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{145} } func (x *MediaMetricsDailyInfo) GetUuid() string { @@ -12317,7 +12569,7 @@ type ListMediaMetricsDailyResp struct { func (x *ListMediaMetricsDailyResp) Reset() { *x = ListMediaMetricsDailyResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[142] + mi := &file_pb_fiee_cast_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12329,7 +12581,7 @@ func (x *ListMediaMetricsDailyResp) String() string { func (*ListMediaMetricsDailyResp) ProtoMessage() {} func (x *ListMediaMetricsDailyResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[142] + mi := &file_pb_fiee_cast_proto_msgTypes[146] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12342,7 +12594,7 @@ func (x *ListMediaMetricsDailyResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMediaMetricsDailyResp.ProtoReflect.Descriptor instead. func (*ListMediaMetricsDailyResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{142} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{146} } func (x *ListMediaMetricsDailyResp) GetData() []*MediaMetricsDailyInfo { @@ -12373,7 +12625,7 @@ type ListWorkMetricsDailyReq struct { func (x *ListWorkMetricsDailyReq) Reset() { *x = ListWorkMetricsDailyReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[143] + mi := &file_pb_fiee_cast_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12385,7 +12637,7 @@ func (x *ListWorkMetricsDailyReq) String() string { func (*ListWorkMetricsDailyReq) ProtoMessage() {} func (x *ListWorkMetricsDailyReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[143] + mi := &file_pb_fiee_cast_proto_msgTypes[147] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12398,7 +12650,7 @@ func (x *ListWorkMetricsDailyReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWorkMetricsDailyReq.ProtoReflect.Descriptor instead. func (*ListWorkMetricsDailyReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{143} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{147} } func (x *ListWorkMetricsDailyReq) GetIsSuccess() uint32 { @@ -12465,7 +12717,7 @@ type WorkMetricsDailyInfo struct { func (x *WorkMetricsDailyInfo) Reset() { *x = WorkMetricsDailyInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[144] + mi := &file_pb_fiee_cast_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12477,7 +12729,7 @@ func (x *WorkMetricsDailyInfo) String() string { func (*WorkMetricsDailyInfo) ProtoMessage() {} func (x *WorkMetricsDailyInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[144] + mi := &file_pb_fiee_cast_proto_msgTypes[148] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12490,7 +12742,7 @@ func (x *WorkMetricsDailyInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkMetricsDailyInfo.ProtoReflect.Descriptor instead. func (*WorkMetricsDailyInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{144} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{148} } func (x *WorkMetricsDailyInfo) GetUuid() string { @@ -12644,7 +12896,7 @@ type ListWorkMetricsDailyResp struct { func (x *ListWorkMetricsDailyResp) Reset() { *x = ListWorkMetricsDailyResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[145] + mi := &file_pb_fiee_cast_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12656,7 +12908,7 @@ func (x *ListWorkMetricsDailyResp) String() string { func (*ListWorkMetricsDailyResp) ProtoMessage() {} func (x *ListWorkMetricsDailyResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[145] + mi := &file_pb_fiee_cast_proto_msgTypes[149] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12669,7 +12921,7 @@ func (x *ListWorkMetricsDailyResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWorkMetricsDailyResp.ProtoReflect.Descriptor instead. func (*ListWorkMetricsDailyResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{145} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{149} } func (x *ListWorkMetricsDailyResp) GetData() []*WorkMetricsDailyInfo { @@ -12701,7 +12953,7 @@ type UpsertTaskListReq struct { func (x *UpsertTaskListReq) Reset() { *x = UpsertTaskListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[146] + mi := &file_pb_fiee_cast_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12713,7 +12965,7 @@ func (x *UpsertTaskListReq) String() string { func (*UpsertTaskListReq) ProtoMessage() {} func (x *UpsertTaskListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[146] + mi := &file_pb_fiee_cast_proto_msgTypes[150] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12726,7 +12978,7 @@ func (x *UpsertTaskListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertTaskListReq.ProtoReflect.Descriptor instead. func (*UpsertTaskListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{146} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{150} } func (x *UpsertTaskListReq) GetUuid() string { @@ -12782,7 +13034,7 @@ type UpsertTaskListResp struct { func (x *UpsertTaskListResp) Reset() { *x = UpsertTaskListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[147] + mi := &file_pb_fiee_cast_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12794,7 +13046,7 @@ func (x *UpsertTaskListResp) String() string { func (*UpsertTaskListResp) ProtoMessage() {} func (x *UpsertTaskListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[147] + mi := &file_pb_fiee_cast_proto_msgTypes[151] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12807,7 +13059,7 @@ func (x *UpsertTaskListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertTaskListResp.ProtoReflect.Descriptor instead. func (*UpsertTaskListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{147} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{151} } func (x *UpsertTaskListResp) GetUuid() string { @@ -12834,7 +13086,7 @@ type GetTaskListReq struct { func (x *GetTaskListReq) Reset() { *x = GetTaskListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[148] + mi := &file_pb_fiee_cast_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12846,7 +13098,7 @@ func (x *GetTaskListReq) String() string { func (*GetTaskListReq) ProtoMessage() {} func (x *GetTaskListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[148] + mi := &file_pb_fiee_cast_proto_msgTypes[152] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12859,7 +13111,7 @@ func (x *GetTaskListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTaskListReq.ProtoReflect.Descriptor instead. func (*GetTaskListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{148} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{152} } func (x *GetTaskListReq) GetUuid() string { @@ -12886,7 +13138,7 @@ type TaskListInfo struct { func (x *TaskListInfo) Reset() { *x = TaskListInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[149] + mi := &file_pb_fiee_cast_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12898,7 +13150,7 @@ func (x *TaskListInfo) String() string { func (*TaskListInfo) ProtoMessage() {} func (x *TaskListInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[149] + mi := &file_pb_fiee_cast_proto_msgTypes[153] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12911,7 +13163,7 @@ func (x *TaskListInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskListInfo.ProtoReflect.Descriptor instead. func (*TaskListInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{149} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{153} } func (x *TaskListInfo) GetUuid() string { @@ -12981,7 +13233,7 @@ type GetTaskListResp struct { func (x *GetTaskListResp) Reset() { *x = GetTaskListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[150] + mi := &file_pb_fiee_cast_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12993,7 +13245,7 @@ func (x *GetTaskListResp) String() string { func (*GetTaskListResp) ProtoMessage() {} func (x *GetTaskListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[150] + mi := &file_pb_fiee_cast_proto_msgTypes[154] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13006,7 +13258,7 @@ func (x *GetTaskListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTaskListResp.ProtoReflect.Descriptor instead. func (*GetTaskListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{150} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{154} } func (x *GetTaskListResp) GetData() *TaskListInfo { @@ -13037,7 +13289,7 @@ type ListTaskListReq struct { func (x *ListTaskListReq) Reset() { *x = ListTaskListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[151] + mi := &file_pb_fiee_cast_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13049,7 +13301,7 @@ func (x *ListTaskListReq) String() string { func (*ListTaskListReq) ProtoMessage() {} func (x *ListTaskListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[151] + mi := &file_pb_fiee_cast_proto_msgTypes[155] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13062,7 +13314,7 @@ func (x *ListTaskListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTaskListReq.ProtoReflect.Descriptor instead. func (*ListTaskListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{151} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{155} } func (x *ListTaskListReq) GetAction() string { @@ -13112,7 +13364,7 @@ type ListTaskListResp struct { func (x *ListTaskListResp) Reset() { *x = ListTaskListResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[152] + mi := &file_pb_fiee_cast_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13124,7 +13376,7 @@ func (x *ListTaskListResp) String() string { func (*ListTaskListResp) ProtoMessage() {} func (x *ListTaskListResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[152] + mi := &file_pb_fiee_cast_proto_msgTypes[156] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13137,7 +13389,7 @@ func (x *ListTaskListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTaskListResp.ProtoReflect.Descriptor instead. func (*ListTaskListResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{152} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{156} } func (x *ListTaskListResp) GetData() []*TaskListInfo { @@ -13171,7 +13423,7 @@ type DeleteTaskListReq struct { func (x *DeleteTaskListReq) Reset() { *x = DeleteTaskListReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[153] + mi := &file_pb_fiee_cast_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13183,7 +13435,7 @@ func (x *DeleteTaskListReq) String() string { func (*DeleteTaskListReq) ProtoMessage() {} func (x *DeleteTaskListReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[153] + mi := &file_pb_fiee_cast_proto_msgTypes[157] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13196,7 +13448,7 @@ func (x *DeleteTaskListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTaskListReq.ProtoReflect.Descriptor instead. func (*DeleteTaskListReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{153} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{157} } func (x *DeleteTaskListReq) GetUuid() string { @@ -13216,7 +13468,7 @@ type CalculateMediaMetricsByWorksReq struct { func (x *CalculateMediaMetricsByWorksReq) Reset() { *x = CalculateMediaMetricsByWorksReq{} - mi := &file_pb_fiee_cast_proto_msgTypes[154] + mi := &file_pb_fiee_cast_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13228,7 +13480,7 @@ func (x *CalculateMediaMetricsByWorksReq) String() string { func (*CalculateMediaMetricsByWorksReq) ProtoMessage() {} func (x *CalculateMediaMetricsByWorksReq) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[154] + mi := &file_pb_fiee_cast_proto_msgTypes[158] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13241,7 +13493,7 @@ func (x *CalculateMediaMetricsByWorksReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CalculateMediaMetricsByWorksReq.ProtoReflect.Descriptor instead. func (*CalculateMediaMetricsByWorksReq) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{154} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{158} } func (x *CalculateMediaMetricsByWorksReq) GetDate() int32 { @@ -13261,7 +13513,7 @@ type CalculateMediaMetricsByWorksResp struct { func (x *CalculateMediaMetricsByWorksResp) Reset() { *x = CalculateMediaMetricsByWorksResp{} - mi := &file_pb_fiee_cast_proto_msgTypes[155] + mi := &file_pb_fiee_cast_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13273,7 +13525,7 @@ func (x *CalculateMediaMetricsByWorksResp) String() string { func (*CalculateMediaMetricsByWorksResp) ProtoMessage() {} func (x *CalculateMediaMetricsByWorksResp) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[155] + mi := &file_pb_fiee_cast_proto_msgTypes[159] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13286,7 +13538,7 @@ func (x *CalculateMediaMetricsByWorksResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CalculateMediaMetricsByWorksResp.ProtoReflect.Descriptor instead. func (*CalculateMediaMetricsByWorksResp) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{155} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{159} } func (x *CalculateMediaMetricsByWorksResp) GetSuccess() bool { @@ -13296,6 +13548,2412 @@ func (x *CalculateMediaMetricsByWorksResp) GetSuccess() bool { return false } +// 更新话题标签请求 +type UpdateCastTagReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 话题标签UUID,为空则新增,不为空则更新 + HashTag string `protobuf:"bytes,2,opt,name=hashTag,proto3" json:"hashTag"` // 话题标签内容 + Source uint32 `protobuf:"varint,3,opt,name=source,proto3" json:"source"` // 来源 1:人工导入 2:推荐标签 3.自行新增 4.自动标签 + Status uint32 `protobuf:"varint,4,opt,name=status,proto3" json:"status"` // 状态 1:有效 2:被禁 + Remark string `protobuf:"bytes,5,opt,name=remark,proto3" json:"remark"` // 备注 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateCastTagReq) Reset() { + *x = UpdateCastTagReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[160] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateCastTagReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCastTagReq) ProtoMessage() {} + +func (x *UpdateCastTagReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[160] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateCastTagReq.ProtoReflect.Descriptor instead. +func (*UpdateCastTagReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{160} +} + +func (x *UpdateCastTagReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *UpdateCastTagReq) GetHashTag() string { + if x != nil { + return x.HashTag + } + return "" +} + +func (x *UpdateCastTagReq) GetSource() uint32 { + if x != nil { + return x.Source + } + return 0 +} + +func (x *UpdateCastTagReq) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *UpdateCastTagReq) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +// 更新话题标签响应 +type UpdateCastTagResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 话题标签UUID + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateCastTagResp) Reset() { + *x = UpdateCastTagResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[161] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateCastTagResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCastTagResp) ProtoMessage() {} + +func (x *UpdateCastTagResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[161] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateCastTagResp.ProtoReflect.Descriptor instead. +func (*UpdateCastTagResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{161} +} + +func (x *UpdateCastTagResp) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +// 获取话题标签列表请求 +type ListCastTagsReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + HashTag string `protobuf:"bytes,1,opt,name=hashTag,proto3" json:"hashTag"` // 话题标签内容(模糊查询) + Source uint32 `protobuf:"varint,2,opt,name=source,proto3" json:"source"` // 来源 1:人工导入 2:推荐标签 3.自行新增 4.自动标签(0表示不过滤) + Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status"` // 状态 1:有效 2:被禁(0表示不过滤) + StatusUpdateTimeStart string `protobuf:"bytes,4,opt,name=statusUpdateTimeStart,proto3" json:"statusUpdateTimeStart"` // 状态更新时间开始(字符串格式) + StatusUpdateTimeEnd string `protobuf:"bytes,5,opt,name=statusUpdateTimeEnd,proto3" json:"statusUpdateTimeEnd"` // 状态更新时间结束(字符串格式) + CreatedAtStart string `protobuf:"bytes,6,opt,name=createdAtStart,proto3" json:"createdAtStart"` // 创建时间开始(字符串格式,如:2006-01-02 15:04:05) + CreatedAtEnd string `protobuf:"bytes,7,opt,name=createdAtEnd,proto3" json:"createdAtEnd"` // 创建时间结束(字符串格式,如:2006-01-02 15:04:05) + IsWatchCountCalled uint32 `protobuf:"varint,12,opt,name=isWatchCountCalled,proto3" json:"isWatchCountCalled"` // 是否调用过观看次数接口(0表示不过滤,1表示已调用,2表示未调用) + OrderBy string `protobuf:"bytes,8,opt,name=orderBy,proto3" json:"orderBy"` // 排序字段(表字段名,如:created_at, quote_count等) + Sort string `protobuf:"bytes,9,opt,name=sort,proto3" json:"sort"` // 排序方式:asc 或 desc(默认 desc) + Page int32 `protobuf:"varint,10,opt,name=page,proto3" json:"page"` // 页码 + PageSize int32 `protobuf:"varint,11,opt,name=pageSize,proto3" json:"pageSize"` // 每页数量 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListCastTagsReq) Reset() { + *x = ListCastTagsReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[162] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListCastTagsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCastTagsReq) ProtoMessage() {} + +func (x *ListCastTagsReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[162] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListCastTagsReq.ProtoReflect.Descriptor instead. +func (*ListCastTagsReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{162} +} + +func (x *ListCastTagsReq) GetHashTag() string { + if x != nil { + return x.HashTag + } + return "" +} + +func (x *ListCastTagsReq) GetSource() uint32 { + if x != nil { + return x.Source + } + return 0 +} + +func (x *ListCastTagsReq) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *ListCastTagsReq) GetStatusUpdateTimeStart() string { + if x != nil { + return x.StatusUpdateTimeStart + } + return "" +} + +func (x *ListCastTagsReq) GetStatusUpdateTimeEnd() string { + if x != nil { + return x.StatusUpdateTimeEnd + } + return "" +} + +func (x *ListCastTagsReq) GetCreatedAtStart() string { + if x != nil { + return x.CreatedAtStart + } + return "" +} + +func (x *ListCastTagsReq) GetCreatedAtEnd() string { + if x != nil { + return x.CreatedAtEnd + } + return "" +} + +func (x *ListCastTagsReq) GetIsWatchCountCalled() uint32 { + if x != nil { + return x.IsWatchCountCalled + } + return 0 +} + +func (x *ListCastTagsReq) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +func (x *ListCastTagsReq) GetSort() string { + if x != nil { + return x.Sort + } + return "" +} + +func (x *ListCastTagsReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *ListCastTagsReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +// 话题标签信息 +type CastTagInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 话题标签UUID + HashTag string `protobuf:"bytes,2,opt,name=hashTag,proto3" json:"hashTag"` // 话题标签内容 + CreatorUuid string `protobuf:"bytes,3,opt,name=creatorUuid,proto3" json:"creatorUuid"` // 创建人UUID + CreatorName string `protobuf:"bytes,4,opt,name=creatorName,proto3" json:"creatorName"` // 创建人名称 + Source uint32 `protobuf:"varint,5,opt,name=source,proto3" json:"source"` // 来源 1:人工导入 2:推荐标签 3.自行新增 4.自动标签 + QuoteCount int32 `protobuf:"varint,6,opt,name=quoteCount,proto3" json:"quoteCount"` // 引用次数 + WatchCount int32 `protobuf:"varint,7,opt,name=watchCount,proto3" json:"watchCount"` // 观看次数 + Status uint32 `protobuf:"varint,8,opt,name=status,proto3" json:"status"` // 状态 1:有效 2:被禁 + Remark string `protobuf:"bytes,9,opt,name=remark,proto3" json:"remark"` // 备注 + StatusUpdateTime string `protobuf:"bytes,10,opt,name=statusUpdateTime,proto3" json:"statusUpdateTime"` // 状态更新时间 + CreatedDate string `protobuf:"bytes,11,opt,name=createdDate,proto3" json:"createdDate"` // 创建时间 + Success bool `protobuf:"varint,12,opt,name=success,proto3" json:"success"` // 是否更新成功(批量更新时使用) + IsWatchCountCalled uint32 `protobuf:"varint,13,opt,name=isWatchCountCalled,proto3" json:"isWatchCountCalled"` // 是否调用过观看次数接口(0表示未调用,1表示已调用) + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CastTagInfo) Reset() { + *x = CastTagInfo{} + mi := &file_pb_fiee_cast_proto_msgTypes[163] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CastTagInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CastTagInfo) ProtoMessage() {} + +func (x *CastTagInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[163] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CastTagInfo.ProtoReflect.Descriptor instead. +func (*CastTagInfo) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{163} +} + +func (x *CastTagInfo) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *CastTagInfo) GetHashTag() string { + if x != nil { + return x.HashTag + } + return "" +} + +func (x *CastTagInfo) GetCreatorUuid() string { + if x != nil { + return x.CreatorUuid + } + return "" +} + +func (x *CastTagInfo) GetCreatorName() string { + if x != nil { + return x.CreatorName + } + return "" +} + +func (x *CastTagInfo) GetSource() uint32 { + if x != nil { + return x.Source + } + return 0 +} + +func (x *CastTagInfo) GetQuoteCount() int32 { + if x != nil { + return x.QuoteCount + } + return 0 +} + +func (x *CastTagInfo) GetWatchCount() int32 { + if x != nil { + return x.WatchCount + } + return 0 +} + +func (x *CastTagInfo) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *CastTagInfo) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *CastTagInfo) GetStatusUpdateTime() string { + if x != nil { + return x.StatusUpdateTime + } + return "" +} + +func (x *CastTagInfo) GetCreatedDate() string { + if x != nil { + return x.CreatedDate + } + return "" +} + +func (x *CastTagInfo) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *CastTagInfo) GetIsWatchCountCalled() uint32 { + if x != nil { + return x.IsWatchCountCalled + } + return 0 +} + +// 获取话题标签列表响应 +type ListCastTagsResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []*CastTagInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` // 话题标签列表 + Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count"` // 总数 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListCastTagsResp) Reset() { + *x = ListCastTagsResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[164] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListCastTagsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCastTagsResp) ProtoMessage() {} + +func (x *ListCastTagsResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[164] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListCastTagsResp.ProtoReflect.Descriptor instead. +func (*ListCastTagsResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{164} +} + +func (x *ListCastTagsResp) GetData() []*CastTagInfo { + if x != nil { + return x.Data + } + return nil +} + +func (x *ListCastTagsResp) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// 批量更新话题标签请求 +type UpdateCastTagBatchReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []*CastTagInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` // 话题标签列表 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateCastTagBatchReq) Reset() { + *x = UpdateCastTagBatchReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[165] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateCastTagBatchReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCastTagBatchReq) ProtoMessage() {} + +func (x *UpdateCastTagBatchReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[165] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateCastTagBatchReq.ProtoReflect.Descriptor instead. +func (*UpdateCastTagBatchReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{165} +} + +func (x *UpdateCastTagBatchReq) GetData() []*CastTagInfo { + if x != nil { + return x.Data + } + return nil +} + +// 批量更新话题标签响应 +type UpdateCastTagBatchResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []*CastTagInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` // 话题标签列表 + SuccessCount int32 `protobuf:"varint,2,opt,name=successCount,proto3" json:"successCount"` // 成功数量 + FailCount int32 `protobuf:"varint,3,opt,name=failCount,proto3" json:"failCount"` // 失败数量 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateCastTagBatchResp) Reset() { + *x = UpdateCastTagBatchResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[166] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateCastTagBatchResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCastTagBatchResp) ProtoMessage() {} + +func (x *UpdateCastTagBatchResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[166] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateCastTagBatchResp.ProtoReflect.Descriptor instead. +func (*UpdateCastTagBatchResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{166} +} + +func (x *UpdateCastTagBatchResp) GetData() []*CastTagInfo { + if x != nil { + return x.Data + } + return nil +} + +func (x *UpdateCastTagBatchResp) GetSuccessCount() int32 { + if x != nil { + return x.SuccessCount + } + return 0 +} + +func (x *UpdateCastTagBatchResp) GetFailCount() int32 { + if x != nil { + return x.FailCount + } + return 0 +} + +// 批量更新已存在的话题标签请求(通过uuid) +type BatchUpdateCastTagsReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []*CastTagInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` // 话题标签列表,必须包含uuid + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BatchUpdateCastTagsReq) Reset() { + *x = BatchUpdateCastTagsReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[167] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BatchUpdateCastTagsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchUpdateCastTagsReq) ProtoMessage() {} + +func (x *BatchUpdateCastTagsReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[167] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchUpdateCastTagsReq.ProtoReflect.Descriptor instead. +func (*BatchUpdateCastTagsReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{167} +} + +func (x *BatchUpdateCastTagsReq) GetData() []*CastTagInfo { + if x != nil { + return x.Data + } + return nil +} + +// 更新话题标签状态请求 +type UpdateCastTagStatusReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 话题标签UUID(与hashTag二选一) + HashTag string `protobuf:"bytes,2,opt,name=hashTag,proto3" json:"hashTag"` // 话题标签内容(与uuid二选一) + Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status"` // 状态 1:有效 2:被禁 + Remark string `protobuf:"bytes,4,opt,name=remark,proto3" json:"remark"` // 备注 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateCastTagStatusReq) Reset() { + *x = UpdateCastTagStatusReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[168] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateCastTagStatusReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCastTagStatusReq) ProtoMessage() {} + +func (x *UpdateCastTagStatusReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[168] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateCastTagStatusReq.ProtoReflect.Descriptor instead. +func (*UpdateCastTagStatusReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{168} +} + +func (x *UpdateCastTagStatusReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *UpdateCastTagStatusReq) GetHashTag() string { + if x != nil { + return x.HashTag + } + return "" +} + +func (x *UpdateCastTagStatusReq) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *UpdateCastTagStatusReq) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +// 重新统计话题标签引用数量响应 +type RecalculateCastTagQuoteCountResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success"` // 是否成功 + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg"` // 提示信息 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RecalculateCastTagQuoteCountResp) Reset() { + *x = RecalculateCastTagQuoteCountResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[169] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RecalculateCastTagQuoteCountResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecalculateCastTagQuoteCountResp) ProtoMessage() {} + +func (x *RecalculateCastTagQuoteCountResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[169] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RecalculateCastTagQuoteCountResp.ProtoReflect.Descriptor instead. +func (*RecalculateCastTagQuoteCountResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{169} +} + +func (x *RecalculateCastTagQuoteCountResp) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *RecalculateCastTagQuoteCountResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +// 创建竞品报告请求 +type CreateCompetitiveReportReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID(可选,为空时自动生成) + SubNum string `protobuf:"bytes,2,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` // 艺人名字 + ArtistID string `protobuf:"bytes,4,opt,name=artistID,proto3" json:"artistID"` // 艺人ID + ArtistPhone string `protobuf:"bytes,5,opt,name=artistPhone,proto3" json:"artistPhone"` // 艺人手机号 + ReportContent string `protobuf:"bytes,6,opt,name=reportContent,proto3" json:"reportContent"` // 报告内容 + ImageUrl string `protobuf:"bytes,7,opt,name=imageUrl,proto3" json:"imageUrl"` // 图片url + Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title"` // 标题 + PdfUrl string `protobuf:"bytes,9,opt,name=pdfUrl,proto3" json:"pdfUrl"` // pdf的url链接 + WorkUuids []string `protobuf:"bytes,10,rep,name=workUuids,proto3" json:"workUuids"` // 关联的作品UUID列表(最多5个) + Source uint32 `protobuf:"varint,11,opt,name=source,proto3" json:"source"` // 来源 1 系统 2 导入 + Remark string `protobuf:"bytes,12,opt,name=remark,proto3" json:"remark"` // 备注(批量导入时用于记录错误信息) + Success bool `protobuf:"varint,13,opt,name=success,proto3" json:"success"` // 是否成功(批量导入时使用) + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateCompetitiveReportReq) Reset() { + *x = CreateCompetitiveReportReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[170] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateCompetitiveReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateCompetitiveReportReq) ProtoMessage() {} + +func (x *CreateCompetitiveReportReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[170] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateCompetitiveReportReq.ProtoReflect.Descriptor instead. +func (*CreateCompetitiveReportReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{170} +} + +func (x *CreateCompetitiveReportReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetArtistID() string { + if x != nil { + return x.ArtistID + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetArtistPhone() string { + if x != nil { + return x.ArtistPhone + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetReportContent() string { + if x != nil { + return x.ReportContent + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetImageUrl() string { + if x != nil { + return x.ImageUrl + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetPdfUrl() string { + if x != nil { + return x.PdfUrl + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetWorkUuids() []string { + if x != nil { + return x.WorkUuids + } + return nil +} + +func (x *CreateCompetitiveReportReq) GetSource() uint32 { + if x != nil { + return x.Source + } + return 0 +} + +func (x *CreateCompetitiveReportReq) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +// 创建竞品报告响应 +type CreateCompetitiveReportResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateCompetitiveReportResp) Reset() { + *x = CreateCompetitiveReportResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[171] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateCompetitiveReportResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateCompetitiveReportResp) ProtoMessage() {} + +func (x *CreateCompetitiveReportResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[171] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateCompetitiveReportResp.ProtoReflect.Descriptor instead. +func (*CreateCompetitiveReportResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{171} +} + +func (x *CreateCompetitiveReportResp) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +// 更新竞品报告请求 +type UpdateCompetitiveReportReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + ReportContent string `protobuf:"bytes,2,opt,name=reportContent,proto3" json:"reportContent"` // 报告内容 + Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title"` // 标题 + ImageUrl string `protobuf:"bytes,4,opt,name=imageUrl,proto3" json:"imageUrl"` // 图片url + PdfUrl string `protobuf:"bytes,5,opt,name=pdfUrl,proto3" json:"pdfUrl"` // pdf的url链接 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateCompetitiveReportReq) Reset() { + *x = UpdateCompetitiveReportReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[172] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateCompetitiveReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCompetitiveReportReq) ProtoMessage() {} + +func (x *UpdateCompetitiveReportReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[172] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateCompetitiveReportReq.ProtoReflect.Descriptor instead. +func (*UpdateCompetitiveReportReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{172} +} + +func (x *UpdateCompetitiveReportReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *UpdateCompetitiveReportReq) GetReportContent() string { + if x != nil { + return x.ReportContent + } + return "" +} + +func (x *UpdateCompetitiveReportReq) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *UpdateCompetitiveReportReq) GetImageUrl() string { + if x != nil { + return x.ImageUrl + } + return "" +} + +func (x *UpdateCompetitiveReportReq) GetPdfUrl() string { + if x != nil { + return x.PdfUrl + } + return "" +} + +// 更新竞品报告状态请求 +type UpdateCompetitiveReportStatusReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + WorkAction WorkActionENUM `protobuf:"varint,1,opt,name=workAction,proto3,enum=Cast.WorkActionENUM" json:"workAction"` // 操作类型 + Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + ApprovalID string `protobuf:"bytes,3,opt,name=approvalID,proto3" json:"approvalID"` // 审批ID + ApprovalReply string `protobuf:"bytes,4,opt,name=approvalReply,proto3" json:"approvalReply"` // 审批回复 + ConfirmRemark string `protobuf:"bytes,5,opt,name=confirmRemark,proto3" json:"confirmRemark"` // 确认备注 + ConfirmStatus uint32 `protobuf:"varint,6,opt,name=confirmStatus,proto3" json:"confirmStatus"` // 确认状态 1 通过 2 驳回 3 失败 + CostType uint32 `protobuf:"varint,7,opt,name=costType,proto3" json:"costType"` // 计费类型 1 套餐 2 增值 + ConfirmType uint32 `protobuf:"varint,8,opt,name=confirmType,proto3" json:"confirmType"` // 确认类型 1 艺人确认 2 系统确认 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateCompetitiveReportStatusReq) Reset() { + *x = UpdateCompetitiveReportStatusReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[173] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateCompetitiveReportStatusReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCompetitiveReportStatusReq) ProtoMessage() {} + +func (x *UpdateCompetitiveReportStatusReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[173] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateCompetitiveReportStatusReq.ProtoReflect.Descriptor instead. +func (*UpdateCompetitiveReportStatusReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{173} +} + +func (x *UpdateCompetitiveReportStatusReq) GetWorkAction() WorkActionENUM { + if x != nil { + return x.WorkAction + } + return WorkActionENUM_NO_ACTION +} + +func (x *UpdateCompetitiveReportStatusReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *UpdateCompetitiveReportStatusReq) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *UpdateCompetitiveReportStatusReq) GetApprovalReply() string { + if x != nil { + return x.ApprovalReply + } + return "" +} + +func (x *UpdateCompetitiveReportStatusReq) GetConfirmRemark() string { + if x != nil { + return x.ConfirmRemark + } + return "" +} + +func (x *UpdateCompetitiveReportStatusReq) GetConfirmStatus() uint32 { + if x != nil { + return x.ConfirmStatus + } + return 0 +} + +func (x *UpdateCompetitiveReportStatusReq) GetCostType() uint32 { + if x != nil { + return x.CostType + } + return 0 +} + +func (x *UpdateCompetitiveReportStatusReq) GetConfirmType() uint32 { + if x != nil { + return x.ConfirmType + } + return 0 +} + +// 更新竞品报告审批ID请求 +type UpdateCompetitiveReportApprovalIDReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + ApprovalID string `protobuf:"bytes,2,opt,name=approvalID,proto3" json:"approvalID"` // 审批ID + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateCompetitiveReportApprovalIDReq) Reset() { + *x = UpdateCompetitiveReportApprovalIDReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[174] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateCompetitiveReportApprovalIDReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCompetitiveReportApprovalIDReq) ProtoMessage() {} + +func (x *UpdateCompetitiveReportApprovalIDReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[174] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateCompetitiveReportApprovalIDReq.ProtoReflect.Descriptor instead. +func (*UpdateCompetitiveReportApprovalIDReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{174} +} + +func (x *UpdateCompetitiveReportApprovalIDReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *UpdateCompetitiveReportApprovalIDReq) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +// 竞品报告日志信息 +type CompetitiveReportLogInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + ReportUuid string `protobuf:"bytes,1,opt,name=reportUuid,proto3" json:"reportUuid"` // 报告UUID + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` // 标题 + UpdateTime string `protobuf:"bytes,3,opt,name=updateTime,proto3" json:"updateTime"` // 更新时间 + WorkReportStatus uint32 `protobuf:"varint,4,opt,name=workReportStatus,proto3" json:"workReportStatus"` // 状态 + ArtistName string `protobuf:"bytes,5,opt,name=artistName,proto3" json:"artistName"` // 艺人名称 + ArtistUuid string `protobuf:"bytes,6,opt,name=artistUuid,proto3" json:"artistUuid"` // 艺人ID + ReportExtraData string `protobuf:"bytes,7,opt,name=reportExtraData,proto3" json:"reportExtraData"` // 竞品报告扩展数据 + OperatorName string `protobuf:"bytes,8,opt,name=operatorName,proto3" json:"operatorName"` // 操作人名称 + OperatorID string `protobuf:"bytes,9,opt,name=operatorID,proto3" json:"operatorID"` // 操作人ID + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CompetitiveReportLogInfo) Reset() { + *x = CompetitiveReportLogInfo{} + mi := &file_pb_fiee_cast_proto_msgTypes[175] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CompetitiveReportLogInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompetitiveReportLogInfo) ProtoMessage() {} + +func (x *CompetitiveReportLogInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[175] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CompetitiveReportLogInfo.ProtoReflect.Descriptor instead. +func (*CompetitiveReportLogInfo) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{175} +} + +func (x *CompetitiveReportLogInfo) GetReportUuid() string { + if x != nil { + return x.ReportUuid + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetUpdateTime() string { + if x != nil { + return x.UpdateTime + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetWorkReportStatus() uint32 { + if x != nil { + return x.WorkReportStatus + } + return 0 +} + +func (x *CompetitiveReportLogInfo) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetReportExtraData() string { + if x != nil { + return x.ReportExtraData + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetOperatorID() string { + if x != nil { + return x.OperatorID + } + return "" +} + +// 竞品报告扩展信息 +type CompetitiveReportExtra struct { + state protoimpl.MessageState `protogen:"open.v1"` + ReportUuid string `protobuf:"bytes,1,opt,name=reportUuid,proto3" json:"reportUuid"` // 竞品报告uuid + ArtistConfirmedTime int64 `protobuf:"varint,2,opt,name=artistConfirmedTime,proto3" json:"artistConfirmedTime"` // 艺人确认时间 + CostType uint32 `protobuf:"varint,3,opt,name=costType,proto3" json:"costType"` // 计费类型 1 套餐 2 增值 + CreatedAt int32 `protobuf:"varint,4,opt,name=createdAt,proto3" json:"createdAt"` // 创建时间 + UpdatedAt int32 `protobuf:"varint,5,opt,name=updatedAt,proto3" json:"updatedAt"` // 更新时间 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CompetitiveReportExtra) Reset() { + *x = CompetitiveReportExtra{} + mi := &file_pb_fiee_cast_proto_msgTypes[176] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CompetitiveReportExtra) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompetitiveReportExtra) ProtoMessage() {} + +func (x *CompetitiveReportExtra) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[176] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CompetitiveReportExtra.ProtoReflect.Descriptor instead. +func (*CompetitiveReportExtra) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{176} +} + +func (x *CompetitiveReportExtra) GetReportUuid() string { + if x != nil { + return x.ReportUuid + } + return "" +} + +func (x *CompetitiveReportExtra) GetArtistConfirmedTime() int64 { + if x != nil { + return x.ArtistConfirmedTime + } + return 0 +} + +func (x *CompetitiveReportExtra) GetCostType() uint32 { + if x != nil { + return x.CostType + } + return 0 +} + +func (x *CompetitiveReportExtra) GetCreatedAt() int32 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *CompetitiveReportExtra) GetUpdatedAt() int32 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +// 获取竞品报告详情请求 +type GetCompetitiveReportDetailReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetCompetitiveReportDetailReq) Reset() { + *x = GetCompetitiveReportDetailReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[177] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetCompetitiveReportDetailReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCompetitiveReportDetailReq) ProtoMessage() {} + +func (x *GetCompetitiveReportDetailReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[177] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCompetitiveReportDetailReq.ProtoReflect.Descriptor instead. +func (*GetCompetitiveReportDetailReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{177} +} + +func (x *GetCompetitiveReportDetailReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +// 获取竞品报告详情请求(App端) +type GetCompetitiveReportForAppReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetCompetitiveReportForAppReq) Reset() { + *x = GetCompetitiveReportForAppReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[178] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetCompetitiveReportForAppReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCompetitiveReportForAppReq) ProtoMessage() {} + +func (x *GetCompetitiveReportForAppReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[178] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCompetitiveReportForAppReq.ProtoReflect.Descriptor instead. +func (*GetCompetitiveReportForAppReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{178} +} + +func (x *GetCompetitiveReportForAppReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +// 获取竞品报告详情响应(App端) +type GetCompetitiveReportForAppResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + SubNum string `protobuf:"bytes,2,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` // 艺人名字 + ReportContent string `protobuf:"bytes,4,opt,name=reportContent,proto3" json:"reportContent"` // 报告内容 + ImageUrl string `protobuf:"bytes,5,opt,name=imageUrl,proto3" json:"imageUrl"` // 图片url + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title"` // 标题 + PdfUrl string `protobuf:"bytes,7,opt,name=pdfUrl,proto3" json:"pdfUrl"` // pdf的url链接 + WorkUuids []string `protobuf:"bytes,8,rep,name=workUuids,proto3" json:"workUuids"` // 关联的作品UUID列表 + CreatedAt string `protobuf:"bytes,9,opt,name=createdAt,proto3" json:"createdAt"` // 创建时间 + UpdatedAt string `protobuf:"bytes,10,opt,name=updatedAt,proto3" json:"updatedAt"` // 更新时间 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetCompetitiveReportForAppResp) Reset() { + *x = GetCompetitiveReportForAppResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[179] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetCompetitiveReportForAppResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCompetitiveReportForAppResp) ProtoMessage() {} + +func (x *GetCompetitiveReportForAppResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[179] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCompetitiveReportForAppResp.ProtoReflect.Descriptor instead. +func (*GetCompetitiveReportForAppResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{179} +} + +func (x *GetCompetitiveReportForAppResp) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetReportContent() string { + if x != nil { + return x.ReportContent + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetImageUrl() string { + if x != nil { + return x.ImageUrl + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetPdfUrl() string { + if x != nil { + return x.PdfUrl + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetWorkUuids() []string { + if x != nil { + return x.WorkUuids + } + return nil +} + +func (x *GetCompetitiveReportForAppResp) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +// 获取竞品报告详情响应 +type GetCompetitiveReportDetailResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + SubNum string `protobuf:"bytes,2,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` // 艺人名字 + ArtistID string `protobuf:"bytes,4,opt,name=artistID,proto3" json:"artistID"` // 艺人ID + ArtistPhone string `protobuf:"bytes,5,opt,name=artistPhone,proto3" json:"artistPhone"` // 艺人手机号 + ReportContent string `protobuf:"bytes,6,opt,name=reportContent,proto3" json:"reportContent"` // 报告内容 + ImageUrl string `protobuf:"bytes,7,opt,name=imageUrl,proto3" json:"imageUrl"` // 图片url + Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title"` // 标题 + OperatorID string `protobuf:"bytes,9,opt,name=operatorID,proto3" json:"operatorID"` // 操作人ID + OperatorName string `protobuf:"bytes,10,opt,name=operatorName,proto3" json:"operatorName"` // 操作人名称 + WorkReportStatus uint32 `protobuf:"varint,11,opt,name=workReportStatus,proto3" json:"workReportStatus"` // 状态 + Reason string `protobuf:"bytes,12,opt,name=reason,proto3" json:"reason"` // 原因 + ComfirmType int32 `protobuf:"varint,13,opt,name=comfirmType,proto3" json:"comfirmType"` // 确认类型 + Cost uint32 `protobuf:"varint,14,opt,name=cost,proto3" json:"cost"` // 消耗状态 + SubmitTime string `protobuf:"bytes,15,opt,name=submitTime,proto3" json:"submitTime"` // 提交时间 + StatusUpdateTime string `protobuf:"bytes,16,opt,name=statusUpdateTime,proto3" json:"statusUpdateTime"` // 状态更新时间 + ApprovalID string `protobuf:"bytes,17,opt,name=approvalID,proto3" json:"approvalID"` // 审批ID + PdfUrl string `protobuf:"bytes,18,opt,name=pdfUrl,proto3" json:"pdfUrl"` // pdf的url链接 + ConfirmRemark string `protobuf:"bytes,19,opt,name=confirmRemark,proto3" json:"confirmRemark"` // 艺人确认备注 + WorkUuids []string `protobuf:"bytes,20,rep,name=workUuids,proto3" json:"workUuids"` // 关联的作品UUID列表 + ReportLogData []*CompetitiveReportLogInfo `protobuf:"bytes,21,rep,name=reportLogData,proto3" json:"reportLogData"` // 竞品报告日志数据 + Extra *CompetitiveReportExtra `protobuf:"bytes,22,opt,name=extra,proto3" json:"extra"` // 扩展信息 + CreatedAt string `protobuf:"bytes,23,opt,name=createdAt,proto3" json:"createdAt"` // 创建时间 + UpdatedAt string `protobuf:"bytes,24,opt,name=updatedAt,proto3" json:"updatedAt"` // 更新时间 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetCompetitiveReportDetailResp) Reset() { + *x = GetCompetitiveReportDetailResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[180] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetCompetitiveReportDetailResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCompetitiveReportDetailResp) ProtoMessage() {} + +func (x *GetCompetitiveReportDetailResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[180] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCompetitiveReportDetailResp.ProtoReflect.Descriptor instead. +func (*GetCompetitiveReportDetailResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{180} +} + +func (x *GetCompetitiveReportDetailResp) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetArtistID() string { + if x != nil { + return x.ArtistID + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetArtistPhone() string { + if x != nil { + return x.ArtistPhone + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetReportContent() string { + if x != nil { + return x.ReportContent + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetImageUrl() string { + if x != nil { + return x.ImageUrl + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetOperatorID() string { + if x != nil { + return x.OperatorID + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetWorkReportStatus() uint32 { + if x != nil { + return x.WorkReportStatus + } + return 0 +} + +func (x *GetCompetitiveReportDetailResp) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetComfirmType() int32 { + if x != nil { + return x.ComfirmType + } + return 0 +} + +func (x *GetCompetitiveReportDetailResp) GetCost() uint32 { + if x != nil { + return x.Cost + } + return 0 +} + +func (x *GetCompetitiveReportDetailResp) GetSubmitTime() string { + if x != nil { + return x.SubmitTime + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetStatusUpdateTime() string { + if x != nil { + return x.StatusUpdateTime + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetPdfUrl() string { + if x != nil { + return x.PdfUrl + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetConfirmRemark() string { + if x != nil { + return x.ConfirmRemark + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetWorkUuids() []string { + if x != nil { + return x.WorkUuids + } + return nil +} + +func (x *GetCompetitiveReportDetailResp) GetReportLogData() []*CompetitiveReportLogInfo { + if x != nil { + return x.ReportLogData + } + return nil +} + +func (x *GetCompetitiveReportDetailResp) GetExtra() *CompetitiveReportExtra { + if x != nil { + return x.Extra + } + return nil +} + +func (x *GetCompetitiveReportDetailResp) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +// 获取竞品报告列表请求 +type ListCompetitiveReportReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + UuidList []string `protobuf:"bytes,1,rep,name=uuidList,proto3" json:"uuidList"` // UUID列表 + SubNum string `protobuf:"bytes,2,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + ArtistVal string `protobuf:"bytes,3,opt,name=artistVal,proto3" json:"artistVal"` // 艺人搜索值 + Status uint32 `protobuf:"varint,4,opt,name=status,proto3" json:"status"` // 状态 + ComfirmType int32 `protobuf:"varint,5,opt,name=comfirmType,proto3" json:"comfirmType"` // 确认类型 + StatusUpdateTimeStart string `protobuf:"bytes,6,opt,name=statusUpdateTimeStart,proto3" json:"statusUpdateTimeStart"` // 状态更新时间开始 + StatusUpdateTimeEnd string `protobuf:"bytes,7,opt,name=statusUpdateTimeEnd,proto3" json:"statusUpdateTimeEnd"` // 状态更新时间结束 + SubmitStartTime string `protobuf:"bytes,8,opt,name=submitStartTime,proto3" json:"submitStartTime"` // 提交时间开始 + SubmitEndTime string `protobuf:"bytes,9,opt,name=submitEndTime,proto3" json:"submitEndTime"` // 提交时间结束 + Page int32 `protobuf:"varint,10,opt,name=page,proto3" json:"page"` // 页码 + PageSize int32 `protobuf:"varint,11,opt,name=pageSize,proto3" json:"pageSize"` // 每页数量 + StatusList []uint32 `protobuf:"varint,12,rep,packed,name=statusList,proto3" json:"statusList"` // 状态列表 + ArtistUuid string `protobuf:"bytes,13,opt,name=artistUuid,proto3" json:"artistUuid"` // 艺人UUID + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListCompetitiveReportReq) Reset() { + *x = ListCompetitiveReportReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[181] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListCompetitiveReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCompetitiveReportReq) ProtoMessage() {} + +func (x *ListCompetitiveReportReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[181] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListCompetitiveReportReq.ProtoReflect.Descriptor instead. +func (*ListCompetitiveReportReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{181} +} + +func (x *ListCompetitiveReportReq) GetUuidList() []string { + if x != nil { + return x.UuidList + } + return nil +} + +func (x *ListCompetitiveReportReq) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *ListCompetitiveReportReq) GetArtistVal() string { + if x != nil { + return x.ArtistVal + } + return "" +} + +func (x *ListCompetitiveReportReq) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *ListCompetitiveReportReq) GetComfirmType() int32 { + if x != nil { + return x.ComfirmType + } + return 0 +} + +func (x *ListCompetitiveReportReq) GetStatusUpdateTimeStart() string { + if x != nil { + return x.StatusUpdateTimeStart + } + return "" +} + +func (x *ListCompetitiveReportReq) GetStatusUpdateTimeEnd() string { + if x != nil { + return x.StatusUpdateTimeEnd + } + return "" +} + +func (x *ListCompetitiveReportReq) GetSubmitStartTime() string { + if x != nil { + return x.SubmitStartTime + } + return "" +} + +func (x *ListCompetitiveReportReq) GetSubmitEndTime() string { + if x != nil { + return x.SubmitEndTime + } + return "" +} + +func (x *ListCompetitiveReportReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *ListCompetitiveReportReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListCompetitiveReportReq) GetStatusList() []uint32 { + if x != nil { + return x.StatusList + } + return nil +} + +func (x *ListCompetitiveReportReq) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +// 竞品报告信息 +type CompetitiveReportInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + SubNum string `protobuf:"bytes,2,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` // 艺人名字 + ArtistID string `protobuf:"bytes,4,opt,name=artistID,proto3" json:"artistID"` // 艺人ID + ArtistPhone string `protobuf:"bytes,5,opt,name=artistPhone,proto3" json:"artistPhone"` // 艺人手机号 + OperatorID string `protobuf:"bytes,6,opt,name=operatorID,proto3" json:"operatorID"` // 操作人ID + OperatorName string `protobuf:"bytes,7,opt,name=operatorName,proto3" json:"operatorName"` // 操作人名称 + WorkReportStatus uint32 `protobuf:"varint,8,opt,name=workReportStatus,proto3" json:"workReportStatus"` // 状态 + Reason string `protobuf:"bytes,9,opt,name=reason,proto3" json:"reason"` // 原因 + ComfirmType int32 `protobuf:"varint,10,opt,name=comfirmType,proto3" json:"comfirmType"` // 确认类型 + SubmitTime string `protobuf:"bytes,11,opt,name=submitTime,proto3" json:"submitTime"` // 提交时间 + StatusUpdateTime string `protobuf:"bytes,12,opt,name=statusUpdateTime,proto3" json:"statusUpdateTime"` // 状态更新时间 + PdfUrl string `protobuf:"bytes,13,opt,name=pdfUrl,proto3" json:"pdfUrl"` // pdf的url链接 + ApprovalID string `protobuf:"bytes,14,opt,name=approvalID,proto3" json:"approvalID"` // 审批ID + Title string `protobuf:"bytes,15,opt,name=title,proto3" json:"title"` // 标题 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CompetitiveReportInfo) Reset() { + *x = CompetitiveReportInfo{} + mi := &file_pb_fiee_cast_proto_msgTypes[182] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CompetitiveReportInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompetitiveReportInfo) ProtoMessage() {} + +func (x *CompetitiveReportInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[182] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CompetitiveReportInfo.ProtoReflect.Descriptor instead. +func (*CompetitiveReportInfo) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{182} +} + +func (x *CompetitiveReportInfo) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *CompetitiveReportInfo) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *CompetitiveReportInfo) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *CompetitiveReportInfo) GetArtistID() string { + if x != nil { + return x.ArtistID + } + return "" +} + +func (x *CompetitiveReportInfo) GetArtistPhone() string { + if x != nil { + return x.ArtistPhone + } + return "" +} + +func (x *CompetitiveReportInfo) GetOperatorID() string { + if x != nil { + return x.OperatorID + } + return "" +} + +func (x *CompetitiveReportInfo) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *CompetitiveReportInfo) GetWorkReportStatus() uint32 { + if x != nil { + return x.WorkReportStatus + } + return 0 +} + +func (x *CompetitiveReportInfo) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *CompetitiveReportInfo) GetComfirmType() int32 { + if x != nil { + return x.ComfirmType + } + return 0 +} + +func (x *CompetitiveReportInfo) GetSubmitTime() string { + if x != nil { + return x.SubmitTime + } + return "" +} + +func (x *CompetitiveReportInfo) GetStatusUpdateTime() string { + if x != nil { + return x.StatusUpdateTime + } + return "" +} + +func (x *CompetitiveReportInfo) GetPdfUrl() string { + if x != nil { + return x.PdfUrl + } + return "" +} + +func (x *CompetitiveReportInfo) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *CompetitiveReportInfo) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +// 获取竞品报告列表响应 +type ListCompetitiveReportResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []*CompetitiveReportInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` // 竞品报告列表 + Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count"` // 总数 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListCompetitiveReportResp) Reset() { + *x = ListCompetitiveReportResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[183] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListCompetitiveReportResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCompetitiveReportResp) ProtoMessage() {} + +func (x *ListCompetitiveReportResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[183] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListCompetitiveReportResp.ProtoReflect.Descriptor instead. +func (*ListCompetitiveReportResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{183} +} + +func (x *ListCompetitiveReportResp) GetData() []*CompetitiveReportInfo { + if x != nil { + return x.Data + } + return nil +} + +func (x *ListCompetitiveReportResp) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// 删除竞品报告请求 +type DeleteCompetitiveReportReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteCompetitiveReportReq) Reset() { + *x = DeleteCompetitiveReportReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[184] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteCompetitiveReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteCompetitiveReportReq) ProtoMessage() {} + +func (x *DeleteCompetitiveReportReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[184] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteCompetitiveReportReq.ProtoReflect.Descriptor instead. +func (*DeleteCompetitiveReportReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{184} +} + +func (x *DeleteCompetitiveReportReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +// 批量导入竞品报告请求 +type ImportCompetitiveReportBatchReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Reports []*CreateCompetitiveReportReq `protobuf:"bytes,1,rep,name=reports,proto3" json:"reports"` // 竞品报告列表 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ImportCompetitiveReportBatchReq) Reset() { + *x = ImportCompetitiveReportBatchReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[185] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ImportCompetitiveReportBatchReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportCompetitiveReportBatchReq) ProtoMessage() {} + +func (x *ImportCompetitiveReportBatchReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[185] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportCompetitiveReportBatchReq.ProtoReflect.Descriptor instead. +func (*ImportCompetitiveReportBatchReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{185} +} + +func (x *ImportCompetitiveReportBatchReq) GetReports() []*CreateCompetitiveReportReq { + if x != nil { + return x.Reports + } + return nil +} + +// 批量导入竞品报告响应 +type ImportCompetitiveReportBatchResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Reports []*CreateCompetitiveReportReq `protobuf:"bytes,1,rep,name=reports,proto3" json:"reports"` // 竞品报告列表(包含成功和失败的结果) + SuccessCount int32 `protobuf:"varint,2,opt,name=successCount,proto3" json:"successCount"` // 成功数量 + FailCount int32 `protobuf:"varint,3,opt,name=failCount,proto3" json:"failCount"` // 失败数量 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ImportCompetitiveReportBatchResp) Reset() { + *x = ImportCompetitiveReportBatchResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[186] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ImportCompetitiveReportBatchResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportCompetitiveReportBatchResp) ProtoMessage() {} + +func (x *ImportCompetitiveReportBatchResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[186] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportCompetitiveReportBatchResp.ProtoReflect.Descriptor instead. +func (*ImportCompetitiveReportBatchResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{186} +} + +func (x *ImportCompetitiveReportBatchResp) GetReports() []*CreateCompetitiveReportReq { + if x != nil { + return x.Reports + } + return nil +} + +func (x *ImportCompetitiveReportBatchResp) GetSuccessCount() int32 { + if x != nil { + return x.SuccessCount + } + return 0 +} + +func (x *ImportCompetitiveReportBatchResp) GetFailCount() int32 { + if x != nil { + return x.FailCount + } + return 0 +} + +// 批量根据work_uuid查询记录数量请求 +type CountCompetitiveReportByWorkUuidsReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + WorkUuids []string `protobuf:"bytes,1,rep,name=workUuids,proto3" json:"workUuids"` // 作品UUID列表 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CountCompetitiveReportByWorkUuidsReq) Reset() { + *x = CountCompetitiveReportByWorkUuidsReq{} + mi := &file_pb_fiee_cast_proto_msgTypes[187] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CountCompetitiveReportByWorkUuidsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountCompetitiveReportByWorkUuidsReq) ProtoMessage() {} + +func (x *CountCompetitiveReportByWorkUuidsReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[187] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CountCompetitiveReportByWorkUuidsReq.ProtoReflect.Descriptor instead. +func (*CountCompetitiveReportByWorkUuidsReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{187} +} + +func (x *CountCompetitiveReportByWorkUuidsReq) GetWorkUuids() []string { + if x != nil { + return x.WorkUuids + } + return nil +} + +// work_uuid对应的记录数量 +type WorkUuidCount struct { + state protoimpl.MessageState `protogen:"open.v1"` + WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` // 作品UUID + Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count"` // 记录数量 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WorkUuidCount) Reset() { + *x = WorkUuidCount{} + mi := &file_pb_fiee_cast_proto_msgTypes[188] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkUuidCount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkUuidCount) ProtoMessage() {} + +func (x *WorkUuidCount) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[188] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkUuidCount.ProtoReflect.Descriptor instead. +func (*WorkUuidCount) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{188} +} + +func (x *WorkUuidCount) GetWorkUuid() string { + if x != nil { + return x.WorkUuid + } + return "" +} + +func (x *WorkUuidCount) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// 批量根据work_uuid查询记录数量响应 +type CountCompetitiveReportByWorkUuidsResp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []*WorkUuidCount `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` // work_uuid对应的记录数量列表 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CountCompetitiveReportByWorkUuidsResp) Reset() { + *x = CountCompetitiveReportByWorkUuidsResp{} + mi := &file_pb_fiee_cast_proto_msgTypes[189] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CountCompetitiveReportByWorkUuidsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountCompetitiveReportByWorkUuidsResp) ProtoMessage() {} + +func (x *CountCompetitiveReportByWorkUuidsResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[189] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CountCompetitiveReportByWorkUuidsResp.ProtoReflect.Descriptor instead. +func (*CountCompetitiveReportByWorkUuidsResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{189} +} + +func (x *CountCompetitiveReportByWorkUuidsResp) GetData() []*WorkUuidCount { + if x != nil { + return x.Data + } + return nil +} + type WorkListResp_Info struct { state protoimpl.MessageState `protogen:"open.v1"` WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` @@ -13334,7 +15992,7 @@ type WorkListResp_Info struct { func (x *WorkListResp_Info) Reset() { *x = WorkListResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[156] + mi := &file_pb_fiee_cast_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13346,7 +16004,7 @@ func (x *WorkListResp_Info) String() string { func (*WorkListResp_Info) ProtoMessage() {} func (x *WorkListResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[156] + mi := &file_pb_fiee_cast_proto_msgTypes[190] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13586,7 +16244,7 @@ type MediaAccountsResp_Info struct { func (x *MediaAccountsResp_Info) Reset() { *x = MediaAccountsResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[159] + mi := &file_pb_fiee_cast_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13598,7 +16256,7 @@ func (x *MediaAccountsResp_Info) String() string { func (*MediaAccountsResp_Info) ProtoMessage() {} func (x *MediaAccountsResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[159] + mi := &file_pb_fiee_cast_proto_msgTypes[193] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13674,7 +16332,7 @@ type MediaWorksResp_Info struct { func (x *MediaWorksResp_Info) Reset() { *x = MediaWorksResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[160] + mi := &file_pb_fiee_cast_proto_msgTypes[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13686,7 +16344,7 @@ func (x *MediaWorksResp_Info) String() string { func (*MediaWorksResp_Info) ProtoMessage() {} func (x *MediaWorksResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[160] + mi := &file_pb_fiee_cast_proto_msgTypes[194] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13782,7 +16440,7 @@ type PublishResp_Info struct { func (x *PublishResp_Info) Reset() { *x = PublishResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[161] + mi := &file_pb_fiee_cast_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13794,7 +16452,7 @@ func (x *PublishResp_Info) String() string { func (*PublishResp_Info) ProtoMessage() {} func (x *PublishResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[161] + mi := &file_pb_fiee_cast_proto_msgTypes[195] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13824,6 +16482,138 @@ func (x *PublishResp_Info) GetWorkCategory() int32 { return 0 } +type WorkListPublishedResp_Info struct { + state protoimpl.MessageState `protogen:"open.v1"` + WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` // 作品UUID + ArtistUuid string `protobuf:"bytes,2,opt,name=artistUuid,proto3" json:"artistUuid"` // 艺人UUID + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` // 艺人名称 + Title string `protobuf:"bytes,4,opt,name=title,proto3" json:"title"` // 作品标题 + Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content"` // 作品内容 + WorkCategory uint32 `protobuf:"varint,6,opt,name=workCategory,proto3" json:"workCategory"` // 作品类型:1 图文 2 视频 + StatusUpdateTime string `protobuf:"bytes,7,opt,name=statusUpdateTime,proto3" json:"statusUpdateTime"` // 发布成功时间 + VideoUrl string `protobuf:"bytes,8,opt,name=videoUrl,proto3" json:"videoUrl"` // 视频链接(视频类型时返回) + CoverUrl string `protobuf:"bytes,9,opt,name=coverUrl,proto3" json:"coverUrl"` // 封面链接(视频类型时返回) + CoverTimestampMs uint64 `protobuf:"varint,10,opt,name=coverTimestampMs,proto3" json:"coverTimestampMs"` // 封面时间点(视频类型时返回) + Images []string `protobuf:"bytes,11,rep,name=images,proto3" json:"images"` // 图片链接集合(图文类型时返回) + Count int64 `protobuf:"varint,12,opt,name=count,proto3" json:"count"` // 引用次数:该作品被竞品报告引用的次数 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WorkListPublishedResp_Info) Reset() { + *x = WorkListPublishedResp_Info{} + mi := &file_pb_fiee_cast_proto_msgTypes[196] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkListPublishedResp_Info) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkListPublishedResp_Info) ProtoMessage() {} + +func (x *WorkListPublishedResp_Info) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[196] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkListPublishedResp_Info.ProtoReflect.Descriptor instead. +func (*WorkListPublishedResp_Info) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{36, 0} +} + +func (x *WorkListPublishedResp_Info) GetWorkUuid() string { + if x != nil { + return x.WorkUuid + } + return "" +} + +func (x *WorkListPublishedResp_Info) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +func (x *WorkListPublishedResp_Info) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *WorkListPublishedResp_Info) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *WorkListPublishedResp_Info) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *WorkListPublishedResp_Info) GetWorkCategory() uint32 { + if x != nil { + return x.WorkCategory + } + return 0 +} + +func (x *WorkListPublishedResp_Info) GetStatusUpdateTime() string { + if x != nil { + return x.StatusUpdateTime + } + return "" +} + +func (x *WorkListPublishedResp_Info) GetVideoUrl() string { + if x != nil { + return x.VideoUrl + } + return "" +} + +func (x *WorkListPublishedResp_Info) GetCoverUrl() string { + if x != nil { + return x.CoverUrl + } + return "" +} + +func (x *WorkListPublishedResp_Info) GetCoverTimestampMs() uint64 { + if x != nil { + return x.CoverTimestampMs + } + return 0 +} + +func (x *WorkListPublishedResp_Info) GetImages() []string { + if x != nil { + return x.Images + } + return nil +} + +func (x *WorkListPublishedResp_Info) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + type RefreshWorkListResp_Info struct { state protoimpl.MessageState `protogen:"open.v1"` WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` @@ -13835,7 +16625,7 @@ type RefreshWorkListResp_Info struct { func (x *RefreshWorkListResp_Info) Reset() { *x = RefreshWorkListResp_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[162] + mi := &file_pb_fiee_cast_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13847,7 +16637,7 @@ func (x *RefreshWorkListResp_Info) String() string { func (*RefreshWorkListResp_Info) ProtoMessage() {} func (x *RefreshWorkListResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[162] + mi := &file_pb_fiee_cast_proto_msgTypes[197] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13860,7 +16650,7 @@ func (x *RefreshWorkListResp_Info) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshWorkListResp_Info.ProtoReflect.Descriptor instead. func (*RefreshWorkListResp_Info) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{44, 0} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{46, 0} } func (x *RefreshWorkListResp_Info) GetWorkUuid() string { @@ -13898,7 +16688,7 @@ type RefreshWorkListResp_Info_PlatformInfo struct { func (x *RefreshWorkListResp_Info_PlatformInfo) Reset() { *x = RefreshWorkListResp_Info_PlatformInfo{} - mi := &file_pb_fiee_cast_proto_msgTypes[163] + mi := &file_pb_fiee_cast_proto_msgTypes[198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13910,7 +16700,7 @@ func (x *RefreshWorkListResp_Info_PlatformInfo) String() string { func (*RefreshWorkListResp_Info_PlatformInfo) ProtoMessage() {} func (x *RefreshWorkListResp_Info_PlatformInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[163] + mi := &file_pb_fiee_cast_proto_msgTypes[198] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13923,7 +16713,7 @@ func (x *RefreshWorkListResp_Info_PlatformInfo) ProtoReflect() protoreflect.Mess // Deprecated: Use RefreshWorkListResp_Info_PlatformInfo.ProtoReflect.Descriptor instead. func (*RefreshWorkListResp_Info_PlatformInfo) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{44, 0, 0} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{46, 0, 0} } func (x *RefreshWorkListResp_Info_PlatformInfo) GetPublishMediaID() string { @@ -13981,7 +16771,7 @@ type UpdateOAuthReq_Info struct { func (x *UpdateOAuthReq_Info) Reset() { *x = UpdateOAuthReq_Info{} - mi := &file_pb_fiee_cast_proto_msgTypes[164] + mi := &file_pb_fiee_cast_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13993,7 +16783,7 @@ func (x *UpdateOAuthReq_Info) String() string { func (*UpdateOAuthReq_Info) ProtoMessage() {} func (x *UpdateOAuthReq_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[164] + mi := &file_pb_fiee_cast_proto_msgTypes[199] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14006,7 +16796,7 @@ func (x *UpdateOAuthReq_Info) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateOAuthReq_Info.ProtoReflect.Descriptor instead. func (*UpdateOAuthReq_Info) Descriptor() ([]byte, []int) { - return file_pb_fiee_cast_proto_rawDescGZIP(), []int{53, 0} + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{55, 0} } func (x *UpdateOAuthReq_Info) GetArtistUuid() string { @@ -14053,7 +16843,7 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\n" + "profileKey\x18\x01 \x01(\tR\n" + "profileKey\x12\x12\n" + - "\x04AsID\x18\x02 \x01(\tR\x04AsID\"\xe8\x03\n" + + "\x04AsID\x18\x02 \x01(\tR\x04AsID\"\x82\x04\n" + "\x10MediaUserListReq\x12\x1c\n" + "\tartistVal\x18\x01 \x01(\tR\tartistVal\x12\x1e\n" + "\n" + @@ -14078,7 +16868,8 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\tneedStats\x18\f \x01(\bR\tneedStats\x12\x1e\n" + "\n" + "needAsInfo\x18\r \x01(\bR\n" + - "needAsInfo\"\xed\x05\n" + + "needAsInfo\x12\x18\n" + + "\aexpired\x18\x0e \x01(\x05R\aexpired\"\x87\x06\n" + "\rMediaUserInfo\x12*\n" + "\x10platformUserName\x18\x01 \x01(\tR\x10platformUserName\x12\x1e\n" + "\n" + @@ -14106,7 +16897,8 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\x11uploadedPostCount\x18\x0f \x01(\x05R\x11uploadedPostCount\x12,\n" + "\x11releasedPostTotal\x18\x10 \x01(\x05R\x11releasedPostTotal\x12$\n" + "\x06asInfo\x18\x11 \x01(\v2\f.Cast.AsInfoR\x06asInfo\x12\"\n" + - "\fartistSubNum\x18\x12 \x01(\tR\fartistSubNum\"R\n" + + "\fartistSubNum\x18\x12 \x01(\tR\fartistSubNum\x12\x18\n" + + "\aexpired\x18\x13 \x01(\x05R\aexpired\"R\n" + "\x11MediaUserListResp\x12'\n" + "\x04data\x18\x01 \x03(\v2\x13.Cast.MediaUserInfoR\x04data\x12\x14\n" + "\x05count\x18\x02 \x01(\x03R\x05count\"\xd1\x03\n" + @@ -14236,7 +17028,7 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "platformID\x18\x02 \x01(\x0e2\x14.Cast.PlatformIDENUMR\n" + "platformID\"B\n" + "\x17MediaInfoByPlatformResp\x12'\n" + - "\x04info\x18\x01 \x01(\v2\x13.Cast.MediaUserInfoR\x04info\"\xd9\b\n" + + "\x04info\x18\x01 \x01(\v2\x13.Cast.MediaUserInfoR\x04info\"\x85\t\n" + "\vWorkListReq\x12\x1c\n" + "\tartistVal\x18\x01 \x01(\tR\tartistVal\x12\x1e\n" + "\n" + @@ -14286,7 +17078,8 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\rblueskyStatus\x18\x1f \x01(\rR\rblueskyStatus\x12\x1e\n" + "\n" + "artistUuid\x18 \x01(\tR\n" + - "artistUuid\"\xd6\t\n" + + "artistUuid\x12*\n" + + "\x10submitTimeMonths\x18! \x03(\tR\x10submitTimeMonths\"\xd6\t\n" + "\fWorkListResp\x12+\n" + "\x04data\x18\x01 \x03(\v2\x17.Cast.WorkListResp.InfoR\x04data\x12\x14\n" + "\x05count\x18\x02 \x01(\x03R\x05count\x1a\x82\t\n" + @@ -14483,7 +17276,34 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "artistName\x12 \n" + "\vartistPhone\x18\x04 \x01(\tR\vartistPhone\x120\n" + "\x13artistPhoneAreaCode\x18\x05 \x01(\tR\x13artistPhoneAreaCode\x12\"\n" + - "\fworkCategory\x18\x06 \x01(\rR\fworkCategory\"/\n" + + "\fworkCategory\x18\x06 \x01(\rR\fworkCategory\"f\n" + + "\x14WorkListPublishedReq\x12\x1e\n" + + "\n" + + "artistUuid\x18\x01 \x01(\tR\n" + + "artistUuid\x12\x12\n" + + "\x04page\x18\x02 \x01(\x05R\x04page\x12\x1a\n" + + "\bpageSize\x18\x03 \x01(\x05R\bpageSize\"\xda\x03\n" + + "\x15WorkListPublishedResp\x12\x14\n" + + "\x05count\x18\x01 \x01(\x03R\x05count\x124\n" + + "\x04data\x18\x02 \x03(\v2 .Cast.WorkListPublishedResp.InfoR\x04data\x1a\xf4\x02\n" + + "\x04Info\x12\x1a\n" + + "\bworkUuid\x18\x01 \x01(\tR\bworkUuid\x12\x1e\n" + + "\n" + + "artistUuid\x18\x02 \x01(\tR\n" + + "artistUuid\x12\x1e\n" + + "\n" + + "artistName\x18\x03 \x01(\tR\n" + + "artistName\x12\x14\n" + + "\x05title\x18\x04 \x01(\tR\x05title\x12\x18\n" + + "\acontent\x18\x05 \x01(\tR\acontent\x12\"\n" + + "\fworkCategory\x18\x06 \x01(\rR\fworkCategory\x12*\n" + + "\x10statusUpdateTime\x18\a \x01(\tR\x10statusUpdateTime\x12\x1a\n" + + "\bvideoUrl\x18\b \x01(\tR\bvideoUrl\x12\x1a\n" + + "\bcoverUrl\x18\t \x01(\tR\bcoverUrl\x12*\n" + + "\x10coverTimestampMs\x18\n" + + " \x01(\x04R\x10coverTimestampMs\x12\x16\n" + + "\x06images\x18\v \x03(\tR\x06images\x12\x14\n" + + "\x05count\x18\f \x01(\x03R\x05count\"/\n" + "\rArtistInfoReq\x12\x1e\n" + "\n" + "artistUuid\x18\x01 \x01(\tR\n" + @@ -15468,6 +18288,13 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\tupdatedAt\x18\t \x01(\x05R\tupdatedAt\"_\n" + "\x19GetArtistAyrShareInfoResp\x12,\n" + "\x04data\x18\x01 \x03(\v2\x18.Cast.ArtistAyrShareInfoR\x04data\x12\x14\n" + + "\x05count\x18\x02 \x01(\x03R\x05count\"y\n" + + "%GetArtistAyrShareInfoByPlatformIDsReq\x12 \n" + + "\vplatformIDs\x18\x01 \x03(\rR\vplatformIDs\x12\x12\n" + + "\x04page\x18\x02 \x01(\x05R\x04page\x12\x1a\n" + + "\bpageSize\x18\x03 \x01(\x05R\bpageSize\"l\n" + + "&GetArtistAyrShareInfoByPlatformIDsResp\x12,\n" + + "\x04data\x18\x01 \x03(\v2\x18.Cast.ArtistAyrShareInfoR\x04data\x12\x14\n" + "\x05count\x18\x02 \x01(\x03R\x05count\"\x9b\x01\n" + "\x17ListWorkPlatformInfoReq\x12 \n" + "\vplatformIDs\x18\x01 \x03(\rR\vplatformIDs\x12.\n" + @@ -15640,7 +18467,252 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\x1fCalculateMediaMetricsByWorksReq\x12\x12\n" + "\x04date\x18\x01 \x01(\x05R\x04date\"<\n" + " CalculateMediaMetricsByWorksResp\x12\x18\n" + - "\asuccess\x18\x01 \x01(\bR\asuccess*T\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\"\x88\x01\n" + + "\x10UpdateCastTagReq\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x18\n" + + "\ahashTag\x18\x02 \x01(\tR\ahashTag\x12\x16\n" + + "\x06source\x18\x03 \x01(\rR\x06source\x12\x16\n" + + "\x06status\x18\x04 \x01(\rR\x06status\x12\x16\n" + + "\x06remark\x18\x05 \x01(\tR\x06remark\"'\n" + + "\x11UpdateCastTagResp\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\"\x9d\x03\n" + + "\x0fListCastTagsReq\x12\x18\n" + + "\ahashTag\x18\x01 \x01(\tR\ahashTag\x12\x16\n" + + "\x06source\x18\x02 \x01(\rR\x06source\x12\x16\n" + + "\x06status\x18\x03 \x01(\rR\x06status\x124\n" + + "\x15statusUpdateTimeStart\x18\x04 \x01(\tR\x15statusUpdateTimeStart\x120\n" + + "\x13statusUpdateTimeEnd\x18\x05 \x01(\tR\x13statusUpdateTimeEnd\x12&\n" + + "\x0ecreatedAtStart\x18\x06 \x01(\tR\x0ecreatedAtStart\x12\"\n" + + "\fcreatedAtEnd\x18\a \x01(\tR\fcreatedAtEnd\x12.\n" + + "\x12isWatchCountCalled\x18\f \x01(\rR\x12isWatchCountCalled\x12\x18\n" + + "\aorderBy\x18\b \x01(\tR\aorderBy\x12\x12\n" + + "\x04sort\x18\t \x01(\tR\x04sort\x12\x12\n" + + "\x04page\x18\n" + + " \x01(\x05R\x04page\x12\x1a\n" + + "\bpageSize\x18\v \x01(\x05R\bpageSize\"\x9f\x03\n" + + "\vCastTagInfo\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x18\n" + + "\ahashTag\x18\x02 \x01(\tR\ahashTag\x12 \n" + + "\vcreatorUuid\x18\x03 \x01(\tR\vcreatorUuid\x12 \n" + + "\vcreatorName\x18\x04 \x01(\tR\vcreatorName\x12\x16\n" + + "\x06source\x18\x05 \x01(\rR\x06source\x12\x1e\n" + + "\n" + + "quoteCount\x18\x06 \x01(\x05R\n" + + "quoteCount\x12\x1e\n" + + "\n" + + "watchCount\x18\a \x01(\x05R\n" + + "watchCount\x12\x16\n" + + "\x06status\x18\b \x01(\rR\x06status\x12\x16\n" + + "\x06remark\x18\t \x01(\tR\x06remark\x12*\n" + + "\x10statusUpdateTime\x18\n" + + " \x01(\tR\x10statusUpdateTime\x12 \n" + + "\vcreatedDate\x18\v \x01(\tR\vcreatedDate\x12\x18\n" + + "\asuccess\x18\f \x01(\bR\asuccess\x12.\n" + + "\x12isWatchCountCalled\x18\r \x01(\rR\x12isWatchCountCalled\"O\n" + + "\x10ListCastTagsResp\x12%\n" + + "\x04data\x18\x01 \x03(\v2\x11.Cast.CastTagInfoR\x04data\x12\x14\n" + + "\x05count\x18\x02 \x01(\x03R\x05count\">\n" + + "\x15UpdateCastTagBatchReq\x12%\n" + + "\x04data\x18\x01 \x03(\v2\x11.Cast.CastTagInfoR\x04data\"\x81\x01\n" + + "\x16UpdateCastTagBatchResp\x12%\n" + + "\x04data\x18\x01 \x03(\v2\x11.Cast.CastTagInfoR\x04data\x12\"\n" + + "\fsuccessCount\x18\x02 \x01(\x05R\fsuccessCount\x12\x1c\n" + + "\tfailCount\x18\x03 \x01(\x05R\tfailCount\"?\n" + + "\x16BatchUpdateCastTagsReq\x12%\n" + + "\x04data\x18\x01 \x03(\v2\x11.Cast.CastTagInfoR\x04data\"v\n" + + "\x16UpdateCastTagStatusReq\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x18\n" + + "\ahashTag\x18\x02 \x01(\tR\ahashTag\x12\x16\n" + + "\x06status\x18\x03 \x01(\rR\x06status\x12\x16\n" + + "\x06remark\x18\x04 \x01(\tR\x06remark\"N\n" + + " RecalculateCastTagQuoteCountResp\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x10\n" + + "\x03msg\x18\x02 \x01(\tR\x03msg\"\xfe\x02\n" + + "\x1aCreateCompetitiveReportReq\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x16\n" + + "\x06subNum\x18\x02 \x01(\tR\x06subNum\x12\x1e\n" + + "\n" + + "artistName\x18\x03 \x01(\tR\n" + + "artistName\x12\x1a\n" + + "\bartistID\x18\x04 \x01(\tR\bartistID\x12 \n" + + "\vartistPhone\x18\x05 \x01(\tR\vartistPhone\x12$\n" + + "\rreportContent\x18\x06 \x01(\tR\rreportContent\x12\x1a\n" + + "\bimageUrl\x18\a \x01(\tR\bimageUrl\x12\x14\n" + + "\x05title\x18\b \x01(\tR\x05title\x12\x16\n" + + "\x06pdfUrl\x18\t \x01(\tR\x06pdfUrl\x12\x1c\n" + + "\tworkUuids\x18\n" + + " \x03(\tR\tworkUuids\x12\x16\n" + + "\x06source\x18\v \x01(\rR\x06source\x12\x16\n" + + "\x06remark\x18\f \x01(\tR\x06remark\x12\x18\n" + + "\asuccess\x18\r \x01(\bR\asuccess\"1\n" + + "\x1bCreateCompetitiveReportResp\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\"\xa0\x01\n" + + "\x1aUpdateCompetitiveReportReq\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12$\n" + + "\rreportContent\x18\x02 \x01(\tR\rreportContent\x12\x14\n" + + "\x05title\x18\x03 \x01(\tR\x05title\x12\x1a\n" + + "\bimageUrl\x18\x04 \x01(\tR\bimageUrl\x12\x16\n" + + "\x06pdfUrl\x18\x05 \x01(\tR\x06pdfUrl\"\xbc\x02\n" + + " UpdateCompetitiveReportStatusReq\x124\n" + + "\n" + + "workAction\x18\x01 \x01(\x0e2\x14.Cast.WorkActionENUMR\n" + + "workAction\x12\x12\n" + + "\x04uuid\x18\x02 \x01(\tR\x04uuid\x12\x1e\n" + + "\n" + + "approvalID\x18\x03 \x01(\tR\n" + + "approvalID\x12$\n" + + "\rapprovalReply\x18\x04 \x01(\tR\rapprovalReply\x12$\n" + + "\rconfirmRemark\x18\x05 \x01(\tR\rconfirmRemark\x12$\n" + + "\rconfirmStatus\x18\x06 \x01(\rR\rconfirmStatus\x12\x1a\n" + + "\bcostType\x18\a \x01(\rR\bcostType\x12 \n" + + "\vconfirmType\x18\b \x01(\rR\vconfirmType\"Z\n" + + "$UpdateCompetitiveReportApprovalIDReq\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x1e\n" + + "\n" + + "approvalID\x18\x02 \x01(\tR\n" + + "approvalID\"\xca\x02\n" + + "\x18CompetitiveReportLogInfo\x12\x1e\n" + + "\n" + + "reportUuid\x18\x01 \x01(\tR\n" + + "reportUuid\x12\x14\n" + + "\x05title\x18\x02 \x01(\tR\x05title\x12\x1e\n" + + "\n" + + "updateTime\x18\x03 \x01(\tR\n" + + "updateTime\x12*\n" + + "\x10workReportStatus\x18\x04 \x01(\rR\x10workReportStatus\x12\x1e\n" + + "\n" + + "artistName\x18\x05 \x01(\tR\n" + + "artistName\x12\x1e\n" + + "\n" + + "artistUuid\x18\x06 \x01(\tR\n" + + "artistUuid\x12(\n" + + "\x0freportExtraData\x18\a \x01(\tR\x0freportExtraData\x12\"\n" + + "\foperatorName\x18\b \x01(\tR\foperatorName\x12\x1e\n" + + "\n" + + "operatorID\x18\t \x01(\tR\n" + + "operatorID\"\xc2\x01\n" + + "\x16CompetitiveReportExtra\x12\x1e\n" + + "\n" + + "reportUuid\x18\x01 \x01(\tR\n" + + "reportUuid\x120\n" + + "\x13artistConfirmedTime\x18\x02 \x01(\x03R\x13artistConfirmedTime\x12\x1a\n" + + "\bcostType\x18\x03 \x01(\rR\bcostType\x12\x1c\n" + + "\tcreatedAt\x18\x04 \x01(\x05R\tcreatedAt\x12\x1c\n" + + "\tupdatedAt\x18\x05 \x01(\x05R\tupdatedAt\"3\n" + + "\x1dGetCompetitiveReportDetailReq\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\"3\n" + + "\x1dGetCompetitiveReportForAppReq\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\"\xb6\x02\n" + + "\x1eGetCompetitiveReportForAppResp\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x16\n" + + "\x06subNum\x18\x02 \x01(\tR\x06subNum\x12\x1e\n" + + "\n" + + "artistName\x18\x03 \x01(\tR\n" + + "artistName\x12$\n" + + "\rreportContent\x18\x04 \x01(\tR\rreportContent\x12\x1a\n" + + "\bimageUrl\x18\x05 \x01(\tR\bimageUrl\x12\x14\n" + + "\x05title\x18\x06 \x01(\tR\x05title\x12\x16\n" + + "\x06pdfUrl\x18\a \x01(\tR\x06pdfUrl\x12\x1c\n" + + "\tworkUuids\x18\b \x03(\tR\tworkUuids\x12\x1c\n" + + "\tcreatedAt\x18\t \x01(\tR\tcreatedAt\x12\x1c\n" + + "\tupdatedAt\x18\n" + + " \x01(\tR\tupdatedAt\"\xbe\x06\n" + + "\x1eGetCompetitiveReportDetailResp\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x16\n" + + "\x06subNum\x18\x02 \x01(\tR\x06subNum\x12\x1e\n" + + "\n" + + "artistName\x18\x03 \x01(\tR\n" + + "artistName\x12\x1a\n" + + "\bartistID\x18\x04 \x01(\tR\bartistID\x12 \n" + + "\vartistPhone\x18\x05 \x01(\tR\vartistPhone\x12$\n" + + "\rreportContent\x18\x06 \x01(\tR\rreportContent\x12\x1a\n" + + "\bimageUrl\x18\a \x01(\tR\bimageUrl\x12\x14\n" + + "\x05title\x18\b \x01(\tR\x05title\x12\x1e\n" + + "\n" + + "operatorID\x18\t \x01(\tR\n" + + "operatorID\x12\"\n" + + "\foperatorName\x18\n" + + " \x01(\tR\foperatorName\x12*\n" + + "\x10workReportStatus\x18\v \x01(\rR\x10workReportStatus\x12\x16\n" + + "\x06reason\x18\f \x01(\tR\x06reason\x12 \n" + + "\vcomfirmType\x18\r \x01(\x05R\vcomfirmType\x12\x12\n" + + "\x04cost\x18\x0e \x01(\rR\x04cost\x12\x1e\n" + + "\n" + + "submitTime\x18\x0f \x01(\tR\n" + + "submitTime\x12*\n" + + "\x10statusUpdateTime\x18\x10 \x01(\tR\x10statusUpdateTime\x12\x1e\n" + + "\n" + + "approvalID\x18\x11 \x01(\tR\n" + + "approvalID\x12\x16\n" + + "\x06pdfUrl\x18\x12 \x01(\tR\x06pdfUrl\x12$\n" + + "\rconfirmRemark\x18\x13 \x01(\tR\rconfirmRemark\x12\x1c\n" + + "\tworkUuids\x18\x14 \x03(\tR\tworkUuids\x12D\n" + + "\rreportLogData\x18\x15 \x03(\v2\x1e.Cast.CompetitiveReportLogInfoR\rreportLogData\x122\n" + + "\x05extra\x18\x16 \x01(\v2\x1c.Cast.CompetitiveReportExtraR\x05extra\x12\x1c\n" + + "\tcreatedAt\x18\x17 \x01(\tR\tcreatedAt\x12\x1c\n" + + "\tupdatedAt\x18\x18 \x01(\tR\tupdatedAt\"\xce\x03\n" + + "\x18ListCompetitiveReportReq\x12\x1a\n" + + "\buuidList\x18\x01 \x03(\tR\buuidList\x12\x16\n" + + "\x06subNum\x18\x02 \x01(\tR\x06subNum\x12\x1c\n" + + "\tartistVal\x18\x03 \x01(\tR\tartistVal\x12\x16\n" + + "\x06status\x18\x04 \x01(\rR\x06status\x12 \n" + + "\vcomfirmType\x18\x05 \x01(\x05R\vcomfirmType\x124\n" + + "\x15statusUpdateTimeStart\x18\x06 \x01(\tR\x15statusUpdateTimeStart\x120\n" + + "\x13statusUpdateTimeEnd\x18\a \x01(\tR\x13statusUpdateTimeEnd\x12(\n" + + "\x0fsubmitStartTime\x18\b \x01(\tR\x0fsubmitStartTime\x12$\n" + + "\rsubmitEndTime\x18\t \x01(\tR\rsubmitEndTime\x12\x12\n" + + "\x04page\x18\n" + + " \x01(\x05R\x04page\x12\x1a\n" + + "\bpageSize\x18\v \x01(\x05R\bpageSize\x12\x1e\n" + + "\n" + + "statusList\x18\f \x03(\rR\n" + + "statusList\x12\x1e\n" + + "\n" + + "artistUuid\x18\r \x01(\tR\n" + + "artistUuid\"\xe5\x03\n" + + "\x15CompetitiveReportInfo\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x16\n" + + "\x06subNum\x18\x02 \x01(\tR\x06subNum\x12\x1e\n" + + "\n" + + "artistName\x18\x03 \x01(\tR\n" + + "artistName\x12\x1a\n" + + "\bartistID\x18\x04 \x01(\tR\bartistID\x12 \n" + + "\vartistPhone\x18\x05 \x01(\tR\vartistPhone\x12\x1e\n" + + "\n" + + "operatorID\x18\x06 \x01(\tR\n" + + "operatorID\x12\"\n" + + "\foperatorName\x18\a \x01(\tR\foperatorName\x12*\n" + + "\x10workReportStatus\x18\b \x01(\rR\x10workReportStatus\x12\x16\n" + + "\x06reason\x18\t \x01(\tR\x06reason\x12 \n" + + "\vcomfirmType\x18\n" + + " \x01(\x05R\vcomfirmType\x12\x1e\n" + + "\n" + + "submitTime\x18\v \x01(\tR\n" + + "submitTime\x12*\n" + + "\x10statusUpdateTime\x18\f \x01(\tR\x10statusUpdateTime\x12\x16\n" + + "\x06pdfUrl\x18\r \x01(\tR\x06pdfUrl\x12\x1e\n" + + "\n" + + "approvalID\x18\x0e \x01(\tR\n" + + "approvalID\x12\x14\n" + + "\x05title\x18\x0f \x01(\tR\x05title\"b\n" + + "\x19ListCompetitiveReportResp\x12/\n" + + "\x04data\x18\x01 \x03(\v2\x1b.Cast.CompetitiveReportInfoR\x04data\x12\x14\n" + + "\x05count\x18\x02 \x01(\x03R\x05count\"0\n" + + "\x1aDeleteCompetitiveReportReq\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\"]\n" + + "\x1fImportCompetitiveReportBatchReq\x12:\n" + + "\areports\x18\x01 \x03(\v2 .Cast.CreateCompetitiveReportReqR\areports\"\xa0\x01\n" + + " ImportCompetitiveReportBatchResp\x12:\n" + + "\areports\x18\x01 \x03(\v2 .Cast.CreateCompetitiveReportReqR\areports\x12\"\n" + + "\fsuccessCount\x18\x02 \x01(\x05R\fsuccessCount\x12\x1c\n" + + "\tfailCount\x18\x03 \x01(\x05R\tfailCount\"D\n" + + "$CountCompetitiveReportByWorkUuidsReq\x12\x1c\n" + + "\tworkUuids\x18\x01 \x03(\tR\tworkUuids\"A\n" + + "\rWorkUuidCount\x12\x1a\n" + + "\bworkUuid\x18\x01 \x01(\tR\bworkUuid\x12\x14\n" + + "\x05count\x18\x02 \x01(\x03R\x05count\"P\n" + + "%CountCompetitiveReportByWorkUuidsResp\x12'\n" + + "\x04data\x18\x01 \x03(\v2\x13.Cast.WorkUuidCountR\x04data*T\n" + "\x0ePlatformIDENUM\x12\v\n" + "\aUNKNOWN\x10\x00\x12\n" + "\n" + @@ -15682,7 +18754,7 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\x05TITLE\x10\x01\x12\v\n" + "\aCONTENT\x10\x02\x12\t\n" + "\x05IMAGE\x10\x03\x12\x10\n" + - "\fLONG_CONTENT\x10\x042\xe7'\n" + + "\fLONG_CONTENT\x10\x042\xb74\n" + "\x04Cast\x12B\n" + "\rMediaUserList\x12\x16.Cast.MediaUserListReq\x1a\x17.Cast.MediaUserListResp\"\x00\x12Q\n" + "\x12UpdateMediaAccount\x12\x1b.Cast.UpdateMediaAccountReq\x1a\x1c.Cast.UpdateMediaAccountResp\"\x00\x12B\n" + @@ -15692,7 +18764,8 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\x0fUpdateWorkVideo\x12\x18.Cast.UpdateWorkVideoReq\x1a\x19.Cast.UpdateWorkVideoResp\"\x00\x126\n" + "\tMediaInfo\x12\x12.Cast.MediaInfoReq\x1a\x13.Cast.MediaInfoResp\"\x00\x12T\n" + "\x13MediaInfoByPlatform\x12\x1c.Cast.MediaInfoByPlatformReq\x1a\x1d.Cast.MediaInfoByPlatformResp\"\x00\x123\n" + - "\bWorkList\x12\x11.Cast.WorkListReq\x1a\x12.Cast.WorkListResp\"\x00\x129\n" + + "\bWorkList\x12\x11.Cast.WorkListReq\x1a\x12.Cast.WorkListResp\"\x00\x12N\n" + + "\x11WorkListPublished\x12\x1a.Cast.WorkListPublishedReq\x1a\x1b.Cast.WorkListPublishedResp\"\x00\x129\n" + "\n" + "WorkDetail\x12\x13.Cast.WorkDetailReq\x1a\x14.Cast.WorkDetailResp\"\x00\x12?\n" + "\fUpdateStatus\x12\x15.Cast.UpdateStatusReq\x1a\x16.google.protobuf.Empty\"\x00\x12B\n" + @@ -15750,12 +18823,28 @@ const file_pb_fiee_cast_proto_rawDesc = "" + "\x15ListMediaMetricsDaily\x12\x1e.Cast.ListMediaMetricsDailyReq\x1a\x1f.Cast.ListMediaMetricsDailyResp\"\x00\x12W\n" + "\x14ListWorkMetricsDaily\x12\x1d.Cast.ListWorkMetricsDailyReq\x1a\x1e.Cast.ListWorkMetricsDailyResp\"\x00\x12o\n" + "\x1cCalculateMediaMetricsByWorks\x12%.Cast.CalculateMediaMetricsByWorksReq\x1a&.Cast.CalculateMediaMetricsByWorksResp\"\x00\x12Z\n" + - "\x15GetArtistAyrShareInfo\x12\x1e.Cast.GetArtistAyrShareInfoReq\x1a\x1f.Cast.GetArtistAyrShareInfoResp\"\x00\x12W\n" + + "\x15GetArtistAyrShareInfo\x12\x1e.Cast.GetArtistAyrShareInfoReq\x1a\x1f.Cast.GetArtistAyrShareInfoResp\"\x00\x12\x81\x01\n" + + "\"GetArtistAyrShareInfoByPlatformIDs\x12+.Cast.GetArtistAyrShareInfoByPlatformIDsReq\x1a,.Cast.GetArtistAyrShareInfoByPlatformIDsResp\"\x00\x12W\n" + "\x14ListWorkPlatformInfo\x12\x1d.Cast.ListWorkPlatformInfoReq\x1a\x1e.Cast.ListWorkPlatformInfoResp\"\x00\x12E\n" + "\x0eUpsertTaskList\x12\x17.Cast.UpsertTaskListReq\x1a\x18.Cast.UpsertTaskListResp\"\x00\x12<\n" + "\vGetTaskList\x12\x14.Cast.GetTaskListReq\x1a\x15.Cast.GetTaskListResp\"\x00\x12?\n" + "\fListTaskList\x12\x15.Cast.ListTaskListReq\x1a\x16.Cast.ListTaskListResp\"\x00\x12C\n" + - "\x0eDeleteTaskList\x12\x17.Cast.DeleteTaskListReq\x1a\x16.google.protobuf.Empty\"\x00B\rZ\v./cast;castb\x06proto3" + "\x0eDeleteTaskList\x12\x17.Cast.DeleteTaskListReq\x1a\x16.google.protobuf.Empty\"\x00\x12B\n" + + "\rUpdateCastTag\x12\x16.Cast.UpdateCastTagReq\x1a\x17.Cast.UpdateCastTagResp\"\x00\x12?\n" + + "\fListCastTags\x12\x15.Cast.ListCastTagsReq\x1a\x16.Cast.ListCastTagsResp\"\x00\x12Q\n" + + "\x12UpdateCastTagBatch\x12\x1b.Cast.UpdateCastTagBatchReq\x1a\x1c.Cast.UpdateCastTagBatchResp\"\x00\x12M\n" + + "\x13BatchUpdateCastTags\x12\x1c.Cast.BatchUpdateCastTagsReq\x1a\x16.google.protobuf.Empty\"\x00\x12M\n" + + "\x13UpdateCastTagStatus\x12\x1c.Cast.UpdateCastTagStatusReq\x1a\x16.google.protobuf.Empty\"\x00\x12`\n" + + "\x1cRecalculateCastTagQuoteCount\x12\x16.google.protobuf.Empty\x1a&.Cast.RecalculateCastTagQuoteCountResp\"\x00\x12`\n" + + "\x17CreateCompetitiveReport\x12 .Cast.CreateCompetitiveReportReq\x1a!.Cast.CreateCompetitiveReportResp\"\x00\x12o\n" + + "\x1cImportCompetitiveReportBatch\x12%.Cast.ImportCompetitiveReportBatchReq\x1a&.Cast.ImportCompetitiveReportBatchResp\"\x00\x12a\n" + + "\x1dUpdateCompetitiveReportStatus\x12&.Cast.UpdateCompetitiveReportStatusReq\x1a\x16.google.protobuf.Empty\"\x00\x12c\n" + + "\x14GetCompetitiveReport\x12#.Cast.GetCompetitiveReportDetailReq\x1a$.Cast.GetCompetitiveReportDetailResp\"\x00\x12i\n" + + "\x1aGetCompetitiveReportForApp\x12#.Cast.GetCompetitiveReportForAppReq\x1a$.Cast.GetCompetitiveReportForAppResp\"\x00\x12Z\n" + + "\x15ListCompetitiveReport\x12\x1e.Cast.ListCompetitiveReportReq\x1a\x1f.Cast.ListCompetitiveReportResp\"\x00\x12U\n" + + "\x17DeleteCompetitiveReport\x12 .Cast.DeleteCompetitiveReportReq\x1a\x16.google.protobuf.Empty\"\x00\x12i\n" + + "!UpdateCompetitiveReportApprovalID\x12*.Cast.UpdateCompetitiveReportApprovalIDReq\x1a\x16.google.protobuf.Empty\"\x00\x12~\n" + + "!CountCompetitiveReportByWorkUuids\x12*.Cast.CountCompetitiveReportByWorkUuidsReq\x1a+.Cast.CountCompetitiveReportByWorkUuidsResp\"\x00B\rZ\v./cast;castb\x06proto3" var ( file_pb_fiee_cast_proto_rawDescOnce sync.Once @@ -15770,181 +18859,216 @@ func file_pb_fiee_cast_proto_rawDescGZIP() []byte { } var file_pb_fiee_cast_proto_enumTypes = make([]protoimpl.EnumInfo, 7) -var file_pb_fiee_cast_proto_msgTypes = make([]protoimpl.MessageInfo, 165) +var file_pb_fiee_cast_proto_msgTypes = make([]protoimpl.MessageInfo, 200) var file_pb_fiee_cast_proto_goTypes = []any{ - (PlatformIDENUM)(0), // 0: Cast.PlatformIDENUM - (AuthStatusENUM)(0), // 1: Cast.AuthStatusENUM - (WorkActionENUM)(0), // 2: Cast.WorkActionENUM - (AutoPublishENUM)(0), // 3: Cast.AutoPublishENUM - (PublishStatusENUM)(0), // 4: Cast.PublishStatusENUM - (ConfirmFailENUM)(0), // 5: Cast.ConfirmFailENUM - (CategoryENUM)(0), // 6: Cast.CategoryENUM - (*AsInfo)(nil), // 7: Cast.AsInfo - (*MediaUserListReq)(nil), // 8: Cast.MediaUserListReq - (*MediaUserInfo)(nil), // 9: Cast.MediaUserInfo - (*MediaUserListResp)(nil), // 10: Cast.MediaUserListResp - (*UpdateMediaAccountReq)(nil), // 11: Cast.UpdateMediaAccountReq - (*UpdateMediaAccountResp)(nil), // 12: Cast.UpdateMediaAccountResp - (*UnbindManagerReq)(nil), // 13: Cast.UnbindManagerReq - (*UnbindManagerResp)(nil), // 14: Cast.UnbindManagerResp - (*BindManagerReq)(nil), // 15: Cast.BindManagerReq - (*UpdateWorkImageReq)(nil), // 16: Cast.UpdateWorkImageReq - (*UpdateWorkImageResp)(nil), // 17: Cast.UpdateWorkImageResp - (*PublishConfig)(nil), // 18: Cast.PublishConfig - (*UpdateWorkVideoReq)(nil), // 19: Cast.UpdateWorkVideoReq - (*UpdateWorkVideoResp)(nil), // 20: Cast.UpdateWorkVideoResp - (*MediaInfoReq)(nil), // 21: Cast.MediaInfoReq - (*MediaInfoResp)(nil), // 22: Cast.MediaInfoResp - (*MediaInfoByPlatformReq)(nil), // 23: Cast.MediaInfoByPlatformReq - (*MediaInfoByPlatformResp)(nil), // 24: Cast.MediaInfoByPlatformResp - (*WorkListReq)(nil), // 25: Cast.WorkListReq - (*WorkListResp)(nil), // 26: Cast.WorkListResp - (*WorkDetailReq)(nil), // 27: Cast.WorkDetailReq - (*WorkLogInfo)(nil), // 28: Cast.WorkLogInfo - (*WorkDetailResp)(nil), // 29: Cast.WorkDetailResp - (*UpdateStatusReq)(nil), // 30: Cast.UpdateStatusReq - (*MediaAccountsReq)(nil), // 31: Cast.MediaAccountsReq - (*MediaAccountsResp)(nil), // 32: Cast.MediaAccountsResp - (*MediaWorksReq)(nil), // 33: Cast.MediaWorksReq - (*MediaWorksResp)(nil), // 34: Cast.MediaWorksResp - (*PublishReq)(nil), // 35: Cast.PublishReq - (*PublishResp)(nil), // 36: Cast.PublishResp - (*RePublishReq)(nil), // 37: Cast.RePublishReq - (*RePublishResp)(nil), // 38: Cast.RePublishResp - (*DelWorkReq)(nil), // 39: Cast.DelWorkReq - (*WorkInfoReq)(nil), // 40: Cast.WorkInfoReq - (*WorkInfoResp)(nil), // 41: Cast.WorkInfoResp - (*ArtistInfoReq)(nil), // 42: Cast.ArtistInfoReq - (*ArtistInfoResp)(nil), // 43: Cast.ArtistInfoResp - (*ImportWorkBatchReq)(nil), // 44: Cast.ImportWorkBatchReq - (*ImportWorkBatchResp)(nil), // 45: Cast.ImportWorkBatchResp - (*PlatformInfo)(nil), // 46: Cast.PlatformInfo - (*UpdateWorkPlatformInfoReq)(nil), // 47: Cast.UpdateWorkPlatformInfoReq - (*UpdateWorkPlatformInfoResp)(nil), // 48: Cast.UpdateWorkPlatformInfoResp - (*UpdateWorkPublishLogReq)(nil), // 49: Cast.UpdateWorkPublishLogReq - (*RefreshWorkListReq)(nil), // 50: Cast.RefreshWorkListReq - (*RefreshWorkListResp)(nil), // 51: Cast.RefreshWorkListResp - (*OAuthAccountReq)(nil), // 52: Cast.OAuthAccountReq - (*OAuthAccountResp)(nil), // 53: Cast.OAuthAccountResp - (*OAuthAccountV2Req)(nil), // 54: Cast.OAuthAccountV2Req - (*OAuthAccountV2Resp)(nil), // 55: Cast.OAuthAccountV2Resp - (*OAuthYoutubeTokenReq)(nil), // 56: Cast.OAuthYoutubeTokenReq - (*OAuthYoutubeTokenResp)(nil), // 57: Cast.OAuthYoutubeTokenResp - (*OAuthCodeToTokenReq)(nil), // 58: Cast.OAuthCodeToTokenReq - (*OAuthCodeToTokenResp)(nil), // 59: Cast.OAuthCodeToTokenResp - (*UpdateOAuthReq)(nil), // 60: Cast.UpdateOAuthReq - (*RefreshTokenReq)(nil), // 61: Cast.RefreshTokenReq - (*RefreshTokenResp)(nil), // 62: Cast.RefreshTokenResp - (*PublishMediaInfoReq)(nil), // 63: Cast.PublishMediaInfoReq - (*PublishMediaInfoResp)(nil), // 64: Cast.PublishMediaInfoResp - (*ToolsReq)(nil), // 65: Cast.ToolsReq - (*UpdateVideoScriptReq)(nil), // 66: Cast.UpdateVideoScriptReq - (*UpdateVideoScriptResp)(nil), // 67: Cast.UpdateVideoScriptResp - (*GetVideoScriptReq)(nil), // 68: Cast.GetVideoScriptReq - (*GetVideoScriptResp)(nil), // 69: Cast.GetVideoScriptResp - (*ListVideoScriptsReq)(nil), // 70: Cast.ListVideoScriptsReq - (*VideoScriptInfo)(nil), // 71: Cast.VideoScriptInfo - (*ListVideoScriptsResp)(nil), // 72: Cast.ListVideoScriptsResp - (*DeleteVideoScriptReq)(nil), // 73: Cast.DeleteVideoScriptReq - (*UpdateVideoScriptBatchReq)(nil), // 74: Cast.UpdateVideoScriptBatchReq - (*UpdateVideoScriptBatchResp)(nil), // 75: Cast.UpdateVideoScriptBatchResp - (*UpdateScriptStatusReq)(nil), // 76: Cast.UpdateScriptStatusReq - (*SetLayoutReq)(nil), // 77: Cast.SetLayoutReq - (*GetLayoutReq)(nil), // 78: Cast.GetLayoutReq - (*GetLayoutResp)(nil), // 79: Cast.GetLayoutResp - (*UpdatePromptReq)(nil), // 80: Cast.UpdatePromptReq - (*DeletePromptReq)(nil), // 81: Cast.DeletePromptReq - (*GetPromptReq)(nil), // 82: Cast.GetPromptReq - (*GetPromptResp)(nil), // 83: Cast.GetPromptResp - (*ListPromptsReq)(nil), // 84: Cast.ListPromptsReq - (*PromptInfo)(nil), // 85: Cast.PromptInfo - (*ListPromptsResp)(nil), // 86: Cast.ListPromptsResp - (*UpdatePromptBatchReq)(nil), // 87: Cast.UpdatePromptBatchReq - (*UpdatePromptBatchResp)(nil), // 88: Cast.UpdatePromptBatchResp - (*ArtistInfo)(nil), // 89: Cast.ArtistInfo - (*UpdateArtistReq)(nil), // 90: Cast.UpdateArtistReq - (*UpdateArtistResp)(nil), // 91: Cast.UpdateArtistResp - (*GetArtistReq)(nil), // 92: Cast.GetArtistReq - (*GetArtistResp)(nil), // 93: Cast.GetArtistResp - (*CreateWorkAnalysisReq)(nil), // 94: Cast.CreateWorkAnalysisReq - (*CreateWorkAnalysisResp)(nil), // 95: Cast.CreateWorkAnalysisResp - (*UpdateWorkAnalysisReq)(nil), // 96: Cast.UpdateWorkAnalysisReq - (*UpdateWorkAnalysisStatusReq)(nil), // 97: Cast.UpdateWorkAnalysisStatusReq - (*WorkAnalysisLogInfo)(nil), // 98: Cast.WorkAnalysisLogInfo - (*WorkAnalysisFansSeries)(nil), // 99: Cast.WorkAnalysisFansSeries - (*WorkAnalysisViewsSeries)(nil), // 100: Cast.WorkAnalysisViewsSeries - (*WorkAnalysisLikesSeries)(nil), // 101: Cast.WorkAnalysisLikesSeries - (*WorkAnalysisCommentsSeries)(nil), // 102: Cast.WorkAnalysisCommentsSeries - (*WorkAnalysisSharesSeries)(nil), // 103: Cast.WorkAnalysisSharesSeries - (*WorkAnalysisTopCities)(nil), // 104: Cast.WorkAnalysisTopCities - (*WorkAnalysisMostActiveDay)(nil), // 105: Cast.WorkAnalysisMostActiveDay - (*WorkAnalysisBestPostTime)(nil), // 106: Cast.WorkAnalysisBestPostTime - (*WorkAnalysisExtra)(nil), // 107: Cast.WorkAnalysisExtra - (*GetWorkAnalysisDetailReq)(nil), // 108: Cast.GetWorkAnalysisDetailReq - (*GetLatestWorkAnalysisReq)(nil), // 109: Cast.GetLatestWorkAnalysisReq - (*GetWorkAnalysisResp)(nil), // 110: Cast.GetWorkAnalysisResp - (*GetWorkAnalysisDetailResp)(nil), // 111: Cast.GetWorkAnalysisDetailResp - (*ListWorkAnalysisReq)(nil), // 112: Cast.ListWorkAnalysisReq - (*WorkAnalysisInfo)(nil), // 113: Cast.WorkAnalysisInfo - (*ListWorkAnalysisResp)(nil), // 114: Cast.ListWorkAnalysisResp - (*DeleteWorkAnalysisReq)(nil), // 115: Cast.DeleteWorkAnalysisReq - (*ArtistDataListReq)(nil), // 116: Cast.ArtistDataListReq - (*ArtistDataRespItem)(nil), // 117: Cast.ArtistDataRespItem - (*ArtistDataListResp)(nil), // 118: Cast.ArtistDataListResp - (*MediaDataListReq)(nil), // 119: Cast.MediaDataListReq - (*MediaDataListItem)(nil), // 120: Cast.MediaDataListItem - (*MediaDataListResp)(nil), // 121: Cast.MediaDataListResp - (*DataOverviewReq)(nil), // 122: Cast.DataOverviewReq - (*DataOverviewResp)(nil), // 123: Cast.DataOverviewResp - (*ArtistMetricsSeriesReq)(nil), // 124: Cast.ArtistMetricsSeriesReq - (*ArtistMetricsSeriesResp)(nil), // 125: Cast.ArtistMetricsSeriesResp - (*ArtistMetricsDailyWindowReq)(nil), // 126: Cast.ArtistMetricsDailyWindowReq - (*SimplePoint)(nil), // 127: Cast.SimplePoint - (*BestPostTimePoint)(nil), // 128: Cast.BestPostTimePoint - (*MostActiveDayPoint)(nil), // 129: Cast.MostActiveDayPoint - (*ArtistMetricsDailyWindowResp)(nil), // 130: Cast.ArtistMetricsDailyWindowResp - (*TobeConfirmedListReq)(nil), // 131: Cast.TobeConfirmedListReq - (*TobeConfirmedItem)(nil), // 132: Cast.TobeConfirmedItem - (*TobeConfirmedListResp)(nil), // 133: Cast.TobeConfirmedListResp - (*UpdateWorkAnalysisApprovalIDReq)(nil), // 134: Cast.UpdateWorkAnalysisApprovalIDReq - (*MediaMetricsDailyItem)(nil), // 135: Cast.MediaMetricsDailyItem - (*UpsertMediaMetricsDailyBatchReq)(nil), // 136: Cast.UpsertMediaMetricsDailyBatchReq - (*UpsertMediaMetricsDailyBatchResp)(nil), // 137: Cast.UpsertMediaMetricsDailyBatchResp - (*WorkMetricsDailyItem)(nil), // 138: Cast.WorkMetricsDailyItem - (*UpsertWorkMetricsDailyBatchReq)(nil), // 139: Cast.UpsertWorkMetricsDailyBatchReq - (*UpsertWorkMetricsDailyBatchResp)(nil), // 140: Cast.UpsertWorkMetricsDailyBatchResp - (*GetArtistAyrShareInfoReq)(nil), // 141: Cast.GetArtistAyrShareInfoReq - (*ArtistAyrShareInfo)(nil), // 142: Cast.ArtistAyrShareInfo - (*GetArtistAyrShareInfoResp)(nil), // 143: Cast.GetArtistAyrShareInfoResp - (*ListWorkPlatformInfoReq)(nil), // 144: Cast.ListWorkPlatformInfoReq - (*WorkPlatformInfo)(nil), // 145: Cast.WorkPlatformInfo - (*ListWorkPlatformInfoResp)(nil), // 146: Cast.ListWorkPlatformInfoResp - (*ListMediaMetricsDailyReq)(nil), // 147: Cast.ListMediaMetricsDailyReq - (*MediaMetricsDailyInfo)(nil), // 148: Cast.MediaMetricsDailyInfo - (*ListMediaMetricsDailyResp)(nil), // 149: Cast.ListMediaMetricsDailyResp - (*ListWorkMetricsDailyReq)(nil), // 150: Cast.ListWorkMetricsDailyReq - (*WorkMetricsDailyInfo)(nil), // 151: Cast.WorkMetricsDailyInfo - (*ListWorkMetricsDailyResp)(nil), // 152: Cast.ListWorkMetricsDailyResp - (*UpsertTaskListReq)(nil), // 153: Cast.UpsertTaskListReq - (*UpsertTaskListResp)(nil), // 154: Cast.UpsertTaskListResp - (*GetTaskListReq)(nil), // 155: Cast.GetTaskListReq - (*TaskListInfo)(nil), // 156: Cast.TaskListInfo - (*GetTaskListResp)(nil), // 157: Cast.GetTaskListResp - (*ListTaskListReq)(nil), // 158: Cast.ListTaskListReq - (*ListTaskListResp)(nil), // 159: Cast.ListTaskListResp - (*DeleteTaskListReq)(nil), // 160: Cast.DeleteTaskListReq - (*CalculateMediaMetricsByWorksReq)(nil), // 161: Cast.CalculateMediaMetricsByWorksReq - (*CalculateMediaMetricsByWorksResp)(nil), // 162: Cast.CalculateMediaMetricsByWorksResp - (*WorkListResp_Info)(nil), // 163: Cast.WorkListResp.Info - nil, // 164: Cast.WorkListResp.Info.PublishMediaIDsEntry - nil, // 165: Cast.WorkDetailResp.MediaAccDataEntry - (*MediaAccountsResp_Info)(nil), // 166: Cast.MediaAccountsResp.Info - (*MediaWorksResp_Info)(nil), // 167: Cast.MediaWorksResp.Info - (*PublishResp_Info)(nil), // 168: Cast.PublishResp.Info - (*RefreshWorkListResp_Info)(nil), // 169: Cast.RefreshWorkListResp.Info - (*RefreshWorkListResp_Info_PlatformInfo)(nil), // 170: Cast.RefreshWorkListResp.Info.PlatformInfo - (*UpdateOAuthReq_Info)(nil), // 171: Cast.UpdateOAuthReq.Info - (*emptypb.Empty)(nil), // 172: google.protobuf.Empty + (PlatformIDENUM)(0), // 0: Cast.PlatformIDENUM + (AuthStatusENUM)(0), // 1: Cast.AuthStatusENUM + (WorkActionENUM)(0), // 2: Cast.WorkActionENUM + (AutoPublishENUM)(0), // 3: Cast.AutoPublishENUM + (PublishStatusENUM)(0), // 4: Cast.PublishStatusENUM + (ConfirmFailENUM)(0), // 5: Cast.ConfirmFailENUM + (CategoryENUM)(0), // 6: Cast.CategoryENUM + (*AsInfo)(nil), // 7: Cast.AsInfo + (*MediaUserListReq)(nil), // 8: Cast.MediaUserListReq + (*MediaUserInfo)(nil), // 9: Cast.MediaUserInfo + (*MediaUserListResp)(nil), // 10: Cast.MediaUserListResp + (*UpdateMediaAccountReq)(nil), // 11: Cast.UpdateMediaAccountReq + (*UpdateMediaAccountResp)(nil), // 12: Cast.UpdateMediaAccountResp + (*UnbindManagerReq)(nil), // 13: Cast.UnbindManagerReq + (*UnbindManagerResp)(nil), // 14: Cast.UnbindManagerResp + (*BindManagerReq)(nil), // 15: Cast.BindManagerReq + (*UpdateWorkImageReq)(nil), // 16: Cast.UpdateWorkImageReq + (*UpdateWorkImageResp)(nil), // 17: Cast.UpdateWorkImageResp + (*PublishConfig)(nil), // 18: Cast.PublishConfig + (*UpdateWorkVideoReq)(nil), // 19: Cast.UpdateWorkVideoReq + (*UpdateWorkVideoResp)(nil), // 20: Cast.UpdateWorkVideoResp + (*MediaInfoReq)(nil), // 21: Cast.MediaInfoReq + (*MediaInfoResp)(nil), // 22: Cast.MediaInfoResp + (*MediaInfoByPlatformReq)(nil), // 23: Cast.MediaInfoByPlatformReq + (*MediaInfoByPlatformResp)(nil), // 24: Cast.MediaInfoByPlatformResp + (*WorkListReq)(nil), // 25: Cast.WorkListReq + (*WorkListResp)(nil), // 26: Cast.WorkListResp + (*WorkDetailReq)(nil), // 27: Cast.WorkDetailReq + (*WorkLogInfo)(nil), // 28: Cast.WorkLogInfo + (*WorkDetailResp)(nil), // 29: Cast.WorkDetailResp + (*UpdateStatusReq)(nil), // 30: Cast.UpdateStatusReq + (*MediaAccountsReq)(nil), // 31: Cast.MediaAccountsReq + (*MediaAccountsResp)(nil), // 32: Cast.MediaAccountsResp + (*MediaWorksReq)(nil), // 33: Cast.MediaWorksReq + (*MediaWorksResp)(nil), // 34: Cast.MediaWorksResp + (*PublishReq)(nil), // 35: Cast.PublishReq + (*PublishResp)(nil), // 36: Cast.PublishResp + (*RePublishReq)(nil), // 37: Cast.RePublishReq + (*RePublishResp)(nil), // 38: Cast.RePublishResp + (*DelWorkReq)(nil), // 39: Cast.DelWorkReq + (*WorkInfoReq)(nil), // 40: Cast.WorkInfoReq + (*WorkInfoResp)(nil), // 41: Cast.WorkInfoResp + (*WorkListPublishedReq)(nil), // 42: Cast.WorkListPublishedReq + (*WorkListPublishedResp)(nil), // 43: Cast.WorkListPublishedResp + (*ArtistInfoReq)(nil), // 44: Cast.ArtistInfoReq + (*ArtistInfoResp)(nil), // 45: Cast.ArtistInfoResp + (*ImportWorkBatchReq)(nil), // 46: Cast.ImportWorkBatchReq + (*ImportWorkBatchResp)(nil), // 47: Cast.ImportWorkBatchResp + (*PlatformInfo)(nil), // 48: Cast.PlatformInfo + (*UpdateWorkPlatformInfoReq)(nil), // 49: Cast.UpdateWorkPlatformInfoReq + (*UpdateWorkPlatformInfoResp)(nil), // 50: Cast.UpdateWorkPlatformInfoResp + (*UpdateWorkPublishLogReq)(nil), // 51: Cast.UpdateWorkPublishLogReq + (*RefreshWorkListReq)(nil), // 52: Cast.RefreshWorkListReq + (*RefreshWorkListResp)(nil), // 53: Cast.RefreshWorkListResp + (*OAuthAccountReq)(nil), // 54: Cast.OAuthAccountReq + (*OAuthAccountResp)(nil), // 55: Cast.OAuthAccountResp + (*OAuthAccountV2Req)(nil), // 56: Cast.OAuthAccountV2Req + (*OAuthAccountV2Resp)(nil), // 57: Cast.OAuthAccountV2Resp + (*OAuthYoutubeTokenReq)(nil), // 58: Cast.OAuthYoutubeTokenReq + (*OAuthYoutubeTokenResp)(nil), // 59: Cast.OAuthYoutubeTokenResp + (*OAuthCodeToTokenReq)(nil), // 60: Cast.OAuthCodeToTokenReq + (*OAuthCodeToTokenResp)(nil), // 61: Cast.OAuthCodeToTokenResp + (*UpdateOAuthReq)(nil), // 62: Cast.UpdateOAuthReq + (*RefreshTokenReq)(nil), // 63: Cast.RefreshTokenReq + (*RefreshTokenResp)(nil), // 64: Cast.RefreshTokenResp + (*PublishMediaInfoReq)(nil), // 65: Cast.PublishMediaInfoReq + (*PublishMediaInfoResp)(nil), // 66: Cast.PublishMediaInfoResp + (*ToolsReq)(nil), // 67: Cast.ToolsReq + (*UpdateVideoScriptReq)(nil), // 68: Cast.UpdateVideoScriptReq + (*UpdateVideoScriptResp)(nil), // 69: Cast.UpdateVideoScriptResp + (*GetVideoScriptReq)(nil), // 70: Cast.GetVideoScriptReq + (*GetVideoScriptResp)(nil), // 71: Cast.GetVideoScriptResp + (*ListVideoScriptsReq)(nil), // 72: Cast.ListVideoScriptsReq + (*VideoScriptInfo)(nil), // 73: Cast.VideoScriptInfo + (*ListVideoScriptsResp)(nil), // 74: Cast.ListVideoScriptsResp + (*DeleteVideoScriptReq)(nil), // 75: Cast.DeleteVideoScriptReq + (*UpdateVideoScriptBatchReq)(nil), // 76: Cast.UpdateVideoScriptBatchReq + (*UpdateVideoScriptBatchResp)(nil), // 77: Cast.UpdateVideoScriptBatchResp + (*UpdateScriptStatusReq)(nil), // 78: Cast.UpdateScriptStatusReq + (*SetLayoutReq)(nil), // 79: Cast.SetLayoutReq + (*GetLayoutReq)(nil), // 80: Cast.GetLayoutReq + (*GetLayoutResp)(nil), // 81: Cast.GetLayoutResp + (*UpdatePromptReq)(nil), // 82: Cast.UpdatePromptReq + (*DeletePromptReq)(nil), // 83: Cast.DeletePromptReq + (*GetPromptReq)(nil), // 84: Cast.GetPromptReq + (*GetPromptResp)(nil), // 85: Cast.GetPromptResp + (*ListPromptsReq)(nil), // 86: Cast.ListPromptsReq + (*PromptInfo)(nil), // 87: Cast.PromptInfo + (*ListPromptsResp)(nil), // 88: Cast.ListPromptsResp + (*UpdatePromptBatchReq)(nil), // 89: Cast.UpdatePromptBatchReq + (*UpdatePromptBatchResp)(nil), // 90: Cast.UpdatePromptBatchResp + (*ArtistInfo)(nil), // 91: Cast.ArtistInfo + (*UpdateArtistReq)(nil), // 92: Cast.UpdateArtistReq + (*UpdateArtistResp)(nil), // 93: Cast.UpdateArtistResp + (*GetArtistReq)(nil), // 94: Cast.GetArtistReq + (*GetArtistResp)(nil), // 95: Cast.GetArtistResp + (*CreateWorkAnalysisReq)(nil), // 96: Cast.CreateWorkAnalysisReq + (*CreateWorkAnalysisResp)(nil), // 97: Cast.CreateWorkAnalysisResp + (*UpdateWorkAnalysisReq)(nil), // 98: Cast.UpdateWorkAnalysisReq + (*UpdateWorkAnalysisStatusReq)(nil), // 99: Cast.UpdateWorkAnalysisStatusReq + (*WorkAnalysisLogInfo)(nil), // 100: Cast.WorkAnalysisLogInfo + (*WorkAnalysisFansSeries)(nil), // 101: Cast.WorkAnalysisFansSeries + (*WorkAnalysisViewsSeries)(nil), // 102: Cast.WorkAnalysisViewsSeries + (*WorkAnalysisLikesSeries)(nil), // 103: Cast.WorkAnalysisLikesSeries + (*WorkAnalysisCommentsSeries)(nil), // 104: Cast.WorkAnalysisCommentsSeries + (*WorkAnalysisSharesSeries)(nil), // 105: Cast.WorkAnalysisSharesSeries + (*WorkAnalysisTopCities)(nil), // 106: Cast.WorkAnalysisTopCities + (*WorkAnalysisMostActiveDay)(nil), // 107: Cast.WorkAnalysisMostActiveDay + (*WorkAnalysisBestPostTime)(nil), // 108: Cast.WorkAnalysisBestPostTime + (*WorkAnalysisExtra)(nil), // 109: Cast.WorkAnalysisExtra + (*GetWorkAnalysisDetailReq)(nil), // 110: Cast.GetWorkAnalysisDetailReq + (*GetLatestWorkAnalysisReq)(nil), // 111: Cast.GetLatestWorkAnalysisReq + (*GetWorkAnalysisResp)(nil), // 112: Cast.GetWorkAnalysisResp + (*GetWorkAnalysisDetailResp)(nil), // 113: Cast.GetWorkAnalysisDetailResp + (*ListWorkAnalysisReq)(nil), // 114: Cast.ListWorkAnalysisReq + (*WorkAnalysisInfo)(nil), // 115: Cast.WorkAnalysisInfo + (*ListWorkAnalysisResp)(nil), // 116: Cast.ListWorkAnalysisResp + (*DeleteWorkAnalysisReq)(nil), // 117: Cast.DeleteWorkAnalysisReq + (*ArtistDataListReq)(nil), // 118: Cast.ArtistDataListReq + (*ArtistDataRespItem)(nil), // 119: Cast.ArtistDataRespItem + (*ArtistDataListResp)(nil), // 120: Cast.ArtistDataListResp + (*MediaDataListReq)(nil), // 121: Cast.MediaDataListReq + (*MediaDataListItem)(nil), // 122: Cast.MediaDataListItem + (*MediaDataListResp)(nil), // 123: Cast.MediaDataListResp + (*DataOverviewReq)(nil), // 124: Cast.DataOverviewReq + (*DataOverviewResp)(nil), // 125: Cast.DataOverviewResp + (*ArtistMetricsSeriesReq)(nil), // 126: Cast.ArtistMetricsSeriesReq + (*ArtistMetricsSeriesResp)(nil), // 127: Cast.ArtistMetricsSeriesResp + (*ArtistMetricsDailyWindowReq)(nil), // 128: Cast.ArtistMetricsDailyWindowReq + (*SimplePoint)(nil), // 129: Cast.SimplePoint + (*BestPostTimePoint)(nil), // 130: Cast.BestPostTimePoint + (*MostActiveDayPoint)(nil), // 131: Cast.MostActiveDayPoint + (*ArtistMetricsDailyWindowResp)(nil), // 132: Cast.ArtistMetricsDailyWindowResp + (*TobeConfirmedListReq)(nil), // 133: Cast.TobeConfirmedListReq + (*TobeConfirmedItem)(nil), // 134: Cast.TobeConfirmedItem + (*TobeConfirmedListResp)(nil), // 135: Cast.TobeConfirmedListResp + (*UpdateWorkAnalysisApprovalIDReq)(nil), // 136: Cast.UpdateWorkAnalysisApprovalIDReq + (*MediaMetricsDailyItem)(nil), // 137: Cast.MediaMetricsDailyItem + (*UpsertMediaMetricsDailyBatchReq)(nil), // 138: Cast.UpsertMediaMetricsDailyBatchReq + (*UpsertMediaMetricsDailyBatchResp)(nil), // 139: Cast.UpsertMediaMetricsDailyBatchResp + (*WorkMetricsDailyItem)(nil), // 140: Cast.WorkMetricsDailyItem + (*UpsertWorkMetricsDailyBatchReq)(nil), // 141: Cast.UpsertWorkMetricsDailyBatchReq + (*UpsertWorkMetricsDailyBatchResp)(nil), // 142: Cast.UpsertWorkMetricsDailyBatchResp + (*GetArtistAyrShareInfoReq)(nil), // 143: Cast.GetArtistAyrShareInfoReq + (*ArtistAyrShareInfo)(nil), // 144: Cast.ArtistAyrShareInfo + (*GetArtistAyrShareInfoResp)(nil), // 145: Cast.GetArtistAyrShareInfoResp + (*GetArtistAyrShareInfoByPlatformIDsReq)(nil), // 146: Cast.GetArtistAyrShareInfoByPlatformIDsReq + (*GetArtistAyrShareInfoByPlatformIDsResp)(nil), // 147: Cast.GetArtistAyrShareInfoByPlatformIDsResp + (*ListWorkPlatformInfoReq)(nil), // 148: Cast.ListWorkPlatformInfoReq + (*WorkPlatformInfo)(nil), // 149: Cast.WorkPlatformInfo + (*ListWorkPlatformInfoResp)(nil), // 150: Cast.ListWorkPlatformInfoResp + (*ListMediaMetricsDailyReq)(nil), // 151: Cast.ListMediaMetricsDailyReq + (*MediaMetricsDailyInfo)(nil), // 152: Cast.MediaMetricsDailyInfo + (*ListMediaMetricsDailyResp)(nil), // 153: Cast.ListMediaMetricsDailyResp + (*ListWorkMetricsDailyReq)(nil), // 154: Cast.ListWorkMetricsDailyReq + (*WorkMetricsDailyInfo)(nil), // 155: Cast.WorkMetricsDailyInfo + (*ListWorkMetricsDailyResp)(nil), // 156: Cast.ListWorkMetricsDailyResp + (*UpsertTaskListReq)(nil), // 157: Cast.UpsertTaskListReq + (*UpsertTaskListResp)(nil), // 158: Cast.UpsertTaskListResp + (*GetTaskListReq)(nil), // 159: Cast.GetTaskListReq + (*TaskListInfo)(nil), // 160: Cast.TaskListInfo + (*GetTaskListResp)(nil), // 161: Cast.GetTaskListResp + (*ListTaskListReq)(nil), // 162: Cast.ListTaskListReq + (*ListTaskListResp)(nil), // 163: Cast.ListTaskListResp + (*DeleteTaskListReq)(nil), // 164: Cast.DeleteTaskListReq + (*CalculateMediaMetricsByWorksReq)(nil), // 165: Cast.CalculateMediaMetricsByWorksReq + (*CalculateMediaMetricsByWorksResp)(nil), // 166: Cast.CalculateMediaMetricsByWorksResp + (*UpdateCastTagReq)(nil), // 167: Cast.UpdateCastTagReq + (*UpdateCastTagResp)(nil), // 168: Cast.UpdateCastTagResp + (*ListCastTagsReq)(nil), // 169: Cast.ListCastTagsReq + (*CastTagInfo)(nil), // 170: Cast.CastTagInfo + (*ListCastTagsResp)(nil), // 171: Cast.ListCastTagsResp + (*UpdateCastTagBatchReq)(nil), // 172: Cast.UpdateCastTagBatchReq + (*UpdateCastTagBatchResp)(nil), // 173: Cast.UpdateCastTagBatchResp + (*BatchUpdateCastTagsReq)(nil), // 174: Cast.BatchUpdateCastTagsReq + (*UpdateCastTagStatusReq)(nil), // 175: Cast.UpdateCastTagStatusReq + (*RecalculateCastTagQuoteCountResp)(nil), // 176: Cast.RecalculateCastTagQuoteCountResp + (*CreateCompetitiveReportReq)(nil), // 177: Cast.CreateCompetitiveReportReq + (*CreateCompetitiveReportResp)(nil), // 178: Cast.CreateCompetitiveReportResp + (*UpdateCompetitiveReportReq)(nil), // 179: Cast.UpdateCompetitiveReportReq + (*UpdateCompetitiveReportStatusReq)(nil), // 180: Cast.UpdateCompetitiveReportStatusReq + (*UpdateCompetitiveReportApprovalIDReq)(nil), // 181: Cast.UpdateCompetitiveReportApprovalIDReq + (*CompetitiveReportLogInfo)(nil), // 182: Cast.CompetitiveReportLogInfo + (*CompetitiveReportExtra)(nil), // 183: Cast.CompetitiveReportExtra + (*GetCompetitiveReportDetailReq)(nil), // 184: Cast.GetCompetitiveReportDetailReq + (*GetCompetitiveReportForAppReq)(nil), // 185: Cast.GetCompetitiveReportForAppReq + (*GetCompetitiveReportForAppResp)(nil), // 186: Cast.GetCompetitiveReportForAppResp + (*GetCompetitiveReportDetailResp)(nil), // 187: Cast.GetCompetitiveReportDetailResp + (*ListCompetitiveReportReq)(nil), // 188: Cast.ListCompetitiveReportReq + (*CompetitiveReportInfo)(nil), // 189: Cast.CompetitiveReportInfo + (*ListCompetitiveReportResp)(nil), // 190: Cast.ListCompetitiveReportResp + (*DeleteCompetitiveReportReq)(nil), // 191: Cast.DeleteCompetitiveReportReq + (*ImportCompetitiveReportBatchReq)(nil), // 192: Cast.ImportCompetitiveReportBatchReq + (*ImportCompetitiveReportBatchResp)(nil), // 193: Cast.ImportCompetitiveReportBatchResp + (*CountCompetitiveReportByWorkUuidsReq)(nil), // 194: Cast.CountCompetitiveReportByWorkUuidsReq + (*WorkUuidCount)(nil), // 195: Cast.WorkUuidCount + (*CountCompetitiveReportByWorkUuidsResp)(nil), // 196: Cast.CountCompetitiveReportByWorkUuidsResp + (*WorkListResp_Info)(nil), // 197: Cast.WorkListResp.Info + nil, // 198: Cast.WorkListResp.Info.PublishMediaIDsEntry + nil, // 199: Cast.WorkDetailResp.MediaAccDataEntry + (*MediaAccountsResp_Info)(nil), // 200: Cast.MediaAccountsResp.Info + (*MediaWorksResp_Info)(nil), // 201: Cast.MediaWorksResp.Info + (*PublishResp_Info)(nil), // 202: Cast.PublishResp.Info + (*WorkListPublishedResp_Info)(nil), // 203: Cast.WorkListPublishedResp.Info + (*RefreshWorkListResp_Info)(nil), // 204: Cast.RefreshWorkListResp.Info + (*RefreshWorkListResp_Info_PlatformInfo)(nil), // 205: Cast.RefreshWorkListResp.Info.PlatformInfo + (*UpdateOAuthReq_Info)(nil), // 206: Cast.UpdateOAuthReq.Info + (*emptypb.Empty)(nil), // 207: google.protobuf.Empty } var file_pb_fiee_cast_proto_depIdxs = []int32{ 0, // 0: Cast.MediaUserListReq.platformID:type_name -> Cast.PlatformIDENUM @@ -15970,235 +19094,282 @@ var file_pb_fiee_cast_proto_depIdxs = []int32{ 9, // 20: Cast.MediaInfoResp.info:type_name -> Cast.MediaUserInfo 0, // 21: Cast.MediaInfoByPlatformReq.platformID:type_name -> Cast.PlatformIDENUM 9, // 22: Cast.MediaInfoByPlatformResp.info:type_name -> Cast.MediaUserInfo - 163, // 23: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info + 197, // 23: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info 18, // 24: Cast.WorkDetailResp.publishConfig1:type_name -> Cast.PublishConfig 18, // 25: Cast.WorkDetailResp.publishConfig2:type_name -> Cast.PublishConfig 18, // 26: Cast.WorkDetailResp.publishConfig3:type_name -> Cast.PublishConfig 18, // 27: Cast.WorkDetailResp.publishConfig4:type_name -> Cast.PublishConfig 28, // 28: Cast.WorkDetailResp.WorkLogData:type_name -> Cast.WorkLogInfo - 165, // 29: Cast.WorkDetailResp.mediaAccData:type_name -> Cast.WorkDetailResp.MediaAccDataEntry + 199, // 29: Cast.WorkDetailResp.mediaAccData:type_name -> Cast.WorkDetailResp.MediaAccDataEntry 18, // 30: Cast.WorkDetailResp.publishConfig5:type_name -> Cast.PublishConfig 2, // 31: Cast.UpdateStatusReq.workAction:type_name -> Cast.WorkActionENUM 3, // 32: Cast.UpdateStatusReq.autoPublish:type_name -> Cast.AutoPublishENUM 5, // 33: Cast.UpdateStatusReq.confirmFailType:type_name -> Cast.ConfirmFailENUM - 166, // 34: Cast.MediaAccountsResp.data:type_name -> Cast.MediaAccountsResp.Info - 167, // 35: Cast.MediaWorksResp.data:type_name -> Cast.MediaWorksResp.Info - 168, // 36: Cast.PublishResp.data:type_name -> Cast.PublishResp.Info - 16, // 37: Cast.ImportWorkBatchReq.imageWorks:type_name -> Cast.UpdateWorkImageReq - 16, // 38: Cast.ImportWorkBatchResp.imageWorks:type_name -> Cast.UpdateWorkImageReq - 4, // 39: Cast.PlatformInfo.publishStatus:type_name -> Cast.PublishStatusENUM - 46, // 40: Cast.UpdateWorkPlatformInfoReq.PlatformInfoData:type_name -> Cast.PlatformInfo - 0, // 41: Cast.UpdateWorkPublishLogReq.platformID:type_name -> Cast.PlatformIDENUM - 169, // 42: Cast.RefreshWorkListResp.Data:type_name -> Cast.RefreshWorkListResp.Info - 0, // 43: Cast.OAuthCodeToTokenReq.platformID:type_name -> Cast.PlatformIDENUM - 171, // 44: Cast.UpdateOAuthReq.Data:type_name -> Cast.UpdateOAuthReq.Info - 0, // 45: Cast.RefreshTokenReq.platformID:type_name -> Cast.PlatformIDENUM - 71, // 46: Cast.ListVideoScriptsResp.data:type_name -> Cast.VideoScriptInfo - 71, // 47: Cast.UpdateVideoScriptBatchReq.data:type_name -> Cast.VideoScriptInfo - 71, // 48: Cast.UpdateVideoScriptBatchResp.data:type_name -> Cast.VideoScriptInfo - 2, // 49: Cast.UpdateScriptStatusReq.workAction:type_name -> Cast.WorkActionENUM - 6, // 50: Cast.UpdatePromptReq.category:type_name -> Cast.CategoryENUM - 6, // 51: Cast.GetPromptResp.category:type_name -> Cast.CategoryENUM - 6, // 52: Cast.ListPromptsReq.category:type_name -> Cast.CategoryENUM - 6, // 53: Cast.PromptInfo.category:type_name -> Cast.CategoryENUM - 85, // 54: Cast.ListPromptsResp.data:type_name -> Cast.PromptInfo - 85, // 55: Cast.UpdatePromptBatchReq.data:type_name -> Cast.PromptInfo - 85, // 56: Cast.UpdatePromptBatchResp.data:type_name -> Cast.PromptInfo - 89, // 57: Cast.UpdateArtistReq.artistInfo:type_name -> Cast.ArtistInfo - 89, // 58: Cast.GetArtistResp.artistInfo:type_name -> Cast.ArtistInfo - 2, // 59: Cast.UpdateWorkAnalysisStatusReq.workAction:type_name -> Cast.WorkActionENUM - 99, // 60: Cast.GetWorkAnalysisResp.fansSeries:type_name -> Cast.WorkAnalysisFansSeries - 100, // 61: Cast.GetWorkAnalysisResp.viewsSeries:type_name -> Cast.WorkAnalysisViewsSeries - 101, // 62: Cast.GetWorkAnalysisResp.likesSeries:type_name -> Cast.WorkAnalysisLikesSeries - 102, // 63: Cast.GetWorkAnalysisResp.commentsSeries:type_name -> Cast.WorkAnalysisCommentsSeries - 103, // 64: Cast.GetWorkAnalysisResp.sharesSeries:type_name -> Cast.WorkAnalysisSharesSeries - 104, // 65: Cast.GetWorkAnalysisResp.topCitiesSeries:type_name -> Cast.WorkAnalysisTopCities - 105, // 66: Cast.GetWorkAnalysisResp.mostActiveDaySeries:type_name -> Cast.WorkAnalysisMostActiveDay - 106, // 67: Cast.GetWorkAnalysisResp.bestPostTimeSeries:type_name -> Cast.WorkAnalysisBestPostTime - 98, // 68: Cast.GetWorkAnalysisDetailResp.WorkAnalysisLogData:type_name -> Cast.WorkAnalysisLogInfo - 99, // 69: Cast.GetWorkAnalysisDetailResp.fansSeries:type_name -> Cast.WorkAnalysisFansSeries - 100, // 70: Cast.GetWorkAnalysisDetailResp.viewsSeries:type_name -> Cast.WorkAnalysisViewsSeries - 101, // 71: Cast.GetWorkAnalysisDetailResp.likesSeries:type_name -> Cast.WorkAnalysisLikesSeries - 102, // 72: Cast.GetWorkAnalysisDetailResp.commentsSeries:type_name -> Cast.WorkAnalysisCommentsSeries - 103, // 73: Cast.GetWorkAnalysisDetailResp.sharesSeries:type_name -> Cast.WorkAnalysisSharesSeries - 104, // 74: Cast.GetWorkAnalysisDetailResp.topCitiesSeries:type_name -> Cast.WorkAnalysisTopCities - 105, // 75: Cast.GetWorkAnalysisDetailResp.mostActiveDaySeries:type_name -> Cast.WorkAnalysisMostActiveDay - 106, // 76: Cast.GetWorkAnalysisDetailResp.bestPostTimeSeries:type_name -> Cast.WorkAnalysisBestPostTime - 107, // 77: Cast.GetWorkAnalysisDetailResp.extra:type_name -> Cast.WorkAnalysisExtra - 113, // 78: Cast.ListWorkAnalysisResp.data:type_name -> Cast.WorkAnalysisInfo - 117, // 79: Cast.ArtistDataListResp.data:type_name -> Cast.ArtistDataRespItem - 120, // 80: Cast.MediaDataListResp.data:type_name -> Cast.MediaDataListItem - 99, // 81: Cast.ArtistMetricsSeriesResp.fansSeries:type_name -> Cast.WorkAnalysisFansSeries - 100, // 82: Cast.ArtistMetricsSeriesResp.viewsSeries:type_name -> Cast.WorkAnalysisViewsSeries - 101, // 83: Cast.ArtistMetricsSeriesResp.likesSeries:type_name -> Cast.WorkAnalysisLikesSeries - 102, // 84: Cast.ArtistMetricsSeriesResp.commentsSeries:type_name -> Cast.WorkAnalysisCommentsSeries - 103, // 85: Cast.ArtistMetricsSeriesResp.sharesSeries:type_name -> Cast.WorkAnalysisSharesSeries - 106, // 86: Cast.ArtistMetricsSeriesResp.bestPostTime:type_name -> Cast.WorkAnalysisBestPostTime - 105, // 87: Cast.ArtistMetricsSeriesResp.mostActiveDay:type_name -> Cast.WorkAnalysisMostActiveDay - 127, // 88: Cast.ArtistMetricsDailyWindowResp.fans:type_name -> Cast.SimplePoint - 127, // 89: Cast.ArtistMetricsDailyWindowResp.views:type_name -> Cast.SimplePoint - 127, // 90: Cast.ArtistMetricsDailyWindowResp.likes:type_name -> Cast.SimplePoint - 127, // 91: Cast.ArtistMetricsDailyWindowResp.comments:type_name -> Cast.SimplePoint - 127, // 92: Cast.ArtistMetricsDailyWindowResp.shares:type_name -> Cast.SimplePoint - 128, // 93: Cast.ArtistMetricsDailyWindowResp.bestPostTime:type_name -> Cast.BestPostTimePoint - 129, // 94: Cast.ArtistMetricsDailyWindowResp.mostActiveDay:type_name -> Cast.MostActiveDayPoint - 132, // 95: Cast.TobeConfirmedListResp.data:type_name -> Cast.TobeConfirmedItem - 135, // 96: Cast.UpsertMediaMetricsDailyBatchReq.data:type_name -> Cast.MediaMetricsDailyItem - 138, // 97: Cast.UpsertWorkMetricsDailyBatchReq.data:type_name -> Cast.WorkMetricsDailyItem - 142, // 98: Cast.GetArtistAyrShareInfoResp.data:type_name -> Cast.ArtistAyrShareInfo - 145, // 99: Cast.ListWorkPlatformInfoResp.data:type_name -> Cast.WorkPlatformInfo - 148, // 100: Cast.ListMediaMetricsDailyResp.data:type_name -> Cast.MediaMetricsDailyInfo - 151, // 101: Cast.ListWorkMetricsDailyResp.data:type_name -> Cast.WorkMetricsDailyInfo - 156, // 102: Cast.GetTaskListResp.data:type_name -> Cast.TaskListInfo - 156, // 103: Cast.ListTaskListResp.data:type_name -> Cast.TaskListInfo - 164, // 104: Cast.WorkListResp.Info.PublishMediaIDs:type_name -> Cast.WorkListResp.Info.PublishMediaIDsEntry - 9, // 105: Cast.WorkDetailResp.MediaAccDataEntry.value:type_name -> Cast.MediaUserInfo - 170, // 106: Cast.RefreshWorkListResp.Info.PlatformInfoData:type_name -> Cast.RefreshWorkListResp.Info.PlatformInfo - 0, // 107: Cast.RefreshWorkListResp.Info.PlatformInfo.platformID:type_name -> Cast.PlatformIDENUM - 0, // 108: Cast.UpdateOAuthReq.Info.platformID:type_name -> Cast.PlatformIDENUM - 8, // 109: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq - 11, // 110: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq - 13, // 111: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq - 15, // 112: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq - 16, // 113: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq - 19, // 114: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq - 21, // 115: Cast.Cast.MediaInfo:input_type -> Cast.MediaInfoReq - 23, // 116: Cast.Cast.MediaInfoByPlatform:input_type -> Cast.MediaInfoByPlatformReq - 25, // 117: Cast.Cast.WorkList:input_type -> Cast.WorkListReq - 27, // 118: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq - 30, // 119: Cast.Cast.UpdateStatus:input_type -> Cast.UpdateStatusReq - 31, // 120: Cast.Cast.MediaAccounts:input_type -> Cast.MediaAccountsReq - 33, // 121: Cast.Cast.MediaWorks:input_type -> Cast.MediaWorksReq - 35, // 122: Cast.Cast.Publish:input_type -> Cast.PublishReq - 37, // 123: Cast.Cast.RePublish:input_type -> Cast.RePublishReq - 39, // 124: Cast.Cast.DelWork:input_type -> Cast.DelWorkReq - 40, // 125: Cast.Cast.WorkInfo:input_type -> Cast.WorkInfoReq - 42, // 126: Cast.Cast.ArtistInfo:input_type -> Cast.ArtistInfoReq - 44, // 127: Cast.Cast.ImportWorkBatch:input_type -> Cast.ImportWorkBatchReq - 47, // 128: Cast.Cast.UpdateWorkPlatformInfo:input_type -> Cast.UpdateWorkPlatformInfoReq - 49, // 129: Cast.Cast.UpdateWorkPublishLog:input_type -> Cast.UpdateWorkPublishLogReq - 50, // 130: Cast.Cast.RefreshWorkList:input_type -> Cast.RefreshWorkListReq - 52, // 131: Cast.Cast.OAuthAccount:input_type -> Cast.OAuthAccountReq - 54, // 132: Cast.Cast.OAuthAccountV2:input_type -> Cast.OAuthAccountV2Req - 58, // 133: Cast.Cast.OAuthCodeToToken:input_type -> Cast.OAuthCodeToTokenReq - 60, // 134: Cast.Cast.UpdateOAuth:input_type -> Cast.UpdateOAuthReq - 61, // 135: Cast.Cast.RefreshToken:input_type -> Cast.RefreshTokenReq - 63, // 136: Cast.Cast.PublishMediaInfo:input_type -> Cast.PublishMediaInfoReq - 65, // 137: Cast.Cast.Tools:input_type -> Cast.ToolsReq - 66, // 138: Cast.Cast.UpdateVideoScript:input_type -> Cast.UpdateVideoScriptReq - 68, // 139: Cast.Cast.GetVideoScript:input_type -> Cast.GetVideoScriptReq - 70, // 140: Cast.Cast.ListVideoScripts:input_type -> Cast.ListVideoScriptsReq - 73, // 141: Cast.Cast.DeleteVideoScript:input_type -> Cast.DeleteVideoScriptReq - 74, // 142: Cast.Cast.UpdateVideoScriptBatch:input_type -> Cast.UpdateVideoScriptBatchReq - 76, // 143: Cast.Cast.UpdateScriptStatus:input_type -> Cast.UpdateScriptStatusReq - 78, // 144: Cast.Cast.GetLayout:input_type -> Cast.GetLayoutReq - 77, // 145: Cast.Cast.SetLayout:input_type -> Cast.SetLayoutReq - 80, // 146: Cast.Cast.UpdatePrompt:input_type -> Cast.UpdatePromptReq - 81, // 147: Cast.Cast.DeletePrompt:input_type -> Cast.DeletePromptReq - 82, // 148: Cast.Cast.GetPrompt:input_type -> Cast.GetPromptReq - 84, // 149: Cast.Cast.ListPrompts:input_type -> Cast.ListPromptsReq - 87, // 150: Cast.Cast.UpdatePromptBatch:input_type -> Cast.UpdatePromptBatchReq - 90, // 151: Cast.Cast.UpdateArtist:input_type -> Cast.UpdateArtistReq - 92, // 152: Cast.Cast.GetArtist:input_type -> Cast.GetArtistReq - 94, // 153: Cast.Cast.CreateWorkAnalysis:input_type -> Cast.CreateWorkAnalysisReq - 96, // 154: Cast.Cast.UpdateWorkAnalysis:input_type -> Cast.UpdateWorkAnalysisReq - 97, // 155: Cast.Cast.UpdateWorkAnalysisStatus:input_type -> Cast.UpdateWorkAnalysisStatusReq - 108, // 156: Cast.Cast.GetWorkAnalysis:input_type -> Cast.GetWorkAnalysisDetailReq - 109, // 157: Cast.Cast.GetLatestWorkAnalysis:input_type -> Cast.GetLatestWorkAnalysisReq - 112, // 158: Cast.Cast.ListWorkAnalysis:input_type -> Cast.ListWorkAnalysisReq - 115, // 159: Cast.Cast.DeleteWorkAnalysis:input_type -> Cast.DeleteWorkAnalysisReq - 134, // 160: Cast.Cast.UpdateWorkAnalysisApprovalID:input_type -> Cast.UpdateWorkAnalysisApprovalIDReq - 116, // 161: Cast.Cast.ArtistDataList:input_type -> Cast.ArtistDataListReq - 119, // 162: Cast.Cast.MediaDataList:input_type -> Cast.MediaDataListReq - 122, // 163: Cast.Cast.DataOverview:input_type -> Cast.DataOverviewReq - 124, // 164: Cast.Cast.ArtistMetricsSeries:input_type -> Cast.ArtistMetricsSeriesReq - 126, // 165: Cast.Cast.ArtistMetricsDailyWindow:input_type -> Cast.ArtistMetricsDailyWindowReq - 131, // 166: Cast.Cast.TobeConfirmedList:input_type -> Cast.TobeConfirmedListReq - 136, // 167: Cast.Cast.UpsertMediaMetricsDailyBatch:input_type -> Cast.UpsertMediaMetricsDailyBatchReq - 139, // 168: Cast.Cast.UpsertWorkMetricsDailyBatch:input_type -> Cast.UpsertWorkMetricsDailyBatchReq - 147, // 169: Cast.Cast.ListMediaMetricsDaily:input_type -> Cast.ListMediaMetricsDailyReq - 150, // 170: Cast.Cast.ListWorkMetricsDaily:input_type -> Cast.ListWorkMetricsDailyReq - 161, // 171: Cast.Cast.CalculateMediaMetricsByWorks:input_type -> Cast.CalculateMediaMetricsByWorksReq - 141, // 172: Cast.Cast.GetArtistAyrShareInfo:input_type -> Cast.GetArtistAyrShareInfoReq - 144, // 173: Cast.Cast.ListWorkPlatformInfo:input_type -> Cast.ListWorkPlatformInfoReq - 153, // 174: Cast.Cast.UpsertTaskList:input_type -> Cast.UpsertTaskListReq - 155, // 175: Cast.Cast.GetTaskList:input_type -> Cast.GetTaskListReq - 158, // 176: Cast.Cast.ListTaskList:input_type -> Cast.ListTaskListReq - 160, // 177: Cast.Cast.DeleteTaskList:input_type -> Cast.DeleteTaskListReq - 10, // 178: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp - 12, // 179: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp - 14, // 180: Cast.Cast.UnbindManager:output_type -> Cast.UnbindManagerResp - 172, // 181: Cast.Cast.BindManager:output_type -> google.protobuf.Empty - 17, // 182: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp - 20, // 183: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp - 22, // 184: Cast.Cast.MediaInfo:output_type -> Cast.MediaInfoResp - 24, // 185: Cast.Cast.MediaInfoByPlatform:output_type -> Cast.MediaInfoByPlatformResp - 26, // 186: Cast.Cast.WorkList:output_type -> Cast.WorkListResp - 29, // 187: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp - 172, // 188: Cast.Cast.UpdateStatus:output_type -> google.protobuf.Empty - 32, // 189: Cast.Cast.MediaAccounts:output_type -> Cast.MediaAccountsResp - 34, // 190: Cast.Cast.MediaWorks:output_type -> Cast.MediaWorksResp - 36, // 191: Cast.Cast.Publish:output_type -> Cast.PublishResp - 38, // 192: Cast.Cast.RePublish:output_type -> Cast.RePublishResp - 172, // 193: Cast.Cast.DelWork:output_type -> google.protobuf.Empty - 41, // 194: Cast.Cast.WorkInfo:output_type -> Cast.WorkInfoResp - 43, // 195: Cast.Cast.ArtistInfo:output_type -> Cast.ArtistInfoResp - 45, // 196: Cast.Cast.ImportWorkBatch:output_type -> Cast.ImportWorkBatchResp - 48, // 197: Cast.Cast.UpdateWorkPlatformInfo:output_type -> Cast.UpdateWorkPlatformInfoResp - 172, // 198: Cast.Cast.UpdateWorkPublishLog:output_type -> google.protobuf.Empty - 51, // 199: Cast.Cast.RefreshWorkList:output_type -> Cast.RefreshWorkListResp - 53, // 200: Cast.Cast.OAuthAccount:output_type -> Cast.OAuthAccountResp - 55, // 201: Cast.Cast.OAuthAccountV2:output_type -> Cast.OAuthAccountV2Resp - 59, // 202: Cast.Cast.OAuthCodeToToken:output_type -> Cast.OAuthCodeToTokenResp - 172, // 203: Cast.Cast.UpdateOAuth:output_type -> google.protobuf.Empty - 62, // 204: Cast.Cast.RefreshToken:output_type -> Cast.RefreshTokenResp - 64, // 205: Cast.Cast.PublishMediaInfo:output_type -> Cast.PublishMediaInfoResp - 172, // 206: Cast.Cast.Tools:output_type -> google.protobuf.Empty - 67, // 207: Cast.Cast.UpdateVideoScript:output_type -> Cast.UpdateVideoScriptResp - 69, // 208: Cast.Cast.GetVideoScript:output_type -> Cast.GetVideoScriptResp - 72, // 209: Cast.Cast.ListVideoScripts:output_type -> Cast.ListVideoScriptsResp - 172, // 210: Cast.Cast.DeleteVideoScript:output_type -> google.protobuf.Empty - 75, // 211: Cast.Cast.UpdateVideoScriptBatch:output_type -> Cast.UpdateVideoScriptBatchResp - 172, // 212: Cast.Cast.UpdateScriptStatus:output_type -> google.protobuf.Empty - 79, // 213: Cast.Cast.GetLayout:output_type -> Cast.GetLayoutResp - 172, // 214: Cast.Cast.SetLayout:output_type -> google.protobuf.Empty - 172, // 215: Cast.Cast.UpdatePrompt:output_type -> google.protobuf.Empty - 172, // 216: Cast.Cast.DeletePrompt:output_type -> google.protobuf.Empty - 83, // 217: Cast.Cast.GetPrompt:output_type -> Cast.GetPromptResp - 86, // 218: Cast.Cast.ListPrompts:output_type -> Cast.ListPromptsResp - 88, // 219: Cast.Cast.UpdatePromptBatch:output_type -> Cast.UpdatePromptBatchResp - 91, // 220: Cast.Cast.UpdateArtist:output_type -> Cast.UpdateArtistResp - 93, // 221: Cast.Cast.GetArtist:output_type -> Cast.GetArtistResp - 95, // 222: Cast.Cast.CreateWorkAnalysis:output_type -> Cast.CreateWorkAnalysisResp - 172, // 223: Cast.Cast.UpdateWorkAnalysis:output_type -> google.protobuf.Empty - 172, // 224: Cast.Cast.UpdateWorkAnalysisStatus:output_type -> google.protobuf.Empty - 111, // 225: Cast.Cast.GetWorkAnalysis:output_type -> Cast.GetWorkAnalysisDetailResp - 110, // 226: Cast.Cast.GetLatestWorkAnalysis:output_type -> Cast.GetWorkAnalysisResp - 114, // 227: Cast.Cast.ListWorkAnalysis:output_type -> Cast.ListWorkAnalysisResp - 172, // 228: Cast.Cast.DeleteWorkAnalysis:output_type -> google.protobuf.Empty - 172, // 229: Cast.Cast.UpdateWorkAnalysisApprovalID:output_type -> google.protobuf.Empty - 118, // 230: Cast.Cast.ArtistDataList:output_type -> Cast.ArtistDataListResp - 121, // 231: Cast.Cast.MediaDataList:output_type -> Cast.MediaDataListResp - 123, // 232: Cast.Cast.DataOverview:output_type -> Cast.DataOverviewResp - 125, // 233: Cast.Cast.ArtistMetricsSeries:output_type -> Cast.ArtistMetricsSeriesResp - 130, // 234: Cast.Cast.ArtistMetricsDailyWindow:output_type -> Cast.ArtistMetricsDailyWindowResp - 133, // 235: Cast.Cast.TobeConfirmedList:output_type -> Cast.TobeConfirmedListResp - 137, // 236: Cast.Cast.UpsertMediaMetricsDailyBatch:output_type -> Cast.UpsertMediaMetricsDailyBatchResp - 140, // 237: Cast.Cast.UpsertWorkMetricsDailyBatch:output_type -> Cast.UpsertWorkMetricsDailyBatchResp - 149, // 238: Cast.Cast.ListMediaMetricsDaily:output_type -> Cast.ListMediaMetricsDailyResp - 152, // 239: Cast.Cast.ListWorkMetricsDaily:output_type -> Cast.ListWorkMetricsDailyResp - 162, // 240: Cast.Cast.CalculateMediaMetricsByWorks:output_type -> Cast.CalculateMediaMetricsByWorksResp - 143, // 241: Cast.Cast.GetArtistAyrShareInfo:output_type -> Cast.GetArtistAyrShareInfoResp - 146, // 242: Cast.Cast.ListWorkPlatformInfo:output_type -> Cast.ListWorkPlatformInfoResp - 154, // 243: Cast.Cast.UpsertTaskList:output_type -> Cast.UpsertTaskListResp - 157, // 244: Cast.Cast.GetTaskList:output_type -> Cast.GetTaskListResp - 159, // 245: Cast.Cast.ListTaskList:output_type -> Cast.ListTaskListResp - 172, // 246: Cast.Cast.DeleteTaskList:output_type -> google.protobuf.Empty - 178, // [178:247] is the sub-list for method output_type - 109, // [109:178] is the sub-list for method input_type - 109, // [109:109] is the sub-list for extension type_name - 109, // [109:109] is the sub-list for extension extendee - 0, // [0:109] is the sub-list for field type_name + 200, // 34: Cast.MediaAccountsResp.data:type_name -> Cast.MediaAccountsResp.Info + 201, // 35: Cast.MediaWorksResp.data:type_name -> Cast.MediaWorksResp.Info + 202, // 36: Cast.PublishResp.data:type_name -> Cast.PublishResp.Info + 203, // 37: Cast.WorkListPublishedResp.data:type_name -> Cast.WorkListPublishedResp.Info + 16, // 38: Cast.ImportWorkBatchReq.imageWorks:type_name -> Cast.UpdateWorkImageReq + 16, // 39: Cast.ImportWorkBatchResp.imageWorks:type_name -> Cast.UpdateWorkImageReq + 4, // 40: Cast.PlatformInfo.publishStatus:type_name -> Cast.PublishStatusENUM + 48, // 41: Cast.UpdateWorkPlatformInfoReq.PlatformInfoData:type_name -> Cast.PlatformInfo + 0, // 42: Cast.UpdateWorkPublishLogReq.platformID:type_name -> Cast.PlatformIDENUM + 204, // 43: Cast.RefreshWorkListResp.Data:type_name -> Cast.RefreshWorkListResp.Info + 0, // 44: Cast.OAuthCodeToTokenReq.platformID:type_name -> Cast.PlatformIDENUM + 206, // 45: Cast.UpdateOAuthReq.Data:type_name -> Cast.UpdateOAuthReq.Info + 0, // 46: Cast.RefreshTokenReq.platformID:type_name -> Cast.PlatformIDENUM + 73, // 47: Cast.ListVideoScriptsResp.data:type_name -> Cast.VideoScriptInfo + 73, // 48: Cast.UpdateVideoScriptBatchReq.data:type_name -> Cast.VideoScriptInfo + 73, // 49: Cast.UpdateVideoScriptBatchResp.data:type_name -> Cast.VideoScriptInfo + 2, // 50: Cast.UpdateScriptStatusReq.workAction:type_name -> Cast.WorkActionENUM + 6, // 51: Cast.UpdatePromptReq.category:type_name -> Cast.CategoryENUM + 6, // 52: Cast.GetPromptResp.category:type_name -> Cast.CategoryENUM + 6, // 53: Cast.ListPromptsReq.category:type_name -> Cast.CategoryENUM + 6, // 54: Cast.PromptInfo.category:type_name -> Cast.CategoryENUM + 87, // 55: Cast.ListPromptsResp.data:type_name -> Cast.PromptInfo + 87, // 56: Cast.UpdatePromptBatchReq.data:type_name -> Cast.PromptInfo + 87, // 57: Cast.UpdatePromptBatchResp.data:type_name -> Cast.PromptInfo + 91, // 58: Cast.UpdateArtistReq.artistInfo:type_name -> Cast.ArtistInfo + 91, // 59: Cast.GetArtistResp.artistInfo:type_name -> Cast.ArtistInfo + 2, // 60: Cast.UpdateWorkAnalysisStatusReq.workAction:type_name -> Cast.WorkActionENUM + 101, // 61: Cast.GetWorkAnalysisResp.fansSeries:type_name -> Cast.WorkAnalysisFansSeries + 102, // 62: Cast.GetWorkAnalysisResp.viewsSeries:type_name -> Cast.WorkAnalysisViewsSeries + 103, // 63: Cast.GetWorkAnalysisResp.likesSeries:type_name -> Cast.WorkAnalysisLikesSeries + 104, // 64: Cast.GetWorkAnalysisResp.commentsSeries:type_name -> Cast.WorkAnalysisCommentsSeries + 105, // 65: Cast.GetWorkAnalysisResp.sharesSeries:type_name -> Cast.WorkAnalysisSharesSeries + 106, // 66: Cast.GetWorkAnalysisResp.topCitiesSeries:type_name -> Cast.WorkAnalysisTopCities + 107, // 67: Cast.GetWorkAnalysisResp.mostActiveDaySeries:type_name -> Cast.WorkAnalysisMostActiveDay + 108, // 68: Cast.GetWorkAnalysisResp.bestPostTimeSeries:type_name -> Cast.WorkAnalysisBestPostTime + 100, // 69: Cast.GetWorkAnalysisDetailResp.WorkAnalysisLogData:type_name -> Cast.WorkAnalysisLogInfo + 101, // 70: Cast.GetWorkAnalysisDetailResp.fansSeries:type_name -> Cast.WorkAnalysisFansSeries + 102, // 71: Cast.GetWorkAnalysisDetailResp.viewsSeries:type_name -> Cast.WorkAnalysisViewsSeries + 103, // 72: Cast.GetWorkAnalysisDetailResp.likesSeries:type_name -> Cast.WorkAnalysisLikesSeries + 104, // 73: Cast.GetWorkAnalysisDetailResp.commentsSeries:type_name -> Cast.WorkAnalysisCommentsSeries + 105, // 74: Cast.GetWorkAnalysisDetailResp.sharesSeries:type_name -> Cast.WorkAnalysisSharesSeries + 106, // 75: Cast.GetWorkAnalysisDetailResp.topCitiesSeries:type_name -> Cast.WorkAnalysisTopCities + 107, // 76: Cast.GetWorkAnalysisDetailResp.mostActiveDaySeries:type_name -> Cast.WorkAnalysisMostActiveDay + 108, // 77: Cast.GetWorkAnalysisDetailResp.bestPostTimeSeries:type_name -> Cast.WorkAnalysisBestPostTime + 109, // 78: Cast.GetWorkAnalysisDetailResp.extra:type_name -> Cast.WorkAnalysisExtra + 115, // 79: Cast.ListWorkAnalysisResp.data:type_name -> Cast.WorkAnalysisInfo + 119, // 80: Cast.ArtistDataListResp.data:type_name -> Cast.ArtistDataRespItem + 122, // 81: Cast.MediaDataListResp.data:type_name -> Cast.MediaDataListItem + 101, // 82: Cast.ArtistMetricsSeriesResp.fansSeries:type_name -> Cast.WorkAnalysisFansSeries + 102, // 83: Cast.ArtistMetricsSeriesResp.viewsSeries:type_name -> Cast.WorkAnalysisViewsSeries + 103, // 84: Cast.ArtistMetricsSeriesResp.likesSeries:type_name -> Cast.WorkAnalysisLikesSeries + 104, // 85: Cast.ArtistMetricsSeriesResp.commentsSeries:type_name -> Cast.WorkAnalysisCommentsSeries + 105, // 86: Cast.ArtistMetricsSeriesResp.sharesSeries:type_name -> Cast.WorkAnalysisSharesSeries + 108, // 87: Cast.ArtistMetricsSeriesResp.bestPostTime:type_name -> Cast.WorkAnalysisBestPostTime + 107, // 88: Cast.ArtistMetricsSeriesResp.mostActiveDay:type_name -> Cast.WorkAnalysisMostActiveDay + 129, // 89: Cast.ArtistMetricsDailyWindowResp.fans:type_name -> Cast.SimplePoint + 129, // 90: Cast.ArtistMetricsDailyWindowResp.views:type_name -> Cast.SimplePoint + 129, // 91: Cast.ArtistMetricsDailyWindowResp.likes:type_name -> Cast.SimplePoint + 129, // 92: Cast.ArtistMetricsDailyWindowResp.comments:type_name -> Cast.SimplePoint + 129, // 93: Cast.ArtistMetricsDailyWindowResp.shares:type_name -> Cast.SimplePoint + 130, // 94: Cast.ArtistMetricsDailyWindowResp.bestPostTime:type_name -> Cast.BestPostTimePoint + 131, // 95: Cast.ArtistMetricsDailyWindowResp.mostActiveDay:type_name -> Cast.MostActiveDayPoint + 134, // 96: Cast.TobeConfirmedListResp.data:type_name -> Cast.TobeConfirmedItem + 137, // 97: Cast.UpsertMediaMetricsDailyBatchReq.data:type_name -> Cast.MediaMetricsDailyItem + 140, // 98: Cast.UpsertWorkMetricsDailyBatchReq.data:type_name -> Cast.WorkMetricsDailyItem + 144, // 99: Cast.GetArtistAyrShareInfoResp.data:type_name -> Cast.ArtistAyrShareInfo + 144, // 100: Cast.GetArtistAyrShareInfoByPlatformIDsResp.data:type_name -> Cast.ArtistAyrShareInfo + 149, // 101: Cast.ListWorkPlatformInfoResp.data:type_name -> Cast.WorkPlatformInfo + 152, // 102: Cast.ListMediaMetricsDailyResp.data:type_name -> Cast.MediaMetricsDailyInfo + 155, // 103: Cast.ListWorkMetricsDailyResp.data:type_name -> Cast.WorkMetricsDailyInfo + 160, // 104: Cast.GetTaskListResp.data:type_name -> Cast.TaskListInfo + 160, // 105: Cast.ListTaskListResp.data:type_name -> Cast.TaskListInfo + 170, // 106: Cast.ListCastTagsResp.data:type_name -> Cast.CastTagInfo + 170, // 107: Cast.UpdateCastTagBatchReq.data:type_name -> Cast.CastTagInfo + 170, // 108: Cast.UpdateCastTagBatchResp.data:type_name -> Cast.CastTagInfo + 170, // 109: Cast.BatchUpdateCastTagsReq.data:type_name -> Cast.CastTagInfo + 2, // 110: Cast.UpdateCompetitiveReportStatusReq.workAction:type_name -> Cast.WorkActionENUM + 182, // 111: Cast.GetCompetitiveReportDetailResp.reportLogData:type_name -> Cast.CompetitiveReportLogInfo + 183, // 112: Cast.GetCompetitiveReportDetailResp.extra:type_name -> Cast.CompetitiveReportExtra + 189, // 113: Cast.ListCompetitiveReportResp.data:type_name -> Cast.CompetitiveReportInfo + 177, // 114: Cast.ImportCompetitiveReportBatchReq.reports:type_name -> Cast.CreateCompetitiveReportReq + 177, // 115: Cast.ImportCompetitiveReportBatchResp.reports:type_name -> Cast.CreateCompetitiveReportReq + 195, // 116: Cast.CountCompetitiveReportByWorkUuidsResp.data:type_name -> Cast.WorkUuidCount + 198, // 117: Cast.WorkListResp.Info.PublishMediaIDs:type_name -> Cast.WorkListResp.Info.PublishMediaIDsEntry + 9, // 118: Cast.WorkDetailResp.MediaAccDataEntry.value:type_name -> Cast.MediaUserInfo + 205, // 119: Cast.RefreshWorkListResp.Info.PlatformInfoData:type_name -> Cast.RefreshWorkListResp.Info.PlatformInfo + 0, // 120: Cast.RefreshWorkListResp.Info.PlatformInfo.platformID:type_name -> Cast.PlatformIDENUM + 0, // 121: Cast.UpdateOAuthReq.Info.platformID:type_name -> Cast.PlatformIDENUM + 8, // 122: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq + 11, // 123: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq + 13, // 124: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq + 15, // 125: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq + 16, // 126: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq + 19, // 127: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq + 21, // 128: Cast.Cast.MediaInfo:input_type -> Cast.MediaInfoReq + 23, // 129: Cast.Cast.MediaInfoByPlatform:input_type -> Cast.MediaInfoByPlatformReq + 25, // 130: Cast.Cast.WorkList:input_type -> Cast.WorkListReq + 42, // 131: Cast.Cast.WorkListPublished:input_type -> Cast.WorkListPublishedReq + 27, // 132: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq + 30, // 133: Cast.Cast.UpdateStatus:input_type -> Cast.UpdateStatusReq + 31, // 134: Cast.Cast.MediaAccounts:input_type -> Cast.MediaAccountsReq + 33, // 135: Cast.Cast.MediaWorks:input_type -> Cast.MediaWorksReq + 35, // 136: Cast.Cast.Publish:input_type -> Cast.PublishReq + 37, // 137: Cast.Cast.RePublish:input_type -> Cast.RePublishReq + 39, // 138: Cast.Cast.DelWork:input_type -> Cast.DelWorkReq + 40, // 139: Cast.Cast.WorkInfo:input_type -> Cast.WorkInfoReq + 44, // 140: Cast.Cast.ArtistInfo:input_type -> Cast.ArtistInfoReq + 46, // 141: Cast.Cast.ImportWorkBatch:input_type -> Cast.ImportWorkBatchReq + 49, // 142: Cast.Cast.UpdateWorkPlatformInfo:input_type -> Cast.UpdateWorkPlatformInfoReq + 51, // 143: Cast.Cast.UpdateWorkPublishLog:input_type -> Cast.UpdateWorkPublishLogReq + 52, // 144: Cast.Cast.RefreshWorkList:input_type -> Cast.RefreshWorkListReq + 54, // 145: Cast.Cast.OAuthAccount:input_type -> Cast.OAuthAccountReq + 56, // 146: Cast.Cast.OAuthAccountV2:input_type -> Cast.OAuthAccountV2Req + 60, // 147: Cast.Cast.OAuthCodeToToken:input_type -> Cast.OAuthCodeToTokenReq + 62, // 148: Cast.Cast.UpdateOAuth:input_type -> Cast.UpdateOAuthReq + 63, // 149: Cast.Cast.RefreshToken:input_type -> Cast.RefreshTokenReq + 65, // 150: Cast.Cast.PublishMediaInfo:input_type -> Cast.PublishMediaInfoReq + 67, // 151: Cast.Cast.Tools:input_type -> Cast.ToolsReq + 68, // 152: Cast.Cast.UpdateVideoScript:input_type -> Cast.UpdateVideoScriptReq + 70, // 153: Cast.Cast.GetVideoScript:input_type -> Cast.GetVideoScriptReq + 72, // 154: Cast.Cast.ListVideoScripts:input_type -> Cast.ListVideoScriptsReq + 75, // 155: Cast.Cast.DeleteVideoScript:input_type -> Cast.DeleteVideoScriptReq + 76, // 156: Cast.Cast.UpdateVideoScriptBatch:input_type -> Cast.UpdateVideoScriptBatchReq + 78, // 157: Cast.Cast.UpdateScriptStatus:input_type -> Cast.UpdateScriptStatusReq + 80, // 158: Cast.Cast.GetLayout:input_type -> Cast.GetLayoutReq + 79, // 159: Cast.Cast.SetLayout:input_type -> Cast.SetLayoutReq + 82, // 160: Cast.Cast.UpdatePrompt:input_type -> Cast.UpdatePromptReq + 83, // 161: Cast.Cast.DeletePrompt:input_type -> Cast.DeletePromptReq + 84, // 162: Cast.Cast.GetPrompt:input_type -> Cast.GetPromptReq + 86, // 163: Cast.Cast.ListPrompts:input_type -> Cast.ListPromptsReq + 89, // 164: Cast.Cast.UpdatePromptBatch:input_type -> Cast.UpdatePromptBatchReq + 92, // 165: Cast.Cast.UpdateArtist:input_type -> Cast.UpdateArtistReq + 94, // 166: Cast.Cast.GetArtist:input_type -> Cast.GetArtistReq + 96, // 167: Cast.Cast.CreateWorkAnalysis:input_type -> Cast.CreateWorkAnalysisReq + 98, // 168: Cast.Cast.UpdateWorkAnalysis:input_type -> Cast.UpdateWorkAnalysisReq + 99, // 169: Cast.Cast.UpdateWorkAnalysisStatus:input_type -> Cast.UpdateWorkAnalysisStatusReq + 110, // 170: Cast.Cast.GetWorkAnalysis:input_type -> Cast.GetWorkAnalysisDetailReq + 111, // 171: Cast.Cast.GetLatestWorkAnalysis:input_type -> Cast.GetLatestWorkAnalysisReq + 114, // 172: Cast.Cast.ListWorkAnalysis:input_type -> Cast.ListWorkAnalysisReq + 117, // 173: Cast.Cast.DeleteWorkAnalysis:input_type -> Cast.DeleteWorkAnalysisReq + 136, // 174: Cast.Cast.UpdateWorkAnalysisApprovalID:input_type -> Cast.UpdateWorkAnalysisApprovalIDReq + 118, // 175: Cast.Cast.ArtistDataList:input_type -> Cast.ArtistDataListReq + 121, // 176: Cast.Cast.MediaDataList:input_type -> Cast.MediaDataListReq + 124, // 177: Cast.Cast.DataOverview:input_type -> Cast.DataOverviewReq + 126, // 178: Cast.Cast.ArtistMetricsSeries:input_type -> Cast.ArtistMetricsSeriesReq + 128, // 179: Cast.Cast.ArtistMetricsDailyWindow:input_type -> Cast.ArtistMetricsDailyWindowReq + 133, // 180: Cast.Cast.TobeConfirmedList:input_type -> Cast.TobeConfirmedListReq + 138, // 181: Cast.Cast.UpsertMediaMetricsDailyBatch:input_type -> Cast.UpsertMediaMetricsDailyBatchReq + 141, // 182: Cast.Cast.UpsertWorkMetricsDailyBatch:input_type -> Cast.UpsertWorkMetricsDailyBatchReq + 151, // 183: Cast.Cast.ListMediaMetricsDaily:input_type -> Cast.ListMediaMetricsDailyReq + 154, // 184: Cast.Cast.ListWorkMetricsDaily:input_type -> Cast.ListWorkMetricsDailyReq + 165, // 185: Cast.Cast.CalculateMediaMetricsByWorks:input_type -> Cast.CalculateMediaMetricsByWorksReq + 143, // 186: Cast.Cast.GetArtistAyrShareInfo:input_type -> Cast.GetArtistAyrShareInfoReq + 146, // 187: Cast.Cast.GetArtistAyrShareInfoByPlatformIDs:input_type -> Cast.GetArtistAyrShareInfoByPlatformIDsReq + 148, // 188: Cast.Cast.ListWorkPlatformInfo:input_type -> Cast.ListWorkPlatformInfoReq + 157, // 189: Cast.Cast.UpsertTaskList:input_type -> Cast.UpsertTaskListReq + 159, // 190: Cast.Cast.GetTaskList:input_type -> Cast.GetTaskListReq + 162, // 191: Cast.Cast.ListTaskList:input_type -> Cast.ListTaskListReq + 164, // 192: Cast.Cast.DeleteTaskList:input_type -> Cast.DeleteTaskListReq + 167, // 193: Cast.Cast.UpdateCastTag:input_type -> Cast.UpdateCastTagReq + 169, // 194: Cast.Cast.ListCastTags:input_type -> Cast.ListCastTagsReq + 172, // 195: Cast.Cast.UpdateCastTagBatch:input_type -> Cast.UpdateCastTagBatchReq + 174, // 196: Cast.Cast.BatchUpdateCastTags:input_type -> Cast.BatchUpdateCastTagsReq + 175, // 197: Cast.Cast.UpdateCastTagStatus:input_type -> Cast.UpdateCastTagStatusReq + 207, // 198: Cast.Cast.RecalculateCastTagQuoteCount:input_type -> google.protobuf.Empty + 177, // 199: Cast.Cast.CreateCompetitiveReport:input_type -> Cast.CreateCompetitiveReportReq + 192, // 200: Cast.Cast.ImportCompetitiveReportBatch:input_type -> Cast.ImportCompetitiveReportBatchReq + 180, // 201: Cast.Cast.UpdateCompetitiveReportStatus:input_type -> Cast.UpdateCompetitiveReportStatusReq + 184, // 202: Cast.Cast.GetCompetitiveReport:input_type -> Cast.GetCompetitiveReportDetailReq + 185, // 203: Cast.Cast.GetCompetitiveReportForApp:input_type -> Cast.GetCompetitiveReportForAppReq + 188, // 204: Cast.Cast.ListCompetitiveReport:input_type -> Cast.ListCompetitiveReportReq + 191, // 205: Cast.Cast.DeleteCompetitiveReport:input_type -> Cast.DeleteCompetitiveReportReq + 181, // 206: Cast.Cast.UpdateCompetitiveReportApprovalID:input_type -> Cast.UpdateCompetitiveReportApprovalIDReq + 194, // 207: Cast.Cast.CountCompetitiveReportByWorkUuids:input_type -> Cast.CountCompetitiveReportByWorkUuidsReq + 10, // 208: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp + 12, // 209: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp + 14, // 210: Cast.Cast.UnbindManager:output_type -> Cast.UnbindManagerResp + 207, // 211: Cast.Cast.BindManager:output_type -> google.protobuf.Empty + 17, // 212: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp + 20, // 213: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp + 22, // 214: Cast.Cast.MediaInfo:output_type -> Cast.MediaInfoResp + 24, // 215: Cast.Cast.MediaInfoByPlatform:output_type -> Cast.MediaInfoByPlatformResp + 26, // 216: Cast.Cast.WorkList:output_type -> Cast.WorkListResp + 43, // 217: Cast.Cast.WorkListPublished:output_type -> Cast.WorkListPublishedResp + 29, // 218: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp + 207, // 219: Cast.Cast.UpdateStatus:output_type -> google.protobuf.Empty + 32, // 220: Cast.Cast.MediaAccounts:output_type -> Cast.MediaAccountsResp + 34, // 221: Cast.Cast.MediaWorks:output_type -> Cast.MediaWorksResp + 36, // 222: Cast.Cast.Publish:output_type -> Cast.PublishResp + 38, // 223: Cast.Cast.RePublish:output_type -> Cast.RePublishResp + 207, // 224: Cast.Cast.DelWork:output_type -> google.protobuf.Empty + 41, // 225: Cast.Cast.WorkInfo:output_type -> Cast.WorkInfoResp + 45, // 226: Cast.Cast.ArtistInfo:output_type -> Cast.ArtistInfoResp + 47, // 227: Cast.Cast.ImportWorkBatch:output_type -> Cast.ImportWorkBatchResp + 50, // 228: Cast.Cast.UpdateWorkPlatformInfo:output_type -> Cast.UpdateWorkPlatformInfoResp + 207, // 229: Cast.Cast.UpdateWorkPublishLog:output_type -> google.protobuf.Empty + 53, // 230: Cast.Cast.RefreshWorkList:output_type -> Cast.RefreshWorkListResp + 55, // 231: Cast.Cast.OAuthAccount:output_type -> Cast.OAuthAccountResp + 57, // 232: Cast.Cast.OAuthAccountV2:output_type -> Cast.OAuthAccountV2Resp + 61, // 233: Cast.Cast.OAuthCodeToToken:output_type -> Cast.OAuthCodeToTokenResp + 207, // 234: Cast.Cast.UpdateOAuth:output_type -> google.protobuf.Empty + 64, // 235: Cast.Cast.RefreshToken:output_type -> Cast.RefreshTokenResp + 66, // 236: Cast.Cast.PublishMediaInfo:output_type -> Cast.PublishMediaInfoResp + 207, // 237: Cast.Cast.Tools:output_type -> google.protobuf.Empty + 69, // 238: Cast.Cast.UpdateVideoScript:output_type -> Cast.UpdateVideoScriptResp + 71, // 239: Cast.Cast.GetVideoScript:output_type -> Cast.GetVideoScriptResp + 74, // 240: Cast.Cast.ListVideoScripts:output_type -> Cast.ListVideoScriptsResp + 207, // 241: Cast.Cast.DeleteVideoScript:output_type -> google.protobuf.Empty + 77, // 242: Cast.Cast.UpdateVideoScriptBatch:output_type -> Cast.UpdateVideoScriptBatchResp + 207, // 243: Cast.Cast.UpdateScriptStatus:output_type -> google.protobuf.Empty + 81, // 244: Cast.Cast.GetLayout:output_type -> Cast.GetLayoutResp + 207, // 245: Cast.Cast.SetLayout:output_type -> google.protobuf.Empty + 207, // 246: Cast.Cast.UpdatePrompt:output_type -> google.protobuf.Empty + 207, // 247: Cast.Cast.DeletePrompt:output_type -> google.protobuf.Empty + 85, // 248: Cast.Cast.GetPrompt:output_type -> Cast.GetPromptResp + 88, // 249: Cast.Cast.ListPrompts:output_type -> Cast.ListPromptsResp + 90, // 250: Cast.Cast.UpdatePromptBatch:output_type -> Cast.UpdatePromptBatchResp + 93, // 251: Cast.Cast.UpdateArtist:output_type -> Cast.UpdateArtistResp + 95, // 252: Cast.Cast.GetArtist:output_type -> Cast.GetArtistResp + 97, // 253: Cast.Cast.CreateWorkAnalysis:output_type -> Cast.CreateWorkAnalysisResp + 207, // 254: Cast.Cast.UpdateWorkAnalysis:output_type -> google.protobuf.Empty + 207, // 255: Cast.Cast.UpdateWorkAnalysisStatus:output_type -> google.protobuf.Empty + 113, // 256: Cast.Cast.GetWorkAnalysis:output_type -> Cast.GetWorkAnalysisDetailResp + 112, // 257: Cast.Cast.GetLatestWorkAnalysis:output_type -> Cast.GetWorkAnalysisResp + 116, // 258: Cast.Cast.ListWorkAnalysis:output_type -> Cast.ListWorkAnalysisResp + 207, // 259: Cast.Cast.DeleteWorkAnalysis:output_type -> google.protobuf.Empty + 207, // 260: Cast.Cast.UpdateWorkAnalysisApprovalID:output_type -> google.protobuf.Empty + 120, // 261: Cast.Cast.ArtistDataList:output_type -> Cast.ArtistDataListResp + 123, // 262: Cast.Cast.MediaDataList:output_type -> Cast.MediaDataListResp + 125, // 263: Cast.Cast.DataOverview:output_type -> Cast.DataOverviewResp + 127, // 264: Cast.Cast.ArtistMetricsSeries:output_type -> Cast.ArtistMetricsSeriesResp + 132, // 265: Cast.Cast.ArtistMetricsDailyWindow:output_type -> Cast.ArtistMetricsDailyWindowResp + 135, // 266: Cast.Cast.TobeConfirmedList:output_type -> Cast.TobeConfirmedListResp + 139, // 267: Cast.Cast.UpsertMediaMetricsDailyBatch:output_type -> Cast.UpsertMediaMetricsDailyBatchResp + 142, // 268: Cast.Cast.UpsertWorkMetricsDailyBatch:output_type -> Cast.UpsertWorkMetricsDailyBatchResp + 153, // 269: Cast.Cast.ListMediaMetricsDaily:output_type -> Cast.ListMediaMetricsDailyResp + 156, // 270: Cast.Cast.ListWorkMetricsDaily:output_type -> Cast.ListWorkMetricsDailyResp + 166, // 271: Cast.Cast.CalculateMediaMetricsByWorks:output_type -> Cast.CalculateMediaMetricsByWorksResp + 145, // 272: Cast.Cast.GetArtistAyrShareInfo:output_type -> Cast.GetArtistAyrShareInfoResp + 147, // 273: Cast.Cast.GetArtistAyrShareInfoByPlatformIDs:output_type -> Cast.GetArtistAyrShareInfoByPlatformIDsResp + 150, // 274: Cast.Cast.ListWorkPlatformInfo:output_type -> Cast.ListWorkPlatformInfoResp + 158, // 275: Cast.Cast.UpsertTaskList:output_type -> Cast.UpsertTaskListResp + 161, // 276: Cast.Cast.GetTaskList:output_type -> Cast.GetTaskListResp + 163, // 277: Cast.Cast.ListTaskList:output_type -> Cast.ListTaskListResp + 207, // 278: Cast.Cast.DeleteTaskList:output_type -> google.protobuf.Empty + 168, // 279: Cast.Cast.UpdateCastTag:output_type -> Cast.UpdateCastTagResp + 171, // 280: Cast.Cast.ListCastTags:output_type -> Cast.ListCastTagsResp + 173, // 281: Cast.Cast.UpdateCastTagBatch:output_type -> Cast.UpdateCastTagBatchResp + 207, // 282: Cast.Cast.BatchUpdateCastTags:output_type -> google.protobuf.Empty + 207, // 283: Cast.Cast.UpdateCastTagStatus:output_type -> google.protobuf.Empty + 176, // 284: Cast.Cast.RecalculateCastTagQuoteCount:output_type -> Cast.RecalculateCastTagQuoteCountResp + 178, // 285: Cast.Cast.CreateCompetitiveReport:output_type -> Cast.CreateCompetitiveReportResp + 193, // 286: Cast.Cast.ImportCompetitiveReportBatch:output_type -> Cast.ImportCompetitiveReportBatchResp + 207, // 287: Cast.Cast.UpdateCompetitiveReportStatus:output_type -> google.protobuf.Empty + 187, // 288: Cast.Cast.GetCompetitiveReport:output_type -> Cast.GetCompetitiveReportDetailResp + 186, // 289: Cast.Cast.GetCompetitiveReportForApp:output_type -> Cast.GetCompetitiveReportForAppResp + 190, // 290: Cast.Cast.ListCompetitiveReport:output_type -> Cast.ListCompetitiveReportResp + 207, // 291: Cast.Cast.DeleteCompetitiveReport:output_type -> google.protobuf.Empty + 207, // 292: Cast.Cast.UpdateCompetitiveReportApprovalID:output_type -> google.protobuf.Empty + 196, // 293: Cast.Cast.CountCompetitiveReportByWorkUuids:output_type -> Cast.CountCompetitiveReportByWorkUuidsResp + 208, // [208:294] is the sub-list for method output_type + 122, // [122:208] is the sub-list for method input_type + 122, // [122:122] is the sub-list for extension type_name + 122, // [122:122] is the sub-list for extension extendee + 0, // [0:122] is the sub-list for field type_name } func init() { file_pb_fiee_cast_proto_init() } @@ -16212,7 +19383,7 @@ func file_pb_fiee_cast_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_pb_fiee_cast_proto_rawDesc), len(file_pb_fiee_cast_proto_rawDesc)), NumEnums: 7, - NumMessages: 165, + NumMessages: 200, NumExtensions: 0, NumServices: 1, }, diff --git a/api/cast/cast.pb.validate.go b/api/cast/cast.pb.validate.go index 4635a1e..52704b7 100644 --- a/api/cast/cast.pb.validate.go +++ b/api/cast/cast.pb.validate.go @@ -185,6 +185,8 @@ func (m *MediaUserListReq) validate(all bool) error { // no validation rules for NeedAsInfo + // no validation rules for Expired + if len(errors) > 0 { return MediaUserListReqMultiError(errors) } @@ -348,6 +350,8 @@ func (m *MediaUserInfo) validate(all bool) error { // no validation rules for ArtistSubNum + // no validation rules for Expired + if len(errors) > 0 { return MediaUserInfoMultiError(errors) } @@ -4659,6 +4663,252 @@ var _ interface { ErrorName() string } = WorkInfoRespValidationError{} +// Validate checks the field values on WorkListPublishedReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkListPublishedReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkListPublishedReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkListPublishedReqMultiError, or nil if none found. +func (m *WorkListPublishedReq) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkListPublishedReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ArtistUuid + + // no validation rules for Page + + // no validation rules for PageSize + + if len(errors) > 0 { + return WorkListPublishedReqMultiError(errors) + } + + return nil +} + +// WorkListPublishedReqMultiError is an error wrapping multiple validation +// errors returned by WorkListPublishedReq.ValidateAll() if the designated +// constraints aren't met. +type WorkListPublishedReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkListPublishedReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkListPublishedReqMultiError) AllErrors() []error { return m } + +// WorkListPublishedReqValidationError is the validation error returned by +// WorkListPublishedReq.Validate if the designated constraints aren't met. +type WorkListPublishedReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkListPublishedReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkListPublishedReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkListPublishedReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkListPublishedReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkListPublishedReqValidationError) ErrorName() string { + return "WorkListPublishedReqValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkListPublishedReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkListPublishedReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkListPublishedReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkListPublishedReqValidationError{} + +// Validate checks the field values on WorkListPublishedResp with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkListPublishedResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkListPublishedResp with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkListPublishedRespMultiError, or nil if none found. +func (m *WorkListPublishedResp) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkListPublishedResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Count + + for idx, item := range m.GetData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, WorkListPublishedRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, WorkListPublishedRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return WorkListPublishedRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return WorkListPublishedRespMultiError(errors) + } + + return nil +} + +// WorkListPublishedRespMultiError is an error wrapping multiple validation +// errors returned by WorkListPublishedResp.ValidateAll() if the designated +// constraints aren't met. +type WorkListPublishedRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkListPublishedRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkListPublishedRespMultiError) AllErrors() []error { return m } + +// WorkListPublishedRespValidationError is the validation error returned by +// WorkListPublishedResp.Validate if the designated constraints aren't met. +type WorkListPublishedRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkListPublishedRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkListPublishedRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkListPublishedRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkListPublishedRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkListPublishedRespValidationError) ErrorName() string { + return "WorkListPublishedRespValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkListPublishedRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkListPublishedResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkListPublishedRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkListPublishedRespValidationError{} + // Validate checks the field values on ArtistInfoReq with the rules defined in // the proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. @@ -17694,6 +17944,257 @@ var _ interface { ErrorName() string } = GetArtistAyrShareInfoRespValidationError{} +// Validate checks the field values on GetArtistAyrShareInfoByPlatformIDsReq +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *GetArtistAyrShareInfoByPlatformIDsReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetArtistAyrShareInfoByPlatformIDsReq +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// GetArtistAyrShareInfoByPlatformIDsReqMultiError, or nil if none found. +func (m *GetArtistAyrShareInfoByPlatformIDsReq) ValidateAll() error { + return m.validate(true) +} + +func (m *GetArtistAyrShareInfoByPlatformIDsReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Page + + // no validation rules for PageSize + + if len(errors) > 0 { + return GetArtistAyrShareInfoByPlatformIDsReqMultiError(errors) + } + + return nil +} + +// GetArtistAyrShareInfoByPlatformIDsReqMultiError is an error wrapping +// multiple validation errors returned by +// GetArtistAyrShareInfoByPlatformIDsReq.ValidateAll() if the designated +// constraints aren't met. +type GetArtistAyrShareInfoByPlatformIDsReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetArtistAyrShareInfoByPlatformIDsReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetArtistAyrShareInfoByPlatformIDsReqMultiError) AllErrors() []error { return m } + +// GetArtistAyrShareInfoByPlatformIDsReqValidationError is the validation error +// returned by GetArtistAyrShareInfoByPlatformIDsReq.Validate if the +// designated constraints aren't met. +type GetArtistAyrShareInfoByPlatformIDsReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetArtistAyrShareInfoByPlatformIDsReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetArtistAyrShareInfoByPlatformIDsReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetArtistAyrShareInfoByPlatformIDsReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetArtistAyrShareInfoByPlatformIDsReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetArtistAyrShareInfoByPlatformIDsReqValidationError) ErrorName() string { + return "GetArtistAyrShareInfoByPlatformIDsReqValidationError" +} + +// Error satisfies the builtin error interface +func (e GetArtistAyrShareInfoByPlatformIDsReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetArtistAyrShareInfoByPlatformIDsReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetArtistAyrShareInfoByPlatformIDsReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetArtistAyrShareInfoByPlatformIDsReqValidationError{} + +// Validate checks the field values on GetArtistAyrShareInfoByPlatformIDsResp +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *GetArtistAyrShareInfoByPlatformIDsResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on +// GetArtistAyrShareInfoByPlatformIDsResp with the rules defined in the proto +// definition for this message. If any rules are violated, the result is a +// list of violation errors wrapped in +// GetArtistAyrShareInfoByPlatformIDsRespMultiError, or nil if none found. +func (m *GetArtistAyrShareInfoByPlatformIDsResp) ValidateAll() error { + return m.validate(true) +} + +func (m *GetArtistAyrShareInfoByPlatformIDsResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GetArtistAyrShareInfoByPlatformIDsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GetArtistAyrShareInfoByPlatformIDsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GetArtistAyrShareInfoByPlatformIDsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return GetArtistAyrShareInfoByPlatformIDsRespMultiError(errors) + } + + return nil +} + +// GetArtistAyrShareInfoByPlatformIDsRespMultiError is an error wrapping +// multiple validation errors returned by +// GetArtistAyrShareInfoByPlatformIDsResp.ValidateAll() if the designated +// constraints aren't met. +type GetArtistAyrShareInfoByPlatformIDsRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetArtistAyrShareInfoByPlatformIDsRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetArtistAyrShareInfoByPlatformIDsRespMultiError) AllErrors() []error { return m } + +// GetArtistAyrShareInfoByPlatformIDsRespValidationError is the validation +// error returned by GetArtistAyrShareInfoByPlatformIDsResp.Validate if the +// designated constraints aren't met. +type GetArtistAyrShareInfoByPlatformIDsRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetArtistAyrShareInfoByPlatformIDsRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetArtistAyrShareInfoByPlatformIDsRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetArtistAyrShareInfoByPlatformIDsRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetArtistAyrShareInfoByPlatformIDsRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetArtistAyrShareInfoByPlatformIDsRespValidationError) ErrorName() string { + return "GetArtistAyrShareInfoByPlatformIDsRespValidationError" +} + +// Error satisfies the builtin error interface +func (e GetArtistAyrShareInfoByPlatformIDsRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetArtistAyrShareInfoByPlatformIDsResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetArtistAyrShareInfoByPlatformIDsRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetArtistAyrShareInfoByPlatformIDsRespValidationError{} + // Validate checks the field values on ListWorkPlatformInfoReq with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. @@ -19988,6 +20489,3706 @@ var _ interface { ErrorName() string } = CalculateMediaMetricsByWorksRespValidationError{} +// Validate checks the field values on UpdateCastTagReq with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *UpdateCastTagReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateCastTagReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UpdateCastTagReqMultiError, or nil if none found. +func (m *UpdateCastTagReq) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateCastTagReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for HashTag + + // no validation rules for Source + + // no validation rules for Status + + // no validation rules for Remark + + if len(errors) > 0 { + return UpdateCastTagReqMultiError(errors) + } + + return nil +} + +// UpdateCastTagReqMultiError is an error wrapping multiple validation errors +// returned by UpdateCastTagReq.ValidateAll() if the designated constraints +// aren't met. +type UpdateCastTagReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateCastTagReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateCastTagReqMultiError) AllErrors() []error { return m } + +// UpdateCastTagReqValidationError is the validation error returned by +// UpdateCastTagReq.Validate if the designated constraints aren't met. +type UpdateCastTagReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateCastTagReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateCastTagReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateCastTagReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateCastTagReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateCastTagReqValidationError) ErrorName() string { return "UpdateCastTagReqValidationError" } + +// Error satisfies the builtin error interface +func (e UpdateCastTagReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateCastTagReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateCastTagReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateCastTagReqValidationError{} + +// Validate checks the field values on UpdateCastTagResp with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *UpdateCastTagResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateCastTagResp with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UpdateCastTagRespMultiError, or nil if none found. +func (m *UpdateCastTagResp) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateCastTagResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + if len(errors) > 0 { + return UpdateCastTagRespMultiError(errors) + } + + return nil +} + +// UpdateCastTagRespMultiError is an error wrapping multiple validation errors +// returned by UpdateCastTagResp.ValidateAll() if the designated constraints +// aren't met. +type UpdateCastTagRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateCastTagRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateCastTagRespMultiError) AllErrors() []error { return m } + +// UpdateCastTagRespValidationError is the validation error returned by +// UpdateCastTagResp.Validate if the designated constraints aren't met. +type UpdateCastTagRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateCastTagRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateCastTagRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateCastTagRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateCastTagRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateCastTagRespValidationError) ErrorName() string { + return "UpdateCastTagRespValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateCastTagRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateCastTagResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateCastTagRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateCastTagRespValidationError{} + +// Validate checks the field values on ListCastTagsReq with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *ListCastTagsReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListCastTagsReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListCastTagsReqMultiError, or nil if none found. +func (m *ListCastTagsReq) ValidateAll() error { + return m.validate(true) +} + +func (m *ListCastTagsReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for HashTag + + // no validation rules for Source + + // no validation rules for Status + + // no validation rules for StatusUpdateTimeStart + + // no validation rules for StatusUpdateTimeEnd + + // no validation rules for CreatedAtStart + + // no validation rules for CreatedAtEnd + + // no validation rules for IsWatchCountCalled + + // no validation rules for OrderBy + + // no validation rules for Sort + + // no validation rules for Page + + // no validation rules for PageSize + + if len(errors) > 0 { + return ListCastTagsReqMultiError(errors) + } + + return nil +} + +// ListCastTagsReqMultiError is an error wrapping multiple validation errors +// returned by ListCastTagsReq.ValidateAll() if the designated constraints +// aren't met. +type ListCastTagsReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListCastTagsReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListCastTagsReqMultiError) AllErrors() []error { return m } + +// ListCastTagsReqValidationError is the validation error returned by +// ListCastTagsReq.Validate if the designated constraints aren't met. +type ListCastTagsReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListCastTagsReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListCastTagsReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListCastTagsReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListCastTagsReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListCastTagsReqValidationError) ErrorName() string { return "ListCastTagsReqValidationError" } + +// Error satisfies the builtin error interface +func (e ListCastTagsReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListCastTagsReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListCastTagsReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListCastTagsReqValidationError{} + +// Validate checks the field values on CastTagInfo with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *CastTagInfo) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CastTagInfo with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in CastTagInfoMultiError, or +// nil if none found. +func (m *CastTagInfo) ValidateAll() error { + return m.validate(true) +} + +func (m *CastTagInfo) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for HashTag + + // no validation rules for CreatorUuid + + // no validation rules for CreatorName + + // no validation rules for Source + + // no validation rules for QuoteCount + + // no validation rules for WatchCount + + // no validation rules for Status + + // no validation rules for Remark + + // no validation rules for StatusUpdateTime + + // no validation rules for CreatedDate + + // no validation rules for Success + + // no validation rules for IsWatchCountCalled + + if len(errors) > 0 { + return CastTagInfoMultiError(errors) + } + + return nil +} + +// CastTagInfoMultiError is an error wrapping multiple validation errors +// returned by CastTagInfo.ValidateAll() if the designated constraints aren't met. +type CastTagInfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CastTagInfoMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CastTagInfoMultiError) AllErrors() []error { return m } + +// CastTagInfoValidationError is the validation error returned by +// CastTagInfo.Validate if the designated constraints aren't met. +type CastTagInfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CastTagInfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CastTagInfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CastTagInfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CastTagInfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CastTagInfoValidationError) ErrorName() string { return "CastTagInfoValidationError" } + +// Error satisfies the builtin error interface +func (e CastTagInfoValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCastTagInfo.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CastTagInfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CastTagInfoValidationError{} + +// Validate checks the field values on ListCastTagsResp with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *ListCastTagsResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListCastTagsResp with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListCastTagsRespMultiError, or nil if none found. +func (m *ListCastTagsResp) ValidateAll() error { + return m.validate(true) +} + +func (m *ListCastTagsResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListCastTagsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListCastTagsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListCastTagsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return ListCastTagsRespMultiError(errors) + } + + return nil +} + +// ListCastTagsRespMultiError is an error wrapping multiple validation errors +// returned by ListCastTagsResp.ValidateAll() if the designated constraints +// aren't met. +type ListCastTagsRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListCastTagsRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListCastTagsRespMultiError) AllErrors() []error { return m } + +// ListCastTagsRespValidationError is the validation error returned by +// ListCastTagsResp.Validate if the designated constraints aren't met. +type ListCastTagsRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListCastTagsRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListCastTagsRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListCastTagsRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListCastTagsRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListCastTagsRespValidationError) ErrorName() string { return "ListCastTagsRespValidationError" } + +// Error satisfies the builtin error interface +func (e ListCastTagsRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListCastTagsResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListCastTagsRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListCastTagsRespValidationError{} + +// Validate checks the field values on UpdateCastTagBatchReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UpdateCastTagBatchReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateCastTagBatchReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UpdateCastTagBatchReqMultiError, or nil if none found. +func (m *UpdateCastTagBatchReq) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateCastTagBatchReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateCastTagBatchReqValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateCastTagBatchReqValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateCastTagBatchReqValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return UpdateCastTagBatchReqMultiError(errors) + } + + return nil +} + +// UpdateCastTagBatchReqMultiError is an error wrapping multiple validation +// errors returned by UpdateCastTagBatchReq.ValidateAll() if the designated +// constraints aren't met. +type UpdateCastTagBatchReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateCastTagBatchReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateCastTagBatchReqMultiError) AllErrors() []error { return m } + +// UpdateCastTagBatchReqValidationError is the validation error returned by +// UpdateCastTagBatchReq.Validate if the designated constraints aren't met. +type UpdateCastTagBatchReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateCastTagBatchReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateCastTagBatchReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateCastTagBatchReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateCastTagBatchReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateCastTagBatchReqValidationError) ErrorName() string { + return "UpdateCastTagBatchReqValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateCastTagBatchReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateCastTagBatchReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateCastTagBatchReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateCastTagBatchReqValidationError{} + +// Validate checks the field values on UpdateCastTagBatchResp with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UpdateCastTagBatchResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateCastTagBatchResp with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UpdateCastTagBatchRespMultiError, or nil if none found. +func (m *UpdateCastTagBatchResp) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateCastTagBatchResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateCastTagBatchRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateCastTagBatchRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateCastTagBatchRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for SuccessCount + + // no validation rules for FailCount + + if len(errors) > 0 { + return UpdateCastTagBatchRespMultiError(errors) + } + + return nil +} + +// UpdateCastTagBatchRespMultiError is an error wrapping multiple validation +// errors returned by UpdateCastTagBatchResp.ValidateAll() if the designated +// constraints aren't met. +type UpdateCastTagBatchRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateCastTagBatchRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateCastTagBatchRespMultiError) AllErrors() []error { return m } + +// UpdateCastTagBatchRespValidationError is the validation error returned by +// UpdateCastTagBatchResp.Validate if the designated constraints aren't met. +type UpdateCastTagBatchRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateCastTagBatchRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateCastTagBatchRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateCastTagBatchRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateCastTagBatchRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateCastTagBatchRespValidationError) ErrorName() string { + return "UpdateCastTagBatchRespValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateCastTagBatchRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateCastTagBatchResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateCastTagBatchRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateCastTagBatchRespValidationError{} + +// Validate checks the field values on BatchUpdateCastTagsReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *BatchUpdateCastTagsReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on BatchUpdateCastTagsReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// BatchUpdateCastTagsReqMultiError, or nil if none found. +func (m *BatchUpdateCastTagsReq) ValidateAll() error { + return m.validate(true) +} + +func (m *BatchUpdateCastTagsReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, BatchUpdateCastTagsReqValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, BatchUpdateCastTagsReqValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BatchUpdateCastTagsReqValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return BatchUpdateCastTagsReqMultiError(errors) + } + + return nil +} + +// BatchUpdateCastTagsReqMultiError is an error wrapping multiple validation +// errors returned by BatchUpdateCastTagsReq.ValidateAll() if the designated +// constraints aren't met. +type BatchUpdateCastTagsReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m BatchUpdateCastTagsReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m BatchUpdateCastTagsReqMultiError) AllErrors() []error { return m } + +// BatchUpdateCastTagsReqValidationError is the validation error returned by +// BatchUpdateCastTagsReq.Validate if the designated constraints aren't met. +type BatchUpdateCastTagsReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BatchUpdateCastTagsReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BatchUpdateCastTagsReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BatchUpdateCastTagsReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BatchUpdateCastTagsReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BatchUpdateCastTagsReqValidationError) ErrorName() string { + return "BatchUpdateCastTagsReqValidationError" +} + +// Error satisfies the builtin error interface +func (e BatchUpdateCastTagsReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sBatchUpdateCastTagsReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BatchUpdateCastTagsReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BatchUpdateCastTagsReqValidationError{} + +// Validate checks the field values on UpdateCastTagStatusReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UpdateCastTagStatusReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateCastTagStatusReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UpdateCastTagStatusReqMultiError, or nil if none found. +func (m *UpdateCastTagStatusReq) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateCastTagStatusReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for HashTag + + // no validation rules for Status + + // no validation rules for Remark + + if len(errors) > 0 { + return UpdateCastTagStatusReqMultiError(errors) + } + + return nil +} + +// UpdateCastTagStatusReqMultiError is an error wrapping multiple validation +// errors returned by UpdateCastTagStatusReq.ValidateAll() if the designated +// constraints aren't met. +type UpdateCastTagStatusReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateCastTagStatusReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateCastTagStatusReqMultiError) AllErrors() []error { return m } + +// UpdateCastTagStatusReqValidationError is the validation error returned by +// UpdateCastTagStatusReq.Validate if the designated constraints aren't met. +type UpdateCastTagStatusReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateCastTagStatusReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateCastTagStatusReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateCastTagStatusReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateCastTagStatusReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateCastTagStatusReqValidationError) ErrorName() string { + return "UpdateCastTagStatusReqValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateCastTagStatusReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateCastTagStatusReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateCastTagStatusReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateCastTagStatusReqValidationError{} + +// Validate checks the field values on RecalculateCastTagQuoteCountResp with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *RecalculateCastTagQuoteCountResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on RecalculateCastTagQuoteCountResp with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// RecalculateCastTagQuoteCountRespMultiError, or nil if none found. +func (m *RecalculateCastTagQuoteCountResp) ValidateAll() error { + return m.validate(true) +} + +func (m *RecalculateCastTagQuoteCountResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Success + + // no validation rules for Msg + + if len(errors) > 0 { + return RecalculateCastTagQuoteCountRespMultiError(errors) + } + + return nil +} + +// RecalculateCastTagQuoteCountRespMultiError is an error wrapping multiple +// validation errors returned by +// RecalculateCastTagQuoteCountResp.ValidateAll() if the designated +// constraints aren't met. +type RecalculateCastTagQuoteCountRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m RecalculateCastTagQuoteCountRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m RecalculateCastTagQuoteCountRespMultiError) AllErrors() []error { return m } + +// RecalculateCastTagQuoteCountRespValidationError is the validation error +// returned by RecalculateCastTagQuoteCountResp.Validate if the designated +// constraints aren't met. +type RecalculateCastTagQuoteCountRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RecalculateCastTagQuoteCountRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RecalculateCastTagQuoteCountRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RecalculateCastTagQuoteCountRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RecalculateCastTagQuoteCountRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RecalculateCastTagQuoteCountRespValidationError) ErrorName() string { + return "RecalculateCastTagQuoteCountRespValidationError" +} + +// Error satisfies the builtin error interface +func (e RecalculateCastTagQuoteCountRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRecalculateCastTagQuoteCountResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RecalculateCastTagQuoteCountRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RecalculateCastTagQuoteCountRespValidationError{} + +// Validate checks the field values on CreateCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CreateCompetitiveReportReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CreateCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CreateCompetitiveReportReqMultiError, or nil if none found. +func (m *CreateCompetitiveReportReq) ValidateAll() error { + return m.validate(true) +} + +func (m *CreateCompetitiveReportReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for SubNum + + // no validation rules for ArtistName + + // no validation rules for ArtistID + + // no validation rules for ArtistPhone + + // no validation rules for ReportContent + + // no validation rules for ImageUrl + + // no validation rules for Title + + // no validation rules for PdfUrl + + // no validation rules for Source + + // no validation rules for Remark + + // no validation rules for Success + + if len(errors) > 0 { + return CreateCompetitiveReportReqMultiError(errors) + } + + return nil +} + +// CreateCompetitiveReportReqMultiError is an error wrapping multiple +// validation errors returned by CreateCompetitiveReportReq.ValidateAll() if +// the designated constraints aren't met. +type CreateCompetitiveReportReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CreateCompetitiveReportReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CreateCompetitiveReportReqMultiError) AllErrors() []error { return m } + +// CreateCompetitiveReportReqValidationError is the validation error returned +// by CreateCompetitiveReportReq.Validate if the designated constraints aren't met. +type CreateCompetitiveReportReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CreateCompetitiveReportReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CreateCompetitiveReportReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CreateCompetitiveReportReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CreateCompetitiveReportReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CreateCompetitiveReportReqValidationError) ErrorName() string { + return "CreateCompetitiveReportReqValidationError" +} + +// Error satisfies the builtin error interface +func (e CreateCompetitiveReportReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCreateCompetitiveReportReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CreateCompetitiveReportReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CreateCompetitiveReportReqValidationError{} + +// Validate checks the field values on CreateCompetitiveReportResp with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CreateCompetitiveReportResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CreateCompetitiveReportResp with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CreateCompetitiveReportRespMultiError, or nil if none found. +func (m *CreateCompetitiveReportResp) ValidateAll() error { + return m.validate(true) +} + +func (m *CreateCompetitiveReportResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + if len(errors) > 0 { + return CreateCompetitiveReportRespMultiError(errors) + } + + return nil +} + +// CreateCompetitiveReportRespMultiError is an error wrapping multiple +// validation errors returned by CreateCompetitiveReportResp.ValidateAll() if +// the designated constraints aren't met. +type CreateCompetitiveReportRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CreateCompetitiveReportRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CreateCompetitiveReportRespMultiError) AllErrors() []error { return m } + +// CreateCompetitiveReportRespValidationError is the validation error returned +// by CreateCompetitiveReportResp.Validate if the designated constraints +// aren't met. +type CreateCompetitiveReportRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CreateCompetitiveReportRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CreateCompetitiveReportRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CreateCompetitiveReportRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CreateCompetitiveReportRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CreateCompetitiveReportRespValidationError) ErrorName() string { + return "CreateCompetitiveReportRespValidationError" +} + +// Error satisfies the builtin error interface +func (e CreateCompetitiveReportRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCreateCompetitiveReportResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CreateCompetitiveReportRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CreateCompetitiveReportRespValidationError{} + +// Validate checks the field values on UpdateCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UpdateCompetitiveReportReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UpdateCompetitiveReportReqMultiError, or nil if none found. +func (m *UpdateCompetitiveReportReq) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateCompetitiveReportReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for ReportContent + + // no validation rules for Title + + // no validation rules for ImageUrl + + // no validation rules for PdfUrl + + if len(errors) > 0 { + return UpdateCompetitiveReportReqMultiError(errors) + } + + return nil +} + +// UpdateCompetitiveReportReqMultiError is an error wrapping multiple +// validation errors returned by UpdateCompetitiveReportReq.ValidateAll() if +// the designated constraints aren't met. +type UpdateCompetitiveReportReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateCompetitiveReportReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateCompetitiveReportReqMultiError) AllErrors() []error { return m } + +// UpdateCompetitiveReportReqValidationError is the validation error returned +// by UpdateCompetitiveReportReq.Validate if the designated constraints aren't met. +type UpdateCompetitiveReportReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateCompetitiveReportReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateCompetitiveReportReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateCompetitiveReportReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateCompetitiveReportReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateCompetitiveReportReqValidationError) ErrorName() string { + return "UpdateCompetitiveReportReqValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateCompetitiveReportReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateCompetitiveReportReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateCompetitiveReportReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateCompetitiveReportReqValidationError{} + +// Validate checks the field values on UpdateCompetitiveReportStatusReq with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *UpdateCompetitiveReportStatusReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateCompetitiveReportStatusReq with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// UpdateCompetitiveReportStatusReqMultiError, or nil if none found. +func (m *UpdateCompetitiveReportStatusReq) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateCompetitiveReportStatusReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for WorkAction + + // no validation rules for Uuid + + // no validation rules for ApprovalID + + // no validation rules for ApprovalReply + + // no validation rules for ConfirmRemark + + // no validation rules for ConfirmStatus + + // no validation rules for CostType + + // no validation rules for ConfirmType + + if len(errors) > 0 { + return UpdateCompetitiveReportStatusReqMultiError(errors) + } + + return nil +} + +// UpdateCompetitiveReportStatusReqMultiError is an error wrapping multiple +// validation errors returned by +// UpdateCompetitiveReportStatusReq.ValidateAll() if the designated +// constraints aren't met. +type UpdateCompetitiveReportStatusReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateCompetitiveReportStatusReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateCompetitiveReportStatusReqMultiError) AllErrors() []error { return m } + +// UpdateCompetitiveReportStatusReqValidationError is the validation error +// returned by UpdateCompetitiveReportStatusReq.Validate if the designated +// constraints aren't met. +type UpdateCompetitiveReportStatusReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateCompetitiveReportStatusReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateCompetitiveReportStatusReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateCompetitiveReportStatusReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateCompetitiveReportStatusReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateCompetitiveReportStatusReqValidationError) ErrorName() string { + return "UpdateCompetitiveReportStatusReqValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateCompetitiveReportStatusReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateCompetitiveReportStatusReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateCompetitiveReportStatusReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateCompetitiveReportStatusReqValidationError{} + +// Validate checks the field values on UpdateCompetitiveReportApprovalIDReq +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *UpdateCompetitiveReportApprovalIDReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateCompetitiveReportApprovalIDReq +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// UpdateCompetitiveReportApprovalIDReqMultiError, or nil if none found. +func (m *UpdateCompetitiveReportApprovalIDReq) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateCompetitiveReportApprovalIDReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for ApprovalID + + if len(errors) > 0 { + return UpdateCompetitiveReportApprovalIDReqMultiError(errors) + } + + return nil +} + +// UpdateCompetitiveReportApprovalIDReqMultiError is an error wrapping multiple +// validation errors returned by +// UpdateCompetitiveReportApprovalIDReq.ValidateAll() if the designated +// constraints aren't met. +type UpdateCompetitiveReportApprovalIDReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateCompetitiveReportApprovalIDReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateCompetitiveReportApprovalIDReqMultiError) AllErrors() []error { return m } + +// UpdateCompetitiveReportApprovalIDReqValidationError is the validation error +// returned by UpdateCompetitiveReportApprovalIDReq.Validate if the designated +// constraints aren't met. +type UpdateCompetitiveReportApprovalIDReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateCompetitiveReportApprovalIDReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateCompetitiveReportApprovalIDReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateCompetitiveReportApprovalIDReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateCompetitiveReportApprovalIDReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateCompetitiveReportApprovalIDReqValidationError) ErrorName() string { + return "UpdateCompetitiveReportApprovalIDReqValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateCompetitiveReportApprovalIDReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateCompetitiveReportApprovalIDReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateCompetitiveReportApprovalIDReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateCompetitiveReportApprovalIDReqValidationError{} + +// Validate checks the field values on CompetitiveReportLogInfo with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CompetitiveReportLogInfo) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CompetitiveReportLogInfo with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CompetitiveReportLogInfoMultiError, or nil if none found. +func (m *CompetitiveReportLogInfo) ValidateAll() error { + return m.validate(true) +} + +func (m *CompetitiveReportLogInfo) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ReportUuid + + // no validation rules for Title + + // no validation rules for UpdateTime + + // no validation rules for WorkReportStatus + + // no validation rules for ArtistName + + // no validation rules for ArtistUuid + + // no validation rules for ReportExtraData + + // no validation rules for OperatorName + + // no validation rules for OperatorID + + if len(errors) > 0 { + return CompetitiveReportLogInfoMultiError(errors) + } + + return nil +} + +// CompetitiveReportLogInfoMultiError is an error wrapping multiple validation +// errors returned by CompetitiveReportLogInfo.ValidateAll() if the designated +// constraints aren't met. +type CompetitiveReportLogInfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CompetitiveReportLogInfoMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CompetitiveReportLogInfoMultiError) AllErrors() []error { return m } + +// CompetitiveReportLogInfoValidationError is the validation error returned by +// CompetitiveReportLogInfo.Validate if the designated constraints aren't met. +type CompetitiveReportLogInfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CompetitiveReportLogInfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CompetitiveReportLogInfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CompetitiveReportLogInfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CompetitiveReportLogInfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CompetitiveReportLogInfoValidationError) ErrorName() string { + return "CompetitiveReportLogInfoValidationError" +} + +// Error satisfies the builtin error interface +func (e CompetitiveReportLogInfoValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCompetitiveReportLogInfo.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CompetitiveReportLogInfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CompetitiveReportLogInfoValidationError{} + +// Validate checks the field values on CompetitiveReportExtra with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CompetitiveReportExtra) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CompetitiveReportExtra with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CompetitiveReportExtraMultiError, or nil if none found. +func (m *CompetitiveReportExtra) ValidateAll() error { + return m.validate(true) +} + +func (m *CompetitiveReportExtra) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ReportUuid + + // no validation rules for ArtistConfirmedTime + + // no validation rules for CostType + + // no validation rules for CreatedAt + + // no validation rules for UpdatedAt + + if len(errors) > 0 { + return CompetitiveReportExtraMultiError(errors) + } + + return nil +} + +// CompetitiveReportExtraMultiError is an error wrapping multiple validation +// errors returned by CompetitiveReportExtra.ValidateAll() if the designated +// constraints aren't met. +type CompetitiveReportExtraMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CompetitiveReportExtraMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CompetitiveReportExtraMultiError) AllErrors() []error { return m } + +// CompetitiveReportExtraValidationError is the validation error returned by +// CompetitiveReportExtra.Validate if the designated constraints aren't met. +type CompetitiveReportExtraValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CompetitiveReportExtraValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CompetitiveReportExtraValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CompetitiveReportExtraValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CompetitiveReportExtraValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CompetitiveReportExtraValidationError) ErrorName() string { + return "CompetitiveReportExtraValidationError" +} + +// Error satisfies the builtin error interface +func (e CompetitiveReportExtraValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCompetitiveReportExtra.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CompetitiveReportExtraValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CompetitiveReportExtraValidationError{} + +// Validate checks the field values on GetCompetitiveReportDetailReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GetCompetitiveReportDetailReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetCompetitiveReportDetailReq with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// GetCompetitiveReportDetailReqMultiError, or nil if none found. +func (m *GetCompetitiveReportDetailReq) ValidateAll() error { + return m.validate(true) +} + +func (m *GetCompetitiveReportDetailReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + if len(errors) > 0 { + return GetCompetitiveReportDetailReqMultiError(errors) + } + + return nil +} + +// GetCompetitiveReportDetailReqMultiError is an error wrapping multiple +// validation errors returned by GetCompetitiveReportDetailReq.ValidateAll() +// if the designated constraints aren't met. +type GetCompetitiveReportDetailReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetCompetitiveReportDetailReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetCompetitiveReportDetailReqMultiError) AllErrors() []error { return m } + +// GetCompetitiveReportDetailReqValidationError is the validation error +// returned by GetCompetitiveReportDetailReq.Validate if the designated +// constraints aren't met. +type GetCompetitiveReportDetailReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetCompetitiveReportDetailReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetCompetitiveReportDetailReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetCompetitiveReportDetailReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetCompetitiveReportDetailReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetCompetitiveReportDetailReqValidationError) ErrorName() string { + return "GetCompetitiveReportDetailReqValidationError" +} + +// Error satisfies the builtin error interface +func (e GetCompetitiveReportDetailReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetCompetitiveReportDetailReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetCompetitiveReportDetailReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetCompetitiveReportDetailReqValidationError{} + +// Validate checks the field values on GetCompetitiveReportForAppReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GetCompetitiveReportForAppReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetCompetitiveReportForAppReq with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// GetCompetitiveReportForAppReqMultiError, or nil if none found. +func (m *GetCompetitiveReportForAppReq) ValidateAll() error { + return m.validate(true) +} + +func (m *GetCompetitiveReportForAppReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + if len(errors) > 0 { + return GetCompetitiveReportForAppReqMultiError(errors) + } + + return nil +} + +// GetCompetitiveReportForAppReqMultiError is an error wrapping multiple +// validation errors returned by GetCompetitiveReportForAppReq.ValidateAll() +// if the designated constraints aren't met. +type GetCompetitiveReportForAppReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetCompetitiveReportForAppReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetCompetitiveReportForAppReqMultiError) AllErrors() []error { return m } + +// GetCompetitiveReportForAppReqValidationError is the validation error +// returned by GetCompetitiveReportForAppReq.Validate if the designated +// constraints aren't met. +type GetCompetitiveReportForAppReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetCompetitiveReportForAppReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetCompetitiveReportForAppReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetCompetitiveReportForAppReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetCompetitiveReportForAppReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetCompetitiveReportForAppReqValidationError) ErrorName() string { + return "GetCompetitiveReportForAppReqValidationError" +} + +// Error satisfies the builtin error interface +func (e GetCompetitiveReportForAppReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetCompetitiveReportForAppReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetCompetitiveReportForAppReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetCompetitiveReportForAppReqValidationError{} + +// Validate checks the field values on GetCompetitiveReportForAppResp with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GetCompetitiveReportForAppResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetCompetitiveReportForAppResp with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// GetCompetitiveReportForAppRespMultiError, or nil if none found. +func (m *GetCompetitiveReportForAppResp) ValidateAll() error { + return m.validate(true) +} + +func (m *GetCompetitiveReportForAppResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for SubNum + + // no validation rules for ArtistName + + // no validation rules for ReportContent + + // no validation rules for ImageUrl + + // no validation rules for Title + + // no validation rules for PdfUrl + + // no validation rules for CreatedAt + + // no validation rules for UpdatedAt + + if len(errors) > 0 { + return GetCompetitiveReportForAppRespMultiError(errors) + } + + return nil +} + +// GetCompetitiveReportForAppRespMultiError is an error wrapping multiple +// validation errors returned by GetCompetitiveReportForAppResp.ValidateAll() +// if the designated constraints aren't met. +type GetCompetitiveReportForAppRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetCompetitiveReportForAppRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetCompetitiveReportForAppRespMultiError) AllErrors() []error { return m } + +// GetCompetitiveReportForAppRespValidationError is the validation error +// returned by GetCompetitiveReportForAppResp.Validate if the designated +// constraints aren't met. +type GetCompetitiveReportForAppRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetCompetitiveReportForAppRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetCompetitiveReportForAppRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetCompetitiveReportForAppRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetCompetitiveReportForAppRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetCompetitiveReportForAppRespValidationError) ErrorName() string { + return "GetCompetitiveReportForAppRespValidationError" +} + +// Error satisfies the builtin error interface +func (e GetCompetitiveReportForAppRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetCompetitiveReportForAppResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetCompetitiveReportForAppRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetCompetitiveReportForAppRespValidationError{} + +// Validate checks the field values on GetCompetitiveReportDetailResp with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GetCompetitiveReportDetailResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetCompetitiveReportDetailResp with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// GetCompetitiveReportDetailRespMultiError, or nil if none found. +func (m *GetCompetitiveReportDetailResp) ValidateAll() error { + return m.validate(true) +} + +func (m *GetCompetitiveReportDetailResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for SubNum + + // no validation rules for ArtistName + + // no validation rules for ArtistID + + // no validation rules for ArtistPhone + + // no validation rules for ReportContent + + // no validation rules for ImageUrl + + // no validation rules for Title + + // no validation rules for OperatorID + + // no validation rules for OperatorName + + // no validation rules for WorkReportStatus + + // no validation rules for Reason + + // no validation rules for ComfirmType + + // no validation rules for Cost + + // no validation rules for SubmitTime + + // no validation rules for StatusUpdateTime + + // no validation rules for ApprovalID + + // no validation rules for PdfUrl + + // no validation rules for ConfirmRemark + + for idx, item := range m.GetReportLogData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GetCompetitiveReportDetailRespValidationError{ + field: fmt.Sprintf("ReportLogData[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GetCompetitiveReportDetailRespValidationError{ + field: fmt.Sprintf("ReportLogData[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GetCompetitiveReportDetailRespValidationError{ + field: fmt.Sprintf("ReportLogData[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if all { + switch v := interface{}(m.GetExtra()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GetCompetitiveReportDetailRespValidationError{ + field: "Extra", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GetCompetitiveReportDetailRespValidationError{ + field: "Extra", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetExtra()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GetCompetitiveReportDetailRespValidationError{ + field: "Extra", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for CreatedAt + + // no validation rules for UpdatedAt + + if len(errors) > 0 { + return GetCompetitiveReportDetailRespMultiError(errors) + } + + return nil +} + +// GetCompetitiveReportDetailRespMultiError is an error wrapping multiple +// validation errors returned by GetCompetitiveReportDetailResp.ValidateAll() +// if the designated constraints aren't met. +type GetCompetitiveReportDetailRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetCompetitiveReportDetailRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetCompetitiveReportDetailRespMultiError) AllErrors() []error { return m } + +// GetCompetitiveReportDetailRespValidationError is the validation error +// returned by GetCompetitiveReportDetailResp.Validate if the designated +// constraints aren't met. +type GetCompetitiveReportDetailRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetCompetitiveReportDetailRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetCompetitiveReportDetailRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetCompetitiveReportDetailRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetCompetitiveReportDetailRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetCompetitiveReportDetailRespValidationError) ErrorName() string { + return "GetCompetitiveReportDetailRespValidationError" +} + +// Error satisfies the builtin error interface +func (e GetCompetitiveReportDetailRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetCompetitiveReportDetailResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetCompetitiveReportDetailRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetCompetitiveReportDetailRespValidationError{} + +// Validate checks the field values on ListCompetitiveReportReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListCompetitiveReportReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListCompetitiveReportReqMultiError, or nil if none found. +func (m *ListCompetitiveReportReq) ValidateAll() error { + return m.validate(true) +} + +func (m *ListCompetitiveReportReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for SubNum + + // no validation rules for ArtistVal + + // no validation rules for Status + + // no validation rules for ComfirmType + + // no validation rules for StatusUpdateTimeStart + + // no validation rules for StatusUpdateTimeEnd + + // no validation rules for SubmitStartTime + + // no validation rules for SubmitEndTime + + // no validation rules for Page + + // no validation rules for PageSize + + // no validation rules for ArtistUuid + + if len(errors) > 0 { + return ListCompetitiveReportReqMultiError(errors) + } + + return nil +} + +// ListCompetitiveReportReqMultiError is an error wrapping multiple validation +// errors returned by ListCompetitiveReportReq.ValidateAll() if the designated +// constraints aren't met. +type ListCompetitiveReportReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListCompetitiveReportReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListCompetitiveReportReqMultiError) AllErrors() []error { return m } + +// ListCompetitiveReportReqValidationError is the validation error returned by +// ListCompetitiveReportReq.Validate if the designated constraints aren't met. +type ListCompetitiveReportReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListCompetitiveReportReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListCompetitiveReportReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListCompetitiveReportReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListCompetitiveReportReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListCompetitiveReportReqValidationError) ErrorName() string { + return "ListCompetitiveReportReqValidationError" +} + +// Error satisfies the builtin error interface +func (e ListCompetitiveReportReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListCompetitiveReportReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListCompetitiveReportReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListCompetitiveReportReqValidationError{} + +// Validate checks the field values on CompetitiveReportInfo with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CompetitiveReportInfo) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CompetitiveReportInfo with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CompetitiveReportInfoMultiError, or nil if none found. +func (m *CompetitiveReportInfo) ValidateAll() error { + return m.validate(true) +} + +func (m *CompetitiveReportInfo) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for SubNum + + // no validation rules for ArtistName + + // no validation rules for ArtistID + + // no validation rules for ArtistPhone + + // no validation rules for OperatorID + + // no validation rules for OperatorName + + // no validation rules for WorkReportStatus + + // no validation rules for Reason + + // no validation rules for ComfirmType + + // no validation rules for SubmitTime + + // no validation rules for StatusUpdateTime + + // no validation rules for PdfUrl + + // no validation rules for ApprovalID + + // no validation rules for Title + + if len(errors) > 0 { + return CompetitiveReportInfoMultiError(errors) + } + + return nil +} + +// CompetitiveReportInfoMultiError is an error wrapping multiple validation +// errors returned by CompetitiveReportInfo.ValidateAll() if the designated +// constraints aren't met. +type CompetitiveReportInfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CompetitiveReportInfoMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CompetitiveReportInfoMultiError) AllErrors() []error { return m } + +// CompetitiveReportInfoValidationError is the validation error returned by +// CompetitiveReportInfo.Validate if the designated constraints aren't met. +type CompetitiveReportInfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CompetitiveReportInfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CompetitiveReportInfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CompetitiveReportInfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CompetitiveReportInfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CompetitiveReportInfoValidationError) ErrorName() string { + return "CompetitiveReportInfoValidationError" +} + +// Error satisfies the builtin error interface +func (e CompetitiveReportInfoValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCompetitiveReportInfo.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CompetitiveReportInfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CompetitiveReportInfoValidationError{} + +// Validate checks the field values on ListCompetitiveReportResp with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListCompetitiveReportResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListCompetitiveReportResp with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListCompetitiveReportRespMultiError, or nil if none found. +func (m *ListCompetitiveReportResp) ValidateAll() error { + return m.validate(true) +} + +func (m *ListCompetitiveReportResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListCompetitiveReportRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListCompetitiveReportRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListCompetitiveReportRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return ListCompetitiveReportRespMultiError(errors) + } + + return nil +} + +// ListCompetitiveReportRespMultiError is an error wrapping multiple validation +// errors returned by ListCompetitiveReportResp.ValidateAll() if the +// designated constraints aren't met. +type ListCompetitiveReportRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListCompetitiveReportRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListCompetitiveReportRespMultiError) AllErrors() []error { return m } + +// ListCompetitiveReportRespValidationError is the validation error returned by +// ListCompetitiveReportResp.Validate if the designated constraints aren't met. +type ListCompetitiveReportRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListCompetitiveReportRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListCompetitiveReportRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListCompetitiveReportRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListCompetitiveReportRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListCompetitiveReportRespValidationError) ErrorName() string { + return "ListCompetitiveReportRespValidationError" +} + +// Error satisfies the builtin error interface +func (e ListCompetitiveReportRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListCompetitiveReportResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListCompetitiveReportRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListCompetitiveReportRespValidationError{} + +// Validate checks the field values on DeleteCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *DeleteCompetitiveReportReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DeleteCompetitiveReportReqMultiError, or nil if none found. +func (m *DeleteCompetitiveReportReq) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteCompetitiveReportReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + if len(errors) > 0 { + return DeleteCompetitiveReportReqMultiError(errors) + } + + return nil +} + +// DeleteCompetitiveReportReqMultiError is an error wrapping multiple +// validation errors returned by DeleteCompetitiveReportReq.ValidateAll() if +// the designated constraints aren't met. +type DeleteCompetitiveReportReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteCompetitiveReportReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeleteCompetitiveReportReqMultiError) AllErrors() []error { return m } + +// DeleteCompetitiveReportReqValidationError is the validation error returned +// by DeleteCompetitiveReportReq.Validate if the designated constraints aren't met. +type DeleteCompetitiveReportReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteCompetitiveReportReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteCompetitiveReportReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteCompetitiveReportReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteCompetitiveReportReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteCompetitiveReportReqValidationError) ErrorName() string { + return "DeleteCompetitiveReportReqValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteCompetitiveReportReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeleteCompetitiveReportReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteCompetitiveReportReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteCompetitiveReportReqValidationError{} + +// Validate checks the field values on ImportCompetitiveReportBatchReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ImportCompetitiveReportBatchReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ImportCompetitiveReportBatchReq with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// ImportCompetitiveReportBatchReqMultiError, or nil if none found. +func (m *ImportCompetitiveReportBatchReq) ValidateAll() error { + return m.validate(true) +} + +func (m *ImportCompetitiveReportBatchReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetReports() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ImportCompetitiveReportBatchReqValidationError{ + field: fmt.Sprintf("Reports[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ImportCompetitiveReportBatchReqValidationError{ + field: fmt.Sprintf("Reports[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ImportCompetitiveReportBatchReqValidationError{ + field: fmt.Sprintf("Reports[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return ImportCompetitiveReportBatchReqMultiError(errors) + } + + return nil +} + +// ImportCompetitiveReportBatchReqMultiError is an error wrapping multiple +// validation errors returned by ImportCompetitiveReportBatchReq.ValidateAll() +// if the designated constraints aren't met. +type ImportCompetitiveReportBatchReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ImportCompetitiveReportBatchReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ImportCompetitiveReportBatchReqMultiError) AllErrors() []error { return m } + +// ImportCompetitiveReportBatchReqValidationError is the validation error +// returned by ImportCompetitiveReportBatchReq.Validate if the designated +// constraints aren't met. +type ImportCompetitiveReportBatchReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ImportCompetitiveReportBatchReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ImportCompetitiveReportBatchReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ImportCompetitiveReportBatchReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ImportCompetitiveReportBatchReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ImportCompetitiveReportBatchReqValidationError) ErrorName() string { + return "ImportCompetitiveReportBatchReqValidationError" +} + +// Error satisfies the builtin error interface +func (e ImportCompetitiveReportBatchReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sImportCompetitiveReportBatchReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ImportCompetitiveReportBatchReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ImportCompetitiveReportBatchReqValidationError{} + +// Validate checks the field values on ImportCompetitiveReportBatchResp with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *ImportCompetitiveReportBatchResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ImportCompetitiveReportBatchResp with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// ImportCompetitiveReportBatchRespMultiError, or nil if none found. +func (m *ImportCompetitiveReportBatchResp) ValidateAll() error { + return m.validate(true) +} + +func (m *ImportCompetitiveReportBatchResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetReports() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ImportCompetitiveReportBatchRespValidationError{ + field: fmt.Sprintf("Reports[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ImportCompetitiveReportBatchRespValidationError{ + field: fmt.Sprintf("Reports[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ImportCompetitiveReportBatchRespValidationError{ + field: fmt.Sprintf("Reports[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for SuccessCount + + // no validation rules for FailCount + + if len(errors) > 0 { + return ImportCompetitiveReportBatchRespMultiError(errors) + } + + return nil +} + +// ImportCompetitiveReportBatchRespMultiError is an error wrapping multiple +// validation errors returned by +// ImportCompetitiveReportBatchResp.ValidateAll() if the designated +// constraints aren't met. +type ImportCompetitiveReportBatchRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ImportCompetitiveReportBatchRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ImportCompetitiveReportBatchRespMultiError) AllErrors() []error { return m } + +// ImportCompetitiveReportBatchRespValidationError is the validation error +// returned by ImportCompetitiveReportBatchResp.Validate if the designated +// constraints aren't met. +type ImportCompetitiveReportBatchRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ImportCompetitiveReportBatchRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ImportCompetitiveReportBatchRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ImportCompetitiveReportBatchRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ImportCompetitiveReportBatchRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ImportCompetitiveReportBatchRespValidationError) ErrorName() string { + return "ImportCompetitiveReportBatchRespValidationError" +} + +// Error satisfies the builtin error interface +func (e ImportCompetitiveReportBatchRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sImportCompetitiveReportBatchResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ImportCompetitiveReportBatchRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ImportCompetitiveReportBatchRespValidationError{} + +// Validate checks the field values on CountCompetitiveReportByWorkUuidsReq +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *CountCompetitiveReportByWorkUuidsReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CountCompetitiveReportByWorkUuidsReq +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// CountCompetitiveReportByWorkUuidsReqMultiError, or nil if none found. +func (m *CountCompetitiveReportByWorkUuidsReq) ValidateAll() error { + return m.validate(true) +} + +func (m *CountCompetitiveReportByWorkUuidsReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return CountCompetitiveReportByWorkUuidsReqMultiError(errors) + } + + return nil +} + +// CountCompetitiveReportByWorkUuidsReqMultiError is an error wrapping multiple +// validation errors returned by +// CountCompetitiveReportByWorkUuidsReq.ValidateAll() if the designated +// constraints aren't met. +type CountCompetitiveReportByWorkUuidsReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CountCompetitiveReportByWorkUuidsReqMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CountCompetitiveReportByWorkUuidsReqMultiError) AllErrors() []error { return m } + +// CountCompetitiveReportByWorkUuidsReqValidationError is the validation error +// returned by CountCompetitiveReportByWorkUuidsReq.Validate if the designated +// constraints aren't met. +type CountCompetitiveReportByWorkUuidsReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CountCompetitiveReportByWorkUuidsReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CountCompetitiveReportByWorkUuidsReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CountCompetitiveReportByWorkUuidsReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CountCompetitiveReportByWorkUuidsReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CountCompetitiveReportByWorkUuidsReqValidationError) ErrorName() string { + return "CountCompetitiveReportByWorkUuidsReqValidationError" +} + +// Error satisfies the builtin error interface +func (e CountCompetitiveReportByWorkUuidsReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCountCompetitiveReportByWorkUuidsReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CountCompetitiveReportByWorkUuidsReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CountCompetitiveReportByWorkUuidsReqValidationError{} + +// Validate checks the field values on WorkUuidCount with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *WorkUuidCount) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkUuidCount with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in WorkUuidCountMultiError, or +// nil if none found. +func (m *WorkUuidCount) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkUuidCount) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for WorkUuid + + // no validation rules for Count + + if len(errors) > 0 { + return WorkUuidCountMultiError(errors) + } + + return nil +} + +// WorkUuidCountMultiError is an error wrapping multiple validation errors +// returned by WorkUuidCount.ValidateAll() if the designated constraints +// aren't met. +type WorkUuidCountMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkUuidCountMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkUuidCountMultiError) AllErrors() []error { return m } + +// WorkUuidCountValidationError is the validation error returned by +// WorkUuidCount.Validate if the designated constraints aren't met. +type WorkUuidCountValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkUuidCountValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkUuidCountValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkUuidCountValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkUuidCountValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkUuidCountValidationError) ErrorName() string { return "WorkUuidCountValidationError" } + +// Error satisfies the builtin error interface +func (e WorkUuidCountValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkUuidCount.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkUuidCountValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkUuidCountValidationError{} + +// Validate checks the field values on CountCompetitiveReportByWorkUuidsResp +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *CountCompetitiveReportByWorkUuidsResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CountCompetitiveReportByWorkUuidsResp +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// CountCompetitiveReportByWorkUuidsRespMultiError, or nil if none found. +func (m *CountCompetitiveReportByWorkUuidsResp) ValidateAll() error { + return m.validate(true) +} + +func (m *CountCompetitiveReportByWorkUuidsResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, CountCompetitiveReportByWorkUuidsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, CountCompetitiveReportByWorkUuidsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CountCompetitiveReportByWorkUuidsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return CountCompetitiveReportByWorkUuidsRespMultiError(errors) + } + + return nil +} + +// CountCompetitiveReportByWorkUuidsRespMultiError is an error wrapping +// multiple validation errors returned by +// CountCompetitiveReportByWorkUuidsResp.ValidateAll() if the designated +// constraints aren't met. +type CountCompetitiveReportByWorkUuidsRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CountCompetitiveReportByWorkUuidsRespMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CountCompetitiveReportByWorkUuidsRespMultiError) AllErrors() []error { return m } + +// CountCompetitiveReportByWorkUuidsRespValidationError is the validation error +// returned by CountCompetitiveReportByWorkUuidsResp.Validate if the +// designated constraints aren't met. +type CountCompetitiveReportByWorkUuidsRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CountCompetitiveReportByWorkUuidsRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CountCompetitiveReportByWorkUuidsRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CountCompetitiveReportByWorkUuidsRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CountCompetitiveReportByWorkUuidsRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CountCompetitiveReportByWorkUuidsRespValidationError) ErrorName() string { + return "CountCompetitiveReportByWorkUuidsRespValidationError" +} + +// Error satisfies the builtin error interface +func (e CountCompetitiveReportByWorkUuidsRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCountCompetitiveReportByWorkUuidsResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CountCompetitiveReportByWorkUuidsRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CountCompetitiveReportByWorkUuidsRespValidationError{} + // Validate checks the field values on WorkListResp_Info with the rules defined // in the proto definition for this message. If any rules are violated, the // first error encountered is returned, or nil if there are no violations. @@ -20478,6 +24679,130 @@ var _ interface { ErrorName() string } = PublishResp_InfoValidationError{} +// Validate checks the field values on WorkListPublishedResp_Info with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *WorkListPublishedResp_Info) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkListPublishedResp_Info with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// WorkListPublishedResp_InfoMultiError, or nil if none found. +func (m *WorkListPublishedResp_Info) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkListPublishedResp_Info) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for WorkUuid + + // no validation rules for ArtistUuid + + // no validation rules for ArtistName + + // no validation rules for Title + + // no validation rules for Content + + // no validation rules for WorkCategory + + // no validation rules for StatusUpdateTime + + // no validation rules for VideoUrl + + // no validation rules for CoverUrl + + // no validation rules for CoverTimestampMs + + // no validation rules for Count + + if len(errors) > 0 { + return WorkListPublishedResp_InfoMultiError(errors) + } + + return nil +} + +// WorkListPublishedResp_InfoMultiError is an error wrapping multiple +// validation errors returned by WorkListPublishedResp_Info.ValidateAll() if +// the designated constraints aren't met. +type WorkListPublishedResp_InfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkListPublishedResp_InfoMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkListPublishedResp_InfoMultiError) AllErrors() []error { return m } + +// WorkListPublishedResp_InfoValidationError is the validation error returned +// by WorkListPublishedResp_Info.Validate if the designated constraints aren't met. +type WorkListPublishedResp_InfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkListPublishedResp_InfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkListPublishedResp_InfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkListPublishedResp_InfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkListPublishedResp_InfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkListPublishedResp_InfoValidationError) ErrorName() string { + return "WorkListPublishedResp_InfoValidationError" +} + +// Error satisfies the builtin error interface +func (e WorkListPublishedResp_InfoValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkListPublishedResp_Info.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkListPublishedResp_InfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkListPublishedResp_InfoValidationError{} + // Validate checks the field values on RefreshWorkListResp_Info with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. diff --git a/api/cast/cast_triple.pb.go b/api/cast/cast_triple.pb.go index 50b068d..95f8e61 100644 --- a/api/cast/cast_triple.pb.go +++ b/api/cast/cast_triple.pb.go @@ -38,6 +38,7 @@ type CastClient interface { MediaInfo(ctx context.Context, in *MediaInfoReq, opts ...grpc_go.CallOption) (*MediaInfoResp, common.ErrorWithAttachment) MediaInfoByPlatform(ctx context.Context, in *MediaInfoByPlatformReq, opts ...grpc_go.CallOption) (*MediaInfoByPlatformResp, common.ErrorWithAttachment) WorkList(ctx context.Context, in *WorkListReq, opts ...grpc_go.CallOption) (*WorkListResp, common.ErrorWithAttachment) + WorkListPublished(ctx context.Context, in *WorkListPublishedReq, opts ...grpc_go.CallOption) (*WorkListPublishedResp, common.ErrorWithAttachment) WorkDetail(ctx context.Context, in *WorkDetailReq, opts ...grpc_go.CallOption) (*WorkDetailResp, common.ErrorWithAttachment) UpdateStatus(ctx context.Context, in *UpdateStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) MediaAccounts(ctx context.Context, in *MediaAccountsReq, opts ...grpc_go.CallOption) (*MediaAccountsResp, common.ErrorWithAttachment) @@ -104,6 +105,7 @@ type CastClient interface { CalculateMediaMetricsByWorks(ctx context.Context, in *CalculateMediaMetricsByWorksReq, opts ...grpc_go.CallOption) (*CalculateMediaMetricsByWorksResp, common.ErrorWithAttachment) // 艺人AyrShare信息相关接口 GetArtistAyrShareInfo(ctx context.Context, in *GetArtistAyrShareInfoReq, opts ...grpc_go.CallOption) (*GetArtistAyrShareInfoResp, common.ErrorWithAttachment) + GetArtistAyrShareInfoByPlatformIDs(ctx context.Context, in *GetArtistAyrShareInfoByPlatformIDsReq, opts ...grpc_go.CallOption) (*GetArtistAyrShareInfoByPlatformIDsResp, common.ErrorWithAttachment) // 作品平台信息相关接口 ListWorkPlatformInfo(ctx context.Context, in *ListWorkPlatformInfoReq, opts ...grpc_go.CallOption) (*ListWorkPlatformInfoResp, common.ErrorWithAttachment) // 任务列表相关接口 @@ -111,6 +113,23 @@ type CastClient interface { GetTaskList(ctx context.Context, in *GetTaskListReq, opts ...grpc_go.CallOption) (*GetTaskListResp, common.ErrorWithAttachment) ListTaskList(ctx context.Context, in *ListTaskListReq, opts ...grpc_go.CallOption) (*ListTaskListResp, common.ErrorWithAttachment) DeleteTaskList(ctx context.Context, in *DeleteTaskListReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + // 话题标签相关接口 + UpdateCastTag(ctx context.Context, in *UpdateCastTagReq, opts ...grpc_go.CallOption) (*UpdateCastTagResp, common.ErrorWithAttachment) + ListCastTags(ctx context.Context, in *ListCastTagsReq, opts ...grpc_go.CallOption) (*ListCastTagsResp, common.ErrorWithAttachment) + UpdateCastTagBatch(ctx context.Context, in *UpdateCastTagBatchReq, opts ...grpc_go.CallOption) (*UpdateCastTagBatchResp, common.ErrorWithAttachment) + BatchUpdateCastTags(ctx context.Context, in *BatchUpdateCastTagsReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + UpdateCastTagStatus(ctx context.Context, in *UpdateCastTagStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + RecalculateCastTagQuoteCount(ctx context.Context, in *emptypb.Empty, opts ...grpc_go.CallOption) (*RecalculateCastTagQuoteCountResp, common.ErrorWithAttachment) + // 竞品报告相关接口 + CreateCompetitiveReport(ctx context.Context, in *CreateCompetitiveReportReq, opts ...grpc_go.CallOption) (*CreateCompetitiveReportResp, common.ErrorWithAttachment) + ImportCompetitiveReportBatch(ctx context.Context, in *ImportCompetitiveReportBatchReq, opts ...grpc_go.CallOption) (*ImportCompetitiveReportBatchResp, common.ErrorWithAttachment) + UpdateCompetitiveReportStatus(ctx context.Context, in *UpdateCompetitiveReportStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + GetCompetitiveReport(ctx context.Context, in *GetCompetitiveReportDetailReq, opts ...grpc_go.CallOption) (*GetCompetitiveReportDetailResp, common.ErrorWithAttachment) + GetCompetitiveReportForApp(ctx context.Context, in *GetCompetitiveReportForAppReq, opts ...grpc_go.CallOption) (*GetCompetitiveReportForAppResp, common.ErrorWithAttachment) + ListCompetitiveReport(ctx context.Context, in *ListCompetitiveReportReq, opts ...grpc_go.CallOption) (*ListCompetitiveReportResp, common.ErrorWithAttachment) + DeleteCompetitiveReport(ctx context.Context, in *DeleteCompetitiveReportReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + UpdateCompetitiveReportApprovalID(ctx context.Context, in *UpdateCompetitiveReportApprovalIDReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + CountCompetitiveReportByWorkUuids(ctx context.Context, in *CountCompetitiveReportByWorkUuidsReq, opts ...grpc_go.CallOption) (*CountCompetitiveReportByWorkUuidsResp, common.ErrorWithAttachment) } type castClient struct { @@ -118,75 +137,92 @@ type castClient struct { } type CastClientImpl struct { - MediaUserList func(ctx context.Context, in *MediaUserListReq) (*MediaUserListResp, error) - UpdateMediaAccount func(ctx context.Context, in *UpdateMediaAccountReq) (*UpdateMediaAccountResp, error) - UnbindManager func(ctx context.Context, in *UnbindManagerReq) (*UnbindManagerResp, error) - BindManager func(ctx context.Context, in *BindManagerReq) (*emptypb.Empty, error) - UpdateWorkImage func(ctx context.Context, in *UpdateWorkImageReq) (*UpdateWorkImageResp, error) - UpdateWorkVideo func(ctx context.Context, in *UpdateWorkVideoReq) (*UpdateWorkVideoResp, error) - MediaInfo func(ctx context.Context, in *MediaInfoReq) (*MediaInfoResp, error) - MediaInfoByPlatform func(ctx context.Context, in *MediaInfoByPlatformReq) (*MediaInfoByPlatformResp, error) - WorkList func(ctx context.Context, in *WorkListReq) (*WorkListResp, error) - WorkDetail func(ctx context.Context, in *WorkDetailReq) (*WorkDetailResp, error) - UpdateStatus func(ctx context.Context, in *UpdateStatusReq) (*emptypb.Empty, error) - MediaAccounts func(ctx context.Context, in *MediaAccountsReq) (*MediaAccountsResp, error) - MediaWorks func(ctx context.Context, in *MediaWorksReq) (*MediaWorksResp, error) - Publish func(ctx context.Context, in *PublishReq) (*PublishResp, error) - RePublish func(ctx context.Context, in *RePublishReq) (*RePublishResp, error) - DelWork func(ctx context.Context, in *DelWorkReq) (*emptypb.Empty, error) - WorkInfo func(ctx context.Context, in *WorkInfoReq) (*WorkInfoResp, error) - ArtistInfo func(ctx context.Context, in *ArtistInfoReq) (*ArtistInfoResp, error) - ImportWorkBatch func(ctx context.Context, in *ImportWorkBatchReq) (*ImportWorkBatchResp, error) - UpdateWorkPlatformInfo func(ctx context.Context, in *UpdateWorkPlatformInfoReq) (*UpdateWorkPlatformInfoResp, error) - UpdateWorkPublishLog func(ctx context.Context, in *UpdateWorkPublishLogReq) (*emptypb.Empty, error) - RefreshWorkList func(ctx context.Context, in *RefreshWorkListReq) (*RefreshWorkListResp, error) - OAuthAccount func(ctx context.Context, in *OAuthAccountReq) (*OAuthAccountResp, error) - OAuthAccountV2 func(ctx context.Context, in *OAuthAccountV2Req) (*OAuthAccountV2Resp, error) - OAuthCodeToToken func(ctx context.Context, in *OAuthCodeToTokenReq) (*OAuthCodeToTokenResp, error) - UpdateOAuth func(ctx context.Context, in *UpdateOAuthReq) (*emptypb.Empty, error) - RefreshToken func(ctx context.Context, in *RefreshTokenReq) (*RefreshTokenResp, error) - PublishMediaInfo func(ctx context.Context, in *PublishMediaInfoReq) (*PublishMediaInfoResp, error) - Tools func(ctx context.Context, in *ToolsReq) (*emptypb.Empty, error) - UpdateVideoScript func(ctx context.Context, in *UpdateVideoScriptReq) (*UpdateVideoScriptResp, error) - GetVideoScript func(ctx context.Context, in *GetVideoScriptReq) (*GetVideoScriptResp, error) - ListVideoScripts func(ctx context.Context, in *ListVideoScriptsReq) (*ListVideoScriptsResp, error) - DeleteVideoScript func(ctx context.Context, in *DeleteVideoScriptReq) (*emptypb.Empty, error) - UpdateVideoScriptBatch func(ctx context.Context, in *UpdateVideoScriptBatchReq) (*UpdateVideoScriptBatchResp, error) - UpdateScriptStatus func(ctx context.Context, in *UpdateScriptStatusReq) (*emptypb.Empty, error) - GetLayout func(ctx context.Context, in *GetLayoutReq) (*GetLayoutResp, error) - SetLayout func(ctx context.Context, in *SetLayoutReq) (*emptypb.Empty, error) - UpdatePrompt func(ctx context.Context, in *UpdatePromptReq) (*emptypb.Empty, error) - DeletePrompt func(ctx context.Context, in *DeletePromptReq) (*emptypb.Empty, error) - GetPrompt func(ctx context.Context, in *GetPromptReq) (*GetPromptResp, error) - ListPrompts func(ctx context.Context, in *ListPromptsReq) (*ListPromptsResp, error) - UpdatePromptBatch func(ctx context.Context, in *UpdatePromptBatchReq) (*UpdatePromptBatchResp, error) - UpdateArtist func(ctx context.Context, in *UpdateArtistReq) (*UpdateArtistResp, error) - GetArtist func(ctx context.Context, in *GetArtistReq) (*GetArtistResp, error) - CreateWorkAnalysis func(ctx context.Context, in *CreateWorkAnalysisReq) (*CreateWorkAnalysisResp, error) - UpdateWorkAnalysis func(ctx context.Context, in *UpdateWorkAnalysisReq) (*emptypb.Empty, error) - UpdateWorkAnalysisStatus func(ctx context.Context, in *UpdateWorkAnalysisStatusReq) (*emptypb.Empty, error) - GetWorkAnalysis func(ctx context.Context, in *GetWorkAnalysisDetailReq) (*GetWorkAnalysisDetailResp, error) - GetLatestWorkAnalysis func(ctx context.Context, in *GetLatestWorkAnalysisReq) (*GetWorkAnalysisResp, error) - ListWorkAnalysis func(ctx context.Context, in *ListWorkAnalysisReq) (*ListWorkAnalysisResp, error) - DeleteWorkAnalysis func(ctx context.Context, in *DeleteWorkAnalysisReq) (*emptypb.Empty, error) - UpdateWorkAnalysisApprovalID func(ctx context.Context, in *UpdateWorkAnalysisApprovalIDReq) (*emptypb.Empty, error) - ArtistDataList func(ctx context.Context, in *ArtistDataListReq) (*ArtistDataListResp, error) - MediaDataList func(ctx context.Context, in *MediaDataListReq) (*MediaDataListResp, error) - DataOverview func(ctx context.Context, in *DataOverviewReq) (*DataOverviewResp, error) - ArtistMetricsSeries func(ctx context.Context, in *ArtistMetricsSeriesReq) (*ArtistMetricsSeriesResp, error) - ArtistMetricsDailyWindow func(ctx context.Context, in *ArtistMetricsDailyWindowReq) (*ArtistMetricsDailyWindowResp, error) - TobeConfirmedList func(ctx context.Context, in *TobeConfirmedListReq) (*TobeConfirmedListResp, error) - UpsertMediaMetricsDailyBatch func(ctx context.Context, in *UpsertMediaMetricsDailyBatchReq) (*UpsertMediaMetricsDailyBatchResp, error) - UpsertWorkMetricsDailyBatch func(ctx context.Context, in *UpsertWorkMetricsDailyBatchReq) (*UpsertWorkMetricsDailyBatchResp, error) - ListMediaMetricsDaily func(ctx context.Context, in *ListMediaMetricsDailyReq) (*ListMediaMetricsDailyResp, error) - ListWorkMetricsDaily func(ctx context.Context, in *ListWorkMetricsDailyReq) (*ListWorkMetricsDailyResp, error) - CalculateMediaMetricsByWorks func(ctx context.Context, in *CalculateMediaMetricsByWorksReq) (*CalculateMediaMetricsByWorksResp, error) - GetArtistAyrShareInfo func(ctx context.Context, in *GetArtistAyrShareInfoReq) (*GetArtistAyrShareInfoResp, error) - ListWorkPlatformInfo func(ctx context.Context, in *ListWorkPlatformInfoReq) (*ListWorkPlatformInfoResp, error) - UpsertTaskList func(ctx context.Context, in *UpsertTaskListReq) (*UpsertTaskListResp, error) - GetTaskList func(ctx context.Context, in *GetTaskListReq) (*GetTaskListResp, error) - ListTaskList func(ctx context.Context, in *ListTaskListReq) (*ListTaskListResp, error) - DeleteTaskList func(ctx context.Context, in *DeleteTaskListReq) (*emptypb.Empty, error) + MediaUserList func(ctx context.Context, in *MediaUserListReq) (*MediaUserListResp, error) + UpdateMediaAccount func(ctx context.Context, in *UpdateMediaAccountReq) (*UpdateMediaAccountResp, error) + UnbindManager func(ctx context.Context, in *UnbindManagerReq) (*UnbindManagerResp, error) + BindManager func(ctx context.Context, in *BindManagerReq) (*emptypb.Empty, error) + UpdateWorkImage func(ctx context.Context, in *UpdateWorkImageReq) (*UpdateWorkImageResp, error) + UpdateWorkVideo func(ctx context.Context, in *UpdateWorkVideoReq) (*UpdateWorkVideoResp, error) + MediaInfo func(ctx context.Context, in *MediaInfoReq) (*MediaInfoResp, error) + MediaInfoByPlatform func(ctx context.Context, in *MediaInfoByPlatformReq) (*MediaInfoByPlatformResp, error) + WorkList func(ctx context.Context, in *WorkListReq) (*WorkListResp, error) + WorkListPublished func(ctx context.Context, in *WorkListPublishedReq) (*WorkListPublishedResp, error) + WorkDetail func(ctx context.Context, in *WorkDetailReq) (*WorkDetailResp, error) + UpdateStatus func(ctx context.Context, in *UpdateStatusReq) (*emptypb.Empty, error) + MediaAccounts func(ctx context.Context, in *MediaAccountsReq) (*MediaAccountsResp, error) + MediaWorks func(ctx context.Context, in *MediaWorksReq) (*MediaWorksResp, error) + Publish func(ctx context.Context, in *PublishReq) (*PublishResp, error) + RePublish func(ctx context.Context, in *RePublishReq) (*RePublishResp, error) + DelWork func(ctx context.Context, in *DelWorkReq) (*emptypb.Empty, error) + WorkInfo func(ctx context.Context, in *WorkInfoReq) (*WorkInfoResp, error) + ArtistInfo func(ctx context.Context, in *ArtistInfoReq) (*ArtistInfoResp, error) + ImportWorkBatch func(ctx context.Context, in *ImportWorkBatchReq) (*ImportWorkBatchResp, error) + UpdateWorkPlatformInfo func(ctx context.Context, in *UpdateWorkPlatformInfoReq) (*UpdateWorkPlatformInfoResp, error) + UpdateWorkPublishLog func(ctx context.Context, in *UpdateWorkPublishLogReq) (*emptypb.Empty, error) + RefreshWorkList func(ctx context.Context, in *RefreshWorkListReq) (*RefreshWorkListResp, error) + OAuthAccount func(ctx context.Context, in *OAuthAccountReq) (*OAuthAccountResp, error) + OAuthAccountV2 func(ctx context.Context, in *OAuthAccountV2Req) (*OAuthAccountV2Resp, error) + OAuthCodeToToken func(ctx context.Context, in *OAuthCodeToTokenReq) (*OAuthCodeToTokenResp, error) + UpdateOAuth func(ctx context.Context, in *UpdateOAuthReq) (*emptypb.Empty, error) + RefreshToken func(ctx context.Context, in *RefreshTokenReq) (*RefreshTokenResp, error) + PublishMediaInfo func(ctx context.Context, in *PublishMediaInfoReq) (*PublishMediaInfoResp, error) + Tools func(ctx context.Context, in *ToolsReq) (*emptypb.Empty, error) + UpdateVideoScript func(ctx context.Context, in *UpdateVideoScriptReq) (*UpdateVideoScriptResp, error) + GetVideoScript func(ctx context.Context, in *GetVideoScriptReq) (*GetVideoScriptResp, error) + ListVideoScripts func(ctx context.Context, in *ListVideoScriptsReq) (*ListVideoScriptsResp, error) + DeleteVideoScript func(ctx context.Context, in *DeleteVideoScriptReq) (*emptypb.Empty, error) + UpdateVideoScriptBatch func(ctx context.Context, in *UpdateVideoScriptBatchReq) (*UpdateVideoScriptBatchResp, error) + UpdateScriptStatus func(ctx context.Context, in *UpdateScriptStatusReq) (*emptypb.Empty, error) + GetLayout func(ctx context.Context, in *GetLayoutReq) (*GetLayoutResp, error) + SetLayout func(ctx context.Context, in *SetLayoutReq) (*emptypb.Empty, error) + UpdatePrompt func(ctx context.Context, in *UpdatePromptReq) (*emptypb.Empty, error) + DeletePrompt func(ctx context.Context, in *DeletePromptReq) (*emptypb.Empty, error) + GetPrompt func(ctx context.Context, in *GetPromptReq) (*GetPromptResp, error) + ListPrompts func(ctx context.Context, in *ListPromptsReq) (*ListPromptsResp, error) + UpdatePromptBatch func(ctx context.Context, in *UpdatePromptBatchReq) (*UpdatePromptBatchResp, error) + UpdateArtist func(ctx context.Context, in *UpdateArtistReq) (*UpdateArtistResp, error) + GetArtist func(ctx context.Context, in *GetArtistReq) (*GetArtistResp, error) + CreateWorkAnalysis func(ctx context.Context, in *CreateWorkAnalysisReq) (*CreateWorkAnalysisResp, error) + UpdateWorkAnalysis func(ctx context.Context, in *UpdateWorkAnalysisReq) (*emptypb.Empty, error) + UpdateWorkAnalysisStatus func(ctx context.Context, in *UpdateWorkAnalysisStatusReq) (*emptypb.Empty, error) + GetWorkAnalysis func(ctx context.Context, in *GetWorkAnalysisDetailReq) (*GetWorkAnalysisDetailResp, error) + GetLatestWorkAnalysis func(ctx context.Context, in *GetLatestWorkAnalysisReq) (*GetWorkAnalysisResp, error) + ListWorkAnalysis func(ctx context.Context, in *ListWorkAnalysisReq) (*ListWorkAnalysisResp, error) + DeleteWorkAnalysis func(ctx context.Context, in *DeleteWorkAnalysisReq) (*emptypb.Empty, error) + UpdateWorkAnalysisApprovalID func(ctx context.Context, in *UpdateWorkAnalysisApprovalIDReq) (*emptypb.Empty, error) + ArtistDataList func(ctx context.Context, in *ArtistDataListReq) (*ArtistDataListResp, error) + MediaDataList func(ctx context.Context, in *MediaDataListReq) (*MediaDataListResp, error) + DataOverview func(ctx context.Context, in *DataOverviewReq) (*DataOverviewResp, error) + ArtistMetricsSeries func(ctx context.Context, in *ArtistMetricsSeriesReq) (*ArtistMetricsSeriesResp, error) + ArtistMetricsDailyWindow func(ctx context.Context, in *ArtistMetricsDailyWindowReq) (*ArtistMetricsDailyWindowResp, error) + TobeConfirmedList func(ctx context.Context, in *TobeConfirmedListReq) (*TobeConfirmedListResp, error) + UpsertMediaMetricsDailyBatch func(ctx context.Context, in *UpsertMediaMetricsDailyBatchReq) (*UpsertMediaMetricsDailyBatchResp, error) + UpsertWorkMetricsDailyBatch func(ctx context.Context, in *UpsertWorkMetricsDailyBatchReq) (*UpsertWorkMetricsDailyBatchResp, error) + ListMediaMetricsDaily func(ctx context.Context, in *ListMediaMetricsDailyReq) (*ListMediaMetricsDailyResp, error) + ListWorkMetricsDaily func(ctx context.Context, in *ListWorkMetricsDailyReq) (*ListWorkMetricsDailyResp, error) + CalculateMediaMetricsByWorks func(ctx context.Context, in *CalculateMediaMetricsByWorksReq) (*CalculateMediaMetricsByWorksResp, error) + GetArtistAyrShareInfo func(ctx context.Context, in *GetArtistAyrShareInfoReq) (*GetArtistAyrShareInfoResp, error) + GetArtistAyrShareInfoByPlatformIDs func(ctx context.Context, in *GetArtistAyrShareInfoByPlatformIDsReq) (*GetArtistAyrShareInfoByPlatformIDsResp, error) + ListWorkPlatformInfo func(ctx context.Context, in *ListWorkPlatformInfoReq) (*ListWorkPlatformInfoResp, error) + UpsertTaskList func(ctx context.Context, in *UpsertTaskListReq) (*UpsertTaskListResp, error) + GetTaskList func(ctx context.Context, in *GetTaskListReq) (*GetTaskListResp, error) + ListTaskList func(ctx context.Context, in *ListTaskListReq) (*ListTaskListResp, error) + DeleteTaskList func(ctx context.Context, in *DeleteTaskListReq) (*emptypb.Empty, error) + UpdateCastTag func(ctx context.Context, in *UpdateCastTagReq) (*UpdateCastTagResp, error) + ListCastTags func(ctx context.Context, in *ListCastTagsReq) (*ListCastTagsResp, error) + UpdateCastTagBatch func(ctx context.Context, in *UpdateCastTagBatchReq) (*UpdateCastTagBatchResp, error) + BatchUpdateCastTags func(ctx context.Context, in *BatchUpdateCastTagsReq) (*emptypb.Empty, error) + UpdateCastTagStatus func(ctx context.Context, in *UpdateCastTagStatusReq) (*emptypb.Empty, error) + RecalculateCastTagQuoteCount func(ctx context.Context, in *emptypb.Empty) (*RecalculateCastTagQuoteCountResp, error) + CreateCompetitiveReport func(ctx context.Context, in *CreateCompetitiveReportReq) (*CreateCompetitiveReportResp, error) + ImportCompetitiveReportBatch func(ctx context.Context, in *ImportCompetitiveReportBatchReq) (*ImportCompetitiveReportBatchResp, error) + UpdateCompetitiveReportStatus func(ctx context.Context, in *UpdateCompetitiveReportStatusReq) (*emptypb.Empty, error) + GetCompetitiveReport func(ctx context.Context, in *GetCompetitiveReportDetailReq) (*GetCompetitiveReportDetailResp, error) + GetCompetitiveReportForApp func(ctx context.Context, in *GetCompetitiveReportForAppReq) (*GetCompetitiveReportForAppResp, error) + ListCompetitiveReport func(ctx context.Context, in *ListCompetitiveReportReq) (*ListCompetitiveReportResp, error) + DeleteCompetitiveReport func(ctx context.Context, in *DeleteCompetitiveReportReq) (*emptypb.Empty, error) + UpdateCompetitiveReportApprovalID func(ctx context.Context, in *UpdateCompetitiveReportApprovalIDReq) (*emptypb.Empty, error) + CountCompetitiveReportByWorkUuids func(ctx context.Context, in *CountCompetitiveReportByWorkUuidsReq) (*CountCompetitiveReportByWorkUuidsResp, error) } func (c *CastClientImpl) GetDubboStub(cc *triple.TripleConn) CastClient { @@ -255,6 +291,12 @@ func (c *castClient) WorkList(ctx context.Context, in *WorkListReq, opts ...grpc return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/WorkList", in, out) } +func (c *castClient) WorkListPublished(ctx context.Context, in *WorkListPublishedReq, opts ...grpc_go.CallOption) (*WorkListPublishedResp, common.ErrorWithAttachment) { + out := new(WorkListPublishedResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/WorkListPublished", in, out) +} + func (c *castClient) WorkDetail(ctx context.Context, in *WorkDetailReq, opts ...grpc_go.CallOption) (*WorkDetailResp, common.ErrorWithAttachment) { out := new(WorkDetailResp) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -585,6 +627,12 @@ func (c *castClient) GetArtistAyrShareInfo(ctx context.Context, in *GetArtistAyr return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtistAyrShareInfo", in, out) } +func (c *castClient) GetArtistAyrShareInfoByPlatformIDs(ctx context.Context, in *GetArtistAyrShareInfoByPlatformIDsReq, opts ...grpc_go.CallOption) (*GetArtistAyrShareInfoByPlatformIDsResp, common.ErrorWithAttachment) { + out := new(GetArtistAyrShareInfoByPlatformIDsResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetArtistAyrShareInfoByPlatformIDs", in, out) +} + func (c *castClient) ListWorkPlatformInfo(ctx context.Context, in *ListWorkPlatformInfoReq, opts ...grpc_go.CallOption) (*ListWorkPlatformInfoResp, common.ErrorWithAttachment) { out := new(ListWorkPlatformInfoResp) interfaceKey := ctx.Value(constant.InterfaceKey).(string) @@ -615,6 +663,96 @@ func (c *castClient) DeleteTaskList(ctx context.Context, in *DeleteTaskListReq, return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeleteTaskList", in, out) } +func (c *castClient) UpdateCastTag(ctx context.Context, in *UpdateCastTagReq, opts ...grpc_go.CallOption) (*UpdateCastTagResp, common.ErrorWithAttachment) { + out := new(UpdateCastTagResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateCastTag", in, out) +} + +func (c *castClient) ListCastTags(ctx context.Context, in *ListCastTagsReq, opts ...grpc_go.CallOption) (*ListCastTagsResp, common.ErrorWithAttachment) { + out := new(ListCastTagsResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ListCastTags", in, out) +} + +func (c *castClient) UpdateCastTagBatch(ctx context.Context, in *UpdateCastTagBatchReq, opts ...grpc_go.CallOption) (*UpdateCastTagBatchResp, common.ErrorWithAttachment) { + out := new(UpdateCastTagBatchResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateCastTagBatch", in, out) +} + +func (c *castClient) BatchUpdateCastTags(ctx context.Context, in *BatchUpdateCastTagsReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/BatchUpdateCastTags", in, out) +} + +func (c *castClient) UpdateCastTagStatus(ctx context.Context, in *UpdateCastTagStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateCastTagStatus", in, out) +} + +func (c *castClient) RecalculateCastTagQuoteCount(ctx context.Context, in *emptypb.Empty, opts ...grpc_go.CallOption) (*RecalculateCastTagQuoteCountResp, common.ErrorWithAttachment) { + out := new(RecalculateCastTagQuoteCountResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/RecalculateCastTagQuoteCount", in, out) +} + +func (c *castClient) CreateCompetitiveReport(ctx context.Context, in *CreateCompetitiveReportReq, opts ...grpc_go.CallOption) (*CreateCompetitiveReportResp, common.ErrorWithAttachment) { + out := new(CreateCompetitiveReportResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateCompetitiveReport", in, out) +} + +func (c *castClient) ImportCompetitiveReportBatch(ctx context.Context, in *ImportCompetitiveReportBatchReq, opts ...grpc_go.CallOption) (*ImportCompetitiveReportBatchResp, common.ErrorWithAttachment) { + out := new(ImportCompetitiveReportBatchResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ImportCompetitiveReportBatch", in, out) +} + +func (c *castClient) UpdateCompetitiveReportStatus(ctx context.Context, in *UpdateCompetitiveReportStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateCompetitiveReportStatus", in, out) +} + +func (c *castClient) GetCompetitiveReport(ctx context.Context, in *GetCompetitiveReportDetailReq, opts ...grpc_go.CallOption) (*GetCompetitiveReportDetailResp, common.ErrorWithAttachment) { + out := new(GetCompetitiveReportDetailResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetCompetitiveReport", in, out) +} + +func (c *castClient) GetCompetitiveReportForApp(ctx context.Context, in *GetCompetitiveReportForAppReq, opts ...grpc_go.CallOption) (*GetCompetitiveReportForAppResp, common.ErrorWithAttachment) { + out := new(GetCompetitiveReportForAppResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetCompetitiveReportForApp", in, out) +} + +func (c *castClient) ListCompetitiveReport(ctx context.Context, in *ListCompetitiveReportReq, opts ...grpc_go.CallOption) (*ListCompetitiveReportResp, common.ErrorWithAttachment) { + out := new(ListCompetitiveReportResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ListCompetitiveReport", in, out) +} + +func (c *castClient) DeleteCompetitiveReport(ctx context.Context, in *DeleteCompetitiveReportReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeleteCompetitiveReport", in, out) +} + +func (c *castClient) UpdateCompetitiveReportApprovalID(ctx context.Context, in *UpdateCompetitiveReportApprovalIDReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateCompetitiveReportApprovalID", in, out) +} + +func (c *castClient) CountCompetitiveReportByWorkUuids(ctx context.Context, in *CountCompetitiveReportByWorkUuidsReq, opts ...grpc_go.CallOption) (*CountCompetitiveReportByWorkUuidsResp, common.ErrorWithAttachment) { + out := new(CountCompetitiveReportByWorkUuidsResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CountCompetitiveReportByWorkUuids", in, out) +} + // CastServer is the server API for Cast service. // All implementations must embed UnimplementedCastServer // for forward compatibility @@ -628,6 +766,7 @@ type CastServer interface { MediaInfo(context.Context, *MediaInfoReq) (*MediaInfoResp, error) MediaInfoByPlatform(context.Context, *MediaInfoByPlatformReq) (*MediaInfoByPlatformResp, error) WorkList(context.Context, *WorkListReq) (*WorkListResp, error) + WorkListPublished(context.Context, *WorkListPublishedReq) (*WorkListPublishedResp, error) WorkDetail(context.Context, *WorkDetailReq) (*WorkDetailResp, error) UpdateStatus(context.Context, *UpdateStatusReq) (*emptypb.Empty, error) MediaAccounts(context.Context, *MediaAccountsReq) (*MediaAccountsResp, error) @@ -694,6 +833,7 @@ type CastServer interface { CalculateMediaMetricsByWorks(context.Context, *CalculateMediaMetricsByWorksReq) (*CalculateMediaMetricsByWorksResp, error) // 艺人AyrShare信息相关接口 GetArtistAyrShareInfo(context.Context, *GetArtistAyrShareInfoReq) (*GetArtistAyrShareInfoResp, error) + GetArtistAyrShareInfoByPlatformIDs(context.Context, *GetArtistAyrShareInfoByPlatformIDsReq) (*GetArtistAyrShareInfoByPlatformIDsResp, error) // 作品平台信息相关接口 ListWorkPlatformInfo(context.Context, *ListWorkPlatformInfoReq) (*ListWorkPlatformInfoResp, error) // 任务列表相关接口 @@ -701,6 +841,23 @@ type CastServer interface { GetTaskList(context.Context, *GetTaskListReq) (*GetTaskListResp, error) ListTaskList(context.Context, *ListTaskListReq) (*ListTaskListResp, error) DeleteTaskList(context.Context, *DeleteTaskListReq) (*emptypb.Empty, error) + // 话题标签相关接口 + UpdateCastTag(context.Context, *UpdateCastTagReq) (*UpdateCastTagResp, error) + ListCastTags(context.Context, *ListCastTagsReq) (*ListCastTagsResp, error) + UpdateCastTagBatch(context.Context, *UpdateCastTagBatchReq) (*UpdateCastTagBatchResp, error) + BatchUpdateCastTags(context.Context, *BatchUpdateCastTagsReq) (*emptypb.Empty, error) + UpdateCastTagStatus(context.Context, *UpdateCastTagStatusReq) (*emptypb.Empty, error) + RecalculateCastTagQuoteCount(context.Context, *emptypb.Empty) (*RecalculateCastTagQuoteCountResp, error) + // 竞品报告相关接口 + CreateCompetitiveReport(context.Context, *CreateCompetitiveReportReq) (*CreateCompetitiveReportResp, error) + ImportCompetitiveReportBatch(context.Context, *ImportCompetitiveReportBatchReq) (*ImportCompetitiveReportBatchResp, error) + UpdateCompetitiveReportStatus(context.Context, *UpdateCompetitiveReportStatusReq) (*emptypb.Empty, error) + GetCompetitiveReport(context.Context, *GetCompetitiveReportDetailReq) (*GetCompetitiveReportDetailResp, error) + GetCompetitiveReportForApp(context.Context, *GetCompetitiveReportForAppReq) (*GetCompetitiveReportForAppResp, error) + ListCompetitiveReport(context.Context, *ListCompetitiveReportReq) (*ListCompetitiveReportResp, error) + DeleteCompetitiveReport(context.Context, *DeleteCompetitiveReportReq) (*emptypb.Empty, error) + UpdateCompetitiveReportApprovalID(context.Context, *UpdateCompetitiveReportApprovalIDReq) (*emptypb.Empty, error) + CountCompetitiveReportByWorkUuids(context.Context, *CountCompetitiveReportByWorkUuidsReq) (*CountCompetitiveReportByWorkUuidsResp, error) mustEmbedUnimplementedCastServer() } @@ -736,6 +893,9 @@ func (UnimplementedCastServer) MediaInfoByPlatform(context.Context, *MediaInfoBy func (UnimplementedCastServer) WorkList(context.Context, *WorkListReq) (*WorkListResp, error) { return nil, status.Errorf(codes.Unimplemented, "method WorkList not implemented") } +func (UnimplementedCastServer) WorkListPublished(context.Context, *WorkListPublishedReq) (*WorkListPublishedResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method WorkListPublished not implemented") +} func (UnimplementedCastServer) WorkDetail(context.Context, *WorkDetailReq) (*WorkDetailResp, error) { return nil, status.Errorf(codes.Unimplemented, "method WorkDetail not implemented") } @@ -901,6 +1061,9 @@ func (UnimplementedCastServer) CalculateMediaMetricsByWorks(context.Context, *Ca func (UnimplementedCastServer) GetArtistAyrShareInfo(context.Context, *GetArtistAyrShareInfoReq) (*GetArtistAyrShareInfoResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetArtistAyrShareInfo not implemented") } +func (UnimplementedCastServer) GetArtistAyrShareInfoByPlatformIDs(context.Context, *GetArtistAyrShareInfoByPlatformIDsReq) (*GetArtistAyrShareInfoByPlatformIDsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArtistAyrShareInfoByPlatformIDs not implemented") +} func (UnimplementedCastServer) ListWorkPlatformInfo(context.Context, *ListWorkPlatformInfoReq) (*ListWorkPlatformInfoResp, error) { return nil, status.Errorf(codes.Unimplemented, "method ListWorkPlatformInfo not implemented") } @@ -916,6 +1079,51 @@ func (UnimplementedCastServer) ListTaskList(context.Context, *ListTaskListReq) ( func (UnimplementedCastServer) DeleteTaskList(context.Context, *DeleteTaskListReq) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteTaskList not implemented") } +func (UnimplementedCastServer) UpdateCastTag(context.Context, *UpdateCastTagReq) (*UpdateCastTagResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCastTag not implemented") +} +func (UnimplementedCastServer) ListCastTags(context.Context, *ListCastTagsReq) (*ListCastTagsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListCastTags not implemented") +} +func (UnimplementedCastServer) UpdateCastTagBatch(context.Context, *UpdateCastTagBatchReq) (*UpdateCastTagBatchResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCastTagBatch not implemented") +} +func (UnimplementedCastServer) BatchUpdateCastTags(context.Context, *BatchUpdateCastTagsReq) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchUpdateCastTags not implemented") +} +func (UnimplementedCastServer) UpdateCastTagStatus(context.Context, *UpdateCastTagStatusReq) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCastTagStatus not implemented") +} +func (UnimplementedCastServer) RecalculateCastTagQuoteCount(context.Context, *emptypb.Empty) (*RecalculateCastTagQuoteCountResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecalculateCastTagQuoteCount not implemented") +} +func (UnimplementedCastServer) CreateCompetitiveReport(context.Context, *CreateCompetitiveReportReq) (*CreateCompetitiveReportResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateCompetitiveReport not implemented") +} +func (UnimplementedCastServer) ImportCompetitiveReportBatch(context.Context, *ImportCompetitiveReportBatchReq) (*ImportCompetitiveReportBatchResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ImportCompetitiveReportBatch not implemented") +} +func (UnimplementedCastServer) UpdateCompetitiveReportStatus(context.Context, *UpdateCompetitiveReportStatusReq) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCompetitiveReportStatus not implemented") +} +func (UnimplementedCastServer) GetCompetitiveReport(context.Context, *GetCompetitiveReportDetailReq) (*GetCompetitiveReportDetailResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCompetitiveReport not implemented") +} +func (UnimplementedCastServer) GetCompetitiveReportForApp(context.Context, *GetCompetitiveReportForAppReq) (*GetCompetitiveReportForAppResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCompetitiveReportForApp not implemented") +} +func (UnimplementedCastServer) ListCompetitiveReport(context.Context, *ListCompetitiveReportReq) (*ListCompetitiveReportResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListCompetitiveReport not implemented") +} +func (UnimplementedCastServer) DeleteCompetitiveReport(context.Context, *DeleteCompetitiveReportReq) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteCompetitiveReport not implemented") +} +func (UnimplementedCastServer) UpdateCompetitiveReportApprovalID(context.Context, *UpdateCompetitiveReportApprovalIDReq) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCompetitiveReportApprovalID not implemented") +} +func (UnimplementedCastServer) CountCompetitiveReportByWorkUuids(context.Context, *CountCompetitiveReportByWorkUuidsReq) (*CountCompetitiveReportByWorkUuidsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountCompetitiveReportByWorkUuids not implemented") +} func (s *UnimplementedCastServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -1205,6 +1413,35 @@ func _Cast_WorkList_Handler(srv interface{}, ctx context.Context, dec func(inter return interceptor(ctx, in, info, handler) } +func _Cast_WorkListPublished_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(WorkListPublishedReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("WorkListPublished", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + func _Cast_WorkDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(WorkDetailReq) if err := dec(in); err != nil { @@ -2800,6 +3037,35 @@ func _Cast_GetArtistAyrShareInfo_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _Cast_GetArtistAyrShareInfoByPlatformIDs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArtistAyrShareInfoByPlatformIDsReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetArtistAyrShareInfoByPlatformIDs", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + func _Cast_ListWorkPlatformInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { in := new(ListWorkPlatformInfoReq) if err := dec(in); err != nil { @@ -2945,6 +3211,441 @@ func _Cast_DeleteTaskList_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _Cast_UpdateCastTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateCastTagReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateCastTag", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_ListCastTags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ListCastTagsReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ListCastTags", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_UpdateCastTagBatch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateCastTagBatchReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateCastTagBatch", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_BatchUpdateCastTags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchUpdateCastTagsReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("BatchUpdateCastTags", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_UpdateCastTagStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateCastTagStatusReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateCastTagStatus", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_RecalculateCastTagQuoteCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("RecalculateCastTagQuoteCount", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_CreateCompetitiveReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateCompetitiveReportReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CreateCompetitiveReport", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_ImportCompetitiveReportBatch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ImportCompetitiveReportBatchReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ImportCompetitiveReportBatch", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_UpdateCompetitiveReportStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateCompetitiveReportStatusReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateCompetitiveReportStatus", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_GetCompetitiveReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCompetitiveReportDetailReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetCompetitiveReport", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_GetCompetitiveReportForApp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCompetitiveReportForAppReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetCompetitiveReportForApp", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_ListCompetitiveReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ListCompetitiveReportReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ListCompetitiveReport", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_DeleteCompetitiveReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteCompetitiveReportReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("DeleteCompetitiveReport", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_UpdateCompetitiveReportApprovalID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateCompetitiveReportApprovalIDReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateCompetitiveReportApprovalID", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Cast_CountCompetitiveReportByWorkUuids_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CountCompetitiveReportByWorkUuidsReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CountCompetitiveReportByWorkUuids", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // Cast_ServiceDesc is the grpc_go.ServiceDesc for Cast service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -2988,6 +3689,10 @@ var Cast_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "WorkList", Handler: _Cast_WorkList_Handler, }, + { + MethodName: "WorkListPublished", + Handler: _Cast_WorkListPublished_Handler, + }, { MethodName: "WorkDetail", Handler: _Cast_WorkDetail_Handler, @@ -3208,6 +3913,10 @@ var Cast_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "GetArtistAyrShareInfo", Handler: _Cast_GetArtistAyrShareInfo_Handler, }, + { + MethodName: "GetArtistAyrShareInfoByPlatformIDs", + Handler: _Cast_GetArtistAyrShareInfoByPlatformIDs_Handler, + }, { MethodName: "ListWorkPlatformInfo", Handler: _Cast_ListWorkPlatformInfo_Handler, @@ -3228,6 +3937,66 @@ var Cast_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "DeleteTaskList", Handler: _Cast_DeleteTaskList_Handler, }, + { + MethodName: "UpdateCastTag", + Handler: _Cast_UpdateCastTag_Handler, + }, + { + MethodName: "ListCastTags", + Handler: _Cast_ListCastTags_Handler, + }, + { + MethodName: "UpdateCastTagBatch", + Handler: _Cast_UpdateCastTagBatch_Handler, + }, + { + MethodName: "BatchUpdateCastTags", + Handler: _Cast_BatchUpdateCastTags_Handler, + }, + { + MethodName: "UpdateCastTagStatus", + Handler: _Cast_UpdateCastTagStatus_Handler, + }, + { + MethodName: "RecalculateCastTagQuoteCount", + Handler: _Cast_RecalculateCastTagQuoteCount_Handler, + }, + { + MethodName: "CreateCompetitiveReport", + Handler: _Cast_CreateCompetitiveReport_Handler, + }, + { + MethodName: "ImportCompetitiveReportBatch", + Handler: _Cast_ImportCompetitiveReportBatch_Handler, + }, + { + MethodName: "UpdateCompetitiveReportStatus", + Handler: _Cast_UpdateCompetitiveReportStatus_Handler, + }, + { + MethodName: "GetCompetitiveReport", + Handler: _Cast_GetCompetitiveReport_Handler, + }, + { + MethodName: "GetCompetitiveReportForApp", + Handler: _Cast_GetCompetitiveReportForApp_Handler, + }, + { + MethodName: "ListCompetitiveReport", + Handler: _Cast_ListCompetitiveReport_Handler, + }, + { + MethodName: "DeleteCompetitiveReport", + Handler: _Cast_DeleteCompetitiveReport_Handler, + }, + { + MethodName: "UpdateCompetitiveReportApprovalID", + Handler: _Cast_UpdateCompetitiveReportApprovalID_Handler, + }, + { + MethodName: "CountCompetitiveReportByWorkUuids", + Handler: _Cast_CountCompetitiveReportByWorkUuids_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/fiee/cast.proto", diff --git a/api/supplier/supplier.pb.go b/api/supplier/supplier.pb.go new file mode 100644 index 0000000..2507a2f --- /dev/null +++ b/api/supplier/supplier.pb.go @@ -0,0 +1,2209 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.7 +// protoc v6.32.0 +// source: api/supplier/supplier.proto + +package supplier + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +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 GetImportRecordRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetImportRecordRequest) Reset() { + *x = GetImportRecordRequest{} + mi := &file_api_supplier_supplier_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetImportRecordRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetImportRecordRequest) ProtoMessage() {} + +func (x *GetImportRecordRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetImportRecordRequest.ProtoReflect.Descriptor instead. +func (*GetImportRecordRequest) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{0} +} + +func (x *GetImportRecordRequest) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +type GetImportRecordResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + SuccessNum uint64 `protobuf:"varint,1,opt,name=successNum,proto3" json:"successNum"` + FailNum uint64 `protobuf:"varint,2,opt,name=failNum,proto3" json:"failNum"` + DeriveUrl string `protobuf:"bytes,3,opt,name=deriveUrl,proto3" json:"deriveUrl"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetImportRecordResponse) Reset() { + *x = GetImportRecordResponse{} + mi := &file_api_supplier_supplier_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetImportRecordResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetImportRecordResponse) ProtoMessage() {} + +func (x *GetImportRecordResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetImportRecordResponse.ProtoReflect.Descriptor instead. +func (*GetImportRecordResponse) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{1} +} + +func (x *GetImportRecordResponse) GetSuccessNum() uint64 { + if x != nil { + return x.SuccessNum + } + return 0 +} + +func (x *GetImportRecordResponse) GetFailNum() uint64 { + if x != nil { + return x.FailNum + } + return 0 +} + +func (x *GetImportRecordResponse) GetDeriveUrl() string { + if x != nil { + return x.DeriveUrl + } + return "" +} + +type CreateImportRecordRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + SupplierCodes []string `protobuf:"bytes,1,rep,name=supplierCodes,proto3" json:"supplierCodes"` + Status uint64 `protobuf:"varint,2,opt,name=status,proto3" json:"status"` + UserId uint64 `protobuf:"varint,3,opt,name=userId,proto3" json:"userId"` + ToLeadUrl string `protobuf:"bytes,4,opt,name=toLeadUrl,proto3" json:"toLeadUrl"` + DeriveUrl string `protobuf:"bytes,5,opt,name=deriveUrl,proto3" json:"deriveUrl"` + Uuid string `protobuf:"bytes,6,opt,name=uuid,proto3" json:"uuid"` + SuccessNum uint64 `protobuf:"varint,7,opt,name=successNum,proto3" json:"successNum"` + FailNum uint64 `protobuf:"varint,8,opt,name=failNum,proto3" json:"failNum"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateImportRecordRequest) Reset() { + *x = CreateImportRecordRequest{} + mi := &file_api_supplier_supplier_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateImportRecordRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateImportRecordRequest) ProtoMessage() {} + +func (x *CreateImportRecordRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateImportRecordRequest.ProtoReflect.Descriptor instead. +func (*CreateImportRecordRequest) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{2} +} + +func (x *CreateImportRecordRequest) GetSupplierCodes() []string { + if x != nil { + return x.SupplierCodes + } + return nil +} + +func (x *CreateImportRecordRequest) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *CreateImportRecordRequest) GetUserId() uint64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *CreateImportRecordRequest) GetToLeadUrl() string { + if x != nil { + return x.ToLeadUrl + } + return "" +} + +func (x *CreateImportRecordRequest) GetDeriveUrl() string { + if x != nil { + return x.DeriveUrl + } + return "" +} + +func (x *CreateImportRecordRequest) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *CreateImportRecordRequest) GetSuccessNum() uint64 { + if x != nil { + return x.SuccessNum + } + return 0 +} + +func (x *CreateImportRecordRequest) GetFailNum() uint64 { + if x != nil { + return x.FailNum + } + return 0 +} + +type CreateImportRecordResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateImportRecordResponse) Reset() { + *x = CreateImportRecordResponse{} + mi := &file_api_supplier_supplier_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateImportRecordResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateImportRecordResponse) ProtoMessage() {} + +func (x *CreateImportRecordResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateImportRecordResponse.ProtoReflect.Descriptor instead. +func (*CreateImportRecordResponse) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateImportRecordResponse) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type GetCountryRegionListResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []*CountryRegion `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` + Page uint64 `protobuf:"varint,2,opt,name=page,proto3" json:"page"` + PageSize uint64 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"` + Total uint64 `protobuf:"varint,4,opt,name=total,proto3" json:"total"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetCountryRegionListResponse) Reset() { + *x = GetCountryRegionListResponse{} + mi := &file_api_supplier_supplier_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetCountryRegionListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCountryRegionListResponse) ProtoMessage() {} + +func (x *GetCountryRegionListResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCountryRegionListResponse.ProtoReflect.Descriptor instead. +func (*GetCountryRegionListResponse) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{4} +} + +func (x *GetCountryRegionListResponse) GetData() []*CountryRegion { + if x != nil { + return x.Data + } + return nil +} + +func (x *GetCountryRegionListResponse) GetPage() uint64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetCountryRegionListResponse) GetPageSize() uint64 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *GetCountryRegionListResponse) GetTotal() uint64 { + if x != nil { + return x.Total + } + return 0 +} + +type CountryRegion struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` + NameEN string `protobuf:"bytes,2,opt,name=nameEN,proto3" json:"nameEN"` + NameCN string `protobuf:"bytes,3,opt,name=nameCN,proto3" json:"nameCN"` + Code string `protobuf:"bytes,4,opt,name=code,proto3" json:"code"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CountryRegion) Reset() { + *x = CountryRegion{} + mi := &file_api_supplier_supplier_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CountryRegion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountryRegion) ProtoMessage() {} + +func (x *CountryRegion) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CountryRegion.ProtoReflect.Descriptor instead. +func (*CountryRegion) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{5} +} + +func (x *CountryRegion) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *CountryRegion) GetNameEN() string { + if x != nil { + return x.NameEN + } + return "" +} + +func (x *CountryRegion) GetNameCN() string { + if x != nil { + return x.NameCN + } + return "" +} + +func (x *CountryRegion) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +type GetCountryRegionInfoRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ZhAndCode string `protobuf:"bytes,1,opt,name=zhAndCode,proto3" json:"zhAndCode"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetCountryRegionInfoRequest) Reset() { + *x = GetCountryRegionInfoRequest{} + mi := &file_api_supplier_supplier_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetCountryRegionInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCountryRegionInfoRequest) ProtoMessage() {} + +func (x *GetCountryRegionInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCountryRegionInfoRequest.ProtoReflect.Descriptor instead. +func (*GetCountryRegionInfoRequest) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{6} +} + +func (x *GetCountryRegionInfoRequest) GetZhAndCode() string { + if x != nil { + return x.ZhAndCode + } + return "" +} + +type GetCountryRegionListRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Page uint64 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` + PageSize uint64 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` + NameEN string `protobuf:"bytes,3,opt,name=nameEN,proto3" json:"nameEN"` + NameCN string `protobuf:"bytes,4,opt,name=nameCN,proto3" json:"nameCN"` + Code string `protobuf:"bytes,5,opt,name=code,proto3" json:"code"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetCountryRegionListRequest) Reset() { + *x = GetCountryRegionListRequest{} + mi := &file_api_supplier_supplier_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetCountryRegionListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCountryRegionListRequest) ProtoMessage() {} + +func (x *GetCountryRegionListRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCountryRegionListRequest.ProtoReflect.Descriptor instead. +func (*GetCountryRegionListRequest) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{7} +} + +func (x *GetCountryRegionListRequest) GetPage() uint64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetCountryRegionListRequest) GetPageSize() uint64 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *GetCountryRegionListRequest) GetNameEN() string { + if x != nil { + return x.NameEN + } + return "" +} + +func (x *GetCountryRegionListRequest) GetNameCN() string { + if x != nil { + return x.NameCN + } + return "" +} + +func (x *GetCountryRegionListRequest) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +type OrganizeDictionary struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *OrganizeDictionary) Reset() { + *x = OrganizeDictionary{} + mi := &file_api_supplier_supplier_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *OrganizeDictionary) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrganizeDictionary) ProtoMessage() {} + +func (x *OrganizeDictionary) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrganizeDictionary.ProtoReflect.Descriptor instead. +func (*OrganizeDictionary) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{8} +} + +func (x *OrganizeDictionary) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *OrganizeDictionary) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type GetOrganizeDictionaryListResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []*OrganizeDictionary `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` + Page uint64 `protobuf:"varint,2,opt,name=page,proto3" json:"page"` + PageSize uint64 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"` + Total uint64 `protobuf:"varint,4,opt,name=total,proto3" json:"total"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetOrganizeDictionaryListResponse) Reset() { + *x = GetOrganizeDictionaryListResponse{} + mi := &file_api_supplier_supplier_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetOrganizeDictionaryListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOrganizeDictionaryListResponse) ProtoMessage() {} + +func (x *GetOrganizeDictionaryListResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetOrganizeDictionaryListResponse.ProtoReflect.Descriptor instead. +func (*GetOrganizeDictionaryListResponse) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{9} +} + +func (x *GetOrganizeDictionaryListResponse) GetData() []*OrganizeDictionary { + if x != nil { + return x.Data + } + return nil +} + +func (x *GetOrganizeDictionaryListResponse) GetPage() uint64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetOrganizeDictionaryListResponse) GetPageSize() uint64 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *GetOrganizeDictionaryListResponse) GetTotal() uint64 { + if x != nil { + return x.Total + } + return 0 +} + +type CreateOrganizeDictionaryRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateOrganizeDictionaryRequest) Reset() { + *x = CreateOrganizeDictionaryRequest{} + mi := &file_api_supplier_supplier_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateOrganizeDictionaryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateOrganizeDictionaryRequest) ProtoMessage() {} + +func (x *CreateOrganizeDictionaryRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateOrganizeDictionaryRequest.ProtoReflect.Descriptor instead. +func (*CreateOrganizeDictionaryRequest) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{10} +} + +func (x *CreateOrganizeDictionaryRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type CreateOrganizeDictionaryResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateOrganizeDictionaryResponse) Reset() { + *x = CreateOrganizeDictionaryResponse{} + mi := &file_api_supplier_supplier_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateOrganizeDictionaryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateOrganizeDictionaryResponse) ProtoMessage() {} + +func (x *CreateOrganizeDictionaryResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateOrganizeDictionaryResponse.ProtoReflect.Descriptor instead. +func (*CreateOrganizeDictionaryResponse) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{11} +} + +func (x *CreateOrganizeDictionaryResponse) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type GetOrganizeDictionaryListRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Page uint64 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` + PageSize uint64 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetOrganizeDictionaryListRequest) Reset() { + *x = GetOrganizeDictionaryListRequest{} + mi := &file_api_supplier_supplier_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetOrganizeDictionaryListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOrganizeDictionaryListRequest) ProtoMessage() {} + +func (x *GetOrganizeDictionaryListRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetOrganizeDictionaryListRequest.ProtoReflect.Descriptor instead. +func (*GetOrganizeDictionaryListRequest) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{12} +} + +func (x *GetOrganizeDictionaryListRequest) GetPage() uint64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetOrganizeDictionaryListRequest) GetPageSize() uint64 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *GetOrganizeDictionaryListRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type GetSupplierListRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Page uint64 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` + PageSize uint64 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` + OwningEntityId uint64 `protobuf:"varint,3,opt,name=owningEntityId,proto3" json:"owningEntityId"` + SupplierUniqueCode string `protobuf:"bytes,4,opt,name=supplierUniqueCode,proto3" json:"supplierUniqueCode"` + LegalName string `protobuf:"bytes,5,opt,name=legalName,proto3" json:"legalName"` + LocalName string `protobuf:"bytes,6,opt,name=localName,proto3" json:"localName"` + AbbreviationName string `protobuf:"bytes,7,opt,name=abbreviationName,proto3" json:"abbreviationName"` + CountryOrRegionId uint64 `protobuf:"varint,8,opt,name=countryOrRegionId,proto3" json:"countryOrRegionId"` + CompanyRegistrationNumber string `protobuf:"bytes,9,opt,name=companyRegistrationNumber,proto3" json:"companyRegistrationNumber"` + SupplierType string `protobuf:"bytes,10,opt,name=supplierType,proto3" json:"supplierType"` + ApprovalStatus string `protobuf:"bytes,11,opt,name=approvalStatus,proto3" json:"approvalStatus"` + ApprovalDateStart string `protobuf:"bytes,12,opt,name=approvalDateStart,proto3" json:"approvalDateStart"` + ApprovalDateEnd string `protobuf:"bytes,13,opt,name=approvalDateEnd,proto3" json:"approvalDateEnd"` + LastReviewDateStart string `protobuf:"bytes,14,opt,name=lastReviewDateStart,proto3" json:"lastReviewDateStart"` + LastReviewDateEnd string `protobuf:"bytes,15,opt,name=lastReviewDateEnd,proto3" json:"lastReviewDateEnd"` + LegalEntityType string `protobuf:"bytes,16,opt,name=legalEntityType,proto3" json:"legalEntityType"` + SanctionsCountryScreeningResult string `protobuf:"bytes,17,opt,name=sanctionsCountryScreeningResult,proto3" json:"sanctionsCountryScreeningResult"` + KeyFinancial string `protobuf:"bytes,18,opt,name=keyFinancial,proto3" json:"keyFinancial"` + CompanyAddress string `protobuf:"bytes,19,opt,name=companyAddress,proto3" json:"companyAddress"` + PrimaryContact string `protobuf:"bytes,20,opt,name=primaryContact,proto3" json:"primaryContact"` + DataOwnerDepartment string `protobuf:"bytes,21,opt,name=dataOwnerDepartment,proto3" json:"dataOwnerDepartment"` + BasicCompanyInformation string `protobuf:"bytes,22,opt,name=basicCompanyInformation,proto3" json:"basicCompanyInformation"` + Status uint64 `protobuf:"varint,23,opt,name=status,proto3" json:"status"` + UpdateStart string `protobuf:"bytes,24,opt,name=updateStart,proto3" json:"updateStart"` + UpdateEnd string `protobuf:"bytes,25,opt,name=updateEnd,proto3" json:"updateEnd"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetSupplierListRequest) Reset() { + *x = GetSupplierListRequest{} + mi := &file_api_supplier_supplier_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetSupplierListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSupplierListRequest) ProtoMessage() {} + +func (x *GetSupplierListRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSupplierListRequest.ProtoReflect.Descriptor instead. +func (*GetSupplierListRequest) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{13} +} + +func (x *GetSupplierListRequest) GetPage() uint64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetSupplierListRequest) GetPageSize() uint64 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *GetSupplierListRequest) GetOwningEntityId() uint64 { + if x != nil { + return x.OwningEntityId + } + return 0 +} + +func (x *GetSupplierListRequest) GetSupplierUniqueCode() string { + if x != nil { + return x.SupplierUniqueCode + } + return "" +} + +func (x *GetSupplierListRequest) GetLegalName() string { + if x != nil { + return x.LegalName + } + return "" +} + +func (x *GetSupplierListRequest) GetLocalName() string { + if x != nil { + return x.LocalName + } + return "" +} + +func (x *GetSupplierListRequest) GetAbbreviationName() string { + if x != nil { + return x.AbbreviationName + } + return "" +} + +func (x *GetSupplierListRequest) GetCountryOrRegionId() uint64 { + if x != nil { + return x.CountryOrRegionId + } + return 0 +} + +func (x *GetSupplierListRequest) GetCompanyRegistrationNumber() string { + if x != nil { + return x.CompanyRegistrationNumber + } + return "" +} + +func (x *GetSupplierListRequest) GetSupplierType() string { + if x != nil { + return x.SupplierType + } + return "" +} + +func (x *GetSupplierListRequest) GetApprovalStatus() string { + if x != nil { + return x.ApprovalStatus + } + return "" +} + +func (x *GetSupplierListRequest) GetApprovalDateStart() string { + if x != nil { + return x.ApprovalDateStart + } + return "" +} + +func (x *GetSupplierListRequest) GetApprovalDateEnd() string { + if x != nil { + return x.ApprovalDateEnd + } + return "" +} + +func (x *GetSupplierListRequest) GetLastReviewDateStart() string { + if x != nil { + return x.LastReviewDateStart + } + return "" +} + +func (x *GetSupplierListRequest) GetLastReviewDateEnd() string { + if x != nil { + return x.LastReviewDateEnd + } + return "" +} + +func (x *GetSupplierListRequest) GetLegalEntityType() string { + if x != nil { + return x.LegalEntityType + } + return "" +} + +func (x *GetSupplierListRequest) GetSanctionsCountryScreeningResult() string { + if x != nil { + return x.SanctionsCountryScreeningResult + } + return "" +} + +func (x *GetSupplierListRequest) GetKeyFinancial() string { + if x != nil { + return x.KeyFinancial + } + return "" +} + +func (x *GetSupplierListRequest) GetCompanyAddress() string { + if x != nil { + return x.CompanyAddress + } + return "" +} + +func (x *GetSupplierListRequest) GetPrimaryContact() string { + if x != nil { + return x.PrimaryContact + } + return "" +} + +func (x *GetSupplierListRequest) GetDataOwnerDepartment() string { + if x != nil { + return x.DataOwnerDepartment + } + return "" +} + +func (x *GetSupplierListRequest) GetBasicCompanyInformation() string { + if x != nil { + return x.BasicCompanyInformation + } + return "" +} + +func (x *GetSupplierListRequest) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GetSupplierListRequest) GetUpdateStart() string { + if x != nil { + return x.UpdateStart + } + return "" +} + +func (x *GetSupplierListRequest) GetUpdateEnd() string { + if x != nil { + return x.UpdateEnd + } + return "" +} + +type GetSupplierListResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"` + Data []*SupplierInfo `protobuf:"bytes,2,rep,name=data,proto3" json:"data"` + Page uint64 `protobuf:"varint,3,opt,name=page,proto3" json:"page"` + PageSize uint64 `protobuf:"varint,4,opt,name=pageSize,proto3" json:"pageSize"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetSupplierListResponse) Reset() { + *x = GetSupplierListResponse{} + mi := &file_api_supplier_supplier_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetSupplierListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSupplierListResponse) ProtoMessage() {} + +func (x *GetSupplierListResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSupplierListResponse.ProtoReflect.Descriptor instead. +func (*GetSupplierListResponse) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{14} +} + +func (x *GetSupplierListResponse) GetTotal() uint64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetSupplierListResponse) GetData() []*SupplierInfo { + if x != nil { + return x.Data + } + return nil +} + +func (x *GetSupplierListResponse) GetPage() uint64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetSupplierListResponse) GetPageSize() uint64 { + if x != nil { + return x.PageSize + } + return 0 +} + +type SupplierInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` + OwningEntityId uint64 `protobuf:"varint,2,opt,name=owningEntityId,proto3" json:"owningEntityId"` + LegalName string `protobuf:"bytes,3,opt,name=legalName,proto3" json:"legalName"` + LocalName string `protobuf:"bytes,4,opt,name=localName,proto3" json:"localName"` + AbbreviationName string `protobuf:"bytes,5,opt,name=abbreviationName,proto3" json:"abbreviationName"` + CountryOrRegionId uint64 `protobuf:"varint,6,opt,name=countryOrRegionId,proto3" json:"countryOrRegionId"` + CompanyRegistrationNumber string `protobuf:"bytes,7,opt,name=companyRegistrationNumber,proto3" json:"companyRegistrationNumber"` + SupplierType string `protobuf:"bytes,8,opt,name=supplierType,proto3" json:"supplierType"` + ApprovalStatus string `protobuf:"bytes,9,opt,name=approvalStatus,proto3" json:"approvalStatus"` + ApprovalDate string `protobuf:"bytes,10,opt,name=approvalDate,proto3" json:"approvalDate"` + LastReviewDate string `protobuf:"bytes,11,opt,name=lastReviewDate,proto3" json:"lastReviewDate"` + LegalEntityType string `protobuf:"bytes,12,opt,name=legalEntityType,proto3" json:"legalEntityType"` + SanctionsCountryScreeningResult string `protobuf:"bytes,13,opt,name=sanctionsCountryScreeningResult,proto3" json:"sanctionsCountryScreeningResult"` + KeyFinancial string `protobuf:"bytes,14,opt,name=keyFinancial,proto3" json:"keyFinancial"` + CompanyAddress string `protobuf:"bytes,15,opt,name=companyAddress,proto3" json:"companyAddress"` + PrimaryContact string `protobuf:"bytes,16,opt,name=primaryContact,proto3" json:"primaryContact"` + DataOwnerDepartment string `protobuf:"bytes,17,opt,name=dataOwnerDepartment,proto3" json:"dataOwnerDepartment"` + BasicCompanyInformation string `protobuf:"bytes,18,opt,name=basicCompanyInformation,proto3" json:"basicCompanyInformation"` + LinkAddress string `protobuf:"bytes,19,opt,name=linkAddress,proto3" json:"linkAddress"` + SupplementaryText string `protobuf:"bytes,20,opt,name=supplementaryText,proto3" json:"supplementaryText"` + Attachments []*Attachment `protobuf:"bytes,21,rep,name=attachments,proto3" json:"attachments"` + Status uint64 `protobuf:"varint,22,opt,name=status,proto3" json:"status"` + CreatedAt string `protobuf:"bytes,23,opt,name=createdAt,proto3" json:"createdAt"` + UpdatedAt string `protobuf:"bytes,24,opt,name=updatedAt,proto3" json:"updatedAt"` + SupplierUniqueCode string `protobuf:"bytes,25,opt,name=supplierUniqueCode,proto3" json:"supplierUniqueCode"` + OwningEntityName string `protobuf:"bytes,26,opt,name=owningEntityName,proto3" json:"owningEntityName"` + CountryOrRegionCode string `protobuf:"bytes,27,opt,name=countryOrRegionCode,proto3" json:"countryOrRegionCode"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SupplierInfo) Reset() { + *x = SupplierInfo{} + mi := &file_api_supplier_supplier_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SupplierInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SupplierInfo) ProtoMessage() {} + +func (x *SupplierInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SupplierInfo.ProtoReflect.Descriptor instead. +func (*SupplierInfo) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{15} +} + +func (x *SupplierInfo) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SupplierInfo) GetOwningEntityId() uint64 { + if x != nil { + return x.OwningEntityId + } + return 0 +} + +func (x *SupplierInfo) GetLegalName() string { + if x != nil { + return x.LegalName + } + return "" +} + +func (x *SupplierInfo) GetLocalName() string { + if x != nil { + return x.LocalName + } + return "" +} + +func (x *SupplierInfo) GetAbbreviationName() string { + if x != nil { + return x.AbbreviationName + } + return "" +} + +func (x *SupplierInfo) GetCountryOrRegionId() uint64 { + if x != nil { + return x.CountryOrRegionId + } + return 0 +} + +func (x *SupplierInfo) GetCompanyRegistrationNumber() string { + if x != nil { + return x.CompanyRegistrationNumber + } + return "" +} + +func (x *SupplierInfo) GetSupplierType() string { + if x != nil { + return x.SupplierType + } + return "" +} + +func (x *SupplierInfo) GetApprovalStatus() string { + if x != nil { + return x.ApprovalStatus + } + return "" +} + +func (x *SupplierInfo) GetApprovalDate() string { + if x != nil { + return x.ApprovalDate + } + return "" +} + +func (x *SupplierInfo) GetLastReviewDate() string { + if x != nil { + return x.LastReviewDate + } + return "" +} + +func (x *SupplierInfo) GetLegalEntityType() string { + if x != nil { + return x.LegalEntityType + } + return "" +} + +func (x *SupplierInfo) GetSanctionsCountryScreeningResult() string { + if x != nil { + return x.SanctionsCountryScreeningResult + } + return "" +} + +func (x *SupplierInfo) GetKeyFinancial() string { + if x != nil { + return x.KeyFinancial + } + return "" +} + +func (x *SupplierInfo) GetCompanyAddress() string { + if x != nil { + return x.CompanyAddress + } + return "" +} + +func (x *SupplierInfo) GetPrimaryContact() string { + if x != nil { + return x.PrimaryContact + } + return "" +} + +func (x *SupplierInfo) GetDataOwnerDepartment() string { + if x != nil { + return x.DataOwnerDepartment + } + return "" +} + +func (x *SupplierInfo) GetBasicCompanyInformation() string { + if x != nil { + return x.BasicCompanyInformation + } + return "" +} + +func (x *SupplierInfo) GetLinkAddress() string { + if x != nil { + return x.LinkAddress + } + return "" +} + +func (x *SupplierInfo) GetSupplementaryText() string { + if x != nil { + return x.SupplementaryText + } + return "" +} + +func (x *SupplierInfo) GetAttachments() []*Attachment { + if x != nil { + return x.Attachments + } + return nil +} + +func (x *SupplierInfo) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *SupplierInfo) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *SupplierInfo) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +func (x *SupplierInfo) GetSupplierUniqueCode() string { + if x != nil { + return x.SupplierUniqueCode + } + return "" +} + +func (x *SupplierInfo) GetOwningEntityName() string { + if x != nil { + return x.OwningEntityName + } + return "" +} + +func (x *SupplierInfo) GetCountryOrRegionCode() string { + if x != nil { + return x.CountryOrRegionCode + } + return "" +} + +type UpdateSupplierRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` + OwningEntityId uint64 `protobuf:"varint,2,opt,name=owningEntityId,proto3" json:"owningEntityId"` + LegalName string `protobuf:"bytes,3,opt,name=legalName,proto3" json:"legalName"` + LocalName string `protobuf:"bytes,4,opt,name=localName,proto3" json:"localName"` + AbbreviationName string `protobuf:"bytes,5,opt,name=abbreviationName,proto3" json:"abbreviationName"` + CountryOrRegionId uint64 `protobuf:"varint,6,opt,name=countryOrRegionId,proto3" json:"countryOrRegionId"` + CompanyRegistrationNumber string `protobuf:"bytes,7,opt,name=companyRegistrationNumber,proto3" json:"companyRegistrationNumber"` + SupplierType string `protobuf:"bytes,8,opt,name=supplierType,proto3" json:"supplierType"` + ApprovalStatus string `protobuf:"bytes,9,opt,name=approvalStatus,proto3" json:"approvalStatus"` + ApprovalDate string `protobuf:"bytes,10,opt,name=approvalDate,proto3" json:"approvalDate"` + LastReviewDate string `protobuf:"bytes,11,opt,name=lastReviewDate,proto3" json:"lastReviewDate"` + LegalEntityType string `protobuf:"bytes,12,opt,name=legalEntityType,proto3" json:"legalEntityType"` + SanctionsCountryScreeningResult string `protobuf:"bytes,13,opt,name=sanctionsCountryScreeningResult,proto3" json:"sanctionsCountryScreeningResult"` + KeyFinancial string `protobuf:"bytes,14,opt,name=keyFinancial,proto3" json:"keyFinancial"` + CompanyAddress string `protobuf:"bytes,15,opt,name=companyAddress,proto3" json:"companyAddress"` + PrimaryContact string `protobuf:"bytes,16,opt,name=primaryContact,proto3" json:"primaryContact"` + DataOwnerDepartment string `protobuf:"bytes,17,opt,name=dataOwnerDepartment,proto3" json:"dataOwnerDepartment"` + BasicCompanyInformation string `protobuf:"bytes,18,opt,name=basicCompanyInformation,proto3" json:"basicCompanyInformation"` + LinkAddress string `protobuf:"bytes,19,opt,name=linkAddress,proto3" json:"linkAddress"` + SupplementaryText string `protobuf:"bytes,20,opt,name=supplementaryText,proto3" json:"supplementaryText"` + Attachments []*Attachment `protobuf:"bytes,21,rep,name=attachments,proto3" json:"attachments"` + Status uint64 `protobuf:"varint,22,opt,name=status,proto3" json:"status"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateSupplierRequest) Reset() { + *x = UpdateSupplierRequest{} + mi := &file_api_supplier_supplier_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateSupplierRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateSupplierRequest) ProtoMessage() {} + +func (x *UpdateSupplierRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateSupplierRequest.ProtoReflect.Descriptor instead. +func (*UpdateSupplierRequest) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{16} +} + +func (x *UpdateSupplierRequest) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UpdateSupplierRequest) GetOwningEntityId() uint64 { + if x != nil { + return x.OwningEntityId + } + return 0 +} + +func (x *UpdateSupplierRequest) GetLegalName() string { + if x != nil { + return x.LegalName + } + return "" +} + +func (x *UpdateSupplierRequest) GetLocalName() string { + if x != nil { + return x.LocalName + } + return "" +} + +func (x *UpdateSupplierRequest) GetAbbreviationName() string { + if x != nil { + return x.AbbreviationName + } + return "" +} + +func (x *UpdateSupplierRequest) GetCountryOrRegionId() uint64 { + if x != nil { + return x.CountryOrRegionId + } + return 0 +} + +func (x *UpdateSupplierRequest) GetCompanyRegistrationNumber() string { + if x != nil { + return x.CompanyRegistrationNumber + } + return "" +} + +func (x *UpdateSupplierRequest) GetSupplierType() string { + if x != nil { + return x.SupplierType + } + return "" +} + +func (x *UpdateSupplierRequest) GetApprovalStatus() string { + if x != nil { + return x.ApprovalStatus + } + return "" +} + +func (x *UpdateSupplierRequest) GetApprovalDate() string { + if x != nil { + return x.ApprovalDate + } + return "" +} + +func (x *UpdateSupplierRequest) GetLastReviewDate() string { + if x != nil { + return x.LastReviewDate + } + return "" +} + +func (x *UpdateSupplierRequest) GetLegalEntityType() string { + if x != nil { + return x.LegalEntityType + } + return "" +} + +func (x *UpdateSupplierRequest) GetSanctionsCountryScreeningResult() string { + if x != nil { + return x.SanctionsCountryScreeningResult + } + return "" +} + +func (x *UpdateSupplierRequest) GetKeyFinancial() string { + if x != nil { + return x.KeyFinancial + } + return "" +} + +func (x *UpdateSupplierRequest) GetCompanyAddress() string { + if x != nil { + return x.CompanyAddress + } + return "" +} + +func (x *UpdateSupplierRequest) GetPrimaryContact() string { + if x != nil { + return x.PrimaryContact + } + return "" +} + +func (x *UpdateSupplierRequest) GetDataOwnerDepartment() string { + if x != nil { + return x.DataOwnerDepartment + } + return "" +} + +func (x *UpdateSupplierRequest) GetBasicCompanyInformation() string { + if x != nil { + return x.BasicCompanyInformation + } + return "" +} + +func (x *UpdateSupplierRequest) GetLinkAddress() string { + if x != nil { + return x.LinkAddress + } + return "" +} + +func (x *UpdateSupplierRequest) GetSupplementaryText() string { + if x != nil { + return x.SupplementaryText + } + return "" +} + +func (x *UpdateSupplierRequest) GetAttachments() []*Attachment { + if x != nil { + return x.Attachments + } + return nil +} + +func (x *UpdateSupplierRequest) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +type CreateSupplierRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + OwningEntityId uint64 `protobuf:"varint,1,opt,name=owningEntityId,proto3" json:"owningEntityId"` + LegalName string `protobuf:"bytes,2,opt,name=legalName,proto3" json:"legalName"` + LocalName string `protobuf:"bytes,3,opt,name=localName,proto3" json:"localName"` + AbbreviationName string `protobuf:"bytes,4,opt,name=abbreviationName,proto3" json:"abbreviationName"` + CountryOrRegionId uint64 `protobuf:"varint,5,opt,name=countryOrRegionId,proto3" json:"countryOrRegionId"` + CompanyRegistrationNumber string `protobuf:"bytes,6,opt,name=companyRegistrationNumber,proto3" json:"companyRegistrationNumber"` + SupplierType string `protobuf:"bytes,7,opt,name=supplierType,proto3" json:"supplierType"` + ApprovalStatus string `protobuf:"bytes,8,opt,name=approvalStatus,proto3" json:"approvalStatus"` + ApprovalDate string `protobuf:"bytes,9,opt,name=approvalDate,proto3" json:"approvalDate"` + LastReviewDate string `protobuf:"bytes,10,opt,name=lastReviewDate,proto3" json:"lastReviewDate"` + LegalEntityType string `protobuf:"bytes,11,opt,name=legalEntityType,proto3" json:"legalEntityType"` + SanctionsCountryScreeningResult string `protobuf:"bytes,12,opt,name=sanctionsCountryScreeningResult,proto3" json:"sanctionsCountryScreeningResult"` + KeyFinancial string `protobuf:"bytes,13,opt,name=keyFinancial,proto3" json:"keyFinancial"` + CompanyAddress string `protobuf:"bytes,14,opt,name=companyAddress,proto3" json:"companyAddress"` + PrimaryContact string `protobuf:"bytes,15,opt,name=primaryContact,proto3" json:"primaryContact"` + DataOwnerDepartment string `protobuf:"bytes,16,opt,name=dataOwnerDepartment,proto3" json:"dataOwnerDepartment"` + BasicCompanyInformation string `protobuf:"bytes,17,opt,name=basicCompanyInformation,proto3" json:"basicCompanyInformation"` + LinkAddress string `protobuf:"bytes,18,opt,name=linkAddress,proto3" json:"linkAddress"` + SupplementaryText string `protobuf:"bytes,19,opt,name=supplementaryText,proto3" json:"supplementaryText"` + Attachments []*Attachment `protobuf:"bytes,20,rep,name=attachments,proto3" json:"attachments"` + Status uint64 `protobuf:"varint,21,opt,name=status,proto3" json:"status"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateSupplierRequest) Reset() { + *x = CreateSupplierRequest{} + mi := &file_api_supplier_supplier_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateSupplierRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSupplierRequest) ProtoMessage() {} + +func (x *CreateSupplierRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateSupplierRequest.ProtoReflect.Descriptor instead. +func (*CreateSupplierRequest) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{17} +} + +func (x *CreateSupplierRequest) GetOwningEntityId() uint64 { + if x != nil { + return x.OwningEntityId + } + return 0 +} + +func (x *CreateSupplierRequest) GetLegalName() string { + if x != nil { + return x.LegalName + } + return "" +} + +func (x *CreateSupplierRequest) GetLocalName() string { + if x != nil { + return x.LocalName + } + return "" +} + +func (x *CreateSupplierRequest) GetAbbreviationName() string { + if x != nil { + return x.AbbreviationName + } + return "" +} + +func (x *CreateSupplierRequest) GetCountryOrRegionId() uint64 { + if x != nil { + return x.CountryOrRegionId + } + return 0 +} + +func (x *CreateSupplierRequest) GetCompanyRegistrationNumber() string { + if x != nil { + return x.CompanyRegistrationNumber + } + return "" +} + +func (x *CreateSupplierRequest) GetSupplierType() string { + if x != nil { + return x.SupplierType + } + return "" +} + +func (x *CreateSupplierRequest) GetApprovalStatus() string { + if x != nil { + return x.ApprovalStatus + } + return "" +} + +func (x *CreateSupplierRequest) GetApprovalDate() string { + if x != nil { + return x.ApprovalDate + } + return "" +} + +func (x *CreateSupplierRequest) GetLastReviewDate() string { + if x != nil { + return x.LastReviewDate + } + return "" +} + +func (x *CreateSupplierRequest) GetLegalEntityType() string { + if x != nil { + return x.LegalEntityType + } + return "" +} + +func (x *CreateSupplierRequest) GetSanctionsCountryScreeningResult() string { + if x != nil { + return x.SanctionsCountryScreeningResult + } + return "" +} + +func (x *CreateSupplierRequest) GetKeyFinancial() string { + if x != nil { + return x.KeyFinancial + } + return "" +} + +func (x *CreateSupplierRequest) GetCompanyAddress() string { + if x != nil { + return x.CompanyAddress + } + return "" +} + +func (x *CreateSupplierRequest) GetPrimaryContact() string { + if x != nil { + return x.PrimaryContact + } + return "" +} + +func (x *CreateSupplierRequest) GetDataOwnerDepartment() string { + if x != nil { + return x.DataOwnerDepartment + } + return "" +} + +func (x *CreateSupplierRequest) GetBasicCompanyInformation() string { + if x != nil { + return x.BasicCompanyInformation + } + return "" +} + +func (x *CreateSupplierRequest) GetLinkAddress() string { + if x != nil { + return x.LinkAddress + } + return "" +} + +func (x *CreateSupplierRequest) GetSupplementaryText() string { + if x != nil { + return x.SupplementaryText + } + return "" +} + +func (x *CreateSupplierRequest) GetAttachments() []*Attachment { + if x != nil { + return x.Attachments + } + return nil +} + +func (x *CreateSupplierRequest) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +type Attachment struct { + state protoimpl.MessageState `protogen:"open.v1"` + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Attachment) Reset() { + *x = Attachment{} + mi := &file_api_supplier_supplier_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Attachment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Attachment) ProtoMessage() {} + +func (x *Attachment) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Attachment.ProtoReflect.Descriptor instead. +func (*Attachment) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{18} +} + +func (x *Attachment) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *Attachment) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *Attachment) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type CreateSupplierResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` + SupplierCode string `protobuf:"bytes,2,opt,name=supplierCode,proto3" json:"supplierCode"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateSupplierResponse) Reset() { + *x = CreateSupplierResponse{} + mi := &file_api_supplier_supplier_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateSupplierResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSupplierResponse) ProtoMessage() {} + +func (x *CreateSupplierResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateSupplierResponse.ProtoReflect.Descriptor instead. +func (*CreateSupplierResponse) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{19} +} + +func (x *CreateSupplierResponse) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *CreateSupplierResponse) GetSupplierCode() string { + if x != nil { + return x.SupplierCode + } + return "" +} + +type GetSupplierRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetSupplierRequest) Reset() { + *x = GetSupplierRequest{} + mi := &file_api_supplier_supplier_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetSupplierRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSupplierRequest) ProtoMessage() {} + +func (x *GetSupplierRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_supplier_supplier_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSupplierRequest.ProtoReflect.Descriptor instead. +func (*GetSupplierRequest) Descriptor() ([]byte, []int) { + return file_api_supplier_supplier_proto_rawDescGZIP(), []int{20} +} + +func (x *GetSupplierRequest) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +var File_api_supplier_supplier_proto protoreflect.FileDescriptor + +const file_api_supplier_supplier_proto_rawDesc = "" + + "\n" + + "\x1bapi/supplier/supplier.proto\x12\bsupplier\",\n" + + "\x16GetImportRecordRequest\x12\x12\n" + + "\x04uuid\x18\x01 \x01(\tR\x04uuid\"q\n" + + "\x17GetImportRecordResponse\x12\x1e\n" + + "\n" + + "successNum\x18\x01 \x01(\x04R\n" + + "successNum\x12\x18\n" + + "\afailNum\x18\x02 \x01(\x04R\afailNum\x12\x1c\n" + + "\tderiveUrl\x18\x03 \x01(\tR\tderiveUrl\"\xfb\x01\n" + + "\x19CreateImportRecordRequest\x12$\n" + + "\rsupplierCodes\x18\x01 \x03(\tR\rsupplierCodes\x12\x16\n" + + "\x06status\x18\x02 \x01(\x04R\x06status\x12\x16\n" + + "\x06userId\x18\x03 \x01(\x04R\x06userId\x12\x1c\n" + + "\ttoLeadUrl\x18\x04 \x01(\tR\ttoLeadUrl\x12\x1c\n" + + "\tderiveUrl\x18\x05 \x01(\tR\tderiveUrl\x12\x12\n" + + "\x04uuid\x18\x06 \x01(\tR\x04uuid\x12\x1e\n" + + "\n" + + "successNum\x18\a \x01(\x04R\n" + + "successNum\x12\x18\n" + + "\afailNum\x18\b \x01(\x04R\afailNum\",\n" + + "\x1aCreateImportRecordResponse\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x04R\x02id\"\x91\x01\n" + + "\x1cGetCountryRegionListResponse\x12+\n" + + "\x04data\x18\x01 \x03(\v2\x17.supplier.CountryRegionR\x04data\x12\x12\n" + + "\x04page\x18\x02 \x01(\x04R\x04page\x12\x1a\n" + + "\bpageSize\x18\x03 \x01(\x04R\bpageSize\x12\x14\n" + + "\x05total\x18\x04 \x01(\x04R\x05total\"c\n" + + "\rCountryRegion\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x04R\x02id\x12\x16\n" + + "\x06nameEN\x18\x02 \x01(\tR\x06nameEN\x12\x16\n" + + "\x06nameCN\x18\x03 \x01(\tR\x06nameCN\x12\x12\n" + + "\x04code\x18\x04 \x01(\tR\x04code\";\n" + + "\x1bGetCountryRegionInfoRequest\x12\x1c\n" + + "\tzhAndCode\x18\x01 \x01(\tR\tzhAndCode\"\x91\x01\n" + + "\x1bGetCountryRegionListRequest\x12\x12\n" + + "\x04page\x18\x01 \x01(\x04R\x04page\x12\x1a\n" + + "\bpageSize\x18\x02 \x01(\x04R\bpageSize\x12\x16\n" + + "\x06nameEN\x18\x03 \x01(\tR\x06nameEN\x12\x16\n" + + "\x06nameCN\x18\x04 \x01(\tR\x06nameCN\x12\x12\n" + + "\x04code\x18\x05 \x01(\tR\x04code\"8\n" + + "\x12OrganizeDictionary\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x04R\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\"\x9b\x01\n" + + "!GetOrganizeDictionaryListResponse\x120\n" + + "\x04data\x18\x01 \x03(\v2\x1c.supplier.OrganizeDictionaryR\x04data\x12\x12\n" + + "\x04page\x18\x02 \x01(\x04R\x04page\x12\x1a\n" + + "\bpageSize\x18\x03 \x01(\x04R\bpageSize\x12\x14\n" + + "\x05total\x18\x04 \x01(\x04R\x05total\"5\n" + + "\x1fCreateOrganizeDictionaryRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"2\n" + + " CreateOrganizeDictionaryResponse\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x04R\x02id\"f\n" + + " GetOrganizeDictionaryListRequest\x12\x12\n" + + "\x04page\x18\x01 \x01(\x04R\x04page\x12\x1a\n" + + "\bpageSize\x18\x02 \x01(\x04R\bpageSize\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\"\xa4\b\n" + + "\x16GetSupplierListRequest\x12\x12\n" + + "\x04page\x18\x01 \x01(\x04R\x04page\x12\x1a\n" + + "\bpageSize\x18\x02 \x01(\x04R\bpageSize\x12&\n" + + "\x0eowningEntityId\x18\x03 \x01(\x04R\x0eowningEntityId\x12.\n" + + "\x12supplierUniqueCode\x18\x04 \x01(\tR\x12supplierUniqueCode\x12\x1c\n" + + "\tlegalName\x18\x05 \x01(\tR\tlegalName\x12\x1c\n" + + "\tlocalName\x18\x06 \x01(\tR\tlocalName\x12*\n" + + "\x10abbreviationName\x18\a \x01(\tR\x10abbreviationName\x12,\n" + + "\x11countryOrRegionId\x18\b \x01(\x04R\x11countryOrRegionId\x12<\n" + + "\x19companyRegistrationNumber\x18\t \x01(\tR\x19companyRegistrationNumber\x12\"\n" + + "\fsupplierType\x18\n" + + " \x01(\tR\fsupplierType\x12&\n" + + "\x0eapprovalStatus\x18\v \x01(\tR\x0eapprovalStatus\x12,\n" + + "\x11approvalDateStart\x18\f \x01(\tR\x11approvalDateStart\x12(\n" + + "\x0fapprovalDateEnd\x18\r \x01(\tR\x0fapprovalDateEnd\x120\n" + + "\x13lastReviewDateStart\x18\x0e \x01(\tR\x13lastReviewDateStart\x12,\n" + + "\x11lastReviewDateEnd\x18\x0f \x01(\tR\x11lastReviewDateEnd\x12(\n" + + "\x0flegalEntityType\x18\x10 \x01(\tR\x0flegalEntityType\x12H\n" + + "\x1fsanctionsCountryScreeningResult\x18\x11 \x01(\tR\x1fsanctionsCountryScreeningResult\x12\"\n" + + "\fkeyFinancial\x18\x12 \x01(\tR\fkeyFinancial\x12&\n" + + "\x0ecompanyAddress\x18\x13 \x01(\tR\x0ecompanyAddress\x12&\n" + + "\x0eprimaryContact\x18\x14 \x01(\tR\x0eprimaryContact\x120\n" + + "\x13dataOwnerDepartment\x18\x15 \x01(\tR\x13dataOwnerDepartment\x128\n" + + "\x17basicCompanyInformation\x18\x16 \x01(\tR\x17basicCompanyInformation\x12\x16\n" + + "\x06status\x18\x17 \x01(\x04R\x06status\x12 \n" + + "\vupdateStart\x18\x18 \x01(\tR\vupdateStart\x12\x1c\n" + + "\tupdateEnd\x18\x19 \x01(\tR\tupdateEnd\"\x8b\x01\n" + + "\x17GetSupplierListResponse\x12\x14\n" + + "\x05total\x18\x01 \x01(\x04R\x05total\x12*\n" + + "\x04data\x18\x02 \x03(\v2\x16.supplier.SupplierInfoR\x04data\x12\x12\n" + + "\x04page\x18\x03 \x01(\x04R\x04page\x12\x1a\n" + + "\bpageSize\x18\x04 \x01(\x04R\bpageSize\"\xf0\b\n" + + "\fSupplierInfo\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x04R\x02id\x12&\n" + + "\x0eowningEntityId\x18\x02 \x01(\x04R\x0eowningEntityId\x12\x1c\n" + + "\tlegalName\x18\x03 \x01(\tR\tlegalName\x12\x1c\n" + + "\tlocalName\x18\x04 \x01(\tR\tlocalName\x12*\n" + + "\x10abbreviationName\x18\x05 \x01(\tR\x10abbreviationName\x12,\n" + + "\x11countryOrRegionId\x18\x06 \x01(\x04R\x11countryOrRegionId\x12<\n" + + "\x19companyRegistrationNumber\x18\a \x01(\tR\x19companyRegistrationNumber\x12\"\n" + + "\fsupplierType\x18\b \x01(\tR\fsupplierType\x12&\n" + + "\x0eapprovalStatus\x18\t \x01(\tR\x0eapprovalStatus\x12\"\n" + + "\fapprovalDate\x18\n" + + " \x01(\tR\fapprovalDate\x12&\n" + + "\x0elastReviewDate\x18\v \x01(\tR\x0elastReviewDate\x12(\n" + + "\x0flegalEntityType\x18\f \x01(\tR\x0flegalEntityType\x12H\n" + + "\x1fsanctionsCountryScreeningResult\x18\r \x01(\tR\x1fsanctionsCountryScreeningResult\x12\"\n" + + "\fkeyFinancial\x18\x0e \x01(\tR\fkeyFinancial\x12&\n" + + "\x0ecompanyAddress\x18\x0f \x01(\tR\x0ecompanyAddress\x12&\n" + + "\x0eprimaryContact\x18\x10 \x01(\tR\x0eprimaryContact\x120\n" + + "\x13dataOwnerDepartment\x18\x11 \x01(\tR\x13dataOwnerDepartment\x128\n" + + "\x17basicCompanyInformation\x18\x12 \x01(\tR\x17basicCompanyInformation\x12 \n" + + "\vlinkAddress\x18\x13 \x01(\tR\vlinkAddress\x12,\n" + + "\x11supplementaryText\x18\x14 \x01(\tR\x11supplementaryText\x126\n" + + "\vattachments\x18\x15 \x03(\v2\x14.supplier.attachmentR\vattachments\x12\x16\n" + + "\x06status\x18\x16 \x01(\x04R\x06status\x12\x1c\n" + + "\tcreatedAt\x18\x17 \x01(\tR\tcreatedAt\x12\x1c\n" + + "\tupdatedAt\x18\x18 \x01(\tR\tupdatedAt\x12.\n" + + "\x12supplierUniqueCode\x18\x19 \x01(\tR\x12supplierUniqueCode\x12*\n" + + "\x10owningEntityName\x18\x1a \x01(\tR\x10owningEntityName\x120\n" + + "\x13countryOrRegionCode\x18\x1b \x01(\tR\x13countryOrRegionCode\"\xaf\a\n" + + "\x15UpdateSupplierRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x04R\x02id\x12&\n" + + "\x0eowningEntityId\x18\x02 \x01(\x04R\x0eowningEntityId\x12\x1c\n" + + "\tlegalName\x18\x03 \x01(\tR\tlegalName\x12\x1c\n" + + "\tlocalName\x18\x04 \x01(\tR\tlocalName\x12*\n" + + "\x10abbreviationName\x18\x05 \x01(\tR\x10abbreviationName\x12,\n" + + "\x11countryOrRegionId\x18\x06 \x01(\x04R\x11countryOrRegionId\x12<\n" + + "\x19companyRegistrationNumber\x18\a \x01(\tR\x19companyRegistrationNumber\x12\"\n" + + "\fsupplierType\x18\b \x01(\tR\fsupplierType\x12&\n" + + "\x0eapprovalStatus\x18\t \x01(\tR\x0eapprovalStatus\x12\"\n" + + "\fapprovalDate\x18\n" + + " \x01(\tR\fapprovalDate\x12&\n" + + "\x0elastReviewDate\x18\v \x01(\tR\x0elastReviewDate\x12(\n" + + "\x0flegalEntityType\x18\f \x01(\tR\x0flegalEntityType\x12H\n" + + "\x1fsanctionsCountryScreeningResult\x18\r \x01(\tR\x1fsanctionsCountryScreeningResult\x12\"\n" + + "\fkeyFinancial\x18\x0e \x01(\tR\fkeyFinancial\x12&\n" + + "\x0ecompanyAddress\x18\x0f \x01(\tR\x0ecompanyAddress\x12&\n" + + "\x0eprimaryContact\x18\x10 \x01(\tR\x0eprimaryContact\x120\n" + + "\x13dataOwnerDepartment\x18\x11 \x01(\tR\x13dataOwnerDepartment\x128\n" + + "\x17basicCompanyInformation\x18\x12 \x01(\tR\x17basicCompanyInformation\x12 \n" + + "\vlinkAddress\x18\x13 \x01(\tR\vlinkAddress\x12,\n" + + "\x11supplementaryText\x18\x14 \x01(\tR\x11supplementaryText\x126\n" + + "\vattachments\x18\x15 \x03(\v2\x14.supplier.attachmentR\vattachments\x12\x16\n" + + "\x06status\x18\x16 \x01(\x04R\x06status\"\x9f\a\n" + + "\x15CreateSupplierRequest\x12&\n" + + "\x0eowningEntityId\x18\x01 \x01(\x04R\x0eowningEntityId\x12\x1c\n" + + "\tlegalName\x18\x02 \x01(\tR\tlegalName\x12\x1c\n" + + "\tlocalName\x18\x03 \x01(\tR\tlocalName\x12*\n" + + "\x10abbreviationName\x18\x04 \x01(\tR\x10abbreviationName\x12,\n" + + "\x11countryOrRegionId\x18\x05 \x01(\x04R\x11countryOrRegionId\x12<\n" + + "\x19companyRegistrationNumber\x18\x06 \x01(\tR\x19companyRegistrationNumber\x12\"\n" + + "\fsupplierType\x18\a \x01(\tR\fsupplierType\x12&\n" + + "\x0eapprovalStatus\x18\b \x01(\tR\x0eapprovalStatus\x12\"\n" + + "\fapprovalDate\x18\t \x01(\tR\fapprovalDate\x12&\n" + + "\x0elastReviewDate\x18\n" + + " \x01(\tR\x0elastReviewDate\x12(\n" + + "\x0flegalEntityType\x18\v \x01(\tR\x0flegalEntityType\x12H\n" + + "\x1fsanctionsCountryScreeningResult\x18\f \x01(\tR\x1fsanctionsCountryScreeningResult\x12\"\n" + + "\fkeyFinancial\x18\r \x01(\tR\fkeyFinancial\x12&\n" + + "\x0ecompanyAddress\x18\x0e \x01(\tR\x0ecompanyAddress\x12&\n" + + "\x0eprimaryContact\x18\x0f \x01(\tR\x0eprimaryContact\x120\n" + + "\x13dataOwnerDepartment\x18\x10 \x01(\tR\x13dataOwnerDepartment\x128\n" + + "\x17basicCompanyInformation\x18\x11 \x01(\tR\x17basicCompanyInformation\x12 \n" + + "\vlinkAddress\x18\x12 \x01(\tR\vlinkAddress\x12,\n" + + "\x11supplementaryText\x18\x13 \x01(\tR\x11supplementaryText\x126\n" + + "\vattachments\x18\x14 \x03(\v2\x14.supplier.attachmentR\vattachments\x12\x16\n" + + "\x06status\x18\x15 \x01(\x04R\x06status\"F\n" + + "\n" + + "attachment\x12\x10\n" + + "\x03url\x18\x01 \x01(\tR\x03url\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\"L\n" + + "\x16CreateSupplierResponse\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x04R\x02id\x12\"\n" + + "\fsupplierCode\x18\x02 \x01(\tR\fsupplierCode\"$\n" + + "\x12GetSupplierRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x04R\x02id2\xbb\b\n" + + "\bSupplier\x12N\n" + + "\vGetSupplier\x12\x1c.supplier.GetSupplierRequest\x1a\x1f.supplier.UpdateSupplierRequest\"\x00\x12U\n" + + "\x0eCreateSupplier\x12\x1f.supplier.CreateSupplierRequest\x1a .supplier.CreateSupplierResponse\"\x00\x12U\n" + + "\x0eUpdateSupplier\x12\x1f.supplier.UpdateSupplierRequest\x1a .supplier.CreateSupplierResponse\"\x00\x12X\n" + + "\x0fGetSupplierList\x12 .supplier.GetSupplierListRequest\x1a!.supplier.GetSupplierListResponse\"\x00\x12s\n" + + "\x18CreateOrganizeDictionary\x12).supplier.CreateOrganizeDictionaryRequest\x1a*.supplier.CreateOrganizeDictionaryResponse\"\x00\x12v\n" + + "\x19GetOrganizeDictionaryList\x12*.supplier.GetOrganizeDictionaryListRequest\x1a+.supplier.GetOrganizeDictionaryListResponse\"\x00\x12f\n" + + "\x19GetOrganizeDictionaryInfo\x12).supplier.CreateOrganizeDictionaryRequest\x1a\x1c.supplier.OrganizeDictionary\"\x00\x12g\n" + + "\x14GetCountryRegionList\x12%.supplier.GetCountryRegionListRequest\x1a&.supplier.GetCountryRegionListResponse\"\x00\x12X\n" + + "\x14GetCountryRegionInfo\x12%.supplier.GetCountryRegionInfoRequest\x1a\x17.supplier.CountryRegion\"\x00\x12a\n" + + "\x12CreateImportRecord\x12#.supplier.CreateImportRecordRequest\x1a$.supplier.CreateImportRecordResponse\"\x00\x12\\\n" + + "\x13GetImportRecordInfo\x12 .supplier.GetImportRecordRequest\x1a!.supplier.GetImportRecordResponse\"\x00B\rZ\v./;supplierb\x06proto3" + +var ( + file_api_supplier_supplier_proto_rawDescOnce sync.Once + file_api_supplier_supplier_proto_rawDescData []byte +) + +func file_api_supplier_supplier_proto_rawDescGZIP() []byte { + file_api_supplier_supplier_proto_rawDescOnce.Do(func() { + file_api_supplier_supplier_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_supplier_supplier_proto_rawDesc), len(file_api_supplier_supplier_proto_rawDesc))) + }) + return file_api_supplier_supplier_proto_rawDescData +} + +var file_api_supplier_supplier_proto_msgTypes = make([]protoimpl.MessageInfo, 21) +var file_api_supplier_supplier_proto_goTypes = []any{ + (*GetImportRecordRequest)(nil), // 0: supplier.GetImportRecordRequest + (*GetImportRecordResponse)(nil), // 1: supplier.GetImportRecordResponse + (*CreateImportRecordRequest)(nil), // 2: supplier.CreateImportRecordRequest + (*CreateImportRecordResponse)(nil), // 3: supplier.CreateImportRecordResponse + (*GetCountryRegionListResponse)(nil), // 4: supplier.GetCountryRegionListResponse + (*CountryRegion)(nil), // 5: supplier.CountryRegion + (*GetCountryRegionInfoRequest)(nil), // 6: supplier.GetCountryRegionInfoRequest + (*GetCountryRegionListRequest)(nil), // 7: supplier.GetCountryRegionListRequest + (*OrganizeDictionary)(nil), // 8: supplier.OrganizeDictionary + (*GetOrganizeDictionaryListResponse)(nil), // 9: supplier.GetOrganizeDictionaryListResponse + (*CreateOrganizeDictionaryRequest)(nil), // 10: supplier.CreateOrganizeDictionaryRequest + (*CreateOrganizeDictionaryResponse)(nil), // 11: supplier.CreateOrganizeDictionaryResponse + (*GetOrganizeDictionaryListRequest)(nil), // 12: supplier.GetOrganizeDictionaryListRequest + (*GetSupplierListRequest)(nil), // 13: supplier.GetSupplierListRequest + (*GetSupplierListResponse)(nil), // 14: supplier.GetSupplierListResponse + (*SupplierInfo)(nil), // 15: supplier.SupplierInfo + (*UpdateSupplierRequest)(nil), // 16: supplier.UpdateSupplierRequest + (*CreateSupplierRequest)(nil), // 17: supplier.CreateSupplierRequest + (*Attachment)(nil), // 18: supplier.attachment + (*CreateSupplierResponse)(nil), // 19: supplier.CreateSupplierResponse + (*GetSupplierRequest)(nil), // 20: supplier.GetSupplierRequest +} +var file_api_supplier_supplier_proto_depIdxs = []int32{ + 5, // 0: supplier.GetCountryRegionListResponse.data:type_name -> supplier.CountryRegion + 8, // 1: supplier.GetOrganizeDictionaryListResponse.data:type_name -> supplier.OrganizeDictionary + 15, // 2: supplier.GetSupplierListResponse.data:type_name -> supplier.SupplierInfo + 18, // 3: supplier.SupplierInfo.attachments:type_name -> supplier.attachment + 18, // 4: supplier.UpdateSupplierRequest.attachments:type_name -> supplier.attachment + 18, // 5: supplier.CreateSupplierRequest.attachments:type_name -> supplier.attachment + 20, // 6: supplier.Supplier.GetSupplier:input_type -> supplier.GetSupplierRequest + 17, // 7: supplier.Supplier.CreateSupplier:input_type -> supplier.CreateSupplierRequest + 16, // 8: supplier.Supplier.UpdateSupplier:input_type -> supplier.UpdateSupplierRequest + 13, // 9: supplier.Supplier.GetSupplierList:input_type -> supplier.GetSupplierListRequest + 10, // 10: supplier.Supplier.CreateOrganizeDictionary:input_type -> supplier.CreateOrganizeDictionaryRequest + 12, // 11: supplier.Supplier.GetOrganizeDictionaryList:input_type -> supplier.GetOrganizeDictionaryListRequest + 10, // 12: supplier.Supplier.GetOrganizeDictionaryInfo:input_type -> supplier.CreateOrganizeDictionaryRequest + 7, // 13: supplier.Supplier.GetCountryRegionList:input_type -> supplier.GetCountryRegionListRequest + 6, // 14: supplier.Supplier.GetCountryRegionInfo:input_type -> supplier.GetCountryRegionInfoRequest + 2, // 15: supplier.Supplier.CreateImportRecord:input_type -> supplier.CreateImportRecordRequest + 0, // 16: supplier.Supplier.GetImportRecordInfo:input_type -> supplier.GetImportRecordRequest + 16, // 17: supplier.Supplier.GetSupplier:output_type -> supplier.UpdateSupplierRequest + 19, // 18: supplier.Supplier.CreateSupplier:output_type -> supplier.CreateSupplierResponse + 19, // 19: supplier.Supplier.UpdateSupplier:output_type -> supplier.CreateSupplierResponse + 14, // 20: supplier.Supplier.GetSupplierList:output_type -> supplier.GetSupplierListResponse + 11, // 21: supplier.Supplier.CreateOrganizeDictionary:output_type -> supplier.CreateOrganizeDictionaryResponse + 9, // 22: supplier.Supplier.GetOrganizeDictionaryList:output_type -> supplier.GetOrganizeDictionaryListResponse + 8, // 23: supplier.Supplier.GetOrganizeDictionaryInfo:output_type -> supplier.OrganizeDictionary + 4, // 24: supplier.Supplier.GetCountryRegionList:output_type -> supplier.GetCountryRegionListResponse + 5, // 25: supplier.Supplier.GetCountryRegionInfo:output_type -> supplier.CountryRegion + 3, // 26: supplier.Supplier.CreateImportRecord:output_type -> supplier.CreateImportRecordResponse + 1, // 27: supplier.Supplier.GetImportRecordInfo:output_type -> supplier.GetImportRecordResponse + 17, // [17:28] is the sub-list for method output_type + 6, // [6:17] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_api_supplier_supplier_proto_init() } +func file_api_supplier_supplier_proto_init() { + if File_api_supplier_supplier_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_supplier_supplier_proto_rawDesc), len(file_api_supplier_supplier_proto_rawDesc)), + NumEnums: 0, + NumMessages: 21, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_api_supplier_supplier_proto_goTypes, + DependencyIndexes: file_api_supplier_supplier_proto_depIdxs, + MessageInfos: file_api_supplier_supplier_proto_msgTypes, + }.Build() + File_api_supplier_supplier_proto = out.File + file_api_supplier_supplier_proto_goTypes = nil + file_api_supplier_supplier_proto_depIdxs = nil +} diff --git a/api/supplier/supplier.proto b/api/supplier/supplier.proto new file mode 100644 index 0000000..4b40851 --- /dev/null +++ b/api/supplier/supplier.proto @@ -0,0 +1,208 @@ +syntax = "proto3"; +package supplier; + +option go_package = "./;supplier"; + +// FiEE供应商微服务 +service Supplier { + //供应商curd + rpc GetSupplier(GetSupplierRequest) returns (UpdateSupplierRequest) {} + rpc CreateSupplier(CreateSupplierRequest) returns (CreateSupplierResponse) {} + rpc UpdateSupplier(UpdateSupplierRequest) returns (CreateSupplierResponse) {} + rpc GetSupplierList(GetSupplierListRequest) returns (GetSupplierListResponse) {} + //组织字典 + rpc CreateOrganizeDictionary(CreateOrganizeDictionaryRequest) returns (CreateOrganizeDictionaryResponse) {} + rpc GetOrganizeDictionaryList(GetOrganizeDictionaryListRequest) returns (GetOrganizeDictionaryListResponse) {} + rpc GetOrganizeDictionaryInfo(CreateOrganizeDictionaryRequest) returns (OrganizeDictionary) {} + //国家组织 + rpc GetCountryRegionList(GetCountryRegionListRequest) returns (GetCountryRegionListResponse) {} + rpc GetCountryRegionInfo(GetCountryRegionInfoRequest) returns (CountryRegion) {} + //导入 + rpc CreateImportRecord(CreateImportRecordRequest) returns (CreateImportRecordResponse) {} + rpc GetImportRecordInfo(GetImportRecordRequest) returns (GetImportRecordResponse) {} +} +message GetImportRecordRequest{ + string uuid = 1; +} +message GetImportRecordResponse{ + uint64 successNum = 1; + uint64 failNum = 2; + string deriveUrl = 3; +} +message CreateImportRecordRequest{ + repeated string supplierCodes = 1; + uint64 status = 2; + uint64 userId = 3; + string toLeadUrl = 4; + string deriveUrl = 5; + string uuid = 6; + uint64 successNum = 7; + uint64 failNum = 8; +} +message CreateImportRecordResponse{ + uint64 id = 1; +} +message GetCountryRegionListResponse{ + repeated CountryRegion data = 1; + uint64 page = 2; + uint64 pageSize = 3; + uint64 total = 4; +} +message CountryRegion{ + uint64 id = 1; + string nameEN = 2; + string nameCN = 3; + string code = 4; +} +message GetCountryRegionInfoRequest{ + string zhAndCode = 1; +} +message GetCountryRegionListRequest{ + uint64 page = 1; + uint64 pageSize = 2; + string nameEN = 3; + string nameCN = 4; + string code = 5; +} +message OrganizeDictionary{ + uint64 id = 1; + string name = 2; +} +message GetOrganizeDictionaryListResponse{ + repeated OrganizeDictionary data = 1; + uint64 page = 2; + uint64 pageSize = 3; + uint64 total = 4; +} +message CreateOrganizeDictionaryRequest{ + string name = 1; +} +message CreateOrganizeDictionaryResponse{ + uint64 id = 1; +} +message GetOrganizeDictionaryListRequest{ + uint64 page = 1; + uint64 pageSize = 2; + string name = 3; +} +message GetSupplierListRequest{ + uint64 page = 1; + uint64 pageSize = 2; + uint64 owningEntityId = 3; + string supplierUniqueCode = 4; + string legalName =5; + string localName = 6; + string abbreviationName =7; + uint64 countryOrRegionId = 8; + string companyRegistrationNumber =9; + string supplierType =10; + string approvalStatus = 11; + string approvalDateStart = 12; + string approvalDateEnd = 13; + string lastReviewDateStart = 14; + string lastReviewDateEnd = 15; + string legalEntityType = 16; + string sanctionsCountryScreeningResult = 17; + string keyFinancial = 18; + string companyAddress = 19; + string primaryContact = 20; + string dataOwnerDepartment = 21; + string basicCompanyInformation = 22; + uint64 status = 23; + string updateStart = 24; + string updateEnd = 25; +} +message GetSupplierListResponse{ + uint64 total = 1; + repeated SupplierInfo data = 2; + uint64 page = 3; + uint64 pageSize = 4; +} +message SupplierInfo{ + uint64 id = 1; + uint64 owningEntityId = 2; + string legalName = 3; + string localName = 4; + string abbreviationName = 5; + uint64 countryOrRegionId = 6; + string companyRegistrationNumber = 7; + string supplierType = 8; + string approvalStatus = 9; + string approvalDate = 10; + string lastReviewDate = 11; + string legalEntityType = 12; + string sanctionsCountryScreeningResult = 13; + string keyFinancial = 14; + string companyAddress = 15; + string primaryContact = 16; + string dataOwnerDepartment = 17; + string basicCompanyInformation = 18; + string linkAddress = 19; + string supplementaryText = 20; + repeated attachment attachments = 21; + uint64 status = 22; + string createdAt = 23; + string updatedAt = 24; + string supplierUniqueCode = 25; + string owningEntityName = 26; + string countryOrRegionCode = 27; +} +message UpdateSupplierRequest{ + uint64 id = 1; + uint64 owningEntityId = 2; + string legalName = 3; + string localName = 4; + string abbreviationName = 5; + uint64 countryOrRegionId = 6; + string companyRegistrationNumber = 7; + string supplierType = 8; + string approvalStatus = 9; + string approvalDate = 10; + string lastReviewDate = 11; + string legalEntityType = 12; + string sanctionsCountryScreeningResult = 13; + string keyFinancial = 14; + string companyAddress = 15; + string primaryContact = 16; + string dataOwnerDepartment = 17; + string basicCompanyInformation = 18; + string linkAddress = 19; + string supplementaryText = 20; + repeated attachment attachments = 21; + uint64 status = 22; +} +message CreateSupplierRequest{ + uint64 owningEntityId = 1; + string legalName = 2; + string localName = 3; + string abbreviationName = 4; + uint64 countryOrRegionId = 5; + string companyRegistrationNumber = 6; + string supplierType = 7; + string approvalStatus = 8; + string approvalDate = 9; + string lastReviewDate = 10; + string legalEntityType = 11; + string sanctionsCountryScreeningResult = 12; + string keyFinancial = 13; + string companyAddress = 14; + string primaryContact = 15; + string dataOwnerDepartment = 16; + string basicCompanyInformation = 17; + string linkAddress = 18; + string supplementaryText = 19; + repeated attachment attachments = 20; + uint64 status = 21; +} +message attachment{ + string url = 1; + string type = 2; + string name = 3; +} +message CreateSupplierResponse{ + uint64 id = 1; + string supplierCode = 2; +} +message GetSupplierRequest{ + uint64 id = 1; +} diff --git a/api/supplier/supplier.validator.pb.go b/api/supplier/supplier.validator.pb.go new file mode 100644 index 0000000..12a318a --- /dev/null +++ b/api/supplier/supplier.validator.pb.go @@ -0,0 +1,122 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: api/supplier/supplier.proto + +package supplier + +import ( + fmt "fmt" + math "math" + proto "github.com/golang/protobuf/proto" + github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func (this *GetImportRecordRequest) Validate() error { + return nil +} +func (this *GetImportRecordResponse) Validate() error { + return nil +} +func (this *CreateImportRecordRequest) Validate() error { + return nil +} +func (this *CreateImportRecordResponse) Validate() error { + return nil +} +func (this *GetCountryRegionListResponse) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *CountryRegion) Validate() error { + return nil +} +func (this *GetCountryRegionInfoRequest) Validate() error { + return nil +} +func (this *GetCountryRegionListRequest) Validate() error { + return nil +} +func (this *OrganizeDictionary) Validate() error { + return nil +} +func (this *GetOrganizeDictionaryListResponse) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *CreateOrganizeDictionaryRequest) Validate() error { + return nil +} +func (this *CreateOrganizeDictionaryResponse) Validate() error { + return nil +} +func (this *GetOrganizeDictionaryListRequest) Validate() error { + return nil +} +func (this *GetSupplierListRequest) Validate() error { + return nil +} +func (this *GetSupplierListResponse) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *SupplierInfo) Validate() error { + for _, item := range this.Attachments { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Attachments", err) + } + } + } + return nil +} +func (this *UpdateSupplierRequest) Validate() error { + for _, item := range this.Attachments { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Attachments", err) + } + } + } + return nil +} +func (this *CreateSupplierRequest) Validate() error { + for _, item := range this.Attachments { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Attachments", err) + } + } + } + return nil +} +func (this *Attachment) Validate() error { + return nil +} +func (this *CreateSupplierResponse) Validate() error { + return nil +} +func (this *GetSupplierRequest) Validate() error { + return nil +} diff --git a/api/supplier/supplier_triple.pb.go b/api/supplier/supplier_triple.pb.go new file mode 100644 index 0000000..c4aa33a --- /dev/null +++ b/api/supplier/supplier_triple.pb.go @@ -0,0 +1,605 @@ +// Code generated by protoc-gen-go-triple. DO NOT EDIT. +// versions: +// - protoc-gen-go-triple v1.0.5 +// - protoc v6.32.0 +// source: api/supplier/supplier.proto + +package supplier + +import ( + context "context" + protocol "dubbo.apache.org/dubbo-go/v3/protocol" + dubbo3 "dubbo.apache.org/dubbo-go/v3/protocol/dubbo3" + invocation "dubbo.apache.org/dubbo-go/v3/protocol/invocation" + grpc_go "github.com/dubbogo/grpc-go" + codes "github.com/dubbogo/grpc-go/codes" + metadata "github.com/dubbogo/grpc-go/metadata" + status "github.com/dubbogo/grpc-go/status" + common "github.com/dubbogo/triple/pkg/common" + constant "github.com/dubbogo/triple/pkg/common/constant" + triple "github.com/dubbogo/triple/pkg/triple" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc_go.SupportPackageIsVersion7 + +// SupplierClient is the client API for Supplier service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type SupplierClient interface { + // 供应商curd + GetSupplier(ctx context.Context, in *GetSupplierRequest, opts ...grpc_go.CallOption) (*UpdateSupplierRequest, common.ErrorWithAttachment) + CreateSupplier(ctx context.Context, in *CreateSupplierRequest, opts ...grpc_go.CallOption) (*CreateSupplierResponse, common.ErrorWithAttachment) + UpdateSupplier(ctx context.Context, in *UpdateSupplierRequest, opts ...grpc_go.CallOption) (*CreateSupplierResponse, common.ErrorWithAttachment) + GetSupplierList(ctx context.Context, in *GetSupplierListRequest, opts ...grpc_go.CallOption) (*GetSupplierListResponse, common.ErrorWithAttachment) + // 组织字典 + CreateOrganizeDictionary(ctx context.Context, in *CreateOrganizeDictionaryRequest, opts ...grpc_go.CallOption) (*CreateOrganizeDictionaryResponse, common.ErrorWithAttachment) + GetOrganizeDictionaryList(ctx context.Context, in *GetOrganizeDictionaryListRequest, opts ...grpc_go.CallOption) (*GetOrganizeDictionaryListResponse, common.ErrorWithAttachment) + GetOrganizeDictionaryInfo(ctx context.Context, in *CreateOrganizeDictionaryRequest, opts ...grpc_go.CallOption) (*OrganizeDictionary, common.ErrorWithAttachment) + // 国家组织 + GetCountryRegionList(ctx context.Context, in *GetCountryRegionListRequest, opts ...grpc_go.CallOption) (*GetCountryRegionListResponse, common.ErrorWithAttachment) + GetCountryRegionInfo(ctx context.Context, in *GetCountryRegionInfoRequest, opts ...grpc_go.CallOption) (*CountryRegion, common.ErrorWithAttachment) + // 导入 + CreateImportRecord(ctx context.Context, in *CreateImportRecordRequest, opts ...grpc_go.CallOption) (*CreateImportRecordResponse, common.ErrorWithAttachment) + GetImportRecordInfo(ctx context.Context, in *GetImportRecordRequest, opts ...grpc_go.CallOption) (*GetImportRecordResponse, common.ErrorWithAttachment) +} + +type supplierClient struct { + cc *triple.TripleConn +} + +type SupplierClientImpl struct { + GetSupplier func(ctx context.Context, in *GetSupplierRequest) (*UpdateSupplierRequest, error) + CreateSupplier func(ctx context.Context, in *CreateSupplierRequest) (*CreateSupplierResponse, error) + UpdateSupplier func(ctx context.Context, in *UpdateSupplierRequest) (*CreateSupplierResponse, error) + GetSupplierList func(ctx context.Context, in *GetSupplierListRequest) (*GetSupplierListResponse, error) + CreateOrganizeDictionary func(ctx context.Context, in *CreateOrganizeDictionaryRequest) (*CreateOrganizeDictionaryResponse, error) + GetOrganizeDictionaryList func(ctx context.Context, in *GetOrganizeDictionaryListRequest) (*GetOrganizeDictionaryListResponse, error) + GetOrganizeDictionaryInfo func(ctx context.Context, in *CreateOrganizeDictionaryRequest) (*OrganizeDictionary, error) + GetCountryRegionList func(ctx context.Context, in *GetCountryRegionListRequest) (*GetCountryRegionListResponse, error) + GetCountryRegionInfo func(ctx context.Context, in *GetCountryRegionInfoRequest) (*CountryRegion, error) + CreateImportRecord func(ctx context.Context, in *CreateImportRecordRequest) (*CreateImportRecordResponse, error) + GetImportRecordInfo func(ctx context.Context, in *GetImportRecordRequest) (*GetImportRecordResponse, error) +} + +func (c *SupplierClientImpl) GetDubboStub(cc *triple.TripleConn) SupplierClient { + return NewSupplierClient(cc) +} + +func (c *SupplierClientImpl) XXX_InterfaceName() string { + return "supplier.Supplier" +} + +func NewSupplierClient(cc *triple.TripleConn) SupplierClient { + return &supplierClient{cc} +} + +func (c *supplierClient) GetSupplier(ctx context.Context, in *GetSupplierRequest, opts ...grpc_go.CallOption) (*UpdateSupplierRequest, common.ErrorWithAttachment) { + out := new(UpdateSupplierRequest) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetSupplier", in, out) +} + +func (c *supplierClient) CreateSupplier(ctx context.Context, in *CreateSupplierRequest, opts ...grpc_go.CallOption) (*CreateSupplierResponse, common.ErrorWithAttachment) { + out := new(CreateSupplierResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateSupplier", in, out) +} + +func (c *supplierClient) UpdateSupplier(ctx context.Context, in *UpdateSupplierRequest, opts ...grpc_go.CallOption) (*CreateSupplierResponse, common.ErrorWithAttachment) { + out := new(CreateSupplierResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateSupplier", in, out) +} + +func (c *supplierClient) GetSupplierList(ctx context.Context, in *GetSupplierListRequest, opts ...grpc_go.CallOption) (*GetSupplierListResponse, common.ErrorWithAttachment) { + out := new(GetSupplierListResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetSupplierList", in, out) +} + +func (c *supplierClient) CreateOrganizeDictionary(ctx context.Context, in *CreateOrganizeDictionaryRequest, opts ...grpc_go.CallOption) (*CreateOrganizeDictionaryResponse, common.ErrorWithAttachment) { + out := new(CreateOrganizeDictionaryResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateOrganizeDictionary", in, out) +} + +func (c *supplierClient) GetOrganizeDictionaryList(ctx context.Context, in *GetOrganizeDictionaryListRequest, opts ...grpc_go.CallOption) (*GetOrganizeDictionaryListResponse, common.ErrorWithAttachment) { + out := new(GetOrganizeDictionaryListResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetOrganizeDictionaryList", in, out) +} + +func (c *supplierClient) GetOrganizeDictionaryInfo(ctx context.Context, in *CreateOrganizeDictionaryRequest, opts ...grpc_go.CallOption) (*OrganizeDictionary, common.ErrorWithAttachment) { + out := new(OrganizeDictionary) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetOrganizeDictionaryInfo", in, out) +} + +func (c *supplierClient) GetCountryRegionList(ctx context.Context, in *GetCountryRegionListRequest, opts ...grpc_go.CallOption) (*GetCountryRegionListResponse, common.ErrorWithAttachment) { + out := new(GetCountryRegionListResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetCountryRegionList", in, out) +} + +func (c *supplierClient) GetCountryRegionInfo(ctx context.Context, in *GetCountryRegionInfoRequest, opts ...grpc_go.CallOption) (*CountryRegion, common.ErrorWithAttachment) { + out := new(CountryRegion) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetCountryRegionInfo", in, out) +} + +func (c *supplierClient) CreateImportRecord(ctx context.Context, in *CreateImportRecordRequest, opts ...grpc_go.CallOption) (*CreateImportRecordResponse, common.ErrorWithAttachment) { + out := new(CreateImportRecordResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateImportRecord", in, out) +} + +func (c *supplierClient) GetImportRecordInfo(ctx context.Context, in *GetImportRecordRequest, opts ...grpc_go.CallOption) (*GetImportRecordResponse, common.ErrorWithAttachment) { + out := new(GetImportRecordResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetImportRecordInfo", in, out) +} + +// SupplierServer is the server API for Supplier service. +// All implementations must embed UnimplementedSupplierServer +// for forward compatibility +type SupplierServer interface { + // 供应商curd + GetSupplier(context.Context, *GetSupplierRequest) (*UpdateSupplierRequest, error) + CreateSupplier(context.Context, *CreateSupplierRequest) (*CreateSupplierResponse, error) + UpdateSupplier(context.Context, *UpdateSupplierRequest) (*CreateSupplierResponse, error) + GetSupplierList(context.Context, *GetSupplierListRequest) (*GetSupplierListResponse, error) + // 组织字典 + CreateOrganizeDictionary(context.Context, *CreateOrganizeDictionaryRequest) (*CreateOrganizeDictionaryResponse, error) + GetOrganizeDictionaryList(context.Context, *GetOrganizeDictionaryListRequest) (*GetOrganizeDictionaryListResponse, error) + GetOrganizeDictionaryInfo(context.Context, *CreateOrganizeDictionaryRequest) (*OrganizeDictionary, error) + // 国家组织 + GetCountryRegionList(context.Context, *GetCountryRegionListRequest) (*GetCountryRegionListResponse, error) + GetCountryRegionInfo(context.Context, *GetCountryRegionInfoRequest) (*CountryRegion, error) + // 导入 + CreateImportRecord(context.Context, *CreateImportRecordRequest) (*CreateImportRecordResponse, error) + GetImportRecordInfo(context.Context, *GetImportRecordRequest) (*GetImportRecordResponse, error) + mustEmbedUnimplementedSupplierServer() +} + +// UnimplementedSupplierServer must be embedded to have forward compatible implementations. +type UnimplementedSupplierServer struct { + proxyImpl protocol.Invoker +} + +func (UnimplementedSupplierServer) GetSupplier(context.Context, *GetSupplierRequest) (*UpdateSupplierRequest, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSupplier not implemented") +} +func (UnimplementedSupplierServer) CreateSupplier(context.Context, *CreateSupplierRequest) (*CreateSupplierResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSupplier not implemented") +} +func (UnimplementedSupplierServer) UpdateSupplier(context.Context, *UpdateSupplierRequest) (*CreateSupplierResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSupplier not implemented") +} +func (UnimplementedSupplierServer) GetSupplierList(context.Context, *GetSupplierListRequest) (*GetSupplierListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSupplierList not implemented") +} +func (UnimplementedSupplierServer) CreateOrganizeDictionary(context.Context, *CreateOrganizeDictionaryRequest) (*CreateOrganizeDictionaryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateOrganizeDictionary not implemented") +} +func (UnimplementedSupplierServer) GetOrganizeDictionaryList(context.Context, *GetOrganizeDictionaryListRequest) (*GetOrganizeDictionaryListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetOrganizeDictionaryList not implemented") +} +func (UnimplementedSupplierServer) GetOrganizeDictionaryInfo(context.Context, *CreateOrganizeDictionaryRequest) (*OrganizeDictionary, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetOrganizeDictionaryInfo not implemented") +} +func (UnimplementedSupplierServer) GetCountryRegionList(context.Context, *GetCountryRegionListRequest) (*GetCountryRegionListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCountryRegionList not implemented") +} +func (UnimplementedSupplierServer) GetCountryRegionInfo(context.Context, *GetCountryRegionInfoRequest) (*CountryRegion, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCountryRegionInfo not implemented") +} +func (UnimplementedSupplierServer) CreateImportRecord(context.Context, *CreateImportRecordRequest) (*CreateImportRecordResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateImportRecord not implemented") +} +func (UnimplementedSupplierServer) GetImportRecordInfo(context.Context, *GetImportRecordRequest) (*GetImportRecordResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetImportRecordInfo not implemented") +} +func (s *UnimplementedSupplierServer) XXX_SetProxyImpl(impl protocol.Invoker) { + s.proxyImpl = impl +} + +func (s *UnimplementedSupplierServer) XXX_GetProxyImpl() protocol.Invoker { + return s.proxyImpl +} + +func (s *UnimplementedSupplierServer) XXX_ServiceDesc() *grpc_go.ServiceDesc { + return &Supplier_ServiceDesc +} +func (s *UnimplementedSupplierServer) XXX_InterfaceName() string { + return "supplier.Supplier" +} + +func (UnimplementedSupplierServer) mustEmbedUnimplementedSupplierServer() {} + +// UnsafeSupplierServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to SupplierServer will +// result in compilation errors. +type UnsafeSupplierServer interface { + mustEmbedUnimplementedSupplierServer() +} + +func RegisterSupplierServer(s grpc_go.ServiceRegistrar, srv SupplierServer) { + s.RegisterService(&Supplier_ServiceDesc, srv) +} + +func _Supplier_GetSupplier_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSupplierRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetSupplier", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Supplier_CreateSupplier_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSupplierRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CreateSupplier", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Supplier_UpdateSupplier_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateSupplierRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateSupplier", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Supplier_GetSupplierList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSupplierListRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetSupplierList", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Supplier_CreateOrganizeDictionary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateOrganizeDictionaryRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CreateOrganizeDictionary", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Supplier_GetOrganizeDictionaryList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetOrganizeDictionaryListRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetOrganizeDictionaryList", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Supplier_GetOrganizeDictionaryInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateOrganizeDictionaryRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetOrganizeDictionaryInfo", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Supplier_GetCountryRegionList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCountryRegionListRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetCountryRegionList", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Supplier_GetCountryRegionInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCountryRegionInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetCountryRegionInfo", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Supplier_CreateImportRecord_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateImportRecordRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CreateImportRecord", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Supplier_GetImportRecordInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetImportRecordRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetImportRecordInfo", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +// Supplier_ServiceDesc is the grpc_go.ServiceDesc for Supplier service. +// It's only intended for direct use with grpc_go.RegisterService, +// and not to be introspected or modified (even as a copy) +var Supplier_ServiceDesc = grpc_go.ServiceDesc{ + ServiceName: "supplier.Supplier", + HandlerType: (*SupplierServer)(nil), + Methods: []grpc_go.MethodDesc{ + { + MethodName: "GetSupplier", + Handler: _Supplier_GetSupplier_Handler, + }, + { + MethodName: "CreateSupplier", + Handler: _Supplier_CreateSupplier_Handler, + }, + { + MethodName: "UpdateSupplier", + Handler: _Supplier_UpdateSupplier_Handler, + }, + { + MethodName: "GetSupplierList", + Handler: _Supplier_GetSupplierList_Handler, + }, + { + MethodName: "CreateOrganizeDictionary", + Handler: _Supplier_CreateOrganizeDictionary_Handler, + }, + { + MethodName: "GetOrganizeDictionaryList", + Handler: _Supplier_GetOrganizeDictionaryList_Handler, + }, + { + MethodName: "GetOrganizeDictionaryInfo", + Handler: _Supplier_GetOrganizeDictionaryInfo_Handler, + }, + { + MethodName: "GetCountryRegionList", + Handler: _Supplier_GetCountryRegionList_Handler, + }, + { + MethodName: "GetCountryRegionInfo", + Handler: _Supplier_GetCountryRegionInfo_Handler, + }, + { + MethodName: "CreateImportRecord", + Handler: _Supplier_CreateImportRecord_Handler, + }, + { + MethodName: "GetImportRecordInfo", + Handler: _Supplier_GetImportRecordInfo_Handler, + }, + }, + Streams: []grpc_go.StreamDesc{}, + Metadata: "api/supplier/supplier.proto", +} diff --git a/conf/dubbogo.yaml b/conf/dubbogo.yaml index 23a50bc..6bdf3c7 100644 --- a/conf/dubbogo.yaml +++ b/conf/dubbogo.yaml @@ -54,6 +54,9 @@ dubbo: FieeCronClientImpl: protocol: tri interface: com.fontree.microservices.fiee.cron + SupplierClientImpl: + protocol: tri + interface: com.fontree.microservices.common.supplier logger: zap-config: level: error # 日志级别 diff --git a/data/图文导入模板.xlsx b/data/图文导入模板.xlsx index 7fda799..ba35759 100644 Binary files a/data/图文导入模板.xlsx and b/data/图文导入模板.xlsx differ diff --git a/data/自媒体账号导入模板.xlsx b/data/自媒体账号导入模板.xlsx index c081964..e96da0f 100644 Binary files a/data/自媒体账号导入模板.xlsx and b/data/自媒体账号导入模板.xlsx differ diff --git a/docs/dev/dubbogo.yaml b/docs/dev/dubbogo.yaml index f8acc62..5a14b4d 100644 --- a/docs/dev/dubbogo.yaml +++ b/docs/dev/dubbogo.yaml @@ -61,6 +61,9 @@ dubbo: methods: - name: SecurityScan timeout: 120000 + SupplierClientImpl: + protocol: tri + interface: com.fontree.microservices.common.supplier logger: zap-config: level: error # 日志级别 diff --git a/docs/prod/dubbogo.yaml b/docs/prod/dubbogo.yaml index 5f3284a..0e0f25f 100644 --- a/docs/prod/dubbogo.yaml +++ b/docs/prod/dubbogo.yaml @@ -63,6 +63,9 @@ dubbo: methods: - name: SecurityScan timeout: 120000 + SupplierClientImpl: + protocol: tri + interface: com.fontree.microservices.common.supplier logger: zap-config: level: error # 日志级别 diff --git a/docs/test/dubbogo.yaml b/docs/test/dubbogo.yaml index 617d9a5..769e9ad 100644 --- a/docs/test/dubbogo.yaml +++ b/docs/test/dubbogo.yaml @@ -61,6 +61,9 @@ dubbo: methods: - name: SecurityScan timeout: 120000 + SupplierClientImpl: + protocol: tri + interface: com.fontree.microservices.common.supplier logger: zap-config: level: error # 日志级别 diff --git a/pkg/cron/task.go b/pkg/cron/task.go index 3f47571..9c5d09f 100644 --- a/pkg/cron/task.go +++ b/pkg/cron/task.go @@ -11,6 +11,7 @@ import ( bundleModel "fonchain-fiee/pkg/model/bundle" modelCast "fonchain-fiee/pkg/model/cast" "fonchain-fiee/pkg/service" + "fonchain-fiee/pkg/service/bundle/common" serverCast "fonchain-fiee/pkg/service/cast" "log" "math/rand" @@ -31,6 +32,7 @@ func InitTasks() error { err = cm.AddTask("artistAutoConfirmAnalysis", "0 */1 * * * *", ArtistAutoConfirmAnalysisTask) err = cm.AddTask("refreshWorkAnalysisApprovalStatus", "0 */1 * * * *", RefreshWorkAnalysisApprovalStatusTask) + err = cm.AddTask("refreshArtistOrder", "0 */30 * * * *", RefreshArtistOrderTask) // 每天 00:30 和 12:30 执行 Ayrshare 指标采集任务 // err = cm.AddTask("ayrshareMetricsCollector", "0 30 0,12 * * *", AyrshareMetricsCollectorTask) @@ -137,6 +139,17 @@ func AutoManuallyConfirmWorkTask() { continue } + if balanceInfoRes.BundleStatus == common.BundleExpired { + _, err = service.CastProvider.UpdateStatus(context.Background(), &cast.UpdateStatusReq{ + WorkAction: cast.WorkActionENUM_CONFIRM, + WorkUuid: req.WorkUuid, + ConfirmRemark: req.ConfirmRemark, + ConfirmStatus: 3, + }) + log.Printf("套餐已过期,作品uuid:"+req.WorkUuid, zap.Error(err)) + continue + } + wordInfoRes, err := service.CastProvider.WorkDetail(context.Background(), &cast.WorkDetailReq{ WorkUuid: req.WorkUuid, }) @@ -491,3 +504,7 @@ func ArtistAutoConfirmAnalysisTask() { func AyrshareMetricsCollectorTask() { serverCast.ExecuteAyrshareMetricsCollector() } + +func RefreshArtistOrderTask() { + service.CastProvider.Tools(context.Background(), &cast.ToolsReq{Action: "refreshArtistOrder"}) +} diff --git a/pkg/logic/cast/work.go b/pkg/logic/cast/work.go index 17aaaec..8bed038 100644 --- a/pkg/logic/cast/work.go +++ b/pkg/logic/cast/work.go @@ -24,7 +24,7 @@ func (w *Work) ExportExcelWorkList(data []*cast.WorkListResp_Info) (*excelize.Fi // 表头 headers := []interface{}{ - "艺人", "手机号", "用户编号", "作品标题", "脚本", "作品类型", "类型", "Ins", "Tiktok", "DM", "作品状态", "验收确认类型", + "艺人", "手机号", "用户编号", "作品标题", "脚本", "作品类型", "类型", "Ins", "Tiktok", "DM", "Youtube", "Bulesky", "作品状态", "验收确认类型", "说明", "发布账号", "管理人", "上传时间", "待艺人确认时间", "验收确认通过时间", "发布成功时间", } if err := sw.SetRow("A1", headers); err != nil { @@ -72,12 +72,14 @@ func (w *Work) ExportExcelWorkList(data []*cast.WorkListResp_Info) (*excelize.Fi modelCast.PlatformPublishStatusMM[cast.PublishStatusENUM(info.InsStatus)], modelCast.PlatformPublishStatusMM[cast.PublishStatusENUM(info.TiktokStatus)], modelCast.PlatformPublishStatusMM[cast.PublishStatusENUM(info.DmStatus)], + modelCast.PlatformPublishStatusMM[cast.PublishStatusENUM(info.YoutubeStatus)], + modelCast.PlatformPublishStatusMM[cast.PublishStatusENUM(info.BlueskyStatus)], modelCast.WorkStatusMM[int(info.WorkStatus)], modelCast.ConfirmTypeMM[int(info.ConfirmType)], info.Remark, mediaAccountNames, managerNames, - info.Status1Time, + info.SubmitTime, info.Status4Time, info.Status9Time, info.Status6Time, diff --git a/pkg/logic/supplier.go b/pkg/logic/supplier.go new file mode 100644 index 0000000..3ecc504 --- /dev/null +++ b/pkg/logic/supplier.go @@ -0,0 +1,178 @@ +package logic + +import ( + "crypto/sha256" + "errors" + "fmt" + "strconv" + "strings" + "time" + + "github.com/tealeg/xlsx" +) + +type SupplierLogic struct { + OwningEntityName string `json:"owningEntityName"` + LegalName string `json:"legalName"` + LocalName string `json:"localName"` + AbbreviationName string `json:"abbreviationName"` + CountryOrRegionName string `json:"countryOrRegionName"` + CompanyRegistrationNumber string `json:"companyRegistrationNumber"` + SupplierType string `json:"supplierType"` + ApprovalStatus string `json:"approvalStatus"` + ApprovalDate string `json:"approvalDate"` + LastReviewDate string `json:"lastReviewDate"` + LegalEntityType string `json:"legalEntityType"` + SanctionsCountryScreeningResult string `json:"sanctionsCountryScreeningResult"` + KeyFinancial string `json:"keyFinancial"` + CompanyAddress string `json:"companyAddress"` + PrimaryContact string `json:"primaryContact"` + DataOwnerDepartment string `json:"dataOwnerDepartment"` + BasicCompanyInformation string `json:"basicCompanyInformation"` + SupplementaryText string `json:"supplementaryText"` +} +type ErrSupplierRes struct { + ID int `json:"id"` + LegalName string `json:"legalName"` + Remark string `json:"remark"` +} + +func ImportSupplier(filePath string) ([]*SupplierLogic, error) { + xlFile, err := xlsx.OpenFile(filePath) + if err != nil { + return nil, err + } + //开辟除表头外的行数的数组内存 + //遍历sheet + for sheetIndex, sheet := range xlFile.Sheets { + var resourceArr []map[int]string + //遍历每一行 + //for rowIndex, row := range sheet.Rows { + for _, row := range sheet.Rows { + //开辟除表头外的行数的数组内存 + objMap := make(map[int]string) + + //if len(row.Cells) <= 0 || row.Cells[0].String() == "" { + // continue + //} + for cellIndex, cell := range row.Cells { + text := cell.String() + //如果是每一行的第一个单元格 + objMap[cellIndex] = text + } + resourceArr = append(resourceArr, objMap) + } + if len(resourceArr) >= 2 { + suppliers, err := getListFromRaw(resourceArr) + if err != nil { + return nil, errors.New(fmt.Sprintf("页码:%d,文件读取错误信息%s", sheetIndex+1, err.Error())) + } + if len(suppliers) > 0 { + return suppliers, nil + } + } + break + } + + return nil, nil +} +func getListFromRaw(list []map[int]string) ([]*SupplierLogic, error) { + var entrusts []*SupplierLogic + kkMap := map[string]string{ + "*使用组织/Owning Entity": "owningEntityName", + "*供应商法定全称/Legal Name": "legalName", + "供应商本地名称(如有)/Local Name (if applicable)": "localName", + "供应商简称(如有)/Abbreviation/Trade Name (if applicable)": "abbreviationName", + "*所在国家或地区/Country or Region": "countryOrRegionName", + "*公司注册编号/Company Registration Number": "companyRegistrationNumber", + "*供应商类型/Supplier Type": "supplierType", + "*准入状态/Approval Status": "approvalStatus", + "准入日期/Approval Date": "approvalDate", + "法律实体形式/Legal Entity Type": "legalEntityType", + "制裁与高风险国家筛查结果/Sanctions & High-Risk Country Screening Result": "sanctionsCountryScreeningResult", + "关键财务与付款信息/Key Financial & Payment Information": "keyFinancial", + "公司地址/Company Address": "companyAddress", + "主要联系人、职位及联系方式/Primary Contact, Position&Details": "primaryContact", + "数据维护部门&人员/Data Owner Department/Personnel": "dataOwnerDepartment", + "公司信息概要/Summary of Basic Company Information": "basicCompanyInformation", + "其他补充信息/Other Supplementary Information": "supplementaryText", + } + keyMap := list[0] + for index, tt := range list { + if index == 0 { + continue + } + temp := &SupplierLogic{} + for i, r := range tt { + t := strings.TrimSpace(r) + if _, ok := keyMap[i]; !ok { + continue + } + keyString := strings.TrimSpace(keyMap[i]) + if _, ok := kkMap[keyString]; !ok { + fmt.Println(fmt.Sprintf("行数:%d字段信息(%s)没有匹配,请以模版为准", i, keyString)) + continue + } + switch kkMap[keyString] { + case "owningEntityName": + temp.OwningEntityName = t + case "legalName": + temp.LegalName = t + case "localName": + temp.LocalName = t + case "abbreviationName": + temp.AbbreviationName = t + case "countryOrRegionName": + temp.CountryOrRegionName = t + case "companyRegistrationNumber": + temp.CompanyRegistrationNumber = t + case "supplierType": + temp.SupplierType = t + case "approvalStatus": + temp.ApprovalStatus = t + case "approvalDate": + temp.ApprovalDate = ParseExcelDate(t) + //temp.ApprovalDate = t + case "legalEntityType": + temp.LegalEntityType = t + case "sanctionsCountryScreeningResult": + temp.SanctionsCountryScreeningResult = t + case "keyFinancial": + temp.KeyFinancial = t + case "companyAddress": + temp.CompanyAddress = t + case "primaryContact": + temp.PrimaryContact = t + case "dataOwnerDepartment": + temp.DataOwnerDepartment = t + case "basicCompanyInformation": + temp.BasicCompanyInformation = t + case "supplementaryText": + temp.SupplementaryText = t + + } + } + entrusts = append(entrusts, temp) + } + sha256.New() + return entrusts, nil +} +func ParseExcelDate(v string) string { + if v == "" { + return "" + } + + // 非数字,直接认为是 yyyy-mm-dd + if _, err := strconv.ParseFloat(v, 64); err != nil { + t, err := time.Parse("2006-01-02", v) + if err != nil { + return "" + } + return t.Format("2006-01-02") + } + + // Excel 序列号 + f, _ := strconv.ParseFloat(v, 64) + base := time.Date(1899, 12, 30, 0, 0, 0, 0, time.Local) + return base.AddDate(0, 0, int(f)).Format("2006-01-02") +} diff --git a/pkg/middleware/check_login.go b/pkg/middleware/check_login.go index b2dcb86..245174a 100644 --- a/pkg/middleware/check_login.go +++ b/pkg/middleware/check_login.go @@ -70,6 +70,7 @@ func CheckLogin(provider *api.AccountFieeClientImpl) gin.HandlerFunc { TelNum: jwt.Phone, SubscriberNumber: infoRes.SubscriberNumber, IdNumber: infoRes.IdNumber, + InviterID: infoRes.InviterId, } ctx.Set("jwtInfo", loginInfo) diff --git a/pkg/model/cast/media.go b/pkg/model/cast/media.go index 1d762c5..8adffd8 100644 --- a/pkg/model/cast/media.go +++ b/pkg/model/cast/media.go @@ -16,17 +16,16 @@ const ( var PlatformNameKv = map[uint32]string{ 1: "tiktok", + 2: "youtube", 3: "instagram", 4: "DM", + 5: "bluesky", } var NamePlatformIDKv = map[string]uint32{ "tiktok": 1, + "youtube": 2, "instagram": 3, "DM": 4, -} -var PlatformIDStrKv = map[string]uint8{ - "TIKTOK": 1, - "INS": 2, - "DM": 4, + "bluesky": 5, } diff --git a/pkg/model/login/login.go b/pkg/model/login/login.go index 4492b3c..b1d7928 100644 --- a/pkg/model/login/login.go +++ b/pkg/model/login/login.go @@ -29,6 +29,7 @@ type Info struct { TelNum string `json:"telNum"` SubscriberNumber string `json:"subscriberNumber"` IdNumber string `json:"idNumber"` + InviterID uint64 `json:"inviterId"` } func GetUserInfoFromC(c *gin.Context) Info { diff --git a/pkg/router/media.go b/pkg/router/media.go index 5f9cf7d..f4cb04a 100644 --- a/pkg/router/media.go +++ b/pkg/router/media.go @@ -62,6 +62,7 @@ func MediaRouter(r *gin.RouterGroup) { task := auth.Group("task") { task.POST("list", serviceCast.TaskList) + task.POST("delete", serviceCast.DeleteTasK) } layout := auth.Group("layout") diff --git a/pkg/router/router.go b/pkg/router/router.go index 21d5e8c..f9573d9 100644 --- a/pkg/router/router.go +++ b/pkg/router/router.go @@ -7,6 +7,7 @@ import ( "fonchain-fiee/pkg/service/account" "fonchain-fiee/pkg/service/asChat" "fonchain-fiee/pkg/service/auth" + "fonchain-fiee/pkg/service/bundle" "fonchain-fiee/pkg/service/file" "fonchain-fiee/pkg/service/governance" imports "fonchain-fiee/pkg/service/import" @@ -57,6 +58,7 @@ func NewRouter() *gin.Engine { SecFilingRouter(privateGroup) app.MediaAppRouter(privateGroup) cronRouter(privateGroup) + SupplierRouter(privateGroup) { v1.POST("version", version.Version) //版本号公共 } @@ -69,6 +71,7 @@ func NewRouter() *gin.Engine { privateGroup.POST("user/check/msg", account.CheckMsg) //校验验证码 privateGroup.POST("generate/captcha", account.GenerateCaptcha) //生成滑块验证码 privateGroup.POST("validate/captcha", account.ValidateCaptcha) //验证滑块验证码 + privateGroup.POST("check/register", account.CheckRegister) //校验是否注册 acRoute := privateGroup.Group("/user") acRoute.Use(middleware.CheckLogin(service.AccountFieeProvider)) { @@ -83,6 +86,7 @@ func NewRouter() *gin.Engine { { webAcRouter.POST("list", account.UserList) //用户列表 webAcRouter.POST("approval", account.UserApproval) //实名审核 + webAcRouter.POST("admin-update", account.AdminUpdate) //更新用户信息 webAcRouter.POST("excel/download", account.UserExcelDownload) //excel下载 } } @@ -215,6 +219,10 @@ func NewRouter() *gin.Engine { importRoute.GET("generate/photo/test2", imports.Test2) } + { + //健康检测 + v1.GET("health", bundle.HealthCheck) + } //静态文件 r.StaticFS("/api/fiee/static", http.Dir("./runtime")) r.NoRoute(func(c *gin.Context) { diff --git a/pkg/router/supplier.go b/pkg/router/supplier.go new file mode 100644 index 0000000..3231de7 --- /dev/null +++ b/pkg/router/supplier.go @@ -0,0 +1,35 @@ +package router + +import ( + "fonchain-fiee/pkg/middleware" + "fonchain-fiee/pkg/service" + "fonchain-fiee/pkg/service/supplier" + + "github.com/gin-gonic/gin" +) + +func SupplierRouter(r *gin.RouterGroup) { + + supplierRoute := r.Group("supplier/web") + + supplierRoute.Use(middleware.CheckWebLogin(service.AccountProvider)) + { + supplierRoute.POST("info", supplier.GetSupplier) + supplierRoute.POST("create", supplier.CreateSupplier) + supplierRoute.POST("update", supplier.UpdateSupplier) + supplierRoute.POST("list", supplier.GetSupplierList) + } + { + supplierRoute.POST("dictionary/create", supplier.CreateOrganizeDictionary) + supplierRoute.POST("dictionary/list", supplier.GetOrganizeDictionaryList) + } + { + supplierRoute.POST("country-region/list", supplier.GetCountryRegionList) + } + { + supplierRoute.POST("import/record", supplier.CreateImportRecord) + supplierRoute.POST("import/info", supplier.GetImportRecordInfo) + supplierRoute.POST("export/list", supplier.GetExportList) + } + +} diff --git a/pkg/service/account/account.go b/pkg/service/account/account.go index 8767508..93c212a 100644 --- a/pkg/service/account/account.go +++ b/pkg/service/account/account.go @@ -126,10 +126,41 @@ func UserUpdate(c *gin.Context) { req.ID = user.ID req.Domain = user.Domain res, err := service.AccountFieeProvider.Update(c, &account.UpdateRequest{ - ID: req.ID, - Domain: req.Domain, - Language: req.Language, - NickName: req.NickName, + ID: req.ID, + Domain: req.Domain, + Language: req.Language, + NickName: req.NickName, + Email: req.Email, + AbroadTel: req.AbroadTel, + AbroadTelAreaCode: req.AbroadTelAreaCode, + }) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) + return +} + +func AdminUpdate(c *gin.Context) { + var req account.UpdateRequest + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error(c, err) + return + } + if req.ID == 0 { + service.Error(c, errors.New("用户ID不能为空")) + return + } + req.Domain = "app" + res, err := service.AccountFieeProvider.Update(c, &account.UpdateRequest{ + ID: req.ID, + Domain: req.Domain, + //Language: req.Language, + //NickName: req.NickName, + Email: req.Email, + AbroadTel: req.AbroadTel, + AbroadTelAreaCode: req.AbroadTelAreaCode, }) if err != nil { service.Error(c, err) @@ -409,6 +440,31 @@ func ValidateCaptcha(c *gin.Context) { service.Success(c, res) } +func CheckRegister(c *gin.Context) { + type CheckRegisterRes struct { + IsRegister bool `json:"is_register"` + } + req := account.UserByTelRequest{} + req.Domain = "app" + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error(c, err) + return + } + + data, err := service.AccountFieeProvider.UserByTel(context.Background(), &req) + if err != nil { + service.Error(c, err) + return + } + var res CheckRegisterRes + if data.Id == 0 { + res.IsRegister = false + } else { + res.IsRegister = true + } + service.Success(c, res) + return +} func UserLogout(c *gin.Context) { req := account.DecryptJwtRequest{} req.Token = c.GetHeader(e.Authorization) @@ -428,6 +484,16 @@ func UserRegister(c *gin.Context) { return } req.Domain = "app" + if req.InviterCode != "" { + codeRes, err := service.AccountFieeProvider.GetInviterInfo(context.Background(), &account.InviterInfoRequest{ + Code: req.InviterCode, + }) + if err != nil || codeRes.Id == 0 { + service.Error(c, errors.New("邀请码错误")) + return + } + req.InviterID = codeRes.Id + } res, err := service.AccountFieeProvider.Register(context.Background(), &req) if err != nil { service.Error(c, err) diff --git a/pkg/service/bundle/bundleBalance.go b/pkg/service/bundle/bundleBalance.go index d191279..065df38 100644 --- a/pkg/service/bundle/bundleBalance.go +++ b/pkg/service/bundle/bundleBalance.go @@ -197,6 +197,18 @@ func WorkConfirm(c *gin.Context) { // 确认作品并扣除余量 service.Error(c, errors.New(common.GetWorkDetailFailed)) return } + + if balanceInfoRes.BundleStatus == common.BundleExpired { + _, err = service.CastProvider.UpdateStatus(c, &cast.UpdateStatusReq{ + WorkAction: cast.WorkActionENUM_CONFIRM, + WorkUuid: req.WorkUuid, + ConfirmRemark: req.ConfirmRemark, + ConfirmStatus: 3, + }) + service.Error(c, errors.New("套餐已过期")) + return + } + if wordInfoRes.WorkStatus != 4 { service.Error(c, errors.New("作品不是待确认状态")) return @@ -209,6 +221,12 @@ func WorkConfirm(c *gin.Context) { // 确认作品并扣除余量 case 1: { if balanceInfoRes.ImageExtendConsumptionNumber >= balanceInfoRes.ImageExtendNumber { // 图文余量不足 + _, err = service.CastProvider.UpdateStatus(c, &cast.UpdateStatusReq{ + WorkAction: cast.WorkActionENUM_CONFIRM, + WorkUuid: req.WorkUuid, + ConfirmRemark: req.ConfirmRemark, + ConfirmStatus: 3, + }) service.Error(c, errors.New("图文余量不足")) return } @@ -217,6 +235,12 @@ func WorkConfirm(c *gin.Context) { // 确认作品并扣除余量 case 2: { if balanceInfoRes.VideoExtendConsumptionNumber >= balanceInfoRes.VideoExtendNumber { // 视频余量不足 + _, err = service.CastProvider.UpdateStatus(c, &cast.UpdateStatusReq{ + WorkAction: cast.WorkActionENUM_CONFIRM, + WorkUuid: req.WorkUuid, + ConfirmRemark: req.ConfirmRemark, + ConfirmStatus: 3, + }) service.Error(c, errors.New("视频余量不足")) return } @@ -428,6 +452,7 @@ func writeToExcel(filename string, items []*bundle.BundleBalanceExportItem) erro "所属月份", "用户编号", "姓名", "手机号", "购买套餐时间", "套餐金额", "增值服务金额", "支付金额", "币种", "手续费", "套餐视频总数", "增值服务视频总数", "套餐视频单价", "增值视频单价", + "当月消耗套餐金额($)", "当月消耗增值金额($)", "套餐账号总数", "增值账号总数", "套餐账号使用数", "增值账号使用数", "当前可用套餐视频数", "当前可用增值视频数", "当前已用套餐视频数", "当前已用增值视频数", "当前作废套餐视频数", "当前作废增值视频数", "当月新增可用套餐视频数", "当月新增可用增值视频数", "当月使用套餐视频数", "当月使用增值视频数", "当月作废套餐视频数", "当月作废增值视频数", "当前可用套餐图文数", "当前可用增值图文数", "当前已用套餐图文数", "当前已用增值图文数", "当前作废套餐图文数", "当前作废增值图文数", "当月新增可用套餐图文数", "当月新增可用增值图文数", "当月使用套餐图文数", "当月使用增值图文数", "当月作废套餐图文数", "当月作废增值图文数", @@ -470,64 +495,76 @@ func writeToExcel(filename string, items []*bundle.BundleBalanceExportItem) erro _ = write(13, fmt.Sprintf("%.2f", it.BundleVideoUnitPrice)) _ = write(14, fmt.Sprintf("%.2f", it.IncreaseVideoUnitPrice)) + // 当月视频消耗金额($) + monthlyBundleVideoConsumptionPrice, err := strconv.ParseFloat(it.MonthlyBundleVideoConsumptionPrice, 64) + if err != nil { + return err + } + monthlyIncreaseVideoConsumptionPrice, err := strconv.ParseFloat(it.MonthlyIncreaseVideoConsumptionPrice, 64) + if err != nil { + return err + } + _ = write(15, fmt.Sprintf("%.2f", monthlyBundleVideoConsumptionPrice)) + _ = write(16, fmt.Sprintf("%.2f", monthlyIncreaseVideoConsumptionPrice)) + // 账号类 - _ = write(15, int(it.BundleAccountNumber)) - _ = write(16, int(it.IncreaseAccountNumber)) - _ = write(17, int(it.BundleAccountConsumptionNumber)) - _ = write(18, int(it.IncreaseAccountConsumptionNumber)) + _ = write(17, int(it.BundleAccountNumber)) + _ = write(18, int(it.IncreaseAccountNumber)) + _ = write(19, int(it.BundleAccountConsumptionNumber)) + _ = write(20, int(it.IncreaseAccountConsumptionNumber)) // 视频类 - _ = write(19, int(it.MonthlyBundleVideoNumber)) - _ = write(20, int(it.MonthlyIncreaseVideoNumber)) - _ = write(21, int(it.BundleVideoConsumptionNumber)) - _ = write(22, int(it.IncreaseVideoConsumptionNumber)) - _ = write(23, int(it.InvalidBundleVideoNumber)) - _ = write(24, int(it.InvalidIncreaseVideoNumber)) - _ = write(25, int(it.MonthlyNewBundleVideoNumber)) - _ = write(26, int(it.MonthlyNewIncreaseVideoNumber)) - _ = write(27, int(it.MonthlyBundleVideoConsumptionNumber)) - _ = write(28, int(it.MonthlyIncreaseVideoConsumptionNumber)) - _ = write(29, int(it.MonthlyInvalidBundleVideoNumber)) - _ = write(30, int(it.MonthlyInvalidIncreaseVideoNumber)) + _ = write(21, int(it.MonthlyBundleVideoNumber)) + _ = write(22, int(it.MonthlyIncreaseVideoNumber)) + _ = write(23, int(it.BundleVideoConsumptionNumber)) + _ = write(24, int(it.IncreaseVideoConsumptionNumber)) + _ = write(25, int(it.InvalidBundleVideoNumber)) + _ = write(26, int(it.InvalidIncreaseVideoNumber)) + _ = write(27, int(it.MonthlyNewBundleVideoNumber)) + _ = write(28, int(it.MonthlyNewIncreaseVideoNumber)) + _ = write(29, int(it.MonthlyBundleVideoConsumptionNumber)) + _ = write(30, int(it.MonthlyIncreaseVideoConsumptionNumber)) + _ = write(31, int(it.MonthlyInvalidBundleVideoNumber)) + _ = write(32, int(it.MonthlyInvalidIncreaseVideoNumber)) // 图文类 - _ = write(31, int(it.MonthlyBundleImageNumber)) - _ = write(32, int(it.MonthlyIncreaseImageNumber)) - _ = write(33, int(it.BundleImageConsumptionNumber)) - _ = write(34, int(it.IncreaseImageConsumptionNumber)) - _ = write(35, int(it.InvalidBundleImageNumber)) - _ = write(36, int(it.InvalidIncreaseImageNumber)) - _ = write(37, int(it.MonthlyNewBundleImageNumber)) - _ = write(38, int(it.MonthlyNewIncreaseImageNumber)) - _ = write(39, int(it.MonthlyBundleImageConsumptionNumber)) - _ = write(40, int(it.MonthlyIncreaseImageConsumptionNumber)) - _ = write(41, int(it.MonthlyInvalidBundleImageNumber)) - _ = write(42, int(it.MonthlyInvalidIncreaseImageNumber)) + _ = write(33, int(it.MonthlyBundleImageNumber)) + _ = write(34, int(it.MonthlyIncreaseImageNumber)) + _ = write(35, int(it.BundleImageConsumptionNumber)) + _ = write(36, int(it.IncreaseImageConsumptionNumber)) + _ = write(37, int(it.InvalidBundleImageNumber)) + _ = write(38, int(it.InvalidIncreaseImageNumber)) + _ = write(39, int(it.MonthlyNewBundleImageNumber)) + _ = write(40, int(it.MonthlyNewIncreaseImageNumber)) + _ = write(41, int(it.MonthlyBundleImageConsumptionNumber)) + _ = write(42, int(it.MonthlyIncreaseImageConsumptionNumber)) + _ = write(43, int(it.MonthlyInvalidBundleImageNumber)) + _ = write(44, int(it.MonthlyInvalidIncreaseImageNumber)) // 数据分析类 - _ = write(43, int(it.MonthlyBundleDataAnalysisNumber)) - _ = write(44, int(it.MonthlyIncreaseDataAnalysisNumber)) - _ = write(45, int(it.BundleDataAnalysisConsumptionNumber)) - _ = write(46, int(it.IncreaseDataAnalysisConsumptionNumber)) - _ = write(47, int(it.InvalidBundleDataAnalysisNumber)) - _ = write(48, int(it.InvalidIncreaseDataAnalysisNumber)) - _ = write(49, int(it.MonthlyNewBundleDataAnalysisNumber)) - _ = write(50, int(it.MonthlyNewIncreaseDataAnalysisNumber)) - _ = write(51, int(it.MonthlyBundleDataAnalysisConsumptionNumber)) - _ = write(52, int(it.MonthlyIncreaseDataAnalysisConsumptionNumber)) - _ = write(53, int(it.MonthlyInvalidBundleDataAnalysisNumber)) - _ = write(54, int(it.MonthlyInvalidIncreaseDataAnalysisNumber)) + _ = write(45, int(it.MonthlyBundleDataAnalysisNumber)) + _ = write(46, int(it.MonthlyIncreaseDataAnalysisNumber)) + _ = write(47, int(it.BundleDataAnalysisConsumptionNumber)) + _ = write(48, int(it.IncreaseDataAnalysisConsumptionNumber)) + _ = write(49, int(it.InvalidBundleDataAnalysisNumber)) + _ = write(50, int(it.InvalidIncreaseDataAnalysisNumber)) + _ = write(51, int(it.MonthlyNewBundleDataAnalysisNumber)) + _ = write(52, int(it.MonthlyNewIncreaseDataAnalysisNumber)) + _ = write(53, int(it.MonthlyBundleDataAnalysisConsumptionNumber)) + _ = write(54, int(it.MonthlyIncreaseDataAnalysisConsumptionNumber)) + _ = write(55, int(it.MonthlyInvalidBundleDataAnalysisNumber)) + _ = write(56, int(it.MonthlyInvalidIncreaseDataAnalysisNumber)) // 手动扩展类 - _ = write(55, int(it.MonthlyNewManualAccountNumber)) - _ = write(56, int(it.MonthlyNewManualVideoNumber)) - _ = write(57, int(it.MonthlyNewManualImageNumber)) - _ = write(58, int(it.MonthlyNewManualDataAnalysisNumber)) - _ = write(59, int(it.MonthlyNewDurationNumber)) - _ = write(60, int(it.MonthlyManualAccountConsumptionNumber)) - _ = write(61, int(it.MonthlyManualVideoConsumptionNumber)) - _ = write(62, int(it.MonthlyManualImageConsumptionNumber)) - _ = write(63, int(it.MonthlyManualDataAnalysisConsumptionNumber)) + _ = write(57, int(it.MonthlyNewManualAccountNumber)) + _ = write(58, int(it.MonthlyNewManualVideoNumber)) + _ = write(59, int(it.MonthlyNewManualImageNumber)) + _ = write(60, int(it.MonthlyNewManualDataAnalysisNumber)) + _ = write(61, int(it.MonthlyNewDurationNumber)) + _ = write(62, int(it.MonthlyManualAccountConsumptionNumber)) + _ = write(63, int(it.MonthlyManualVideoConsumptionNumber)) + _ = write(64, int(it.MonthlyManualImageConsumptionNumber)) + _ = write(65, int(it.MonthlyManualDataAnalysisConsumptionNumber)) } @@ -547,7 +584,7 @@ func GetAccountBundleBalance(c *gin.Context) { service.Error(c, err) return } - req.Month = time.Now().Format("2006-01") + req.Month = []string{time.Now().Format("2006-01")} res, err := service.BundleProvider.GetBundleBalanceList(context.Background(), &req) if err != nil { service.Error(c, errors.New(common.GetBundleBalanceListFailed)) diff --git a/pkg/service/bundle/bundleMetrics.go b/pkg/service/bundle/bundleMetrics.go index ce7fc9e..108069d 100644 --- a/pkg/service/bundle/bundleMetrics.go +++ b/pkg/service/bundle/bundleMetrics.go @@ -17,7 +17,6 @@ import ( "strings" "time" - "github.com/duke-git/lancet/v2/datetime" "github.com/shopspring/decimal" "github.com/gin-gonic/gin" @@ -93,9 +92,30 @@ func MetricsBundlePurchaseExport(ctx *gin.Context) { sumFee := decimal.Zero for _, i := range data { - sumPayment = sumPayment.Add(decimal.NewFromFloat(float64(i.PaymentAmount))) - sumFinal = sumFinal.Add(decimal.NewFromFloat(float64(i.FinalAmount))) - sumFee = sumFee.Add(decimal.NewFromFloat(float64(i.FeeAmount))) + + s := fmt.Sprintf("%.2f", i.PaymentAmount) + d, err := decimal.NewFromString(s) + if err != nil { + service.Error(ctx, errors.New(common.MetricsBundlePurchaseExportFailed)) + return + } + sumPayment = sumPayment.Add(d) + + s = fmt.Sprintf("%.2f", i.FinalAmount) + d, err = decimal.NewFromString(s) + if err != nil { + service.Error(ctx, errors.New(common.MetricsBundlePurchaseExportFailed)) + return + } + sumFinal = sumFinal.Add(d) + + s = fmt.Sprintf("%.2f", i.FeeAmount) + d, err = decimal.NewFromString(s) + if err != nil { + service.Error(ctx, errors.New(common.MetricsBundlePurchaseExportFailed)) + return + } + sumFee = sumFee.Add(d) } f.SetCellValue(sheet, fmt.Sprintf("A%d", endRow+1), "合计支付金额(美元)") @@ -171,7 +191,7 @@ func MetricsArtistAccountExport(ctx *gin.Context) { utils.CheckDirPath("./runtime/"+fmt.Sprint(userInfo.ID), true) sheet := "Sheet1" f := excelize.NewFile() - headers := []string{"序号", "艺人", "用户编号", "DM账号名", "DM账号状态", "Instagram账号名", "Instagram账号状态", "TikTok账号名", "TikTok账号状态"} + headers := []string{"序号", "艺人", "用户编号", "DM账号名", "DM账号状态", "Instagram账号名", "Instagram账号状态", "TikTok账号名", "TikTok账号状态", "Bluesky账号名", "Bluesky账号状态", "Youtube账号名", "Youtube账号状态"} for i, h := range headers { col, _ := excelize.ColumnNumberToName(i + 1) cell := col + "1" @@ -206,6 +226,10 @@ func MetricsArtistAccountExport(ctx *gin.Context) { _ = write(7, authStatus[it.InsAuthStatus]) _ = write(8, it.TiktokNickname) _ = write(9, authStatus[it.TiktokAuthStatus]) + _ = write(10, it.BlueskyNickname) + _ = write(11, authStatus[it.BlueskyAuthStatus]) + _ = write(12, it.YoutubeNickname) + _ = write(13, authStatus[it.YoutubeAuthStatus]) } // 可选:设置列宽,使表格更美观 _ = f.SetColWidth(sheet, "A", "AZ", 18) @@ -232,13 +256,11 @@ func MetricsVideoSubmitExport(ctx *gin.Context) { return } newCtx := serviceCast.NewCtxWithUserInfo(ctx) - t, err := time.Parse("2006-01", req.Month) - if err == nil { + if len(req.Month) > 0 { resp, err = service.CastProvider.WorkList(newCtx, &cast.WorkListReq{ - SubmitStartTime: datetime.BeginOfMonth(t).Format(time.DateTime), - SubmitEndTime: datetime.EndOfMonth(t).Format(time.DateTime), - Page: 1, - PageSize: 99999, + SubmitTimeMonths: req.Month, + Page: 1, + PageSize: 99999, }) fmt.Printf("resp.Count: %v\n", resp.Count) } else { diff --git a/pkg/service/bundle/bundleOrder.go b/pkg/service/bundle/bundleOrder.go index d63369a..d1b20a3 100644 --- a/pkg/service/bundle/bundleOrder.go +++ b/pkg/service/bundle/bundleOrder.go @@ -246,10 +246,16 @@ func CreateBundleOrderSignature(c *gin.Context) { service.Error(c, err) return } - + if userInfo.InviterID != 0 && logic.CheckUserFirstOrder(userInfo.ID) { + req.InviterId = userInfo.InviterID + } // 组装订单信息 req = logic.BuildOrderRequest(req, userInfo, bundleDetail, addRecords, addTotalPrice, lastContractNo, signContract) + // 校验发布平台 + if len(req.PlatformIds) == 0 { + req.PlatformIds = []uint32{1, 4, 5} + } // 创建订单 res, err := service.BundleProvider.CreateOrderRecord(context.Background(), &req) if err != nil { @@ -514,7 +520,6 @@ func OrderRecordsListV2(c *gin.Context) { for id := range userIdSet { userIds = append(userIds, id) } - userListResp, err := service.AccountFieeProvider.UserList(context.Background(), &accountFiee.UserListRequest{ Ids: userIds, Domain: "app", @@ -536,6 +541,10 @@ func OrderRecordsListV2(c *gin.Context) { item.CustomerName = u.Name item.TelNum = u.TelNum item.SubNum = u.SubNum + if item.InviterId != 0 { + item.InviterCode = u.InviterCode + item.InviterName = u.InviterName + } } } } @@ -618,6 +627,10 @@ func OrderRecordsListDownload(c *gin.Context) { item.CustomerName = u.Name item.TelNum = u.TelNum item.SubNum = u.SubNum + if item.InviterId != 0 { + item.InviterCode = u.InviterCode + item.InviterName = u.InviterName + } } } } @@ -642,7 +655,7 @@ func exportExcel(orderList []*bundle.OrderBundleRecordInfo) (*excelize.File, err headers := []string{ "套餐订单号", "套餐类型", "套餐付款状态", "艺人手机号", "用户编号", "艺人", "套餐订单创建时间", "套餐支付时间", "套餐金额", - "增值服务订单号", "增值税服务金额", "支付金额", "币种", "手续费", "增值订单创建时间", "增值付款状态", + "增值服务订单号", "增值税服务金额", "支付金额", "币种", "手续费", "增值订单创建时间", "增值付款状态", "邀请码", "邀请码所属人", } for i, h := range headers { cell := fmt.Sprintf("%s%d", string(rune('A'+i)), 1) @@ -676,6 +689,8 @@ func exportExcel(orderList []*bundle.OrderBundleRecordInfo) (*excelize.File, err f.SetCellValue(sheetName, fmt.Sprintf("G%d", rowIndex), bundleInfo.BundleCreateAt) f.SetCellValue(sheetName, fmt.Sprintf("H%d", rowIndex), bundleInfo.PayTime) f.SetCellValue(sheetName, fmt.Sprintf("I%d", rowIndex), bundleInfo.Amount) + f.SetCellValue(sheetName, fmt.Sprintf("Q%d", rowIndex), bundleInfo.InviterCode) + f.SetCellValue(sheetName, fmt.Sprintf("R%d", rowIndex), bundleInfo.InviterName) if addCount > 0 { for i, add := range bundleInfo.AddBundleInfo { diff --git a/pkg/service/bundle/common/msg.go b/pkg/service/bundle/common/msg.go index 371a3af..f12b71d 100644 --- a/pkg/service/bundle/common/msg.go +++ b/pkg/service/bundle/common/msg.go @@ -105,6 +105,8 @@ const ( GetWorkDetailFailed = "获取作品详情失败" ) +//用户套餐状态 + // 余量 const ( BundleExtendFailed = "套餐扩展失败" @@ -122,9 +124,10 @@ const ( InsufficientBalance = "余量不足" ) +//用户套餐状态 const ( - BundleExpired = 1 - BundleNotExpired = 0 + BundleExpired = 1 //已过期 + BundleNotExpired = 0 //未过期 ) // 数据指标 diff --git a/pkg/service/bundle/healthCheck.go b/pkg/service/bundle/healthCheck.go new file mode 100644 index 0000000..0decfe6 --- /dev/null +++ b/pkg/service/bundle/healthCheck.go @@ -0,0 +1,180 @@ +package bundle + +import ( + "context" + "fonchain-fiee/api/bundle" + "fonchain-fiee/api/cast" + "fonchain-fiee/api/files" + "fonchain-fiee/api/governance" + "fonchain-fiee/api/order" + "fonchain-fiee/api/payment" + "fonchain-fiee/pkg/cache" + "fonchain-fiee/pkg/service" + "net/http" + "time" + + "github.com/gin-gonic/gin" +) + +// HealthCheck 健康检测接口 +func HealthCheck(c *gin.Context) { + healthStatus := gin.H{ + "status": "ok", + "timestamp": time.Now().Unix(), + "checks": make(map[string]interface{}), + } + + // 检查 Redis 连接 + redisStatus := "ok" + redisErr := "" + if cache.RedisClient != nil { + _, cancel := context.WithTimeout(context.Background(), 2*time.Second) + defer cancel() + _, err := cache.RedisClient.Ping().Result() + if err != nil { + redisStatus = "failed" + redisErr = err.Error() + } + } else { + redisStatus = "failed" + redisErr = "Redis client is nil" + } + healthStatus["checks"].(map[string]interface{})["redis"] = gin.H{ + "status": redisStatus, + "error": redisErr, + } + + // 检查微服务连接(调用一个简单的服务方法) + serviceStatus := "ok" + serviceErr := "" + ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second) + defer cancel() + + // 调用 BundleProvider 的简单方法进行健康检测 + _, err := service.BundleProvider.GetBundleBalanceByUserId(ctx, &bundle.GetBundleBalanceByUserIdReq{ + UserId: 0, // 使用一个不存在的用户ID,只检测服务连通性 + }) + if err != nil { + // 检查是否是超时或连接错误 + if ctx.Err() == context.DeadlineExceeded { + serviceStatus = "Bundle Service timeout" + serviceErr = "Service timeout" + } else { + // 其他错误(如业务错误)认为服务是可用的 + serviceStatus = "ok" + serviceErr = "" + } + } + healthStatus["checks"].(map[string]interface{})["bundleService"] = gin.H{ + "status": serviceStatus, + "error": serviceErr, + } + //调用 OrderProvider 的简单方法进行健康检测 + _, err = service.OrderProvider.GetOrder(ctx, &order.CommonRequest{ + ID: 0, + Domain: "", + SeriesUid: "", // 使用一个不存在的订单ID,只检测服务连通性 + }) + if err != nil { + if ctx.Err() == context.DeadlineExceeded { + serviceStatus = "Order Service timeout" + serviceErr = "Service timeout" + } else { + // 其他错误(如业务错误)认为服务是可用的 + serviceStatus = "ok" + serviceErr = "" + } + } + healthStatus["checks"].(map[string]interface{})["orderService"] = gin.H{ + "status": serviceStatus, + "error": serviceErr, + } + //调用 FilesProvider 的简单方法进行健康检测 + _, err = service.FilesProvider.List(ctx, &files.FileListReq{ + Path: "/", + UserSpacePath: "/fiee", + Page: 1, + PageSize: 50, + }) + if err != nil { + if ctx.Err() == context.DeadlineExceeded { + serviceStatus = "Filesbrowser Service timeout" + serviceErr = "Service timeout" + } else { + // 其他错误(如业务错误)认为服务是可用的 + serviceStatus = "ok" + serviceErr = "" + } + } + healthStatus["checks"].(map[string]interface{})["filesbrowserService"] = gin.H{ + "status": serviceStatus, + "error": serviceErr, + } + //调用 PaymentProvider 的简单方法进行健康检测 + _, err = service.PaymentProvider.QueryPayByOutTradeNo(ctx, &payment.PayQueryRequest{ + PayType: "2", + OutTradeNo: "1234567890", + }) + if err != nil { + if ctx.Err() == context.DeadlineExceeded { + serviceStatus = "Payment Service timeout" + serviceErr = "Service timeout" + } else { + // 其他错误(如业务错误)认为服务是可用的 + serviceStatus = "ok" + serviceErr = "" + } + } + healthStatus["checks"].(map[string]interface{})["paymentService"] = gin.H{ + "status": serviceStatus, + "error": serviceErr, + } + + //调用 CastProvider 的简单方法进行健康检测 + _, err = service.CastProvider.WorkList(ctx, &cast.WorkListReq{ + Page: 1, + PageSize: 10, + }) + if err != nil { + if ctx.Err() == context.DeadlineExceeded { + serviceStatus = "Cast Service timeout" + serviceErr = "Service timeout" + } else { + // 其他错误(如业务错误)认为服务是可用的 + serviceStatus = "ok" + serviceErr = "" + } + } + healthStatus["checks"].(map[string]interface{})["castService"] = gin.H{ + "status": serviceStatus, + "error": serviceErr, + } + //调用 GovernanceProvider 的简单方法进行健康检测 + _, err = service.GovernanceProvider.List(ctx, &governance.ListReq{ + Page: 1, + PageSize: 10, + }) + if err != nil { + if ctx.Err() == context.DeadlineExceeded { + serviceStatus = "Document Service timeout" + serviceErr = "Service timeout" + } else { + // 其他错误(如业务错误)认为服务是可用的 + serviceStatus = "ok" + serviceErr = "" + } + } + healthStatus["checks"].(map[string]interface{})["documentService"] = gin.H{ + "status": serviceStatus, + "error": serviceErr, + } + + // 如果所有检查都通过,返回 200,否则返回 503 + httpStatus := http.StatusOK + if redisStatus != "ok" || serviceStatus != "ok" { + httpStatus = http.StatusServiceUnavailable + healthStatus["status"] = "degraded" + } + + c.JSON(httpStatus, healthStatus) +} diff --git a/pkg/service/bundle/logic/bundleOrder.go b/pkg/service/bundle/logic/bundleOrder.go index 85d9a11..3412db8 100644 --- a/pkg/service/bundle/logic/bundleOrder.go +++ b/pkg/service/bundle/logic/bundleOrder.go @@ -63,6 +63,24 @@ func CheckUserOrder(userID uint64) error { return nil } +// 校验用户是否首次购买 +func CheckUserFirstOrder(userID uint64) bool { + req := bundle.OrderRecordsDetailRequest{ + CustomerID: strconv.FormatUint(userID, 10), + Status: 2, + } + records, _ := service.BundleProvider.OrderRecordsDetail(context.Background(), &req) + // 用户没有任何订单记录 + if records.OrderRecord == nil { + return true + } + // 检查订单是否属于该用户 + if records.OrderRecord.CustomerID != strconv.FormatUint(userID, 10) { + return true + } + return false +} + // 获取最后一次合同编号 func GetLastContractNo() (string, error) { records, err := service.BundleProvider.OrderRecordsList(context.Background(), &bundle.OrderRecordsRequest{ diff --git a/pkg/service/bundle/reconciliation.go b/pkg/service/bundle/reconciliation.go index 1230ea4..fea7a0e 100644 --- a/pkg/service/bundle/reconciliation.go +++ b/pkg/service/bundle/reconciliation.go @@ -366,7 +366,7 @@ func AutoCreateUserAndOrder(c *gin.Context) { ValueUid: accountUuid, CurrencyType: 2, //美元 Amount: 0, //增值服务金额 - Num: 3, + Num: 5, Unit: "个", Source: 1, PaymentStatus: 1, @@ -418,6 +418,7 @@ func AutoCreateUserAndOrder(c *gin.Context) { orderReq.OrderNo = unfinishInfo.OrderNo //expirationTime := t.AddDate(10, 0, 0).Format("2006-01-02 15:04:05") //orderReq.ExpirationTime = expirationTime + orderReq.PlatformIds = []uint32{1, 4, 5} _, err = service.BundleProvider.CreateOrderRecord(context.Background(), &orderReq) if err != nil { service.Error(c, err) diff --git a/pkg/service/cast/media.go b/pkg/service/cast/media.go index bfb5370..a690abe 100644 --- a/pkg/service/cast/media.go +++ b/pkg/service/cast/media.go @@ -44,28 +44,28 @@ func MediaUserList(ctx *gin.Context) { service.Error(ctx, err) return } - var statResp *bundle.ArtistUploadStatsResponse - zap.L().Info("MediaUserList 1") - //取出艺人num - var artistSubNums []string - for _, v := range resp.Data { - artistSubNums = append(artistSubNums, v.ArtistSubNum) - } - statResp, err = service.BundleProvider.GetArtistUploadStatsList(context.Background(), &bundle.TaskQueryRequest{ - Keyword: "", - Page: 0, - PageSize: 0, - SortBy: "", - SortType: "", - LastTaskAssignee: "", - SubNums: artistSubNums, - }) - zap.L().Info("MediaUserList 2") - if err != nil { - service.Error(ctx, err) - return - } if req.NeedStats { + var statResp *bundle.ArtistUploadStatsResponse + zap.L().Info("MediaUserList 1") + //取出艺人num + var artistSubNums []string + for _, v := range resp.Data { + artistSubNums = append(artistSubNums, v.ArtistSubNum) + } + statResp, err = service.BundleProvider.GetArtistUploadStatsList(context.Background(), &bundle.TaskQueryRequest{ + Keyword: "", + Page: 0, + PageSize: 0, + SortBy: "", + SortType: "", + LastTaskAssignee: "", + SubNums: artistSubNums, + }) + zap.L().Info("MediaUserList 2") + if err != nil { + service.Error(ctx, err) + return + } for _, v := range resp.Data { for _, vv := range statResp.Items { if v.ArtistSubNum == vv.SubNum { @@ -258,11 +258,10 @@ func OAuthAccount(ctx *gin.Context) { service.Error(ctx, errors.New("未找到该账号")) return } - //FIXME - /*if err = SyncAsAuth(mediaResp.Data[0].ArtistUuid); err != nil { + if err = SyncAsAuth(mediaResp.Data[0].ArtistUuid); err != nil { service.Error(ctx, err) return - }*/ + } if resp, err = service.CastProvider.OAuthAccountV2(ctx, req); err != nil { service.Error(ctx, err) return @@ -410,10 +409,14 @@ func SyncAsAuth(artistUuid string) error { if platformIDENUM == cast.PlatformIDENUM_UNKNOWN { continue } + asID := v.Id + if platformIDENUM == cast.PlatformIDENUM_BULESKY && asID == "" { + asID = v.Username + } authReq.Data = append(authReq.Data, &cast.UpdateOAuthReq_Info{ ArtistUuid: artistUuid, PlatformID: platformIDENUM, - AsID: v.Id, + AsID: asID, PlatformUserName: v.Username, AutInfo: string(asInfoB), }) @@ -609,7 +612,7 @@ func ImportMediaAccount(ctx *gin.Context) { excelSetRemark(excelData, line, "艺人不存在") continue } - var tiktokName, insName, dmName string + var tiktokName, insName, dmName, youtubeName, blueskyName string if len(row) >= 3 { tiktokName = strings.TrimSpace(row[2]) } @@ -619,7 +622,13 @@ func ImportMediaAccount(ctx *gin.Context) { if len(row) >= 5 { dmName = strings.TrimSpace(row[4]) } - if tiktokName == "" && insName == "" && dmName == "" { + if len(row) >= 6 { + youtubeName = strings.TrimSpace(row[5]) + } + if len(row) >= 7 { + blueskyName = strings.TrimSpace(row[6]) + } + if tiktokName == "" && insName == "" && dmName == "" && youtubeName == "" && blueskyName == "" { excelSetRemark(excelData, line, "请填写账号") continue } @@ -638,6 +647,17 @@ func ImportMediaAccount(ctx *gin.Context) { excelSetRemark(excelData, line, fmt.Sprintf("%s:%s", dmName, err.Error())) } } + if youtubeName != "" { + if err = updateMediaAccount(youtubeName, cast.PlatformIDENUM_YOUTUBE, subInfoResp, loginInfo); err != nil { + excelSetRemark(excelData, line, fmt.Sprintf("%s:%s", youtubeName, err.Error())) + } + } + if blueskyName != "" { + if err = updateMediaAccount(blueskyName, cast.PlatformIDENUM_BULESKY, subInfoResp, loginInfo); err != nil { + excelSetRemark(excelData, line, fmt.Sprintf("%s:%s", blueskyName, err.Error())) + } + } + _ = CheckAsProfile(subInfoResp) } // 保存Excel文件到磁盘 resultPath := fmt.Sprintf("./runtime/media/%s", fileName) @@ -661,14 +681,14 @@ func ImportMediaAccount(ctx *gin.Context) { // 记录需要删除的行(从后往前删除,避免行号变化) rowsToDelete := make([]int, 0) for line := 1; line < len(rows); line++ { // 从第2行开始(跳过表头) - remarkCell := fmt.Sprintf("F%d", line+1) + remarkCell := fmt.Sprintf("H%d", line+1) // 备注列已移动到H列 remark, _ := excelData.GetCellValue("Sheet1", remarkCell) if remark == "" { - // F列没有数据,表示成功 + // H列没有数据,表示成功 successCount++ rowsToDelete = append(rowsToDelete, line+1) } else { - // F列有值,表示失败 + // H列有值,表示失败 failCount++ } } @@ -701,11 +721,11 @@ func ImportMediaAccount(ctx *gin.Context) { func excelSetRemark(excelData *excelize.File, line int, remark string) { zap.L().Info("设置备注", zap.Int("line", line), zap.String("remark", remark)) - oldRemark, _ := excelData.GetCellValue("Sheet1", fmt.Sprintf("%s%d", "F", line+1)) + oldRemark, _ := excelData.GetCellValue("Sheet1", fmt.Sprintf("%s%d", "H", line+1)) if oldRemark != "" { remark = fmt.Sprintf("%s\n;%s", oldRemark, remark) } - excelData.SetCellValue("Sheet1", fmt.Sprintf("%s%d", "F", line+1), remark) + excelData.SetCellValue("Sheet1", fmt.Sprintf("%s%d", "H", line+1), remark) } func updateMediaAccount(platformName string, platformId cast.PlatformIDENUM, subInfoResp *accountFiee.UserInfoResponse, loginInfo login.Info) error { diff --git a/pkg/service/cast/task.go b/pkg/service/cast/task.go index 6bb18ca..fe7f841 100644 --- a/pkg/service/cast/task.go +++ b/pkg/service/cast/task.go @@ -26,3 +26,21 @@ func TaskList(ctx *gin.Context) { } service.Success(ctx, resp) } + +func DeleteTasK(ctx *gin.Context) { + var req *cast.DeleteTaskListReq + var err error + if err = ctx.ShouldBind(&req); err != nil { + service.Error(ctx, err) + return + } + //loginInfo := login.GetUserInfoFromC(ctx) + //req.OperatorID = fmt.Sprint(loginInfo.ID) + resp, err := service.CastProvider.DeleteTaskList(context.Background(), req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) + return +} diff --git a/pkg/service/cast/test.go b/pkg/service/cast/test.go index f8bb2d5..2b8aaf4 100644 --- a/pkg/service/cast/test.go +++ b/pkg/service/cast/test.go @@ -71,10 +71,10 @@ func Test(ctx *gin.Context) { } if action == "" { - profileKey := ctx.PostForm("profileKey") - resp, err := service.AyrshareProvider.GetUser(context.Background(), &aryshare.GetUserRequest{ - ProfileKey: profileKey, - InstagramDetails: true, + resp, err := service.CastProvider.WorkList(context.Background(), &cast.WorkListReq{ + Page: 1, + PageSize: 1000, + SubmitTimeMonths: []string{"2026-01", "2025-12"}, }) if err != nil { service.Error(ctx, err) @@ -156,6 +156,15 @@ func Test(ctx *gin.Context) { } service.Success(ctx, "ok") } + if action == "SyncAsAuth" { + artistUuid := ctx.PostForm("artistUuid") + err := SyncAsAuth(artistUuid) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, "ok") + } service.Success(ctx, "unknow") return diff --git a/pkg/service/cast/work.go b/pkg/service/cast/work.go index d152bfa..cb57b82 100644 --- a/pkg/service/cast/work.go +++ b/pkg/service/cast/work.go @@ -48,21 +48,16 @@ import ( "go.uber.org/zap" ) -func UpdateWorkImage(ctx *gin.Context) { - var req *cast.UpdateWorkImageReq +// UpdateWorkImageCore 更新作品图片的核心逻辑,可以被其他函数复用 +func UpdateWorkImageCore(ctx *gin.Context, req *cast.UpdateWorkImageReq) (*cast.UpdateWorkImageResp, error) { var infoResp *accountFiee.UserInfoResponse var err error var ok bool - if err = ctx.ShouldBind(&req); err != nil { - service.Error(ctx, err) - return - } loginInfo := login.GetUserInfoFromC(ctx) lockKey := fmt.Sprintf("lock_update_work_image_%d", loginInfo.ID) reply := cache.RedisClient.SetNX(lockKey, time.Now().Format("2006-01-02 15:04:05"), time.Second*5) if !reply.Val() { - service.Error(ctx, errors.New("请勿重复提交")) - return + return nil, errors.New("请勿重复提交") } defer func() { cache.RedisClient.Del(lockKey) @@ -72,37 +67,30 @@ func UpdateWorkImage(ctx *gin.Context) { /*for _, v := range req.Images { ok, err = check.SecurityFile(v) if err != nil { - service.Error(ctx, err) - return + return nil, err } if !ok { - service.Error(ctx, errors.New("图片鉴定未通过")) - return + return nil, errors.New("图片鉴定未通过") } } ok, err = check.SecurityText(req.Title) if err != nil { - service.Error(ctx, err) - return + return nil, err } if !ok { - service.Error(ctx, errors.New("标题鉴定未通过")) - return + return nil, errors.New("标题鉴定未通过") } ok, err = check.SecurityText(req.Content) if err != nil { - service.Error(ctx, err) - return + return nil, err } if !ok { - service.Error(ctx, errors.New("内容鉴定未通过")) - return + return nil, errors.New("内容鉴定未通过") }*/ if req.From != "ai" { for _, v := range req.Images { if filepath.Ext(v) != ".jpg" && filepath.Ext(v) != ".jpeg" { - service.Error(ctx, errors.New("图片格式只支持jpg")) - return + return nil, errors.New("图片格式只支持jpg") } } } @@ -112,8 +100,7 @@ func UpdateWorkImage(ctx *gin.Context) { for _, v := range images { imageUrl, err = checkAndReuploadImage(v, "image") if err != nil { - service.Error(ctx, errors.New("图片转换错误")) - return + return nil, errors.New("图片转换错误") } req.Images = append(req.Images, imageUrl) } @@ -124,8 +111,7 @@ func UpdateWorkImage(ctx *gin.Context) { }) zap.L().Info("UpdateWorkImage infoResp", zap.Any("infoResp", infoResp)) if err != nil { - service.Error(ctx, err) - return + return nil, err } req.ArtistName = infoResp.Name @@ -134,13 +120,26 @@ func UpdateWorkImage(ctx *gin.Context) { req.ArtistSubNum = infoResp.SubNum //artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64) //if _, err = CheckUserBundleBalance(int32(artistID), modelCast.BalanceTypeImageValue); err != nil { - // service.Error(ctx, err) - // return + // return nil, err //} newCtx := NewCtxWithUserInfo(ctx) req.Source = 1 resp, err := service.CastProvider.UpdateWorkImage(newCtx, req) zap.L().Info("UpdateWorkImage resp", zap.Any("resp", resp)) + if err != nil { + return nil, err + } + return resp, nil +} + +func UpdateWorkImage(ctx *gin.Context) { + var req *cast.UpdateWorkImageReq + var err error + if err = ctx.ShouldBind(&req); err != nil { + service.Error(ctx, err) + return + } + resp, err := UpdateWorkImageCore(ctx, req) if err != nil { service.Error(ctx, err) return @@ -171,27 +170,21 @@ func UpdateWorkImage(ctx *gin.Context) { return } -func UpdateWorkVideo(ctx *gin.Context) { - var req *cast.UpdateWorkVideoReq +// UpdateWorkVideoCore 更新作品视频的核心逻辑,可以被其他函数复用 +func UpdateWorkVideoCore(ctx *gin.Context, req *cast.UpdateWorkVideoReq) (*cast.UpdateWorkVideoResp, error) { var infoResp *accountFiee.UserInfoResponse var err error var ok bool - if err = ctx.ShouldBind(&req); err != nil { - service.Error(ctx, err) - return - } if req.CoverUrl != "" { if filepath.Ext(req.CoverUrl) != ".jpg" && filepath.Ext(req.CoverUrl) != ".jpeg" { - service.Error(ctx, errors.New("图片格式只支持jpg")) - return + return nil, errors.New("图片格式只支持jpg") } } loginInfo := login.GetUserInfoFromC(ctx) lockKey := fmt.Sprintf("lock_update_work_video_%d", loginInfo.ID) reply := cache.RedisClient.SetNX(lockKey, time.Now().Format("2006-01-02 15:04:05"), time.Second*5) if !reply.Val() { - service.Error(ctx, errors.New("请勿重复提交")) - return + return nil, errors.New("请勿重复提交") } defer func() { cache.RedisClient.Del(lockKey) @@ -199,30 +192,24 @@ func UpdateWorkVideo(ctx *gin.Context) { fmt.Println(ok) /* ok, err = check.SecurityText(req.Title) if err != nil { - service.Error(ctx, err) - return + return nil, err } if !ok { - service.Error(ctx, errors.New("标题鉴定未通过")) - return + return nil, errors.New("标题鉴定未通过") } ok, err = check.SecurityText(req.Content) if err != nil { - service.Error(ctx, err) - return + return nil, err } if !ok { - service.Error(ctx, errors.New("内容鉴定未通过")) - return + return nil, errors.New("内容鉴定未通过") } ok, err = check.SecurityFile(req.CoverUrl) if err != nil { - service.Error(ctx, err) - return + return nil, err } if !ok { - service.Error(ctx, errors.New("图片鉴定未通过")) - return + return nil, errors.New("图片鉴定未通过") }*/ if req.VideoUrl != "" && false { //请求接口判断 @@ -231,12 +218,10 @@ func UpdateWorkVideo(ctx *gin.Context) { FileName: "", }) if errs != nil { - service.Error(ctx, errs) - return + return nil, errs } if fileResp.SecurityStatus == "high" { - service.Error(ctx, errors.New("视频鉴定未通过")) - return + return nil, errors.New("视频鉴定未通过") } } if config.AppConfig.System.AppMode != "dev" { @@ -247,8 +232,7 @@ func UpdateWorkVideo(ctx *gin.Context) { }) zap.L().Info("UpdateWorkVideo", zap.Any("infoResp", infoResp)) if err != nil { - service.Error(ctx, err) - return + return nil, err } } else { infoResp = &accountFiee.UserInfoResponse{ @@ -259,8 +243,7 @@ func UpdateWorkVideo(ctx *gin.Context) { } //artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64) //if _, err = CheckUserBundleBalance(int32(artistID), modelCast.BalanceTypeVideoValue); err != nil { - // service.Error(ctx, err) - // return + // return nil, err //} req.ArtistName = infoResp.Name req.ArtistPhone = infoResp.TelNum @@ -270,6 +253,20 @@ func UpdateWorkVideo(ctx *gin.Context) { req.Source = 1 resp, err := service.CastProvider.UpdateWorkVideo(newCtx, req) zap.L().Info("UpdateWorkVideo", zap.Any("resp", resp)) + if err != nil { + return nil, err + } + return resp, nil +} + +func UpdateWorkVideo(ctx *gin.Context) { + var req *cast.UpdateWorkVideoReq + var err error + if err = ctx.ShouldBind(&req); err != nil { + service.Error(ctx, err) + return + } + resp, err := UpdateWorkVideoCore(ctx, req) if err != nil { service.Error(ctx, err) return @@ -623,6 +620,29 @@ func PostAS(workUuid string) error { ThumbNail: "", Visibility: "", } + case cast.PlatformIDENUM_YOUTUBE: + // YouTube 发布选项配置 + postReq.YouTubeOptions = &aryshare.YouTubeOptions{ + Title: workDetail.Title, + Visibility: "public", // 可见性设置:public/unlisted/private + Tags: nil, + // CategoryId: 0, // YouTube 分类 ID(例如:24 = Entertainment) + MadeForKids: false, + ThumbNail: coverUrl, + PlaylistId: "", + NotifySubscribers: true, + Shorts: false, + ContainsSyntheticMedia: false, + PublishAt: "", + SubTitleUrl: "", + SubTitleLanguage: "", + SubTitleName: "", + } + case cast.PlatformIDENUM_BULESKY: // BLUESKY + // Bluesky 发布选项配置 + postReq.BlueskyOptions = &aryshare.BlueskyOptions{ + AltText: nil, // 图片或视频的替代文本数组(用于屏幕阅读器的无障碍功能) + } } zap.L().Info("post 6", zap.Any("workUuid", workUuid), zap.Any("platformID", platformID)) zap.L().Info("Publish Ayrshare PostReq", zap.Any("workUuid", workDetail.WorkUuid), zap.Any("postReq", postReq), zap.Any("workDetail", workDetail)) @@ -704,6 +724,10 @@ func PostAS(workUuid string) error { pid = 1 case "instagram": pid = 3 + case "youtube": + pid = 2 + case "bluesky": + pid = 5 } publishStatus := cast.PublishStatusENUM_PublishMediaStatus_NO if postInfo.Status == "success" { @@ -1284,8 +1308,8 @@ func ImportWorkBatch(ctx *gin.Context) { temp.ArtistPhone = subInfoResp.TelNum temp.ArtistPhoneAreaCode = subInfoResp.TelAreaCode } - if len(row) > 5 { - temp.Title = utils.CleanString(row[5]) + if len(row) > 7 { + temp.Title = utils.CleanString(row[7]) ok, _err := check.SecurityText(temp.Title) if _err != nil { temp.Remark = _err.Error() @@ -1298,8 +1322,8 @@ func ImportWorkBatch(ctx *gin.Context) { break } } - if len(row) > 6 { - temp.Content = utils.CleanString(row[6]) + if len(row) > 8 { + temp.Content = utils.CleanString(row[8]) if temp.Content != "" { ok, _err := check.SecurityText(temp.Content) if _err != nil { @@ -1314,8 +1338,7 @@ func ImportWorkBatch(ctx *gin.Context) { } } } - // 图片 - for i := 8; i <= 18; i++ { + for i := 10; i <= 20; i++ { if len(row) > i { if utils.CleanString(row[i]) != "" { ok, _err := check.SecurityFile(row[i]) @@ -1325,7 +1348,7 @@ func ImportWorkBatch(ctx *gin.Context) { break } if !ok { - temp.Remark = fmt.Sprintf("图片%d黄反审核未通过", i-7) + temp.Remark = fmt.Sprintf("图片%d黄反审核未通过", i-9) req.ImageWorks = append(req.ImageWorks, temp) break } @@ -1416,6 +1439,60 @@ func ImportWorkBatch(ctx *gin.Context) { temp.MediaAccountNames = append(temp.MediaAccountNames, utils.CleanString(row[4])) temp.MediaAccountUuids = append(temp.MediaAccountUuids, mediaInfoResp.Info.MediaAccountUuid)*/ } + // YouTube账号(第F列,row[5]) + if len(row) > 5 && utils.CleanString(row[5]) != "" { + temp.Remark = fmt.Sprintf("Youtube不能发图文") + zap.L().Error("CastProvider.MediaInfo", zap.Error(err)) + req.ImageWorks = append(req.ImageWorks, temp) + continue + // mediaInfoResp, err = service.CastProvider.MediaInfo(context.Background(), &cast.MediaInfoReq{ + // ArtistUuid: temp.ArtistUuid, + // PlatformID: cast.PlatformIDENUM_YOUTUBE, + // PlatformUserName: utils.CleanString(row[5]), + // }) + // if err != nil || mediaInfoResp.Info.MediaAccountUuid == "" { + // temp.Remark = fmt.Sprintf("YouTube账号名不存在") + // zap.L().Error("CastProvider.MediaInfo", zap.Error(err)) + // req.ImageWorks = append(req.ImageWorks, temp) + // continue + // } + // temp.PublishConfig1 = &cast.PublishConfig{ + // ForbidComment: 1, + // PublicType: 1, + // CanJoin: 1, + // CanQuote: 1, + // CanComment: 1, + // IsAI: 1, + // } + // temp.PlatformIDs = append(temp.PlatformIDs, cast.PlatformIDENUM_YOUTUBE) + // temp.MediaAccountNames = append(temp.MediaAccountNames, utils.CleanString(row[5])) + // temp.MediaAccountUuids = append(temp.MediaAccountUuids, mediaInfoResp.Info.MediaAccountUuid) + } + // Bluesky账号(第G列,row[6]) + if len(row) > 6 && utils.CleanString(row[6]) != "" { + mediaInfoResp, err = service.CastProvider.MediaInfo(context.Background(), &cast.MediaInfoReq{ + ArtistUuid: temp.ArtistUuid, + PlatformID: cast.PlatformIDENUM_BULESKY, + PlatformUserName: utils.CleanString(row[6]), + }) + if err != nil || mediaInfoResp.Info.MediaAccountUuid == "" { + temp.Remark = fmt.Sprintf("Bluesky账号名不存在") + zap.L().Error("CastProvider.MediaInfo", zap.Error(err)) + req.ImageWorks = append(req.ImageWorks, temp) + continue + } + temp.PublishConfig1 = &cast.PublishConfig{ + ForbidComment: 1, + PublicType: 1, + CanJoin: 1, + CanQuote: 1, + CanComment: 1, + IsAI: 1, + } + temp.PlatformIDs = append(temp.PlatformIDs, cast.PlatformIDENUM_BULESKY) + temp.MediaAccountNames = append(temp.MediaAccountNames, utils.CleanString(row[6])) + temp.MediaAccountUuids = append(temp.MediaAccountUuids, mediaInfoResp.Info.MediaAccountUuid) + } if artistNum == "" { temp.Remark = "艺人编号不能为空" req.ImageWorks = append(req.ImageWorks, temp) @@ -1446,6 +1523,12 @@ func ImportWorkBatch(ctx *gin.Context) { req.ImageWorks = append(req.ImageWorks, temp) continue } + // 判断图片数量是否超过4 + if len(temp.Images) > 4 { + temp.Remark = "Bluesky 图片数量不能超过4" + req.ImageWorks = append(req.ImageWorks, temp) + continue + } req.ImageWorks = append(req.ImageWorks, temp) } if len(req.ImageWorks) == 0 { @@ -1464,7 +1547,7 @@ func ImportWorkBatch(ctx *gin.Context) { for _, v := range resp.ImageWorks { if !v.Success { rowNum := int(v.LineNo) + 1 - excelData.SetCellValue("Sheet1", fmt.Sprintf("H%d", rowNum), v.Remark) + excelData.SetCellValue("Sheet1", fmt.Sprintf("J%d", rowNum), v.Remark) hasValueRows[rowNum] = true } } diff --git a/pkg/service/check/security.go b/pkg/service/check/security.go index 4e7c8bb..b26a51a 100644 --- a/pkg/service/check/security.go +++ b/pkg/service/check/security.go @@ -56,6 +56,7 @@ func ImageCheckByte(file *multipart.FileHeader) (bool, error) { } func SecurityFile(textVal string) (bool, error) { + return true, nil if textVal == "" { return true, nil } @@ -79,6 +80,7 @@ func SecurityFile(textVal string) (bool, error) { return true, nil } func SecurityText(textVal string) (bool, error) { + return true, nil aliConfig, err := pkgSecurity.GetGlobalConfig("./data/alibabacloud.env") if err != nil { return false, err diff --git a/pkg/service/init.go b/pkg/service/init.go index f39c4ee..0554bb2 100644 --- a/pkg/service/init.go +++ b/pkg/service/init.go @@ -14,6 +14,7 @@ import ( "fonchain-fiee/api/payment" "fonchain-fiee/api/pressreleases" "fonchain-fiee/api/secFilings" + "fonchain-fiee/api/supplier" pkConfig "fonchain-fiee/pkg/config" "os" @@ -35,6 +36,7 @@ var PressReleasesProvider = new(pressreleases.PressReleasesClientImpl) var SecFilingProvider = new(secFilings.SecFilingsClientImpl) var AyrshareProvider = new(aryshare.AyrshareClientImpl) var CronProvider = new(cron.CronClientImpl) +var SupplierProvider = new(supplier.SupplierClientImpl) func init() { config.SetConsumerService(BundleProvider) @@ -49,6 +51,7 @@ func init() { config.SetConsumerService(SecFilingProvider) config.SetConsumerService(AyrshareProvider) config.SetConsumerService(CronProvider) + config.SetConsumerService(SupplierProvider) if err := config.Load(); err != nil { panic(err) diff --git a/pkg/service/supplier/supplier.go b/pkg/service/supplier/supplier.go new file mode 100644 index 0000000..09eeec4 --- /dev/null +++ b/pkg/service/supplier/supplier.go @@ -0,0 +1,391 @@ +package supplier + +import ( + "errors" + "fmt" + "fonchain-fiee/api/supplier" + "fonchain-fiee/pkg/logic" + "fonchain-fiee/pkg/model/login" + "fonchain-fiee/pkg/service" + "fonchain-fiee/pkg/service/upload" + "fonchain-fiee/pkg/utils" + "fonchain-fiee/pkg/utils/excel" + "os" + "time" + + "github.com/gin-gonic/gin" + "github.com/gin-gonic/gin/binding" + "github.com/google/uuid" +) + +func GetSupplier(c *gin.Context) { + req := &supplier.GetSupplierRequest{} + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error(c, err) + return + } + res, err := service.SupplierProvider.GetSupplier(c, req) + if err != nil { + service.Error(c, err) + return + } + + service.Success(c, res) + return +} +func CreateSupplier(c *gin.Context) { + req := &supplier.CreateSupplierRequest{} + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error(c, err) + return + } + res, err := service.SupplierProvider.CreateSupplier(c, req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) + return +} + +func UpdateSupplier(c *gin.Context) { + req := &supplier.UpdateSupplierRequest{} + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error(c, err) + return + } + info, err := service.SupplierProvider.GetSupplier(c, &supplier.GetSupplierRequest{Id: req.Id}) + if err != nil { + service.Error(c, err) + return + } + if info.Status == 3 { + service.Error(c, errors.New("审核中不可修改")) //todo 修改:审核中并且存在审核人 不可修改 + return + } + if req.Status != 1 && req.Status != 2 { + service.Error(c, errors.New("审批状态错误")) //todo 只允许前端暂存或提交审核申请 + } + res, err := service.SupplierProvider.UpdateSupplier(c, req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) + return +} + +func GetSupplierList(c *gin.Context) { + req := &supplier.GetSupplierListRequest{} + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error(c, err) + return + } + res, err := service.SupplierProvider.GetSupplierList(c, req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) + return +} + +func CreateOrganizeDictionary(c *gin.Context) { + req := &supplier.CreateOrganizeDictionaryRequest{} + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error(c, err) + return + } + res, err := service.SupplierProvider.CreateOrganizeDictionary(c, req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) + return +} + +func GetOrganizeDictionaryList(c *gin.Context) { + req := &supplier.GetOrganizeDictionaryListRequest{} + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error(c, err) + return + } + res, err := service.SupplierProvider.GetOrganizeDictionaryList(c, req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) + return +} + +func GetCountryRegionList(c *gin.Context) { + req := &supplier.GetCountryRegionListRequest{} + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error(c, err) + return + } + res, err := service.SupplierProvider.GetCountryRegionList(c, req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) + return +} + +func CreateImportRecord(c *gin.Context) { + file, err := c.FormFile("file") + if err != nil { + service.Error(c, err) + } + safeFilename := fmt.Sprintf("%d", time.Now().Unix()) + "_" + file.Filename + userInfo := login.GetUserInfoFromC(c) + fileDir := fmt.Sprintf("/fiee/supplier/%s/%s_%s", time.Now().Format("2006-01-02"), userInfo.Name, safeFilename) + // 保存上传的文件到本地 + if err = c.SaveUploadedFile(file, safeFilename); err != nil { + service.Error(c, err) + return + } + defer func() { + if err := os.Remove(safeFilename); err != nil { + // 处理删除文件失败的情况 + fmt.Println("Failed to delete file:", err) + } + }() + inputUrl, err := upload.PutBosWithName(safeFilename, false, fileDir) + if err != nil { + service.Error(c, err) + return + } + supplierList, err := logic.ImportSupplier(safeFilename) + if err != nil { + service.Error(c, err) + return + } + if len(supplierList) == 0 { + service.Error(c, errors.New("导入数据为空")) + return + } + uuid, _ := uuid.NewUUID() + var SuccessNum uint64 + var SupplierCodes []string + var ErrSupplierRes []*logic.ErrSupplierRes + for idx, i := range supplierList { + rowNum := idx + 1 + if i.OwningEntityName == "" || i.LegalName == "" || i.CountryOrRegionName == "" || i.CompanyRegistrationNumber == "" || i.SupplierType == "" || i.ApprovalStatus == "" { + ErrSupplierRes = append(ErrSupplierRes, &logic.ErrSupplierRes{ + ID: rowNum, + LegalName: i.LegalName, + Remark: "必填项存在空值", + }) + continue + } + OwningEntityRes, _ := service.SupplierProvider.GetOrganizeDictionaryInfo(c, &supplier.CreateOrganizeDictionaryRequest{Name: i.OwningEntityName}) + if OwningEntityRes == nil || OwningEntityRes.Id == 0 { + ErrSupplierRes = append(ErrSupplierRes, &logic.ErrSupplierRes{ + ID: rowNum, + LegalName: i.LegalName, + Remark: "所属组织不存在", + }) + continue + } + countryRegionRes, _ := service.SupplierProvider.GetCountryRegionInfo(c, &supplier.GetCountryRegionInfoRequest{ZhAndCode: i.CountryOrRegionName}) + if countryRegionRes == nil || countryRegionRes.Id == 0 { + ErrSupplierRes = append(ErrSupplierRes, &logic.ErrSupplierRes{ + ID: rowNum, + LegalName: i.LegalName, + Remark: "所属国家或地区不存在", + }) + continue + } + var LastReviewDate string + if i.ApprovalDate != "" { + t, err := time.Parse("2006-01-02", i.ApprovalDate) + if err != nil { + LastReviewDate = "" + i.ApprovalDate = "" + } else { + LastReviewDate = t.AddDate(1, 0, 0).Format("2006-01-02") + } + } + createRes, err := service.SupplierProvider.CreateSupplier(c, &supplier.CreateSupplierRequest{ + OwningEntityId: OwningEntityRes.Id, + LegalName: i.LegalName, + LocalName: i.LocalName, + AbbreviationName: i.AbbreviationName, + CountryOrRegionId: countryRegionRes.Id, + CompanyRegistrationNumber: i.CompanyRegistrationNumber, + SupplierType: i.SupplierType, + ApprovalStatus: i.ApprovalStatus, + ApprovalDate: i.ApprovalDate, + LastReviewDate: LastReviewDate, + LegalEntityType: i.LegalEntityType, + SanctionsCountryScreeningResult: i.SanctionsCountryScreeningResult, + KeyFinancial: i.KeyFinancial, + CompanyAddress: i.CompanyAddress, + PrimaryContact: i.PrimaryContact, + DataOwnerDepartment: i.DataOwnerDepartment, + BasicCompanyInformation: i.BasicCompanyInformation, + SupplementaryText: i.SupplementaryText, + Status: 1, + }) + if err != nil { + ErrSupplierRes = append(ErrSupplierRes, &logic.ErrSupplierRes{ + ID: rowNum, + LegalName: i.LegalName, + Remark: err.Error(), + }) + continue + } else { + SupplierCodes = append(SupplierCodes, createRes.SupplierCode) + SuccessNum++ + } + + } + status := 2 + outUrl := "" + if len(ErrSupplierRes) == 0 { + status = 1 + } else { + var sheet1Columns = []string{"行数", "供应商法定全称", "错误信息"} + var sheet1 = excel.NewSheet("Sheet1", ErrSupplierRes, sheet1Columns) + ex, err := excel.NewExcelCreatorFromTemplate("./mistake.xlsx", "./supplier/excel/", "", sheet1) + ex.UseOption(excel.OptionFileNameSuffixWithUnixTime) + path, _, err := ex.WriteToFile() + outUrl, err = upload.PutBos(path, "", false) + if err != nil { + service.Error(c, err) + return + } + defer func() { + os.RemoveAll("./supplier") + }() + } + req := &supplier.CreateImportRecordRequest{ + SupplierCodes: SupplierCodes, + Status: uint64(status), + UserId: userInfo.ID, + ToLeadUrl: inputUrl, + DeriveUrl: outUrl, + Uuid: uuid.String(), + SuccessNum: SuccessNum, + FailNum: uint64(len(ErrSupplierRes)), + } + _, err = service.SupplierProvider.CreateImportRecord(c, req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, req) + return +} + +func GetImportRecordInfo(c *gin.Context) { + req := &supplier.GetImportRecordRequest{} + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error(c, err) + return + } + res, err := service.SupplierProvider.GetImportRecordInfo(c, req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) + return +} + +func GetExportList(c *gin.Context) { + req := &supplier.GetSupplierListRequest{} + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error(c, err) + return + } + infoRes, err := service.SupplierProvider.GetSupplierList(c, req) + if err != nil { + service.Error(c, err) + return + } + // 定义标题列表 + titleList := []string{ + "状态/State", "使用组织/Owning Entity", "供应商唯一编码/SupplierUnique Code", "供应商法定全称(英文)/LegalName (English)", "供应商本地名称(如有)/LocalName (if applicable)", + "所在国家或地区/Country or Region", "公司注册编号/Company RegistrationNumber", "供应商类型/Supplier Type", "准入状态/Approval Status", "准入日期/ApprovalDate", + "法律实体形式/Legal Entity Type", "制裁与高风险国家筛查结果/Sanctions & High-RiskCountry Screening Result", "关键财务与付款信息/Key Financial & Payment Information", + "公司地址/Company Address", "主要联系人、职位及联系方式/Primary Contact,Position&Details", "数据维护部门&人员/Data Owner Department/Personnel", "最后更新日期/Last Updated Date", + "公司信息概要/Summary of Basic Company Information", + } + // 定义数据结构 + type DataInfo struct { + Status string + OwningEntity string + SupplierUniqueCode string + LegalName string + LocalName string + CountryOrRegion string + CompanyRegistrationNumber string + SupplierType string + ApprovalStatus string + ApprovalDate string + LegalEntityType string + SanctionsCountryScreeningResult string + KeyFinancial string + CompanyAddress string + PrimaryContact string + DataOwnerDepartment string + UpdatedAt string + BasicCompanyInformation string + } + // 创建员工ID到DataInfo的映射 + dataMap := make(map[string]*DataInfo) + statusMap := map[uint64]string{ + 1: "草稿", + 2: "审核中", + 3: "已驳回", + 4: "已成功", + } + for _, info := range infoRes.Data { + dataMap[info.SupplierUniqueCode] = &DataInfo{ + Status: statusMap[info.Status], + OwningEntity: info.OwningEntityName, + SupplierUniqueCode: info.SupplierUniqueCode, + LegalName: info.LegalName, + LocalName: info.LocalName, + CountryOrRegion: info.CountryOrRegionCode, + CompanyRegistrationNumber: info.CompanyRegistrationNumber, + SupplierType: info.SupplierType, + ApprovalStatus: info.ApprovalStatus, + ApprovalDate: info.ApprovalDate, + LegalEntityType: info.LegalEntityType, + SanctionsCountryScreeningResult: info.SanctionsCountryScreeningResult, + KeyFinancial: info.KeyFinancial, + CompanyAddress: info.CompanyAddress, + PrimaryContact: info.PrimaryContact, + DataOwnerDepartment: info.DataOwnerDepartment, + UpdatedAt: info.UpdatedAt, + BasicCompanyInformation: info.BasicCompanyInformation, + } + } + // 生成最终数据列表 + var dataList []interface{} + for _, data := range dataMap { + dataList = append(dataList, &[]any{ + data.Status, data.OwningEntity, data.SupplierUniqueCode, data.LegalName, data.LocalName, + data.CountryOrRegion, data.CompanyRegistrationNumber, data.SupplierType, data.ApprovalStatus, data.ApprovalDate, + data.LegalEntityType, data.SanctionsCountryScreeningResult, data.KeyFinancial, data.CompanyAddress, data.PrimaryContact, + data.DataOwnerDepartment, data.UpdatedAt, data.BasicCompanyInformation, + }) + } + + // 生成Excel文件 + content, err := utils.ToExcelByType(titleList, dataList, "slice", "") + if err != nil { + service.Error(c, err) + return + } + + // 返回Excel文件 + utils.ResponseXls(c, content, "供应商库") + return +} diff --git a/pkg/service/taskbench/taskBench.go b/pkg/service/taskbench/taskBench.go index bd8659c..a0c91a5 100644 --- a/pkg/service/taskbench/taskBench.go +++ b/pkg/service/taskbench/taskBench.go @@ -376,6 +376,11 @@ func UpdateWorkImageWithTaskUUID(ctx *gin.Context) { service.Error(ctx, errors.New("任务已中止,不能上传图文")) return } + resp, err := castService.UpdateWorkImageCore(ctx, req.UpdateWorkImageReq) + if err != nil { + service.Error(ctx, err) + return + } if config.AppConfig.System.AppMode != "dev" { artistId, _ := strconv.ParseUint(req.ArtistUuid, 10, 64) infoResp, err = service.AccountFieeProvider.Info(context.Background(), &accountFiee.InfoRequest{ @@ -393,21 +398,6 @@ func UpdateWorkImageWithTaskUUID(ctx *gin.Context) { TelAreaCode: "86", } } - req.ArtistName = infoResp.Name - req.ArtistPhone = infoResp.TelNum - req.ArtistPhoneAreaCode = infoResp.TelAreaCode - // artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64) - // if _, err = castService.CheckUserBundleBalance(int32(artistID), modelCast.BalanceTypeImageValue); err != nil { - // service.Error(ctx, err) - // return - // } - newCtx := castService.NewCtxWithUserInfo(ctx) - req.Source = 1 - resp, err := service.CastProvider.UpdateWorkImage(newCtx, req.UpdateWorkImageReq) - if err != nil { - service.Error(ctx, err) - return - } // EmployeeName 和 EmployeeNum 从 toekn 里面拿 userInfo := login.GetUserInfoFromC(ctx) // 调用员工实际任务状态更新 @@ -474,6 +464,11 @@ func UpdateWorkVideoWithUUID(ctx *gin.Context) { service.Error(ctx, errors.New("任务已中止,不能上传视频")) return } + resp, err := castService.UpdateWorkVideoCore(ctx, req.UpdateWorkVideoReq) + if err != nil { + service.Error(ctx, err) + return + } if config.AppConfig.System.AppMode != "dev" { artistId, _ := strconv.ParseUint(req.ArtistUuid, 10, 64) infoResp, err = service.AccountFieeProvider.Info(context.Background(), &accountFiee.InfoRequest{ @@ -491,21 +486,6 @@ func UpdateWorkVideoWithUUID(ctx *gin.Context) { TelAreaCode: "86", } } - // artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64) - // if _, err = castService.CheckUserBundleBalance(int32(artistID), modelCast.BalanceTypeVideoValue); err != nil { - // service.Error(ctx, err) - // return - // } - req.ArtistName = infoResp.Name - req.ArtistPhone = infoResp.TelNum - req.ArtistPhoneAreaCode = infoResp.TelAreaCode - newCtx := castService.NewCtxWithUserInfo(ctx) - req.Source = 1 - resp, err := service.CastProvider.UpdateWorkVideo(newCtx, req.UpdateWorkVideoReq) - if err != nil { - service.Error(ctx, err) - return - } // EmployeeName 和 EmployeeNum 从 toekn 里面拿 userInfo := login.GetUserInfoFromC(ctx) // 调用员工实际任务状态更新 diff --git a/pkg/service/upload/upload.go b/pkg/service/upload/upload.go index a15b8dd..a9002fe 100644 --- a/pkg/service/upload/upload.go +++ b/pkg/service/upload/upload.go @@ -12,14 +12,15 @@ import ( "fonchain-fiee/pkg/model" "fonchain-fiee/pkg/service" "fonchain-fiee/pkg/utils" + "io" + + cmdConf "fonchain-fiee/cmd/config" + "github.com/disintegration/imaging" "github.com/fonchain_enterprise/utils/objstorage" "github.com/gin-gonic/gin" uuid "github.com/satori/go.uuid" - "io" - ffmpeg "github.com/u2takey/ffmpeg-go" - "go.uber.org/zap" "io/ioutil" "mime/multipart" "net/url" @@ -28,6 +29,9 @@ import ( "path/filepath" "strconv" "strings" + + ffmpeg "github.com/u2takey/ffmpeg-go" + "go.uber.org/zap" ) const ( @@ -216,7 +220,7 @@ func quickBos(file *multipart.FileHeader, mediaType string, mask string, source return } } - var objectName string = fmt.Sprintf("%s/%s/%s", config.ConfigData.Oss.BaseDir, config.Env, filePath) + var objectName string = fmt.Sprintf("%s/%s/%s", config.ConfigData.Oss.BaseDir, cmdConf.AppConfig.System.AppMode, filePath) BOSClient, _ := objstorage.NewOSS(os.Getenv(config.ConfigData.Oss.AccessKeyId), os.Getenv(config.ConfigData.Oss.AccessKeySecret), os.Getenv(config.ConfigData.Oss.Endpoint)) _, err = BOSClient.PutObjectFromBytes(os.Getenv(config.ConfigData.Oss.BucketName), objectName, fileBytes) if err != nil { @@ -290,7 +294,7 @@ func PutBos(filePath string, mediaType string, needRemove bool) (url string, err } } filePath = strings.Replace(filePath, model.MediaPath, "", 1) - var objectName string = fmt.Sprintf("%s/%s%s", config.ConfigData.Oss.BaseDir, config.Env, filePath) + var objectName string = fmt.Sprintf("%s/%s%s", config.ConfigData.Oss.BaseDir, cmdConf.AppConfig.System.AppMode, filePath) _, err = BOSClient.PutObjectFromBytes(os.Getenv(config.ConfigData.Oss.BucketName), objectName, fileBytes) if err != nil { fmt.Println("=== PutBos PutObject err ", err) @@ -347,3 +351,30 @@ func getEnvDir(cloudStoreSubPath string) (ep string) { ep, _ = url.JoinPath("fiee", cloudStoreSubPath) return ep } +func PutBosWithName(filePath string, needRemove bool, ossPath string) (url string, err error) { + BOSClient, err := objstorage.NewOSS(os.Getenv(config.ConfigData.Oss.AccessKeyId), os.Getenv(config.ConfigData.Oss.AccessKeySecret), os.Getenv(config.ConfigData.Oss.Endpoint)) + //BOSClient, err := objstorage.NewOSS(config.ConfigData.Oss.AccessKeyId, config.ConfigData.Oss.AccessKeySecret, config.ConfigData.Oss.Endpoint) + if err != nil { + //logger.Errorf("PutBosWithName err1 ", err) + err = errors.New(e.GetMsg(e.ErrorUploadBos)) + return + } + if ossPath == "" { + ossPath = filePath[1:] + } + var objectName string = fmt.Sprintf("%s/%s%s", config.ConfigData.Oss.BaseDir, cmdConf.AppConfig.System.AppMode, ossPath) + _, err = BOSClient.PutObject(os.Getenv(config.ConfigData.Oss.BucketName), objectName, filePath) + //_, err = BOSClient.PutObject(config.ConfigData.Oss.BucketName, objectName, filePath) + if err != nil { + //logger.Errorf("PutBosWithName err2 ", err) + err = errors.New(e.GetMsg(e.ErrorUploadBos)) + return + } + //删除本地文件 + if needRemove { + _ = os.Remove(filePath) + } + url = fmt.Sprintf("%s/%s", os.Getenv(config.ConfigData.Oss.CdnHost), objectName) + //url = fmt.Sprintf("%s/%s", config.ConfigData.Oss.CdnHost, objectName) + return +} diff --git a/pkg/utils/excel/excelInter.go b/pkg/utils/excel/excelInter.go new file mode 100644 index 0000000..99f6d81 --- /dev/null +++ b/pkg/utils/excel/excelInter.go @@ -0,0 +1,381 @@ +// Package excel ----------------------------- +// @file : templateInter.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2022/7/23 15:34 +// ------------------------------------------- +package excel + +import ( + "bytes" + "errors" + "fmt" + "io" + "log" + "os" + "path/filepath" + "reflect" + "sync" + + "github.com/tealeg/xlsx" + "github.com/xuri/excelize/v2" +) + +var ( + ErrSheetNotExist = errors.New("sheet does not exist") + ErrSheetDataFormatNotSupport = errors.New("sheet data format not support") + //ErrSheetNameNotInTemplate = errors.New("sheet name not in emailTemplate") +) + +// ====================================================================================================================== +// +// Sheet define +type HeaderRow struct { + RowNum int //行号 + Values []string +} + +// 抽象工作簿 +type Sheet interface { + GetData() any //数据,支持struct、[]struct、[]*struct三种类型 + SheetName() string //表名称 + SheetHeaders() []string //表头名称,没有则跳过插入表头的步骤 + GetJsonFiledList() []string //指定字段的排列顺序,默认按照结构体中的顺序排列(表头与数据没有关联,使用这个指定字段插入顺序) +} + +// 实例化工作簿,使用模板生成excel的话用这个 +func NewTemplateSheet(sheetName string, datas any) Sheet { + return &newSheetDefine{ + Datas: datas, + Name: sheetName, + } +} + +// 实例化工作簿,不通过模板生成excel的话用这个 +func NewSheet(sheetName string, datas any, headers []string, jsonFiledList ...[]string) Sheet { + st := &newSheetDefine{ + Datas: datas, + Name: sheetName, + Headers: headers, + } + if jsonFiledList != nil { + st.JsonFiledList = jsonFiledList[0] + } + return st +} + +// 定义一个能够通用的工作簿结构,此结构必须遵循Sheet接口规范 +type newSheetDefine struct { + Datas any + Name string + Headers []string + JsonFiledList []string +} + +func (s *newSheetDefine) GetData() any { + return s.Datas +} +func (s *newSheetDefine) SheetName() string { + return s.Name +} +func (s *newSheetDefine) SheetHeaders() []string { + return s.Headers +} +func (s *newSheetDefine) GetJsonFiledList() []string { + return s.JsonFiledList +} + +//====================================================================================================================== +// Sheet define + +// WriteToExcel 通过模板文件写入数据并另存为 +// param fileName : 文件名 +// param filesSuffix : 文件后缀名生成函数 +// param fileRoot : 导出目录 +// param templatePath : 模板文件路径 +// param sheets : Sheet类型的数据,类型为[]Sheet +// return path : 文件路径 +// return exfileName : 导出后的文件名 +// return err +func WriteToExcel(fileName string, fileRoot string, templatePath string, sheets ...Sheet) (path string, exFileName string, err error) { + var exc *Excel + exc, err = NewExcelCreatorFromTemplate(fileName, fileRoot, templatePath, sheets...) + if err != nil { + return + } + exc.UseOption(OptionFileNameSuffixWithUnixTime) + return exc.WriteToFile() +} + +// ReadDataFromExcel 从excel文件读取数据 +func ReadDataFromExcel(filepath string, sheetName string, handler func(rowIndex int, rows []string)) error { + ex := Excel{OriginFilePath: filepath} + return ex.ReadSheetData(sheetName, handler) +} + +// ReadDataFromBytes 从io口读取数据,用户http上传的附件 +func ReadDataFromBytes(file io.Reader, sheetName string, handler func(rowIndex int, row []string)) error { + exce, err := excelize.OpenReader(file) + if err != nil { + return err + } + var ex = Excel{ex: exce} + return ex.ReadSheetData(sheetName, handler) +} + +// 读取模板并创建工作表生成器 +func NewExcelCreatorFromTemplate(fileName string, fileRoot string, templatePath string, sheets ...Sheet) (exc *Excel, err error) { + exc = &Excel{ + SaveRoot: fileRoot, + SaveName: fileName, + OriginFilePath: templatePath, + rwLock: sync.RWMutex{}, + } + if sheets != nil { + err = exc.AddSheets(sheets...) + if err != nil { + return + } + } + return exc, nil +} + +// 新建文件并创建工作表生成器 +func NewExcelCreatorWithNewFile(fileName string, fileRoot string, sheets ...Sheet) (exc *Excel, err error) { + return NewExcelCreatorFromTemplate(fileName, fileRoot, "", sheets...) +} + +type Excel struct { + ex *excelize.File + SaveRoot string + SaveName string + OriginFilePath string + Sheets map[string]Sheet + rwLock sync.RWMutex + Opts []Option + After []Option +} + +// UseOption 使用可选项 +func (s *Excel) UseOption(opts ...Option) { + if opts != nil { + s.Opts = append(s.Opts, opts...) + } +} +func (s *Excel) AfterAddData(after ...Option) { + if after != nil { + s.After = append(s.After, after...) + } +} + +// 添加工作簿 +// 注意如果添加相同的工作簿,之前的会被覆盖 +func (s *Excel) AddSheets(sheets ...Sheet) (err error) { + if s.Sheets == nil { + s.Sheets = make(map[string]Sheet, 0) + } + for _, sheet := range sheets { + var sheetName = sheet.SheetName() + s.Sheets[sheetName] = sheet + } + return +} + +// 删除工作簿 +func (s *Excel) DeleteSheets(sheetName string) error { + if s.Sheets == nil { + return nil + } else if s.Sheets[sheetName] != nil { + delete(s.Sheets, sheetName) + } else { + return ErrSheetNotExist + } + return nil +} + +// 读取工作簿 +func (s *Excel) ReadSheetData(sheetName string, handler func(rowIndex int, row []string)) (err error) { + if s.ex == nil { + s.ex, err = excelize.OpenFile(s.OriginFilePath) + if err != nil { + return + } + } + datas, err := s.ex.GetRows(sheetName) + for i, row := range datas { + handler(i, row) + } + return nil +} + +// 写入到文件 +func (s *Excel) WriteToFile() (path string, fileName string, err error) { + if s.ex == nil { + if s.OriginFilePath == "" { + s.ex = excelize.NewFile() + } else { + s.ex, err = excelize.OpenFile(s.OriginFilePath) + if err != nil { + return + } + } + } + if s.Opts != nil { + for _, opt := range s.Opts { + opt(s) + } + } + //插入数据 + for sheetName, st := range s.Sheets { + //添加表头,没有定义则不插入 + if st.SheetHeaders() != nil { + for i, c := range st.SheetHeaders() { + err = s.ex.SetCellValue(sheetName, GetCellIndex(1, i+1), c) + if err != nil { + fmt.Println(err.Error()) + return + } + } + headerStyleID, errs := s.ex.NewStyle(NewDefaultHeaderStyle()) + if errs != nil { + fmt.Println(errs) + err = errs + return + } + //表头设置为默认样式,边框加粗、字体加粗 + if err = s.ex.SetCellStyle(st.SheetName(), "A1", GetCellIndex(1, len(st.SheetHeaders())), headerStyleID); err != nil { + return + } + } + //添加数据 + var firstRow = s.getFirstEmptyRowIndex(s.ex, sheetName) + var SheetData = reflect.ValueOf(st.GetData()) + var SheetType = reflect.TypeOf(st.GetData()) + writerFunc, exists := writerMap[SheetData.Kind()] + if exists { + err = writerFunc(s, st, SheetData, SheetType, firstRow) + } else { + return "", "", ErrSheetDataFormatNotSupport + } + } + if s.After != nil { + for _, after := range s.After { + after(s) + } + } + //检测并生成目录 + _ = os.MkdirAll(s.SaveRoot, os.ModePerm) + //保存 + path = filepath.ToSlash(filepath.Join(s.SaveRoot, s.SaveName)) + fileName = s.SaveName + s.rwLock.Lock() + if err = s.ex.SaveAs(path); err != nil { + log.Println(fmt.Sprintf("save file error :%v", err)) + s.rwLock.Unlock() + return + } + s.rwLock.Unlock() + return +} + +// getJsonFieldList 获取json字段列表 +func (s *Excel) getJsonFieldList(sheetType reflect.Type) (tagList []string) { + t := sheetType.Elem() + if t.Kind() == reflect.Ptr { + t = t.Elem() + if t.Kind() != reflect.Struct { + return + } + } + for i := 0; i < t.NumField(); i++ { + var tag = t.Field(i).Tag.Get("json") + if tag != "" { + tagList = append(tagList, tag) + } + } + return +} + +// dataToMap 数据转字典 +func (s *Excel) dataToMap(sheet reflect.Value, sheetType reflect.Type) (dataMap map[string]any) { + dataMap = make(map[string]any) + t := sheetType.Elem() + //指针类型结构体拿真实的对象 + if t.Kind() == reflect.Ptr { + t = t.Elem() + sheet = sheet.Elem() + } + for i := 0; i < t.NumField(); i++ { + var tag = t.Field(i).Tag.Get("json") + if tag != "" { + dataMap[t.Field(i).Tag.Get("json")] = sheet.Field(i).Interface() + } + } + return dataMap +} + +// getFirstEmptyRowIndex 获取首个空行的索引位置 +func (s *Excel) getFirstEmptyRowIndex(ex *excelize.File, sheetName string) (index int) { + rows, err := ex.GetRows(sheetName) + if err != nil { + return 1 + } + return len(rows) +} + +func ToExcel(titleList []string, dataList []interface{}) (content io.ReadSeeker) { + // 生成一个新的文件 + file := xlsx.NewFile() + // 添加sheet页 + sheet, _ := file.AddSheet("Sheet1") + // 插入表头 + titleRow := sheet.AddRow() + for _, v := range titleList { + cell := titleRow.AddCell() + cell.Value = v + } + // 插入内容 + for _, v := range dataList { + row := sheet.AddRow() + row.WriteStruct(v, -1) + } + + var buffer bytes.Buffer + _ = file.Write(&buffer) + file.Save("1.xlsx") + content = bytes.NewReader(buffer.Bytes()) + return +} + +// 自动设置单元格宽度 +func (s *Excel) autoResetCellWidth(sheetObj Sheet) { + // 获取最大字符宽度 + maxWidths := make(map[int]int) + var sheetData = reflect.ValueOf(sheetObj.GetData()) + var rowLen = 1 + var columnLen = len(sheetObj.GetJsonFiledList()) + if sheetData.Kind() == reflect.Slice { + rowLen = sheetData.Len() + } + limitWidth := 90 + for col := 1; col <= columnLen; col++ { + var maxWidth int + for row := 0; row < rowLen; row++ { + value, _ := s.ex.GetCellValue(sheetObj.SheetName(), GetCellIndex(row+1, col)) + width := len(value) + if width > limitWidth { + width = limitWidth + } + if width > maxWidth { + maxWidth = width + } + } + maxWidths[col] = maxWidth + } + + // 设置列宽度 + for col, width := range maxWidths { + colChar := GetColumnIndex(col) + s.ex.SetColWidth(sheetObj.SheetName(), colChar, colChar, float64(width+2)) + } +} diff --git a/pkg/utils/excel/options.go b/pkg/utils/excel/options.go new file mode 100644 index 0000000..69a5cd3 --- /dev/null +++ b/pkg/utils/excel/options.go @@ -0,0 +1,52 @@ +// Package excel ----------------------------- +// @file : options.go +// @author : JJXu +// @contact : wavingBear@163.com +// @time : 2022/12/19 12:41:40 +// ------------------------------------------- +package excel + +import ( + "fmt" + "path/filepath" + "strings" + "time" +) + +type Option func(excel *Excel) + +// func AddSaveFileSuffixWithUnixTime(excel *Excel) { +// excel.SaveName +// fmt.Sprintf("%v", time.Now().Unix()) +// } +// +// 时间戳作为文件后缀 +func OptionFileNameSuffixWithUnixTime(excel *Excel) { + ext := filepath.Ext(excel.SaveName) + name := strings.Split(excel.SaveName, ext)[0] + excel.SaveName = fmt.Sprintf("%s_%v%s", name, time.Now().Unix(), ext) +} + +// 为第一行添加表头 +func AfterAddHeader1(sheet Sheet, text string) func(excel *Excel) { + return func(excel *Excel) { + err := excel.ex.InsertRows(sheet.SheetName(), 1, 1) + if err != nil { + panic(err) + } + err = excel.ex.SetCellValue(sheet.SheetName(), GetCellIndex(1, 1), text) + if err != nil { + panic(err) + } + headerStyleID, errs := excel.ex.NewStyle(NewHeaderOneStyle()) + if errs != nil { + fmt.Println(errs) + err = errs + return + } + //表头设置为默认样式,边框加粗、字体加粗 + _ = excel.ex.SetCellStyle(sheet.SheetName(), "A1", GetCellIndex(1, len(sheet.SheetHeaders())), headerStyleID) + _ = excel.ex.MergeCell(sheet.SheetName(), "A1", GetCellIndex(1, len(sheet.SheetHeaders()))) + + } +} diff --git a/pkg/utils/excel/style.go b/pkg/utils/excel/style.go new file mode 100644 index 0000000..e0829db --- /dev/null +++ b/pkg/utils/excel/style.go @@ -0,0 +1,54 @@ +// Package excel ----------------------------- +// @file : style.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/9/1 13:50 +// ------------------------------------------- +package excel + +import ( + "github.com/xuri/excelize/v2" +) + +func NewDefaultHeaderStyle() *excelize.Style { + return &excelize.Style{ + Border: []excelize.Border{ + {Type: "left", Color: "000000", Style: 2}, + {Type: "top", Color: "000000", Style: 2}, + {Type: "bottom", Color: "000000", Style: 2}, + {Type: "right", Color: "000000", Style: 2}, + }, + Font: &excelize.Font{Bold: true, Size: 12}, + Alignment: &excelize.Alignment{ + Horizontal: "center", + }, + } +} +func NewDefaultDataStyle() *excelize.Style { + return &excelize.Style{ + Border: []excelize.Border{ + {Type: "left", Color: "000000", Style: 1}, + {Type: "bottom", Color: "000000", Style: 1}, + {Type: "right", Color: "000000", Style: 1}, + }, + Font: &excelize.Font{Size: 12}, + Alignment: &excelize.Alignment{ + Horizontal: "left", + }, + } +} + +func NewHeaderOneStyle() *excelize.Style { + return &excelize.Style{ + Border: []excelize.Border{ + {Type: "left", Color: "000000", Style: 2}, + {Type: "top", Color: "000000", Style: 2}, + {Type: "bottom", Color: "000000", Style: 2}, + {Type: "right", Color: "000000", Style: 2}, + }, + Font: &excelize.Font{Bold: true, Size: 14}, + Alignment: &excelize.Alignment{ + Horizontal: "center", + }, + } +} diff --git a/pkg/utils/excel/utils.go b/pkg/utils/excel/utils.go new file mode 100644 index 0000000..a9ee91a --- /dev/null +++ b/pkg/utils/excel/utils.go @@ -0,0 +1,41 @@ +// Package utils ----------------------------- +// @file : excelHelper.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2022/6/9 13:41 +// ------------------------------------------- +package excel + +import ( + "fmt" + "strconv" +) + +// 行列坐标值转换为excel的坐标。注意row和columnCount的初始值都是1 +func GetCellIndex(row int, columnCount int) string { + var column = GetColumnIndex(columnCount) + return fmt.Sprintf("%s%d", column, row) +} + +// 获取excel的列索引 +var columnIndices = []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"} + +func GetColumnIndex(num int) string { + num-- + var column = columnIndices[num%26] + for num = num / 26; num > 0; num = num / 26 { + column = columnIndices[(num-1)%26] + column + num-- + } + return column +} + +func Int[T int | uint | uint8 | uint32 | uint64 | int32 | int64](value string) T { + v, _ := strconv.Atoi(value) + return T(v) +} + +func Float[T float64 | float32](value string) T { + v, _ := strconv.ParseFloat(value, 64) + return T(v) +} diff --git a/pkg/utils/excel/writer.go b/pkg/utils/excel/writer.go new file mode 100644 index 0000000..0e053d7 --- /dev/null +++ b/pkg/utils/excel/writer.go @@ -0,0 +1,81 @@ +// Package excel ----------------------------- +// @file : writer.go +// @author : JJXu +// @contact : wavingbear@163.com +// @time : 2023/9/1 14:11 +// ------------------------------------------- +package excel + +import ( + "errors" + "fmt" + "reflect" +) + +var writerMap = map[reflect.Kind]func(exc *Excel, sheetObj Sheet, SheetData reflect.Value, SheetType reflect.Type, firstRow int) error{ + reflect.Slice: sliceWriter, + reflect.Struct: structWriter, +} + +func RegisterWriter(dataKind reflect.Kind, function func(exc *Excel, sheetObj Sheet, SheetData reflect.Value, SheetType reflect.Type, firstRow int) error) error { + if _, exists := writerMap[dataKind]; exists { + return errors.New(fmt.Sprintf("dataKind: %v has existed", dataKind)) + } + writerMap[dataKind] = function + return nil +} + +func sliceWriter(exc *Excel, sheetObj Sheet, SheetData reflect.Value, SheetDataType reflect.Type, firstRow int) error { + var cellNameList = sheetObj.GetJsonFiledList() + if cellNameList == nil { + cellNameList = exc.getJsonFieldList(SheetDataType) + } + var rowLen = SheetData.Len() + for i := 0; i < rowLen; i++ { + var dataMap = exc.dataToMap(SheetData.Index(i), SheetDataType) + for column, v := range cellNameList { + var axis = GetCellIndex(i+firstRow+1, column+1) + err := exc.ex.SetCellValue(sheetObj.SheetName(), axis, dataMap[v]) + if err != nil { + return err + } + } + } + //设置数据格式 + dataStyleID, errs := exc.ex.NewStyle(NewDefaultDataStyle()) + if errs != nil { + return errs + } + if err := exc.ex.SetCellStyle(sheetObj.SheetName(), GetCellIndex(firstRow+1, 1), GetCellIndex(rowLen+1, len(sheetObj.SheetHeaders())), dataStyleID); err != nil { + return err + } + //设置默认列宽 + //exc.ex.SetColWidth(sheetObj.SheetName(), GetColumnIndex(1), GetColumnIndex(len(sheetObj.SheetHeaders())), 12.0) + exc.autoResetCellWidth(sheetObj) + return nil +} + +func structWriter(exc *Excel, sheetObj Sheet, SheetData reflect.Value, SheetType reflect.Type, firstRow int) error { + var cellNameList = exc.getJsonFieldList(SheetType) + var dataMap = exc.dataToMap(SheetData, SheetType) + for column, v := range cellNameList { + var axis = GetCellIndex(firstRow+1, column+1) + err := exc.ex.SetCellValue(sheetObj.SheetName(), axis, dataMap[v]) + if err != nil { + fmt.Println(err.Error()) + return err + } + } + //设置数据格式 + dataStyleID, err := exc.ex.NewStyle(NewDefaultDataStyle()) + if err != nil { + return err + } + if err = exc.ex.SetCellStyle(sheetObj.SheetName(), GetCellIndex(firstRow, 1), GetCellIndex(firstRow+1, len(sheetObj.SheetHeaders())), dataStyleID); err != nil { + return err + } + //设置默认列宽 + //exc.ex.SetColWidth(sheetObj.SheetName(), GetColumnIndex(1), GetColumnIndex(len(sheetObj.SheetHeaders())), 12.0) + exc.autoResetCellWidth(sheetObj) + return nil +}