From 7703567b0bea5f71d399e2bcbeb5edd857dfaacf Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Tue, 19 Feb 2019 19:14:33 -0800 Subject: [PATCH 1/3] lnrpc: add new unused address types for NewAddressRequest In this commit, we add two new address types to `NewAddressRequest`. These address types will allow the caller to retrieve the last _unused_ address, rather than always rotating to the next address in the keychain. --- lnrpc/rpc.pb.go | 1145 ++++++++++++++++++++-------------------- lnrpc/rpc.proto | 2 + lnrpc/rpc.swagger.json | 8 +- 3 files changed, 584 insertions(+), 571 deletions(-) diff --git a/lnrpc/rpc.pb.go b/lnrpc/rpc.pb.go index 9fc01bf0e..b97633cff 100644 --- a/lnrpc/rpc.pb.go +++ b/lnrpc/rpc.pb.go @@ -32,24 +32,30 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type AddressType int32 const ( - AddressType_WITNESS_PUBKEY_HASH AddressType = 0 - AddressType_NESTED_PUBKEY_HASH AddressType = 1 + AddressType_WITNESS_PUBKEY_HASH AddressType = 0 + AddressType_NESTED_PUBKEY_HASH AddressType = 1 + AddressType_UNUSED_WITNESS_PUBKEY_HASH AddressType = 2 + AddressType_UNUSED_NESTED_PUBKEY_HASH AddressType = 3 ) var AddressType_name = map[int32]string{ 0: "WITNESS_PUBKEY_HASH", 1: "NESTED_PUBKEY_HASH", + 2: "UNUSED_WITNESS_PUBKEY_HASH", + 3: "UNUSED_NESTED_PUBKEY_HASH", } var AddressType_value = map[string]int32{ - "WITNESS_PUBKEY_HASH": 0, - "NESTED_PUBKEY_HASH": 1, + "WITNESS_PUBKEY_HASH": 0, + "NESTED_PUBKEY_HASH": 1, + "UNUSED_WITNESS_PUBKEY_HASH": 2, + "UNUSED_NESTED_PUBKEY_HASH": 3, } func (x AddressType) String() string { return proto.EnumName(AddressType_name, int32(x)) } func (AddressType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{0} + return fileDescriptor_rpc_61aed0266ec39391, []int{0} } type ChannelCloseSummary_ClosureType int32 @@ -84,7 +90,7 @@ func (x ChannelCloseSummary_ClosureType) String() string { return proto.EnumName(ChannelCloseSummary_ClosureType_name, int32(x)) } func (ChannelCloseSummary_ClosureType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{39, 0} + return fileDescriptor_rpc_61aed0266ec39391, []int{39, 0} } type ChannelEventUpdate_UpdateType int32 @@ -113,7 +119,7 @@ func (x ChannelEventUpdate_UpdateType) String() string { return proto.EnumName(ChannelEventUpdate_UpdateType_name, int32(x)) } func (ChannelEventUpdate_UpdateType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{60, 0} + return fileDescriptor_rpc_61aed0266ec39391, []int{60, 0} } type Invoice_InvoiceState int32 @@ -139,7 +145,7 @@ func (x Invoice_InvoiceState) String() string { return proto.EnumName(Invoice_InvoiceState_name, int32(x)) } func (Invoice_InvoiceState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{89, 0} + return fileDescriptor_rpc_61aed0266ec39391, []int{89, 0} } type GenSeedRequest struct { @@ -160,7 +166,7 @@ func (m *GenSeedRequest) Reset() { *m = GenSeedRequest{} } func (m *GenSeedRequest) String() string { return proto.CompactTextString(m) } func (*GenSeedRequest) ProtoMessage() {} func (*GenSeedRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{0} + return fileDescriptor_rpc_61aed0266ec39391, []int{0} } func (m *GenSeedRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GenSeedRequest.Unmarshal(m, b) @@ -215,7 +221,7 @@ func (m *GenSeedResponse) Reset() { *m = GenSeedResponse{} } func (m *GenSeedResponse) String() string { return proto.CompactTextString(m) } func (*GenSeedResponse) ProtoMessage() {} func (*GenSeedResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{1} + return fileDescriptor_rpc_61aed0266ec39391, []int{1} } func (m *GenSeedResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GenSeedResponse.Unmarshal(m, b) @@ -280,7 +286,7 @@ func (m *InitWalletRequest) Reset() { *m = InitWalletRequest{} } func (m *InitWalletRequest) String() string { return proto.CompactTextString(m) } func (*InitWalletRequest) ProtoMessage() {} func (*InitWalletRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{2} + return fileDescriptor_rpc_61aed0266ec39391, []int{2} } func (m *InitWalletRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InitWalletRequest.Unmarshal(m, b) @@ -338,7 +344,7 @@ func (m *InitWalletResponse) Reset() { *m = InitWalletResponse{} } func (m *InitWalletResponse) String() string { return proto.CompactTextString(m) } func (*InitWalletResponse) ProtoMessage() {} func (*InitWalletResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{3} + return fileDescriptor_rpc_61aed0266ec39391, []int{3} } func (m *InitWalletResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InitWalletResponse.Unmarshal(m, b) @@ -380,7 +386,7 @@ func (m *UnlockWalletRequest) Reset() { *m = UnlockWalletRequest{} } func (m *UnlockWalletRequest) String() string { return proto.CompactTextString(m) } func (*UnlockWalletRequest) ProtoMessage() {} func (*UnlockWalletRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{4} + return fileDescriptor_rpc_61aed0266ec39391, []int{4} } func (m *UnlockWalletRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnlockWalletRequest.Unmarshal(m, b) @@ -424,7 +430,7 @@ func (m *UnlockWalletResponse) Reset() { *m = UnlockWalletResponse{} } func (m *UnlockWalletResponse) String() string { return proto.CompactTextString(m) } func (*UnlockWalletResponse) ProtoMessage() {} func (*UnlockWalletResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{5} + return fileDescriptor_rpc_61aed0266ec39391, []int{5} } func (m *UnlockWalletResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnlockWalletResponse.Unmarshal(m, b) @@ -462,7 +468,7 @@ func (m *ChangePasswordRequest) Reset() { *m = ChangePasswordRequest{} } func (m *ChangePasswordRequest) String() string { return proto.CompactTextString(m) } func (*ChangePasswordRequest) ProtoMessage() {} func (*ChangePasswordRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{6} + return fileDescriptor_rpc_61aed0266ec39391, []int{6} } func (m *ChangePasswordRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChangePasswordRequest.Unmarshal(m, b) @@ -506,7 +512,7 @@ func (m *ChangePasswordResponse) Reset() { *m = ChangePasswordResponse{} func (m *ChangePasswordResponse) String() string { return proto.CompactTextString(m) } func (*ChangePasswordResponse) ProtoMessage() {} func (*ChangePasswordResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{7} + return fileDescriptor_rpc_61aed0266ec39391, []int{7} } func (m *ChangePasswordResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChangePasswordResponse.Unmarshal(m, b) @@ -548,7 +554,7 @@ func (m *Utxo) Reset() { *m = Utxo{} } func (m *Utxo) String() string { return proto.CompactTextString(m) } func (*Utxo) ProtoMessage() {} func (*Utxo) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{8} + return fileDescriptor_rpc_61aed0266ec39391, []int{8} } func (m *Utxo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Utxo.Unmarshal(m, b) @@ -636,7 +642,7 @@ func (m *Transaction) Reset() { *m = Transaction{} } func (m *Transaction) String() string { return proto.CompactTextString(m) } func (*Transaction) ProtoMessage() {} func (*Transaction) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{9} + return fileDescriptor_rpc_61aed0266ec39391, []int{9} } func (m *Transaction) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Transaction.Unmarshal(m, b) @@ -722,7 +728,7 @@ func (m *GetTransactionsRequest) Reset() { *m = GetTransactionsRequest{} func (m *GetTransactionsRequest) String() string { return proto.CompactTextString(m) } func (*GetTransactionsRequest) ProtoMessage() {} func (*GetTransactionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{10} + return fileDescriptor_rpc_61aed0266ec39391, []int{10} } func (m *GetTransactionsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetTransactionsRequest.Unmarshal(m, b) @@ -754,7 +760,7 @@ func (m *TransactionDetails) Reset() { *m = TransactionDetails{} } func (m *TransactionDetails) String() string { return proto.CompactTextString(m) } func (*TransactionDetails) ProtoMessage() {} func (*TransactionDetails) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{11} + return fileDescriptor_rpc_61aed0266ec39391, []int{11} } func (m *TransactionDetails) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransactionDetails.Unmarshal(m, b) @@ -795,7 +801,7 @@ func (m *FeeLimit) Reset() { *m = FeeLimit{} } func (m *FeeLimit) String() string { return proto.CompactTextString(m) } func (*FeeLimit) ProtoMessage() {} func (*FeeLimit) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{12} + return fileDescriptor_rpc_61aed0266ec39391, []int{12} } func (m *FeeLimit) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FeeLimit.Unmarshal(m, b) @@ -955,7 +961,7 @@ func (m *SendRequest) Reset() { *m = SendRequest{} } func (m *SendRequest) String() string { return proto.CompactTextString(m) } func (*SendRequest) ProtoMessage() {} func (*SendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{13} + return fileDescriptor_rpc_61aed0266ec39391, []int{13} } func (m *SendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendRequest.Unmarshal(m, b) @@ -1052,7 +1058,7 @@ func (m *SendResponse) Reset() { *m = SendResponse{} } func (m *SendResponse) String() string { return proto.CompactTextString(m) } func (*SendResponse) ProtoMessage() {} func (*SendResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{14} + return fileDescriptor_rpc_61aed0266ec39391, []int{14} } func (m *SendResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendResponse.Unmarshal(m, b) @@ -1122,7 +1128,7 @@ func (m *SendToRouteRequest) Reset() { *m = SendToRouteRequest{} } func (m *SendToRouteRequest) String() string { return proto.CompactTextString(m) } func (*SendToRouteRequest) ProtoMessage() {} func (*SendToRouteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{15} + return fileDescriptor_rpc_61aed0266ec39391, []int{15} } func (m *SendToRouteRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendToRouteRequest.Unmarshal(m, b) @@ -1187,7 +1193,7 @@ func (m *ChannelPoint) Reset() { *m = ChannelPoint{} } func (m *ChannelPoint) String() string { return proto.CompactTextString(m) } func (*ChannelPoint) ProtoMessage() {} func (*ChannelPoint) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{16} + return fileDescriptor_rpc_61aed0266ec39391, []int{16} } func (m *ChannelPoint) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelPoint.Unmarshal(m, b) @@ -1333,7 +1339,7 @@ func (m *OutPoint) Reset() { *m = OutPoint{} } func (m *OutPoint) String() string { return proto.CompactTextString(m) } func (*OutPoint) ProtoMessage() {} func (*OutPoint) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{17} + return fileDescriptor_rpc_61aed0266ec39391, []int{17} } func (m *OutPoint) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OutPoint.Unmarshal(m, b) @@ -1388,7 +1394,7 @@ func (m *LightningAddress) Reset() { *m = LightningAddress{} } func (m *LightningAddress) String() string { return proto.CompactTextString(m) } func (*LightningAddress) ProtoMessage() {} func (*LightningAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{18} + return fileDescriptor_rpc_61aed0266ec39391, []int{18} } func (m *LightningAddress) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LightningAddress.Unmarshal(m, b) @@ -1438,7 +1444,7 @@ func (m *SendManyRequest) Reset() { *m = SendManyRequest{} } func (m *SendManyRequest) String() string { return proto.CompactTextString(m) } func (*SendManyRequest) ProtoMessage() {} func (*SendManyRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{19} + return fileDescriptor_rpc_61aed0266ec39391, []int{19} } func (m *SendManyRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendManyRequest.Unmarshal(m, b) @@ -1491,7 +1497,7 @@ func (m *SendManyResponse) Reset() { *m = SendManyResponse{} } func (m *SendManyResponse) String() string { return proto.CompactTextString(m) } func (*SendManyResponse) ProtoMessage() {} func (*SendManyResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{20} + return fileDescriptor_rpc_61aed0266ec39391, []int{20} } func (m *SendManyResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendManyResponse.Unmarshal(m, b) @@ -1541,7 +1547,7 @@ func (m *SendCoinsRequest) Reset() { *m = SendCoinsRequest{} } func (m *SendCoinsRequest) String() string { return proto.CompactTextString(m) } func (*SendCoinsRequest) ProtoMessage() {} func (*SendCoinsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{21} + return fileDescriptor_rpc_61aed0266ec39391, []int{21} } func (m *SendCoinsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendCoinsRequest.Unmarshal(m, b) @@ -1608,7 +1614,7 @@ func (m *SendCoinsResponse) Reset() { *m = SendCoinsResponse{} } func (m *SendCoinsResponse) String() string { return proto.CompactTextString(m) } func (*SendCoinsResponse) ProtoMessage() {} func (*SendCoinsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{22} + return fileDescriptor_rpc_61aed0266ec39391, []int{22} } func (m *SendCoinsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendCoinsResponse.Unmarshal(m, b) @@ -1649,7 +1655,7 @@ func (m *ListUnspentRequest) Reset() { *m = ListUnspentRequest{} } func (m *ListUnspentRequest) String() string { return proto.CompactTextString(m) } func (*ListUnspentRequest) ProtoMessage() {} func (*ListUnspentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{23} + return fileDescriptor_rpc_61aed0266ec39391, []int{23} } func (m *ListUnspentRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListUnspentRequest.Unmarshal(m, b) @@ -1695,7 +1701,7 @@ func (m *ListUnspentResponse) Reset() { *m = ListUnspentResponse{} } func (m *ListUnspentResponse) String() string { return proto.CompactTextString(m) } func (*ListUnspentResponse) ProtoMessage() {} func (*ListUnspentResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{24} + return fileDescriptor_rpc_61aed0266ec39391, []int{24} } func (m *ListUnspentResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListUnspentResponse.Unmarshal(m, b) @@ -1734,7 +1740,7 @@ func (m *NewAddressRequest) Reset() { *m = NewAddressRequest{} } func (m *NewAddressRequest) String() string { return proto.CompactTextString(m) } func (*NewAddressRequest) ProtoMessage() {} func (*NewAddressRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{25} + return fileDescriptor_rpc_61aed0266ec39391, []int{25} } func (m *NewAddressRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NewAddressRequest.Unmarshal(m, b) @@ -1773,7 +1779,7 @@ func (m *NewAddressResponse) Reset() { *m = NewAddressResponse{} } func (m *NewAddressResponse) String() string { return proto.CompactTextString(m) } func (*NewAddressResponse) ProtoMessage() {} func (*NewAddressResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{26} + return fileDescriptor_rpc_61aed0266ec39391, []int{26} } func (m *NewAddressResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NewAddressResponse.Unmarshal(m, b) @@ -1812,7 +1818,7 @@ func (m *SignMessageRequest) Reset() { *m = SignMessageRequest{} } func (m *SignMessageRequest) String() string { return proto.CompactTextString(m) } func (*SignMessageRequest) ProtoMessage() {} func (*SignMessageRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{27} + return fileDescriptor_rpc_61aed0266ec39391, []int{27} } func (m *SignMessageRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignMessageRequest.Unmarshal(m, b) @@ -1851,7 +1857,7 @@ func (m *SignMessageResponse) Reset() { *m = SignMessageResponse{} } func (m *SignMessageResponse) String() string { return proto.CompactTextString(m) } func (*SignMessageResponse) ProtoMessage() {} func (*SignMessageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{28} + return fileDescriptor_rpc_61aed0266ec39391, []int{28} } func (m *SignMessageResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignMessageResponse.Unmarshal(m, b) @@ -1892,7 +1898,7 @@ func (m *VerifyMessageRequest) Reset() { *m = VerifyMessageRequest{} } func (m *VerifyMessageRequest) String() string { return proto.CompactTextString(m) } func (*VerifyMessageRequest) ProtoMessage() {} func (*VerifyMessageRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{29} + return fileDescriptor_rpc_61aed0266ec39391, []int{29} } func (m *VerifyMessageRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_VerifyMessageRequest.Unmarshal(m, b) @@ -1940,7 +1946,7 @@ func (m *VerifyMessageResponse) Reset() { *m = VerifyMessageResponse{} } func (m *VerifyMessageResponse) String() string { return proto.CompactTextString(m) } func (*VerifyMessageResponse) ProtoMessage() {} func (*VerifyMessageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{30} + return fileDescriptor_rpc_61aed0266ec39391, []int{30} } func (m *VerifyMessageResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_VerifyMessageResponse.Unmarshal(m, b) @@ -1989,7 +1995,7 @@ func (m *ConnectPeerRequest) Reset() { *m = ConnectPeerRequest{} } func (m *ConnectPeerRequest) String() string { return proto.CompactTextString(m) } func (*ConnectPeerRequest) ProtoMessage() {} func (*ConnectPeerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{31} + return fileDescriptor_rpc_61aed0266ec39391, []int{31} } func (m *ConnectPeerRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConnectPeerRequest.Unmarshal(m, b) @@ -2033,7 +2039,7 @@ func (m *ConnectPeerResponse) Reset() { *m = ConnectPeerResponse{} } func (m *ConnectPeerResponse) String() string { return proto.CompactTextString(m) } func (*ConnectPeerResponse) ProtoMessage() {} func (*ConnectPeerResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{32} + return fileDescriptor_rpc_61aed0266ec39391, []int{32} } func (m *ConnectPeerResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConnectPeerResponse.Unmarshal(m, b) @@ -2065,7 +2071,7 @@ func (m *DisconnectPeerRequest) Reset() { *m = DisconnectPeerRequest{} } func (m *DisconnectPeerRequest) String() string { return proto.CompactTextString(m) } func (*DisconnectPeerRequest) ProtoMessage() {} func (*DisconnectPeerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{33} + return fileDescriptor_rpc_61aed0266ec39391, []int{33} } func (m *DisconnectPeerRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DisconnectPeerRequest.Unmarshal(m, b) @@ -2102,7 +2108,7 @@ func (m *DisconnectPeerResponse) Reset() { *m = DisconnectPeerResponse{} func (m *DisconnectPeerResponse) String() string { return proto.CompactTextString(m) } func (*DisconnectPeerResponse) ProtoMessage() {} func (*DisconnectPeerResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{34} + return fileDescriptor_rpc_61aed0266ec39391, []int{34} } func (m *DisconnectPeerResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DisconnectPeerResponse.Unmarshal(m, b) @@ -2136,7 +2142,7 @@ func (m *HTLC) Reset() { *m = HTLC{} } func (m *HTLC) String() string { return proto.CompactTextString(m) } func (*HTLC) ProtoMessage() {} func (*HTLC) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{35} + return fileDescriptor_rpc_61aed0266ec39391, []int{35} } func (m *HTLC) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_HTLC.Unmarshal(m, b) @@ -2250,7 +2256,7 @@ func (m *Channel) Reset() { *m = Channel{} } func (m *Channel) String() string { return proto.CompactTextString(m) } func (*Channel) ProtoMessage() {} func (*Channel) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{36} + return fileDescriptor_rpc_61aed0266ec39391, []int{36} } func (m *Channel) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Channel.Unmarshal(m, b) @@ -2410,7 +2416,7 @@ func (m *ListChannelsRequest) Reset() { *m = ListChannelsRequest{} } func (m *ListChannelsRequest) String() string { return proto.CompactTextString(m) } func (*ListChannelsRequest) ProtoMessage() {} func (*ListChannelsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{37} + return fileDescriptor_rpc_61aed0266ec39391, []int{37} } func (m *ListChannelsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListChannelsRequest.Unmarshal(m, b) @@ -2470,7 +2476,7 @@ func (m *ListChannelsResponse) Reset() { *m = ListChannelsResponse{} } func (m *ListChannelsResponse) String() string { return proto.CompactTextString(m) } func (*ListChannelsResponse) ProtoMessage() {} func (*ListChannelsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{38} + return fileDescriptor_rpc_61aed0266ec39391, []int{38} } func (m *ListChannelsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListChannelsResponse.Unmarshal(m, b) @@ -2527,7 +2533,7 @@ func (m *ChannelCloseSummary) Reset() { *m = ChannelCloseSummary{} } func (m *ChannelCloseSummary) String() string { return proto.CompactTextString(m) } func (*ChannelCloseSummary) ProtoMessage() {} func (*ChannelCloseSummary) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{39} + return fileDescriptor_rpc_61aed0266ec39391, []int{39} } func (m *ChannelCloseSummary) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelCloseSummary.Unmarshal(m, b) @@ -2633,7 +2639,7 @@ func (m *ClosedChannelsRequest) Reset() { *m = ClosedChannelsRequest{} } func (m *ClosedChannelsRequest) String() string { return proto.CompactTextString(m) } func (*ClosedChannelsRequest) ProtoMessage() {} func (*ClosedChannelsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{40} + return fileDescriptor_rpc_61aed0266ec39391, []int{40} } func (m *ClosedChannelsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClosedChannelsRequest.Unmarshal(m, b) @@ -2706,7 +2712,7 @@ func (m *ClosedChannelsResponse) Reset() { *m = ClosedChannelsResponse{} func (m *ClosedChannelsResponse) String() string { return proto.CompactTextString(m) } func (*ClosedChannelsResponse) ProtoMessage() {} func (*ClosedChannelsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{41} + return fileDescriptor_rpc_61aed0266ec39391, []int{41} } func (m *ClosedChannelsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClosedChannelsResponse.Unmarshal(m, b) @@ -2759,7 +2765,7 @@ func (m *Peer) Reset() { *m = Peer{} } func (m *Peer) String() string { return proto.CompactTextString(m) } func (*Peer) ProtoMessage() {} func (*Peer) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{42} + return fileDescriptor_rpc_61aed0266ec39391, []int{42} } func (m *Peer) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Peer.Unmarshal(m, b) @@ -2845,7 +2851,7 @@ func (m *ListPeersRequest) Reset() { *m = ListPeersRequest{} } func (m *ListPeersRequest) String() string { return proto.CompactTextString(m) } func (*ListPeersRequest) ProtoMessage() {} func (*ListPeersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{43} + return fileDescriptor_rpc_61aed0266ec39391, []int{43} } func (m *ListPeersRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListPeersRequest.Unmarshal(m, b) @@ -2877,7 +2883,7 @@ func (m *ListPeersResponse) Reset() { *m = ListPeersResponse{} } func (m *ListPeersResponse) String() string { return proto.CompactTextString(m) } func (*ListPeersResponse) ProtoMessage() {} func (*ListPeersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{44} + return fileDescriptor_rpc_61aed0266ec39391, []int{44} } func (m *ListPeersResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListPeersResponse.Unmarshal(m, b) @@ -2914,7 +2920,7 @@ func (m *GetInfoRequest) Reset() { *m = GetInfoRequest{} } func (m *GetInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetInfoRequest) ProtoMessage() {} func (*GetInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{45} + return fileDescriptor_rpc_61aed0266ec39391, []int{45} } func (m *GetInfoRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetInfoRequest.Unmarshal(m, b) @@ -2974,7 +2980,7 @@ func (m *GetInfoResponse) Reset() { *m = GetInfoResponse{} } func (m *GetInfoResponse) String() string { return proto.CompactTextString(m) } func (*GetInfoResponse) ProtoMessage() {} func (*GetInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{46} + return fileDescriptor_rpc_61aed0266ec39391, []int{46} } func (m *GetInfoResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetInfoResponse.Unmarshal(m, b) @@ -3107,7 +3113,7 @@ func (m *Chain) Reset() { *m = Chain{} } func (m *Chain) String() string { return proto.CompactTextString(m) } func (*Chain) ProtoMessage() {} func (*Chain) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{47} + return fileDescriptor_rpc_61aed0266ec39391, []int{47} } func (m *Chain) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Chain.Unmarshal(m, b) @@ -3154,7 +3160,7 @@ func (m *ConfirmationUpdate) Reset() { *m = ConfirmationUpdate{} } func (m *ConfirmationUpdate) String() string { return proto.CompactTextString(m) } func (*ConfirmationUpdate) ProtoMessage() {} func (*ConfirmationUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{48} + return fileDescriptor_rpc_61aed0266ec39391, []int{48} } func (m *ConfirmationUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConfirmationUpdate.Unmarshal(m, b) @@ -3206,7 +3212,7 @@ func (m *ChannelOpenUpdate) Reset() { *m = ChannelOpenUpdate{} } func (m *ChannelOpenUpdate) String() string { return proto.CompactTextString(m) } func (*ChannelOpenUpdate) ProtoMessage() {} func (*ChannelOpenUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{49} + return fileDescriptor_rpc_61aed0266ec39391, []int{49} } func (m *ChannelOpenUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelOpenUpdate.Unmarshal(m, b) @@ -3245,7 +3251,7 @@ func (m *ChannelCloseUpdate) Reset() { *m = ChannelCloseUpdate{} } func (m *ChannelCloseUpdate) String() string { return proto.CompactTextString(m) } func (*ChannelCloseUpdate) ProtoMessage() {} func (*ChannelCloseUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{50} + return fileDescriptor_rpc_61aed0266ec39391, []int{50} } func (m *ChannelCloseUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelCloseUpdate.Unmarshal(m, b) @@ -3300,7 +3306,7 @@ func (m *CloseChannelRequest) Reset() { *m = CloseChannelRequest{} } func (m *CloseChannelRequest) String() string { return proto.CompactTextString(m) } func (*CloseChannelRequest) ProtoMessage() {} func (*CloseChannelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{51} + return fileDescriptor_rpc_61aed0266ec39391, []int{51} } func (m *CloseChannelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CloseChannelRequest.Unmarshal(m, b) @@ -3362,7 +3368,7 @@ func (m *CloseStatusUpdate) Reset() { *m = CloseStatusUpdate{} } func (m *CloseStatusUpdate) String() string { return proto.CompactTextString(m) } func (*CloseStatusUpdate) ProtoMessage() {} func (*CloseStatusUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{52} + return fileDescriptor_rpc_61aed0266ec39391, []int{52} } func (m *CloseStatusUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CloseStatusUpdate.Unmarshal(m, b) @@ -3505,7 +3511,7 @@ func (m *PendingUpdate) Reset() { *m = PendingUpdate{} } func (m *PendingUpdate) String() string { return proto.CompactTextString(m) } func (*PendingUpdate) ProtoMessage() {} func (*PendingUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{53} + return fileDescriptor_rpc_61aed0266ec39391, []int{53} } func (m *PendingUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PendingUpdate.Unmarshal(m, b) @@ -3571,7 +3577,7 @@ func (m *OpenChannelRequest) Reset() { *m = OpenChannelRequest{} } func (m *OpenChannelRequest) String() string { return proto.CompactTextString(m) } func (*OpenChannelRequest) ProtoMessage() {} func (*OpenChannelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{54} + return fileDescriptor_rpc_61aed0266ec39391, []int{54} } func (m *OpenChannelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OpenChannelRequest.Unmarshal(m, b) @@ -3682,7 +3688,7 @@ func (m *OpenStatusUpdate) Reset() { *m = OpenStatusUpdate{} } func (m *OpenStatusUpdate) String() string { return proto.CompactTextString(m) } func (*OpenStatusUpdate) ProtoMessage() {} func (*OpenStatusUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{55} + return fileDescriptor_rpc_61aed0266ec39391, []int{55} } func (m *OpenStatusUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OpenStatusUpdate.Unmarshal(m, b) @@ -3838,7 +3844,7 @@ func (m *PendingHTLC) Reset() { *m = PendingHTLC{} } func (m *PendingHTLC) String() string { return proto.CompactTextString(m) } func (*PendingHTLC) ProtoMessage() {} func (*PendingHTLC) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{56} + return fileDescriptor_rpc_61aed0266ec39391, []int{56} } func (m *PendingHTLC) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PendingHTLC.Unmarshal(m, b) @@ -3910,7 +3916,7 @@ func (m *PendingChannelsRequest) Reset() { *m = PendingChannelsRequest{} func (m *PendingChannelsRequest) String() string { return proto.CompactTextString(m) } func (*PendingChannelsRequest) ProtoMessage() {} func (*PendingChannelsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{57} + return fileDescriptor_rpc_61aed0266ec39391, []int{57} } func (m *PendingChannelsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PendingChannelsRequest.Unmarshal(m, b) @@ -3950,7 +3956,7 @@ func (m *PendingChannelsResponse) Reset() { *m = PendingChannelsResponse func (m *PendingChannelsResponse) String() string { return proto.CompactTextString(m) } func (*PendingChannelsResponse) ProtoMessage() {} func (*PendingChannelsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{58} + return fileDescriptor_rpc_61aed0266ec39391, []int{58} } func (m *PendingChannelsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PendingChannelsResponse.Unmarshal(m, b) @@ -4022,7 +4028,7 @@ func (m *PendingChannelsResponse_PendingChannel) Reset() { func (m *PendingChannelsResponse_PendingChannel) String() string { return proto.CompactTextString(m) } func (*PendingChannelsResponse_PendingChannel) ProtoMessage() {} func (*PendingChannelsResponse_PendingChannel) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{58, 0} + return fileDescriptor_rpc_61aed0266ec39391, []int{58, 0} } func (m *PendingChannelsResponse_PendingChannel) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PendingChannelsResponse_PendingChannel.Unmarshal(m, b) @@ -4109,7 +4115,7 @@ func (m *PendingChannelsResponse_PendingOpenChannel) String() string { } func (*PendingChannelsResponse_PendingOpenChannel) ProtoMessage() {} func (*PendingChannelsResponse_PendingOpenChannel) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{58, 1} + return fileDescriptor_rpc_61aed0266ec39391, []int{58, 1} } func (m *PendingChannelsResponse_PendingOpenChannel) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PendingChannelsResponse_PendingOpenChannel.Unmarshal(m, b) @@ -4182,7 +4188,7 @@ func (m *PendingChannelsResponse_WaitingCloseChannel) String() string { } func (*PendingChannelsResponse_WaitingCloseChannel) ProtoMessage() {} func (*PendingChannelsResponse_WaitingCloseChannel) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{58, 2} + return fileDescriptor_rpc_61aed0266ec39391, []int{58, 2} } func (m *PendingChannelsResponse_WaitingCloseChannel) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PendingChannelsResponse_WaitingCloseChannel.Unmarshal(m, b) @@ -4230,7 +4236,7 @@ func (m *PendingChannelsResponse_ClosedChannel) Reset() { *m = PendingCh func (m *PendingChannelsResponse_ClosedChannel) String() string { return proto.CompactTextString(m) } func (*PendingChannelsResponse_ClosedChannel) ProtoMessage() {} func (*PendingChannelsResponse_ClosedChannel) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{58, 3} + return fileDescriptor_rpc_61aed0266ec39391, []int{58, 3} } func (m *PendingChannelsResponse_ClosedChannel) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PendingChannelsResponse_ClosedChannel.Unmarshal(m, b) @@ -4294,7 +4300,7 @@ func (m *PendingChannelsResponse_ForceClosedChannel) String() string { } func (*PendingChannelsResponse_ForceClosedChannel) ProtoMessage() {} func (*PendingChannelsResponse_ForceClosedChannel) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{58, 4} + return fileDescriptor_rpc_61aed0266ec39391, []int{58, 4} } func (m *PendingChannelsResponse_ForceClosedChannel) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PendingChannelsResponse_ForceClosedChannel.Unmarshal(m, b) @@ -4373,7 +4379,7 @@ func (m *ChannelEventSubscription) Reset() { *m = ChannelEventSubscripti func (m *ChannelEventSubscription) String() string { return proto.CompactTextString(m) } func (*ChannelEventSubscription) ProtoMessage() {} func (*ChannelEventSubscription) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{59} + return fileDescriptor_rpc_61aed0266ec39391, []int{59} } func (m *ChannelEventSubscription) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelEventSubscription.Unmarshal(m, b) @@ -4410,7 +4416,7 @@ func (m *ChannelEventUpdate) Reset() { *m = ChannelEventUpdate{} } func (m *ChannelEventUpdate) String() string { return proto.CompactTextString(m) } func (*ChannelEventUpdate) ProtoMessage() {} func (*ChannelEventUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{60} + return fileDescriptor_rpc_61aed0266ec39391, []int{60} } func (m *ChannelEventUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelEventUpdate.Unmarshal(m, b) @@ -4622,7 +4628,7 @@ func (m *WalletBalanceRequest) Reset() { *m = WalletBalanceRequest{} } func (m *WalletBalanceRequest) String() string { return proto.CompactTextString(m) } func (*WalletBalanceRequest) ProtoMessage() {} func (*WalletBalanceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{61} + return fileDescriptor_rpc_61aed0266ec39391, []int{61} } func (m *WalletBalanceRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WalletBalanceRequest.Unmarshal(m, b) @@ -4658,7 +4664,7 @@ func (m *WalletBalanceResponse) Reset() { *m = WalletBalanceResponse{} } func (m *WalletBalanceResponse) String() string { return proto.CompactTextString(m) } func (*WalletBalanceResponse) ProtoMessage() {} func (*WalletBalanceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{62} + return fileDescriptor_rpc_61aed0266ec39391, []int{62} } func (m *WalletBalanceResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WalletBalanceResponse.Unmarshal(m, b) @@ -4709,7 +4715,7 @@ func (m *ChannelBalanceRequest) Reset() { *m = ChannelBalanceRequest{} } func (m *ChannelBalanceRequest) String() string { return proto.CompactTextString(m) } func (*ChannelBalanceRequest) ProtoMessage() {} func (*ChannelBalanceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{63} + return fileDescriptor_rpc_61aed0266ec39391, []int{63} } func (m *ChannelBalanceRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelBalanceRequest.Unmarshal(m, b) @@ -4743,7 +4749,7 @@ func (m *ChannelBalanceResponse) Reset() { *m = ChannelBalanceResponse{} func (m *ChannelBalanceResponse) String() string { return proto.CompactTextString(m) } func (*ChannelBalanceResponse) ProtoMessage() {} func (*ChannelBalanceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{64} + return fileDescriptor_rpc_61aed0266ec39391, []int{64} } func (m *ChannelBalanceResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelBalanceResponse.Unmarshal(m, b) @@ -4801,7 +4807,7 @@ func (m *QueryRoutesRequest) Reset() { *m = QueryRoutesRequest{} } func (m *QueryRoutesRequest) String() string { return proto.CompactTextString(m) } func (*QueryRoutesRequest) ProtoMessage() {} func (*QueryRoutesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{65} + return fileDescriptor_rpc_61aed0266ec39391, []int{65} } func (m *QueryRoutesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QueryRoutesRequest.Unmarshal(m, b) @@ -4867,7 +4873,7 @@ func (m *QueryRoutesResponse) Reset() { *m = QueryRoutesResponse{} } func (m *QueryRoutesResponse) String() string { return proto.CompactTextString(m) } func (*QueryRoutesResponse) ProtoMessage() {} func (*QueryRoutesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{66} + return fileDescriptor_rpc_61aed0266ec39391, []int{66} } func (m *QueryRoutesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QueryRoutesResponse.Unmarshal(m, b) @@ -4919,7 +4925,7 @@ func (m *Hop) Reset() { *m = Hop{} } func (m *Hop) String() string { return proto.CompactTextString(m) } func (*Hop) ProtoMessage() {} func (*Hop) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{67} + return fileDescriptor_rpc_61aed0266ec39391, []int{67} } func (m *Hop) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Hop.Unmarshal(m, b) @@ -5040,7 +5046,7 @@ func (m *Route) Reset() { *m = Route{} } func (m *Route) String() string { return proto.CompactTextString(m) } func (*Route) ProtoMessage() {} func (*Route) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{68} + return fileDescriptor_rpc_61aed0266ec39391, []int{68} } func (m *Route) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Route.Unmarshal(m, b) @@ -5116,7 +5122,7 @@ func (m *NodeInfoRequest) Reset() { *m = NodeInfoRequest{} } func (m *NodeInfoRequest) String() string { return proto.CompactTextString(m) } func (*NodeInfoRequest) ProtoMessage() {} func (*NodeInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{69} + return fileDescriptor_rpc_61aed0266ec39391, []int{69} } func (m *NodeInfoRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NodeInfoRequest.Unmarshal(m, b) @@ -5161,7 +5167,7 @@ func (m *NodeInfo) Reset() { *m = NodeInfo{} } func (m *NodeInfo) String() string { return proto.CompactTextString(m) } func (*NodeInfo) ProtoMessage() {} func (*NodeInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{70} + return fileDescriptor_rpc_61aed0266ec39391, []int{70} } func (m *NodeInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NodeInfo.Unmarshal(m, b) @@ -5222,7 +5228,7 @@ func (m *LightningNode) Reset() { *m = LightningNode{} } func (m *LightningNode) String() string { return proto.CompactTextString(m) } func (*LightningNode) ProtoMessage() {} func (*LightningNode) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{71} + return fileDescriptor_rpc_61aed0266ec39391, []int{71} } func (m *LightningNode) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LightningNode.Unmarshal(m, b) @@ -5289,7 +5295,7 @@ func (m *NodeAddress) Reset() { *m = NodeAddress{} } func (m *NodeAddress) String() string { return proto.CompactTextString(m) } func (*NodeAddress) ProtoMessage() {} func (*NodeAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{72} + return fileDescriptor_rpc_61aed0266ec39391, []int{72} } func (m *NodeAddress) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NodeAddress.Unmarshal(m, b) @@ -5339,7 +5345,7 @@ func (m *RoutingPolicy) Reset() { *m = RoutingPolicy{} } func (m *RoutingPolicy) String() string { return proto.CompactTextString(m) } func (*RoutingPolicy) ProtoMessage() {} func (*RoutingPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{73} + return fileDescriptor_rpc_61aed0266ec39391, []int{73} } func (m *RoutingPolicy) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RoutingPolicy.Unmarshal(m, b) @@ -5429,7 +5435,7 @@ func (m *ChannelEdge) Reset() { *m = ChannelEdge{} } func (m *ChannelEdge) String() string { return proto.CompactTextString(m) } func (*ChannelEdge) ProtoMessage() {} func (*ChannelEdge) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{74} + return fileDescriptor_rpc_61aed0266ec39391, []int{74} } func (m *ChannelEdge) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelEdge.Unmarshal(m, b) @@ -5520,7 +5526,7 @@ func (m *ChannelGraphRequest) Reset() { *m = ChannelGraphRequest{} } func (m *ChannelGraphRequest) String() string { return proto.CompactTextString(m) } func (*ChannelGraphRequest) ProtoMessage() {} func (*ChannelGraphRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{75} + return fileDescriptor_rpc_61aed0266ec39391, []int{75} } func (m *ChannelGraphRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelGraphRequest.Unmarshal(m, b) @@ -5562,7 +5568,7 @@ func (m *ChannelGraph) Reset() { *m = ChannelGraph{} } func (m *ChannelGraph) String() string { return proto.CompactTextString(m) } func (*ChannelGraph) ProtoMessage() {} func (*ChannelGraph) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{76} + return fileDescriptor_rpc_61aed0266ec39391, []int{76} } func (m *ChannelGraph) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelGraph.Unmarshal(m, b) @@ -5611,7 +5617,7 @@ func (m *ChanInfoRequest) Reset() { *m = ChanInfoRequest{} } func (m *ChanInfoRequest) String() string { return proto.CompactTextString(m) } func (*ChanInfoRequest) ProtoMessage() {} func (*ChanInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{77} + return fileDescriptor_rpc_61aed0266ec39391, []int{77} } func (m *ChanInfoRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChanInfoRequest.Unmarshal(m, b) @@ -5648,7 +5654,7 @@ func (m *NetworkInfoRequest) Reset() { *m = NetworkInfoRequest{} } func (m *NetworkInfoRequest) String() string { return proto.CompactTextString(m) } func (*NetworkInfoRequest) ProtoMessage() {} func (*NetworkInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{78} + return fileDescriptor_rpc_61aed0266ec39391, []int{78} } func (m *NetworkInfoRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NetworkInfoRequest.Unmarshal(m, b) @@ -5687,7 +5693,7 @@ func (m *NetworkInfo) Reset() { *m = NetworkInfo{} } func (m *NetworkInfo) String() string { return proto.CompactTextString(m) } func (*NetworkInfo) ProtoMessage() {} func (*NetworkInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{79} + return fileDescriptor_rpc_61aed0266ec39391, []int{79} } func (m *NetworkInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NetworkInfo.Unmarshal(m, b) @@ -5780,7 +5786,7 @@ func (m *StopRequest) Reset() { *m = StopRequest{} } func (m *StopRequest) String() string { return proto.CompactTextString(m) } func (*StopRequest) ProtoMessage() {} func (*StopRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{80} + return fileDescriptor_rpc_61aed0266ec39391, []int{80} } func (m *StopRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StopRequest.Unmarshal(m, b) @@ -5810,7 +5816,7 @@ func (m *StopResponse) Reset() { *m = StopResponse{} } func (m *StopResponse) String() string { return proto.CompactTextString(m) } func (*StopResponse) ProtoMessage() {} func (*StopResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{81} + return fileDescriptor_rpc_61aed0266ec39391, []int{81} } func (m *StopResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StopResponse.Unmarshal(m, b) @@ -5840,7 +5846,7 @@ func (m *GraphTopologySubscription) Reset() { *m = GraphTopologySubscrip func (m *GraphTopologySubscription) String() string { return proto.CompactTextString(m) } func (*GraphTopologySubscription) ProtoMessage() {} func (*GraphTopologySubscription) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{82} + return fileDescriptor_rpc_61aed0266ec39391, []int{82} } func (m *GraphTopologySubscription) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GraphTopologySubscription.Unmarshal(m, b) @@ -5873,7 +5879,7 @@ func (m *GraphTopologyUpdate) Reset() { *m = GraphTopologyUpdate{} } func (m *GraphTopologyUpdate) String() string { return proto.CompactTextString(m) } func (*GraphTopologyUpdate) ProtoMessage() {} func (*GraphTopologyUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{83} + return fileDescriptor_rpc_61aed0266ec39391, []int{83} } func (m *GraphTopologyUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GraphTopologyUpdate.Unmarshal(m, b) @@ -5928,7 +5934,7 @@ func (m *NodeUpdate) Reset() { *m = NodeUpdate{} } func (m *NodeUpdate) String() string { return proto.CompactTextString(m) } func (*NodeUpdate) ProtoMessage() {} func (*NodeUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{84} + return fileDescriptor_rpc_61aed0266ec39391, []int{84} } func (m *NodeUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NodeUpdate.Unmarshal(m, b) @@ -5996,7 +6002,7 @@ func (m *ChannelEdgeUpdate) Reset() { *m = ChannelEdgeUpdate{} } func (m *ChannelEdgeUpdate) String() string { return proto.CompactTextString(m) } func (*ChannelEdgeUpdate) ProtoMessage() {} func (*ChannelEdgeUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{85} + return fileDescriptor_rpc_61aed0266ec39391, []int{85} } func (m *ChannelEdgeUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelEdgeUpdate.Unmarshal(m, b) @@ -6076,7 +6082,7 @@ func (m *ClosedChannelUpdate) Reset() { *m = ClosedChannelUpdate{} } func (m *ClosedChannelUpdate) String() string { return proto.CompactTextString(m) } func (*ClosedChannelUpdate) ProtoMessage() {} func (*ClosedChannelUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{86} + return fileDescriptor_rpc_61aed0266ec39391, []int{86} } func (m *ClosedChannelUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClosedChannelUpdate.Unmarshal(m, b) @@ -6146,7 +6152,7 @@ func (m *HopHint) Reset() { *m = HopHint{} } func (m *HopHint) String() string { return proto.CompactTextString(m) } func (*HopHint) ProtoMessage() {} func (*HopHint) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{87} + return fileDescriptor_rpc_61aed0266ec39391, []int{87} } func (m *HopHint) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_HopHint.Unmarshal(m, b) @@ -6215,7 +6221,7 @@ func (m *RouteHint) Reset() { *m = RouteHint{} } func (m *RouteHint) String() string { return proto.CompactTextString(m) } func (*RouteHint) ProtoMessage() {} func (*RouteHint) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{88} + return fileDescriptor_rpc_61aed0266ec39391, []int{88} } func (m *RouteHint) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RouteHint.Unmarshal(m, b) @@ -6330,7 +6336,7 @@ func (m *Invoice) Reset() { *m = Invoice{} } func (m *Invoice) String() string { return proto.CompactTextString(m) } func (*Invoice) ProtoMessage() {} func (*Invoice) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{89} + return fileDescriptor_rpc_61aed0266ec39391, []int{89} } func (m *Invoice) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Invoice.Unmarshal(m, b) @@ -6522,7 +6528,7 @@ func (m *AddInvoiceResponse) Reset() { *m = AddInvoiceResponse{} } func (m *AddInvoiceResponse) String() string { return proto.CompactTextString(m) } func (*AddInvoiceResponse) ProtoMessage() {} func (*AddInvoiceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{90} + return fileDescriptor_rpc_61aed0266ec39391, []int{90} } func (m *AddInvoiceResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddInvoiceResponse.Unmarshal(m, b) @@ -6579,7 +6585,7 @@ func (m *PaymentHash) Reset() { *m = PaymentHash{} } func (m *PaymentHash) String() string { return proto.CompactTextString(m) } func (*PaymentHash) ProtoMessage() {} func (*PaymentHash) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{91} + return fileDescriptor_rpc_61aed0266ec39391, []int{91} } func (m *PaymentHash) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PaymentHash.Unmarshal(m, b) @@ -6635,7 +6641,7 @@ func (m *ListInvoiceRequest) Reset() { *m = ListInvoiceRequest{} } func (m *ListInvoiceRequest) String() string { return proto.CompactTextString(m) } func (*ListInvoiceRequest) ProtoMessage() {} func (*ListInvoiceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{92} + return fileDescriptor_rpc_61aed0266ec39391, []int{92} } func (m *ListInvoiceRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListInvoiceRequest.Unmarshal(m, b) @@ -6705,7 +6711,7 @@ func (m *ListInvoiceResponse) Reset() { *m = ListInvoiceResponse{} } func (m *ListInvoiceResponse) String() string { return proto.CompactTextString(m) } func (*ListInvoiceResponse) ProtoMessage() {} func (*ListInvoiceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{93} + return fileDescriptor_rpc_61aed0266ec39391, []int{93} } func (m *ListInvoiceResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListInvoiceResponse.Unmarshal(m, b) @@ -6768,7 +6774,7 @@ func (m *InvoiceSubscription) Reset() { *m = InvoiceSubscription{} } func (m *InvoiceSubscription) String() string { return proto.CompactTextString(m) } func (*InvoiceSubscription) ProtoMessage() {} func (*InvoiceSubscription) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{94} + return fileDescriptor_rpc_61aed0266ec39391, []int{94} } func (m *InvoiceSubscription) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvoiceSubscription.Unmarshal(m, b) @@ -6828,7 +6834,7 @@ func (m *Payment) Reset() { *m = Payment{} } func (m *Payment) String() string { return proto.CompactTextString(m) } func (*Payment) ProtoMessage() {} func (*Payment) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{95} + return fileDescriptor_rpc_61aed0266ec39391, []int{95} } func (m *Payment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Payment.Unmarshal(m, b) @@ -6915,7 +6921,7 @@ func (m *ListPaymentsRequest) Reset() { *m = ListPaymentsRequest{} } func (m *ListPaymentsRequest) String() string { return proto.CompactTextString(m) } func (*ListPaymentsRequest) ProtoMessage() {} func (*ListPaymentsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{96} + return fileDescriptor_rpc_61aed0266ec39391, []int{96} } func (m *ListPaymentsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListPaymentsRequest.Unmarshal(m, b) @@ -6947,7 +6953,7 @@ func (m *ListPaymentsResponse) Reset() { *m = ListPaymentsResponse{} } func (m *ListPaymentsResponse) String() string { return proto.CompactTextString(m) } func (*ListPaymentsResponse) ProtoMessage() {} func (*ListPaymentsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{97} + return fileDescriptor_rpc_61aed0266ec39391, []int{97} } func (m *ListPaymentsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListPaymentsResponse.Unmarshal(m, b) @@ -6984,7 +6990,7 @@ func (m *DeleteAllPaymentsRequest) Reset() { *m = DeleteAllPaymentsReque func (m *DeleteAllPaymentsRequest) String() string { return proto.CompactTextString(m) } func (*DeleteAllPaymentsRequest) ProtoMessage() {} func (*DeleteAllPaymentsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{98} + return fileDescriptor_rpc_61aed0266ec39391, []int{98} } func (m *DeleteAllPaymentsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteAllPaymentsRequest.Unmarshal(m, b) @@ -7014,7 +7020,7 @@ func (m *DeleteAllPaymentsResponse) Reset() { *m = DeleteAllPaymentsResp func (m *DeleteAllPaymentsResponse) String() string { return proto.CompactTextString(m) } func (*DeleteAllPaymentsResponse) ProtoMessage() {} func (*DeleteAllPaymentsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{99} + return fileDescriptor_rpc_61aed0266ec39391, []int{99} } func (m *DeleteAllPaymentsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteAllPaymentsResponse.Unmarshal(m, b) @@ -7045,7 +7051,7 @@ func (m *AbandonChannelRequest) Reset() { *m = AbandonChannelRequest{} } func (m *AbandonChannelRequest) String() string { return proto.CompactTextString(m) } func (*AbandonChannelRequest) ProtoMessage() {} func (*AbandonChannelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{100} + return fileDescriptor_rpc_61aed0266ec39391, []int{100} } func (m *AbandonChannelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AbandonChannelRequest.Unmarshal(m, b) @@ -7082,7 +7088,7 @@ func (m *AbandonChannelResponse) Reset() { *m = AbandonChannelResponse{} func (m *AbandonChannelResponse) String() string { return proto.CompactTextString(m) } func (*AbandonChannelResponse) ProtoMessage() {} func (*AbandonChannelResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{101} + return fileDescriptor_rpc_61aed0266ec39391, []int{101} } func (m *AbandonChannelResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AbandonChannelResponse.Unmarshal(m, b) @@ -7114,7 +7120,7 @@ func (m *DebugLevelRequest) Reset() { *m = DebugLevelRequest{} } func (m *DebugLevelRequest) String() string { return proto.CompactTextString(m) } func (*DebugLevelRequest) ProtoMessage() {} func (*DebugLevelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{102} + return fileDescriptor_rpc_61aed0266ec39391, []int{102} } func (m *DebugLevelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DebugLevelRequest.Unmarshal(m, b) @@ -7159,7 +7165,7 @@ func (m *DebugLevelResponse) Reset() { *m = DebugLevelResponse{} } func (m *DebugLevelResponse) String() string { return proto.CompactTextString(m) } func (*DebugLevelResponse) ProtoMessage() {} func (*DebugLevelResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{103} + return fileDescriptor_rpc_61aed0266ec39391, []int{103} } func (m *DebugLevelResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DebugLevelResponse.Unmarshal(m, b) @@ -7198,7 +7204,7 @@ func (m *PayReqString) Reset() { *m = PayReqString{} } func (m *PayReqString) String() string { return proto.CompactTextString(m) } func (*PayReqString) ProtoMessage() {} func (*PayReqString) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{104} + return fileDescriptor_rpc_61aed0266ec39391, []int{104} } func (m *PayReqString) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PayReqString.Unmarshal(m, b) @@ -7245,7 +7251,7 @@ func (m *PayReq) Reset() { *m = PayReq{} } func (m *PayReq) String() string { return proto.CompactTextString(m) } func (*PayReq) ProtoMessage() {} func (*PayReq) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{105} + return fileDescriptor_rpc_61aed0266ec39391, []int{105} } func (m *PayReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PayReq.Unmarshal(m, b) @@ -7345,7 +7351,7 @@ func (m *FeeReportRequest) Reset() { *m = FeeReportRequest{} } func (m *FeeReportRequest) String() string { return proto.CompactTextString(m) } func (*FeeReportRequest) ProtoMessage() {} func (*FeeReportRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{106} + return fileDescriptor_rpc_61aed0266ec39391, []int{106} } func (m *FeeReportRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FeeReportRequest.Unmarshal(m, b) @@ -7383,7 +7389,7 @@ func (m *ChannelFeeReport) Reset() { *m = ChannelFeeReport{} } func (m *ChannelFeeReport) String() string { return proto.CompactTextString(m) } func (*ChannelFeeReport) ProtoMessage() {} func (*ChannelFeeReport) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{107} + return fileDescriptor_rpc_61aed0266ec39391, []int{107} } func (m *ChannelFeeReport) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelFeeReport.Unmarshal(m, b) @@ -7449,7 +7455,7 @@ func (m *FeeReportResponse) Reset() { *m = FeeReportResponse{} } func (m *FeeReportResponse) String() string { return proto.CompactTextString(m) } func (*FeeReportResponse) ProtoMessage() {} func (*FeeReportResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{108} + return fileDescriptor_rpc_61aed0266ec39391, []int{108} } func (m *FeeReportResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FeeReportResponse.Unmarshal(m, b) @@ -7517,7 +7523,7 @@ func (m *PolicyUpdateRequest) Reset() { *m = PolicyUpdateRequest{} } func (m *PolicyUpdateRequest) String() string { return proto.CompactTextString(m) } func (*PolicyUpdateRequest) ProtoMessage() {} func (*PolicyUpdateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{109} + return fileDescriptor_rpc_61aed0266ec39391, []int{109} } func (m *PolicyUpdateRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PolicyUpdateRequest.Unmarshal(m, b) @@ -7678,7 +7684,7 @@ func (m *PolicyUpdateResponse) Reset() { *m = PolicyUpdateResponse{} } func (m *PolicyUpdateResponse) String() string { return proto.CompactTextString(m) } func (*PolicyUpdateResponse) ProtoMessage() {} func (*PolicyUpdateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{110} + return fileDescriptor_rpc_61aed0266ec39391, []int{110} } func (m *PolicyUpdateResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PolicyUpdateResponse.Unmarshal(m, b) @@ -7716,7 +7722,7 @@ func (m *ForwardingHistoryRequest) Reset() { *m = ForwardingHistoryReque func (m *ForwardingHistoryRequest) String() string { return proto.CompactTextString(m) } func (*ForwardingHistoryRequest) ProtoMessage() {} func (*ForwardingHistoryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{111} + return fileDescriptor_rpc_61aed0266ec39391, []int{111} } func (m *ForwardingHistoryRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ForwardingHistoryRequest.Unmarshal(m, b) @@ -7788,7 +7794,7 @@ func (m *ForwardingEvent) Reset() { *m = ForwardingEvent{} } func (m *ForwardingEvent) String() string { return proto.CompactTextString(m) } func (*ForwardingEvent) ProtoMessage() {} func (*ForwardingEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{112} + return fileDescriptor_rpc_61aed0266ec39391, []int{112} } func (m *ForwardingEvent) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ForwardingEvent.Unmarshal(m, b) @@ -7871,7 +7877,7 @@ func (m *ForwardingHistoryResponse) Reset() { *m = ForwardingHistoryResp func (m *ForwardingHistoryResponse) String() string { return proto.CompactTextString(m) } func (*ForwardingHistoryResponse) ProtoMessage() {} func (*ForwardingHistoryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_rpc_cb256459ade06eab, []int{113} + return fileDescriptor_rpc_61aed0266ec39391, []int{113} } func (m *ForwardingHistoryResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ForwardingHistoryResponse.Unmarshal(m, b) @@ -10371,447 +10377,448 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{ Metadata: "rpc.proto", } -func init() { proto.RegisterFile("rpc.proto", fileDescriptor_rpc_cb256459ade06eab) } +func init() { proto.RegisterFile("rpc.proto", fileDescriptor_rpc_61aed0266ec39391) } -var fileDescriptor_rpc_cb256459ade06eab = []byte{ - // 7015 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x5f, 0x6c, 0x24, 0xc9, - 0x59, 0xdf, 0x9e, 0x3f, 0xf6, 0xcc, 0x37, 0xe3, 0xf1, 0xb8, 0xfc, 0x67, 0x67, 0xe7, 0xf6, 0xf6, - 0xf6, 0x3a, 0xcb, 0xad, 0xe3, 0x1c, 0xeb, 0xbd, 0x4d, 0x72, 0x5c, 0xee, 0x48, 0xc0, 0x6b, 0x7b, - 0xd7, 0x9b, 0xf8, 0xbc, 0x4e, 0x7b, 0x37, 0x4b, 0x2e, 0x41, 0x93, 0xf6, 0x4c, 0x79, 0xdc, 0xb7, - 0x3d, 0xdd, 0x93, 0xee, 0x1e, 0x7b, 0x27, 0xc7, 0x49, 0x08, 0x10, 0x91, 0x10, 0x08, 0x01, 0x2f, - 0x04, 0x05, 0x21, 0x05, 0x24, 0xc8, 0x23, 0x0f, 0x89, 0x90, 0x80, 0x37, 0xc4, 0x03, 0x12, 0x42, - 0x90, 0x47, 0x24, 0x24, 0x04, 0x2f, 0xc0, 0x03, 0x12, 0x12, 0x8f, 0x48, 0xa8, 0xbe, 0xfa, 0xd3, - 0x55, 0xdd, 0x3d, 0xeb, 0xbd, 0x24, 0xf0, 0x64, 0xd7, 0xaf, 0xbe, 0xae, 0xbf, 0xdf, 0xbf, 0xfa, - 0xea, 0xab, 0x81, 0x7a, 0x34, 0xee, 0xdf, 0x1a, 0x47, 0x61, 0x12, 0x92, 0xaa, 0x1f, 0x44, 0xe3, - 0x7e, 0xf7, 0xea, 0x30, 0x0c, 0x87, 0x3e, 0xdd, 0x74, 0xc7, 0xde, 0xa6, 0x1b, 0x04, 0x61, 0xe2, - 0x26, 0x5e, 0x18, 0xc4, 0x9c, 0xc8, 0xfe, 0x1a, 0xb4, 0xee, 0xd3, 0xe0, 0x88, 0xd2, 0x81, 0x43, - 0xbf, 0x3e, 0xa1, 0x71, 0x42, 0x3e, 0x01, 0x4b, 0x2e, 0xfd, 0x06, 0xa5, 0x83, 0xde, 0xd8, 0x8d, - 0xe3, 0xf1, 0x69, 0xe4, 0xc6, 0xb4, 0x63, 0x5d, 0xb7, 0xd6, 0x9b, 0x4e, 0x9b, 0x57, 0x1c, 0x2a, - 0x9c, 0xbc, 0x0a, 0xcd, 0x98, 0x91, 0xd2, 0x20, 0x89, 0xc2, 0xf1, 0xb4, 0x53, 0x42, 0xba, 0x06, - 0xc3, 0x76, 0x39, 0x64, 0xfb, 0xb0, 0xa8, 0x7a, 0x88, 0xc7, 0x61, 0x10, 0x53, 0x72, 0x1b, 0x56, - 0xfa, 0xde, 0xf8, 0x94, 0x46, 0x3d, 0xfc, 0x78, 0x14, 0xd0, 0x51, 0x18, 0x78, 0xfd, 0x8e, 0x75, - 0xbd, 0xbc, 0x5e, 0x77, 0x08, 0xaf, 0x63, 0x5f, 0xbc, 0x2b, 0x6a, 0xc8, 0x4d, 0x58, 0xa4, 0x01, - 0xc7, 0xe9, 0x00, 0xbf, 0x12, 0x5d, 0xb5, 0x52, 0x98, 0x7d, 0x60, 0xff, 0x95, 0x05, 0x4b, 0x0f, - 0x02, 0x2f, 0x79, 0xe2, 0xfa, 0x3e, 0x4d, 0xe4, 0x9c, 0x6e, 0xc2, 0xe2, 0x39, 0x02, 0x38, 0xa7, - 0xf3, 0x30, 0x1a, 0x88, 0x19, 0xb5, 0x38, 0x7c, 0x28, 0xd0, 0x99, 0x23, 0x2b, 0xcd, 0x1c, 0x59, - 0xe1, 0x72, 0x95, 0x67, 0x2c, 0xd7, 0x4d, 0x58, 0x8c, 0x68, 0x3f, 0x3c, 0xa3, 0xd1, 0xb4, 0x77, - 0xee, 0x05, 0x83, 0xf0, 0xbc, 0x53, 0xb9, 0x6e, 0xad, 0x57, 0x9d, 0x96, 0x84, 0x9f, 0x20, 0x6a, - 0xaf, 0x00, 0xd1, 0x67, 0xc1, 0xd7, 0xcd, 0x1e, 0xc2, 0xf2, 0xe3, 0xc0, 0x0f, 0xfb, 0x4f, 0x7f, - 0xc8, 0xd9, 0x15, 0x74, 0x5f, 0x2a, 0xec, 0x7e, 0x0d, 0x56, 0xcc, 0x8e, 0xc4, 0x00, 0x28, 0xac, - 0x6e, 0x9f, 0xba, 0xc1, 0x90, 0xca, 0x26, 0xe5, 0x10, 0x3e, 0x0e, 0xed, 0xfe, 0x24, 0x8a, 0x68, - 0x90, 0x1b, 0xc3, 0xa2, 0xc0, 0xd5, 0x20, 0x5e, 0x85, 0x66, 0x40, 0xcf, 0x53, 0x32, 0xc1, 0x32, - 0x01, 0x3d, 0x97, 0x24, 0x76, 0x07, 0xd6, 0xb2, 0xdd, 0x88, 0x01, 0xfc, 0xb3, 0x05, 0x95, 0xc7, - 0xc9, 0xb3, 0x90, 0xdc, 0x82, 0x4a, 0x32, 0x1d, 0x73, 0xc6, 0x6c, 0xdd, 0x21, 0xb7, 0x90, 0xd7, - 0x6f, 0x6d, 0x0d, 0x06, 0x11, 0x8d, 0xe3, 0x47, 0xd3, 0x31, 0x75, 0x9a, 0x2e, 0x2f, 0xf4, 0x18, - 0x1d, 0xe9, 0xc0, 0xbc, 0x28, 0x63, 0x87, 0x75, 0x47, 0x16, 0xc9, 0x35, 0x00, 0x77, 0x14, 0x4e, - 0x82, 0xa4, 0x17, 0xbb, 0x09, 0xee, 0x5c, 0xd9, 0xd1, 0x10, 0x72, 0x15, 0xea, 0xe3, 0xa7, 0xbd, - 0xb8, 0x1f, 0x79, 0xe3, 0x04, 0x77, 0xab, 0xee, 0xa4, 0x00, 0xf9, 0x04, 0xd4, 0xc2, 0x49, 0x32, - 0x0e, 0xbd, 0x20, 0xe9, 0x54, 0xaf, 0x5b, 0xeb, 0x8d, 0x3b, 0x8b, 0x62, 0x2c, 0x0f, 0x27, 0xc9, - 0x21, 0x83, 0x1d, 0x45, 0x40, 0x6e, 0xc0, 0x42, 0x3f, 0x0c, 0x4e, 0xbc, 0x68, 0xc4, 0x65, 0xb0, - 0x33, 0x87, 0xbd, 0x99, 0xa0, 0xfd, 0xad, 0x12, 0x34, 0x1e, 0x45, 0x6e, 0x10, 0xbb, 0x7d, 0x06, - 0xb0, 0xa1, 0x27, 0xcf, 0x7a, 0xa7, 0x6e, 0x7c, 0x8a, 0xb3, 0xad, 0x3b, 0xb2, 0x48, 0xd6, 0x60, - 0x8e, 0x0f, 0x14, 0xe7, 0x54, 0x76, 0x44, 0x89, 0xbc, 0x0e, 0x4b, 0xc1, 0x64, 0xd4, 0x33, 0xfb, - 0x2a, 0xe3, 0x4e, 0xe7, 0x2b, 0xd8, 0x02, 0x1c, 0xb3, 0xbd, 0xe6, 0x5d, 0xf0, 0x19, 0x6a, 0x08, - 0xb1, 0xa1, 0x29, 0x4a, 0xd4, 0x1b, 0x9e, 0xf2, 0x69, 0x56, 0x1d, 0x03, 0x63, 0x6d, 0x24, 0xde, - 0x88, 0xf6, 0xe2, 0xc4, 0x1d, 0x8d, 0xc5, 0xb4, 0x34, 0x04, 0xeb, 0xc3, 0xc4, 0xf5, 0x7b, 0x27, - 0x94, 0xc6, 0x9d, 0x79, 0x51, 0xaf, 0x10, 0xf2, 0x1a, 0xb4, 0x06, 0x34, 0x4e, 0x7a, 0x62, 0x53, - 0x68, 0xdc, 0xa9, 0xa1, 0xc4, 0x65, 0x50, 0xc6, 0x19, 0xf7, 0x69, 0xa2, 0xad, 0x4e, 0x2c, 0x38, - 0xd0, 0xde, 0x07, 0xa2, 0xc1, 0x3b, 0x34, 0x71, 0x3d, 0x3f, 0x26, 0x6f, 0x42, 0x33, 0xd1, 0x88, - 0x51, 0xc3, 0x34, 0x14, 0xbb, 0x68, 0x1f, 0x38, 0x06, 0x9d, 0x7d, 0x1f, 0x6a, 0xf7, 0x28, 0xdd, - 0xf7, 0x46, 0x5e, 0x42, 0xd6, 0xa0, 0x7a, 0xe2, 0x3d, 0xa3, 0x9c, 0xa1, 0xcb, 0x7b, 0x97, 0x1c, - 0x5e, 0x24, 0x5d, 0x98, 0x1f, 0xd3, 0xa8, 0x4f, 0xe5, 0xf2, 0xef, 0x5d, 0x72, 0x24, 0x70, 0x77, - 0x1e, 0xaa, 0x3e, 0xfb, 0xd8, 0xfe, 0x87, 0x12, 0x34, 0x8e, 0x68, 0xa0, 0x04, 0x85, 0x40, 0x85, - 0x4d, 0x49, 0x08, 0x07, 0xfe, 0x4f, 0x5e, 0x81, 0x06, 0x4e, 0x33, 0x4e, 0x22, 0x2f, 0x18, 0x0a, - 0xfe, 0x04, 0x06, 0x1d, 0x21, 0x42, 0xda, 0x50, 0x76, 0x47, 0x92, 0x37, 0xd9, 0xbf, 0x4c, 0x88, - 0xc6, 0xee, 0x74, 0xc4, 0xe4, 0x4d, 0xed, 0x5a, 0xd3, 0x69, 0x08, 0x6c, 0x8f, 0x6d, 0xdb, 0x2d, - 0x58, 0xd6, 0x49, 0x64, 0xeb, 0x55, 0x6c, 0x7d, 0x49, 0xa3, 0x14, 0x9d, 0xdc, 0x84, 0x45, 0x49, - 0x1f, 0xf1, 0xc1, 0xe2, 0x3e, 0xd6, 0x9d, 0x96, 0x80, 0xe5, 0x14, 0xd6, 0xa1, 0x7d, 0xe2, 0x05, - 0xae, 0xdf, 0xeb, 0xfb, 0xc9, 0x59, 0x6f, 0x40, 0xfd, 0xc4, 0xc5, 0x1d, 0xad, 0x3a, 0x2d, 0xc4, - 0xb7, 0xfd, 0xe4, 0x6c, 0x87, 0xa1, 0xe4, 0x75, 0xa8, 0x9f, 0x50, 0xda, 0xc3, 0x95, 0xe8, 0xd4, - 0x0c, 0xe9, 0x90, 0xab, 0xeb, 0xd4, 0x4e, 0xe4, 0x3a, 0xaf, 0x43, 0x3b, 0x9c, 0x24, 0xc3, 0xd0, - 0x0b, 0x86, 0xbd, 0xfe, 0xa9, 0x1b, 0xf4, 0xbc, 0x41, 0xa7, 0x7e, 0xdd, 0x5a, 0xaf, 0x38, 0x2d, - 0x89, 0x33, 0xad, 0xf0, 0x60, 0x60, 0xff, 0x99, 0x05, 0x4d, 0xbe, 0xa8, 0xc2, 0xa0, 0xdc, 0x80, - 0x05, 0x39, 0x76, 0x1a, 0x45, 0x61, 0x24, 0x04, 0xc5, 0x04, 0xc9, 0x06, 0xb4, 0x25, 0x30, 0x8e, - 0xa8, 0x37, 0x72, 0x87, 0x54, 0x68, 0x9f, 0x1c, 0x4e, 0xee, 0xa4, 0x2d, 0x46, 0xe1, 0x24, 0xe1, - 0x2a, 0xbd, 0x71, 0xa7, 0x29, 0x86, 0xef, 0x30, 0xcc, 0x31, 0x49, 0x98, 0xa0, 0x14, 0x6c, 0x8a, - 0x81, 0xd9, 0xdf, 0xb3, 0x80, 0xb0, 0xa1, 0x3f, 0x0a, 0x79, 0x13, 0x62, 0x4d, 0xb3, 0xfb, 0x69, - 0xbd, 0xf0, 0x7e, 0x96, 0x66, 0xed, 0xe7, 0x3a, 0xcc, 0xe1, 0xb0, 0x98, 0xe4, 0x97, 0xb3, 0x43, - 0xbf, 0x5b, 0xea, 0x58, 0x8e, 0xa8, 0x27, 0x36, 0x54, 0xf9, 0x1c, 0x2b, 0x05, 0x73, 0xe4, 0x55, - 0xf6, 0x77, 0x2c, 0x68, 0xb2, 0xd5, 0x0f, 0xa8, 0x8f, 0x5a, 0x8d, 0xdc, 0x06, 0x72, 0x32, 0x09, - 0x06, 0x6c, 0xb3, 0x92, 0x67, 0xde, 0xa0, 0x77, 0x3c, 0x65, 0x5d, 0xe1, 0xb8, 0xf7, 0x2e, 0x39, - 0x05, 0x75, 0xe4, 0x75, 0x68, 0x1b, 0x68, 0x9c, 0x44, 0x7c, 0xf4, 0x7b, 0x97, 0x9c, 0x5c, 0x0d, - 0x5b, 0x4c, 0xa6, 0x37, 0x27, 0x49, 0xcf, 0x0b, 0x06, 0xf4, 0x19, 0xae, 0xff, 0x82, 0x63, 0x60, - 0x77, 0x5b, 0xd0, 0xd4, 0xbf, 0xb3, 0xdf, 0x87, 0x9a, 0xd4, 0xba, 0xa8, 0x71, 0x32, 0xe3, 0x72, - 0x34, 0x84, 0x74, 0xa1, 0x66, 0x8e, 0xc2, 0xa9, 0x7d, 0x94, 0xbe, 0xed, 0xcf, 0x41, 0x7b, 0x9f, - 0xa9, 0xbe, 0xc0, 0x0b, 0x86, 0xc2, 0xec, 0x30, 0x7d, 0x3c, 0x9e, 0x1c, 0x3f, 0xa5, 0x53, 0xc1, - 0x7f, 0xa2, 0xc4, 0x84, 0xfe, 0x34, 0x8c, 0x13, 0xd1, 0x0f, 0xfe, 0x6f, 0xff, 0x8b, 0x05, 0x8b, - 0x8c, 0x11, 0xde, 0x75, 0x83, 0xa9, 0xe4, 0x82, 0x7d, 0x68, 0xb2, 0xa6, 0x1e, 0x85, 0x5b, 0x5c, - 0xab, 0x73, 0x6d, 0xb5, 0x2e, 0xf6, 0x23, 0x43, 0x7d, 0x4b, 0x27, 0x65, 0xce, 0xd6, 0xd4, 0x31, - 0xbe, 0x66, 0x6a, 0x25, 0x71, 0xa3, 0x21, 0x4d, 0x50, 0xdf, 0x0b, 0xfd, 0x0f, 0x1c, 0xda, 0x0e, - 0x83, 0x13, 0x72, 0x1d, 0x9a, 0xb1, 0x9b, 0xf4, 0xc6, 0x34, 0xc2, 0x35, 0x41, 0xd5, 0x50, 0x76, - 0x20, 0x76, 0x93, 0x43, 0x1a, 0xdd, 0x9d, 0x26, 0xb4, 0xfb, 0x33, 0xb0, 0x94, 0xeb, 0x85, 0x69, - 0xa3, 0x74, 0x8a, 0xec, 0x5f, 0xb2, 0x02, 0xd5, 0x33, 0xd7, 0x9f, 0x50, 0x61, 0x86, 0x78, 0xe1, - 0xed, 0xd2, 0x5b, 0x96, 0xfd, 0x1a, 0xb4, 0xd3, 0x61, 0x0b, 0x61, 0x25, 0x50, 0x61, 0x2b, 0x2d, - 0x1a, 0xc0, 0xff, 0xed, 0x6f, 0x5b, 0x9c, 0x70, 0x3b, 0xf4, 0x94, 0x4a, 0x67, 0x84, 0x4c, 0xf3, - 0x4b, 0x42, 0xf6, 0xff, 0x4c, 0x93, 0xf7, 0xa3, 0x4f, 0x96, 0x5c, 0x81, 0x5a, 0x4c, 0x83, 0x41, - 0xcf, 0xf5, 0x7d, 0xd4, 0x7c, 0x35, 0x67, 0x9e, 0x95, 0xb7, 0x7c, 0xdf, 0xbe, 0x09, 0x4b, 0xda, - 0xe8, 0x9e, 0x33, 0x8f, 0x03, 0x20, 0xfb, 0x5e, 0x9c, 0x3c, 0x0e, 0xe2, 0xb1, 0xa6, 0x31, 0x5f, - 0x82, 0xfa, 0xc8, 0x0b, 0x70, 0x64, 0x9c, 0x15, 0xab, 0x4e, 0x6d, 0xe4, 0x05, 0x6c, 0x5c, 0x31, - 0x56, 0xba, 0xcf, 0x44, 0x65, 0x49, 0x54, 0xba, 0xcf, 0xb0, 0xd2, 0x7e, 0x0b, 0x96, 0x8d, 0xf6, - 0x44, 0xd7, 0xaf, 0x42, 0x75, 0x92, 0x3c, 0x0b, 0xa5, 0x3d, 0x6b, 0x08, 0x0e, 0x61, 0x9e, 0x91, - 0xc3, 0x6b, 0xec, 0x77, 0x60, 0xe9, 0x80, 0x9e, 0x0b, 0xce, 0x94, 0x03, 0x79, 0xed, 0x42, 0xaf, - 0x09, 0xeb, 0xed, 0x5b, 0x40, 0xf4, 0x8f, 0x45, 0xaf, 0x9a, 0x0f, 0x65, 0x19, 0x3e, 0x94, 0xfd, - 0x1a, 0x90, 0x23, 0x6f, 0x18, 0xbc, 0x4b, 0xe3, 0xd8, 0x1d, 0x2a, 0xa5, 0xd6, 0x86, 0xf2, 0x28, - 0x1e, 0x0a, 0xd9, 0x63, 0xff, 0xda, 0x9f, 0x84, 0x65, 0x83, 0x4e, 0x34, 0x7c, 0x15, 0xea, 0xb1, - 0x37, 0x0c, 0xdc, 0x64, 0x12, 0x51, 0xd1, 0x74, 0x0a, 0xd8, 0xf7, 0x60, 0xe5, 0x4b, 0x34, 0xf2, - 0x4e, 0xa6, 0x17, 0x35, 0x6f, 0xb6, 0x53, 0xca, 0xb6, 0xb3, 0x0b, 0xab, 0x99, 0x76, 0x44, 0xf7, - 0x9c, 0x7d, 0xc5, 0x4e, 0xd6, 0x1c, 0x5e, 0xd0, 0x84, 0xb9, 0xa4, 0x0b, 0xb3, 0xfd, 0x18, 0xc8, - 0x76, 0x18, 0x04, 0xb4, 0x9f, 0x1c, 0x52, 0x1a, 0xa5, 0xa7, 0xa6, 0x94, 0x57, 0x1b, 0x77, 0x2e, - 0x8b, 0x95, 0xcd, 0x6a, 0x08, 0xc1, 0xc4, 0x04, 0x2a, 0x63, 0x1a, 0x8d, 0xb0, 0xe1, 0x9a, 0x83, - 0xff, 0xdb, 0xab, 0xb0, 0x6c, 0x34, 0x2b, 0x1c, 0xde, 0x37, 0x60, 0x75, 0xc7, 0x8b, 0xfb, 0xf9, - 0x0e, 0x3b, 0x30, 0x3f, 0x9e, 0x1c, 0xf7, 0x52, 0x49, 0x94, 0x45, 0xe6, 0x23, 0x65, 0x3f, 0x11, - 0x8d, 0xfd, 0xaa, 0x05, 0x95, 0xbd, 0x47, 0xfb, 0xdb, 0x4c, 0xf9, 0x79, 0x41, 0x3f, 0x1c, 0x31, - 0x03, 0xc2, 0x27, 0xad, 0xca, 0x33, 0x25, 0xec, 0x2a, 0xd4, 0xd1, 0xee, 0x30, 0xb7, 0x4f, 0x1c, - 0x70, 0x52, 0x80, 0xb9, 0x9c, 0xf4, 0xd9, 0xd8, 0x8b, 0xd0, 0xa7, 0x94, 0x9e, 0x62, 0x05, 0xf5, - 0x66, 0xbe, 0xc2, 0xfe, 0x76, 0x15, 0xe6, 0x85, 0x35, 0xc1, 0xfe, 0xfa, 0x89, 0x77, 0x46, 0xc5, - 0x48, 0x44, 0x89, 0xd9, 0xf4, 0x88, 0x8e, 0xc2, 0x84, 0xf6, 0x8c, 0x6d, 0x30, 0x41, 0x74, 0xa9, - 0x79, 0x43, 0x3d, 0xee, 0x84, 0x97, 0x39, 0x95, 0x01, 0xb2, 0xc5, 0x92, 0x1e, 0x45, 0x05, 0x3d, - 0x0a, 0x59, 0x64, 0x2b, 0xd1, 0x77, 0xc7, 0x6e, 0xdf, 0x4b, 0xa6, 0x42, 0x25, 0xa8, 0x32, 0x6b, - 0xdb, 0x0f, 0xfb, 0xae, 0xdf, 0x3b, 0x76, 0x7d, 0x37, 0xe8, 0x53, 0xe9, 0xae, 0x1b, 0x20, 0x73, - 0x5d, 0xc5, 0x90, 0x24, 0x19, 0x77, 0x6f, 0x33, 0x28, 0x33, 0x48, 0xfd, 0x70, 0x34, 0xf2, 0x12, - 0xe6, 0xf1, 0xa2, 0x37, 0x54, 0x76, 0x34, 0x84, 0x1f, 0x0e, 0xb0, 0x74, 0xce, 0x57, 0xaf, 0x2e, - 0x0f, 0x07, 0x1a, 0xc8, 0x5a, 0x61, 0x2e, 0x15, 0x53, 0x63, 0x4f, 0xcf, 0x3b, 0xc0, 0x5b, 0x49, - 0x11, 0xb6, 0x0f, 0x93, 0x20, 0xa6, 0x49, 0xe2, 0xd3, 0x81, 0x1a, 0x50, 0x03, 0xc9, 0xf2, 0x15, - 0xe4, 0x36, 0x2c, 0x73, 0x27, 0x3c, 0x76, 0x93, 0x30, 0x3e, 0xf5, 0xe2, 0x5e, 0xcc, 0xdc, 0xd9, - 0x26, 0xd2, 0x17, 0x55, 0x91, 0xb7, 0xe0, 0x72, 0x06, 0x8e, 0x68, 0x9f, 0x7a, 0x67, 0x74, 0xd0, - 0x59, 0xc0, 0xaf, 0x66, 0x55, 0x93, 0xeb, 0xd0, 0x60, 0x67, 0x8f, 0xc9, 0x78, 0xe0, 0x32, 0x8b, - 0xdc, 0xc2, 0x7d, 0xd0, 0x21, 0xf2, 0x06, 0x2c, 0x8c, 0x29, 0x37, 0xe7, 0xa7, 0x89, 0xdf, 0x8f, - 0x3b, 0x8b, 0x86, 0x76, 0x63, 0x9c, 0xeb, 0x98, 0x14, 0x8c, 0x29, 0xfb, 0x31, 0x3a, 0xa1, 0xee, - 0xb4, 0xd3, 0x46, 0x76, 0x4b, 0x01, 0x94, 0x91, 0xc8, 0x3b, 0x73, 0x13, 0xda, 0x59, 0xe2, 0x0a, - 0x5d, 0x14, 0xd9, 0x77, 0x5e, 0xe0, 0x25, 0x9e, 0x9b, 0x84, 0x51, 0x87, 0x60, 0x5d, 0x0a, 0xd8, - 0x7f, 0x60, 0x71, 0xb5, 0x2b, 0x58, 0x54, 0xa9, 0xcf, 0x57, 0xa0, 0xc1, 0x99, 0xb3, 0x17, 0x06, - 0xfe, 0x54, 0xf0, 0x2b, 0x70, 0xe8, 0x61, 0xe0, 0x4f, 0xc9, 0xc7, 0x60, 0xc1, 0x0b, 0x74, 0x12, - 0x2e, 0xe1, 0x4d, 0x09, 0x22, 0xd1, 0x2b, 0xd0, 0x18, 0x4f, 0x8e, 0x7d, 0xaf, 0xcf, 0x49, 0xca, - 0xbc, 0x15, 0x0e, 0x21, 0x01, 0x73, 0x06, 0xf9, 0x38, 0x39, 0x45, 0x05, 0x29, 0x1a, 0x02, 0x63, - 0x24, 0xf6, 0x5d, 0x58, 0x31, 0x07, 0x28, 0x54, 0xd9, 0x06, 0xd4, 0x04, 0xe7, 0xc7, 0x9d, 0x06, - 0xae, 0x5e, 0x4b, 0xac, 0x9e, 0x20, 0x75, 0x54, 0xbd, 0xfd, 0xfd, 0x0a, 0x2c, 0x0b, 0x74, 0xdb, - 0x0f, 0x63, 0x7a, 0x34, 0x19, 0x8d, 0xdc, 0xa8, 0x40, 0xa4, 0xac, 0x0b, 0x44, 0xaa, 0x64, 0x8a, - 0x14, 0x63, 0xf4, 0x53, 0xd7, 0x0b, 0xb8, 0x27, 0xcb, 0xe5, 0x51, 0x43, 0xc8, 0x3a, 0x2c, 0xf6, - 0xfd, 0x30, 0xe6, 0x5e, 0x9b, 0x7e, 0xe8, 0xcc, 0xc2, 0x79, 0x15, 0x50, 0x2d, 0x52, 0x01, 0xba, - 0x08, 0xcf, 0x65, 0x44, 0xd8, 0x86, 0x26, 0x6b, 0x94, 0x4a, 0x8d, 0x34, 0xcf, 0x3d, 0x39, 0x1d, - 0x63, 0xe3, 0xc9, 0x0a, 0x0c, 0x97, 0xce, 0xc5, 0x22, 0x71, 0x61, 0x67, 0x5a, 0xa6, 0xf1, 0x34, - 0xea, 0xba, 0x10, 0x97, 0x7c, 0x15, 0xb9, 0x07, 0xc0, 0xfb, 0x42, 0xb3, 0x0b, 0x68, 0x76, 0x5f, - 0x33, 0x77, 0x44, 0x5f, 0xfb, 0x5b, 0xac, 0x30, 0x89, 0x28, 0x9a, 0x62, 0xed, 0x4b, 0xfb, 0xd7, - 0x2c, 0x68, 0x68, 0x75, 0x64, 0x15, 0x96, 0xb6, 0x1f, 0x3e, 0x3c, 0xdc, 0x75, 0xb6, 0x1e, 0x3d, - 0xf8, 0xd2, 0x6e, 0x6f, 0x7b, 0xff, 0xe1, 0xd1, 0x6e, 0xfb, 0x12, 0x83, 0xf7, 0x1f, 0x6e, 0x6f, - 0xed, 0xf7, 0xee, 0x3d, 0x74, 0xb6, 0x25, 0x6c, 0x91, 0x35, 0x20, 0xce, 0xee, 0xbb, 0x0f, 0x1f, - 0xed, 0x1a, 0x78, 0x89, 0xb4, 0xa1, 0x79, 0xd7, 0xd9, 0xdd, 0xda, 0xde, 0x13, 0x48, 0x99, 0xac, - 0x40, 0xfb, 0xde, 0xe3, 0x83, 0x9d, 0x07, 0x07, 0xf7, 0x7b, 0xdb, 0x5b, 0x07, 0xdb, 0xbb, 0xfb, - 0xbb, 0x3b, 0xed, 0x0a, 0x59, 0x80, 0xfa, 0xd6, 0xdd, 0xad, 0x83, 0x9d, 0x87, 0x07, 0xbb, 0x3b, - 0xed, 0xaa, 0xfd, 0x4f, 0x16, 0xac, 0xe2, 0xa8, 0x07, 0x59, 0x01, 0xb9, 0x0e, 0x8d, 0x7e, 0x18, - 0x8e, 0x29, 0xd3, 0xf6, 0x4a, 0xa1, 0xeb, 0x10, 0x63, 0x7e, 0xae, 0x3e, 0x4f, 0xc2, 0xa8, 0x4f, - 0x85, 0x7c, 0x00, 0x42, 0xf7, 0x18, 0xc2, 0x98, 0x5f, 0x6c, 0x2f, 0xa7, 0xe0, 0xe2, 0xd1, 0xe0, - 0x18, 0x27, 0x59, 0x83, 0xb9, 0xe3, 0x88, 0xba, 0xfd, 0x53, 0x21, 0x19, 0xa2, 0x44, 0x3e, 0x9e, - 0x1e, 0x30, 0xfa, 0x6c, 0xf5, 0x7d, 0x3a, 0x40, 0x8e, 0xa9, 0x39, 0x8b, 0x02, 0xdf, 0x16, 0x30, - 0x93, 0x7f, 0xf7, 0xd8, 0x0d, 0x06, 0x61, 0x40, 0x07, 0xc2, 0xd9, 0x4b, 0x01, 0xfb, 0x10, 0xd6, - 0xb2, 0xf3, 0x13, 0xf2, 0xf5, 0xa6, 0x26, 0x5f, 0xdc, 0xf7, 0xea, 0xce, 0xde, 0x4d, 0x4d, 0xd6, - 0xfe, 0xdd, 0x82, 0x0a, 0x33, 0xc5, 0xb3, 0xcd, 0xb6, 0xee, 0x5d, 0x95, 0x73, 0x11, 0x2a, 0x3c, - 0xb3, 0x70, 0xe5, 0xcc, 0x0d, 0x98, 0x86, 0xa4, 0xf5, 0x11, 0xed, 0x9f, 0xe1, 0x8c, 0x55, 0x3d, - 0x43, 0x98, 0x80, 0x30, 0xd7, 0x17, 0xbf, 0x16, 0x02, 0x22, 0xcb, 0xb2, 0x0e, 0xbf, 0x9c, 0x4f, - 0xeb, 0xf0, 0xbb, 0x0e, 0xcc, 0x7b, 0xc1, 0x71, 0x38, 0x09, 0x06, 0x28, 0x10, 0x35, 0x47, 0x16, - 0x31, 0x26, 0x86, 0x82, 0xea, 0x8d, 0x24, 0xfb, 0xa7, 0x80, 0x4d, 0xd8, 0xd1, 0x28, 0x46, 0xd7, - 0x43, 0x85, 0x67, 0xde, 0x84, 0x25, 0x0d, 0x4b, 0xdd, 0xd8, 0x31, 0x03, 0x32, 0x6e, 0x2c, 0xfa, - 0x2c, 0xbc, 0xc6, 0x6e, 0x43, 0xeb, 0x3e, 0x4d, 0x1e, 0x04, 0x27, 0xa1, 0x6c, 0xe9, 0x8f, 0x2b, - 0xb0, 0xa8, 0x20, 0xd1, 0xd0, 0x3a, 0x2c, 0x7a, 0x03, 0x1a, 0x24, 0x5e, 0x32, 0xed, 0x19, 0x27, - 0xb0, 0x2c, 0xcc, 0x7c, 0x3d, 0xd7, 0xf7, 0x5c, 0x19, 0x05, 0xe4, 0x05, 0x72, 0x07, 0x56, 0x98, - 0x21, 0x92, 0xb6, 0x45, 0x6d, 0x31, 0x3f, 0xf8, 0x15, 0xd6, 0x31, 0x65, 0xc0, 0x70, 0xa1, 0xed, - 0xd5, 0x27, 0xdc, 0xe7, 0x29, 0xaa, 0x62, 0xab, 0xc6, 0x5b, 0x62, 0x53, 0xae, 0x72, 0x63, 0xa5, - 0x80, 0x5c, 0x98, 0x6d, 0x8e, 0xab, 0xaa, 0x6c, 0x98, 0x4d, 0x0b, 0xd5, 0xd5, 0x72, 0xa1, 0x3a, - 0xa6, 0xca, 0xa6, 0x41, 0x9f, 0x0e, 0x7a, 0x49, 0xd8, 0x43, 0x95, 0x8b, 0xbb, 0x53, 0x73, 0xb2, - 0x30, 0xb9, 0x0a, 0xf3, 0x09, 0x8d, 0x93, 0x80, 0x26, 0xa8, 0x95, 0x6a, 0x18, 0x10, 0x90, 0x10, - 0x73, 0x50, 0x27, 0x91, 0x17, 0x77, 0x9a, 0x18, 0x84, 0xc3, 0xff, 0xc9, 0xa7, 0x60, 0xf5, 0x98, - 0xc6, 0x49, 0xef, 0x94, 0xba, 0x03, 0x1a, 0xe1, 0x4e, 0xf3, 0x68, 0x1f, 0xb7, 0xfb, 0xc5, 0x95, - 0x8c, 0x87, 0xce, 0x68, 0x14, 0x7b, 0x61, 0x80, 0x16, 0xbf, 0xee, 0xc8, 0x22, 0x6b, 0x8f, 0x4d, - 0x5e, 0xd9, 0x4b, 0xb5, 0x82, 0x8b, 0x38, 0xf1, 0xe2, 0x4a, 0x72, 0x03, 0xe6, 0x70, 0x02, 0x71, - 0xa7, 0x6d, 0x44, 0x35, 0xb6, 0x19, 0xe8, 0x88, 0xba, 0xcf, 0x57, 0x6a, 0x8d, 0x76, 0xd3, 0xfe, - 0x29, 0xa8, 0x22, 0xcc, 0x36, 0x9d, 0x2f, 0x06, 0x67, 0x0a, 0x5e, 0x60, 0x43, 0x0b, 0x68, 0x72, - 0x1e, 0x46, 0x4f, 0x65, 0x48, 0x58, 0x14, 0xed, 0x6f, 0xa0, 0x8b, 0xaf, 0x42, 0xa4, 0x8f, 0xd1, - 0x3f, 0x61, 0x07, 0x35, 0xbe, 0xd4, 0xf1, 0xa9, 0x2b, 0x4e, 0x1d, 0x35, 0x04, 0x8e, 0x4e, 0x5d, - 0xa6, 0xb6, 0x8c, 0xdd, 0xe3, 0x07, 0xb9, 0x06, 0x62, 0x7b, 0x7c, 0xf3, 0x6e, 0x40, 0x4b, 0x06, - 0x5f, 0xe3, 0x9e, 0x4f, 0x4f, 0x12, 0x19, 0x57, 0x08, 0x26, 0x23, 0x3c, 0xed, 0xed, 0xd3, 0x93, - 0xc4, 0x3e, 0x80, 0x25, 0xa1, 0x4a, 0x1e, 0x8e, 0xa9, 0xec, 0xfa, 0x33, 0x45, 0x26, 0xb9, 0x71, - 0x67, 0xd9, 0xd4, 0x3d, 0x3c, 0xdc, 0x6c, 0x52, 0xda, 0x0e, 0x10, 0x5d, 0x35, 0x89, 0x06, 0x85, - 0x5d, 0x94, 0x91, 0x13, 0x31, 0x1d, 0x03, 0x63, 0xeb, 0x13, 0x4f, 0xfa, 0x7d, 0x19, 0x32, 0x67, - 0xc7, 0x61, 0x5e, 0xb4, 0xff, 0xc4, 0x82, 0x65, 0x6c, 0x4d, 0x3a, 0x15, 0x42, 0xfd, 0xbf, 0xf5, - 0x11, 0x86, 0xd9, 0xec, 0xeb, 0xd1, 0xa4, 0x15, 0xa8, 0xea, 0x06, 0x81, 0x17, 0x3e, 0xfa, 0xa1, - 0xbe, 0x92, 0x3d, 0xd4, 0xdb, 0xbf, 0x6b, 0xc1, 0x12, 0xd7, 0xc9, 0x89, 0x9b, 0x4c, 0x62, 0x31, - 0xfd, 0x9f, 0x86, 0x05, 0x6e, 0x5c, 0x85, 0x54, 0x8b, 0x81, 0xae, 0x28, 0x05, 0x84, 0x28, 0x27, - 0xde, 0xbb, 0xe4, 0x98, 0xc4, 0xe4, 0x1d, 0x74, 0x70, 0x82, 0x1e, 0xa2, 0x22, 0x30, 0x78, 0xa5, - 0xc0, 0x0c, 0xa8, 0xef, 0x35, 0xf2, 0xbb, 0x35, 0x98, 0xe3, 0xfe, 0xae, 0x7d, 0x1f, 0x16, 0x8c, - 0x8e, 0x8c, 0x80, 0x42, 0x93, 0x07, 0x14, 0x72, 0xa1, 0xa8, 0x52, 0x41, 0x28, 0xea, 0x4f, 0xcb, - 0x40, 0x18, 0xb3, 0x64, 0x76, 0x83, 0x39, 0xdc, 0xe1, 0xc0, 0x38, 0x3e, 0x35, 0x1d, 0x1d, 0x22, - 0xb7, 0x80, 0x68, 0x45, 0x19, 0x51, 0xe4, 0xd6, 0xa7, 0xa0, 0x86, 0xa9, 0x49, 0x61, 0xbc, 0x85, - 0x99, 0x15, 0x07, 0x45, 0xbe, 0xec, 0x85, 0x75, 0xcc, 0xc0, 0x8c, 0x27, 0xf1, 0x29, 0x5e, 0xae, - 0x88, 0x03, 0x96, 0x2c, 0x67, 0xf7, 0x77, 0xee, 0xc2, 0xfd, 0x9d, 0xcf, 0x05, 0x6d, 0x34, 0x17, - 0xbf, 0x66, 0xba, 0xf8, 0x37, 0x60, 0x61, 0xc4, 0x5c, 0xce, 0xc4, 0xef, 0xf7, 0x46, 0xac, 0x77, - 0x71, 0x9e, 0x32, 0x40, 0xb2, 0x01, 0x6d, 0xe1, 0x6e, 0xa4, 0xe7, 0x08, 0xc0, 0x35, 0xce, 0xe1, - 0x4c, 0x7f, 0xa7, 0x61, 0x9c, 0x06, 0x0e, 0x36, 0x05, 0xd8, 0xc9, 0x2b, 0x66, 0x1c, 0xd2, 0x9b, - 0x04, 0xe2, 0x7e, 0x85, 0x0e, 0xf0, 0x24, 0x55, 0x73, 0xf2, 0x15, 0xf6, 0x6f, 0x5b, 0xd0, 0x66, - 0x7b, 0x66, 0xb0, 0xe5, 0xdb, 0x80, 0x52, 0xf1, 0x82, 0x5c, 0x69, 0xd0, 0x92, 0xb7, 0xa0, 0x8e, - 0xe5, 0x70, 0x4c, 0x03, 0xc1, 0x93, 0x1d, 0x93, 0x27, 0x53, 0x7d, 0xb2, 0x77, 0xc9, 0x49, 0x89, - 0x35, 0x8e, 0xfc, 0x3b, 0x0b, 0x1a, 0xa2, 0x97, 0x1f, 0x3a, 0x4c, 0xd0, 0xd5, 0x2e, 0xc4, 0x38, - 0x27, 0xa5, 0xf7, 0x5f, 0xeb, 0xb0, 0x38, 0x72, 0x93, 0x49, 0xc4, 0xec, 0xb1, 0x11, 0x22, 0xc8, - 0xc2, 0xcc, 0xb8, 0xa2, 0xea, 0x8c, 0x7b, 0x89, 0xe7, 0xf7, 0x64, 0xad, 0xb8, 0x7a, 0x2a, 0xaa, - 0x62, 0x1a, 0x24, 0x4e, 0xdc, 0x21, 0x15, 0x76, 0x93, 0x17, 0xec, 0x0e, 0xac, 0x89, 0x09, 0x65, - 0x5c, 0x55, 0xfb, 0x2f, 0x9b, 0x70, 0x39, 0x57, 0xa5, 0xee, 0xa7, 0xc5, 0xd9, 0xd7, 0xf7, 0x46, - 0xc7, 0xa1, 0xf2, 0xf3, 0x2d, 0xfd, 0x58, 0x6c, 0x54, 0x91, 0x21, 0xac, 0x4a, 0x07, 0x81, 0xad, - 0x69, 0x6a, 0xcc, 0x4a, 0x68, 0xa5, 0xde, 0x30, 0xb7, 0x30, 0xdb, 0xa1, 0xc4, 0x75, 0x21, 0x2e, - 0x6e, 0x8f, 0x9c, 0x42, 0x47, 0x79, 0x22, 0x42, 0x59, 0x6b, 0xde, 0x0a, 0xeb, 0xeb, 0xf5, 0x0b, - 0xfa, 0x32, 0x3c, 0x5b, 0x67, 0x66, 0x6b, 0x64, 0x0a, 0xd7, 0x64, 0x1d, 0x6a, 0xe3, 0x7c, 0x7f, - 0x95, 0x17, 0x9a, 0x1b, 0xfa, 0xec, 0x66, 0xa7, 0x17, 0x34, 0x4c, 0xde, 0x87, 0xb5, 0x73, 0xd7, - 0x4b, 0xe4, 0xb0, 0x34, 0xdf, 0xa0, 0x8a, 0x5d, 0xde, 0xb9, 0xa0, 0xcb, 0x27, 0xfc, 0x63, 0xc3, - 0x44, 0xcd, 0x68, 0xb1, 0xfb, 0x37, 0x16, 0xb4, 0xcc, 0x76, 0x18, 0x9b, 0x0a, 0xd9, 0x97, 0x3a, - 0x50, 0x7a, 0x93, 0x19, 0x38, 0x7f, 0x54, 0x2e, 0x15, 0x1d, 0x95, 0xf5, 0x03, 0x6a, 0xf9, 0xa2, - 0x18, 0x53, 0xe5, 0xc5, 0x62, 0x4c, 0xd5, 0xa2, 0x18, 0x53, 0xf7, 0xbf, 0x2d, 0x20, 0x79, 0x5e, - 0x22, 0xf7, 0xf9, 0x59, 0x3d, 0xa0, 0xbe, 0x50, 0x29, 0x3f, 0xf9, 0x62, 0xfc, 0x28, 0xd7, 0x4e, - 0x7e, 0xcd, 0x04, 0x43, 0xbf, 0x3b, 0xd6, 0x9d, 0x9d, 0x05, 0xa7, 0xa8, 0x2a, 0x13, 0xf5, 0xaa, - 0x5c, 0x1c, 0xf5, 0xaa, 0x5e, 0x1c, 0xf5, 0x9a, 0xcb, 0x46, 0xbd, 0xba, 0xbf, 0x62, 0xc1, 0x72, - 0xc1, 0xa6, 0xff, 0xf8, 0x26, 0xce, 0xb6, 0xc9, 0xd0, 0x05, 0x25, 0xb1, 0x4d, 0x3a, 0xd8, 0xfd, - 0x05, 0x58, 0x30, 0x18, 0xfd, 0xc7, 0xd7, 0x7f, 0xd6, 0x5f, 0xe3, 0x7c, 0x66, 0x60, 0xdd, 0xff, - 0x28, 0x01, 0xc9, 0x0b, 0xdb, 0xff, 0xeb, 0x18, 0xf2, 0xeb, 0x54, 0x2e, 0x58, 0xa7, 0xff, 0x53, - 0x3b, 0xf0, 0x3a, 0x2c, 0x89, 0x64, 0x16, 0x2d, 0x42, 0xc3, 0x39, 0x26, 0x5f, 0xc1, 0x3c, 0x56, - 0x33, 0xe4, 0x58, 0x33, 0x12, 0x04, 0x34, 0x63, 0x98, 0x89, 0x3c, 0xda, 0x5d, 0xe8, 0x88, 0x15, - 0xda, 0x3d, 0xa3, 0x41, 0x72, 0x34, 0x39, 0xe6, 0x19, 0x21, 0x5e, 0x18, 0xd8, 0xdf, 0x2b, 0x2b, - 0xa7, 0x1b, 0x2b, 0x85, 0x79, 0xff, 0x14, 0x34, 0x75, 0x65, 0x2e, 0xb6, 0x23, 0x13, 0xa0, 0x63, - 0x86, 0x5d, 0xa7, 0x22, 0x3b, 0xd0, 0x42, 0x95, 0x35, 0x50, 0xdf, 0x95, 0xf0, 0xbb, 0xe7, 0x04, - 0x1e, 0xf6, 0x2e, 0x39, 0x99, 0x6f, 0xc8, 0x67, 0xa1, 0x65, 0x1e, 0xa5, 0x84, 0x8f, 0x50, 0xe4, - 0x9b, 0xb3, 0xcf, 0x4d, 0x62, 0xb2, 0x05, 0xed, 0xec, 0x59, 0x4c, 0xdc, 0x16, 0xcf, 0x68, 0x20, - 0x47, 0x4e, 0xde, 0x12, 0x77, 0x4f, 0x55, 0x0c, 0x82, 0xdd, 0x30, 0x3f, 0xd3, 0x96, 0xe9, 0x16, - 0xff, 0xa3, 0xdd, 0x46, 0x7d, 0x15, 0x20, 0xc5, 0x48, 0x1b, 0x9a, 0x0f, 0x0f, 0x77, 0x0f, 0x7a, - 0xdb, 0x7b, 0x5b, 0x07, 0x07, 0xbb, 0xfb, 0xed, 0x4b, 0x84, 0x40, 0x0b, 0xe3, 0x57, 0x3b, 0x0a, - 0xb3, 0x18, 0xb6, 0xb5, 0xcd, 0x63, 0x63, 0x02, 0x2b, 0x91, 0x15, 0x68, 0x3f, 0x38, 0xc8, 0xa0, - 0xe5, 0xbb, 0x75, 0x25, 0x1f, 0xf6, 0x1a, 0xac, 0xf0, 0x84, 0xa7, 0xbb, 0x9c, 0x3d, 0xa4, 0xaf, - 0xf0, 0xfb, 0x16, 0xac, 0x66, 0x2a, 0xd2, 0xc4, 0x03, 0xee, 0x0e, 0x98, 0x3e, 0x82, 0x09, 0x32, - 0x9e, 0x54, 0x9e, 0x5f, 0x46, 0x83, 0xe4, 0x2b, 0x18, 0xcf, 0x6b, 0x9e, 0x62, 0x46, 0x92, 0x8a, - 0xaa, 0xec, 0xcb, 0x3c, 0x2d, 0x2b, 0xa0, 0x7e, 0x66, 0xe0, 0x27, 0x3c, 0x91, 0x4a, 0xaf, 0x48, - 0xef, 0xf2, 0xcc, 0x21, 0xcb, 0x22, 0x73, 0xf2, 0x0d, 0xd7, 0xc3, 0x1c, 0x6f, 0x61, 0x9d, 0xfd, - 0x7d, 0x0b, 0xc8, 0x17, 0x27, 0x34, 0x9a, 0x62, 0xce, 0x80, 0x0a, 0x07, 0x5e, 0xce, 0x06, 0xbb, - 0xe6, 0xc6, 0x93, 0xe3, 0x2f, 0xd0, 0xa9, 0x4c, 0x68, 0x29, 0xa5, 0x09, 0x2d, 0x2f, 0x03, 0xb0, - 0xc3, 0xb1, 0xca, 0x58, 0x40, 0xe7, 0x3a, 0x98, 0x8c, 0x78, 0x83, 0x85, 0x39, 0x27, 0x95, 0x8b, - 0x73, 0x4e, 0xaa, 0x17, 0xe4, 0x9c, 0xd8, 0xef, 0xc0, 0xb2, 0x31, 0x6e, 0xb5, 0xad, 0x32, 0x77, - 0xc2, 0xca, 0xe7, 0x4e, 0xc8, 0xbc, 0x09, 0xfb, 0x9b, 0x25, 0x28, 0xef, 0x85, 0x63, 0x3d, 0x14, - 0x6e, 0x99, 0xa1, 0x70, 0xe1, 0x1f, 0xf4, 0x94, 0xf9, 0x17, 0x66, 0xc3, 0x00, 0xc9, 0x06, 0xb4, - 0xdc, 0x51, 0xd2, 0x4b, 0x42, 0xe6, 0x0f, 0x9d, 0xbb, 0xd1, 0x80, 0xef, 0x35, 0x86, 0x64, 0x32, - 0x35, 0x64, 0x05, 0xca, 0xca, 0x90, 0x22, 0x01, 0x2b, 0x32, 0x67, 0x1c, 0x2f, 0xd9, 0xa6, 0x22, - 0xac, 0x24, 0x4a, 0x8c, 0x95, 0xcc, 0xef, 0xf9, 0x49, 0x88, 0xab, 0xc3, 0xa2, 0x2a, 0xe6, 0xab, - 0xb0, 0xe5, 0x43, 0x32, 0x11, 0x0f, 0x94, 0x65, 0x3d, 0x76, 0x59, 0x33, 0xaf, 0x1c, 0xff, 0xcd, - 0x82, 0x2a, 0xae, 0x0d, 0x53, 0xed, 0x9c, 0xf7, 0x55, 0x34, 0x1c, 0xd7, 0x64, 0xc1, 0xc9, 0xc2, - 0xc4, 0x36, 0x52, 0xc2, 0x4a, 0x6a, 0x42, 0x7a, 0x5a, 0xd8, 0x75, 0xa8, 0xf3, 0x92, 0x4a, 0x7f, - 0x42, 0x92, 0x14, 0x24, 0xd7, 0xa0, 0x72, 0x1a, 0x8e, 0xa5, 0x2f, 0x0a, 0xf2, 0xaa, 0x28, 0x1c, - 0x3b, 0x88, 0xa7, 0xe3, 0x61, 0xed, 0xf1, 0x69, 0x71, 0x0f, 0x23, 0x0b, 0x33, 0x1f, 0x4b, 0x35, - 0xab, 0x2f, 0x53, 0x06, 0xb5, 0x37, 0x60, 0xf1, 0x20, 0x1c, 0x50, 0x2d, 0x24, 0x39, 0x93, 0xcf, - 0xed, 0x5f, 0xb4, 0xa0, 0x26, 0x89, 0xc9, 0x3a, 0x54, 0x98, 0xe3, 0x98, 0x39, 0xd5, 0xa9, 0x2b, - 0x62, 0x46, 0xe7, 0x20, 0x05, 0xb3, 0xb4, 0x18, 0x29, 0x4a, 0x0f, 0x11, 0x32, 0x4e, 0x94, 0xfa, - 0xc8, 0x6a, 0xb8, 0x19, 0xd7, 0x32, 0x83, 0xda, 0xdf, 0xb5, 0x60, 0xc1, 0xe8, 0x83, 0x5c, 0x87, - 0x86, 0xef, 0xc6, 0x89, 0xb8, 0x76, 0x13, 0xdb, 0xa3, 0x43, 0xfa, 0x46, 0x97, 0xcc, 0x20, 0xb5, - 0x0a, 0x9f, 0x96, 0xf5, 0xf0, 0xe9, 0x6d, 0xa8, 0xa7, 0x89, 0x7b, 0x15, 0xc3, 0x82, 0xb2, 0x1e, - 0xe5, 0xe5, 0x77, 0x4a, 0x84, 0x11, 0xb9, 0xd0, 0x0f, 0x23, 0x71, 0xa3, 0xc3, 0x0b, 0xf6, 0x3b, - 0xd0, 0xd0, 0xe8, 0xf5, 0x00, 0x9d, 0x65, 0x04, 0xe8, 0x54, 0x66, 0x48, 0x29, 0xcd, 0x0c, 0xb1, - 0xff, 0xd3, 0x82, 0x05, 0xc6, 0x83, 0x5e, 0x30, 0x3c, 0x0c, 0x7d, 0xaf, 0x3f, 0xc5, 0xbd, 0x97, - 0xec, 0x26, 0x74, 0x86, 0xe4, 0x45, 0x13, 0x66, 0x5c, 0x2f, 0xc3, 0x02, 0x42, 0x44, 0x55, 0x99, - 0xc9, 0x30, 0x93, 0x80, 0x63, 0x37, 0x16, 0x62, 0x21, 0x5c, 0x1a, 0x03, 0x64, 0x92, 0xc6, 0x80, - 0xc8, 0x4d, 0x68, 0x6f, 0xe4, 0xf9, 0xbe, 0xc7, 0x69, 0xb9, 0xc3, 0x5b, 0x54, 0xc5, 0xfa, 0x1c, - 0x78, 0xb1, 0x7b, 0x9c, 0xde, 0x52, 0xa8, 0x32, 0xc6, 0x2e, 0xdc, 0x67, 0x5a, 0xec, 0x62, 0x0e, - 0xf5, 0x8a, 0x09, 0xda, 0x7f, 0x5e, 0x82, 0x86, 0xb4, 0x9f, 0x83, 0x21, 0x15, 0x17, 0x6f, 0x78, - 0xf0, 0x50, 0xaa, 0x48, 0x43, 0x64, 0xbd, 0x71, 0x54, 0xd1, 0x90, 0x2c, 0x63, 0x94, 0xf3, 0x8c, - 0x71, 0x15, 0xea, 0x8c, 0x41, 0xdf, 0xc0, 0x33, 0x91, 0xc8, 0x85, 0x55, 0x80, 0xac, 0xbd, 0x83, - 0xb5, 0xd5, 0xb4, 0x16, 0x81, 0xe7, 0x5e, 0xd3, 0xbd, 0x05, 0x4d, 0xd1, 0x0c, 0xee, 0x1c, 0x6a, - 0x9e, 0x54, 0x44, 0x8c, 0x5d, 0x75, 0x0c, 0x4a, 0xf9, 0xe5, 0x1d, 0xf9, 0x65, 0xed, 0xa2, 0x2f, - 0x25, 0xa5, 0x7d, 0x5f, 0xdd, 0x7e, 0xde, 0x8f, 0xdc, 0xf1, 0xa9, 0x94, 0xe5, 0xdb, 0xb0, 0xec, - 0x05, 0x7d, 0x7f, 0x32, 0xa0, 0xbd, 0x49, 0xe0, 0x06, 0x41, 0x38, 0x09, 0xfa, 0x54, 0xa6, 0x86, - 0x14, 0x55, 0xd9, 0x03, 0x95, 0x19, 0x87, 0x0d, 0x91, 0x0d, 0xa8, 0xb2, 0x8e, 0xa4, 0xed, 0x28, - 0x16, 0x74, 0x4e, 0x42, 0xd6, 0xa1, 0x4a, 0x07, 0x43, 0x2a, 0xe3, 0x04, 0x24, 0xe3, 0x15, 0x0d, - 0x86, 0xd4, 0xe1, 0x04, 0x4c, 0xed, 0x60, 0xf6, 0xa3, 0xa9, 0x76, 0x4c, 0xbb, 0x33, 0xd7, 0xe7, - 0xf9, 0x91, 0x2b, 0x40, 0x0e, 0xb8, 0xa4, 0xe8, 0x17, 0x27, 0xbf, 0x5c, 0x86, 0x86, 0x06, 0x33, - 0x0d, 0x32, 0x64, 0x03, 0xee, 0x0d, 0x3c, 0x77, 0x44, 0x13, 0x1a, 0x09, 0xe9, 0xc8, 0xa0, 0x8c, - 0xce, 0x3d, 0x1b, 0xf6, 0xc2, 0x49, 0xd2, 0x1b, 0xd0, 0x61, 0x44, 0xb9, 0x2b, 0xc0, 0x4c, 0x93, - 0x81, 0x32, 0x3a, 0xc6, 0x9f, 0x1a, 0x1d, 0xe7, 0xa0, 0x0c, 0x2a, 0xaf, 0x41, 0xf8, 0x1a, 0x55, - 0xd2, 0x6b, 0x10, 0xbe, 0x22, 0x59, 0xdd, 0x57, 0x2d, 0xd0, 0x7d, 0x6f, 0xc2, 0x1a, 0xd7, 0x72, - 0x42, 0x1f, 0xf4, 0x32, 0x8c, 0x35, 0xa3, 0x96, 0x6c, 0x40, 0x9b, 0x8d, 0x59, 0x8a, 0x44, 0xec, - 0x7d, 0x83, 0x87, 0x14, 0x2d, 0x27, 0x87, 0x33, 0x5a, 0x8c, 0xed, 0xe9, 0xb4, 0xfc, 0x5a, 0x38, - 0x87, 0x23, 0xad, 0xfb, 0xcc, 0xa4, 0xad, 0x0b, 0xda, 0x0c, 0x6e, 0x2f, 0x40, 0xe3, 0x28, 0x09, - 0xc7, 0x72, 0x53, 0x5a, 0xd0, 0xe4, 0x45, 0x91, 0xa2, 0xf3, 0x12, 0x5c, 0x41, 0x2e, 0x7a, 0x14, - 0x8e, 0x43, 0x3f, 0x1c, 0x4e, 0x8d, 0x73, 0xc5, 0xdf, 0x5a, 0xb0, 0x6c, 0xd4, 0xa6, 0x07, 0x0b, - 0x0c, 0x49, 0xc8, 0xdc, 0x0a, 0xce, 0x78, 0x4b, 0x9a, 0x0a, 0xe6, 0x84, 0x3c, 0xfa, 0xfb, 0x58, - 0xa4, 0x5b, 0x6c, 0xc1, 0xa2, 0x1c, 0x99, 0xfc, 0x90, 0x73, 0x61, 0x27, 0xcf, 0x85, 0xe2, 0xfb, - 0x96, 0xf8, 0x40, 0x36, 0xf1, 0x59, 0x71, 0xbd, 0xce, 0xcf, 0x19, 0x32, 0x02, 0xa5, 0x4e, 0x26, - 0xfa, 0x39, 0x54, 0x8e, 0xa0, 0xaf, 0xc0, 0xd8, 0xfe, 0x75, 0x0b, 0x20, 0x1d, 0x1d, 0x5e, 0xca, - 0x2a, 0x33, 0xc2, 0xdf, 0x82, 0x68, 0x26, 0xe3, 0x55, 0x68, 0xaa, 0xcb, 0xbc, 0xd4, 0x32, 0x35, - 0x24, 0xc6, 0xdc, 0xca, 0x9b, 0xb0, 0x38, 0xf4, 0xc3, 0x63, 0x34, 0xeb, 0x98, 0xf3, 0x15, 0x8b, - 0x44, 0xa5, 0x16, 0x87, 0xef, 0x09, 0x34, 0x35, 0x63, 0x15, 0xcd, 0x8c, 0xd9, 0xbf, 0x51, 0x52, - 0x77, 0x2f, 0xe9, 0x9c, 0x67, 0x4a, 0x19, 0xb9, 0x93, 0x53, 0xa7, 0x33, 0xae, 0x3a, 0x30, 0xd6, - 0x7a, 0x78, 0x61, 0x28, 0xe8, 0x1d, 0x68, 0x45, 0x5c, 0x5f, 0x49, 0x65, 0x56, 0x79, 0x8e, 0x32, - 0x5b, 0x88, 0x0c, 0x5b, 0xf7, 0x71, 0x68, 0xbb, 0x83, 0x33, 0x1a, 0x25, 0x1e, 0x1e, 0xc6, 0xd1, - 0xd1, 0xe0, 0x2a, 0x78, 0x51, 0xc3, 0xd1, 0xfe, 0xdf, 0x84, 0x45, 0x91, 0x1c, 0xa6, 0x28, 0x45, - 0xa2, 0x77, 0x0a, 0x33, 0x42, 0xfb, 0x0f, 0xe5, 0x35, 0x8f, 0xb9, 0x87, 0xb3, 0x57, 0x44, 0x9f, - 0x5d, 0x29, 0x33, 0xbb, 0x8f, 0x89, 0x2b, 0x97, 0x81, 0x3c, 0xf1, 0x97, 0xb5, 0x54, 0x8c, 0x81, - 0xb8, 0x22, 0x33, 0x97, 0xb4, 0xf2, 0x22, 0x4b, 0x6a, 0xff, 0xc0, 0x82, 0xf9, 0xbd, 0x70, 0xbc, - 0x27, 0x92, 0x52, 0x50, 0x10, 0x54, 0x56, 0xa6, 0x2c, 0x3e, 0x27, 0x5d, 0xa5, 0xd0, 0xbe, 0x2f, - 0x64, 0xed, 0xfb, 0xcf, 0xc2, 0x4b, 0x18, 0x6f, 0x8a, 0xc2, 0x71, 0x18, 0x31, 0x61, 0x74, 0x7d, - 0x6e, 0xcc, 0xc3, 0x20, 0x39, 0x95, 0x6a, 0xec, 0x79, 0x24, 0x78, 0x08, 0x64, 0x87, 0x17, 0xee, - 0x9a, 0x0b, 0x7f, 0x84, 0x6b, 0xb7, 0x7c, 0x85, 0xfd, 0x19, 0xa8, 0xa3, 0x43, 0x8d, 0xd3, 0x7a, - 0x1d, 0xea, 0xa7, 0xe1, 0xb8, 0x77, 0xea, 0x05, 0x89, 0x14, 0xee, 0x56, 0xea, 0xe9, 0xee, 0xe1, - 0x82, 0x28, 0x02, 0xfb, 0x9b, 0x73, 0x30, 0xff, 0x20, 0x38, 0x0b, 0xbd, 0x3e, 0x5e, 0x29, 0x8d, - 0xe8, 0x28, 0x94, 0x39, 0xaa, 0xec, 0x7f, 0x72, 0x15, 0xe6, 0x31, 0x29, 0x6b, 0xcc, 0x99, 0xb6, - 0xc9, 0xaf, 0x7e, 0x05, 0xc4, 0x9c, 0x84, 0x28, 0x4d, 0x8f, 0xe7, 0xe2, 0xa3, 0x21, 0xec, 0xa8, - 0x11, 0xe9, 0xe9, 0xed, 0xa2, 0x94, 0xe6, 0x00, 0x57, 0xb5, 0x1c, 0x60, 0xd6, 0x97, 0x48, 0xa2, - 0xe1, 0x59, 0x16, 0xbc, 0x2f, 0x01, 0xe1, 0xf1, 0x28, 0xa2, 0x3c, 0x5e, 0x88, 0x2e, 0xc7, 0xbc, - 0x38, 0x1e, 0xe9, 0x20, 0x73, 0x4b, 0xf8, 0x07, 0x9c, 0x86, 0x2b, 0x61, 0x1d, 0x62, 0x8e, 0x5e, - 0xf6, 0xe9, 0x42, 0x9d, 0xf3, 0x7e, 0x06, 0x66, 0x9a, 0x7a, 0x40, 0x95, 0x42, 0xe5, 0xf3, 0x00, - 0xfe, 0x04, 0x20, 0x8b, 0x6b, 0x87, 0x2a, 0x9e, 0x3f, 0x27, 0x0f, 0x55, 0x8c, 0x61, 0x5c, 0xdf, - 0x3f, 0x76, 0xfb, 0x4f, 0xf1, 0x65, 0x0a, 0x5e, 0xf2, 0xd4, 0x1d, 0x13, 0xc4, 0x54, 0x98, 0x74, - 0x57, 0xf1, 0x92, 0xbc, 0xe2, 0xe8, 0x10, 0xb9, 0x03, 0x0d, 0x3c, 0x48, 0x8a, 0x7d, 0x6d, 0xe1, - 0xbe, 0xb6, 0xf5, 0x93, 0x26, 0xee, 0xac, 0x4e, 0xa4, 0x5f, 0x77, 0x2d, 0xe6, 0x32, 0xda, 0xdc, - 0xc1, 0x40, 0xdc, 0x12, 0xb6, 0xb1, 0xb7, 0x14, 0x60, 0x56, 0x55, 0x2c, 0x18, 0x27, 0x58, 0x42, - 0x02, 0x03, 0x23, 0xd7, 0xa0, 0xc6, 0x0e, 0x39, 0x63, 0xd7, 0x1b, 0x60, 0x4a, 0x1c, 0x3f, 0x6b, - 0x29, 0x8c, 0xb5, 0x21, 0xff, 0xc7, 0xdb, 0xbc, 0x65, 0x5c, 0x15, 0x03, 0x63, 0x6b, 0xa3, 0xca, - 0x28, 0x4c, 0x2b, 0x7c, 0x47, 0x0d, 0x90, 0xbc, 0x81, 0x77, 0x35, 0x09, 0xed, 0xac, 0x62, 0x2c, - 0xe8, 0x25, 0x31, 0x67, 0xc1, 0xb4, 0xf2, 0xef, 0x11, 0x23, 0x71, 0x38, 0xa5, 0xfd, 0x49, 0x68, - 0xea, 0x30, 0xa9, 0x41, 0xe5, 0xe1, 0xe1, 0xee, 0x41, 0xfb, 0x12, 0x69, 0xc0, 0xfc, 0xd1, 0xee, - 0xa3, 0x47, 0xfb, 0xbb, 0x3b, 0x6d, 0x8b, 0x34, 0xa1, 0xa6, 0xf2, 0x96, 0x4a, 0x76, 0x02, 0x64, - 0x6b, 0x30, 0x10, 0xdf, 0xa9, 0xc3, 0x7d, 0xca, 0xc1, 0x96, 0xc1, 0xc1, 0x05, 0x5c, 0x54, 0x2a, - 0xe6, 0xa2, 0xe7, 0xae, 0xb5, 0xbd, 0x0b, 0x8d, 0x43, 0xed, 0xdd, 0x06, 0x0a, 0x94, 0x7c, 0xb1, - 0x21, 0x04, 0x51, 0x43, 0xb4, 0xe1, 0x94, 0xf4, 0xe1, 0xd8, 0x7f, 0x64, 0xf1, 0x5c, 0x72, 0x35, - 0x7c, 0xde, 0xb7, 0x0d, 0x4d, 0x15, 0x82, 0x49, 0x93, 0x10, 0x0d, 0x8c, 0xd1, 0xe0, 0x50, 0x7a, - 0xe1, 0xc9, 0x49, 0x4c, 0x65, 0xca, 0x90, 0x81, 0x31, 0x49, 0x60, 0x3e, 0x15, 0xf3, 0x4f, 0x3c, - 0xde, 0x43, 0x2c, 0x52, 0x87, 0x72, 0x38, 0xd3, 0xeb, 0x11, 0x3d, 0xa3, 0x51, 0xac, 0x92, 0xa5, - 0x54, 0x59, 0xe5, 0x4a, 0x66, 0x57, 0x79, 0x03, 0x6a, 0xaa, 0x5d, 0x53, 0x65, 0x49, 0x4a, 0x55, - 0xcf, 0x54, 0x23, 0x9e, 0x32, 0x8c, 0x41, 0x73, 0x35, 0x9d, 0xaf, 0x20, 0xb7, 0x80, 0x9c, 0x78, - 0x51, 0x96, 0xbc, 0x8c, 0xe4, 0x05, 0x35, 0xf6, 0x13, 0x58, 0x96, 0xac, 0xa3, 0x39, 0x53, 0xe6, - 0x26, 0x5a, 0x17, 0x09, 0x4c, 0x29, 0x2f, 0x30, 0xf6, 0xff, 0x58, 0x30, 0x2f, 0x76, 0x3a, 0xf7, - 0xf6, 0x87, 0xef, 0xb3, 0x81, 0x91, 0x8e, 0xf1, 0x4c, 0x02, 0xa5, 0x4b, 0xa8, 0xc9, 0x9c, 0x22, - 0x2c, 0x17, 0x29, 0x42, 0x02, 0x95, 0xb1, 0x9b, 0x9c, 0xe2, 0x09, 0xbb, 0xee, 0xe0, 0xff, 0xa4, - 0xcd, 0xe3, 0x41, 0x5c, 0xe9, 0x62, 0x2c, 0xa8, 0xe8, 0x95, 0x13, 0xb7, 0xef, 0xf9, 0x57, 0x4e, - 0x57, 0xa1, 0x8e, 0x03, 0xe8, 0xa5, 0xe1, 0x9e, 0x14, 0x60, 0x9c, 0xcb, 0x0b, 0x28, 0xc9, 0x22, - 0x63, 0x39, 0x45, 0xec, 0x55, 0xbe, 0xf3, 0x62, 0x09, 0xd4, 0xcd, 0xaa, 0xc8, 0x4d, 0x4d, 0xe1, - 0x94, 0x23, 0xc4, 0x00, 0xb2, 0x1c, 0x21, 0x48, 0x1d, 0x55, 0x6f, 0x77, 0xa1, 0xb3, 0x43, 0x7d, - 0x9a, 0xd0, 0x2d, 0xdf, 0xcf, 0xb6, 0xff, 0x12, 0x5c, 0x29, 0xa8, 0x13, 0xfe, 0xf3, 0x17, 0x61, - 0x75, 0x8b, 0xe7, 0xf1, 0xfd, 0xb8, 0x72, 0x53, 0xec, 0x0e, 0xac, 0x65, 0x9b, 0x14, 0x9d, 0xdd, - 0x83, 0xa5, 0x1d, 0x7a, 0x3c, 0x19, 0xee, 0xd3, 0xb3, 0xb4, 0x23, 0x02, 0x95, 0xf8, 0x34, 0x3c, - 0x17, 0x82, 0x89, 0xff, 0x93, 0x97, 0x01, 0x7c, 0x46, 0xd3, 0x8b, 0xc7, 0xb4, 0x2f, 0x5f, 0x26, - 0x20, 0x72, 0x34, 0xa6, 0x7d, 0xfb, 0x4d, 0x20, 0x7a, 0x3b, 0x62, 0xbd, 0x98, 0xdd, 0x9b, 0x1c, - 0xf7, 0xe2, 0x69, 0x9c, 0xd0, 0x91, 0x7c, 0x72, 0xa1, 0x43, 0xf6, 0x4d, 0x68, 0x1e, 0xba, 0x53, - 0x87, 0x7e, 0x5d, 0x3c, 0xf9, 0xba, 0x0c, 0xf3, 0x63, 0x77, 0xca, 0xd4, 0x94, 0x8a, 0x43, 0x61, - 0xb5, 0xfd, 0x5f, 0x25, 0x98, 0xe3, 0x94, 0xac, 0xd5, 0x01, 0x8d, 0x13, 0x2f, 0x40, 0xc6, 0x92, - 0xad, 0x6a, 0x50, 0x8e, 0x95, 0x4b, 0x05, 0xac, 0x2c, 0x4e, 0x69, 0x32, 0xcb, 0x5b, 0xf0, 0xab, - 0x81, 0x31, 0xe6, 0x4a, 0x93, 0xc4, 0x78, 0x20, 0x24, 0x05, 0x32, 0x21, 0xcb, 0xd4, 0xba, 0xf2, - 0xf1, 0x49, 0x29, 0x15, 0x9c, 0xab, 0x43, 0x85, 0x36, 0x7c, 0x9e, 0x33, 0x78, 0xce, 0x86, 0xe7, - 0x6c, 0x75, 0xed, 0x05, 0x6c, 0x35, 0x3f, 0xba, 0x3d, 0xcf, 0x56, 0xc3, 0x0b, 0xd8, 0x6a, 0x9b, - 0x40, 0xfb, 0x1e, 0xa5, 0x0e, 0x65, 0xde, 0xa0, 0xe4, 0xdd, 0x6f, 0x59, 0xd0, 0x16, 0x5c, 0xa4, - 0xea, 0xc8, 0xab, 0x86, 0xd7, 0x5b, 0x98, 0x6d, 0x7d, 0x03, 0x16, 0xd0, 0x17, 0x55, 0xb1, 0x59, - 0x11, 0x48, 0x36, 0x40, 0x36, 0x0f, 0x79, 0x29, 0x3a, 0xf2, 0x7c, 0xb1, 0x29, 0x3a, 0x24, 0xc3, - 0xbb, 0x91, 0x2b, 0x92, 0xa5, 0x2c, 0x47, 0x95, 0xed, 0xbf, 0xb0, 0x60, 0x49, 0x1b, 0xb0, 0xe0, - 0xc2, 0x77, 0x40, 0x4a, 0x03, 0x0f, 0xd4, 0x72, 0xc9, 0xbd, 0x6c, 0x8a, 0x4d, 0xfa, 0x99, 0x41, - 0x8c, 0x9b, 0xe9, 0x4e, 0x71, 0x80, 0xf1, 0x64, 0x24, 0x94, 0xa8, 0x0e, 0x31, 0x46, 0x3a, 0xa7, - 0xf4, 0xa9, 0x22, 0xe1, 0x6a, 0xdc, 0xc0, 0x30, 0x1a, 0xc6, 0x7c, 0x68, 0x45, 0x54, 0x11, 0xd1, - 0x30, 0x1d, 0xb4, 0xff, 0xd1, 0x82, 0x65, 0x7e, 0x18, 0x12, 0x47, 0x4d, 0xf5, 0x50, 0x66, 0x8e, - 0x9f, 0xfe, 0xb8, 0x44, 0xee, 0x5d, 0x72, 0x44, 0x99, 0x7c, 0xfa, 0x05, 0x0f, 0x70, 0x2a, 0x83, - 0x6b, 0xc6, 0x5e, 0x94, 0x8b, 0xf6, 0xe2, 0x39, 0x2b, 0x5d, 0x14, 0x98, 0xac, 0x16, 0x06, 0x26, - 0xef, 0xce, 0x43, 0x35, 0xee, 0x87, 0x63, 0x6a, 0xaf, 0xc1, 0x8a, 0x39, 0x39, 0xa1, 0x82, 0xbe, - 0x63, 0x41, 0xe7, 0x1e, 0x0f, 0xe0, 0x7b, 0xc1, 0x70, 0xcf, 0x8b, 0x93, 0x30, 0x52, 0xef, 0x09, - 0xaf, 0x01, 0xc4, 0x89, 0x1b, 0x25, 0x3c, 0x4f, 0x57, 0x04, 0x04, 0x53, 0x84, 0x8d, 0x91, 0x06, - 0x03, 0x5e, 0xcb, 0xf7, 0x46, 0x95, 0x73, 0x3e, 0x84, 0x38, 0xae, 0x19, 0x96, 0xf8, 0x35, 0x9e, - 0xd1, 0xc8, 0x7c, 0x05, 0x7a, 0x86, 0x7a, 0x9d, 0x9f, 0x83, 0x32, 0xa8, 0xfd, 0xf7, 0x16, 0x2c, - 0xa6, 0x83, 0xc4, 0xbb, 0x3e, 0x53, 0x3b, 0x08, 0xf3, 0x9b, 0x6a, 0x07, 0x19, 0xaa, 0xf4, 0x98, - 0x3d, 0x16, 0x63, 0xd3, 0x10, 0x94, 0x58, 0x51, 0x0a, 0x27, 0xd2, 0xc1, 0xd1, 0x21, 0x9e, 0x9f, - 0xc4, 0x3c, 0x01, 0xe1, 0xd5, 0x88, 0x12, 0xa6, 0x59, 0x8f, 0x12, 0xfc, 0x8a, 0x07, 0x55, 0x65, - 0x51, 0x9a, 0xd2, 0x79, 0x44, 0xd1, 0x94, 0xea, 0x97, 0x21, 0x35, 0xbe, 0x3e, 0xb2, 0x6c, 0xff, - 0xa6, 0x05, 0x57, 0x0a, 0x16, 0x5e, 0x48, 0xcd, 0x0e, 0x2c, 0x9d, 0xa8, 0x4a, 0xb9, 0x38, 0x5c, - 0x74, 0xd6, 0xe4, 0x6d, 0x94, 0xb9, 0x20, 0x4e, 0xfe, 0x03, 0xe5, 0x17, 0xf1, 0xe5, 0x36, 0x32, - 0x00, 0xf3, 0x15, 0x1b, 0x9f, 0x83, 0x86, 0xf6, 0x92, 0x8f, 0x5c, 0x86, 0xe5, 0x27, 0x0f, 0x1e, - 0x1d, 0xec, 0x1e, 0x1d, 0xf5, 0x0e, 0x1f, 0xdf, 0xfd, 0xc2, 0xee, 0x97, 0x7b, 0x7b, 0x5b, 0x47, - 0x7b, 0xed, 0x4b, 0x64, 0x0d, 0xc8, 0xc1, 0xee, 0xd1, 0xa3, 0xdd, 0x1d, 0x03, 0xb7, 0xee, 0xfc, - 0x56, 0x19, 0x5a, 0xfc, 0x96, 0x93, 0xff, 0xf6, 0x03, 0x8d, 0xc8, 0xbb, 0x30, 0x2f, 0x7e, 0xbb, - 0x83, 0xac, 0x8a, 0x61, 0x9b, 0xbf, 0x16, 0xd2, 0x5d, 0xcb, 0xc2, 0x82, 0x2f, 0x97, 0x7f, 0xe9, - 0x07, 0xff, 0xfa, 0x3b, 0xa5, 0x05, 0xd2, 0xd8, 0x3c, 0x7b, 0x63, 0x73, 0x48, 0x83, 0x98, 0xb5, - 0xf1, 0x55, 0x80, 0xf4, 0x57, 0x2d, 0x48, 0x47, 0xf9, 0x83, 0x99, 0x9f, 0xeb, 0xe8, 0x5e, 0x29, - 0xa8, 0x11, 0xed, 0x5e, 0xc1, 0x76, 0x97, 0xed, 0x16, 0x6b, 0xd7, 0x0b, 0xbc, 0x84, 0xff, 0xc4, - 0xc5, 0xdb, 0xd6, 0x06, 0x19, 0x40, 0x53, 0xff, 0xd1, 0x0a, 0x22, 0xc3, 0x50, 0x05, 0x3f, 0x99, - 0xd1, 0x7d, 0xa9, 0xb0, 0x4e, 0xc6, 0xe0, 0xb0, 0x8f, 0x55, 0xbb, 0xcd, 0xfa, 0x98, 0x20, 0x45, - 0xda, 0x8b, 0x0f, 0x2d, 0xf3, 0xb7, 0x29, 0xc8, 0x55, 0x4d, 0x65, 0xe4, 0x7e, 0x19, 0xa3, 0xfb, - 0xf2, 0x8c, 0x5a, 0xd1, 0xd7, 0xcb, 0xd8, 0xd7, 0x65, 0x9b, 0xb0, 0xbe, 0xfa, 0x48, 0x23, 0x7f, - 0x19, 0xe3, 0x6d, 0x6b, 0xe3, 0xce, 0x5f, 0x5f, 0x87, 0xba, 0x0a, 0x1c, 0x93, 0xf7, 0x61, 0xc1, - 0xb8, 0x86, 0x26, 0x72, 0x1a, 0x45, 0xb7, 0xd6, 0xdd, 0xab, 0xc5, 0x95, 0xa2, 0xe3, 0x6b, 0xd8, - 0x71, 0x87, 0xac, 0xb1, 0x8e, 0xc5, 0x3d, 0xee, 0x26, 0x26, 0x54, 0xf0, 0xec, 0xe8, 0xa7, 0x7c, - 0x9e, 0xe9, 0xd5, 0xb1, 0x31, 0xcf, 0xdc, 0x55, 0xb3, 0x31, 0xcf, 0xfc, 0x7d, 0xb3, 0x7d, 0x15, - 0xbb, 0x5b, 0x23, 0x2b, 0x7a, 0x77, 0x2a, 0xa0, 0x4b, 0x31, 0xa5, 0x5f, 0xff, 0x59, 0x07, 0xf2, - 0xb2, 0x62, 0xac, 0xa2, 0x9f, 0x7b, 0x50, 0x2c, 0x92, 0xff, 0xcd, 0x07, 0xbb, 0x83, 0x5d, 0x11, - 0x82, 0xdb, 0xa7, 0xff, 0xaa, 0x03, 0xf9, 0x0a, 0xd4, 0xd5, 0x33, 0x5e, 0x72, 0x59, 0x7b, 0x56, - 0xad, 0x3f, 0x3b, 0xee, 0x76, 0xf2, 0x15, 0x45, 0x8c, 0xa1, 0xb7, 0xcc, 0x18, 0xe3, 0x09, 0x34, - 0xb4, 0xa7, 0xba, 0xe4, 0x8a, 0x0a, 0xfb, 0x67, 0x9f, 0x03, 0x77, 0xbb, 0x45, 0x55, 0xa2, 0x8b, - 0x25, 0xec, 0xa2, 0x41, 0xea, 0xc8, 0x7b, 0xc9, 0xb3, 0x30, 0x26, 0xfb, 0xb0, 0x2a, 0x0e, 0x2e, - 0xc7, 0xf4, 0xa3, 0x2c, 0x51, 0xc1, 0xaf, 0x5c, 0xdc, 0xb6, 0xc8, 0x3b, 0x50, 0x93, 0x2f, 0xb2, - 0xc9, 0x5a, 0xf1, 0xcb, 0xf2, 0xee, 0xe5, 0x1c, 0x2e, 0xd4, 0xda, 0x97, 0x01, 0xd2, 0x77, 0xc1, - 0x4a, 0x80, 0x73, 0xef, 0x8c, 0xd5, 0xee, 0xe4, 0x1f, 0x11, 0xdb, 0x6b, 0x38, 0xc1, 0x36, 0x41, - 0x01, 0x0e, 0xe8, 0xb9, 0x7c, 0xe4, 0xf2, 0x35, 0x68, 0x68, 0x4f, 0x83, 0xd5, 0xf2, 0xe5, 0x9f, - 0x15, 0xab, 0xe5, 0x2b, 0x78, 0x49, 0x6c, 0x77, 0xb1, 0xf5, 0x15, 0x7b, 0x91, 0xb5, 0x1e, 0x7b, - 0xc3, 0x60, 0xc4, 0x09, 0xd8, 0x06, 0x9d, 0xc2, 0x82, 0xf1, 0xfe, 0x57, 0x49, 0x4f, 0xd1, 0xeb, - 0x62, 0x25, 0x3d, 0x85, 0x4f, 0x86, 0x25, 0x3b, 0xdb, 0x4b, 0xac, 0x9f, 0x33, 0x24, 0xd1, 0x7a, - 0x7a, 0x0f, 0x1a, 0xda, 0x5b, 0x5e, 0x35, 0x97, 0xfc, 0xb3, 0x61, 0x35, 0x97, 0xa2, 0xa7, 0xbf, - 0x2b, 0xd8, 0x47, 0xcb, 0x46, 0x56, 0xc0, 0x37, 0x22, 0xac, 0xed, 0xf7, 0xa1, 0x65, 0xbe, 0xee, - 0x55, 0x72, 0x59, 0xf8, 0x4e, 0x58, 0xc9, 0xe5, 0x8c, 0x27, 0xc1, 0x82, 0xa5, 0x37, 0x96, 0x55, - 0x27, 0x9b, 0x1f, 0x88, 0xcb, 0xde, 0x0f, 0xc9, 0x17, 0x99, 0xf2, 0x11, 0x8f, 0x76, 0xc8, 0x65, - 0x8d, 0x6b, 0xf5, 0xa7, 0x3d, 0x4a, 0x5e, 0x72, 0xef, 0x7b, 0x4c, 0x66, 0xe6, 0xaf, 0x5c, 0xd0, - 0xa2, 0xe0, 0xe3, 0x1d, 0xcd, 0xa2, 0xe8, 0xef, 0x7b, 0x34, 0x8b, 0x62, 0xbc, 0xf1, 0xc9, 0x5a, - 0x94, 0xc4, 0x63, 0x6d, 0x04, 0xb0, 0x98, 0x49, 0x63, 0x53, 0x52, 0x51, 0x9c, 0xf7, 0xdb, 0xbd, - 0xf6, 0xfc, 0xec, 0x37, 0x53, 0x51, 0x49, 0x05, 0xb5, 0x29, 0xb3, 0xac, 0x7f, 0x1e, 0x9a, 0xfa, - 0xbb, 0x4b, 0xa2, 0x8b, 0x72, 0xb6, 0xa7, 0x97, 0x0a, 0xeb, 0xcc, 0xcd, 0x25, 0x4d, 0xbd, 0x1b, - 0xf2, 0x25, 0x58, 0x53, 0xa2, 0xae, 0x67, 0x46, 0xc5, 0xe4, 0x95, 0x82, 0x7c, 0x29, 0x3d, 0x9c, - 0xd1, 0xbd, 0x32, 0x33, 0xa1, 0xea, 0xb6, 0xc5, 0x98, 0xc6, 0x7c, 0xd0, 0x96, 0x2a, 0xf3, 0xa2, - 0x77, 0x7c, 0xa9, 0x32, 0x2f, 0x7c, 0x05, 0x27, 0x99, 0x86, 0x2c, 0x1b, 0x6b, 0xc4, 0x23, 0xf9, - 0xe4, 0x3d, 0x58, 0xd4, 0x72, 0x4f, 0x8f, 0xa6, 0x41, 0x5f, 0x09, 0x40, 0xfe, 0x91, 0x42, 0xb7, - 0xc8, 0xdf, 0xb6, 0x2f, 0x63, 0xfb, 0x4b, 0xb6, 0xb1, 0x38, 0x8c, 0xf9, 0xb7, 0xa1, 0xa1, 0xe7, - 0xb5, 0x3e, 0xa7, 0xdd, 0xcb, 0x5a, 0x95, 0x9e, 0x63, 0x7f, 0xdb, 0x22, 0xbf, 0x67, 0x41, 0xd3, - 0xc8, 0x12, 0x35, 0xee, 0xab, 0x32, 0xed, 0x74, 0xf4, 0x3a, 0xbd, 0x21, 0xdb, 0xc1, 0x41, 0xee, - 0x6f, 0x7c, 0xde, 0x58, 0x84, 0x0f, 0x8c, 0x73, 0xdb, 0xad, 0xec, 0xcf, 0x9a, 0x7c, 0x98, 0x25, - 0xd0, 0x1f, 0x72, 0x7c, 0x78, 0xdb, 0x22, 0xdf, 0xb5, 0xa0, 0x65, 0x46, 0x1b, 0xd4, 0x56, 0x15, - 0xc6, 0x35, 0xd4, 0x56, 0xcd, 0x08, 0x51, 0xbc, 0x87, 0xa3, 0x7c, 0xb4, 0xe1, 0x18, 0xa3, 0x14, - 0x4f, 0x1d, 0x7f, 0xb4, 0xd1, 0x92, 0xb7, 0xf9, 0x4f, 0x1b, 0xc9, 0x10, 0x18, 0xd1, 0xac, 0x46, - 0x76, 0x7b, 0xf5, 0x5f, 0xeb, 0x59, 0xb7, 0x6e, 0x5b, 0xe4, 0x6b, 0xfc, 0xd7, 0x4f, 0xc4, 0xb7, - 0xc8, 0x25, 0x2f, 0xfa, 0xbd, 0x7d, 0x03, 0xe7, 0x74, 0xcd, 0xbe, 0x62, 0xcc, 0x29, 0x6b, 0x8f, - 0xb7, 0xf8, 0xe8, 0xc4, 0x0f, 0xed, 0xa4, 0x06, 0x25, 0xf7, 0xe3, 0x3b, 0xb3, 0x07, 0x39, 0xe2, - 0x83, 0x14, 0xe4, 0x06, 0x2b, 0xbf, 0x60, 0x33, 0xf6, 0x06, 0x8e, 0xf5, 0x86, 0xfd, 0xca, 0xcc, - 0xb1, 0x6e, 0x62, 0xcc, 0x80, 0x8d, 0xf8, 0x10, 0x20, 0x0d, 0x57, 0x93, 0x4c, 0xb8, 0x54, 0x09, - 0x78, 0x3e, 0xa2, 0x6d, 0xca, 0x8b, 0x8c, 0xaa, 0xb2, 0x16, 0xbf, 0xc2, 0xd5, 0xd5, 0x03, 0x19, - 0x68, 0xd5, 0x9d, 0x12, 0x33, 0xae, 0x6c, 0x38, 0x25, 0xd9, 0xf6, 0x0d, 0x65, 0xa5, 0xa2, 0xb6, - 0x8f, 0x61, 0x61, 0x3f, 0x0c, 0x9f, 0x4e, 0xc6, 0xea, 0xb2, 0xc9, 0x0c, 0xe7, 0xed, 0xb9, 0xf1, - 0x69, 0x37, 0x33, 0x0b, 0xfb, 0x3a, 0x36, 0xd5, 0x25, 0x1d, 0xad, 0xa9, 0xcd, 0x0f, 0xd2, 0x70, - 0xf8, 0x87, 0xc4, 0x85, 0x25, 0xa5, 0x03, 0xd5, 0xc0, 0xbb, 0x66, 0x33, 0x86, 0xe6, 0xcb, 0x76, - 0x61, 0x78, 0xb6, 0x72, 0xb4, 0x9b, 0xb1, 0x6c, 0xf3, 0xb6, 0x45, 0x0e, 0xa1, 0xb9, 0x43, 0xfb, - 0xe1, 0x80, 0x8a, 0x98, 0xd8, 0x72, 0x3a, 0x70, 0x15, 0x4c, 0xeb, 0x2e, 0x18, 0xa0, 0x69, 0x17, - 0xc6, 0xee, 0x34, 0xa2, 0x5f, 0xdf, 0xfc, 0x40, 0x44, 0xdb, 0x3e, 0x94, 0x76, 0x41, 0x86, 0x23, - 0x0d, 0xbb, 0x90, 0x89, 0x5f, 0x1a, 0x76, 0x21, 0x17, 0xbf, 0x34, 0x96, 0x5a, 0x86, 0x43, 0x89, - 0x0f, 0x4b, 0xb9, 0x90, 0xa7, 0x32, 0x09, 0xb3, 0x02, 0xa5, 0xdd, 0xeb, 0xb3, 0x09, 0xcc, 0xde, - 0x36, 0xcc, 0xde, 0x8e, 0x60, 0x61, 0x87, 0xf2, 0xc5, 0xe2, 0x19, 0x2d, 0x99, 0x54, 0x63, 0x3d, - 0x5f, 0x26, 0xab, 0xc0, 0xb1, 0xce, 0x34, 0xfc, 0x98, 0x4e, 0x42, 0xbe, 0x02, 0x8d, 0xfb, 0x34, - 0x91, 0x29, 0x2c, 0xca, 0xf5, 0xcc, 0xe4, 0xb4, 0x74, 0x0b, 0x32, 0x60, 0x4c, 0x9e, 0xc1, 0xd6, - 0x36, 0xe9, 0x60, 0x48, 0xb9, 0x72, 0xea, 0x79, 0x83, 0x0f, 0xc9, 0xcf, 0x61, 0xe3, 0x2a, 0xd3, - 0x6e, 0x4d, 0xcb, 0x7c, 0xd0, 0x1b, 0x5f, 0xcc, 0xe0, 0x45, 0x2d, 0x07, 0xe1, 0x80, 0x6a, 0x2e, - 0x50, 0x00, 0x0d, 0x2d, 0x41, 0x54, 0x09, 0x50, 0x3e, 0xd9, 0x55, 0x09, 0x50, 0x41, 0x3e, 0xa9, - 0xbd, 0x8e, 0xfd, 0xd8, 0xe4, 0x7a, 0xda, 0x0f, 0xcf, 0x21, 0x4d, 0x7b, 0xda, 0xfc, 0xc0, 0x1d, - 0x25, 0x1f, 0x92, 0x27, 0xf8, 0xde, 0x59, 0x4f, 0xd3, 0x49, 0x7d, 0xe9, 0x6c, 0x46, 0x8f, 0x5a, - 0x2c, 0xad, 0xca, 0xf4, 0xaf, 0x79, 0x57, 0xe8, 0x29, 0x7d, 0x1a, 0xe0, 0x28, 0x09, 0xc7, 0x3b, - 0x2e, 0x1d, 0x85, 0x41, 0xaa, 0x6b, 0xd3, 0x54, 0x94, 0x54, 0x7f, 0x69, 0xf9, 0x28, 0xe4, 0x89, - 0x76, 0xf8, 0x30, 0xb2, 0x9c, 0x24, 0x73, 0xcd, 0xcc, 0x56, 0x51, 0x0b, 0x52, 0x90, 0xb1, 0x72, - 0xdb, 0x22, 0x5b, 0x00, 0x69, 0xcc, 0x5b, 0x1d, 0x25, 0x72, 0xe1, 0x74, 0xa5, 0xf6, 0x0a, 0x02, - 0xe4, 0x87, 0x50, 0x4f, 0x83, 0xa8, 0x97, 0xd3, 0x24, 0x5f, 0x23, 0xe4, 0xaa, 0x2c, 0x78, 0x2e, - 0xb4, 0x69, 0xb7, 0x71, 0xa9, 0x80, 0xd4, 0xd8, 0x52, 0x61, 0xbc, 0xd2, 0x83, 0x65, 0x3e, 0x40, - 0xe5, 0x8e, 0x60, 0x72, 0x85, 0x9c, 0x49, 0x41, 0x78, 0x51, 0x49, 0x73, 0x61, 0x74, 0xce, 0x88, - 0x56, 0x30, 0x6e, 0xe5, 0x89, 0x1d, 0x4c, 0x35, 0x8f, 0x60, 0x29, 0x17, 0x3e, 0x52, 0x22, 0x3d, - 0x2b, 0xa2, 0xa7, 0x44, 0x7a, 0x66, 0xe4, 0xc9, 0x5e, 0xc5, 0x2e, 0x17, 0x6d, 0xc0, 0x13, 0xd0, - 0xb9, 0x97, 0xf4, 0x4f, 0xdf, 0xb6, 0x36, 0xee, 0xde, 0x7c, 0xef, 0x27, 0x86, 0x5e, 0x72, 0x3a, - 0x39, 0xbe, 0xd5, 0x0f, 0x47, 0x9b, 0xbe, 0x0c, 0x29, 0x88, 0x14, 0xa9, 0x4d, 0x3f, 0x18, 0x6c, - 0x62, 0xcb, 0xc7, 0x73, 0xf8, 0xbb, 0xb0, 0x9f, 0xfc, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x96, - 0x58, 0x4f, 0x4e, 0x49, 0x56, 0x00, 0x00, +var fileDescriptor_rpc_61aed0266ec39391 = []byte{ + // 7040 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7c, 0x5f, 0x6c, 0x24, 0xd9, + 0x59, 0xef, 0x54, 0xff, 0xb1, 0xbb, 0xbf, 0x6e, 0xb7, 0xdb, 0xc7, 0x7f, 0xa6, 0xa7, 0x77, 0x76, + 0x76, 0xb6, 0x32, 0x77, 0xc7, 0x71, 0xf6, 0x8e, 0x67, 0x27, 0xc9, 0xde, 0xcd, 0xee, 0xcd, 0xbd, + 0x78, 0x6c, 0xcf, 0x78, 0x12, 0xaf, 0xc7, 0x29, 0xcf, 0x64, 0xc8, 0x26, 0xa8, 0x53, 0xee, 0x3e, + 0x6e, 0xd7, 0x4e, 0x75, 0x55, 0xa7, 0xaa, 0xda, 0x9e, 0xce, 0x32, 0x12, 0x02, 0x44, 0x24, 0x04, + 0x42, 0xc0, 0x0b, 0x41, 0x41, 0x48, 0x01, 0x09, 0xf2, 0xc8, 0x43, 0x22, 0x24, 0xe0, 0x0d, 0xf1, + 0x80, 0x84, 0x10, 0xe4, 0x11, 0x09, 0x09, 0xc1, 0x0b, 0xf0, 0x80, 0x84, 0xc4, 0x23, 0x12, 0x3a, + 0xdf, 0xf9, 0x53, 0xe7, 0x54, 0x55, 0x8f, 0x67, 0x93, 0xc0, 0x93, 0x7d, 0x7e, 0xe7, 0xab, 0xf3, + 0xf7, 0xfb, 0x77, 0xbe, 0xf3, 0x9d, 0x86, 0x7a, 0x34, 0xee, 0xdf, 0x1a, 0x47, 0x61, 0x12, 0x92, + 0xaa, 0x1f, 0x44, 0xe3, 0x7e, 0xf7, 0xea, 0x30, 0x0c, 0x87, 0x3e, 0xdd, 0x74, 0xc7, 0xde, 0xa6, + 0x1b, 0x04, 0x61, 0xe2, 0x26, 0x5e, 0x18, 0xc4, 0x9c, 0xc8, 0xfe, 0x3a, 0xb4, 0xee, 0xd3, 0xe0, + 0x88, 0xd2, 0x81, 0x43, 0xbf, 0x31, 0xa1, 0x71, 0x42, 0x3e, 0x05, 0x4b, 0x2e, 0xfd, 0x26, 0xa5, + 0x83, 0xde, 0xd8, 0x8d, 0xe3, 0xf1, 0x69, 0xe4, 0xc6, 0xb4, 0x63, 0x5d, 0xb7, 0xd6, 0x9b, 0x4e, + 0x9b, 0x57, 0x1c, 0x2a, 0x9c, 0xbc, 0x0e, 0xcd, 0x98, 0x91, 0xd2, 0x20, 0x89, 0xc2, 0xf1, 0xb4, + 0x53, 0x42, 0xba, 0x06, 0xc3, 0x76, 0x39, 0x64, 0xfb, 0xb0, 0xa8, 0x7a, 0x88, 0xc7, 0x61, 0x10, + 0x53, 0x72, 0x1b, 0x56, 0xfa, 0xde, 0xf8, 0x94, 0x46, 0x3d, 0xfc, 0x78, 0x14, 0xd0, 0x51, 0x18, + 0x78, 0xfd, 0x8e, 0x75, 0xbd, 0xbc, 0x5e, 0x77, 0x08, 0xaf, 0x63, 0x5f, 0xbc, 0x2f, 0x6a, 0xc8, + 0x4d, 0x58, 0xa4, 0x01, 0xc7, 0xe9, 0x00, 0xbf, 0x12, 0x5d, 0xb5, 0x52, 0x98, 0x7d, 0x60, 0xff, + 0xb9, 0x05, 0x4b, 0x0f, 0x02, 0x2f, 0x79, 0xe2, 0xfa, 0x3e, 0x4d, 0xe4, 0x9c, 0x6e, 0xc2, 0xe2, + 0x39, 0x02, 0x38, 0xa7, 0xf3, 0x30, 0x1a, 0x88, 0x19, 0xb5, 0x38, 0x7c, 0x28, 0xd0, 0x99, 0x23, + 0x2b, 0xcd, 0x1c, 0x59, 0xe1, 0x72, 0x95, 0x67, 0x2c, 0xd7, 0x4d, 0x58, 0x8c, 0x68, 0x3f, 0x3c, + 0xa3, 0xd1, 0xb4, 0x77, 0xee, 0x05, 0x83, 0xf0, 0xbc, 0x53, 0xb9, 0x6e, 0xad, 0x57, 0x9d, 0x96, + 0x84, 0x9f, 0x20, 0x6a, 0xaf, 0x00, 0xd1, 0x67, 0xc1, 0xd7, 0xcd, 0x1e, 0xc2, 0xf2, 0xe3, 0xc0, + 0x0f, 0xfb, 0x4f, 0x7f, 0xc4, 0xd9, 0x15, 0x74, 0x5f, 0x2a, 0xec, 0x7e, 0x0d, 0x56, 0xcc, 0x8e, + 0xc4, 0x00, 0x28, 0xac, 0x6e, 0x9f, 0xba, 0xc1, 0x90, 0xca, 0x26, 0xe5, 0x10, 0x3e, 0x09, 0xed, + 0xfe, 0x24, 0x8a, 0x68, 0x90, 0x1b, 0xc3, 0xa2, 0xc0, 0xd5, 0x20, 0x5e, 0x87, 0x66, 0x40, 0xcf, + 0x53, 0x32, 0xc1, 0x32, 0x01, 0x3d, 0x97, 0x24, 0x76, 0x07, 0xd6, 0xb2, 0xdd, 0x88, 0x01, 0xfc, + 0x83, 0x05, 0x95, 0xc7, 0xc9, 0xb3, 0x90, 0xdc, 0x82, 0x4a, 0x32, 0x1d, 0x73, 0xc6, 0x6c, 0xdd, + 0x21, 0xb7, 0x90, 0xd7, 0x6f, 0x6d, 0x0d, 0x06, 0x11, 0x8d, 0xe3, 0x47, 0xd3, 0x31, 0x75, 0x9a, + 0x2e, 0x2f, 0xf4, 0x18, 0x1d, 0xe9, 0xc0, 0xbc, 0x28, 0x63, 0x87, 0x75, 0x47, 0x16, 0xc9, 0x35, + 0x00, 0x77, 0x14, 0x4e, 0x82, 0xa4, 0x17, 0xbb, 0x09, 0xee, 0x5c, 0xd9, 0xd1, 0x10, 0x72, 0x15, + 0xea, 0xe3, 0xa7, 0xbd, 0xb8, 0x1f, 0x79, 0xe3, 0x04, 0x77, 0xab, 0xee, 0xa4, 0x00, 0xf9, 0x14, + 0xd4, 0xc2, 0x49, 0x32, 0x0e, 0xbd, 0x20, 0xe9, 0x54, 0xaf, 0x5b, 0xeb, 0x8d, 0x3b, 0x8b, 0x62, + 0x2c, 0x0f, 0x27, 0xc9, 0x21, 0x83, 0x1d, 0x45, 0x40, 0x6e, 0xc0, 0x42, 0x3f, 0x0c, 0x4e, 0xbc, + 0x68, 0xc4, 0x65, 0xb0, 0x33, 0x87, 0xbd, 0x99, 0xa0, 0xfd, 0xed, 0x12, 0x34, 0x1e, 0x45, 0x6e, + 0x10, 0xbb, 0x7d, 0x06, 0xb0, 0xa1, 0x27, 0xcf, 0x7a, 0xa7, 0x6e, 0x7c, 0x8a, 0xb3, 0xad, 0x3b, + 0xb2, 0x48, 0xd6, 0x60, 0x8e, 0x0f, 0x14, 0xe7, 0x54, 0x76, 0x44, 0x89, 0xbc, 0x09, 0x4b, 0xc1, + 0x64, 0xd4, 0x33, 0xfb, 0x2a, 0xe3, 0x4e, 0xe7, 0x2b, 0xd8, 0x02, 0x1c, 0xb3, 0xbd, 0xe6, 0x5d, + 0xf0, 0x19, 0x6a, 0x08, 0xb1, 0xa1, 0x29, 0x4a, 0xd4, 0x1b, 0x9e, 0xf2, 0x69, 0x56, 0x1d, 0x03, + 0x63, 0x6d, 0x24, 0xde, 0x88, 0xf6, 0xe2, 0xc4, 0x1d, 0x8d, 0xc5, 0xb4, 0x34, 0x04, 0xeb, 0xc3, + 0xc4, 0xf5, 0x7b, 0x27, 0x94, 0xc6, 0x9d, 0x79, 0x51, 0xaf, 0x10, 0xf2, 0x06, 0xb4, 0x06, 0x34, + 0x4e, 0x7a, 0x62, 0x53, 0x68, 0xdc, 0xa9, 0xa1, 0xc4, 0x65, 0x50, 0xc6, 0x19, 0xf7, 0x69, 0xa2, + 0xad, 0x4e, 0x2c, 0x38, 0xd0, 0xde, 0x07, 0xa2, 0xc1, 0x3b, 0x34, 0x71, 0x3d, 0x3f, 0x26, 0x6f, + 0x43, 0x33, 0xd1, 0x88, 0x51, 0xc3, 0x34, 0x14, 0xbb, 0x68, 0x1f, 0x38, 0x06, 0x9d, 0x7d, 0x1f, + 0x6a, 0xf7, 0x28, 0xdd, 0xf7, 0x46, 0x5e, 0x42, 0xd6, 0xa0, 0x7a, 0xe2, 0x3d, 0xa3, 0x9c, 0xa1, + 0xcb, 0x7b, 0x97, 0x1c, 0x5e, 0x24, 0x5d, 0x98, 0x1f, 0xd3, 0xa8, 0x4f, 0xe5, 0xf2, 0xef, 0x5d, + 0x72, 0x24, 0x70, 0x77, 0x1e, 0xaa, 0x3e, 0xfb, 0xd8, 0xfe, 0xdb, 0x12, 0x34, 0x8e, 0x68, 0xa0, + 0x04, 0x85, 0x40, 0x85, 0x4d, 0x49, 0x08, 0x07, 0xfe, 0x4f, 0x5e, 0x83, 0x06, 0x4e, 0x33, 0x4e, + 0x22, 0x2f, 0x18, 0x0a, 0xfe, 0x04, 0x06, 0x1d, 0x21, 0x42, 0xda, 0x50, 0x76, 0x47, 0x92, 0x37, + 0xd9, 0xbf, 0x4c, 0x88, 0xc6, 0xee, 0x74, 0xc4, 0xe4, 0x4d, 0xed, 0x5a, 0xd3, 0x69, 0x08, 0x6c, + 0x8f, 0x6d, 0xdb, 0x2d, 0x58, 0xd6, 0x49, 0x64, 0xeb, 0x55, 0x6c, 0x7d, 0x49, 0xa3, 0x14, 0x9d, + 0xdc, 0x84, 0x45, 0x49, 0x1f, 0xf1, 0xc1, 0xe2, 0x3e, 0xd6, 0x9d, 0x96, 0x80, 0xe5, 0x14, 0xd6, + 0xa1, 0x7d, 0xe2, 0x05, 0xae, 0xdf, 0xeb, 0xfb, 0xc9, 0x59, 0x6f, 0x40, 0xfd, 0xc4, 0xc5, 0x1d, + 0xad, 0x3a, 0x2d, 0xc4, 0xb7, 0xfd, 0xe4, 0x6c, 0x87, 0xa1, 0xe4, 0x4d, 0xa8, 0x9f, 0x50, 0xda, + 0xc3, 0x95, 0xe8, 0xd4, 0x0c, 0xe9, 0x90, 0xab, 0xeb, 0xd4, 0x4e, 0xe4, 0x3a, 0xaf, 0x43, 0x3b, + 0x9c, 0x24, 0xc3, 0xd0, 0x0b, 0x86, 0xbd, 0xfe, 0xa9, 0x1b, 0xf4, 0xbc, 0x41, 0xa7, 0x7e, 0xdd, + 0x5a, 0xaf, 0x38, 0x2d, 0x89, 0x33, 0xad, 0xf0, 0x60, 0x60, 0xff, 0xb1, 0x05, 0x4d, 0xbe, 0xa8, + 0xc2, 0xa0, 0xdc, 0x80, 0x05, 0x39, 0x76, 0x1a, 0x45, 0x61, 0x24, 0x04, 0xc5, 0x04, 0xc9, 0x06, + 0xb4, 0x25, 0x30, 0x8e, 0xa8, 0x37, 0x72, 0x87, 0x54, 0x68, 0x9f, 0x1c, 0x4e, 0xee, 0xa4, 0x2d, + 0x46, 0xe1, 0x24, 0xe1, 0x2a, 0xbd, 0x71, 0xa7, 0x29, 0x86, 0xef, 0x30, 0xcc, 0x31, 0x49, 0x98, + 0xa0, 0x14, 0x6c, 0x8a, 0x81, 0xd9, 0xdf, 0xb7, 0x80, 0xb0, 0xa1, 0x3f, 0x0a, 0x79, 0x13, 0x62, + 0x4d, 0xb3, 0xfb, 0x69, 0xbd, 0xf4, 0x7e, 0x96, 0x66, 0xed, 0xe7, 0x3a, 0xcc, 0xe1, 0xb0, 0x98, + 0xe4, 0x97, 0xb3, 0x43, 0xbf, 0x5b, 0xea, 0x58, 0x8e, 0xa8, 0x27, 0x36, 0x54, 0xf9, 0x1c, 0x2b, + 0x05, 0x73, 0xe4, 0x55, 0xf6, 0x77, 0x2d, 0x68, 0xb2, 0xd5, 0x0f, 0xa8, 0x8f, 0x5a, 0x8d, 0xdc, + 0x06, 0x72, 0x32, 0x09, 0x06, 0x6c, 0xb3, 0x92, 0x67, 0xde, 0xa0, 0x77, 0x3c, 0x65, 0x5d, 0xe1, + 0xb8, 0xf7, 0x2e, 0x39, 0x05, 0x75, 0xe4, 0x4d, 0x68, 0x1b, 0x68, 0x9c, 0x44, 0x7c, 0xf4, 0x7b, + 0x97, 0x9c, 0x5c, 0x0d, 0x5b, 0x4c, 0xa6, 0x37, 0x27, 0x49, 0xcf, 0x0b, 0x06, 0xf4, 0x19, 0xae, + 0xff, 0x82, 0x63, 0x60, 0x77, 0x5b, 0xd0, 0xd4, 0xbf, 0xb3, 0x3f, 0x84, 0x9a, 0xd4, 0xba, 0xa8, + 0x71, 0x32, 0xe3, 0x72, 0x34, 0x84, 0x74, 0xa1, 0x66, 0x8e, 0xc2, 0xa9, 0x7d, 0x9c, 0xbe, 0xed, + 0xff, 0x07, 0xed, 0x7d, 0xa6, 0xfa, 0x02, 0x2f, 0x18, 0x0a, 0xb3, 0xc3, 0xf4, 0xf1, 0x78, 0x72, + 0xfc, 0x94, 0x4e, 0x05, 0xff, 0x89, 0x12, 0x13, 0xfa, 0xd3, 0x30, 0x4e, 0x44, 0x3f, 0xf8, 0xbf, + 0xfd, 0x8f, 0x16, 0x2c, 0x32, 0x46, 0x78, 0xdf, 0x0d, 0xa6, 0x92, 0x0b, 0xf6, 0xa1, 0xc9, 0x9a, + 0x7a, 0x14, 0x6e, 0x71, 0xad, 0xce, 0xb5, 0xd5, 0xba, 0xd8, 0x8f, 0x0c, 0xf5, 0x2d, 0x9d, 0x94, + 0x39, 0x5b, 0x53, 0xc7, 0xf8, 0x9a, 0xa9, 0x95, 0xc4, 0x8d, 0x86, 0x34, 0x41, 0x7d, 0x2f, 0xf4, + 0x3f, 0x70, 0x68, 0x3b, 0x0c, 0x4e, 0xc8, 0x75, 0x68, 0xc6, 0x6e, 0xd2, 0x1b, 0xd3, 0x08, 0xd7, + 0x04, 0x55, 0x43, 0xd9, 0x81, 0xd8, 0x4d, 0x0e, 0x69, 0x74, 0x77, 0x9a, 0xd0, 0xee, 0xff, 0x87, + 0xa5, 0x5c, 0x2f, 0x4c, 0x1b, 0xa5, 0x53, 0x64, 0xff, 0x92, 0x15, 0xa8, 0x9e, 0xb9, 0xfe, 0x84, + 0x0a, 0x33, 0xc4, 0x0b, 0xef, 0x96, 0xde, 0xb1, 0xec, 0x37, 0xa0, 0x9d, 0x0e, 0x5b, 0x08, 0x2b, + 0x81, 0x0a, 0x5b, 0x69, 0xd1, 0x00, 0xfe, 0x6f, 0x7f, 0xc7, 0xe2, 0x84, 0xdb, 0xa1, 0xa7, 0x54, + 0x3a, 0x23, 0x64, 0x9a, 0x5f, 0x12, 0xb2, 0xff, 0x67, 0x9a, 0xbc, 0x1f, 0x7f, 0xb2, 0xe4, 0x0a, + 0xd4, 0x62, 0x1a, 0x0c, 0x7a, 0xae, 0xef, 0xa3, 0xe6, 0xab, 0x39, 0xf3, 0xac, 0xbc, 0xe5, 0xfb, + 0xf6, 0x4d, 0x58, 0xd2, 0x46, 0xf7, 0x82, 0x79, 0x1c, 0x00, 0xd9, 0xf7, 0xe2, 0xe4, 0x71, 0x10, + 0x8f, 0x35, 0x8d, 0xf9, 0x0a, 0xd4, 0x47, 0x5e, 0x80, 0x23, 0xe3, 0xac, 0x58, 0x75, 0x6a, 0x23, + 0x2f, 0x60, 0xe3, 0x8a, 0xb1, 0xd2, 0x7d, 0x26, 0x2a, 0x4b, 0xa2, 0xd2, 0x7d, 0x86, 0x95, 0xf6, + 0x3b, 0xb0, 0x6c, 0xb4, 0x27, 0xba, 0x7e, 0x1d, 0xaa, 0x93, 0xe4, 0x59, 0x28, 0xed, 0x59, 0x43, + 0x70, 0x08, 0xf3, 0x8c, 0x1c, 0x5e, 0x63, 0xbf, 0x07, 0x4b, 0x07, 0xf4, 0x5c, 0x70, 0xa6, 0x1c, + 0xc8, 0x1b, 0x17, 0x7a, 0x4d, 0x58, 0x6f, 0xdf, 0x02, 0xa2, 0x7f, 0x2c, 0x7a, 0xd5, 0x7c, 0x28, + 0xcb, 0xf0, 0xa1, 0xec, 0x37, 0x80, 0x1c, 0x79, 0xc3, 0xe0, 0x7d, 0x1a, 0xc7, 0xee, 0x50, 0x29, + 0xb5, 0x36, 0x94, 0x47, 0xf1, 0x50, 0xc8, 0x1e, 0xfb, 0xd7, 0xfe, 0x34, 0x2c, 0x1b, 0x74, 0xa2, + 0xe1, 0xab, 0x50, 0x8f, 0xbd, 0x61, 0xe0, 0x26, 0x93, 0x88, 0x8a, 0xa6, 0x53, 0xc0, 0xbe, 0x07, + 0x2b, 0x5f, 0xa6, 0x91, 0x77, 0x32, 0xbd, 0xa8, 0x79, 0xb3, 0x9d, 0x52, 0xb6, 0x9d, 0x5d, 0x58, + 0xcd, 0xb4, 0x23, 0xba, 0xe7, 0xec, 0x2b, 0x76, 0xb2, 0xe6, 0xf0, 0x82, 0x26, 0xcc, 0x25, 0x5d, + 0x98, 0xed, 0xc7, 0x40, 0xb6, 0xc3, 0x20, 0xa0, 0xfd, 0xe4, 0x90, 0xd2, 0x28, 0x3d, 0x35, 0xa5, + 0xbc, 0xda, 0xb8, 0x73, 0x59, 0xac, 0x6c, 0x56, 0x43, 0x08, 0x26, 0x26, 0x50, 0x19, 0xd3, 0x68, + 0x84, 0x0d, 0xd7, 0x1c, 0xfc, 0xdf, 0x5e, 0x85, 0x65, 0xa3, 0x59, 0xe1, 0xf0, 0xbe, 0x05, 0xab, + 0x3b, 0x5e, 0xdc, 0xcf, 0x77, 0xd8, 0x81, 0xf9, 0xf1, 0xe4, 0xb8, 0x97, 0x4a, 0xa2, 0x2c, 0x32, + 0x1f, 0x29, 0xfb, 0x89, 0x68, 0xec, 0x97, 0x2c, 0xa8, 0xec, 0x3d, 0xda, 0xdf, 0x66, 0xca, 0xcf, + 0x0b, 0xfa, 0xe1, 0x88, 0x19, 0x10, 0x3e, 0x69, 0x55, 0x9e, 0x29, 0x61, 0x57, 0xa1, 0x8e, 0x76, + 0x87, 0xb9, 0x7d, 0xe2, 0x80, 0x93, 0x02, 0xcc, 0xe5, 0xa4, 0xcf, 0xc6, 0x5e, 0x84, 0x3e, 0xa5, + 0xf4, 0x14, 0x2b, 0xa8, 0x37, 0xf3, 0x15, 0xf6, 0x77, 0xaa, 0x30, 0x2f, 0xac, 0x09, 0xf6, 0xd7, + 0x4f, 0xbc, 0x33, 0x2a, 0x46, 0x22, 0x4a, 0xcc, 0xa6, 0x47, 0x74, 0x14, 0x26, 0xb4, 0x67, 0x6c, + 0x83, 0x09, 0xa2, 0x4b, 0xcd, 0x1b, 0xea, 0x71, 0x27, 0xbc, 0xcc, 0xa9, 0x0c, 0x90, 0x2d, 0x96, + 0xf4, 0x28, 0x2a, 0xe8, 0x51, 0xc8, 0x22, 0x5b, 0x89, 0xbe, 0x3b, 0x76, 0xfb, 0x5e, 0x32, 0x15, + 0x2a, 0x41, 0x95, 0x59, 0xdb, 0x7e, 0xd8, 0x77, 0xfd, 0xde, 0xb1, 0xeb, 0xbb, 0x41, 0x9f, 0x4a, + 0x77, 0xdd, 0x00, 0x99, 0xeb, 0x2a, 0x86, 0x24, 0xc9, 0xb8, 0x7b, 0x9b, 0x41, 0x99, 0x41, 0xea, + 0x87, 0xa3, 0x91, 0x97, 0x30, 0x8f, 0x17, 0xbd, 0xa1, 0xb2, 0xa3, 0x21, 0xfc, 0x70, 0x80, 0xa5, + 0x73, 0xbe, 0x7a, 0x75, 0x79, 0x38, 0xd0, 0x40, 0xd6, 0x0a, 0x73, 0xa9, 0x98, 0x1a, 0x7b, 0x7a, + 0xde, 0x01, 0xde, 0x4a, 0x8a, 0xb0, 0x7d, 0x98, 0x04, 0x31, 0x4d, 0x12, 0x9f, 0x0e, 0xd4, 0x80, + 0x1a, 0x48, 0x96, 0xaf, 0x20, 0xb7, 0x61, 0x99, 0x3b, 0xe1, 0xb1, 0x9b, 0x84, 0xf1, 0xa9, 0x17, + 0xf7, 0x62, 0xe6, 0xce, 0x36, 0x91, 0xbe, 0xa8, 0x8a, 0xbc, 0x03, 0x97, 0x33, 0x70, 0x44, 0xfb, + 0xd4, 0x3b, 0xa3, 0x83, 0xce, 0x02, 0x7e, 0x35, 0xab, 0x9a, 0x5c, 0x87, 0x06, 0x3b, 0x7b, 0x4c, + 0xc6, 0x03, 0x97, 0x59, 0xe4, 0x16, 0xee, 0x83, 0x0e, 0x91, 0xb7, 0x60, 0x61, 0x4c, 0xb9, 0x39, + 0x3f, 0x4d, 0xfc, 0x7e, 0xdc, 0x59, 0x34, 0xb4, 0x1b, 0xe3, 0x5c, 0xc7, 0xa4, 0x60, 0x4c, 0xd9, + 0x8f, 0xd1, 0x09, 0x75, 0xa7, 0x9d, 0x36, 0xb2, 0x5b, 0x0a, 0xa0, 0x8c, 0x44, 0xde, 0x99, 0x9b, + 0xd0, 0xce, 0x12, 0x57, 0xe8, 0xa2, 0xc8, 0xbe, 0xf3, 0x02, 0x2f, 0xf1, 0xdc, 0x24, 0x8c, 0x3a, + 0x04, 0xeb, 0x52, 0xc0, 0xfe, 0x5d, 0x8b, 0xab, 0x5d, 0xc1, 0xa2, 0x4a, 0x7d, 0xbe, 0x06, 0x0d, + 0xce, 0x9c, 0xbd, 0x30, 0xf0, 0xa7, 0x82, 0x5f, 0x81, 0x43, 0x0f, 0x03, 0x7f, 0x4a, 0x3e, 0x01, + 0x0b, 0x5e, 0xa0, 0x93, 0x70, 0x09, 0x6f, 0x4a, 0x10, 0x89, 0x5e, 0x83, 0xc6, 0x78, 0x72, 0xec, + 0x7b, 0x7d, 0x4e, 0x52, 0xe6, 0xad, 0x70, 0x08, 0x09, 0x98, 0x33, 0xc8, 0xc7, 0xc9, 0x29, 0x2a, + 0x48, 0xd1, 0x10, 0x18, 0x23, 0xb1, 0xef, 0xc2, 0x8a, 0x39, 0x40, 0xa1, 0xca, 0x36, 0xa0, 0x26, + 0x38, 0x3f, 0xee, 0x34, 0x70, 0xf5, 0x5a, 0x62, 0xf5, 0x04, 0xa9, 0xa3, 0xea, 0xed, 0x1f, 0x54, + 0x60, 0x59, 0xa0, 0xdb, 0x7e, 0x18, 0xd3, 0xa3, 0xc9, 0x68, 0xe4, 0x46, 0x05, 0x22, 0x65, 0x5d, + 0x20, 0x52, 0x25, 0x53, 0xa4, 0x18, 0xa3, 0x9f, 0xba, 0x5e, 0xc0, 0x3d, 0x59, 0x2e, 0x8f, 0x1a, + 0x42, 0xd6, 0x61, 0xb1, 0xef, 0x87, 0x31, 0xf7, 0xda, 0xf4, 0x43, 0x67, 0x16, 0xce, 0xab, 0x80, + 0x6a, 0x91, 0x0a, 0xd0, 0x45, 0x78, 0x2e, 0x23, 0xc2, 0x36, 0x34, 0x59, 0xa3, 0x54, 0x6a, 0xa4, + 0x79, 0xee, 0xc9, 0xe9, 0x18, 0x1b, 0x4f, 0x56, 0x60, 0xb8, 0x74, 0x2e, 0x16, 0x89, 0x0b, 0x3b, + 0xd3, 0x32, 0x8d, 0xa7, 0x51, 0xd7, 0x85, 0xb8, 0xe4, 0xab, 0xc8, 0x3d, 0x00, 0xde, 0x17, 0x9a, + 0x5d, 0x40, 0xb3, 0xfb, 0x86, 0xb9, 0x23, 0xfa, 0xda, 0xdf, 0x62, 0x85, 0x49, 0x44, 0xd1, 0x14, + 0x6b, 0x5f, 0xda, 0xbf, 0x6c, 0x41, 0x43, 0xab, 0x23, 0xab, 0xb0, 0xb4, 0xfd, 0xf0, 0xe1, 0xe1, + 0xae, 0xb3, 0xf5, 0xe8, 0xc1, 0x97, 0x77, 0x7b, 0xdb, 0xfb, 0x0f, 0x8f, 0x76, 0xdb, 0x97, 0x18, + 0xbc, 0xff, 0x70, 0x7b, 0x6b, 0xbf, 0x77, 0xef, 0xa1, 0xb3, 0x2d, 0x61, 0x8b, 0xac, 0x01, 0x71, + 0x76, 0xdf, 0x7f, 0xf8, 0x68, 0xd7, 0xc0, 0x4b, 0xa4, 0x0d, 0xcd, 0xbb, 0xce, 0xee, 0xd6, 0xf6, + 0x9e, 0x40, 0xca, 0x64, 0x05, 0xda, 0xf7, 0x1e, 0x1f, 0xec, 0x3c, 0x38, 0xb8, 0xdf, 0xdb, 0xde, + 0x3a, 0xd8, 0xde, 0xdd, 0xdf, 0xdd, 0x69, 0x57, 0xc8, 0x02, 0xd4, 0xb7, 0xee, 0x6e, 0x1d, 0xec, + 0x3c, 0x3c, 0xd8, 0xdd, 0x69, 0x57, 0xed, 0xbf, 0xb7, 0x60, 0x15, 0x47, 0x3d, 0xc8, 0x0a, 0xc8, + 0x75, 0x68, 0xf4, 0xc3, 0x70, 0x4c, 0x99, 0xb6, 0x57, 0x0a, 0x5d, 0x87, 0x18, 0xf3, 0x73, 0xf5, + 0x79, 0x12, 0x46, 0x7d, 0x2a, 0xe4, 0x03, 0x10, 0xba, 0xc7, 0x10, 0xc6, 0xfc, 0x62, 0x7b, 0x39, + 0x05, 0x17, 0x8f, 0x06, 0xc7, 0x38, 0xc9, 0x1a, 0xcc, 0x1d, 0x47, 0xd4, 0xed, 0x9f, 0x0a, 0xc9, + 0x10, 0x25, 0xf2, 0xc9, 0xf4, 0x80, 0xd1, 0x67, 0xab, 0xef, 0xd3, 0x01, 0x72, 0x4c, 0xcd, 0x59, + 0x14, 0xf8, 0xb6, 0x80, 0x99, 0xfc, 0xbb, 0xc7, 0x6e, 0x30, 0x08, 0x03, 0x3a, 0x10, 0xce, 0x5e, + 0x0a, 0xd8, 0x87, 0xb0, 0x96, 0x9d, 0x9f, 0x90, 0xaf, 0xb7, 0x35, 0xf9, 0xe2, 0xbe, 0x57, 0x77, + 0xf6, 0x6e, 0x6a, 0xb2, 0xf6, 0x2f, 0x16, 0x54, 0x98, 0x29, 0x9e, 0x6d, 0xb6, 0x75, 0xef, 0xaa, + 0x9c, 0x8b, 0x50, 0xe1, 0x99, 0x85, 0x2b, 0x67, 0x6e, 0xc0, 0x34, 0x24, 0xad, 0x8f, 0x68, 0xff, + 0x0c, 0x67, 0xac, 0xea, 0x19, 0xc2, 0x04, 0x84, 0xb9, 0xbe, 0xf8, 0xb5, 0x10, 0x10, 0x59, 0x96, + 0x75, 0xf8, 0xe5, 0x7c, 0x5a, 0x87, 0xdf, 0x75, 0x60, 0xde, 0x0b, 0x8e, 0xc3, 0x49, 0x30, 0x40, + 0x81, 0xa8, 0x39, 0xb2, 0x88, 0x31, 0x31, 0x14, 0x54, 0x6f, 0x24, 0xd9, 0x3f, 0x05, 0x6c, 0xc2, + 0x8e, 0x46, 0x31, 0xba, 0x1e, 0x2a, 0x3c, 0xf3, 0x36, 0x2c, 0x69, 0x58, 0xea, 0xc6, 0x8e, 0x19, + 0x90, 0x71, 0x63, 0xd1, 0x67, 0xe1, 0x35, 0x76, 0x1b, 0x5a, 0xf7, 0x69, 0xf2, 0x20, 0x38, 0x09, + 0x65, 0x4b, 0x7f, 0x50, 0x81, 0x45, 0x05, 0x89, 0x86, 0xd6, 0x61, 0xd1, 0x1b, 0xd0, 0x20, 0xf1, + 0x92, 0x69, 0xcf, 0x38, 0x81, 0x65, 0x61, 0xe6, 0xeb, 0xb9, 0xbe, 0xe7, 0xca, 0x28, 0x20, 0x2f, + 0x90, 0x3b, 0xb0, 0xc2, 0x0c, 0x91, 0xb4, 0x2d, 0x6a, 0x8b, 0xf9, 0xc1, 0xaf, 0xb0, 0x8e, 0x29, + 0x03, 0x86, 0x0b, 0x6d, 0xaf, 0x3e, 0xe1, 0x3e, 0x4f, 0x51, 0x15, 0x5b, 0x35, 0xde, 0x12, 0x9b, + 0x72, 0x95, 0x1b, 0x2b, 0x05, 0xe4, 0xc2, 0x6c, 0x73, 0x5c, 0x55, 0x65, 0xc3, 0x6c, 0x5a, 0xa8, + 0xae, 0x96, 0x0b, 0xd5, 0x31, 0x55, 0x36, 0x0d, 0xfa, 0x74, 0xd0, 0x4b, 0xc2, 0x1e, 0xaa, 0x5c, + 0xdc, 0x9d, 0x9a, 0x93, 0x85, 0xc9, 0x55, 0x98, 0x4f, 0x68, 0x9c, 0x04, 0x34, 0x41, 0xad, 0x54, + 0xc3, 0x80, 0x80, 0x84, 0x98, 0x83, 0x3a, 0x89, 0xbc, 0xb8, 0xd3, 0xc4, 0x20, 0x1c, 0xfe, 0x4f, + 0x3e, 0x03, 0xab, 0xc7, 0x34, 0x4e, 0x7a, 0xa7, 0xd4, 0x1d, 0xd0, 0x08, 0x77, 0x9a, 0x47, 0xfb, + 0xb8, 0xdd, 0x2f, 0xae, 0x64, 0x3c, 0x74, 0x46, 0xa3, 0xd8, 0x0b, 0x03, 0xb4, 0xf8, 0x75, 0x47, + 0x16, 0x59, 0x7b, 0x6c, 0xf2, 0xca, 0x5e, 0xaa, 0x15, 0x5c, 0xc4, 0x89, 0x17, 0x57, 0x92, 0x1b, + 0x30, 0x87, 0x13, 0x88, 0x3b, 0x6d, 0x23, 0xaa, 0xb1, 0xcd, 0x40, 0x47, 0xd4, 0x7d, 0xa1, 0x52, + 0x6b, 0xb4, 0x9b, 0xf6, 0xff, 0x81, 0x2a, 0xc2, 0x6c, 0xd3, 0xf9, 0x62, 0x70, 0xa6, 0xe0, 0x05, + 0x36, 0xb4, 0x80, 0x26, 0xe7, 0x61, 0xf4, 0x54, 0x86, 0x84, 0x45, 0xd1, 0xfe, 0x26, 0xba, 0xf8, + 0x2a, 0x44, 0xfa, 0x18, 0xfd, 0x13, 0x76, 0x50, 0xe3, 0x4b, 0x1d, 0x9f, 0xba, 0xe2, 0xd4, 0x51, + 0x43, 0xe0, 0xe8, 0xd4, 0x65, 0x6a, 0xcb, 0xd8, 0x3d, 0x7e, 0x90, 0x6b, 0x20, 0xb6, 0xc7, 0x37, + 0xef, 0x06, 0xb4, 0x64, 0xf0, 0x35, 0xee, 0xf9, 0xf4, 0x24, 0x91, 0x71, 0x85, 0x60, 0x32, 0xc2, + 0xd3, 0xde, 0x3e, 0x3d, 0x49, 0xec, 0x03, 0x58, 0x12, 0xaa, 0xe4, 0xe1, 0x98, 0xca, 0xae, 0x3f, + 0x57, 0x64, 0x92, 0x1b, 0x77, 0x96, 0x4d, 0xdd, 0xc3, 0xc3, 0xcd, 0x26, 0xa5, 0xed, 0x00, 0xd1, + 0x55, 0x93, 0x68, 0x50, 0xd8, 0x45, 0x19, 0x39, 0x11, 0xd3, 0x31, 0x30, 0xb6, 0x3e, 0xf1, 0xa4, + 0xdf, 0x97, 0x21, 0x73, 0x76, 0x1c, 0xe6, 0x45, 0xfb, 0x0f, 0x2d, 0x58, 0xc6, 0xd6, 0xa4, 0x53, + 0x21, 0xd4, 0xff, 0x3b, 0x1f, 0x63, 0x98, 0xcd, 0xbe, 0x1e, 0x4d, 0x5a, 0x81, 0xaa, 0x6e, 0x10, + 0x78, 0xe1, 0xe3, 0x1f, 0xea, 0x2b, 0xd9, 0x43, 0xbd, 0xfd, 0x5b, 0x16, 0x2c, 0x71, 0x9d, 0x9c, + 0xb8, 0xc9, 0x24, 0x16, 0xd3, 0xff, 0xbf, 0xb0, 0xc0, 0x8d, 0xab, 0x90, 0x6a, 0x31, 0xd0, 0x15, + 0xa5, 0x80, 0x10, 0xe5, 0xc4, 0x7b, 0x97, 0x1c, 0x93, 0x98, 0xbc, 0x87, 0x0e, 0x4e, 0xd0, 0x43, + 0x54, 0x04, 0x06, 0xaf, 0x14, 0x98, 0x01, 0xf5, 0xbd, 0x46, 0x7e, 0xb7, 0x06, 0x73, 0xdc, 0xdf, + 0xb5, 0xef, 0xc3, 0x82, 0xd1, 0x91, 0x11, 0x50, 0x68, 0xf2, 0x80, 0x42, 0x2e, 0x14, 0x55, 0x2a, + 0x08, 0x45, 0xfd, 0x51, 0x19, 0x08, 0x63, 0x96, 0xcc, 0x6e, 0x30, 0x87, 0x3b, 0x1c, 0x18, 0xc7, + 0xa7, 0xa6, 0xa3, 0x43, 0xe4, 0x16, 0x10, 0xad, 0x28, 0x23, 0x8a, 0xdc, 0xfa, 0x14, 0xd4, 0x30, + 0x35, 0x29, 0x8c, 0xb7, 0x30, 0xb3, 0xe2, 0xa0, 0xc8, 0x97, 0xbd, 0xb0, 0x8e, 0x19, 0x98, 0xf1, + 0x24, 0x3e, 0xc5, 0xcb, 0x15, 0x71, 0xc0, 0x92, 0xe5, 0xec, 0xfe, 0xce, 0x5d, 0xb8, 0xbf, 0xf3, + 0xb9, 0xa0, 0x8d, 0xe6, 0xe2, 0xd7, 0x4c, 0x17, 0xff, 0x06, 0x2c, 0x8c, 0x98, 0xcb, 0x99, 0xf8, + 0xfd, 0xde, 0x88, 0xf5, 0x2e, 0xce, 0x53, 0x06, 0x48, 0x36, 0xa0, 0x2d, 0xdc, 0x8d, 0xf4, 0x1c, + 0x01, 0xb8, 0xc6, 0x39, 0x9c, 0xe9, 0xef, 0x34, 0x8c, 0xd3, 0xc0, 0xc1, 0xa6, 0x00, 0x3b, 0x79, + 0xc5, 0x8c, 0x43, 0x7a, 0x93, 0x40, 0xdc, 0xaf, 0xd0, 0x01, 0x9e, 0xa4, 0x6a, 0x4e, 0xbe, 0xc2, + 0xfe, 0x0d, 0x0b, 0xda, 0x6c, 0xcf, 0x0c, 0xb6, 0x7c, 0x17, 0x50, 0x2a, 0x5e, 0x92, 0x2b, 0x0d, + 0x5a, 0xf2, 0x0e, 0xd4, 0xb1, 0x1c, 0x8e, 0x69, 0x20, 0x78, 0xb2, 0x63, 0xf2, 0x64, 0xaa, 0x4f, + 0xf6, 0x2e, 0x39, 0x29, 0xb1, 0xc6, 0x91, 0x7f, 0x6d, 0x41, 0x43, 0xf4, 0xf2, 0x23, 0x87, 0x09, + 0xba, 0xda, 0x85, 0x18, 0xe7, 0xa4, 0xf4, 0xfe, 0x6b, 0x1d, 0x16, 0x47, 0x6e, 0x32, 0x89, 0x98, + 0x3d, 0x36, 0x42, 0x04, 0x59, 0x98, 0x19, 0x57, 0x54, 0x9d, 0x71, 0x2f, 0xf1, 0xfc, 0x9e, 0xac, + 0x15, 0x57, 0x4f, 0x45, 0x55, 0x4c, 0x83, 0xc4, 0x89, 0x3b, 0xa4, 0xc2, 0x6e, 0xf2, 0x82, 0xdd, + 0x81, 0x35, 0x31, 0xa1, 0x8c, 0xab, 0x6a, 0xff, 0x59, 0x13, 0x2e, 0xe7, 0xaa, 0xd4, 0xfd, 0xb4, + 0x38, 0xfb, 0xfa, 0xde, 0xe8, 0x38, 0x54, 0x7e, 0xbe, 0xa5, 0x1f, 0x8b, 0x8d, 0x2a, 0x32, 0x84, + 0x55, 0xe9, 0x20, 0xb0, 0x35, 0x4d, 0x8d, 0x59, 0x09, 0xad, 0xd4, 0x5b, 0xe6, 0x16, 0x66, 0x3b, + 0x94, 0xb8, 0x2e, 0xc4, 0xc5, 0xed, 0x91, 0x53, 0xe8, 0x28, 0x4f, 0x44, 0x28, 0x6b, 0xcd, 0x5b, + 0x61, 0x7d, 0xbd, 0x79, 0x41, 0x5f, 0x86, 0x67, 0xeb, 0xcc, 0x6c, 0x8d, 0x4c, 0xe1, 0x9a, 0xac, + 0x43, 0x6d, 0x9c, 0xef, 0xaf, 0xf2, 0x52, 0x73, 0x43, 0x9f, 0xdd, 0xec, 0xf4, 0x82, 0x86, 0xc9, + 0x87, 0xb0, 0x76, 0xee, 0x7a, 0x89, 0x1c, 0x96, 0xe6, 0x1b, 0x54, 0xb1, 0xcb, 0x3b, 0x17, 0x74, + 0xf9, 0x84, 0x7f, 0x6c, 0x98, 0xa8, 0x19, 0x2d, 0x76, 0xff, 0xd2, 0x82, 0x96, 0xd9, 0x0e, 0x63, + 0x53, 0x21, 0xfb, 0x52, 0x07, 0x4a, 0x6f, 0x32, 0x03, 0xe7, 0x8f, 0xca, 0xa5, 0xa2, 0xa3, 0xb2, + 0x7e, 0x40, 0x2d, 0x5f, 0x14, 0x63, 0xaa, 0xbc, 0x5c, 0x8c, 0xa9, 0x5a, 0x14, 0x63, 0xea, 0xfe, + 0x87, 0x05, 0x24, 0xcf, 0x4b, 0xe4, 0x3e, 0x3f, 0xab, 0x07, 0xd4, 0x17, 0x2a, 0xe5, 0x7f, 0xbf, + 0x1c, 0x3f, 0xca, 0xb5, 0x93, 0x5f, 0x33, 0xc1, 0xd0, 0xef, 0x8e, 0x75, 0x67, 0x67, 0xc1, 0x29, + 0xaa, 0xca, 0x44, 0xbd, 0x2a, 0x17, 0x47, 0xbd, 0xaa, 0x17, 0x47, 0xbd, 0xe6, 0xb2, 0x51, 0xaf, + 0xee, 0x2f, 0x5a, 0xb0, 0x5c, 0xb0, 0xe9, 0x3f, 0xb9, 0x89, 0xb3, 0x6d, 0x32, 0x74, 0x41, 0x49, + 0x6c, 0x93, 0x0e, 0x76, 0x7f, 0x16, 0x16, 0x0c, 0x46, 0xff, 0xc9, 0xf5, 0x9f, 0xf5, 0xd7, 0x38, + 0x9f, 0x19, 0x58, 0xf7, 0x5f, 0x4b, 0x40, 0xf2, 0xc2, 0xf6, 0x3f, 0x3a, 0x86, 0xfc, 0x3a, 0x95, + 0x0b, 0xd6, 0xe9, 0xbf, 0xd5, 0x0e, 0xbc, 0x09, 0x4b, 0x22, 0x99, 0x45, 0x8b, 0xd0, 0x70, 0x8e, + 0xc9, 0x57, 0x30, 0x8f, 0xd5, 0x0c, 0x39, 0xd6, 0x8c, 0x04, 0x01, 0xcd, 0x18, 0x66, 0x22, 0x8f, + 0x76, 0x17, 0x3a, 0x62, 0x85, 0x76, 0xcf, 0x68, 0x90, 0x1c, 0x4d, 0x8e, 0x79, 0x46, 0x88, 0x17, + 0x06, 0xf6, 0xf7, 0xcb, 0xca, 0xe9, 0xc6, 0x4a, 0x61, 0xde, 0x3f, 0x03, 0x4d, 0x5d, 0x99, 0x8b, + 0xed, 0xc8, 0x04, 0xe8, 0x98, 0x61, 0xd7, 0xa9, 0xc8, 0x0e, 0xb4, 0x50, 0x65, 0x0d, 0xd4, 0x77, + 0x25, 0xfc, 0xee, 0x05, 0x81, 0x87, 0xbd, 0x4b, 0x4e, 0xe6, 0x1b, 0xf2, 0x79, 0x68, 0x99, 0x47, + 0x29, 0xe1, 0x23, 0x14, 0xf9, 0xe6, 0xec, 0x73, 0x93, 0x98, 0x6c, 0x41, 0x3b, 0x7b, 0x16, 0x13, + 0xb7, 0xc5, 0x33, 0x1a, 0xc8, 0x91, 0x93, 0x77, 0xc4, 0xdd, 0x53, 0x15, 0x83, 0x60, 0x37, 0xcc, + 0xcf, 0xb4, 0x65, 0xba, 0xc5, 0xff, 0x68, 0xb7, 0x51, 0x5f, 0x03, 0x48, 0x31, 0xd2, 0x86, 0xe6, + 0xc3, 0xc3, 0xdd, 0x83, 0xde, 0xf6, 0xde, 0xd6, 0xc1, 0xc1, 0xee, 0x7e, 0xfb, 0x12, 0x21, 0xd0, + 0xc2, 0xf8, 0xd5, 0x8e, 0xc2, 0x2c, 0x86, 0x6d, 0x6d, 0xf3, 0xd8, 0x98, 0xc0, 0x4a, 0x64, 0x05, + 0xda, 0x0f, 0x0e, 0x32, 0x68, 0xf9, 0x6e, 0x5d, 0xc9, 0x87, 0xbd, 0x06, 0x2b, 0x3c, 0xe1, 0xe9, + 0x2e, 0x67, 0x0f, 0xe9, 0x2b, 0xfc, 0x8e, 0x05, 0xab, 0x99, 0x8a, 0x34, 0xf1, 0x80, 0xbb, 0x03, + 0xa6, 0x8f, 0x60, 0x82, 0x8c, 0x27, 0x95, 0xe7, 0x97, 0xd1, 0x20, 0xf9, 0x0a, 0xc6, 0xf3, 0x9a, + 0xa7, 0x98, 0x91, 0xa4, 0xa2, 0x2a, 0xfb, 0x32, 0x4f, 0xcb, 0x0a, 0xa8, 0x9f, 0x19, 0xf8, 0x09, + 0x4f, 0xa4, 0xd2, 0x2b, 0xd2, 0xbb, 0x3c, 0x73, 0xc8, 0xb2, 0xc8, 0x9c, 0x7c, 0xc3, 0xf5, 0x30, + 0xc7, 0x5b, 0x58, 0x67, 0xff, 0xc0, 0x02, 0xf2, 0xa5, 0x09, 0x8d, 0xa6, 0x98, 0x33, 0xa0, 0xc2, + 0x81, 0x97, 0xb3, 0xc1, 0xae, 0xb9, 0xf1, 0xe4, 0xf8, 0x8b, 0x74, 0x2a, 0x13, 0x5a, 0x4a, 0x69, + 0x42, 0xcb, 0xab, 0x00, 0xec, 0x70, 0xac, 0x32, 0x16, 0xd0, 0xb9, 0x0e, 0x26, 0x23, 0xde, 0x60, + 0x61, 0xce, 0x49, 0xe5, 0xe2, 0x9c, 0x93, 0xea, 0x05, 0x39, 0x27, 0xf6, 0x7b, 0xb0, 0x6c, 0x8c, + 0x5b, 0x6d, 0xab, 0xcc, 0x9d, 0xb0, 0xf2, 0xb9, 0x13, 0x32, 0x6f, 0xc2, 0xfe, 0x56, 0x09, 0xca, + 0x7b, 0xe1, 0x58, 0x0f, 0x85, 0x5b, 0x66, 0x28, 0x5c, 0xf8, 0x07, 0x3d, 0x65, 0xfe, 0x85, 0xd9, + 0x30, 0x40, 0xb2, 0x01, 0x2d, 0x77, 0x94, 0xf4, 0x92, 0x90, 0xf9, 0x43, 0xe7, 0x6e, 0x34, 0xe0, + 0x7b, 0x8d, 0x21, 0x99, 0x4c, 0x0d, 0x59, 0x81, 0xb2, 0x32, 0xa4, 0x48, 0xc0, 0x8a, 0xcc, 0x19, + 0xc7, 0x4b, 0xb6, 0xa9, 0x08, 0x2b, 0x89, 0x12, 0x63, 0x25, 0xf3, 0x7b, 0x7e, 0x12, 0xe2, 0xea, + 0xb0, 0xa8, 0x8a, 0xf9, 0x2a, 0x6c, 0xf9, 0x90, 0x4c, 0xc4, 0x03, 0x65, 0x59, 0x8f, 0x5d, 0xd6, + 0xcc, 0x2b, 0xc7, 0x7f, 0xb6, 0xa0, 0x8a, 0x6b, 0xc3, 0x54, 0x3b, 0xe7, 0x7d, 0x15, 0x0d, 0xc7, + 0x35, 0x59, 0x70, 0xb2, 0x30, 0xb1, 0x8d, 0x94, 0xb0, 0x92, 0x9a, 0x90, 0x9e, 0x16, 0x76, 0x1d, + 0xea, 0xbc, 0xa4, 0xd2, 0x9f, 0x90, 0x24, 0x05, 0xc9, 0x35, 0xa8, 0x9c, 0x86, 0x63, 0xe9, 0x8b, + 0x82, 0xbc, 0x2a, 0x0a, 0xc7, 0x0e, 0xe2, 0xe9, 0x78, 0x58, 0x7b, 0x7c, 0x5a, 0xdc, 0xc3, 0xc8, + 0xc2, 0xcc, 0xc7, 0x52, 0xcd, 0xea, 0xcb, 0x94, 0x41, 0xed, 0x0d, 0x58, 0x3c, 0x08, 0x07, 0x54, + 0x0b, 0x49, 0xce, 0xe4, 0x73, 0xfb, 0xe7, 0x2c, 0xa8, 0x49, 0x62, 0xb2, 0x0e, 0x15, 0xe6, 0x38, + 0x66, 0x4e, 0x75, 0xea, 0x8a, 0x98, 0xd1, 0x39, 0x48, 0xc1, 0x2c, 0x2d, 0x46, 0x8a, 0xd2, 0x43, + 0x84, 0x8c, 0x13, 0xa5, 0x3e, 0xb2, 0x1a, 0x6e, 0xc6, 0xb5, 0xcc, 0xa0, 0xf6, 0xf7, 0x2c, 0x58, + 0x30, 0xfa, 0x20, 0xd7, 0xa1, 0xe1, 0xbb, 0x71, 0x22, 0xae, 0xdd, 0xc4, 0xf6, 0xe8, 0x90, 0xbe, + 0xd1, 0x25, 0x33, 0x48, 0xad, 0xc2, 0xa7, 0x65, 0x3d, 0x7c, 0x7a, 0x1b, 0xea, 0x69, 0xe2, 0x5e, + 0xc5, 0xb0, 0xa0, 0xac, 0x47, 0x79, 0xf9, 0x9d, 0x12, 0x61, 0x44, 0x2e, 0xf4, 0xc3, 0x48, 0xdc, + 0xe8, 0xf0, 0x82, 0xfd, 0x1e, 0x34, 0x34, 0x7a, 0x3d, 0x40, 0x67, 0x19, 0x01, 0x3a, 0x95, 0x19, + 0x52, 0x4a, 0x33, 0x43, 0xec, 0x7f, 0xb3, 0x60, 0x81, 0xf1, 0xa0, 0x17, 0x0c, 0x0f, 0x43, 0xdf, + 0xeb, 0x4f, 0x71, 0xef, 0x25, 0xbb, 0x09, 0x9d, 0x21, 0x79, 0xd1, 0x84, 0x19, 0xd7, 0xcb, 0xb0, + 0x80, 0x10, 0x51, 0x55, 0x66, 0x32, 0xcc, 0x24, 0xe0, 0xd8, 0x8d, 0x85, 0x58, 0x08, 0x97, 0xc6, + 0x00, 0x99, 0xa4, 0x31, 0x20, 0x72, 0x13, 0xda, 0x1b, 0x79, 0xbe, 0xef, 0x71, 0x5a, 0xee, 0xf0, + 0x16, 0x55, 0xb1, 0x3e, 0x07, 0x5e, 0xec, 0x1e, 0xa7, 0xb7, 0x14, 0xaa, 0x8c, 0xb1, 0x0b, 0xf7, + 0x99, 0x16, 0xbb, 0x98, 0x43, 0xbd, 0x62, 0x82, 0xf6, 0x9f, 0x94, 0xa0, 0x21, 0xed, 0xe7, 0x60, + 0x48, 0xc5, 0xc5, 0x1b, 0x1e, 0x3c, 0x94, 0x2a, 0xd2, 0x10, 0x59, 0x6f, 0x1c, 0x55, 0x34, 0x24, + 0xcb, 0x18, 0xe5, 0x3c, 0x63, 0x5c, 0x85, 0x3a, 0x63, 0xd0, 0xb7, 0xf0, 0x4c, 0x24, 0x72, 0x61, + 0x15, 0x20, 0x6b, 0xef, 0x60, 0x6d, 0x35, 0xad, 0x45, 0xe0, 0x85, 0xd7, 0x74, 0xef, 0x40, 0x53, + 0x34, 0x83, 0x3b, 0x87, 0x9a, 0x27, 0x15, 0x11, 0x63, 0x57, 0x1d, 0x83, 0x52, 0x7e, 0x79, 0x47, + 0x7e, 0x59, 0xbb, 0xe8, 0x4b, 0x49, 0x69, 0xdf, 0x57, 0xb7, 0x9f, 0xf7, 0x23, 0x77, 0x7c, 0x2a, + 0x65, 0xf9, 0x36, 0x2c, 0x7b, 0x41, 0xdf, 0x9f, 0x0c, 0x68, 0x6f, 0x12, 0xb8, 0x41, 0x10, 0x4e, + 0x82, 0x3e, 0x95, 0xa9, 0x21, 0x45, 0x55, 0xf6, 0x40, 0x65, 0xc6, 0x61, 0x43, 0x64, 0x03, 0xaa, + 0xac, 0x23, 0x69, 0x3b, 0x8a, 0x05, 0x9d, 0x93, 0x90, 0x75, 0xa8, 0xd2, 0xc1, 0x90, 0xca, 0x38, + 0x01, 0xc9, 0x78, 0x45, 0x83, 0x21, 0x75, 0x38, 0x01, 0x53, 0x3b, 0x98, 0xfd, 0x68, 0xaa, 0x1d, + 0xd3, 0xee, 0xcc, 0xf5, 0x79, 0x7e, 0xe4, 0x0a, 0x90, 0x03, 0x2e, 0x29, 0xfa, 0xc5, 0xc9, 0x2f, + 0x94, 0xa1, 0xa1, 0xc1, 0x4c, 0x83, 0x0c, 0xd9, 0x80, 0x7b, 0x03, 0xcf, 0x1d, 0xd1, 0x84, 0x46, + 0x42, 0x3a, 0x32, 0x28, 0xa3, 0x73, 0xcf, 0x86, 0xbd, 0x70, 0x92, 0xf4, 0x06, 0x74, 0x18, 0x51, + 0xee, 0x0a, 0x30, 0xd3, 0x64, 0xa0, 0x8c, 0x8e, 0xf1, 0xa7, 0x46, 0xc7, 0x39, 0x28, 0x83, 0xca, + 0x6b, 0x10, 0xbe, 0x46, 0x95, 0xf4, 0x1a, 0x84, 0xaf, 0x48, 0x56, 0xf7, 0x55, 0x0b, 0x74, 0xdf, + 0xdb, 0xb0, 0xc6, 0xb5, 0x9c, 0xd0, 0x07, 0xbd, 0x0c, 0x63, 0xcd, 0xa8, 0x25, 0x1b, 0xd0, 0x66, + 0x63, 0x96, 0x22, 0x11, 0x7b, 0xdf, 0xe4, 0x21, 0x45, 0xcb, 0xc9, 0xe1, 0x8c, 0x16, 0x63, 0x7b, + 0x3a, 0x2d, 0xbf, 0x16, 0xce, 0xe1, 0x48, 0xeb, 0x3e, 0x33, 0x69, 0xeb, 0x82, 0x36, 0x83, 0xdb, + 0x0b, 0xd0, 0x38, 0x4a, 0xc2, 0xb1, 0xdc, 0x94, 0x16, 0x34, 0x79, 0x51, 0xa4, 0xe8, 0xbc, 0x02, + 0x57, 0x90, 0x8b, 0x1e, 0x85, 0xe3, 0xd0, 0x0f, 0x87, 0x53, 0xe3, 0x5c, 0xf1, 0x57, 0x16, 0x2c, + 0x1b, 0xb5, 0xe9, 0xc1, 0x02, 0x43, 0x12, 0x32, 0xb7, 0x82, 0x33, 0xde, 0x92, 0xa6, 0x82, 0x39, + 0x21, 0x8f, 0xfe, 0x3e, 0x16, 0xe9, 0x16, 0x5b, 0xb0, 0x28, 0x47, 0x26, 0x3f, 0xe4, 0x5c, 0xd8, + 0xc9, 0x73, 0xa1, 0xf8, 0xbe, 0x25, 0x3e, 0x90, 0x4d, 0x7c, 0x5e, 0x5c, 0xaf, 0xf3, 0x73, 0x86, + 0x8c, 0x40, 0xa9, 0x93, 0x89, 0x7e, 0x0e, 0x95, 0x23, 0xe8, 0x2b, 0x30, 0xb6, 0x7f, 0xc5, 0x02, + 0x48, 0x47, 0x87, 0x97, 0xb2, 0xca, 0x8c, 0xf0, 0xb7, 0x20, 0x9a, 0xc9, 0x78, 0x1d, 0x9a, 0xea, + 0x32, 0x2f, 0xb5, 0x4c, 0x0d, 0x89, 0x31, 0xb7, 0xf2, 0x26, 0x2c, 0x0e, 0xfd, 0xf0, 0x18, 0xcd, + 0x3a, 0xe6, 0x7c, 0xc5, 0x22, 0x51, 0xa9, 0xc5, 0xe1, 0x7b, 0x02, 0x4d, 0xcd, 0x58, 0x45, 0x33, + 0x63, 0xf6, 0xaf, 0x96, 0xd4, 0xdd, 0x4b, 0x3a, 0xe7, 0x99, 0x52, 0x46, 0xee, 0xe4, 0xd4, 0xe9, + 0x8c, 0xab, 0x0e, 0x8c, 0xb5, 0x1e, 0x5e, 0x18, 0x0a, 0x7a, 0x0f, 0x5a, 0x11, 0xd7, 0x57, 0x52, + 0x99, 0x55, 0x5e, 0xa0, 0xcc, 0x16, 0x22, 0xc3, 0xd6, 0x7d, 0x12, 0xda, 0xee, 0xe0, 0x8c, 0x46, + 0x89, 0x87, 0x87, 0x71, 0x74, 0x34, 0xb8, 0x0a, 0x5e, 0xd4, 0x70, 0xb4, 0xff, 0x37, 0x61, 0x51, + 0x24, 0x87, 0x29, 0x4a, 0x91, 0xe8, 0x9d, 0xc2, 0x8c, 0xd0, 0xfe, 0x3d, 0x79, 0xcd, 0x63, 0xee, + 0xe1, 0xec, 0x15, 0xd1, 0x67, 0x57, 0xca, 0xcc, 0xee, 0x13, 0xe2, 0xca, 0x65, 0x20, 0x4f, 0xfc, + 0x65, 0x2d, 0x15, 0x63, 0x20, 0xae, 0xc8, 0xcc, 0x25, 0xad, 0xbc, 0xcc, 0x92, 0xda, 0x3f, 0xb4, + 0x60, 0x7e, 0x2f, 0x1c, 0xef, 0x89, 0xa4, 0x14, 0x14, 0x04, 0x95, 0x95, 0x29, 0x8b, 0x2f, 0x48, + 0x57, 0x29, 0xb4, 0xef, 0x0b, 0x59, 0xfb, 0xfe, 0x53, 0xf0, 0x0a, 0xc6, 0x9b, 0xa2, 0x70, 0x1c, + 0x46, 0x4c, 0x18, 0x5d, 0x9f, 0x1b, 0xf3, 0x30, 0x48, 0x4e, 0xa5, 0x1a, 0x7b, 0x11, 0x09, 0x1e, + 0x02, 0xd9, 0xe1, 0x85, 0xbb, 0xe6, 0xc2, 0x1f, 0xe1, 0xda, 0x2d, 0x5f, 0x61, 0x7f, 0x0e, 0xea, + 0xe8, 0x50, 0xe3, 0xb4, 0xde, 0x84, 0xfa, 0x69, 0x38, 0xee, 0x9d, 0x7a, 0x41, 0x22, 0x85, 0xbb, + 0x95, 0x7a, 0xba, 0x7b, 0xb8, 0x20, 0x8a, 0xc0, 0xfe, 0xd6, 0x1c, 0xcc, 0x3f, 0x08, 0xce, 0x42, + 0xaf, 0x8f, 0x57, 0x4a, 0x23, 0x3a, 0x0a, 0x65, 0x8e, 0x2a, 0xfb, 0x9f, 0x5c, 0x85, 0x79, 0x4c, + 0xca, 0x1a, 0x73, 0xa6, 0x6d, 0xf2, 0xab, 0x5f, 0x01, 0x31, 0x27, 0x21, 0x4a, 0xd3, 0xe3, 0xb9, + 0xf8, 0x68, 0x08, 0x3b, 0x6a, 0x44, 0x7a, 0x7a, 0xbb, 0x28, 0xa5, 0x39, 0xc0, 0x55, 0x2d, 0x07, + 0x98, 0xf5, 0x25, 0x92, 0x68, 0x78, 0x96, 0x05, 0xef, 0x4b, 0x40, 0x78, 0x3c, 0x8a, 0x28, 0x8f, + 0x17, 0xa2, 0xcb, 0x31, 0x2f, 0x8e, 0x47, 0x3a, 0xc8, 0xdc, 0x12, 0xfe, 0x01, 0xa7, 0xe1, 0x4a, + 0x58, 0x87, 0x98, 0xa3, 0x97, 0x7d, 0xba, 0x50, 0xe7, 0xbc, 0x9f, 0x81, 0x99, 0xa6, 0x1e, 0x50, + 0xa5, 0x50, 0xf9, 0x3c, 0x80, 0x3f, 0x01, 0xc8, 0xe2, 0xda, 0xa1, 0x8a, 0xe7, 0xcf, 0xc9, 0x43, + 0x15, 0x63, 0x18, 0xd7, 0xf7, 0x8f, 0xdd, 0xfe, 0x53, 0x7c, 0x99, 0x82, 0x97, 0x3c, 0x75, 0xc7, + 0x04, 0x31, 0x15, 0x26, 0xdd, 0x55, 0xbc, 0x24, 0xaf, 0x38, 0x3a, 0x44, 0xee, 0x40, 0x03, 0x0f, + 0x92, 0x62, 0x5f, 0x5b, 0xb8, 0xaf, 0x6d, 0xfd, 0xa4, 0x89, 0x3b, 0xab, 0x13, 0xe9, 0xd7, 0x5d, + 0x8b, 0xb9, 0x8c, 0x36, 0x77, 0x30, 0x10, 0xb7, 0x84, 0x6d, 0xec, 0x2d, 0x05, 0x98, 0x55, 0x15, + 0x0b, 0xc6, 0x09, 0x96, 0x90, 0xc0, 0xc0, 0xc8, 0x35, 0xa8, 0xb1, 0x43, 0xce, 0xd8, 0xf5, 0x06, + 0x98, 0x12, 0xc7, 0xcf, 0x5a, 0x0a, 0x63, 0x6d, 0xc8, 0xff, 0xf1, 0x36, 0x6f, 0x19, 0x57, 0xc5, + 0xc0, 0xd8, 0xda, 0xa8, 0x32, 0x0a, 0xd3, 0x0a, 0xdf, 0x51, 0x03, 0x24, 0x6f, 0xe1, 0x5d, 0x4d, + 0x42, 0x3b, 0xab, 0x18, 0x0b, 0x7a, 0x45, 0xcc, 0x59, 0x30, 0xad, 0xfc, 0x7b, 0xc4, 0x48, 0x1c, + 0x4e, 0x69, 0x7f, 0x1a, 0x9a, 0x3a, 0x4c, 0x6a, 0x50, 0x79, 0x78, 0xb8, 0x7b, 0xd0, 0xbe, 0x44, + 0x1a, 0x30, 0x7f, 0xb4, 0xfb, 0xe8, 0xd1, 0xfe, 0xee, 0x4e, 0xdb, 0x22, 0x4d, 0xa8, 0xa9, 0xbc, + 0xa5, 0x92, 0x9d, 0x00, 0xd9, 0x1a, 0x0c, 0xc4, 0x77, 0xea, 0x70, 0x9f, 0x72, 0xb0, 0x65, 0x70, + 0x70, 0x01, 0x17, 0x95, 0x8a, 0xb9, 0xe8, 0x85, 0x6b, 0x6d, 0xef, 0x42, 0xe3, 0x50, 0x7b, 0xb7, + 0x81, 0x02, 0x25, 0x5f, 0x6c, 0x08, 0x41, 0xd4, 0x10, 0x6d, 0x38, 0x25, 0x7d, 0x38, 0xf6, 0xef, + 0x5b, 0x3c, 0x97, 0x5c, 0x0d, 0x9f, 0xf7, 0x6d, 0x43, 0x53, 0x85, 0x60, 0xd2, 0x24, 0x44, 0x03, + 0x63, 0x34, 0x38, 0x94, 0x5e, 0x78, 0x72, 0x12, 0x53, 0x99, 0x32, 0x64, 0x60, 0x4c, 0x12, 0x98, + 0x4f, 0xc5, 0xfc, 0x13, 0x8f, 0xf7, 0x10, 0x8b, 0xd4, 0xa1, 0x1c, 0xce, 0xf4, 0x7a, 0x44, 0xcf, + 0x68, 0x14, 0xab, 0x64, 0x29, 0x55, 0x56, 0xb9, 0x92, 0xd9, 0x55, 0xde, 0x80, 0x9a, 0x6a, 0xd7, + 0x54, 0x59, 0x92, 0x52, 0xd5, 0x33, 0xd5, 0x88, 0xa7, 0x0c, 0x63, 0xd0, 0x5c, 0x4d, 0xe7, 0x2b, + 0xc8, 0x2d, 0x20, 0x27, 0x5e, 0x94, 0x25, 0x2f, 0x23, 0x79, 0x41, 0x8d, 0xfd, 0x04, 0x96, 0x25, + 0xeb, 0x68, 0xce, 0x94, 0xb9, 0x89, 0xd6, 0x45, 0x02, 0x53, 0xca, 0x0b, 0x8c, 0xfd, 0x9f, 0x16, + 0xcc, 0x8b, 0x9d, 0xce, 0xbd, 0xfd, 0xe1, 0xfb, 0x6c, 0x60, 0xa4, 0x63, 0x3c, 0x93, 0x40, 0xe9, + 0x12, 0x6a, 0x32, 0xa7, 0x08, 0xcb, 0x45, 0x8a, 0x90, 0x40, 0x65, 0xec, 0x26, 0xa7, 0x78, 0xc2, + 0xae, 0x3b, 0xf8, 0x3f, 0x69, 0xf3, 0x78, 0x10, 0x57, 0xba, 0x18, 0x0b, 0x2a, 0x7a, 0xe5, 0xc4, + 0xed, 0x7b, 0xfe, 0x95, 0xd3, 0x55, 0xa8, 0xe3, 0x00, 0x7a, 0x69, 0xb8, 0x27, 0x05, 0x18, 0xe7, + 0xf2, 0x02, 0x4a, 0xb2, 0xc8, 0x58, 0x4e, 0x11, 0x7b, 0x95, 0xef, 0xbc, 0x58, 0x02, 0x75, 0xb3, + 0x2a, 0x72, 0x53, 0x53, 0x38, 0xe5, 0x08, 0x31, 0x80, 0x2c, 0x47, 0x08, 0x52, 0x47, 0xd5, 0xdb, + 0x5d, 0xe8, 0xec, 0x50, 0x9f, 0x26, 0x74, 0xcb, 0xf7, 0xb3, 0xed, 0xbf, 0x02, 0x57, 0x0a, 0xea, + 0x84, 0xff, 0xfc, 0x25, 0x58, 0xdd, 0xe2, 0x79, 0x7c, 0x3f, 0xa9, 0xdc, 0x14, 0xbb, 0x03, 0x6b, + 0xd9, 0x26, 0x45, 0x67, 0xf7, 0x60, 0x69, 0x87, 0x1e, 0x4f, 0x86, 0xfb, 0xf4, 0x2c, 0xed, 0x88, + 0x40, 0x25, 0x3e, 0x0d, 0xcf, 0x85, 0x60, 0xe2, 0xff, 0xe4, 0x55, 0x00, 0x9f, 0xd1, 0xf4, 0xe2, + 0x31, 0xed, 0xcb, 0x97, 0x09, 0x88, 0x1c, 0x8d, 0x69, 0xdf, 0x7e, 0x1b, 0x88, 0xde, 0x8e, 0x58, + 0x2f, 0x66, 0xf7, 0x26, 0xc7, 0xbd, 0x78, 0x1a, 0x27, 0x74, 0x24, 0x9f, 0x5c, 0xe8, 0x90, 0x7d, + 0x13, 0x9a, 0x87, 0xee, 0xd4, 0xa1, 0xdf, 0x10, 0x4f, 0xbe, 0x2e, 0xc3, 0xfc, 0xd8, 0x9d, 0x32, + 0x35, 0xa5, 0xe2, 0x50, 0x58, 0x6d, 0xff, 0x7b, 0x09, 0xe6, 0x38, 0x25, 0x6b, 0x75, 0x40, 0xe3, + 0xc4, 0x0b, 0x90, 0xb1, 0x64, 0xab, 0x1a, 0x94, 0x63, 0xe5, 0x52, 0x01, 0x2b, 0x8b, 0x53, 0x9a, + 0xcc, 0xf2, 0x16, 0xfc, 0x6a, 0x60, 0x8c, 0xb9, 0xd2, 0x24, 0x31, 0x1e, 0x08, 0x49, 0x81, 0x4c, + 0xc8, 0x32, 0xb5, 0xae, 0x7c, 0x7c, 0x52, 0x4a, 0x05, 0xe7, 0xea, 0x50, 0xa1, 0x0d, 0x9f, 0xe7, + 0x0c, 0x9e, 0xb3, 0xe1, 0x39, 0x5b, 0x5d, 0x7b, 0x09, 0x5b, 0xcd, 0x8f, 0x6e, 0x2f, 0xb2, 0xd5, + 0xf0, 0x12, 0xb6, 0xda, 0x26, 0xd0, 0xbe, 0x47, 0xa9, 0x43, 0x99, 0x37, 0x28, 0x79, 0xf7, 0xdb, + 0x16, 0xb4, 0x05, 0x17, 0xa9, 0x3a, 0xf2, 0xba, 0xe1, 0xf5, 0x16, 0x66, 0x5b, 0xdf, 0x80, 0x05, + 0xf4, 0x45, 0x55, 0x6c, 0x56, 0x04, 0x92, 0x0d, 0x90, 0xcd, 0x43, 0x5e, 0x8a, 0x8e, 0x3c, 0x5f, + 0x6c, 0x8a, 0x0e, 0xc9, 0xf0, 0x6e, 0xe4, 0x8a, 0x64, 0x29, 0xcb, 0x51, 0x65, 0xfb, 0x4f, 0x2d, + 0x58, 0xd2, 0x06, 0x2c, 0xb8, 0xf0, 0x3d, 0x90, 0xd2, 0xc0, 0x03, 0xb5, 0x5c, 0x72, 0x2f, 0x9b, + 0x62, 0x93, 0x7e, 0x66, 0x10, 0xe3, 0x66, 0xba, 0x53, 0x1c, 0x60, 0x3c, 0x19, 0x09, 0x25, 0xaa, + 0x43, 0x8c, 0x91, 0xce, 0x29, 0x7d, 0xaa, 0x48, 0xb8, 0x1a, 0x37, 0x30, 0x8c, 0x86, 0x31, 0x1f, + 0x5a, 0x11, 0x55, 0x44, 0x34, 0x4c, 0x07, 0xed, 0xbf, 0xb3, 0x60, 0x99, 0x1f, 0x86, 0xc4, 0x51, + 0x53, 0x3d, 0x94, 0x99, 0xe3, 0xa7, 0x3f, 0x2e, 0x91, 0x7b, 0x97, 0x1c, 0x51, 0x26, 0x9f, 0x7d, + 0xc9, 0x03, 0x9c, 0xca, 0xe0, 0x9a, 0xb1, 0x17, 0xe5, 0xa2, 0xbd, 0x78, 0xc1, 0x4a, 0x17, 0x05, + 0x26, 0xab, 0x85, 0x81, 0xc9, 0xbb, 0xf3, 0x50, 0x8d, 0xfb, 0xe1, 0x98, 0xda, 0x6b, 0xb0, 0x62, + 0x4e, 0x4e, 0xa8, 0xa0, 0xef, 0x5a, 0xd0, 0xb9, 0xc7, 0x03, 0xf8, 0x5e, 0x30, 0xdc, 0xf3, 0xe2, + 0x24, 0x8c, 0xd4, 0x7b, 0xc2, 0x6b, 0x00, 0x71, 0xe2, 0x46, 0x09, 0xcf, 0xd3, 0x15, 0x01, 0xc1, + 0x14, 0x61, 0x63, 0xa4, 0xc1, 0x80, 0xd7, 0xf2, 0xbd, 0x51, 0xe5, 0x9c, 0x0f, 0x21, 0x8e, 0x6b, + 0x86, 0x25, 0x7e, 0x83, 0x67, 0x34, 0x32, 0x5f, 0x81, 0x9e, 0xa1, 0x5e, 0xe7, 0xe7, 0xa0, 0x0c, + 0x6a, 0xff, 0x8d, 0x05, 0x8b, 0xe9, 0x20, 0xf1, 0xae, 0xcf, 0xd4, 0x0e, 0xc2, 0xfc, 0xa6, 0xda, + 0x41, 0x86, 0x2a, 0x3d, 0x66, 0x8f, 0xc5, 0xd8, 0x34, 0x04, 0x25, 0x56, 0x94, 0xc2, 0x89, 0x74, + 0x70, 0x74, 0x88, 0xe7, 0x27, 0x31, 0x4f, 0x40, 0x78, 0x35, 0xa2, 0x84, 0x69, 0xd6, 0xa3, 0x04, + 0xbf, 0xe2, 0x41, 0x55, 0x59, 0x94, 0xa6, 0x74, 0x1e, 0x51, 0x34, 0xa5, 0xfa, 0x65, 0x48, 0x8d, + 0xaf, 0x8f, 0x2c, 0xdb, 0xbf, 0x66, 0xc1, 0x95, 0x82, 0x85, 0x17, 0x52, 0xb3, 0x03, 0x4b, 0x27, + 0xaa, 0x52, 0x2e, 0x0e, 0x17, 0x9d, 0x35, 0x79, 0x1b, 0x65, 0x2e, 0x88, 0x93, 0xff, 0x40, 0xf9, + 0x45, 0x7c, 0xb9, 0x8d, 0x0c, 0xc0, 0x7c, 0xc5, 0xc6, 0x73, 0x68, 0x68, 0x2f, 0xf9, 0xc8, 0x65, + 0x58, 0x7e, 0xf2, 0xe0, 0xd1, 0xc1, 0xee, 0xd1, 0x51, 0xef, 0xf0, 0xf1, 0xdd, 0x2f, 0xee, 0x7e, + 0xa5, 0xb7, 0xb7, 0x75, 0xb4, 0xd7, 0xbe, 0x44, 0xd6, 0x80, 0x1c, 0xec, 0x1e, 0x3d, 0xda, 0xdd, + 0x31, 0x70, 0x8b, 0x5c, 0x83, 0xee, 0xe3, 0x83, 0xc7, 0x47, 0xbb, 0x3b, 0xbd, 0xa2, 0xef, 0x4a, + 0xe4, 0x55, 0xb8, 0x22, 0xea, 0x0b, 0x3e, 0x2f, 0xdf, 0xf9, 0xf5, 0x32, 0xb4, 0xf8, 0x25, 0x29, + 0xff, 0xe9, 0x08, 0x1a, 0x91, 0xf7, 0x61, 0x5e, 0xfc, 0xf4, 0x07, 0x59, 0x15, 0xb3, 0x36, 0x7f, + 0x6c, 0xa4, 0xbb, 0x96, 0x85, 0x05, 0x5b, 0x2f, 0xff, 0xfc, 0x0f, 0xff, 0xe9, 0x37, 0x4b, 0x0b, + 0xa4, 0xb1, 0x79, 0xf6, 0xd6, 0xe6, 0x90, 0x06, 0x31, 0x6b, 0xe3, 0x6b, 0x00, 0xe9, 0x8f, 0x62, + 0x90, 0x8e, 0x72, 0x27, 0x33, 0xbf, 0xf6, 0xd1, 0xbd, 0x52, 0x50, 0x23, 0xda, 0xbd, 0x82, 0xed, + 0x2e, 0xdb, 0x2d, 0xd6, 0xae, 0x17, 0x78, 0x09, 0xff, 0x85, 0x8c, 0x77, 0xad, 0x0d, 0x32, 0x80, + 0xa6, 0xfe, 0x9b, 0x17, 0x44, 0x46, 0xb1, 0x0a, 0x7e, 0x71, 0xa3, 0xfb, 0x4a, 0x61, 0x9d, 0x0c, + 0xe1, 0x61, 0x1f, 0xab, 0x76, 0x9b, 0xf5, 0x31, 0x41, 0x8a, 0xb4, 0x17, 0x1f, 0x5a, 0xe6, 0x4f, + 0x5b, 0x90, 0xab, 0x9a, 0xc6, 0xc9, 0xfd, 0xb0, 0x46, 0xf7, 0xd5, 0x19, 0xb5, 0xa2, 0xaf, 0x57, + 0xb1, 0xaf, 0xcb, 0x36, 0x61, 0x7d, 0xf5, 0x91, 0x46, 0xfe, 0xb0, 0xc6, 0xbb, 0xd6, 0xc6, 0x9d, + 0xbf, 0xb8, 0x0e, 0x75, 0x15, 0x77, 0x26, 0x1f, 0xc2, 0x82, 0x71, 0x8b, 0x4d, 0xe4, 0x34, 0x8a, + 0x2e, 0xbd, 0xbb, 0x57, 0x8b, 0x2b, 0x45, 0xc7, 0xd7, 0xb0, 0xe3, 0x0e, 0x59, 0x63, 0x1d, 0x8b, + 0x6b, 0xe0, 0x4d, 0xcc, 0xc7, 0xe0, 0xc9, 0xd5, 0x4f, 0xf9, 0x3c, 0xd3, 0x9b, 0x67, 0x63, 0x9e, + 0xb9, 0x9b, 0x6a, 0x63, 0x9e, 0xf9, 0xeb, 0x6a, 0xfb, 0x2a, 0x76, 0xb7, 0x46, 0x56, 0xf4, 0xee, + 0x54, 0x3c, 0x98, 0xe2, 0x8b, 0x00, 0xfd, 0x57, 0x21, 0xc8, 0xab, 0x8a, 0xb1, 0x8a, 0x7e, 0x2d, + 0x42, 0xb1, 0x48, 0xfe, 0x27, 0x23, 0xec, 0x0e, 0x76, 0x45, 0x08, 0x6e, 0x9f, 0xfe, 0xa3, 0x10, + 0xe4, 0xab, 0x50, 0x57, 0xaf, 0x80, 0xc9, 0x65, 0xed, 0x55, 0xb6, 0xfe, 0x6a, 0xb9, 0xdb, 0xc9, + 0x57, 0x14, 0x31, 0x86, 0xde, 0x32, 0x63, 0x8c, 0x27, 0xd0, 0xd0, 0x5e, 0xfa, 0x92, 0x2b, 0xea, + 0xd6, 0x20, 0xfb, 0x9a, 0xb8, 0xdb, 0x2d, 0xaa, 0x12, 0x5d, 0x2c, 0x61, 0x17, 0x0d, 0x52, 0x47, + 0xde, 0x4b, 0x9e, 0x85, 0x31, 0xd9, 0x87, 0x55, 0x71, 0xee, 0x39, 0xa6, 0x1f, 0x67, 0x89, 0x0a, + 0x7e, 0x24, 0xe3, 0xb6, 0x45, 0xde, 0x83, 0x9a, 0x7c, 0xd0, 0x4d, 0xd6, 0x8a, 0x1f, 0xa6, 0x77, + 0x2f, 0xe7, 0x70, 0xa1, 0x15, 0xbf, 0x02, 0x90, 0x3e, 0x2b, 0x56, 0x02, 0x9c, 0x7b, 0xa6, 0xac, + 0x76, 0x27, 0xff, 0x06, 0xd9, 0x5e, 0xc3, 0x09, 0xb6, 0x09, 0x0a, 0x70, 0x40, 0xcf, 0xe5, 0x1b, + 0x99, 0xaf, 0x43, 0x43, 0x7b, 0x59, 0xac, 0x96, 0x2f, 0xff, 0x2a, 0x59, 0x2d, 0x5f, 0xc1, 0x43, + 0x64, 0xbb, 0x8b, 0xad, 0xaf, 0xd8, 0x8b, 0xac, 0xf5, 0xd8, 0x1b, 0x06, 0x23, 0x4e, 0xc0, 0x36, + 0xe8, 0x14, 0x16, 0x8c, 0xe7, 0xc3, 0x4a, 0x7a, 0x8a, 0x1e, 0x27, 0x2b, 0xe9, 0x29, 0x7c, 0x71, + 0x2c, 0xd9, 0xd9, 0x5e, 0x62, 0xfd, 0x9c, 0x21, 0x89, 0xd6, 0xd3, 0x07, 0xd0, 0xd0, 0x9e, 0x02, + 0xab, 0xb9, 0xe4, 0x5f, 0x1d, 0xab, 0xb9, 0x14, 0xbd, 0x1c, 0x5e, 0xc1, 0x3e, 0x5a, 0x36, 0xb2, + 0x02, 0x3e, 0x31, 0x61, 0x6d, 0x7f, 0x08, 0x2d, 0xf3, 0x71, 0xb0, 0x92, 0xcb, 0xc2, 0x67, 0xc6, + 0x4a, 0x2e, 0x67, 0xbc, 0x28, 0x16, 0x2c, 0xbd, 0xb1, 0xac, 0x3a, 0xd9, 0xfc, 0x48, 0xdc, 0x15, + 0x3f, 0x27, 0x5f, 0x62, 0xca, 0x47, 0xbc, 0xf9, 0x21, 0x97, 0x35, 0xae, 0xd5, 0x5f, 0x06, 0x29, + 0x79, 0xc9, 0x3d, 0x0f, 0x32, 0x99, 0x99, 0x3f, 0x92, 0x41, 0x8b, 0x82, 0x6f, 0x7f, 0x34, 0x8b, + 0xa2, 0x3f, 0x0f, 0xd2, 0x2c, 0x8a, 0xf1, 0x44, 0x28, 0x6b, 0x51, 0x12, 0x8f, 0xb5, 0x11, 0xc0, + 0x62, 0x26, 0x0b, 0x4e, 0x49, 0x45, 0x71, 0xda, 0x70, 0xf7, 0xda, 0x8b, 0x93, 0xe7, 0x4c, 0x45, + 0x25, 0x15, 0xd4, 0xa6, 0x4c, 0xd2, 0xfe, 0x19, 0x68, 0xea, 0xcf, 0x36, 0x89, 0x2e, 0xca, 0xd9, + 0x9e, 0x5e, 0x29, 0xac, 0x33, 0x37, 0x97, 0x34, 0xf5, 0x6e, 0xc8, 0x97, 0x61, 0x4d, 0x89, 0xba, + 0x9e, 0x58, 0x15, 0x93, 0xd7, 0x0a, 0xd2, 0xad, 0xf4, 0x68, 0x48, 0xf7, 0xca, 0xcc, 0x7c, 0xac, + 0xdb, 0x16, 0x63, 0x1a, 0xf3, 0x3d, 0x5c, 0xaa, 0xcc, 0x8b, 0x9e, 0x01, 0xa6, 0xca, 0xbc, 0xf0, + 0x11, 0x9d, 0x64, 0x1a, 0xb2, 0x6c, 0xac, 0x11, 0xbf, 0x08, 0x20, 0x1f, 0xc0, 0xa2, 0x96, 0xba, + 0x7a, 0x34, 0x0d, 0xfa, 0x4a, 0x00, 0xf2, 0x6f, 0x1c, 0xba, 0x45, 0xee, 0xba, 0x7d, 0x19, 0xdb, + 0x5f, 0xb2, 0x8d, 0xc5, 0x61, 0xcc, 0xbf, 0x0d, 0x0d, 0x3d, 0x2d, 0xf6, 0x05, 0xed, 0x5e, 0xd6, + 0xaa, 0xf4, 0x14, 0xfd, 0xdb, 0x16, 0xf9, 0x6d, 0x0b, 0x9a, 0x46, 0x92, 0xa9, 0x71, 0xdd, 0x95, + 0x69, 0xa7, 0xa3, 0xd7, 0xe9, 0x0d, 0xd9, 0x0e, 0x0e, 0x72, 0x7f, 0xe3, 0x0b, 0xc6, 0x22, 0x7c, + 0x64, 0x1c, 0xfb, 0x6e, 0x65, 0x7f, 0x15, 0xe5, 0x79, 0x96, 0x40, 0x7f, 0x07, 0xf2, 0xfc, 0xb6, + 0x45, 0xbe, 0x67, 0x41, 0xcb, 0x0c, 0x56, 0xa8, 0xad, 0x2a, 0x0c, 0x8b, 0xa8, 0xad, 0x9a, 0x11, + 0xe1, 0xf8, 0x00, 0x47, 0xf9, 0x68, 0xc3, 0x31, 0x46, 0x29, 0x5e, 0x4a, 0xfe, 0x78, 0xa3, 0x25, + 0xef, 0xf2, 0x5f, 0x46, 0x92, 0x11, 0x34, 0xa2, 0x59, 0x8d, 0xec, 0xf6, 0xea, 0x3f, 0xf6, 0xb3, + 0x6e, 0xdd, 0xb6, 0xc8, 0xd7, 0xf9, 0x8f, 0xa7, 0x88, 0x6f, 0x91, 0x4b, 0x5e, 0xf6, 0x7b, 0xfb, + 0x06, 0xce, 0xe9, 0x9a, 0x7d, 0xc5, 0x98, 0x53, 0xd6, 0x1e, 0x6f, 0xf1, 0xd1, 0x89, 0xdf, 0xe9, + 0x49, 0x0d, 0x4a, 0xee, 0xb7, 0x7b, 0x66, 0x0f, 0x72, 0xc4, 0x07, 0x29, 0xc8, 0x0d, 0x56, 0x7e, + 0xc9, 0x66, 0xec, 0x0d, 0x1c, 0xeb, 0x0d, 0xfb, 0xb5, 0x99, 0x63, 0xdd, 0xc4, 0x90, 0x03, 0x1b, + 0xf1, 0x21, 0x40, 0x1a, 0xed, 0x26, 0x99, 0x68, 0xab, 0x12, 0xf0, 0x7c, 0x40, 0xdc, 0x94, 0x17, + 0x19, 0x94, 0x65, 0x2d, 0x7e, 0x95, 0xab, 0xab, 0x07, 0x32, 0x4e, 0xab, 0x3b, 0x25, 0x66, 0x58, + 0xda, 0x70, 0x4a, 0xb2, 0xed, 0x1b, 0xca, 0x4a, 0x05, 0x7d, 0x1f, 0xc3, 0xc2, 0x7e, 0x18, 0x3e, + 0x9d, 0x8c, 0xd5, 0x5d, 0x95, 0x19, 0x0d, 0xdc, 0x73, 0xe3, 0xd3, 0x6e, 0x66, 0x16, 0xf6, 0x75, + 0x6c, 0xaa, 0x4b, 0x3a, 0x5a, 0x53, 0x9b, 0x1f, 0xa5, 0xd1, 0xf4, 0xe7, 0xc4, 0x85, 0x25, 0xa5, + 0x03, 0xd5, 0xc0, 0xbb, 0x66, 0x33, 0x86, 0xe6, 0xcb, 0x76, 0x61, 0x78, 0xb6, 0x72, 0xb4, 0x9b, + 0xb1, 0x6c, 0xf3, 0xb6, 0x45, 0x0e, 0xa1, 0xb9, 0x43, 0xfb, 0xe1, 0x80, 0x8a, 0x90, 0xda, 0x72, + 0x3a, 0x70, 0x15, 0x8b, 0xeb, 0x2e, 0x18, 0xa0, 0x69, 0x17, 0xc6, 0xee, 0x34, 0xa2, 0xdf, 0xd8, + 0xfc, 0x48, 0x04, 0xeb, 0x9e, 0x4b, 0xbb, 0x20, 0xa3, 0x99, 0x86, 0x5d, 0xc8, 0x84, 0x3f, 0x0d, + 0xbb, 0x90, 0x0b, 0x7f, 0x1a, 0x4b, 0x2d, 0xa3, 0xa9, 0xc4, 0x87, 0xa5, 0x5c, 0xc4, 0x54, 0x99, + 0x84, 0x59, 0x71, 0xd6, 0xee, 0xf5, 0xd9, 0x04, 0x66, 0x6f, 0x1b, 0x66, 0x6f, 0x47, 0xb0, 0xb0, + 0x43, 0xf9, 0x62, 0xf1, 0x84, 0x98, 0x4c, 0xa6, 0xb2, 0x9e, 0x6e, 0x93, 0x55, 0xe0, 0x58, 0x67, + 0x1a, 0x7e, 0xcc, 0x46, 0x21, 0x5f, 0x85, 0xc6, 0x7d, 0x9a, 0xc8, 0x0c, 0x18, 0xe5, 0x7a, 0x66, + 0x52, 0x62, 0xba, 0x05, 0x09, 0x34, 0x26, 0xcf, 0x60, 0x6b, 0x9b, 0x74, 0x30, 0xa4, 0x5c, 0x39, + 0xf5, 0xbc, 0xc1, 0x73, 0xf2, 0xd3, 0xd8, 0xb8, 0x4a, 0xd4, 0x5b, 0xd3, 0x12, 0x27, 0xf4, 0xc6, + 0x17, 0x33, 0x78, 0x51, 0xcb, 0x41, 0x38, 0xa0, 0x9a, 0x0b, 0x14, 0x40, 0x43, 0xcb, 0x2f, 0x55, + 0x02, 0x94, 0xcf, 0x95, 0x55, 0x02, 0x54, 0x90, 0x8e, 0x6a, 0xaf, 0x63, 0x3f, 0x36, 0xb9, 0x9e, + 0xf6, 0xc3, 0x53, 0x50, 0xd3, 0x9e, 0x36, 0x3f, 0x72, 0x47, 0xc9, 0x73, 0xf2, 0x04, 0x9f, 0x4b, + 0xeb, 0x59, 0x3e, 0xa9, 0x2f, 0x9d, 0x4d, 0x08, 0x52, 0x8b, 0xa5, 0x55, 0x99, 0xfe, 0x35, 0xef, + 0x0a, 0x3d, 0xa5, 0xcf, 0x02, 0x1c, 0x25, 0xe1, 0x78, 0xc7, 0xa5, 0xa3, 0x30, 0x48, 0x75, 0x6d, + 0x9a, 0xc9, 0x92, 0xea, 0x2f, 0x2d, 0x9d, 0x85, 0x3c, 0xd1, 0x0e, 0x1f, 0x46, 0x92, 0x94, 0x64, + 0xae, 0x99, 0xc9, 0x2e, 0x6a, 0x41, 0x0a, 0x12, 0x5e, 0x6e, 0x5b, 0x64, 0x0b, 0x20, 0x0d, 0x99, + 0xab, 0xa3, 0x44, 0x2e, 0x1a, 0xaf, 0xd4, 0x5e, 0x41, 0x7c, 0xfd, 0x10, 0xea, 0x69, 0x0c, 0xf6, + 0x72, 0x9a, 0x23, 0x6c, 0x44, 0x6c, 0x95, 0x05, 0xcf, 0x45, 0x46, 0xed, 0x36, 0x2e, 0x15, 0x90, + 0x1a, 0x5b, 0x2a, 0x0c, 0x77, 0x7a, 0xb0, 0xcc, 0x07, 0xa8, 0xdc, 0x11, 0xcc, 0xcd, 0x90, 0x33, + 0x29, 0x88, 0x4e, 0x2a, 0x69, 0x2e, 0x0c, 0xee, 0x19, 0xd1, 0x0a, 0xc6, 0xad, 0x3c, 0x2f, 0x84, + 0xa9, 0xe6, 0x11, 0x2c, 0xe5, 0xa2, 0x4f, 0x4a, 0xa4, 0x67, 0x05, 0x04, 0x95, 0x48, 0xcf, 0x0c, + 0x5c, 0xd9, 0xab, 0xd8, 0xe5, 0xa2, 0x0d, 0x78, 0x02, 0x3a, 0xf7, 0x92, 0xfe, 0xe9, 0xbb, 0xd6, + 0xc6, 0xdd, 0x9b, 0x1f, 0xfc, 0xaf, 0xa1, 0x97, 0x9c, 0x4e, 0x8e, 0x6f, 0xf5, 0xc3, 0xd1, 0xa6, + 0x2f, 0x43, 0x0a, 0x22, 0xc3, 0x6a, 0xd3, 0x0f, 0x06, 0x9b, 0xd8, 0xf2, 0xf1, 0x1c, 0xfe, 0xac, + 0xec, 0xa7, 0xff, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x16, 0x57, 0x9e, 0x5b, 0x88, 0x56, 0x00, 0x00, } diff --git a/lnrpc/rpc.proto b/lnrpc/rpc.proto index 23adaf71b..cf4401e33 100644 --- a/lnrpc/rpc.proto +++ b/lnrpc/rpc.proto @@ -900,6 +900,8 @@ message ListUnspentResponse { enum AddressType { WITNESS_PUBKEY_HASH = 0; NESTED_PUBKEY_HASH = 1; + UNUSED_WITNESS_PUBKEY_HASH = 2; + UNUSED_NESTED_PUBKEY_HASH = 3; } message NewAddressRequest { diff --git a/lnrpc/rpc.swagger.json b/lnrpc/rpc.swagger.json index 9615a4faf..3390bbf1a 100644 --- a/lnrpc/rpc.swagger.json +++ b/lnrpc/rpc.swagger.json @@ -793,7 +793,9 @@ "type": "string", "enum": [ "WITNESS_PUBKEY_HASH", - "NESTED_PUBKEY_HASH" + "NESTED_PUBKEY_HASH", + "UNUSED_WITNESS_PUBKEY_HASH", + "UNUSED_NESTED_PUBKEY_HASH" ], "default": "WITNESS_PUBKEY_HASH" } @@ -1289,7 +1291,9 @@ "type": "string", "enum": [ "WITNESS_PUBKEY_HASH", - "NESTED_PUBKEY_HASH" + "NESTED_PUBKEY_HASH", + "UNUSED_WITNESS_PUBKEY_HASH", + "UNUSED_NESTED_PUBKEY_HASH" ], "default": "WITNESS_PUBKEY_HASH", "description": "- `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0)\n- `np2wkh`: Pay to nested witness key hash (`NESTED_PUBKEY_HASH` = 1)", From 8c1181af3b4665e69d147f267d0f03849cde4567 Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Tue, 19 Feb 2019 19:16:39 -0800 Subject: [PATCH 2/3] lnwallet: add LastUnusedAddress to WalletController interface In this commit, we add a new `LastUnusedAddress` method to the `WalletController` interface. Callers can use this new method to graph the last unused address, which can be useful for UIs that want to refresh the address, but not cause nearly unbounded address generation. The implementation for `btcwallet` uses the existing `CurrentAddress` method. We've also added a new integration tests to exercise the new functionality. --- lnwallet/btcwallet/btcwallet.go | 23 +++++++++++++ lnwallet/interface.go | 8 +++++ lnwallet/interface_test.go | 60 +++++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+) diff --git a/lnwallet/btcwallet/btcwallet.go b/lnwallet/btcwallet/btcwallet.go index 2449d968b..963ca002c 100644 --- a/lnwallet/btcwallet/btcwallet.go +++ b/lnwallet/btcwallet/btcwallet.go @@ -254,6 +254,29 @@ func (b *BtcWallet) NewAddress(t lnwallet.AddressType, change bool) (btcutil.Add return b.wallet.NewAddress(defaultAccount, keyScope) } +// LastUnusedAddress returns the last *unused* address known by the wallet. An +// address is unused if it hasn't received any payments. This can be useful in +// UIs in order to continually show the "freshest" address without having to +// worry about "address inflation" caused by continual refreshing. Similar to +// NewAddress it can derive a specified address type, and also optionally a +// change address. +func (b *BtcWallet) LastUnusedAddress(addrType lnwallet.AddressType) ( + btcutil.Address, error) { + + var keyScope waddrmgr.KeyScope + + switch addrType { + case lnwallet.WitnessPubKey: + keyScope = waddrmgr.KeyScopeBIP0084 + case lnwallet.NestedWitnessPubKey: + keyScope = waddrmgr.KeyScopeBIP0049Plus + default: + return nil, fmt.Errorf("unknown address type") + } + + return b.wallet.CurrentAddress(defaultAccount, keyScope) +} + // IsOurAddress checks if the passed address belongs to this wallet // // This is a part of the WalletController interface. diff --git a/lnwallet/interface.go b/lnwallet/interface.go index 18c353be0..907bda58e 100644 --- a/lnwallet/interface.go +++ b/lnwallet/interface.go @@ -150,6 +150,14 @@ type WalletController interface { // p2wsh, etc. NewAddress(addrType AddressType, change bool) (btcutil.Address, error) + // LastUnusedAddress returns the last *unused* address known by the + // wallet. An address is unused if it hasn't received any payments. + // This can be useful in UIs in order to continually show the + // "freshest" address without having to worry about "address inflation" + // caused by continual refreshing. Similar to NewAddress it can derive + // a specified address type. By default, this is a non-change address. + LastUnusedAddress(addrType AddressType) (btcutil.Address, error) + // IsOurAddress checks if the passed address belongs to this wallet IsOurAddress(a btcutil.Address) bool diff --git a/lnwallet/interface_test.go b/lnwallet/interface_test.go index 7d5ad9049..4f486670e 100644 --- a/lnwallet/interface_test.go +++ b/lnwallet/interface_test.go @@ -2165,6 +2165,62 @@ func testChangeOutputSpendConfirmation(r *rpctest.Harness, } } +// testLastUnusedAddr tests that the LastUnusedAddress returns the address if +// it isn't used, and also that once the address becomes used, then it's +// properly rotated. +func testLastUnusedAddr(miner *rpctest.Harness, + alice, bob *lnwallet.LightningWallet, t *testing.T) { + + if _, err := miner.Node.Generate(1); err != nil { + t.Fatalf("unable to generate block: %v", err) + } + + // We'll repeat this test for each address type to ensure they're all + // rotated properly. + addrTypes := []lnwallet.AddressType{ + lnwallet.WitnessPubKey, lnwallet.NestedWitnessPubKey, + } + for _, addrType := range addrTypes { + addr1, err := alice.LastUnusedAddress(addrType) + if err != nil { + t.Fatalf("unable to get addr: %v", err) + } + addr2, err := alice.LastUnusedAddress(addrType) + if err != nil { + t.Fatalf("unable to get addr: %v", err) + } + + // If we generate two addresses back to back, then we should + // get the same addr, as none of them have been used yet. + if addr1.String() != addr2.String() { + t.Fatalf("addresses changed w/o use: %v vs %v", addr1, addr2) + } + + // Next, we'll have Bob pay to Alice's new address. This should + // trigger address rotation at the backend wallet. + addrScript, err := txscript.PayToAddrScript(addr1) + if err != nil { + t.Fatalf("unable to convert addr to script: %v", err) + } + feeRate := lnwallet.SatPerKWeight(2500) + output := &wire.TxOut{ + Value: 1000000, + PkScript: addrScript, + } + sendCoins(t, miner, bob, alice, output, feeRate) + + // If we make a new address, then it should be brand new, as + // the prior address has been used. + addr3, err := alice.LastUnusedAddress(addrType) + if err != nil { + t.Fatalf("unable to get addr: %v", err) + } + if addr1.String() == addr3.String() { + t.Fatalf("address should have changed but didn't") + } + } +} + type walletTestCase struct { name string test func(miner *rpctest.Harness, alice, bob *lnwallet.LightningWallet, @@ -2219,6 +2275,10 @@ var walletTests = []walletTestCase{ name: "test cancel non-existent reservation", test: testCancelNonExistentReservation, }, + { + name: "last unused addr", + test: testLastUnusedAddr, + }, { name: "reorg wallet balance", test: testReorgWalletBalance, From 65cdb1294e4bb08c5c7eb6ec74aa6e97026eb88f Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Tue, 19 Feb 2019 19:17:46 -0800 Subject: [PATCH 3/3] rpc: recognize the new unused prefix address types --- mock.go | 5 +++++ rpcserver.go | 41 +++++++++++++++++++++++++++++++++-------- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/mock.go b/mock.go index e339bf871..a254f4ba9 100644 --- a/mock.go +++ b/mock.go @@ -226,6 +226,11 @@ func (m *mockWalletController) NewAddress(addrType lnwallet.AddressType, m.rootKey.PubKey().SerializeCompressed(), &chaincfg.MainNetParams) return addr, nil } +func (*mockWalletController) LastUnusedAddress(addrType lnwallet.AddressType) ( + btcutil.Address, error) { + return nil, nil +} + func (*mockWalletController) IsOurAddress(a btcutil.Address) bool { return false } diff --git a/rpcserver.go b/rpcserver.go index f4fc68b9b..4cacd1062 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -932,17 +932,42 @@ func (r *rpcServer) NewAddress(ctx context.Context, // Translate the gRPC proto address type to the wallet controller's // available address types. - var addrType lnwallet.AddressType + var ( + addr btcutil.Address + err error + ) switch in.Type { case lnrpc.AddressType_WITNESS_PUBKEY_HASH: - addrType = lnwallet.WitnessPubKey - case lnrpc.AddressType_NESTED_PUBKEY_HASH: - addrType = lnwallet.NestedWitnessPubKey - } + addr, err = r.server.cc.wallet.NewAddress( + lnwallet.WitnessPubKey, false, + ) + if err != nil { + return nil, err + } - addr, err := r.server.cc.wallet.NewAddress(addrType, false) - if err != nil { - return nil, err + case lnrpc.AddressType_NESTED_PUBKEY_HASH: + addr, err = r.server.cc.wallet.NewAddress( + lnwallet.NestedWitnessPubKey, false, + ) + if err != nil { + return nil, err + } + + case lnrpc.AddressType_UNUSED_WITNESS_PUBKEY_HASH: + addr, err = r.server.cc.wallet.LastUnusedAddress( + lnwallet.WitnessPubKey, + ) + if err != nil { + return nil, err + } + + case lnrpc.AddressType_UNUSED_NESTED_PUBKEY_HASH: + addr, err = r.server.cc.wallet.LastUnusedAddress( + lnwallet.NestedWitnessPubKey, + ) + if err != nil { + return nil, err + } } rpcsLog.Infof("[newaddress] addr=%v", addr.String())