lnrpc: add series of new methods for exporting, recovering, and subscribing to SBCs

This commit is contained in:
Olaoluwa Osuntokun 2018-12-09 19:57:57 -08:00
parent 1a488f4aef
commit da3625fc02
No known key found for this signature in database
GPG Key ID: CE58F7F8E20FD9A2
3 changed files with 1553 additions and 607 deletions

@ -55,7 +55,7 @@ func (x AddressType) String() string {
return proto.EnumName(AddressType_name, int32(x))
}
func (AddressType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_rpc_72c11ad9c9dfa44d, []int{0}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{0}
}
type ChannelCloseSummary_ClosureType int32
@ -90,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_72c11ad9c9dfa44d, []int{41, 0}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{41, 0}
}
type ChannelEventUpdate_UpdateType int32
@ -119,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_72c11ad9c9dfa44d, []int{62, 0}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{62, 0}
}
type Invoice_InvoiceState int32
@ -148,7 +148,7 @@ func (x Invoice_InvoiceState) String() string {
return proto.EnumName(Invoice_InvoiceState_name, int32(x))
}
func (Invoice_InvoiceState) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_rpc_72c11ad9c9dfa44d, []int{92, 0}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{92, 0}
}
type GenSeedRequest struct {
@ -169,7 +169,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_72c11ad9c9dfa44d, []int{0}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{0}
}
func (m *GenSeedRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GenSeedRequest.Unmarshal(m, b)
@ -224,7 +224,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_72c11ad9c9dfa44d, []int{1}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{1}
}
func (m *GenSeedResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GenSeedResponse.Unmarshal(m, b)
@ -276,20 +276,28 @@ type InitWalletRequest struct {
// *
// recovery_window is an optional argument specifying the address lookahead
// when restoring a wallet seed. The recovery window applies to each
// invdividual branch of the BIP44 derivation paths. Supplying a recovery
// individual branch of the BIP44 derivation paths. Supplying a recovery
// window of zero indicates that no addresses should be recovered, such after
// the first initialization of the wallet.
RecoveryWindow int32 `protobuf:"varint,4,opt,name=recovery_window,json=recoveryWindow,proto3" json:"recovery_window,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
RecoveryWindow int32 `protobuf:"varint,4,opt,name=recovery_window,json=recoveryWindow,proto3" json:"recovery_window,omitempty"`
// *
// channel_backups is an optional argument that allows clients to recover the
// settled funds within a set of channels. This should be populated if the
// user was unable to close out all channels and sweep funds before partial or
// total data loss occurred. If specified, then after on-chain recovery of
// funds, lnd begin to carry out the data loss recovery protocol in order to
// recover the funds in each channel from a remote force closed transaction.
ChannelBackups *ChanBackupSnapshot `protobuf:"bytes,5,opt,name=channel_backups,json=channelBackups,proto3" json:"channel_backups,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
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_72c11ad9c9dfa44d, []int{2}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{2}
}
func (m *InitWalletRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InitWalletRequest.Unmarshal(m, b)
@ -337,6 +345,13 @@ func (m *InitWalletRequest) GetRecoveryWindow() int32 {
return 0
}
func (m *InitWalletRequest) GetChannelBackups() *ChanBackupSnapshot {
if m != nil {
return m.ChannelBackups
}
return nil
}
type InitWalletResponse struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -347,7 +362,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_72c11ad9c9dfa44d, []int{3}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{3}
}
func (m *InitWalletResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InitWalletResponse.Unmarshal(m, b)
@ -379,17 +394,25 @@ type UnlockWalletRequest struct {
// invdividual branch of the BIP44 derivation paths. Supplying a recovery
// window of zero indicates that no addresses should be recovered, such after
// the first initialization of the wallet.
RecoveryWindow int32 `protobuf:"varint,2,opt,name=recovery_window,json=recoveryWindow,proto3" json:"recovery_window,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
RecoveryWindow int32 `protobuf:"varint,2,opt,name=recovery_window,json=recoveryWindow,proto3" json:"recovery_window,omitempty"`
// *
// channel_backups is an optional argument that allows clients to recover the
// settled funds within a set of channels. This should be populated if the
// user was unable to close out all channels and sweep funds before partial or
// total data loss occurred. If specified, then after on-chain recovery of
// funds, lnd begin to carry out the data loss recovery protocol in order to
// recover the funds in each channel from a remote force closed transaction.
ChannelBackups *ChanBackupSnapshot `protobuf:"bytes,3,opt,name=channel_backups,json=channelBackups,proto3" json:"channel_backups,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
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_72c11ad9c9dfa44d, []int{4}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{4}
}
func (m *UnlockWalletRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnlockWalletRequest.Unmarshal(m, b)
@ -423,6 +446,13 @@ func (m *UnlockWalletRequest) GetRecoveryWindow() int32 {
return 0
}
func (m *UnlockWalletRequest) GetChannelBackups() *ChanBackupSnapshot {
if m != nil {
return m.ChannelBackups
}
return nil
}
type UnlockWalletResponse struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -433,7 +463,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_72c11ad9c9dfa44d, []int{5}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{5}
}
func (m *UnlockWalletResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnlockWalletResponse.Unmarshal(m, b)
@ -471,7 +501,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_72c11ad9c9dfa44d, []int{6}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{6}
}
func (m *ChangePasswordRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChangePasswordRequest.Unmarshal(m, b)
@ -515,7 +545,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_72c11ad9c9dfa44d, []int{7}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{7}
}
func (m *ChangePasswordResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChangePasswordResponse.Unmarshal(m, b)
@ -557,7 +587,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_72c11ad9c9dfa44d, []int{8}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{8}
}
func (m *Utxo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Utxo.Unmarshal(m, b)
@ -645,7 +675,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_72c11ad9c9dfa44d, []int{9}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{9}
}
func (m *Transaction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Transaction.Unmarshal(m, b)
@ -731,7 +761,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_72c11ad9c9dfa44d, []int{10}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{10}
}
func (m *GetTransactionsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetTransactionsRequest.Unmarshal(m, b)
@ -763,7 +793,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_72c11ad9c9dfa44d, []int{11}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{11}
}
func (m *TransactionDetails) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransactionDetails.Unmarshal(m, b)
@ -804,7 +834,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_72c11ad9c9dfa44d, []int{12}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{12}
}
func (m *FeeLimit) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FeeLimit.Unmarshal(m, b)
@ -968,7 +998,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_72c11ad9c9dfa44d, []int{13}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{13}
}
func (m *SendRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendRequest.Unmarshal(m, b)
@ -1072,7 +1102,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_72c11ad9c9dfa44d, []int{14}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{14}
}
func (m *SendResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendResponse.Unmarshal(m, b)
@ -1142,7 +1172,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_72c11ad9c9dfa44d, []int{15}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{15}
}
func (m *SendToRouteRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendToRouteRequest.Unmarshal(m, b)
@ -1207,7 +1237,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_72c11ad9c9dfa44d, []int{16}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{16}
}
func (m *ChannelPoint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelPoint.Unmarshal(m, b)
@ -1353,7 +1383,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_72c11ad9c9dfa44d, []int{17}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{17}
}
func (m *OutPoint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OutPoint.Unmarshal(m, b)
@ -1408,7 +1438,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_72c11ad9c9dfa44d, []int{18}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{18}
}
func (m *LightningAddress) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LightningAddress.Unmarshal(m, b)
@ -1456,7 +1486,7 @@ func (m *EstimateFeeRequest) Reset() { *m = EstimateFeeRequest{} }
func (m *EstimateFeeRequest) String() string { return proto.CompactTextString(m) }
func (*EstimateFeeRequest) ProtoMessage() {}
func (*EstimateFeeRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_72c11ad9c9dfa44d, []int{19}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{19}
}
func (m *EstimateFeeRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EstimateFeeRequest.Unmarshal(m, b)
@ -1504,7 +1534,7 @@ func (m *EstimateFeeResponse) Reset() { *m = EstimateFeeResponse{} }
func (m *EstimateFeeResponse) String() string { return proto.CompactTextString(m) }
func (*EstimateFeeResponse) ProtoMessage() {}
func (*EstimateFeeResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_72c11ad9c9dfa44d, []int{20}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{20}
}
func (m *EstimateFeeResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EstimateFeeResponse.Unmarshal(m, b)
@ -1554,7 +1584,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_72c11ad9c9dfa44d, []int{21}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{21}
}
func (m *SendManyRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendManyRequest.Unmarshal(m, b)
@ -1607,7 +1637,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_72c11ad9c9dfa44d, []int{22}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{22}
}
func (m *SendManyResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendManyResponse.Unmarshal(m, b)
@ -1657,7 +1687,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_72c11ad9c9dfa44d, []int{23}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{23}
}
func (m *SendCoinsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendCoinsRequest.Unmarshal(m, b)
@ -1724,7 +1754,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_72c11ad9c9dfa44d, []int{24}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{24}
}
func (m *SendCoinsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendCoinsResponse.Unmarshal(m, b)
@ -1765,7 +1795,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_72c11ad9c9dfa44d, []int{25}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{25}
}
func (m *ListUnspentRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListUnspentRequest.Unmarshal(m, b)
@ -1811,7 +1841,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_72c11ad9c9dfa44d, []int{26}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{26}
}
func (m *ListUnspentResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListUnspentResponse.Unmarshal(m, b)
@ -1850,7 +1880,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_72c11ad9c9dfa44d, []int{27}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{27}
}
func (m *NewAddressRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NewAddressRequest.Unmarshal(m, b)
@ -1889,7 +1919,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_72c11ad9c9dfa44d, []int{28}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{28}
}
func (m *NewAddressResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NewAddressResponse.Unmarshal(m, b)
@ -1928,7 +1958,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_72c11ad9c9dfa44d, []int{29}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{29}
}
func (m *SignMessageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignMessageRequest.Unmarshal(m, b)
@ -1967,7 +1997,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_72c11ad9c9dfa44d, []int{30}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{30}
}
func (m *SignMessageResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignMessageResponse.Unmarshal(m, b)
@ -2008,7 +2038,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_72c11ad9c9dfa44d, []int{31}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{31}
}
func (m *VerifyMessageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_VerifyMessageRequest.Unmarshal(m, b)
@ -2056,7 +2086,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_72c11ad9c9dfa44d, []int{32}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{32}
}
func (m *VerifyMessageResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_VerifyMessageResponse.Unmarshal(m, b)
@ -2105,7 +2135,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_72c11ad9c9dfa44d, []int{33}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{33}
}
func (m *ConnectPeerRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConnectPeerRequest.Unmarshal(m, b)
@ -2149,7 +2179,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_72c11ad9c9dfa44d, []int{34}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{34}
}
func (m *ConnectPeerResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConnectPeerResponse.Unmarshal(m, b)
@ -2181,7 +2211,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_72c11ad9c9dfa44d, []int{35}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{35}
}
func (m *DisconnectPeerRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DisconnectPeerRequest.Unmarshal(m, b)
@ -2218,7 +2248,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_72c11ad9c9dfa44d, []int{36}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{36}
}
func (m *DisconnectPeerResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DisconnectPeerResponse.Unmarshal(m, b)
@ -2252,7 +2282,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_72c11ad9c9dfa44d, []int{37}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{37}
}
func (m *HTLC) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HTLC.Unmarshal(m, b)
@ -2349,14 +2379,15 @@ type Channel struct {
// The list of active, uncleared HTLCs currently pending within the channel.
PendingHtlcs []*HTLC `protobuf:"bytes,15,rep,name=pending_htlcs,proto3" json:"pending_htlcs,omitempty"`
// *
// The CSV delay expressed in relative blocks. If the channel is force
// closed, we'll need to wait for this many blocks before we can regain our
// funds.
// The CSV delay expressed in relative blocks. If the channel is force closed,
// we will need to wait for this many blocks before we can regain our funds.
CsvDelay uint32 `protobuf:"varint,16,opt,name=csv_delay,proto3" json:"csv_delay,omitempty"`
// / Whether this channel is advertised to the network or not.
Private bool `protobuf:"varint,17,opt,name=private,proto3" json:"private,omitempty"`
// / True if we were the ones that created the channel.
Initiator bool `protobuf:"varint,18,opt,name=initiator,proto3" json:"initiator,omitempty"`
Initiator bool `protobuf:"varint,18,opt,name=initiator,proto3" json:"initiator,omitempty"`
// / A set of flags showing the current state of the cahnnel.
ChanStatusFlags string `protobuf:"bytes,19,opt,name=chan_status_flags,proto3" json:"chan_status_flags,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -2366,7 +2397,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_72c11ad9c9dfa44d, []int{38}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{38}
}
func (m *Channel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Channel.Unmarshal(m, b)
@ -2512,6 +2543,13 @@ func (m *Channel) GetInitiator() bool {
return false
}
func (m *Channel) GetChanStatusFlags() string {
if m != nil {
return m.ChanStatusFlags
}
return ""
}
type ListChannelsRequest struct {
ActiveOnly bool `protobuf:"varint,1,opt,name=active_only,json=activeOnly,proto3" json:"active_only,omitempty"`
InactiveOnly bool `protobuf:"varint,2,opt,name=inactive_only,json=inactiveOnly,proto3" json:"inactive_only,omitempty"`
@ -2526,7 +2564,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_72c11ad9c9dfa44d, []int{39}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{39}
}
func (m *ListChannelsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListChannelsRequest.Unmarshal(m, b)
@ -2586,7 +2624,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_72c11ad9c9dfa44d, []int{40}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{40}
}
func (m *ListChannelsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListChannelsResponse.Unmarshal(m, b)
@ -2643,7 +2681,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_72c11ad9c9dfa44d, []int{41}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{41}
}
func (m *ChannelCloseSummary) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelCloseSummary.Unmarshal(m, b)
@ -2749,7 +2787,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_72c11ad9c9dfa44d, []int{42}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{42}
}
func (m *ClosedChannelsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClosedChannelsRequest.Unmarshal(m, b)
@ -2822,7 +2860,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_72c11ad9c9dfa44d, []int{43}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{43}
}
func (m *ClosedChannelsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClosedChannelsResponse.Unmarshal(m, b)
@ -2875,7 +2913,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_72c11ad9c9dfa44d, []int{44}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{44}
}
func (m *Peer) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Peer.Unmarshal(m, b)
@ -2961,7 +2999,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_72c11ad9c9dfa44d, []int{45}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{45}
}
func (m *ListPeersRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListPeersRequest.Unmarshal(m, b)
@ -2993,7 +3031,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_72c11ad9c9dfa44d, []int{46}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{46}
}
func (m *ListPeersResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListPeersResponse.Unmarshal(m, b)
@ -3030,7 +3068,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_72c11ad9c9dfa44d, []int{47}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{47}
}
func (m *GetInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetInfoRequest.Unmarshal(m, b)
@ -3090,7 +3128,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_72c11ad9c9dfa44d, []int{48}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{48}
}
func (m *GetInfoResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetInfoResponse.Unmarshal(m, b)
@ -3223,7 +3261,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_72c11ad9c9dfa44d, []int{49}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{49}
}
func (m *Chain) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Chain.Unmarshal(m, b)
@ -3270,7 +3308,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_72c11ad9c9dfa44d, []int{50}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{50}
}
func (m *ConfirmationUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConfirmationUpdate.Unmarshal(m, b)
@ -3322,7 +3360,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_72c11ad9c9dfa44d, []int{51}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{51}
}
func (m *ChannelOpenUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelOpenUpdate.Unmarshal(m, b)
@ -3361,7 +3399,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_72c11ad9c9dfa44d, []int{52}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{52}
}
func (m *ChannelCloseUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelCloseUpdate.Unmarshal(m, b)
@ -3416,7 +3454,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_72c11ad9c9dfa44d, []int{53}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{53}
}
func (m *CloseChannelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CloseChannelRequest.Unmarshal(m, b)
@ -3478,7 +3516,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_72c11ad9c9dfa44d, []int{54}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{54}
}
func (m *CloseStatusUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CloseStatusUpdate.Unmarshal(m, b)
@ -3621,7 +3659,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_72c11ad9c9dfa44d, []int{55}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{55}
}
func (m *PendingUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingUpdate.Unmarshal(m, b)
@ -3687,7 +3725,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_72c11ad9c9dfa44d, []int{56}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{56}
}
func (m *OpenChannelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OpenChannelRequest.Unmarshal(m, b)
@ -3798,7 +3836,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_72c11ad9c9dfa44d, []int{57}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{57}
}
func (m *OpenStatusUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OpenStatusUpdate.Unmarshal(m, b)
@ -3954,7 +3992,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_72c11ad9c9dfa44d, []int{58}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{58}
}
func (m *PendingHTLC) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingHTLC.Unmarshal(m, b)
@ -4026,7 +4064,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_72c11ad9c9dfa44d, []int{59}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{59}
}
func (m *PendingChannelsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsRequest.Unmarshal(m, b)
@ -4066,7 +4104,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_72c11ad9c9dfa44d, []int{60}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{60}
}
func (m *PendingChannelsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse.Unmarshal(m, b)
@ -4138,7 +4176,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_72c11ad9c9dfa44d, []int{60, 0}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{60, 0}
}
func (m *PendingChannelsResponse_PendingChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_PendingChannel.Unmarshal(m, b)
@ -4225,7 +4263,7 @@ func (m *PendingChannelsResponse_PendingOpenChannel) String() string {
}
func (*PendingChannelsResponse_PendingOpenChannel) ProtoMessage() {}
func (*PendingChannelsResponse_PendingOpenChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_72c11ad9c9dfa44d, []int{60, 1}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{60, 1}
}
func (m *PendingChannelsResponse_PendingOpenChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_PendingOpenChannel.Unmarshal(m, b)
@ -4298,7 +4336,7 @@ func (m *PendingChannelsResponse_WaitingCloseChannel) String() string {
}
func (*PendingChannelsResponse_WaitingCloseChannel) ProtoMessage() {}
func (*PendingChannelsResponse_WaitingCloseChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_72c11ad9c9dfa44d, []int{60, 2}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{60, 2}
}
func (m *PendingChannelsResponse_WaitingCloseChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_WaitingCloseChannel.Unmarshal(m, b)
@ -4346,7 +4384,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_72c11ad9c9dfa44d, []int{60, 3}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{60, 3}
}
func (m *PendingChannelsResponse_ClosedChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_ClosedChannel.Unmarshal(m, b)
@ -4410,7 +4448,7 @@ func (m *PendingChannelsResponse_ForceClosedChannel) String() string {
}
func (*PendingChannelsResponse_ForceClosedChannel) ProtoMessage() {}
func (*PendingChannelsResponse_ForceClosedChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_72c11ad9c9dfa44d, []int{60, 4}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{60, 4}
}
func (m *PendingChannelsResponse_ForceClosedChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_ForceClosedChannel.Unmarshal(m, b)
@ -4489,7 +4527,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_72c11ad9c9dfa44d, []int{61}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{61}
}
func (m *ChannelEventSubscription) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelEventSubscription.Unmarshal(m, b)
@ -4526,7 +4564,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_72c11ad9c9dfa44d, []int{62}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{62}
}
func (m *ChannelEventUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelEventUpdate.Unmarshal(m, b)
@ -4738,7 +4776,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_72c11ad9c9dfa44d, []int{63}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{63}
}
func (m *WalletBalanceRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WalletBalanceRequest.Unmarshal(m, b)
@ -4774,7 +4812,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_72c11ad9c9dfa44d, []int{64}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{64}
}
func (m *WalletBalanceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WalletBalanceResponse.Unmarshal(m, b)
@ -4825,7 +4863,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_72c11ad9c9dfa44d, []int{65}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{65}
}
func (m *ChannelBalanceRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelBalanceRequest.Unmarshal(m, b)
@ -4859,7 +4897,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_72c11ad9c9dfa44d, []int{66}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{66}
}
func (m *ChannelBalanceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelBalanceResponse.Unmarshal(m, b)
@ -4929,7 +4967,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_72c11ad9c9dfa44d, []int{67}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{67}
}
func (m *QueryRoutesRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QueryRoutesRequest.Unmarshal(m, b)
@ -5024,7 +5062,7 @@ func (m *EdgeLocator) Reset() { *m = EdgeLocator{} }
func (m *EdgeLocator) String() string { return proto.CompactTextString(m) }
func (*EdgeLocator) ProtoMessage() {}
func (*EdgeLocator) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_72c11ad9c9dfa44d, []int{68}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{68}
}
func (m *EdgeLocator) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EdgeLocator.Unmarshal(m, b)
@ -5069,7 +5107,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_72c11ad9c9dfa44d, []int{69}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{69}
}
func (m *QueryRoutesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QueryRoutesResponse.Unmarshal(m, b)
@ -5121,7 +5159,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_72c11ad9c9dfa44d, []int{70}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{70}
}
func (m *Hop) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Hop.Unmarshal(m, b)
@ -5242,7 +5280,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_72c11ad9c9dfa44d, []int{71}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{71}
}
func (m *Route) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Route.Unmarshal(m, b)
@ -5318,7 +5356,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_72c11ad9c9dfa44d, []int{72}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{72}
}
func (m *NodeInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NodeInfoRequest.Unmarshal(m, b)
@ -5363,7 +5401,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_72c11ad9c9dfa44d, []int{73}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{73}
}
func (m *NodeInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NodeInfo.Unmarshal(m, b)
@ -5424,7 +5462,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_72c11ad9c9dfa44d, []int{74}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{74}
}
func (m *LightningNode) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LightningNode.Unmarshal(m, b)
@ -5491,7 +5529,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_72c11ad9c9dfa44d, []int{75}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{75}
}
func (m *NodeAddress) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NodeAddress.Unmarshal(m, b)
@ -5541,7 +5579,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_72c11ad9c9dfa44d, []int{76}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{76}
}
func (m *RoutingPolicy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RoutingPolicy.Unmarshal(m, b)
@ -5631,7 +5669,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_72c11ad9c9dfa44d, []int{77}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{77}
}
func (m *ChannelEdge) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelEdge.Unmarshal(m, b)
@ -5722,7 +5760,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_72c11ad9c9dfa44d, []int{78}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{78}
}
func (m *ChannelGraphRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelGraphRequest.Unmarshal(m, b)
@ -5764,7 +5802,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_72c11ad9c9dfa44d, []int{79}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{79}
}
func (m *ChannelGraph) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelGraph.Unmarshal(m, b)
@ -5813,7 +5851,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_72c11ad9c9dfa44d, []int{80}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{80}
}
func (m *ChanInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChanInfoRequest.Unmarshal(m, b)
@ -5850,7 +5888,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_72c11ad9c9dfa44d, []int{81}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{81}
}
func (m *NetworkInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NetworkInfoRequest.Unmarshal(m, b)
@ -5890,7 +5928,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_72c11ad9c9dfa44d, []int{82}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{82}
}
func (m *NetworkInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NetworkInfo.Unmarshal(m, b)
@ -5990,7 +6028,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_72c11ad9c9dfa44d, []int{83}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{83}
}
func (m *StopRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StopRequest.Unmarshal(m, b)
@ -6020,7 +6058,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_72c11ad9c9dfa44d, []int{84}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{84}
}
func (m *StopResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StopResponse.Unmarshal(m, b)
@ -6050,7 +6088,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_72c11ad9c9dfa44d, []int{85}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{85}
}
func (m *GraphTopologySubscription) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GraphTopologySubscription.Unmarshal(m, b)
@ -6083,7 +6121,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_72c11ad9c9dfa44d, []int{86}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{86}
}
func (m *GraphTopologyUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GraphTopologyUpdate.Unmarshal(m, b)
@ -6138,7 +6176,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_72c11ad9c9dfa44d, []int{87}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{87}
}
func (m *NodeUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NodeUpdate.Unmarshal(m, b)
@ -6206,7 +6244,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_72c11ad9c9dfa44d, []int{88}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{88}
}
func (m *ChannelEdgeUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelEdgeUpdate.Unmarshal(m, b)
@ -6286,7 +6324,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_72c11ad9c9dfa44d, []int{89}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{89}
}
func (m *ClosedChannelUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClosedChannelUpdate.Unmarshal(m, b)
@ -6356,7 +6394,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_72c11ad9c9dfa44d, []int{90}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{90}
}
func (m *HopHint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HopHint.Unmarshal(m, b)
@ -6425,7 +6463,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_72c11ad9c9dfa44d, []int{91}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{91}
}
func (m *RouteHint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RouteHint.Unmarshal(m, b)
@ -6540,7 +6578,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_72c11ad9c9dfa44d, []int{92}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{92}
}
func (m *Invoice) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Invoice.Unmarshal(m, b)
@ -6732,7 +6770,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_72c11ad9c9dfa44d, []int{93}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{93}
}
func (m *AddInvoiceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddInvoiceResponse.Unmarshal(m, b)
@ -6789,7 +6827,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_72c11ad9c9dfa44d, []int{94}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{94}
}
func (m *PaymentHash) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PaymentHash.Unmarshal(m, b)
@ -6845,7 +6883,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_72c11ad9c9dfa44d, []int{95}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{95}
}
func (m *ListInvoiceRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListInvoiceRequest.Unmarshal(m, b)
@ -6915,7 +6953,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_72c11ad9c9dfa44d, []int{96}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{96}
}
func (m *ListInvoiceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListInvoiceResponse.Unmarshal(m, b)
@ -6978,7 +7016,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_72c11ad9c9dfa44d, []int{97}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{97}
}
func (m *InvoiceSubscription) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InvoiceSubscription.Unmarshal(m, b)
@ -7038,7 +7076,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_72c11ad9c9dfa44d, []int{98}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{98}
}
func (m *Payment) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Payment.Unmarshal(m, b)
@ -7125,7 +7163,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_72c11ad9c9dfa44d, []int{99}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{99}
}
func (m *ListPaymentsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListPaymentsRequest.Unmarshal(m, b)
@ -7157,7 +7195,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_72c11ad9c9dfa44d, []int{100}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{100}
}
func (m *ListPaymentsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListPaymentsResponse.Unmarshal(m, b)
@ -7194,7 +7232,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_72c11ad9c9dfa44d, []int{101}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{101}
}
func (m *DeleteAllPaymentsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteAllPaymentsRequest.Unmarshal(m, b)
@ -7224,7 +7262,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_72c11ad9c9dfa44d, []int{102}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{102}
}
func (m *DeleteAllPaymentsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteAllPaymentsResponse.Unmarshal(m, b)
@ -7255,7 +7293,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_72c11ad9c9dfa44d, []int{103}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{103}
}
func (m *AbandonChannelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AbandonChannelRequest.Unmarshal(m, b)
@ -7292,7 +7330,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_72c11ad9c9dfa44d, []int{104}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{104}
}
func (m *AbandonChannelResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AbandonChannelResponse.Unmarshal(m, b)
@ -7324,7 +7362,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_72c11ad9c9dfa44d, []int{105}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{105}
}
func (m *DebugLevelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DebugLevelRequest.Unmarshal(m, b)
@ -7369,7 +7407,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_72c11ad9c9dfa44d, []int{106}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{106}
}
func (m *DebugLevelResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DebugLevelResponse.Unmarshal(m, b)
@ -7408,7 +7446,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_72c11ad9c9dfa44d, []int{107}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{107}
}
func (m *PayReqString) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PayReqString.Unmarshal(m, b)
@ -7455,7 +7493,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_72c11ad9c9dfa44d, []int{108}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{108}
}
func (m *PayReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PayReq.Unmarshal(m, b)
@ -7555,7 +7593,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_72c11ad9c9dfa44d, []int{109}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{109}
}
func (m *FeeReportRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FeeReportRequest.Unmarshal(m, b)
@ -7593,7 +7631,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_72c11ad9c9dfa44d, []int{110}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{110}
}
func (m *ChannelFeeReport) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelFeeReport.Unmarshal(m, b)
@ -7659,7 +7697,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_72c11ad9c9dfa44d, []int{111}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{111}
}
func (m *FeeReportResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FeeReportResponse.Unmarshal(m, b)
@ -7727,7 +7765,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_72c11ad9c9dfa44d, []int{112}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{112}
}
func (m *PolicyUpdateRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PolicyUpdateRequest.Unmarshal(m, b)
@ -7888,7 +7926,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_72c11ad9c9dfa44d, []int{113}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{113}
}
func (m *PolicyUpdateResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PolicyUpdateResponse.Unmarshal(m, b)
@ -7926,7 +7964,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_72c11ad9c9dfa44d, []int{114}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{114}
}
func (m *ForwardingHistoryRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForwardingHistoryRequest.Unmarshal(m, b)
@ -7998,7 +8036,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_72c11ad9c9dfa44d, []int{115}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{115}
}
func (m *ForwardingEvent) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForwardingEvent.Unmarshal(m, b)
@ -8081,7 +8119,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_72c11ad9c9dfa44d, []int{116}
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{116}
}
func (m *ForwardingHistoryResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForwardingHistoryResponse.Unmarshal(m, b)
@ -8115,6 +8153,472 @@ func (m *ForwardingHistoryResponse) GetLastOffsetIndex() uint32 {
return 0
}
type ExportChannelBackupRequest struct {
// / The target chanenl point to obtain a back up for.
ChanPoint *ChannelPoint `protobuf:"bytes,1,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ExportChannelBackupRequest) Reset() { *m = ExportChannelBackupRequest{} }
func (m *ExportChannelBackupRequest) String() string { return proto.CompactTextString(m) }
func (*ExportChannelBackupRequest) ProtoMessage() {}
func (*ExportChannelBackupRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{117}
}
func (m *ExportChannelBackupRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExportChannelBackupRequest.Unmarshal(m, b)
}
func (m *ExportChannelBackupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ExportChannelBackupRequest.Marshal(b, m, deterministic)
}
func (dst *ExportChannelBackupRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_ExportChannelBackupRequest.Merge(dst, src)
}
func (m *ExportChannelBackupRequest) XXX_Size() int {
return xxx_messageInfo_ExportChannelBackupRequest.Size(m)
}
func (m *ExportChannelBackupRequest) XXX_DiscardUnknown() {
xxx_messageInfo_ExportChannelBackupRequest.DiscardUnknown(m)
}
var xxx_messageInfo_ExportChannelBackupRequest proto.InternalMessageInfo
func (m *ExportChannelBackupRequest) GetChanPoint() *ChannelPoint {
if m != nil {
return m.ChanPoint
}
return nil
}
type ChannelBackup struct {
// *
// Identifies the channel that this backup belongs to.
ChanPoint *ChannelPoint `protobuf:"bytes,1,opt,name=chan_point,proto3" json:"chan_point,omitempty"`
// *
// Is an encrypted single-chan backup. this can be passed to
// RestoreChannelBackups, or the WalletUnlocker Innit and Unlock methods in
// order to trigger the recovery protocol.
ChanBackup []byte `protobuf:"bytes,2,opt,name=chan_backup,proto3" json:"chan_backup,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ChannelBackup) Reset() { *m = ChannelBackup{} }
func (m *ChannelBackup) String() string { return proto.CompactTextString(m) }
func (*ChannelBackup) ProtoMessage() {}
func (*ChannelBackup) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{118}
}
func (m *ChannelBackup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelBackup.Unmarshal(m, b)
}
func (m *ChannelBackup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ChannelBackup.Marshal(b, m, deterministic)
}
func (dst *ChannelBackup) XXX_Merge(src proto.Message) {
xxx_messageInfo_ChannelBackup.Merge(dst, src)
}
func (m *ChannelBackup) XXX_Size() int {
return xxx_messageInfo_ChannelBackup.Size(m)
}
func (m *ChannelBackup) XXX_DiscardUnknown() {
xxx_messageInfo_ChannelBackup.DiscardUnknown(m)
}
var xxx_messageInfo_ChannelBackup proto.InternalMessageInfo
func (m *ChannelBackup) GetChanPoint() *ChannelPoint {
if m != nil {
return m.ChanPoint
}
return nil
}
func (m *ChannelBackup) GetChanBackup() []byte {
if m != nil {
return m.ChanBackup
}
return nil
}
type MultiChanBackup struct {
// *
// Is the set of all channels that are included in this multi-channel backup.
ChanPoints []*ChannelPoint `protobuf:"bytes,1,rep,name=chan_points,proto3" json:"chan_points,omitempty"`
// *
// A single encrypted blob containing all the static channel backups of the
// channel listed above. This can be stored as a single file or blob, and
// safely be replaced with any prior/future versions.
MultiChanBackup []byte `protobuf:"bytes,2,opt,name=multi_chan_backup,proto3" json:"multi_chan_backup,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *MultiChanBackup) Reset() { *m = MultiChanBackup{} }
func (m *MultiChanBackup) String() string { return proto.CompactTextString(m) }
func (*MultiChanBackup) ProtoMessage() {}
func (*MultiChanBackup) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{119}
}
func (m *MultiChanBackup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MultiChanBackup.Unmarshal(m, b)
}
func (m *MultiChanBackup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MultiChanBackup.Marshal(b, m, deterministic)
}
func (dst *MultiChanBackup) XXX_Merge(src proto.Message) {
xxx_messageInfo_MultiChanBackup.Merge(dst, src)
}
func (m *MultiChanBackup) XXX_Size() int {
return xxx_messageInfo_MultiChanBackup.Size(m)
}
func (m *MultiChanBackup) XXX_DiscardUnknown() {
xxx_messageInfo_MultiChanBackup.DiscardUnknown(m)
}
var xxx_messageInfo_MultiChanBackup proto.InternalMessageInfo
func (m *MultiChanBackup) GetChanPoints() []*ChannelPoint {
if m != nil {
return m.ChanPoints
}
return nil
}
func (m *MultiChanBackup) GetMultiChanBackup() []byte {
if m != nil {
return m.MultiChanBackup
}
return nil
}
type ChanBackupExportRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ChanBackupExportRequest) Reset() { *m = ChanBackupExportRequest{} }
func (m *ChanBackupExportRequest) String() string { return proto.CompactTextString(m) }
func (*ChanBackupExportRequest) ProtoMessage() {}
func (*ChanBackupExportRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{120}
}
func (m *ChanBackupExportRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChanBackupExportRequest.Unmarshal(m, b)
}
func (m *ChanBackupExportRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ChanBackupExportRequest.Marshal(b, m, deterministic)
}
func (dst *ChanBackupExportRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_ChanBackupExportRequest.Merge(dst, src)
}
func (m *ChanBackupExportRequest) XXX_Size() int {
return xxx_messageInfo_ChanBackupExportRequest.Size(m)
}
func (m *ChanBackupExportRequest) XXX_DiscardUnknown() {
xxx_messageInfo_ChanBackupExportRequest.DiscardUnknown(m)
}
var xxx_messageInfo_ChanBackupExportRequest proto.InternalMessageInfo
type ChanBackupSnapshot struct {
// *
// The set of new channels that have been added since the last channel backup
// snapshot was requested.
SingleChanBackups *ChannelBackups `protobuf:"bytes,1,opt,name=single_chan_backups,proto3" json:"single_chan_backups,omitempty"`
// *
// A multi-channel backup that covers all open channels currently known to
// lnd.
MultiChanBackup *MultiChanBackup `protobuf:"bytes,2,opt,name=multi_chan_backup,proto3" json:"multi_chan_backup,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ChanBackupSnapshot) Reset() { *m = ChanBackupSnapshot{} }
func (m *ChanBackupSnapshot) String() string { return proto.CompactTextString(m) }
func (*ChanBackupSnapshot) ProtoMessage() {}
func (*ChanBackupSnapshot) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{121}
}
func (m *ChanBackupSnapshot) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChanBackupSnapshot.Unmarshal(m, b)
}
func (m *ChanBackupSnapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ChanBackupSnapshot.Marshal(b, m, deterministic)
}
func (dst *ChanBackupSnapshot) XXX_Merge(src proto.Message) {
xxx_messageInfo_ChanBackupSnapshot.Merge(dst, src)
}
func (m *ChanBackupSnapshot) XXX_Size() int {
return xxx_messageInfo_ChanBackupSnapshot.Size(m)
}
func (m *ChanBackupSnapshot) XXX_DiscardUnknown() {
xxx_messageInfo_ChanBackupSnapshot.DiscardUnknown(m)
}
var xxx_messageInfo_ChanBackupSnapshot proto.InternalMessageInfo
func (m *ChanBackupSnapshot) GetSingleChanBackups() *ChannelBackups {
if m != nil {
return m.SingleChanBackups
}
return nil
}
func (m *ChanBackupSnapshot) GetMultiChanBackup() *MultiChanBackup {
if m != nil {
return m.MultiChanBackup
}
return nil
}
type ChannelBackups struct {
// *
// A set of single-chan static channel backups.
ChanBackups []*ChannelBackup `protobuf:"bytes,1,rep,name=chan_backups,proto3" json:"chan_backups,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ChannelBackups) Reset() { *m = ChannelBackups{} }
func (m *ChannelBackups) String() string { return proto.CompactTextString(m) }
func (*ChannelBackups) ProtoMessage() {}
func (*ChannelBackups) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{122}
}
func (m *ChannelBackups) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelBackups.Unmarshal(m, b)
}
func (m *ChannelBackups) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ChannelBackups.Marshal(b, m, deterministic)
}
func (dst *ChannelBackups) XXX_Merge(src proto.Message) {
xxx_messageInfo_ChannelBackups.Merge(dst, src)
}
func (m *ChannelBackups) XXX_Size() int {
return xxx_messageInfo_ChannelBackups.Size(m)
}
func (m *ChannelBackups) XXX_DiscardUnknown() {
xxx_messageInfo_ChannelBackups.DiscardUnknown(m)
}
var xxx_messageInfo_ChannelBackups proto.InternalMessageInfo
func (m *ChannelBackups) GetChanBackups() []*ChannelBackup {
if m != nil {
return m.ChanBackups
}
return nil
}
type RestoreChanBackupRequest struct {
// Types that are valid to be assigned to Backup:
// *RestoreChanBackupRequest_ChanBackups
// *RestoreChanBackupRequest_MultiChanBackup
Backup isRestoreChanBackupRequest_Backup `protobuf_oneof:"backup"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RestoreChanBackupRequest) Reset() { *m = RestoreChanBackupRequest{} }
func (m *RestoreChanBackupRequest) String() string { return proto.CompactTextString(m) }
func (*RestoreChanBackupRequest) ProtoMessage() {}
func (*RestoreChanBackupRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{123}
}
func (m *RestoreChanBackupRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RestoreChanBackupRequest.Unmarshal(m, b)
}
func (m *RestoreChanBackupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RestoreChanBackupRequest.Marshal(b, m, deterministic)
}
func (dst *RestoreChanBackupRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_RestoreChanBackupRequest.Merge(dst, src)
}
func (m *RestoreChanBackupRequest) XXX_Size() int {
return xxx_messageInfo_RestoreChanBackupRequest.Size(m)
}
func (m *RestoreChanBackupRequest) XXX_DiscardUnknown() {
xxx_messageInfo_RestoreChanBackupRequest.DiscardUnknown(m)
}
var xxx_messageInfo_RestoreChanBackupRequest proto.InternalMessageInfo
type isRestoreChanBackupRequest_Backup interface {
isRestoreChanBackupRequest_Backup()
}
type RestoreChanBackupRequest_ChanBackups struct {
ChanBackups *ChannelBackups `protobuf:"bytes,1,opt,name=chan_backups,proto3,oneof"`
}
type RestoreChanBackupRequest_MultiChanBackup struct {
MultiChanBackup []byte `protobuf:"bytes,2,opt,name=multi_chan_backup,proto3,oneof"`
}
func (*RestoreChanBackupRequest_ChanBackups) isRestoreChanBackupRequest_Backup() {}
func (*RestoreChanBackupRequest_MultiChanBackup) isRestoreChanBackupRequest_Backup() {}
func (m *RestoreChanBackupRequest) GetBackup() isRestoreChanBackupRequest_Backup {
if m != nil {
return m.Backup
}
return nil
}
func (m *RestoreChanBackupRequest) GetChanBackups() *ChannelBackups {
if x, ok := m.GetBackup().(*RestoreChanBackupRequest_ChanBackups); ok {
return x.ChanBackups
}
return nil
}
func (m *RestoreChanBackupRequest) GetMultiChanBackup() []byte {
if x, ok := m.GetBackup().(*RestoreChanBackupRequest_MultiChanBackup); ok {
return x.MultiChanBackup
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*RestoreChanBackupRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _RestoreChanBackupRequest_OneofMarshaler, _RestoreChanBackupRequest_OneofUnmarshaler, _RestoreChanBackupRequest_OneofSizer, []interface{}{
(*RestoreChanBackupRequest_ChanBackups)(nil),
(*RestoreChanBackupRequest_MultiChanBackup)(nil),
}
}
func _RestoreChanBackupRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*RestoreChanBackupRequest)
// backup
switch x := m.Backup.(type) {
case *RestoreChanBackupRequest_ChanBackups:
b.EncodeVarint(1<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.ChanBackups); err != nil {
return err
}
case *RestoreChanBackupRequest_MultiChanBackup:
b.EncodeVarint(2<<3 | proto.WireBytes)
b.EncodeRawBytes(x.MultiChanBackup)
case nil:
default:
return fmt.Errorf("RestoreChanBackupRequest.Backup has unexpected type %T", x)
}
return nil
}
func _RestoreChanBackupRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*RestoreChanBackupRequest)
switch tag {
case 1: // backup.chan_backups
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(ChannelBackups)
err := b.DecodeMessage(msg)
m.Backup = &RestoreChanBackupRequest_ChanBackups{msg}
return true, err
case 2: // backup.multi_chan_backup
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
x, err := b.DecodeRawBytes(true)
m.Backup = &RestoreChanBackupRequest_MultiChanBackup{x}
return true, err
default:
return false, nil
}
}
func _RestoreChanBackupRequest_OneofSizer(msg proto.Message) (n int) {
m := msg.(*RestoreChanBackupRequest)
// backup
switch x := m.Backup.(type) {
case *RestoreChanBackupRequest_ChanBackups:
s := proto.Size(x.ChanBackups)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *RestoreChanBackupRequest_MultiChanBackup:
n += 1 // tag and wire
n += proto.SizeVarint(uint64(len(x.MultiChanBackup)))
n += len(x.MultiChanBackup)
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
type RestoreBackupResponse struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RestoreBackupResponse) Reset() { *m = RestoreBackupResponse{} }
func (m *RestoreBackupResponse) String() string { return proto.CompactTextString(m) }
func (*RestoreBackupResponse) ProtoMessage() {}
func (*RestoreBackupResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{124}
}
func (m *RestoreBackupResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RestoreBackupResponse.Unmarshal(m, b)
}
func (m *RestoreBackupResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RestoreBackupResponse.Marshal(b, m, deterministic)
}
func (dst *RestoreBackupResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_RestoreBackupResponse.Merge(dst, src)
}
func (m *RestoreBackupResponse) XXX_Size() int {
return xxx_messageInfo_RestoreBackupResponse.Size(m)
}
func (m *RestoreBackupResponse) XXX_DiscardUnknown() {
xxx_messageInfo_RestoreBackupResponse.DiscardUnknown(m)
}
var xxx_messageInfo_RestoreBackupResponse proto.InternalMessageInfo
type ChannelBackupSubscription struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ChannelBackupSubscription) Reset() { *m = ChannelBackupSubscription{} }
func (m *ChannelBackupSubscription) String() string { return proto.CompactTextString(m) }
func (*ChannelBackupSubscription) ProtoMessage() {}
func (*ChannelBackupSubscription) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_b3db6f0ed643a2b2, []int{125}
}
func (m *ChannelBackupSubscription) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelBackupSubscription.Unmarshal(m, b)
}
func (m *ChannelBackupSubscription) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ChannelBackupSubscription.Marshal(b, m, deterministic)
}
func (dst *ChannelBackupSubscription) XXX_Merge(src proto.Message) {
xxx_messageInfo_ChannelBackupSubscription.Merge(dst, src)
}
func (m *ChannelBackupSubscription) XXX_Size() int {
return xxx_messageInfo_ChannelBackupSubscription.Size(m)
}
func (m *ChannelBackupSubscription) XXX_DiscardUnknown() {
xxx_messageInfo_ChannelBackupSubscription.DiscardUnknown(m)
}
var xxx_messageInfo_ChannelBackupSubscription proto.InternalMessageInfo
func init() {
proto.RegisterType((*GenSeedRequest)(nil), "lnrpc.GenSeedRequest")
proto.RegisterType((*GenSeedResponse)(nil), "lnrpc.GenSeedResponse")
@ -8240,6 +8744,15 @@ func init() {
proto.RegisterType((*ForwardingHistoryRequest)(nil), "lnrpc.ForwardingHistoryRequest")
proto.RegisterType((*ForwardingEvent)(nil), "lnrpc.ForwardingEvent")
proto.RegisterType((*ForwardingHistoryResponse)(nil), "lnrpc.ForwardingHistoryResponse")
proto.RegisterType((*ExportChannelBackupRequest)(nil), "lnrpc.ExportChannelBackupRequest")
proto.RegisterType((*ChannelBackup)(nil), "lnrpc.ChannelBackup")
proto.RegisterType((*MultiChanBackup)(nil), "lnrpc.MultiChanBackup")
proto.RegisterType((*ChanBackupExportRequest)(nil), "lnrpc.ChanBackupExportRequest")
proto.RegisterType((*ChanBackupSnapshot)(nil), "lnrpc.ChanBackupSnapshot")
proto.RegisterType((*ChannelBackups)(nil), "lnrpc.ChannelBackups")
proto.RegisterType((*RestoreChanBackupRequest)(nil), "lnrpc.RestoreChanBackupRequest")
proto.RegisterType((*RestoreBackupResponse)(nil), "lnrpc.RestoreBackupResponse")
proto.RegisterType((*ChannelBackupSubscription)(nil), "lnrpc.ChannelBackupSubscription")
proto.RegisterEnum("lnrpc.AddressType", AddressType_name, AddressType_value)
proto.RegisterEnum("lnrpc.ChannelCloseSummary_ClosureType", ChannelCloseSummary_ClosureType_name, ChannelCloseSummary_ClosureType_value)
proto.RegisterEnum("lnrpc.ChannelEventUpdate_UpdateType", ChannelEventUpdate_UpdateType_name, ChannelEventUpdate_UpdateType_value)
@ -8716,7 +9229,7 @@ type LightningClient interface {
UpdateChannelPolicy(ctx context.Context, in *PolicyUpdateRequest, opts ...grpc.CallOption) (*PolicyUpdateResponse, error)
// * lncli: `fwdinghistory`
// ForwardingHistory allows the caller to query the htlcswitch for a record of
// all HTLC's forwarded within the target time range, and integer offset
// all HTLCs forwarded within the target time range, and integer offset
// within that time range. If no time-range is specified, then the first chunk
// of the past 24 hrs of forwarding history are returned.
//
@ -8726,6 +9239,36 @@ type LightningClient interface {
// the index offset of the last entry. The index offset can be provided to the
// request to allow the caller to skip a series of records.
ForwardingHistory(ctx context.Context, in *ForwardingHistoryRequest, opts ...grpc.CallOption) (*ForwardingHistoryResponse, error)
// * lncli: `exportchanbackup`
// ExportChannelBackup attempts to return an encrypted static channel backup
// for the target channel identified by it channel point. The backup is
// encrypted with a key generated from the aezeed seed of the user. The
// returned backup can either be restored using the RestoreChannelBackup
// method once lnd is running, or via the InitWallet and UnlockWallet methods
// from the WalletUnlocker service.
ExportChannelBackup(ctx context.Context, in *ExportChannelBackupRequest, opts ...grpc.CallOption) (*ChannelBackup, error)
// *
// ExportAllChannelBackups returns static channel backups for all existing
// channels known to lnd. A set of regular singular static channel backups for
// each channel are returned. Additionally, a multi-channel backup is returned
// as well, which contains a single encrypted blob containing the backups of
// each channel.
ExportAllChannelBackups(ctx context.Context, in *ChanBackupExportRequest, opts ...grpc.CallOption) (*ChanBackupSnapshot, error)
// * lncli: `restorechanbackup`
// RestoreChannelBackups accepts a set of singular channel backups, or a
// single encrypted multi-chan backup and attempts to recover any funds
// remaining within the channel. If we are able to unpack the backup, then the
// new channel will be shown under listchannels, as well as pending channels.
RestoreChannelBackups(ctx context.Context, in *RestoreChanBackupRequest, opts ...grpc.CallOption) (*RestoreBackupResponse, error)
// *
// SubscribeChannelBackups allows a client to sub-subscribe to the most up to
// date information concerning the state of all channel backups. Each time a
// new channel is added, we return the new set of channels, along with a
// multi-chan backup containing the backup info for all channels. Each time a
// channel is closed, we send a new update, which contains new new chan back
// ups, but the updated set of encrypted multi-chan backups with the closed
// channel(s) removed.
SubscribeChannelBackups(ctx context.Context, in *ChannelBackupSubscription, opts ...grpc.CallOption) (Lightning_SubscribeChannelBackupsClient, error)
}
type lightningClient struct {
@ -9323,6 +9866,65 @@ func (c *lightningClient) ForwardingHistory(ctx context.Context, in *ForwardingH
return out, nil
}
func (c *lightningClient) ExportChannelBackup(ctx context.Context, in *ExportChannelBackupRequest, opts ...grpc.CallOption) (*ChannelBackup, error) {
out := new(ChannelBackup)
err := c.cc.Invoke(ctx, "/lnrpc.Lightning/ExportChannelBackup", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) ExportAllChannelBackups(ctx context.Context, in *ChanBackupExportRequest, opts ...grpc.CallOption) (*ChanBackupSnapshot, error) {
out := new(ChanBackupSnapshot)
err := c.cc.Invoke(ctx, "/lnrpc.Lightning/ExportAllChannelBackups", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) RestoreChannelBackups(ctx context.Context, in *RestoreChanBackupRequest, opts ...grpc.CallOption) (*RestoreBackupResponse, error) {
out := new(RestoreBackupResponse)
err := c.cc.Invoke(ctx, "/lnrpc.Lightning/RestoreChannelBackups", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) SubscribeChannelBackups(ctx context.Context, in *ChannelBackupSubscription, opts ...grpc.CallOption) (Lightning_SubscribeChannelBackupsClient, error) {
stream, err := c.cc.NewStream(ctx, &_Lightning_serviceDesc.Streams[8], "/lnrpc.Lightning/SubscribeChannelBackups", opts...)
if err != nil {
return nil, err
}
x := &lightningSubscribeChannelBackupsClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
if err := x.ClientStream.CloseSend(); err != nil {
return nil, err
}
return x, nil
}
type Lightning_SubscribeChannelBackupsClient interface {
Recv() (*ChanBackupSnapshot, error)
grpc.ClientStream
}
type lightningSubscribeChannelBackupsClient struct {
grpc.ClientStream
}
func (x *lightningSubscribeChannelBackupsClient) Recv() (*ChanBackupSnapshot, error) {
m := new(ChanBackupSnapshot)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
// LightningServer is the server API for Lightning service.
type LightningServer interface {
// * lncli: `walletbalance`
@ -9564,7 +10166,7 @@ type LightningServer interface {
UpdateChannelPolicy(context.Context, *PolicyUpdateRequest) (*PolicyUpdateResponse, error)
// * lncli: `fwdinghistory`
// ForwardingHistory allows the caller to query the htlcswitch for a record of
// all HTLC's forwarded within the target time range, and integer offset
// all HTLCs forwarded within the target time range, and integer offset
// within that time range. If no time-range is specified, then the first chunk
// of the past 24 hrs of forwarding history are returned.
//
@ -9574,6 +10176,36 @@ type LightningServer interface {
// the index offset of the last entry. The index offset can be provided to the
// request to allow the caller to skip a series of records.
ForwardingHistory(context.Context, *ForwardingHistoryRequest) (*ForwardingHistoryResponse, error)
// * lncli: `exportchanbackup`
// ExportChannelBackup attempts to return an encrypted static channel backup
// for the target channel identified by it channel point. The backup is
// encrypted with a key generated from the aezeed seed of the user. The
// returned backup can either be restored using the RestoreChannelBackup
// method once lnd is running, or via the InitWallet and UnlockWallet methods
// from the WalletUnlocker service.
ExportChannelBackup(context.Context, *ExportChannelBackupRequest) (*ChannelBackup, error)
// *
// ExportAllChannelBackups returns static channel backups for all existing
// channels known to lnd. A set of regular singular static channel backups for
// each channel are returned. Additionally, a multi-channel backup is returned
// as well, which contains a single encrypted blob containing the backups of
// each channel.
ExportAllChannelBackups(context.Context, *ChanBackupExportRequest) (*ChanBackupSnapshot, error)
// * lncli: `restorechanbackup`
// RestoreChannelBackups accepts a set of singular channel backups, or a
// single encrypted multi-chan backup and attempts to recover any funds
// remaining within the channel. If we are able to unpack the backup, then the
// new channel will be shown under listchannels, as well as pending channels.
RestoreChannelBackups(context.Context, *RestoreChanBackupRequest) (*RestoreBackupResponse, error)
// *
// SubscribeChannelBackups allows a client to sub-subscribe to the most up to
// date information concerning the state of all channel backups. Each time a
// new channel is added, we return the new set of channels, along with a
// multi-chan backup containing the backup info for all channels. Each time a
// channel is closed, we send a new update, which contains new new chan back
// ups, but the updated set of encrypted multi-chan backups with the closed
// channel(s) removed.
SubscribeChannelBackups(*ChannelBackupSubscription, Lightning_SubscribeChannelBackupsServer) error
}
func RegisterLightningServer(s *grpc.Server, srv LightningServer) {
@ -10424,6 +11056,81 @@ func _Lightning_ForwardingHistory_Handler(srv interface{}, ctx context.Context,
return interceptor(ctx, in, info, handler)
}
func _Lightning_ExportChannelBackup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ExportChannelBackupRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).ExportChannelBackup(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/ExportChannelBackup",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).ExportChannelBackup(ctx, req.(*ExportChannelBackupRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_ExportAllChannelBackups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ChanBackupExportRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).ExportAllChannelBackups(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/ExportAllChannelBackups",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).ExportAllChannelBackups(ctx, req.(*ChanBackupExportRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_RestoreChannelBackups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RestoreChanBackupRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).RestoreChannelBackups(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/RestoreChannelBackups",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).RestoreChannelBackups(ctx, req.(*RestoreChanBackupRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_SubscribeChannelBackups_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(ChannelBackupSubscription)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(LightningServer).SubscribeChannelBackups(m, &lightningSubscribeChannelBackupsServer{stream})
}
type Lightning_SubscribeChannelBackupsServer interface {
Send(*ChanBackupSnapshot) error
grpc.ServerStream
}
type lightningSubscribeChannelBackupsServer struct {
grpc.ServerStream
}
func (x *lightningSubscribeChannelBackupsServer) Send(m *ChanBackupSnapshot) error {
return x.ServerStream.SendMsg(m)
}
var _Lightning_serviceDesc = grpc.ServiceDesc{
ServiceName: "lnrpc.Lightning",
HandlerType: (*LightningServer)(nil),
@ -10576,6 +11283,18 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
MethodName: "ForwardingHistory",
Handler: _Lightning_ForwardingHistory_Handler,
},
{
MethodName: "ExportChannelBackup",
Handler: _Lightning_ExportChannelBackup_Handler,
},
{
MethodName: "ExportAllChannelBackups",
Handler: _Lightning_ExportAllChannelBackups_Handler,
},
{
MethodName: "RestoreChannelBackups",
Handler: _Lightning_RestoreChannelBackups_Handler,
},
},
Streams: []grpc.StreamDesc{
{
@ -10620,467 +11339,493 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
Handler: _Lightning_SubscribeChannelGraph_Handler,
ServerStreams: true,
},
{
StreamName: "SubscribeChannelBackups",
Handler: _Lightning_SubscribeChannelBackups_Handler,
ServerStreams: true,
},
},
Metadata: "rpc.proto",
}
func init() { proto.RegisterFile("rpc.proto", fileDescriptor_rpc_72c11ad9c9dfa44d) }
func init() { proto.RegisterFile("rpc.proto", fileDescriptor_rpc_b3db6f0ed643a2b2) }
var fileDescriptor_rpc_72c11ad9c9dfa44d = []byte{
// 7268 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, 0xff, 0x7a, 0x7a, 0x67, 0x67,
0x67, 0x2b, 0x73, 0x77, 0x1c, 0xef, 0xde, 0xf1, 0xec, 0x24, 0xd9, 0x4c, 0x76, 0x6f, 0xee, 0xbd,
0x1e, 0xdb, 0x33, 0x9e, 0xc4, 0xeb, 0x71, 0xca, 0x33, 0x19, 0xb2, 0x09, 0xea, 0x94, 0xbb, 0x8f,
0xdb, 0xb5, 0x53, 0x5d, 0xd5, 0xa9, 0xaa, 0xb6, 0xc7, 0x59, 0x46, 0x42, 0x08, 0x81, 0x84, 0x40,
0x08, 0x10, 0x12, 0x41, 0x41, 0x48, 0x01, 0x09, 0xc2, 0x1b, 0x0f, 0x41, 0x48, 0x10, 0x9e, 0x90,
0x90, 0x90, 0x10, 0x42, 0x79, 0x44, 0x42, 0x42, 0xf0, 0x02, 0x3c, 0x20, 0x90, 0x78, 0x44, 0x42,
0xe7, 0x3b, 0x7f, 0xea, 0x9c, 0xaa, 0xea, 0xf1, 0x6c, 0x12, 0x78, 0xb2, 0xcf, 0xef, 0x7c, 0x75,
0xfe, 0x7e, 0xff, 0xce, 0x77, 0xbe, 0xd3, 0x50, 0x8f, 0xc6, 0xfd, 0x9b, 0xe3, 0x28, 0x4c, 0x42,
0x52, 0xf5, 0x83, 0x68, 0xdc, 0xef, 0x5e, 0x19, 0x86, 0xe1, 0xd0, 0xa7, 0x1b, 0xee, 0xd8, 0xdb,
0x70, 0x83, 0x20, 0x4c, 0xdc, 0xc4, 0x0b, 0x83, 0x98, 0x13, 0xd9, 0x5f, 0x87, 0xd6, 0x7d, 0x1a,
0x1c, 0x52, 0x3a, 0x70, 0xe8, 0x37, 0x26, 0x34, 0x4e, 0xc8, 0x9b, 0xb0, 0xe0, 0xd2, 0x6f, 0x52,
0x3a, 0xe8, 0x8d, 0xdd, 0x38, 0x1e, 0x9f, 0x44, 0x6e, 0x4c, 0x3b, 0xd6, 0x35, 0x6b, 0xad, 0xe9,
0xb4, 0x79, 0xc5, 0x81, 0xc2, 0xc9, 0xeb, 0xd0, 0x8c, 0x19, 0x29, 0x0d, 0x92, 0x28, 0x1c, 0x9f,
0x77, 0x4a, 0x48, 0xd7, 0x60, 0xd8, 0x0e, 0x87, 0x6c, 0x1f, 0xe6, 0x55, 0x0f, 0xf1, 0x38, 0x0c,
0x62, 0x4a, 0x6e, 0xc1, 0x52, 0xdf, 0x1b, 0x9f, 0xd0, 0xa8, 0x87, 0x1f, 0x8f, 0x02, 0x3a, 0x0a,
0x03, 0xaf, 0xdf, 0xb1, 0xae, 0x95, 0xd7, 0xea, 0x0e, 0xe1, 0x75, 0xec, 0x8b, 0xf7, 0x45, 0x0d,
0xb9, 0x01, 0xf3, 0x34, 0xe0, 0x38, 0x1d, 0xe0, 0x57, 0xa2, 0xab, 0x56, 0x0a, 0xb3, 0x0f, 0xec,
0x3f, 0xb7, 0x60, 0xe1, 0x41, 0xe0, 0x25, 0x4f, 0x5c, 0xdf, 0xa7, 0x89, 0x9c, 0xd3, 0x0d, 0x98,
0x3f, 0x43, 0x00, 0xe7, 0x74, 0x16, 0x46, 0x03, 0x31, 0xa3, 0x16, 0x87, 0x0f, 0x04, 0x3a, 0x75,
0x64, 0xa5, 0xa9, 0x23, 0x2b, 0x5c, 0xae, 0xf2, 0x94, 0xe5, 0xba, 0x01, 0xf3, 0x11, 0xed, 0x87,
0xa7, 0x34, 0x3a, 0xef, 0x9d, 0x79, 0xc1, 0x20, 0x3c, 0xeb, 0x54, 0xae, 0x59, 0x6b, 0x55, 0xa7,
0x25, 0xe1, 0x27, 0x88, 0xda, 0x4b, 0x40, 0xf4, 0x59, 0xf0, 0x75, 0xb3, 0x87, 0xb0, 0xf8, 0x38,
0xf0, 0xc3, 0xfe, 0xd3, 0x1f, 0x72, 0x76, 0x05, 0xdd, 0x97, 0x0a, 0xbb, 0x5f, 0x81, 0x25, 0xb3,
0x23, 0x31, 0x00, 0x0a, 0xcb, 0x5b, 0x27, 0x6e, 0x30, 0xa4, 0xb2, 0x49, 0x39, 0x84, 0x4f, 0x42,
0xbb, 0x3f, 0x89, 0x22, 0x1a, 0xe4, 0xc6, 0x30, 0x2f, 0x70, 0x35, 0x88, 0xd7, 0xa1, 0x19, 0xd0,
0xb3, 0x94, 0x4c, 0xb0, 0x4c, 0x40, 0xcf, 0x24, 0x89, 0xdd, 0x81, 0x95, 0x6c, 0x37, 0x62, 0x00,
0x7f, 0x6f, 0x41, 0xe5, 0x71, 0xf2, 0x2c, 0x24, 0x37, 0xa1, 0x92, 0x9c, 0x8f, 0x39, 0x63, 0xb6,
0x6e, 0x93, 0x9b, 0xc8, 0xeb, 0x37, 0x37, 0x07, 0x83, 0x88, 0xc6, 0xf1, 0xa3, 0xf3, 0x31, 0x75,
0x9a, 0x2e, 0x2f, 0xf4, 0x18, 0x1d, 0xe9, 0xc0, 0xac, 0x28, 0x63, 0x87, 0x75, 0x47, 0x16, 0xc9,
0x55, 0x00, 0x77, 0x14, 0x4e, 0x82, 0xa4, 0x17, 0xbb, 0x09, 0xee, 0x5c, 0xd9, 0xd1, 0x10, 0x72,
0x05, 0xea, 0xe3, 0xa7, 0xbd, 0xb8, 0x1f, 0x79, 0xe3, 0x04, 0x77, 0xab, 0xee, 0xa4, 0x00, 0x79,
0x13, 0x6a, 0xe1, 0x24, 0x19, 0x87, 0x5e, 0x90, 0x74, 0xaa, 0xd7, 0xac, 0xb5, 0xc6, 0xed, 0x79,
0x31, 0x96, 0x87, 0x93, 0xe4, 0x80, 0xc1, 0x8e, 0x22, 0x20, 0xd7, 0x61, 0xae, 0x1f, 0x06, 0xc7,
0x5e, 0x34, 0xe2, 0x32, 0xd8, 0x99, 0xc1, 0xde, 0x4c, 0xd0, 0xfe, 0x56, 0x09, 0x1a, 0x8f, 0x22,
0x37, 0x88, 0xdd, 0x3e, 0x03, 0xd8, 0xd0, 0x93, 0x67, 0xbd, 0x13, 0x37, 0x3e, 0xc1, 0xd9, 0xd6,
0x1d, 0x59, 0x24, 0x2b, 0x30, 0xc3, 0x07, 0x8a, 0x73, 0x2a, 0x3b, 0xa2, 0x44, 0xde, 0x82, 0x85,
0x60, 0x32, 0xea, 0x99, 0x7d, 0x95, 0x71, 0xa7, 0xf3, 0x15, 0x6c, 0x01, 0x8e, 0xd8, 0x5e, 0xf3,
0x2e, 0xf8, 0x0c, 0x35, 0x84, 0xd8, 0xd0, 0x14, 0x25, 0xea, 0x0d, 0x4f, 0xf8, 0x34, 0xab, 0x8e,
0x81, 0xb1, 0x36, 0x12, 0x6f, 0x44, 0x7b, 0x71, 0xe2, 0x8e, 0xc6, 0x62, 0x5a, 0x1a, 0x82, 0xf5,
0x61, 0xe2, 0xfa, 0xbd, 0x63, 0x4a, 0xe3, 0xce, 0xac, 0xa8, 0x57, 0x08, 0x79, 0x03, 0x5a, 0x03,
0x1a, 0x27, 0x3d, 0xb1, 0x29, 0x34, 0xee, 0xd4, 0x50, 0xe2, 0x32, 0x28, 0xe3, 0x8c, 0xfb, 0x34,
0xd1, 0x56, 0x27, 0x16, 0x1c, 0x68, 0xef, 0x01, 0xd1, 0xe0, 0x6d, 0x9a, 0xb8, 0x9e, 0x1f, 0x93,
0x77, 0xa0, 0x99, 0x68, 0xc4, 0xa8, 0x61, 0x1a, 0x8a, 0x5d, 0xb4, 0x0f, 0x1c, 0x83, 0xce, 0xbe,
0x0f, 0xb5, 0x7b, 0x94, 0xee, 0x79, 0x23, 0x2f, 0x21, 0x2b, 0x50, 0x3d, 0xf6, 0x9e, 0x51, 0xce,
0xd0, 0xe5, 0xdd, 0x4b, 0x0e, 0x2f, 0x92, 0x2e, 0xcc, 0x8e, 0x69, 0xd4, 0xa7, 0x72, 0xf9, 0x77,
0x2f, 0x39, 0x12, 0xb8, 0x3b, 0x0b, 0x55, 0x9f, 0x7d, 0x6c, 0xff, 0x5b, 0x09, 0x1a, 0x87, 0x34,
0x50, 0x82, 0x42, 0xa0, 0xc2, 0xa6, 0x24, 0x84, 0x03, 0xff, 0x27, 0xaf, 0x41, 0x03, 0xa7, 0x19,
0x27, 0x91, 0x17, 0x0c, 0x05, 0x7f, 0x02, 0x83, 0x0e, 0x11, 0x21, 0x6d, 0x28, 0xbb, 0x23, 0xc9,
0x9b, 0xec, 0x5f, 0x26, 0x44, 0x63, 0xf7, 0x7c, 0xc4, 0xe4, 0x4d, 0xed, 0x5a, 0xd3, 0x69, 0x08,
0x6c, 0x97, 0x6d, 0xdb, 0x4d, 0x58, 0xd4, 0x49, 0x64, 0xeb, 0x55, 0x6c, 0x7d, 0x41, 0xa3, 0x14,
0x9d, 0xdc, 0x80, 0x79, 0x49, 0x1f, 0xf1, 0xc1, 0xe2, 0x3e, 0xd6, 0x9d, 0x96, 0x80, 0xe5, 0x14,
0xd6, 0xa0, 0x7d, 0xec, 0x05, 0xae, 0xdf, 0xeb, 0xfb, 0xc9, 0x69, 0x6f, 0x40, 0xfd, 0xc4, 0xc5,
0x1d, 0xad, 0x3a, 0x2d, 0xc4, 0xb7, 0xfc, 0xe4, 0x74, 0x9b, 0xa1, 0xe4, 0x2d, 0xa8, 0x1f, 0x53,
0xda, 0xc3, 0x95, 0xe8, 0xd4, 0x0c, 0xe9, 0x90, 0xab, 0xeb, 0xd4, 0x8e, 0xe5, 0x3a, 0xaf, 0x41,
0x3b, 0x9c, 0x24, 0xc3, 0xd0, 0x0b, 0x86, 0xbd, 0xfe, 0x89, 0x1b, 0xf4, 0xbc, 0x41, 0xa7, 0x7e,
0xcd, 0x5a, 0xab, 0x38, 0x2d, 0x89, 0x33, 0xad, 0xf0, 0x60, 0x40, 0x5e, 0x05, 0xc0, 0xbe, 0x79,
0xc3, 0x70, 0xcd, 0x5a, 0x9b, 0x73, 0xea, 0x0c, 0xc1, 0x86, 0xec, 0x3f, 0xb6, 0xa0, 0xc9, 0xd7,
0x5c, 0xd8, 0x9b, 0xeb, 0x30, 0x27, 0xa7, 0x46, 0xa3, 0x28, 0x8c, 0x84, 0x1c, 0x99, 0x20, 0x59,
0x87, 0xb6, 0x04, 0xc6, 0x11, 0xf5, 0x46, 0xee, 0x90, 0x0a, 0xe5, 0x94, 0xc3, 0xc9, 0xed, 0xb4,
0xc5, 0x28, 0x9c, 0x24, 0x5c, 0xe3, 0x37, 0x6e, 0x37, 0xc5, 0xec, 0x1c, 0x86, 0x39, 0x26, 0x09,
0x93, 0xa3, 0x82, 0x3d, 0x33, 0x30, 0xfb, 0x7b, 0x16, 0x10, 0x36, 0xf4, 0x47, 0x21, 0x6f, 0x42,
0x2c, 0x79, 0x76, 0xbb, 0xad, 0x97, 0xde, 0xee, 0xd2, 0xb4, 0xed, 0x5e, 0x83, 0x19, 0x1c, 0x16,
0x53, 0x0c, 0xe5, 0xec, 0xd0, 0xef, 0x96, 0x3a, 0x96, 0x23, 0xea, 0x89, 0x0d, 0x55, 0x3e, 0xc7,
0x4a, 0xc1, 0x1c, 0x79, 0x95, 0xfd, 0x1d, 0x0b, 0x9a, 0x6c, 0x73, 0x02, 0xea, 0xa3, 0xd2, 0x23,
0xb7, 0x80, 0x1c, 0x4f, 0x82, 0x01, 0xdb, 0xcb, 0xe4, 0x99, 0x37, 0xe8, 0x1d, 0x9d, 0xb3, 0xae,
0x70, 0xdc, 0xbb, 0x97, 0x9c, 0x82, 0x3a, 0xf2, 0x16, 0xb4, 0x0d, 0x34, 0x4e, 0x22, 0x3e, 0xfa,
0xdd, 0x4b, 0x4e, 0xae, 0x86, 0x2d, 0x26, 0x53, 0xab, 0x93, 0xa4, 0xe7, 0x05, 0x03, 0xfa, 0x0c,
0xd7, 0x7f, 0xce, 0x31, 0xb0, 0xbb, 0x2d, 0x68, 0xea, 0xdf, 0xd9, 0x1f, 0x42, 0x4d, 0x2a, 0x65,
0x54, 0x48, 0x99, 0x71, 0x39, 0x1a, 0x42, 0xba, 0x50, 0x33, 0x47, 0xe1, 0xd4, 0x3e, 0x4e, 0xdf,
0xf6, 0xff, 0x85, 0xf6, 0x1e, 0xd3, 0x8c, 0x81, 0x17, 0x0c, 0x85, 0x55, 0x62, 0xea, 0x7a, 0x3c,
0x39, 0x7a, 0x4a, 0xcf, 0x05, 0xff, 0x89, 0x12, 0xd3, 0x09, 0x27, 0x61, 0x9c, 0x88, 0x7e, 0xf0,
0x7f, 0xfb, 0x2f, 0x2c, 0x20, 0x3b, 0x71, 0xe2, 0x8d, 0xdc, 0x84, 0xde, 0xa3, 0x8a, 0x11, 0x1e,
0x42, 0x93, 0xb5, 0xf6, 0x28, 0xdc, 0xe4, 0x7a, 0x9f, 0xeb, 0xb3, 0x37, 0xc5, 0x96, 0xe4, 0x3f,
0xb8, 0xa9, 0x53, 0x33, 0x8f, 0xec, 0xdc, 0x31, 0x1a, 0x60, 0xba, 0x27, 0x71, 0xa3, 0x21, 0x4d,
0xd0, 0x28, 0x08, 0x77, 0x00, 0x38, 0xb4, 0x15, 0x06, 0xc7, 0xdd, 0xff, 0x07, 0x0b, 0xb9, 0x36,
0x98, 0x42, 0x4a, 0xa7, 0xc1, 0xfe, 0x25, 0x4b, 0x50, 0x3d, 0x75, 0xfd, 0x09, 0x15, 0x96, 0x88,
0x17, 0xde, 0x2d, 0xdd, 0xb1, 0xec, 0x3e, 0x2c, 0x1a, 0xe3, 0x12, 0x32, 0xd9, 0x81, 0x59, 0xa6,
0x1b, 0x98, 0xcd, 0x45, 0xbd, 0xea, 0xc8, 0x22, 0xb9, 0x0d, 0x4b, 0xc7, 0x94, 0x46, 0x6e, 0x82,
0xc5, 0xde, 0x98, 0x46, 0xb8, 0x27, 0xa2, 0xe5, 0xc2, 0x3a, 0xfb, 0x1f, 0x2c, 0x98, 0x67, 0x72,
0xf3, 0xbe, 0x1b, 0x9c, 0xcb, 0xb5, 0xda, 0x2b, 0x5c, 0xab, 0x35, 0xb1, 0x56, 0x19, 0xea, 0x8f,
0xbb, 0x50, 0xe5, 0xec, 0x42, 0x91, 0x6b, 0xd0, 0x34, 0x86, 0x5b, 0xe5, 0x46, 0x2e, 0x76, 0x93,
0x03, 0x1a, 0xdd, 0x3d, 0x4f, 0xe8, 0x8f, 0xbe, 0x94, 0x6f, 0x40, 0x3b, 0x1d, 0xb6, 0x58, 0x47,
0x02, 0x15, 0xc6, 0x98, 0xa2, 0x01, 0xfc, 0xdf, 0xfe, 0xb6, 0xc5, 0x09, 0xb7, 0x42, 0x4f, 0x19,
0x48, 0x46, 0xc8, 0xec, 0xa8, 0x24, 0x64, 0xff, 0x4f, 0x75, 0x20, 0x7e, 0xf4, 0xc9, 0x92, 0xcb,
0x50, 0x8b, 0x69, 0x30, 0xe8, 0xb9, 0xbe, 0x8f, 0x76, 0xa4, 0xe6, 0xcc, 0xb2, 0xf2, 0xa6, 0xef,
0xdb, 0x37, 0x60, 0x41, 0x1b, 0xdd, 0x0b, 0xe6, 0xb1, 0x0f, 0x64, 0xcf, 0x8b, 0x93, 0xc7, 0x41,
0x3c, 0xd6, 0xec, 0xcf, 0x2b, 0x50, 0x1f, 0x79, 0x01, 0x8e, 0x8c, 0x4b, 0x6e, 0xd5, 0xa9, 0x8d,
0xbc, 0x80, 0x8d, 0x2b, 0xc6, 0x4a, 0xf7, 0x99, 0xa8, 0x2c, 0x89, 0x4a, 0xf7, 0x19, 0x56, 0xda,
0x77, 0x60, 0xd1, 0x68, 0x4f, 0x74, 0xfd, 0x3a, 0x54, 0x27, 0xc9, 0xb3, 0x50, 0x7a, 0x07, 0x0d,
0xc1, 0x21, 0xcc, 0xcf, 0x74, 0x78, 0x8d, 0xfd, 0x1e, 0x2c, 0xec, 0xd3, 0x33, 0x21, 0xc8, 0x72,
0x20, 0x6f, 0x5c, 0xe8, 0x83, 0x62, 0xbd, 0x7d, 0x13, 0x88, 0xfe, 0x71, 0x2a, 0x00, 0xd2, 0x23,
0xb5, 0x0c, 0x8f, 0xd4, 0x7e, 0x03, 0xc8, 0xa1, 0x37, 0x0c, 0xde, 0xa7, 0x71, 0xec, 0x0e, 0x95,
0xe8, 0xb7, 0xa1, 0x3c, 0x8a, 0x87, 0x42, 0x55, 0xb1, 0x7f, 0xed, 0x4f, 0xc1, 0xa2, 0x41, 0x27,
0x1a, 0xbe, 0x02, 0xf5, 0xd8, 0x1b, 0x06, 0x6e, 0x32, 0x89, 0xa8, 0x68, 0x3a, 0x05, 0xec, 0x7b,
0xb0, 0xf4, 0x65, 0x1a, 0x79, 0xc7, 0xe7, 0x17, 0x35, 0x6f, 0xb6, 0x53, 0xca, 0xb6, 0xb3, 0x03,
0xcb, 0x99, 0x76, 0x44, 0xf7, 0x9c, 0x7d, 0xc5, 0x4e, 0xd6, 0x1c, 0x5e, 0xd0, 0x74, 0x5f, 0x49,
0xd7, 0x7d, 0xf6, 0x63, 0x20, 0x5b, 0x61, 0x10, 0xd0, 0x7e, 0x72, 0x40, 0x69, 0x94, 0x9e, 0x41,
0x53, 0x5e, 0x6d, 0xdc, 0x5e, 0x15, 0x2b, 0x9b, 0x55, 0xa8, 0x82, 0x89, 0x09, 0x54, 0xc6, 0x34,
0x1a, 0x61, 0xc3, 0x35, 0x07, 0xff, 0xb7, 0x97, 0x61, 0xd1, 0x68, 0x56, 0x1c, 0x1f, 0xde, 0x86,
0xe5, 0x6d, 0x2f, 0xee, 0xe7, 0x3b, 0xec, 0xc0, 0xec, 0x78, 0x72, 0xd4, 0x4b, 0x25, 0x51, 0x16,
0x99, 0xc7, 0x99, 0xfd, 0x44, 0x34, 0xf6, 0x73, 0x16, 0x54, 0x76, 0x1f, 0xed, 0x6d, 0x31, 0x5b,
0xe1, 0x05, 0xfd, 0x70, 0xc4, 0xec, 0x2d, 0x9f, 0xb4, 0x2a, 0x4f, 0x95, 0xb0, 0x2b, 0x50, 0x47,
0x33, 0xcd, 0x9c, 0x68, 0x71, 0x5c, 0x4c, 0x01, 0xe6, 0xc0, 0xd3, 0x67, 0x63, 0x2f, 0x42, 0x0f,
0x5d, 0xfa, 0xdd, 0x15, 0x34, 0x33, 0xf9, 0x0a, 0xfb, 0xdb, 0x55, 0x98, 0x15, 0xc6, 0x17, 0xfb,
0xeb, 0x27, 0xde, 0x29, 0x15, 0x23, 0x11, 0x25, 0xe6, 0x02, 0x45, 0x74, 0x14, 0x26, 0xb4, 0x67,
0x6c, 0x83, 0x09, 0xe2, 0x01, 0x85, 0x37, 0xd4, 0xe3, 0x47, 0x9a, 0x32, 0xa7, 0x32, 0x40, 0xb6,
0x58, 0xd2, 0x3f, 0xab, 0xa0, 0x7f, 0x26, 0x8b, 0x6c, 0x25, 0xfa, 0xee, 0xd8, 0xed, 0x7b, 0xc9,
0xb9, 0x50, 0x09, 0xaa, 0xcc, 0xda, 0xf6, 0xc3, 0xbe, 0xeb, 0xf7, 0x8e, 0x5c, 0xdf, 0x0d, 0xfa,
0x54, 0x1e, 0x7e, 0x0c, 0x90, 0x1d, 0x04, 0xc4, 0x90, 0x24, 0x19, 0x3f, 0x2c, 0x64, 0x50, 0x66,
0xbf, 0xfb, 0xe1, 0x68, 0xe4, 0x25, 0xec, 0xfc, 0x80, 0xbe, 0x65, 0xd9, 0xd1, 0x10, 0x7e, 0xd4,
0xc2, 0xd2, 0x19, 0x5f, 0xbd, 0xba, 0x3c, 0x6a, 0x69, 0x20, 0x6b, 0x85, 0x59, 0x1d, 0xa6, 0xc6,
0x9e, 0x9e, 0xa1, 0x23, 0x59, 0x76, 0x34, 0x84, 0xed, 0xc3, 0x24, 0x88, 0x69, 0x92, 0xf8, 0x74,
0xa0, 0x06, 0xd4, 0x40, 0xb2, 0x7c, 0x05, 0xb9, 0x05, 0x8b, 0xfc, 0x48, 0x13, 0xbb, 0x49, 0x18,
0x9f, 0x78, 0x71, 0x2f, 0x66, 0x87, 0x83, 0x26, 0xd2, 0x17, 0x55, 0x91, 0x3b, 0xb0, 0x9a, 0x81,
0x23, 0xda, 0xa7, 0xde, 0x29, 0x1d, 0x74, 0xe6, 0xf0, 0xab, 0x69, 0xd5, 0xe4, 0x1a, 0x34, 0xd8,
0x49, 0x6e, 0x32, 0x1e, 0xb8, 0xcc, 0x81, 0x69, 0xe1, 0x3e, 0xe8, 0x10, 0x79, 0x1b, 0xe6, 0xc6,
0x94, 0x7b, 0x3f, 0x27, 0x89, 0xdf, 0x8f, 0x3b, 0xf3, 0x86, 0x76, 0x63, 0x9c, 0xeb, 0x98, 0x14,
0x8c, 0x29, 0xfb, 0x31, 0xba, 0xf4, 0xee, 0x79, 0xa7, 0x2d, 0xdc, 0x6a, 0x09, 0xa0, 0x8c, 0x44,
0xde, 0xa9, 0x9b, 0xd0, 0xce, 0x02, 0x57, 0xe8, 0xa2, 0xc8, 0xbe, 0xf3, 0x02, 0x2f, 0xf1, 0xdc,
0x24, 0x8c, 0x3a, 0x04, 0xeb, 0x52, 0xc0, 0xfe, 0x6d, 0x8b, 0xab, 0x5d, 0xc1, 0xa2, 0x4a, 0x7d,
0xbe, 0x06, 0x0d, 0xce, 0x9c, 0xbd, 0x30, 0xf0, 0xcf, 0x05, 0xbf, 0x02, 0x87, 0x1e, 0x06, 0xfe,
0x39, 0xf9, 0x04, 0xcc, 0x79, 0x81, 0x4e, 0xc2, 0x25, 0xbc, 0x29, 0x41, 0x24, 0x7a, 0x0d, 0x1a,
0xe3, 0xc9, 0x91, 0xef, 0xf5, 0x39, 0x49, 0x99, 0xb7, 0xc2, 0x21, 0x24, 0x60, 0xbe, 0x33, 0x1f,
0x27, 0xa7, 0xa8, 0x20, 0x45, 0x43, 0x60, 0x8c, 0xc4, 0xbe, 0x0b, 0x4b, 0xe6, 0x00, 0x85, 0x2a,
0x5b, 0x87, 0x9a, 0xe0, 0xfc, 0xb8, 0xd3, 0xc0, 0xd5, 0x6b, 0x89, 0xd5, 0x13, 0xa4, 0x8e, 0xaa,
0xb7, 0xff, 0xa8, 0x02, 0x8b, 0x02, 0xdd, 0xf2, 0xc3, 0x98, 0x1e, 0x4e, 0x46, 0x23, 0x37, 0x2a,
0x10, 0x29, 0xeb, 0x02, 0x91, 0x2a, 0x99, 0x22, 0xc5, 0x18, 0xfd, 0xc4, 0xf5, 0x02, 0xee, 0xf8,
0x73, 0x79, 0xd4, 0x10, 0xb2, 0x06, 0xf3, 0x7d, 0x3f, 0x8c, 0xb9, 0x93, 0xab, 0x1f, 0xe1, 0xb3,
0x70, 0x5e, 0x05, 0x54, 0x8b, 0x54, 0x80, 0x2e, 0xc2, 0x33, 0x19, 0x11, 0xb6, 0xa1, 0xc9, 0x1a,
0xa5, 0x52, 0x23, 0xcd, 0x72, 0xc7, 0x57, 0xc7, 0xd8, 0x78, 0xb2, 0x02, 0xc3, 0xa5, 0x73, 0xbe,
0x48, 0x5c, 0xbc, 0x11, 0x45, 0x8d, 0xa7, 0x51, 0xd7, 0x85, 0xb8, 0xe4, 0xab, 0xc8, 0x3d, 0x76,
0xee, 0x63, 0x7d, 0xa1, 0xd9, 0x05, 0x34, 0xbb, 0x6f, 0x98, 0x3b, 0xa2, 0xaf, 0xfd, 0x4d, 0x56,
0x98, 0x44, 0x14, 0x4d, 0xb1, 0xf6, 0xa5, 0xfd, 0x0b, 0x16, 0x34, 0xb4, 0x3a, 0xb2, 0x0c, 0x0b,
0x5b, 0x0f, 0x1f, 0x1e, 0xec, 0x38, 0x9b, 0x8f, 0x1e, 0x7c, 0x79, 0xa7, 0xb7, 0xb5, 0xf7, 0xf0,
0x70, 0xa7, 0x7d, 0x89, 0xc1, 0x7b, 0x0f, 0xb7, 0x36, 0xf7, 0x7a, 0xf7, 0x1e, 0x3a, 0x5b, 0x12,
0xb6, 0xc8, 0x0a, 0x10, 0x67, 0xe7, 0xfd, 0x87, 0x8f, 0x76, 0x0c, 0xbc, 0x44, 0xda, 0xd0, 0xbc,
0xeb, 0xec, 0x6c, 0x6e, 0xed, 0x0a, 0xa4, 0x4c, 0x96, 0xa0, 0x7d, 0xef, 0xf1, 0xfe, 0xf6, 0x83,
0xfd, 0xfb, 0xbd, 0xad, 0xcd, 0xfd, 0xad, 0x9d, 0xbd, 0x9d, 0xed, 0x76, 0x85, 0xcc, 0x41, 0x7d,
0xf3, 0xee, 0xe6, 0xfe, 0xf6, 0xc3, 0xfd, 0x9d, 0xed, 0x76, 0xd5, 0xfe, 0x3b, 0x0b, 0x96, 0x71,
0xd4, 0x83, 0xac, 0x80, 0x5c, 0x83, 0x46, 0x3f, 0x0c, 0xc7, 0xcc, 0xdd, 0x4d, 0x15, 0xba, 0x0e,
0x31, 0xe6, 0xe7, 0xea, 0xf3, 0x38, 0x8c, 0xfa, 0x54, 0xc8, 0x07, 0x20, 0x74, 0x8f, 0x21, 0x8c,
0xf9, 0xc5, 0xf6, 0x72, 0x0a, 0x2e, 0x1e, 0x0d, 0x8e, 0x71, 0x92, 0x15, 0x98, 0x39, 0x8a, 0xa8,
0xdb, 0x3f, 0x11, 0x92, 0x21, 0x4a, 0xe4, 0x93, 0xe9, 0x79, 0xac, 0xcf, 0x56, 0xdf, 0xa7, 0x03,
0xe4, 0x98, 0x9a, 0x33, 0x2f, 0xf0, 0x2d, 0x01, 0x33, 0xf9, 0x77, 0x8f, 0xdc, 0x60, 0x10, 0x06,
0x74, 0x20, 0x9c, 0xbd, 0x14, 0xb0, 0x0f, 0x60, 0x25, 0x3b, 0x3f, 0x21, 0x5f, 0xef, 0x68, 0xf2,
0xc5, 0x7d, 0xaf, 0xee, 0xf4, 0xdd, 0xd4, 0x64, 0xed, 0x9f, 0x2d, 0xa8, 0x30, 0x53, 0x3c, 0xdd,
0x6c, 0xeb, 0xde, 0x55, 0x39, 0x17, 0xef, 0xc3, 0x23, 0x1e, 0x57, 0xce, 0xdc, 0x80, 0x69, 0x48,
0x5a, 0x1f, 0xd1, 0xfe, 0x29, 0xce, 0x58, 0xd5, 0x33, 0x84, 0x09, 0x08, 0x73, 0x7d, 0xf1, 0x6b,
0x21, 0x20, 0xb2, 0x2c, 0xeb, 0xf0, 0xcb, 0xd9, 0xb4, 0x0e, 0xbf, 0xeb, 0xc0, 0xac, 0x17, 0x1c,
0x85, 0x93, 0x60, 0x80, 0x02, 0x51, 0x73, 0x64, 0x11, 0x23, 0x8c, 0x28, 0xa8, 0xde, 0x48, 0xb2,
0x7f, 0x0a, 0xd8, 0x84, 0x9d, 0x24, 0x63, 0x74, 0x3d, 0x54, 0xb0, 0xeb, 0x1d, 0x58, 0xd0, 0xb0,
0xd4, 0x8d, 0x1d, 0x33, 0x20, 0xe3, 0xc6, 0xa2, 0xcf, 0xc2, 0x6b, 0xec, 0x36, 0xb4, 0xee, 0xd3,
0xe4, 0x41, 0x70, 0x1c, 0xca, 0x96, 0x7e, 0xaf, 0x02, 0xf3, 0x0a, 0x12, 0x0d, 0xad, 0xc1, 0xbc,
0x37, 0xa0, 0x41, 0xe2, 0x25, 0xe7, 0x3d, 0xe3, 0xc0, 0x9a, 0x85, 0x99, 0xaf, 0xe7, 0xfa, 0x9e,
0x2b, 0x63, 0xaa, 0xbc, 0xc0, 0x0e, 0x70, 0xcc, 0x10, 0x49, 0xdb, 0xa2, 0xb6, 0x98, 0x9f, 0x93,
0x0b, 0xeb, 0x98, 0x32, 0x60, 0xb8, 0xd0, 0xf6, 0xea, 0x13, 0xee, 0xf3, 0x14, 0x55, 0xb1, 0x55,
0xe3, 0x2d, 0xb1, 0x29, 0x57, 0xb9, 0xb1, 0x52, 0x40, 0x2e, 0x68, 0x39, 0xc3, 0x55, 0x55, 0x36,
0x68, 0xa9, 0x05, 0x3e, 0x6b, 0xb9, 0xc0, 0x27, 0x53, 0x65, 0xe7, 0x41, 0x9f, 0x0e, 0x7a, 0x49,
0xd8, 0x43, 0x95, 0x8b, 0xbb, 0x53, 0x73, 0xb2, 0x30, 0xb9, 0x02, 0xb3, 0x09, 0x8d, 0x93, 0x80,
0xf2, 0x68, 0x54, 0x0d, 0xe3, 0x27, 0x12, 0x62, 0x0e, 0xea, 0x24, 0xf2, 0xe2, 0x4e, 0x13, 0x43,
0x9a, 0xf8, 0x3f, 0xf9, 0x34, 0x2c, 0x1f, 0xd1, 0x38, 0xe9, 0x9d, 0x50, 0x77, 0x40, 0x23, 0xdc,
0x69, 0x1e, 0x3b, 0xe5, 0x76, 0xbf, 0xb8, 0x92, 0xf1, 0xd0, 0x29, 0x8d, 0x62, 0x2f, 0x0c, 0xd0,
0xe2, 0xd7, 0x1d, 0x59, 0x64, 0xed, 0xb1, 0xc9, 0x2b, 0x7b, 0xa9, 0x56, 0x70, 0x1e, 0x27, 0x5e,
0x5c, 0x49, 0xae, 0xc3, 0x0c, 0x4e, 0x20, 0xee, 0xb4, 0x8d, 0x20, 0xd0, 0x16, 0x03, 0x1d, 0x51,
0xf7, 0x85, 0x4a, 0xad, 0xd1, 0x6e, 0xda, 0x9f, 0x85, 0x2a, 0xc2, 0x6c, 0xd3, 0xf9, 0x62, 0x70,
0xa6, 0xe0, 0x05, 0x36, 0xb4, 0x80, 0x26, 0x67, 0x61, 0xf4, 0x54, 0x06, 0xd8, 0x45, 0xd1, 0xfe,
0x26, 0xba, 0xf8, 0x2a, 0xe0, 0xfc, 0x18, 0xfd, 0x13, 0x76, 0x50, 0xe3, 0x4b, 0x1d, 0x9f, 0xb8,
0xe2, 0xd4, 0x51, 0x43, 0xe0, 0xf0, 0xc4, 0x65, 0x6a, 0xcb, 0xd8, 0x3d, 0x7e, 0x90, 0x6b, 0x20,
0xb6, 0xcb, 0x37, 0xef, 0x3a, 0xb4, 0x64, 0x28, 0x3b, 0xee, 0xf9, 0xf4, 0x38, 0x91, 0x61, 0x98,
0x60, 0x32, 0xc2, 0xd3, 0xde, 0x1e, 0x3d, 0x4e, 0xec, 0x7d, 0x58, 0x10, 0xaa, 0xe4, 0xe1, 0x98,
0xca, 0xae, 0x3f, 0x57, 0x64, 0x92, 0x1b, 0xb7, 0x17, 0x4d, 0xdd, 0xc3, 0x83, 0xf7, 0x26, 0xa5,
0xed, 0x00, 0xd1, 0x55, 0x93, 0x68, 0x50, 0xd8, 0x45, 0x19, 0x68, 0x12, 0xd3, 0x31, 0x30, 0xb6,
0x3e, 0xf1, 0xa4, 0xdf, 0x97, 0x17, 0x10, 0xec, 0x38, 0xcc, 0x8b, 0xf6, 0xef, 0x5b, 0xb0, 0x88,
0xad, 0x49, 0xa7, 0x42, 0xa8, 0xff, 0x3b, 0x1f, 0x63, 0x98, 0xcd, 0xbe, 0x1e, 0x7c, 0x5b, 0x82,
0xaa, 0x6e, 0x10, 0x78, 0xe1, 0xe3, 0x1f, 0xea, 0x2b, 0xd9, 0x43, 0xbd, 0xfd, 0x1b, 0x16, 0x2c,
0x70, 0x9d, 0x9c, 0xb8, 0xc9, 0x24, 0x16, 0xd3, 0xff, 0x3f, 0x30, 0xc7, 0x8d, 0xab, 0x90, 0x6a,
0x31, 0xd0, 0x25, 0xa5, 0x80, 0x10, 0xe5, 0xc4, 0xbb, 0x97, 0x1c, 0x93, 0x98, 0xbc, 0x87, 0x0e,
0x4e, 0xd0, 0x43, 0x54, 0xc4, 0x51, 0x2f, 0x17, 0x98, 0x01, 0xf5, 0xbd, 0x46, 0x7e, 0xb7, 0x06,
0x33, 0xdc, 0xdf, 0xb5, 0xef, 0xc3, 0x9c, 0xd1, 0x91, 0x11, 0x50, 0x68, 0xf2, 0x80, 0x42, 0x2e,
0x72, 0x57, 0x2a, 0x88, 0xdc, 0xfd, 0x61, 0x19, 0x08, 0x63, 0x96, 0xcc, 0x6e, 0x30, 0x87, 0x3b,
0x1c, 0x18, 0xc7, 0xa7, 0xa6, 0xa3, 0x43, 0xe4, 0x26, 0x10, 0xad, 0x28, 0x03, 0xb0, 0xdc, 0xfa,
0x14, 0xd4, 0x30, 0x35, 0x29, 0x8c, 0xb7, 0x30, 0xb3, 0xe2, 0xa0, 0xc8, 0x97, 0xbd, 0xb0, 0x8e,
0x19, 0x98, 0xf1, 0x24, 0x3e, 0xc1, 0xb0, 0x99, 0x38, 0x60, 0xc9, 0x72, 0x76, 0x7f, 0x67, 0x2e,
0xdc, 0xdf, 0xd9, 0x5c, 0xd0, 0x46, 0x73, 0xf1, 0x6b, 0xa6, 0x8b, 0x7f, 0x1d, 0xe6, 0x46, 0xcc,
0xe5, 0x4c, 0xfc, 0x7e, 0x6f, 0xc4, 0x7a, 0x17, 0xe7, 0x29, 0x03, 0x24, 0xeb, 0xd0, 0x16, 0xee,
0x46, 0x7a, 0x8e, 0xe0, 0xe1, 0xf9, 0x1c, 0xce, 0xf4, 0x77, 0x1a, 0xc6, 0x69, 0xe0, 0x60, 0x53,
0x80, 0x9d, 0xbc, 0x62, 0xc6, 0x21, 0xbd, 0x49, 0x20, 0x6e, 0xab, 0xe8, 0x00, 0x4f, 0x52, 0x35,
0x27, 0x5f, 0x61, 0xff, 0xaa, 0x05, 0x6d, 0xb6, 0x67, 0x06, 0x5b, 0xbe, 0x0b, 0x28, 0x15, 0x2f,
0xc9, 0x95, 0x06, 0x2d, 0xb9, 0x03, 0x75, 0x2c, 0x87, 0x63, 0x1a, 0x08, 0x9e, 0xec, 0x98, 0x3c,
0x99, 0xea, 0x93, 0xdd, 0x4b, 0x4e, 0x4a, 0xac, 0x71, 0xe4, 0x5f, 0x5b, 0xd0, 0x10, 0xbd, 0xfc,
0xd0, 0x61, 0x82, 0xae, 0x76, 0xbd, 0xc8, 0x39, 0x29, 0xbd, 0x4d, 0x5c, 0x83, 0xf9, 0x91, 0x9b,
0x4c, 0x22, 0x66, 0x8f, 0x8d, 0x10, 0x41, 0x16, 0x66, 0xc6, 0x15, 0x55, 0x67, 0xdc, 0x4b, 0x3c,
0xbf, 0x27, 0x6b, 0xc5, 0x45, 0x5e, 0x51, 0x15, 0xd3, 0x20, 0x71, 0xe2, 0x0e, 0xa9, 0xb0, 0x9b,
0xbc, 0x60, 0x77, 0x60, 0x45, 0x4c, 0x28, 0xe3, 0xaa, 0xda, 0xdf, 0x6f, 0xc2, 0x6a, 0xae, 0x4a,
0xdd, 0xf6, 0x8b, 0xb3, 0xaf, 0xef, 0x8d, 0x8e, 0x42, 0xe5, 0xe7, 0x5b, 0xfa, 0xb1, 0xd8, 0xa8,
0x22, 0x43, 0x58, 0x96, 0x0e, 0x02, 0x5b, 0xd3, 0xd4, 0x98, 0x95, 0xd0, 0x4a, 0xbd, 0x6d, 0x6e,
0x61, 0xb6, 0x43, 0x89, 0xeb, 0x42, 0x5c, 0xdc, 0x1e, 0x39, 0x81, 0x8e, 0xf2, 0x44, 0x84, 0xb2,
0xd6, 0xbc, 0x15, 0xd6, 0xd7, 0x5b, 0x17, 0xf4, 0x65, 0x78, 0xb6, 0xce, 0xd4, 0xd6, 0xc8, 0x39,
0x5c, 0x95, 0x75, 0xa8, 0x8d, 0xf3, 0xfd, 0x55, 0x5e, 0x6a, 0x6e, 0xe8, 0xb3, 0x9b, 0x9d, 0x5e,
0xd0, 0x30, 0xf9, 0x10, 0x56, 0xce, 0x5c, 0x2f, 0x91, 0xc3, 0xd2, 0x7c, 0x83, 0x2a, 0x76, 0x79,
0xfb, 0x82, 0x2e, 0x9f, 0xf0, 0x8f, 0x0d, 0x13, 0x35, 0xa5, 0xc5, 0xee, 0x5f, 0x5a, 0xd0, 0x32,
0xdb, 0x61, 0x6c, 0x2a, 0x64, 0x5f, 0xea, 0x40, 0xe9, 0x4d, 0x66, 0xe0, 0xfc, 0x51, 0xb9, 0x54,
0x74, 0x54, 0xd6, 0x0f, 0xa8, 0xe5, 0x8b, 0x62, 0x4c, 0x95, 0x97, 0x8b, 0x31, 0x55, 0x8b, 0x62,
0x4c, 0xdd, 0xff, 0xb0, 0x80, 0xe4, 0x79, 0x89, 0xdc, 0xe7, 0x67, 0xf5, 0x80, 0xfa, 0x42, 0xa5,
0xfc, 0xef, 0x97, 0xe3, 0x47, 0xb9, 0x76, 0xf2, 0x6b, 0x26, 0x18, 0xfa, 0x4d, 0xbc, 0xee, 0xec,
0xcc, 0x39, 0x45, 0x55, 0x99, 0xa8, 0x57, 0xe5, 0xe2, 0xa8, 0x57, 0xf5, 0xe2, 0xa8, 0xd7, 0x4c,
0x36, 0xea, 0xd5, 0xfd, 0x59, 0x0b, 0x16, 0x0b, 0x36, 0xfd, 0xc7, 0x37, 0x71, 0xb6, 0x4d, 0x86,
0x2e, 0x28, 0x89, 0x6d, 0xd2, 0xc1, 0xee, 0x4f, 0xc1, 0x9c, 0xc1, 0xe8, 0x3f, 0xbe, 0xfe, 0xb3,
0xfe, 0x1a, 0xe7, 0x33, 0x03, 0xeb, 0xfe, 0x4b, 0x09, 0x48, 0x5e, 0xd8, 0xfe, 0x47, 0xc7, 0x90,
0x5f, 0xa7, 0x72, 0xc1, 0x3a, 0xfd, 0xb7, 0xda, 0x81, 0xb7, 0x60, 0x41, 0xa4, 0x06, 0x69, 0x11,
0x1a, 0xce, 0x31, 0xf9, 0x0a, 0xe6, 0xb1, 0x9a, 0x21, 0xc7, 0x9a, 0x91, 0x6e, 0xa1, 0x19, 0xc3,
0x4c, 0xe4, 0xd1, 0xee, 0x42, 0x47, 0xac, 0xd0, 0xce, 0x29, 0x0d, 0x92, 0xc3, 0xc9, 0x11, 0xcf,
0xaf, 0xf1, 0xc2, 0xc0, 0xfe, 0x5e, 0x59, 0x39, 0xdd, 0x58, 0x29, 0xcc, 0xfb, 0xa7, 0xa1, 0xa9,
0x2b, 0x73, 0xb1, 0x1d, 0x99, 0x00, 0x1d, 0x33, 0xec, 0x3a, 0x15, 0xd9, 0x86, 0x16, 0xaa, 0xac,
0x81, 0xfa, 0xae, 0x84, 0xdf, 0xbd, 0x20, 0xf0, 0xb0, 0x7b, 0xc9, 0xc9, 0x7c, 0x43, 0x3e, 0x0f,
0x2d, 0xf3, 0x28, 0x25, 0x7c, 0x84, 0x22, 0xdf, 0x9c, 0x7d, 0x6e, 0x12, 0x93, 0x4d, 0x68, 0x67,
0xcf, 0x62, 0xe2, 0x72, 0x7d, 0x4a, 0x03, 0x39, 0x72, 0x72, 0x47, 0xdc, 0x3d, 0x55, 0x31, 0x08,
0x76, 0xdd, 0xfc, 0x4c, 0x5b, 0xa6, 0x9b, 0xfc, 0x8f, 0x76, 0x1b, 0xf5, 0x35, 0x80, 0x14, 0x23,
0x6d, 0x68, 0x3e, 0x3c, 0xd8, 0xd9, 0xef, 0x6d, 0xed, 0x6e, 0xee, 0xef, 0xef, 0xec, 0xb5, 0x2f,
0x11, 0x02, 0x2d, 0x8c, 0x5f, 0x6d, 0x2b, 0xcc, 0x62, 0xd8, 0xe6, 0x16, 0x8f, 0x8d, 0x09, 0xac,
0x44, 0x96, 0xa0, 0xfd, 0x60, 0x3f, 0x83, 0x96, 0xef, 0xd6, 0x95, 0x7c, 0xd8, 0x2b, 0xb0, 0xc4,
0xd3, 0xc7, 0xee, 0x72, 0xf6, 0x90, 0xbe, 0xc2, 0x6f, 0x59, 0xb0, 0x9c, 0xa9, 0x48, 0xf3, 0x34,
0xb8, 0x3b, 0x60, 0xfa, 0x08, 0x26, 0xc8, 0x78, 0x52, 0x79, 0x7e, 0x19, 0x0d, 0x92, 0xaf, 0x60,
0x3c, 0xaf, 0x79, 0x8a, 0x19, 0x49, 0x2a, 0xaa, 0xb2, 0x57, 0x79, 0x92, 0x5b, 0x40, 0xfd, 0xcc,
0xc0, 0x8f, 0x79, 0x5a, 0x9a, 0x5e, 0x91, 0xde, 0xe5, 0x99, 0x43, 0x96, 0x45, 0xe6, 0xe4, 0x1b,
0xae, 0x87, 0x39, 0xde, 0xc2, 0x3a, 0xfb, 0xcf, 0x4a, 0x40, 0xbe, 0x34, 0xa1, 0xd1, 0x39, 0xa6,
0x58, 0xa8, 0x70, 0xe0, 0x6a, 0x36, 0xd8, 0x35, 0x33, 0x9e, 0x1c, 0x7d, 0x91, 0x9e, 0xcb, 0xf4,
0xa0, 0x92, 0x9e, 0x1e, 0x04, 0xec, 0x70, 0xac, 0x12, 0x3c, 0xac, 0xb5, 0x2a, 0x86, 0x24, 0xea,
0xc1, 0x64, 0xc4, 0x1b, 0x2d, 0xcc, 0xe2, 0xa9, 0x5c, 0x9c, 0xc5, 0x53, 0xbd, 0x28, 0x8b, 0xe7,
0x13, 0x30, 0xe7, 0x0d, 0x83, 0x90, 0xa9, 0x05, 0x66, 0xd8, 0xe3, 0xce, 0xcc, 0xb5, 0x32, 0x3b,
0x0c, 0x0b, 0x70, 0x9f, 0x61, 0xe4, 0xb3, 0x29, 0x11, 0x1d, 0x0c, 0x31, 0x23, 0x4c, 0x57, 0x14,
0x3b, 0x83, 0x21, 0xdd, 0x0b, 0xfb, 0x6e, 0x12, 0x46, 0xea, 0x43, 0x86, 0xc5, 0xec, 0xd4, 0x1f,
0x87, 0x13, 0xe6, 0xe6, 0xc8, 0xa5, 0xe0, 0x61, 0x9b, 0x26, 0x47, 0x0f, 0x70, 0x41, 0xec, 0xaf,
0x40, 0x43, 0x6b, 0x02, 0xd3, 0x85, 0x84, 0x0b, 0x21, 0xce, 0x83, 0x15, 0xee, 0xb1, 0x07, 0xd4,
0x7f, 0x30, 0x20, 0x6f, 0xc2, 0xc2, 0xc0, 0x8b, 0x28, 0x66, 0x7e, 0xf5, 0x22, 0x7a, 0x4a, 0xa3,
0x58, 0x9e, 0x9c, 0xdb, 0xaa, 0xc2, 0xe1, 0xb8, 0xfd, 0x1e, 0x2c, 0x1a, 0x5b, 0xa3, 0x38, 0x57,
0x66, 0xd3, 0x58, 0xf9, 0x6c, 0x1a, 0x99, 0x49, 0x63, 0xff, 0x7c, 0x09, 0xca, 0xbb, 0xe1, 0x58,
0x8f, 0xf6, 0x5b, 0x66, 0xb4, 0x5f, 0xb8, 0x40, 0x3d, 0xe5, 0xe1, 0x08, 0xcb, 0x68, 0x80, 0x64,
0x1d, 0x5a, 0xee, 0x28, 0xe9, 0x25, 0x21, 0x73, 0xf9, 0xce, 0xdc, 0x68, 0xc0, 0xd9, 0x19, 0xb7,
0x38, 0x53, 0x43, 0x96, 0xa0, 0xac, 0x7c, 0x05, 0x24, 0x60, 0x45, 0x76, 0xde, 0xc0, 0x7b, 0xc4,
0x73, 0x11, 0x39, 0x13, 0x25, 0x26, 0x2d, 0xe6, 0xf7, 0xfc, 0xb0, 0xc7, 0x35, 0x7e, 0x51, 0x15,
0x73, 0xc7, 0x18, 0x77, 0x20, 0x99, 0x08, 0x79, 0xca, 0xb2, 0x1e, 0x9e, 0xad, 0x99, 0xb7, 0xaa,
0xff, 0x64, 0x41, 0x15, 0xd7, 0x86, 0x59, 0x2f, 0x2e, 0xde, 0x2a, 0xe0, 0x8f, 0x6b, 0x32, 0xe7,
0x64, 0x61, 0x62, 0x1b, 0x39, 0x84, 0x25, 0x35, 0x21, 0x3d, 0x8f, 0xf0, 0x1a, 0xd4, 0x79, 0x49,
0xe5, 0xcb, 0x71, 0xbe, 0x57, 0x20, 0xb9, 0x0a, 0x95, 0x93, 0x70, 0x2c, 0xdd, 0x6d, 0x90, 0xb7,
0x61, 0xe1, 0xd8, 0x41, 0x3c, 0x1d, 0x0f, 0x6b, 0x8f, 0x4f, 0x8b, 0x3b, 0x51, 0x59, 0x98, 0xb9,
0x91, 0xaa, 0x59, 0x7d, 0x99, 0x32, 0xa8, 0xbd, 0x0e, 0xf3, 0x8c, 0xeb, 0xb5, 0xa8, 0xeb, 0x54,
0x51, 0xb6, 0x7f, 0xda, 0x82, 0x9a, 0x24, 0x26, 0x6b, 0x50, 0x61, 0x22, 0x94, 0x39, 0xb8, 0xaa,
0x5b, 0x70, 0x46, 0xe7, 0x20, 0x05, 0x73, 0x26, 0x30, 0x18, 0x96, 0x9e, 0x93, 0x64, 0x28, 0x2c,
0x3d, 0x06, 0xa8, 0xe1, 0x66, 0xbc, 0xe7, 0x0c, 0x6a, 0x7f, 0xd7, 0x82, 0x39, 0xa3, 0x0f, 0x72,
0x0d, 0x1a, 0xbe, 0x1b, 0x27, 0xe2, 0x66, 0x51, 0x6c, 0x8f, 0x0e, 0xe9, 0x1b, 0x5d, 0x32, 0xe3,
0xf0, 0x2a, 0x42, 0x5c, 0xd6, 0x23, 0xc4, 0xb7, 0xa0, 0x9e, 0x66, 0x7a, 0x56, 0x0c, 0xd9, 0x67,
0x3d, 0xca, 0xfb, 0xfd, 0x94, 0x08, 0x83, 0x8e, 0xa1, 0x1f, 0x46, 0xe2, 0xd2, 0x8a, 0x17, 0xec,
0xf7, 0xa0, 0xa1, 0xd1, 0xeb, 0x31, 0x48, 0xcb, 0x88, 0x41, 0xaa, 0xe4, 0x97, 0x52, 0x9a, 0xfc,
0x62, 0xff, 0xab, 0x05, 0x73, 0x8c, 0x07, 0xbd, 0x60, 0x78, 0x10, 0xfa, 0x5e, 0xff, 0x1c, 0xf7,
0x5e, 0xb2, 0x9b, 0x50, 0x89, 0x92, 0x17, 0x4d, 0x98, 0x71, 0xbd, 0x8c, 0x7c, 0x08, 0x11, 0x55,
0x65, 0x26, 0xc3, 0x4c, 0x02, 0x8e, 0xdc, 0x58, 0x88, 0x85, 0xf0, 0xda, 0x0c, 0x90, 0x49, 0x1a,
0x03, 0x30, 0x95, 0x69, 0xe4, 0xf9, 0xbe, 0xc7, 0x69, 0xb9, 0x4f, 0x5f, 0x54, 0xc5, 0xfa, 0x1c,
0x78, 0xb1, 0x7b, 0x94, 0x5e, 0xc4, 0xa8, 0x32, 0x86, 0x67, 0xdc, 0x67, 0x5a, 0x78, 0x66, 0x06,
0xf5, 0x8a, 0x09, 0xda, 0x7f, 0x52, 0x82, 0x86, 0x74, 0x11, 0x06, 0x43, 0x2a, 0xee, 0x16, 0x4d,
0xc5, 0xa8, 0x21, 0xb2, 0xde, 0x38, 0x8d, 0x69, 0x48, 0x96, 0x31, 0xca, 0x79, 0xc6, 0xb8, 0x02,
0x75, 0xc6, 0xa0, 0x6f, 0xe3, 0xb1, 0x4f, 0x24, 0x4f, 0x2b, 0x40, 0xd6, 0xde, 0xc6, 0xda, 0x6a,
0x5a, 0x8b, 0xc0, 0x0b, 0x6f, 0x22, 0xef, 0x40, 0x53, 0x34, 0x83, 0x3b, 0x87, 0x9a, 0x27, 0x15,
0x11, 0x63, 0x57, 0x1d, 0x83, 0x52, 0x7e, 0x79, 0x5b, 0x7e, 0x59, 0xbb, 0xe8, 0x4b, 0x49, 0x69,
0xdf, 0x57, 0x17, 0xbc, 0xf7, 0x23, 0x77, 0x7c, 0x22, 0x65, 0xf9, 0x16, 0x2c, 0x7a, 0x41, 0xdf,
0x9f, 0x0c, 0x68, 0x6f, 0x12, 0xb8, 0x41, 0x10, 0x4e, 0x82, 0x3e, 0x95, 0xd9, 0x2f, 0x45, 0x55,
0xf6, 0x40, 0xe5, 0x4a, 0x62, 0x43, 0x64, 0x1d, 0xaa, 0xdc, 0x54, 0x72, 0xdb, 0x51, 0x2c, 0xe8,
0x9c, 0x84, 0xac, 0x41, 0x95, 0x5b, 0xcc, 0x92, 0x21, 0x35, 0xda, 0xae, 0x3a, 0x9c, 0x80, 0xa9,
0x1d, 0x4c, 0x97, 0x35, 0xd5, 0x8e, 0x69, 0x77, 0x66, 0xfa, 0x98, 0x50, 0x6b, 0x2f, 0x01, 0xd9,
0xe7, 0x92, 0xa2, 0xdf, 0x0d, 0x7d, 0xbf, 0x0c, 0x0d, 0x0d, 0x66, 0x1a, 0x64, 0xc8, 0x06, 0xdc,
0x1b, 0x78, 0xee, 0x88, 0x26, 0x34, 0x12, 0xd2, 0x91, 0x41, 0x19, 0x9d, 0x7b, 0x3a, 0xec, 0x85,
0x93, 0xa4, 0x37, 0xa0, 0xc3, 0x88, 0x72, 0x6b, 0xca, 0x4c, 0x93, 0x81, 0x32, 0x3a, 0xc6, 0x9f,
0x1a, 0x1d, 0xe7, 0xa0, 0x0c, 0x2a, 0x6f, 0x7a, 0xf8, 0x1a, 0x55, 0xd2, 0x9b, 0x1e, 0xbe, 0x22,
0x59, 0xdd, 0x57, 0x2d, 0xd0, 0x7d, 0xef, 0xc0, 0x0a, 0xd7, 0x72, 0x42, 0x1f, 0xf4, 0x32, 0x8c,
0x35, 0xa5, 0x96, 0xac, 0x43, 0x9b, 0x8d, 0x59, 0x8a, 0x44, 0xec, 0x7d, 0x93, 0x47, 0x4d, 0x2d,
0x27, 0x87, 0x33, 0x5a, 0x0c, 0x5f, 0xea, 0xb4, 0xfc, 0xe6, 0x3b, 0x87, 0x23, 0xad, 0xfb, 0xcc,
0xa4, 0xad, 0x0b, 0xda, 0x0c, 0x4e, 0xee, 0xc0, 0xea, 0x88, 0x0e, 0x3c, 0xd7, 0x6c, 0x02, 0x23,
0xc0, 0x3c, 0x61, 0x65, 0x5a, 0xb5, 0x3d, 0x07, 0x8d, 0xc3, 0x24, 0x1c, 0xcb, 0xed, 0x6c, 0x41,
0x93, 0x17, 0x45, 0xfe, 0xd2, 0x2b, 0x70, 0x19, 0xf9, 0xef, 0x51, 0x38, 0x0e, 0xfd, 0x70, 0x78,
0x6e, 0x1c, 0xba, 0xfe, 0xca, 0x82, 0x45, 0xa3, 0x36, 0x3d, 0x75, 0x61, 0xbc, 0x46, 0x26, 0x9e,
0x70, 0x96, 0x5d, 0xd0, 0x94, 0x37, 0x27, 0xe4, 0xa1, 0xf1, 0xc7, 0x22, 0x17, 0x65, 0x13, 0xe6,
0xe5, 0xe8, 0xe4, 0x87, 0x9c, 0x7f, 0x3b, 0x79, 0xfe, 0x15, 0xdf, 0xb7, 0xc4, 0x07, 0xb2, 0x89,
0xcf, 0x8b, 0xdc, 0x03, 0x7e, 0x08, 0x93, 0xe1, 0x39, 0x75, 0x6c, 0xd3, 0x0f, 0xe9, 0x72, 0x04,
0x7d, 0x05, 0xc6, 0xf6, 0x2f, 0x5a, 0x00, 0xe9, 0xe8, 0xf0, 0xc6, 0x5a, 0x19, 0x20, 0xfe, 0xec,
0x48, 0x33, 0x36, 0xaf, 0x43, 0x53, 0xdd, 0x74, 0xa6, 0x36, 0xad, 0x21, 0x31, 0xe6, 0x73, 0xdf,
0x80, 0xf9, 0xa1, 0x1f, 0x1e, 0xa1, 0x43, 0x80, 0x09, 0x71, 0xb1, 0xc8, 0xe2, 0x6a, 0x71, 0xf8,
0x9e, 0x40, 0x53, 0x03, 0x58, 0xd1, 0x0c, 0xa0, 0xfd, 0x4b, 0x25, 0x75, 0x31, 0x95, 0xce, 0x79,
0xaa, 0x7c, 0x92, 0xdb, 0x39, 0x45, 0x3c, 0xe5, 0x1e, 0x08, 0xdd, 0xda, 0x83, 0x0b, 0xe3, 0x64,
0xef, 0x41, 0x2b, 0xe2, 0x9a, 0x4e, 0xaa, 0xc1, 0xca, 0x0b, 0xd4, 0xe0, 0x5c, 0x64, 0x58, 0xc9,
0x4f, 0x42, 0xdb, 0x1d, 0x9c, 0xd2, 0x28, 0xf1, 0x30, 0x52, 0x81, 0x2e, 0x0a, 0x57, 0xde, 0xf3,
0x1a, 0x8e, 0x9e, 0xc3, 0x0d, 0x98, 0x17, 0x99, 0x73, 0x8a, 0x52, 0xbc, 0x29, 0x48, 0x61, 0x46,
0x68, 0xff, 0x8e, 0xbc, 0x03, 0x33, 0xf7, 0x70, 0xfa, 0x8a, 0xe8, 0xb3, 0x2b, 0x65, 0x66, 0xf7,
0x09, 0x71, 0x1f, 0x35, 0x90, 0xe1, 0x90, 0xb2, 0x96, 0xa7, 0x32, 0x10, 0xf7, 0x87, 0xe6, 0x92,
0x56, 0x5e, 0x66, 0x49, 0xed, 0x1f, 0x58, 0x30, 0xbb, 0x1b, 0x8e, 0x77, 0x45, 0xc6, 0x0e, 0x0a,
0x82, 0x4a, 0x59, 0x95, 0xc5, 0x17, 0xe4, 0xf2, 0x14, 0x7a, 0x06, 0x73, 0x59, 0xcf, 0xe0, 0xff,
0xc3, 0x2b, 0x18, 0x8c, 0x8b, 0xc2, 0x71, 0x18, 0x31, 0x61, 0x74, 0x7d, 0xee, 0x06, 0x84, 0x41,
0x72, 0x22, 0x15, 0xe0, 0x8b, 0x48, 0xf0, 0x84, 0xcc, 0x4e, 0x75, 0xdc, 0xa9, 0x17, 0x9e, 0x0c,
0xd7, 0x8b, 0xf9, 0x0a, 0xfb, 0x73, 0x50, 0x47, 0x57, 0x1c, 0xa7, 0xf5, 0x16, 0xd4, 0x4f, 0xc2,
0x71, 0xef, 0xc4, 0x0b, 0x12, 0x29, 0xdc, 0xad, 0xd4, 0x47, 0xde, 0xc5, 0x05, 0x51, 0x04, 0xf6,
0xaf, 0xcf, 0xc0, 0xec, 0x83, 0xe0, 0x34, 0xf4, 0xfa, 0x78, 0xdf, 0x36, 0xa2, 0xa3, 0x50, 0x26,
0xf0, 0xb2, 0xff, 0xc9, 0x15, 0x98, 0xc5, 0x8c, 0xb5, 0x31, 0x67, 0xda, 0x26, 0xbf, 0x17, 0x17,
0x10, 0x73, 0x2f, 0xa2, 0xf4, 0xa9, 0x05, 0x17, 0x1f, 0x0d, 0x61, 0x87, 0x94, 0x48, 0x7f, 0x2a,
0x21, 0x4a, 0x69, 0x82, 0x74, 0x55, 0x4b, 0x90, 0x66, 0x7d, 0x89, 0x0c, 0x23, 0x9e, 0x82, 0xc2,
0xfb, 0x12, 0x10, 0x1e, 0xac, 0x22, 0xca, 0x83, 0xa9, 0xe8, 0xac, 0xcc, 0x8a, 0x83, 0x95, 0x0e,
0x32, 0x87, 0x86, 0x7f, 0xc0, 0x69, 0xb8, 0xfa, 0xd6, 0x21, 0xe6, 0x22, 0x66, 0x5f, 0xc9, 0xd4,
0x39, 0xef, 0x67, 0x60, 0xa6, 0xe3, 0x07, 0x54, 0x29, 0x54, 0x3e, 0x0f, 0xe0, 0xcf, 0x49, 0xb2,
0xb8, 0x76, 0x1c, 0xe3, 0xc9, 0x85, 0xf2, 0x38, 0xc6, 0x18, 0xc6, 0xf5, 0xfd, 0x23, 0xb7, 0xff,
0x14, 0x1f, 0x41, 0xe1, 0x0d, 0x58, 0xdd, 0x31, 0x41, 0xcc, 0x13, 0x4a, 0x77, 0x15, 0x33, 0x08,
0x2a, 0x8e, 0x0e, 0x91, 0xdb, 0xd0, 0xc0, 0x23, 0xa8, 0xd8, 0xd7, 0x16, 0xee, 0x6b, 0x5b, 0x3f,
0xa3, 0xe2, 0xce, 0xea, 0x44, 0xfa, 0x5d, 0xe0, 0x7c, 0x2e, 0xdd, 0xcf, 0x1d, 0x0c, 0xc4, 0x15,
0x6a, 0x9b, 0x1f, 0xa7, 0x15, 0xc0, 0xec, 0xb1, 0x58, 0x30, 0x4e, 0xb0, 0x80, 0x04, 0x06, 0x46,
0xae, 0x42, 0x8d, 0x1d, 0x8f, 0xc6, 0xae, 0x37, 0xc0, 0x7c, 0x41, 0x7e, 0x4a, 0x53, 0x18, 0x6b,
0x43, 0xfe, 0x8f, 0x86, 0x6e, 0x11, 0x57, 0xc5, 0xc0, 0xd8, 0xda, 0xa8, 0x32, 0x0a, 0xd3, 0x12,
0xdf, 0x51, 0x03, 0x24, 0x6f, 0xe3, 0x45, 0x56, 0x42, 0x3b, 0xcb, 0x18, 0x28, 0x7b, 0x45, 0xcc,
0x59, 0x30, 0xad, 0xfc, 0x7b, 0xc8, 0x48, 0x1c, 0x4e, 0x69, 0x6f, 0x42, 0x53, 0x87, 0x49, 0x0d,
0x2a, 0x0f, 0x0f, 0x76, 0xf6, 0xdb, 0x97, 0x48, 0x03, 0x66, 0x0f, 0x77, 0x1e, 0x3d, 0xda, 0xdb,
0xd9, 0x6e, 0x5b, 0xa4, 0x09, 0x35, 0x95, 0xd4, 0x55, 0x62, 0xa5, 0xcd, 0xad, 0xad, 0x9d, 0x83,
0x47, 0x3b, 0xdb, 0xed, 0xb2, 0x9d, 0x00, 0xd9, 0x1c, 0x0c, 0x44, 0x2b, 0x2a, 0x48, 0x90, 0xf2,
0xb3, 0x65, 0xf0, 0x73, 0x01, 0x4f, 0x95, 0x8a, 0x79, 0xea, 0x85, 0x2b, 0x6f, 0xef, 0x40, 0xe3,
0x40, 0x7b, 0x11, 0x84, 0xe2, 0x25, 0xdf, 0x02, 0x09, 0xb1, 0xd4, 0x10, 0x6d, 0x38, 0x25, 0x7d,
0x38, 0xf6, 0xef, 0x5a, 0x3c, 0xed, 0x5e, 0x0d, 0x9f, 0xf7, 0x6d, 0x43, 0x53, 0x45, 0xab, 0xd2,
0x7c, 0x4d, 0x03, 0x63, 0x34, 0x38, 0x94, 0x5e, 0x78, 0x7c, 0x1c, 0x53, 0x99, 0x5d, 0x65, 0x60,
0x4c, 0x2e, 0x98, 0x6f, 0xc6, 0xfc, 0x1c, 0x8f, 0xf7, 0x10, 0x8b, 0x2c, 0xab, 0x1c, 0xce, 0xb4,
0xbc, 0x08, 0xc8, 0xc8, 0xbc, 0x32, 0x55, 0x56, 0x69, 0xa5, 0xd9, 0x55, 0x5e, 0x87, 0x9a, 0x6a,
0xd7, 0x54, 0x60, 0x92, 0x52, 0xd5, 0x33, 0x45, 0x89, 0xa7, 0x15, 0x63, 0xd0, 0x5c, 0x69, 0xe7,
0x2b, 0xc8, 0x4d, 0x20, 0xc7, 0x5e, 0x94, 0x25, 0x2f, 0x23, 0x79, 0x41, 0x8d, 0xfd, 0x04, 0x16,
0x25, 0x23, 0x69, 0xae, 0x95, 0xb9, 0x89, 0xd6, 0x45, 0xe2, 0x53, 0xca, 0x8b, 0x8f, 0xfd, 0x9f,
0x16, 0xcc, 0x8a, 0x9d, 0xce, 0xbd, 0x2a, 0xe3, 0xfb, 0x6c, 0x60, 0xa4, 0x63, 0xbc, 0x28, 0x41,
0x59, 0x13, 0x4a, 0x33, 0xa7, 0x16, 0xcb, 0x45, 0x6a, 0x91, 0x40, 0x65, 0xec, 0x26, 0x27, 0x78,
0x52, 0xaf, 0x3b, 0xf8, 0x3f, 0x69, 0xf3, 0xb8, 0x12, 0x57, 0xc1, 0x18, 0x53, 0x2a, 0x7a, 0x3f,
0xc7, 0xad, 0x7d, 0xfe, 0xfd, 0xdc, 0x15, 0xa8, 0xe3, 0x00, 0x7a, 0x69, 0xd8, 0x28, 0x05, 0x18,
0xe7, 0xf2, 0x02, 0xca, 0xb5, 0x48, 0xee, 0x4e, 0x11, 0x7b, 0x99, 0xef, 0xbc, 0x58, 0x02, 0x75,
0x09, 0x2d, 0xd2, 0x78, 0x53, 0x38, 0xe5, 0x08, 0x31, 0x80, 0x2c, 0x47, 0x08, 0x52, 0x47, 0xd5,
0xdb, 0x5d, 0xe8, 0x6c, 0x53, 0x9f, 0x26, 0x74, 0xd3, 0xf7, 0xb3, 0xed, 0xbf, 0x02, 0x97, 0x0b,
0xea, 0x84, 0x37, 0xfd, 0x25, 0x58, 0xde, 0xe4, 0x29, 0x8f, 0x3f, 0xae, 0x34, 0x1e, 0xbb, 0x03,
0x2b, 0xd9, 0x26, 0x45, 0x67, 0xf7, 0x60, 0x61, 0x9b, 0x1e, 0x4d, 0x86, 0x7b, 0xf4, 0x34, 0xed,
0x88, 0x40, 0x25, 0x3e, 0x09, 0xcf, 0x84, 0x60, 0xe2, 0xff, 0xe4, 0x55, 0x00, 0x9f, 0xd1, 0xf4,
0xe2, 0x31, 0xed, 0xcb, 0x47, 0x1c, 0x88, 0x1c, 0x8e, 0x69, 0xdf, 0x7e, 0x07, 0x88, 0xde, 0x8e,
0x58, 0x2f, 0x66, 0x05, 0x27, 0x47, 0xbd, 0xf8, 0x3c, 0x4e, 0xe8, 0x48, 0xbe, 0x4e, 0xd1, 0x21,
0xfb, 0x06, 0x34, 0x0f, 0xdc, 0x73, 0x87, 0x7e, 0x43, 0x3c, 0x26, 0x5c, 0x85, 0xd9, 0xb1, 0x7b,
0xce, 0xd4, 0x94, 0x8a, 0x67, 0x61, 0xb5, 0xfd, 0xef, 0x25, 0x98, 0xe1, 0x94, 0xac, 0xd5, 0x01,
0x8d, 0x13, 0x2f, 0x40, 0xc6, 0x92, 0xad, 0x6a, 0x50, 0x8e, 0x95, 0x4b, 0x05, 0xac, 0x2c, 0x4e,
0x7b, 0x32, 0x21, 0x5e, 0xf0, 0xab, 0x81, 0x31, 0xe6, 0x4a, 0xf3, 0xe9, 0x78, 0x40, 0x25, 0x05,
0x32, 0xa1, 0xcf, 0xd4, 0xd6, 0xf2, 0xf1, 0x49, 0x29, 0x15, 0x9c, 0xab, 0x43, 0x85, 0x16, 0x7d,
0x96, 0x33, 0x78, 0xce, 0xa2, 0xe7, 0x2c, 0x77, 0xed, 0x25, 0x2c, 0x37, 0x3f, 0x02, 0xbe, 0xc8,
0x72, 0xc3, 0x4b, 0x58, 0x6e, 0x9b, 0x40, 0x1b, 0x5f, 0xda, 0x31, 0xdf, 0x50, 0xf2, 0xee, 0xb7,
0x2c, 0x68, 0x0b, 0x2e, 0x52, 0x75, 0xe4, 0x75, 0xc3, 0x07, 0x2e, 0x4c, 0x4c, 0xbf, 0x0e, 0x73,
0xe8, 0x99, 0xaa, 0x18, 0xaf, 0x08, 0x48, 0x1b, 0x20, 0x9b, 0x87, 0xbc, 0x3f, 0x1e, 0x79, 0xbe,
0xd8, 0x14, 0x1d, 0x92, 0x61, 0xe2, 0xc8, 0x15, 0x79, 0x65, 0x96, 0xa3, 0xca, 0xf6, 0x9f, 0x5a,
0xb0, 0xa0, 0x0d, 0x58, 0x70, 0xe1, 0x7b, 0x20, 0xa5, 0x81, 0x07, 0x7c, 0xb9, 0xe4, 0xae, 0x9a,
0x62, 0x93, 0x7e, 0x66, 0x10, 0xe3, 0x66, 0xba, 0xe7, 0x38, 0xc0, 0x78, 0x32, 0x12, 0x4a, 0x54,
0x87, 0x18, 0x23, 0x9d, 0x51, 0xfa, 0x54, 0x91, 0x70, 0x35, 0x6e, 0x60, 0x18, 0x55, 0x63, 0x1e,
0xb5, 0x22, 0xaa, 0x88, 0xa8, 0x9a, 0x0e, 0xda, 0x7f, 0x6b, 0xc1, 0x22, 0x3f, 0x1a, 0x89, 0x83,
0xa7, 0x7a, 0x53, 0x34, 0xc3, 0xcf, 0x82, 0x5c, 0x22, 0x77, 0x2f, 0x39, 0xa2, 0x4c, 0x3e, 0xf3,
0x92, 0xc7, 0x39, 0x95, 0xec, 0x36, 0x65, 0x2f, 0xca, 0x45, 0x7b, 0xf1, 0x82, 0x95, 0x2e, 0x0a,
0x70, 0x56, 0x0b, 0x03, 0x9c, 0x77, 0x67, 0xa1, 0x1a, 0xf7, 0xc3, 0x31, 0xb5, 0x57, 0x60, 0xc9,
0x9c, 0x9c, 0x50, 0x41, 0xdf, 0xb1, 0xa0, 0x73, 0x8f, 0x5f, 0x04, 0x78, 0xc1, 0x70, 0xd7, 0x8b,
0x93, 0x30, 0x52, 0x4f, 0x2f, 0xaf, 0x02, 0xc4, 0x89, 0x1b, 0x25, 0x3c, 0xa5, 0x59, 0x04, 0x16,
0x53, 0x84, 0x8d, 0x91, 0x06, 0x03, 0x5e, 0xcb, 0xf7, 0x46, 0x95, 0x73, 0x3e, 0x84, 0x38, 0xbc,
0x19, 0x96, 0xf8, 0x0d, 0x9e, 0xfc, 0xc9, 0x7c, 0x05, 0x7a, 0x8a, 0x7a, 0x9d, 0x9f, 0x8a, 0x32,
0xa8, 0xfd, 0x37, 0x16, 0xcc, 0xa7, 0x83, 0xc4, 0x6b, 0x51, 0x53, 0x3b, 0x08, 0xf3, 0x9b, 0x6a,
0x07, 0x19, 0xf2, 0xf4, 0x98, 0x3d, 0x16, 0x63, 0xd3, 0x10, 0x94, 0x58, 0x51, 0x0a, 0x27, 0xd2,
0xc1, 0xd1, 0x21, 0x9e, 0xca, 0xc5, 0x3c, 0x01, 0xe1, 0xd5, 0x88, 0x12, 0x66, 0xa4, 0x8f, 0x12,
0xfc, 0x8a, 0x07, 0x67, 0x65, 0x51, 0x9a, 0xd2, 0x59, 0x44, 0xd1, 0x94, 0xea, 0x97, 0x2a, 0x35,
0xbe, 0x3e, 0xb2, 0x6c, 0xff, 0xb2, 0x05, 0x97, 0x0b, 0x16, 0x5e, 0x48, 0xcd, 0x36, 0x2c, 0x1c,
0xab, 0x4a, 0xb9, 0x38, 0x5c, 0x74, 0x56, 0xe4, 0xa5, 0x9d, 0xb9, 0x20, 0x4e, 0xfe, 0x03, 0xe5,
0x17, 0xf1, 0xe5, 0x36, 0x92, 0x25, 0xf3, 0x15, 0xeb, 0xcf, 0xa1, 0xa1, 0x3d, 0x7a, 0x24, 0xab,
0xb0, 0xf8, 0xe4, 0xc1, 0xa3, 0xfd, 0x9d, 0xc3, 0xc3, 0xde, 0xc1, 0xe3, 0xbb, 0x5f, 0xdc, 0xf9,
0x4a, 0x6f, 0x77, 0xf3, 0x70, 0xb7, 0x7d, 0x89, 0xac, 0x00, 0xd9, 0xdf, 0x39, 0x7c, 0xb4, 0xb3,
0x6d, 0xe0, 0x16, 0xb9, 0x0a, 0xdd, 0xc7, 0xfb, 0x8f, 0x0f, 0x77, 0xb6, 0x7b, 0x45, 0xdf, 0x95,
0xc8, 0xab, 0x70, 0x59, 0xd4, 0x17, 0x7c, 0x5e, 0xbe, 0xfd, 0x2b, 0x65, 0x68, 0xf1, 0xfb, 0x64,
0xfe, 0x9b, 0x25, 0x34, 0x22, 0xef, 0xc3, 0xac, 0xf8, 0xcd, 0x19, 0xb2, 0x2c, 0x66, 0x6d, 0xfe,
0xca, 0x4d, 0x77, 0x25, 0x0b, 0x0b, 0xb6, 0x5e, 0xfc, 0x99, 0x1f, 0xfc, 0xe3, 0xaf, 0x95, 0xe6,
0x48, 0x63, 0xe3, 0xf4, 0xed, 0x8d, 0x21, 0x0d, 0x62, 0xd6, 0xc6, 0xd7, 0x00, 0xd2, 0x5f, 0x63,
0x21, 0x1d, 0xe5, 0x4e, 0x66, 0x7e, 0x66, 0xa6, 0x7b, 0xb9, 0xa0, 0x46, 0xb4, 0x7b, 0x19, 0xdb,
0x5d, 0xb4, 0x5b, 0xac, 0x5d, 0x2f, 0xf0, 0x12, 0xfe, 0xd3, 0x2c, 0xef, 0x5a, 0xeb, 0x64, 0x00,
0x4d, 0xfd, 0xc7, 0x56, 0x88, 0x8c, 0x69, 0x15, 0xfc, 0xd4, 0x4b, 0xf7, 0x95, 0xc2, 0x3a, 0x19,
0xd0, 0xc3, 0x3e, 0x96, 0xed, 0x36, 0xeb, 0x63, 0x82, 0x14, 0x69, 0x2f, 0x3e, 0xb4, 0xcc, 0xdf,
0x54, 0x21, 0x57, 0x34, 0x8d, 0x93, 0xfb, 0x45, 0x97, 0xee, 0xab, 0x53, 0x6a, 0x45, 0x5f, 0xaf,
0x62, 0x5f, 0xab, 0x36, 0x61, 0x7d, 0xf5, 0x91, 0x46, 0xfe, 0xa2, 0xcb, 0xbb, 0xd6, 0xfa, 0xed,
0x3f, 0x78, 0x1d, 0xea, 0x2a, 0x7e, 0x4d, 0x3e, 0x84, 0x39, 0xe3, 0xc2, 0x9f, 0xc8, 0x69, 0x14,
0xe5, 0x07, 0x74, 0xaf, 0x14, 0x57, 0x8a, 0x8e, 0xaf, 0x62, 0xc7, 0x1d, 0xb2, 0xc2, 0x3a, 0x16,
0x37, 0xe6, 0x1b, 0x98, 0xba, 0xc2, 0xf3, 0xd0, 0x9f, 0xf2, 0x79, 0xa6, 0x97, 0xf4, 0xc6, 0x3c,
0x73, 0x97, 0xfa, 0xc6, 0x3c, 0xf3, 0x37, 0xfb, 0xf6, 0x15, 0xec, 0x6e, 0x85, 0x2c, 0xe9, 0xdd,
0xa9, 0xb8, 0x32, 0xc5, 0xc7, 0x13, 0xfa, 0xcf, 0x91, 0x90, 0x57, 0x15, 0x63, 0x15, 0xfd, 0x4c,
0x89, 0x62, 0x91, 0xfc, 0x6f, 0x95, 0xd8, 0x1d, 0xec, 0x8a, 0x10, 0xdc, 0x3e, 0xfd, 0xd7, 0x48,
0xc8, 0x11, 0x34, 0xb4, 0x27, 0xf4, 0xe4, 0xf2, 0xd4, 0xe7, 0xfe, 0xdd, 0x6e, 0x51, 0x55, 0xd1,
0x54, 0xf4, 0xf6, 0x37, 0x98, 0xca, 0xf9, 0x2a, 0xd4, 0xd5, 0xa3, 0x6c, 0xb2, 0xaa, 0x3d, 0x92,
0xd7, 0x1f, 0x91, 0x77, 0x3b, 0xf9, 0x8a, 0x22, 0xe6, 0xd3, 0x5b, 0x67, 0xcc, 0xf7, 0x04, 0x1a,
0xda, 0xc3, 0x6b, 0x35, 0x81, 0xfc, 0xe3, 0x6e, 0x35, 0x81, 0x82, 0x77, 0xda, 0xf6, 0x02, 0x76,
0xd1, 0x20, 0x75, 0xe4, 0xef, 0xe4, 0x59, 0x18, 0x93, 0x3d, 0x58, 0x16, 0x67, 0xab, 0x23, 0xfa,
0x71, 0xb6, 0xa1, 0xe0, 0x17, 0x60, 0x6e, 0x59, 0xe4, 0x3d, 0xa8, 0xc9, 0xf7, 0xf5, 0x64, 0xa5,
0xf8, 0x77, 0x02, 0xba, 0xab, 0x39, 0x5c, 0x68, 0xde, 0xaf, 0x00, 0xa4, 0xaf, 0xbc, 0x95, 0x92,
0xc8, 0xbd, 0x1a, 0x57, 0x1c, 0x90, 0x7f, 0x12, 0x6e, 0xaf, 0xe0, 0x04, 0xdb, 0x04, 0x95, 0x44,
0x40, 0xcf, 0xe4, 0x93, 0xa5, 0xaf, 0x43, 0x43, 0x7b, 0xe8, 0xad, 0x96, 0x2f, 0xff, 0x48, 0x5c,
0x2d, 0x5f, 0xc1, 0xbb, 0x70, 0xbb, 0x8b, 0xad, 0x2f, 0xd9, 0xf3, 0xac, 0xf5, 0xd8, 0x1b, 0x06,
0x23, 0x4e, 0xc0, 0x36, 0xe8, 0x04, 0xe6, 0x8c, 0xd7, 0xdc, 0x4a, 0x42, 0x8b, 0xde, 0x8a, 0x2b,
0x09, 0x2d, 0x7c, 0x00, 0x2e, 0xf9, 0xcc, 0x5e, 0x60, 0xfd, 0x9c, 0x22, 0x89, 0xd6, 0xd3, 0x07,
0xd0, 0xd0, 0x5e, 0x66, 0xab, 0xb9, 0xe4, 0x1f, 0x81, 0xab, 0xb9, 0x14, 0x3d, 0xe4, 0x5e, 0xc2,
0x3e, 0x5a, 0x36, 0xb2, 0x02, 0xbe, 0xf8, 0x61, 0x6d, 0x7f, 0x08, 0x2d, 0xf3, 0xad, 0xb6, 0x92,
0xfd, 0xc2, 0x57, 0xdf, 0x4a, 0xf6, 0xa7, 0x3c, 0xf0, 0x16, 0x2c, 0xbd, 0xbe, 0xa8, 0x3a, 0xd9,
0xf8, 0x48, 0xdc, 0x6b, 0x3f, 0x27, 0x5f, 0x62, 0x0a, 0x4e, 0x3c, 0xc1, 0x22, 0xab, 0x1a, 0xd7,
0xea, 0x0f, 0xb5, 0x94, 0xbc, 0xe4, 0x5e, 0x6b, 0x99, 0xcc, 0xcc, 0xdf, 0x2c, 0xa1, 0xd5, 0xc2,
0xa7, 0x58, 0x9a, 0xd5, 0xd2, 0x5f, 0x6b, 0x69, 0x56, 0xcb, 0x78, 0xb1, 0x95, 0xb5, 0x5a, 0x89,
0xc7, 0xda, 0x08, 0x60, 0x3e, 0x93, 0x94, 0xa8, 0xa4, 0xa2, 0x38, 0x8b, 0xbb, 0x7b, 0xf5, 0xc5,
0xb9, 0x8c, 0xa6, 0x06, 0x91, 0x4a, 0x70, 0x43, 0xe6, 0xcc, 0xff, 0x24, 0x34, 0xf5, 0x57, 0xb4,
0x44, 0x17, 0xe5, 0x6c, 0x4f, 0xaf, 0x14, 0xd6, 0x99, 0x9b, 0x4b, 0x9a, 0x7a, 0x37, 0xe4, 0xcb,
0xb0, 0xa2, 0x44, 0x5d, 0xcf, 0x73, 0x8b, 0xc9, 0x6b, 0x05, 0xd9, 0x6f, 0x7a, 0xc4, 0xa5, 0x7b,
0x79, 0x6a, 0x7a, 0xdc, 0x2d, 0x8b, 0x31, 0x8d, 0xf9, 0x3c, 0x31, 0x35, 0x18, 0x45, 0xaf, 0x32,
0x53, 0x83, 0x51, 0xf8, 0xa6, 0x51, 0x32, 0x0d, 0x59, 0x34, 0xd6, 0x88, 0x5f, 0x3d, 0x90, 0x0f,
0x60, 0x5e, 0xcb, 0x24, 0x3e, 0x3c, 0x0f, 0xfa, 0x4a, 0x00, 0xf2, 0x4f, 0x4e, 0xba, 0x45, 0x47,
0x02, 0x7b, 0x15, 0xdb, 0x5f, 0xb0, 0x8d, 0xc5, 0x61, 0xcc, 0xbf, 0x05, 0x0d, 0x3d, 0x4b, 0xf9,
0x05, 0xed, 0xae, 0x6a, 0x55, 0xfa, 0x8b, 0x89, 0x5b, 0x16, 0xf9, 0x4d, 0x0b, 0x9a, 0x46, 0xce,
0xaf, 0x71, 0xc1, 0x96, 0x69, 0xa7, 0xa3, 0xd7, 0xe9, 0x0d, 0xd9, 0x0e, 0x0e, 0x72, 0x6f, 0xfd,
0x0b, 0xc6, 0x22, 0x7c, 0x64, 0x1c, 0x2d, 0x6f, 0x66, 0x7f, 0xd3, 0xe7, 0x79, 0x96, 0x40, 0x7f,
0x96, 0xf3, 0xfc, 0x96, 0x45, 0xbe, 0x6b, 0x41, 0xcb, 0x0c, 0x88, 0xa8, 0xad, 0x2a, 0x0c, 0xbd,
0xa8, 0xad, 0x9a, 0x12, 0x45, 0xf9, 0x00, 0x47, 0xf9, 0x68, 0xdd, 0x31, 0x46, 0x29, 0x1e, 0xae,
0xfe, 0x68, 0xa3, 0x25, 0xef, 0xf2, 0x9f, 0xfd, 0x92, 0x51, 0x3a, 0xa2, 0x59, 0x8d, 0xec, 0xf6,
0xea, 0x3f, 0x55, 0xb5, 0x66, 0xdd, 0xb2, 0xc8, 0xd7, 0xf9, 0x6f, 0xd9, 0x88, 0x6f, 0x91, 0x4b,
0x5e, 0xf6, 0x7b, 0xfb, 0x3a, 0xce, 0xe9, 0xaa, 0x7d, 0xd9, 0x98, 0x53, 0xd6, 0x1e, 0x6f, 0xf2,
0xd1, 0x89, 0x5f, 0x99, 0x4a, 0x0d, 0x4a, 0xee, 0x97, 0xa7, 0xa6, 0x0f, 0x72, 0xc4, 0x07, 0x29,
0xc8, 0x0d, 0x56, 0x7e, 0xc9, 0x66, 0xec, 0x75, 0x1c, 0xeb, 0x75, 0xfb, 0xb5, 0xa9, 0x63, 0xdd,
0xc0, 0xb0, 0x06, 0x1b, 0xf1, 0x01, 0x40, 0x1a, 0x51, 0x27, 0x99, 0x88, 0xae, 0x12, 0xf0, 0x7c,
0xd0, 0xdd, 0x94, 0x17, 0x19, 0xf8, 0x65, 0x2d, 0x7e, 0x95, 0xab, 0xab, 0x07, 0x32, 0x16, 0xac,
0x3b, 0x25, 0x66, 0xe8, 0xdb, 0x70, 0x4a, 0xb2, 0xed, 0x1b, 0xca, 0x4a, 0x05, 0x96, 0x1f, 0xc3,
0xdc, 0x5e, 0x18, 0x3e, 0x9d, 0x8c, 0xd5, 0xed, 0x98, 0x19, 0x71, 0xdc, 0x75, 0xe3, 0x93, 0x6e,
0x66, 0x16, 0xf6, 0x35, 0x6c, 0xaa, 0x4b, 0x3a, 0x5a, 0x53, 0x1b, 0x1f, 0xa5, 0x11, 0xfb, 0xe7,
0xc4, 0x85, 0x05, 0xa5, 0x03, 0xd5, 0xc0, 0xbb, 0x66, 0x33, 0x86, 0xe6, 0xcb, 0x76, 0x61, 0x78,
0xcf, 0x72, 0xb4, 0x1b, 0xb1, 0x6c, 0xf3, 0x96, 0x45, 0x0e, 0xa0, 0xb9, 0x4d, 0xfb, 0xe1, 0x80,
0x8a, 0xb0, 0xdd, 0x62, 0x3a, 0x70, 0x15, 0xef, 0xeb, 0xce, 0x19, 0xa0, 0x69, 0x17, 0xc6, 0xee,
0x79, 0x44, 0xbf, 0xb1, 0xf1, 0x91, 0x08, 0x08, 0x3e, 0x97, 0x76, 0x41, 0x46, 0x4c, 0x0d, 0xbb,
0x90, 0x09, 0xb1, 0x1a, 0x76, 0x21, 0x17, 0x62, 0x35, 0x96, 0x5a, 0x46, 0x6c, 0x89, 0x0f, 0x0b,
0xb9, 0xa8, 0xac, 0x32, 0x09, 0xd3, 0x62, 0xb9, 0xdd, 0x6b, 0xd3, 0x09, 0xcc, 0xde, 0xd6, 0xcd,
0xde, 0x0e, 0x61, 0x6e, 0x9b, 0xf2, 0xc5, 0xe2, 0xc9, 0x3b, 0x99, 0xc4, 0x71, 0x3d, 0x35, 0x28,
0xab, 0xc0, 0xb1, 0xce, 0x34, 0xfc, 0x98, 0x39, 0x43, 0xbe, 0x0a, 0x8d, 0xfb, 0x34, 0x91, 0xd9,
0x3a, 0xca, 0xf5, 0xcc, 0xa4, 0xef, 0x74, 0x0b, 0x92, 0x7d, 0x4c, 0x9e, 0xc1, 0xd6, 0x36, 0xe8,
0x60, 0x48, 0xb9, 0x72, 0xea, 0x79, 0x83, 0xe7, 0xe4, 0x27, 0xb0, 0x71, 0x95, 0x54, 0xb8, 0xa2,
0xa5, 0x6a, 0xe8, 0x8d, 0xcf, 0x67, 0xf0, 0xa2, 0x96, 0x83, 0x70, 0x40, 0x35, 0x17, 0x28, 0x80,
0x86, 0x96, 0x0b, 0xab, 0x04, 0x28, 0x9f, 0xba, 0xac, 0x04, 0xa8, 0x20, 0x75, 0xd6, 0x5e, 0xc3,
0x7e, 0x6c, 0x72, 0x2d, 0xed, 0x87, 0xa7, 0xcb, 0xa6, 0x3d, 0x6d, 0x7c, 0xe4, 0x8e, 0x92, 0xe7,
0xe4, 0x09, 0xbe, 0x5e, 0xd7, 0x33, 0x92, 0x52, 0x5f, 0x3a, 0x9b, 0xbc, 0xa4, 0x16, 0x4b, 0xab,
0x32, 0xfd, 0x6b, 0xde, 0x15, 0x7a, 0x4a, 0x9f, 0x01, 0x38, 0x4c, 0xc2, 0xf1, 0xb6, 0x4b, 0x47,
0x61, 0x90, 0xea, 0xda, 0x34, 0x77, 0x26, 0xd5, 0x5f, 0x5a, 0x02, 0x0d, 0x79, 0xa2, 0x1d, 0x3e,
0x8c, 0x84, 0x2e, 0xc9, 0x5c, 0x53, 0xd3, 0x6b, 0xd4, 0x82, 0x14, 0xa4, 0xd8, 0xdc, 0xb2, 0xc8,
0x26, 0x40, 0x1a, 0x96, 0x57, 0x47, 0x89, 0x5c, 0xc4, 0x5f, 0xa9, 0xbd, 0x82, 0x18, 0xfe, 0x01,
0xd4, 0xd3, 0x38, 0xef, 0x6a, 0x9a, 0xae, 0x6d, 0x44, 0x85, 0x95, 0x05, 0xcf, 0x45, 0x5f, 0xed,
0x36, 0x2e, 0x15, 0x90, 0x1a, 0x5b, 0x2a, 0x0c, 0xa9, 0x7a, 0xb0, 0xc8, 0x07, 0xa8, 0xdc, 0x11,
0xcc, 0x06, 0x91, 0x33, 0x29, 0x88, 0x80, 0x2a, 0x69, 0x2e, 0x0c, 0x20, 0x1a, 0x11, 0x11, 0xc6,
0xad, 0x3c, 0x13, 0x85, 0xa9, 0xe6, 0x11, 0x2c, 0xe4, 0x22, 0x5c, 0x4a, 0xa4, 0xa7, 0x05, 0x1d,
0x95, 0x48, 0x4f, 0x0d, 0x8e, 0xd9, 0xcb, 0xd8, 0xe5, 0xbc, 0x0d, 0x78, 0x02, 0x3a, 0xf3, 0x92,
0xfe, 0xc9, 0xbb, 0xd6, 0xfa, 0xdd, 0x1b, 0x1f, 0xfc, 0xaf, 0xa1, 0x97, 0x9c, 0x4c, 0x8e, 0x6e,
0xf6, 0xc3, 0xd1, 0x86, 0x2f, 0xc3, 0x16, 0x22, 0x1b, 0x6c, 0xc3, 0x0f, 0x06, 0x1b, 0xd8, 0xf2,
0xd1, 0x0c, 0xfe, 0x66, 0xf2, 0xa7, 0xfe, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x79, 0x09, 0x65, 0x5e,
0x65, 0x59, 0x00, 0x00,
var fileDescriptor_rpc_b3db6f0ed643a2b2 = []byte{
// 7603 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7c, 0x5b, 0x6c, 0x1c, 0xc9,
0x75, 0x28, 0x7b, 0x1e, 0xe4, 0xcc, 0x99, 0xe1, 0x70, 0x58, 0x7c, 0x8d, 0x66, 0xb5, 0x5a, 0x6e,
0x5b, 0x77, 0x45, 0x73, 0xf7, 0x8a, 0x5a, 0xd9, 0x5e, 0xcb, 0xab, 0xeb, 0x7b, 0x2f, 0x5f, 0x12,
0x65, 0x73, 0x29, 0xba, 0x29, 0xad, 0xec, 0xb5, 0x2f, 0xc6, 0xcd, 0x99, 0xe2, 0xb0, 0x57, 0x33,
0xdd, 0xe3, 0xee, 0x1e, 0x52, 0xf4, 0x5e, 0x01, 0x17, 0x17, 0x41, 0x12, 0x18, 0x09, 0x02, 0x27,
0x08, 0x10, 0x07, 0x09, 0x02, 0xd8, 0x01, 0x12, 0x23, 0x5f, 0xf9, 0x70, 0x10, 0x20, 0x71, 0x7e,
0x03, 0x18, 0x08, 0x82, 0xc0, 0x9f, 0x01, 0x02, 0x04, 0xc9, 0x4f, 0x92, 0x8f, 0x20, 0x01, 0xf2,
0x19, 0x20, 0xa8, 0x53, 0x8f, 0xae, 0xea, 0xee, 0x11, 0xb5, 0xb6, 0x93, 0xaf, 0x99, 0x3a, 0x75,
0xba, 0x9e, 0xe7, 0x5d, 0xa7, 0x0a, 0xaa, 0xe1, 0xa8, 0x7b, 0x73, 0x14, 0x06, 0x71, 0x40, 0xca,
0x03, 0x3f, 0x1c, 0x75, 0xdb, 0x57, 0xfb, 0x41, 0xd0, 0x1f, 0xd0, 0x0d, 0x77, 0xe4, 0x6d, 0xb8,
0xbe, 0x1f, 0xc4, 0x6e, 0xec, 0x05, 0x7e, 0xc4, 0x91, 0xec, 0xaf, 0x43, 0xe3, 0x3e, 0xf5, 0x8f,
0x28, 0xed, 0x39, 0xf4, 0x1b, 0x63, 0x1a, 0xc5, 0xe4, 0x4d, 0x98, 0x77, 0xe9, 0x37, 0x29, 0xed,
0x75, 0x46, 0x6e, 0x14, 0x8d, 0x4e, 0x43, 0x37, 0xa2, 0x2d, 0x6b, 0xd5, 0x5a, 0xab, 0x3b, 0x4d,
0x5e, 0x71, 0xa8, 0xe0, 0xe4, 0x75, 0xa8, 0x47, 0x0c, 0x95, 0xfa, 0x71, 0x18, 0x8c, 0x2e, 0x5a,
0x05, 0xc4, 0xab, 0x31, 0xd8, 0x2e, 0x07, 0xd9, 0x03, 0x98, 0x53, 0x3d, 0x44, 0xa3, 0xc0, 0x8f,
0x28, 0xb9, 0x05, 0x8b, 0x5d, 0x6f, 0x74, 0x4a, 0xc3, 0x0e, 0x7e, 0x3c, 0xf4, 0xe9, 0x30, 0xf0,
0xbd, 0x6e, 0xcb, 0x5a, 0x2d, 0xae, 0x55, 0x1d, 0xc2, 0xeb, 0xd8, 0x17, 0xef, 0x89, 0x1a, 0x72,
0x03, 0xe6, 0xa8, 0xcf, 0xe1, 0xb4, 0x87, 0x5f, 0x89, 0xae, 0x1a, 0x09, 0x98, 0x7d, 0x60, 0xff,
0x62, 0x01, 0xe6, 0x1f, 0xf8, 0x5e, 0xfc, 0xc4, 0x1d, 0x0c, 0x68, 0x2c, 0xe7, 0x74, 0x03, 0xe6,
0xce, 0x11, 0x80, 0x73, 0x3a, 0x0f, 0xc2, 0x9e, 0x98, 0x51, 0x83, 0x83, 0x0f, 0x05, 0x74, 0xe2,
0xc8, 0x0a, 0x13, 0x47, 0x96, 0xbb, 0x5c, 0xc5, 0x09, 0xcb, 0x75, 0x03, 0xe6, 0x42, 0xda, 0x0d,
0xce, 0x68, 0x78, 0xd1, 0x39, 0xf7, 0xfc, 0x5e, 0x70, 0xde, 0x2a, 0xad, 0x5a, 0x6b, 0x65, 0xa7,
0x21, 0xc1, 0x4f, 0x10, 0x4a, 0xb6, 0x60, 0xae, 0x7b, 0xea, 0xfa, 0x3e, 0x1d, 0x74, 0x8e, 0xdd,
0xee, 0xd3, 0xf1, 0x28, 0x6a, 0x95, 0x57, 0xad, 0xb5, 0xda, 0xed, 0x2b, 0x37, 0x71, 0x57, 0x6f,
0x6e, 0x9f, 0xba, 0xfe, 0x16, 0xd6, 0x1c, 0xf9, 0xee, 0x28, 0x3a, 0x0d, 0x62, 0xa7, 0x21, 0xbe,
0xe0, 0xe0, 0xc8, 0x5e, 0x04, 0xa2, 0xaf, 0x04, 0x5f, 0x7b, 0xfb, 0x0f, 0x2c, 0x58, 0x78, 0xec,
0x0f, 0x82, 0xee, 0xd3, 0x9f, 0x70, 0x89, 0x72, 0xe6, 0x50, 0x78, 0xd9, 0x39, 0x14, 0x3f, 0xee,
0x1c, 0x96, 0x61, 0xd1, 0x1c, 0xac, 0x98, 0x05, 0x85, 0x25, 0xf6, 0x75, 0x9f, 0xca, 0x61, 0xc9,
0x69, 0x7c, 0x12, 0x9a, 0xdd, 0x71, 0x18, 0x52, 0x3f, 0x33, 0x8f, 0x39, 0x01, 0x57, 0x13, 0x79,
0x1d, 0xea, 0x3e, 0x3d, 0x4f, 0xd0, 0x04, 0xed, 0xfa, 0xf4, 0x5c, 0xa2, 0xd8, 0x2d, 0x58, 0x4e,
0x77, 0x23, 0x06, 0xf0, 0xb7, 0x16, 0x94, 0x1e, 0xc7, 0xcf, 0x02, 0x72, 0x13, 0x4a, 0xf1, 0xc5,
0x88, 0x73, 0x48, 0xe3, 0x36, 0x11, 0x53, 0xdb, 0xec, 0xf5, 0x42, 0x1a, 0x45, 0x8f, 0x2e, 0x46,
0xd4, 0xa9, 0xbb, 0xbc, 0xd0, 0x61, 0x78, 0xa4, 0x05, 0x33, 0xa2, 0x8c, 0x1d, 0x56, 0x1d, 0x59,
0x24, 0xd7, 0x00, 0xdc, 0x61, 0x30, 0xf6, 0xe3, 0x4e, 0xe4, 0xc6, 0xb8, 0x54, 0x45, 0x47, 0x83,
0x90, 0xab, 0x50, 0x1d, 0x3d, 0xed, 0x44, 0xdd, 0xd0, 0x1b, 0xc5, 0x48, 0x36, 0x55, 0x27, 0x01,
0x90, 0x37, 0xa1, 0x12, 0x8c, 0xe3, 0x51, 0xe0, 0xf9, 0xb1, 0x20, 0x95, 0x39, 0x31, 0x96, 0x87,
0xe3, 0xf8, 0x90, 0x81, 0x1d, 0x85, 0x40, 0xae, 0xc3, 0x6c, 0x37, 0xf0, 0x4f, 0xbc, 0x70, 0xc8,
0x85, 0x41, 0x6b, 0x1a, 0x7b, 0x33, 0x81, 0xf6, 0x77, 0x0a, 0x50, 0x7b, 0x14, 0xba, 0x7e, 0xe4,
0x76, 0x19, 0x80, 0x0d, 0x3d, 0x7e, 0xd6, 0x39, 0x75, 0xa3, 0x53, 0x9c, 0x6d, 0xd5, 0x91, 0x45,
0xb2, 0x0c, 0xd3, 0x7c, 0xa0, 0x38, 0xa7, 0xa2, 0x23, 0x4a, 0xe4, 0x2d, 0x98, 0xf7, 0xc7, 0xc3,
0x8e, 0xd9, 0x57, 0x11, 0xa9, 0x25, 0x5b, 0xc1, 0x16, 0xe0, 0x98, 0xed, 0x35, 0xef, 0x82, 0xcf,
0x50, 0x83, 0x10, 0x1b, 0xea, 0xa2, 0x44, 0xbd, 0xfe, 0x29, 0x9f, 0x66, 0xd9, 0x31, 0x60, 0xac,
0x8d, 0xd8, 0x1b, 0xd2, 0x4e, 0x14, 0xbb, 0xc3, 0x91, 0x98, 0x96, 0x06, 0xc1, 0xfa, 0x20, 0x76,
0x07, 0x9d, 0x13, 0x4a, 0xa3, 0xd6, 0x8c, 0xa8, 0x57, 0x10, 0xf2, 0x06, 0x34, 0x7a, 0x34, 0x8a,
0x3b, 0x62, 0x53, 0x68, 0xd4, 0xaa, 0x20, 0xeb, 0xa7, 0xa0, 0x8c, 0x32, 0xee, 0xd3, 0x58, 0x5b,
0x9d, 0x48, 0x50, 0xa0, 0xbd, 0x0f, 0x44, 0x03, 0xef, 0xd0, 0xd8, 0xf5, 0x06, 0x11, 0x79, 0x07,
0xea, 0xb1, 0x86, 0x8c, 0xa2, 0xae, 0xa6, 0xc8, 0x45, 0xfb, 0xc0, 0x31, 0xf0, 0xec, 0xfb, 0x50,
0xb9, 0x47, 0xe9, 0xbe, 0x37, 0xf4, 0x62, 0xb2, 0x0c, 0xe5, 0x13, 0xef, 0x19, 0xe5, 0x04, 0x5d,
0xdc, 0x9b, 0x72, 0x78, 0x91, 0xb4, 0x61, 0x66, 0x44, 0xc3, 0x2e, 0x95, 0xcb, 0xbf, 0x37, 0xe5,
0x48, 0xc0, 0xd6, 0x0c, 0x94, 0x07, 0xec, 0x63, 0xfb, 0x5f, 0x0a, 0x50, 0x3b, 0xa2, 0xbe, 0x62,
0x14, 0x02, 0x25, 0x36, 0x25, 0xc1, 0x1c, 0xf8, 0x9f, 0xbc, 0x06, 0x35, 0x9c, 0x66, 0x14, 0x87,
0x9e, 0xdf, 0x17, 0xf4, 0x09, 0x0c, 0x74, 0x84, 0x10, 0xd2, 0x84, 0xa2, 0x3b, 0x94, 0xb4, 0xc9,
0xfe, 0x32, 0x26, 0x1a, 0xb9, 0x17, 0x43, 0xc6, 0x6f, 0x6a, 0xd7, 0xea, 0x4e, 0x4d, 0xc0, 0xf6,
0xd8, 0xb6, 0xdd, 0x84, 0x05, 0x1d, 0x45, 0xb6, 0x5e, 0xc6, 0xd6, 0xe7, 0x35, 0x4c, 0xd1, 0xc9,
0x0d, 0x98, 0x93, 0xf8, 0x21, 0x1f, 0x2c, 0xee, 0x63, 0xd5, 0x69, 0x08, 0xb0, 0x9c, 0xc2, 0x1a,
0x34, 0x4f, 0x3c, 0xdf, 0x1d, 0x74, 0xba, 0x83, 0xf8, 0xac, 0xd3, 0xa3, 0x83, 0xd8, 0xc5, 0x1d,
0x2d, 0x3b, 0x0d, 0x84, 0x6f, 0x0f, 0xe2, 0xb3, 0x1d, 0x06, 0x25, 0x6f, 0x41, 0xf5, 0x84, 0xd2,
0x0e, 0xae, 0x44, 0xab, 0x62, 0x70, 0x87, 0x5c, 0x5d, 0xa7, 0x72, 0x22, 0xd7, 0x79, 0x0d, 0x9a,
0xc1, 0x38, 0xee, 0x07, 0x9e, 0xdf, 0xef, 0x30, 0x79, 0xd4, 0xf1, 0x7a, 0xad, 0xea, 0xaa, 0xb5,
0x56, 0x72, 0x1a, 0x12, 0xce, 0xa4, 0xc2, 0x83, 0x1e, 0x79, 0x15, 0x00, 0xfb, 0xe6, 0x0d, 0xc3,
0xaa, 0xb5, 0x36, 0xeb, 0x54, 0x19, 0x04, 0x1b, 0xb2, 0xff, 0xd8, 0x82, 0x3a, 0x5f, 0x73, 0xa1,
0xf8, 0xae, 0xc3, 0xac, 0x9c, 0x1a, 0x0d, 0xc3, 0x20, 0x14, 0x7c, 0x64, 0x02, 0xc9, 0x3a, 0x34,
0x25, 0x60, 0x14, 0x52, 0x6f, 0xe8, 0xf6, 0xa9, 0x10, 0x4e, 0x19, 0x38, 0xb9, 0x9d, 0xb4, 0x18,
0x06, 0xe3, 0x98, 0x0a, 0x11, 0x5b, 0x17, 0xb3, 0x73, 0x18, 0xcc, 0x31, 0x51, 0x18, 0x1f, 0xe5,
0xec, 0x99, 0x01, 0xb3, 0x7f, 0x60, 0x01, 0x61, 0x43, 0x7f, 0x14, 0xf0, 0x26, 0xc4, 0x92, 0xa7,
0xb7, 0xdb, 0x7a, 0xe9, 0xed, 0x2e, 0x4c, 0xda, 0xee, 0x35, 0x98, 0xc6, 0x61, 0x31, 0xc1, 0x50,
0x4c, 0x0f, 0x7d, 0xab, 0xd0, 0xb2, 0x1c, 0x51, 0x4f, 0x6c, 0x28, 0xf3, 0x39, 0x96, 0x72, 0xe6,
0xc8, 0xab, 0xec, 0xef, 0x5a, 0x50, 0xdf, 0xe6, 0x3a, 0x04, 0x85, 0x1e, 0xb9, 0x05, 0xe4, 0x64,
0xec, 0xf7, 0xd8, 0x5e, 0xc6, 0xcf, 0xbc, 0x5e, 0xe7, 0xf8, 0x82, 0x75, 0x85, 0xe3, 0xde, 0x9b,
0x72, 0x72, 0xea, 0xc8, 0x5b, 0xd0, 0x34, 0xa0, 0x51, 0x1c, 0xf2, 0xd1, 0xef, 0x4d, 0x39, 0x99,
0x1a, 0xb6, 0x98, 0x4c, 0xac, 0x8e, 0xe3, 0x8e, 0xe7, 0xf7, 0xe8, 0x33, 0x5c, 0xff, 0x59, 0xc7,
0x80, 0x6d, 0x35, 0xa0, 0xae, 0x7f, 0x67, 0x7f, 0x08, 0x15, 0x29, 0x94, 0x51, 0x20, 0xa5, 0xc6,
0xe5, 0x68, 0x10, 0xd2, 0x86, 0x8a, 0x39, 0x0a, 0xa7, 0xf2, 0x71, 0xfa, 0xb6, 0xff, 0x27, 0x34,
0xf7, 0x99, 0x64, 0xf4, 0x3d, 0xbf, 0x2f, 0xb4, 0x12, 0x13, 0xd7, 0xa3, 0xf1, 0xf1, 0x53, 0x7a,
0x21, 0xe8, 0x4f, 0x94, 0x98, 0x4c, 0x38, 0x0d, 0xa2, 0x58, 0xf4, 0x83, 0xff, 0xed, 0x3f, 0xb7,
0x80, 0xec, 0x46, 0xb1, 0x37, 0x74, 0x63, 0x7a, 0x8f, 0x2a, 0x42, 0x78, 0x08, 0x75, 0xd6, 0xda,
0xa3, 0x60, 0x93, 0xcb, 0x7d, 0x2e, 0xcf, 0xde, 0x14, 0x5b, 0x92, 0xfd, 0xe0, 0xa6, 0x8e, 0xcd,
0x4c, 0xc3, 0x0b, 0xc7, 0x68, 0x80, 0xc9, 0x9e, 0xd8, 0x0d, 0xfb, 0x34, 0x46, 0xa5, 0x20, 0x4c,
0x0a, 0xe0, 0xa0, 0xed, 0xc0, 0x3f, 0x69, 0xff, 0x2f, 0x98, 0xcf, 0xb4, 0xc1, 0x04, 0x52, 0x32,
0x0d, 0xf6, 0x97, 0x2c, 0x42, 0xf9, 0xcc, 0x1d, 0x8c, 0xa9, 0xd0, 0x44, 0xbc, 0xf0, 0x6e, 0xe1,
0x8e, 0x65, 0x77, 0x61, 0xc1, 0x18, 0x97, 0xe0, 0xc9, 0x16, 0xcc, 0x30, 0xd9, 0xc0, 0x74, 0x2e,
0xca, 0x55, 0x47, 0x16, 0xc9, 0x6d, 0x58, 0x3c, 0xa1, 0x34, 0x74, 0x63, 0x2c, 0x76, 0x46, 0x34,
0xc4, 0x3d, 0x11, 0x2d, 0xe7, 0xd6, 0xd9, 0x7f, 0x67, 0xc1, 0x1c, 0xe3, 0x9b, 0xf7, 0x5c, 0xff,
0x42, 0xae, 0xd5, 0x7e, 0xee, 0x5a, 0xad, 0x89, 0xb5, 0x4a, 0x61, 0x7f, 0xdc, 0x85, 0x2a, 0xa6,
0x17, 0x8a, 0xac, 0x42, 0xdd, 0x18, 0x6e, 0x99, 0x2b, 0xb9, 0xc8, 0x8d, 0x0f, 0x69, 0xb8, 0x75,
0x11, 0xd3, 0x9f, 0x7e, 0x29, 0xdf, 0x80, 0x66, 0x32, 0x6c, 0xb1, 0x8e, 0x04, 0x4a, 0x8c, 0x30,
0x45, 0x03, 0xf8, 0xdf, 0xfe, 0x2d, 0x8b, 0x23, 0x6e, 0x07, 0x9e, 0x52, 0x90, 0x0c, 0x91, 0xe9,
0x51, 0x89, 0xc8, 0xfe, 0x4f, 0x34, 0x20, 0x7e, 0xfa, 0xc9, 0x92, 0x2b, 0x50, 0x89, 0xa8, 0xdf,
0xeb, 0xb8, 0x83, 0x01, 0xea, 0x91, 0x8a, 0x33, 0xc3, 0xca, 0x9b, 0x83, 0x81, 0x7d, 0x03, 0xe6,
0xb5, 0xd1, 0xbd, 0x60, 0x1e, 0x07, 0x40, 0xf6, 0xbd, 0x28, 0x7e, 0xec, 0x47, 0x23, 0x4d, 0xff,
0xbc, 0x02, 0xd5, 0xa1, 0xe7, 0xe3, 0xc8, 0x38, 0xe7, 0x96, 0x9d, 0xca, 0xd0, 0xf3, 0xd9, 0xb8,
0x22, 0xac, 0x74, 0x9f, 0x89, 0xca, 0x82, 0xa8, 0x74, 0x9f, 0x61, 0xa5, 0x7d, 0x07, 0x16, 0x8c,
0xf6, 0x44, 0xd7, 0xaf, 0x43, 0x79, 0x1c, 0x3f, 0x0b, 0xa4, 0x75, 0x50, 0x13, 0x14, 0xc2, 0xec,
0x4c, 0x87, 0xd7, 0xd8, 0x77, 0x61, 0xfe, 0x80, 0x9e, 0x0b, 0x46, 0x96, 0x03, 0x79, 0xe3, 0x52,
0x1b, 0x14, 0xeb, 0xed, 0x9b, 0x40, 0xf4, 0x8f, 0x13, 0x06, 0x90, 0x16, 0xa9, 0x65, 0x58, 0xa4,
0xf6, 0x1b, 0x40, 0x8e, 0xbc, 0xbe, 0xff, 0x1e, 0x8d, 0x22, 0xb7, 0xaf, 0x58, 0xbf, 0x09, 0xc5,
0x61, 0xd4, 0x17, 0xa2, 0x8a, 0xfd, 0xb5, 0x3f, 0x05, 0x0b, 0x06, 0x9e, 0x68, 0xf8, 0x2a, 0x54,
0x23, 0xaf, 0xef, 0xbb, 0xf1, 0x38, 0xa4, 0xa2, 0xe9, 0x04, 0x60, 0xdf, 0x83, 0xc5, 0xf7, 0x69,
0xe8, 0x9d, 0x5c, 0x5c, 0xd6, 0xbc, 0xd9, 0x4e, 0x21, 0xdd, 0xce, 0x2e, 0x2c, 0xa5, 0xda, 0x11,
0xdd, 0x73, 0xf2, 0x15, 0x3b, 0x59, 0x71, 0x78, 0x41, 0x93, 0x7d, 0x05, 0x5d, 0xf6, 0xd9, 0x8f,
0x81, 0x6c, 0x07, 0xbe, 0x4f, 0xbb, 0xf1, 0x21, 0xa5, 0x61, 0xe2, 0x0c, 0x27, 0xb4, 0x5a, 0xbb,
0xbd, 0x22, 0x56, 0x36, 0x2d, 0x50, 0x05, 0x11, 0x13, 0x28, 0x8d, 0x68, 0x38, 0xc4, 0x86, 0x2b,
0x0e, 0xfe, 0xb7, 0x97, 0x60, 0xc1, 0x68, 0x56, 0xb8, 0x0f, 0x6f, 0xc3, 0xd2, 0x8e, 0x17, 0x75,
0xb3, 0x1d, 0xb6, 0x60, 0x66, 0x34, 0x3e, 0xee, 0x24, 0x9c, 0x28, 0x8b, 0xcc, 0xe2, 0x4c, 0x7f,
0x22, 0x1a, 0xfb, 0x79, 0x0b, 0x4a, 0x7b, 0x8f, 0xf6, 0xb7, 0x99, 0xae, 0xf0, 0xfc, 0x6e, 0x30,
0x64, 0xfa, 0x96, 0x4f, 0x5a, 0x95, 0x27, 0x72, 0xd8, 0x55, 0xa8, 0xa2, 0x9a, 0x66, 0x46, 0xb4,
0xf0, 0x5b, 0x13, 0x00, 0x33, 0xe0, 0xe9, 0xb3, 0x91, 0x17, 0xa2, 0x85, 0x2e, 0xed, 0xee, 0x12,
0xaa, 0x99, 0x6c, 0x85, 0xfd, 0xa3, 0x32, 0xcc, 0x08, 0xe5, 0x8b, 0xfd, 0x75, 0x63, 0xef, 0x8c,
0x8a, 0x91, 0x88, 0x12, 0x33, 0x81, 0x42, 0x3a, 0x0c, 0x62, 0xda, 0x31, 0xb6, 0xc1, 0x04, 0xa2,
0x83, 0x22, 0x7c, 0x47, 0xee, 0xd2, 0x14, 0x39, 0x96, 0x01, 0x64, 0x8b, 0x25, 0xed, 0xb3, 0x12,
0xda, 0x67, 0xb2, 0xc8, 0x56, 0xa2, 0xeb, 0x8e, 0xdc, 0xae, 0x17, 0x5f, 0x08, 0x91, 0xa0, 0xca,
0xac, 0xed, 0x41, 0xd0, 0x75, 0x99, 0x57, 0x3a, 0x70, 0xfd, 0x2e, 0x95, 0xce, 0x8f, 0x01, 0x64,
0x8e, 0x80, 0x18, 0x92, 0x44, 0xe3, 0xce, 0x42, 0x0a, 0xca, 0xf4, 0x77, 0x37, 0x18, 0x0e, 0xbd,
0x98, 0xf9, 0x0f, 0x68, 0x5b, 0x16, 0x1d, 0x0d, 0xc2, 0x5d, 0x2d, 0x2c, 0x9d, 0xf3, 0xd5, 0xab,
0x4a, 0x57, 0x4b, 0x03, 0xb2, 0x56, 0x98, 0xd6, 0x61, 0x62, 0xec, 0xe9, 0x39, 0x1a, 0x92, 0x45,
0x47, 0x83, 0xb0, 0x7d, 0x18, 0xfb, 0x11, 0x8d, 0xe3, 0x01, 0xed, 0xa9, 0x01, 0xd5, 0x10, 0x2d,
0x5b, 0x41, 0x6e, 0xc1, 0x02, 0x77, 0x69, 0x22, 0x37, 0x0e, 0xa2, 0x53, 0x2f, 0xea, 0x44, 0xcc,
0x39, 0xa8, 0x23, 0x7e, 0x5e, 0x15, 0xb9, 0x03, 0x2b, 0x29, 0x70, 0x48, 0xbb, 0xd4, 0x3b, 0xa3,
0xbd, 0xd6, 0x2c, 0x7e, 0x35, 0xa9, 0x9a, 0xac, 0x42, 0x8d, 0x79, 0x72, 0xe3, 0x51, 0xcf, 0x65,
0x06, 0x4c, 0x03, 0xf7, 0x41, 0x07, 0x91, 0xb7, 0x61, 0x76, 0x44, 0xb9, 0xf5, 0x73, 0x1a, 0x0f,
0xba, 0x51, 0x6b, 0xce, 0x90, 0x6e, 0x8c, 0x72, 0x1d, 0x13, 0x83, 0x11, 0x65, 0x37, 0x42, 0x93,
0xde, 0xbd, 0x68, 0x35, 0x85, 0x59, 0x2d, 0x01, 0xc8, 0x23, 0xa1, 0x77, 0xe6, 0xc6, 0xb4, 0x35,
0xcf, 0x05, 0xba, 0x28, 0xb2, 0xef, 0x3c, 0xdf, 0x8b, 0x3d, 0x37, 0x0e, 0xc2, 0x16, 0xc1, 0xba,
0x04, 0xc0, 0x16, 0x11, 0xe9, 0x23, 0x8a, 0xdd, 0x78, 0x1c, 0x75, 0x4e, 0x06, 0x6e, 0x3f, 0x6a,
0x2d, 0x70, 0xbb, 0x34, 0x53, 0x61, 0xff, 0x8e, 0xc5, 0x85, 0xb4, 0x20, 0x68, 0x25, 0x6c, 0x5f,
0x83, 0x1a, 0x27, 0xe5, 0x4e, 0xe0, 0x0f, 0x2e, 0x04, 0x75, 0x03, 0x07, 0x3d, 0xf4, 0x07, 0x17,
0xe4, 0x13, 0x30, 0xeb, 0xf9, 0x3a, 0x0a, 0x97, 0x07, 0x75, 0x09, 0x44, 0xa4, 0xd7, 0xa0, 0x36,
0x1a, 0x1f, 0x0f, 0xbc, 0x2e, 0x47, 0x29, 0xf2, 0x56, 0x38, 0x08, 0x11, 0x98, 0xa5, 0xcd, 0x67,
0xc5, 0x31, 0x4a, 0x88, 0x51, 0x13, 0x30, 0x86, 0x62, 0x6f, 0xc1, 0xa2, 0x39, 0x40, 0x21, 0xf8,
0xd6, 0xa1, 0x22, 0xf8, 0x24, 0x6a, 0xd5, 0x70, 0xad, 0x1b, 0x5a, 0xc4, 0xc5, 0xa7, 0x03, 0x47,
0xd5, 0xdb, 0x7f, 0x54, 0x82, 0x05, 0x01, 0xdd, 0x1e, 0x04, 0x11, 0x3d, 0x1a, 0x0f, 0x87, 0x6e,
0x98, 0xc3, 0x80, 0xd6, 0x25, 0x0c, 0x58, 0x30, 0x19, 0x90, 0xb1, 0xc5, 0xa9, 0xeb, 0xf9, 0xdc,
0x4d, 0xe0, 0xdc, 0xab, 0x41, 0xc8, 0x1a, 0xcc, 0x75, 0x07, 0x41, 0xc4, 0x4d, 0x62, 0xdd, 0xe1,
0x4f, 0x83, 0xb3, 0x02, 0xa3, 0x9c, 0x27, 0x30, 0x74, 0x86, 0x9f, 0x4e, 0x31, 0xbc, 0x0d, 0x75,
0xd6, 0x28, 0x95, 0xf2, 0x6b, 0x86, 0x9b, 0xc9, 0x3a, 0x8c, 0x8d, 0x27, 0xcd, 0x5e, 0x9c, 0x97,
0xe7, 0xf2, 0x98, 0xcb, 0x1b, 0x52, 0x94, 0x8f, 0x1a, 0x76, 0x55, 0x30, 0x57, 0xb6, 0x8a, 0xdc,
0x63, 0x5e, 0x22, 0xeb, 0x0b, 0x95, 0x34, 0xa0, 0x92, 0x7e, 0xc3, 0xdc, 0x11, 0x7d, 0xed, 0x6f,
0xb2, 0xc2, 0x38, 0xa4, 0xa8, 0xb8, 0xb5, 0x2f, 0xed, 0x6f, 0x59, 0x50, 0xd3, 0xea, 0xc8, 0x12,
0xcc, 0x6f, 0x3f, 0x7c, 0x78, 0xb8, 0xeb, 0x6c, 0x3e, 0x7a, 0xf0, 0xfe, 0x6e, 0x67, 0x7b, 0xff,
0xe1, 0xd1, 0x6e, 0x73, 0x8a, 0x81, 0xf7, 0x1f, 0x6e, 0x6f, 0xee, 0x77, 0xee, 0x3d, 0x74, 0xb6,
0x25, 0xd8, 0x22, 0xcb, 0x40, 0x9c, 0xdd, 0xf7, 0x1e, 0x3e, 0xda, 0x35, 0xe0, 0x05, 0xd2, 0x84,
0xfa, 0x96, 0xb3, 0xbb, 0xb9, 0xbd, 0x27, 0x20, 0x45, 0xb2, 0x08, 0xcd, 0x7b, 0x8f, 0x0f, 0x76,
0x1e, 0x1c, 0xdc, 0xef, 0x6c, 0x6f, 0x1e, 0x6c, 0xef, 0xee, 0xef, 0xee, 0x34, 0x4b, 0x64, 0x16,
0xaa, 0x9b, 0x5b, 0x9b, 0x07, 0x3b, 0x0f, 0x0f, 0x76, 0x77, 0x9a, 0x65, 0xfb, 0x6f, 0x2c, 0x58,
0xc2, 0x51, 0xf7, 0xd2, 0x0c, 0xb2, 0x0a, 0xb5, 0x6e, 0x10, 0x8c, 0x98, 0x71, 0x9c, 0x88, 0x7f,
0x1d, 0xc4, 0x88, 0x9f, 0x0b, 0xdb, 0x93, 0x20, 0xec, 0x52, 0xc1, 0x1f, 0x80, 0xa0, 0x7b, 0x0c,
0xc2, 0x88, 0x5f, 0x6c, 0x2f, 0xc7, 0xe0, 0xec, 0x51, 0xe3, 0x30, 0x8e, 0xb2, 0x0c, 0xd3, 0xc7,
0x21, 0x75, 0xbb, 0xa7, 0x82, 0x33, 0x44, 0x89, 0x7c, 0x32, 0xf1, 0xde, 0xba, 0x6c, 0xf5, 0x07,
0xb4, 0x87, 0x14, 0x53, 0x71, 0xe6, 0x04, 0x7c, 0x5b, 0x80, 0x99, 0xb4, 0x70, 0x8f, 0x5d, 0xbf,
0x17, 0xf8, 0xb4, 0x27, 0x4c, 0xc3, 0x04, 0x60, 0x1f, 0xc2, 0x72, 0x7a, 0x7e, 0x82, 0xbf, 0xde,
0xd1, 0xf8, 0x8b, 0x5b, 0x6a, 0xed, 0xc9, 0xbb, 0xa9, 0xf1, 0xda, 0x3f, 0x5a, 0x50, 0x62, 0x8a,
0x7b, 0xb2, 0x92, 0xd7, 0x6d, 0xb1, 0x62, 0x26, 0x3a, 0x88, 0x0e, 0x21, 0x17, 0xe5, 0x5c, 0xdd,
0x69, 0x90, 0xa4, 0x3e, 0xa4, 0xdd, 0x33, 0x9c, 0xb1, 0xaa, 0x67, 0x10, 0xc6, 0x20, 0xcc, 0x50,
0xc6, 0xaf, 0x05, 0x83, 0xc8, 0xb2, 0xac, 0xc3, 0x2f, 0x67, 0x92, 0x3a, 0xfc, 0xae, 0x05, 0x33,
0x9e, 0x7f, 0x1c, 0x8c, 0xfd, 0x1e, 0x32, 0x44, 0xc5, 0x91, 0x45, 0x8c, 0x47, 0x22, 0xa3, 0x7a,
0x43, 0x49, 0xfe, 0x09, 0xc0, 0x26, 0xcc, 0xef, 0x8c, 0xd0, 0x50, 0x51, 0xa1, 0xb1, 0x77, 0x60,
0x5e, 0x83, 0x25, 0x46, 0xef, 0x88, 0x01, 0x52, 0x46, 0x2f, 0x5a, 0x38, 0xbc, 0xc6, 0x6e, 0x42,
0xe3, 0x3e, 0x8d, 0x1f, 0xf8, 0x27, 0x81, 0x6c, 0xe9, 0xf7, 0x4a, 0x30, 0xa7, 0x40, 0xa2, 0xa1,
0x35, 0x98, 0xf3, 0x7a, 0xd4, 0x8f, 0xbd, 0xf8, 0xa2, 0x63, 0xb8, 0xb7, 0x69, 0x30, 0xb3, 0x0c,
0xdd, 0x81, 0xe7, 0xca, 0x08, 0x2c, 0x2f, 0x30, 0x77, 0x8f, 0xa9, 0x2d, 0xa9, 0x89, 0xd4, 0x16,
0x73, 0xaf, 0x3a, 0xb7, 0x8e, 0x09, 0x03, 0x06, 0x17, 0xd2, 0x5e, 0x7d, 0xc2, 0x2d, 0xa4, 0xbc,
0x2a, 0xb6, 0x6a, 0xbc, 0x25, 0x36, 0xe5, 0x32, 0x57, 0x6d, 0x0a, 0x90, 0x09, 0x71, 0x4e, 0x73,
0x51, 0x95, 0x0e, 0x71, 0x6a, 0x61, 0xd2, 0x4a, 0x26, 0x4c, 0xca, 0x44, 0xd9, 0x85, 0xdf, 0xa5,
0xbd, 0x4e, 0x1c, 0x74, 0x50, 0xe4, 0xe2, 0xee, 0x54, 0x9c, 0x34, 0x98, 0x5c, 0x85, 0x99, 0x98,
0x46, 0xb1, 0x4f, 0x79, 0xec, 0xaa, 0x82, 0xd1, 0x16, 0x09, 0x62, 0xe6, 0xec, 0x38, 0xf4, 0xa2,
0x56, 0x1d, 0x03, 0xa0, 0xf8, 0x9f, 0x7c, 0x1a, 0x96, 0x8e, 0x69, 0x14, 0x77, 0x4e, 0xa9, 0xdb,
0xa3, 0x21, 0xee, 0x34, 0x8f, 0xb4, 0x72, 0x2b, 0x21, 0xbf, 0x92, 0xd1, 0xd0, 0x19, 0x0d, 0x23,
0x2f, 0xf0, 0xd1, 0x3e, 0xa8, 0x3a, 0xb2, 0xc8, 0xda, 0x63, 0x93, 0x57, 0xfa, 0x52, 0xad, 0xe0,
0x1c, 0x4e, 0x3c, 0xbf, 0x92, 0x5c, 0x87, 0x69, 0x9c, 0x40, 0xd4, 0x6a, 0x1a, 0x21, 0xa3, 0x6d,
0x06, 0x74, 0x44, 0xdd, 0x17, 0x4a, 0x95, 0x5a, 0xb3, 0x6e, 0x7f, 0x16, 0xca, 0x08, 0x66, 0x9b,
0xce, 0x17, 0x83, 0x13, 0x05, 0x2f, 0xb0, 0xa1, 0xf9, 0x34, 0x3e, 0x0f, 0xc2, 0xa7, 0x32, 0x1c,
0x2f, 0x8a, 0xf6, 0x37, 0xd1, 0x21, 0x50, 0xe1, 0xe9, 0xc7, 0x68, 0xcd, 0x30, 0xb7, 0x8e, 0x2f,
0x75, 0x74, 0xea, 0x0a, 0x1f, 0xa5, 0x82, 0x80, 0xa3, 0x53, 0x97, 0x89, 0x2d, 0x63, 0xf7, 0xb8,
0xdb, 0x57, 0x43, 0xd8, 0x1e, 0xdf, 0xbc, 0xeb, 0xd0, 0x90, 0x81, 0xef, 0xa8, 0x33, 0xa0, 0x27,
0xb1, 0x0c, 0xda, 0xf8, 0xe3, 0x21, 0xfa, 0x86, 0xfb, 0xf4, 0x24, 0xb6, 0x0f, 0x60, 0x5e, 0x88,
0x92, 0x87, 0x23, 0x2a, 0xbb, 0xfe, 0x5c, 0x9e, 0x4a, 0xae, 0xdd, 0x5e, 0x30, 0x65, 0x0f, 0x0f,
0xf5, 0x9b, 0x98, 0xb6, 0x03, 0x44, 0x17, 0x4d, 0xa2, 0x41, 0xa1, 0x17, 0x65, 0x58, 0x4a, 0x4c,
0xc7, 0x80, 0xb1, 0xf5, 0x89, 0xc6, 0xdd, 0xae, 0x3c, 0xae, 0x60, 0xce, 0x33, 0x2f, 0xda, 0xbf,
0x6f, 0xc1, 0x02, 0xb6, 0x26, 0x8d, 0x0a, 0x21, 0xfe, 0xef, 0x7c, 0x8c, 0x61, 0xd6, 0xbb, 0x7a,
0xa8, 0x6e, 0x11, 0xca, 0xba, 0x42, 0xe0, 0x85, 0x8f, 0x1f, 0x02, 0x28, 0xa5, 0x43, 0x00, 0xf6,
0x6f, 0x58, 0x30, 0xcf, 0x65, 0x32, 0x1a, 0x78, 0x62, 0xfa, 0xff, 0x03, 0x66, 0xb9, 0x72, 0x15,
0x5c, 0x2d, 0x06, 0xba, 0xa8, 0x04, 0x10, 0x42, 0x39, 0xf2, 0xde, 0x94, 0x63, 0x22, 0x93, 0xbb,
0x68, 0xe0, 0xf8, 0x1d, 0x84, 0xe6, 0x1c, 0x6c, 0x99, 0x6b, 0xbd, 0x37, 0xe5, 0x68, 0xe8, 0x5b,
0x15, 0x98, 0xe6, 0xd6, 0xb1, 0x7d, 0x1f, 0x66, 0x8d, 0x8e, 0x8c, 0xf0, 0x43, 0x9d, 0x87, 0x1f,
0x32, 0x71, 0xbe, 0x42, 0x4e, 0x9c, 0xef, 0x0f, 0x8b, 0x40, 0x18, 0xb1, 0xa4, 0x76, 0x83, 0x99,
0xe7, 0x41, 0xcf, 0x70, 0xb6, 0xea, 0x8e, 0x0e, 0x22, 0x37, 0x81, 0x68, 0x45, 0x19, 0xae, 0xe5,
0xda, 0x27, 0xa7, 0x86, 0x89, 0x49, 0xa1, 0xbc, 0x85, 0x9a, 0x15, 0x6e, 0x25, 0x5f, 0xf6, 0xdc,
0x3a, 0xa6, 0x60, 0x46, 0xe3, 0xe8, 0x14, 0x83, 0x6c, 0xc2, 0x1d, 0x93, 0xe5, 0xf4, 0xfe, 0x4e,
0x5f, 0xba, 0xbf, 0x33, 0x99, 0x10, 0x8f, 0xe6, 0x10, 0x54, 0x4c, 0x87, 0xe0, 0x3a, 0xcc, 0x0e,
0x99, 0xc9, 0x19, 0x0f, 0xba, 0x9d, 0x21, 0xeb, 0x5d, 0x78, 0x5f, 0x06, 0x90, 0xac, 0x43, 0x53,
0x98, 0x1b, 0x89, 0xd7, 0xc1, 0x83, 0xf9, 0x19, 0x38, 0x93, 0xdf, 0x49, 0xd0, 0xa7, 0x86, 0x83,
0x4d, 0x00, 0xcc, 0xc5, 0x88, 0x18, 0x85, 0x74, 0xc6, 0xbe, 0x38, 0xdb, 0xa2, 0x3d, 0xf4, 0xbb,
0x2a, 0x4e, 0xb6, 0xc2, 0xfe, 0x55, 0x0b, 0x9a, 0x6c, 0xcf, 0x0c, 0xb2, 0x7c, 0x17, 0x90, 0x2b,
0x5e, 0x92, 0x2a, 0x0d, 0x5c, 0x72, 0x07, 0xaa, 0x58, 0x0e, 0x46, 0xd4, 0x17, 0x34, 0xd9, 0x32,
0x69, 0x32, 0x91, 0x27, 0x7b, 0x53, 0x4e, 0x82, 0xac, 0x51, 0xe4, 0x5f, 0x5a, 0x50, 0x13, 0xbd,
0xfc, 0xc4, 0x41, 0x85, 0xb6, 0x76, 0x18, 0xc9, 0x29, 0x29, 0x39, 0x7b, 0x5c, 0x83, 0xb9, 0xa1,
0x1b, 0x8f, 0x43, 0xa6, 0x8f, 0x8d, 0x80, 0x42, 0x1a, 0xcc, 0x94, 0x2b, 0x8a, 0xce, 0xa8, 0x13,
0x7b, 0x83, 0x8e, 0xac, 0x15, 0xc7, 0x7e, 0x79, 0x55, 0x4c, 0x82, 0x44, 0xb1, 0xdb, 0xa7, 0x42,
0x6f, 0xf2, 0x82, 0xdd, 0x82, 0x65, 0x31, 0xa1, 0x94, 0xa9, 0x6a, 0xff, 0xb0, 0x0e, 0x2b, 0x99,
0x2a, 0x95, 0xa4, 0x20, 0x3c, 0xe5, 0x81, 0x37, 0x3c, 0x0e, 0x94, 0x9d, 0x6f, 0xe9, 0x4e, 0xb4,
0x51, 0x45, 0xfa, 0xb0, 0x24, 0x0d, 0x04, 0xb6, 0xa6, 0x89, 0x32, 0x2b, 0xa0, 0x96, 0x7a, 0xdb,
0xdc, 0xc2, 0x74, 0x87, 0x12, 0xae, 0x33, 0x71, 0x7e, 0x7b, 0xe4, 0x14, 0x5a, 0xca, 0x12, 0x11,
0xc2, 0x5a, 0xb3, 0x56, 0x58, 0x5f, 0x6f, 0x5d, 0xd2, 0x97, 0x61, 0xd9, 0x3a, 0x13, 0x5b, 0x23,
0x17, 0x70, 0x4d, 0xd6, 0xa1, 0x34, 0xce, 0xf6, 0x57, 0x7a, 0xa9, 0xb9, 0xa1, 0xcd, 0x6e, 0x76,
0x7a, 0x49, 0xc3, 0xe4, 0x43, 0x58, 0x3e, 0x77, 0xbd, 0x58, 0x0e, 0x4b, 0xb3, 0x0d, 0xca, 0xd8,
0xe5, 0xed, 0x4b, 0xba, 0x7c, 0xc2, 0x3f, 0x36, 0x54, 0xd4, 0x84, 0x16, 0xdb, 0x3f, 0xb2, 0xa0,
0x61, 0xb6, 0xc3, 0xc8, 0x54, 0xf0, 0xbe, 0x94, 0x81, 0xd2, 0x9a, 0x4c, 0x81, 0xb3, 0xae, 0x72,
0x21, 0xcf, 0x55, 0xd6, 0x1d, 0xd4, 0xe2, 0x65, 0x11, 0xa9, 0xd2, 0xcb, 0x45, 0xa4, 0xca, 0x79,
0x11, 0xa9, 0xf6, 0xbf, 0x59, 0x40, 0xb2, 0xb4, 0x44, 0xee, 0x73, 0x5f, 0xdd, 0xa7, 0x03, 0x21,
0x52, 0xfe, 0xfb, 0xcb, 0xd1, 0xa3, 0x5c, 0x3b, 0xf9, 0x35, 0x63, 0x0c, 0xfd, 0xdc, 0x5e, 0x37,
0x76, 0x66, 0x9d, 0xbc, 0xaa, 0x54, 0x8c, 0xac, 0x74, 0x79, 0x8c, 0xac, 0x7c, 0x79, 0x8c, 0x6c,
0x3a, 0x1d, 0x23, 0x6b, 0xff, 0x9c, 0x05, 0x0b, 0x39, 0x9b, 0xfe, 0xb3, 0x9b, 0x38, 0xdb, 0x26,
0x43, 0x16, 0x14, 0xc4, 0x36, 0xe9, 0xc0, 0xf6, 0xff, 0x85, 0x59, 0x83, 0xd0, 0x7f, 0x76, 0xfd,
0xa7, 0xed, 0x35, 0x4e, 0x67, 0x06, 0xac, 0xfd, 0x4f, 0x05, 0x20, 0x59, 0x66, 0xfb, 0x2f, 0x1d,
0x43, 0x76, 0x9d, 0x8a, 0x39, 0xeb, 0xf4, 0x9f, 0xaa, 0x07, 0xde, 0x82, 0x79, 0x91, 0x8c, 0xa4,
0x45, 0x68, 0x38, 0xc5, 0x64, 0x2b, 0x98, 0xc5, 0x6a, 0x06, 0x28, 0x2b, 0x46, 0x72, 0x86, 0xa6,
0x0c, 0x53, 0x71, 0x4a, 0xbb, 0x0d, 0x2d, 0xb1, 0x42, 0xbb, 0x67, 0xd4, 0x8f, 0x8f, 0xc6, 0xc7,
0x3c, 0x1b, 0xc7, 0x0b, 0x7c, 0xfb, 0x07, 0x45, 0x65, 0x74, 0x63, 0xa5, 0x50, 0xef, 0x9f, 0x86,
0xba, 0x2e, 0xcc, 0xc5, 0x76, 0xa4, 0x02, 0x74, 0x4c, 0xb1, 0xeb, 0x58, 0x64, 0x07, 0x1a, 0x28,
0xb2, 0x7a, 0xea, 0xbb, 0x02, 0x7e, 0xf7, 0x82, 0xc0, 0xc3, 0xde, 0x94, 0x93, 0xfa, 0x86, 0x7c,
0x1e, 0x1a, 0xa6, 0x2b, 0x25, 0x6c, 0x84, 0x3c, 0xdb, 0x9c, 0x7d, 0x6e, 0x22, 0x93, 0x4d, 0x68,
0xa6, 0x7d, 0x31, 0x71, 0x14, 0x3f, 0xa1, 0x81, 0x0c, 0x3a, 0xb9, 0x23, 0x4e, 0xaa, 0xca, 0x18,
0x04, 0xbb, 0x6e, 0x7e, 0xa6, 0x2d, 0xd3, 0x4d, 0xfe, 0xa3, 0x9d, 0x5d, 0x7d, 0x0d, 0x20, 0x81,
0x91, 0x26, 0xd4, 0x1f, 0x1e, 0xee, 0x1e, 0x74, 0xb6, 0xf7, 0x36, 0x0f, 0x0e, 0x76, 0xf7, 0x9b,
0x53, 0x84, 0x40, 0x03, 0xe3, 0x57, 0x3b, 0x0a, 0x66, 0x31, 0xd8, 0xe6, 0x36, 0x8f, 0x8d, 0x09,
0x58, 0x81, 0x2c, 0x42, 0xf3, 0xc1, 0x41, 0x0a, 0x5a, 0xdc, 0xaa, 0x2a, 0xfe, 0xb0, 0x97, 0x61,
0x91, 0x27, 0x9b, 0x6d, 0x71, 0xf2, 0x90, 0xb6, 0xc2, 0x6f, 0x5b, 0xb0, 0x94, 0xaa, 0x48, 0xb2,
0x3a, 0xb8, 0x39, 0x60, 0xda, 0x08, 0x26, 0x10, 0xa3, 0xcf, 0xd2, 0xf2, 0x4b, 0x49, 0x90, 0x6c,
0x05, 0xa3, 0x79, 0xcd, 0x52, 0x4c, 0x71, 0x52, 0x5e, 0x95, 0xbd, 0xc2, 0x53, 0xe2, 0x30, 0x79,
0xce, 0x18, 0xf8, 0x09, 0x4f, 0x62, 0xd3, 0x2b, 0x92, 0x93, 0x3f, 0x73, 0xc8, 0xb2, 0xc8, 0x8c,
0x7c, 0xc3, 0xf4, 0x30, 0xc7, 0x9b, 0x5b, 0x67, 0xff, 0x59, 0x01, 0xc8, 0x97, 0xc6, 0x34, 0xbc,
0xc0, 0x84, 0x0c, 0x15, 0x0e, 0x5c, 0x49, 0x07, 0xbb, 0xa6, 0x47, 0xe3, 0xe3, 0x2f, 0xd2, 0x0b,
0x99, 0x4c, 0x54, 0xd0, 0x93, 0x89, 0x80, 0x39, 0xc7, 0x2a, 0x1d, 0xc4, 0x5a, 0x2b, 0x63, 0x48,
0xa2, 0xea, 0x8f, 0x87, 0xbc, 0xd1, 0xdc, 0x9c, 0x9f, 0xd2, 0xe5, 0x39, 0x3f, 0xe5, 0xcb, 0x72,
0x7e, 0x3e, 0x01, 0xb3, 0x5e, 0xdf, 0x0f, 0x98, 0x58, 0x60, 0x8a, 0x3d, 0x6a, 0x4d, 0xaf, 0x16,
0x99, 0x33, 0x2c, 0x80, 0x07, 0x0c, 0x46, 0x3e, 0x9b, 0x20, 0xd1, 0x5e, 0x1f, 0xf3, 0xc7, 0x74,
0x41, 0xb1, 0xdb, 0xeb, 0xd3, 0xfd, 0xa0, 0xeb, 0xc6, 0x41, 0xa8, 0x3e, 0x64, 0xb0, 0x88, 0x79,
0xfd, 0x51, 0x30, 0x66, 0x66, 0x8e, 0x5c, 0x0a, 0x1e, 0xb6, 0xa9, 0x73, 0xe8, 0x21, 0x2e, 0x88,
0xfd, 0x15, 0xa8, 0x69, 0x4d, 0x60, 0x72, 0x91, 0x30, 0x21, 0x84, 0x3f, 0x58, 0xe2, 0x16, 0xbb,
0x4f, 0x07, 0x0f, 0x7a, 0xe4, 0x4d, 0x98, 0xef, 0x79, 0x21, 0xc5, 0x3c, 0xb1, 0x4e, 0x48, 0xcf,
0x68, 0x18, 0x49, 0xcf, 0xb9, 0xa9, 0x2a, 0x1c, 0x0e, 0xb7, 0xef, 0xc2, 0x82, 0xb1, 0x35, 0x8a,
0x72, 0x65, 0xee, 0x8d, 0x95, 0xcd, 0xbd, 0x91, 0x79, 0x37, 0xf6, 0x2f, 0x14, 0xa0, 0xb8, 0x17,
0x8c, 0xf4, 0x68, 0xbf, 0x65, 0x46, 0xfb, 0x85, 0x09, 0xd4, 0x51, 0x16, 0x8e, 0xd0, 0x8c, 0x06,
0x90, 0xac, 0x43, 0xc3, 0x1d, 0xc6, 0x9d, 0x38, 0x60, 0x26, 0xdf, 0xb9, 0x1b, 0xf6, 0x38, 0x39,
0xe3, 0x16, 0xa7, 0x6a, 0xc8, 0x22, 0x14, 0x95, 0xad, 0x80, 0x08, 0xac, 0xc8, 0xfc, 0x0d, 0x3c,
0x75, 0xbc, 0x10, 0x91, 0x33, 0x51, 0x62, 0xdc, 0x62, 0x7e, 0xcf, 0x9d, 0x3d, 0x2e, 0xf1, 0xf3,
0xaa, 0x98, 0x39, 0xc6, 0xa8, 0x03, 0xd1, 0x44, 0xc8, 0x53, 0x96, 0xf5, 0xf0, 0x6c, 0xc5, 0x3c,
0x83, 0xfd, 0x07, 0x0b, 0xca, 0xb8, 0x36, 0x4c, 0x7b, 0x71, 0xf6, 0x56, 0x01, 0x7f, 0x5c, 0x93,
0x59, 0x27, 0x0d, 0x26, 0xb6, 0x91, 0x71, 0x58, 0x50, 0x13, 0xd2, 0xb3, 0x0e, 0x57, 0xa1, 0xca,
0x4b, 0x2a, 0xbb, 0x8e, 0xd3, 0xbd, 0x02, 0x92, 0x6b, 0x50, 0x3a, 0x0d, 0x46, 0xd2, 0xdc, 0x06,
0x79, 0x76, 0x16, 0x8c, 0x1c, 0x84, 0x27, 0xe3, 0x61, 0xed, 0xf1, 0x69, 0x71, 0x23, 0x2a, 0x0d,
0x66, 0x66, 0xa4, 0x6a, 0x56, 0x5f, 0xa6, 0x14, 0xd4, 0x5e, 0x87, 0x39, 0x46, 0xf5, 0x5a, 0xd4,
0x75, 0x22, 0x2b, 0xdb, 0xff, 0xcf, 0x82, 0x8a, 0x44, 0x26, 0x6b, 0x50, 0x62, 0x2c, 0x94, 0x72,
0x5c, 0xd5, 0x99, 0x39, 0xc3, 0x73, 0x10, 0x83, 0x19, 0x13, 0x18, 0x0c, 0x4b, 0xfc, 0x24, 0x19,
0x0a, 0x4b, 0xdc, 0x00, 0x35, 0xdc, 0x94, 0xf5, 0x9c, 0x82, 0xda, 0xdf, 0xb7, 0x60, 0xd6, 0xe8,
0x83, 0xac, 0x42, 0x6d, 0xe0, 0x46, 0xb1, 0x38, 0x87, 0x14, 0xdb, 0xa3, 0x83, 0xf4, 0x8d, 0x2e,
0x98, 0x71, 0x78, 0x15, 0x21, 0x2e, 0xea, 0x11, 0xe2, 0x5b, 0x50, 0x4d, 0xf2, 0x42, 0x4b, 0x06,
0xef, 0xb3, 0x1e, 0x65, 0x36, 0x40, 0x82, 0x84, 0x41, 0xc7, 0x60, 0x10, 0x84, 0xe2, 0xd0, 0x8a,
0x17, 0xec, 0xbb, 0x50, 0xd3, 0xf0, 0xf5, 0x18, 0xa4, 0x65, 0xc4, 0x20, 0x55, 0xaa, 0x4c, 0x21,
0x49, 0x95, 0xb1, 0xff, 0xd9, 0x82, 0x59, 0x46, 0x83, 0x9e, 0xdf, 0x3f, 0x0c, 0x06, 0x5e, 0xf7,
0x02, 0xf7, 0x5e, 0x92, 0x9b, 0x10, 0x89, 0x92, 0x16, 0x4d, 0x30, 0xa3, 0x7a, 0x19, 0xf9, 0x10,
0x2c, 0xaa, 0xca, 0x8c, 0x87, 0x19, 0x07, 0x1c, 0xbb, 0x91, 0x60, 0x0b, 0x61, 0xb5, 0x19, 0x40,
0xc6, 0x69, 0x0c, 0x80, 0x89, 0x4f, 0x43, 0x6f, 0x30, 0xf0, 0x38, 0x2e, 0xb7, 0xe9, 0xf3, 0xaa,
0x58, 0x9f, 0x3d, 0x2f, 0x72, 0x8f, 0x93, 0x83, 0x18, 0x55, 0xc6, 0xf0, 0x8c, 0xfb, 0x4c, 0x0b,
0xcf, 0x4c, 0xa3, 0x5c, 0x31, 0x81, 0xf6, 0x9f, 0x14, 0xa0, 0x26, 0x4d, 0x84, 0x5e, 0x9f, 0x8a,
0xb3, 0x45, 0x53, 0x30, 0x6a, 0x10, 0x59, 0x6f, 0x78, 0x63, 0x1a, 0x24, 0x4d, 0x18, 0xc5, 0x2c,
0x61, 0x5c, 0x85, 0x2a, 0x23, 0xd0, 0xb7, 0xd1, 0xed, 0x13, 0xa9, 0xd6, 0x0a, 0x20, 0x6b, 0x6f,
0x63, 0x6d, 0x39, 0xa9, 0x45, 0xc0, 0x0b, 0x4f, 0x22, 0xef, 0x40, 0x5d, 0x34, 0x83, 0x3b, 0x87,
0x92, 0x27, 0x61, 0x11, 0x63, 0x57, 0x1d, 0x03, 0x53, 0x7e, 0x79, 0x5b, 0x7e, 0x59, 0xb9, 0xec,
0x4b, 0x89, 0x69, 0xdf, 0x57, 0x07, 0xbc, 0xf7, 0x43, 0x77, 0x74, 0x2a, 0x79, 0xf9, 0x16, 0x2c,
0x78, 0x7e, 0x77, 0x30, 0xee, 0xd1, 0xce, 0xd8, 0x77, 0x7d, 0x3f, 0x18, 0xfb, 0x5d, 0x2a, 0x73,
0x65, 0xf2, 0xaa, 0xec, 0x9e, 0xca, 0xac, 0xc4, 0x86, 0xc8, 0x3a, 0x94, 0xb9, 0xaa, 0xe4, 0xba,
0x23, 0x9f, 0xd1, 0x39, 0x0a, 0x59, 0x83, 0x32, 0xd7, 0x98, 0x05, 0x83, 0x6b, 0xb4, 0x5d, 0x75,
0x38, 0x02, 0x13, 0x3b, 0x98, 0x5c, 0x6b, 0x8a, 0x1d, 0x53, 0xef, 0x4c, 0x77, 0x31, 0xfd, 0xd6,
0x5e, 0x04, 0x72, 0xc0, 0x39, 0x45, 0x3f, 0x1b, 0xfa, 0x61, 0x11, 0x6a, 0x1a, 0x98, 0x49, 0x90,
0x3e, 0x1b, 0x70, 0xa7, 0xe7, 0xb9, 0x43, 0x1a, 0xd3, 0x50, 0x70, 0x47, 0x0a, 0xca, 0xf0, 0xdc,
0xb3, 0x7e, 0x27, 0x18, 0xc7, 0x9d, 0x1e, 0xed, 0x87, 0x94, 0x6b, 0x53, 0xa6, 0x9a, 0x0c, 0x28,
0xc3, 0x63, 0xf4, 0xa9, 0xe1, 0x71, 0x0a, 0x4a, 0x41, 0xe5, 0x49, 0x0f, 0x5f, 0xa3, 0x52, 0x72,
0xd2, 0xc3, 0x57, 0x24, 0x2d, 0xfb, 0xca, 0x39, 0xb2, 0xef, 0x1d, 0x58, 0xe6, 0x52, 0x4e, 0xc8,
0x83, 0x4e, 0x8a, 0xb0, 0x26, 0xd4, 0x92, 0x75, 0x68, 0xb2, 0x31, 0x4b, 0x96, 0x88, 0xbc, 0x6f,
0xf2, 0xa8, 0xa9, 0xe5, 0x64, 0xe0, 0x0c, 0x17, 0xc3, 0x97, 0x3a, 0x2e, 0x3f, 0xf9, 0xce, 0xc0,
0x11, 0xd7, 0x7d, 0x66, 0xe2, 0x56, 0x05, 0x6e, 0x0a, 0x4e, 0xee, 0xc0, 0xca, 0x90, 0xf6, 0x3c,
0xd7, 0x6c, 0x02, 0x23, 0xc0, 0x3c, 0xbd, 0x65, 0x52, 0xb5, 0x3d, 0x0b, 0xb5, 0xa3, 0x38, 0x18,
0xc9, 0xed, 0x6c, 0x40, 0x9d, 0x17, 0x45, 0xb6, 0xd3, 0x2b, 0x70, 0x05, 0xe9, 0xef, 0x51, 0x30,
0x0a, 0x06, 0x41, 0xff, 0xc2, 0x70, 0xba, 0xfe, 0xc2, 0x82, 0x05, 0xa3, 0x36, 0xf1, 0xba, 0x30,
0x5e, 0x23, 0xd3, 0x54, 0x38, 0xc9, 0xce, 0x6b, 0xc2, 0x9b, 0x23, 0xf2, 0xd0, 0xf8, 0x63, 0x91,
0xb9, 0xb2, 0x99, 0xdc, 0x60, 0x91, 0x1f, 0x72, 0xfa, 0x6d, 0x65, 0xe9, 0x57, 0x7c, 0x2f, 0x2f,
0xb0, 0xc8, 0x26, 0x3e, 0x2f, 0x72, 0x0f, 0xb8, 0x13, 0x26, 0xc3, 0x73, 0xca, 0x6d, 0xd3, 0x9d,
0x74, 0x39, 0x82, 0xae, 0x02, 0x46, 0xf6, 0x2f, 0x59, 0x00, 0xc9, 0xe8, 0xf0, 0xc4, 0x5a, 0x29,
0x20, 0x7e, 0x5b, 0x4a, 0x53, 0x36, 0xaf, 0x43, 0x5d, 0x9d, 0x74, 0x26, 0x3a, 0xad, 0x26, 0x61,
0xcc, 0xe6, 0xbe, 0x01, 0x73, 0xfd, 0x41, 0x70, 0x8c, 0x06, 0x01, 0xa6, 0xcf, 0x45, 0x22, 0xe7,
0xab, 0xc1, 0xc1, 0xf7, 0x04, 0x34, 0x51, 0x80, 0x25, 0x4d, 0x01, 0xda, 0xbf, 0x5c, 0x50, 0x07,
0x53, 0xc9, 0x9c, 0x27, 0xf2, 0x27, 0xb9, 0x9d, 0x11, 0xc4, 0x13, 0xce, 0x81, 0xd0, 0xac, 0x3d,
0xbc, 0x34, 0x4e, 0x76, 0x17, 0x1a, 0x21, 0x97, 0x74, 0x52, 0x0c, 0x96, 0x5e, 0x20, 0x06, 0x67,
0x43, 0x43, 0x4b, 0x7e, 0x12, 0x9a, 0x6e, 0xef, 0x8c, 0x86, 0xb1, 0x87, 0x91, 0x0a, 0x34, 0x51,
0xb8, 0xf0, 0x9e, 0xd3, 0xe0, 0x68, 0x39, 0xdc, 0x80, 0x39, 0x91, 0x67, 0xa7, 0x30, 0xc5, 0x0d,
0x84, 0x04, 0xcc, 0x10, 0xed, 0xef, 0xc9, 0x33, 0x30, 0x73, 0x0f, 0x27, 0xaf, 0x88, 0x3e, 0xbb,
0x42, 0x6a, 0x76, 0x9f, 0x10, 0xe7, 0x51, 0x3d, 0x19, 0x0e, 0x29, 0x6a, 0x79, 0x2a, 0x3d, 0x71,
0x7e, 0x68, 0x2e, 0x69, 0xe9, 0x65, 0x96, 0xd4, 0xfe, 0xb1, 0x05, 0x33, 0x7b, 0xc1, 0x68, 0x4f,
0x64, 0xec, 0x20, 0x23, 0xa8, 0x04, 0x57, 0x59, 0x7c, 0x41, 0x2e, 0x4f, 0xae, 0x65, 0x30, 0x9b,
0xb6, 0x0c, 0xfe, 0x37, 0xbc, 0x82, 0xc1, 0xb8, 0x30, 0x18, 0x05, 0x21, 0x63, 0x46, 0x77, 0xc0,
0xcd, 0x80, 0xc0, 0x8f, 0x4f, 0xa5, 0x00, 0x7c, 0x11, 0x0a, 0x7a, 0xc8, 0xcc, 0xab, 0xe3, 0x46,
0xbd, 0xb0, 0x64, 0xb8, 0x5c, 0xcc, 0x56, 0xd8, 0x9f, 0x83, 0x2a, 0x9a, 0xe2, 0x38, 0xad, 0xb7,
0xa0, 0x7a, 0x1a, 0x8c, 0x3a, 0xa7, 0x9e, 0x1f, 0x4b, 0xe6, 0x6e, 0x24, 0x36, 0xf2, 0x1e, 0x2e,
0x88, 0x42, 0xb0, 0x7f, 0x7d, 0x1a, 0x66, 0x1e, 0xf8, 0x67, 0x81, 0xd7, 0xc5, 0xf3, 0xb6, 0x21,
0x1d, 0x06, 0x32, 0xdd, 0x97, 0xfd, 0x27, 0x57, 0x61, 0x06, 0xf3, 0xdb, 0x46, 0x9c, 0x68, 0xeb,
0xfc, 0x5c, 0x5c, 0x80, 0x98, 0x79, 0x11, 0x26, 0x17, 0x33, 0x38, 0xfb, 0x68, 0x10, 0xe6, 0xa4,
0x84, 0xfa, 0xc5, 0x0a, 0x51, 0x4a, 0xd2, 0xa9, 0xcb, 0x5a, 0x3a, 0x35, 0xeb, 0x4b, 0x64, 0x18,
0xf1, 0x14, 0x14, 0xde, 0x97, 0x00, 0xa1, 0x63, 0x15, 0x52, 0x1e, 0x4c, 0x45, 0x63, 0x65, 0x46,
0x38, 0x56, 0x3a, 0x90, 0x19, 0x34, 0xfc, 0x03, 0x8e, 0xc3, 0xc5, 0xb7, 0x0e, 0x62, 0x26, 0x62,
0xfa, 0x4e, 0x4d, 0x95, 0xd3, 0x7e, 0x0a, 0xcc, 0x64, 0x7c, 0x8f, 0x2a, 0x81, 0xca, 0xe7, 0x01,
0xfc, 0xf2, 0x49, 0x1a, 0xae, 0xb9, 0x63, 0x3c, 0x15, 0x51, 0xba, 0x63, 0x8c, 0x60, 0xdc, 0xc1,
0xe0, 0xd8, 0xed, 0x3e, 0xc5, 0x2b, 0x53, 0x78, 0x02, 0x56, 0x75, 0x4c, 0x20, 0xe6, 0x09, 0x25,
0xbb, 0x8a, 0x19, 0x04, 0x25, 0x47, 0x07, 0x91, 0xdb, 0x50, 0x43, 0x17, 0x54, 0xec, 0x6b, 0x03,
0xf7, 0xb5, 0xa9, 0xfb, 0xa8, 0xb8, 0xb3, 0x3a, 0x92, 0x7e, 0x16, 0x38, 0x97, 0x49, 0x0e, 0x74,
0x7b, 0x3d, 0x71, 0x84, 0xda, 0xe4, 0xee, 0xb4, 0x02, 0x30, 0x7d, 0x2c, 0x16, 0x8c, 0x23, 0xcc,
0x23, 0x82, 0x01, 0x23, 0xd7, 0xa0, 0xc2, 0xdc, 0xa3, 0x91, 0xeb, 0xf5, 0x30, 0xbb, 0x90, 0x7b,
0x69, 0x0a, 0xc6, 0xda, 0x90, 0xff, 0x51, 0xd1, 0x2d, 0xe0, 0xaa, 0x18, 0x30, 0xb6, 0x36, 0xaa,
0x8c, 0xcc, 0xb4, 0xc8, 0x77, 0xd4, 0x00, 0x92, 0xb7, 0xf1, 0x20, 0x2b, 0xa6, 0xad, 0x25, 0x0c,
0x94, 0xbd, 0x22, 0xe6, 0x2c, 0x88, 0x56, 0xfe, 0x1e, 0x31, 0x14, 0x87, 0x63, 0xda, 0x9b, 0x50,
0xd7, 0xc1, 0xa4, 0x02, 0xa5, 0x87, 0x87, 0xbb, 0x07, 0xcd, 0x29, 0x52, 0x83, 0x99, 0xa3, 0xdd,
0x47, 0x8f, 0xf6, 0x77, 0x77, 0x9a, 0x16, 0xa9, 0x43, 0x45, 0x25, 0x75, 0x15, 0x58, 0x69, 0x73,
0x7b, 0x7b, 0xf7, 0xf0, 0xd1, 0xee, 0x4e, 0xb3, 0x68, 0xc7, 0x40, 0x36, 0x7b, 0x3d, 0xd1, 0x8a,
0x0a, 0x12, 0x24, 0xf4, 0x6c, 0x19, 0xf4, 0x9c, 0x43, 0x53, 0x85, 0x7c, 0x9a, 0x7a, 0xe1, 0xca,
0xdb, 0xbb, 0x50, 0x3b, 0xd4, 0xee, 0x0f, 0x21, 0x7b, 0xc9, 0x9b, 0x43, 0x82, 0x2d, 0x35, 0x88,
0x36, 0x9c, 0x82, 0x3e, 0x1c, 0xfb, 0x77, 0x2d, 0x9e, 0xa4, 0xaf, 0x86, 0xcf, 0xfb, 0xb6, 0xa1,
0xae, 0xa2, 0x55, 0x49, 0xbe, 0xa6, 0x01, 0x63, 0x38, 0x38, 0x94, 0x4e, 0x70, 0x72, 0x12, 0x51,
0x99, 0x5d, 0x65, 0xc0, 0x18, 0x5f, 0x30, 0xdb, 0x8c, 0xd9, 0x39, 0x1e, 0xef, 0x21, 0x12, 0x59,
0x56, 0x19, 0x38, 0x93, 0xf2, 0x22, 0x20, 0x23, 0xf3, 0xca, 0x54, 0x59, 0xa5, 0x95, 0xa6, 0x57,
0x79, 0x1d, 0x2a, 0xaa, 0x5d, 0x53, 0x80, 0x49, 0x4c, 0x55, 0xcf, 0x04, 0x25, 0x7a, 0x2b, 0xc6,
0xa0, 0xb9, 0xd0, 0xce, 0x56, 0x90, 0x9b, 0x40, 0x4e, 0xbc, 0x30, 0x8d, 0x5e, 0x44, 0xf4, 0x9c,
0x1a, 0xfb, 0x09, 0x2c, 0x48, 0x42, 0xd2, 0x4c, 0x2b, 0x73, 0x13, 0xad, 0xcb, 0xd8, 0xa7, 0x90,
0x65, 0x1f, 0xfb, 0xdf, 0x2d, 0x98, 0x11, 0x3b, 0x9d, 0xb9, 0x83, 0xc6, 0xf7, 0xd9, 0x80, 0x91,
0x96, 0x71, 0xff, 0x04, 0x79, 0x4d, 0x08, 0xcd, 0x8c, 0x58, 0x2c, 0xe6, 0x89, 0x45, 0x02, 0xa5,
0x91, 0x1b, 0x9f, 0xa2, 0xa7, 0x5e, 0x75, 0xf0, 0x3f, 0x69, 0xf2, 0xb8, 0x12, 0x17, 0xc1, 0x18,
0x53, 0xca, 0xbb, 0x6d, 0xc7, 0xb5, 0x7d, 0xf6, 0xb6, 0xdd, 0x55, 0xa8, 0xe2, 0x00, 0x3a, 0x49,
0xd8, 0x28, 0x01, 0x30, 0xca, 0xe5, 0x05, 0xe4, 0x6b, 0x91, 0x0a, 0x9e, 0x40, 0xec, 0x25, 0xbe,
0xf3, 0x62, 0x09, 0xd4, 0x21, 0xb4, 0x48, 0xe3, 0x4d, 0xc0, 0x09, 0x45, 0x88, 0x01, 0xa4, 0x29,
0x42, 0xa0, 0x3a, 0xaa, 0xde, 0x6e, 0x43, 0x6b, 0x87, 0x0e, 0x68, 0x4c, 0x37, 0x07, 0x83, 0x74,
0xfb, 0xaf, 0xc0, 0x95, 0x9c, 0x3a, 0x61, 0x4d, 0x7f, 0x09, 0x96, 0x36, 0x79, 0xca, 0xe3, 0xcf,
0x2a, 0x8d, 0xc7, 0x6e, 0xc1, 0x72, 0xba, 0x49, 0xd1, 0xd9, 0x3d, 0x98, 0xdf, 0xa1, 0xc7, 0xe3,
0xfe, 0x3e, 0x3d, 0x4b, 0x3a, 0x22, 0x50, 0x8a, 0x4e, 0x83, 0x73, 0xc1, 0x98, 0xf8, 0x9f, 0xbc,
0x0a, 0x30, 0x60, 0x38, 0x9d, 0x68, 0x44, 0xbb, 0xf2, 0xca, 0x07, 0x42, 0x8e, 0x46, 0xb4, 0x6b,
0xbf, 0x03, 0x44, 0x6f, 0x47, 0xac, 0x17, 0xd3, 0x82, 0xe3, 0xe3, 0x4e, 0x74, 0x11, 0xc5, 0x74,
0x28, 0xef, 0xb2, 0xe8, 0x20, 0xfb, 0x06, 0xd4, 0x0f, 0xdd, 0x0b, 0x87, 0x7e, 0x43, 0x5c, 0x3d,
0x5c, 0x81, 0x99, 0x91, 0x7b, 0xc1, 0xc4, 0x94, 0x8a, 0x67, 0x61, 0xb5, 0xfd, 0xaf, 0x05, 0x98,
0xe6, 0x98, 0xac, 0xd5, 0x1e, 0x8d, 0x62, 0xcf, 0x47, 0xc2, 0x92, 0xad, 0x6a, 0xa0, 0x0c, 0x29,
0x17, 0x72, 0x48, 0x59, 0x78, 0x7b, 0x32, 0x7d, 0x5e, 0xd0, 0xab, 0x01, 0x63, 0xc4, 0x95, 0xe4,
0xd3, 0xf1, 0x80, 0x4a, 0x02, 0x48, 0x85, 0x3e, 0x13, 0x5d, 0xcb, 0xc7, 0x27, 0xb9, 0x54, 0x50,
0xae, 0x0e, 0xca, 0xd5, 0xe8, 0x33, 0x9c, 0xc0, 0x33, 0x1a, 0x3d, 0xa3, 0xb9, 0x2b, 0x2f, 0xa1,
0xb9, 0xb9, 0x0b, 0xf8, 0x22, 0xcd, 0x0d, 0x2f, 0xa1, 0xb9, 0x6d, 0x02, 0x4d, 0xbc, 0x97, 0xc7,
0x6c, 0x43, 0x49, 0xbb, 0xdf, 0xb1, 0xa0, 0x29, 0xa8, 0x48, 0xd5, 0x91, 0xd7, 0x0d, 0x1b, 0x38,
0x37, 0x31, 0xfd, 0x3a, 0xcc, 0xa2, 0x65, 0xaa, 0x62, 0xbc, 0x22, 0x20, 0x6d, 0x00, 0xd9, 0x3c,
0xe4, 0xf9, 0xf1, 0xd0, 0x1b, 0x88, 0x4d, 0xd1, 0x41, 0x32, 0x4c, 0x1c, 0xba, 0x22, 0xaf, 0xcc,
0x72, 0x54, 0xd9, 0xfe, 0x53, 0x0b, 0xe6, 0xb5, 0x01, 0x0b, 0x2a, 0xbc, 0x0b, 0x92, 0x1b, 0x78,
0xc0, 0x97, 0x73, 0xee, 0x8a, 0xc9, 0x36, 0xc9, 0x67, 0x06, 0x32, 0x6e, 0xa6, 0x7b, 0x81, 0x03,
0x8c, 0xc6, 0x43, 0x21, 0x44, 0x75, 0x10, 0x23, 0xa4, 0x73, 0x4a, 0x9f, 0x2a, 0x14, 0x2e, 0xc6,
0x0d, 0x18, 0x46, 0xd5, 0x98, 0x45, 0xad, 0x90, 0x4a, 0x22, 0xaa, 0xa6, 0x03, 0xed, 0xbf, 0xb6,
0x60, 0x81, 0xbb, 0x46, 0xc2, 0xf1, 0x54, 0x37, 0x90, 0xa6, 0xb9, 0x2f, 0xc8, 0x39, 0x72, 0x6f,
0xca, 0x11, 0x65, 0xf2, 0x99, 0x97, 0x74, 0xe7, 0x54, 0xb2, 0xdb, 0x84, 0xbd, 0x28, 0xe6, 0xed,
0xc5, 0x0b, 0x56, 0x3a, 0x2f, 0xc0, 0x59, 0xce, 0x0d, 0x70, 0x6e, 0xcd, 0x40, 0x39, 0xea, 0x06,
0x23, 0x6a, 0x2f, 0xc3, 0xa2, 0x39, 0x39, 0x21, 0x82, 0xbe, 0x6b, 0x41, 0xeb, 0x1e, 0x3f, 0x08,
0xf0, 0xfc, 0xfe, 0x9e, 0x17, 0xc5, 0x41, 0xa8, 0x2e, 0x6a, 0x5e, 0x03, 0x88, 0x62, 0x37, 0x8c,
0x79, 0x4a, 0xb3, 0x08, 0x2c, 0x26, 0x10, 0x36, 0x46, 0xea, 0xf7, 0x78, 0x2d, 0xdf, 0x1b, 0x55,
0xce, 0xd8, 0x10, 0xc2, 0x79, 0x33, 0x34, 0xf1, 0x1b, 0x3c, 0xf9, 0x93, 0xd9, 0x0a, 0xf4, 0x0c,
0xe5, 0x3a, 0xf7, 0x8a, 0x52, 0x50, 0xfb, 0xaf, 0x2c, 0x98, 0x4b, 0x06, 0x89, 0xc7, 0xa2, 0xa6,
0x74, 0x10, 0xea, 0x37, 0x91, 0x0e, 0x32, 0xe4, 0xe9, 0x31, 0x7d, 0x2c, 0xc6, 0xa6, 0x41, 0x90,
0x63, 0x45, 0x29, 0x18, 0x4b, 0x03, 0x47, 0x07, 0xf1, 0x54, 0x2e, 0x66, 0x09, 0x08, 0xab, 0x46,
0x94, 0x30, 0x23, 0x7d, 0x18, 0xe3, 0x57, 0x3c, 0x38, 0x2b, 0x8b, 0x52, 0x95, 0xce, 0x20, 0x14,
0x55, 0xa9, 0x7e, 0xa8, 0x52, 0xe1, 0xeb, 0x23, 0xcb, 0xf6, 0xaf, 0x58, 0x70, 0x25, 0x67, 0xe1,
0x05, 0xd7, 0xec, 0xc0, 0xfc, 0x89, 0xaa, 0x94, 0x8b, 0xc3, 0x59, 0x67, 0x59, 0x1e, 0xda, 0x99,
0x0b, 0xe2, 0x64, 0x3f, 0x50, 0x76, 0x11, 0x5f, 0x6e, 0x23, 0x59, 0x32, 0x5b, 0x61, 0x1f, 0x42,
0x7b, 0xf7, 0x19, 0x63, 0xc2, 0x6d, 0xfd, 0xcd, 0x11, 0x49, 0x0b, 0xb7, 0x33, 0x42, 0xe6, 0x72,
0x47, 0xfb, 0x04, 0x66, 0x8d, 0xb6, 0xc8, 0xa7, 0x5e, 0xb6, 0x91, 0x54, 0x78, 0x1a, 0x4b, 0xfc,
0xd1, 0x14, 0x99, 0xb2, 0xa9, 0x81, 0xec, 0x33, 0x98, 0x7b, 0x6f, 0x3c, 0x88, 0xbd, 0xe4, 0x01,
0x15, 0xf2, 0x19, 0xf1, 0x11, 0x36, 0x21, 0x97, 0x2e, 0xb7, 0x2b, 0x1d, 0x8f, 0xad, 0xd8, 0x90,
0xb5, 0xd4, 0xc9, 0xf6, 0x98, 0xad, 0xb0, 0xaf, 0xc0, 0x4a, 0xd2, 0x25, 0x5f, 0x3b, 0x29, 0xa8,
0xbf, 0x67, 0xf1, 0x6c, 0x07, 0xf3, 0x3d, 0x17, 0x72, 0x1f, 0x16, 0x22, 0xcf, 0xef, 0x0f, 0xa8,
0xde, 0x4e, 0x24, 0x56, 0x62, 0xc9, 0x1c, 0x9e, 0x78, 0xf3, 0xc5, 0xc9, 0xfb, 0x82, 0x11, 0x48,
0xfe, 0x40, 0x13, 0x02, 0x49, 0x2d, 0x49, 0xde, 0x04, 0xbe, 0x00, 0x0d, 0xb3, 0x33, 0x72, 0x47,
0x64, 0x5b, 0x26, 0x23, 0xd3, 0x63, 0xd9, 0x26, 0x65, 0x18, 0x98, 0xf6, 0xb7, 0x2d, 0x68, 0x39,
0x94, 0x91, 0x31, 0xd5, 0x3a, 0x15, 0xd4, 0x73, 0x37, 0xd3, 0xec, 0xe4, 0x09, 0xab, 0x2c, 0x4e,
0x39, 0xd7, 0x9b, 0x13, 0x37, 0x65, 0x6f, 0x2a, 0x67, 0x56, 0x5b, 0x15, 0x98, 0x16, 0xf3, 0x5b,
0x81, 0x25, 0x31, 0x24, 0x39, 0x9c, 0x24, 0x68, 0x6a, 0x74, 0xaa, 0x5b, 0xf6, 0xeb, 0xcf, 0xa1,
0xa6, 0xdd, 0x15, 0x26, 0x2b, 0xb0, 0xf0, 0xe4, 0xc1, 0xa3, 0x83, 0xdd, 0xa3, 0xa3, 0xce, 0xe1,
0xe3, 0xad, 0x2f, 0xee, 0x7e, 0xa5, 0xb3, 0xb7, 0x79, 0xb4, 0xd7, 0x9c, 0x22, 0xcb, 0x40, 0x0e,
0x76, 0x8f, 0x1e, 0xed, 0xee, 0x18, 0x70, 0x8b, 0x5c, 0x83, 0xf6, 0xe3, 0x83, 0xc7, 0x47, 0xbb,
0x3b, 0x9d, 0xbc, 0xef, 0x0a, 0xe4, 0x55, 0xb8, 0x22, 0xea, 0x73, 0x3e, 0x2f, 0xde, 0xfe, 0x76,
0x11, 0x1a, 0x3c, 0xb1, 0x82, 0x3f, 0xf5, 0x43, 0x43, 0xf2, 0x1e, 0xcc, 0x88, 0x37, 0xa3, 0x88,
0x5c, 0x33, 0xf3, 0x95, 0xaa, 0xf6, 0x72, 0x1a, 0x2c, 0x26, 0xba, 0xf0, 0xff, 0x7f, 0xfc, 0xf7,
0xbf, 0x56, 0x98, 0x25, 0xb5, 0x8d, 0xb3, 0xb7, 0x37, 0xfa, 0xd4, 0x8f, 0x58, 0x1b, 0x5f, 0x03,
0x48, 0x5e, 0x42, 0x22, 0x2d, 0xe5, 0x57, 0xa5, 0x9e, 0x89, 0x6a, 0x5f, 0xc9, 0xa9, 0x11, 0xed,
0x5e, 0xc1, 0x76, 0x17, 0xec, 0x06, 0x6b, 0xd7, 0xf3, 0xbd, 0x98, 0xbf, 0x8a, 0xf4, 0xae, 0xb5,
0x4e, 0x7a, 0x50, 0xd7, 0xdf, 0x28, 0x22, 0x32, 0xb8, 0x9b, 0xf3, 0xca, 0x52, 0xfb, 0x95, 0xdc,
0x3a, 0xb9, 0x49, 0xd8, 0xc7, 0x92, 0xdd, 0x64, 0x7d, 0x8c, 0x11, 0x23, 0xe9, 0x65, 0xc0, 0x49,
0x37, 0x79, 0x8a, 0x88, 0x5c, 0xd5, 0xa8, 0x29, 0xf3, 0x10, 0x52, 0xfb, 0xd5, 0x09, 0xb5, 0xa2,
0xaf, 0x57, 0xb1, 0xaf, 0x15, 0x9b, 0xb0, 0xbe, 0xba, 0x88, 0x23, 0x1f, 0x42, 0x7a, 0xd7, 0x5a,
0xbf, 0xfd, 0xad, 0xeb, 0x50, 0x55, 0x07, 0x39, 0xe4, 0x43, 0x98, 0x35, 0x32, 0x5f, 0x88, 0x9c,
0x46, 0x5e, 0xa2, 0x4c, 0xfb, 0x6a, 0x7e, 0xa5, 0xe8, 0xf8, 0x1a, 0x76, 0xdc, 0x22, 0xcb, 0xac,
0x63, 0x91, 0x3a, 0xb2, 0x81, 0x39, 0x5c, 0xfc, 0x42, 0xc6, 0x53, 0x8d, 0x45, 0x79, 0x67, 0x57,
0xd3, 0x5c, 0x63, 0xf4, 0xf6, 0xea, 0x84, 0x5a, 0xd1, 0xdd, 0x55, 0xec, 0x6e, 0x99, 0x2c, 0xea,
0xdd, 0xa9, 0x03, 0x16, 0x8a, 0xb7, 0x88, 0xf4, 0x57, 0x7c, 0xc8, 0xab, 0x8a, 0xb0, 0xf2, 0x5e,
0xf7, 0x51, 0x24, 0x92, 0x7d, 0xe2, 0xc7, 0x6e, 0x61, 0x57, 0x84, 0xe0, 0xf6, 0xe9, 0x8f, 0xf8,
0x90, 0x63, 0xa8, 0x69, 0x2f, 0x4f, 0x90, 0x2b, 0x13, 0x5f, 0xc9, 0x68, 0xb7, 0xf3, 0xaa, 0xf2,
0xa6, 0xa2, 0xb7, 0xbf, 0xc1, 0x74, 0xef, 0x57, 0xa1, 0xaa, 0xde, 0x32, 0x20, 0x2b, 0xda, 0xdb,
0x12, 0xfa, 0xdb, 0x0b, 0xed, 0x56, 0xb6, 0x22, 0x8f, 0xf8, 0xf4, 0xd6, 0x19, 0xf1, 0x3d, 0x81,
0x9a, 0xf6, 0x5e, 0x81, 0x9a, 0x40, 0xf6, 0x4d, 0x04, 0x35, 0x81, 0x9c, 0xe7, 0x0d, 0xec, 0x79,
0xec, 0xa2, 0x46, 0xaa, 0x48, 0xdf, 0xf1, 0xb3, 0x20, 0x22, 0xfb, 0xb0, 0x24, 0x44, 0xd1, 0x31,
0xfd, 0x38, 0xdb, 0x90, 0xf3, 0x70, 0xd2, 0x2d, 0x8b, 0xdc, 0x85, 0x8a, 0x7c, 0x96, 0x82, 0x2c,
0xe7, 0x3f, 0xaf, 0xd1, 0x5e, 0xc9, 0xc0, 0x85, 0x09, 0xf2, 0x15, 0x80, 0xe4, 0x71, 0x04, 0x25,
0x24, 0x32, 0x8f, 0x2d, 0x28, 0x0a, 0xc8, 0xbe, 0xa4, 0x60, 0x2f, 0xe3, 0x04, 0x9b, 0x04, 0x85,
0x84, 0x4f, 0xcf, 0xe5, 0xdd, 0xbd, 0xaf, 0x43, 0x4d, 0x7b, 0x1f, 0x41, 0x2d, 0x5f, 0xf6, 0x6d,
0x05, 0xb5, 0x7c, 0x39, 0xcf, 0x29, 0xd8, 0x6d, 0x6c, 0x7d, 0xd1, 0x9e, 0x63, 0xad, 0x47, 0x5e,
0xdf, 0x1f, 0x72, 0x04, 0xb6, 0x41, 0xa7, 0x30, 0x6b, 0x3c, 0x82, 0xa0, 0x38, 0x34, 0xef, 0x89,
0x05, 0xc5, 0xa1, 0xb9, 0xef, 0x26, 0x48, 0x3a, 0xb3, 0xe7, 0x59, 0x3f, 0x67, 0x88, 0xa2, 0xf5,
0xf4, 0x01, 0xd4, 0xb4, 0x07, 0x0d, 0xd4, 0x5c, 0xb2, 0x6f, 0x27, 0xa8, 0xb9, 0xe4, 0xbd, 0x7f,
0xb0, 0x88, 0x7d, 0x34, 0x6c, 0x24, 0x05, 0xbc, 0xfa, 0xc6, 0xda, 0xfe, 0x10, 0x1a, 0xe6, 0x13,
0x07, 0x8a, 0xf7, 0x73, 0x1f, 0x4b, 0x50, 0xbc, 0x3f, 0xe1, 0x5d, 0x04, 0x41, 0xd2, 0xeb, 0x0b,
0xaa, 0x93, 0x8d, 0x8f, 0x44, 0x82, 0xc7, 0x73, 0xf2, 0x25, 0x26, 0xe0, 0xc4, 0x5d, 0x44, 0xb2,
0xa2, 0x51, 0xad, 0x7e, 0x63, 0x51, 0xf1, 0x4b, 0xe6, 0xda, 0xa2, 0x49, 0xcc, 0xfc, 0xf2, 0x1e,
0x6a, 0x2d, 0xbc, 0x93, 0xa8, 0x69, 0x2d, 0xfd, 0xda, 0xa2, 0xa6, 0xb5, 0x8c, 0xab, 0x8b, 0x69,
0xad, 0x15, 0x7b, 0xac, 0x0d, 0x1f, 0xe6, 0x52, 0xd9, 0xb9, 0x8a, 0x2b, 0xf2, 0xaf, 0x33, 0xb4,
0xaf, 0xbd, 0x38, 0xa9, 0xd7, 0x94, 0x20, 0x52, 0x08, 0x6e, 0xc8, 0xcb, 0x23, 0xff, 0x07, 0xea,
0xfa, 0x75, 0x72, 0xa2, 0xb3, 0x72, 0xba, 0xa7, 0x57, 0x72, 0xeb, 0xcc, 0xcd, 0x25, 0x75, 0xbd,
0x1b, 0xf2, 0x3e, 0x2c, 0x2b, 0x56, 0xd7, 0x13, 0x3e, 0x23, 0xf2, 0x5a, 0x4e, 0x1a, 0xa8, 0x6e,
0xa0, 0xb4, 0xaf, 0x4c, 0xcc, 0x13, 0xbd, 0x65, 0x31, 0xa2, 0x31, 0xef, 0xe9, 0x26, 0x0a, 0x23,
0xef, 0x7a, 0x72, 0xa2, 0x30, 0x72, 0x2f, 0xf7, 0x4a, 0xa2, 0x21, 0x0b, 0xc6, 0x1a, 0xf1, 0x33,
0x38, 0xf2, 0x01, 0xcc, 0x69, 0x29, 0xf5, 0x47, 0x17, 0x7e, 0x57, 0x31, 0x40, 0xf6, 0xee, 0x55,
0x3b, 0xcf, 0xfc, 0xb6, 0x57, 0xb0, 0xfd, 0x79, 0xdb, 0x58, 0x1c, 0x46, 0xfc, 0xdb, 0x50, 0xd3,
0xd3, 0xf5, 0x5f, 0xd0, 0xee, 0x8a, 0x56, 0xa5, 0x5f, 0x1d, 0xba, 0x65, 0x91, 0xdf, 0xb4, 0xa0,
0x6e, 0x24, 0xbf, 0x1b, 0x27, 0xcd, 0xa9, 0x76, 0x5a, 0x7a, 0x9d, 0xde, 0x90, 0xed, 0xe0, 0x20,
0xf7, 0xd7, 0xbf, 0x60, 0x2c, 0xc2, 0x47, 0x46, 0x8c, 0xe5, 0x66, 0xfa, 0x29, 0xac, 0xe7, 0x69,
0x04, 0xfd, 0x7e, 0xda, 0xf3, 0x5b, 0x16, 0xf9, 0xbe, 0x05, 0x0d, 0x33, 0x32, 0xa8, 0xb6, 0x2a,
0x37, 0x06, 0xa9, 0xb6, 0x6a, 0x42, 0x38, 0xf1, 0x03, 0x1c, 0xe5, 0xa3, 0x75, 0xc7, 0x18, 0xa5,
0xb8, 0xc1, 0xfd, 0xd3, 0x8d, 0x96, 0xbc, 0xcb, 0x5f, 0xcb, 0x93, 0xe1, 0x6a, 0xa2, 0x69, 0x8d,
0xf4, 0xf6, 0xea, 0x2f, 0xbc, 0xad, 0x59, 0xb7, 0x2c, 0xf2, 0x75, 0xfe, 0x04, 0x94, 0xf8, 0x16,
0xa9, 0xe4, 0x65, 0xbf, 0xb7, 0xaf, 0xe3, 0x9c, 0xae, 0xd9, 0x57, 0x8c, 0x39, 0xa5, 0xf5, 0xf1,
0x26, 0x1f, 0x9d, 0x78, 0x9c, 0x2d, 0x51, 0x28, 0x99, 0x07, 0xdb, 0x26, 0x0f, 0x72, 0xc8, 0x07,
0x29, 0xd0, 0x0d, 0x52, 0x7e, 0xc9, 0x66, 0xec, 0x75, 0x1c, 0xeb, 0x75, 0xfb, 0xb5, 0x89, 0x63,
0xdd, 0xc0, 0xf8, 0x1e, 0x1b, 0xf1, 0x21, 0x40, 0x72, 0xb4, 0x44, 0x52, 0x47, 0x1b, 0x8a, 0xc1,
0xb3, 0xa7, 0x4f, 0x26, 0xbf, 0xc8, 0x13, 0x10, 0xd6, 0xe2, 0x57, 0xb9, 0xb8, 0x7a, 0x20, 0x0f,
0x45, 0x74, 0xa3, 0xc4, 0x3c, 0x03, 0x32, 0x8c, 0x92, 0x74, 0xfb, 0x86, 0xb0, 0x52, 0x27, 0x2c,
0x8f, 0x61, 0x76, 0x3f, 0x08, 0x9e, 0x8e, 0x47, 0xea, 0x98, 0xd8, 0x0c, 0xbd, 0xef, 0xb9, 0xd1,
0x69, 0x3b, 0x35, 0x0b, 0x7b, 0x15, 0x9b, 0x6a, 0x93, 0x96, 0xd6, 0xd4, 0xc6, 0x47, 0xc9, 0xd1,
0xd5, 0x73, 0xe2, 0xc2, 0xbc, 0x92, 0x81, 0x6a, 0xe0, 0x6d, 0xb3, 0x19, 0x43, 0xf2, 0xa5, 0xbb,
0x30, 0xac, 0x67, 0x39, 0xda, 0x8d, 0x48, 0xb6, 0x79, 0xcb, 0x22, 0x87, 0x50, 0xdf, 0xa1, 0xdd,
0xa0, 0x47, 0x45, 0xfc, 0x7a, 0x21, 0x19, 0xb8, 0x0a, 0x7c, 0xb7, 0x67, 0x0d, 0xa0, 0xa9, 0x17,
0x46, 0xee, 0x45, 0x48, 0xbf, 0xb1, 0xf1, 0x91, 0x88, 0x8c, 0x3f, 0x97, 0x7a, 0x41, 0x1e, 0x1d,
0x18, 0x7a, 0x21, 0x75, 0xd6, 0x60, 0xe8, 0x85, 0xcc, 0x59, 0x83, 0xb1, 0xd4, 0xf2, 0xe8, 0x82,
0x0c, 0x60, 0x3e, 0x73, 0x3c, 0xa1, 0x54, 0xc2, 0xa4, 0x43, 0x8d, 0xf6, 0xea, 0x64, 0x04, 0xb3,
0xb7, 0x75, 0xb3, 0xb7, 0x23, 0x98, 0xdd, 0xa1, 0x7c, 0xb1, 0x78, 0x16, 0x5b, 0xea, 0x06, 0x85,
0x9e, 0x23, 0x97, 0x16, 0xe0, 0x58, 0x67, 0x2a, 0x7e, 0x4c, 0x21, 0x23, 0x5f, 0x85, 0xda, 0x7d,
0x1a, 0xcb, 0xb4, 0x35, 0x65, 0x7a, 0xa6, 0xf2, 0xd8, 0xda, 0x39, 0x59, 0x6f, 0x26, 0xcd, 0x60,
0x6b, 0x1b, 0xb4, 0xd7, 0xa7, 0x5c, 0x38, 0x75, 0xbc, 0xde, 0x73, 0xf2, 0x65, 0x6c, 0x5c, 0x65,
0xd7, 0x2e, 0x6b, 0x39, 0x4b, 0x7a, 0xe3, 0x73, 0x29, 0x78, 0x5e, 0xcb, 0x7e, 0xd0, 0xa3, 0x9a,
0x09, 0xe4, 0x43, 0x4d, 0x4b, 0x0a, 0x57, 0x0c, 0x94, 0xcd, 0xe1, 0x57, 0x0c, 0x94, 0x93, 0x43,
0x6e, 0xaf, 0x61, 0x3f, 0x36, 0x59, 0x4d, 0xfa, 0xe1, 0x79, 0xe3, 0x49, 0x4f, 0x1b, 0x1f, 0xb9,
0xc3, 0xf8, 0x39, 0x79, 0x82, 0xcf, 0x38, 0xe8, 0xa9, 0x79, 0x89, 0x2d, 0x9d, 0xce, 0xe2, 0x53,
0x8b, 0xa5, 0x55, 0x99, 0xf6, 0x35, 0xef, 0x0a, 0x2d, 0xa5, 0xcf, 0x00, 0x1c, 0xc5, 0xc1, 0x68,
0xc7, 0xa5, 0xc3, 0xc0, 0x4f, 0x64, 0x6d, 0x92, 0x44, 0x96, 0xc8, 0x2f, 0x2d, 0x93, 0x8c, 0x3c,
0xd1, 0x9c, 0x0f, 0x23, 0xb3, 0x51, 0x12, 0xd7, 0xc4, 0x3c, 0x33, 0xb5, 0x20, 0x39, 0xb9, 0x66,
0xb7, 0x2c, 0xb2, 0x09, 0x90, 0x9c, 0x4f, 0x29, 0x57, 0x22, 0x73, 0xf4, 0xa5, 0xc4, 0x5e, 0xce,
0x61, 0xd6, 0x21, 0x54, 0x93, 0x03, 0x8f, 0x95, 0xe4, 0xde, 0x82, 0x71, 0x3c, 0xa2, 0x34, 0x78,
0xe6, 0x18, 0xc2, 0x6e, 0xe2, 0x52, 0x01, 0xa9, 0xb0, 0xa5, 0xc2, 0xb3, 0x05, 0x0f, 0x16, 0xf8,
0x00, 0x95, 0x39, 0x82, 0x69, 0x51, 0x72, 0x26, 0x39, 0x47, 0x01, 0x8a, 0x9b, 0x73, 0x23, 0xe9,
0x46, 0x44, 0x84, 0x51, 0x2b, 0x4f, 0xc9, 0x62, 0xa2, 0x79, 0x08, 0xf3, 0x99, 0x50, 0xaf, 0x62,
0xe9, 0x49, 0xd1, 0x77, 0xc5, 0xd2, 0x13, 0xa3, 0xc4, 0xf6, 0x12, 0x76, 0x39, 0x67, 0x03, 0x7a,
0x40, 0xe7, 0x5e, 0xdc, 0x3d, 0xe5, 0xba, 0x65, 0x21, 0x27, 0x90, 0x4b, 0x5e, 0x97, 0xbe, 0xf4,
0xc4, 0x20, 0x6f, 0x3b, 0x37, 0xce, 0x67, 0x4f, 0x91, 0xf7, 0x61, 0x85, 0x7f, 0xb5, 0x39, 0x18,
0xa4, 0x02, 0x86, 0xd7, 0x32, 0x8f, 0x57, 0x1b, 0x81, 0xd0, 0xf6, 0xe4, 0xc7, 0xad, 0xed, 0x29,
0xf2, 0x65, 0x15, 0x9f, 0x4b, 0xb5, 0x2a, 0x17, 0x67, 0x52, 0x40, 0x51, 0xb9, 0x6c, 0xf9, 0xe1,
0xbd, 0x29, 0xf2, 0x01, 0xac, 0xa4, 0x69, 0x59, 0xb6, 0xbd, 0x9a, 0x37, 0xc9, 0x89, 0xf6, 0x75,
0x7a, 0xcc, 0xb7, 0xac, 0xad, 0x1b, 0x1f, 0xfc, 0xb7, 0xbe, 0x17, 0x9f, 0x8e, 0x8f, 0x6f, 0x76,
0x83, 0xe1, 0xc6, 0x40, 0x86, 0x85, 0x44, 0xda, 0xe9, 0xc6, 0xc0, 0xef, 0x6d, 0xe0, 0xf7, 0xc7,
0xd3, 0xf8, 0xa6, 0xfc, 0xa7, 0xfe, 0x23, 0x00, 0x00, 0xff, 0xff, 0x9c, 0xa4, 0x81, 0x63, 0x85,
0x5e, 0x00, 0x00,
}

@ -145,11 +145,21 @@ message InitWalletRequest {
/**
recovery_window is an optional argument specifying the address lookahead
when restoring a wallet seed. The recovery window applies to each
invdividual branch of the BIP44 derivation paths. Supplying a recovery
individual branch of the BIP44 derivation paths. Supplying a recovery
window of zero indicates that no addresses should be recovered, such after
the first initialization of the wallet.
*/
int32 recovery_window = 4;
/**
channel_backups is an optional argument that allows clients to recover the
settled funds within a set of channels. This should be populated if the
user was unable to close out all channels and sweep funds before partial or
total data loss occurred. If specified, then after on-chain recovery of
funds, lnd begin to carry out the data loss recovery protocol in order to
recover the funds in each channel from a remote force closed transaction.
*/
ChanBackupSnapshot channel_backups = 5;
}
message InitWalletResponse {
}
@ -170,6 +180,16 @@ message UnlockWalletRequest {
the first initialization of the wallet.
*/
int32 recovery_window = 2;
/**
channel_backups is an optional argument that allows clients to recover the
settled funds within a set of channels. This should be populated if the
user was unable to close out all channels and sweep funds before partial or
total data loss occurred. If specified, then after on-chain recovery of
funds, lnd begin to carry out the data loss recovery protocol in order to
recover the funds in each channel from a remote force closed transaction.
*/
ChanBackupSnapshot channel_backups = 3;
}
message UnlockWalletResponse {}
@ -668,7 +688,7 @@ service Lightning {
/** lncli: `fwdinghistory`
ForwardingHistory allows the caller to query the htlcswitch for a record of
all HTLC's forwarded within the target time range, and integer offset
all HTLCs forwarded within the target time range, and integer offset
within that time range. If no time-range is specified, then the first chunk
of the past 24 hrs of forwarding history are returned.
@ -684,6 +704,48 @@ service Lightning {
body: "*"
};
};
/** lncli: `exportchanbackup`
ExportChannelBackup attempts to return an encrypted static channel backup
for the target channel identified by it channel point. The backup is
encrypted with a key generated from the aezeed seed of the user. The
returned backup can either be restored using the RestoreChannelBackup
method once lnd is running, or via the InitWallet and UnlockWallet methods
from the WalletUnlocker service.
*/
rpc ExportChannelBackup(ExportChannelBackupRequest) returns (ChannelBackup) {
};
/**
ExportAllChannelBackups returns static channel backups for all existing
channels known to lnd. A set of regular singular static channel backups for
each channel are returned. Additionally, a multi-channel backup is returned
as well, which contains a single encrypted blob containing the backups of
each channel.
*/
rpc ExportAllChannelBackups(ChanBackupExportRequest) returns (ChanBackupSnapshot) {
};
/** lncli: `restorechanbackup`
RestoreChannelBackups accepts a set of singular channel backups, or a
single encrypted multi-chan backup and attempts to recover any funds
remaining within the channel. If we are able to unpack the backup, then the
new channel will be shown under listchannels, as well as pending channels.
*/
rpc RestoreChannelBackups(RestoreChanBackupRequest) returns (RestoreBackupResponse) {
};
/**
SubscribeChannelBackups allows a client to sub-subscribe to the most up to
date information concerning the state of all channel backups. Each time a
new channel is added, we return the new set of channels, along with a
multi-chan backup containing the backup info for all channels. Each time a
channel is closed, we send a new update, which contains new new chan back
ups, but the updated set of encrypted multi-chan backups with the closed
channel(s) removed.
*/
rpc SubscribeChannelBackups(ChannelBackupSubscription) returns (stream ChanBackupSnapshot) {
};
}
message Utxo {
@ -1067,9 +1129,8 @@ message Channel {
repeated HTLC pending_htlcs = 15 [json_name = "pending_htlcs"];
/**
The CSV delay expressed in relative blocks. If the channel is force
closed, we'll need to wait for this many blocks before we can regain our
funds.
The CSV delay expressed in relative blocks. If the channel is force closed,
we will need to wait for this many blocks before we can regain our funds.
*/
uint32 csv_delay = 16 [json_name = "csv_delay"];
@ -1078,6 +1139,9 @@ message Channel {
/// True if we were the ones that created the channel.
bool initiator = 18 [json_name = "initiator"];
/// A set of flags showing the current state of the cahnnel.
string chan_status_flags = 19 [json_name = "chan_status_flags"];
}
@ -2190,3 +2254,69 @@ message ForwardingHistoryResponse {
/// The index of the last time in the set of returned forwarding events. Can be used to seek further, pagination style.
uint32 last_offset_index = 2 [json_name = "last_offset_index"];
}
message ExportChannelBackupRequest {
/// The target chanenl point to obtain a back up for.
ChannelPoint chan_point = 1;
}
message ChannelBackup {
/**
Identifies the channel that this backup belongs to.
*/
ChannelPoint chan_point = 1 [ json_name = "chan_point" ];
/**
Is an encrypted single-chan backup. this can be passed to
RestoreChannelBackups, or the WalletUnlocker Innit and Unlock methods in
order to trigger the recovery protocol.
*/
bytes chan_backup = 2 [ json_name = "chan_backup" ];
}
message MultiChanBackup {
/**
Is the set of all channels that are included in this multi-channel backup.
*/
repeated ChannelPoint chan_points = 1 [ json_name = "chan_points" ];
/**
A single encrypted blob containing all the static channel backups of the
channel listed above. This can be stored as a single file or blob, and
safely be replaced with any prior/future versions.
*/
bytes multi_chan_backup = 2 [ json_name = "multi_chan_backup" ];
}
message ChanBackupExportRequest {}
message ChanBackupSnapshot {
/**
The set of new channels that have been added since the last channel backup
snapshot was requested.
*/
ChannelBackups single_chan_backups = 1 [ json_name = "single_chan_backups" ];
/**
A multi-channel backup that covers all open channels currently known to
lnd.
*/
MultiChanBackup multi_chan_backup = 2 [ json_name = "multi_chan_backup" ];
}
message ChannelBackups {
/**
A set of single-chan static channel backups.
*/
repeated ChannelBackup chan_backups = 1 [ json_name = "chan_backups" ];
}
message RestoreChanBackupRequest {
oneof backup {
ChannelBackups chan_backups = 1 [ json_name = "chan_backups" ];
bytes multi_chan_backup = 2 [ json_name = "multi_chan_backup" ];
}
}
message RestoreBackupResponse {}
message ChannelBackupSubscription {}

@ -976,7 +976,7 @@
},
"/v1/switch": {
"post": {
"summary": "* lncli: `fwdinghistory`\nForwardingHistory allows the caller to query the htlcswitch for a record of\nall HTLC's forwarded within the target time range, and integer offset\nwithin that time range. If no time-range is specified, then the first chunk\nof the past 24 hrs of forwarding history are returned.",
"summary": "* lncli: `fwdinghistory`\nForwardingHistory allows the caller to query the htlcswitch for a record of\nall HTLCs forwarded within the target time range, and integer offset\nwithin that time range. If no time-range is specified, then the first chunk\nof the past 24 hrs of forwarding history are returned.",
"description": "A list of forwarding events are returned. The size of each forwarding event\nis 40 bytes, and the max message size able to be returned in gRPC is 4 MiB.\nAs a result each message can only contain 50k entries. Each response has\nthe index offset of the last entry. The index offset can be provided to the\nrequest to allow the caller to skip a series of records.",
"operationId": "ForwardingHistory",
"responses": {
@ -1358,6 +1358,19 @@
}
}
},
"lnrpcChanBackupSnapshot": {
"type": "object",
"properties": {
"single_chan_backups": {
"$ref": "#/definitions/lnrpcChannelBackups",
"description": "*\nThe set of new channels that have been added since the last channel backup\nsnapshot was requested."
},
"multi_chan_backup": {
"$ref": "#/definitions/lnrpcMultiChanBackup",
"description": "*\nA multi-channel backup that covers all open channels currently known to\nlnd."
}
}
},
"lnrpcChangePasswordRequest": {
"type": "object",
"properties": {
@ -1457,7 +1470,7 @@
"csv_delay": {
"type": "integer",
"format": "int64",
"description": "*\nThe CSV delay expressed in relative blocks. If the channel is force\nclosed, we'll need to wait for this many blocks before we can regain our\nfunds."
"description": "*\nThe CSV delay expressed in relative blocks. If the channel is force closed,\nwe will need to wait for this many blocks before we can regain our funds."
},
"private": {
"type": "boolean",
@ -1468,6 +1481,36 @@
"type": "boolean",
"format": "boolean",
"description": "/ True if we were the ones that created the channel."
},
"chan_status_flags": {
"type": "string",
"description": "/ A set of flags showing the current state of the cahnnel."
}
}
},
"lnrpcChannelBackup": {
"type": "object",
"properties": {
"chan_point": {
"$ref": "#/definitions/lnrpcChannelPoint",
"description": "*\nIdentifies the channel that this backup belongs to."
},
"chan_backup": {
"type": "string",
"format": "byte",
"description": "*\nIs an encrypted single-chan backup. this can be passed to\nRestoreChannelBackups, or the WalletUnlocker Innit and Unlock methods in\norder to trigger the recovery protocol."
}
}
},
"lnrpcChannelBackups": {
"type": "object",
"properties": {
"chan_backups": {
"type": "array",
"items": {
"$ref": "#/definitions/lnrpcChannelBackup"
},
"description": "*\nA set of single-chan static channel backups."
}
}
},
@ -2139,7 +2182,11 @@
"recovery_window": {
"type": "integer",
"format": "int32",
"description": "*\nrecovery_window is an optional argument specifying the address lookahead\nwhen restoring a wallet seed. The recovery window applies to each\ninvdividual branch of the BIP44 derivation paths. Supplying a recovery\nwindow of zero indicates that no addresses should be recovered, such after\nthe first initialization of the wallet."
"description": "*\nrecovery_window is an optional argument specifying the address lookahead\nwhen restoring a wallet seed. The recovery window applies to each\nindividual branch of the BIP44 derivation paths. Supplying a recovery\nwindow of zero indicates that no addresses should be recovered, such after\nthe first initialization of the wallet."
},
"channel_backups": {
"$ref": "#/definitions/lnrpcChanBackupSnapshot",
"description": "*\nchannel_backups is an optional argument that allows clients to recover the\nsettled funds within a set of channels. This should be populated if the\nuser was unable to close out all channels and sweep funds before partial or\ntotal data loss occurred. If specified, then after on-chain recovery of\nfunds, lnd begin to carry out the data loss recovery protocol in order to\nrecover the funds in each channel from a remote force closed transaction."
}
}
},
@ -2362,6 +2409,23 @@
}
}
},
"lnrpcMultiChanBackup": {
"type": "object",
"properties": {
"chan_points": {
"type": "array",
"items": {
"$ref": "#/definitions/lnrpcChannelPoint"
},
"description": "*\nIs the set of all channels that are included in this multi-channel backup."
},
"multi_chan_backup": {
"type": "string",
"format": "byte",
"description": "*\nA single encrypted blob containing all the static channel backups of the\nchannel listed above. This can be stored as a single file or blob, and\nsafely be replaced with any prior/future versions."
}
}
},
"lnrpcNetworkInfo": {
"type": "object",
"properties": {
@ -2812,6 +2876,9 @@
}
}
},
"lnrpcRestoreBackupResponse": {
"type": "object"
},
"lnrpcRoute": {
"type": "object",
"properties": {
@ -3124,6 +3191,10 @@
"type": "integer",
"format": "int32",
"description": "*\nrecovery_window is an optional argument specifying the address lookahead\nwhen restoring a wallet seed. The recovery window applies to each\ninvdividual branch of the BIP44 derivation paths. Supplying a recovery\nwindow of zero indicates that no addresses should be recovered, such after\nthe first initialization of the wallet."
},
"channel_backups": {
"$ref": "#/definitions/lnrpcChanBackupSnapshot",
"description": "*\nchannel_backups is an optional argument that allows clients to recover the\nsettled funds within a set of channels. This should be populated if the\nuser was unable to close out all channels and sweep funds before partial or\ntotal data loss occurred. If specified, then after on-chain recovery of\nfunds, lnd begin to carry out the data loss recovery protocol in order to\nrecover the funds in each channel from a remote force closed transaction."
}
}
},