// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 // protoc v4.25.1 // source: api/api.proto package api import ( core "gitea.capitan.black/public/gotron/gen/core" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" "math/big" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type ReturnResponseCode int32 const ( Return_SUCCESS ReturnResponseCode = 0 Return_SIGERROR ReturnResponseCode = 1 // error in signature Return_CONTRACT_VALIDATE_ERROR ReturnResponseCode = 2 Return_CONTRACT_EXE_ERROR ReturnResponseCode = 3 Return_BANDWITH_ERROR ReturnResponseCode = 4 Return_DUP_TRANSACTION_ERROR ReturnResponseCode = 5 Return_TAPOS_ERROR ReturnResponseCode = 6 Return_TOO_BIG_TRANSACTION_ERROR ReturnResponseCode = 7 Return_TRANSACTION_EXPIRATION_ERROR ReturnResponseCode = 8 Return_SERVER_BUSY ReturnResponseCode = 9 Return_NO_CONNECTION ReturnResponseCode = 10 Return_NOT_ENOUGH_EFFECTIVE_CONNECTION ReturnResponseCode = 11 Return_OTHER_ERROR ReturnResponseCode = 20 ) // Enum value maps for ReturnResponseCode. var ( ReturnResponseCode_name = map[int32]string{ 0: "SUCCESS", 1: "SIGERROR", 2: "CONTRACT_VALIDATE_ERROR", 3: "CONTRACT_EXE_ERROR", 4: "BANDWITH_ERROR", 5: "DUP_TRANSACTION_ERROR", 6: "TAPOS_ERROR", 7: "TOO_BIG_TRANSACTION_ERROR", 8: "TRANSACTION_EXPIRATION_ERROR", 9: "SERVER_BUSY", 10: "NO_CONNECTION", 11: "NOT_ENOUGH_EFFECTIVE_CONNECTION", 20: "OTHER_ERROR", } ReturnResponseCode_value = map[string]int32{ "SUCCESS": 0, "SIGERROR": 1, "CONTRACT_VALIDATE_ERROR": 2, "CONTRACT_EXE_ERROR": 3, "BANDWITH_ERROR": 4, "DUP_TRANSACTION_ERROR": 5, "TAPOS_ERROR": 6, "TOO_BIG_TRANSACTION_ERROR": 7, "TRANSACTION_EXPIRATION_ERROR": 8, "SERVER_BUSY": 9, "NO_CONNECTION": 10, "NOT_ENOUGH_EFFECTIVE_CONNECTION": 11, "OTHER_ERROR": 20, } ) func (x ReturnResponseCode) Enum() *ReturnResponseCode { p := new(ReturnResponseCode) *p = x return p } func (x ReturnResponseCode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ReturnResponseCode) Descriptor() protoreflect.EnumDescriptor { return file_api_api_proto_enumTypes[0].Descriptor() } func (ReturnResponseCode) Type() protoreflect.EnumType { return &file_api_api_proto_enumTypes[0] } func (x ReturnResponseCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ReturnResponseCode.Descriptor instead. func (ReturnResponseCode) EnumDescriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{0, 0} } type TransactionSignWeight_ResultResponseCode int32 const ( TransactionSignWeight_Result_ENOUGH_PERMISSION TransactionSignWeight_ResultResponseCode = 0 TransactionSignWeight_Result_NOT_ENOUGH_PERMISSION TransactionSignWeight_ResultResponseCode = 1 // error in TransactionSignWeight_Result_SIGNATURE_FORMAT_ERROR TransactionSignWeight_ResultResponseCode = 2 TransactionSignWeight_Result_COMPUTE_ADDRESS_ERROR TransactionSignWeight_ResultResponseCode = 3 TransactionSignWeight_Result_PERMISSION_ERROR TransactionSignWeight_ResultResponseCode = 4 //The key is not in permission TransactionSignWeight_Result_OTHER_ERROR TransactionSignWeight_ResultResponseCode = 20 ) // Enum value maps for TransactionSignWeight_ResultResponseCode. var ( TransactionSignWeight_ResultResponseCode_name = map[int32]string{ 0: "ENOUGH_PERMISSION", 1: "NOT_ENOUGH_PERMISSION", 2: "SIGNATURE_FORMAT_ERROR", 3: "COMPUTE_ADDRESS_ERROR", 4: "PERMISSION_ERROR", 20: "OTHER_ERROR", } TransactionSignWeight_ResultResponseCode_value = map[string]int32{ "ENOUGH_PERMISSION": 0, "NOT_ENOUGH_PERMISSION": 1, "SIGNATURE_FORMAT_ERROR": 2, "COMPUTE_ADDRESS_ERROR": 3, "PERMISSION_ERROR": 4, "OTHER_ERROR": 20, } ) func (x TransactionSignWeight_ResultResponseCode) Enum() *TransactionSignWeight_ResultResponseCode { p := new(TransactionSignWeight_ResultResponseCode) *p = x return p } func (x TransactionSignWeight_ResultResponseCode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TransactionSignWeight_ResultResponseCode) Descriptor() protoreflect.EnumDescriptor { return file_api_api_proto_enumTypes[1].Descriptor() } func (TransactionSignWeight_ResultResponseCode) Type() protoreflect.EnumType { return &file_api_api_proto_enumTypes[1] } func (x TransactionSignWeight_ResultResponseCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TransactionSignWeight_ResultResponseCode.Descriptor instead. func (TransactionSignWeight_ResultResponseCode) EnumDescriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{39, 0, 0} } type TransactionApprovedList_ResultResponseCode int32 const ( TransactionApprovedList_Result_SUCCESS TransactionApprovedList_ResultResponseCode = 0 TransactionApprovedList_Result_SIGNATURE_FORMAT_ERROR TransactionApprovedList_ResultResponseCode = 1 TransactionApprovedList_Result_COMPUTE_ADDRESS_ERROR TransactionApprovedList_ResultResponseCode = 2 TransactionApprovedList_Result_OTHER_ERROR TransactionApprovedList_ResultResponseCode = 20 ) // Enum value maps for TransactionApprovedList_ResultResponseCode. var ( TransactionApprovedList_ResultResponseCode_name = map[int32]string{ 0: "SUCCESS", 1: "SIGNATURE_FORMAT_ERROR", 2: "COMPUTE_ADDRESS_ERROR", 20: "OTHER_ERROR", } TransactionApprovedList_ResultResponseCode_value = map[string]int32{ "SUCCESS": 0, "SIGNATURE_FORMAT_ERROR": 1, "COMPUTE_ADDRESS_ERROR": 2, "OTHER_ERROR": 20, } ) func (x TransactionApprovedList_ResultResponseCode) Enum() *TransactionApprovedList_ResultResponseCode { p := new(TransactionApprovedList_ResultResponseCode) *p = x return p } func (x TransactionApprovedList_ResultResponseCode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TransactionApprovedList_ResultResponseCode) Descriptor() protoreflect.EnumDescriptor { return file_api_api_proto_enumTypes[2].Descriptor() } func (TransactionApprovedList_ResultResponseCode) Type() protoreflect.EnumType { return &file_api_api_proto_enumTypes[2] } func (x TransactionApprovedList_ResultResponseCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TransactionApprovedList_ResultResponseCode.Descriptor instead. func (TransactionApprovedList_ResultResponseCode) EnumDescriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{40, 0, 0} } type Return struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result bool `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` Code ReturnResponseCode `protobuf:"varint,2,opt,name=code,proto3,enum=protocol.ReturnResponseCode" json:"code,omitempty"` Message []byte `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` } func (x *Return) Reset() { *x = Return{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Return) String() string { return protoimpl.X.MessageStringOf(x) } func (*Return) ProtoMessage() {} func (x *Return) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Return.ProtoReflect.Descriptor instead. func (*Return) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{0} } func (x *Return) GetResult() bool { if x != nil { return x.Result } return false } func (x *Return) GetCode() ReturnResponseCode { if x != nil { return x.Code } return Return_SUCCESS } func (x *Return) GetMessage() []byte { if x != nil { return x.Message } return nil } type BlockReference struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockNum int64 `protobuf:"varint,1,opt,name=block_num,json=blockNum,proto3" json:"block_num,omitempty"` BlockHash []byte `protobuf:"bytes,2,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` } func (x *BlockReference) Reset() { *x = BlockReference{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlockReference) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlockReference) ProtoMessage() {} func (x *BlockReference) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BlockReference.ProtoReflect.Descriptor instead. func (*BlockReference) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{1} } func (x *BlockReference) GetBlockNum() int64 { if x != nil { return x.BlockNum } return 0 } func (x *BlockReference) GetBlockHash() []byte { if x != nil { return x.BlockHash } return nil } type WitnessList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Witnesses []*core.Witness `protobuf:"bytes,1,rep,name=witnesses,proto3" json:"witnesses,omitempty"` } func (x *WitnessList) Reset() { *x = WitnessList{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WitnessList) String() string { return protoimpl.X.MessageStringOf(x) } func (*WitnessList) ProtoMessage() {} func (x *WitnessList) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WitnessList.ProtoReflect.Descriptor instead. func (*WitnessList) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{2} } func (x *WitnessList) GetWitnesses() []*core.Witness { if x != nil { return x.Witnesses } return nil } type ProposalList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Proposals []*core.Proposal `protobuf:"bytes,1,rep,name=proposals,proto3" json:"proposals,omitempty"` } func (x *ProposalList) Reset() { *x = ProposalList{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProposalList) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProposalList) ProtoMessage() {} func (x *ProposalList) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ProposalList.ProtoReflect.Descriptor instead. func (*ProposalList) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{3} } func (x *ProposalList) GetProposals() []*core.Proposal { if x != nil { return x.Proposals } return nil } type ExchangeList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchanges []*core.Exchange `protobuf:"bytes,1,rep,name=exchanges,proto3" json:"exchanges,omitempty"` } func (x *ExchangeList) Reset() { *x = ExchangeList{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExchangeList) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExchangeList) ProtoMessage() {} func (x *ExchangeList) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExchangeList.ProtoReflect.Descriptor instead. func (*ExchangeList) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{4} } func (x *ExchangeList) GetExchanges() []*core.Exchange { if x != nil { return x.Exchanges } return nil } type AssetIssueList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AssetIssue []*core.AssetIssueContract `protobuf:"bytes,1,rep,name=assetIssue,proto3" json:"assetIssue,omitempty"` } func (x *AssetIssueList) Reset() { *x = AssetIssueList{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AssetIssueList) String() string { return protoimpl.X.MessageStringOf(x) } func (*AssetIssueList) ProtoMessage() {} func (x *AssetIssueList) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AssetIssueList.ProtoReflect.Descriptor instead. func (*AssetIssueList) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{5} } func (x *AssetIssueList) GetAssetIssue() []*core.AssetIssueContract { if x != nil { return x.AssetIssue } return nil } type BlockList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Block []*core.Block `protobuf:"bytes,1,rep,name=block,proto3" json:"block,omitempty"` } func (x *BlockList) Reset() { *x = BlockList{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlockList) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlockList) ProtoMessage() {} func (x *BlockList) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BlockList.ProtoReflect.Descriptor instead. func (*BlockList) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{6} } func (x *BlockList) GetBlock() []*core.Block { if x != nil { return x.Block } return nil } type TransactionList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Transaction []*core.Transaction `protobuf:"bytes,1,rep,name=transaction,proto3" json:"transaction,omitempty"` } func (x *TransactionList) Reset() { *x = TransactionList{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionList) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionList) ProtoMessage() {} func (x *TransactionList) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionList.ProtoReflect.Descriptor instead. func (*TransactionList) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{7} } func (x *TransactionList) GetTransaction() []*core.Transaction { if x != nil { return x.Transaction } return nil } type TransactionIdList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TxId []string `protobuf:"bytes,1,rep,name=txId,proto3" json:"txId,omitempty"` } func (x *TransactionIdList) Reset() { *x = TransactionIdList{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionIdList) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionIdList) ProtoMessage() {} func (x *TransactionIdList) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionIdList.ProtoReflect.Descriptor instead. func (*TransactionIdList) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{8} } func (x *TransactionIdList) GetTxId() []string { if x != nil { return x.TxId } return nil } type DelegatedResourceMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FromAddress []byte `protobuf:"bytes,1,opt,name=fromAddress,proto3" json:"fromAddress,omitempty"` ToAddress []byte `protobuf:"bytes,2,opt,name=toAddress,proto3" json:"toAddress,omitempty"` } func (x *DelegatedResourceMessage) Reset() { *x = DelegatedResourceMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DelegatedResourceMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*DelegatedResourceMessage) ProtoMessage() {} func (x *DelegatedResourceMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DelegatedResourceMessage.ProtoReflect.Descriptor instead. func (*DelegatedResourceMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{9} } func (x *DelegatedResourceMessage) GetFromAddress() []byte { if x != nil { return x.FromAddress } return nil } func (x *DelegatedResourceMessage) GetToAddress() []byte { if x != nil { return x.ToAddress } return nil } type DelegatedResourceList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DelegatedResource []*core.DelegatedResource `protobuf:"bytes,1,rep,name=delegatedResource,proto3" json:"delegatedResource,omitempty"` } func (x *DelegatedResourceList) Reset() { *x = DelegatedResourceList{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DelegatedResourceList) String() string { return protoimpl.X.MessageStringOf(x) } func (*DelegatedResourceList) ProtoMessage() {} func (x *DelegatedResourceList) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DelegatedResourceList.ProtoReflect.Descriptor instead. func (*DelegatedResourceList) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{10} } func (x *DelegatedResourceList) GetDelegatedResource() []*core.DelegatedResource { if x != nil { return x.DelegatedResource } return nil } type GetAvailableUnfreezeCountRequestMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OwnerAddress []byte `protobuf:"bytes,1,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` } func (x *GetAvailableUnfreezeCountRequestMessage) Reset() { *x = GetAvailableUnfreezeCountRequestMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetAvailableUnfreezeCountRequestMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetAvailableUnfreezeCountRequestMessage) ProtoMessage() {} func (x *GetAvailableUnfreezeCountRequestMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetAvailableUnfreezeCountRequestMessage.ProtoReflect.Descriptor instead. func (*GetAvailableUnfreezeCountRequestMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{11} } func (x *GetAvailableUnfreezeCountRequestMessage) GetOwnerAddress() []byte { if x != nil { return x.OwnerAddress } return nil } type GetAvailableUnfreezeCountResponseMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` } func (x *GetAvailableUnfreezeCountResponseMessage) Reset() { *x = GetAvailableUnfreezeCountResponseMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetAvailableUnfreezeCountResponseMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetAvailableUnfreezeCountResponseMessage) ProtoMessage() {} func (x *GetAvailableUnfreezeCountResponseMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetAvailableUnfreezeCountResponseMessage.ProtoReflect.Descriptor instead. func (*GetAvailableUnfreezeCountResponseMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{12} } func (x *GetAvailableUnfreezeCountResponseMessage) GetCount() int64 { if x != nil { return x.Count } return 0 } type CanDelegatedMaxSizeRequestMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` OwnerAddress []byte `protobuf:"bytes,2,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` } func (x *CanDelegatedMaxSizeRequestMessage) Reset() { *x = CanDelegatedMaxSizeRequestMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CanDelegatedMaxSizeRequestMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*CanDelegatedMaxSizeRequestMessage) ProtoMessage() {} func (x *CanDelegatedMaxSizeRequestMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CanDelegatedMaxSizeRequestMessage.ProtoReflect.Descriptor instead. func (*CanDelegatedMaxSizeRequestMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{13} } func (x *CanDelegatedMaxSizeRequestMessage) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *CanDelegatedMaxSizeRequestMessage) GetOwnerAddress() []byte { if x != nil { return x.OwnerAddress } return nil } type CanDelegatedMaxSizeResponseMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MaxSize int64 `protobuf:"varint,1,opt,name=max_size,json=maxSize,proto3" json:"max_size,omitempty"` } func (x *CanDelegatedMaxSizeResponseMessage) Reset() { *x = CanDelegatedMaxSizeResponseMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CanDelegatedMaxSizeResponseMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*CanDelegatedMaxSizeResponseMessage) ProtoMessage() {} func (x *CanDelegatedMaxSizeResponseMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CanDelegatedMaxSizeResponseMessage.ProtoReflect.Descriptor instead. func (*CanDelegatedMaxSizeResponseMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{14} } func (x *CanDelegatedMaxSizeResponseMessage) GetMaxSize() int64 { if x != nil { return x.MaxSize } return 0 } type CanWithdrawUnfreezeAmountRequestMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OwnerAddress []byte `protobuf:"bytes,1,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` Timestamp int64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *CanWithdrawUnfreezeAmountRequestMessage) Reset() { *x = CanWithdrawUnfreezeAmountRequestMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CanWithdrawUnfreezeAmountRequestMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*CanWithdrawUnfreezeAmountRequestMessage) ProtoMessage() {} func (x *CanWithdrawUnfreezeAmountRequestMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CanWithdrawUnfreezeAmountRequestMessage.ProtoReflect.Descriptor instead. func (*CanWithdrawUnfreezeAmountRequestMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{15} } func (x *CanWithdrawUnfreezeAmountRequestMessage) GetOwnerAddress() []byte { if x != nil { return x.OwnerAddress } return nil } func (x *CanWithdrawUnfreezeAmountRequestMessage) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } type CanWithdrawUnfreezeAmountResponseMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Amount int64 `protobuf:"varint,1,opt,name=amount,proto3" json:"amount,omitempty"` } func (x *CanWithdrawUnfreezeAmountResponseMessage) Reset() { *x = CanWithdrawUnfreezeAmountResponseMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CanWithdrawUnfreezeAmountResponseMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*CanWithdrawUnfreezeAmountResponseMessage) ProtoMessage() {} func (x *CanWithdrawUnfreezeAmountResponseMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CanWithdrawUnfreezeAmountResponseMessage.ProtoReflect.Descriptor instead. func (*CanWithdrawUnfreezeAmountResponseMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{16} } func (x *CanWithdrawUnfreezeAmountResponseMessage) GetAmount() int64 { if x != nil { return x.Amount } return 0 } type PricesResponseMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Prices string `protobuf:"bytes,1,opt,name=prices,proto3" json:"prices,omitempty"` } func (x *PricesResponseMessage) Reset() { *x = PricesResponseMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PricesResponseMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*PricesResponseMessage) ProtoMessage() {} func (x *PricesResponseMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PricesResponseMessage.ProtoReflect.Descriptor instead. func (*PricesResponseMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{17} } func (x *PricesResponseMessage) GetPrices() string { if x != nil { return x.Prices } return "" } // Gossip node list type NodeList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` } func (x *NodeList) Reset() { *x = NodeList{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NodeList) String() string { return protoimpl.X.MessageStringOf(x) } func (*NodeList) ProtoMessage() {} func (x *NodeList) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NodeList.ProtoReflect.Descriptor instead. func (*NodeList) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{18} } func (x *NodeList) GetNodes() []*Node { if x != nil { return x.Nodes } return nil } // Gossip node type Node struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` } func (x *Node) Reset() { *x = Node{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Node) String() string { return protoimpl.X.MessageStringOf(x) } func (*Node) ProtoMessage() {} func (x *Node) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Node.ProtoReflect.Descriptor instead. func (*Node) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{19} } func (x *Node) GetAddress() *Address { if x != nil { return x.Address } return nil } // Gossip node address type Address struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Host []byte `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` } func (x *Address) Reset() { *x = Address{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Address) String() string { return protoimpl.X.MessageStringOf(x) } func (*Address) ProtoMessage() {} func (x *Address) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Address.ProtoReflect.Descriptor instead. func (*Address) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{20} } func (x *Address) GetHost() []byte { if x != nil { return x.Host } return nil } func (x *Address) GetPort() int32 { if x != nil { return x.Port } return 0 } type EmptyMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *EmptyMessage) Reset() { *x = EmptyMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EmptyMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*EmptyMessage) ProtoMessage() {} func (x *EmptyMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EmptyMessage.ProtoReflect.Descriptor instead. func (*EmptyMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{21} } type NumberMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Num int64 `protobuf:"varint,1,opt,name=num,proto3" json:"num,omitempty"` } func (x *NumberMessage) Reset() { *x = NumberMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NumberMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*NumberMessage) ProtoMessage() {} func (x *NumberMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NumberMessage.ProtoReflect.Descriptor instead. func (*NumberMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{22} } func (x *NumberMessage) GetNum() int64 { if x != nil { return x.Num } return 0 } type BytesMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } func (x *BytesMessage) Reset() { *x = BytesMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BytesMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*BytesMessage) ProtoMessage() {} func (x *BytesMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BytesMessage.ProtoReflect.Descriptor instead. func (*BytesMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{23} } func (x *BytesMessage) GetValue() []byte { if x != nil { return x.Value } return nil } type TimeMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BeginInMilliseconds int64 `protobuf:"varint,1,opt,name=beginInMilliseconds,proto3" json:"beginInMilliseconds,omitempty"` EndInMilliseconds int64 `protobuf:"varint,2,opt,name=endInMilliseconds,proto3" json:"endInMilliseconds,omitempty"` } func (x *TimeMessage) Reset() { *x = TimeMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TimeMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*TimeMessage) ProtoMessage() {} func (x *TimeMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TimeMessage.ProtoReflect.Descriptor instead. func (*TimeMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{24} } func (x *TimeMessage) GetBeginInMilliseconds() int64 { if x != nil { return x.BeginInMilliseconds } return 0 } func (x *TimeMessage) GetEndInMilliseconds() int64 { if x != nil { return x.EndInMilliseconds } return 0 } type BlockReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IdOrNum string `protobuf:"bytes,1,opt,name=id_or_num,json=idOrNum,proto3" json:"id_or_num,omitempty"` Detail bool `protobuf:"varint,2,opt,name=detail,proto3" json:"detail,omitempty"` } func (x *BlockReq) Reset() { *x = BlockReq{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlockReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlockReq) ProtoMessage() {} func (x *BlockReq) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BlockReq.ProtoReflect.Descriptor instead. func (*BlockReq) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{25} } func (x *BlockReq) GetIdOrNum() string { if x != nil { return x.IdOrNum } return "" } func (x *BlockReq) GetDetail() bool { if x != nil { return x.Detail } return false } type BlockLimit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartNum int64 `protobuf:"varint,1,opt,name=startNum,proto3" json:"startNum,omitempty"` EndNum int64 `protobuf:"varint,2,opt,name=endNum,proto3" json:"endNum,omitempty"` } func (x *BlockLimit) Reset() { *x = BlockLimit{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlockLimit) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlockLimit) ProtoMessage() {} func (x *BlockLimit) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BlockLimit.ProtoReflect.Descriptor instead. func (*BlockLimit) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{26} } func (x *BlockLimit) GetStartNum() int64 { if x != nil { return x.StartNum } return 0 } func (x *BlockLimit) GetEndNum() int64 { if x != nil { return x.EndNum } return 0 } type TransactionLimit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TransactionId []byte `protobuf:"bytes,1,opt,name=transactionId,proto3" json:"transactionId,omitempty"` LimitNum int64 `protobuf:"varint,2,opt,name=limitNum,proto3" json:"limitNum,omitempty"` } func (x *TransactionLimit) Reset() { *x = TransactionLimit{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionLimit) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionLimit) ProtoMessage() {} func (x *TransactionLimit) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionLimit.ProtoReflect.Descriptor instead. func (*TransactionLimit) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{27} } func (x *TransactionLimit) GetTransactionId() []byte { if x != nil { return x.TransactionId } return nil } func (x *TransactionLimit) GetLimitNum() int64 { if x != nil { return x.LimitNum } return 0 } type AccountPaginated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Account *core.Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` Limit int64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` } func (x *AccountPaginated) Reset() { *x = AccountPaginated{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccountPaginated) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccountPaginated) ProtoMessage() {} func (x *AccountPaginated) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AccountPaginated.ProtoReflect.Descriptor instead. func (*AccountPaginated) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{28} } func (x *AccountPaginated) GetAccount() *core.Account { if x != nil { return x.Account } return nil } func (x *AccountPaginated) GetOffset() int64 { if x != nil { return x.Offset } return 0 } func (x *AccountPaginated) GetLimit() int64 { if x != nil { return x.Limit } return 0 } type TimePaginatedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TimeMessage *TimeMessage `protobuf:"bytes,1,opt,name=timeMessage,proto3" json:"timeMessage,omitempty"` Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` Limit int64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` } func (x *TimePaginatedMessage) Reset() { *x = TimePaginatedMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TimePaginatedMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*TimePaginatedMessage) ProtoMessage() {} func (x *TimePaginatedMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TimePaginatedMessage.ProtoReflect.Descriptor instead. func (*TimePaginatedMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{29} } func (x *TimePaginatedMessage) GetTimeMessage() *TimeMessage { if x != nil { return x.TimeMessage } return nil } func (x *TimePaginatedMessage) GetOffset() int64 { if x != nil { return x.Offset } return 0 } func (x *TimePaginatedMessage) GetLimit() int64 { if x != nil { return x.Limit } return 0 } // deprecated type AccountNetMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FreeNetUsed int64 `protobuf:"varint,1,opt,name=freeNetUsed,proto3" json:"freeNetUsed,omitempty"` FreeNetLimit int64 `protobuf:"varint,2,opt,name=freeNetLimit,proto3" json:"freeNetLimit,omitempty"` NetUsed int64 `protobuf:"varint,3,opt,name=NetUsed,proto3" json:"NetUsed,omitempty"` NetLimit int64 `protobuf:"varint,4,opt,name=NetLimit,proto3" json:"NetLimit,omitempty"` AssetNetUsed map[string]int64 `protobuf:"bytes,5,rep,name=assetNetUsed,proto3" json:"assetNetUsed,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` AssetNetLimit map[string]int64 `protobuf:"bytes,6,rep,name=assetNetLimit,proto3" json:"assetNetLimit,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` TotalNetLimit int64 `protobuf:"varint,7,opt,name=TotalNetLimit,proto3" json:"TotalNetLimit,omitempty"` TotalNetWeight int64 `protobuf:"varint,8,opt,name=TotalNetWeight,proto3" json:"TotalNetWeight,omitempty"` } func (x *AccountNetMessage) Reset() { *x = AccountNetMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccountNetMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccountNetMessage) ProtoMessage() {} func (x *AccountNetMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AccountNetMessage.ProtoReflect.Descriptor instead. func (*AccountNetMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{30} } func (x *AccountNetMessage) GetFreeNetUsed() int64 { if x != nil { return x.FreeNetUsed } return 0 } func (x *AccountNetMessage) GetFreeNetLimit() int64 { if x != nil { return x.FreeNetLimit } return 0 } func (x *AccountNetMessage) GetNetUsed() int64 { if x != nil { return x.NetUsed } return 0 } func (x *AccountNetMessage) GetNetLimit() int64 { if x != nil { return x.NetLimit } return 0 } func (x *AccountNetMessage) GetAssetNetUsed() map[string]int64 { if x != nil { return x.AssetNetUsed } return nil } func (x *AccountNetMessage) GetAssetNetLimit() map[string]int64 { if x != nil { return x.AssetNetLimit } return nil } func (x *AccountNetMessage) GetTotalNetLimit() int64 { if x != nil { return x.TotalNetLimit } return 0 } func (x *AccountNetMessage) GetTotalNetWeight() int64 { if x != nil { return x.TotalNetWeight } return 0 } type AccountResourceMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FreeNetUsed int64 `protobuf:"varint,1,opt,name=freeNetUsed,proto3" json:"freeNetUsed,omitempty"` FreeNetLimit int64 `protobuf:"varint,2,opt,name=freeNetLimit,proto3" json:"freeNetLimit,omitempty"` NetUsed int64 `protobuf:"varint,3,opt,name=NetUsed,proto3" json:"NetUsed,omitempty"` NetLimit int64 `protobuf:"varint,4,opt,name=NetLimit,proto3" json:"NetLimit,omitempty"` AssetNetUsed map[string]int64 `protobuf:"bytes,5,rep,name=assetNetUsed,proto3" json:"assetNetUsed,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` AssetNetLimit map[string]int64 `protobuf:"bytes,6,rep,name=assetNetLimit,proto3" json:"assetNetLimit,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` TotalNetLimit int64 `protobuf:"varint,7,opt,name=TotalNetLimit,proto3" json:"TotalNetLimit,omitempty"` TotalNetWeight int64 `protobuf:"varint,8,opt,name=TotalNetWeight,proto3" json:"TotalNetWeight,omitempty"` TotalTronPowerWeight int64 `protobuf:"varint,9,opt,name=TotalTronPowerWeight,proto3" json:"TotalTronPowerWeight,omitempty"` TronPowerUsed int64 `protobuf:"varint,10,opt,name=tronPowerUsed,proto3" json:"tronPowerUsed,omitempty"` TronPowerLimit int64 `protobuf:"varint,11,opt,name=tronPowerLimit,proto3" json:"tronPowerLimit,omitempty"` EnergyUsed int64 `protobuf:"varint,13,opt,name=EnergyUsed,proto3" json:"EnergyUsed,omitempty"` EnergyLimit int64 `protobuf:"varint,14,opt,name=EnergyLimit,proto3" json:"EnergyLimit,omitempty"` TotalEnergyLimit int64 `protobuf:"varint,15,opt,name=TotalEnergyLimit,proto3" json:"TotalEnergyLimit,omitempty"` TotalEnergyWeight int64 `protobuf:"varint,16,opt,name=TotalEnergyWeight,proto3" json:"TotalEnergyWeight,omitempty"` StorageUsed int64 `protobuf:"varint,21,opt,name=storageUsed,proto3" json:"storageUsed,omitempty"` StorageLimit int64 `protobuf:"varint,22,opt,name=storageLimit,proto3" json:"storageLimit,omitempty"` } func (x *AccountResourceMessage) Reset() { *x = AccountResourceMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccountResourceMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccountResourceMessage) ProtoMessage() {} func (x *AccountResourceMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AccountResourceMessage.ProtoReflect.Descriptor instead. func (*AccountResourceMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{31} } func (x *AccountResourceMessage) GetFreeNetUsed() int64 { if x != nil { return x.FreeNetUsed } return 0 } func (x *AccountResourceMessage) GetFreeNetLimit() int64 { if x != nil { return x.FreeNetLimit } return 0 } func (x *AccountResourceMessage) GetNetUsed() int64 { if x != nil { return x.NetUsed } return 0 } func (x *AccountResourceMessage) GetNetLimit() int64 { if x != nil { return x.NetLimit } return 0 } func (x *AccountResourceMessage) GetAssetNetUsed() map[string]int64 { if x != nil { return x.AssetNetUsed } return nil } func (x *AccountResourceMessage) GetAssetNetLimit() map[string]int64 { if x != nil { return x.AssetNetLimit } return nil } func (x *AccountResourceMessage) GetTotalNetLimit() int64 { if x != nil { return x.TotalNetLimit } return 0 } func (x *AccountResourceMessage) GetTotalNetWeight() int64 { if x != nil { return x.TotalNetWeight } return 0 } func (x *AccountResourceMessage) GetTotalTronPowerWeight() int64 { if x != nil { return x.TotalTronPowerWeight } return 0 } func (x *AccountResourceMessage) GetTronPowerUsed() int64 { if x != nil { return x.TronPowerUsed } return 0 } func (x *AccountResourceMessage) GetTronPowerLimit() int64 { if x != nil { return x.TronPowerLimit } return 0 } func (x *AccountResourceMessage) GetEnergyUsed() int64 { if x != nil { return x.EnergyUsed } return 0 } func (x *AccountResourceMessage) GetEnergyLimit() int64 { if x != nil { return x.EnergyLimit } return 0 } func (x *AccountResourceMessage) GetTotalEnergyLimit() int64 { if x != nil { return x.TotalEnergyLimit } return 0 } func (x *AccountResourceMessage) GetTotalEnergyWeight() int64 { if x != nil { return x.TotalEnergyWeight } return 0 } func (x *AccountResourceMessage) GetStorageUsed() int64 { if x != nil { return x.StorageUsed } return 0 } func (x *AccountResourceMessage) GetStorageLimit() int64 { if x != nil { return x.StorageLimit } return 0 } type PaginatedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` Limit int64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` } func (x *PaginatedMessage) Reset() { *x = PaginatedMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PaginatedMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*PaginatedMessage) ProtoMessage() {} func (x *PaginatedMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PaginatedMessage.ProtoReflect.Descriptor instead. func (*PaginatedMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{32} } func (x *PaginatedMessage) GetOffset() int64 { if x != nil { return x.Offset } return 0 } func (x *PaginatedMessage) GetLimit() int64 { if x != nil { return x.Limit } return 0 } type TransactionExtention struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Transaction *core.Transaction `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"` Txid []byte `protobuf:"bytes,2,opt,name=txid,proto3" json:"txid,omitempty"` //transaction id = sha256(transaction.rowdata) ConstantResult [][]byte `protobuf:"bytes,3,rep,name=constant_result,json=constantResult,proto3" json:"constant_result,omitempty"` Result *Return `protobuf:"bytes,4,opt,name=result,proto3" json:"result,omitempty"` EnergyUsed int64 `protobuf:"varint,5,opt,name=energy_used,json=energyUsed,proto3" json:"energy_used,omitempty"` Logs []*core.TransactionInfo_Log `protobuf:"bytes,6,rep,name=logs,proto3" json:"logs,omitempty"` InternalTransactions []*core.InternalTransaction `protobuf:"bytes,7,rep,name=internal_transactions,json=internalTransactions,proto3" json:"internal_transactions,omitempty"` EnergyPenalty int64 `protobuf:"varint,8,opt,name=energy_penalty,json=energyPenalty,proto3" json:"energy_penalty,omitempty"` Amount *big.Int } func (x *TransactionExtention) Reset() { *x = TransactionExtention{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionExtention) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionExtention) ProtoMessage() {} func (x *TransactionExtention) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionExtention.ProtoReflect.Descriptor instead. func (*TransactionExtention) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{33} } func (x *TransactionExtention) GetTransaction() *core.Transaction { if x != nil { return x.Transaction } return nil } func (x *TransactionExtention) GetTxid() []byte { if x != nil { return x.Txid } return nil } func (x *TransactionExtention) GetConstantResult() [][]byte { if x != nil { return x.ConstantResult } return nil } func (x *TransactionExtention) GetResult() *Return { if x != nil { return x.Result } return nil } func (x *TransactionExtention) GetEnergyUsed() int64 { if x != nil { return x.EnergyUsed } return 0 } func (x *TransactionExtention) GetLogs() []*core.TransactionInfo_Log { if x != nil { return x.Logs } return nil } func (x *TransactionExtention) GetInternalTransactions() []*core.InternalTransaction { if x != nil { return x.InternalTransactions } return nil } func (x *TransactionExtention) GetEnergyPenalty() int64 { if x != nil { return x.EnergyPenalty } return 0 } type EstimateEnergyMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *Return `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` EnergyRequired int64 `protobuf:"varint,2,opt,name=energy_required,json=energyRequired,proto3" json:"energy_required,omitempty"` } func (x *EstimateEnergyMessage) Reset() { *x = EstimateEnergyMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EstimateEnergyMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*EstimateEnergyMessage) ProtoMessage() {} func (x *EstimateEnergyMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EstimateEnergyMessage.ProtoReflect.Descriptor instead. func (*EstimateEnergyMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{34} } func (x *EstimateEnergyMessage) GetResult() *Return { if x != nil { return x.Result } return nil } func (x *EstimateEnergyMessage) GetEnergyRequired() int64 { if x != nil { return x.EnergyRequired } return 0 } type BlockExtention struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Transactions []*TransactionExtention `protobuf:"bytes,1,rep,name=transactions,proto3" json:"transactions,omitempty"` BlockHeader *core.BlockHeader `protobuf:"bytes,2,opt,name=block_header,json=blockHeader,proto3" json:"block_header,omitempty"` Blockid []byte `protobuf:"bytes,3,opt,name=blockid,proto3" json:"blockid,omitempty"` } func (x *BlockExtention) Reset() { *x = BlockExtention{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlockExtention) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlockExtention) ProtoMessage() {} func (x *BlockExtention) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BlockExtention.ProtoReflect.Descriptor instead. func (*BlockExtention) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{35} } func (x *BlockExtention) GetTransactions() []*TransactionExtention { if x != nil { return x.Transactions } return nil } func (x *BlockExtention) GetBlockHeader() *core.BlockHeader { if x != nil { return x.BlockHeader } return nil } func (x *BlockExtention) GetBlockid() []byte { if x != nil { return x.Blockid } return nil } type BlockListExtention struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Block []*BlockExtention `protobuf:"bytes,1,rep,name=block,proto3" json:"block,omitempty"` } func (x *BlockListExtention) Reset() { *x = BlockListExtention{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlockListExtention) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlockListExtention) ProtoMessage() {} func (x *BlockListExtention) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BlockListExtention.ProtoReflect.Descriptor instead. func (*BlockListExtention) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{36} } func (x *BlockListExtention) GetBlock() []*BlockExtention { if x != nil { return x.Block } return nil } type TransactionListExtention struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Transaction []*TransactionExtention `protobuf:"bytes,1,rep,name=transaction,proto3" json:"transaction,omitempty"` } func (x *TransactionListExtention) Reset() { *x = TransactionListExtention{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionListExtention) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionListExtention) ProtoMessage() {} func (x *TransactionListExtention) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionListExtention.ProtoReflect.Descriptor instead. func (*TransactionListExtention) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{37} } func (x *TransactionListExtention) GetTransaction() []*TransactionExtention { if x != nil { return x.Transaction } return nil } type BlockIncrementalMerkleTree struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"` MerkleTree *core.IncrementalMerkleTree `protobuf:"bytes,2,opt,name=merkleTree,proto3" json:"merkleTree,omitempty"` } func (x *BlockIncrementalMerkleTree) Reset() { *x = BlockIncrementalMerkleTree{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlockIncrementalMerkleTree) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlockIncrementalMerkleTree) ProtoMessage() {} func (x *BlockIncrementalMerkleTree) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BlockIncrementalMerkleTree.ProtoReflect.Descriptor instead. func (*BlockIncrementalMerkleTree) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{38} } func (x *BlockIncrementalMerkleTree) GetNumber() int64 { if x != nil { return x.Number } return 0 } func (x *BlockIncrementalMerkleTree) GetMerkleTree() *core.IncrementalMerkleTree { if x != nil { return x.MerkleTree } return nil } type TransactionSignWeight struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Permission *core.Permission `protobuf:"bytes,1,opt,name=permission,proto3" json:"permission,omitempty"` ApprovedList [][]byte `protobuf:"bytes,2,rep,name=approved_list,json=approvedList,proto3" json:"approved_list,omitempty"` CurrentWeight int64 `protobuf:"varint,3,opt,name=current_weight,json=currentWeight,proto3" json:"current_weight,omitempty"` Result *TransactionSignWeight_Result `protobuf:"bytes,4,opt,name=result,proto3" json:"result,omitempty"` Transaction *TransactionExtention `protobuf:"bytes,5,opt,name=transaction,proto3" json:"transaction,omitempty"` } func (x *TransactionSignWeight) Reset() { *x = TransactionSignWeight{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionSignWeight) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionSignWeight) ProtoMessage() {} func (x *TransactionSignWeight) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionSignWeight.ProtoReflect.Descriptor instead. func (*TransactionSignWeight) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{39} } func (x *TransactionSignWeight) GetPermission() *core.Permission { if x != nil { return x.Permission } return nil } func (x *TransactionSignWeight) GetApprovedList() [][]byte { if x != nil { return x.ApprovedList } return nil } func (x *TransactionSignWeight) GetCurrentWeight() int64 { if x != nil { return x.CurrentWeight } return 0 } func (x *TransactionSignWeight) GetResult() *TransactionSignWeight_Result { if x != nil { return x.Result } return nil } func (x *TransactionSignWeight) GetTransaction() *TransactionExtention { if x != nil { return x.Transaction } return nil } type TransactionApprovedList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ApprovedList [][]byte `protobuf:"bytes,2,rep,name=approved_list,json=approvedList,proto3" json:"approved_list,omitempty"` Result *TransactionApprovedList_Result `protobuf:"bytes,4,opt,name=result,proto3" json:"result,omitempty"` Transaction *TransactionExtention `protobuf:"bytes,5,opt,name=transaction,proto3" json:"transaction,omitempty"` } func (x *TransactionApprovedList) Reset() { *x = TransactionApprovedList{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionApprovedList) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionApprovedList) ProtoMessage() {} func (x *TransactionApprovedList) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionApprovedList.ProtoReflect.Descriptor instead. func (*TransactionApprovedList) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{40} } func (x *TransactionApprovedList) GetApprovedList() [][]byte { if x != nil { return x.ApprovedList } return nil } func (x *TransactionApprovedList) GetResult() *TransactionApprovedList_Result { if x != nil { return x.Result } return nil } func (x *TransactionApprovedList) GetTransaction() *TransactionExtention { if x != nil { return x.Transaction } return nil } type IvkDecryptParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartBlockIndex int64 `protobuf:"varint,1,opt,name=start_block_index,json=startBlockIndex,proto3" json:"start_block_index,omitempty"` EndBlockIndex int64 `protobuf:"varint,2,opt,name=end_block_index,json=endBlockIndex,proto3" json:"end_block_index,omitempty"` Ivk []byte `protobuf:"bytes,3,opt,name=ivk,proto3" json:"ivk,omitempty"` } func (x *IvkDecryptParameters) Reset() { *x = IvkDecryptParameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IvkDecryptParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*IvkDecryptParameters) ProtoMessage() {} func (x *IvkDecryptParameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use IvkDecryptParameters.ProtoReflect.Descriptor instead. func (*IvkDecryptParameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{41} } func (x *IvkDecryptParameters) GetStartBlockIndex() int64 { if x != nil { return x.StartBlockIndex } return 0 } func (x *IvkDecryptParameters) GetEndBlockIndex() int64 { if x != nil { return x.EndBlockIndex } return 0 } func (x *IvkDecryptParameters) GetIvk() []byte { if x != nil { return x.Ivk } return nil } type IvkDecryptAndMarkParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartBlockIndex int64 `protobuf:"varint,1,opt,name=start_block_index,json=startBlockIndex,proto3" json:"start_block_index,omitempty"` EndBlockIndex int64 `protobuf:"varint,2,opt,name=end_block_index,json=endBlockIndex,proto3" json:"end_block_index,omitempty"` Ivk []byte `protobuf:"bytes,5,opt,name=ivk,proto3" json:"ivk,omitempty"` Ak []byte `protobuf:"bytes,3,opt,name=ak,proto3" json:"ak,omitempty"` Nk []byte `protobuf:"bytes,4,opt,name=nk,proto3" json:"nk,omitempty"` } func (x *IvkDecryptAndMarkParameters) Reset() { *x = IvkDecryptAndMarkParameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IvkDecryptAndMarkParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*IvkDecryptAndMarkParameters) ProtoMessage() {} func (x *IvkDecryptAndMarkParameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use IvkDecryptAndMarkParameters.ProtoReflect.Descriptor instead. func (*IvkDecryptAndMarkParameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{42} } func (x *IvkDecryptAndMarkParameters) GetStartBlockIndex() int64 { if x != nil { return x.StartBlockIndex } return 0 } func (x *IvkDecryptAndMarkParameters) GetEndBlockIndex() int64 { if x != nil { return x.EndBlockIndex } return 0 } func (x *IvkDecryptAndMarkParameters) GetIvk() []byte { if x != nil { return x.Ivk } return nil } func (x *IvkDecryptAndMarkParameters) GetAk() []byte { if x != nil { return x.Ak } return nil } func (x *IvkDecryptAndMarkParameters) GetNk() []byte { if x != nil { return x.Nk } return nil } type OvkDecryptParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartBlockIndex int64 `protobuf:"varint,1,opt,name=start_block_index,json=startBlockIndex,proto3" json:"start_block_index,omitempty"` EndBlockIndex int64 `protobuf:"varint,2,opt,name=end_block_index,json=endBlockIndex,proto3" json:"end_block_index,omitempty"` Ovk []byte `protobuf:"bytes,3,opt,name=ovk,proto3" json:"ovk,omitempty"` } func (x *OvkDecryptParameters) Reset() { *x = OvkDecryptParameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OvkDecryptParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*OvkDecryptParameters) ProtoMessage() {} func (x *OvkDecryptParameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use OvkDecryptParameters.ProtoReflect.Descriptor instead. func (*OvkDecryptParameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{43} } func (x *OvkDecryptParameters) GetStartBlockIndex() int64 { if x != nil { return x.StartBlockIndex } return 0 } func (x *OvkDecryptParameters) GetEndBlockIndex() int64 { if x != nil { return x.EndBlockIndex } return 0 } func (x *OvkDecryptParameters) GetOvk() []byte { if x != nil { return x.Ovk } return nil } type DecryptNotes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NoteTxs []*DecryptNotes_NoteTx `protobuf:"bytes,1,rep,name=noteTxs,proto3" json:"noteTxs,omitempty"` } func (x *DecryptNotes) Reset() { *x = DecryptNotes{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DecryptNotes) String() string { return protoimpl.X.MessageStringOf(x) } func (*DecryptNotes) ProtoMessage() {} func (x *DecryptNotes) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DecryptNotes.ProtoReflect.Descriptor instead. func (*DecryptNotes) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{44} } func (x *DecryptNotes) GetNoteTxs() []*DecryptNotes_NoteTx { if x != nil { return x.NoteTxs } return nil } type DecryptNotesMarked struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NoteTxs []*DecryptNotesMarked_NoteTx `protobuf:"bytes,1,rep,name=noteTxs,proto3" json:"noteTxs,omitempty"` } func (x *DecryptNotesMarked) Reset() { *x = DecryptNotesMarked{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DecryptNotesMarked) String() string { return protoimpl.X.MessageStringOf(x) } func (*DecryptNotesMarked) ProtoMessage() {} func (x *DecryptNotesMarked) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DecryptNotesMarked.ProtoReflect.Descriptor instead. func (*DecryptNotesMarked) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{45} } func (x *DecryptNotesMarked) GetNoteTxs() []*DecryptNotesMarked_NoteTx { if x != nil { return x.NoteTxs } return nil } type Note struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` PaymentAddress string `protobuf:"bytes,2,opt,name=payment_address,json=paymentAddress,proto3" json:"payment_address,omitempty"` Rcm []byte `protobuf:"bytes,3,opt,name=rcm,proto3" json:"rcm,omitempty"` // random 32 Memo []byte `protobuf:"bytes,4,opt,name=memo,proto3" json:"memo,omitempty"` } func (x *Note) Reset() { *x = Note{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Note) String() string { return protoimpl.X.MessageStringOf(x) } func (*Note) ProtoMessage() {} func (x *Note) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Note.ProtoReflect.Descriptor instead. func (*Note) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{46} } func (x *Note) GetValue() int64 { if x != nil { return x.Value } return 0 } func (x *Note) GetPaymentAddress() string { if x != nil { return x.PaymentAddress } return "" } func (x *Note) GetRcm() []byte { if x != nil { return x.Rcm } return nil } func (x *Note) GetMemo() []byte { if x != nil { return x.Memo } return nil } type SpendNote struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Note *Note `protobuf:"bytes,3,opt,name=note,proto3" json:"note,omitempty"` Alpha []byte `protobuf:"bytes,4,opt,name=alpha,proto3" json:"alpha,omitempty"` // random number for spend authority signature Voucher *core.IncrementalMerkleVoucher `protobuf:"bytes,5,opt,name=voucher,proto3" json:"voucher,omitempty"` Path []byte `protobuf:"bytes,6,opt,name=path,proto3" json:"path,omitempty"` // path for cm from leaf to root in merkle tree } func (x *SpendNote) Reset() { *x = SpendNote{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SpendNote) String() string { return protoimpl.X.MessageStringOf(x) } func (*SpendNote) ProtoMessage() {} func (x *SpendNote) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SpendNote.ProtoReflect.Descriptor instead. func (*SpendNote) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{47} } func (x *SpendNote) GetNote() *Note { if x != nil { return x.Note } return nil } func (x *SpendNote) GetAlpha() []byte { if x != nil { return x.Alpha } return nil } func (x *SpendNote) GetVoucher() *core.IncrementalMerkleVoucher { if x != nil { return x.Voucher } return nil } func (x *SpendNote) GetPath() []byte { if x != nil { return x.Path } return nil } type ReceiveNote struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Note *Note `protobuf:"bytes,1,opt,name=note,proto3" json:"note,omitempty"` } func (x *ReceiveNote) Reset() { *x = ReceiveNote{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReceiveNote) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReceiveNote) ProtoMessage() {} func (x *ReceiveNote) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReceiveNote.ProtoReflect.Descriptor instead. func (*ReceiveNote) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{48} } func (x *ReceiveNote) GetNote() *Note { if x != nil { return x.Note } return nil } type PrivateParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TransparentFromAddress []byte `protobuf:"bytes,1,opt,name=transparent_from_address,json=transparentFromAddress,proto3" json:"transparent_from_address,omitempty"` Ask []byte `protobuf:"bytes,2,opt,name=ask,proto3" json:"ask,omitempty"` Nsk []byte `protobuf:"bytes,3,opt,name=nsk,proto3" json:"nsk,omitempty"` Ovk []byte `protobuf:"bytes,4,opt,name=ovk,proto3" json:"ovk,omitempty"` FromAmount int64 `protobuf:"varint,5,opt,name=from_amount,json=fromAmount,proto3" json:"from_amount,omitempty"` ShieldedSpends []*SpendNote `protobuf:"bytes,6,rep,name=shielded_spends,json=shieldedSpends,proto3" json:"shielded_spends,omitempty"` ShieldedReceives []*ReceiveNote `protobuf:"bytes,7,rep,name=shielded_receives,json=shieldedReceives,proto3" json:"shielded_receives,omitempty"` TransparentToAddress []byte `protobuf:"bytes,8,opt,name=transparent_to_address,json=transparentToAddress,proto3" json:"transparent_to_address,omitempty"` ToAmount int64 `protobuf:"varint,9,opt,name=to_amount,json=toAmount,proto3" json:"to_amount,omitempty"` Timeout int64 `protobuf:"varint,10,opt,name=timeout,proto3" json:"timeout,omitempty"` // timeout in seconds, it works only when it bigger than 0 } func (x *PrivateParameters) Reset() { *x = PrivateParameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PrivateParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*PrivateParameters) ProtoMessage() {} func (x *PrivateParameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PrivateParameters.ProtoReflect.Descriptor instead. func (*PrivateParameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{49} } func (x *PrivateParameters) GetTransparentFromAddress() []byte { if x != nil { return x.TransparentFromAddress } return nil } func (x *PrivateParameters) GetAsk() []byte { if x != nil { return x.Ask } return nil } func (x *PrivateParameters) GetNsk() []byte { if x != nil { return x.Nsk } return nil } func (x *PrivateParameters) GetOvk() []byte { if x != nil { return x.Ovk } return nil } func (x *PrivateParameters) GetFromAmount() int64 { if x != nil { return x.FromAmount } return 0 } func (x *PrivateParameters) GetShieldedSpends() []*SpendNote { if x != nil { return x.ShieldedSpends } return nil } func (x *PrivateParameters) GetShieldedReceives() []*ReceiveNote { if x != nil { return x.ShieldedReceives } return nil } func (x *PrivateParameters) GetTransparentToAddress() []byte { if x != nil { return x.TransparentToAddress } return nil } func (x *PrivateParameters) GetToAmount() int64 { if x != nil { return x.ToAmount } return 0 } func (x *PrivateParameters) GetTimeout() int64 { if x != nil { return x.Timeout } return 0 } type PrivateParametersWithoutAsk struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TransparentFromAddress []byte `protobuf:"bytes,1,opt,name=transparent_from_address,json=transparentFromAddress,proto3" json:"transparent_from_address,omitempty"` Ak []byte `protobuf:"bytes,2,opt,name=ak,proto3" json:"ak,omitempty"` Nsk []byte `protobuf:"bytes,3,opt,name=nsk,proto3" json:"nsk,omitempty"` Ovk []byte `protobuf:"bytes,4,opt,name=ovk,proto3" json:"ovk,omitempty"` FromAmount int64 `protobuf:"varint,5,opt,name=from_amount,json=fromAmount,proto3" json:"from_amount,omitempty"` ShieldedSpends []*SpendNote `protobuf:"bytes,6,rep,name=shielded_spends,json=shieldedSpends,proto3" json:"shielded_spends,omitempty"` ShieldedReceives []*ReceiveNote `protobuf:"bytes,7,rep,name=shielded_receives,json=shieldedReceives,proto3" json:"shielded_receives,omitempty"` TransparentToAddress []byte `protobuf:"bytes,8,opt,name=transparent_to_address,json=transparentToAddress,proto3" json:"transparent_to_address,omitempty"` ToAmount int64 `protobuf:"varint,9,opt,name=to_amount,json=toAmount,proto3" json:"to_amount,omitempty"` Timeout int64 `protobuf:"varint,10,opt,name=timeout,proto3" json:"timeout,omitempty"` // timeout in seconds, it works only when it bigger than 0 } func (x *PrivateParametersWithoutAsk) Reset() { *x = PrivateParametersWithoutAsk{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PrivateParametersWithoutAsk) String() string { return protoimpl.X.MessageStringOf(x) } func (*PrivateParametersWithoutAsk) ProtoMessage() {} func (x *PrivateParametersWithoutAsk) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PrivateParametersWithoutAsk.ProtoReflect.Descriptor instead. func (*PrivateParametersWithoutAsk) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{50} } func (x *PrivateParametersWithoutAsk) GetTransparentFromAddress() []byte { if x != nil { return x.TransparentFromAddress } return nil } func (x *PrivateParametersWithoutAsk) GetAk() []byte { if x != nil { return x.Ak } return nil } func (x *PrivateParametersWithoutAsk) GetNsk() []byte { if x != nil { return x.Nsk } return nil } func (x *PrivateParametersWithoutAsk) GetOvk() []byte { if x != nil { return x.Ovk } return nil } func (x *PrivateParametersWithoutAsk) GetFromAmount() int64 { if x != nil { return x.FromAmount } return 0 } func (x *PrivateParametersWithoutAsk) GetShieldedSpends() []*SpendNote { if x != nil { return x.ShieldedSpends } return nil } func (x *PrivateParametersWithoutAsk) GetShieldedReceives() []*ReceiveNote { if x != nil { return x.ShieldedReceives } return nil } func (x *PrivateParametersWithoutAsk) GetTransparentToAddress() []byte { if x != nil { return x.TransparentToAddress } return nil } func (x *PrivateParametersWithoutAsk) GetToAmount() int64 { if x != nil { return x.ToAmount } return 0 } func (x *PrivateParametersWithoutAsk) GetTimeout() int64 { if x != nil { return x.Timeout } return 0 } type SpendAuthSigParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ask []byte `protobuf:"bytes,1,opt,name=ask,proto3" json:"ask,omitempty"` TxHash []byte `protobuf:"bytes,2,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` Alpha []byte `protobuf:"bytes,3,opt,name=alpha,proto3" json:"alpha,omitempty"` } func (x *SpendAuthSigParameters) Reset() { *x = SpendAuthSigParameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SpendAuthSigParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*SpendAuthSigParameters) ProtoMessage() {} func (x *SpendAuthSigParameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SpendAuthSigParameters.ProtoReflect.Descriptor instead. func (*SpendAuthSigParameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{51} } func (x *SpendAuthSigParameters) GetAsk() []byte { if x != nil { return x.Ask } return nil } func (x *SpendAuthSigParameters) GetTxHash() []byte { if x != nil { return x.TxHash } return nil } func (x *SpendAuthSigParameters) GetAlpha() []byte { if x != nil { return x.Alpha } return nil } type NfParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Note *Note `protobuf:"bytes,1,opt,name=note,proto3" json:"note,omitempty"` Voucher *core.IncrementalMerkleVoucher `protobuf:"bytes,2,opt,name=voucher,proto3" json:"voucher,omitempty"` Ak []byte `protobuf:"bytes,3,opt,name=ak,proto3" json:"ak,omitempty"` Nk []byte `protobuf:"bytes,4,opt,name=nk,proto3" json:"nk,omitempty"` } func (x *NfParameters) Reset() { *x = NfParameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NfParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*NfParameters) ProtoMessage() {} func (x *NfParameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NfParameters.ProtoReflect.Descriptor instead. func (*NfParameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{52} } func (x *NfParameters) GetNote() *Note { if x != nil { return x.Note } return nil } func (x *NfParameters) GetVoucher() *core.IncrementalMerkleVoucher { if x != nil { return x.Voucher } return nil } func (x *NfParameters) GetAk() []byte { if x != nil { return x.Ak } return nil } func (x *NfParameters) GetNk() []byte { if x != nil { return x.Nk } return nil } type ExpandedSpendingKeyMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ask []byte `protobuf:"bytes,1,opt,name=ask,proto3" json:"ask,omitempty"` Nsk []byte `protobuf:"bytes,2,opt,name=nsk,proto3" json:"nsk,omitempty"` Ovk []byte `protobuf:"bytes,3,opt,name=ovk,proto3" json:"ovk,omitempty"` } func (x *ExpandedSpendingKeyMessage) Reset() { *x = ExpandedSpendingKeyMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExpandedSpendingKeyMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExpandedSpendingKeyMessage) ProtoMessage() {} func (x *ExpandedSpendingKeyMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExpandedSpendingKeyMessage.ProtoReflect.Descriptor instead. func (*ExpandedSpendingKeyMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{53} } func (x *ExpandedSpendingKeyMessage) GetAsk() []byte { if x != nil { return x.Ask } return nil } func (x *ExpandedSpendingKeyMessage) GetNsk() []byte { if x != nil { return x.Nsk } return nil } func (x *ExpandedSpendingKeyMessage) GetOvk() []byte { if x != nil { return x.Ovk } return nil } type ViewingKeyMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ak []byte `protobuf:"bytes,1,opt,name=ak,proto3" json:"ak,omitempty"` Nk []byte `protobuf:"bytes,2,opt,name=nk,proto3" json:"nk,omitempty"` } func (x *ViewingKeyMessage) Reset() { *x = ViewingKeyMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ViewingKeyMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ViewingKeyMessage) ProtoMessage() {} func (x *ViewingKeyMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ViewingKeyMessage.ProtoReflect.Descriptor instead. func (*ViewingKeyMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{54} } func (x *ViewingKeyMessage) GetAk() []byte { if x != nil { return x.Ak } return nil } func (x *ViewingKeyMessage) GetNk() []byte { if x != nil { return x.Nk } return nil } type IncomingViewingKeyMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ivk []byte `protobuf:"bytes,1,opt,name=ivk,proto3" json:"ivk,omitempty"` } func (x *IncomingViewingKeyMessage) Reset() { *x = IncomingViewingKeyMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IncomingViewingKeyMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*IncomingViewingKeyMessage) ProtoMessage() {} func (x *IncomingViewingKeyMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use IncomingViewingKeyMessage.ProtoReflect.Descriptor instead. func (*IncomingViewingKeyMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{55} } func (x *IncomingViewingKeyMessage) GetIvk() []byte { if x != nil { return x.Ivk } return nil } type DiversifierMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields D []byte `protobuf:"bytes,1,opt,name=d,proto3" json:"d,omitempty"` } func (x *DiversifierMessage) Reset() { *x = DiversifierMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DiversifierMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*DiversifierMessage) ProtoMessage() {} func (x *DiversifierMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DiversifierMessage.ProtoReflect.Descriptor instead. func (*DiversifierMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{56} } func (x *DiversifierMessage) GetD() []byte { if x != nil { return x.D } return nil } type IncomingViewingKeyDiversifierMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ivk *IncomingViewingKeyMessage `protobuf:"bytes,1,opt,name=ivk,proto3" json:"ivk,omitempty"` D *DiversifierMessage `protobuf:"bytes,2,opt,name=d,proto3" json:"d,omitempty"` } func (x *IncomingViewingKeyDiversifierMessage) Reset() { *x = IncomingViewingKeyDiversifierMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IncomingViewingKeyDiversifierMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*IncomingViewingKeyDiversifierMessage) ProtoMessage() {} func (x *IncomingViewingKeyDiversifierMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use IncomingViewingKeyDiversifierMessage.ProtoReflect.Descriptor instead. func (*IncomingViewingKeyDiversifierMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{57} } func (x *IncomingViewingKeyDiversifierMessage) GetIvk() *IncomingViewingKeyMessage { if x != nil { return x.Ivk } return nil } func (x *IncomingViewingKeyDiversifierMessage) GetD() *DiversifierMessage { if x != nil { return x.D } return nil } type PaymentAddressMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields D *DiversifierMessage `protobuf:"bytes,1,opt,name=d,proto3" json:"d,omitempty"` PkD []byte `protobuf:"bytes,2,opt,name=pkD,proto3" json:"pkD,omitempty"` PaymentAddress string `protobuf:"bytes,3,opt,name=payment_address,json=paymentAddress,proto3" json:"payment_address,omitempty"` } func (x *PaymentAddressMessage) Reset() { *x = PaymentAddressMessage{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PaymentAddressMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*PaymentAddressMessage) ProtoMessage() {} func (x *PaymentAddressMessage) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PaymentAddressMessage.ProtoReflect.Descriptor instead. func (*PaymentAddressMessage) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{58} } func (x *PaymentAddressMessage) GetD() *DiversifierMessage { if x != nil { return x.D } return nil } func (x *PaymentAddressMessage) GetPkD() []byte { if x != nil { return x.PkD } return nil } func (x *PaymentAddressMessage) GetPaymentAddress() string { if x != nil { return x.PaymentAddress } return "" } type ShieldedAddressInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sk []byte `protobuf:"bytes,1,opt,name=sk,proto3" json:"sk,omitempty"` Ask []byte `protobuf:"bytes,2,opt,name=ask,proto3" json:"ask,omitempty"` Nsk []byte `protobuf:"bytes,3,opt,name=nsk,proto3" json:"nsk,omitempty"` Ovk []byte `protobuf:"bytes,4,opt,name=ovk,proto3" json:"ovk,omitempty"` Ak []byte `protobuf:"bytes,5,opt,name=ak,proto3" json:"ak,omitempty"` Nk []byte `protobuf:"bytes,6,opt,name=nk,proto3" json:"nk,omitempty"` Ivk []byte `protobuf:"bytes,7,opt,name=ivk,proto3" json:"ivk,omitempty"` D []byte `protobuf:"bytes,8,opt,name=d,proto3" json:"d,omitempty"` PkD []byte `protobuf:"bytes,9,opt,name=pkD,proto3" json:"pkD,omitempty"` PaymentAddress string `protobuf:"bytes,10,opt,name=payment_address,json=paymentAddress,proto3" json:"payment_address,omitempty"` } func (x *ShieldedAddressInfo) Reset() { *x = ShieldedAddressInfo{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ShieldedAddressInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ShieldedAddressInfo) ProtoMessage() {} func (x *ShieldedAddressInfo) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ShieldedAddressInfo.ProtoReflect.Descriptor instead. func (*ShieldedAddressInfo) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{59} } func (x *ShieldedAddressInfo) GetSk() []byte { if x != nil { return x.Sk } return nil } func (x *ShieldedAddressInfo) GetAsk() []byte { if x != nil { return x.Ask } return nil } func (x *ShieldedAddressInfo) GetNsk() []byte { if x != nil { return x.Nsk } return nil } func (x *ShieldedAddressInfo) GetOvk() []byte { if x != nil { return x.Ovk } return nil } func (x *ShieldedAddressInfo) GetAk() []byte { if x != nil { return x.Ak } return nil } func (x *ShieldedAddressInfo) GetNk() []byte { if x != nil { return x.Nk } return nil } func (x *ShieldedAddressInfo) GetIvk() []byte { if x != nil { return x.Ivk } return nil } func (x *ShieldedAddressInfo) GetD() []byte { if x != nil { return x.D } return nil } func (x *ShieldedAddressInfo) GetPkD() []byte { if x != nil { return x.PkD } return nil } func (x *ShieldedAddressInfo) GetPaymentAddress() string { if x != nil { return x.PaymentAddress } return "" } type NoteParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ak []byte `protobuf:"bytes,1,opt,name=ak,proto3" json:"ak,omitempty"` Nk []byte `protobuf:"bytes,2,opt,name=nk,proto3" json:"nk,omitempty"` Note *Note `protobuf:"bytes,3,opt,name=note,proto3" json:"note,omitempty"` Txid []byte `protobuf:"bytes,4,opt,name=txid,proto3" json:"txid,omitempty"` Index int32 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` } func (x *NoteParameters) Reset() { *x = NoteParameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NoteParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*NoteParameters) ProtoMessage() {} func (x *NoteParameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NoteParameters.ProtoReflect.Descriptor instead. func (*NoteParameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{60} } func (x *NoteParameters) GetAk() []byte { if x != nil { return x.Ak } return nil } func (x *NoteParameters) GetNk() []byte { if x != nil { return x.Nk } return nil } func (x *NoteParameters) GetNote() *Note { if x != nil { return x.Note } return nil } func (x *NoteParameters) GetTxid() []byte { if x != nil { return x.Txid } return nil } func (x *NoteParameters) GetIndex() int32 { if x != nil { return x.Index } return 0 } type SpendResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result bool `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` } func (x *SpendResult) Reset() { *x = SpendResult{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SpendResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*SpendResult) ProtoMessage() {} func (x *SpendResult) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SpendResult.ProtoReflect.Descriptor instead. func (*SpendResult) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{61} } func (x *SpendResult) GetResult() bool { if x != nil { return x.Result } return false } func (x *SpendResult) GetMessage() string { if x != nil { return x.Message } return "" } type TransactionInfoList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TransactionInfo []*core.TransactionInfo `protobuf:"bytes,1,rep,name=transactionInfo,proto3" json:"transactionInfo,omitempty"` } func (x *TransactionInfoList) Reset() { *x = TransactionInfoList{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionInfoList) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionInfoList) ProtoMessage() {} func (x *TransactionInfoList) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionInfoList.ProtoReflect.Descriptor instead. func (*TransactionInfoList) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{62} } func (x *TransactionInfoList) GetTransactionInfo() []*core.TransactionInfo { if x != nil { return x.TransactionInfo } return nil } type SpendNoteTRC20 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Note *Note `protobuf:"bytes,1,opt,name=note,proto3" json:"note,omitempty"` Alpha []byte `protobuf:"bytes,2,opt,name=alpha,proto3" json:"alpha,omitempty"` Root []byte `protobuf:"bytes,3,opt,name=root,proto3" json:"root,omitempty"` Path []byte `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"` Pos int64 `protobuf:"varint,5,opt,name=pos,proto3" json:"pos,omitempty"` } func (x *SpendNoteTRC20) Reset() { *x = SpendNoteTRC20{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SpendNoteTRC20) String() string { return protoimpl.X.MessageStringOf(x) } func (*SpendNoteTRC20) ProtoMessage() {} func (x *SpendNoteTRC20) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SpendNoteTRC20.ProtoReflect.Descriptor instead. func (*SpendNoteTRC20) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{63} } func (x *SpendNoteTRC20) GetNote() *Note { if x != nil { return x.Note } return nil } func (x *SpendNoteTRC20) GetAlpha() []byte { if x != nil { return x.Alpha } return nil } func (x *SpendNoteTRC20) GetRoot() []byte { if x != nil { return x.Root } return nil } func (x *SpendNoteTRC20) GetPath() []byte { if x != nil { return x.Path } return nil } func (x *SpendNoteTRC20) GetPos() int64 { if x != nil { return x.Pos } return 0 } type PrivateShieldedTRC20Parameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ask []byte `protobuf:"bytes,1,opt,name=ask,proto3" json:"ask,omitempty"` Nsk []byte `protobuf:"bytes,2,opt,name=nsk,proto3" json:"nsk,omitempty"` Ovk []byte `protobuf:"bytes,3,opt,name=ovk,proto3" json:"ovk,omitempty"` FromAmount string `protobuf:"bytes,4,opt,name=from_amount,json=fromAmount,proto3" json:"from_amount,omitempty"` ShieldedSpends []*SpendNoteTRC20 `protobuf:"bytes,5,rep,name=shielded_spends,json=shieldedSpends,proto3" json:"shielded_spends,omitempty"` ShieldedReceives []*ReceiveNote `protobuf:"bytes,6,rep,name=shielded_receives,json=shieldedReceives,proto3" json:"shielded_receives,omitempty"` TransparentToAddress []byte `protobuf:"bytes,7,opt,name=transparent_to_address,json=transparentToAddress,proto3" json:"transparent_to_address,omitempty"` ToAmount string `protobuf:"bytes,8,opt,name=to_amount,json=toAmount,proto3" json:"to_amount,omitempty"` Shielded_TRC20ContractAddress []byte `protobuf:"bytes,9,opt,name=shielded_TRC20_contract_address,json=shieldedTRC20ContractAddress,proto3" json:"shielded_TRC20_contract_address,omitempty"` } func (x *PrivateShieldedTRC20Parameters) Reset() { *x = PrivateShieldedTRC20Parameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PrivateShieldedTRC20Parameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*PrivateShieldedTRC20Parameters) ProtoMessage() {} func (x *PrivateShieldedTRC20Parameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PrivateShieldedTRC20Parameters.ProtoReflect.Descriptor instead. func (*PrivateShieldedTRC20Parameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{64} } func (x *PrivateShieldedTRC20Parameters) GetAsk() []byte { if x != nil { return x.Ask } return nil } func (x *PrivateShieldedTRC20Parameters) GetNsk() []byte { if x != nil { return x.Nsk } return nil } func (x *PrivateShieldedTRC20Parameters) GetOvk() []byte { if x != nil { return x.Ovk } return nil } func (x *PrivateShieldedTRC20Parameters) GetFromAmount() string { if x != nil { return x.FromAmount } return "" } func (x *PrivateShieldedTRC20Parameters) GetShieldedSpends() []*SpendNoteTRC20 { if x != nil { return x.ShieldedSpends } return nil } func (x *PrivateShieldedTRC20Parameters) GetShieldedReceives() []*ReceiveNote { if x != nil { return x.ShieldedReceives } return nil } func (x *PrivateShieldedTRC20Parameters) GetTransparentToAddress() []byte { if x != nil { return x.TransparentToAddress } return nil } func (x *PrivateShieldedTRC20Parameters) GetToAmount() string { if x != nil { return x.ToAmount } return "" } func (x *PrivateShieldedTRC20Parameters) GetShielded_TRC20ContractAddress() []byte { if x != nil { return x.Shielded_TRC20ContractAddress } return nil } type PrivateShieldedTRC20ParametersWithoutAsk struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ak []byte `protobuf:"bytes,1,opt,name=ak,proto3" json:"ak,omitempty"` Nsk []byte `protobuf:"bytes,2,opt,name=nsk,proto3" json:"nsk,omitempty"` Ovk []byte `protobuf:"bytes,3,opt,name=ovk,proto3" json:"ovk,omitempty"` FromAmount string `protobuf:"bytes,4,opt,name=from_amount,json=fromAmount,proto3" json:"from_amount,omitempty"` ShieldedSpends []*SpendNoteTRC20 `protobuf:"bytes,5,rep,name=shielded_spends,json=shieldedSpends,proto3" json:"shielded_spends,omitempty"` ShieldedReceives []*ReceiveNote `protobuf:"bytes,6,rep,name=shielded_receives,json=shieldedReceives,proto3" json:"shielded_receives,omitempty"` TransparentToAddress []byte `protobuf:"bytes,7,opt,name=transparent_to_address,json=transparentToAddress,proto3" json:"transparent_to_address,omitempty"` ToAmount string `protobuf:"bytes,8,opt,name=to_amount,json=toAmount,proto3" json:"to_amount,omitempty"` Shielded_TRC20ContractAddress []byte `protobuf:"bytes,9,opt,name=shielded_TRC20_contract_address,json=shieldedTRC20ContractAddress,proto3" json:"shielded_TRC20_contract_address,omitempty"` } func (x *PrivateShieldedTRC20ParametersWithoutAsk) Reset() { *x = PrivateShieldedTRC20ParametersWithoutAsk{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PrivateShieldedTRC20ParametersWithoutAsk) String() string { return protoimpl.X.MessageStringOf(x) } func (*PrivateShieldedTRC20ParametersWithoutAsk) ProtoMessage() {} func (x *PrivateShieldedTRC20ParametersWithoutAsk) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PrivateShieldedTRC20ParametersWithoutAsk.ProtoReflect.Descriptor instead. func (*PrivateShieldedTRC20ParametersWithoutAsk) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{65} } func (x *PrivateShieldedTRC20ParametersWithoutAsk) GetAk() []byte { if x != nil { return x.Ak } return nil } func (x *PrivateShieldedTRC20ParametersWithoutAsk) GetNsk() []byte { if x != nil { return x.Nsk } return nil } func (x *PrivateShieldedTRC20ParametersWithoutAsk) GetOvk() []byte { if x != nil { return x.Ovk } return nil } func (x *PrivateShieldedTRC20ParametersWithoutAsk) GetFromAmount() string { if x != nil { return x.FromAmount } return "" } func (x *PrivateShieldedTRC20ParametersWithoutAsk) GetShieldedSpends() []*SpendNoteTRC20 { if x != nil { return x.ShieldedSpends } return nil } func (x *PrivateShieldedTRC20ParametersWithoutAsk) GetShieldedReceives() []*ReceiveNote { if x != nil { return x.ShieldedReceives } return nil } func (x *PrivateShieldedTRC20ParametersWithoutAsk) GetTransparentToAddress() []byte { if x != nil { return x.TransparentToAddress } return nil } func (x *PrivateShieldedTRC20ParametersWithoutAsk) GetToAmount() string { if x != nil { return x.ToAmount } return "" } func (x *PrivateShieldedTRC20ParametersWithoutAsk) GetShielded_TRC20ContractAddress() []byte { if x != nil { return x.Shielded_TRC20ContractAddress } return nil } type ShieldedTRC20Parameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SpendDescription []*core.SpendDescription `protobuf:"bytes,1,rep,name=spend_description,json=spendDescription,proto3" json:"spend_description,omitempty"` ReceiveDescription []*core.ReceiveDescription `protobuf:"bytes,2,rep,name=receive_description,json=receiveDescription,proto3" json:"receive_description,omitempty"` BindingSignature []byte `protobuf:"bytes,3,opt,name=binding_signature,json=bindingSignature,proto3" json:"binding_signature,omitempty"` MessageHash []byte `protobuf:"bytes,4,opt,name=message_hash,json=messageHash,proto3" json:"message_hash,omitempty"` TriggerContractInput string `protobuf:"bytes,5,opt,name=trigger_contract_input,json=triggerContractInput,proto3" json:"trigger_contract_input,omitempty"` ParameterType string `protobuf:"bytes,6,opt,name=parameter_type,json=parameterType,proto3" json:"parameter_type,omitempty"` } func (x *ShieldedTRC20Parameters) Reset() { *x = ShieldedTRC20Parameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ShieldedTRC20Parameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*ShieldedTRC20Parameters) ProtoMessage() {} func (x *ShieldedTRC20Parameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ShieldedTRC20Parameters.ProtoReflect.Descriptor instead. func (*ShieldedTRC20Parameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{66} } func (x *ShieldedTRC20Parameters) GetSpendDescription() []*core.SpendDescription { if x != nil { return x.SpendDescription } return nil } func (x *ShieldedTRC20Parameters) GetReceiveDescription() []*core.ReceiveDescription { if x != nil { return x.ReceiveDescription } return nil } func (x *ShieldedTRC20Parameters) GetBindingSignature() []byte { if x != nil { return x.BindingSignature } return nil } func (x *ShieldedTRC20Parameters) GetMessageHash() []byte { if x != nil { return x.MessageHash } return nil } func (x *ShieldedTRC20Parameters) GetTriggerContractInput() string { if x != nil { return x.TriggerContractInput } return "" } func (x *ShieldedTRC20Parameters) GetParameterType() string { if x != nil { return x.ParameterType } return "" } type IvkDecryptTRC20Parameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartBlockIndex int64 `protobuf:"varint,1,opt,name=start_block_index,json=startBlockIndex,proto3" json:"start_block_index,omitempty"` EndBlockIndex int64 `protobuf:"varint,2,opt,name=end_block_index,json=endBlockIndex,proto3" json:"end_block_index,omitempty"` Shielded_TRC20ContractAddress []byte `protobuf:"bytes,3,opt,name=shielded_TRC20_contract_address,json=shieldedTRC20ContractAddress,proto3" json:"shielded_TRC20_contract_address,omitempty"` Ivk []byte `protobuf:"bytes,4,opt,name=ivk,proto3" json:"ivk,omitempty"` Ak []byte `protobuf:"bytes,5,opt,name=ak,proto3" json:"ak,omitempty"` Nk []byte `protobuf:"bytes,6,opt,name=nk,proto3" json:"nk,omitempty"` Events []string `protobuf:"bytes,7,rep,name=events,proto3" json:"events,omitempty"` } func (x *IvkDecryptTRC20Parameters) Reset() { *x = IvkDecryptTRC20Parameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IvkDecryptTRC20Parameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*IvkDecryptTRC20Parameters) ProtoMessage() {} func (x *IvkDecryptTRC20Parameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use IvkDecryptTRC20Parameters.ProtoReflect.Descriptor instead. func (*IvkDecryptTRC20Parameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{67} } func (x *IvkDecryptTRC20Parameters) GetStartBlockIndex() int64 { if x != nil { return x.StartBlockIndex } return 0 } func (x *IvkDecryptTRC20Parameters) GetEndBlockIndex() int64 { if x != nil { return x.EndBlockIndex } return 0 } func (x *IvkDecryptTRC20Parameters) GetShielded_TRC20ContractAddress() []byte { if x != nil { return x.Shielded_TRC20ContractAddress } return nil } func (x *IvkDecryptTRC20Parameters) GetIvk() []byte { if x != nil { return x.Ivk } return nil } func (x *IvkDecryptTRC20Parameters) GetAk() []byte { if x != nil { return x.Ak } return nil } func (x *IvkDecryptTRC20Parameters) GetNk() []byte { if x != nil { return x.Nk } return nil } func (x *IvkDecryptTRC20Parameters) GetEvents() []string { if x != nil { return x.Events } return nil } type OvkDecryptTRC20Parameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartBlockIndex int64 `protobuf:"varint,1,opt,name=start_block_index,json=startBlockIndex,proto3" json:"start_block_index,omitempty"` EndBlockIndex int64 `protobuf:"varint,2,opt,name=end_block_index,json=endBlockIndex,proto3" json:"end_block_index,omitempty"` Ovk []byte `protobuf:"bytes,3,opt,name=ovk,proto3" json:"ovk,omitempty"` Shielded_TRC20ContractAddress []byte `protobuf:"bytes,4,opt,name=shielded_TRC20_contract_address,json=shieldedTRC20ContractAddress,proto3" json:"shielded_TRC20_contract_address,omitempty"` Events []string `protobuf:"bytes,5,rep,name=events,proto3" json:"events,omitempty"` } func (x *OvkDecryptTRC20Parameters) Reset() { *x = OvkDecryptTRC20Parameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OvkDecryptTRC20Parameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*OvkDecryptTRC20Parameters) ProtoMessage() {} func (x *OvkDecryptTRC20Parameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use OvkDecryptTRC20Parameters.ProtoReflect.Descriptor instead. func (*OvkDecryptTRC20Parameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{68} } func (x *OvkDecryptTRC20Parameters) GetStartBlockIndex() int64 { if x != nil { return x.StartBlockIndex } return 0 } func (x *OvkDecryptTRC20Parameters) GetEndBlockIndex() int64 { if x != nil { return x.EndBlockIndex } return 0 } func (x *OvkDecryptTRC20Parameters) GetOvk() []byte { if x != nil { return x.Ovk } return nil } func (x *OvkDecryptTRC20Parameters) GetShielded_TRC20ContractAddress() []byte { if x != nil { return x.Shielded_TRC20ContractAddress } return nil } func (x *OvkDecryptTRC20Parameters) GetEvents() []string { if x != nil { return x.Events } return nil } type DecryptNotesTRC20 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NoteTxs []*DecryptNotesTRC20_NoteTx `protobuf:"bytes,1,rep,name=noteTxs,proto3" json:"noteTxs,omitempty"` } func (x *DecryptNotesTRC20) Reset() { *x = DecryptNotesTRC20{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DecryptNotesTRC20) String() string { return protoimpl.X.MessageStringOf(x) } func (*DecryptNotesTRC20) ProtoMessage() {} func (x *DecryptNotesTRC20) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DecryptNotesTRC20.ProtoReflect.Descriptor instead. func (*DecryptNotesTRC20) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{69} } func (x *DecryptNotesTRC20) GetNoteTxs() []*DecryptNotesTRC20_NoteTx { if x != nil { return x.NoteTxs } return nil } type NfTRC20Parameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Note *Note `protobuf:"bytes,1,opt,name=note,proto3" json:"note,omitempty"` Ak []byte `protobuf:"bytes,2,opt,name=ak,proto3" json:"ak,omitempty"` Nk []byte `protobuf:"bytes,3,opt,name=nk,proto3" json:"nk,omitempty"` Position int64 `protobuf:"varint,4,opt,name=position,proto3" json:"position,omitempty"` Shielded_TRC20ContractAddress []byte `protobuf:"bytes,5,opt,name=shielded_TRC20_contract_address,json=shieldedTRC20ContractAddress,proto3" json:"shielded_TRC20_contract_address,omitempty"` } func (x *NfTRC20Parameters) Reset() { *x = NfTRC20Parameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NfTRC20Parameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*NfTRC20Parameters) ProtoMessage() {} func (x *NfTRC20Parameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NfTRC20Parameters.ProtoReflect.Descriptor instead. func (*NfTRC20Parameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{70} } func (x *NfTRC20Parameters) GetNote() *Note { if x != nil { return x.Note } return nil } func (x *NfTRC20Parameters) GetAk() []byte { if x != nil { return x.Ak } return nil } func (x *NfTRC20Parameters) GetNk() []byte { if x != nil { return x.Nk } return nil } func (x *NfTRC20Parameters) GetPosition() int64 { if x != nil { return x.Position } return 0 } func (x *NfTRC20Parameters) GetShielded_TRC20ContractAddress() []byte { if x != nil { return x.Shielded_TRC20ContractAddress } return nil } type NullifierResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsSpent bool `protobuf:"varint,1,opt,name=is_spent,json=isSpent,proto3" json:"is_spent,omitempty"` } func (x *NullifierResult) Reset() { *x = NullifierResult{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NullifierResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*NullifierResult) ProtoMessage() {} func (x *NullifierResult) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NullifierResult.ProtoReflect.Descriptor instead. func (*NullifierResult) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{71} } func (x *NullifierResult) GetIsSpent() bool { if x != nil { return x.IsSpent } return false } type ShieldedTRC20TriggerContractParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Shielded_TRC20_Parameters *ShieldedTRC20Parameters `protobuf:"bytes,1,opt,name=shielded_TRC20_Parameters,json=shieldedTRC20Parameters,proto3" json:"shielded_TRC20_Parameters,omitempty"` SpendAuthoritySignature []*BytesMessage `protobuf:"bytes,2,rep,name=spend_authority_signature,json=spendAuthoritySignature,proto3" json:"spend_authority_signature,omitempty"` Amount string `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` TransparentToAddress []byte `protobuf:"bytes,4,opt,name=transparent_to_address,json=transparentToAddress,proto3" json:"transparent_to_address,omitempty"` } func (x *ShieldedTRC20TriggerContractParameters) Reset() { *x = ShieldedTRC20TriggerContractParameters{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ShieldedTRC20TriggerContractParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*ShieldedTRC20TriggerContractParameters) ProtoMessage() {} func (x *ShieldedTRC20TriggerContractParameters) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ShieldedTRC20TriggerContractParameters.ProtoReflect.Descriptor instead. func (*ShieldedTRC20TriggerContractParameters) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{72} } func (x *ShieldedTRC20TriggerContractParameters) GetShielded_TRC20_Parameters() *ShieldedTRC20Parameters { if x != nil { return x.Shielded_TRC20_Parameters } return nil } func (x *ShieldedTRC20TriggerContractParameters) GetSpendAuthoritySignature() []*BytesMessage { if x != nil { return x.SpendAuthoritySignature } return nil } func (x *ShieldedTRC20TriggerContractParameters) GetAmount() string { if x != nil { return x.Amount } return "" } func (x *ShieldedTRC20TriggerContractParameters) GetTransparentToAddress() []byte { if x != nil { return x.TransparentToAddress } return nil } type TransactionSignWeight_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code TransactionSignWeight_ResultResponseCode `protobuf:"varint,1,opt,name=code,proto3,enum=protocol.TransactionSignWeight_ResultResponseCode" json:"code,omitempty"` Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` } func (x *TransactionSignWeight_Result) Reset() { *x = TransactionSignWeight_Result{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionSignWeight_Result) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionSignWeight_Result) ProtoMessage() {} func (x *TransactionSignWeight_Result) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionSignWeight_Result.ProtoReflect.Descriptor instead. func (*TransactionSignWeight_Result) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{39, 0} } func (x *TransactionSignWeight_Result) GetCode() TransactionSignWeight_ResultResponseCode { if x != nil { return x.Code } return TransactionSignWeight_Result_ENOUGH_PERMISSION } func (x *TransactionSignWeight_Result) GetMessage() string { if x != nil { return x.Message } return "" } type TransactionApprovedList_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code TransactionApprovedList_ResultResponseCode `protobuf:"varint,1,opt,name=code,proto3,enum=protocol.TransactionApprovedList_ResultResponseCode" json:"code,omitempty"` Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` } func (x *TransactionApprovedList_Result) Reset() { *x = TransactionApprovedList_Result{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionApprovedList_Result) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionApprovedList_Result) ProtoMessage() {} func (x *TransactionApprovedList_Result) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionApprovedList_Result.ProtoReflect.Descriptor instead. func (*TransactionApprovedList_Result) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{40, 0} } func (x *TransactionApprovedList_Result) GetCode() TransactionApprovedList_ResultResponseCode { if x != nil { return x.Code } return TransactionApprovedList_Result_SUCCESS } func (x *TransactionApprovedList_Result) GetMessage() string { if x != nil { return x.Message } return "" } type DecryptNotes_NoteTx struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Note *Note `protobuf:"bytes,1,opt,name=note,proto3" json:"note,omitempty"` Txid []byte `protobuf:"bytes,2,opt,name=txid,proto3" json:"txid,omitempty"` //transaction id = sha256(transaction.rowdata) Index int32 `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"` //the index of note in receive } func (x *DecryptNotes_NoteTx) Reset() { *x = DecryptNotes_NoteTx{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DecryptNotes_NoteTx) String() string { return protoimpl.X.MessageStringOf(x) } func (*DecryptNotes_NoteTx) ProtoMessage() {} func (x *DecryptNotes_NoteTx) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DecryptNotes_NoteTx.ProtoReflect.Descriptor instead. func (*DecryptNotes_NoteTx) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{44, 0} } func (x *DecryptNotes_NoteTx) GetNote() *Note { if x != nil { return x.Note } return nil } func (x *DecryptNotes_NoteTx) GetTxid() []byte { if x != nil { return x.Txid } return nil } func (x *DecryptNotes_NoteTx) GetIndex() int32 { if x != nil { return x.Index } return 0 } type DecryptNotesMarked_NoteTx struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Note *Note `protobuf:"bytes,1,opt,name=note,proto3" json:"note,omitempty"` Txid []byte `protobuf:"bytes,2,opt,name=txid,proto3" json:"txid,omitempty"` //transaction id = sha256(transaction.rowdata) Index int32 `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"` //the index of note in receive IsSpend bool `protobuf:"varint,4,opt,name=is_spend,json=isSpend,proto3" json:"is_spend,omitempty"` } func (x *DecryptNotesMarked_NoteTx) Reset() { *x = DecryptNotesMarked_NoteTx{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DecryptNotesMarked_NoteTx) String() string { return protoimpl.X.MessageStringOf(x) } func (*DecryptNotesMarked_NoteTx) ProtoMessage() {} func (x *DecryptNotesMarked_NoteTx) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DecryptNotesMarked_NoteTx.ProtoReflect.Descriptor instead. func (*DecryptNotesMarked_NoteTx) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{45, 0} } func (x *DecryptNotesMarked_NoteTx) GetNote() *Note { if x != nil { return x.Note } return nil } func (x *DecryptNotesMarked_NoteTx) GetTxid() []byte { if x != nil { return x.Txid } return nil } func (x *DecryptNotesMarked_NoteTx) GetIndex() int32 { if x != nil { return x.Index } return 0 } func (x *DecryptNotesMarked_NoteTx) GetIsSpend() bool { if x != nil { return x.IsSpend } return false } type DecryptNotesTRC20_NoteTx struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Note *Note `protobuf:"bytes,1,opt,name=note,proto3" json:"note,omitempty"` Position int64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` IsSpent bool `protobuf:"varint,3,opt,name=is_spent,json=isSpent,proto3" json:"is_spent,omitempty"` Txid []byte `protobuf:"bytes,4,opt,name=txid,proto3" json:"txid,omitempty"` Index int32 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` //the index of note in txid ToAmount string `protobuf:"bytes,6,opt,name=to_amount,json=toAmount,proto3" json:"to_amount,omitempty"` TransparentToAddress []byte `protobuf:"bytes,7,opt,name=transparent_to_address,json=transparentToAddress,proto3" json:"transparent_to_address,omitempty"` } func (x *DecryptNotesTRC20_NoteTx) Reset() { *x = DecryptNotesTRC20_NoteTx{} if protoimpl.UnsafeEnabled { mi := &file_api_api_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DecryptNotesTRC20_NoteTx) String() string { return protoimpl.X.MessageStringOf(x) } func (*DecryptNotesTRC20_NoteTx) ProtoMessage() {} func (x *DecryptNotesTRC20_NoteTx) ProtoReflect() protoreflect.Message { mi := &file_api_api_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DecryptNotesTRC20_NoteTx.ProtoReflect.Descriptor instead. func (*DecryptNotesTRC20_NoteTx) Descriptor() ([]byte, []int) { return file_api_api_proto_rawDescGZIP(), []int{69, 0} } func (x *DecryptNotesTRC20_NoteTx) GetNote() *Note { if x != nil { return x.Note } return nil } func (x *DecryptNotesTRC20_NoteTx) GetPosition() int64 { if x != nil { return x.Position } return 0 } func (x *DecryptNotesTRC20_NoteTx) GetIsSpent() bool { if x != nil { return x.IsSpent } return false } func (x *DecryptNotesTRC20_NoteTx) GetTxid() []byte { if x != nil { return x.Txid } return nil } func (x *DecryptNotesTRC20_NoteTx) GetIndex() int32 { if x != nil { return x.Index } return 0 } func (x *DecryptNotesTRC20_NoteTx) GetToAmount() string { if x != nil { return x.ToAmount } return "" } func (x *DecryptNotesTRC20_NoteTx) GetTransparentToAddress() []byte { if x != nil { return x.TransparentToAddress } return nil } var File_api_api_proto protoreflect.FileDescriptor var file_api_api_proto_rawDesc = []byte{ 0x0a, 0x0d, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x1a, 0x0f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x54, 0x72, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2f, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xab, 0x03, 0x0a, 0x06, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xba, 0x02, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x49, 0x47, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x54, 0x5f, 0x45, 0x58, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x55, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x41, 0x50, 0x4f, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x4f, 0x4f, 0x5f, 0x42, 0x49, 0x47, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x42, 0x55, 0x53, 0x59, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x4e, 0x4f, 0x55, 0x47, 0x48, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x14, 0x22, 0x4c, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x22, 0x3e, 0x0a, 0x0b, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x09, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x22, 0x40, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x4e, 0x0a, 0x0e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x22, 0x32, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x4a, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x27, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x49, 0x64, 0x22, 0x5a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x62, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x4e, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x40, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5c, 0x0a, 0x21, 0x43, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3f, 0x0a, 0x22, 0x43, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x6c, 0x0a, 0x27, 0x43, 0x61, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x42, 0x0a, 0x28, 0x43, 0x61, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x2f, 0x0a, 0x15, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x22, 0x30, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x31, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x21, 0x0a, 0x0d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x24, 0x0a, 0x0c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6d, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x08, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x09, 0x69, 0x64, 0x5f, 0x6f, 0x72, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x64, 0x4f, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x40, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x22, 0x54, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x22, 0x6d, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x7d, 0x0a, 0x14, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x89, 0x04, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x72, 0x65, 0x65, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x66, 0x72, 0x65, 0x65, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x65, 0x65, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x72, 0x65, 0x65, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x51, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x12, 0x54, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x1a, 0x3f, 0x0a, 0x11, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xfc, 0x06, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x72, 0x65, 0x65, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x66, 0x72, 0x65, 0x65, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x65, 0x65, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x72, 0x65, 0x65, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x56, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x12, 0x59, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x32, 0x0a, 0x14, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x72, 0x6f, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x72, 0x6f, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x6f, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x55, 0x73, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x6f, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x55, 0x73, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x6f, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x72, 0x6f, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, 0x73, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, 0x73, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x55, 0x73, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x55, 0x73, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x3f, 0x0a, 0x11, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x40, 0x0a, 0x10, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x85, 0x03, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, 0x73, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x22, 0x6a, 0x0a, 0x15, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0xa8, 0x01, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x64, 0x22, 0x44, 0x0a, 0x12, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x5c, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x75, 0x0a, 0x1a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x54, 0x72, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x0a, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x54, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x54, 0x72, 0x65, 0x65, 0x22, 0xac, 0x04, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x34, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x8e, 0x02, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x48, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x4f, 0x55, 0x47, 0x48, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x4e, 0x4f, 0x55, 0x47, 0x48, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4d, 0x50, 0x55, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x14, 0x22, 0x99, 0x03, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xd4, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4a, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x64, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4d, 0x50, 0x55, 0x54, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x14, 0x22, 0x7c, 0x0a, 0x14, 0x49, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x76, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x69, 0x76, 0x6b, 0x22, 0xa3, 0x01, 0x0a, 0x1b, 0x49, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x41, 0x6e, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x76, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x69, 0x76, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x61, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x6e, 0x6b, 0x22, 0x7c, 0x0a, 0x14, 0x4f, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x76, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x76, 0x6b, 0x22, 0x9f, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x6e, 0x6f, 0x74, 0x65, 0x54, 0x78, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x54, 0x78, 0x52, 0x07, 0x6e, 0x6f, 0x74, 0x65, 0x54, 0x78, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x65, 0x54, 0x78, 0x12, 0x22, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x07, 0x6e, 0x6f, 0x74, 0x65, 0x54, 0x78, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x54, 0x78, 0x52, 0x07, 0x6e, 0x6f, 0x74, 0x65, 0x54, 0x78, 0x73, 0x1a, 0x71, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x65, 0x54, 0x78, 0x12, 0x22, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x6b, 0x0a, 0x04, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x63, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x72, 0x63, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x22, 0x97, 0x01, 0x0a, 0x09, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x3c, 0x0a, 0x07, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x56, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x52, 0x07, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x31, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x93, 0x03, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x61, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6e, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x76, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x76, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x11, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x10, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x6f, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x9b, 0x03, 0x0a, 0x1b, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x41, 0x73, 0x6b, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x61, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6e, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x76, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x76, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x11, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x10, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x6f, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x59, 0x0a, 0x16, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x61, 0x73, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x4e, 0x66, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x56, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x52, 0x07, 0x76, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x61, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x6e, 0x6b, 0x22, 0x52, 0x0a, 0x1a, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x61, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6e, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x76, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x76, 0x6b, 0x22, 0x33, 0x0a, 0x11, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x61, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x6e, 0x6b, 0x22, 0x2d, 0x0a, 0x19, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x76, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x69, 0x76, 0x6b, 0x22, 0x22, 0x0a, 0x12, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x64, 0x22, 0x89, 0x01, 0x0a, 0x24, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x03, 0x69, 0x76, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x69, 0x76, 0x6b, 0x12, 0x2a, 0x0a, 0x01, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x01, 0x64, 0x22, 0x7e, 0x0a, 0x15, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x01, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x01, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6b, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x70, 0x6b, 0x44, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xd6, 0x01, 0x0a, 0x13, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x61, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6e, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x76, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x76, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x61, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x6e, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x76, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x69, 0x76, 0x6b, 0x12, 0x0c, 0x0a, 0x01, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6b, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x70, 0x6b, 0x44, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x7e, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x61, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x6e, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x3f, 0x0a, 0x0b, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5a, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x84, 0x01, 0x0a, 0x0e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x54, 0x52, 0x43, 0x32, 0x30, 0x12, 0x22, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x22, 0x98, 0x03, 0x0a, 0x1e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x61, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6e, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x76, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x76, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x54, 0x52, 0x43, 0x32, 0x30, 0x52, 0x0e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x11, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x10, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x1f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x54, 0x52, 0x43, 0x32, 0x30, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1c, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa0, 0x03, 0x0a, 0x28, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x41, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x61, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6e, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x76, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x76, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x54, 0x52, 0x43, 0x32, 0x30, 0x52, 0x0e, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x11, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x10, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x1f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x54, 0x52, 0x43, 0x32, 0x30, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1c, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xde, 0x02, 0x0a, 0x17, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x13, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x19, 0x49, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x45, 0x0a, 0x1f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x54, 0x52, 0x43, 0x32, 0x30, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1c, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x76, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x69, 0x76, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x61, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x19, 0x4f, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x76, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x76, 0x6b, 0x12, 0x45, 0x0a, 0x1f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x54, 0x52, 0x43, 0x32, 0x30, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1c, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xb4, 0x02, 0x0a, 0x11, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x54, 0x52, 0x43, 0x32, 0x30, 0x12, 0x3c, 0x0a, 0x07, 0x6e, 0x6f, 0x74, 0x65, 0x54, 0x78, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x54, 0x52, 0x43, 0x32, 0x30, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x54, 0x78, 0x52, 0x07, 0x6e, 0x6f, 0x74, 0x65, 0x54, 0x78, 0x73, 0x1a, 0xe0, 0x01, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x65, 0x54, 0x78, 0x12, 0x22, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x11, 0x4e, 0x66, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x61, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x1f, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x54, 0x52, 0x43, 0x32, 0x30, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1c, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x2c, 0x0a, 0x0f, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x22, 0xa9, 0x02, 0x0a, 0x26, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5d, 0x0a, 0x19, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x54, 0x52, 0x43, 0x32, 0x30, 0x5f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x17, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x19, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x17, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x32, 0xa6, 0x74, 0x0a, 0x06, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x67, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x12, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x73, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x12, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x5a, 0x18, 0x12, 0x16, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x62, 0x79, 0x69, 0x64, 0x22, 0x16, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x62, 0x79, 0x69, 0x64, 0x12, 0x99, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x3a, 0x01, 0x2a, 0x5a, 0x1b, 0x12, 0x19, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x19, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0xa9, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x63, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x3a, 0x01, 0x2a, 0x5a, 0x1e, 0x12, 0x1c, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x74, 0x72, 0x61, 0x63, 0x65, 0x22, 0x1c, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x3a, 0x01, 0x2a, 0x5a, 0x1b, 0x12, 0x19, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x19, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x88, 0x01, 0x0a, 0x14, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x3a, 0x01, 0x2a, 0x5a, 0x1e, 0x12, 0x1c, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1c, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x7e, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x3a, 0x01, 0x2a, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x73, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x22, 0x14, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x73, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x64, 0x12, 0x53, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x01, 0x2a, 0x5a, 0x1c, 0x12, 0x1a, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x76, 0x6f, 0x74, 0x65, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x1a, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x76, 0x6f, 0x74, 0x65, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x13, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x88, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x3a, 0x01, 0x2a, 0x5a, 0x1a, 0x12, 0x18, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x22, 0x18, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x32, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x22, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x32, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x22, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x32, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x61, 0x73, 0x73, 0x65, 0x74, 0x22, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x53, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x32, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0xa2, 0x01, 0x0a, 0x15, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, 0x01, 0x2a, 0x5a, 0x1f, 0x12, 0x1d, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x22, 0x1d, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x12, 0x63, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x32, 0x12, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x32, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x0f, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x3a, 0x01, 0x2a, 0x5a, 0x19, 0x12, 0x17, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x17, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x32, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x11, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x22, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x53, 0x0a, 0x0e, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x32, 0x12, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x3a, 0x01, 0x2a, 0x5a, 0x19, 0x12, 0x17, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x17, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x32, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x16, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x12, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x12, 0x55, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x12, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x5a, 0x15, 0x12, 0x13, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x22, 0x13, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x4f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x32, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0a, 0x42, 0x75, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x75, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x42, 0x75, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x75, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x10, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x13, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x11, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x42, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x61, 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, 0x01, 0x2a, 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x11, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x92, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x42, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, 0x01, 0x2a, 0x5a, 0x20, 0x12, 0x1e, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x62, 0x79, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x1e, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x62, 0x79, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x7a, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x65, 0x74, 0x12, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x6e, 0x65, 0x74, 0x22, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x6e, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x01, 0x2a, 0x5a, 0x1d, 0x12, 0x1b, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x62, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x1b, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x62, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x5a, 0x15, 0x12, 0x13, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x6e, 0x6f, 0x77, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x13, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x6e, 0x6f, 0x77, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x42, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x32, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x4e, 0x75, 0x6d, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x62, 0x79, 0x6e, 0x75, 0x6d, 0x22, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x62, 0x79, 0x6e, 0x75, 0x6d, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x4e, 0x75, 0x6d, 0x32, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x3a, 0x01, 0x2a, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x62, 0x79, 0x69, 0x64, 0x22, 0x14, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x62, 0x79, 0x69, 0x64, 0x12, 0x87, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x01, 0x2a, 0x5a, 0x1d, 0x12, 0x1b, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x62, 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x1b, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x62, 0x79, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x6e, 0x65, 0x78, 0x74, 0x12, 0x4c, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x32, 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x01, 0x2a, 0x5a, 0x1d, 0x12, 0x1b, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x62, 0x79, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x6e, 0x75, 0x6d, 0x22, 0x1b, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x62, 0x79, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x6e, 0x75, 0x6d, 0x12, 0x4f, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x32, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x88, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x01, 0x2a, 0x5a, 0x1c, 0x12, 0x1a, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x79, 0x69, 0x64, 0x22, 0x1a, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x79, 0x69, 0x64, 0x12, 0x51, 0x0a, 0x0e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x17, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x10, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x42, 0x49, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x42, 0x49, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x79, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x12, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x56, 0x32, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x61, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x61, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x22, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x01, 0x2a, 0x5a, 0x22, 0x12, 0x20, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x20, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x7c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x3a, 0x01, 0x2a, 0x5a, 0x19, 0x12, 0x17, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x62, 0x79, 0x69, 0x64, 0x22, 0x17, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x62, 0x79, 0x69, 0x64, 0x12, 0x7a, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x15, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x01, 0x2a, 0x5a, 0x22, 0x12, 0x20, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x20, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x7c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x3a, 0x01, 0x2a, 0x5a, 0x19, 0x12, 0x17, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x62, 0x79, 0x69, 0x64, 0x22, 0x17, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x62, 0x79, 0x69, 0x64, 0x12, 0x8c, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x01, 0x2a, 0x5a, 0x1c, 0x12, 0x1a, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x1a, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x88, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x3a, 0x01, 0x2a, 0x5a, 0x1b, 0x12, 0x19, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x19, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0xa7, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x3a, 0x01, 0x2a, 0x5a, 0x24, 0x12, 0x22, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x22, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x84, 0x01, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x3a, 0x01, 0x2a, 0x5a, 0x1a, 0x12, 0x18, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x18, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x96, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, 0x01, 0x2a, 0x5a, 0x20, 0x12, 0x1e, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x6e, 0x65, 0x78, 0x74, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x1e, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x6e, 0x65, 0x78, 0x74, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, 0x01, 0x2a, 0x5a, 0x20, 0x12, 0x1e, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x66, 0x6f, 0x62, 0x79, 0x69, 0x64, 0x22, 0x1e, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x66, 0x6f, 0x62, 0x79, 0x69, 0x64, 0x12, 0xb3, 0x01, 0x0a, 0x17, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x3a, 0x01, 0x2a, 0x5a, 0x21, 0x12, 0x1f, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x1f, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x54, 0x72, 0x65, 0x65, 0x56, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x56, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0d, 0x53, 0x63, 0x61, 0x6e, 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x49, 0x76, 0x6b, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x14, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x6e, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x49, 0x76, 0x6b, 0x12, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x41, 0x6e, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0d, 0x53, 0x63, 0x61, 0x6e, 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x4f, 0x76, 0x6b, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4f, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x73, 0x6b, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4e, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x73, 0x6b, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x5a, 0x65, 0x6e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x52, 0x63, 0x6d, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x07, 0x49, 0x73, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x2c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x41, 0x73, 0x6b, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x66, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x00, 0x12, 0x85, 0x01, 0x0a, 0x2a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x41, 0x73, 0x6b, 0x12, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x41, 0x73, 0x6b, 0x1a, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x1b, 0x53, 0x63, 0x61, 0x6e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x42, 0x79, 0x49, 0x76, 0x6b, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x54, 0x52, 0x43, 0x32, 0x30, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x1b, 0x53, 0x63, 0x61, 0x6e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x42, 0x79, 0x4f, 0x76, 0x6b, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4f, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x54, 0x52, 0x43, 0x32, 0x30, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x20, 0x49, 0x73, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x66, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x42, 0x75, 0x72, 0x6e, 0x54, 0x72, 0x78, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x46, 0x65, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x32, 0x97, 0x23, 0x0a, 0x0e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x77, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x01, 0x2a, 0x5a, 0x1c, 0x12, 0x1a, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x1a, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x12, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, 0x01, 0x2a, 0x5a, 0x20, 0x12, 0x1e, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x62, 0x79, 0x69, 0x64, 0x22, 0x1e, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x62, 0x79, 0x69, 0x64, 0x12, 0x89, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x49, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, 0x01, 0x2a, 0x5a, 0x1f, 0x12, 0x1d, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x1d, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x98, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x3a, 0x01, 0x2a, 0x5a, 0x23, 0x12, 0x21, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x21, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0xb7, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5d, 0x3a, 0x01, 0x2a, 0x5a, 0x2c, 0x12, 0x2a, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2a, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x61, 0x73, 0x73, 0x65, 0x74, 0x69, 0x73, 0x73, 0x75, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x01, 0x2a, 0x5a, 0x1d, 0x12, 0x1b, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x6e, 0x6f, 0x77, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x1b, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x6e, 0x6f, 0x77, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x42, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x32, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x4e, 0x75, 0x6d, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x49, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, 0x01, 0x2a, 0x5a, 0x1f, 0x12, 0x1d, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x62, 0x79, 0x6e, 0x75, 0x6d, 0x22, 0x1d, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x62, 0x79, 0x6e, 0x75, 0x6d, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x4e, 0x75, 0x6d, 0x32, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x12, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x56, 0x32, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x61, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x61, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x98, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x3a, 0x01, 0x2a, 0x5a, 0x24, 0x12, 0x22, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x79, 0x69, 0x64, 0x22, 0x22, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x79, 0x69, 0x64, 0x12, 0xa8, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x5b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x55, 0x3a, 0x01, 0x2a, 0x5a, 0x28, 0x12, 0x26, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x66, 0x6f, 0x62, 0x79, 0x69, 0x64, 0x22, 0x26, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x66, 0x6f, 0x62, 0x79, 0x69, 0x64, 0x12, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x54, 0x72, 0x65, 0x65, 0x56, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x56, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0d, 0x53, 0x63, 0x61, 0x6e, 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x49, 0x76, 0x6b, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x14, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x6e, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x49, 0x76, 0x6b, 0x12, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x41, 0x6e, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0d, 0x53, 0x63, 0x61, 0x6e, 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x4f, 0x76, 0x6b, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4f, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x07, 0x49, 0x73, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x1b, 0x53, 0x63, 0x61, 0x6e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x42, 0x79, 0x49, 0x76, 0x6b, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x54, 0x52, 0x43, 0x32, 0x30, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x1b, 0x53, 0x63, 0x61, 0x6e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x42, 0x79, 0x4f, 0x76, 0x6b, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4f, 0x76, 0x6b, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x54, 0x52, 0x43, 0x32, 0x30, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x20, 0x49, 0x73, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x52, 0x43, 0x32, 0x30, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x66, 0x54, 0x52, 0x43, 0x32, 0x30, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x17, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x42, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x61, 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x42, 0x75, 0x72, 0x6e, 0x54, 0x72, 0x78, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x32, 0xad, 0x04, 0x0a, 0x0f, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0xb1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x68, 0x69, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x5f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, 0x3a, 0x01, 0x2a, 0x5a, 0x2a, 0x12, 0x28, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x66, 0x72, 0x6f, 0x6d, 0x74, 0x68, 0x69, 0x73, 0x22, 0x28, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x66, 0x72, 0x6f, 0x6d, 0x74, 0x68, 0x69, 0x73, 0x12, 0x5c, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x68, 0x69, 0x73, 0x32, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x1a, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0xab, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x54, 0x68, 0x69, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x5b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x55, 0x3a, 0x01, 0x2a, 0x5a, 0x28, 0x12, 0x26, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x74, 0x6f, 0x74, 0x68, 0x69, 0x73, 0x22, 0x26, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x74, 0x6f, 0x74, 0x68, 0x69, 0x73, 0x12, 0x5a, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x54, 0x68, 0x69, 0x73, 0x32, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x1a, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x32, 0x99, 0x02, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x4e, 0x75, 0x6d, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x00, 0x32, 0x83, 0x01, 0x0a, 0x07, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x78, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x2f, 0x67, 0x65, 0x74, 0x73, 0x74, 0x61, 0x74, 0x73, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x15, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x2f, 0x67, 0x65, 0x74, 0x73, 0x74, 0x61, 0x74, 0x73, 0x69, 0x6e, 0x66, 0x6f, 0x32, 0x09, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x42, 0x41, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x2e, 0x74, 0x72, 0x6f, 0x6e, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x07, 0x47, 0x72, 0x70, 0x63, 0x41, 0x50, 0x49, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_api_api_proto_rawDescOnce sync.Once file_api_api_proto_rawDescData = file_api_api_proto_rawDesc ) func file_api_api_proto_rawDescGZIP() []byte { file_api_api_proto_rawDescOnce.Do(func() { file_api_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_api_proto_rawDescData) }) return file_api_api_proto_rawDescData } var file_api_api_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_api_api_proto_msgTypes = make([]protoimpl.MessageInfo, 82) var file_api_api_proto_goTypes = []interface{}{ (ReturnResponseCode)(0), // 0: protocol.Return.response_code (TransactionSignWeight_ResultResponseCode)(0), // 1: protocol.TransactionSignWeight.Result.response_code (TransactionApprovedList_ResultResponseCode)(0), // 2: protocol.TransactionApprovedList.Result.response_code (*Return)(nil), // 3: protocol.Return (*BlockReference)(nil), // 4: protocol.BlockReference (*WitnessList)(nil), // 5: protocol.WitnessList (*ProposalList)(nil), // 6: protocol.ProposalList (*ExchangeList)(nil), // 7: protocol.ExchangeList (*AssetIssueList)(nil), // 8: protocol.AssetIssueList (*BlockList)(nil), // 9: protocol.BlockList (*TransactionList)(nil), // 10: protocol.TransactionList (*TransactionIdList)(nil), // 11: protocol.TransactionIdList (*DelegatedResourceMessage)(nil), // 12: protocol.DelegatedResourceMessage (*DelegatedResourceList)(nil), // 13: protocol.DelegatedResourceList (*GetAvailableUnfreezeCountRequestMessage)(nil), // 14: protocol.GetAvailableUnfreezeCountRequestMessage (*GetAvailableUnfreezeCountResponseMessage)(nil), // 15: protocol.GetAvailableUnfreezeCountResponseMessage (*CanDelegatedMaxSizeRequestMessage)(nil), // 16: protocol.CanDelegatedMaxSizeRequestMessage (*CanDelegatedMaxSizeResponseMessage)(nil), // 17: protocol.CanDelegatedMaxSizeResponseMessage (*CanWithdrawUnfreezeAmountRequestMessage)(nil), // 18: protocol.CanWithdrawUnfreezeAmountRequestMessage (*CanWithdrawUnfreezeAmountResponseMessage)(nil), // 19: protocol.CanWithdrawUnfreezeAmountResponseMessage (*PricesResponseMessage)(nil), // 20: protocol.PricesResponseMessage (*NodeList)(nil), // 21: protocol.NodeList (*Node)(nil), // 22: protocol.Node (*Address)(nil), // 23: protocol.Address (*EmptyMessage)(nil), // 24: protocol.EmptyMessage (*NumberMessage)(nil), // 25: protocol.NumberMessage (*BytesMessage)(nil), // 26: protocol.BytesMessage (*TimeMessage)(nil), // 27: protocol.TimeMessage (*BlockReq)(nil), // 28: protocol.BlockReq (*BlockLimit)(nil), // 29: protocol.BlockLimit (*TransactionLimit)(nil), // 30: protocol.TransactionLimit (*AccountPaginated)(nil), // 31: protocol.AccountPaginated (*TimePaginatedMessage)(nil), // 32: protocol.TimePaginatedMessage (*AccountNetMessage)(nil), // 33: protocol.AccountNetMessage (*AccountResourceMessage)(nil), // 34: protocol.AccountResourceMessage (*PaginatedMessage)(nil), // 35: protocol.PaginatedMessage (*TransactionExtention)(nil), // 36: protocol.TransactionExtention (*EstimateEnergyMessage)(nil), // 37: protocol.EstimateEnergyMessage (*BlockExtention)(nil), // 38: protocol.BlockExtention (*BlockListExtention)(nil), // 39: protocol.BlockListExtention (*TransactionListExtention)(nil), // 40: protocol.TransactionListExtention (*BlockIncrementalMerkleTree)(nil), // 41: protocol.BlockIncrementalMerkleTree (*TransactionSignWeight)(nil), // 42: protocol.TransactionSignWeight (*TransactionApprovedList)(nil), // 43: protocol.TransactionApprovedList (*IvkDecryptParameters)(nil), // 44: protocol.IvkDecryptParameters (*IvkDecryptAndMarkParameters)(nil), // 45: protocol.IvkDecryptAndMarkParameters (*OvkDecryptParameters)(nil), // 46: protocol.OvkDecryptParameters (*DecryptNotes)(nil), // 47: protocol.DecryptNotes (*DecryptNotesMarked)(nil), // 48: protocol.DecryptNotesMarked (*Note)(nil), // 49: protocol.Note (*SpendNote)(nil), // 50: protocol.SpendNote (*ReceiveNote)(nil), // 51: protocol.ReceiveNote (*PrivateParameters)(nil), // 52: protocol.PrivateParameters (*PrivateParametersWithoutAsk)(nil), // 53: protocol.PrivateParametersWithoutAsk (*SpendAuthSigParameters)(nil), // 54: protocol.SpendAuthSigParameters (*NfParameters)(nil), // 55: protocol.NfParameters (*ExpandedSpendingKeyMessage)(nil), // 56: protocol.ExpandedSpendingKeyMessage (*ViewingKeyMessage)(nil), // 57: protocol.ViewingKeyMessage (*IncomingViewingKeyMessage)(nil), // 58: protocol.IncomingViewingKeyMessage (*DiversifierMessage)(nil), // 59: protocol.DiversifierMessage (*IncomingViewingKeyDiversifierMessage)(nil), // 60: protocol.IncomingViewingKeyDiversifierMessage (*PaymentAddressMessage)(nil), // 61: protocol.PaymentAddressMessage (*ShieldedAddressInfo)(nil), // 62: protocol.ShieldedAddressInfo (*NoteParameters)(nil), // 63: protocol.NoteParameters (*SpendResult)(nil), // 64: protocol.SpendResult (*TransactionInfoList)(nil), // 65: protocol.TransactionInfoList (*SpendNoteTRC20)(nil), // 66: protocol.SpendNoteTRC20 (*PrivateShieldedTRC20Parameters)(nil), // 67: protocol.PrivateShieldedTRC20Parameters (*PrivateShieldedTRC20ParametersWithoutAsk)(nil), // 68: protocol.PrivateShieldedTRC20ParametersWithoutAsk (*ShieldedTRC20Parameters)(nil), // 69: protocol.ShieldedTRC20Parameters (*IvkDecryptTRC20Parameters)(nil), // 70: protocol.IvkDecryptTRC20Parameters (*OvkDecryptTRC20Parameters)(nil), // 71: protocol.OvkDecryptTRC20Parameters (*DecryptNotesTRC20)(nil), // 72: protocol.DecryptNotesTRC20 (*NfTRC20Parameters)(nil), // 73: protocol.NfTRC20Parameters (*NullifierResult)(nil), // 74: protocol.NullifierResult (*ShieldedTRC20TriggerContractParameters)(nil), // 75: protocol.ShieldedTRC20TriggerContractParameters nil, // 76: protocol.AccountNetMessage.AssetNetUsedEntry nil, // 77: protocol.AccountNetMessage.AssetNetLimitEntry nil, // 78: protocol.AccountResourceMessage.AssetNetUsedEntry nil, // 79: protocol.AccountResourceMessage.AssetNetLimitEntry (*TransactionSignWeight_Result)(nil), // 80: protocol.TransactionSignWeight.Result (*TransactionApprovedList_Result)(nil), // 81: protocol.TransactionApprovedList.Result (*DecryptNotes_NoteTx)(nil), // 82: protocol.DecryptNotes.NoteTx (*DecryptNotesMarked_NoteTx)(nil), // 83: protocol.DecryptNotesMarked.NoteTx (*DecryptNotesTRC20_NoteTx)(nil), // 84: protocol.DecryptNotesTRC20.NoteTx (*core.Witness)(nil), // 85: protocol.Witness (*core.Proposal)(nil), // 86: protocol.Proposal (*core.Exchange)(nil), // 87: protocol.Exchange (*core.AssetIssueContract)(nil), // 88: protocol.AssetIssueContract (*core.Block)(nil), // 89: protocol.Block (*core.Transaction)(nil), // 90: protocol.Transaction (*core.DelegatedResource)(nil), // 91: protocol.DelegatedResource (*core.Account)(nil), // 92: protocol.Account (*core.TransactionInfo_Log)(nil), // 93: protocol.TransactionInfo.Log (*core.InternalTransaction)(nil), // 94: protocol.InternalTransaction (*core.BlockHeader)(nil), // 95: protocol.BlockHeader (*core.IncrementalMerkleTree)(nil), // 96: protocol.IncrementalMerkleTree (*core.Permission)(nil), // 97: protocol.Permission (*core.IncrementalMerkleVoucher)(nil), // 98: protocol.IncrementalMerkleVoucher (*core.TransactionInfo)(nil), // 99: protocol.TransactionInfo (*core.SpendDescription)(nil), // 100: protocol.SpendDescription (*core.ReceiveDescription)(nil), // 101: protocol.ReceiveDescription (*core.AccountBalanceRequest)(nil), // 102: protocol.AccountBalanceRequest (*core.BlockBalanceTrace_BlockIdentifier)(nil), // 103: protocol.BlockBalanceTrace.BlockIdentifier (*core.TransferContract)(nil), // 104: protocol.TransferContract (*core.AccountUpdateContract)(nil), // 105: protocol.AccountUpdateContract (*core.SetAccountIdContract)(nil), // 106: protocol.SetAccountIdContract (*core.VoteWitnessContract)(nil), // 107: protocol.VoteWitnessContract (*core.UpdateSettingContract)(nil), // 108: protocol.UpdateSettingContract (*core.UpdateEnergyLimitContract)(nil), // 109: protocol.UpdateEnergyLimitContract (*core.WitnessUpdateContract)(nil), // 110: protocol.WitnessUpdateContract (*core.AccountCreateContract)(nil), // 111: protocol.AccountCreateContract (*core.WitnessCreateContract)(nil), // 112: protocol.WitnessCreateContract (*core.TransferAssetContract)(nil), // 113: protocol.TransferAssetContract (*core.ParticipateAssetIssueContract)(nil), // 114: protocol.ParticipateAssetIssueContract (*core.FreezeBalanceContract)(nil), // 115: protocol.FreezeBalanceContract (*core.FreezeBalanceV2Contract)(nil), // 116: protocol.FreezeBalanceV2Contract (*core.UnfreezeBalanceContract)(nil), // 117: protocol.UnfreezeBalanceContract (*core.UnfreezeBalanceV2Contract)(nil), // 118: protocol.UnfreezeBalanceV2Contract (*core.UnfreezeAssetContract)(nil), // 119: protocol.UnfreezeAssetContract (*core.WithdrawBalanceContract)(nil), // 120: protocol.WithdrawBalanceContract (*core.WithdrawExpireUnfreezeContract)(nil), // 121: protocol.WithdrawExpireUnfreezeContract (*core.DelegateResourceContract)(nil), // 122: protocol.DelegateResourceContract (*core.UnDelegateResourceContract)(nil), // 123: protocol.UnDelegateResourceContract (*core.CancelAllUnfreezeV2Contract)(nil), // 124: protocol.CancelAllUnfreezeV2Contract (*core.UpdateAssetContract)(nil), // 125: protocol.UpdateAssetContract (*core.ProposalCreateContract)(nil), // 126: protocol.ProposalCreateContract (*core.ProposalApproveContract)(nil), // 127: protocol.ProposalApproveContract (*core.ProposalDeleteContract)(nil), // 128: protocol.ProposalDeleteContract (*core.BuyStorageContract)(nil), // 129: protocol.BuyStorageContract (*core.BuyStorageBytesContract)(nil), // 130: protocol.BuyStorageBytesContract (*core.SellStorageContract)(nil), // 131: protocol.SellStorageContract (*core.ExchangeCreateContract)(nil), // 132: protocol.ExchangeCreateContract (*core.ExchangeInjectContract)(nil), // 133: protocol.ExchangeInjectContract (*core.ExchangeWithdrawContract)(nil), // 134: protocol.ExchangeWithdrawContract (*core.ExchangeTransactionContract)(nil), // 135: protocol.ExchangeTransactionContract (*core.MarketSellAssetContract)(nil), // 136: protocol.MarketSellAssetContract (*core.MarketCancelOrderContract)(nil), // 137: protocol.MarketCancelOrderContract (*core.MarketOrderPair)(nil), // 138: protocol.MarketOrderPair (*core.CreateSmartContract)(nil), // 139: protocol.CreateSmartContract (*core.TriggerSmartContract)(nil), // 140: protocol.TriggerSmartContract (*core.ClearABIContract)(nil), // 141: protocol.ClearABIContract (*core.AccountPermissionUpdateContract)(nil), // 142: protocol.AccountPermissionUpdateContract (*core.UpdateBrokerageContract)(nil), // 143: protocol.UpdateBrokerageContract (*core.OutputPointInfo)(nil), // 144: protocol.OutputPointInfo (*core.AccountBalanceResponse)(nil), // 145: protocol.AccountBalanceResponse (*core.BlockBalanceTrace)(nil), // 146: protocol.BlockBalanceTrace (*core.MarketOrder)(nil), // 147: protocol.MarketOrder (*core.MarketOrderList)(nil), // 148: protocol.MarketOrderList (*core.MarketPriceList)(nil), // 149: protocol.MarketPriceList (*core.MarketOrderPairList)(nil), // 150: protocol.MarketOrderPairList (*core.SmartContract)(nil), // 151: protocol.SmartContract (*core.SmartContractDataWrapper)(nil), // 152: protocol.SmartContractDataWrapper (*core.DelegatedResourceAccountIndex)(nil), // 153: protocol.DelegatedResourceAccountIndex (*core.ChainParameters)(nil), // 154: protocol.ChainParameters (*core.NodeInfo)(nil), // 155: protocol.NodeInfo (*core.IncrementalMerkleVoucherInfo)(nil), // 156: protocol.IncrementalMerkleVoucherInfo (*core.DynamicProperties)(nil), // 157: protocol.DynamicProperties (*core.MetricsInfo)(nil), // 158: protocol.MetricsInfo } var file_api_api_proto_depIdxs = []int32{ 0, // 0: protocol.Return.code:type_name -> protocol.Return.response_code 85, // 1: protocol.WitnessList.witnesses:type_name -> protocol.Witness 86, // 2: protocol.ProposalList.proposals:type_name -> protocol.Proposal 87, // 3: protocol.ExchangeList.exchanges:type_name -> protocol.Exchange 88, // 4: protocol.AssetIssueList.assetIssue:type_name -> protocol.AssetIssueContract 89, // 5: protocol.BlockList.block:type_name -> protocol.Block 90, // 6: protocol.TransactionList.transaction:type_name -> protocol.Transaction 91, // 7: protocol.DelegatedResourceList.delegatedResource:type_name -> protocol.DelegatedResource 22, // 8: protocol.NodeList.nodes:type_name -> protocol.Node 23, // 9: protocol.Node.address:type_name -> protocol.Address 92, // 10: protocol.AccountPaginated.account:type_name -> protocol.Account 27, // 11: protocol.TimePaginatedMessage.timeMessage:type_name -> protocol.TimeMessage 76, // 12: protocol.AccountNetMessage.assetNetUsed:type_name -> protocol.AccountNetMessage.AssetNetUsedEntry 77, // 13: protocol.AccountNetMessage.assetNetLimit:type_name -> protocol.AccountNetMessage.AssetNetLimitEntry 78, // 14: protocol.AccountResourceMessage.assetNetUsed:type_name -> protocol.AccountResourceMessage.AssetNetUsedEntry 79, // 15: protocol.AccountResourceMessage.assetNetLimit:type_name -> protocol.AccountResourceMessage.AssetNetLimitEntry 90, // 16: protocol.TransactionExtention.transaction:type_name -> protocol.Transaction 3, // 17: protocol.TransactionExtention.result:type_name -> protocol.Return 93, // 18: protocol.TransactionExtention.logs:type_name -> protocol.TransactionInfo.Log 94, // 19: protocol.TransactionExtention.internal_transactions:type_name -> protocol.InternalTransaction 3, // 20: protocol.EstimateEnergyMessage.result:type_name -> protocol.Return 36, // 21: protocol.BlockExtention.transactions:type_name -> protocol.TransactionExtention 95, // 22: protocol.BlockExtention.block_header:type_name -> protocol.BlockHeader 38, // 23: protocol.BlockListExtention.block:type_name -> protocol.BlockExtention 36, // 24: protocol.TransactionListExtention.transaction:type_name -> protocol.TransactionExtention 96, // 25: protocol.BlockIncrementalMerkleTree.merkleTree:type_name -> protocol.IncrementalMerkleTree 97, // 26: protocol.TransactionSignWeight.permission:type_name -> protocol.Permission 80, // 27: protocol.TransactionSignWeight.result:type_name -> protocol.TransactionSignWeight.Result 36, // 28: protocol.TransactionSignWeight.transaction:type_name -> protocol.TransactionExtention 81, // 29: protocol.TransactionApprovedList.result:type_name -> protocol.TransactionApprovedList.Result 36, // 30: protocol.TransactionApprovedList.transaction:type_name -> protocol.TransactionExtention 82, // 31: protocol.DecryptNotes.noteTxs:type_name -> protocol.DecryptNotes.NoteTx 83, // 32: protocol.DecryptNotesMarked.noteTxs:type_name -> protocol.DecryptNotesMarked.NoteTx 49, // 33: protocol.SpendNote.note:type_name -> protocol.Note 98, // 34: protocol.SpendNote.voucher:type_name -> protocol.IncrementalMerkleVoucher 49, // 35: protocol.ReceiveNote.note:type_name -> protocol.Note 50, // 36: protocol.PrivateParameters.shielded_spends:type_name -> protocol.SpendNote 51, // 37: protocol.PrivateParameters.shielded_receives:type_name -> protocol.ReceiveNote 50, // 38: protocol.PrivateParametersWithoutAsk.shielded_spends:type_name -> protocol.SpendNote 51, // 39: protocol.PrivateParametersWithoutAsk.shielded_receives:type_name -> protocol.ReceiveNote 49, // 40: protocol.NfParameters.note:type_name -> protocol.Note 98, // 41: protocol.NfParameters.voucher:type_name -> protocol.IncrementalMerkleVoucher 58, // 42: protocol.IncomingViewingKeyDiversifierMessage.ivk:type_name -> protocol.IncomingViewingKeyMessage 59, // 43: protocol.IncomingViewingKeyDiversifierMessage.d:type_name -> protocol.DiversifierMessage 59, // 44: protocol.PaymentAddressMessage.d:type_name -> protocol.DiversifierMessage 49, // 45: protocol.NoteParameters.note:type_name -> protocol.Note 99, // 46: protocol.TransactionInfoList.transactionInfo:type_name -> protocol.TransactionInfo 49, // 47: protocol.SpendNoteTRC20.note:type_name -> protocol.Note 66, // 48: protocol.PrivateShieldedTRC20Parameters.shielded_spends:type_name -> protocol.SpendNoteTRC20 51, // 49: protocol.PrivateShieldedTRC20Parameters.shielded_receives:type_name -> protocol.ReceiveNote 66, // 50: protocol.PrivateShieldedTRC20ParametersWithoutAsk.shielded_spends:type_name -> protocol.SpendNoteTRC20 51, // 51: protocol.PrivateShieldedTRC20ParametersWithoutAsk.shielded_receives:type_name -> protocol.ReceiveNote 100, // 52: protocol.ShieldedTRC20Parameters.spend_description:type_name -> protocol.SpendDescription 101, // 53: protocol.ShieldedTRC20Parameters.receive_description:type_name -> protocol.ReceiveDescription 84, // 54: protocol.DecryptNotesTRC20.noteTxs:type_name -> protocol.DecryptNotesTRC20.NoteTx 49, // 55: protocol.NfTRC20Parameters.note:type_name -> protocol.Note 69, // 56: protocol.ShieldedTRC20TriggerContractParameters.shielded_TRC20_Parameters:type_name -> protocol.ShieldedTRC20Parameters 26, // 57: protocol.ShieldedTRC20TriggerContractParameters.spend_authority_signature:type_name -> protocol.BytesMessage 1, // 58: protocol.TransactionSignWeight.Result.code:type_name -> protocol.TransactionSignWeight.Result.response_code 2, // 59: protocol.TransactionApprovedList.Result.code:type_name -> protocol.TransactionApprovedList.Result.response_code 49, // 60: protocol.DecryptNotes.NoteTx.note:type_name -> protocol.Note 49, // 61: protocol.DecryptNotesMarked.NoteTx.note:type_name -> protocol.Note 49, // 62: protocol.DecryptNotesTRC20.NoteTx.note:type_name -> protocol.Note 92, // 63: protocol.Wallet.GetAccount:input_type -> protocol.Account 92, // 64: protocol.Wallet.GetAccountById:input_type -> protocol.Account 102, // 65: protocol.Wallet.GetAccountBalance:input_type -> protocol.AccountBalanceRequest 103, // 66: protocol.Wallet.GetBlockBalanceTrace:input_type -> protocol.BlockBalanceTrace.BlockIdentifier 104, // 67: protocol.Wallet.CreateTransaction:input_type -> protocol.TransferContract 104, // 68: protocol.Wallet.CreateTransaction2:input_type -> protocol.TransferContract 90, // 69: protocol.Wallet.BroadcastTransaction:input_type -> protocol.Transaction 105, // 70: protocol.Wallet.UpdateAccount:input_type -> protocol.AccountUpdateContract 106, // 71: protocol.Wallet.SetAccountId:input_type -> protocol.SetAccountIdContract 105, // 72: protocol.Wallet.UpdateAccount2:input_type -> protocol.AccountUpdateContract 107, // 73: protocol.Wallet.VoteWitnessAccount:input_type -> protocol.VoteWitnessContract 108, // 74: protocol.Wallet.UpdateSetting:input_type -> protocol.UpdateSettingContract 109, // 75: protocol.Wallet.UpdateEnergyLimit:input_type -> protocol.UpdateEnergyLimitContract 107, // 76: protocol.Wallet.VoteWitnessAccount2:input_type -> protocol.VoteWitnessContract 88, // 77: protocol.Wallet.CreateAssetIssue:input_type -> protocol.AssetIssueContract 88, // 78: protocol.Wallet.CreateAssetIssue2:input_type -> protocol.AssetIssueContract 110, // 79: protocol.Wallet.UpdateWitness:input_type -> protocol.WitnessUpdateContract 110, // 80: protocol.Wallet.UpdateWitness2:input_type -> protocol.WitnessUpdateContract 111, // 81: protocol.Wallet.CreateAccount:input_type -> protocol.AccountCreateContract 111, // 82: protocol.Wallet.CreateAccount2:input_type -> protocol.AccountCreateContract 112, // 83: protocol.Wallet.CreateWitness:input_type -> protocol.WitnessCreateContract 112, // 84: protocol.Wallet.CreateWitness2:input_type -> protocol.WitnessCreateContract 113, // 85: protocol.Wallet.TransferAsset:input_type -> protocol.TransferAssetContract 113, // 86: protocol.Wallet.TransferAsset2:input_type -> protocol.TransferAssetContract 114, // 87: protocol.Wallet.ParticipateAssetIssue:input_type -> protocol.ParticipateAssetIssueContract 114, // 88: protocol.Wallet.ParticipateAssetIssue2:input_type -> protocol.ParticipateAssetIssueContract 115, // 89: protocol.Wallet.FreezeBalance:input_type -> protocol.FreezeBalanceContract 115, // 90: protocol.Wallet.FreezeBalance2:input_type -> protocol.FreezeBalanceContract 116, // 91: protocol.Wallet.FreezeBalanceV2:input_type -> protocol.FreezeBalanceV2Contract 117, // 92: protocol.Wallet.UnfreezeBalance:input_type -> protocol.UnfreezeBalanceContract 117, // 93: protocol.Wallet.UnfreezeBalance2:input_type -> protocol.UnfreezeBalanceContract 118, // 94: protocol.Wallet.UnfreezeBalanceV2:input_type -> protocol.UnfreezeBalanceV2Contract 119, // 95: protocol.Wallet.UnfreezeAsset:input_type -> protocol.UnfreezeAssetContract 119, // 96: protocol.Wallet.UnfreezeAsset2:input_type -> protocol.UnfreezeAssetContract 120, // 97: protocol.Wallet.WithdrawBalance:input_type -> protocol.WithdrawBalanceContract 120, // 98: protocol.Wallet.WithdrawBalance2:input_type -> protocol.WithdrawBalanceContract 121, // 99: protocol.Wallet.WithdrawExpireUnfreeze:input_type -> protocol.WithdrawExpireUnfreezeContract 122, // 100: protocol.Wallet.DelegateResource:input_type -> protocol.DelegateResourceContract 123, // 101: protocol.Wallet.UnDelegateResource:input_type -> protocol.UnDelegateResourceContract 124, // 102: protocol.Wallet.CancelAllUnfreezeV2:input_type -> protocol.CancelAllUnfreezeV2Contract 125, // 103: protocol.Wallet.UpdateAsset:input_type -> protocol.UpdateAssetContract 125, // 104: protocol.Wallet.UpdateAsset2:input_type -> protocol.UpdateAssetContract 126, // 105: protocol.Wallet.ProposalCreate:input_type -> protocol.ProposalCreateContract 127, // 106: protocol.Wallet.ProposalApprove:input_type -> protocol.ProposalApproveContract 128, // 107: protocol.Wallet.ProposalDelete:input_type -> protocol.ProposalDeleteContract 129, // 108: protocol.Wallet.BuyStorage:input_type -> protocol.BuyStorageContract 130, // 109: protocol.Wallet.BuyStorageBytes:input_type -> protocol.BuyStorageBytesContract 131, // 110: protocol.Wallet.SellStorage:input_type -> protocol.SellStorageContract 132, // 111: protocol.Wallet.ExchangeCreate:input_type -> protocol.ExchangeCreateContract 133, // 112: protocol.Wallet.ExchangeInject:input_type -> protocol.ExchangeInjectContract 134, // 113: protocol.Wallet.ExchangeWithdraw:input_type -> protocol.ExchangeWithdrawContract 135, // 114: protocol.Wallet.ExchangeTransaction:input_type -> protocol.ExchangeTransactionContract 136, // 115: protocol.Wallet.MarketSellAsset:input_type -> protocol.MarketSellAssetContract 137, // 116: protocol.Wallet.MarketCancelOrder:input_type -> protocol.MarketCancelOrderContract 26, // 117: protocol.Wallet.GetMarketOrderById:input_type -> protocol.BytesMessage 26, // 118: protocol.Wallet.GetMarketOrderByAccount:input_type -> protocol.BytesMessage 138, // 119: protocol.Wallet.GetMarketPriceByPair:input_type -> protocol.MarketOrderPair 138, // 120: protocol.Wallet.GetMarketOrderListByPair:input_type -> protocol.MarketOrderPair 24, // 121: protocol.Wallet.GetMarketPairList:input_type -> protocol.EmptyMessage 24, // 122: protocol.Wallet.ListNodes:input_type -> protocol.EmptyMessage 92, // 123: protocol.Wallet.GetAssetIssueByAccount:input_type -> protocol.Account 92, // 124: protocol.Wallet.GetAccountNet:input_type -> protocol.Account 92, // 125: protocol.Wallet.GetAccountResource:input_type -> protocol.Account 26, // 126: protocol.Wallet.GetAssetIssueByName:input_type -> protocol.BytesMessage 26, // 127: protocol.Wallet.GetAssetIssueListByName:input_type -> protocol.BytesMessage 26, // 128: protocol.Wallet.GetAssetIssueById:input_type -> protocol.BytesMessage 24, // 129: protocol.Wallet.GetNowBlock:input_type -> protocol.EmptyMessage 24, // 130: protocol.Wallet.GetNowBlock2:input_type -> protocol.EmptyMessage 25, // 131: protocol.Wallet.GetBlockByNum:input_type -> protocol.NumberMessage 25, // 132: protocol.Wallet.GetBlockByNum2:input_type -> protocol.NumberMessage 25, // 133: protocol.Wallet.GetTransactionCountByBlockNum:input_type -> protocol.NumberMessage 26, // 134: protocol.Wallet.GetBlockById:input_type -> protocol.BytesMessage 29, // 135: protocol.Wallet.GetBlockByLimitNext:input_type -> protocol.BlockLimit 29, // 136: protocol.Wallet.GetBlockByLimitNext2:input_type -> protocol.BlockLimit 25, // 137: protocol.Wallet.GetBlockByLatestNum:input_type -> protocol.NumberMessage 25, // 138: protocol.Wallet.GetBlockByLatestNum2:input_type -> protocol.NumberMessage 26, // 139: protocol.Wallet.GetTransactionById:input_type -> protocol.BytesMessage 139, // 140: protocol.Wallet.DeployContract:input_type -> protocol.CreateSmartContract 26, // 141: protocol.Wallet.GetContract:input_type -> protocol.BytesMessage 26, // 142: protocol.Wallet.GetContractInfo:input_type -> protocol.BytesMessage 140, // 143: protocol.Wallet.TriggerContract:input_type -> protocol.TriggerSmartContract 140, // 144: protocol.Wallet.TriggerConstantContract:input_type -> protocol.TriggerSmartContract 140, // 145: protocol.Wallet.EstimateEnergy:input_type -> protocol.TriggerSmartContract 141, // 146: protocol.Wallet.ClearContractABI:input_type -> protocol.ClearABIContract 24, // 147: protocol.Wallet.ListWitnesses:input_type -> protocol.EmptyMessage 12, // 148: protocol.Wallet.GetDelegatedResource:input_type -> protocol.DelegatedResourceMessage 12, // 149: protocol.Wallet.GetDelegatedResourceV2:input_type -> protocol.DelegatedResourceMessage 26, // 150: protocol.Wallet.GetDelegatedResourceAccountIndex:input_type -> protocol.BytesMessage 26, // 151: protocol.Wallet.GetDelegatedResourceAccountIndexV2:input_type -> protocol.BytesMessage 16, // 152: protocol.Wallet.GetCanDelegatedMaxSize:input_type -> protocol.CanDelegatedMaxSizeRequestMessage 14, // 153: protocol.Wallet.GetAvailableUnfreezeCount:input_type -> protocol.GetAvailableUnfreezeCountRequestMessage 18, // 154: protocol.Wallet.GetCanWithdrawUnfreezeAmount:input_type -> protocol.CanWithdrawUnfreezeAmountRequestMessage 24, // 155: protocol.Wallet.ListProposals:input_type -> protocol.EmptyMessage 35, // 156: protocol.Wallet.GetPaginatedProposalList:input_type -> protocol.PaginatedMessage 26, // 157: protocol.Wallet.GetProposalById:input_type -> protocol.BytesMessage 24, // 158: protocol.Wallet.ListExchanges:input_type -> protocol.EmptyMessage 35, // 159: protocol.Wallet.GetPaginatedExchangeList:input_type -> protocol.PaginatedMessage 26, // 160: protocol.Wallet.GetExchangeById:input_type -> protocol.BytesMessage 24, // 161: protocol.Wallet.GetChainParameters:input_type -> protocol.EmptyMessage 24, // 162: protocol.Wallet.GetAssetIssueList:input_type -> protocol.EmptyMessage 35, // 163: protocol.Wallet.GetPaginatedAssetIssueList:input_type -> protocol.PaginatedMessage 24, // 164: protocol.Wallet.TotalTransaction:input_type -> protocol.EmptyMessage 24, // 165: protocol.Wallet.GetNextMaintenanceTime:input_type -> protocol.EmptyMessage 26, // 166: protocol.Wallet.GetTransactionInfoById:input_type -> protocol.BytesMessage 142, // 167: protocol.Wallet.AccountPermissionUpdate:input_type -> protocol.AccountPermissionUpdateContract 90, // 168: protocol.Wallet.GetTransactionSignWeight:input_type -> protocol.Transaction 90, // 169: protocol.Wallet.GetTransactionApprovedList:input_type -> protocol.Transaction 24, // 170: protocol.Wallet.GetNodeInfo:input_type -> protocol.EmptyMessage 26, // 171: protocol.Wallet.GetRewardInfo:input_type -> protocol.BytesMessage 26, // 172: protocol.Wallet.GetBrokerageInfo:input_type -> protocol.BytesMessage 143, // 173: protocol.Wallet.UpdateBrokerage:input_type -> protocol.UpdateBrokerageContract 52, // 174: protocol.Wallet.CreateShieldedTransaction:input_type -> protocol.PrivateParameters 144, // 175: protocol.Wallet.GetMerkleTreeVoucherInfo:input_type -> protocol.OutputPointInfo 44, // 176: protocol.Wallet.ScanNoteByIvk:input_type -> protocol.IvkDecryptParameters 45, // 177: protocol.Wallet.ScanAndMarkNoteByIvk:input_type -> protocol.IvkDecryptAndMarkParameters 46, // 178: protocol.Wallet.ScanNoteByOvk:input_type -> protocol.OvkDecryptParameters 24, // 179: protocol.Wallet.GetSpendingKey:input_type -> protocol.EmptyMessage 26, // 180: protocol.Wallet.GetExpandedSpendingKey:input_type -> protocol.BytesMessage 26, // 181: protocol.Wallet.GetAkFromAsk:input_type -> protocol.BytesMessage 26, // 182: protocol.Wallet.GetNkFromNsk:input_type -> protocol.BytesMessage 57, // 183: protocol.Wallet.GetIncomingViewingKey:input_type -> protocol.ViewingKeyMessage 24, // 184: protocol.Wallet.GetDiversifier:input_type -> protocol.EmptyMessage 24, // 185: protocol.Wallet.GetNewShieldedAddress:input_type -> protocol.EmptyMessage 60, // 186: protocol.Wallet.GetZenPaymentAddress:input_type -> protocol.IncomingViewingKeyDiversifierMessage 24, // 187: protocol.Wallet.GetRcm:input_type -> protocol.EmptyMessage 63, // 188: protocol.Wallet.IsSpend:input_type -> protocol.NoteParameters 53, // 189: protocol.Wallet.CreateShieldedTransactionWithoutSpendAuthSig:input_type -> protocol.PrivateParametersWithoutAsk 90, // 190: protocol.Wallet.GetShieldTransactionHash:input_type -> protocol.Transaction 54, // 191: protocol.Wallet.CreateSpendAuthSig:input_type -> protocol.SpendAuthSigParameters 55, // 192: protocol.Wallet.CreateShieldNullifier:input_type -> protocol.NfParameters 67, // 193: protocol.Wallet.CreateShieldedContractParameters:input_type -> protocol.PrivateShieldedTRC20Parameters 68, // 194: protocol.Wallet.CreateShieldedContractParametersWithoutAsk:input_type -> protocol.PrivateShieldedTRC20ParametersWithoutAsk 70, // 195: protocol.Wallet.ScanShieldedTRC20NotesByIvk:input_type -> protocol.IvkDecryptTRC20Parameters 71, // 196: protocol.Wallet.ScanShieldedTRC20NotesByOvk:input_type -> protocol.OvkDecryptTRC20Parameters 73, // 197: protocol.Wallet.IsShieldedTRC20ContractNoteSpent:input_type -> protocol.NfTRC20Parameters 75, // 198: protocol.Wallet.GetTriggerInputForShieldedTRC20Contract:input_type -> protocol.ShieldedTRC20TriggerContractParameters 90, // 199: protocol.Wallet.CreateCommonTransaction:input_type -> protocol.Transaction 25, // 200: protocol.Wallet.GetTransactionInfoByBlockNum:input_type -> protocol.NumberMessage 24, // 201: protocol.Wallet.GetBurnTrx:input_type -> protocol.EmptyMessage 26, // 202: protocol.Wallet.GetTransactionFromPending:input_type -> protocol.BytesMessage 24, // 203: protocol.Wallet.GetTransactionListFromPending:input_type -> protocol.EmptyMessage 24, // 204: protocol.Wallet.GetPendingSize:input_type -> protocol.EmptyMessage 28, // 205: protocol.Wallet.GetBlock:input_type -> protocol.BlockReq 24, // 206: protocol.Wallet.GetBandwidthPrices:input_type -> protocol.EmptyMessage 24, // 207: protocol.Wallet.GetEnergyPrices:input_type -> protocol.EmptyMessage 24, // 208: protocol.Wallet.GetMemoFee:input_type -> protocol.EmptyMessage 92, // 209: protocol.WalletSolidity.GetAccount:input_type -> protocol.Account 92, // 210: protocol.WalletSolidity.GetAccountById:input_type -> protocol.Account 24, // 211: protocol.WalletSolidity.ListWitnesses:input_type -> protocol.EmptyMessage 24, // 212: protocol.WalletSolidity.GetAssetIssueList:input_type -> protocol.EmptyMessage 35, // 213: protocol.WalletSolidity.GetPaginatedAssetIssueList:input_type -> protocol.PaginatedMessage 26, // 214: protocol.WalletSolidity.GetAssetIssueByName:input_type -> protocol.BytesMessage 26, // 215: protocol.WalletSolidity.GetAssetIssueListByName:input_type -> protocol.BytesMessage 26, // 216: protocol.WalletSolidity.GetAssetIssueById:input_type -> protocol.BytesMessage 24, // 217: protocol.WalletSolidity.GetNowBlock:input_type -> protocol.EmptyMessage 24, // 218: protocol.WalletSolidity.GetNowBlock2:input_type -> protocol.EmptyMessage 25, // 219: protocol.WalletSolidity.GetBlockByNum:input_type -> protocol.NumberMessage 25, // 220: protocol.WalletSolidity.GetBlockByNum2:input_type -> protocol.NumberMessage 25, // 221: protocol.WalletSolidity.GetTransactionCountByBlockNum:input_type -> protocol.NumberMessage 12, // 222: protocol.WalletSolidity.GetDelegatedResource:input_type -> protocol.DelegatedResourceMessage 12, // 223: protocol.WalletSolidity.GetDelegatedResourceV2:input_type -> protocol.DelegatedResourceMessage 26, // 224: protocol.WalletSolidity.GetDelegatedResourceAccountIndex:input_type -> protocol.BytesMessage 26, // 225: protocol.WalletSolidity.GetDelegatedResourceAccountIndexV2:input_type -> protocol.BytesMessage 16, // 226: protocol.WalletSolidity.GetCanDelegatedMaxSize:input_type -> protocol.CanDelegatedMaxSizeRequestMessage 14, // 227: protocol.WalletSolidity.GetAvailableUnfreezeCount:input_type -> protocol.GetAvailableUnfreezeCountRequestMessage 18, // 228: protocol.WalletSolidity.GetCanWithdrawUnfreezeAmount:input_type -> protocol.CanWithdrawUnfreezeAmountRequestMessage 26, // 229: protocol.WalletSolidity.GetExchangeById:input_type -> protocol.BytesMessage 24, // 230: protocol.WalletSolidity.ListExchanges:input_type -> protocol.EmptyMessage 26, // 231: protocol.WalletSolidity.GetTransactionById:input_type -> protocol.BytesMessage 26, // 232: protocol.WalletSolidity.GetTransactionInfoById:input_type -> protocol.BytesMessage 144, // 233: protocol.WalletSolidity.GetMerkleTreeVoucherInfo:input_type -> protocol.OutputPointInfo 44, // 234: protocol.WalletSolidity.ScanNoteByIvk:input_type -> protocol.IvkDecryptParameters 45, // 235: protocol.WalletSolidity.ScanAndMarkNoteByIvk:input_type -> protocol.IvkDecryptAndMarkParameters 46, // 236: protocol.WalletSolidity.ScanNoteByOvk:input_type -> protocol.OvkDecryptParameters 63, // 237: protocol.WalletSolidity.IsSpend:input_type -> protocol.NoteParameters 70, // 238: protocol.WalletSolidity.ScanShieldedTRC20NotesByIvk:input_type -> protocol.IvkDecryptTRC20Parameters 71, // 239: protocol.WalletSolidity.ScanShieldedTRC20NotesByOvk:input_type -> protocol.OvkDecryptTRC20Parameters 73, // 240: protocol.WalletSolidity.IsShieldedTRC20ContractNoteSpent:input_type -> protocol.NfTRC20Parameters 26, // 241: protocol.WalletSolidity.GetRewardInfo:input_type -> protocol.BytesMessage 26, // 242: protocol.WalletSolidity.GetBrokerageInfo:input_type -> protocol.BytesMessage 140, // 243: protocol.WalletSolidity.TriggerConstantContract:input_type -> protocol.TriggerSmartContract 140, // 244: protocol.WalletSolidity.EstimateEnergy:input_type -> protocol.TriggerSmartContract 25, // 245: protocol.WalletSolidity.GetTransactionInfoByBlockNum:input_type -> protocol.NumberMessage 26, // 246: protocol.WalletSolidity.GetMarketOrderById:input_type -> protocol.BytesMessage 26, // 247: protocol.WalletSolidity.GetMarketOrderByAccount:input_type -> protocol.BytesMessage 138, // 248: protocol.WalletSolidity.GetMarketPriceByPair:input_type -> protocol.MarketOrderPair 138, // 249: protocol.WalletSolidity.GetMarketOrderListByPair:input_type -> protocol.MarketOrderPair 24, // 250: protocol.WalletSolidity.GetMarketPairList:input_type -> protocol.EmptyMessage 24, // 251: protocol.WalletSolidity.GetBurnTrx:input_type -> protocol.EmptyMessage 28, // 252: protocol.WalletSolidity.GetBlock:input_type -> protocol.BlockReq 24, // 253: protocol.WalletSolidity.GetBandwidthPrices:input_type -> protocol.EmptyMessage 24, // 254: protocol.WalletSolidity.GetEnergyPrices:input_type -> protocol.EmptyMessage 31, // 255: protocol.WalletExtension.GetTransactionsFromThis:input_type -> protocol.AccountPaginated 31, // 256: protocol.WalletExtension.GetTransactionsFromThis2:input_type -> protocol.AccountPaginated 31, // 257: protocol.WalletExtension.GetTransactionsToThis:input_type -> protocol.AccountPaginated 31, // 258: protocol.WalletExtension.GetTransactionsToThis2:input_type -> protocol.AccountPaginated 24, // 259: protocol.Database.getBlockReference:input_type -> protocol.EmptyMessage 24, // 260: protocol.Database.GetDynamicProperties:input_type -> protocol.EmptyMessage 24, // 261: protocol.Database.GetNowBlock:input_type -> protocol.EmptyMessage 25, // 262: protocol.Database.GetBlockByNum:input_type -> protocol.NumberMessage 24, // 263: protocol.Monitor.GetStatsInfo:input_type -> protocol.EmptyMessage 92, // 264: protocol.Wallet.GetAccount:output_type -> protocol.Account 92, // 265: protocol.Wallet.GetAccountById:output_type -> protocol.Account 145, // 266: protocol.Wallet.GetAccountBalance:output_type -> protocol.AccountBalanceResponse 146, // 267: protocol.Wallet.GetBlockBalanceTrace:output_type -> protocol.BlockBalanceTrace 90, // 268: protocol.Wallet.CreateTransaction:output_type -> protocol.Transaction 36, // 269: protocol.Wallet.CreateTransaction2:output_type -> protocol.TransactionExtention 3, // 270: protocol.Wallet.BroadcastTransaction:output_type -> protocol.Return 90, // 271: protocol.Wallet.UpdateAccount:output_type -> protocol.Transaction 90, // 272: protocol.Wallet.SetAccountId:output_type -> protocol.Transaction 36, // 273: protocol.Wallet.UpdateAccount2:output_type -> protocol.TransactionExtention 90, // 274: protocol.Wallet.VoteWitnessAccount:output_type -> protocol.Transaction 36, // 275: protocol.Wallet.UpdateSetting:output_type -> protocol.TransactionExtention 36, // 276: protocol.Wallet.UpdateEnergyLimit:output_type -> protocol.TransactionExtention 36, // 277: protocol.Wallet.VoteWitnessAccount2:output_type -> protocol.TransactionExtention 90, // 278: protocol.Wallet.CreateAssetIssue:output_type -> protocol.Transaction 36, // 279: protocol.Wallet.CreateAssetIssue2:output_type -> protocol.TransactionExtention 90, // 280: protocol.Wallet.UpdateWitness:output_type -> protocol.Transaction 36, // 281: protocol.Wallet.UpdateWitness2:output_type -> protocol.TransactionExtention 90, // 282: protocol.Wallet.CreateAccount:output_type -> protocol.Transaction 36, // 283: protocol.Wallet.CreateAccount2:output_type -> protocol.TransactionExtention 90, // 284: protocol.Wallet.CreateWitness:output_type -> protocol.Transaction 36, // 285: protocol.Wallet.CreateWitness2:output_type -> protocol.TransactionExtention 90, // 286: protocol.Wallet.TransferAsset:output_type -> protocol.Transaction 36, // 287: protocol.Wallet.TransferAsset2:output_type -> protocol.TransactionExtention 90, // 288: protocol.Wallet.ParticipateAssetIssue:output_type -> protocol.Transaction 36, // 289: protocol.Wallet.ParticipateAssetIssue2:output_type -> protocol.TransactionExtention 90, // 290: protocol.Wallet.FreezeBalance:output_type -> protocol.Transaction 36, // 291: protocol.Wallet.FreezeBalance2:output_type -> protocol.TransactionExtention 36, // 292: protocol.Wallet.FreezeBalanceV2:output_type -> protocol.TransactionExtention 90, // 293: protocol.Wallet.UnfreezeBalance:output_type -> protocol.Transaction 36, // 294: protocol.Wallet.UnfreezeBalance2:output_type -> protocol.TransactionExtention 36, // 295: protocol.Wallet.UnfreezeBalanceV2:output_type -> protocol.TransactionExtention 90, // 296: protocol.Wallet.UnfreezeAsset:output_type -> protocol.Transaction 36, // 297: protocol.Wallet.UnfreezeAsset2:output_type -> protocol.TransactionExtention 90, // 298: protocol.Wallet.WithdrawBalance:output_type -> protocol.Transaction 36, // 299: protocol.Wallet.WithdrawBalance2:output_type -> protocol.TransactionExtention 36, // 300: protocol.Wallet.WithdrawExpireUnfreeze:output_type -> protocol.TransactionExtention 36, // 301: protocol.Wallet.DelegateResource:output_type -> protocol.TransactionExtention 36, // 302: protocol.Wallet.UnDelegateResource:output_type -> protocol.TransactionExtention 36, // 303: protocol.Wallet.CancelAllUnfreezeV2:output_type -> protocol.TransactionExtention 90, // 304: protocol.Wallet.UpdateAsset:output_type -> protocol.Transaction 36, // 305: protocol.Wallet.UpdateAsset2:output_type -> protocol.TransactionExtention 36, // 306: protocol.Wallet.ProposalCreate:output_type -> protocol.TransactionExtention 36, // 307: protocol.Wallet.ProposalApprove:output_type -> protocol.TransactionExtention 36, // 308: protocol.Wallet.ProposalDelete:output_type -> protocol.TransactionExtention 36, // 309: protocol.Wallet.BuyStorage:output_type -> protocol.TransactionExtention 36, // 310: protocol.Wallet.BuyStorageBytes:output_type -> protocol.TransactionExtention 36, // 311: protocol.Wallet.SellStorage:output_type -> protocol.TransactionExtention 36, // 312: protocol.Wallet.ExchangeCreate:output_type -> protocol.TransactionExtention 36, // 313: protocol.Wallet.ExchangeInject:output_type -> protocol.TransactionExtention 36, // 314: protocol.Wallet.ExchangeWithdraw:output_type -> protocol.TransactionExtention 36, // 315: protocol.Wallet.ExchangeTransaction:output_type -> protocol.TransactionExtention 36, // 316: protocol.Wallet.MarketSellAsset:output_type -> protocol.TransactionExtention 36, // 317: protocol.Wallet.MarketCancelOrder:output_type -> protocol.TransactionExtention 147, // 318: protocol.Wallet.GetMarketOrderById:output_type -> protocol.MarketOrder 148, // 319: protocol.Wallet.GetMarketOrderByAccount:output_type -> protocol.MarketOrderList 149, // 320: protocol.Wallet.GetMarketPriceByPair:output_type -> protocol.MarketPriceList 148, // 321: protocol.Wallet.GetMarketOrderListByPair:output_type -> protocol.MarketOrderList 150, // 322: protocol.Wallet.GetMarketPairList:output_type -> protocol.MarketOrderPairList 21, // 323: protocol.Wallet.ListNodes:output_type -> protocol.NodeList 8, // 324: protocol.Wallet.GetAssetIssueByAccount:output_type -> protocol.AssetIssueList 33, // 325: protocol.Wallet.GetAccountNet:output_type -> protocol.AccountNetMessage 34, // 326: protocol.Wallet.GetAccountResource:output_type -> protocol.AccountResourceMessage 88, // 327: protocol.Wallet.GetAssetIssueByName:output_type -> protocol.AssetIssueContract 8, // 328: protocol.Wallet.GetAssetIssueListByName:output_type -> protocol.AssetIssueList 88, // 329: protocol.Wallet.GetAssetIssueById:output_type -> protocol.AssetIssueContract 89, // 330: protocol.Wallet.GetNowBlock:output_type -> protocol.Block 38, // 331: protocol.Wallet.GetNowBlock2:output_type -> protocol.BlockExtention 89, // 332: protocol.Wallet.GetBlockByNum:output_type -> protocol.Block 38, // 333: protocol.Wallet.GetBlockByNum2:output_type -> protocol.BlockExtention 25, // 334: protocol.Wallet.GetTransactionCountByBlockNum:output_type -> protocol.NumberMessage 89, // 335: protocol.Wallet.GetBlockById:output_type -> protocol.Block 9, // 336: protocol.Wallet.GetBlockByLimitNext:output_type -> protocol.BlockList 39, // 337: protocol.Wallet.GetBlockByLimitNext2:output_type -> protocol.BlockListExtention 9, // 338: protocol.Wallet.GetBlockByLatestNum:output_type -> protocol.BlockList 39, // 339: protocol.Wallet.GetBlockByLatestNum2:output_type -> protocol.BlockListExtention 90, // 340: protocol.Wallet.GetTransactionById:output_type -> protocol.Transaction 36, // 341: protocol.Wallet.DeployContract:output_type -> protocol.TransactionExtention 151, // 342: protocol.Wallet.GetContract:output_type -> protocol.SmartContract 152, // 343: protocol.Wallet.GetContractInfo:output_type -> protocol.SmartContractDataWrapper 36, // 344: protocol.Wallet.TriggerContract:output_type -> protocol.TransactionExtention 36, // 345: protocol.Wallet.TriggerConstantContract:output_type -> protocol.TransactionExtention 37, // 346: protocol.Wallet.EstimateEnergy:output_type -> protocol.EstimateEnergyMessage 36, // 347: protocol.Wallet.ClearContractABI:output_type -> protocol.TransactionExtention 5, // 348: protocol.Wallet.ListWitnesses:output_type -> protocol.WitnessList 13, // 349: protocol.Wallet.GetDelegatedResource:output_type -> protocol.DelegatedResourceList 13, // 350: protocol.Wallet.GetDelegatedResourceV2:output_type -> protocol.DelegatedResourceList 153, // 351: protocol.Wallet.GetDelegatedResourceAccountIndex:output_type -> protocol.DelegatedResourceAccountIndex 153, // 352: protocol.Wallet.GetDelegatedResourceAccountIndexV2:output_type -> protocol.DelegatedResourceAccountIndex 17, // 353: protocol.Wallet.GetCanDelegatedMaxSize:output_type -> protocol.CanDelegatedMaxSizeResponseMessage 15, // 354: protocol.Wallet.GetAvailableUnfreezeCount:output_type -> protocol.GetAvailableUnfreezeCountResponseMessage 19, // 355: protocol.Wallet.GetCanWithdrawUnfreezeAmount:output_type -> protocol.CanWithdrawUnfreezeAmountResponseMessage 6, // 356: protocol.Wallet.ListProposals:output_type -> protocol.ProposalList 6, // 357: protocol.Wallet.GetPaginatedProposalList:output_type -> protocol.ProposalList 86, // 358: protocol.Wallet.GetProposalById:output_type -> protocol.Proposal 7, // 359: protocol.Wallet.ListExchanges:output_type -> protocol.ExchangeList 7, // 360: protocol.Wallet.GetPaginatedExchangeList:output_type -> protocol.ExchangeList 87, // 361: protocol.Wallet.GetExchangeById:output_type -> protocol.Exchange 154, // 362: protocol.Wallet.GetChainParameters:output_type -> protocol.ChainParameters 8, // 363: protocol.Wallet.GetAssetIssueList:output_type -> protocol.AssetIssueList 8, // 364: protocol.Wallet.GetPaginatedAssetIssueList:output_type -> protocol.AssetIssueList 25, // 365: protocol.Wallet.TotalTransaction:output_type -> protocol.NumberMessage 25, // 366: protocol.Wallet.GetNextMaintenanceTime:output_type -> protocol.NumberMessage 99, // 367: protocol.Wallet.GetTransactionInfoById:output_type -> protocol.TransactionInfo 36, // 368: protocol.Wallet.AccountPermissionUpdate:output_type -> protocol.TransactionExtention 42, // 369: protocol.Wallet.GetTransactionSignWeight:output_type -> protocol.TransactionSignWeight 43, // 370: protocol.Wallet.GetTransactionApprovedList:output_type -> protocol.TransactionApprovedList 155, // 371: protocol.Wallet.GetNodeInfo:output_type -> protocol.NodeInfo 25, // 372: protocol.Wallet.GetRewardInfo:output_type -> protocol.NumberMessage 25, // 373: protocol.Wallet.GetBrokerageInfo:output_type -> protocol.NumberMessage 36, // 374: protocol.Wallet.UpdateBrokerage:output_type -> protocol.TransactionExtention 36, // 375: protocol.Wallet.CreateShieldedTransaction:output_type -> protocol.TransactionExtention 156, // 376: protocol.Wallet.GetMerkleTreeVoucherInfo:output_type -> protocol.IncrementalMerkleVoucherInfo 47, // 377: protocol.Wallet.ScanNoteByIvk:output_type -> protocol.DecryptNotes 48, // 378: protocol.Wallet.ScanAndMarkNoteByIvk:output_type -> protocol.DecryptNotesMarked 47, // 379: protocol.Wallet.ScanNoteByOvk:output_type -> protocol.DecryptNotes 26, // 380: protocol.Wallet.GetSpendingKey:output_type -> protocol.BytesMessage 56, // 381: protocol.Wallet.GetExpandedSpendingKey:output_type -> protocol.ExpandedSpendingKeyMessage 26, // 382: protocol.Wallet.GetAkFromAsk:output_type -> protocol.BytesMessage 26, // 383: protocol.Wallet.GetNkFromNsk:output_type -> protocol.BytesMessage 58, // 384: protocol.Wallet.GetIncomingViewingKey:output_type -> protocol.IncomingViewingKeyMessage 59, // 385: protocol.Wallet.GetDiversifier:output_type -> protocol.DiversifierMessage 62, // 386: protocol.Wallet.GetNewShieldedAddress:output_type -> protocol.ShieldedAddressInfo 61, // 387: protocol.Wallet.GetZenPaymentAddress:output_type -> protocol.PaymentAddressMessage 26, // 388: protocol.Wallet.GetRcm:output_type -> protocol.BytesMessage 64, // 389: protocol.Wallet.IsSpend:output_type -> protocol.SpendResult 36, // 390: protocol.Wallet.CreateShieldedTransactionWithoutSpendAuthSig:output_type -> protocol.TransactionExtention 26, // 391: protocol.Wallet.GetShieldTransactionHash:output_type -> protocol.BytesMessage 26, // 392: protocol.Wallet.CreateSpendAuthSig:output_type -> protocol.BytesMessage 26, // 393: protocol.Wallet.CreateShieldNullifier:output_type -> protocol.BytesMessage 69, // 394: protocol.Wallet.CreateShieldedContractParameters:output_type -> protocol.ShieldedTRC20Parameters 69, // 395: protocol.Wallet.CreateShieldedContractParametersWithoutAsk:output_type -> protocol.ShieldedTRC20Parameters 72, // 396: protocol.Wallet.ScanShieldedTRC20NotesByIvk:output_type -> protocol.DecryptNotesTRC20 72, // 397: protocol.Wallet.ScanShieldedTRC20NotesByOvk:output_type -> protocol.DecryptNotesTRC20 74, // 398: protocol.Wallet.IsShieldedTRC20ContractNoteSpent:output_type -> protocol.NullifierResult 26, // 399: protocol.Wallet.GetTriggerInputForShieldedTRC20Contract:output_type -> protocol.BytesMessage 36, // 400: protocol.Wallet.CreateCommonTransaction:output_type -> protocol.TransactionExtention 65, // 401: protocol.Wallet.GetTransactionInfoByBlockNum:output_type -> protocol.TransactionInfoList 25, // 402: protocol.Wallet.GetBurnTrx:output_type -> protocol.NumberMessage 90, // 403: protocol.Wallet.GetTransactionFromPending:output_type -> protocol.Transaction 11, // 404: protocol.Wallet.GetTransactionListFromPending:output_type -> protocol.TransactionIdList 25, // 405: protocol.Wallet.GetPendingSize:output_type -> protocol.NumberMessage 38, // 406: protocol.Wallet.GetBlock:output_type -> protocol.BlockExtention 20, // 407: protocol.Wallet.GetBandwidthPrices:output_type -> protocol.PricesResponseMessage 20, // 408: protocol.Wallet.GetEnergyPrices:output_type -> protocol.PricesResponseMessage 20, // 409: protocol.Wallet.GetMemoFee:output_type -> protocol.PricesResponseMessage 92, // 410: protocol.WalletSolidity.GetAccount:output_type -> protocol.Account 92, // 411: protocol.WalletSolidity.GetAccountById:output_type -> protocol.Account 5, // 412: protocol.WalletSolidity.ListWitnesses:output_type -> protocol.WitnessList 8, // 413: protocol.WalletSolidity.GetAssetIssueList:output_type -> protocol.AssetIssueList 8, // 414: protocol.WalletSolidity.GetPaginatedAssetIssueList:output_type -> protocol.AssetIssueList 88, // 415: protocol.WalletSolidity.GetAssetIssueByName:output_type -> protocol.AssetIssueContract 8, // 416: protocol.WalletSolidity.GetAssetIssueListByName:output_type -> protocol.AssetIssueList 88, // 417: protocol.WalletSolidity.GetAssetIssueById:output_type -> protocol.AssetIssueContract 89, // 418: protocol.WalletSolidity.GetNowBlock:output_type -> protocol.Block 38, // 419: protocol.WalletSolidity.GetNowBlock2:output_type -> protocol.BlockExtention 89, // 420: protocol.WalletSolidity.GetBlockByNum:output_type -> protocol.Block 38, // 421: protocol.WalletSolidity.GetBlockByNum2:output_type -> protocol.BlockExtention 25, // 422: protocol.WalletSolidity.GetTransactionCountByBlockNum:output_type -> protocol.NumberMessage 13, // 423: protocol.WalletSolidity.GetDelegatedResource:output_type -> protocol.DelegatedResourceList 13, // 424: protocol.WalletSolidity.GetDelegatedResourceV2:output_type -> protocol.DelegatedResourceList 153, // 425: protocol.WalletSolidity.GetDelegatedResourceAccountIndex:output_type -> protocol.DelegatedResourceAccountIndex 153, // 426: protocol.WalletSolidity.GetDelegatedResourceAccountIndexV2:output_type -> protocol.DelegatedResourceAccountIndex 17, // 427: protocol.WalletSolidity.GetCanDelegatedMaxSize:output_type -> protocol.CanDelegatedMaxSizeResponseMessage 15, // 428: protocol.WalletSolidity.GetAvailableUnfreezeCount:output_type -> protocol.GetAvailableUnfreezeCountResponseMessage 19, // 429: protocol.WalletSolidity.GetCanWithdrawUnfreezeAmount:output_type -> protocol.CanWithdrawUnfreezeAmountResponseMessage 87, // 430: protocol.WalletSolidity.GetExchangeById:output_type -> protocol.Exchange 7, // 431: protocol.WalletSolidity.ListExchanges:output_type -> protocol.ExchangeList 90, // 432: protocol.WalletSolidity.GetTransactionById:output_type -> protocol.Transaction 99, // 433: protocol.WalletSolidity.GetTransactionInfoById:output_type -> protocol.TransactionInfo 156, // 434: protocol.WalletSolidity.GetMerkleTreeVoucherInfo:output_type -> protocol.IncrementalMerkleVoucherInfo 47, // 435: protocol.WalletSolidity.ScanNoteByIvk:output_type -> protocol.DecryptNotes 48, // 436: protocol.WalletSolidity.ScanAndMarkNoteByIvk:output_type -> protocol.DecryptNotesMarked 47, // 437: protocol.WalletSolidity.ScanNoteByOvk:output_type -> protocol.DecryptNotes 64, // 438: protocol.WalletSolidity.IsSpend:output_type -> protocol.SpendResult 72, // 439: protocol.WalletSolidity.ScanShieldedTRC20NotesByIvk:output_type -> protocol.DecryptNotesTRC20 72, // 440: protocol.WalletSolidity.ScanShieldedTRC20NotesByOvk:output_type -> protocol.DecryptNotesTRC20 74, // 441: protocol.WalletSolidity.IsShieldedTRC20ContractNoteSpent:output_type -> protocol.NullifierResult 25, // 442: protocol.WalletSolidity.GetRewardInfo:output_type -> protocol.NumberMessage 25, // 443: protocol.WalletSolidity.GetBrokerageInfo:output_type -> protocol.NumberMessage 36, // 444: protocol.WalletSolidity.TriggerConstantContract:output_type -> protocol.TransactionExtention 37, // 445: protocol.WalletSolidity.EstimateEnergy:output_type -> protocol.EstimateEnergyMessage 65, // 446: protocol.WalletSolidity.GetTransactionInfoByBlockNum:output_type -> protocol.TransactionInfoList 147, // 447: protocol.WalletSolidity.GetMarketOrderById:output_type -> protocol.MarketOrder 148, // 448: protocol.WalletSolidity.GetMarketOrderByAccount:output_type -> protocol.MarketOrderList 149, // 449: protocol.WalletSolidity.GetMarketPriceByPair:output_type -> protocol.MarketPriceList 148, // 450: protocol.WalletSolidity.GetMarketOrderListByPair:output_type -> protocol.MarketOrderList 150, // 451: protocol.WalletSolidity.GetMarketPairList:output_type -> protocol.MarketOrderPairList 25, // 452: protocol.WalletSolidity.GetBurnTrx:output_type -> protocol.NumberMessage 38, // 453: protocol.WalletSolidity.GetBlock:output_type -> protocol.BlockExtention 20, // 454: protocol.WalletSolidity.GetBandwidthPrices:output_type -> protocol.PricesResponseMessage 20, // 455: protocol.WalletSolidity.GetEnergyPrices:output_type -> protocol.PricesResponseMessage 10, // 456: protocol.WalletExtension.GetTransactionsFromThis:output_type -> protocol.TransactionList 40, // 457: protocol.WalletExtension.GetTransactionsFromThis2:output_type -> protocol.TransactionListExtention 10, // 458: protocol.WalletExtension.GetTransactionsToThis:output_type -> protocol.TransactionList 40, // 459: protocol.WalletExtension.GetTransactionsToThis2:output_type -> protocol.TransactionListExtention 4, // 460: protocol.Database.getBlockReference:output_type -> protocol.BlockReference 157, // 461: protocol.Database.GetDynamicProperties:output_type -> protocol.DynamicProperties 89, // 462: protocol.Database.GetNowBlock:output_type -> protocol.Block 89, // 463: protocol.Database.GetBlockByNum:output_type -> protocol.Block 158, // 464: protocol.Monitor.GetStatsInfo:output_type -> protocol.MetricsInfo 264, // [264:465] is the sub-list for method output_type 63, // [63:264] is the sub-list for method input_type 63, // [63:63] is the sub-list for extension type_name 63, // [63:63] is the sub-list for extension extendee 0, // [0:63] is the sub-list for field type_name } func init() { file_api_api_proto_init() } func file_api_api_proto_init() { if File_api_api_proto != nil { return } if !protoimpl.UnsafeEnabled { file_api_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Return); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockReference); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WitnessList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProposalList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExchangeList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AssetIssueList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionIdList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegatedResourceMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegatedResourceList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAvailableUnfreezeCountRequestMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAvailableUnfreezeCountResponseMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CanDelegatedMaxSizeRequestMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CanDelegatedMaxSizeResponseMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CanWithdrawUnfreezeAmountRequestMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CanWithdrawUnfreezeAmountResponseMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PricesResponseMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Node); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Address); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EmptyMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NumberMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BytesMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TimeMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockLimit); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionLimit); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountPaginated); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TimePaginatedMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountNetMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountResourceMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PaginatedMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionExtention); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EstimateEnergyMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockExtention); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockListExtention); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionListExtention); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockIncrementalMerkleTree); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionSignWeight); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionApprovedList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IvkDecryptParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IvkDecryptAndMarkParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OvkDecryptParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DecryptNotes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DecryptNotesMarked); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Note); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpendNote); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReceiveNote); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrivateParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrivateParametersWithoutAsk); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpendAuthSigParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NfParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExpandedSpendingKeyMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ViewingKeyMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IncomingViewingKeyMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiversifierMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IncomingViewingKeyDiversifierMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PaymentAddressMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShieldedAddressInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NoteParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpendResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionInfoList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpendNoteTRC20); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrivateShieldedTRC20Parameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrivateShieldedTRC20ParametersWithoutAsk); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShieldedTRC20Parameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IvkDecryptTRC20Parameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OvkDecryptTRC20Parameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DecryptNotesTRC20); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NfTRC20Parameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NullifierResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShieldedTRC20TriggerContractParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionSignWeight_Result); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionApprovedList_Result); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DecryptNotes_NoteTx); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DecryptNotesMarked_NoteTx); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_api_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DecryptNotesTRC20_NoteTx); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_api_proto_rawDesc, NumEnums: 3, NumMessages: 82, NumExtensions: 0, NumServices: 6, }, GoTypes: file_api_api_proto_goTypes, DependencyIndexes: file_api_api_proto_depIdxs, EnumInfos: file_api_api_proto_enumTypes, MessageInfos: file_api_api_proto_msgTypes, }.Build() File_api_api_proto = out.File file_api_api_proto_rawDesc = nil file_api_api_proto_goTypes = nil file_api_api_proto_depIdxs = nil }