diff --git a/auctioneer/client.go b/auctioneer/client.go index d4091c9..d5d829e 100644 --- a/auctioneer/client.go +++ b/auctioneer/client.go @@ -406,6 +406,17 @@ func (c *Client) SubmitOrder(ctx context.Context, o order.Order, Addr: addr.String(), }) } + + var channelType auctioneerrpc.OrderChannelType + switch o.Details().ChannelType { + case order.ChannelTypePeerDependent: + channelType = auctioneerrpc.OrderChannelType_ORDER_CHANNEL_TYPE_PEER_DEPENDENT + case order.ChannelTypeScriptEnforced: + channelType = auctioneerrpc.OrderChannelType_ORDER_CHANNEL_TYPE_SCRIPT_ENFORCED + default: + return fmt.Errorf("unhandled channel type %v", c) + } + details := &auctioneerrpc.ServerOrder{ TraderKey: o.Details().AcctKey[:], RateFixed: o.Details().FixedRate, @@ -416,6 +427,7 @@ func (c *Client) SubmitOrder(ctx context.Context, o order.Order, MultiSigKey: serverParams.MultiSigKey[:], NodePub: serverParams.NodePubkey[:], NodeAddr: nodeAddrs, + ChannelType: channelType, MaxBatchFeeRateSatPerKw: uint64(o.Details().MaxBatchFeeRate), } diff --git a/auctioneerrpc/auctioneer.pb.go b/auctioneerrpc/auctioneer.pb.go index f8bcc71..f89c051 100644 --- a/auctioneerrpc/auctioneer.pb.go +++ b/auctioneerrpc/auctioneer.pb.go @@ -32,6 +32,11 @@ const ( ChannelType_TWEAKLESS ChannelType = 0 // The channel uses an anchor-based commitment. ChannelType_ANCHORS ChannelType = 1 + // + //The channel build upon the anchor-based commitment and requires an + //additional CLTV of the channel lease maturity on any commitment and HTLC + //outputs that pay directly to the channel initiator (the seller). + ChannelType_SCRIPT_ENFORCED_LEASE ChannelType = 2 ) // Enum value maps for ChannelType. @@ -39,10 +44,12 @@ var ( ChannelType_name = map[int32]string{ 0: "TWEAKLESS", 1: "ANCHORS", + 2: "SCRIPT_ENFORCED_LEASE", } ChannelType_value = map[string]int32{ - "TWEAKLESS": 0, - "ANCHORS": 1, + "TWEAKLESS": 0, + "ANCHORS": 1, + "SCRIPT_ENFORCED_LEASE": 2, } ) @@ -147,6 +154,63 @@ func (AuctionAccountState) EnumDescriptor() ([]byte, []int) { return file_auctioneer_proto_rawDescGZIP(), []int{1} } +type OrderChannelType int32 + +const ( + // Used to set defaults when a trader doesn't specify a channel type. + OrderChannelType_ORDER_CHANNEL_TYPE_UNKNOWN OrderChannelType = 0 + // + //The channel type will vary per matched channel based on the features shared + //between its participants. + OrderChannelType_ORDER_CHANNEL_TYPE_PEER_DEPENDENT OrderChannelType = 1 + // + //A channel type that builds upon the anchors commitment format to enforce + //channel lease maturities in the commitment and HTLC outputs that pay to the + //channel initiator/seller. + OrderChannelType_ORDER_CHANNEL_TYPE_SCRIPT_ENFORCED OrderChannelType = 2 +) + +// Enum value maps for OrderChannelType. +var ( + OrderChannelType_name = map[int32]string{ + 0: "ORDER_CHANNEL_TYPE_UNKNOWN", + 1: "ORDER_CHANNEL_TYPE_PEER_DEPENDENT", + 2: "ORDER_CHANNEL_TYPE_SCRIPT_ENFORCED", + } + OrderChannelType_value = map[string]int32{ + "ORDER_CHANNEL_TYPE_UNKNOWN": 0, + "ORDER_CHANNEL_TYPE_PEER_DEPENDENT": 1, + "ORDER_CHANNEL_TYPE_SCRIPT_ENFORCED": 2, + } +) + +func (x OrderChannelType) Enum() *OrderChannelType { + p := new(OrderChannelType) + *p = x + return p +} + +func (x OrderChannelType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OrderChannelType) Descriptor() protoreflect.EnumDescriptor { + return file_auctioneer_proto_enumTypes[2].Descriptor() +} + +func (OrderChannelType) Type() protoreflect.EnumType { + return &file_auctioneer_proto_enumTypes[2] +} + +func (x OrderChannelType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OrderChannelType.Descriptor instead. +func (OrderChannelType) EnumDescriptor() ([]byte, []int) { + return file_auctioneer_proto_rawDescGZIP(), []int{2} +} + type NodeTier int32 const ( @@ -189,11 +253,11 @@ func (x NodeTier) String() string { } func (NodeTier) Descriptor() protoreflect.EnumDescriptor { - return file_auctioneer_proto_enumTypes[2].Descriptor() + return file_auctioneer_proto_enumTypes[3].Descriptor() } func (NodeTier) Type() protoreflect.EnumType { - return &file_auctioneer_proto_enumTypes[2] + return &file_auctioneer_proto_enumTypes[3] } func (x NodeTier) Number() protoreflect.EnumNumber { @@ -202,7 +266,7 @@ func (x NodeTier) Number() protoreflect.EnumNumber { // Deprecated: Use NodeTier.Descriptor instead. func (NodeTier) EnumDescriptor() ([]byte, []int) { - return file_auctioneer_proto_rawDescGZIP(), []int{2} + return file_auctioneer_proto_rawDescGZIP(), []int{3} } type OrderState int32 @@ -250,11 +314,11 @@ func (x OrderState) String() string { } func (OrderState) Descriptor() protoreflect.EnumDescriptor { - return file_auctioneer_proto_enumTypes[3].Descriptor() + return file_auctioneer_proto_enumTypes[4].Descriptor() } func (OrderState) Type() protoreflect.EnumType { - return &file_auctioneer_proto_enumTypes[3] + return &file_auctioneer_proto_enumTypes[4] } func (x OrderState) Number() protoreflect.EnumNumber { @@ -263,7 +327,7 @@ func (x OrderState) Number() protoreflect.EnumNumber { // Deprecated: Use OrderState.Descriptor instead. func (OrderState) EnumDescriptor() ([]byte, []int) { - return file_auctioneer_proto_rawDescGZIP(), []int{3} + return file_auctioneer_proto_rawDescGZIP(), []int{4} } type DurationBucketState int32 @@ -314,11 +378,11 @@ func (x DurationBucketState) String() string { } func (DurationBucketState) Descriptor() protoreflect.EnumDescriptor { - return file_auctioneer_proto_enumTypes[4].Descriptor() + return file_auctioneer_proto_enumTypes[5].Descriptor() } func (DurationBucketState) Type() protoreflect.EnumType { - return &file_auctioneer_proto_enumTypes[4] + return &file_auctioneer_proto_enumTypes[5] } func (x DurationBucketState) Number() protoreflect.EnumNumber { @@ -327,7 +391,7 @@ func (x DurationBucketState) Number() protoreflect.EnumNumber { // Deprecated: Use DurationBucketState.Descriptor instead. func (DurationBucketState) EnumDescriptor() ([]byte, []int) { - return file_auctioneer_proto_rawDescGZIP(), []int{4} + return file_auctioneer_proto_rawDescGZIP(), []int{5} } type OrderMatchReject_RejectReason int32 @@ -376,11 +440,11 @@ func (x OrderMatchReject_RejectReason) String() string { } func (OrderMatchReject_RejectReason) Descriptor() protoreflect.EnumDescriptor { - return file_auctioneer_proto_enumTypes[5].Descriptor() + return file_auctioneer_proto_enumTypes[6].Descriptor() } func (OrderMatchReject_RejectReason) Type() protoreflect.EnumType { - return &file_auctioneer_proto_enumTypes[5] + return &file_auctioneer_proto_enumTypes[6] } func (x OrderMatchReject_RejectReason) Number() protoreflect.EnumNumber { @@ -433,11 +497,11 @@ func (x OrderReject_OrderRejectReason) String() string { } func (OrderReject_OrderRejectReason) Descriptor() protoreflect.EnumDescriptor { - return file_auctioneer_proto_enumTypes[6].Descriptor() + return file_auctioneer_proto_enumTypes[7].Descriptor() } func (OrderReject_OrderRejectReason) Type() protoreflect.EnumType { - return &file_auctioneer_proto_enumTypes[6] + return &file_auctioneer_proto_enumTypes[7] } func (x OrderReject_OrderRejectReason) Number() protoreflect.EnumNumber { @@ -496,11 +560,11 @@ func (x SubscribeError_Error) String() string { } func (SubscribeError_Error) Descriptor() protoreflect.EnumDescriptor { - return file_auctioneer_proto_enumTypes[7].Descriptor() + return file_auctioneer_proto_enumTypes[8].Descriptor() } func (SubscribeError_Error) Type() protoreflect.EnumType { - return &file_auctioneer_proto_enumTypes[7] + return &file_auctioneer_proto_enumTypes[8] } func (x SubscribeError_Error) Number() protoreflect.EnumNumber { @@ -548,11 +612,11 @@ func (x AccountDiff_AccountState) String() string { } func (AccountDiff_AccountState) Descriptor() protoreflect.EnumDescriptor { - return file_auctioneer_proto_enumTypes[8].Descriptor() + return file_auctioneer_proto_enumTypes[9].Descriptor() } func (AccountDiff_AccountState) Type() protoreflect.EnumType { - return &file_auctioneer_proto_enumTypes[8] + return &file_auctioneer_proto_enumTypes[9] } func (x AccountDiff_AccountState) Number() protoreflect.EnumNumber { @@ -591,11 +655,11 @@ func (x InvalidOrder_FailReason) String() string { } func (InvalidOrder_FailReason) Descriptor() protoreflect.EnumDescriptor { - return file_auctioneer_proto_enumTypes[9].Descriptor() + return file_auctioneer_proto_enumTypes[10].Descriptor() } func (InvalidOrder_FailReason) Type() protoreflect.EnumType { - return &file_auctioneer_proto_enumTypes[9] + return &file_auctioneer_proto_enumTypes[10] } func (x InvalidOrder_FailReason) Number() protoreflect.EnumNumber { @@ -2255,6 +2319,11 @@ type OrderMatchPrepare struct { //Maps the distinct lease duration markets to the orders that were matched //within and the discovered market clearing price. MatchedMarkets map[uint32]*MatchedMarket `protobuf:"bytes,10,rep,name=matched_markets,json=matchedMarkets,proto3" json:"matched_markets,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // + //The earliest absolute height in the chain in which the batch transaction can + //be found within. This will be used by traders to base off their absolute + //channel lease maturity height. + BatchHeightHint uint32 `protobuf:"varint,11,opt,name=batch_height_hint,json=batchHeightHint,proto3" json:"batch_height_hint,omitempty"` } func (x *OrderMatchPrepare) Reset() { @@ -2361,6 +2430,13 @@ func (x *OrderMatchPrepare) GetMatchedMarkets() map[uint32]*MatchedMarket { return nil } +func (x *OrderMatchPrepare) GetBatchHeightHint() uint32 { + if x != nil { + return x.BatchHeightHint + } + return 0 +} + type OrderMatchSignBegin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2421,10 +2497,6 @@ type OrderMatchFinalize struct { // //The final transaction ID of the published batch transaction. BatchTxid []byte `protobuf:"bytes,2,opt,name=batch_txid,json=batchTxid,proto3" json:"batch_txid,omitempty"` - // - //The current block height at the time the batch transaction was published to - //the network. - HeightHint uint32 `protobuf:"varint,3,opt,name=height_hint,json=heightHint,proto3" json:"height_hint,omitempty"` } func (x *OrderMatchFinalize) Reset() { @@ -2473,13 +2545,6 @@ func (x *OrderMatchFinalize) GetBatchTxid() []byte { return nil } -func (x *OrderMatchFinalize) GetHeightHint() uint32 { - if x != nil { - return x.HeightHint - } - return 0 -} - type SubscribeError struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2997,7 +3062,7 @@ type ServerOrder struct { NodeAddr []*NodeAddress `protobuf:"bytes,10,rep,name=node_addr,json=nodeAddr,proto3" json:"node_addr,omitempty"` // //The type of the channel that should be opened. - ChanType uint32 `protobuf:"varint,12,opt,name=chan_type,json=chanType,proto3" json:"chan_type,omitempty"` + ChannelType OrderChannelType `protobuf:"varint,12,opt,name=channel_type,json=channelType,proto3,enum=poolrpc.OrderChannelType" json:"channel_type,omitempty"` // //Maximum fee rate the trader is willing to pay for the batch transaction, //expressed in satoshis per 1000 weight units (sat/kW). @@ -3099,11 +3164,11 @@ func (x *ServerOrder) GetNodeAddr() []*NodeAddress { return nil } -func (x *ServerOrder) GetChanType() uint32 { +func (x *ServerOrder) GetChannelType() OrderChannelType { if x != nil { - return x.ChanType + return x.ChannelType } - return 0 + return OrderChannelType_ORDER_CHANNEL_TYPE_UNKNOWN } func (x *ServerOrder) GetMaxBatchFeeRateSatPerKw() uint64 { @@ -4312,7 +4377,7 @@ type AskSnapshot struct { // The true bid price of the order in parts per billion. RateFixed uint32 `protobuf:"varint,3,opt,name=rate_fixed,json=rateFixed,proto3" json:"rate_fixed,omitempty"` // The channel type to be created. - ChanType uint32 `protobuf:"varint,4,opt,name=chan_type,json=chanType,proto3" json:"chan_type,omitempty"` + ChanType OrderChannelType `protobuf:"varint,4,opt,name=chan_type,json=chanType,proto3,enum=poolrpc.OrderChannelType" json:"chan_type,omitempty"` } func (x *AskSnapshot) Reset() { @@ -4368,11 +4433,11 @@ func (x *AskSnapshot) GetRateFixed() uint32 { return 0 } -func (x *AskSnapshot) GetChanType() uint32 { +func (x *AskSnapshot) GetChanType() OrderChannelType { if x != nil { return x.ChanType } - return 0 + return OrderChannelType_ORDER_CHANNEL_TYPE_UNKNOWN } type BidSnapshot struct { @@ -4387,7 +4452,7 @@ type BidSnapshot struct { // The true bid price of the order in parts per billion. RateFixed uint32 `protobuf:"varint,3,opt,name=rate_fixed,json=rateFixed,proto3" json:"rate_fixed,omitempty"` // The channel type to be created. - ChanType uint32 `protobuf:"varint,4,opt,name=chan_type,json=chanType,proto3" json:"chan_type,omitempty"` + ChanType OrderChannelType `protobuf:"varint,4,opt,name=chan_type,json=chanType,proto3,enum=poolrpc.OrderChannelType" json:"chan_type,omitempty"` } func (x *BidSnapshot) Reset() { @@ -4443,11 +4508,11 @@ func (x *BidSnapshot) GetRateFixed() uint32 { return 0 } -func (x *BidSnapshot) GetChanType() uint32 { +func (x *BidSnapshot) GetChanType() OrderChannelType { if x != nil { return x.ChanType } - return 0 + return OrderChannelType_ORDER_CHANNEL_TYPE_UNKNOWN } type MatchedOrderSnapshot struct { @@ -5550,7 +5615,7 @@ var file_auctioneer_proto_rawDesc = []byte{ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xec, 0x05, 0x0a, 0x11, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x98, 0x06, 0x0a, 0x11, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x12, 0x58, 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, @@ -5586,581 +5651,598 @@ var file_auctioneer_proto_rawDesc = []byte{ 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, - 0x1a, 0x57, 0x0a, 0x12, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, - 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x13, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x30, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0x6f, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x54, 0x78, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x48, 0x69, 0x6e, 0x74, 0x22, 0xb8, 0x02, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x3c, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, - 0x13, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x6f, 0x6f, - 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x12, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x69, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, - 0x0f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, - 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x44, 0x4f, - 0x45, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x22, - 0x0a, 0x1e, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x43, - 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x10, 0x03, 0x22, 0xc2, 0x02, 0x0a, 0x0e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, - 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, - 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x48, 0x69, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x08, 0x6f, - 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x78, 0x22, 0x7e, 0x0a, 0x0c, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x42, - 0x69, 0x64, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x42, 0x69, 0x64, 0x73, 0x12, - 0x36, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x6b, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x41, 0x73, 0x6b, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x64, 0x41, 0x73, 0x6b, 0x73, 0x22, 0x55, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x64, 0x41, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x41, 0x73, 0x6b, 0x52, 0x03, 0x61, 0x73, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x75, - 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0x55, - 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x42, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x03, - 0x62, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x69, 0x64, 0x52, 0x03, 0x62, - 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x6c, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x46, - 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0xc0, 0x02, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x44, 0x69, 0x66, 0x66, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x0c, - 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x69, 0x66, 0x66, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x22, 0x7e, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x55, 0x54, 0x50, - 0x55, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, - 0x0a, 0x1d, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x44, 0x55, 0x53, 0x54, 0x5f, 0x45, 0x58, - 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x4f, 0x46, 0x46, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x10, - 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x44, 0x55, 0x53, 0x54, - 0x5f, 0x41, 0x44, 0x44, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x45, 0x45, 0x53, 0x10, 0x02, - 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x59, - 0x5f, 0x53, 0x50, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x22, 0x98, 0x03, 0x0a, 0x0b, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, - 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x5f, - 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x74, - 0x65, 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x61, 0x6d, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, - 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x61, 0x6d, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, - 0x6d, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x41, 0x6d, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x5f, 0x73, 0x69, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x19, 0x0a, 0x08, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x75, 0x62, 0x12, 0x31, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, - 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, - 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, - 0x68, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x1d, 0x6d, 0x61, 0x78, 0x5f, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, - 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, - 0x6d, 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, - 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, - 0x0b, 0x10, 0x0c, 0x22, 0xa0, 0x02, 0x0a, 0x09, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x69, - 0x64, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x35, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x69, 0x65, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, - 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0f, 0x73, 0x65, 0x6c, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, - 0x69, 0x73, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x89, 0x01, 0x0a, 0x09, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x41, 0x73, 0x6b, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x07, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x2e, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x72, + 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x48, 0x69, 0x6e, 0x74, 0x1a, 0x57, 0x0a, 0x12, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x13, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x30, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, + 0x67, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x49, 0x64, 0x22, 0x54, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x78, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x78, + 0x69, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xb8, 0x02, 0x0a, 0x0e, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x3c, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x48, + 0x0a, 0x13, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x6f, + 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x12, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x69, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, + 0x0a, 0x0f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, + 0x4e, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x44, + 0x4f, 0x45, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, + 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x41, 0x43, + 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x03, 0x22, 0xc2, 0x02, 0x0a, 0x0e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, + 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, + 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, + 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x48, 0x69, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x08, + 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x78, 0x22, 0x7e, 0x0a, 0x0c, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, + 0x42, 0x69, 0x64, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x42, 0x69, 0x64, 0x73, + 0x12, 0x36, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x6b, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, + 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x41, 0x73, 0x6b, 0x52, 0x0b, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x41, 0x73, 0x6b, 0x73, 0x22, 0x55, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x64, 0x41, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x41, 0x73, 0x6b, 0x52, 0x03, 0x61, 0x73, 0x6b, 0x12, 0x21, 0x0a, 0x0c, + 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x22, + 0x55, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x42, 0x69, 0x64, 0x12, 0x24, 0x0a, + 0x03, 0x62, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6f, 0x6f, + 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x69, 0x64, 0x52, 0x03, + 0x62, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6c, + 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x73, + 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0xc0, 0x02, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x44, 0x69, 0x66, 0x66, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x44, 0x0a, + 0x0c, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x69, 0x66, 0x66, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x75, 0x74, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x22, 0x7e, 0x0a, 0x0c, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x55, 0x54, + 0x50, 0x55, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x21, 0x0a, 0x1d, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x44, 0x55, 0x53, 0x54, 0x5f, 0x45, + 0x58, 0x54, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x4f, 0x46, 0x46, 0x43, 0x48, 0x41, 0x49, 0x4e, + 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x44, 0x55, 0x53, + 0x54, 0x5f, 0x41, 0x44, 0x44, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x46, 0x45, 0x45, 0x53, 0x10, + 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x46, 0x55, 0x4c, 0x4c, + 0x59, 0x5f, 0x53, 0x50, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x22, 0xb9, 0x03, 0x0a, 0x0b, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, + 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, + 0x74, 0x65, 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x61, 0x6d, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x61, 0x6d, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x6d, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x41, 0x6d, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x67, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x5f, 0x73, 0x69, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x19, 0x0a, + 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x75, 0x62, 0x12, 0x31, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, + 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x3c, 0x0a, 0x0c, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x1d, 0x6d, 0x61, 0x78, + 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, + 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x17, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, + 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, + 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x22, 0xa0, 0x02, 0x0a, 0x09, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x42, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x35, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x69, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, + 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x52, 0x0b, 0x6d, 0x69, 0x6e, + 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x66, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x65, 0x6c, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x10, 0x69, 0x73, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x89, 0x01, 0x0a, 0x09, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x41, 0x73, 0x6b, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x07, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x2e, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, - 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0a, 0x66, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x69, 0x6c, 0x5f, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, - 0x69, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x1d, 0x0a, 0x0a, 0x46, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, - 0x44, 0x5f, 0x41, 0x4d, 0x54, 0x10, 0x00, 0x22, 0x5b, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2d, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x6f, 0x75, 0x74, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x5f, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x53, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x22, 0x3c, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x22, 0xc7, 0x02, 0x0a, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, - 0x69, 0x66, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, - 0x12, 0x33, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, - 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x57, 0x0a, - 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x09, 0x6e, 0x65, 0x77, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x44, 0x0a, 0x14, 0x4e, 0x65, 0x77, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x22, 0x3e, 0x0a, 0x1b, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x22, 0x3a, 0x0a, 0x17, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x72, 0x0a, 0x18, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x75, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, - 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x75, 0x6e, 0x69, 0x74, - 0x73, 0x55, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0x0e, 0x0a, 0x0c, - 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd5, 0x05, 0x0a, - 0x0d, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, - 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x19, 0x6d, 0x61, - 0x78, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, - 0x01, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x57, 0x0a, 0x0f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, - 0x0a, 0x16, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, - 0x6e, 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x12, 0x40, 0x0a, 0x1e, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, - 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x6e, 0x65, 0x78, - 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, - 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x3b, 0x0a, 0x1a, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x6e, 0x65, 0x78, 0x74, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x66, 0x0a, 0x16, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x65, 0x72, - 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x4c, 0x65, - 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, - 0x19, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x6f, - 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x42, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x74, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xcd, 0x05, 0x0a, 0x0d, 0x52, 0x65, 0x6c, - 0x65, 0x76, 0x61, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x10, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x64, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x44, 0x69, 0x66, 0x66, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x64, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, - 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x74, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x13, 0x63, - 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, 0x63, 0x6c, - 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, - 0x3a, 0x0a, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, - 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x0c, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, - 0x13, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, - 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x52, - 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x32, 0x0a, 0x15, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x12, - 0x53, 0x0a, 0x0f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x57, 0x0a, 0x12, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, - 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, - 0x13, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x44, 0x0a, 0x0c, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, - 0x46, 0x65, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x22, 0x3b, - 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x22, 0x41, 0x0a, 0x08, 0x4f, - 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x97, - 0x01, 0x0a, 0x0b, 0x41, 0x73, 0x6b, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x72, 0x61, 0x74, 0x65, 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, - 0x68, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x63, 0x68, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x0b, 0x42, 0x69, 0x64, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, - 0x69, 0x78, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x74, 0x65, - 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x22, 0xde, 0x01, 0x0a, 0x14, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x03, 0x61, - 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x41, 0x73, 0x6b, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x03, - 0x61, 0x73, 0x6b, 0x12, 0x26, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x64, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x03, 0x62, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x74, 0x73, 0x5f, 0x63, - 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x53, 0x61, 0x74, 0x73, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x12, 0x23, - 0x0a, 0x0d, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x64, 0x22, 0x31, 0x0a, 0x14, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x15, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x12, 0x44, 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, - 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x11, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x52, 0x61, 0x74, 0x65, 0x22, 0xdb, 0x04, 0x0a, 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x6f, 0x6e, 0x63, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x6f, + 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0a, 0x66, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x69, + 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x66, 0x61, 0x69, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x1d, 0x0a, 0x0a, 0x46, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x4d, 0x54, 0x10, 0x00, 0x22, 0x5b, 0x0a, 0x0b, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2d, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, + 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x6f, + 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x5f, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, + 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x3c, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x22, 0xc7, 0x02, 0x0a, 0x1a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, + 0x65, 0x79, 0x12, 0x33, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x6e, 0x65, + 0x77, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, + 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, + 0x57, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x09, 0x6e, + 0x65, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x44, 0x0a, 0x14, 0x4e, 0x65, 0x77, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x22, 0x3e, + 0x0a, 0x1b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x22, 0x3a, + 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x72, 0x0a, 0x18, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x75, 0x6e, 0x66, 0x75, 0x6c, + 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x75, 0x6e, + 0x69, 0x74, 0x73, 0x55, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0x0e, + 0x0a, 0x0c, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd5, + 0x05, 0x0a, 0x0d, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x61, 0x78, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x19, + 0x6d, 0x61, 0x78, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x57, 0x0a, 0x0f, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x0e, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x33, 0x0a, 0x16, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x40, 0x0a, 0x1e, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x6e, + 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, + 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x3b, 0x0a, 0x1a, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x6e, 0x65, 0x78, + 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x66, 0x0a, 0x16, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x54, + 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x65, 0x61, + 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x41, 0x0a, 0x13, + 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x65, 0x0a, 0x19, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, + 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x42, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, + 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xcd, 0x05, 0x0a, 0x0d, 0x52, + 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x10, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x44, 0x69, 0x66, 0x66, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x64, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, + 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x32, 0x0a, + 0x13, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, + 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x61, 0x74, + 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, + 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, + 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, + 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2c, 0x0a, 0x13, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x66, 0x65, + 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x32, 0x0a, + 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, + 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x6f, 0x6f, + 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x74, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x57, 0x0a, 0x12, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x59, 0x0a, 0x13, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, + 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x44, 0x0a, 0x0c, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, + 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x62, 0x61, + 0x73, 0x65, 0x46, 0x65, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, + 0x22, 0x3b, 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x22, 0x41, 0x0a, + 0x08, 0x4f, 0x75, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x21, 0x0a, + 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x22, 0xb2, 0x01, 0x0a, 0x0b, 0x41, 0x73, 0x6b, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, - 0x65, 0x76, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x63, 0x6c, 0x65, - 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, 0x63, 0x6c, 0x65, 0x61, - 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, - 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x5f, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x54, 0x78, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x54, 0x78, 0x12, 0x3c, 0x0a, 0x1c, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x66, - 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, - 0x6b, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, - 0x78, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, - 0x12, 0x32, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x4e, 0x73, 0x12, 0x5b, 0x0a, 0x0f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x73, 0x1a, 0x61, 0x0a, 0x13, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, - 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3c, 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x6f, - 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x21, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x75, 0x62, 0x6b, 0x65, - 0x79, 0x73, 0x22, 0x5d, 0x0a, 0x0a, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x75, 0x62, 0x6b, 0x65, - 0x79, 0x12, 0x2e, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, - 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, - 0x72, 0x22, 0x52, 0x0a, 0x18, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, - 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, - 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x67, 0x0a, 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, - 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, - 0x6e, 0x75, 0x6d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x22, 0x52, - 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, - 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xf6, 0x02, 0x0a, 0x0a, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x73, - 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x69, - 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x41, 0x73, 0x6b, 0x73, - 0x12, 0x38, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x12, 0x54, 0x0a, 0x17, 0x61, 0x73, - 0x6b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x5f, - 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, - 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x2e, 0x54, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x61, 0x73, 0x6b, 0x4f, - 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, - 0x12, 0x54, 0x0a, 0x17, 0x62, 0x69, 0x64, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x14, 0x62, 0x69, 0x64, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, - 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x1a, 0x48, 0x0a, 0x09, 0x54, 0x69, 0x65, 0x72, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, - 0x54, 0x69, 0x65, 0x72, 0x52, 0x04, 0x74, 0x69, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0xa9, 0x01, 0x0a, 0x12, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x4f, 0x0a, 0x0c, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, - 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x29, 0x0a, 0x0b, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x54, - 0x57, 0x45, 0x41, 0x4b, 0x4c, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x4e, - 0x43, 0x48, 0x4f, 0x52, 0x53, 0x10, 0x01, 0x2a, 0x95, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, - 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x50, 0x44, 0x41, - 0x54, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4c, - 0x4f, 0x53, 0x45, 0x44, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, - 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x41, 0x54, 0x43, 0x48, 0x10, 0x05, 0x2a, - 0x34, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x0c, 0x54, - 0x49, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, - 0x06, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x30, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x45, - 0x52, 0x5f, 0x31, 0x10, 0x02, 0x2a, 0x9d, 0x01, 0x0a, 0x0a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x53, 0x55, - 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x52, 0x44, - 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, - 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x4c, 0x59, 0x5f, - 0x46, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x52, 0x44, 0x45, - 0x52, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, - 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x04, - 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, - 0x44, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, - 0x4c, 0x45, 0x44, 0x10, 0x06, 0x2a, 0x5e, 0x0a, 0x13, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0d, 0x0a, 0x09, - 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x54, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4d, - 0x41, 0x52, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x14, - 0x0a, 0x10, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x52, 0x44, 0x45, - 0x52, 0x53, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x54, 0x5f, 0x4f, - 0x50, 0x45, 0x4e, 0x10, 0x03, 0x32, 0x8d, 0x09, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0e, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, - 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, - 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x22, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x6f, 0x6f, - 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, - 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x54, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, + 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x1d, + 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x74, 0x65, 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, 0x36, 0x0a, + 0x09, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x63, 0x68, 0x61, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x0b, 0x42, 0x69, 0x64, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x74, 0x65, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0xde, 0x01, 0x0a, 0x14, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x73, 0x6b, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x03, 0x61, 0x73, 0x6b, 0x12, 0x26, 0x0a, 0x03, 0x62, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, + 0x70, 0x63, 0x2e, 0x42, 0x69, 0x64, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x03, + 0x62, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x73, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x61, 0x74, 0x73, 0x43, + 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x75, + 0x6e, 0x69, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x22, 0x31, 0x0a, 0x14, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0x8d, + 0x01, 0x0a, 0x15, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, + 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, + 0x0a, 0x13, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x63, 0x6c, 0x65, + 0x61, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x61, 0x74, 0x65, 0x22, 0xdb, + 0x04, 0x0a, 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x22, 0x0a, + 0x0d, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x64, 0x12, 0x32, 0x0a, 0x13, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, + 0x18, 0x01, 0x52, 0x11, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, + 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, + 0x1e, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x78, 0x49, 0x64, 0x12, + 0x19, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x78, 0x12, 0x3c, 0x0a, 0x1c, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, + 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x16, 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x78, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, + 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x12, 0x5b, 0x0a, 0x0f, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x61, 0x0a, 0x13, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3c, 0x0a, 0x17, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x6e, + 0x6f, 0x64, 0x65, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x5d, 0x0a, 0x0a, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6e, + 0x6f, 0x64, 0x65, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x09, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, + 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x52, + 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x22, 0x52, 0x0a, 0x18, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, + 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x67, 0x0a, + 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, + 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x62, 0x61, 0x63, 0x6b, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x22, 0x52, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x38, 0x0a, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0xf6, 0x02, 0x0a, 0x0a, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, + 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x07, 0x6e, 0x75, 0x6d, 0x41, 0x73, 0x6b, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, + 0x62, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, + 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, + 0x54, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x42, 0x69, + 0x64, 0x73, 0x12, 0x54, 0x0a, 0x17, 0x61, 0x73, 0x6b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x14, 0x61, 0x73, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x65, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x54, 0x0a, 0x17, 0x62, 0x69, 0x64, 0x5f, + 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x75, 0x6e, + 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, + 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, + 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x62, 0x69, 0x64, 0x4f, 0x70, 0x65, + 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x1a, 0x48, + 0x0a, 0x09, 0x54, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x74, + 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, + 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x52, 0x04, 0x74, 0x69, + 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x12, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x42, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x73, 0x1a, 0x4f, 0x0a, 0x0c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x44, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x57, 0x45, 0x41, 0x4b, 0x4c, 0x45, 0x53, 0x53, + 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x4e, 0x43, 0x48, 0x4f, 0x52, 0x53, 0x10, 0x01, 0x12, + 0x19, 0x0a, 0x15, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x5f, 0x45, 0x4e, 0x46, 0x4f, 0x52, 0x43, + 0x45, 0x44, 0x5f, 0x4c, 0x45, 0x41, 0x53, 0x45, 0x10, 0x02, 0x2a, 0x95, 0x01, 0x0a, 0x13, 0x41, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, + 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x18, 0x0a, + 0x14, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x55, + 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x41, 0x54, 0x43, 0x48, + 0x10, 0x05, 0x2a, 0x81, 0x01, 0x0a, 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x52, 0x44, 0x45, 0x52, + 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4f, 0x52, 0x44, 0x45, 0x52, + 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x45, + 0x45, 0x52, 0x5f, 0x44, 0x45, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x26, + 0x0a, 0x22, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x5f, 0x45, 0x4e, 0x46, 0x4f, + 0x52, 0x43, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x34, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, + 0x65, 0x72, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, + 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x30, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x31, 0x10, 0x02, 0x2a, 0x9d, 0x01, 0x0a, + 0x0a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x4f, + 0x52, 0x44, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x52, 0x45, + 0x44, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x49, 0x41, 0x4c, 0x4c, 0x59, 0x5f, 0x46, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, + 0x12, 0x0a, 0x0e, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, + 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x4e, + 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x52, 0x44, 0x45, 0x52, + 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x52, + 0x44, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x2a, 0x5e, 0x0a, 0x13, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x54, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x4c, 0x4f, + 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x49, + 0x4e, 0x47, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x53, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, + 0x41, 0x52, 0x4b, 0x45, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x03, 0x32, 0x8d, 0x09, 0x0a, + 0x11, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, + 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0d, 0x4d, + 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x70, + 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, + 0x69, 0x66, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, + 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x70, + 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x20, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1d, + 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x01, 0x30, + 0x01, 0x12, 0x54, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x69, + 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x36, 0x0a, 0x05, 0x54, 0x65, 0x72, 0x6d, 0x73, + 0x12, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, + 0x63, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4e, 0x0a, 0x15, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, + 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, + 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, + 0x4e, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x51, 0x0a, 0x0a, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x20, 0x2e, + 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0a, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x70, 0x6f, 0x6f, - 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, - 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x59, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x54, 0x0a, 0x10, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x1d, - 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1d, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x01, 0x30, 0x01, - 0x12, 0x36, 0x0a, 0x05, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x12, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, - 0x72, 0x70, 0x63, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x15, 0x52, 0x65, 0x6c, 0x65, - 0x76, 0x61, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x65, - 0x76, 0x61, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x76, - 0x61, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x4e, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, - 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x4e, 0x6f, 0x64, 0x65, - 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x20, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x1e, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, - 0x0a, 0x0a, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x2e, 0x70, - 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x6c, 0x61, 0x62, - 0x73, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, - 0x72, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2d, 0x5a, 0x2b, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x67, 0x68, 0x74, + 0x6e, 0x69, 0x6e, 0x67, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x61, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -6175,208 +6257,212 @@ func file_auctioneer_proto_rawDescGZIP() []byte { return file_auctioneer_proto_rawDescData } -var file_auctioneer_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_auctioneer_proto_enumTypes = make([]protoimpl.EnumInfo, 11) var file_auctioneer_proto_msgTypes = make([]protoimpl.MessageInfo, 76) var file_auctioneer_proto_goTypes = []interface{}{ (ChannelType)(0), // 0: poolrpc.ChannelType (AuctionAccountState)(0), // 1: poolrpc.AuctionAccountState - (NodeTier)(0), // 2: poolrpc.NodeTier - (OrderState)(0), // 3: poolrpc.OrderState - (DurationBucketState)(0), // 4: poolrpc.DurationBucketState - (OrderMatchReject_RejectReason)(0), // 5: poolrpc.OrderMatchReject.RejectReason - (OrderReject_OrderRejectReason)(0), // 6: poolrpc.OrderReject.OrderRejectReason - (SubscribeError_Error)(0), // 7: poolrpc.SubscribeError.Error - (AccountDiff_AccountState)(0), // 8: poolrpc.AccountDiff.AccountState - (InvalidOrder_FailReason)(0), // 9: poolrpc.InvalidOrder.FailReason - (*ReserveAccountRequest)(nil), // 10: poolrpc.ReserveAccountRequest - (*ReserveAccountResponse)(nil), // 11: poolrpc.ReserveAccountResponse - (*ServerInitAccountRequest)(nil), // 12: poolrpc.ServerInitAccountRequest - (*ServerInitAccountResponse)(nil), // 13: poolrpc.ServerInitAccountResponse - (*ServerSubmitOrderRequest)(nil), // 14: poolrpc.ServerSubmitOrderRequest - (*ServerSubmitOrderResponse)(nil), // 15: poolrpc.ServerSubmitOrderResponse - (*ServerCancelOrderRequest)(nil), // 16: poolrpc.ServerCancelOrderRequest - (*ServerCancelOrderResponse)(nil), // 17: poolrpc.ServerCancelOrderResponse - (*ClientAuctionMessage)(nil), // 18: poolrpc.ClientAuctionMessage - (*AccountCommitment)(nil), // 19: poolrpc.AccountCommitment - (*AccountSubscription)(nil), // 20: poolrpc.AccountSubscription - (*OrderMatchAccept)(nil), // 21: poolrpc.OrderMatchAccept - (*OrderMatchReject)(nil), // 22: poolrpc.OrderMatchReject - (*OrderReject)(nil), // 23: poolrpc.OrderReject - (*ChannelInfo)(nil), // 24: poolrpc.ChannelInfo - (*OrderMatchSign)(nil), // 25: poolrpc.OrderMatchSign - (*AccountRecovery)(nil), // 26: poolrpc.AccountRecovery - (*ServerAuctionMessage)(nil), // 27: poolrpc.ServerAuctionMessage - (*ServerChallenge)(nil), // 28: poolrpc.ServerChallenge - (*SubscribeSuccess)(nil), // 29: poolrpc.SubscribeSuccess - (*MatchedMarket)(nil), // 30: poolrpc.MatchedMarket - (*OrderMatchPrepare)(nil), // 31: poolrpc.OrderMatchPrepare - (*OrderMatchSignBegin)(nil), // 32: poolrpc.OrderMatchSignBegin - (*OrderMatchFinalize)(nil), // 33: poolrpc.OrderMatchFinalize - (*SubscribeError)(nil), // 34: poolrpc.SubscribeError - (*AuctionAccount)(nil), // 35: poolrpc.AuctionAccount - (*MatchedOrder)(nil), // 36: poolrpc.MatchedOrder - (*MatchedAsk)(nil), // 37: poolrpc.MatchedAsk - (*MatchedBid)(nil), // 38: poolrpc.MatchedBid - (*AccountDiff)(nil), // 39: poolrpc.AccountDiff - (*ServerOrder)(nil), // 40: poolrpc.ServerOrder - (*ServerBid)(nil), // 41: poolrpc.ServerBid - (*ServerAsk)(nil), // 42: poolrpc.ServerAsk - (*CancelOrder)(nil), // 43: poolrpc.CancelOrder - (*InvalidOrder)(nil), // 44: poolrpc.InvalidOrder - (*ServerInput)(nil), // 45: poolrpc.ServerInput - (*ServerOutput)(nil), // 46: poolrpc.ServerOutput - (*ServerModifyAccountRequest)(nil), // 47: poolrpc.ServerModifyAccountRequest - (*ServerModifyAccountResponse)(nil), // 48: poolrpc.ServerModifyAccountResponse - (*ServerOrderStateRequest)(nil), // 49: poolrpc.ServerOrderStateRequest - (*ServerOrderStateResponse)(nil), // 50: poolrpc.ServerOrderStateResponse - (*TermsRequest)(nil), // 51: poolrpc.TermsRequest - (*TermsResponse)(nil), // 52: poolrpc.TermsResponse - (*RelevantBatchRequest)(nil), // 53: poolrpc.RelevantBatchRequest - (*RelevantBatch)(nil), // 54: poolrpc.RelevantBatch - (*ExecutionFee)(nil), // 55: poolrpc.ExecutionFee - (*NodeAddress)(nil), // 56: poolrpc.NodeAddress - (*OutPoint)(nil), // 57: poolrpc.OutPoint - (*AskSnapshot)(nil), // 58: poolrpc.AskSnapshot - (*BidSnapshot)(nil), // 59: poolrpc.BidSnapshot - (*MatchedOrderSnapshot)(nil), // 60: poolrpc.MatchedOrderSnapshot - (*BatchSnapshotRequest)(nil), // 61: poolrpc.BatchSnapshotRequest - (*MatchedMarketSnapshot)(nil), // 62: poolrpc.MatchedMarketSnapshot - (*BatchSnapshotResponse)(nil), // 63: poolrpc.BatchSnapshotResponse - (*ServerNodeRatingRequest)(nil), // 64: poolrpc.ServerNodeRatingRequest - (*NodeRating)(nil), // 65: poolrpc.NodeRating - (*ServerNodeRatingResponse)(nil), // 66: poolrpc.ServerNodeRatingResponse - (*BatchSnapshotsRequest)(nil), // 67: poolrpc.BatchSnapshotsRequest - (*BatchSnapshotsResponse)(nil), // 68: poolrpc.BatchSnapshotsResponse - (*MarketInfoRequest)(nil), // 69: poolrpc.MarketInfoRequest - (*MarketInfo)(nil), // 70: poolrpc.MarketInfo - (*MarketInfoResponse)(nil), // 71: poolrpc.MarketInfoResponse - nil, // 72: poolrpc.OrderMatchReject.RejectedOrdersEntry - nil, // 73: poolrpc.OrderMatchSign.AccountSigsEntry - nil, // 74: poolrpc.OrderMatchSign.ChannelInfosEntry - nil, // 75: poolrpc.MatchedMarket.MatchedOrdersEntry - nil, // 76: poolrpc.OrderMatchPrepare.MatchedOrdersEntry - nil, // 77: poolrpc.OrderMatchPrepare.MatchedMarketsEntry - (*ServerModifyAccountRequest_NewAccountParameters)(nil), // 78: poolrpc.ServerModifyAccountRequest.NewAccountParameters - nil, // 79: poolrpc.TermsResponse.LeaseDurationsEntry - nil, // 80: poolrpc.TermsResponse.LeaseDurationBucketsEntry - nil, // 81: poolrpc.RelevantBatch.MatchedOrdersEntry - nil, // 82: poolrpc.RelevantBatch.MatchedMarketsEntry - nil, // 83: poolrpc.BatchSnapshotResponse.MatchedMarketsEntry - (*MarketInfo_TierValue)(nil), // 84: poolrpc.MarketInfo.TierValue - nil, // 85: poolrpc.MarketInfoResponse.MarketsEntry + (OrderChannelType)(0), // 2: poolrpc.OrderChannelType + (NodeTier)(0), // 3: poolrpc.NodeTier + (OrderState)(0), // 4: poolrpc.OrderState + (DurationBucketState)(0), // 5: poolrpc.DurationBucketState + (OrderMatchReject_RejectReason)(0), // 6: poolrpc.OrderMatchReject.RejectReason + (OrderReject_OrderRejectReason)(0), // 7: poolrpc.OrderReject.OrderRejectReason + (SubscribeError_Error)(0), // 8: poolrpc.SubscribeError.Error + (AccountDiff_AccountState)(0), // 9: poolrpc.AccountDiff.AccountState + (InvalidOrder_FailReason)(0), // 10: poolrpc.InvalidOrder.FailReason + (*ReserveAccountRequest)(nil), // 11: poolrpc.ReserveAccountRequest + (*ReserveAccountResponse)(nil), // 12: poolrpc.ReserveAccountResponse + (*ServerInitAccountRequest)(nil), // 13: poolrpc.ServerInitAccountRequest + (*ServerInitAccountResponse)(nil), // 14: poolrpc.ServerInitAccountResponse + (*ServerSubmitOrderRequest)(nil), // 15: poolrpc.ServerSubmitOrderRequest + (*ServerSubmitOrderResponse)(nil), // 16: poolrpc.ServerSubmitOrderResponse + (*ServerCancelOrderRequest)(nil), // 17: poolrpc.ServerCancelOrderRequest + (*ServerCancelOrderResponse)(nil), // 18: poolrpc.ServerCancelOrderResponse + (*ClientAuctionMessage)(nil), // 19: poolrpc.ClientAuctionMessage + (*AccountCommitment)(nil), // 20: poolrpc.AccountCommitment + (*AccountSubscription)(nil), // 21: poolrpc.AccountSubscription + (*OrderMatchAccept)(nil), // 22: poolrpc.OrderMatchAccept + (*OrderMatchReject)(nil), // 23: poolrpc.OrderMatchReject + (*OrderReject)(nil), // 24: poolrpc.OrderReject + (*ChannelInfo)(nil), // 25: poolrpc.ChannelInfo + (*OrderMatchSign)(nil), // 26: poolrpc.OrderMatchSign + (*AccountRecovery)(nil), // 27: poolrpc.AccountRecovery + (*ServerAuctionMessage)(nil), // 28: poolrpc.ServerAuctionMessage + (*ServerChallenge)(nil), // 29: poolrpc.ServerChallenge + (*SubscribeSuccess)(nil), // 30: poolrpc.SubscribeSuccess + (*MatchedMarket)(nil), // 31: poolrpc.MatchedMarket + (*OrderMatchPrepare)(nil), // 32: poolrpc.OrderMatchPrepare + (*OrderMatchSignBegin)(nil), // 33: poolrpc.OrderMatchSignBegin + (*OrderMatchFinalize)(nil), // 34: poolrpc.OrderMatchFinalize + (*SubscribeError)(nil), // 35: poolrpc.SubscribeError + (*AuctionAccount)(nil), // 36: poolrpc.AuctionAccount + (*MatchedOrder)(nil), // 37: poolrpc.MatchedOrder + (*MatchedAsk)(nil), // 38: poolrpc.MatchedAsk + (*MatchedBid)(nil), // 39: poolrpc.MatchedBid + (*AccountDiff)(nil), // 40: poolrpc.AccountDiff + (*ServerOrder)(nil), // 41: poolrpc.ServerOrder + (*ServerBid)(nil), // 42: poolrpc.ServerBid + (*ServerAsk)(nil), // 43: poolrpc.ServerAsk + (*CancelOrder)(nil), // 44: poolrpc.CancelOrder + (*InvalidOrder)(nil), // 45: poolrpc.InvalidOrder + (*ServerInput)(nil), // 46: poolrpc.ServerInput + (*ServerOutput)(nil), // 47: poolrpc.ServerOutput + (*ServerModifyAccountRequest)(nil), // 48: poolrpc.ServerModifyAccountRequest + (*ServerModifyAccountResponse)(nil), // 49: poolrpc.ServerModifyAccountResponse + (*ServerOrderStateRequest)(nil), // 50: poolrpc.ServerOrderStateRequest + (*ServerOrderStateResponse)(nil), // 51: poolrpc.ServerOrderStateResponse + (*TermsRequest)(nil), // 52: poolrpc.TermsRequest + (*TermsResponse)(nil), // 53: poolrpc.TermsResponse + (*RelevantBatchRequest)(nil), // 54: poolrpc.RelevantBatchRequest + (*RelevantBatch)(nil), // 55: poolrpc.RelevantBatch + (*ExecutionFee)(nil), // 56: poolrpc.ExecutionFee + (*NodeAddress)(nil), // 57: poolrpc.NodeAddress + (*OutPoint)(nil), // 58: poolrpc.OutPoint + (*AskSnapshot)(nil), // 59: poolrpc.AskSnapshot + (*BidSnapshot)(nil), // 60: poolrpc.BidSnapshot + (*MatchedOrderSnapshot)(nil), // 61: poolrpc.MatchedOrderSnapshot + (*BatchSnapshotRequest)(nil), // 62: poolrpc.BatchSnapshotRequest + (*MatchedMarketSnapshot)(nil), // 63: poolrpc.MatchedMarketSnapshot + (*BatchSnapshotResponse)(nil), // 64: poolrpc.BatchSnapshotResponse + (*ServerNodeRatingRequest)(nil), // 65: poolrpc.ServerNodeRatingRequest + (*NodeRating)(nil), // 66: poolrpc.NodeRating + (*ServerNodeRatingResponse)(nil), // 67: poolrpc.ServerNodeRatingResponse + (*BatchSnapshotsRequest)(nil), // 68: poolrpc.BatchSnapshotsRequest + (*BatchSnapshotsResponse)(nil), // 69: poolrpc.BatchSnapshotsResponse + (*MarketInfoRequest)(nil), // 70: poolrpc.MarketInfoRequest + (*MarketInfo)(nil), // 71: poolrpc.MarketInfo + (*MarketInfoResponse)(nil), // 72: poolrpc.MarketInfoResponse + nil, // 73: poolrpc.OrderMatchReject.RejectedOrdersEntry + nil, // 74: poolrpc.OrderMatchSign.AccountSigsEntry + nil, // 75: poolrpc.OrderMatchSign.ChannelInfosEntry + nil, // 76: poolrpc.MatchedMarket.MatchedOrdersEntry + nil, // 77: poolrpc.OrderMatchPrepare.MatchedOrdersEntry + nil, // 78: poolrpc.OrderMatchPrepare.MatchedMarketsEntry + (*ServerModifyAccountRequest_NewAccountParameters)(nil), // 79: poolrpc.ServerModifyAccountRequest.NewAccountParameters + nil, // 80: poolrpc.TermsResponse.LeaseDurationsEntry + nil, // 81: poolrpc.TermsResponse.LeaseDurationBucketsEntry + nil, // 82: poolrpc.RelevantBatch.MatchedOrdersEntry + nil, // 83: poolrpc.RelevantBatch.MatchedMarketsEntry + nil, // 84: poolrpc.BatchSnapshotResponse.MatchedMarketsEntry + (*MarketInfo_TierValue)(nil), // 85: poolrpc.MarketInfo.TierValue + nil, // 86: poolrpc.MarketInfoResponse.MarketsEntry } var file_auctioneer_proto_depIdxs = []int32{ - 57, // 0: poolrpc.ServerInitAccountRequest.account_point:type_name -> poolrpc.OutPoint - 42, // 1: poolrpc.ServerSubmitOrderRequest.ask:type_name -> poolrpc.ServerAsk - 41, // 2: poolrpc.ServerSubmitOrderRequest.bid:type_name -> poolrpc.ServerBid - 44, // 3: poolrpc.ServerSubmitOrderResponse.invalid_order:type_name -> poolrpc.InvalidOrder - 19, // 4: poolrpc.ClientAuctionMessage.commit:type_name -> poolrpc.AccountCommitment - 20, // 5: poolrpc.ClientAuctionMessage.subscribe:type_name -> poolrpc.AccountSubscription - 21, // 6: poolrpc.ClientAuctionMessage.accept:type_name -> poolrpc.OrderMatchAccept - 22, // 7: poolrpc.ClientAuctionMessage.reject:type_name -> poolrpc.OrderMatchReject - 25, // 8: poolrpc.ClientAuctionMessage.sign:type_name -> poolrpc.OrderMatchSign - 26, // 9: poolrpc.ClientAuctionMessage.recover:type_name -> poolrpc.AccountRecovery - 5, // 10: poolrpc.OrderMatchReject.reason_code:type_name -> poolrpc.OrderMatchReject.RejectReason - 72, // 11: poolrpc.OrderMatchReject.rejected_orders:type_name -> poolrpc.OrderMatchReject.RejectedOrdersEntry - 6, // 12: poolrpc.OrderReject.reason_code:type_name -> poolrpc.OrderReject.OrderRejectReason + 58, // 0: poolrpc.ServerInitAccountRequest.account_point:type_name -> poolrpc.OutPoint + 43, // 1: poolrpc.ServerSubmitOrderRequest.ask:type_name -> poolrpc.ServerAsk + 42, // 2: poolrpc.ServerSubmitOrderRequest.bid:type_name -> poolrpc.ServerBid + 45, // 3: poolrpc.ServerSubmitOrderResponse.invalid_order:type_name -> poolrpc.InvalidOrder + 20, // 4: poolrpc.ClientAuctionMessage.commit:type_name -> poolrpc.AccountCommitment + 21, // 5: poolrpc.ClientAuctionMessage.subscribe:type_name -> poolrpc.AccountSubscription + 22, // 6: poolrpc.ClientAuctionMessage.accept:type_name -> poolrpc.OrderMatchAccept + 23, // 7: poolrpc.ClientAuctionMessage.reject:type_name -> poolrpc.OrderMatchReject + 26, // 8: poolrpc.ClientAuctionMessage.sign:type_name -> poolrpc.OrderMatchSign + 27, // 9: poolrpc.ClientAuctionMessage.recover:type_name -> poolrpc.AccountRecovery + 6, // 10: poolrpc.OrderMatchReject.reason_code:type_name -> poolrpc.OrderMatchReject.RejectReason + 73, // 11: poolrpc.OrderMatchReject.rejected_orders:type_name -> poolrpc.OrderMatchReject.RejectedOrdersEntry + 7, // 12: poolrpc.OrderReject.reason_code:type_name -> poolrpc.OrderReject.OrderRejectReason 0, // 13: poolrpc.ChannelInfo.type:type_name -> poolrpc.ChannelType - 73, // 14: poolrpc.OrderMatchSign.account_sigs:type_name -> poolrpc.OrderMatchSign.AccountSigsEntry - 74, // 15: poolrpc.OrderMatchSign.channel_infos:type_name -> poolrpc.OrderMatchSign.ChannelInfosEntry - 28, // 16: poolrpc.ServerAuctionMessage.challenge:type_name -> poolrpc.ServerChallenge - 29, // 17: poolrpc.ServerAuctionMessage.success:type_name -> poolrpc.SubscribeSuccess - 34, // 18: poolrpc.ServerAuctionMessage.error:type_name -> poolrpc.SubscribeError - 31, // 19: poolrpc.ServerAuctionMessage.prepare:type_name -> poolrpc.OrderMatchPrepare - 32, // 20: poolrpc.ServerAuctionMessage.sign:type_name -> poolrpc.OrderMatchSignBegin - 33, // 21: poolrpc.ServerAuctionMessage.finalize:type_name -> poolrpc.OrderMatchFinalize - 35, // 22: poolrpc.ServerAuctionMessage.account:type_name -> poolrpc.AuctionAccount - 75, // 23: poolrpc.MatchedMarket.matched_orders:type_name -> poolrpc.MatchedMarket.MatchedOrdersEntry - 76, // 24: poolrpc.OrderMatchPrepare.matched_orders:type_name -> poolrpc.OrderMatchPrepare.MatchedOrdersEntry - 39, // 25: poolrpc.OrderMatchPrepare.charged_accounts:type_name -> poolrpc.AccountDiff - 55, // 26: poolrpc.OrderMatchPrepare.execution_fee:type_name -> poolrpc.ExecutionFee - 77, // 27: poolrpc.OrderMatchPrepare.matched_markets:type_name -> poolrpc.OrderMatchPrepare.MatchedMarketsEntry - 7, // 28: poolrpc.SubscribeError.error_code:type_name -> poolrpc.SubscribeError.Error - 35, // 29: poolrpc.SubscribeError.account_reservation:type_name -> poolrpc.AuctionAccount + 74, // 14: poolrpc.OrderMatchSign.account_sigs:type_name -> poolrpc.OrderMatchSign.AccountSigsEntry + 75, // 15: poolrpc.OrderMatchSign.channel_infos:type_name -> poolrpc.OrderMatchSign.ChannelInfosEntry + 29, // 16: poolrpc.ServerAuctionMessage.challenge:type_name -> poolrpc.ServerChallenge + 30, // 17: poolrpc.ServerAuctionMessage.success:type_name -> poolrpc.SubscribeSuccess + 35, // 18: poolrpc.ServerAuctionMessage.error:type_name -> poolrpc.SubscribeError + 32, // 19: poolrpc.ServerAuctionMessage.prepare:type_name -> poolrpc.OrderMatchPrepare + 33, // 20: poolrpc.ServerAuctionMessage.sign:type_name -> poolrpc.OrderMatchSignBegin + 34, // 21: poolrpc.ServerAuctionMessage.finalize:type_name -> poolrpc.OrderMatchFinalize + 36, // 22: poolrpc.ServerAuctionMessage.account:type_name -> poolrpc.AuctionAccount + 76, // 23: poolrpc.MatchedMarket.matched_orders:type_name -> poolrpc.MatchedMarket.MatchedOrdersEntry + 77, // 24: poolrpc.OrderMatchPrepare.matched_orders:type_name -> poolrpc.OrderMatchPrepare.MatchedOrdersEntry + 40, // 25: poolrpc.OrderMatchPrepare.charged_accounts:type_name -> poolrpc.AccountDiff + 56, // 26: poolrpc.OrderMatchPrepare.execution_fee:type_name -> poolrpc.ExecutionFee + 78, // 27: poolrpc.OrderMatchPrepare.matched_markets:type_name -> poolrpc.OrderMatchPrepare.MatchedMarketsEntry + 8, // 28: poolrpc.SubscribeError.error_code:type_name -> poolrpc.SubscribeError.Error + 36, // 29: poolrpc.SubscribeError.account_reservation:type_name -> poolrpc.AuctionAccount 1, // 30: poolrpc.AuctionAccount.state:type_name -> poolrpc.AuctionAccountState - 57, // 31: poolrpc.AuctionAccount.outpoint:type_name -> poolrpc.OutPoint - 38, // 32: poolrpc.MatchedOrder.matched_bids:type_name -> poolrpc.MatchedBid - 37, // 33: poolrpc.MatchedOrder.matched_asks:type_name -> poolrpc.MatchedAsk - 42, // 34: poolrpc.MatchedAsk.ask:type_name -> poolrpc.ServerAsk - 41, // 35: poolrpc.MatchedBid.bid:type_name -> poolrpc.ServerBid - 8, // 36: poolrpc.AccountDiff.ending_state:type_name -> poolrpc.AccountDiff.AccountState - 56, // 37: poolrpc.ServerOrder.node_addr:type_name -> poolrpc.NodeAddress - 40, // 38: poolrpc.ServerBid.details:type_name -> poolrpc.ServerOrder - 2, // 39: poolrpc.ServerBid.min_node_tier:type_name -> poolrpc.NodeTier - 40, // 40: poolrpc.ServerAsk.details:type_name -> poolrpc.ServerOrder - 9, // 41: poolrpc.InvalidOrder.fail_reason:type_name -> poolrpc.InvalidOrder.FailReason - 57, // 42: poolrpc.ServerInput.outpoint:type_name -> poolrpc.OutPoint - 45, // 43: poolrpc.ServerModifyAccountRequest.new_inputs:type_name -> poolrpc.ServerInput - 46, // 44: poolrpc.ServerModifyAccountRequest.new_outputs:type_name -> poolrpc.ServerOutput - 78, // 45: poolrpc.ServerModifyAccountRequest.new_params:type_name -> poolrpc.ServerModifyAccountRequest.NewAccountParameters - 3, // 46: poolrpc.ServerOrderStateResponse.state:type_name -> poolrpc.OrderState - 55, // 47: poolrpc.TermsResponse.execution_fee:type_name -> poolrpc.ExecutionFee - 79, // 48: poolrpc.TermsResponse.lease_durations:type_name -> poolrpc.TermsResponse.LeaseDurationsEntry - 80, // 49: poolrpc.TermsResponse.lease_duration_buckets:type_name -> poolrpc.TermsResponse.LeaseDurationBucketsEntry - 39, // 50: poolrpc.RelevantBatch.charged_accounts:type_name -> poolrpc.AccountDiff - 81, // 51: poolrpc.RelevantBatch.matched_orders:type_name -> poolrpc.RelevantBatch.MatchedOrdersEntry - 55, // 52: poolrpc.RelevantBatch.execution_fee:type_name -> poolrpc.ExecutionFee - 82, // 53: poolrpc.RelevantBatch.matched_markets:type_name -> poolrpc.RelevantBatch.MatchedMarketsEntry - 58, // 54: poolrpc.MatchedOrderSnapshot.ask:type_name -> poolrpc.AskSnapshot - 59, // 55: poolrpc.MatchedOrderSnapshot.bid:type_name -> poolrpc.BidSnapshot - 60, // 56: poolrpc.MatchedMarketSnapshot.matched_orders:type_name -> poolrpc.MatchedOrderSnapshot - 60, // 57: poolrpc.BatchSnapshotResponse.matched_orders:type_name -> poolrpc.MatchedOrderSnapshot - 83, // 58: poolrpc.BatchSnapshotResponse.matched_markets:type_name -> poolrpc.BatchSnapshotResponse.MatchedMarketsEntry - 2, // 59: poolrpc.NodeRating.node_tier:type_name -> poolrpc.NodeTier - 65, // 60: poolrpc.ServerNodeRatingResponse.node_ratings:type_name -> poolrpc.NodeRating - 63, // 61: poolrpc.BatchSnapshotsResponse.batches:type_name -> poolrpc.BatchSnapshotResponse - 84, // 62: poolrpc.MarketInfo.num_asks:type_name -> poolrpc.MarketInfo.TierValue - 84, // 63: poolrpc.MarketInfo.num_bids:type_name -> poolrpc.MarketInfo.TierValue - 84, // 64: poolrpc.MarketInfo.ask_open_interest_units:type_name -> poolrpc.MarketInfo.TierValue - 84, // 65: poolrpc.MarketInfo.bid_open_interest_units:type_name -> poolrpc.MarketInfo.TierValue - 85, // 66: poolrpc.MarketInfoResponse.markets:type_name -> poolrpc.MarketInfoResponse.MarketsEntry - 23, // 67: poolrpc.OrderMatchReject.RejectedOrdersEntry.value:type_name -> poolrpc.OrderReject - 24, // 68: poolrpc.OrderMatchSign.ChannelInfosEntry.value:type_name -> poolrpc.ChannelInfo - 36, // 69: poolrpc.MatchedMarket.MatchedOrdersEntry.value:type_name -> poolrpc.MatchedOrder - 36, // 70: poolrpc.OrderMatchPrepare.MatchedOrdersEntry.value:type_name -> poolrpc.MatchedOrder - 30, // 71: poolrpc.OrderMatchPrepare.MatchedMarketsEntry.value:type_name -> poolrpc.MatchedMarket - 4, // 72: poolrpc.TermsResponse.LeaseDurationBucketsEntry.value:type_name -> poolrpc.DurationBucketState - 36, // 73: poolrpc.RelevantBatch.MatchedOrdersEntry.value:type_name -> poolrpc.MatchedOrder - 30, // 74: poolrpc.RelevantBatch.MatchedMarketsEntry.value:type_name -> poolrpc.MatchedMarket - 62, // 75: poolrpc.BatchSnapshotResponse.MatchedMarketsEntry.value:type_name -> poolrpc.MatchedMarketSnapshot - 2, // 76: poolrpc.MarketInfo.TierValue.tier:type_name -> poolrpc.NodeTier - 70, // 77: poolrpc.MarketInfoResponse.MarketsEntry.value:type_name -> poolrpc.MarketInfo - 10, // 78: poolrpc.ChannelAuctioneer.ReserveAccount:input_type -> poolrpc.ReserveAccountRequest - 12, // 79: poolrpc.ChannelAuctioneer.InitAccount:input_type -> poolrpc.ServerInitAccountRequest - 47, // 80: poolrpc.ChannelAuctioneer.ModifyAccount:input_type -> poolrpc.ServerModifyAccountRequest - 14, // 81: poolrpc.ChannelAuctioneer.SubmitOrder:input_type -> poolrpc.ServerSubmitOrderRequest - 16, // 82: poolrpc.ChannelAuctioneer.CancelOrder:input_type -> poolrpc.ServerCancelOrderRequest - 49, // 83: poolrpc.ChannelAuctioneer.OrderState:input_type -> poolrpc.ServerOrderStateRequest - 18, // 84: poolrpc.ChannelAuctioneer.SubscribeBatchAuction:input_type -> poolrpc.ClientAuctionMessage - 18, // 85: poolrpc.ChannelAuctioneer.SubscribeSidecar:input_type -> poolrpc.ClientAuctionMessage - 51, // 86: poolrpc.ChannelAuctioneer.Terms:input_type -> poolrpc.TermsRequest - 53, // 87: poolrpc.ChannelAuctioneer.RelevantBatchSnapshot:input_type -> poolrpc.RelevantBatchRequest - 61, // 88: poolrpc.ChannelAuctioneer.BatchSnapshot:input_type -> poolrpc.BatchSnapshotRequest - 64, // 89: poolrpc.ChannelAuctioneer.NodeRating:input_type -> poolrpc.ServerNodeRatingRequest - 67, // 90: poolrpc.ChannelAuctioneer.BatchSnapshots:input_type -> poolrpc.BatchSnapshotsRequest - 69, // 91: poolrpc.ChannelAuctioneer.MarketInfo:input_type -> poolrpc.MarketInfoRequest - 11, // 92: poolrpc.ChannelAuctioneer.ReserveAccount:output_type -> poolrpc.ReserveAccountResponse - 13, // 93: poolrpc.ChannelAuctioneer.InitAccount:output_type -> poolrpc.ServerInitAccountResponse - 48, // 94: poolrpc.ChannelAuctioneer.ModifyAccount:output_type -> poolrpc.ServerModifyAccountResponse - 15, // 95: poolrpc.ChannelAuctioneer.SubmitOrder:output_type -> poolrpc.ServerSubmitOrderResponse - 17, // 96: poolrpc.ChannelAuctioneer.CancelOrder:output_type -> poolrpc.ServerCancelOrderResponse - 50, // 97: poolrpc.ChannelAuctioneer.OrderState:output_type -> poolrpc.ServerOrderStateResponse - 27, // 98: poolrpc.ChannelAuctioneer.SubscribeBatchAuction:output_type -> poolrpc.ServerAuctionMessage - 27, // 99: poolrpc.ChannelAuctioneer.SubscribeSidecar:output_type -> poolrpc.ServerAuctionMessage - 52, // 100: poolrpc.ChannelAuctioneer.Terms:output_type -> poolrpc.TermsResponse - 54, // 101: poolrpc.ChannelAuctioneer.RelevantBatchSnapshot:output_type -> poolrpc.RelevantBatch - 63, // 102: poolrpc.ChannelAuctioneer.BatchSnapshot:output_type -> poolrpc.BatchSnapshotResponse - 66, // 103: poolrpc.ChannelAuctioneer.NodeRating:output_type -> poolrpc.ServerNodeRatingResponse - 68, // 104: poolrpc.ChannelAuctioneer.BatchSnapshots:output_type -> poolrpc.BatchSnapshotsResponse - 71, // 105: poolrpc.ChannelAuctioneer.MarketInfo:output_type -> poolrpc.MarketInfoResponse - 92, // [92:106] is the sub-list for method output_type - 78, // [78:92] is the sub-list for method input_type - 78, // [78:78] is the sub-list for extension type_name - 78, // [78:78] is the sub-list for extension extendee - 0, // [0:78] is the sub-list for field type_name + 58, // 31: poolrpc.AuctionAccount.outpoint:type_name -> poolrpc.OutPoint + 39, // 32: poolrpc.MatchedOrder.matched_bids:type_name -> poolrpc.MatchedBid + 38, // 33: poolrpc.MatchedOrder.matched_asks:type_name -> poolrpc.MatchedAsk + 43, // 34: poolrpc.MatchedAsk.ask:type_name -> poolrpc.ServerAsk + 42, // 35: poolrpc.MatchedBid.bid:type_name -> poolrpc.ServerBid + 9, // 36: poolrpc.AccountDiff.ending_state:type_name -> poolrpc.AccountDiff.AccountState + 57, // 37: poolrpc.ServerOrder.node_addr:type_name -> poolrpc.NodeAddress + 2, // 38: poolrpc.ServerOrder.channel_type:type_name -> poolrpc.OrderChannelType + 41, // 39: poolrpc.ServerBid.details:type_name -> poolrpc.ServerOrder + 3, // 40: poolrpc.ServerBid.min_node_tier:type_name -> poolrpc.NodeTier + 41, // 41: poolrpc.ServerAsk.details:type_name -> poolrpc.ServerOrder + 10, // 42: poolrpc.InvalidOrder.fail_reason:type_name -> poolrpc.InvalidOrder.FailReason + 58, // 43: poolrpc.ServerInput.outpoint:type_name -> poolrpc.OutPoint + 46, // 44: poolrpc.ServerModifyAccountRequest.new_inputs:type_name -> poolrpc.ServerInput + 47, // 45: poolrpc.ServerModifyAccountRequest.new_outputs:type_name -> poolrpc.ServerOutput + 79, // 46: poolrpc.ServerModifyAccountRequest.new_params:type_name -> poolrpc.ServerModifyAccountRequest.NewAccountParameters + 4, // 47: poolrpc.ServerOrderStateResponse.state:type_name -> poolrpc.OrderState + 56, // 48: poolrpc.TermsResponse.execution_fee:type_name -> poolrpc.ExecutionFee + 80, // 49: poolrpc.TermsResponse.lease_durations:type_name -> poolrpc.TermsResponse.LeaseDurationsEntry + 81, // 50: poolrpc.TermsResponse.lease_duration_buckets:type_name -> poolrpc.TermsResponse.LeaseDurationBucketsEntry + 40, // 51: poolrpc.RelevantBatch.charged_accounts:type_name -> poolrpc.AccountDiff + 82, // 52: poolrpc.RelevantBatch.matched_orders:type_name -> poolrpc.RelevantBatch.MatchedOrdersEntry + 56, // 53: poolrpc.RelevantBatch.execution_fee:type_name -> poolrpc.ExecutionFee + 83, // 54: poolrpc.RelevantBatch.matched_markets:type_name -> poolrpc.RelevantBatch.MatchedMarketsEntry + 2, // 55: poolrpc.AskSnapshot.chan_type:type_name -> poolrpc.OrderChannelType + 2, // 56: poolrpc.BidSnapshot.chan_type:type_name -> poolrpc.OrderChannelType + 59, // 57: poolrpc.MatchedOrderSnapshot.ask:type_name -> poolrpc.AskSnapshot + 60, // 58: poolrpc.MatchedOrderSnapshot.bid:type_name -> poolrpc.BidSnapshot + 61, // 59: poolrpc.MatchedMarketSnapshot.matched_orders:type_name -> poolrpc.MatchedOrderSnapshot + 61, // 60: poolrpc.BatchSnapshotResponse.matched_orders:type_name -> poolrpc.MatchedOrderSnapshot + 84, // 61: poolrpc.BatchSnapshotResponse.matched_markets:type_name -> poolrpc.BatchSnapshotResponse.MatchedMarketsEntry + 3, // 62: poolrpc.NodeRating.node_tier:type_name -> poolrpc.NodeTier + 66, // 63: poolrpc.ServerNodeRatingResponse.node_ratings:type_name -> poolrpc.NodeRating + 64, // 64: poolrpc.BatchSnapshotsResponse.batches:type_name -> poolrpc.BatchSnapshotResponse + 85, // 65: poolrpc.MarketInfo.num_asks:type_name -> poolrpc.MarketInfo.TierValue + 85, // 66: poolrpc.MarketInfo.num_bids:type_name -> poolrpc.MarketInfo.TierValue + 85, // 67: poolrpc.MarketInfo.ask_open_interest_units:type_name -> poolrpc.MarketInfo.TierValue + 85, // 68: poolrpc.MarketInfo.bid_open_interest_units:type_name -> poolrpc.MarketInfo.TierValue + 86, // 69: poolrpc.MarketInfoResponse.markets:type_name -> poolrpc.MarketInfoResponse.MarketsEntry + 24, // 70: poolrpc.OrderMatchReject.RejectedOrdersEntry.value:type_name -> poolrpc.OrderReject + 25, // 71: poolrpc.OrderMatchSign.ChannelInfosEntry.value:type_name -> poolrpc.ChannelInfo + 37, // 72: poolrpc.MatchedMarket.MatchedOrdersEntry.value:type_name -> poolrpc.MatchedOrder + 37, // 73: poolrpc.OrderMatchPrepare.MatchedOrdersEntry.value:type_name -> poolrpc.MatchedOrder + 31, // 74: poolrpc.OrderMatchPrepare.MatchedMarketsEntry.value:type_name -> poolrpc.MatchedMarket + 5, // 75: poolrpc.TermsResponse.LeaseDurationBucketsEntry.value:type_name -> poolrpc.DurationBucketState + 37, // 76: poolrpc.RelevantBatch.MatchedOrdersEntry.value:type_name -> poolrpc.MatchedOrder + 31, // 77: poolrpc.RelevantBatch.MatchedMarketsEntry.value:type_name -> poolrpc.MatchedMarket + 63, // 78: poolrpc.BatchSnapshotResponse.MatchedMarketsEntry.value:type_name -> poolrpc.MatchedMarketSnapshot + 3, // 79: poolrpc.MarketInfo.TierValue.tier:type_name -> poolrpc.NodeTier + 71, // 80: poolrpc.MarketInfoResponse.MarketsEntry.value:type_name -> poolrpc.MarketInfo + 11, // 81: poolrpc.ChannelAuctioneer.ReserveAccount:input_type -> poolrpc.ReserveAccountRequest + 13, // 82: poolrpc.ChannelAuctioneer.InitAccount:input_type -> poolrpc.ServerInitAccountRequest + 48, // 83: poolrpc.ChannelAuctioneer.ModifyAccount:input_type -> poolrpc.ServerModifyAccountRequest + 15, // 84: poolrpc.ChannelAuctioneer.SubmitOrder:input_type -> poolrpc.ServerSubmitOrderRequest + 17, // 85: poolrpc.ChannelAuctioneer.CancelOrder:input_type -> poolrpc.ServerCancelOrderRequest + 50, // 86: poolrpc.ChannelAuctioneer.OrderState:input_type -> poolrpc.ServerOrderStateRequest + 19, // 87: poolrpc.ChannelAuctioneer.SubscribeBatchAuction:input_type -> poolrpc.ClientAuctionMessage + 19, // 88: poolrpc.ChannelAuctioneer.SubscribeSidecar:input_type -> poolrpc.ClientAuctionMessage + 52, // 89: poolrpc.ChannelAuctioneer.Terms:input_type -> poolrpc.TermsRequest + 54, // 90: poolrpc.ChannelAuctioneer.RelevantBatchSnapshot:input_type -> poolrpc.RelevantBatchRequest + 62, // 91: poolrpc.ChannelAuctioneer.BatchSnapshot:input_type -> poolrpc.BatchSnapshotRequest + 65, // 92: poolrpc.ChannelAuctioneer.NodeRating:input_type -> poolrpc.ServerNodeRatingRequest + 68, // 93: poolrpc.ChannelAuctioneer.BatchSnapshots:input_type -> poolrpc.BatchSnapshotsRequest + 70, // 94: poolrpc.ChannelAuctioneer.MarketInfo:input_type -> poolrpc.MarketInfoRequest + 12, // 95: poolrpc.ChannelAuctioneer.ReserveAccount:output_type -> poolrpc.ReserveAccountResponse + 14, // 96: poolrpc.ChannelAuctioneer.InitAccount:output_type -> poolrpc.ServerInitAccountResponse + 49, // 97: poolrpc.ChannelAuctioneer.ModifyAccount:output_type -> poolrpc.ServerModifyAccountResponse + 16, // 98: poolrpc.ChannelAuctioneer.SubmitOrder:output_type -> poolrpc.ServerSubmitOrderResponse + 18, // 99: poolrpc.ChannelAuctioneer.CancelOrder:output_type -> poolrpc.ServerCancelOrderResponse + 51, // 100: poolrpc.ChannelAuctioneer.OrderState:output_type -> poolrpc.ServerOrderStateResponse + 28, // 101: poolrpc.ChannelAuctioneer.SubscribeBatchAuction:output_type -> poolrpc.ServerAuctionMessage + 28, // 102: poolrpc.ChannelAuctioneer.SubscribeSidecar:output_type -> poolrpc.ServerAuctionMessage + 53, // 103: poolrpc.ChannelAuctioneer.Terms:output_type -> poolrpc.TermsResponse + 55, // 104: poolrpc.ChannelAuctioneer.RelevantBatchSnapshot:output_type -> poolrpc.RelevantBatch + 64, // 105: poolrpc.ChannelAuctioneer.BatchSnapshot:output_type -> poolrpc.BatchSnapshotResponse + 67, // 106: poolrpc.ChannelAuctioneer.NodeRating:output_type -> poolrpc.ServerNodeRatingResponse + 69, // 107: poolrpc.ChannelAuctioneer.BatchSnapshots:output_type -> poolrpc.BatchSnapshotsResponse + 72, // 108: poolrpc.ChannelAuctioneer.MarketInfo:output_type -> poolrpc.MarketInfoResponse + 95, // [95:109] is the sub-list for method output_type + 81, // [81:95] is the sub-list for method input_type + 81, // [81:81] is the sub-list for extension type_name + 81, // [81:81] is the sub-list for extension extendee + 0, // [0:81] is the sub-list for field type_name } func init() { file_auctioneer_proto_init() } @@ -7184,7 +7270,7 @@ func file_auctioneer_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_auctioneer_proto_rawDesc, - NumEnums: 10, + NumEnums: 11, NumMessages: 76, NumExtensions: 0, NumServices: 1, diff --git a/auctioneerrpc/auctioneer.proto b/auctioneerrpc/auctioneer.proto index 3ca3a84..21b23ad 100644 --- a/auctioneerrpc/auctioneer.proto +++ b/auctioneerrpc/auctioneer.proto @@ -345,6 +345,13 @@ enum ChannelType { // The channel uses an anchor-based commitment. ANCHORS = 1; + + /* + The channel build upon the anchor-based commitment and requires an + additional CLTV of the channel lease maturity on any commitment and HTLC + outputs that pay directly to the channel initiator (the seller). + */ + SCRIPT_ENFORCED_LEASE = 2; } message ChannelInfo { @@ -545,6 +552,13 @@ message OrderMatchPrepare { within and the discovered market clearing price. */ map matched_markets = 10; + + /* + The earliest absolute height in the chain in which the batch transaction can + be found within. This will be used by traders to base off their absolute + channel lease maturity height. + */ + uint32 batch_height_hint = 11; } message OrderMatchSignBegin { @@ -565,11 +579,8 @@ message OrderMatchFinalize { */ bytes batch_txid = 2; - /* - The current block height at the time the batch transaction was published to - the network. - */ - uint32 height_hint = 3; + // Don't re-use, this was a field that was removed. + reserved 3; } message SubscribeError { @@ -783,6 +794,24 @@ message AccountDiff { bytes trader_key = 4; } +enum OrderChannelType { + // Used to set defaults when a trader doesn't specify a channel type. + ORDER_CHANNEL_TYPE_UNKNOWN = 0; + + /* + The channel type will vary per matched channel based on the features shared + between its participants. + */ + ORDER_CHANNEL_TYPE_PEER_DEPENDENT = 1; + + /* + A channel type that builds upon the anchors commitment format to enforce + channel lease maturities in the commitment and HTLC outputs that pay to the + channel initiator/seller. + */ + ORDER_CHANNEL_TYPE_SCRIPT_ENFORCED = 2; +} + message ServerOrder { /* The trader's account key of the account to use for the order. @@ -843,7 +872,7 @@ message ServerOrder { /* The type of the channel that should be opened. */ - uint32 chan_type = 12; + OrderChannelType channel_type = 12; /* Maximum fee rate the trader is willing to pay for the batch transaction, @@ -1202,7 +1231,7 @@ message AskSnapshot { uint32 rate_fixed = 3; // The channel type to be created. - uint32 chan_type = 4; + OrderChannelType chan_type = 4; } message BidSnapshot { // The version of the order. @@ -1215,7 +1244,7 @@ message BidSnapshot { uint32 rate_fixed = 3; // The channel type to be created. - uint32 chan_type = 4; + OrderChannelType chan_type = 4; } message MatchedOrderSnapshot { // The full ask order that was matched. diff --git a/chaninfo/channel_info.go b/chaninfo/channel_info.go index aa322c6..16be196 100644 --- a/chaninfo/channel_info.go +++ b/chaninfo/channel_info.go @@ -152,7 +152,8 @@ func isSupportedBackupVersion(backup *chanbackup.Single) bool { switch backup.Version { case chanbackup.TweaklessCommitVersion, chanbackup.AnchorsCommitVersion, - chanbackup.AnchorsZeroFeeHtlcTxCommitVersion: + chanbackup.AnchorsZeroFeeHtlcTxCommitVersion, + chanbackup.ScriptEnforcedLeaseVersion: return true default: diff --git a/channel_acceptor.go b/channel_acceptor.go index 2d71ab5..cc472c9 100644 --- a/channel_acceptor.go +++ b/channel_acceptor.go @@ -7,6 +7,7 @@ import ( "github.com/lightninglabs/lndclient" "github.com/lightninglabs/pool/order" + "github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwire" ) @@ -139,5 +140,39 @@ func (s *ChannelAcceptor) acceptChannel(_ context.Context, }, nil } + switch expectedChanBid.ChannelType { + // The bid doesn't have specific requirements for the channel type. + case order.ChannelTypePeerDependent: + break + + // The bid expects a channel type that enforces the channel lease + // maturity in its output scripts. + case order.ChannelTypeScriptEnforced: + if req.CommitmentType == nil { + return &lndclient.AcceptorResponse{ + Accept: false, + Error: "expected explicit channel negotiation", + }, nil + } + + switch *req.CommitmentType { + case lnwallet.CommitmentTypeScriptEnforcedLease: + default: + return &lndclient.AcceptorResponse{ + Accept: false, + Error: "expected script enforced channel " + + "lease commitment type", + }, nil + } + + default: + log.Warnf("Unhandled channel type %v for bid %v", + expectedChanBid.ChannelType, expectedChanBid.Nonce()) + return &lndclient.AcceptorResponse{ + Accept: false, + Error: "internal error", + }, nil + } + return &lndclient.AcceptorResponse{Accept: true}, nil } diff --git a/clientdb/order.go b/clientdb/order.go index e675c74..434fe31 100644 --- a/clientdb/order.go +++ b/clientdb/order.go @@ -22,6 +22,10 @@ const ( // bidSidecarTicketType is the tlv type we use to store the sidecar // ticket on bid orders. bidSidecarTicketType tlv.Type = 2 + + // orderChannelType is the tlv type we use to store the desired channel + // type resulting from a matched order. + orderChannelType tlv.Type = 3 ) var ( @@ -637,6 +641,7 @@ func deserializeOrderTlvData(r io.Reader, o order.Order) error { var ( selfChanBalance uint64 sidecarTicket []byte + channelType uint8 ) // We'll add records for all possible additional order data fields here @@ -647,6 +652,7 @@ func deserializeOrderTlvData(r io.Reader, o order.Order) error { bidSelfChanBalanceType, &selfChanBalance, ), tlv.MakePrimitiveRecord(bidSidecarTicketType, &sidecarTicket), + tlv.MakePrimitiveRecord(orderChannelType, &channelType), ) if err != nil { return err @@ -679,6 +685,10 @@ func deserializeOrderTlvData(r io.Reader, o order.Order) error { } } + if t, ok := parsedTypes[orderChannelType]; ok && t == nil { + o.Details().ChannelType = order.ChannelType(channelType) + } + return nil } @@ -713,6 +723,11 @@ func serializeOrderTlvData(w io.Writer, o order.Order) error { } } + channelType := uint8(o.Details().ChannelType) + tlvRecords = append(tlvRecords, tlv.MakePrimitiveRecord( + orderChannelType, &channelType, + )) + tlvStream, err := tlv.NewStream(tlvRecords...) if err != nil { return err diff --git a/clientdb/order_test.go b/clientdb/order_test.go index 1e551e2..2c9b079 100644 --- a/clientdb/order_test.go +++ b/clientdb/order_test.go @@ -42,6 +42,7 @@ func TestSubmitOrder(t *testing.T) { }, } o.Details().MinUnitsMatch = 10 + o.Details().ChannelType = order.ChannelTypeScriptEnforced err := store.SubmitOrder(o) if err != nil { t.Fatalf("unable to store order: %v", err) @@ -100,6 +101,7 @@ func TestUpdateOrders(t *testing.T) { MinNodeTier: 3, } o1.Details().MinUnitsMatch = 10 + o1.Details().ChannelType = order.ChannelTypeScriptEnforced err := store.SubmitOrder(o1) if err != nil { t.Fatalf("unable to store order: %v", err) @@ -107,6 +109,7 @@ func TestUpdateOrders(t *testing.T) { o2 := &order.Ask{ Kit: *dummyOrder(500000, 1337), } + o2.Details().ChannelType = order.ChannelTypeScriptEnforced err = store.SubmitOrder(o2) if err != nil { t.Fatalf("unable to store order: %v", err) diff --git a/cmd/pool/order.go b/cmd/pool/order.go index 44db3e7..ff8347a 100644 --- a/cmd/pool/order.go +++ b/cmd/pool/order.go @@ -10,6 +10,7 @@ import ( "github.com/btcsuite/btcutil" "github.com/lightninglabs/pool/auctioneer" + "github.com/lightninglabs/pool/auctioneerrpc" "github.com/lightninglabs/pool/order" "github.com/lightninglabs/pool/poolrpc" "github.com/lightninglabs/pool/sidecar" @@ -20,6 +21,9 @@ import ( const ( defaultAskMaxDuration = 2016 defaultBidMinDuration = 2016 + + channelTypePeerDependent = "legacy" + channelTypeScriptEnforced = "script-enforced" ) // Default max batch fee rate to 100 sat/vByte. @@ -105,6 +109,17 @@ var sharedFlags = []cli.Flag{ "the batch transaction", Value: defaultMaxBatchFeeRateSatPerVByte, }, + cli.StringFlag{ + Name: "channel_type", + Usage: fmt.Sprintf("the type of channel resulting from the "+ + "order being matched (%q, %q)", + channelTypePeerDependent, + channelTypeScriptEnforced), + // TODO: Switch to script enforcement by default once we can + // enforce the lnd release supporting script enforced channels + // as the minimalCompatibleVersion. + Value: channelTypePeerDependent, + }, } // promptForConfirmation continuously prompts the user for the message until @@ -229,6 +244,20 @@ func parseCommonParams(ctx *cli.Context, blockDuration uint32) (*poolrpc.Order, params.RateFixed = rateFixed + // Determine the appropriate channel type that should be opened upon an + // order match. + channelType := ctx.String("channel_type") + switch channelType { + case "": + break + case channelTypePeerDependent: + params.ChannelType = auctioneerrpc.OrderChannelType_ORDER_CHANNEL_TYPE_PEER_DEPENDENT + case channelTypeScriptEnforced: + params.ChannelType = auctioneerrpc.OrderChannelType_ORDER_CHANNEL_TYPE_SCRIPT_ENFORCED + default: + return nil, fmt.Errorf("unknown channel type %q", channelType) + } + return params, nil } @@ -306,7 +335,7 @@ func ordersSubmitAsk(ctx *cli.Context) error { // nolint: dupl ask := &poolrpc.Ask{ LeaseDurationBlocks: uint32(ctx.Uint64("lease_duration_blocks")), - Version: uint32(order.VersionSelfChanBalance), + Version: uint32(order.VersionChannelType), } params, err := parseCommonParams(ctx, ask.LeaseDurationBlocks) @@ -462,7 +491,7 @@ func parseBaseBid(ctx *cli.Context) (*poolrpc.Bid, *sidecar.Ticket, error) { bid := &poolrpc.Bid{ LeaseDurationBlocks: uint32(ctx.Uint64("lease_duration_blocks")), - Version: uint32(order.VersionSidecarChannel), + Version: uint32(order.VersionChannelType), MinNodeTier: nodeTier, } diff --git a/funding/manager.go b/funding/manager.go index bbd556a..350ce4d 100644 --- a/funding/manager.go +++ b/funding/manager.go @@ -283,8 +283,8 @@ func (m *Manager) SubscribePendingOpenChan() (*subscribe.Client, error) { // the maker or taker to properly make a channel that stems off the main batch // funding transaction. func (m *Manager) deriveFundingShim(ourOrder order.Order, - matchedOrder *order.MatchedOrder, - batchTx *wire.MsgTx) (*lnrpc.FundingShim, [32]byte, error) { + matchedOrder *order.MatchedOrder, batchTx *wire.MsgTx, + batchHeightHint uint32) (*lnrpc.FundingShim, [32]byte, error) { log.Infof("Registering funding shim for Order(type=%v, amt=%v, "+ "nonce=%v", ourOrder.Type(), @@ -315,6 +315,15 @@ func (m *Manager) deriveFundingShim(ourOrder order.Order, selfChanBalance = matchedOrder.Order.(*order.Bid).SelfChanBalance } + // If either order requires script enforcement, our thaw height needs to + // be an absolute height instead of a relative one. + switch { + case ourOrder.Details().ChannelType == order.ChannelTypeScriptEnforced: + fallthrough + case matchedOrder.Order.Details().ChannelType == order.ChannelTypeScriptEnforced: + thawHeight += batchHeightHint + } + pendingChanID := order.PendingChanKey( askNonce, bidNonce, ) @@ -398,12 +407,13 @@ func (m *Manager) deriveFundingShim(ourOrder order.Order, // side of a new matched order. To prepare ourselves for their incoming funding // request, we'll register a shim with all the expected parameters. func (m *Manager) registerFundingShim(ourBid *order.Bid, - matchedOrder *order.MatchedOrder, batchTx *wire.MsgTx) error { + matchedOrder *order.MatchedOrder, batchTx *wire.MsgTx, + batchHeightHint uint32) error { ctxb := context.Background() fundingShim, pendingChanID, err := m.deriveFundingShim( - ourBid, matchedOrder, batchTx, + ourBid, matchedOrder, batchTx, batchHeightHint, ) if err != nil { return err @@ -556,6 +566,7 @@ func (m *Manager) PrepChannelFunding(batch *order.Batch, // from the asker. err := m.registerFundingShim( ourOrderBid, matchedOrder, batch.BatchTX, + batch.HeightHint, ) if err != nil { return fmt.Errorf("unable to register funding "+ @@ -639,6 +650,7 @@ func (m *Manager) BatchChannelSetup( for _, matchedOrder := range matchedOrders { fundingShim, _, err := m.deriveFundingShim( ourOrder, matchedOrder, batch.BatchTX, + batch.HeightHint, ) if err != nil { return nil, err @@ -678,6 +690,13 @@ func (m *Manager) BatchChannelSetup( // * also other params to set as well chanAmt := matchedOrder.UnitsFilled.ToSatoshis() chanAmt += matchedOrderBid.SelfChanBalance + var commitmentType lnrpc.CommitmentType + switch { + case ourOrder.Details().ChannelType == order.ChannelTypeScriptEnforced: + fallthrough + case matchedOrderBid.Details().ChannelType == order.ChannelTypeScriptEnforced: + commitmentType = lnrpc.CommitmentType_SCRIPT_ENFORCED_LEASE + } fundingReq := &lnrpc.OpenChannelRequest{ NodePubkey: matchedOrder.NodeKey[:], LocalFundingAmount: int64(chanAmt), @@ -685,6 +704,7 @@ func (m *Manager) BatchChannelSetup( PushSat: int64( matchedOrderBid.SelfChanBalance, ), + CommitmentType: commitmentType, } chanStream, err := m.cfg.BaseClient.OpenChannel( setupCtx, fundingReq, @@ -827,6 +847,7 @@ func (m *Manager) SidecarBatchChannelSetup(batch *order.Batch, for _, matchedOrder := range matchedOrders { fundingShim, _, err := m.deriveFundingShim( ourOrder, matchedOrder, batch.BatchTX, + batch.HeightHint, ) if err != nil { return nil, err diff --git a/funding/manager_test.go b/funding/manager_test.go index 32e7c62..9925498 100644 --- a/funding/manager_test.go +++ b/funding/manager_test.go @@ -578,6 +578,7 @@ func TestDeriveFundingShim(t *testing.T) { batchTx = &wire.MsgTx{ TxOut: []*wire.TxOut{{}}, } + batchHeightHint uint32 = 1337 ) askKit := order.NewKit(askNonce) @@ -601,7 +602,7 @@ func TestDeriveFundingShim(t *testing.T) { matchedAsk.MultiSigKey[:], int64(4*order.BaseSupplyUnit), ) shim, pendingChanID, err := h.mgr.deriveFundingShim( - bid, matchedAsk, batchTx, + bid, matchedAsk, batchTx, batchHeightHint, ) require.NoError(t, err) require.Equal(t, order.PendingChanKey(askNonce, bidNonce), pendingChanID) @@ -639,7 +640,7 @@ func TestDeriveFundingShim(t *testing.T) { matchedAsk.MultiSigKey[:], int64(4*order.BaseSupplyUnit), ) shim, pendingChanID, err = h.mgr.deriveFundingShim( - bid, matchedAsk, batchTx, + bid, matchedAsk, batchTx, batchHeightHint, ) require.NoError(t, err) require.Equal(t, order.PendingChanKey(askNonce, bidNonce), pendingChanID) diff --git a/order/batch.go b/order/batch.go index 7822f43..b3db8e6 100644 --- a/order/batch.go +++ b/order/batch.go @@ -202,6 +202,11 @@ type Batch struct { // FeeRebate is the rebate that was offered to the trader if another // batch participant wanted to pay more fees for a faster confirmation. FeeRebate btcutil.Amount + + // HeightHint represents the earliest absolute height in the chain in + // which the batch transaction can be found within. This will be used by + // traders to base off their absolute channel lease maturity height. + HeightHint uint32 } // Fetcher describes a function that's able to fetch the latest version of an @@ -304,7 +309,7 @@ type BatchSignature map[[33]byte]*btcec.Signature type BatchVerifier interface { // Verify makes sure the batch prepared by the server is correct and // can be accepted by the trader. - Verify(*Batch) error + Verify(_ *Batch, bestHeight uint32) error } // BatchSigner is an interface that can sign for a trader's account inputs in @@ -320,7 +325,7 @@ type BatchSigner interface { type BatchStorer interface { // StorePendingBatch makes sure all changes executed by a pending batch // are correctly and atomically stored to the database. - StorePendingBatch(_ *Batch, bestHeight uint32) error + StorePendingBatch(_ *Batch) error // MarkBatchComplete marks a pending batch as complete, allowing a // trader to participate in a new batch. diff --git a/order/batch_storer.go b/order/batch_storer.go index 2854385..8efa5d2 100644 --- a/order/batch_storer.go +++ b/order/batch_storer.go @@ -9,13 +9,6 @@ import ( "github.com/lightninglabs/pool/auctioneerrpc" ) -const ( - // heightHintPadding is the padding we add to our best known height to - // avoid any discrepancies in block propagation between us and the - // auctioneer. - heightHintPadding = -3 -) - // batchStorer is a type that implements BatchStorer and can persist a batch to // the local trader database. type batchStorer struct { @@ -30,7 +23,7 @@ type batchStorer struct { // modifications will be applied atomically as a result of MarkBatchComplete. // // NOTE: This method is part of the BatchStorer interface. -func (s *batchStorer) StorePendingBatch(batch *Batch, bestHeight uint32) error { +func (s *batchStorer) StorePendingBatch(batch *Batch) error { // Prepare the order modifications first. orders := make([]Nonce, len(batch.MatchedOrders)) orderModifiers := make([][]Modifier, len(orders)) @@ -80,13 +73,6 @@ func (s *batchStorer) StorePendingBatch(batch *Batch, bestHeight uint32) error { // Next create our account modifiers. accounts := make([]*account.Account, len(batch.AccountDiffs)) accountModifiers := make([][]account.Modifier, len(accounts)) - - // Each account will have the same height hint applied. - heightHint := int64(bestHeight) + heightHintPadding - if heightHint < 0 { - heightHint = 0 - } - for idx, diff := range batch.AccountDiffs { // Get the current state of the account first so we can create // a proper diff. @@ -135,7 +121,7 @@ func (s *batchStorer) StorePendingBatch(batch *Batch, bestHeight uint32) error { modifiers, account.ValueModifier(diff.EndingBalance), ) modifiers = append( - modifiers, account.HeightHintModifier(uint32(heightHint)), + modifiers, account.HeightHintModifier(batch.HeightHint), ) modifiers = append( modifiers, account.LatestTxModifier(batch.BatchTX), diff --git a/order/batch_storer_test.go b/order/batch_storer_test.go index 63ca7c3..bbae66e 100644 --- a/order/batch_storer_test.go +++ b/order/batch_storer_test.go @@ -15,7 +15,6 @@ import ( func TestBatchStorer(t *testing.T) { t.Parallel() - const bestHeight = 1337 var ( storeMock = newMockStore() storer = &batchStorer{ @@ -106,6 +105,7 @@ func TestBatchStorer(t *testing.T) { AccountDiffs: accountDiffs, BatchTX: batchTx, BatchTxFeeRate: chainfee.FeePerKwFloor, + HeightHint: 1337, } // Create the starting database state now. @@ -120,7 +120,7 @@ func TestBatchStorer(t *testing.T) { } // Pass the assembled batch to the storer now. - err := storer.StorePendingBatch(batch, bestHeight) + err := storer.StorePendingBatch(batch) if err != nil { t.Fatalf("error storing batch: %v", err) } @@ -166,10 +166,9 @@ func TestBatchStorer(t *testing.T) { t.Fatalf("invalid account expiry, got %d wanted %d", smallAcct.Value, 144) } - heightHint := uint32(bestHeight + heightHintPadding) - if smallAcct.HeightHint != heightHint { + if smallAcct.HeightHint != batch.HeightHint { t.Fatalf("invalid account height hint, got %d wanted %d", - smallAcct.Value, heightHint) + smallAcct.HeightHint, batch.HeightHint) } if bigAcct.State != account.StatePendingBatch { @@ -184,9 +183,9 @@ func TestBatchStorer(t *testing.T) { t.Fatalf("invalid account expiry, got %d wanted %d", bigAcct.Value, 144) } - if bigAcct.HeightHint != heightHint { + if bigAcct.HeightHint != batch.HeightHint { t.Fatalf("invalid account height hint, got %d wanted %d", - bigAcct.Value, heightHint) + bigAcct.HeightHint, batch.HeightHint) } } diff --git a/order/batch_verifier.go b/order/batch_verifier.go index 266f14e..dc3b679 100644 --- a/order/batch_verifier.go +++ b/order/batch_verifier.go @@ -15,6 +15,11 @@ const ( // deriveKeyTimeout is the number of seconds we allow the wallet to take // to derive a key. deriveKeyTimeout = 10 * time.Second + + // heightHintPadding is the padding we subtract/add to our best known + // height to avoid any discrepancies in block propagation between us and + // the auctioneer. + heightHintPadding = 3 ) var ( @@ -68,7 +73,7 @@ type batchVerifier struct { // accepted by the trader. // // NOTE: This method is part of the BatchVerifier interface. -func (v *batchVerifier) Verify(batch *Batch) error { +func (v *batchVerifier) Verify(batch *Batch, bestHeight uint32) error { // First of all, make sure we're using the same batch validation version // as the server. Otherwise we bail out of the batch. This should // already be handled when the client connects/authenticates. But @@ -77,6 +82,13 @@ func (v *batchVerifier) Verify(batch *Batch) error { return ErrVersionMismatch } + // Reject the batch if we're too far in the past or future compared to + // the auctioneer. + if bestHeight < batch.HeightHint-heightHintPadding || + bestHeight > batch.HeightHint+heightHintPadding { + return ErrInvalidBatchHeightHint + } + // First go through all orders that were matched for us. We'll make sure // we know of the order and that the numbers check out on a high level. tallies := make(map[[33]byte]*AccountTally) diff --git a/order/batch_verifier_test.go b/order/batch_verifier_test.go index 8a77d22..de3ef0b 100644 --- a/order/batch_verifier_test.go +++ b/order/batch_verifier_test.go @@ -36,6 +36,7 @@ var ( func TestBatchVerifier(t *testing.T) { t.Parallel() + const bestHeight = 1337 var ( walletKit = test.NewMockWalletKit() batchID BatchID @@ -61,7 +62,7 @@ func TestBatchVerifier(t *testing.T) { doVerify: func(v BatchVerifier, a *Ask, b1, b2 *Bid, b *Batch) error { - return v.Verify(&Batch{Version: 999}) + return v.Verify(&Batch{Version: 999}, bestHeight) }, }, { @@ -72,7 +73,7 @@ func TestBatchVerifier(t *testing.T) { arr := make([]*MatchedOrder, 0) b.MatchedOrders[Nonce{99, 99}] = arr - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -87,7 +88,7 @@ func TestBatchVerifier(t *testing.T) { Order: a, }, ) - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -97,7 +98,7 @@ func TestBatchVerifier(t *testing.T) { b *Batch) error { b.MatchedOrders[a.nonce][0].NodeKey = nodePubkey - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -107,7 +108,7 @@ func TestBatchVerifier(t *testing.T) { b *Batch) error { a.LeaseDuration = 100 - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -117,7 +118,7 @@ func TestBatchVerifier(t *testing.T) { b *Batch) error { a.FixedRate = 20000 - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -128,7 +129,7 @@ func TestBatchVerifier(t *testing.T) { delete(b.MatchedOrders, a.nonce) b2.LeaseDuration = 5000 - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -139,7 +140,7 @@ func TestBatchVerifier(t *testing.T) { delete(b.MatchedOrders, a.nonce) a.FixedRate = b1.FixedRate + 1 - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -149,7 +150,7 @@ func TestBatchVerifier(t *testing.T) { b *Batch) error { b.BatchTX.TxOut[0].Value = 123 - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -159,7 +160,7 @@ func TestBatchVerifier(t *testing.T) { b *Batch) error { b.BatchTX.TxOut[0].PkScript = []byte{99, 88} - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -171,7 +172,7 @@ func TestBatchVerifier(t *testing.T) { b.BatchTX.TxOut[0].Value = 900_000 b.MatchedOrders[a.nonce][0].UnitsFilled = 9 b.MatchedOrders[b1.nonce][0].UnitsFilled = 9 - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -181,7 +182,7 @@ func TestBatchVerifier(t *testing.T) { b *Batch) error { a.MinUnitsMatch = b1.MinUnitsMatch * 100 - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -191,7 +192,7 @@ func TestBatchVerifier(t *testing.T) { b *Batch) error { b.BatchTxFeeRate *= 2 - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -202,7 +203,7 @@ func TestBatchVerifier(t *testing.T) { delete(b.MatchedOrders, a.nonce) b1.FixedRate = uint32(clearingPrice) - 1 - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -257,7 +258,7 @@ func TestBatchVerifier(t *testing.T) { // Verification should fail as the first match // has an ask with a price greater than the // clearing price. - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -267,7 +268,7 @@ func TestBatchVerifier(t *testing.T) { b *Batch) error { b.ExecutionFee = terms.NewLinearFeeSchedule(1, 1) - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -280,7 +281,7 @@ func TestBatchVerifier(t *testing.T) { b.BatchTX.TxOut[2].Value += 2220 b.AccountDiffs[0].EndingBalance += 2220 b.AccountDiffs[1].EndingBalance += 2220 - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -294,7 +295,7 @@ func TestBatchVerifier(t *testing.T) { b.AccountDiffs[0].EndingBalance += 2220 b.AccountDiffs[1].EndingBalance += 2220 b.AccountDiffs[1].EndingState = stateRecreated - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -306,7 +307,7 @@ func TestBatchVerifier(t *testing.T) { b *Batch) error { b1.SelfChanBalance = 100 - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -317,7 +318,7 @@ func TestBatchVerifier(t *testing.T) { b.BatchTX.TxOut[0].Value += 100 b1.SelfChanBalance = 100 - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, { @@ -326,7 +327,7 @@ func TestBatchVerifier(t *testing.T) { doVerify: func(v BatchVerifier, a *Ask, b1, b2 *Bid, b *Batch) error { - return v.Verify(b) + return v.Verify(b, bestHeight) }, }, } @@ -505,6 +506,7 @@ func TestBatchVerifier(t *testing.T) { }, BatchTX: batchTx, BatchTxFeeRate: chainfee.FeePerKwFloor, + HeightHint: bestHeight, } // Create the starting database state now. diff --git a/order/interface.go b/order/interface.go index fbd7a82..46626b4 100644 --- a/order/interface.go +++ b/order/interface.go @@ -59,6 +59,11 @@ const ( // accounting or whatever) can opt out by explicitly submitting their // ask orders with a version previous to this one. VersionSidecarChannel Version = 4 + + // VersionChannelType is the order version that added use of the channel + // type field. Only orders with this version are allowed to use the + // channel type field. + VersionChannelType Version = 5 ) // Type is the type of an order. We don't use iota for the constants due to the @@ -216,6 +221,24 @@ func (s MatchState) String() string { } } +// ChannelType is a numerical type that represents all possible channel types +// that are supported to be opened through the auction process. +type ChannelType uint8 + +// NOTE: We avoid the use of iota as this type is stored on disk. +const ( + // ChannelTypePeerDependent denotes that the resulting channel type from + // an order match will depend on the shared features between its + // participants. + ChannelTypePeerDependent ChannelType = 0 + + // ChannelTypeScriptEnforced represents a new channel type that builds + // upon the anchors commitment format to enforce the maturity of a + // leased channel in the commitment and HTLC outputs that pay directly + // to the channel initiator. + ChannelTypeScriptEnforced ChannelType = 1 +) + var ( // ErrInsufficientBalance is the error that is returned if an account // has insufficient balance to perform a requested action. @@ -305,6 +328,10 @@ type Kit struct { // MinUnitsMatch signals the minimum number of units that must be // matched against an order. MinUnitsMatch SupplyUnit + + // ChannelType denotes the channel type that must be used for the + // resulting matched channels. + ChannelType ChannelType } // Nonce is the unique identifier of each order and MUST be created by hashing a @@ -391,6 +418,16 @@ func (a *Ask) Digest() ([sha256.Size]byte, error) { return result, err } + case VersionChannelType: + err := lnwire.WriteElements( + &msg, a.nonce[:], uint32(a.Version), a.FixedRate, + a.Amt, a.LeaseDuration, uint64(a.MaxBatchFeeRate), + uint32(a.MinUnitsMatch), uint8(a.ChannelType), + ) + if err != nil { + return result, err + } + default: return result, fmt.Errorf("unknown version %d", a.Kit.Version) } @@ -605,6 +642,23 @@ func (b *Bid) Digest() ([sha256.Size]byte, error) { return result, err } + case VersionChannelType: + var isSidecar uint8 + if b.SidecarTicket != nil { + isSidecar = 1 + } + + err := lnwire.WriteElements( + &msg, b.nonce[:], uint32(b.Version), b.FixedRate, + b.Amt, b.LeaseDuration, uint64(b.MaxBatchFeeRate), + uint32(b.MinNodeTier), uint32(b.MinUnitsMatch), + uint64(b.SelfChanBalance), isSidecar, + uint8(b.ChannelType), + ) + if err != nil { + return result, err + } + default: return result, fmt.Errorf("unknown version %d", b.Kit.Version) } diff --git a/order/manager.go b/order/manager.go index 7378036..ca0bd00 100644 --- a/order/manager.go +++ b/order/manager.go @@ -2,6 +2,7 @@ package order import ( "context" + "errors" "fmt" "net" "strconv" @@ -35,6 +36,12 @@ var ( // implement the same batch verification version as the server. ErrVersionMismatch = fmt.Errorf("version %d mismatches server version", CurrentBatchVersion) + + // ErrInvalidBatchHeightHint is an error returned by a trader upon + // verifying a batch when its proposed height hint is outside of the + // trader's acceptable range. + ErrInvalidBatchHeightHint = errors.New("proposed batch height hint is " + + "outside of acceptable range") ) // ManagerConfig contains all of the required dependencies for the Manager to @@ -299,10 +306,10 @@ func (m *Manager) validateOrder(order Order, acct *account.Account, } // OrderMatchValidate verifies an incoming batch is sane before accepting it. -func (m *Manager) OrderMatchValidate(batch *Batch) error { +func (m *Manager) OrderMatchValidate(batch *Batch, bestHeight uint32) error { // Make sure we have no objection to the current batch. Then store // it in case it ends up being the final version. - err := m.batchVerifier.Verify(batch) + err := m.batchVerifier.Verify(batch, bestHeight) if err != nil { // This error will lead to us sending an OrderMatchReject // message and canceling all funding shims we might already have @@ -330,13 +337,13 @@ func (m *Manager) PendingBatch() *Batch { // belong to the trader. Before sending off the signature to the auctioneer, // we'll also persist the batch to disk as pending to ensure we can recover // after a crash. -func (m *Manager) BatchSign(bestHeight uint32) (BatchSignature, error) { +func (m *Manager) BatchSign() (BatchSignature, error) { sig, err := m.batchSigner.Sign(m.pendingBatch) if err != nil { return nil, err } - err = m.batchStorer.StorePendingBatch(m.pendingBatch, bestHeight) + err = m.batchStorer.StorePendingBatch(m.pendingBatch) if err != nil { return nil, fmt.Errorf("unable to store batch: %v", err) } diff --git a/order/rpc_parse.go b/order/rpc_parse.go index 1e8a027..029f1cf 100644 --- a/order/rpc_parse.go +++ b/order/rpc_parse.go @@ -62,6 +62,25 @@ func ParseRPCOrder(version, leaseDuration uint32, } kit.MinUnitsMatch = SupplyUnit(details.MinUnitsMatch) + switch details.ChannelType { + // Default value, trader didn't specify a channel type. + case auctioneerrpc.OrderChannelType_ORDER_CHANNEL_TYPE_UNKNOWN: + // TODO: Switch to script enforcement by default once we can + // enforce the lnd release supporting script enforced channels + // as the minimalCompatibleVersion. + kit.ChannelType = ChannelTypePeerDependent + + case auctioneerrpc.OrderChannelType_ORDER_CHANNEL_TYPE_PEER_DEPENDENT: + kit.ChannelType = ChannelTypePeerDependent + + case auctioneerrpc.OrderChannelType_ORDER_CHANNEL_TYPE_SCRIPT_ENFORCED: + kit.ChannelType = ChannelTypeScriptEnforced + + default: + return nil, fmt.Errorf("unhandled channel type %v", + details.ChannelType) + } + return kit, nil } @@ -169,6 +188,22 @@ func ParseRPCServerOrder(version uint32, details *auctioneerrpc.ServerOrder, } copy(multiSigKey[:], multiSigPubkey.SerializeCompressed()) + switch details.ChannelType { + // Default value, trader didn't specify a channel type. + case auctioneerrpc.OrderChannelType_ORDER_CHANNEL_TYPE_UNKNOWN: + kit.ChannelType = ChannelTypePeerDependent + + case auctioneerrpc.OrderChannelType_ORDER_CHANNEL_TYPE_PEER_DEPENDENT: + kit.ChannelType = ChannelTypePeerDependent + + case auctioneerrpc.OrderChannelType_ORDER_CHANNEL_TYPE_SCRIPT_ENFORCED: + kit.ChannelType = ChannelTypeScriptEnforced + + default: + return nil, nodeKey, nil, multiSigKey, + fmt.Errorf("unhandled channel type %v", details.ChannelType) + } + return kit, nodeKey, nodeAddrs, multiSigKey, nil } @@ -231,6 +266,7 @@ func ParseRPCBatch(prepareMsg *auctioneerrpc.OrderMatchPrepare) (*Batch, MatchedOrders: make(map[Nonce][]*MatchedOrder), BatchTX: &wire.MsgTx{}, ClearingPrices: make(map[uint32]FixedRatePremium), + HeightHint: prepareMsg.BatchHeightHint, } // Parse matched orders market by market. diff --git a/poolrpc/trader.pb.go b/poolrpc/trader.pb.go index b6bbf7e..effb707 100644 --- a/poolrpc/trader.pb.go +++ b/poolrpc/trader.pb.go @@ -2021,6 +2021,8 @@ type Order struct { Events []*OrderEvent `protobuf:"bytes,11,rep,name=events,proto3" json:"events,omitempty"` // The minimum number of order units that must be matched per order pair. MinUnitsMatch uint32 `protobuf:"varint,12,opt,name=min_units_match,json=minUnitsMatch,proto3" json:"min_units_match,omitempty"` + // The channel type to use for the resulting matched channels. + ChannelType auctioneerrpc.OrderChannelType `protobuf:"varint,13,opt,name=channel_type,json=channelType,proto3,enum=poolrpc.OrderChannelType" json:"channel_type,omitempty"` } func (x *Order) Reset() { @@ -2139,6 +2141,13 @@ func (x *Order) GetMinUnitsMatch() uint32 { return 0 } +func (x *Order) GetChannelType() auctioneerrpc.OrderChannelType { + if x != nil { + return x.ChannelType + } + return auctioneerrpc.OrderChannelType_ORDER_CHANNEL_TYPE_UNKNOWN +} + type Bid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4904,7 +4913,7 @@ var file_trader_proto_rawDesc = []byte{ 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x03, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1d, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9b, 0x04, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -4934,538 +4943,542 @@ var file_trader_proto_rawDesc = []byte{ 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x22, 0x87, 0x02, 0x0a, 0x03, 0x42, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x07, - 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x07, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x6f, - 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x52, 0x0b, - 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, - 0x65, 0x6c, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x65, 0x6c, 0x66, 0x43, 0x68, 0x61, 0x6e, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, 0x64, 0x65, 0x63, - 0x61, 0x72, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x7d, - 0x0a, 0x03, 0x41, 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, - 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe0, 0x01, - 0x0a, 0x11, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x61, 0x6d, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, - 0x78, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x74, 0x65, 0x46, - 0x69, 0x78, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, + 0x61, 0x74, 0x63, 0x68, 0x12, 0x3c, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x6f, 0x6f, + 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x87, 0x02, 0x0a, 0x03, 0x42, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6f, + 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x07, 0x64, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x3e, 0x0a, 0x1d, 0x6d, 0x61, 0x78, 0x5f, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, - 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x17, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, - 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, - 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x22, 0xf8, 0x01, 0x0a, 0x12, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, - 0x53, 0x61, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x72, 0x61, 0x74, - 0x65, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x61, 0x74, - 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x0b, 0x72, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x17, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, - 0x53, 0x61, 0x74, 0x12, 0x36, 0x0a, 0x18, 0x77, 0x6f, 0x72, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, - 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x77, 0x6f, 0x72, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x53, 0x61, 0x74, 0x22, 0xc2, 0x01, 0x0a, 0x0a, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x12, 0x3a, 0x0a, 0x0c, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, - 0x63, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x22, 0x9f, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x3a, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, - 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, - 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, - 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x6c, - 0x65, 0x64, 0x22, 0xcb, 0x01, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x34, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, - 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x74, 0x73, - 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, - 0x6e, 0x69, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, - 0x3f, 0x0a, 0x0d, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, - 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x17, 0x52, 0x65, - 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x41, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x50, 0x0a, 0x12, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x46, 0x65, 0x65, 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, - 0x65, 0x65, 0x22, 0xd6, 0x05, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0d, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, - 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x61, 0x6d, 0x74, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6d, 0x74, 0x53, 0x61, 0x74, 0x12, 0x36, 0x0a, 0x17, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x65, 0x61, 0x73, 0x65, - 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, - 0x6d, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x65, - 0x6d, 0x69, 0x75, 0x6d, 0x53, 0x61, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, - 0x53, 0x61, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, - 0x5f, 0x73, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x46, 0x65, 0x65, 0x53, 0x61, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x65, 0x61, 0x72, - 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x46, 0x69, 0x78, 0x65, 0x64, 0x52, 0x61, 0x74, - 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, - 0x12, 0x35, 0x0a, 0x17, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x14, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x3d, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x54, 0x69, 0x65, 0x72, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x6f, - 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0f, 0x73, 0x65, 0x6c, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x69, 0x64, - 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x48, 0x0a, 0x0d, 0x4c, - 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, - 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x0e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, - 0x12, 0x2f, 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x65, 0x61, - 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x74, 0x45, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x53, 0x61, - 0x74, 0x12, 0x2b, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x70, - 0x61, 0x69, 0x64, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x74, 0x50, 0x61, 0x69, 0x64, 0x53, 0x61, 0x74, 0x22, 0x0f, - 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x3c, 0x0a, 0x0e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x73, 0x61, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0xbb, 0x02, - 0x0a, 0x09, 0x4c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x62, - 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x61, 0x72, 0x6f, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x63, 0x61, 0x72, 0x6f, 0x6f, 0x6e, - 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, - 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x70, - 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x28, - 0x0a, 0x10, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, - 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x50, 0x61, 0x69, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x72, 0x6f, 0x75, 0x74, - 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, 0x61, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x46, 0x65, 0x65, 0x50, 0x61, 0x69, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x4c, - 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x92, 0x03, 0x0a, 0x15, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, - 0x0f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, - 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x6e, - 0x0a, 0x16, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, - 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, - 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x41, - 0x0a, 0x13, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x1a, 0x65, 0x0a, 0x19, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, + 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, + 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x52, 0x0b, 0x6d, 0x69, + 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x69, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x6c, + 0x66, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x65, 0x6c, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, + 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x7d, 0x0a, 0x03, + 0x41, 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x32, 0x0a, + 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe0, 0x01, 0x0a, 0x11, + 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6d, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x61, 0x6d, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x61, 0x74, 0x65, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x3e, 0x0a, 0x1d, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x6d, + 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, 0x61, + 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x75, 0x6e, + 0x69, 0x74, 0x73, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x6d, 0x69, 0x6e, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x22, 0xf8, + 0x01, 0x0a, 0x12, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, + 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x53, 0x61, + 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x72, 0x61, 0x74, 0x65, 0x50, + 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x61, 0x74, 0x65, 0x5f, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x72, + 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x17, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, + 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x53, 0x61, + 0x74, 0x12, 0x36, 0x0a, 0x18, 0x77, 0x6f, 0x72, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x65, 0x5f, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x14, 0x77, 0x6f, 0x72, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x53, 0x61, 0x74, 0x22, 0xc2, 0x01, 0x0a, 0x0a, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x12, 0x3a, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x9f, + 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x3a, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, + 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x6e, + 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, + 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, + 0x22, 0xcb, 0x01, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x34, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x5f, 0x66, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x69, + 0x74, 0x73, 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x3f, 0x0a, + 0x0d, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x18, + 0x0a, 0x16, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x17, 0x52, 0x65, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x14, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, + 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x41, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x50, + 0x0a, 0x12, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6f, + 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, + 0x65, 0x65, 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, + 0x22, 0xd6, 0x05, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x75, 0x74, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x6d, + 0x74, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6d, 0x74, 0x53, 0x61, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x45, 0x78, + 0x70, 0x69, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x5f, + 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x6d, 0x69, + 0x75, 0x6d, 0x53, 0x61, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x53, 0x61, + 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, + 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x46, + 0x65, 0x65, 0x53, 0x61, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, + 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x11, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x46, 0x69, 0x78, 0x65, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x12, 0x35, + 0x0a, 0x17, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x14, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x3d, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x11, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, + 0x69, 0x65, 0x72, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x6f, 0x64, 0x65, + 0x54, 0x69, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0f, 0x73, 0x65, 0x6c, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x48, 0x0a, 0x0d, 0x4c, 0x65, 0x61, + 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x0e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, + 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x2f, + 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x65, 0x61, 0x72, 0x6e, + 0x65, 0x64, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x74, 0x45, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x53, 0x61, 0x74, 0x12, + 0x2b, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x70, 0x61, 0x69, + 0x64, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x41, 0x6d, 0x74, 0x50, 0x61, 0x69, 0x64, 0x53, 0x61, 0x74, 0x22, 0x0f, 0x0a, 0x0d, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3c, 0x0a, + 0x0e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2a, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x73, 0x61, 0x74, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0xbb, 0x02, 0x0a, 0x09, + 0x4c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x61, 0x72, 0x6f, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x63, 0x61, 0x72, 0x6f, 0x6f, 0x6e, 0x12, 0x21, + 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, + 0x69, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x65, + 0x65, 0x50, 0x61, 0x69, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x4c, 0x65, 0x61, + 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x92, 0x03, 0x0a, 0x15, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0f, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, + 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x6e, 0x0a, 0x16, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, + 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, + 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x65, 0x61, + 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x41, 0x0a, 0x13, + 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x65, 0x0a, 0x19, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, + 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x16, 0x0a, 0x14, 0x4e, 0x65, 0x78, 0x74, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x8f, + 0x01, 0x0a, 0x15, 0x4e, 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, + 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, + 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x13, 0x66, 0x65, 0x65, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x53, + 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x72, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0e, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x22, 0x36, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x75, + 0x62, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x6e, 0x6f, 0x64, + 0x65, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x4c, 0x0a, 0x12, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, + 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x52, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x84, 0x06, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x27, 0x0a, + 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x2b, + 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x23, + 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x29, + 0x0a, 0x10, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, + 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x49, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x1f, 0x0a, 0x0b, 0x6c, 0x73, 0x61, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x12, 0x38, 0x0a, 0x18, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, 0x74, + 0x6f, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x16, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x54, 0x6f, + 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x65, + 0x77, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4f, 0x6e, 0x6c, 0x79, + 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x52, 0x0a, 0x0f, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x16, 0x0a, 0x14, 0x4e, 0x65, 0x78, 0x74, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x8f, 0x01, 0x0a, 0x15, 0x4e, 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, - 0x6e, 0x66, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x13, 0x66, - 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, - 0x6b, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x52, 0x61, 0x74, - 0x65, 0x53, 0x61, 0x74, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, 0x65, - 0x61, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0e, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x22, 0x36, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x6e, - 0x6f, 0x64, 0x65, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x4c, 0x0a, 0x12, 0x4e, 0x6f, - 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x36, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x6e, 0x6f, 0x64, - 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x84, 0x06, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, - 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, - 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x21, 0x0a, - 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x30, - 0x0a, 0x14, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x12, 0x29, 0x0a, 0x10, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x76, 0x6f, - 0x6c, 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x49, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x73, 0x61, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, - 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, - 0x54, 0x6f, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0e, - 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4f, 0x6e, - 0x6c, 0x79, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x52, 0x0a, - 0x0f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, - 0x65, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x13, - 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x6f, - 0x74, 0x69, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x75, 0x74, - 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x62, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, - 0x63, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x03, 0x62, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x0d, 0x53, 0x69, - 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, - 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, - 0x6b, 0x65, 0x74, 0x22, 0xcc, 0x05, 0x0a, 0x14, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x53, - 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, - 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, - 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x73, - 0x68, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, - 0x6f, 0x66, 0x66, 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x3d, 0x0a, 0x1b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x73, 0x65, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2a, - 0x0a, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x70, 0x75, 0x62, - 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x65, 0x72, - 0x53, 0x69, 0x67, 0x6e, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x66, - 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x41, 0x75, - 0x74, 0x6f, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x13, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, - 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x19, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x5f, 0x70, 0x75, 0x62, - 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x13, 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x13, 0x4f, 0x66, + 0x66, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, + 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4e, + 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, + 0x42, 0x69, 0x64, 0x52, 0x03, 0x62, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x0d, 0x53, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, + 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x22, 0xcc, 0x05, 0x0a, 0x14, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x53, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0d, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, + 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, + 0x1b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x18, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2a, 0x0a, 0x11, + 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, + 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, + 0x67, 0x6e, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0e, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, + 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x13, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x75, + 0x62, 0x6b, 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x19, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, + 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, + 0x12, 0x45, 0x0a, 0x1f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1c, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x50, 0x75, 0x62, 0x6b, - 0x65, 0x79, 0x12, 0x45, 0x0a, 0x1f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1c, 0x72, 0x65, 0x63, - 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x50, 0x75, - 0x62, 0x6b, 0x65, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x69, 0x64, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x19, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, - 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x54, 0x69, 0x63, 0x6b, - 0x65, 0x74, 0x22, 0x57, 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x69, - 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, - 0x63, 0x6b, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, - 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x75, - 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x22, 0x35, 0x0a, 0x1b, 0x45, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, + 0x65, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x69, 0x64, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x19, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x63, + 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x22, 0x57, 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, - 0x65, 0x74, 0x22, 0x1e, 0x0a, 0x1c, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x34, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, - 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x64, - 0x65, 0x63, 0x61, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, - 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x37, 0x0a, 0x07, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x6f, - 0x64, 0x65, 0x64, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, - 0x52, 0x07, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x22, 0x35, 0x0a, 0x14, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x49, 0x64, - 0x22, 0x17, 0x0a, 0x15, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x93, 0x01, 0x0a, 0x0c, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x45, - 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, - 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, - 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x45, 0x4e, 0x44, 0x49, - 0x4e, 0x47, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x43, - 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x43, 0x4f, 0x56, - 0x45, 0x52, 0x59, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, - 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x41, 0x54, 0x43, 0x48, 0x10, 0x07, 0x2a, - 0x50, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, - 0x07, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, - 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x4a, 0x45, - 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x10, - 0x04, 0x2a, 0xbe, 0x01, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, - 0x00, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x53, 0x42, - 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x41, 0x54, - 0x43, 0x48, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, - 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, - 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x41, 0x54, 0x45, 0x52, - 0x41, 0x4c, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x5f, - 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, - 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x04, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x41, 0x52, 0x54, 0x49, - 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, - 0x4c, 0x5f, 0x46, 0x55, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, - 0x10, 0x05, 0x32, 0xa5, 0x11, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, 0x65, 0x72, 0x12, 0x3c, 0x0a, - 0x07, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x53, - 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, - 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3c, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, - 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x6f, - 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4b, 0x0a, - 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, - 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x43, 0x6c, - 0x6f, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, - 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, - 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x6f, - 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, - 0x0e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4b, 0x0a, 0x0c, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, - 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, - 0x0e, 0x42, 0x75, 0x6d, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x12, - 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x75, 0x6d, 0x70, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x75, 0x6d, 0x70, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x54, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, - 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, - 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x45, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1a, - 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, - 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, - 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, - 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x41, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, - 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4f, 0x0a, 0x0e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, - 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4e, 0x0a, 0x0d, 0x4e, 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x65, 0x78, 0x74, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4e, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x12, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, - 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, - 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, - 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, - 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1a, 0x2e, 0x70, - 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, - 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, - 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x4f, 0x66, 0x66, 0x65, - 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x4a, - 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, - 0x72, 0x12, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x64, - 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x63, 0x0a, 0x14, 0x45, 0x78, - 0x70, 0x65, 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x12, 0x24, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x70, + 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, + 0x69, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, + 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x22, 0x35, 0x0a, 0x1b, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, - 0x70, 0x63, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4c, 0x0a, 0x13, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, - 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x1a, 0x1d, - 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, - 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x4b, 0x0a, - 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x12, 0x1c, 0x2e, - 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x22, 0x1e, 0x0a, 0x1c, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, + 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x34, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, + 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, + 0x0a, 0x07, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x64, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x07, + 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x22, 0x35, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x49, 0x64, 0x22, 0x17, + 0x0a, 0x15, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x93, 0x01, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x45, 0x4e, 0x44, + 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x08, + 0x0a, 0x04, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, + 0x52, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, + 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x4f, + 0x53, 0x45, 0x44, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x43, 0x4f, 0x56, 0x45, 0x52, + 0x59, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x41, 0x54, 0x43, 0x48, 0x10, 0x07, 0x2a, 0x50, 0x0a, + 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x50, + 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, 0x43, 0x45, + 0x50, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x04, 0x2a, + 0xbe, 0x01, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, + 0x16, 0x0a, 0x12, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x53, 0x42, 0x45, 0x48, + 0x41, 0x56, 0x49, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x41, 0x54, 0x43, 0x48, + 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, + 0x48, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x52, + 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x41, 0x54, 0x45, 0x52, 0x41, 0x4c, + 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x52, 0x45, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x50, + 0x45, 0x45, 0x52, 0x10, 0x04, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, + 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, + 0x46, 0x55, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, + 0x32, 0xa5, 0x11, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x07, 0x47, + 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x18, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x53, 0x74, 0x6f, + 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4b, 0x0a, 0x0c, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, + 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x70, + 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, + 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0c, 0x4c, + 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x6f, + 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, + 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x43, 0x6c, 0x6f, 0x73, + 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, + 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, + 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, + 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, + 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x2e, + 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, + 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, + 0x0a, 0x0c, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, + 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, + 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x42, + 0x75, 0x6d, 0x70, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x12, 0x1e, 0x2e, + 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x75, 0x6d, 0x70, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, + 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x75, 0x6d, 0x70, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, + 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, + 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x2e, 0x70, + 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, + 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x45, 0x0a, 0x0a, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x2e, + 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, + 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x65, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, + 0x0e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, + 0x0a, 0x0d, 0x4e, 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, + 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, + 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4c, 0x73, 0x61, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, + 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, + 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x39, 0x0a, 0x06, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x6f, 0x6f, + 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x61, + 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x6f, 0x6f, + 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, + 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, + 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, + 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x4a, 0x0a, 0x0f, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, + 0x1f, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x63, 0x0a, 0x14, 0x45, 0x78, 0x70, 0x65, + 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x12, 0x24, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x63, + 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, + 0x2e, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, + 0x13, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, + 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x1a, 0x1d, 0x2e, 0x70, + 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x53, 0x69, + 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x0c, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0d, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x1d, 0x2e, 0x70, 0x6f, - 0x6f, 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, - 0x6c, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, - 0x61, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, - 0x6e, 0x67, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, - 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, + 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0d, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x1d, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, + 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x6f, 0x6f, 0x6c, 0x72, + 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, + 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x72, 0x70, + 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5555,15 +5568,16 @@ var file_trader_proto_goTypes = []interface{}{ (*auctioneerrpc.OutPoint)(nil), // 69: poolrpc.OutPoint (*auctioneerrpc.InvalidOrder)(nil), // 70: poolrpc.InvalidOrder (auctioneerrpc.OrderState)(0), // 71: poolrpc.OrderState - (auctioneerrpc.NodeTier)(0), // 72: poolrpc.NodeTier - (*auctioneerrpc.ExecutionFee)(nil), // 73: poolrpc.ExecutionFee - (*auctioneerrpc.NodeRating)(nil), // 74: poolrpc.NodeRating - (auctioneerrpc.DurationBucketState)(0), // 75: poolrpc.DurationBucketState - (*auctioneerrpc.MarketInfo)(nil), // 76: poolrpc.MarketInfo - (*auctioneerrpc.BatchSnapshotRequest)(nil), // 77: poolrpc.BatchSnapshotRequest - (*auctioneerrpc.BatchSnapshotsRequest)(nil), // 78: poolrpc.BatchSnapshotsRequest - (*auctioneerrpc.BatchSnapshotResponse)(nil), // 79: poolrpc.BatchSnapshotResponse - (*auctioneerrpc.BatchSnapshotsResponse)(nil), // 80: poolrpc.BatchSnapshotsResponse + (auctioneerrpc.OrderChannelType)(0), // 72: poolrpc.OrderChannelType + (auctioneerrpc.NodeTier)(0), // 73: poolrpc.NodeTier + (*auctioneerrpc.ExecutionFee)(nil), // 74: poolrpc.ExecutionFee + (*auctioneerrpc.NodeRating)(nil), // 75: poolrpc.NodeRating + (auctioneerrpc.DurationBucketState)(0), // 76: poolrpc.DurationBucketState + (*auctioneerrpc.MarketInfo)(nil), // 77: poolrpc.MarketInfo + (*auctioneerrpc.BatchSnapshotRequest)(nil), // 78: poolrpc.BatchSnapshotRequest + (*auctioneerrpc.BatchSnapshotsRequest)(nil), // 79: poolrpc.BatchSnapshotsRequest + (*auctioneerrpc.BatchSnapshotResponse)(nil), // 80: poolrpc.BatchSnapshotResponse + (*auctioneerrpc.BatchSnapshotsResponse)(nil), // 81: poolrpc.BatchSnapshotsResponse } var file_trader_proto_depIdxs = []int32{ 21, // 0: poolrpc.ListAccountsResponse.accounts:type_name -> poolrpc.Account @@ -5583,92 +5597,93 @@ var file_trader_proto_depIdxs = []int32{ 29, // 14: poolrpc.ListOrdersResponse.bids:type_name -> poolrpc.Bid 71, // 15: poolrpc.Order.state:type_name -> poolrpc.OrderState 33, // 16: poolrpc.Order.events:type_name -> poolrpc.OrderEvent - 28, // 17: poolrpc.Bid.details:type_name -> poolrpc.Order - 72, // 18: poolrpc.Bid.min_node_tier:type_name -> poolrpc.NodeTier - 28, // 19: poolrpc.Ask.details:type_name -> poolrpc.Order - 34, // 20: poolrpc.OrderEvent.state_change:type_name -> poolrpc.UpdatedEvent - 35, // 21: poolrpc.OrderEvent.matched:type_name -> poolrpc.MatchEvent - 71, // 22: poolrpc.UpdatedEvent.previous_state:type_name -> poolrpc.OrderState - 71, // 23: poolrpc.UpdatedEvent.new_state:type_name -> poolrpc.OrderState - 1, // 24: poolrpc.MatchEvent.match_state:type_name -> poolrpc.MatchState - 2, // 25: poolrpc.MatchEvent.reject_reason:type_name -> poolrpc.MatchRejectReason - 73, // 26: poolrpc.AuctionFeeResponse.execution_fee:type_name -> poolrpc.ExecutionFee - 69, // 27: poolrpc.Lease.channel_point:type_name -> poolrpc.OutPoint - 72, // 28: poolrpc.Lease.channel_node_tier:type_name -> poolrpc.NodeTier - 40, // 29: poolrpc.LeasesResponse.leases:type_name -> poolrpc.Lease - 45, // 30: poolrpc.TokensResponse.tokens:type_name -> poolrpc.LsatToken - 66, // 31: poolrpc.LeaseDurationResponse.lease_durations:type_name -> poolrpc.LeaseDurationResponse.LeaseDurationsEntry - 67, // 32: poolrpc.LeaseDurationResponse.lease_duration_buckets:type_name -> poolrpc.LeaseDurationResponse.LeaseDurationBucketsEntry - 74, // 33: poolrpc.NodeRatingResponse.node_ratings:type_name -> poolrpc.NodeRating - 74, // 34: poolrpc.GetInfoResponse.node_rating:type_name -> poolrpc.NodeRating - 68, // 35: poolrpc.GetInfoResponse.market_info:type_name -> poolrpc.GetInfoResponse.MarketInfoEntry - 29, // 36: poolrpc.OfferSidecarRequest.bid:type_name -> poolrpc.Bid - 58, // 37: poolrpc.ListSidecarsResponse.tickets:type_name -> poolrpc.DecodedSidecarTicket - 75, // 38: poolrpc.LeaseDurationResponse.LeaseDurationBucketsEntry.value:type_name -> poolrpc.DurationBucketState - 76, // 39: poolrpc.GetInfoResponse.MarketInfoEntry.value:type_name -> poolrpc.MarketInfo - 52, // 40: poolrpc.Trader.GetInfo:input_type -> poolrpc.GetInfoRequest - 54, // 41: poolrpc.Trader.StopDaemon:input_type -> poolrpc.StopDaemonRequest - 4, // 42: poolrpc.Trader.QuoteAccount:input_type -> poolrpc.QuoteAccountRequest - 3, // 43: poolrpc.Trader.InitAccount:input_type -> poolrpc.InitAccountRequest - 6, // 44: poolrpc.Trader.ListAccounts:input_type -> poolrpc.ListAccountsRequest - 11, // 45: poolrpc.Trader.CloseAccount:input_type -> poolrpc.CloseAccountRequest - 13, // 46: poolrpc.Trader.WithdrawAccount:input_type -> poolrpc.WithdrawAccountRequest - 15, // 47: poolrpc.Trader.DepositAccount:input_type -> poolrpc.DepositAccountRequest - 17, // 48: poolrpc.Trader.RenewAccount:input_type -> poolrpc.RenewAccountRequest - 19, // 49: poolrpc.Trader.BumpAccountFee:input_type -> poolrpc.BumpAccountFeeRequest - 36, // 50: poolrpc.Trader.RecoverAccounts:input_type -> poolrpc.RecoverAccountsRequest - 22, // 51: poolrpc.Trader.SubmitOrder:input_type -> poolrpc.SubmitOrderRequest - 24, // 52: poolrpc.Trader.ListOrders:input_type -> poolrpc.ListOrdersRequest - 26, // 53: poolrpc.Trader.CancelOrder:input_type -> poolrpc.CancelOrderRequest - 31, // 54: poolrpc.Trader.QuoteOrder:input_type -> poolrpc.QuoteOrderRequest - 38, // 55: poolrpc.Trader.AuctionFee:input_type -> poolrpc.AuctionFeeRequest - 46, // 56: poolrpc.Trader.LeaseDurations:input_type -> poolrpc.LeaseDurationRequest - 48, // 57: poolrpc.Trader.NextBatchInfo:input_type -> poolrpc.NextBatchInfoRequest - 77, // 58: poolrpc.Trader.BatchSnapshot:input_type -> poolrpc.BatchSnapshotRequest - 43, // 59: poolrpc.Trader.GetLsatTokens:input_type -> poolrpc.TokensRequest - 41, // 60: poolrpc.Trader.Leases:input_type -> poolrpc.LeasesRequest - 50, // 61: poolrpc.Trader.NodeRatings:input_type -> poolrpc.NodeRatingRequest - 78, // 62: poolrpc.Trader.BatchSnapshots:input_type -> poolrpc.BatchSnapshotsRequest - 56, // 63: poolrpc.Trader.OfferSidecar:input_type -> poolrpc.OfferSidecarRequest - 59, // 64: poolrpc.Trader.RegisterSidecar:input_type -> poolrpc.RegisterSidecarRequest - 60, // 65: poolrpc.Trader.ExpectSidecarChannel:input_type -> poolrpc.ExpectSidecarChannelRequest - 57, // 66: poolrpc.Trader.DecodeSidecarTicket:input_type -> poolrpc.SidecarTicket - 62, // 67: poolrpc.Trader.ListSidecars:input_type -> poolrpc.ListSidecarsRequest - 64, // 68: poolrpc.Trader.CancelSidecar:input_type -> poolrpc.CancelSidecarRequest - 53, // 69: poolrpc.Trader.GetInfo:output_type -> poolrpc.GetInfoResponse - 55, // 70: poolrpc.Trader.StopDaemon:output_type -> poolrpc.StopDaemonResponse - 5, // 71: poolrpc.Trader.QuoteAccount:output_type -> poolrpc.QuoteAccountResponse - 21, // 72: poolrpc.Trader.InitAccount:output_type -> poolrpc.Account - 7, // 73: poolrpc.Trader.ListAccounts:output_type -> poolrpc.ListAccountsResponse - 12, // 74: poolrpc.Trader.CloseAccount:output_type -> poolrpc.CloseAccountResponse - 14, // 75: poolrpc.Trader.WithdrawAccount:output_type -> poolrpc.WithdrawAccountResponse - 16, // 76: poolrpc.Trader.DepositAccount:output_type -> poolrpc.DepositAccountResponse - 18, // 77: poolrpc.Trader.RenewAccount:output_type -> poolrpc.RenewAccountResponse - 20, // 78: poolrpc.Trader.BumpAccountFee:output_type -> poolrpc.BumpAccountFeeResponse - 37, // 79: poolrpc.Trader.RecoverAccounts:output_type -> poolrpc.RecoverAccountsResponse - 23, // 80: poolrpc.Trader.SubmitOrder:output_type -> poolrpc.SubmitOrderResponse - 25, // 81: poolrpc.Trader.ListOrders:output_type -> poolrpc.ListOrdersResponse - 27, // 82: poolrpc.Trader.CancelOrder:output_type -> poolrpc.CancelOrderResponse - 32, // 83: poolrpc.Trader.QuoteOrder:output_type -> poolrpc.QuoteOrderResponse - 39, // 84: poolrpc.Trader.AuctionFee:output_type -> poolrpc.AuctionFeeResponse - 47, // 85: poolrpc.Trader.LeaseDurations:output_type -> poolrpc.LeaseDurationResponse - 49, // 86: poolrpc.Trader.NextBatchInfo:output_type -> poolrpc.NextBatchInfoResponse - 79, // 87: poolrpc.Trader.BatchSnapshot:output_type -> poolrpc.BatchSnapshotResponse - 44, // 88: poolrpc.Trader.GetLsatTokens:output_type -> poolrpc.TokensResponse - 42, // 89: poolrpc.Trader.Leases:output_type -> poolrpc.LeasesResponse - 51, // 90: poolrpc.Trader.NodeRatings:output_type -> poolrpc.NodeRatingResponse - 80, // 91: poolrpc.Trader.BatchSnapshots:output_type -> poolrpc.BatchSnapshotsResponse - 57, // 92: poolrpc.Trader.OfferSidecar:output_type -> poolrpc.SidecarTicket - 57, // 93: poolrpc.Trader.RegisterSidecar:output_type -> poolrpc.SidecarTicket - 61, // 94: poolrpc.Trader.ExpectSidecarChannel:output_type -> poolrpc.ExpectSidecarChannelResponse - 58, // 95: poolrpc.Trader.DecodeSidecarTicket:output_type -> poolrpc.DecodedSidecarTicket - 63, // 96: poolrpc.Trader.ListSidecars:output_type -> poolrpc.ListSidecarsResponse - 65, // 97: poolrpc.Trader.CancelSidecar:output_type -> poolrpc.CancelSidecarResponse - 69, // [69:98] is the sub-list for method output_type - 40, // [40:69] is the sub-list for method input_type - 40, // [40:40] is the sub-list for extension type_name - 40, // [40:40] is the sub-list for extension extendee - 0, // [0:40] is the sub-list for field type_name + 72, // 17: poolrpc.Order.channel_type:type_name -> poolrpc.OrderChannelType + 28, // 18: poolrpc.Bid.details:type_name -> poolrpc.Order + 73, // 19: poolrpc.Bid.min_node_tier:type_name -> poolrpc.NodeTier + 28, // 20: poolrpc.Ask.details:type_name -> poolrpc.Order + 34, // 21: poolrpc.OrderEvent.state_change:type_name -> poolrpc.UpdatedEvent + 35, // 22: poolrpc.OrderEvent.matched:type_name -> poolrpc.MatchEvent + 71, // 23: poolrpc.UpdatedEvent.previous_state:type_name -> poolrpc.OrderState + 71, // 24: poolrpc.UpdatedEvent.new_state:type_name -> poolrpc.OrderState + 1, // 25: poolrpc.MatchEvent.match_state:type_name -> poolrpc.MatchState + 2, // 26: poolrpc.MatchEvent.reject_reason:type_name -> poolrpc.MatchRejectReason + 74, // 27: poolrpc.AuctionFeeResponse.execution_fee:type_name -> poolrpc.ExecutionFee + 69, // 28: poolrpc.Lease.channel_point:type_name -> poolrpc.OutPoint + 73, // 29: poolrpc.Lease.channel_node_tier:type_name -> poolrpc.NodeTier + 40, // 30: poolrpc.LeasesResponse.leases:type_name -> poolrpc.Lease + 45, // 31: poolrpc.TokensResponse.tokens:type_name -> poolrpc.LsatToken + 66, // 32: poolrpc.LeaseDurationResponse.lease_durations:type_name -> poolrpc.LeaseDurationResponse.LeaseDurationsEntry + 67, // 33: poolrpc.LeaseDurationResponse.lease_duration_buckets:type_name -> poolrpc.LeaseDurationResponse.LeaseDurationBucketsEntry + 75, // 34: poolrpc.NodeRatingResponse.node_ratings:type_name -> poolrpc.NodeRating + 75, // 35: poolrpc.GetInfoResponse.node_rating:type_name -> poolrpc.NodeRating + 68, // 36: poolrpc.GetInfoResponse.market_info:type_name -> poolrpc.GetInfoResponse.MarketInfoEntry + 29, // 37: poolrpc.OfferSidecarRequest.bid:type_name -> poolrpc.Bid + 58, // 38: poolrpc.ListSidecarsResponse.tickets:type_name -> poolrpc.DecodedSidecarTicket + 76, // 39: poolrpc.LeaseDurationResponse.LeaseDurationBucketsEntry.value:type_name -> poolrpc.DurationBucketState + 77, // 40: poolrpc.GetInfoResponse.MarketInfoEntry.value:type_name -> poolrpc.MarketInfo + 52, // 41: poolrpc.Trader.GetInfo:input_type -> poolrpc.GetInfoRequest + 54, // 42: poolrpc.Trader.StopDaemon:input_type -> poolrpc.StopDaemonRequest + 4, // 43: poolrpc.Trader.QuoteAccount:input_type -> poolrpc.QuoteAccountRequest + 3, // 44: poolrpc.Trader.InitAccount:input_type -> poolrpc.InitAccountRequest + 6, // 45: poolrpc.Trader.ListAccounts:input_type -> poolrpc.ListAccountsRequest + 11, // 46: poolrpc.Trader.CloseAccount:input_type -> poolrpc.CloseAccountRequest + 13, // 47: poolrpc.Trader.WithdrawAccount:input_type -> poolrpc.WithdrawAccountRequest + 15, // 48: poolrpc.Trader.DepositAccount:input_type -> poolrpc.DepositAccountRequest + 17, // 49: poolrpc.Trader.RenewAccount:input_type -> poolrpc.RenewAccountRequest + 19, // 50: poolrpc.Trader.BumpAccountFee:input_type -> poolrpc.BumpAccountFeeRequest + 36, // 51: poolrpc.Trader.RecoverAccounts:input_type -> poolrpc.RecoverAccountsRequest + 22, // 52: poolrpc.Trader.SubmitOrder:input_type -> poolrpc.SubmitOrderRequest + 24, // 53: poolrpc.Trader.ListOrders:input_type -> poolrpc.ListOrdersRequest + 26, // 54: poolrpc.Trader.CancelOrder:input_type -> poolrpc.CancelOrderRequest + 31, // 55: poolrpc.Trader.QuoteOrder:input_type -> poolrpc.QuoteOrderRequest + 38, // 56: poolrpc.Trader.AuctionFee:input_type -> poolrpc.AuctionFeeRequest + 46, // 57: poolrpc.Trader.LeaseDurations:input_type -> poolrpc.LeaseDurationRequest + 48, // 58: poolrpc.Trader.NextBatchInfo:input_type -> poolrpc.NextBatchInfoRequest + 78, // 59: poolrpc.Trader.BatchSnapshot:input_type -> poolrpc.BatchSnapshotRequest + 43, // 60: poolrpc.Trader.GetLsatTokens:input_type -> poolrpc.TokensRequest + 41, // 61: poolrpc.Trader.Leases:input_type -> poolrpc.LeasesRequest + 50, // 62: poolrpc.Trader.NodeRatings:input_type -> poolrpc.NodeRatingRequest + 79, // 63: poolrpc.Trader.BatchSnapshots:input_type -> poolrpc.BatchSnapshotsRequest + 56, // 64: poolrpc.Trader.OfferSidecar:input_type -> poolrpc.OfferSidecarRequest + 59, // 65: poolrpc.Trader.RegisterSidecar:input_type -> poolrpc.RegisterSidecarRequest + 60, // 66: poolrpc.Trader.ExpectSidecarChannel:input_type -> poolrpc.ExpectSidecarChannelRequest + 57, // 67: poolrpc.Trader.DecodeSidecarTicket:input_type -> poolrpc.SidecarTicket + 62, // 68: poolrpc.Trader.ListSidecars:input_type -> poolrpc.ListSidecarsRequest + 64, // 69: poolrpc.Trader.CancelSidecar:input_type -> poolrpc.CancelSidecarRequest + 53, // 70: poolrpc.Trader.GetInfo:output_type -> poolrpc.GetInfoResponse + 55, // 71: poolrpc.Trader.StopDaemon:output_type -> poolrpc.StopDaemonResponse + 5, // 72: poolrpc.Trader.QuoteAccount:output_type -> poolrpc.QuoteAccountResponse + 21, // 73: poolrpc.Trader.InitAccount:output_type -> poolrpc.Account + 7, // 74: poolrpc.Trader.ListAccounts:output_type -> poolrpc.ListAccountsResponse + 12, // 75: poolrpc.Trader.CloseAccount:output_type -> poolrpc.CloseAccountResponse + 14, // 76: poolrpc.Trader.WithdrawAccount:output_type -> poolrpc.WithdrawAccountResponse + 16, // 77: poolrpc.Trader.DepositAccount:output_type -> poolrpc.DepositAccountResponse + 18, // 78: poolrpc.Trader.RenewAccount:output_type -> poolrpc.RenewAccountResponse + 20, // 79: poolrpc.Trader.BumpAccountFee:output_type -> poolrpc.BumpAccountFeeResponse + 37, // 80: poolrpc.Trader.RecoverAccounts:output_type -> poolrpc.RecoverAccountsResponse + 23, // 81: poolrpc.Trader.SubmitOrder:output_type -> poolrpc.SubmitOrderResponse + 25, // 82: poolrpc.Trader.ListOrders:output_type -> poolrpc.ListOrdersResponse + 27, // 83: poolrpc.Trader.CancelOrder:output_type -> poolrpc.CancelOrderResponse + 32, // 84: poolrpc.Trader.QuoteOrder:output_type -> poolrpc.QuoteOrderResponse + 39, // 85: poolrpc.Trader.AuctionFee:output_type -> poolrpc.AuctionFeeResponse + 47, // 86: poolrpc.Trader.LeaseDurations:output_type -> poolrpc.LeaseDurationResponse + 49, // 87: poolrpc.Trader.NextBatchInfo:output_type -> poolrpc.NextBatchInfoResponse + 80, // 88: poolrpc.Trader.BatchSnapshot:output_type -> poolrpc.BatchSnapshotResponse + 44, // 89: poolrpc.Trader.GetLsatTokens:output_type -> poolrpc.TokensResponse + 42, // 90: poolrpc.Trader.Leases:output_type -> poolrpc.LeasesResponse + 51, // 91: poolrpc.Trader.NodeRatings:output_type -> poolrpc.NodeRatingResponse + 81, // 92: poolrpc.Trader.BatchSnapshots:output_type -> poolrpc.BatchSnapshotsResponse + 57, // 93: poolrpc.Trader.OfferSidecar:output_type -> poolrpc.SidecarTicket + 57, // 94: poolrpc.Trader.RegisterSidecar:output_type -> poolrpc.SidecarTicket + 61, // 95: poolrpc.Trader.ExpectSidecarChannel:output_type -> poolrpc.ExpectSidecarChannelResponse + 58, // 96: poolrpc.Trader.DecodeSidecarTicket:output_type -> poolrpc.DecodedSidecarTicket + 63, // 97: poolrpc.Trader.ListSidecars:output_type -> poolrpc.ListSidecarsResponse + 65, // 98: poolrpc.Trader.CancelSidecar:output_type -> poolrpc.CancelSidecarResponse + 70, // [70:99] is the sub-list for method output_type + 41, // [41:70] is the sub-list for method input_type + 41, // [41:41] is the sub-list for extension type_name + 41, // [41:41] is the sub-list for extension extendee + 0, // [0:41] is the sub-list for field type_name } func init() { file_trader_proto_init() } diff --git a/poolrpc/trader.proto b/poolrpc/trader.proto index beb4a3d..1de2329 100644 --- a/poolrpc/trader.proto +++ b/poolrpc/trader.proto @@ -601,6 +601,9 @@ message Order { // The minimum number of order units that must be matched per order pair. uint32 min_units_match = 12; + + // The channel type to use for the resulting matched channels. + OrderChannelType channel_type = 13; } message Bid { diff --git a/poolrpc/trader.swagger.json b/poolrpc/trader.swagger.json index 5416277..255c5eb 100644 --- a/poolrpc/trader.swagger.json +++ b/poolrpc/trader.swagger.json @@ -1067,8 +1067,7 @@ "description": "The true bid price of the order in parts per billion." }, "chan_type": { - "type": "integer", - "format": "int64", + "$ref": "#/definitions/poolrpcOrderChannelType", "description": "The channel type to be created." } } @@ -1203,8 +1202,7 @@ "description": "The true bid price of the order in parts per billion." }, "chan_type": { - "type": "integer", - "format": "int64", + "$ref": "#/definitions/poolrpcOrderChannelType", "description": "The channel type to be created." } } @@ -1983,9 +1981,23 @@ "type": "integer", "format": "int64", "description": "The minimum number of order units that must be matched per order pair." + }, + "channel_type": { + "$ref": "#/definitions/poolrpcOrderChannelType", + "description": "The channel type to use for the resulting matched channels." } } }, + "poolrpcOrderChannelType": { + "type": "string", + "enum": [ + "ORDER_CHANNEL_TYPE_UNKNOWN", + "ORDER_CHANNEL_TYPE_PEER_DEPENDENT", + "ORDER_CHANNEL_TYPE_SCRIPT_ENFORCED" + ], + "default": "ORDER_CHANNEL_TYPE_UNKNOWN", + "description": " - ORDER_CHANNEL_TYPE_UNKNOWN: Used to set defaults when a trader doesn't specify a channel type.\n - ORDER_CHANNEL_TYPE_PEER_DEPENDENT: The channel type will vary per matched channel based on the features shared\nbetween its participants.\n - ORDER_CHANNEL_TYPE_SCRIPT_ENFORCED: A channel type that builds upon the anchors commitment format to enforce\nchannel lease maturities in the commitment and HTLC outputs that pay to the\nchannel initiator/seller." + }, "poolrpcOrderEvent": { "type": "object", "properties": { diff --git a/rpcserver.go b/rpcserver.go index 910c94c..05f7651 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -350,7 +350,8 @@ func (s *rpcServer) handleServerMessage( } // Do an in-depth verification of the batch. - err = s.orderManager.OrderMatchValidate(batch) + bestHeight := atomic.LoadUint32(&s.bestHeight) + err = s.orderManager.OrderMatchValidate(batch, bestHeight) if err != nil { // We can't accept the batch, something went wrong. rpcLog.Errorf("Error validating batch: %v", err) @@ -393,8 +394,7 @@ func (s *rpcServer) handleServerMessage( "num_orders=%v", batch.ID[:], len(batch.MatchedOrders)) // Sign for the accounts in the batch. - bestHeight := atomic.LoadUint32(&s.bestHeight) - sigs, err := s.orderManager.BatchSign(bestHeight) + sigs, err := s.orderManager.BatchSign() if err != nil { rpcLog.Errorf("Error signing batch: %v", err) return s.sendRejectBatch(batch, err) @@ -2886,8 +2886,11 @@ func marshallChannelInfo(chanInfos map[wire.OutPoint]*chaninfo.ChannelInfo) ( // between them for our purpose. case chanbackup.AnchorsCommitVersion, chanbackup.AnchorsZeroFeeHtlcTxCommitVersion: - channelType = auctioneerrpc.ChannelType_ANCHORS + + case chanbackup.ScriptEnforcedLeaseVersion: + channelType = auctioneerrpc.ChannelType_SCRIPT_ENFORCED_LEASE + default: return nil, fmt.Errorf("unknown channel type: %v", chanInfo.Version)