Merge pull request #3739 from joostjager/incoming-restriction

routing: last hop restriction
This commit is contained in:
Joost Jager 2019-11-19 08:38:33 +01:00 committed by GitHub
commit a00a360018
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 928 additions and 828 deletions

@ -24,6 +24,7 @@ import (
"github.com/golang/protobuf/proto" "github.com/golang/protobuf/proto"
"github.com/lightningnetwork/lnd/lnrpc" "github.com/lightningnetwork/lnd/lnrpc"
"github.com/lightningnetwork/lnd/lnrpc/routerrpc" "github.com/lightningnetwork/lnd/lnrpc/routerrpc"
"github.com/lightningnetwork/lnd/routing/route"
"github.com/lightningnetwork/lnd/walletunlocker" "github.com/lightningnetwork/lnd/walletunlocker"
"github.com/urfave/cli" "github.com/urfave/cli"
"golang.org/x/crypto/ssh/terminal" "golang.org/x/crypto/ssh/terminal"
@ -2040,11 +2041,18 @@ func closedChannels(ctx *cli.Context) error {
return nil return nil
} }
var cltvLimitFlag = cli.UintFlag{ var (
Name: "cltv_limit", cltvLimitFlag = cli.UintFlag{
Usage: "the maximum time lock that may be used for " + Name: "cltv_limit",
"this payment", Usage: "the maximum time lock that may be used for " +
} "this payment",
}
lastHopFlag = cli.StringFlag{
Name: "last_hop",
Usage: "pubkey of the last hop to use for this payment",
}
)
// paymentFlags returns common flags for sendpayment and payinvoice. // paymentFlags returns common flags for sendpayment and payinvoice.
func paymentFlags() []cli.Flag { func paymentFlags() []cli.Flag {
@ -2065,6 +2073,7 @@ func paymentFlags() []cli.Flag {
"payment", "payment",
}, },
cltvLimitFlag, cltvLimitFlag,
lastHopFlag,
cli.Uint64Flag{ cli.Uint64Flag{
Name: "outgoing_chan_id", Name: "outgoing_chan_id",
Usage: "short channel id of the outgoing channel to " + Usage: "short channel id of the outgoing channel to " +
@ -2281,6 +2290,16 @@ func sendPaymentRequest(ctx *cli.Context, req *lnrpc.SendRequest) error {
req.FeeLimit = feeLimit req.FeeLimit = feeLimit
req.OutgoingChanId = ctx.Uint64("outgoing_chan_id") req.OutgoingChanId = ctx.Uint64("outgoing_chan_id")
if ctx.IsSet(lastHopFlag.Name) {
lastHop, err := route.NewVertexFromStr(
ctx.String(lastHopFlag.Name),
)
if err != nil {
return err
}
req.LastHopPubkey = lastHop[:]
}
req.CltvLimit = uint32(ctx.Int(cltvLimitFlag.Name)) req.CltvLimit = uint32(ctx.Int(cltvLimitFlag.Name))
amt := req.Amt amt := req.Amt

@ -231,6 +231,9 @@ type SendPaymentRequest struct {
//any channel may be used. //any channel may be used.
OutgoingChanId uint64 `protobuf:"varint,8,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"` OutgoingChanId uint64 `protobuf:"varint,8,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"`
//* //*
//The pubkey of the last hop of the route. If empty, any hop may be used.
LastHopPubkey []byte `protobuf:"bytes,14,opt,name=last_hop_pubkey,json=lastHopPubkey,proto3" json:"last_hop_pubkey,omitempty"`
//*
//An optional maximum total time lock for the route. This should not exceed //An optional maximum total time lock for the route. This should not exceed
//lnd's `--max-cltv-expiry` setting. If zero, then the value of //lnd's `--max-cltv-expiry` setting. If zero, then the value of
//`--max-cltv-expiry` is enforced. //`--max-cltv-expiry` is enforced.
@ -343,6 +346,13 @@ func (m *SendPaymentRequest) GetOutgoingChanId() uint64 {
return 0 return 0
} }
func (m *SendPaymentRequest) GetLastHopPubkey() []byte {
if m != nil {
return m.LastHopPubkey
}
return nil
}
func (m *SendPaymentRequest) GetCltvLimit() int32 { func (m *SendPaymentRequest) GetCltvLimit() int32 {
if m != nil { if m != nil {
return m.CltvLimit return m.CltvLimit
@ -1445,130 +1455,131 @@ func init() {
func init() { proto.RegisterFile("routerrpc/router.proto", fileDescriptor_7a0613f69d37b0a5) } func init() { proto.RegisterFile("routerrpc/router.proto", fileDescriptor_7a0613f69d37b0a5) }
var fileDescriptor_7a0613f69d37b0a5 = []byte{ var fileDescriptor_7a0613f69d37b0a5 = []byte{
// 1957 bytes of a gzipped FileDescriptorProto // 1975 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x58, 0xdd, 0x72, 0x1a, 0xc9, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x58, 0x4f, 0x73, 0x1a, 0xc9,
0x15, 0xde, 0xe1, 0x47, 0xc0, 0x01, 0xa4, 0x51, 0x4b, 0x96, 0x31, 0x92, 0xd6, 0xda, 0xb1, 0xb3, 0x15, 0xdf, 0x11, 0x20, 0xe0, 0x01, 0xd2, 0xa8, 0xa5, 0x95, 0xc7, 0x48, 0x5a, 0x6b, 0xc7, 0x8e,
0xab, 0x72, 0x79, 0x25, 0x87, 0xd4, 0x6e, 0xb9, 0xf6, 0x22, 0x29, 0x0c, 0xc3, 0x6a, 0x64, 0x18, 0x57, 0xe5, 0xf2, 0x4a, 0x8e, 0x52, 0xbb, 0xe5, 0xda, 0x43, 0x52, 0x18, 0x86, 0xd5, 0xc8, 0x30,
0xe4, 0x06, 0xbc, 0xeb, 0xec, 0x45, 0x57, 0x0b, 0x5a, 0x62, 0x4a, 0xc3, 0x0c, 0x3b, 0xd3, 0x38, 0xc8, 0x0d, 0x78, 0xd7, 0xd9, 0x43, 0x57, 0x0b, 0x5a, 0x62, 0x4a, 0xc3, 0x0c, 0x3b, 0xd3, 0x38,
0x56, 0x2e, 0xf2, 0x04, 0xc9, 0x6d, 0x5e, 0x21, 0x37, 0xc9, 0x55, 0xde, 0x20, 0x0f, 0x93, 0x3c, 0x56, 0x0e, 0xf9, 0x04, 0xc9, 0x35, 0x5f, 0x21, 0x97, 0xe4, 0x94, 0xef, 0x94, 0x54, 0xe5, 0x9e,
0x41, 0xee, 0x53, 0xdd, 0x3d, 0x03, 0x03, 0x42, 0xda, 0x5c, 0x89, 0xfe, 0xce, 0xe9, 0xd3, 0xa7, 0x7b, 0xaa, 0xbb, 0x67, 0x60, 0x40, 0x48, 0x9b, 0x93, 0xe8, 0xdf, 0x7b, 0xfd, 0x5e, 0xcf, 0xfb,
0xcf, 0xcf, 0xd7, 0x67, 0x04, 0x7b, 0x81, 0x3f, 0xe3, 0x2c, 0x08, 0xa6, 0xc3, 0x53, 0xf5, 0xeb, 0xf3, 0xeb, 0xd7, 0x82, 0xdd, 0x30, 0x98, 0x72, 0x16, 0x86, 0x93, 0xc1, 0x89, 0xfa, 0x75, 0x3c,
0x64, 0x1a, 0xf8, 0xdc, 0x47, 0x85, 0x39, 0x5e, 0x2d, 0x04, 0xd3, 0xa1, 0x42, 0x8d, 0x7f, 0x65, 0x09, 0x03, 0x1e, 0xa0, 0xe2, 0x0c, 0xaf, 0x16, 0xc3, 0xc9, 0x40, 0xa1, 0xe6, 0x7f, 0xb2, 0x80,
0x00, 0xf5, 0x98, 0x37, 0xba, 0xa0, 0xb7, 0x13, 0xe6, 0x71, 0xcc, 0x7e, 0x9e, 0xb1, 0x90, 0x23, 0xba, 0xcc, 0x1f, 0x5e, 0xd0, 0xdb, 0x31, 0xf3, 0x39, 0x66, 0x3f, 0x4f, 0x59, 0xc4, 0x11, 0x82,
0x04, 0x99, 0x11, 0x0b, 0x79, 0x45, 0x3b, 0xd2, 0x8e, 0x4b, 0x58, 0xfe, 0x46, 0x3a, 0xa4, 0xe9, 0xec, 0x90, 0x45, 0xdc, 0xd0, 0x0e, 0xb5, 0xa3, 0x32, 0x96, 0xbf, 0x91, 0x0e, 0x19, 0x3a, 0xe6,
0x84, 0x57, 0x52, 0x47, 0xda, 0x71, 0x1a, 0x8b, 0x9f, 0xe8, 0x09, 0xe4, 0xe9, 0x84, 0x93, 0x49, 0xc6, 0xda, 0xa1, 0x76, 0x94, 0xc1, 0xe2, 0x27, 0x7a, 0x0c, 0x05, 0x3a, 0xe6, 0x64, 0x1c, 0x51,
0x48, 0x79, 0xa5, 0x24, 0xe1, 0x1c, 0x9d, 0xf0, 0x4e, 0x48, 0x39, 0xfa, 0x02, 0x4a, 0x53, 0x65, 0x6e, 0x94, 0x25, 0x9c, 0xa7, 0x63, 0xde, 0x8e, 0x28, 0x47, 0x5f, 0x42, 0x79, 0xa2, 0x4c, 0x92,
0x92, 0x8c, 0x69, 0x38, 0xae, 0xa4, 0xa5, 0xa1, 0x62, 0x84, 0x9d, 0xd1, 0x70, 0x8c, 0x8e, 0x41, 0x11, 0x8d, 0x46, 0x46, 0x46, 0x1a, 0x2a, 0xc5, 0xd8, 0x19, 0x8d, 0x46, 0xe8, 0x08, 0xf4, 0x2b,
0xbf, 0x72, 0x3c, 0xea, 0x92, 0xa1, 0xcb, 0x3f, 0x92, 0x11, 0x73, 0x39, 0xad, 0x64, 0x8e, 0xb4, 0xd7, 0xa7, 0x1e, 0x19, 0x78, 0xfc, 0x23, 0x19, 0x32, 0x8f, 0x53, 0x23, 0x7b, 0xa8, 0x1d, 0xe5,
0xe3, 0x2c, 0xde, 0x94, 0x78, 0xc3, 0xe5, 0x1f, 0x9b, 0x02, 0x45, 0x5f, 0xc1, 0x56, 0x6c, 0x2c, 0xf0, 0x86, 0xc4, 0xeb, 0x1e, 0xff, 0xd8, 0x10, 0x28, 0xfa, 0x0a, 0x36, 0x13, 0x63, 0xa1, 0x3a,
0x50, 0x0e, 0x56, 0xb2, 0x47, 0xda, 0x71, 0x01, 0x6f, 0x4e, 0x97, 0xdd, 0xfe, 0x0a, 0xb6, 0xb8, 0xa0, 0x91, 0x3b, 0xd4, 0x8e, 0x8a, 0x78, 0x63, 0xb2, 0x78, 0xec, 0xaf, 0x60, 0x93, 0xbb, 0x63,
0x33, 0x61, 0xfe, 0x8c, 0x93, 0x90, 0x0d, 0x7d, 0x6f, 0x14, 0x56, 0x36, 0x94, 0xc5, 0x08, 0xee, 0x16, 0x4c, 0x39, 0x89, 0xd8, 0x20, 0xf0, 0x87, 0x91, 0xb1, 0xae, 0x2c, 0xc6, 0x70, 0x57, 0xa1,
0x29, 0x14, 0x19, 0x50, 0xbe, 0x62, 0x8c, 0xb8, 0xce, 0xc4, 0xe1, 0x44, 0xb8, 0x9f, 0x93, 0xee, 0xc8, 0x84, 0xca, 0x15, 0x63, 0xc4, 0x73, 0xc7, 0x2e, 0x27, 0xe2, 0xf8, 0x79, 0x79, 0xfc, 0xd2,
0x17, 0xaf, 0x18, 0x6b, 0x0b, 0xac, 0x47, 0x39, 0x7a, 0x0e, 0x9b, 0x0b, 0x1d, 0x79, 0xc7, 0xb2, 0x15, 0x63, 0x2d, 0x81, 0x75, 0x29, 0x47, 0xcf, 0x60, 0x63, 0xae, 0x23, 0xbf, 0xb1, 0x22, 0x95,
0x54, 0x2a, 0xc5, 0x4a, 0xf2, 0xa2, 0x2f, 0x41, 0xf7, 0x67, 0xfc, 0xda, 0x77, 0xbc, 0x6b, 0x32, 0xca, 0x89, 0x92, 0xfc, 0xd0, 0x97, 0xa0, 0x07, 0x53, 0x7e, 0x1d, 0xb8, 0xfe, 0x35, 0x19, 0x8c,
0x1c, 0x53, 0x8f, 0x38, 0xa3, 0x4a, 0xfe, 0x48, 0x3b, 0xce, 0xbc, 0x49, 0xbd, 0xd2, 0xf0, 0x66, 0xa8, 0x4f, 0xdc, 0xa1, 0x51, 0x38, 0xd4, 0x8e, 0xb2, 0x6f, 0xd6, 0x5e, 0x69, 0x78, 0x23, 0x91,
0x2c, 0x6b, 0x8c, 0xa9, 0x67, 0x8d, 0xd0, 0x21, 0x80, 0xbc, 0xad, 0x34, 0x5a, 0x29, 0x48, 0xdf, 0xd5, 0x47, 0xd4, 0xb7, 0x87, 0xe8, 0x39, 0x6c, 0x7a, 0x34, 0xe2, 0x64, 0x14, 0x4c, 0xc8, 0x64,
0x0a, 0x02, 0x91, 0x06, 0x51, 0x0d, 0x8a, 0x32, 0x4b, 0x64, 0xec, 0x78, 0x3c, 0xac, 0xc0, 0x51, 0x7a, 0x79, 0xc3, 0x6e, 0x8d, 0x0d, 0x19, 0x99, 0x8a, 0x80, 0xcf, 0x82, 0xc9, 0x85, 0x04, 0xd1,
0xfa, 0xb8, 0x58, 0xd3, 0x4f, 0x5c, 0x4f, 0x24, 0x0c, 0x0b, 0xc9, 0x99, 0xe3, 0x71, 0x9c, 0x54, 0x01, 0x80, 0x8c, 0x8a, 0x74, 0x6e, 0x14, 0xe5, 0x37, 0x14, 0x05, 0x22, 0x1d, 0xa3, 0x53, 0x28,
0x42, 0x26, 0xe4, 0x45, 0x7a, 0x08, 0x77, 0x3f, 0x56, 0x8a, 0x72, 0xc3, 0x8b, 0x93, 0x79, 0xaa, 0xc9, 0x6c, 0x92, 0x91, 0xeb, 0xf3, 0xc8, 0x80, 0xc3, 0xcc, 0x51, 0xe9, 0x54, 0x3f, 0xf6, 0x7c,
0x4f, 0xee, 0xe6, 0xf6, 0xa4, 0xc9, 0x42, 0xde, 0x77, 0x3f, 0x9a, 0x1e, 0x0f, 0x6e, 0x71, 0x6e, 0x91, 0x58, 0x2c, 0x24, 0x67, 0xae, 0xcf, 0x71, 0x5a, 0x09, 0x59, 0x50, 0x10, 0x69, 0x24, 0xdc,
0xa4, 0x56, 0xd5, 0xef, 0xa0, 0x94, 0x14, 0x88, 0x6c, 0xdf, 0xb0, 0x5b, 0x59, 0x00, 0x19, 0x2c, 0xfb, 0x68, 0x94, 0xe4, 0x86, 0x17, 0xc7, 0xb3, 0x92, 0x38, 0xbe, 0x5b, 0x03, 0xc7, 0x0d, 0x16,
0x7e, 0xa2, 0x5d, 0xc8, 0x7e, 0xa4, 0xee, 0x8c, 0xc9, 0x0a, 0x28, 0x61, 0xb5, 0xf8, 0x2e, 0xf5, 0xf1, 0x9e, 0xf7, 0xd1, 0xf2, 0x79, 0x78, 0x8b, 0xf3, 0x43, 0xb5, 0xaa, 0x7e, 0x07, 0xe5, 0xb4,
0x5a, 0x33, 0x5e, 0xc3, 0x4e, 0x3f, 0xa0, 0xc3, 0x9b, 0x95, 0x22, 0x5a, 0xad, 0x01, 0xed, 0x4e, 0x40, 0x54, 0x85, 0xf8, 0x0a, 0x51, 0x28, 0x59, 0x2c, 0x7e, 0xa2, 0x1d, 0xc8, 0x7d, 0xa4, 0xde,
0x0d, 0x18, 0x7f, 0x82, 0x72, 0xb4, 0xa9, 0xc7, 0x29, 0x9f, 0x85, 0xe8, 0x6b, 0xc8, 0x86, 0x9c, 0x94, 0xc9, 0x4a, 0x29, 0x63, 0xb5, 0xf8, 0x6e, 0xed, 0xb5, 0x66, 0xbe, 0x86, 0xed, 0x5e, 0x48,
0x72, 0x26, 0x95, 0x37, 0x6b, 0x8f, 0x13, 0x57, 0x49, 0x28, 0x32, 0xac, 0xb4, 0x50, 0x15, 0xf2, 0x07, 0x37, 0x4b, 0xc5, 0xb6, 0x5c, 0x2b, 0xda, 0x9d, 0x5a, 0x31, 0xff, 0x04, 0x95, 0x78, 0x53,
0xd3, 0x80, 0x39, 0x13, 0x7a, 0x1d, 0xbb, 0x35, 0x5f, 0x23, 0x03, 0xb2, 0x72, 0xb3, 0xac, 0xbd, 0x97, 0x53, 0x3e, 0x8d, 0xd0, 0xd7, 0x90, 0x8b, 0x38, 0xe5, 0x4c, 0x2a, 0x6f, 0x9c, 0x3e, 0x4a,
0x62, 0xad, 0x94, 0x0c, 0x23, 0x56, 0x22, 0xe3, 0xb7, 0xb0, 0x25, 0xd7, 0x2d, 0xc6, 0x1e, 0x2a, 0x7d, 0x4a, 0x4a, 0x91, 0x61, 0xa5, 0x85, 0xaa, 0x50, 0x98, 0x84, 0xcc, 0x1d, 0xd3, 0xeb, 0xe4,
0xfd, 0xc7, 0x20, 0x0a, 0x5b, 0x16, 0x8a, 0x2a, 0xff, 0x0d, 0x3a, 0x11, 0x35, 0x62, 0x8c, 0x40, 0x58, 0xb3, 0x35, 0x32, 0x21, 0x27, 0x37, 0xcb, 0x1a, 0x2d, 0x9d, 0x96, 0xd3, 0x61, 0xc4, 0x4a,
0x5f, 0xec, 0x0f, 0xa7, 0xbe, 0x17, 0x32, 0x51, 0xd7, 0xc2, 0xb8, 0x28, 0x08, 0x51, 0x3f, 0xb2, 0x64, 0xfe, 0x16, 0x36, 0xe5, 0xba, 0xc9, 0xd8, 0x43, 0x2d, 0xf2, 0x08, 0x44, 0x03, 0xc8, 0x82,
0x72, 0x34, 0xb9, 0x6b, 0x33, 0xc2, 0x5b, 0x8c, 0xc9, 0xda, 0xf9, 0x52, 0x95, 0x2b, 0x71, 0xfd, 0x52, 0x6d, 0xb2, 0x4e, 0xc7, 0xa2, 0x96, 0xcc, 0x21, 0xe8, 0xf3, 0xfd, 0xd1, 0x24, 0xf0, 0x23,
0xe1, 0x8d, 0x68, 0x00, 0x7a, 0x1b, 0x99, 0x2f, 0x0b, 0xb8, 0xed, 0x0f, 0x6f, 0x9a, 0x02, 0x34, 0x26, 0xea, 0x5f, 0x18, 0x17, 0x85, 0x23, 0xea, 0x4c, 0x56, 0x98, 0x26, 0x77, 0x6d, 0xc4, 0x78,
0x7e, 0x52, 0x3d, 0xda, 0xf7, 0x95, 0xef, 0xff, 0x77, 0x78, 0x17, 0x21, 0x48, 0xdd, 0x1f, 0x02, 0x93, 0x31, 0x59, 0x63, 0xcf, 0x55, 0x59, 0x13, 0x2f, 0x18, 0xdc, 0x88, 0x46, 0xa1, 0xb7, 0xb1,
0x02, 0x3b, 0x4b, 0xc6, 0xa3, 0x5b, 0x24, 0x23, 0xab, 0xad, 0x44, 0xf6, 0x25, 0xe4, 0xae, 0xa8, 0xf9, 0x8a, 0x80, 0x5b, 0xc1, 0xe0, 0xa6, 0x21, 0x40, 0xf3, 0x27, 0xd5, 0xcb, 0xbd, 0x40, 0x9d,
0xe3, 0xce, 0x82, 0xd8, 0x30, 0x4a, 0xa4, 0xa9, 0xa5, 0x24, 0x38, 0x56, 0x31, 0xfe, 0x9b, 0x83, 0xfd, 0xff, 0x0e, 0xef, 0x3c, 0x04, 0x6b, 0xf7, 0x87, 0x80, 0xc0, 0xf6, 0x82, 0xf1, 0xf8, 0x2b,
0x5c, 0x04, 0xa2, 0x1a, 0x64, 0x86, 0xfe, 0x28, 0xce, 0xee, 0xe7, 0x77, 0xb7, 0xc5, 0x7f, 0x1b, 0xd2, 0x91, 0xd5, 0x96, 0x22, 0xfb, 0x12, 0xf2, 0x57, 0xd4, 0xf5, 0xa6, 0x61, 0x62, 0x18, 0xa5,
0xfe, 0x88, 0x61, 0xa9, 0x8b, 0x7e, 0x07, 0x9b, 0xa2, 0xb1, 0x3c, 0xe6, 0x92, 0xd9, 0x74, 0x44, 0xd2, 0xd4, 0x54, 0x12, 0x9c, 0xa8, 0x98, 0xff, 0xcd, 0x43, 0x3e, 0x06, 0xd1, 0x29, 0x64, 0x07,
0xe7, 0x09, 0xad, 0x24, 0x76, 0x37, 0x94, 0xc2, 0x40, 0xca, 0x71, 0x79, 0x98, 0x5c, 0xa2, 0x7d, 0xc1, 0x30, 0xc9, 0xee, 0x17, 0x77, 0xb7, 0x25, 0x7f, 0xeb, 0xc1, 0x90, 0x61, 0xa9, 0x8b, 0x7e,
0x28, 0x8c, 0xb9, 0x3b, 0x54, 0x99, 0xc8, 0xc8, 0x82, 0xce, 0x0b, 0x40, 0xe6, 0xc0, 0x80, 0xb2, 0x07, 0x1b, 0xa2, 0x01, 0x7d, 0xe6, 0x91, 0xe9, 0x64, 0x48, 0x67, 0x09, 0x35, 0x52, 0xbb, 0xeb,
0xef, 0x39, 0xbe, 0x47, 0xc2, 0x31, 0x25, 0xb5, 0x6f, 0xbe, 0x95, 0xcc, 0x52, 0xc2, 0x45, 0x09, 0x4a, 0xa1, 0x2f, 0xe5, 0xb8, 0x32, 0x48, 0x2f, 0xd1, 0x1e, 0x14, 0x47, 0xdc, 0x1b, 0xa8, 0x4c,
0xf6, 0xc6, 0xb4, 0xf6, 0xcd, 0xb7, 0xe8, 0x29, 0x14, 0x65, 0xd7, 0xb2, 0x4f, 0x53, 0x27, 0xb8, 0x64, 0x65, 0x41, 0x17, 0x04, 0x20, 0x73, 0x60, 0x42, 0x25, 0xf0, 0xdd, 0xc0, 0x27, 0xd1, 0x88,
0x95, 0x94, 0x52, 0xc6, 0xb2, 0x91, 0x4d, 0x89, 0x88, 0xd6, 0xb8, 0x72, 0xe9, 0x75, 0x28, 0x69, 0x92, 0xd3, 0x6f, 0xbe, 0x95, 0x0c, 0x54, 0xc6, 0x25, 0x09, 0x76, 0x47, 0xf4, 0xf4, 0x9b, 0x6f,
0xa4, 0x8c, 0xd5, 0x02, 0xbd, 0x82, 0xdd, 0x28, 0x06, 0x24, 0xf4, 0x67, 0xc1, 0x90, 0x11, 0xc7, 0xd1, 0x13, 0x28, 0xc9, 0xae, 0x65, 0x9f, 0x26, 0x6e, 0x78, 0x2b, 0xa9, 0xa7, 0x82, 0x65, 0x23,
0x1b, 0xb1, 0x4f, 0x92, 0x1e, 0xca, 0x18, 0x45, 0xb2, 0x9e, 0x14, 0x59, 0x42, 0x82, 0xf6, 0x60, 0x5b, 0x12, 0x11, 0xad, 0x71, 0xe5, 0xd1, 0xeb, 0x48, 0xd2, 0x4d, 0x05, 0xab, 0x05, 0x7a, 0x05,
0x63, 0xcc, 0x9c, 0xeb, 0xb1, 0xa2, 0x86, 0x32, 0x8e, 0x56, 0xc6, 0xdf, 0xb3, 0x50, 0x4c, 0x04, 0x3b, 0x71, 0x0c, 0x48, 0x14, 0x4c, 0xc3, 0x01, 0x23, 0xae, 0x3f, 0x64, 0x9f, 0x24, 0x8d, 0x54,
0x06, 0x95, 0x20, 0x8f, 0xcd, 0x9e, 0x89, 0xdf, 0x9b, 0x4d, 0xfd, 0x33, 0x74, 0x0c, 0xcf, 0x2d, 0x30, 0x8a, 0x65, 0x5d, 0x29, 0xb2, 0x85, 0x04, 0xed, 0xc2, 0xfa, 0x88, 0xb9, 0xd7, 0x23, 0x45,
0xbb, 0xd1, 0xc5, 0xd8, 0x6c, 0xf4, 0x49, 0x17, 0x93, 0x81, 0xfd, 0xd6, 0xee, 0xfe, 0x60, 0x93, 0x0d, 0x15, 0x1c, 0xaf, 0xcc, 0xbf, 0xe7, 0xa0, 0x94, 0x0a, 0x0c, 0x2a, 0x43, 0x01, 0x5b, 0x5d,
0x8b, 0xfa, 0x87, 0x8e, 0x69, 0xf7, 0x49, 0xd3, 0xec, 0xd7, 0xad, 0x76, 0x4f, 0xd7, 0xd0, 0x01, 0x0b, 0xbf, 0xb7, 0x1a, 0xfa, 0x67, 0xe8, 0x08, 0x9e, 0xd9, 0x4e, 0xbd, 0x83, 0xb1, 0x55, 0xef,
0x54, 0x16, 0x9a, 0xb1, 0xb8, 0xde, 0xe9, 0x0e, 0xec, 0xbe, 0x9e, 0x42, 0x4f, 0x61, 0xbf, 0x65, 0x91, 0x0e, 0x26, 0x7d, 0xe7, 0xad, 0xd3, 0xf9, 0xc1, 0x21, 0x17, 0xb5, 0x0f, 0x6d, 0xcb, 0xe9,
0xd9, 0xf5, 0x36, 0x59, 0xe8, 0x34, 0xda, 0xfd, 0xf7, 0xc4, 0xfc, 0xf1, 0xc2, 0xc2, 0x1f, 0xf4, 0x91, 0x86, 0xd5, 0xab, 0xd9, 0xad, 0xae, 0xae, 0xa1, 0x7d, 0x30, 0xe6, 0x9a, 0x89, 0xb8, 0xd6,
0xf4, 0x3a, 0x85, 0xb3, 0x7e, 0xbb, 0x11, 0x5b, 0xc8, 0xa0, 0x27, 0xf0, 0x48, 0x29, 0xa8, 0x2d, 0xee, 0xf4, 0x9d, 0x9e, 0xbe, 0x86, 0x9e, 0xc0, 0x5e, 0xd3, 0x76, 0x6a, 0x2d, 0x32, 0xd7, 0xa9,
0xa4, 0xdf, 0xed, 0x92, 0x5e, 0xb7, 0x6b, 0xeb, 0x59, 0xb4, 0x0d, 0x65, 0xcb, 0x7e, 0x5f, 0x6f, 0xb7, 0x7a, 0xef, 0x89, 0xf5, 0xe3, 0x85, 0x8d, 0x3f, 0xe8, 0x99, 0x55, 0x0a, 0x67, 0xbd, 0x56,
0x5b, 0x4d, 0x82, 0xcd, 0x7a, 0xbb, 0xa3, 0x6f, 0xa0, 0x1d, 0xd8, 0x5a, 0xd5, 0xcb, 0x09, 0x13, 0x3d, 0xb1, 0x90, 0x45, 0x8f, 0xe1, 0x73, 0xa5, 0xa0, 0xb6, 0x90, 0x5e, 0xa7, 0x43, 0xba, 0x9d,
0xb1, 0x5e, 0xd7, 0xb6, 0xba, 0x36, 0x79, 0x6f, 0xe2, 0x9e, 0xd5, 0xb5, 0xf5, 0x3c, 0xda, 0x03, 0x8e, 0xa3, 0xe7, 0xd0, 0x16, 0x54, 0x6c, 0xe7, 0x7d, 0xad, 0x65, 0x37, 0x08, 0xb6, 0x6a, 0xad,
0xb4, 0x2c, 0x3a, 0xeb, 0xd4, 0x1b, 0x7a, 0x01, 0x3d, 0x82, 0xed, 0x65, 0xfc, 0xad, 0xf9, 0x41, 0xb6, 0xbe, 0x8e, 0xb6, 0x61, 0x73, 0x59, 0x2f, 0x2f, 0x4c, 0x24, 0x7a, 0x1d, 0xc7, 0xee, 0x38,
0x07, 0x54, 0x81, 0x5d, 0xe5, 0x18, 0x79, 0x63, 0xb6, 0xbb, 0x3f, 0x90, 0x8e, 0x65, 0x5b, 0x9d, 0xe4, 0xbd, 0x85, 0xbb, 0x76, 0xc7, 0xd1, 0x0b, 0x68, 0x17, 0xd0, 0xa2, 0xe8, 0xac, 0x5d, 0xab,
0x41, 0x47, 0x2f, 0xa2, 0x5d, 0xd0, 0x5b, 0xa6, 0x49, 0x2c, 0xbb, 0x37, 0x68, 0xb5, 0xac, 0x86, 0xeb, 0x45, 0xf4, 0x39, 0x6c, 0x2d, 0xe2, 0x6f, 0xad, 0x0f, 0x3a, 0x20, 0x03, 0x76, 0xd4, 0xc1,
0x65, 0xda, 0x7d, 0xbd, 0xa4, 0x4e, 0x5e, 0x77, 0xf1, 0xb2, 0xd8, 0xd0, 0x38, 0xab, 0xdb, 0xb6, 0xc8, 0x1b, 0xab, 0xd5, 0xf9, 0x81, 0xb4, 0x6d, 0xc7, 0x6e, 0xf7, 0xdb, 0x7a, 0x09, 0xed, 0x80,
0xd9, 0x26, 0x4d, 0xab, 0x57, 0x7f, 0xd3, 0x36, 0x9b, 0xfa, 0x26, 0x3a, 0x84, 0x27, 0x7d, 0xb3, 0xde, 0xb4, 0x2c, 0x62, 0x3b, 0xdd, 0x7e, 0xb3, 0x69, 0xd7, 0x6d, 0xcb, 0xe9, 0xe9, 0x65, 0xe5,
0x73, 0xd1, 0xc5, 0x75, 0xfc, 0x81, 0xc4, 0xf2, 0x56, 0xdd, 0x6a, 0x0f, 0xb0, 0xa9, 0x6f, 0xa1, 0x79, 0xd5, 0x87, 0x57, 0xc4, 0x86, 0xfa, 0x59, 0xcd, 0x71, 0xac, 0x16, 0x69, 0xd8, 0xdd, 0xda,
0x2f, 0xe0, 0x10, 0x9b, 0xef, 0x06, 0x16, 0x36, 0x9b, 0xc4, 0xee, 0x36, 0x4d, 0xd2, 0x32, 0xeb, 0x9b, 0x96, 0xd5, 0xd0, 0x37, 0xd0, 0x01, 0x3c, 0xee, 0x59, 0xed, 0x8b, 0x0e, 0xae, 0xe1, 0x0f,
0xfd, 0x01, 0x36, 0x49, 0xc7, 0xea, 0xf5, 0x2c, 0xfb, 0x7b, 0x5d, 0x47, 0xcf, 0xe1, 0x68, 0xae, 0x24, 0x91, 0x37, 0x6b, 0x76, 0xab, 0x8f, 0x2d, 0x7d, 0x13, 0x7d, 0x09, 0x07, 0xd8, 0x7a, 0xd7,
0x32, 0x37, 0xb0, 0xa2, 0xb5, 0x2d, 0xee, 0x17, 0xa7, 0xd4, 0x36, 0x7f, 0xec, 0x93, 0x0b, 0xd3, 0xb7, 0xb1, 0xd5, 0x20, 0x4e, 0xa7, 0x61, 0x91, 0xa6, 0x55, 0xeb, 0xf5, 0xb1, 0x45, 0xda, 0x76,
0xc4, 0x3a, 0x42, 0x55, 0xd8, 0x5b, 0x1c, 0xaf, 0x0e, 0x88, 0xce, 0xde, 0x11, 0xb2, 0x0b, 0x13, 0xb7, 0x6b, 0x3b, 0xdf, 0xeb, 0x3a, 0x7a, 0x06, 0x87, 0x33, 0x95, 0x99, 0x81, 0x25, 0xad, 0x2d,
0x77, 0xea, 0xb6, 0x48, 0xf0, 0x92, 0x6c, 0x57, 0xb8, 0xbd, 0x90, 0xad, 0xba, 0xfd, 0x08, 0x21, 0xf1, 0x7d, 0x49, 0x4a, 0x1d, 0xeb, 0xc7, 0x1e, 0xb9, 0xb0, 0x2c, 0xac, 0x23, 0x54, 0x85, 0xdd,
0xd8, 0x4c, 0x64, 0xa5, 0x55, 0xc7, 0xfa, 0x1e, 0xda, 0x85, 0xad, 0xd8, 0x83, 0x58, 0xf1, 0xdf, 0xb9, 0x7b, 0xe5, 0x20, 0xf6, 0xbd, 0x2d, 0x64, 0x17, 0x16, 0x6e, 0xd7, 0x1c, 0x91, 0xe0, 0x05,
0x39, 0xf4, 0x18, 0xd0, 0xc0, 0xc6, 0x66, 0xbd, 0x29, 0x02, 0x32, 0x17, 0xfc, 0x27, 0x77, 0x9e, 0xd9, 0x8e, 0x38, 0xf6, 0x5c, 0xb6, 0x7c, 0xec, 0xcf, 0x11, 0x82, 0x8d, 0x54, 0x56, 0x9a, 0x35,
0xc9, 0xa7, 0xf4, 0xb4, 0xf1, 0xcf, 0x34, 0x94, 0x97, 0xfa, 0x12, 0x1d, 0x40, 0x21, 0x74, 0xae, 0xac, 0xef, 0xa2, 0x1d, 0xd8, 0x4c, 0x4e, 0x90, 0x28, 0xfe, 0x2b, 0x8f, 0x1e, 0x01, 0xea, 0x3b,
0x3d, 0xca, 0x05, 0x73, 0x28, 0x52, 0x59, 0x00, 0xf2, 0x6d, 0x1c, 0x53, 0xc7, 0x53, 0x6c, 0xa6, 0xd8, 0xaa, 0x35, 0x44, 0x40, 0x66, 0x82, 0x7f, 0xe7, 0xcf, 0xb3, 0x85, 0x35, 0x3d, 0x63, 0xfe,
0xd8, 0xbc, 0x20, 0x11, 0xc9, 0x65, 0xfb, 0x90, 0x8b, 0xdf, 0xd7, 0xf4, 0xfc, 0x7d, 0xdd, 0x18, 0x33, 0x03, 0x95, 0x85, 0xbe, 0x44, 0xfb, 0x50, 0x8c, 0xdc, 0x6b, 0x9f, 0x72, 0xc1, 0x1c, 0x8a,
0xaa, 0x77, 0xf5, 0x00, 0x0a, 0x82, 0x32, 0x43, 0x4e, 0x27, 0x53, 0xd9, 0xe2, 0x65, 0xbc, 0x00, 0x54, 0xe6, 0x80, 0xbc, 0x1b, 0x47, 0xd4, 0xf5, 0x15, 0x9b, 0x29, 0x36, 0x2f, 0x4a, 0x44, 0x72,
0xd0, 0x33, 0x28, 0x4f, 0x58, 0x18, 0xd2, 0x6b, 0x46, 0x54, 0x9b, 0x82, 0xd4, 0x28, 0x45, 0x60, 0xd9, 0x1e, 0xe4, 0x93, 0x7b, 0x38, 0x33, 0xbb, 0x87, 0xd7, 0x07, 0xea, 0xfe, 0xdd, 0x87, 0xa2,
0x4b, 0x76, 0xeb, 0x33, 0x88, 0x69, 0x23, 0x52, 0xca, 0x2a, 0xa5, 0x08, 0x54, 0x4a, 0xab, 0x8c, 0xa0, 0xcc, 0x88, 0xd3, 0xf1, 0x44, 0xb6, 0x78, 0x05, 0xcf, 0x01, 0xf4, 0x14, 0x2a, 0x63, 0x16,
0xcd, 0x69, 0xc4, 0x06, 0x49, 0xc6, 0xe6, 0x14, 0xbd, 0x80, 0x6d, 0x45, 0x39, 0x8e, 0xe7, 0x4c, 0x45, 0xf4, 0x9a, 0x11, 0xd5, 0xa6, 0x20, 0x35, 0xca, 0x31, 0xd8, 0x94, 0xdd, 0xfa, 0x14, 0x12,
0x66, 0x13, 0x45, 0x3d, 0x39, 0x49, 0x3d, 0x5b, 0x92, 0x7a, 0x14, 0x2e, 0x19, 0xe8, 0x09, 0xe4, 0xda, 0x88, 0x95, 0x72, 0x4a, 0x29, 0x06, 0x95, 0xd2, 0x32, 0x63, 0x73, 0x1a, 0xb3, 0x41, 0x9a,
0x2f, 0x69, 0xc8, 0xc4, 0x63, 0x11, 0x51, 0x43, 0x4e, 0xac, 0x5b, 0x8c, 0x09, 0x91, 0x78, 0x42, 0xb1, 0x39, 0x45, 0x2f, 0x60, 0x4b, 0x51, 0x8e, 0xeb, 0xbb, 0xe3, 0xe9, 0x58, 0x51, 0x4f, 0x5e,
0x02, 0x41, 0x7a, 0x8a, 0x11, 0x72, 0x57, 0x8c, 0x61, 0x11, 0xcb, 0xf9, 0x09, 0xf4, 0xd3, 0xe2, 0x52, 0xcf, 0xa6, 0xa4, 0x1e, 0x85, 0x4b, 0x06, 0x7a, 0x0c, 0x85, 0x4b, 0x1a, 0x31, 0x71, 0x59,
0x84, 0x62, 0xe2, 0x04, 0x85, 0xcb, 0x13, 0x5e, 0xc0, 0x36, 0xfb, 0xc4, 0x03, 0x4a, 0xfc, 0x29, 0xc4, 0xd4, 0x90, 0x17, 0xeb, 0x26, 0x63, 0x42, 0x24, 0xae, 0x90, 0x50, 0x90, 0x9e, 0x62, 0x84,
0xfd, 0x79, 0xc6, 0xc8, 0x88, 0x72, 0x2a, 0x07, 0xb6, 0x12, 0xde, 0x92, 0x82, 0xae, 0xc4, 0x9b, 0xfc, 0x15, 0x63, 0x58, 0xc4, 0x72, 0xe6, 0x81, 0x7e, 0x9a, 0x7b, 0x28, 0xa5, 0x3c, 0x28, 0x5c,
0x94, 0x53, 0xe3, 0x00, 0xaa, 0x98, 0x85, 0x8c, 0x77, 0x9c, 0x30, 0x74, 0x7c, 0xaf, 0xe1, 0x7b, 0x7a, 0x78, 0x01, 0x5b, 0xec, 0x13, 0x0f, 0x29, 0x09, 0x26, 0xf4, 0xe7, 0x29, 0x23, 0x43, 0xca,
0x3c, 0xf0, 0xdd, 0xe8, 0xcd, 0x31, 0x0e, 0x61, 0x7f, 0xad, 0x54, 0x3d, 0x1a, 0x62, 0xf3, 0xbb, 0xa9, 0x1c, 0xec, 0xca, 0x78, 0x53, 0x0a, 0x3a, 0x12, 0x6f, 0x50, 0x4e, 0xcd, 0x7d, 0xa8, 0x62,
0x19, 0x0b, 0x6e, 0xd7, 0x6f, 0x7e, 0x07, 0xfb, 0x6b, 0xa5, 0xd1, 0x8b, 0xf3, 0x12, 0xb2, 0x53, 0x16, 0x31, 0xde, 0x76, 0xa3, 0xc8, 0x0d, 0xfc, 0x7a, 0xe0, 0xf3, 0x30, 0xf0, 0xe2, 0x3b, 0xc7,
0xea, 0x04, 0x61, 0x25, 0x25, 0xa7, 0x98, 0xbd, 0xa5, 0xa7, 0xdf, 0x09, 0xce, 0x9c, 0x90, 0xfb, 0x3c, 0x80, 0xbd, 0x95, 0x52, 0x75, 0x69, 0x88, 0xcd, 0xef, 0xa6, 0x2c, 0xbc, 0x5d, 0xbd, 0xf9,
0xc1, 0x2d, 0x56, 0x4a, 0xe7, 0x99, 0xbc, 0xa6, 0xa7, 0x8c, 0x3f, 0x6b, 0x50, 0x4c, 0x08, 0x45, 0x1d, 0xec, 0xad, 0x94, 0xc6, 0x37, 0xce, 0x4b, 0xc8, 0x4d, 0xa8, 0x1b, 0x46, 0xc6, 0x9a, 0x9c,
0x1d, 0x78, 0xfe, 0x88, 0x91, 0xab, 0xc0, 0x9f, 0xc4, 0x15, 0x36, 0x07, 0x50, 0x05, 0x72, 0x72, 0x62, 0x76, 0x17, 0xae, 0x7e, 0x37, 0x3c, 0x73, 0x23, 0x1e, 0x84, 0xb7, 0x58, 0x29, 0x9d, 0x67,
0xc1, 0xfd, 0xa8, 0xbc, 0xe2, 0x25, 0xfa, 0x1a, 0x72, 0x63, 0x65, 0x42, 0x66, 0xa9, 0x58, 0xdb, 0x0b, 0x9a, 0xbe, 0x66, 0xfe, 0x59, 0x83, 0x52, 0x4a, 0x28, 0xea, 0xc0, 0x0f, 0x86, 0x8c, 0x5c,
0x59, 0x39, 0x5d, 0xc4, 0x06, 0xc7, 0x3a, 0xe7, 0x99, 0x7c, 0x5a, 0xcf, 0x9c, 0x67, 0xf2, 0x19, 0x85, 0xc1, 0x38, 0xa9, 0xb0, 0x19, 0x80, 0x0c, 0xc8, 0xcb, 0x05, 0x0f, 0xe2, 0xf2, 0x4a, 0x96,
0x3d, 0x7b, 0x9e, 0xc9, 0x67, 0xf5, 0x8d, 0xf3, 0x4c, 0x7e, 0x43, 0xcf, 0x19, 0x7f, 0xd5, 0x20, 0xe8, 0x6b, 0xc8, 0x8f, 0x94, 0x09, 0x99, 0xa5, 0xd2, 0xe9, 0xf6, 0x92, 0x77, 0x11, 0x1b, 0x9c,
0x1f, 0x6b, 0x2f, 0xd7, 0xa4, 0x1a, 0x00, 0x12, 0x35, 0x59, 0x83, 0xdd, 0x89, 0xe3, 0x91, 0x29, 0xe8, 0x9c, 0x67, 0x0b, 0x19, 0x3d, 0x7b, 0x9e, 0x2d, 0x64, 0xf5, 0xdc, 0x79, 0xb6, 0x90, 0xd3,
0xf3, 0xa8, 0xeb, 0xfc, 0x91, 0x91, 0xe5, 0xf9, 0x62, 0xad, 0x0c, 0xbd, 0x86, 0xc7, 0x2e, 0x0d, 0xd7, 0xcf, 0xb3, 0x85, 0x75, 0x3d, 0x6f, 0xfe, 0x55, 0x83, 0x42, 0xa2, 0xbd, 0x58, 0x93, 0x6a,
0x39, 0xa1, 0x9c, 0xb3, 0xc9, 0x94, 0x93, 0x70, 0x36, 0x1c, 0xb2, 0x30, 0xbc, 0x9a, 0xb9, 0xb2, 0x00, 0x48, 0xd5, 0xe4, 0x29, 0xec, 0x8c, 0x5d, 0x9f, 0x4c, 0x98, 0x4f, 0x3d, 0xf7, 0x8f, 0x8c,
0x25, 0xf2, 0xf8, 0x3e, 0xb1, 0x31, 0x81, 0xc7, 0x32, 0xf4, 0x17, 0x81, 0x7f, 0x49, 0x2f, 0x1d, 0x2c, 0xce, 0x17, 0x2b, 0x65, 0xe8, 0x35, 0x3c, 0x92, 0x53, 0x26, 0xe5, 0x9c, 0x8d, 0x27, 0x9c,
0xd7, 0xe1, 0xb7, 0xf1, 0x18, 0x71, 0x00, 0x05, 0x11, 0x1c, 0xe2, 0xc5, 0xef, 0x72, 0x09, 0x2f, 0x44, 0xd3, 0xc1, 0x80, 0x45, 0xd1, 0xd5, 0xd4, 0x93, 0x2d, 0x51, 0xc0, 0xf7, 0x89, 0xcd, 0x31,
0x00, 0x11, 0x32, 0xee, 0x2b, 0x59, 0x14, 0xb2, 0x68, 0x29, 0x06, 0x84, 0xf9, 0xf0, 0x9f, 0x96, 0x3c, 0x92, 0xa1, 0xbf, 0x08, 0x83, 0x4b, 0x7a, 0xe9, 0x7a, 0x2e, 0xbf, 0x4d, 0xc6, 0x88, 0x7d,
0x4e, 0xcf, 0xd7, 0xc6, 0x0d, 0x54, 0xee, 0x1e, 0x17, 0xa5, 0xf9, 0x08, 0x8a, 0xd3, 0x05, 0x2c, 0x28, 0x8a, 0xe0, 0x10, 0x3f, 0xb9, 0x97, 0xcb, 0x78, 0x0e, 0x88, 0x90, 0xf1, 0x40, 0xc9, 0xe2,
0x4f, 0xd4, 0x70, 0x12, 0x4a, 0x26, 0x23, 0xf5, 0xcb, 0xc9, 0x30, 0xfe, 0xa6, 0xc1, 0xf6, 0x9b, 0x90, 0xc5, 0x4b, 0x31, 0x20, 0xcc, 0x1e, 0x09, 0x19, 0x79, 0xe8, 0xd9, 0xda, 0xbc, 0x01, 0xe3,
0x99, 0xe3, 0x8e, 0x96, 0xa6, 0xa3, 0xe4, 0xb7, 0x89, 0xb6, 0xfc, 0x6d, 0xb2, 0xee, 0xc3, 0x23, 0xae, 0xbb, 0x38, 0xcd, 0x87, 0x50, 0x9a, 0xcc, 0x61, 0xe9, 0x51, 0xc3, 0x69, 0x28, 0x9d, 0x8c,
0xb5, 0xf6, 0xc3, 0x63, 0xdd, 0x70, 0x9f, 0xbe, 0x77, 0xb8, 0x7f, 0x0a, 0xc5, 0xb1, 0x3f, 0x25, 0xb5, 0x5f, 0x4e, 0x86, 0xf9, 0x37, 0x0d, 0xb6, 0xde, 0x4c, 0x5d, 0x6f, 0xb8, 0x30, 0x1d, 0xa5,
0xd3, 0xd9, 0xe5, 0x0d, 0xbb, 0x0d, 0x2b, 0x99, 0xa3, 0xf4, 0x71, 0x09, 0xc3, 0xd8, 0x9f, 0x5e, 0xdf, 0x30, 0xda, 0xe2, 0x1b, 0x66, 0xd5, 0x03, 0x65, 0x6d, 0xe5, 0x03, 0x65, 0xd5, 0x23, 0x20,
0x28, 0xc4, 0x78, 0x0d, 0x28, 0xe9, 0x68, 0x14, 0x90, 0xf9, 0x90, 0xa6, 0xdd, 0x3b, 0xa4, 0xbd, 0x73, 0xef, 0x23, 0xe0, 0x09, 0x94, 0xe6, 0xf3, 0x7f, 0x64, 0x64, 0x0f, 0x33, 0x47, 0x65, 0x0c,
0xf8, 0x8b, 0x06, 0xa5, 0xe4, 0xfc, 0x8b, 0xca, 0x50, 0xb0, 0x6c, 0xd2, 0x6a, 0x5b, 0xdf, 0x9f, 0xa3, 0x64, 0xf8, 0x8f, 0xcc, 0xd7, 0x80, 0xd2, 0x07, 0x8d, 0x03, 0x32, 0x1b, 0xd2, 0xb4, 0x7b,
0xf5, 0xf5, 0xcf, 0xc4, 0xb2, 0x37, 0x68, 0x34, 0x4c, 0xb3, 0x69, 0x36, 0x75, 0x4d, 0x70, 0xb8, 0x87, 0xb4, 0x17, 0x7f, 0xd1, 0xa0, 0x9c, 0x9e, 0x7f, 0x51, 0x05, 0x8a, 0xb6, 0x43, 0x9a, 0x2d,
0xa0, 0x63, 0xb3, 0x49, 0xfa, 0x56, 0xc7, 0xec, 0x0e, 0xc4, 0xeb, 0xbe, 0x03, 0x5b, 0x11, 0x66, 0xfb, 0xfb, 0xb3, 0x9e, 0xfe, 0x99, 0x58, 0x76, 0xfb, 0xf5, 0xba, 0x65, 0x35, 0xac, 0x86, 0xae,
0x77, 0x09, 0xee, 0x0e, 0xfa, 0xa6, 0x9e, 0x46, 0x3a, 0x94, 0x22, 0xd0, 0xc4, 0xb8, 0x8b, 0xf5, 0x09, 0x0e, 0x17, 0x74, 0x6c, 0x35, 0x48, 0xcf, 0x6e, 0x5b, 0x9d, 0xbe, 0xb8, 0xdd, 0xb7, 0x61,
0x8c, 0x78, 0x92, 0x22, 0xe4, 0xee, 0xa4, 0x10, 0x0f, 0x12, 0xd9, 0xda, 0x3f, 0xb2, 0xb0, 0x21, 0x33, 0xc6, 0x9c, 0x0e, 0xc1, 0x9d, 0x7e, 0xcf, 0xd2, 0x33, 0x48, 0x87, 0x72, 0x0c, 0x5a, 0x18,
0x1d, 0x0c, 0xd0, 0x19, 0x14, 0x13, 0x1f, 0x19, 0xe8, 0xf0, 0xc1, 0x8f, 0x8f, 0x6a, 0x65, 0xfd, 0x77, 0xb0, 0x9e, 0x15, 0x57, 0x52, 0x8c, 0xdc, 0x9d, 0x14, 0x92, 0x41, 0x22, 0x77, 0xfa, 0x8f,
0x40, 0x3f, 0x0b, 0x5f, 0x69, 0xe8, 0x1c, 0x4a, 0xc9, 0xcf, 0x08, 0x94, 0x1c, 0x0f, 0xd7, 0x7c, 0x1c, 0xac, 0xcb, 0x03, 0x86, 0xe8, 0x0c, 0x4a, 0xa9, 0x47, 0x06, 0x3a, 0x78, 0xf0, 0xf1, 0x51,
0x5f, 0x3c, 0x68, 0xeb, 0x2d, 0xe8, 0x66, 0xc8, 0x9d, 0x89, 0x18, 0x07, 0xa3, 0x01, 0x1d, 0x55, 0x35, 0x56, 0x0f, 0xf4, 0xd3, 0xe8, 0x95, 0x86, 0xce, 0xa1, 0x9c, 0x7e, 0x46, 0xa0, 0xf4, 0x78,
0x13, 0xfa, 0x2b, 0x53, 0x7f, 0x75, 0x7f, 0xad, 0x2c, 0xca, 0x50, 0x5b, 0x5d, 0x31, 0x1a, 0x91, 0xb8, 0xe2, 0x7d, 0xf1, 0xa0, 0xad, 0xb7, 0xa0, 0x5b, 0x11, 0x77, 0xc7, 0x62, 0x1c, 0x8c, 0x07,
0xef, 0x5c, 0x71, 0x79, 0x2e, 0xaf, 0x7e, 0x7e, 0x9f, 0x38, 0xb2, 0x36, 0x82, 0x9d, 0x35, 0x1c, 0x74, 0x54, 0x4d, 0xe9, 0x2f, 0x4d, 0xfd, 0xd5, 0xbd, 0x95, 0xb2, 0x38, 0x43, 0x2d, 0xf5, 0x89,
0x8a, 0x7e, 0x95, 0xf4, 0xe0, 0x5e, 0x06, 0xae, 0x7e, 0xf9, 0x4b, 0x6a, 0x8b, 0x53, 0xd6, 0x90, 0xf1, 0x88, 0x7c, 0xe7, 0x13, 0x17, 0xe7, 0xf2, 0xea, 0x17, 0xf7, 0x89, 0x63, 0x6b, 0x43, 0xd8,
0xed, 0xd2, 0x29, 0xf7, 0x53, 0xf5, 0xd2, 0x29, 0x0f, 0x71, 0xf6, 0x4f, 0xa0, 0xaf, 0x36, 0x3a, 0x5e, 0xc1, 0xa1, 0xe8, 0x57, 0xe9, 0x13, 0xdc, 0xcb, 0xc0, 0xd5, 0xe7, 0xbf, 0xa4, 0x36, 0xf7,
0x32, 0x56, 0xf7, 0xde, 0x25, 0x9d, 0xea, 0xb3, 0x07, 0x75, 0x22, 0xe3, 0x16, 0xc0, 0xa2, 0x5d, 0xb2, 0x82, 0x6c, 0x17, 0xbc, 0xdc, 0x4f, 0xd5, 0x0b, 0x5e, 0x1e, 0xe2, 0xec, 0x9f, 0x40, 0x5f,
0xd0, 0x41, 0x62, 0xcb, 0x9d, 0x76, 0xaf, 0x1e, 0xde, 0x23, 0x55, 0xa6, 0xde, 0xfc, 0xfa, 0xf7, 0x6e, 0x74, 0x64, 0x2e, 0xef, 0xbd, 0x4b, 0x3a, 0xd5, 0xa7, 0x0f, 0xea, 0xc4, 0xc6, 0x6d, 0x80,
0xa7, 0xd7, 0x0e, 0x1f, 0xcf, 0x2e, 0x4f, 0x86, 0xfe, 0xe4, 0xd4, 0x15, 0x43, 0xb5, 0xe7, 0x78, 0x79, 0xbb, 0xa0, 0xfd, 0xd4, 0x96, 0x3b, 0xed, 0x5e, 0x3d, 0xb8, 0x47, 0xaa, 0x4c, 0xbd, 0xf9,
0xd7, 0x1e, 0xe3, 0x7f, 0xf0, 0x83, 0x9b, 0x53, 0xd7, 0x1b, 0x9d, 0xca, 0xae, 0x3b, 0x9d, 0x5b, 0xf5, 0xef, 0x4f, 0xae, 0x5d, 0x3e, 0x9a, 0x5e, 0x1e, 0x0f, 0x82, 0xf1, 0x89, 0x27, 0x86, 0x6a,
0xb9, 0xdc, 0x90, 0xff, 0x20, 0xf9, 0xcd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x21, 0xc7, 0x78, 0xdf, 0xf5, 0xaf, 0x7d, 0xc6, 0xff, 0x10, 0x84, 0x37, 0x27, 0x9e, 0x3f, 0x3c, 0x91, 0x5d, 0x77,
0xa5, 0x50, 0x11, 0x00, 0x00, 0x32, 0xb3, 0x72, 0xb9, 0x2e, 0xff, 0x91, 0xf2, 0x9b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x1f,
0xb3, 0x05, 0x24, 0x78, 0x11, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.

@ -77,6 +77,11 @@ message SendPaymentRequest {
*/ */
uint64 outgoing_chan_id = 8 [jstype = JS_STRING]; uint64 outgoing_chan_id = 8 [jstype = JS_STRING];
/**
The pubkey of the last hop of the route. If empty, any hop may be used.
*/
bytes last_hop_pubkey = 14;
/** /**
An optional maximum total time lock for the route. This should not exceed An optional maximum total time lock for the route. This should not exceed
lnd's `--max-cltv-expiry` setting. If zero, then the value of lnd's `--max-cltv-expiry` setting. If zero, then the value of

@ -497,6 +497,17 @@ func (r *RouterBackend) extractIntentFromSendRequest(
payIntent.OutgoingChannelID = &rpcPayReq.OutgoingChanId payIntent.OutgoingChannelID = &rpcPayReq.OutgoingChanId
} }
// Pass along a last hop restriction if specified.
if len(rpcPayReq.LastHopPubkey) > 0 {
lastHop, err := route.NewVertexFromBytes(
rpcPayReq.LastHopPubkey,
)
if err != nil {
return nil, err
}
payIntent.LastHop = &lastHop
}
// Take the CLTV limit from the request if set, otherwise use the max. // Take the CLTV limit from the request if set, otherwise use the max.
cltvLimit, err := ValidateCLTVLimit( cltvLimit, err := ValidateCLTVLimit(
uint32(rpcPayReq.CltvLimit), r.MaxTotalTimelock, uint32(rpcPayReq.CltvLimit), r.MaxTotalTimelock,

@ -1087,6 +1087,9 @@ type SendRequest struct {
//any channel may be used. //any channel may be used.
OutgoingChanId uint64 `protobuf:"varint,9,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"` OutgoingChanId uint64 `protobuf:"varint,9,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"`
//* //*
//The pubkey of the last hop of the route. If empty, any hop may be used.
LastHopPubkey []byte `protobuf:"bytes,13,opt,name=last_hop_pubkey,json=lastHopPubkey,proto3" json:"last_hop_pubkey,omitempty"`
//*
//An optional maximum total time lock for the route. This should not exceed //An optional maximum total time lock for the route. This should not exceed
//lnd's `--max-cltv-expiry` setting. If zero, then the value of //lnd's `--max-cltv-expiry` setting. If zero, then the value of
//`--max-cltv-expiry` is enforced. //`--max-cltv-expiry` is enforced.
@ -1199,6 +1202,13 @@ func (m *SendRequest) GetOutgoingChanId() uint64 {
return 0 return 0
} }
func (m *SendRequest) GetLastHopPubkey() []byte {
if m != nil {
return m.LastHopPubkey
}
return nil
}
func (m *SendRequest) GetCltvLimit() uint32 { func (m *SendRequest) GetCltvLimit() uint32 {
if m != nil { if m != nil {
return m.CltvLimit return m.CltvLimit
@ -9506,552 +9516,553 @@ func init() {
func init() { proto.RegisterFile("rpc.proto", fileDescriptor_77a6da22d6a3feb1) } func init() { proto.RegisterFile("rpc.proto", fileDescriptor_77a6da22d6a3feb1) }
var fileDescriptor_77a6da22d6a3feb1 = []byte{ var fileDescriptor_77a6da22d6a3feb1 = []byte{
// 8714 bytes of a gzipped FileDescriptorProto // 8735 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7d, 0x5d, 0x6c, 0x24, 0x49, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7d, 0x5d, 0x6c, 0x1c, 0x5b,
0xb6, 0x56, 0x67, 0xfd, 0xd8, 0x55, 0xa7, 0xca, 0x76, 0x39, 0xec, 0xb6, 0xab, 0x6b, 0x7a, 0x7a, 0xb6, 0x56, 0xaa, 0x7f, 0xec, 0xee, 0xd5, 0x6d, 0xbb, 0xbd, 0xed, 0xd8, 0x9d, 0x3e, 0x39, 0x39,
0x7a, 0x72, 0xfb, 0x4e, 0xf7, 0xf6, 0xce, 0x76, 0xf7, 0x78, 0x77, 0x87, 0xb9, 0x33, 0x5c, 0x2e, 0x39, 0x35, 0xb9, 0x49, 0x26, 0x73, 0x26, 0xc9, 0xf1, 0xcc, 0x1c, 0xce, 0x3d, 0xe1, 0x72, 0x71,
0x6e, 0xdb, 0xdd, 0xee, 0x1d, 0xb7, 0xdb, 0x9b, 0xee, 0xde, 0x66, 0x77, 0xef, 0x55, 0x6d, 0xba, 0x6c, 0x27, 0xce, 0x1c, 0xc7, 0xf1, 0x94, 0x93, 0x09, 0x33, 0x73, 0xaf, 0x7a, 0xca, 0xdd, 0xdb,
0x2a, 0x6c, 0xe7, 0x76, 0x55, 0x66, 0x6d, 0x66, 0x96, 0xdd, 0xde, 0x61, 0x90, 0x40, 0x08, 0x21, 0x76, 0x4d, 0xba, 0xab, 0x7a, 0xaa, 0xaa, 0x9d, 0x78, 0x0e, 0x07, 0x09, 0x84, 0x10, 0xe2, 0x05,
0x5e, 0x60, 0x41, 0x48, 0x80, 0x40, 0x57, 0xda, 0x8b, 0xc4, 0xbd, 0xe2, 0x01, 0x5e, 0x90, 0x00, 0x0d, 0x08, 0x09, 0x10, 0xe8, 0x4a, 0x73, 0x91, 0xb8, 0x57, 0x3c, 0xc0, 0x0b, 0xd2, 0x05, 0xdd,
0xdd, 0x37, 0x84, 0x90, 0x90, 0x10, 0x0f, 0x3c, 0x20, 0xf1, 0xc0, 0x0a, 0x81, 0x84, 0xae, 0x78, 0x37, 0x84, 0x90, 0x90, 0x10, 0x0f, 0x3c, 0x20, 0xf1, 0xc0, 0x08, 0x81, 0x84, 0xae, 0x78, 0x43,
0x43, 0xe2, 0x1d, 0x9d, 0x13, 0x3f, 0x19, 0x91, 0x99, 0xd5, 0xee, 0xd9, 0x5d, 0x78, 0x72, 0xc5, 0xe2, 0x1d, 0xad, 0xb5, 0x7f, 0x6a, 0xef, 0xaa, 0xea, 0x38, 0x67, 0x66, 0xe0, 0xc9, 0xbd, 0xbf,
0x17, 0x91, 0xf1, 0x7b, 0xce, 0x89, 0x73, 0x4e, 0x9c, 0x08, 0x43, 0x33, 0x9e, 0x0c, 0xee, 0x4d, 0xb5, 0x6b, 0xff, 0xae, 0xb5, 0xf6, 0xda, 0x6b, 0xaf, 0xbd, 0x0d, 0xcd, 0x78, 0x32, 0xb8, 0x3b,
0xe2, 0x28, 0x8d, 0x58, 0x7d, 0x14, 0xc6, 0x93, 0x41, 0xef, 0xfa, 0x49, 0x14, 0x9d, 0x8c, 0xf8, 0x89, 0xa3, 0x34, 0x62, 0xf5, 0x51, 0x18, 0x4f, 0x06, 0xbd, 0xab, 0x27, 0x51, 0x74, 0x32, 0xe2,
0x7d, 0x7f, 0x12, 0xdc, 0xf7, 0xc3, 0x30, 0x4a, 0xfd, 0x34, 0x88, 0xc2, 0x44, 0x14, 0x72, 0x7f, 0xf7, 0xfc, 0x49, 0x70, 0xcf, 0x0f, 0xc3, 0x28, 0xf5, 0xd3, 0x20, 0x0a, 0x13, 0x91, 0xc9, 0xfd,
0x0c, 0x8b, 0x8f, 0x79, 0x78, 0xc8, 0xf9, 0xd0, 0xe3, 0x3f, 0x9d, 0xf2, 0x24, 0x65, 0xdf, 0x80, 0x31, 0x2c, 0x3e, 0xe6, 0xe1, 0x21, 0xe7, 0x43, 0x8f, 0xff, 0x74, 0xca, 0x93, 0x94, 0x7d, 0x03,
0x65, 0x9f, 0xff, 0x8c, 0xf3, 0x61, 0x7f, 0xe2, 0x27, 0xc9, 0xe4, 0x34, 0xf6, 0x13, 0xde, 0x75, 0x96, 0x7d, 0xfe, 0x33, 0xce, 0x87, 0xfd, 0x89, 0x9f, 0x24, 0x93, 0xd3, 0xd8, 0x4f, 0x78, 0xd7,
0x6e, 0x3a, 0x77, 0xda, 0x5e, 0x47, 0x64, 0x1c, 0x68, 0x9c, 0xbd, 0x0f, 0xed, 0x04, 0x8b, 0xf2, 0xb9, 0xee, 0xdc, 0x6e, 0x7b, 0x1d, 0x41, 0x38, 0xd0, 0x38, 0xfb, 0x10, 0xda, 0x09, 0x66, 0xe5,
0x30, 0x8d, 0xa3, 0xc9, 0x45, 0xb7, 0x42, 0xe5, 0x5a, 0x88, 0xed, 0x08, 0xc8, 0x1d, 0xc1, 0x92, 0x61, 0x1a, 0x47, 0x93, 0xf3, 0x6e, 0x85, 0xf2, 0xb5, 0x10, 0xdb, 0x11, 0x90, 0x3b, 0x82, 0x25,
0x6e, 0x21, 0x99, 0x44, 0x61, 0xc2, 0xd9, 0x03, 0x58, 0x1d, 0x04, 0x93, 0x53, 0x1e, 0xf7, 0xe9, 0x5d, 0x43, 0x32, 0x89, 0xc2, 0x84, 0xb3, 0xfb, 0xb0, 0x3a, 0x08, 0x26, 0xa7, 0x3c, 0xee, 0xd3,
0xe3, 0x71, 0xc8, 0xc7, 0x51, 0x18, 0x0c, 0xba, 0xce, 0xcd, 0xea, 0x9d, 0xa6, 0xc7, 0x44, 0x1e, 0xc7, 0xe3, 0x90, 0x8f, 0xa3, 0x30, 0x18, 0x74, 0x9d, 0xeb, 0xd5, 0xdb, 0x4d, 0x8f, 0x09, 0x1a,
0x7e, 0xf1, 0x54, 0xe6, 0xb0, 0xdb, 0xb0, 0xc4, 0x43, 0x81, 0xf3, 0x21, 0x7d, 0x25, 0x9b, 0x5a, 0x7e, 0xf1, 0x54, 0x52, 0xd8, 0x2d, 0x58, 0xe2, 0xa1, 0xc0, 0xf9, 0x90, 0xbe, 0x92, 0x55, 0x2d,
0xcc, 0x60, 0xfc, 0xc0, 0xfd, 0xeb, 0x15, 0x58, 0x7e, 0x12, 0x06, 0xe9, 0x4b, 0x7f, 0x34, 0xe2, 0x66, 0x30, 0x7e, 0xe0, 0xfe, 0xcd, 0x0a, 0x2c, 0x3f, 0x09, 0x83, 0xf4, 0xa5, 0x3f, 0x1a, 0xf1,
0xa9, 0x1a, 0xd3, 0x6d, 0x58, 0x3a, 0x27, 0x80, 0xc6, 0x74, 0x1e, 0xc5, 0x43, 0x39, 0xa2, 0x45, 0x54, 0xf5, 0xe9, 0x16, 0x2c, 0xbd, 0x26, 0x80, 0xfa, 0xf4, 0x3a, 0x8a, 0x87, 0xb2, 0x47, 0x8b,
0x01, 0x1f, 0x48, 0x74, 0x66, 0xcf, 0x2a, 0x33, 0x7b, 0x56, 0x3a, 0x5d, 0xd5, 0x19, 0xd3, 0x75, 0x02, 0x3e, 0x90, 0xe8, 0xcc, 0x96, 0x55, 0x66, 0xb6, 0xac, 0x74, 0xb8, 0xaa, 0x33, 0x86, 0xeb,
0x1b, 0x96, 0x62, 0x3e, 0x88, 0xce, 0x78, 0x7c, 0xd1, 0x3f, 0x0f, 0xc2, 0x61, 0x74, 0xde, 0xad, 0x16, 0x2c, 0xc5, 0x7c, 0x10, 0x9d, 0xf1, 0xf8, 0xbc, 0xff, 0x3a, 0x08, 0x87, 0xd1, 0xeb, 0x6e,
0xdd, 0x74, 0xee, 0xd4, 0xbd, 0x45, 0x05, 0xbf, 0x24, 0x94, 0x3d, 0x84, 0xa5, 0xc1, 0xa9, 0x1f, 0xed, 0xba, 0x73, 0xbb, 0xee, 0x2d, 0x2a, 0xf8, 0x25, 0xa1, 0xec, 0x21, 0x2c, 0x0d, 0x4e, 0xfd,
0x86, 0x7c, 0xd4, 0x3f, 0xf2, 0x07, 0xaf, 0xa6, 0x93, 0xa4, 0x5b, 0xbf, 0xe9, 0xdc, 0x69, 0x6d, 0x30, 0xe4, 0xa3, 0xfe, 0x91, 0x3f, 0x78, 0x35, 0x9d, 0x24, 0xdd, 0xfa, 0x75, 0xe7, 0x76, 0x6b,
0x5c, 0xbb, 0x47, 0xab, 0x7a, 0x6f, 0xeb, 0xd4, 0x0f, 0x1f, 0x52, 0xce, 0x61, 0xe8, 0x4f, 0x92, 0xe3, 0xca, 0x5d, 0x9a, 0xd5, 0xbb, 0x5b, 0xa7, 0x7e, 0xf8, 0x90, 0x28, 0x87, 0xa1, 0x3f, 0x49,
0xd3, 0x28, 0xf5, 0x16, 0xe5, 0x17, 0x02, 0x4e, 0xdc, 0x55, 0x60, 0xe6, 0x4c, 0x88, 0xb9, 0x77, 0x4e, 0xa3, 0xd4, 0x5b, 0x94, 0x5f, 0x08, 0x38, 0x71, 0x57, 0x81, 0x99, 0x23, 0x21, 0xc6, 0xde,
0xff, 0xa9, 0x03, 0x2b, 0x2f, 0xc2, 0x51, 0x34, 0x78, 0xf5, 0x2b, 0x4e, 0x51, 0xc9, 0x18, 0x2a, 0xfd, 0x67, 0x0e, 0xac, 0xbc, 0x08, 0x47, 0xd1, 0xe0, 0xd5, 0xaf, 0x38, 0x44, 0x25, 0x7d, 0xa8,
0x6f, 0x3b, 0x86, 0xea, 0x57, 0x1d, 0xc3, 0x1a, 0xac, 0xda, 0x9d, 0x95, 0xa3, 0xe0, 0x70, 0x15, 0xbc, 0x6b, 0x1f, 0xaa, 0x5f, 0xb5, 0x0f, 0x6b, 0xb0, 0x6a, 0x37, 0x56, 0xf6, 0x82, 0xc3, 0x65,
0xbf, 0x3e, 0xe1, 0xaa, 0x5b, 0x6a, 0x18, 0x5f, 0x87, 0xce, 0x60, 0x1a, 0xc7, 0x3c, 0x2c, 0x8c, 0xfc, 0xfa, 0x84, 0xab, 0x66, 0xa9, 0x6e, 0x7c, 0x1d, 0x3a, 0x83, 0x69, 0x1c, 0xf3, 0xb0, 0xd0,
0x63, 0x49, 0xe2, 0x7a, 0x20, 0xef, 0x43, 0x3b, 0xe4, 0xe7, 0x59, 0x31, 0x49, 0xbb, 0x21, 0x3f, 0x8f, 0x25, 0x89, 0xeb, 0x8e, 0x7c, 0x08, 0xed, 0x90, 0xbf, 0xce, 0xb2, 0x49, 0xde, 0x0d, 0xf9,
0x57, 0x45, 0xdc, 0x2e, 0xac, 0xe5, 0x9b, 0x91, 0x1d, 0xf8, 0x6f, 0x0e, 0xd4, 0x5e, 0xa4, 0xaf, 0x6b, 0x95, 0xc5, 0xed, 0xc2, 0x5a, 0xbe, 0x1a, 0xd9, 0x80, 0xff, 0xe6, 0x40, 0xed, 0x45, 0xfa,
0x23, 0x76, 0x0f, 0x6a, 0xe9, 0xc5, 0x44, 0x70, 0xc8, 0xe2, 0x06, 0x93, 0x43, 0xdb, 0x1c, 0x0e, 0x26, 0x62, 0x77, 0xa1, 0x96, 0x9e, 0x4f, 0x84, 0x84, 0x2c, 0x6e, 0x30, 0xd9, 0xb5, 0xcd, 0xe1,
0x63, 0x9e, 0x24, 0xcf, 0x2f, 0x26, 0xdc, 0x6b, 0xfb, 0x22, 0xd1, 0xc7, 0x72, 0xac, 0x0b, 0xf3, 0x30, 0xe6, 0x49, 0xf2, 0xfc, 0x7c, 0xc2, 0xbd, 0xb6, 0x2f, 0x12, 0x7d, 0xcc, 0xc7, 0xba, 0x30,
0x32, 0x4d, 0x0d, 0x36, 0x3d, 0x95, 0x64, 0x37, 0x00, 0xfc, 0x71, 0x34, 0x0d, 0xd3, 0x7e, 0xe2, 0x2f, 0xd3, 0x54, 0x61, 0xd3, 0x53, 0x49, 0x76, 0x0d, 0xc0, 0x1f, 0x47, 0xd3, 0x30, 0xed, 0x27,
0xa7, 0x34, 0x55, 0x55, 0xcf, 0x40, 0xd8, 0x75, 0x68, 0x4e, 0x5e, 0xf5, 0x93, 0x41, 0x1c, 0x4c, 0x7e, 0x4a, 0x43, 0x55, 0xf5, 0x0c, 0x84, 0x5d, 0x85, 0xe6, 0xe4, 0x55, 0x3f, 0x19, 0xc4, 0xc1,
0x52, 0x22, 0x9b, 0xa6, 0x97, 0x01, 0xec, 0x1b, 0xd0, 0x88, 0xa6, 0xe9, 0x24, 0x0a, 0xc2, 0x54, 0x24, 0x25, 0xb6, 0x69, 0x7a, 0x19, 0xc0, 0xbe, 0x01, 0x8d, 0x68, 0x9a, 0x4e, 0xa2, 0x20, 0x4c,
0x92, 0xca, 0x92, 0xec, 0xcb, 0xb3, 0x69, 0x7a, 0x80, 0xb0, 0xa7, 0x0b, 0xb0, 0x5b, 0xb0, 0x30, 0x25, 0xab, 0x2c, 0xc9, 0xb6, 0x3c, 0x9b, 0xa6, 0x07, 0x08, 0x7b, 0x3a, 0x03, 0xbb, 0x01, 0x0b,
0x88, 0xc2, 0xe3, 0x20, 0x1e, 0x0b, 0x61, 0xd0, 0x9d, 0xa3, 0xd6, 0x6c, 0xd0, 0xfd, 0x57, 0x15, 0x83, 0x28, 0x3c, 0x0e, 0xe2, 0xb1, 0x50, 0x06, 0xdd, 0x39, 0xaa, 0xcd, 0x06, 0xdd, 0x7f, 0x55,
0x68, 0x3d, 0x8f, 0xfd, 0x30, 0xf1, 0x07, 0x08, 0x60, 0xd7, 0xd3, 0xd7, 0xfd, 0x53, 0x3f, 0x39, 0x81, 0xd6, 0xf3, 0xd8, 0x0f, 0x13, 0x7f, 0x80, 0x00, 0x36, 0x3d, 0x7d, 0xd3, 0x3f, 0xf5, 0x93,
0xa5, 0xd1, 0x36, 0x3d, 0x95, 0x64, 0x6b, 0x30, 0x27, 0x3a, 0x4a, 0x63, 0xaa, 0x7a, 0x32, 0xc5, 0x53, 0xea, 0x6d, 0xd3, 0x53, 0x49, 0xb6, 0x06, 0x73, 0xa2, 0xa1, 0xd4, 0xa7, 0xaa, 0x27, 0x53,
0x3e, 0x84, 0xe5, 0x70, 0x3a, 0xee, 0xdb, 0x6d, 0x55, 0x89, 0x5a, 0x8a, 0x19, 0x38, 0x01, 0x47, 0xec, 0x23, 0x58, 0x0e, 0xa7, 0xe3, 0xbe, 0x5d, 0x57, 0x95, 0xb8, 0xa5, 0x48, 0xc0, 0x01, 0x38,
0xb8, 0xd6, 0xa2, 0x09, 0x31, 0x42, 0x03, 0x61, 0x2e, 0xb4, 0x65, 0x8a, 0x07, 0x27, 0xa7, 0x62, 0xc2, 0xb9, 0x16, 0x55, 0x88, 0x1e, 0x1a, 0x08, 0x73, 0xa1, 0x2d, 0x53, 0x3c, 0x38, 0x39, 0x15,
0x98, 0x75, 0xcf, 0xc2, 0xb0, 0x8e, 0x34, 0x18, 0xf3, 0x7e, 0x92, 0xfa, 0xe3, 0x89, 0x1c, 0x96, 0xdd, 0xac, 0x7b, 0x16, 0x86, 0x65, 0xa4, 0xc1, 0x98, 0xf7, 0x93, 0xd4, 0x1f, 0x4f, 0x64, 0xb7,
0x81, 0x50, 0x7e, 0x94, 0xfa, 0xa3, 0xfe, 0x31, 0xe7, 0x49, 0x77, 0x5e, 0xe6, 0x6b, 0x84, 0x7d, 0x0c, 0x84, 0xe8, 0x51, 0xea, 0x8f, 0xfa, 0xc7, 0x9c, 0x27, 0xdd, 0x79, 0x49, 0xd7, 0x08, 0xbb,
0x00, 0x8b, 0x43, 0x9e, 0xa4, 0x7d, 0xb9, 0x28, 0x3c, 0xe9, 0x36, 0x88, 0xf5, 0x73, 0x28, 0xd6, 0x09, 0x8b, 0x43, 0x9e, 0xa4, 0x7d, 0x39, 0x29, 0x3c, 0xe9, 0x36, 0x48, 0xf4, 0x73, 0x28, 0x96,
0x13, 0xfb, 0xe7, 0x7d, 0x9c, 0x00, 0xfe, 0xba, 0xdb, 0x14, 0x7d, 0xcd, 0x10, 0xa4, 0x9c, 0xc7, 0x13, 0xfb, 0xaf, 0xfb, 0x38, 0x00, 0xfc, 0x4d, 0xb7, 0x29, 0xda, 0x9a, 0x21, 0xc8, 0x39, 0x8f,
0x3c, 0x35, 0x66, 0x2f, 0x91, 0x14, 0xea, 0xee, 0x01, 0x33, 0xe0, 0x6d, 0x9e, 0xfa, 0xc1, 0x28, 0x79, 0x6a, 0x8c, 0x5e, 0x22, 0x39, 0xd4, 0xdd, 0x03, 0x66, 0xc0, 0xdb, 0x3c, 0xf5, 0x83, 0x51,
0x61, 0x1f, 0x43, 0x3b, 0x35, 0x0a, 0x93, 0x28, 0x6c, 0x69, 0x72, 0x32, 0x3e, 0xf0, 0xac, 0x72, 0xc2, 0x3e, 0x81, 0x76, 0x6a, 0x64, 0x26, 0x55, 0xd8, 0xd2, 0xec, 0x64, 0x7c, 0xe0, 0x59, 0xf9,
0xee, 0x29, 0x34, 0x1e, 0x71, 0xbe, 0x17, 0x8c, 0x83, 0x94, 0xad, 0x41, 0xfd, 0x38, 0x78, 0xcd, 0xdc, 0x53, 0x68, 0x3c, 0xe2, 0x7c, 0x2f, 0x18, 0x07, 0x29, 0x5b, 0x83, 0xfa, 0x71, 0xf0, 0x86,
0x05, 0xc1, 0x57, 0x77, 0xaf, 0x78, 0x22, 0xc9, 0xde, 0x03, 0xa0, 0x1f, 0xfd, 0xb1, 0x26, 0xac, 0x0b, 0x86, 0xaf, 0xee, 0x5e, 0xf2, 0x44, 0x92, 0x7d, 0x00, 0x40, 0x3f, 0xfa, 0x63, 0xcd, 0x58,
0xdd, 0x2b, 0x5e, 0x93, 0xb0, 0xa7, 0x48, 0x59, 0x3d, 0x98, 0x9f, 0xf0, 0x78, 0xc0, 0xd5, 0xfa, 0xbb, 0x97, 0xbc, 0x26, 0x61, 0x4f, 0x91, 0xb3, 0x7a, 0x30, 0x3f, 0xe1, 0xf1, 0x80, 0xab, 0xf9,
0xed, 0x5e, 0xf1, 0x14, 0xf0, 0x70, 0x1e, 0xea, 0x23, 0xac, 0xdd, 0xfd, 0x5b, 0x35, 0x68, 0x1d, 0xdb, 0xbd, 0xe4, 0x29, 0xe0, 0xe1, 0x3c, 0xd4, 0x47, 0x58, 0xba, 0xfb, 0x27, 0x35, 0x68, 0x1d,
0xf2, 0x50, 0x73, 0x1a, 0x83, 0x1a, 0xce, 0x89, 0xe4, 0x2e, 0xfa, 0xcd, 0xbe, 0x06, 0x2d, 0x9a, 0xf2, 0x50, 0x4b, 0x1a, 0x83, 0x1a, 0x8e, 0x89, 0x94, 0x2e, 0xfa, 0xcd, 0xbe, 0x06, 0x2d, 0x1a,
0xa7, 0x24, 0x8d, 0x83, 0xf0, 0x44, 0x10, 0xf8, 0xc3, 0x4a, 0xd7, 0xf1, 0x00, 0xe1, 0x43, 0x42, 0xa7, 0x24, 0x8d, 0x83, 0xf0, 0x44, 0x30, 0xf8, 0xc3, 0x4a, 0xd7, 0xf1, 0x00, 0xe1, 0x43, 0x42,
0x59, 0x07, 0xaa, 0xfe, 0x58, 0x11, 0x38, 0xfe, 0x64, 0xd7, 0xa0, 0xe1, 0x8f, 0x53, 0xd1, 0xbd, 0x59, 0x07, 0xaa, 0xfe, 0x58, 0x31, 0x38, 0xfe, 0x64, 0x57, 0xa0, 0xe1, 0x8f, 0x53, 0xd1, 0xbc,
0x36, 0xc1, 0xf3, 0xfe, 0x38, 0xa5, 0xae, 0xbd, 0x0f, 0xed, 0x89, 0x7f, 0x31, 0x46, 0x7e, 0xd6, 0x36, 0xc1, 0xf3, 0xfe, 0x38, 0xa5, 0xa6, 0x7d, 0x08, 0xed, 0x89, 0x7f, 0x3e, 0x46, 0x79, 0xd6,
0x54, 0xd1, 0xf6, 0x5a, 0x12, 0xdb, 0x45, 0xb2, 0xd8, 0x80, 0x15, 0xb3, 0x88, 0x6a, 0xbc, 0xae, 0x5c, 0xd1, 0xf6, 0x5a, 0x12, 0xdb, 0x45, 0xb6, 0xd8, 0x80, 0x15, 0x33, 0x8b, 0xaa, 0xbc, 0xae,
0x1b, 0x5f, 0x36, 0x4a, 0xcb, 0x3e, 0xdc, 0x86, 0x25, 0xf5, 0x4d, 0x2c, 0xc6, 0x43, 0xb4, 0xd2, 0x2b, 0x5f, 0x36, 0x72, 0xcb, 0x36, 0xdc, 0x82, 0x25, 0xf5, 0x4d, 0x2c, 0xfa, 0x43, 0xbc, 0xd2,
0xf4, 0x16, 0x25, 0xac, 0x46, 0x79, 0x07, 0x3a, 0xc7, 0x41, 0xe8, 0x8f, 0xfa, 0x83, 0x51, 0x7a, 0xf4, 0x16, 0x25, 0xac, 0x7a, 0x79, 0x1b, 0x3a, 0xc7, 0x41, 0xe8, 0x8f, 0xfa, 0x83, 0x51, 0x7a,
0xd6, 0x1f, 0xf2, 0x51, 0xea, 0x13, 0xd5, 0xd4, 0xbd, 0x45, 0xc2, 0xb7, 0x46, 0xe9, 0xd9, 0x36, 0xd6, 0x1f, 0xf2, 0x51, 0xea, 0x13, 0xd7, 0xd4, 0xbd, 0x45, 0xc2, 0xb7, 0x46, 0xe9, 0xd9, 0x36,
0xa2, 0xec, 0x43, 0x68, 0x1e, 0x73, 0xde, 0xa7, 0xc9, 0xea, 0x36, 0x2c, 0x0e, 0x54, 0x2b, 0xe4, 0xa2, 0xec, 0x23, 0x68, 0x1e, 0x73, 0xde, 0xa7, 0xc1, 0xea, 0x36, 0x2c, 0x09, 0x54, 0x33, 0xe4,
0x35, 0x8e, 0xd5, 0x5a, 0x7d, 0x08, 0x9d, 0x68, 0x9a, 0x9e, 0x44, 0x41, 0x78, 0xd2, 0x47, 0x99, 0x35, 0x8e, 0xd5, 0x5c, 0x7d, 0x04, 0x9d, 0x68, 0x9a, 0x9e, 0x44, 0x41, 0x78, 0xd2, 0x47, 0x9d,
0xd7, 0x0f, 0x86, 0x44, 0x45, 0xb5, 0x87, 0x95, 0x07, 0x8e, 0xb7, 0xa8, 0xf2, 0x50, 0xfa, 0x3c, 0xd7, 0x0f, 0x86, 0xc4, 0x45, 0xb5, 0x87, 0x95, 0xfb, 0x8e, 0xb7, 0xa8, 0x68, 0xa8, 0x7d, 0x9e,
0x19, 0xb2, 0x77, 0x01, 0xa8, 0x7d, 0x51, 0x39, 0xdc, 0x74, 0xee, 0x2c, 0x78, 0x4d, 0x44, 0x44, 0x0c, 0xd9, 0x4d, 0x58, 0x1a, 0xf9, 0x49, 0xda, 0x3f, 0x8d, 0x26, 0xfd, 0xc9, 0xf4, 0xe8, 0x15,
0x65, 0x9f, 0x42, 0x83, 0xa6, 0x3d, 0x1d, 0x9d, 0x75, 0x5b, 0x44, 0x38, 0xef, 0xc9, 0x96, 0x8d, 0x3f, 0xef, 0x2e, 0xd0, 0x40, 0x2c, 0x20, 0xbc, 0x1b, 0x4d, 0x0e, 0x08, 0x64, 0xef, 0x03, 0x50,
0x05, 0xbb, 0xb7, 0xcd, 0x93, 0xf4, 0xf9, 0xe8, 0x0c, 0xf7, 0xe5, 0x0b, 0x6f, 0x7e, 0x28, 0x52, 0x3b, 0x45, 0x23, 0xe0, 0xba, 0x73, 0x7b, 0xc1, 0x6b, 0x22, 0x22, 0x2a, 0xfd, 0x0c, 0x1a, 0x34,
0xbd, 0x4f, 0xa1, 0x6d, 0x66, 0xe0, 0xea, 0xbc, 0xe2, 0x17, 0xb4, 0xaa, 0x35, 0x0f, 0x7f, 0xb2, 0x3d, 0xe9, 0xe8, 0xac, 0xdb, 0x22, 0x06, 0xfb, 0x40, 0xb6, 0xd0, 0x98, 0xd8, 0xbb, 0xdb, 0x3c,
0x55, 0xa8, 0x9f, 0xf9, 0xa3, 0x29, 0x97, 0x02, 0x52, 0x24, 0x3e, 0xad, 0x7c, 0xe2, 0xb8, 0xff, 0x49, 0x9f, 0x8f, 0xce, 0x70, 0xfd, 0x3e, 0xf7, 0xe6, 0x87, 0x22, 0xd5, 0xfb, 0x0c, 0xda, 0x26,
0xd2, 0x81, 0xb6, 0x68, 0x41, 0x6e, 0xec, 0xb7, 0x60, 0x41, 0x4d, 0x2b, 0x8f, 0xe3, 0x28, 0x96, 0x01, 0x67, 0x11, 0x9b, 0x81, 0xb3, 0x5f, 0xf3, 0xf0, 0x27, 0x5b, 0x85, 0xfa, 0x99, 0x3f, 0x9a,
0x72, 0xc2, 0x06, 0xd9, 0x5d, 0xe8, 0x28, 0x60, 0x12, 0xf3, 0x60, 0xec, 0x9f, 0xa8, 0xba, 0x0b, 0x72, 0xa9, 0x48, 0x45, 0xe2, 0xb3, 0xca, 0xa7, 0x8e, 0xfb, 0x27, 0x0e, 0xb4, 0x45, 0x0d, 0xd2,
0x38, 0xdb, 0xc8, 0x6a, 0x8c, 0xa3, 0x69, 0xca, 0xe5, 0x16, 0xd2, 0x96, 0xe3, 0xf3, 0x10, 0xf3, 0x00, 0xb8, 0x01, 0x0b, 0x6a, 0xf8, 0x79, 0x1c, 0x47, 0xb1, 0xd4, 0x27, 0x36, 0xc8, 0xee, 0x40,
0xec, 0x22, 0x28, 0x27, 0x4a, 0x68, 0xc6, 0xc2, 0xdc, 0xbf, 0xeb, 0x00, 0xc3, 0xae, 0x3f, 0x8f, 0x47, 0x01, 0x93, 0x98, 0x07, 0x63, 0xff, 0x44, 0x95, 0x5d, 0xc0, 0xd9, 0x46, 0x56, 0x62, 0x1c,
0x44, 0x15, 0x72, 0xb9, 0xf3, 0xe4, 0xe6, 0xbc, 0x35, 0xb9, 0x55, 0xde, 0x44, 0x6e, 0x2e, 0xd4, 0x4d, 0x53, 0x2e, 0x97, 0x9a, 0xb6, 0xec, 0x9f, 0x87, 0x98, 0x67, 0x67, 0x41, 0x7d, 0x52, 0xc2,
0x45, 0xef, 0x6b, 0x25, 0xbd, 0x17, 0x59, 0xdf, 0xad, 0x35, 0xaa, 0x9d, 0x9a, 0xfb, 0x5f, 0xaa, 0x5b, 0x16, 0xe6, 0xfe, 0x3d, 0x07, 0x18, 0x36, 0xfd, 0x79, 0x24, 0x8a, 0x90, 0x6c, 0x91, 0x67,
0xb0, 0xba, 0x25, 0xf6, 0xc0, 0xcd, 0xc1, 0x80, 0x4f, 0x34, 0x21, 0xbe, 0x07, 0xad, 0x30, 0x1a, 0x4b, 0xe7, 0x9d, 0xd9, 0xb2, 0xf2, 0x36, 0xb6, 0x74, 0xa1, 0x2e, 0x5a, 0x5f, 0x2b, 0x69, 0xbd,
0xf2, 0xfe, 0x64, 0x7a, 0xa4, 0xd6, 0xa7, 0xed, 0x01, 0x42, 0x07, 0x84, 0x10, 0x8d, 0x9c, 0xfa, 0x20, 0x7d, 0xb7, 0xd6, 0xa8, 0x76, 0x6a, 0xee, 0x7f, 0xa9, 0xc2, 0xea, 0x96, 0x58, 0x2b, 0x37,
0x41, 0x28, 0x3a, 0x2e, 0xe6, 0xb3, 0x49, 0x08, 0x75, 0xfb, 0x03, 0x58, 0x9a, 0xf0, 0x70, 0x68, 0x07, 0x03, 0x3e, 0xd1, 0x0c, 0xfb, 0x01, 0xb4, 0xc2, 0x68, 0xc8, 0x15, 0x9b, 0x88, 0x86, 0x01,
0xd2, 0x9b, 0xd0, 0x52, 0x16, 0x24, 0x2c, 0x49, 0xed, 0x3d, 0x68, 0x1d, 0x4f, 0x45, 0x39, 0xe4, 0x42, 0x06, 0x8f, 0x9c, 0xfa, 0x41, 0x28, 0x1a, 0x2e, 0xc6, 0xb3, 0x49, 0x08, 0x35, 0xfb, 0x26,
0xd2, 0x1a, 0xd1, 0x01, 0x48, 0x68, 0x53, 0x30, 0xeb, 0x64, 0x9a, 0x9c, 0x52, 0x6e, 0x9d, 0x72, 0x2c, 0x4d, 0x78, 0x38, 0x34, 0xf9, 0x52, 0x58, 0x33, 0x0b, 0x12, 0x96, 0x2c, 0xf9, 0x01, 0xb4,
0xe7, 0x31, 0x8d, 0x59, 0xef, 0x02, 0x0c, 0xa7, 0x49, 0x2a, 0xc9, 0x74, 0x8e, 0x32, 0x9b, 0x88, 0x8e, 0xa7, 0x22, 0x1f, 0x4a, 0x73, 0x8d, 0xf8, 0x00, 0x24, 0xb4, 0x29, 0x84, 0x7a, 0x32, 0x4d,
0x08, 0x32, 0xfd, 0x26, 0xac, 0x8c, 0xfd, 0xd7, 0x7d, 0xa2, 0x9f, 0x7e, 0x10, 0xf6, 0x8f, 0x47, 0x4e, 0x89, 0x5a, 0x27, 0xea, 0x3c, 0xa6, 0x91, 0xf4, 0x3e, 0xc0, 0x70, 0x9a, 0xa4, 0x92, 0x4d,
0x24, 0xc6, 0xe7, 0xa9, 0x5c, 0x67, 0xec, 0xbf, 0xfe, 0x3e, 0xe6, 0x3c, 0x09, 0x1f, 0x11, 0x8e, 0xe7, 0x88, 0xd8, 0x44, 0x44, 0xb0, 0xe9, 0x37, 0x61, 0x65, 0xec, 0xbf, 0xe9, 0x13, 0xff, 0xf4,
0x3c, 0xaa, 0xf4, 0x87, 0x98, 0x27, 0x3c, 0x3e, 0xe3, 0xc4, 0x56, 0x35, 0xad, 0x24, 0x78, 0x02, 0x83, 0xb0, 0x7f, 0x3c, 0x22, 0x75, 0x3f, 0x4f, 0xf9, 0x3a, 0x63, 0xff, 0xcd, 0xf7, 0x91, 0xf2,
0xc5, 0x1e, 0x8d, 0x71, 0xdc, 0xe9, 0x68, 0x20, 0x78, 0xc8, 0x9b, 0x1f, 0x07, 0xe1, 0x6e, 0x3a, 0x24, 0x7c, 0x44, 0x38, 0xca, 0xb2, 0xb2, 0x33, 0x62, 0x9e, 0xf0, 0xf8, 0x8c, 0x93, 0xf8, 0xd5,
0x1a, 0xb0, 0xeb, 0x00, 0xc8, 0x94, 0x13, 0x1e, 0xf7, 0x5f, 0x9d, 0x13, 0xe3, 0xd4, 0x88, 0x09, 0xb4, 0x31, 0xe1, 0x09, 0x14, 0x5b, 0x34, 0xc6, 0x7e, 0xa7, 0xa3, 0x81, 0x90, 0x35, 0x6f, 0x7e,
0x0f, 0x78, 0xfc, 0xf9, 0x39, 0x7b, 0x07, 0x9a, 0x83, 0x84, 0xb8, 0xda, 0xbf, 0xe8, 0xb6, 0x88, 0x1c, 0x84, 0xbb, 0xe9, 0x68, 0xc0, 0xae, 0x02, 0xa0, 0xf0, 0x4e, 0x78, 0xdc, 0x7f, 0xf5, 0x9a,
0xab, 0x1a, 0x83, 0x04, 0xf9, 0xd9, 0xbf, 0x60, 0x1f, 0x02, 0xc3, 0xde, 0xfa, 0xb4, 0x0a, 0x7c, 0x04, 0xa7, 0x46, 0xc2, 0x7a, 0xc0, 0xe3, 0xcf, 0x5f, 0xb3, 0xf7, 0xa0, 0x39, 0x48, 0x48, 0xfa,
0x48, 0xd5, 0x27, 0x24, 0x9e, 0x16, 0xa8, 0xb3, 0x9b, 0x32, 0x03, 0xdb, 0x49, 0xd8, 0xd7, 0x60, 0xfd, 0xf3, 0x6e, 0x8b, 0xa4, 0xaa, 0x31, 0x48, 0x50, 0xee, 0xfd, 0x73, 0xf6, 0x11, 0x30, 0x6c,
0x41, 0x75, 0xf6, 0x78, 0xe4, 0x9f, 0x24, 0xdd, 0x05, 0x2a, 0xd8, 0x96, 0xe0, 0x23, 0xc4, 0xdc, 0xad, 0x4f, 0xb3, 0xc0, 0x87, 0x54, 0x7c, 0x42, 0x6a, 0x6c, 0x81, 0x1a, 0xbb, 0x29, 0x09, 0x58,
0x97, 0x42, 0x6b, 0x31, 0xd6, 0x56, 0xf2, 0x0d, 0xee, 0x9f, 0x84, 0xd0, 0xba, 0x36, 0x3c, 0x99, 0x4f, 0xc2, 0xbe, 0x06, 0x0b, 0xaa, 0xb1, 0xc7, 0x23, 0xff, 0x24, 0x21, 0x39, 0x5e, 0xf0, 0xda,
0x2a, 0x5b, 0xb4, 0x4a, 0xc9, 0xa2, 0xb9, 0xbf, 0x70, 0xa0, 0x2d, 0x6b, 0xa6, 0xad, 0x9e, 0x3d, 0x12, 0x7c, 0x84, 0x98, 0xfb, 0x52, 0x58, 0x37, 0xc6, 0xdc, 0x4a, 0xb9, 0xc1, 0x75, 0x96, 0x10,
0x00, 0xa6, 0x56, 0x31, 0x7d, 0x1d, 0x0c, 0xfb, 0x47, 0x17, 0x29, 0x4f, 0x04, 0xd1, 0xec, 0x5e, 0x9a, 0xd7, 0x86, 0x27, 0x53, 0x65, 0x93, 0x56, 0x29, 0x99, 0x34, 0xf7, 0x17, 0x0e, 0xb4, 0x65,
0xf1, 0x4a, 0xf2, 0x50, 0x20, 0x59, 0x68, 0x92, 0xc6, 0x82, 0xa6, 0x77, 0xaf, 0x78, 0x85, 0x1c, 0xc9, 0x64, 0x12, 0xb0, 0xfb, 0xc0, 0xd4, 0x2c, 0xa6, 0x6f, 0x82, 0x61, 0xff, 0xe8, 0x3c, 0xe5,
0x64, 0x31, 0x54, 0x26, 0xa6, 0x69, 0x3f, 0x08, 0x87, 0xfc, 0x35, 0x91, 0xd2, 0x82, 0x67, 0x61, 0x89, 0x60, 0x9a, 0xdd, 0x4b, 0x5e, 0x09, 0x0d, 0x15, 0x97, 0x85, 0x26, 0x69, 0x2c, 0x78, 0x7a,
0x0f, 0x17, 0xa1, 0x6d, 0x7e, 0xe7, 0xfe, 0x04, 0x1a, 0x4a, 0x15, 0xa1, 0x6d, 0x38, 0xd7, 0x2f, 0xf7, 0x92, 0x57, 0xa0, 0xa0, 0x88, 0xa1, 0xd1, 0x31, 0x4d, 0xfb, 0x41, 0x38, 0xe4, 0x6f, 0x88,
0xcf, 0x40, 0x58, 0x0f, 0x1a, 0x76, 0x2f, 0xbc, 0xc6, 0x57, 0x69, 0xdb, 0xfd, 0x73, 0xd0, 0xd9, 0x95, 0x16, 0x3c, 0x0b, 0x7b, 0xb8, 0x08, 0x6d, 0xf3, 0x3b, 0xf7, 0x27, 0xd0, 0x50, 0x26, 0x0b,
0x43, 0x22, 0x0a, 0x91, 0x68, 0xa5, 0x7e, 0xb5, 0x06, 0x73, 0x06, 0xf3, 0x34, 0x3d, 0x99, 0xc2, 0x2d, 0xd7, 0xb9, 0x76, 0x79, 0x06, 0xc2, 0x7a, 0xd0, 0xb0, 0x5b, 0xe1, 0x35, 0xbe, 0x4a, 0xdd,
0x8d, 0xec, 0x34, 0x4a, 0x52, 0xd9, 0x0e, 0xfd, 0x76, 0xff, 0x9d, 0x03, 0x6c, 0x27, 0x49, 0x83, 0xee, 0x5f, 0x80, 0xce, 0x1e, 0x32, 0x51, 0x88, 0x4c, 0x2b, 0xed, 0xb0, 0x35, 0x98, 0x33, 0x84,
0xb1, 0x9f, 0xf2, 0x47, 0x5c, 0x8b, 0x87, 0x67, 0xd0, 0xc6, 0xda, 0x9e, 0x47, 0x9b, 0x42, 0xdb, 0xa7, 0xe9, 0xc9, 0x14, 0x2e, 0x78, 0xa7, 0x51, 0x92, 0xca, 0x7a, 0xe8, 0xb7, 0xfb, 0xef, 0x1c,
0x11, 0xbb, 0xf4, 0x37, 0x24, 0x3b, 0x17, 0x3f, 0xb8, 0x67, 0x96, 0x16, 0x82, 0xd7, 0xaa, 0x00, 0x60, 0x3b, 0x49, 0x1a, 0x8c, 0xfd, 0x94, 0x3f, 0xe2, 0x5a, 0x3d, 0x3c, 0x83, 0x36, 0x96, 0xf6,
0xb9, 0x2d, 0xf5, 0xe3, 0x13, 0x9e, 0x92, 0x2a, 0x24, 0x15, 0x69, 0x10, 0xd0, 0x56, 0x14, 0x1e, 0x3c, 0xda, 0x14, 0x56, 0x91, 0x58, 0xcd, 0xbf, 0x21, 0xc5, 0xb9, 0xf8, 0xc1, 0x5d, 0x33, 0xb7,
0xf7, 0x7e, 0x17, 0x96, 0x0b, 0x75, 0x98, 0x32, 0xba, 0x59, 0x22, 0xa3, 0xab, 0xa6, 0x8c, 0x1e, 0x50, 0xbc, 0x56, 0x01, 0x28, 0x6d, 0xa9, 0x1f, 0x9f, 0xf0, 0x94, 0x4c, 0x26, 0x69, 0x70, 0x83,
0xc0, 0x8a, 0xd5, 0x2f, 0x49, 0x71, 0x5d, 0x98, 0x47, 0xc6, 0xc0, 0x1d, 0xd7, 0x11, 0x3b, 0xae, 0x80, 0xb6, 0xa2, 0xf0, 0xb8, 0xf7, 0xbb, 0xb0, 0x5c, 0x28, 0xc3, 0xd4, 0xd1, 0xcd, 0x12, 0x1d,
0x4c, 0xb2, 0x0d, 0x58, 0x3d, 0xe6, 0x3c, 0xf6, 0x53, 0x4a, 0x12, 0xeb, 0xe0, 0x9a, 0xc8, 0x9a, 0x5d, 0x35, 0x75, 0xf4, 0x00, 0x56, 0xac, 0x76, 0x49, 0x8e, 0xeb, 0xc2, 0x3c, 0x0a, 0x06, 0xae,
0x4b, 0xf3, 0xdc, 0xff, 0xee, 0xc0, 0x12, 0x4a, 0xd3, 0xa7, 0x7e, 0x78, 0xa1, 0xe6, 0x6a, 0xaf, 0xcc, 0x8e, 0x58, 0x99, 0x65, 0x92, 0x6d, 0xc0, 0xea, 0x31, 0xe7, 0xb1, 0x9f, 0x52, 0x92, 0x44,
0x74, 0xae, 0xee, 0x18, 0x1b, 0x93, 0x51, 0xfa, 0xab, 0x4e, 0x54, 0x35, 0x3f, 0x51, 0xec, 0x26, 0x07, 0xe7, 0x44, 0x96, 0x5c, 0x4a, 0x73, 0xff, 0xbb, 0x03, 0x4b, 0xa8, 0x4d, 0x9f, 0xfa, 0xe1,
0xb4, 0xad, 0xee, 0xd6, 0x85, 0x6a, 0x97, 0xf8, 0xe9, 0x01, 0x8f, 0x1f, 0x5e, 0xa4, 0xfc, 0xd7, 0xb9, 0x1a, 0xab, 0xbd, 0xd2, 0xb1, 0xba, 0x6d, 0x2c, 0x4c, 0x46, 0xee, 0xaf, 0x3a, 0x50, 0xd5,
0x9f, 0xca, 0x0f, 0xa0, 0x93, 0x75, 0x5b, 0xce, 0x23, 0x83, 0x1a, 0x12, 0xa6, 0xac, 0x80, 0x7e, 0xfc, 0x40, 0xb1, 0xeb, 0xd0, 0xb6, 0x9a, 0x5b, 0x17, 0x26, 0x60, 0xe2, 0xa7, 0x07, 0x3c, 0x7e,
0xbb, 0xff, 0xd0, 0x11, 0x05, 0xb7, 0xa2, 0x40, 0xab, 0x7d, 0x58, 0x10, 0xb5, 0x47, 0x55, 0x10, 0x78, 0x9e, 0xf2, 0x5f, 0x7f, 0x28, 0x6f, 0x42, 0x27, 0x6b, 0xb6, 0x1c, 0x47, 0x06, 0x35, 0x64,
0x7f, 0xcf, 0x54, 0x9b, 0x7f, 0xfd, 0xc1, 0xa2, 0x4c, 0x4c, 0x78, 0x38, 0xec, 0xfb, 0xa3, 0x11, 0x4c, 0x59, 0x00, 0xfd, 0x76, 0xff, 0x91, 0x23, 0x32, 0x6e, 0x45, 0x81, 0x36, 0x0f, 0x31, 0x23,
0x09, 0xe2, 0x86, 0x37, 0x8f, 0xe9, 0xcd, 0xd1, 0xc8, 0xbd, 0x0d, 0xcb, 0x46, 0xef, 0xde, 0x30, 0x5a, 0x99, 0x2a, 0x23, 0xfe, 0x9e, 0x69, 0x5e, 0xff, 0xfa, 0x9d, 0x45, 0x9d, 0x98, 0xf0, 0x70,
0x8e, 0x7d, 0x60, 0x7b, 0x41, 0x92, 0xbe, 0x08, 0x93, 0x89, 0xa1, 0x11, 0xbd, 0x03, 0x4d, 0x94, 0xd8, 0xf7, 0x47, 0x23, 0x52, 0xc4, 0x0d, 0x6f, 0x1e, 0xd3, 0x9b, 0xa3, 0x91, 0x7b, 0x0b, 0x96,
0xb6, 0xd8, 0x33, 0xc1, 0xb9, 0x75, 0x0f, 0xc5, 0x2f, 0xf6, 0x2b, 0xa1, 0x4c, 0xff, 0xb5, 0xcc, 0x8d, 0xd6, 0xbd, 0xa5, 0x1f, 0xfb, 0xc0, 0xf6, 0x82, 0x24, 0x7d, 0x11, 0x26, 0x13, 0xc3, 0x72,
0xac, 0xc8, 0x4c, 0xff, 0x35, 0x65, 0xba, 0x9f, 0xc0, 0x8a, 0x55, 0x9f, 0x6c, 0xfa, 0x7d, 0xa8, 0x7a, 0x0f, 0x9a, 0xa8, 0x6d, 0xb1, 0x65, 0x42, 0x72, 0xeb, 0x1e, 0xaa, 0x5f, 0x6c, 0x57, 0x42,
0x4f, 0xd3, 0xd7, 0x91, 0xd2, 0x79, 0x5b, 0x92, 0x42, 0xd0, 0xba, 0xf2, 0x44, 0x8e, 0xfb, 0x19, 0x44, 0xff, 0x8d, 0x24, 0x56, 0x24, 0xd1, 0x7f, 0x43, 0x44, 0xf7, 0x53, 0x58, 0xb1, 0xca, 0x93,
0x2c, 0xef, 0xf3, 0x73, 0xc9, 0xc8, 0xaa, 0x23, 0x1f, 0x5c, 0x6a, 0x79, 0x51, 0xbe, 0x7b, 0x0f, 0x55, 0x7f, 0x08, 0xf5, 0x69, 0xfa, 0x26, 0x52, 0xb6, 0x71, 0x4b, 0x72, 0x08, 0xee, 0xc2, 0x3c,
0x98, 0xf9, 0x71, 0xc6, 0x00, 0xca, 0x0e, 0x73, 0x2c, 0x3b, 0xcc, 0xfd, 0x00, 0xd8, 0x61, 0x70, 0x41, 0x71, 0x1f, 0xc0, 0xf2, 0x3e, 0x7f, 0x2d, 0x05, 0x59, 0x35, 0xe4, 0xe6, 0x85, 0x3b, 0x34,
0x12, 0x3e, 0xe5, 0x49, 0xe2, 0x9f, 0x68, 0xd6, 0xef, 0x40, 0x75, 0x9c, 0x9c, 0x48, 0x51, 0x85, 0xa2, 0xbb, 0x77, 0x81, 0x99, 0x1f, 0x67, 0x02, 0xa0, 0xf6, 0x6b, 0x8e, 0xb5, 0x5f, 0x73, 0x6f,
0x3f, 0xdd, 0x6f, 0xc1, 0x8a, 0x55, 0x4e, 0x56, 0x7c, 0x1d, 0x9a, 0x49, 0x70, 0x12, 0xfa, 0xe9, 0x02, 0x3b, 0x0c, 0x4e, 0xc2, 0xa7, 0x3c, 0x49, 0xfc, 0x13, 0x2d, 0xfa, 0x1d, 0xa8, 0x8e, 0x93,
0x34, 0xe6, 0xb2, 0xea, 0x0c, 0x70, 0x1f, 0xc1, 0xea, 0xf7, 0x79, 0x1c, 0x1c, 0x5f, 0x5c, 0x56, 0x13, 0xa9, 0xaa, 0xf0, 0xa7, 0xfb, 0x2d, 0x58, 0xb1, 0xf2, 0xc9, 0x82, 0xaf, 0x42, 0x33, 0x09,
0xbd, 0x5d, 0x4f, 0x25, 0x5f, 0xcf, 0x0e, 0x5c, 0xcd, 0xd5, 0x23, 0x9b, 0x17, 0xe4, 0x2b, 0x57, 0x4e, 0x42, 0x3f, 0x9d, 0xc6, 0x5c, 0x16, 0x9d, 0x01, 0xee, 0x23, 0x58, 0xfd, 0x3e, 0x8f, 0x83,
0xb2, 0xe1, 0x89, 0x84, 0x21, 0xfb, 0x2a, 0xa6, 0xec, 0x73, 0x5f, 0x00, 0xdb, 0x8a, 0xc2, 0x90, 0xe3, 0xf3, 0x8b, 0x8a, 0xb7, 0xcb, 0xa9, 0xe4, 0xcb, 0xd9, 0x81, 0xcb, 0xb9, 0x72, 0x64, 0xf5,
0x0f, 0xd2, 0x03, 0xce, 0xe3, 0xcc, 0x05, 0x94, 0xd1, 0x6a, 0x6b, 0x63, 0x5d, 0xce, 0x6c, 0x5e, 0x82, 0x7d, 0xe5, 0x4c, 0x36, 0x3c, 0x91, 0x30, 0x74, 0x5f, 0xc5, 0xd4, 0x7d, 0xee, 0x0b, 0x60,
0xa0, 0x4a, 0x22, 0x66, 0x50, 0x9b, 0xf0, 0x78, 0x4c, 0x15, 0x37, 0x3c, 0xfa, 0xed, 0x5e, 0x85, 0x5b, 0x51, 0x18, 0xf2, 0x41, 0x7a, 0xc0, 0x79, 0x9c, 0xb9, 0x8a, 0x32, 0x5e, 0x6d, 0x6d, 0xac,
0x15, 0xab, 0x5a, 0x69, 0x34, 0x7f, 0x04, 0x57, 0xb7, 0x83, 0x64, 0x50, 0x6c, 0xb0, 0x0b, 0xf3, 0xcb, 0x91, 0xcd, 0x2b, 0x54, 0xc9, 0xc4, 0x0c, 0x6a, 0x13, 0x1e, 0x8f, 0xa9, 0xe0, 0x86, 0x47,
0x93, 0xe9, 0x51, 0x3f, 0xe3, 0x44, 0x95, 0x44, 0x3b, 0x2a, 0xff, 0x89, 0xac, 0xec, 0xaf, 0x39, 0xbf, 0xdd, 0xcb, 0xb0, 0x62, 0x15, 0x2b, 0x37, 0xd7, 0x1f, 0xc3, 0xe5, 0xed, 0x20, 0x19, 0x14,
0x50, 0xdb, 0x7d, 0xbe, 0xb7, 0x85, 0x7b, 0x45, 0x10, 0x0e, 0xa2, 0x31, 0x6a, 0x61, 0x62, 0xd0, 0x2b, 0xec, 0xc2, 0xfc, 0x64, 0x7a, 0xd4, 0xcf, 0x24, 0x51, 0x25, 0x71, 0xbf, 0x95, 0xff, 0x44,
0x3a, 0x3d, 0x93, 0xc3, 0xae, 0x43, 0x93, 0x94, 0x37, 0x34, 0x1d, 0xa5, 0x1e, 0x94, 0x01, 0x68, 0x16, 0xf6, 0x37, 0x1c, 0xa8, 0xed, 0x3e, 0xdf, 0xdb, 0xc2, 0xb5, 0x22, 0x08, 0x07, 0xd1, 0x18,
0xb6, 0xf2, 0xd7, 0x93, 0x20, 0x26, 0xbb, 0x54, 0x59, 0x9b, 0x35, 0xda, 0x66, 0x8a, 0x19, 0xee, 0xad, 0x30, 0xd1, 0x69, 0x9d, 0x9e, 0x29, 0x61, 0x57, 0xa1, 0x49, 0xc6, 0x1b, 0x6e, 0x31, 0xa5,
0x2f, 0xe6, 0x61, 0x5e, 0x6e, 0xbe, 0x62, 0x23, 0x4f, 0x83, 0x33, 0x9e, 0x6d, 0xe4, 0x98, 0x42, 0x1d, 0x94, 0x01, 0xb8, 0xbd, 0xe5, 0x6f, 0x26, 0x41, 0x4c, 0xfb, 0x57, 0xb5, 0x2b, 0xad, 0xd1,
0xc5, 0x38, 0xe6, 0xe3, 0x28, 0xd5, 0xfa, 0x9b, 0x58, 0x06, 0x1b, 0x24, 0xb3, 0x5c, 0x2a, 0x11, 0x32, 0x53, 0x24, 0xb8, 0xbf, 0x98, 0x87, 0x79, 0xb9, 0xf8, 0x8a, 0x85, 0x3c, 0x0d, 0xce, 0x78,
0xc2, 0x90, 0xaf, 0x8a, 0x52, 0x16, 0xc8, 0xae, 0xc3, 0xbc, 0x52, 0x06, 0x6a, 0xda, 0x62, 0x50, 0xb6, 0x90, 0x63, 0x0a, 0x0d, 0xe3, 0x98, 0x8f, 0xa3, 0x54, 0xdb, 0x6f, 0x62, 0x1a, 0x6c, 0x90,
0x10, 0xce, 0xc6, 0xc0, 0x9f, 0xf8, 0x83, 0x20, 0xbd, 0x90, 0x62, 0x41, 0xa7, 0xb1, 0xfe, 0x51, 0xb6, 0xef, 0xd2, 0x88, 0x10, 0x1b, 0xfe, 0xaa, 0xc8, 0x65, 0x81, 0xec, 0x2a, 0xcc, 0x2b, 0x63,
0x34, 0xf0, 0x47, 0xfd, 0x23, 0x7f, 0xe4, 0x87, 0x03, 0xae, 0xcc, 0x7e, 0x0b, 0x44, 0x13, 0x58, 0xa0, 0xa6, 0x77, 0x16, 0x0a, 0xc2, 0xd1, 0x18, 0xf8, 0x13, 0x7f, 0x10, 0xa4, 0xe7, 0x52, 0x2d,
0x76, 0x4b, 0x15, 0x13, 0x66, 0x72, 0x0e, 0xc5, 0x3d, 0x7c, 0x10, 0x8d, 0xc7, 0x41, 0x8a, 0x96, 0xe8, 0x34, 0x96, 0x3f, 0x8a, 0x06, 0xfe, 0xa8, 0x7f, 0xe4, 0x8f, 0xfc, 0x70, 0xc0, 0x95, 0x7b,
0x33, 0xa9, 0x66, 0x55, 0xcf, 0x40, 0x84, 0x93, 0x81, 0x52, 0xe7, 0x62, 0x06, 0x9b, 0xca, 0xc9, 0xc0, 0x02, 0x71, 0xab, 0x2c, 0x9b, 0xa5, 0xb2, 0x89, 0xed, 0x74, 0x0e, 0xc5, 0x35, 0x7c, 0x10,
0x60, 0x80, 0x58, 0x4b, 0x4e, 0x43, 0xab, 0x7a, 0x06, 0x82, 0x6b, 0x31, 0x0d, 0x13, 0x9e, 0xa6, 0x8d, 0xc7, 0x41, 0x8a, 0x3b, 0x6c, 0x32, 0xcd, 0xaa, 0x9e, 0x81, 0x08, 0x67, 0x04, 0xa5, 0x5e,
0x23, 0x3e, 0xd4, 0x1d, 0x6a, 0x51, 0xb1, 0x62, 0x06, 0x7b, 0x00, 0x2b, 0xc2, 0x98, 0x4f, 0xfc, 0x8b, 0x11, 0x6c, 0x2a, 0x67, 0x84, 0x01, 0x62, 0x29, 0x39, 0x0b, 0xad, 0xea, 0x19, 0x08, 0xce,
0x34, 0x4a, 0x4e, 0x83, 0xa4, 0x9f, 0xa0, 0x55, 0x2b, 0x8c, 0xca, 0xb2, 0x2c, 0xf6, 0x09, 0xac, 0xc5, 0x34, 0x4c, 0x78, 0x9a, 0x8e, 0xf8, 0x50, 0x37, 0xa8, 0x45, 0xd9, 0x8a, 0x04, 0x76, 0x1f,
0xe7, 0xe0, 0x98, 0x0f, 0x78, 0x70, 0xc6, 0x87, 0xa4, 0xc2, 0x55, 0xbd, 0x59, 0xd9, 0xec, 0x26, 0x56, 0xc4, 0xa6, 0x3f, 0xf1, 0xd3, 0x28, 0x39, 0x0d, 0x92, 0x7e, 0x82, 0xbb, 0x5f, 0xb1, 0xf9,
0xb4, 0xc2, 0xe9, 0xb8, 0x3f, 0x9d, 0x0c, 0x7d, 0x54, 0x62, 0x16, 0x49, 0xb9, 0x34, 0x21, 0xf6, 0x2c, 0x23, 0xb1, 0x4f, 0x61, 0x3d, 0x07, 0xc7, 0x7c, 0xc0, 0x83, 0x33, 0x3e, 0x24, 0x13, 0xae,
0x11, 0x28, 0x3d, 0x4d, 0x6a, 0x8f, 0x4b, 0x96, 0x84, 0x43, 0xea, 0xf5, 0xec, 0x12, 0x48, 0x98, 0xea, 0xcd, 0x22, 0xb3, 0xeb, 0xd0, 0x0a, 0xa7, 0xe3, 0xfe, 0x74, 0x32, 0xf4, 0xd1, 0x88, 0x59,
0x99, 0x4a, 0xda, 0x91, 0x86, 0x9e, 0x02, 0x88, 0x4f, 0xe2, 0xe0, 0xcc, 0x4f, 0x79, 0x77, 0x59, 0x24, 0xe3, 0xd2, 0x84, 0xd8, 0xc7, 0xa0, 0xec, 0x34, 0x69, 0x3d, 0x2e, 0x59, 0x1a, 0x0e, 0xb9,
0x08, 0x75, 0x99, 0xc4, 0xef, 0x82, 0x30, 0x48, 0x03, 0x3f, 0x8d, 0xe2, 0x2e, 0xa3, 0xbc, 0x0c, 0xd7, 0xb3, 0x73, 0x20, 0x63, 0x66, 0x26, 0x69, 0x47, 0x6e, 0xf4, 0x14, 0x40, 0x72, 0x12, 0x07,
0xc0, 0x49, 0x24, 0xfa, 0x48, 0x52, 0x3f, 0x9d, 0x26, 0x52, 0x43, 0x5d, 0x21, 0xe2, 0x2a, 0x66, 0x67, 0x7e, 0xca, 0xbb, 0xcb, 0x42, 0xa9, 0xcb, 0x24, 0x7e, 0x17, 0x84, 0x41, 0x1a, 0xf8, 0x69,
0xb0, 0x8f, 0x61, 0x4d, 0x50, 0x04, 0x65, 0x49, 0xdd, 0x9b, 0x54, 0x85, 0x55, 0x9a, 0x91, 0x19, 0x14, 0x77, 0x19, 0xd1, 0x32, 0x00, 0x07, 0x91, 0xf8, 0x23, 0x49, 0xfd, 0x74, 0x9a, 0x48, 0x0b,
0xb9, 0x38, 0x95, 0x92, 0x44, 0x0a, 0x1f, 0x5e, 0x15, 0x53, 0x39, 0x23, 0x1b, 0xfb, 0x87, 0x3d, 0x75, 0x85, 0x98, 0xab, 0x48, 0x60, 0x9f, 0xc0, 0x9a, 0xe0, 0x08, 0x22, 0x49, 0xdb, 0x9b, 0x4c,
0x08, 0x06, 0x7d, 0x59, 0x02, 0x59, 0x64, 0x8d, 0x46, 0x51, 0xcc, 0x40, 0x12, 0x1f, 0x05, 0xc7, 0x85, 0x55, 0x1a, 0x91, 0x19, 0x54, 0x1c, 0x4a, 0xc9, 0x22, 0x85, 0x0f, 0x2f, 0x8b, 0xa1, 0x9c,
0x3c, 0x0d, 0xc6, 0xbc, 0xbb, 0x2e, 0x48, 0x5c, 0xa5, 0x91, 0x01, 0xa7, 0x13, 0xca, 0xe9, 0x0a, 0x41, 0xc6, 0xf6, 0x61, 0x0b, 0x82, 0x41, 0x5f, 0xe6, 0x40, 0x11, 0x59, 0xa3, 0x5e, 0x14, 0x09,
0x86, 0x17, 0x29, 0xf7, 0x0f, 0x1c, 0xb1, 0xf9, 0x48, 0x46, 0x4d, 0x0c, 0xb3, 0x4a, 0xb0, 0x68, 0xc8, 0xe2, 0xa3, 0xe0, 0x98, 0xa7, 0xc1, 0x98, 0x77, 0xd7, 0x05, 0x8b, 0xab, 0x34, 0x0a, 0xe0,
0x3f, 0x0a, 0x47, 0x17, 0x92, 0x6b, 0x41, 0x40, 0xcf, 0xc2, 0xd1, 0x05, 0x2a, 0xf6, 0x41, 0x68, 0x74, 0x42, 0x94, 0xae, 0x10, 0x78, 0x91, 0x72, 0xff, 0xc0, 0x11, 0x8b, 0x8f, 0x14, 0xd4, 0xc4,
0x16, 0x11, 0x72, 0xae, 0xad, 0x40, 0x2a, 0xf4, 0x1e, 0xb4, 0x26, 0xd3, 0xa3, 0x51, 0x30, 0x10, 0xd8, 0x56, 0x09, 0x11, 0xed, 0x47, 0xe1, 0xe8, 0x5c, 0x4a, 0x2d, 0x08, 0xe8, 0x59, 0x38, 0x3a,
0x45, 0xaa, 0xa2, 0x16, 0x01, 0x51, 0x01, 0xb4, 0x2b, 0xc5, 0x4a, 0x89, 0x12, 0x35, 0x2a, 0xd1, 0x47, 0xc3, 0x3e, 0x08, 0xcd, 0x2c, 0x42, 0xcf, 0xb5, 0x15, 0x48, 0x99, 0x3e, 0x80, 0xd6, 0x64,
0x92, 0x18, 0x16, 0x71, 0x1f, 0xc2, 0xaa, 0xdd, 0x41, 0x29, 0xd0, 0xef, 0x42, 0x43, 0xf2, 0x7f, 0x7a, 0x34, 0x0a, 0x06, 0x22, 0x4b, 0x55, 0x94, 0x22, 0x20, 0xca, 0x80, 0xfb, 0x4a, 0x31, 0x53,
0x22, 0x8d, 0xfb, 0x45, 0xc3, 0x7f, 0x8a, 0x66, 0x90, 0xce, 0x77, 0xff, 0x75, 0x0d, 0x56, 0x24, 0x22, 0x47, 0x8d, 0x72, 0xb4, 0x24, 0x86, 0x59, 0xdc, 0x87, 0xb0, 0x6a, 0x37, 0x50, 0x2a, 0xf4,
0xba, 0x35, 0x8a, 0x12, 0x7e, 0x38, 0x1d, 0x8f, 0xfd, 0xb8, 0x44, 0xb0, 0x38, 0x97, 0x08, 0x96, 0x3b, 0xd0, 0x90, 0xf2, 0x9f, 0xc8, 0xcd, 0xfd, 0xa2, 0xe1, 0x67, 0xc5, 0x6d, 0x90, 0xa6, 0xbb,
0x4a, 0x51, 0xb0, 0xdc, 0xb0, 0xec, 0x4b, 0x21, 0x99, 0x0c, 0x84, 0xdd, 0x81, 0xa5, 0xc1, 0x28, 0xff, 0xba, 0x06, 0x2b, 0x12, 0xdd, 0x1a, 0x45, 0x09, 0x3f, 0x9c, 0x8e, 0xc7, 0x7e, 0x5c, 0xa2,
0x4a, 0x84, 0xba, 0x6f, 0xba, 0xf0, 0xf2, 0x70, 0x51, 0x18, 0xd6, 0xcb, 0x84, 0xa1, 0x29, 0xc8, 0x58, 0x9c, 0x0b, 0x14, 0x4b, 0xa5, 0xa8, 0x58, 0xae, 0x59, 0xfb, 0x4b, 0xa1, 0x99, 0x0c, 0x84,
0xe6, 0x72, 0x82, 0xcc, 0x85, 0x36, 0x56, 0xca, 0x95, 0x6c, 0x9e, 0x97, 0xc6, 0x96, 0x81, 0x61, 0xdd, 0x86, 0xa5, 0xc1, 0x28, 0x4a, 0x84, 0xb9, 0x6f, 0xba, 0xfa, 0xf2, 0x70, 0x51, 0x19, 0xd6,
0x7f, 0xf2, 0x62, 0x43, 0xc8, 0xa8, 0xa5, 0x32, 0xa1, 0x11, 0x8c, 0x39, 0xc9, 0x7e, 0xa3, 0x74, 0xcb, 0x94, 0xa1, 0xa9, 0xc8, 0xe6, 0x72, 0x8a, 0xcc, 0x85, 0x36, 0x16, 0xca, 0x95, 0x6e, 0x9e,
0x53, 0x0a, 0x8d, 0x62, 0x16, 0x7b, 0x04, 0x20, 0xda, 0x22, 0x05, 0x04, 0x48, 0x01, 0xf9, 0xc0, 0x97, 0x9b, 0x2d, 0x03, 0xc3, 0xf6, 0xe4, 0xd5, 0x86, 0xd0, 0x51, 0x4b, 0x65, 0x4a, 0x23, 0x18,
0x5e, 0x15, 0x73, 0xfe, 0xef, 0x61, 0x62, 0x1a, 0x73, 0x52, 0x4a, 0x8c, 0x2f, 0xdd, 0xbf, 0xe1, 0x73, 0xd2, 0xfd, 0x46, 0xee, 0xa6, 0x54, 0x1a, 0x45, 0x12, 0x7b, 0x04, 0x20, 0xea, 0x22, 0x03,
0x40, 0xcb, 0xc8, 0x63, 0x57, 0x61, 0x79, 0xeb, 0xd9, 0xb3, 0x83, 0x1d, 0x6f, 0xf3, 0xf9, 0x93, 0x04, 0xc8, 0x00, 0xb9, 0x69, 0xcf, 0x8a, 0x39, 0xfe, 0x77, 0x31, 0x31, 0x8d, 0x39, 0x19, 0x25,
0xef, 0xef, 0xf4, 0xb7, 0xf6, 0x9e, 0x1d, 0xee, 0x74, 0xae, 0x20, 0xbc, 0xf7, 0x6c, 0x6b, 0x73, 0xc6, 0x97, 0xee, 0xdf, 0x72, 0xa0, 0x65, 0xd0, 0xd8, 0x65, 0x58, 0xde, 0x7a, 0xf6, 0xec, 0x60,
0xaf, 0xff, 0xe8, 0x99, 0xb7, 0xa5, 0x60, 0x87, 0xad, 0x01, 0xf3, 0x76, 0x9e, 0x3e, 0x7b, 0xbe, 0xc7, 0xdb, 0x7c, 0xfe, 0xe4, 0xfb, 0x3b, 0xfd, 0xad, 0xbd, 0x67, 0x87, 0x3b, 0x9d, 0x4b, 0x08,
0x63, 0xe1, 0x15, 0xd6, 0x81, 0xf6, 0x43, 0x6f, 0x67, 0x73, 0x6b, 0x57, 0x22, 0x55, 0xb6, 0x0a, 0xef, 0x3d, 0xdb, 0xda, 0xdc, 0xeb, 0x3f, 0x7a, 0xe6, 0x6d, 0x29, 0xd8, 0x61, 0x6b, 0xc0, 0xbc,
0x9d, 0x47, 0x2f, 0xf6, 0xb7, 0x9f, 0xec, 0x3f, 0xee, 0x6f, 0x6d, 0xee, 0x6f, 0xed, 0xec, 0xed, 0x9d, 0xa7, 0xcf, 0x9e, 0xef, 0x58, 0x78, 0x85, 0x75, 0xa0, 0xfd, 0xd0, 0xdb, 0xd9, 0xdc, 0xda,
0x6c, 0x77, 0x6a, 0x6c, 0x01, 0x9a, 0x9b, 0x0f, 0x37, 0xf7, 0xb7, 0x9f, 0xed, 0xef, 0x6c, 0x77, 0x95, 0x48, 0x95, 0xad, 0x42, 0xe7, 0xd1, 0x8b, 0xfd, 0xed, 0x27, 0xfb, 0x8f, 0xfb, 0x5b, 0x9b,
0xea, 0xee, 0x7f, 0x75, 0xe0, 0x2a, 0xf5, 0x7a, 0x98, 0x67, 0x92, 0x9b, 0xd0, 0x1a, 0x44, 0xd1, 0xfb, 0x5b, 0x3b, 0x7b, 0x3b, 0xdb, 0x9d, 0x1a, 0x5b, 0x80, 0xe6, 0xe6, 0xc3, 0xcd, 0xfd, 0xed,
0x04, 0x15, 0xff, 0x6c, 0x6b, 0x33, 0x21, 0x64, 0x00, 0x21, 0x14, 0x8e, 0xa3, 0x78, 0xc0, 0x25, 0x67, 0xfb, 0x3b, 0xdb, 0x9d, 0xba, 0xfb, 0x5f, 0x1d, 0xb8, 0x4c, 0xad, 0x1e, 0xe6, 0x85, 0xe4,
0x8f, 0x00, 0x41, 0x8f, 0x10, 0x41, 0x06, 0x90, 0xcb, 0x2b, 0x4a, 0x08, 0x16, 0x69, 0x09, 0x4c, 0x3a, 0xb4, 0x06, 0x51, 0x34, 0x41, 0xc3, 0x3f, 0x5b, 0xda, 0x4c, 0x08, 0x05, 0x40, 0x28, 0x85,
0x14, 0x59, 0x83, 0xb9, 0xa3, 0x98, 0xfb, 0x83, 0x53, 0xc9, 0x1d, 0x32, 0xc5, 0xbe, 0x9e, 0x59, 0xe3, 0x28, 0x1e, 0x70, 0x29, 0x23, 0x40, 0xd0, 0x23, 0x44, 0x50, 0x00, 0xe4, 0xf4, 0x8a, 0x1c,
0xa6, 0x03, 0x9c, 0xfd, 0x11, 0x1f, 0x12, 0xc5, 0x34, 0xbc, 0x25, 0x89, 0x6f, 0x49, 0x18, 0xa5, 0x42, 0x44, 0x5a, 0x02, 0x13, 0x59, 0xd6, 0x60, 0xee, 0x28, 0xe6, 0xfe, 0xe0, 0x54, 0x4a, 0x87,
0xa0, 0x7f, 0xe4, 0x87, 0xc3, 0x28, 0xe4, 0x43, 0xa9, 0xf6, 0x66, 0x80, 0x7b, 0x00, 0x6b, 0xf9, 0x4c, 0xb1, 0xaf, 0x67, 0x3b, 0xd3, 0x01, 0x8e, 0xfe, 0x88, 0x0f, 0x89, 0x63, 0x1a, 0xde, 0x92,
0xf1, 0x49, 0x1e, 0xfb, 0xd8, 0xe0, 0x31, 0xa1, 0x85, 0xf6, 0x66, 0xaf, 0xa6, 0xc1, 0x6f, 0xbf, 0xc4, 0xb7, 0x24, 0x8c, 0x5a, 0xd0, 0x3f, 0xf2, 0xc3, 0x61, 0x14, 0xf2, 0xa1, 0x34, 0x7b, 0x33,
0xac, 0x40, 0x0d, 0x95, 0x92, 0xd9, 0x0a, 0x8c, 0xa9, 0x67, 0x56, 0x0b, 0xfe, 0x7e, 0x32, 0x76, 0xc0, 0x3d, 0x80, 0xb5, 0x7c, 0xff, 0xa4, 0x8c, 0x7d, 0x62, 0xc8, 0x98, 0xb0, 0x42, 0x7b, 0xb3,
0xc5, 0x16, 0x25, 0x1d, 0x2d, 0x19, 0x92, 0xe5, 0xc7, 0x7c, 0x70, 0x26, 0x5d, 0x2d, 0x06, 0x82, 0x67, 0xd3, 0x90, 0xb7, 0x5f, 0x56, 0xa0, 0x86, 0x46, 0xc9, 0x6c, 0x03, 0xc6, 0xb4, 0x33, 0xab,
0x0c, 0x82, 0x46, 0x00, 0x7d, 0x2d, 0x19, 0x44, 0xa5, 0x55, 0x1e, 0x7d, 0x39, 0x9f, 0xe5, 0xd1, 0x85, 0x73, 0x01, 0xda, 0xec, 0x8a, 0x25, 0x4a, 0x3a, 0x5a, 0x32, 0x24, 0xa3, 0xc7, 0x7c, 0x70,
0x77, 0x5d, 0x98, 0x0f, 0xc2, 0xa3, 0x68, 0x1a, 0x0e, 0x89, 0x21, 0x1a, 0x9e, 0x4a, 0xd2, 0x09, 0x26, 0x5d, 0x2d, 0x06, 0x82, 0x02, 0x82, 0x9b, 0x00, 0xfa, 0x5a, 0x0a, 0x88, 0x4a, 0x2b, 0x1a,
0x03, 0x31, 0x2a, 0xca, 0x4f, 0x41, 0xfe, 0x19, 0xc0, 0x36, 0xa0, 0x99, 0x5c, 0x84, 0x03, 0x93, 0x7d, 0x39, 0x9f, 0xd1, 0xe8, 0xbb, 0x2e, 0xcc, 0x07, 0xe1, 0x51, 0x34, 0x0d, 0x87, 0x24, 0x10,
0xe6, 0x57, 0xe5, 0x2c, 0xe1, 0x1c, 0xdc, 0x3b, 0xbc, 0x08, 0x07, 0x44, 0xe1, 0x59, 0x31, 0xf7, 0x0d, 0x4f, 0x25, 0xe9, 0x24, 0x82, 0x04, 0x15, 0xf5, 0xa7, 0x60, 0xff, 0x0c, 0x60, 0x1b, 0xd0,
0x77, 0xa1, 0xa1, 0x60, 0x24, 0xcb, 0x17, 0xfb, 0x9f, 0xef, 0x3f, 0x7b, 0xb9, 0xdf, 0x3f, 0xfc, 0x4c, 0xce, 0xc3, 0x81, 0xc9, 0xf3, 0xab, 0x72, 0x94, 0x70, 0x0c, 0xee, 0x1e, 0x9e, 0x87, 0x03,
0xc1, 0xfe, 0x56, 0xe7, 0x0a, 0x5b, 0x82, 0xd6, 0xe6, 0x16, 0x51, 0x3a, 0x01, 0x0e, 0x16, 0x39, 0xe2, 0xf0, 0x2c, 0x9b, 0xfb, 0xbb, 0xd0, 0x50, 0x30, 0xb2, 0xe5, 0x8b, 0xfd, 0xcf, 0xf7, 0x9f,
0xd8, 0x3c, 0x3c, 0xd4, 0x48, 0xc5, 0x65, 0x68, 0xc8, 0x27, 0xa4, 0xf9, 0x69, 0x0f, 0xfa, 0xc7, 0xbd, 0xdc, 0xef, 0x1f, 0xfe, 0x60, 0x7f, 0xab, 0x73, 0x89, 0x2d, 0x41, 0x6b, 0x73, 0x8b, 0x38,
0xb0, 0x6c, 0x60, 0x99, 0x15, 0x31, 0x41, 0x20, 0x67, 0x45, 0x90, 0xca, 0x28, 0x72, 0xdc, 0x0e, 0x9d, 0x00, 0x07, 0xb3, 0x1c, 0x6c, 0x1e, 0x1e, 0x6a, 0xa4, 0xe2, 0x32, 0xdc, 0xc8, 0x27, 0x64,
0x2c, 0x3e, 0xe6, 0xe9, 0x93, 0xf0, 0x38, 0x52, 0x35, 0xfd, 0xcf, 0x1a, 0x2c, 0x69, 0x48, 0x56, 0xf9, 0x69, 0x4f, 0xfb, 0x27, 0xb0, 0x6c, 0x60, 0xd9, 0x2e, 0x62, 0x82, 0x40, 0x6e, 0x17, 0x41,
0x74, 0x07, 0x96, 0x82, 0x21, 0x0f, 0xd3, 0x20, 0xbd, 0xe8, 0x5b, 0xfe, 0x82, 0x3c, 0x8c, 0xaa, 0x26, 0xa3, 0xa0, 0xb8, 0x1d, 0x58, 0x7c, 0xcc, 0xd3, 0x27, 0xe1, 0x71, 0xa4, 0x4a, 0xfa, 0x9f,
0xb6, 0x3f, 0x0a, 0x7c, 0x75, 0x90, 0x23, 0x12, 0x68, 0x3f, 0xa3, 0x0e, 0x60, 0xfa, 0x6d, 0x88, 0x35, 0x58, 0xd2, 0x90, 0x2c, 0xe8, 0x36, 0x2c, 0x05, 0x43, 0x1e, 0xa6, 0x41, 0x7a, 0xde, 0xb7,
0xae, 0x84, 0x9b, 0xa2, 0x34, 0x0f, 0x25, 0x10, 0xe2, 0x72, 0x9b, 0xd1, 0x9f, 0x08, 0x95, 0xb3, 0xfc, 0x05, 0x79, 0x18, 0x4d, 0x6d, 0x7f, 0x14, 0xf8, 0xea, 0xc0, 0x47, 0x24, 0x70, 0xff, 0x8c,
0x2c, 0x0b, 0x97, 0x4a, 0xd4, 0x84, 0x43, 0xae, 0x0b, 0x3d, 0x41, 0x03, 0x85, 0x93, 0x92, 0x39, 0x36, 0x80, 0xe9, 0xb7, 0x21, 0xbe, 0x12, 0x6e, 0x8a, 0x52, 0x1a, 0x6a, 0x20, 0xc4, 0xe5, 0x32,
0x21, 0x1f, 0xf3, 0x27, 0x25, 0xc6, 0x69, 0x4b, 0xa3, 0x70, 0xda, 0x82, 0xf2, 0xf3, 0x22, 0x1c, 0xa3, 0x3f, 0x11, 0x26, 0x67, 0x19, 0x09, 0xa7, 0x4a, 0x94, 0x84, 0x5d, 0xae, 0x0b, 0x3b, 0x41,
0xf0, 0x61, 0x3f, 0x8d, 0xfa, 0x24, 0xe7, 0x89, 0x24, 0x1a, 0x5e, 0x1e, 0xc6, 0x7d, 0x23, 0xe5, 0x03, 0x85, 0x13, 0x95, 0x39, 0xa1, 0x1f, 0xf3, 0x27, 0x2a, 0xc6, 0xa9, 0x4c, 0xa3, 0x70, 0x2a,
0x49, 0x1a, 0x72, 0xe1, 0x9a, 0x6e, 0x90, 0x17, 0x54, 0x41, 0x68, 0x1f, 0x4c, 0xe3, 0x20, 0xe9, 0x83, 0xfa, 0xf3, 0x3c, 0x1c, 0xf0, 0x61, 0x3f, 0x8d, 0xfa, 0xa4, 0xe7, 0x89, 0x25, 0x1a, 0x5e,
0xb6, 0xe9, 0x1c, 0x85, 0x7e, 0xb3, 0x6f, 0xc3, 0xd5, 0x23, 0x9e, 0xa4, 0xfd, 0x53, 0xee, 0x0f, 0x1e, 0xc6, 0x75, 0x23, 0xe5, 0x49, 0x1a, 0x72, 0xe1, 0x9a, 0x6e, 0x90, 0x17, 0x54, 0x41, 0xb8,
0x79, 0x4c, 0xe4, 0x25, 0x0e, 0x6c, 0x84, 0xca, 0x55, 0x9e, 0x89, 0x84, 0x7b, 0xc6, 0xe3, 0x24, 0x3f, 0x98, 0xc6, 0x41, 0xd2, 0x6d, 0xd3, 0x79, 0x0b, 0xfd, 0x66, 0xdf, 0x86, 0xcb, 0x47, 0x3c,
0x88, 0x42, 0x52, 0xb6, 0x9a, 0x9e, 0x4a, 0x62, 0x7d, 0x38, 0x78, 0xbd, 0x51, 0xeb, 0x19, 0x5c, 0x49, 0xfb, 0xa7, 0xdc, 0x1f, 0xf2, 0x98, 0xd8, 0x4b, 0x1c, 0xec, 0x08, 0x93, 0xab, 0x9c, 0x88,
0xa2, 0x81, 0x97, 0x67, 0xb2, 0x5b, 0x30, 0x47, 0x03, 0x48, 0xba, 0x1d, 0xa2, 0x99, 0x76, 0xc6, 0x8c, 0x7b, 0xc6, 0xe3, 0x24, 0x88, 0x42, 0x32, 0xb6, 0x9a, 0x9e, 0x4a, 0x62, 0x79, 0xd8, 0x79,
0xf3, 0x41, 0xe8, 0xc9, 0x3c, 0x5c, 0xe5, 0x41, 0x34, 0x8a, 0x62, 0xd2, 0xb8, 0x9a, 0x9e, 0x48, 0xbd, 0x50, 0xeb, 0x11, 0x5c, 0xa2, 0x8e, 0x97, 0x13, 0xd9, 0x0d, 0x98, 0xa3, 0x0e, 0x24, 0xdd,
0xd8, 0xb3, 0x73, 0x12, 0xfb, 0x93, 0x53, 0xa9, 0x75, 0xe5, 0xe1, 0xef, 0xd6, 0x1a, 0xad, 0x4e, 0x0e, 0xf1, 0x4c, 0x3b, 0x93, 0xf9, 0x20, 0xf4, 0x24, 0x0d, 0x67, 0x79, 0x10, 0x8d, 0xa2, 0x98,
0xdb, 0xfd, 0x33, 0x50, 0xa7, 0x6a, 0xa9, 0x3a, 0x9a, 0x4c, 0x47, 0x56, 0x47, 0x68, 0x17, 0xe6, 0x2c, 0xae, 0xa6, 0x27, 0x12, 0xf6, 0xe8, 0x9c, 0xc4, 0xfe, 0xe4, 0x54, 0x5a, 0x5d, 0x79, 0xf8,
0x43, 0x9e, 0x9e, 0x47, 0xf1, 0x2b, 0x75, 0x2a, 0x28, 0x93, 0xee, 0xcf, 0xc8, 0x42, 0xd3, 0xa7, 0xbb, 0xb5, 0x46, 0xab, 0xd3, 0x76, 0xff, 0x1c, 0xd4, 0xa9, 0x58, 0x2a, 0x8e, 0x06, 0xd3, 0x91,
0x64, 0x2f, 0x48, 0xb5, 0x44, 0x3b, 0x5b, 0x2c, 0x55, 0x72, 0xea, 0x4b, 0xa3, 0xb1, 0x41, 0xc0, 0xc5, 0x11, 0xda, 0x85, 0xf9, 0x90, 0xa7, 0xaf, 0xa3, 0xf8, 0x95, 0x3a, 0x3d, 0x94, 0x49, 0xf7,
0xe1, 0xa9, 0x8f, 0xb2, 0xd6, 0x5a, 0x7d, 0x61, 0x87, 0xb7, 0x08, 0xdb, 0x15, 0x8b, 0x7f, 0x0b, 0x67, 0xb4, 0x43, 0xd3, 0xa7, 0x69, 0x2f, 0xc8, 0xb4, 0xc4, 0x7d, 0xb6, 0x98, 0xaa, 0xe4, 0xd4,
0x16, 0xd5, 0xf9, 0x5b, 0xd2, 0x1f, 0xf1, 0xe3, 0x54, 0x79, 0xd1, 0xc2, 0xe9, 0x98, 0x8c, 0xf5, 0x97, 0x9b, 0xc6, 0x06, 0x01, 0x87, 0xa7, 0x3e, 0xea, 0x5a, 0x6b, 0xf6, 0xc5, 0x3e, 0xbc, 0x45,
0x3d, 0x7e, 0x9c, 0xba, 0xfb, 0xb0, 0x2c, 0xe5, 0xdf, 0xb3, 0x09, 0x57, 0x4d, 0xff, 0x76, 0x99, 0xd8, 0xae, 0x98, 0xfc, 0x1b, 0xb0, 0xa8, 0xce, 0xe9, 0x92, 0xfe, 0x88, 0x1f, 0xa7, 0xca, 0x8b,
0x2e, 0xd1, 0xda, 0x58, 0xb1, 0x05, 0xa6, 0x38, 0x71, 0xb4, 0x4b, 0xba, 0x1e, 0x30, 0x53, 0x9e, 0x16, 0x4e, 0xc7, 0xb4, 0x59, 0xdf, 0xe3, 0xc7, 0xa9, 0xbb, 0x0f, 0xcb, 0x52, 0xff, 0x3d, 0x9b,
0xca, 0x0a, 0xe5, 0x66, 0xae, 0xfc, 0x84, 0x72, 0x38, 0x16, 0x86, 0xf3, 0x93, 0x4c, 0x07, 0x03, 0x70, 0x55, 0xf5, 0x6f, 0x97, 0xd9, 0x12, 0xad, 0x8d, 0x15, 0x5b, 0x61, 0x8a, 0x93, 0x49, 0x3b,
0x75, 0x6a, 0xda, 0xf0, 0x54, 0xd2, 0xfd, 0x23, 0x07, 0x56, 0xa8, 0x36, 0xa5, 0x0d, 0xc9, 0x3d, 0xa7, 0xeb, 0x01, 0x33, 0xf5, 0xa9, 0x2c, 0x50, 0x2e, 0xe6, 0xca, 0x4f, 0x28, 0xbb, 0x63, 0x61,
0xeb, 0x93, 0xaf, 0xd0, 0x4d, 0xe5, 0xa5, 0x15, 0xbe, 0xc9, 0x55, 0xa8, 0x9b, 0xbb, 0x98, 0x48, 0x38, 0x3e, 0xc9, 0x74, 0x30, 0x50, 0xa7, 0xab, 0x0d, 0x4f, 0x25, 0xdd, 0x3f, 0x72, 0x60, 0x85,
0x7c, 0x75, 0x9f, 0x4c, 0x2d, 0xef, 0x93, 0x71, 0xff, 0x9e, 0x03, 0xcb, 0x62, 0x23, 0x21, 0x6d, 0x4a, 0x53, 0xd6, 0x90, 0x5c, 0xb3, 0x3e, 0xfd, 0x0a, 0xcd, 0x54, 0x5e, 0x5a, 0xe1, 0x9b, 0x5c,
0x5b, 0x0e, 0xff, 0xcf, 0xc2, 0x82, 0xd0, 0x08, 0xa4, 0x54, 0x90, 0x1d, 0xcd, 0x44, 0x2b, 0xa1, 0x85, 0xba, 0xb9, 0x8a, 0x89, 0xc4, 0x57, 0xf7, 0xc9, 0xd4, 0xf2, 0x3e, 0x19, 0xf7, 0xef, 0x3b,
0xa2, 0xf0, 0xee, 0x15, 0xcf, 0x2e, 0xcc, 0x3e, 0x23, 0xad, 0x2c, 0xec, 0x13, 0x5a, 0x72, 0xbe, 0xb0, 0x2c, 0x16, 0x12, 0xb2, 0xb6, 0x65, 0xf7, 0xff, 0x3c, 0x2c, 0x08, 0x8b, 0x40, 0x6a, 0x05,
0x6e, 0xcf, 0xf5, 0xee, 0x15, 0xcf, 0x28, 0xfe, 0xb0, 0x81, 0xca, 0x32, 0xe2, 0xee, 0x63, 0x58, 0xd9, 0xd0, 0x4c, 0xb5, 0x12, 0x2a, 0x32, 0xef, 0x5e, 0xf2, 0xec, 0xcc, 0xec, 0x01, 0x59, 0x65,
0xb0, 0x1a, 0xb2, 0xfc, 0x41, 0x6d, 0xe1, 0x0f, 0x2a, 0x38, 0x5e, 0x2b, 0x25, 0x8e, 0xd7, 0x7f, 0x61, 0x9f, 0xd0, 0x92, 0x73, 0x78, 0x7b, 0xac, 0x77, 0x2f, 0x79, 0x46, 0xf6, 0x87, 0x0d, 0x34,
0x51, 0x05, 0x86, 0xc4, 0x92, 0x5b, 0x8d, 0x9b, 0xf6, 0xe9, 0x85, 0x3a, 0x6a, 0xcf, 0x20, 0xb6, 0x96, 0x11, 0x77, 0x1f, 0xc3, 0x82, 0x55, 0x91, 0xe5, 0x0f, 0x6a, 0x0b, 0x7f, 0x50, 0xc1, 0xf1,
0x01, 0xcc, 0x48, 0xaa, 0x53, 0x95, 0xaa, 0x3e, 0x55, 0x29, 0xc9, 0x45, 0x51, 0x2b, 0xb5, 0x0e, 0x5a, 0x29, 0x71, 0xbc, 0xfe, 0xcb, 0x2a, 0x30, 0x64, 0x96, 0xdc, 0x6c, 0x5c, 0xb7, 0x4f, 0x2f,
0x7d, 0x62, 0x41, 0xb6, 0xbe, 0x98, 0xfa, 0xd2, 0x3c, 0xdc, 0x19, 0xe9, 0xf8, 0x02, 0xad, 0x12, 0xd4, 0x91, 0x7c, 0x06, 0xb1, 0x0d, 0x60, 0x46, 0x52, 0x9d, 0xaa, 0x54, 0xf5, 0xa9, 0x4a, 0x09,
0x69, 0x1f, 0xab, 0x74, 0x7e, 0x8d, 0xe7, 0x2e, 0x5d, 0xe3, 0xf9, 0x82, 0xdf, 0xcd, 0xb0, 0xd0, 0x15, 0x55, 0xad, 0xb4, 0x3a, 0xf4, 0x89, 0x05, 0xed, 0xf5, 0xc5, 0xd0, 0x97, 0xd2, 0x70, 0x65,
0x1a, 0xb6, 0x85, 0x76, 0x0b, 0x16, 0xd4, 0x29, 0x85, 0x38, 0xe9, 0x94, 0xe6, 0xb0, 0x05, 0xb2, 0xa4, 0xe3, 0x0b, 0xdc, 0x95, 0xc8, 0xfd, 0xb1, 0x4a, 0xe7, 0xe7, 0x78, 0xee, 0xc2, 0x39, 0x9e,
0xbb, 0xd0, 0x51, 0x46, 0x92, 0x36, 0x03, 0xc5, 0x79, 0x5f, 0x01, 0xc7, 0x3d, 0x20, 0xf3, 0xc4, 0x2f, 0xf8, 0xdd, 0x8c, 0x1d, 0x5a, 0xc3, 0xde, 0xa1, 0xdd, 0x80, 0x05, 0x75, 0x4a, 0x21, 0x4e,
0xb5, 0xa8, 0xb3, 0x19, 0x40, 0x36, 0x15, 0x52, 0x49, 0x7f, 0x1a, 0xca, 0x63, 0x76, 0x3e, 0x24, 0x44, 0xe5, 0x76, 0xd8, 0x02, 0xd9, 0x1d, 0xe8, 0xa8, 0x4d, 0x92, 0xde, 0x06, 0x8a, 0xf3, 0xbe,
0x43, 0x18, 0x6d, 0xaa, 0x7c, 0x86, 0xfb, 0xb7, 0x1d, 0xe8, 0xe0, 0xba, 0x59, 0xa4, 0xf9, 0x29, 0x02, 0x8e, 0x6b, 0x40, 0xe6, 0x89, 0x6b, 0x51, 0x63, 0x33, 0x80, 0xf6, 0x54, 0xc8, 0x25, 0xfd,
0x10, 0x67, 0xbc, 0x25, 0x65, 0x5a, 0x65, 0xd9, 0x27, 0xd0, 0xa4, 0x74, 0x34, 0xe1, 0xa1, 0xa4, 0x69, 0x28, 0x8f, 0xe3, 0xf9, 0x90, 0x36, 0xc2, 0xb8, 0xa7, 0xca, 0x13, 0xdc, 0xbf, 0xe3, 0x40,
0xcb, 0xae, 0x4d, 0x97, 0x99, 0x4c, 0xd9, 0xbd, 0xe2, 0x65, 0x85, 0x0d, 0xaa, 0xfc, 0x8f, 0x0e, 0x07, 0xe7, 0xcd, 0x62, 0xcd, 0xcf, 0x80, 0x24, 0xe3, 0x1d, 0x39, 0xd3, 0xca, 0xcb, 0x3e, 0x85,
0xb4, 0x64, 0x2b, 0xbf, 0xb2, 0xa7, 0xa7, 0x67, 0xc4, 0x45, 0x08, 0x05, 0x2c, 0x0b, 0x83, 0xb8, 0x26, 0xa5, 0xa3, 0x09, 0x0f, 0x25, 0x5f, 0x76, 0x6d, 0xbe, 0xcc, 0x74, 0xca, 0xee, 0x25, 0x2f,
0x03, 0x4b, 0x63, 0x3f, 0x9d, 0xc6, 0xb8, 0xa7, 0x5b, 0x5e, 0x9e, 0x3c, 0x8c, 0x1b, 0x34, 0x89, 0xcb, 0x6c, 0x70, 0xe5, 0x7f, 0x74, 0xa0, 0x25, 0x6b, 0xf9, 0x95, 0x3d, 0x3d, 0x3d, 0x23, 0x7e,
0xcf, 0xa4, 0x9f, 0x06, 0xa3, 0xbe, 0xca, 0x95, 0x11, 0x08, 0x65, 0x59, 0x28, 0x45, 0x92, 0xd4, 0x42, 0x18, 0x60, 0x59, 0xb8, 0xc4, 0x6d, 0x58, 0x1a, 0xfb, 0xe9, 0x34, 0xc6, 0x35, 0xdd, 0xf2,
0x3f, 0xe1, 0x72, 0xef, 0x15, 0x09, 0xb7, 0x0b, 0x6b, 0x07, 0xd9, 0xc9, 0x8d, 0xa1, 0x63, 0xbb, 0xf2, 0xe4, 0x61, 0x5c, 0xa0, 0x49, 0x7d, 0x26, 0xfd, 0x34, 0x18, 0xf5, 0x15, 0x55, 0x46, 0x2a,
0xff, 0x6c, 0x01, 0xd6, 0x0b, 0x59, 0x3a, 0x5e, 0x4a, 0xba, 0x2e, 0x46, 0xc1, 0xf8, 0x28, 0xd2, 0x94, 0x91, 0x50, 0x8b, 0x24, 0xa9, 0x7f, 0xc2, 0xe5, 0xda, 0x2b, 0x12, 0x6e, 0x17, 0xd6, 0x0e,
0x06, 0x8a, 0x63, 0x7a, 0x35, 0xac, 0x2c, 0x76, 0x02, 0x57, 0x95, 0x92, 0x81, 0x73, 0x9a, 0x6d, 0xb2, 0x93, 0x1b, 0xc3, 0xc6, 0x76, 0xff, 0xf9, 0x02, 0xac, 0x17, 0x48, 0x3a, 0xae, 0x4a, 0xba,
0x88, 0x15, 0xda, 0xe9, 0x3e, 0xb2, 0x97, 0x30, 0xdf, 0xa0, 0xc2, 0x4d, 0x46, 0x2e, 0xaf, 0x8f, 0x2e, 0x46, 0xc1, 0xf8, 0x28, 0xd2, 0x1b, 0x14, 0xc7, 0xf4, 0x6a, 0x58, 0x24, 0x76, 0x02, 0x97,
0x9d, 0x42, 0x57, 0x6b, 0x33, 0x52, 0x60, 0x1b, 0x1a, 0x0f, 0xb6, 0xf5, 0xe1, 0x25, 0x6d, 0x59, 0x95, 0x91, 0x81, 0x63, 0x9a, 0x2d, 0x88, 0x15, 0x5a, 0xe9, 0x3e, 0xb6, 0xa7, 0x30, 0x5f, 0xa1,
0x2a, 0xb9, 0x37, 0xb3, 0x36, 0x76, 0x01, 0x37, 0x54, 0x1e, 0x49, 0xe4, 0x62, 0x7b, 0xb5, 0xb7, 0xc2, 0x4d, 0x41, 0x2e, 0x2f, 0x8f, 0x9d, 0x42, 0x57, 0x5b, 0x33, 0x52, 0x61, 0x1b, 0x16, 0x0f,
0x1a, 0x1b, 0x19, 0x1b, 0x76, 0xa3, 0x97, 0x54, 0xcc, 0x7e, 0x02, 0x6b, 0xe7, 0x7e, 0x90, 0xaa, 0xd6, 0xf5, 0xd1, 0x05, 0x75, 0x59, 0x26, 0xb9, 0x37, 0xb3, 0x34, 0x76, 0x0e, 0xd7, 0x14, 0x8d,
0x6e, 0x19, 0xfa, 0x45, 0x9d, 0x9a, 0xdc, 0xb8, 0xa4, 0xc9, 0x97, 0xe2, 0x63, 0x6b, 0x9b, 0x9a, 0x34, 0x72, 0xb1, 0xbe, 0xda, 0x3b, 0xf5, 0x8d, 0x36, 0x1b, 0x76, 0xa5, 0x17, 0x14, 0xcc, 0x7e,
0x51, 0x63, 0xef, 0x4f, 0x2a, 0xb0, 0x68, 0xd7, 0x83, 0x64, 0x2a, 0x79, 0x5f, 0xc9, 0x40, 0xa5, 0x02, 0x6b, 0xaf, 0xfd, 0x20, 0x55, 0xcd, 0x32, 0xec, 0x8b, 0x3a, 0x55, 0xb9, 0x71, 0x41, 0x95,
0x91, 0xe6, 0xe0, 0xa2, 0x9d, 0x5f, 0x29, 0xb3, 0xf3, 0x4d, 0xcb, 0xba, 0x7a, 0x99, 0x8b, 0xb0, 0x2f, 0xc5, 0xc7, 0xd6, 0x32, 0x35, 0xa3, 0xc4, 0xde, 0x9f, 0x56, 0x60, 0xd1, 0x2e, 0x07, 0xd9,
0xf6, 0x76, 0x2e, 0xc2, 0x7a, 0xa9, 0x8b, 0x70, 0xb6, 0x27, 0x69, 0xee, 0x57, 0xf5, 0x24, 0xcd, 0x54, 0xca, 0xbe, 0xd2, 0x81, 0xca, 0x22, 0xcd, 0xc1, 0xc5, 0x7d, 0x7e, 0xa5, 0x6c, 0x9f, 0x6f,
0xbf, 0xd1, 0x93, 0xd4, 0xfb, 0x3f, 0x0e, 0xb0, 0x22, 0xf5, 0xb2, 0xc7, 0xc2, 0xb5, 0x11, 0xf2, 0xee, 0xac, 0xab, 0x17, 0xb9, 0x08, 0x6b, 0xef, 0xe6, 0x22, 0xac, 0x97, 0xba, 0x08, 0x67, 0x7b,
0x91, 0x14, 0x62, 0xdf, 0x7c, 0x3b, 0x0e, 0x50, 0xab, 0xa5, 0xbe, 0x46, 0x56, 0x34, 0x83, 0x96, 0x92, 0xe6, 0x7e, 0x55, 0x4f, 0xd2, 0xfc, 0x5b, 0x3d, 0x49, 0xbd, 0xff, 0xe3, 0x00, 0x2b, 0x72,
0x4c, 0x15, 0x6b, 0xc1, 0x2b, 0xcb, 0xca, 0xb9, 0x49, 0x6b, 0x97, 0xbb, 0x49, 0xeb, 0x97, 0xbb, 0x2f, 0x7b, 0x2c, 0x5c, 0x1b, 0x21, 0x1f, 0x49, 0x25, 0xf6, 0xcd, 0x77, 0x93, 0x00, 0x35, 0x5b,
0x49, 0xe7, 0xf2, 0x6e, 0xd2, 0xde, 0x5f, 0x75, 0x60, 0xa5, 0x84, 0xcc, 0x7e, 0x73, 0x03, 0x47, 0xea, 0x6b, 0x14, 0x45, 0x33, 0xb8, 0xc9, 0x34, 0xb1, 0x16, 0xbc, 0x32, 0x52, 0xce, 0x4d, 0x5a,
0xc2, 0xb0, 0xa4, 0x4f, 0x45, 0x12, 0x86, 0x09, 0xf6, 0xfe, 0x22, 0x2c, 0x58, 0xac, 0xf5, 0x9b, 0xbb, 0xd8, 0x4d, 0x5a, 0xbf, 0xd8, 0x4d, 0x3a, 0x97, 0x77, 0x93, 0xf6, 0xfe, 0xba, 0x03, 0x2b,
0x6b, 0x3f, 0xaf, 0x25, 0x0a, 0xca, 0xb6, 0xb0, 0xde, 0xff, 0xaa, 0x00, 0x2b, 0xb2, 0xf7, 0xff, 0x25, 0x6c, 0xf6, 0x9b, 0xeb, 0x38, 0x32, 0x86, 0xa5, 0x7d, 0x2a, 0x92, 0x31, 0x4c, 0xb0, 0xf7,
0xd7, 0x3e, 0x14, 0xe7, 0xa9, 0x5a, 0x32, 0x4f, 0xff, 0x4f, 0x77, 0x9e, 0x0f, 0x61, 0x59, 0x46, 0x97, 0x61, 0xc1, 0x12, 0xad, 0xdf, 0x5c, 0xfd, 0x79, 0x2b, 0x51, 0x70, 0xb6, 0x85, 0xf5, 0xfe,
0x62, 0x1a, 0xce, 0x2c, 0x41, 0x31, 0xc5, 0x0c, 0xd4, 0x93, 0x6d, 0x1f, 0x75, 0xc3, 0x8a, 0x3c, 0x57, 0x05, 0x58, 0x51, 0xbc, 0xff, 0xbf, 0xb6, 0xa1, 0x38, 0x4e, 0xd5, 0x92, 0x71, 0xfa, 0x7f,
0x33, 0xb6, 0xdf, 0x9c, 0xab, 0xda, 0xed, 0x41, 0x57, 0xce, 0xd0, 0xce, 0x19, 0x0f, 0xd3, 0xc3, 0xba, 0xf2, 0x7c, 0x04, 0xcb, 0x32, 0x62, 0xd3, 0x70, 0x66, 0x09, 0x8e, 0x29, 0x12, 0xd0, 0x4e,
0xe9, 0x91, 0x08, 0x45, 0x0c, 0xa2, 0x90, 0xd4, 0x40, 0x33, 0x53, 0x2a, 0x14, 0xdf, 0x86, 0xb6, 0xb6, 0x7d, 0xd4, 0x0d, 0x2b, 0x42, 0xcd, 0x58, 0x7e, 0x73, 0xae, 0x6a, 0xb7, 0x07, 0x5d, 0x39,
0xb9, 0x7d, 0xc8, 0xe5, 0xc8, 0xf9, 0x33, 0x51, 0x95, 0x30, 0x4b, 0xb1, 0x6d, 0x58, 0x24, 0x21, 0x42, 0x3b, 0x67, 0x3c, 0x4c, 0x0f, 0xa7, 0x47, 0x22, 0x64, 0x31, 0x88, 0x42, 0x32, 0x03, 0x4d,
0x39, 0xd4, 0xdf, 0x55, 0xe8, 0xbb, 0x37, 0xf8, 0x68, 0x76, 0xaf, 0x78, 0xb9, 0x6f, 0xd8, 0xef, 0xa2, 0x34, 0x28, 0xbe, 0x0d, 0x6d, 0x73, 0xf9, 0x90, 0xd3, 0x91, 0xf3, 0x67, 0xa2, 0x29, 0x61,
0xc0, 0xa2, 0x6d, 0x00, 0x4a, 0xad, 0xa4, 0xcc, 0x22, 0xc0, 0xcf, 0xed, 0xc2, 0x6c, 0x13, 0x3a, 0xe6, 0x62, 0xdb, 0xb0, 0x48, 0x4a, 0x72, 0xa8, 0xbf, 0xab, 0xd0, 0x77, 0x6f, 0xf1, 0xd1, 0xec,
0x79, 0x0b, 0x52, 0x46, 0xf3, 0xcc, 0xa8, 0xa0, 0x50, 0x9c, 0x7d, 0x22, 0x0f, 0x2c, 0xeb, 0xe4, 0x5e, 0xf2, 0x72, 0xdf, 0xb0, 0xdf, 0x81, 0x45, 0x7b, 0x03, 0x28, 0xad, 0x92, 0xb2, 0x1d, 0x01,
0x3b, 0xb9, 0x65, 0x7f, 0x66, 0x4c, 0xd3, 0x3d, 0xf1, 0xc7, 0x38, 0xc2, 0xfc, 0x3d, 0x80, 0x0c, 0x7e, 0x6e, 0x67, 0x66, 0x9b, 0xd0, 0xc9, 0xef, 0x20, 0x65, 0x34, 0xcf, 0x8c, 0x02, 0x0a, 0xd9,
0x63, 0x1d, 0x68, 0x3f, 0x3b, 0xd8, 0xd9, 0xef, 0x6f, 0xed, 0x6e, 0xee, 0xef, 0xef, 0xec, 0x75, 0xd9, 0xa7, 0xf2, 0xc0, 0xb2, 0x4e, 0xbe, 0x93, 0x1b, 0xf6, 0x67, 0xc6, 0x30, 0xdd, 0x15, 0x7f,
0xae, 0x30, 0x06, 0x8b, 0xe4, 0xea, 0xdb, 0xd6, 0x98, 0x83, 0x98, 0x74, 0xae, 0x28, 0xac, 0xc2, 0x8c, 0x23, 0xcc, 0xdf, 0x03, 0xc8, 0x30, 0xd6, 0x81, 0xf6, 0xb3, 0x83, 0x9d, 0xfd, 0xfe, 0xd6,
0x56, 0xa1, 0xf3, 0x64, 0x3f, 0x87, 0x56, 0x1f, 0x36, 0x35, 0x7f, 0xb8, 0x6b, 0xb0, 0x2a, 0x22, 0xee, 0xe6, 0xfe, 0xfe, 0xce, 0x5e, 0xe7, 0x12, 0x63, 0xb0, 0x48, 0xae, 0xbe, 0x6d, 0x8d, 0x39,
0x6d, 0x1f, 0x0a, 0xf2, 0x50, 0xda, 0xc9, 0x3f, 0x72, 0xe0, 0x6a, 0x2e, 0x23, 0x0b, 0xf9, 0x12, 0x88, 0x49, 0xe7, 0x8a, 0xc2, 0x2a, 0x6c, 0x15, 0x3a, 0x4f, 0xf6, 0x73, 0x68, 0xf5, 0x61, 0x53,
0x0a, 0x88, 0xad, 0x95, 0xd8, 0x20, 0x1d, 0x40, 0x28, 0x5d, 0x33, 0x27, 0x41, 0x8a, 0x19, 0x48, 0xcb, 0x87, 0xbb, 0x06, 0xab, 0x22, 0x22, 0xf7, 0xa1, 0x60, 0x0f, 0x65, 0x9d, 0xfc, 0x63, 0x07,
0xf3, 0x86, 0x6e, 0x9a, 0xe3, 0xa4, 0xb2, 0x2c, 0x77, 0x5d, 0x47, 0xd6, 0xe4, 0x3a, 0x7e, 0x2c, 0x2e, 0xe7, 0x08, 0x59, 0xc8, 0x97, 0x30, 0x40, 0x6c, 0xab, 0xc4, 0x06, 0xe9, 0x00, 0x42, 0xd9,
0x22, 0x78, 0xcd, 0x8c, 0xec, 0x00, 0xd8, 0xee, 0xb2, 0x4a, 0xa2, 0x59, 0x61, 0x29, 0x3b, 0x76, 0x9a, 0x39, 0x0d, 0x52, 0x24, 0x20, 0xcf, 0x1b, 0xb6, 0x69, 0x4e, 0x92, 0xca, 0x48, 0xee, 0xba,
0x7f, 0x4b, 0xf3, 0xdc, 0x7f, 0x5b, 0x05, 0xf6, 0xbd, 0x29, 0x8f, 0x2f, 0x28, 0xa6, 0x4b, 0x7b, 0x8e, 0xac, 0xc9, 0x35, 0xfc, 0x58, 0x44, 0xfa, 0x9a, 0x84, 0xec, 0x00, 0xd8, 0x6e, 0xb2, 0x4a,
0x4e, 0xd7, 0xf3, 0x7e, 0xc1, 0xb9, 0xc9, 0xf4, 0xe8, 0x73, 0x7e, 0xa1, 0x82, 0x20, 0x2b, 0x6f, 0xe2, 0xb6, 0xc2, 0x32, 0x76, 0xec, 0xf6, 0x96, 0xd2, 0xdc, 0x7f, 0x5b, 0x05, 0xf6, 0xbd, 0x29,
0x15, 0x04, 0x59, 0x16, 0x84, 0x58, 0xbb, 0x3c, 0x08, 0xb1, 0x7e, 0x59, 0x10, 0xe2, 0xd7, 0x60, 0x8f, 0xcf, 0x29, 0xa6, 0x4b, 0x7b, 0x4e, 0xd7, 0xf3, 0x7e, 0xc1, 0xb9, 0xc9, 0xf4, 0xe8, 0x73,
0x21, 0x38, 0x09, 0x23, 0x14, 0x07, 0xa8, 0x42, 0x24, 0xdd, 0xb9, 0x9b, 0x55, 0x34, 0xbd, 0x25, 0x7e, 0xae, 0x82, 0x25, 0x2b, 0xef, 0x14, 0x2c, 0x59, 0x16, 0xac, 0x58, 0xbb, 0x38, 0x58, 0xb1,
0xb8, 0x8f, 0x18, 0xfb, 0x2c, 0x2b, 0xc4, 0x87, 0x27, 0x14, 0x34, 0x6b, 0x0a, 0x88, 0x9d, 0xe1, 0x7e, 0x51, 0xb0, 0xe2, 0xd7, 0x60, 0x21, 0x38, 0x09, 0x23, 0x54, 0x07, 0x68, 0x42, 0x24, 0xdd,
0x09, 0xdf, 0x8b, 0x06, 0x7e, 0x1a, 0xc5, 0x64, 0xa7, 0xa9, 0x8f, 0x11, 0x4f, 0xd8, 0x2d, 0x58, 0xb9, 0xeb, 0x55, 0xdc, 0x7a, 0x4b, 0x70, 0x1f, 0x31, 0xf6, 0x20, 0xcb, 0xc4, 0x87, 0x27, 0x14,
0x4c, 0xa2, 0x29, 0x2a, 0x55, 0x6a, 0x1a, 0x84, 0xa3, 0xa9, 0x2d, 0xd0, 0x03, 0x31, 0x19, 0xf7, 0x5c, 0x6b, 0x2a, 0x88, 0x9d, 0xe1, 0x09, 0xdf, 0x8b, 0x06, 0x7e, 0x1a, 0xc5, 0xb4, 0x4f, 0x53,
0x60, 0x65, 0x9a, 0xf0, 0xfe, 0x38, 0x48, 0x12, 0xdc, 0x38, 0x07, 0x51, 0x98, 0xc6, 0xd1, 0x48, 0x1f, 0x23, 0x9e, 0xb0, 0x1b, 0xb0, 0x98, 0x44, 0x53, 0x34, 0xaa, 0xd4, 0x30, 0x08, 0x47, 0x53,
0xba, 0x9b, 0x96, 0xa7, 0x09, 0x7f, 0x2a, 0x72, 0xb6, 0x44, 0x06, 0xfb, 0x76, 0xd6, 0xa5, 0x89, 0x5b, 0xa0, 0x07, 0x62, 0x30, 0xee, 0xc2, 0xca, 0x34, 0xe1, 0xfd, 0x71, 0x90, 0x24, 0xb8, 0x70,
0x1f, 0xc4, 0x49, 0x17, 0xa8, 0x4b, 0x6a, 0xa4, 0xd8, 0xef, 0x03, 0x3f, 0x88, 0x75, 0x5f, 0x30, 0x0e, 0xa2, 0x30, 0x8d, 0xa3, 0x91, 0x74, 0x37, 0x2d, 0x4f, 0x13, 0xfe, 0x54, 0x50, 0xb6, 0x04,
0x91, 0xe4, 0x82, 0x28, 0x5b, 0xb9, 0x20, 0x4a, 0x19, 0x7f, 0x77, 0x0f, 0x1a, 0xea, 0x73, 0xb4, 0x81, 0x7d, 0x3b, 0x6b, 0xd2, 0xc4, 0x0f, 0xe2, 0xa4, 0x0b, 0xd4, 0x24, 0xd5, 0x53, 0x6c, 0xf7,
0x81, 0x8f, 0xe3, 0x68, 0xac, 0x6c, 0x60, 0xfc, 0xcd, 0x16, 0xa1, 0x92, 0x46, 0xd2, 0x7e, 0xad, 0x81, 0x1f, 0xc4, 0xba, 0x2d, 0x98, 0x48, 0x72, 0x41, 0x94, 0xad, 0x5c, 0x10, 0xa5, 0x8c, 0xbf,
0xa4, 0x91, 0xfb, 0xfb, 0xd0, 0x32, 0x66, 0x80, 0xbd, 0x2f, 0xcc, 0x71, 0xd4, 0xb5, 0xa4, 0xf1, 0xbb, 0x0b, 0x0d, 0xf5, 0x39, 0xee, 0x81, 0x8f, 0xe3, 0x68, 0xac, 0xf6, 0xc0, 0xf8, 0x9b, 0x2d,
0x2c, 0x4e, 0x51, 0x9a, 0x12, 0x7d, 0x32, 0x64, 0xdf, 0x80, 0xe5, 0x61, 0x10, 0x73, 0x8a, 0xdf, 0x42, 0x25, 0x8d, 0xe4, 0xfe, 0xb5, 0x92, 0x46, 0xee, 0xef, 0x43, 0xcb, 0x18, 0x01, 0xf6, 0xa1,
0xed, 0xc7, 0xfc, 0x8c, 0xc7, 0x89, 0x72, 0x35, 0x74, 0x74, 0x86, 0x27, 0x70, 0xb7, 0x0f, 0x2b, 0xd8, 0x8e, 0xa3, 0xad, 0x25, 0x37, 0xcf, 0xe2, 0x14, 0xa5, 0x29, 0xd1, 0x27, 0x43, 0xf6, 0x0d,
0x16, 0x55, 0x69, 0xa6, 0x9b, 0xa3, 0xa0, 0x41, 0xe5, 0xed, 0xb4, 0x03, 0x0a, 0x65, 0x1e, 0x6e, 0x58, 0x1e, 0x06, 0x31, 0xa7, 0x38, 0xdf, 0x7e, 0xcc, 0xcf, 0x78, 0x9c, 0x28, 0x57, 0x43, 0x47,
0x57, 0xd2, 0x4b, 0xd2, 0x9f, 0xc4, 0xd1, 0x11, 0x35, 0xe2, 0x78, 0x16, 0xe6, 0xfe, 0xb2, 0x02, 0x13, 0x3c, 0x81, 0xbb, 0x7d, 0x58, 0xb1, 0xb8, 0x4a, 0x0b, 0xdd, 0x1c, 0x05, 0x0d, 0x2a, 0x6f,
0xd5, 0xdd, 0x68, 0x62, 0x9e, 0xfd, 0x38, 0xc5, 0xb3, 0x1f, 0xa9, 0x57, 0xf6, 0xb5, 0xda, 0x28, 0xa7, 0x1d, 0x50, 0x28, 0x69, 0xb8, 0x5c, 0x49, 0x2f, 0x49, 0x7f, 0x12, 0x47, 0x47, 0x54, 0x89,
0x37, 0x7f, 0x0b, 0x64, 0x77, 0x61, 0x11, 0x29, 0x38, 0x8d, 0x50, 0x8f, 0x3e, 0xf7, 0x63, 0x11, 0xe3, 0x59, 0x98, 0xfb, 0xcb, 0x0a, 0x54, 0x77, 0xa3, 0x89, 0x79, 0xf6, 0xe3, 0x14, 0xcf, 0x7e,
0x61, 0x58, 0x25, 0xb2, 0xc8, 0xe5, 0xb0, 0x55, 0xa8, 0x6a, 0x75, 0x88, 0x0a, 0x60, 0x12, 0x8d, 0xa4, 0x5d, 0xd9, 0xd7, 0x66, 0xa3, 0x5c, 0xfc, 0x2d, 0x90, 0xdd, 0x81, 0x45, 0xe4, 0xe0, 0x34,
0x38, 0x3a, 0x5f, 0xbf, 0x90, 0x2e, 0x4d, 0x99, 0x42, 0x81, 0x60, 0x7f, 0x2f, 0xd8, 0x44, 0x6c, 0x42, 0x3b, 0xfa, 0xb5, 0x1f, 0x8b, 0x08, 0xc3, 0x2a, 0xb1, 0x45, 0x8e, 0xc2, 0x56, 0xa1, 0xaa,
0x6a, 0x65, 0x59, 0xa8, 0xe3, 0x22, 0x23, 0x8c, 0x33, 0x95, 0x51, 0xa7, 0x4d, 0x67, 0x7d, 0xc3, 0xcd, 0x21, 0xca, 0x80, 0x49, 0xdc, 0xc4, 0xd1, 0xf9, 0xfa, 0xb9, 0x74, 0x69, 0xca, 0x14, 0x2a,
0x76, 0xd6, 0xdf, 0x84, 0x56, 0x3a, 0x3a, 0xeb, 0x4f, 0xfc, 0x8b, 0x51, 0xe4, 0x0f, 0x25, 0x01, 0x04, 0xfb, 0x7b, 0x21, 0x26, 0x62, 0x51, 0x2b, 0x23, 0xa1, 0x8d, 0x8b, 0x82, 0x30, 0xce, 0x4c,
0x9a, 0x10, 0x7b, 0x00, 0x30, 0x9e, 0x4c, 0xfa, 0xb8, 0x8f, 0xc6, 0x43, 0xb2, 0xcc, 0x5b, 0x1b, 0x46, 0x9d, 0x36, 0x9d, 0xf5, 0x0d, 0xdb, 0x59, 0x7f, 0x1d, 0x5a, 0xe9, 0xe8, 0xac, 0x3f, 0xf1,
0x1d, 0x39, 0xfb, 0x4f, 0x0f, 0x0e, 0x3c, 0xc2, 0x3d, 0xa3, 0x8c, 0xfb, 0x12, 0x9a, 0x3a, 0xc3, 0xcf, 0x47, 0x91, 0x3f, 0x94, 0x0c, 0x68, 0x42, 0xec, 0x3e, 0xc0, 0x78, 0x32, 0xe9, 0xe3, 0x3a,
0x0c, 0x4d, 0xa5, 0x08, 0x8b, 0x96, 0x1d, 0x9a, 0x4a, 0x01, 0x15, 0x1f, 0xc0, 0xa2, 0x10, 0x9e, 0x1a, 0x0f, 0x69, 0x67, 0xde, 0xda, 0xe8, 0xc8, 0xd1, 0x7f, 0x7a, 0x70, 0xe0, 0x11, 0xee, 0x19,
0x5a, 0x1c, 0x88, 0x53, 0xf1, 0x1c, 0xea, 0xfe, 0xa9, 0x03, 0x75, 0x5a, 0x70, 0xd4, 0x26, 0x44, 0x79, 0xdc, 0x97, 0xd0, 0xd4, 0x04, 0x33, 0x34, 0x95, 0x22, 0x2c, 0x5a, 0x76, 0x68, 0x2a, 0x05,
0x9e, 0x3e, 0xab, 0xa2, 0x45, 0x5c, 0xf0, 0xf2, 0x30, 0x73, 0xad, 0xf0, 0xf7, 0x8a, 0x9e, 0x7d, 0x54, 0xdc, 0x84, 0x45, 0xa1, 0x3c, 0xb5, 0x3a, 0x10, 0xa7, 0xe2, 0x39, 0xd4, 0xfd, 0x33, 0x07,
0x33, 0x04, 0xfe, 0x26, 0x34, 0x75, 0x4b, 0xc6, 0x0a, 0x66, 0x20, 0xbb, 0x01, 0xb5, 0xd3, 0x68, 0xea, 0x34, 0xe1, 0x68, 0x4d, 0x08, 0x9a, 0x3e, 0xab, 0xa2, 0x49, 0x5c, 0xf0, 0xf2, 0x30, 0x73,
0xa2, 0x0c, 0x2e, 0x50, 0xc7, 0xd9, 0xd1, 0xc4, 0x23, 0x3c, 0xeb, 0x0f, 0xd6, 0x27, 0x86, 0x20, 0xad, 0x30, 0xf9, 0x8a, 0x1e, 0x7d, 0x33, 0x54, 0xfe, 0x3a, 0x34, 0x75, 0x4d, 0xc6, 0x0c, 0x66,
0x94, 0xda, 0x3c, 0x5c, 0x32, 0xd6, 0xb9, 0xd2, 0xb1, 0xbe, 0x80, 0x25, 0x64, 0x4b, 0xc3, 0x77, 0x20, 0xbb, 0x06, 0xb5, 0xd3, 0x68, 0xa2, 0x36, 0x5c, 0xa0, 0x8e, 0xb3, 0xa3, 0x89, 0x47, 0x78,
0x3f, 0x5b, 0xb4, 0x7e, 0x1d, 0x77, 0xea, 0xc1, 0x68, 0x3a, 0xe4, 0xa6, 0xd9, 0x4b, 0xbe, 0x59, 0xd6, 0x1e, 0x2c, 0x4f, 0x74, 0x41, 0x18, 0xb5, 0x79, 0xb8, 0xa4, 0xaf, 0x73, 0xa5, 0x7d, 0x7d,
0x89, 0x2b, 0x85, 0xcf, 0xfd, 0xe7, 0x8e, 0x60, 0x77, 0xac, 0x97, 0xdd, 0x81, 0x1a, 0x4a, 0xc1, 0x01, 0x4b, 0x28, 0x96, 0x86, 0xef, 0x7e, 0xb6, 0x6a, 0xfd, 0x3a, 0xae, 0xd4, 0x83, 0xd1, 0x74,
0x9c, 0x97, 0x43, 0x47, 0xbd, 0x60, 0x39, 0x8f, 0x4a, 0xe0, 0x2a, 0x92, 0xf7, 0xd4, 0xac, 0x5d, 0xc8, 0xcd, 0x6d, 0x2f, 0xf9, 0x66, 0x25, 0xae, 0x0c, 0x3e, 0xf7, 0x5f, 0x38, 0x42, 0xdc, 0xb1,
0xf8, 0x4e, 0x33, 0x9b, 0x51, 0x8f, 0x2c, 0x67, 0x6a, 0xe5, 0x50, 0x76, 0xcf, 0x38, 0x7a, 0xaa, 0x5c, 0x76, 0x1b, 0x6a, 0xa8, 0x05, 0x73, 0x5e, 0x0e, 0x1d, 0xf5, 0x82, 0xf9, 0x3c, 0xca, 0x81,
0x59, 0x92, 0x55, 0x29, 0x06, 0xc3, 0x13, 0x6e, 0x1c, 0x39, 0xfd, 0xb1, 0x03, 0x0b, 0x56, 0x9f, 0xb3, 0x48, 0xde, 0x53, 0xb3, 0x74, 0xe1, 0x3b, 0xcd, 0xf6, 0x8c, 0xba, 0x67, 0xb9, 0xad, 0x56,
0x90, 0x68, 0x47, 0x7e, 0x92, 0xca, 0xa8, 0x03, 0xb9, 0xf2, 0x26, 0x64, 0x12, 0x7c, 0xc5, 0x26, 0x0e, 0x65, 0x77, 0x8d, 0xa3, 0xa7, 0x9a, 0xa5, 0x59, 0x95, 0x61, 0x30, 0x3c, 0xe1, 0xc6, 0x91,
0x78, 0x7d, 0x84, 0x51, 0x35, 0x8f, 0x30, 0x1e, 0x40, 0x33, 0xbb, 0xff, 0x60, 0x77, 0x0a, 0x5b, 0xd3, 0x1f, 0x3b, 0xb0, 0x60, 0xb5, 0x09, 0x99, 0x96, 0x82, 0xc8, 0x85, 0xd3, 0x44, 0xce, 0xbc,
0x54, 0xf1, 0x3f, 0x59, 0xa1, 0xcc, 0x49, 0x5e, 0x37, 0x9c, 0xe4, 0xee, 0x67, 0xd0, 0x32, 0xca, 0x09, 0x99, 0x0c, 0x5f, 0xb1, 0x19, 0x5e, 0x1f, 0x61, 0x54, 0xcd, 0x23, 0x8c, 0xfb, 0xd0, 0xcc,
0x9b, 0x4e, 0x6e, 0xc7, 0x72, 0x72, 0xeb, 0xe0, 0xb8, 0x4a, 0x16, 0x1c, 0xe7, 0xfe, 0xbc, 0x02, 0xee, 0x49, 0xd8, 0x8d, 0xc2, 0x1a, 0x55, 0xfc, 0x4f, 0x96, 0x29, 0x73, 0x92, 0xd7, 0x0d, 0x27,
0x0b, 0x48, 0xde, 0x41, 0x78, 0x72, 0x10, 0x8d, 0x82, 0xc1, 0x05, 0x91, 0x95, 0xa2, 0x64, 0xb9, 0xb9, 0xfb, 0x00, 0x5a, 0x46, 0x7e, 0xd3, 0xc9, 0xed, 0x58, 0x4e, 0x6e, 0x1d, 0x1c, 0x57, 0xc9,
0x0b, 0x2a, 0x32, 0xb7, 0x61, 0xe4, 0x7e, 0x1d, 0x11, 0x2c, 0x44, 0x95, 0x4e, 0xa3, 0x2c, 0x43, 0x82, 0xe3, 0xdc, 0x9f, 0x57, 0x60, 0x01, 0xd9, 0x3b, 0x08, 0x4f, 0x0e, 0xa2, 0x51, 0x30, 0x38,
0x49, 0x70, 0xe4, 0x27, 0xdc, 0xb8, 0x10, 0xe1, 0xd9, 0x20, 0x4a, 0x1c, 0x04, 0x28, 0xd4, 0x71, 0x27, 0xb6, 0x52, 0x9c, 0x2c, 0x57, 0x41, 0xc5, 0xe6, 0x36, 0x8c, 0xd2, 0xaf, 0x23, 0x82, 0x85,
0x1c, 0x8c, 0x46, 0x81, 0x28, 0x2b, 0xcc, 0xb7, 0xb2, 0x2c, 0x6c, 0x73, 0x18, 0x24, 0xfe, 0x51, 0xaa, 0xd2, 0x69, 0xd4, 0x65, 0xa8, 0x09, 0x8e, 0xfc, 0x84, 0x1b, 0x17, 0x27, 0x3c, 0x1b, 0x44,
0x76, 0x3c, 0xa9, 0xd3, 0xe4, 0xfb, 0xf3, 0x5f, 0x1b, 0xbe, 0x3f, 0x11, 0x1b, 0x6d, 0x83, 0xf9, 0x8d, 0x83, 0x00, 0x85, 0x3a, 0x8e, 0x83, 0xd1, 0x28, 0x10, 0x79, 0xc5, 0xf6, 0xad, 0x8c, 0x84,
0x85, 0x9c, 0x2f, 0x2c, 0xa4, 0xfb, 0x6f, 0x2a, 0xd0, 0x32, 0xc8, 0x02, 0xd9, 0xb9, 0x74, 0xbb, 0x75, 0x0e, 0x83, 0xc4, 0x3f, 0xca, 0x8e, 0x27, 0x75, 0x9a, 0x7c, 0x7f, 0xfe, 0x1b, 0xc3, 0xf7,
0x31, 0x50, 0x79, 0x6e, 0x1f, 0x5a, 0x0e, 0x01, 0x03, 0x61, 0xb7, 0xec, 0x56, 0xe9, 0x1c, 0x80, 0x27, 0x62, 0xa3, 0x6d, 0x30, 0x3f, 0x91, 0xf3, 0x85, 0x89, 0x74, 0xff, 0x4d, 0x05, 0x5a, 0x06,
0x18, 0xde, 0x22, 0xa1, 0xeb, 0xd0, 0x44, 0xd2, 0xff, 0x88, 0xbc, 0x0f, 0xf2, 0xf2, 0x91, 0x06, 0x5b, 0xa0, 0x38, 0x97, 0x2e, 0x37, 0x06, 0x2a, 0xcf, 0xed, 0x43, 0xcb, 0x21, 0x60, 0x20, 0xec,
0x54, 0xee, 0x06, 0xe5, 0xd6, 0xb3, 0x5c, 0x02, 0xde, 0x78, 0x92, 0xff, 0x09, 0xb4, 0x65, 0x35, 0x86, 0x5d, 0x2b, 0x9d, 0x03, 0x90, 0xc0, 0x5b, 0x2c, 0x74, 0x15, 0x9a, 0xc8, 0xfa, 0x1f, 0x93,
0xb4, 0xc6, 0x34, 0xe8, 0x8c, 0xf9, 0xac, 0xf5, 0xf7, 0xac, 0x92, 0xea, 0xcb, 0x0d, 0xf5, 0x65, 0xf7, 0x41, 0x5e, 0x52, 0xd2, 0x80, 0xa2, 0x6e, 0x10, 0xb5, 0x9e, 0x51, 0x09, 0x78, 0xeb, 0x49,
0xe3, 0xb2, 0x2f, 0x55, 0x49, 0xf7, 0xb1, 0x0e, 0x92, 0x78, 0x1c, 0xfb, 0x93, 0x53, 0x25, 0x50, 0xfe, 0xa7, 0xd0, 0x96, 0xc5, 0xd0, 0x1c, 0x53, 0xa7, 0x33, 0xe1, 0xb3, 0xe6, 0xdf, 0xb3, 0x72,
0x1e, 0xc0, 0x8a, 0x92, 0x1b, 0xd3, 0xd0, 0x0f, 0xc3, 0x68, 0x1a, 0x0e, 0xb8, 0x8a, 0xa3, 0x2b, 0xaa, 0x2f, 0x37, 0xd4, 0x97, 0x8d, 0x8b, 0xbe, 0x54, 0x39, 0xdd, 0xc7, 0x3a, 0x48, 0xe2, 0x71,
0xcb, 0x72, 0x87, 0x3a, 0xea, 0x9a, 0x2a, 0x62, 0x77, 0xa1, 0x2e, 0xf4, 0x28, 0xb1, 0x2b, 0x97, 0xec, 0x4f, 0x4e, 0x95, 0x42, 0xb9, 0x0f, 0x2b, 0x4a, 0x6f, 0x4c, 0x43, 0x3f, 0x0c, 0xa3, 0x69,
0x8b, 0x10, 0x51, 0x84, 0xdd, 0x81, 0xba, 0x50, 0xa7, 0x2a, 0x33, 0x99, 0x5e, 0x14, 0x70, 0xef, 0x38, 0xe0, 0x2a, 0x8e, 0xae, 0x8c, 0xe4, 0x0e, 0x75, 0xd4, 0x35, 0x15, 0xc4, 0xee, 0x40, 0x5d,
0xc1, 0x12, 0x85, 0x79, 0x1b, 0xb2, 0xef, 0x9d, 0xb2, 0xdd, 0x7a, 0x6e, 0x20, 0x82, 0xc1, 0x57, 0xd8, 0x51, 0x62, 0x55, 0x2e, 0x57, 0x21, 0x22, 0x0b, 0xbb, 0x0d, 0x75, 0x61, 0x4e, 0x55, 0x66,
0x81, 0xed, 0x0b, 0xbe, 0x32, 0x8f, 0x3a, 0xff, 0xb4, 0x0a, 0x2d, 0x03, 0x46, 0xf9, 0x44, 0xe7, 0x0a, 0xbd, 0xc8, 0xe0, 0xde, 0x85, 0x25, 0x0a, 0xf3, 0x36, 0x74, 0xdf, 0x7b, 0x65, 0xab, 0xf5,
0x53, 0xfd, 0x61, 0xe0, 0x8f, 0x79, 0xca, 0x63, 0xc9, 0x4b, 0x39, 0x14, 0xcb, 0xf9, 0x67, 0x27, 0xdc, 0x40, 0x04, 0x83, 0xaf, 0x02, 0xdb, 0x17, 0x72, 0x65, 0x1e, 0x75, 0xfe, 0x59, 0x15, 0x5a,
0xfd, 0x68, 0x9a, 0xf6, 0x87, 0xfc, 0x24, 0xe6, 0x5c, 0xaa, 0x11, 0x39, 0x14, 0xcb, 0x21, 0x35, 0x06, 0x8c, 0xfa, 0x89, 0xce, 0xa7, 0xfa, 0xc3, 0xc0, 0x1f, 0xf3, 0x94, 0xc7, 0x52, 0x96, 0x72,
0x1b, 0xe5, 0xc4, 0x89, 0x52, 0x0e, 0x55, 0x07, 0x97, 0x62, 0x9e, 0x6a, 0xd9, 0xc1, 0xa5, 0x98, 0x28, 0xe6, 0xf3, 0xcf, 0x4e, 0xfa, 0xd1, 0x34, 0xed, 0x0f, 0xf9, 0x49, 0xcc, 0xb9, 0x34, 0x23,
0x95, 0xbc, 0x64, 0xad, 0x97, 0x48, 0xd6, 0x8f, 0x61, 0x4d, 0xc8, 0x50, 0x29, 0x3d, 0xfa, 0x39, 0x72, 0x28, 0xe6, 0x43, 0x6e, 0x36, 0xf2, 0x89, 0x13, 0xa5, 0x1c, 0xaa, 0x0e, 0x2e, 0xc5, 0x38,
0xe2, 0x9a, 0x91, 0xcb, 0xee, 0x42, 0x07, 0xfb, 0xac, 0x58, 0x23, 0x09, 0x7e, 0x26, 0x78, 0xcc, 0xd5, 0xb2, 0x83, 0x4b, 0x31, 0x2a, 0x79, 0xcd, 0x5a, 0x2f, 0xd1, 0xac, 0x9f, 0xc0, 0x9a, 0xd0,
0xf1, 0x0a, 0x38, 0x96, 0x25, 0x4f, 0xba, 0x59, 0x56, 0x44, 0x8f, 0x14, 0x70, 0x2a, 0xeb, 0xbf, 0xa1, 0x52, 0x7b, 0xf4, 0x73, 0xcc, 0x35, 0x83, 0xca, 0xee, 0x40, 0x07, 0xdb, 0xac, 0x44, 0x23,
0xb6, 0xcb, 0x36, 0x65, 0xd9, 0x1c, 0xce, 0x3e, 0x81, 0xf5, 0x31, 0x1f, 0x06, 0xbe, 0x5d, 0x45, 0x09, 0x7e, 0x26, 0x64, 0xcc, 0xf1, 0x0a, 0x38, 0xe6, 0x25, 0x4f, 0xba, 0x99, 0x57, 0x44, 0x8f,
0x3f, 0xdb, 0xe4, 0x67, 0x65, 0x63, 0x2b, 0x38, 0x0b, 0x3f, 0x8b, 0xc6, 0x47, 0x81, 0xd8, 0xd8, 0x14, 0x70, 0xca, 0xeb, 0xbf, 0xb1, 0xf3, 0x36, 0x65, 0xde, 0x1c, 0xce, 0x3e, 0x85, 0xf5, 0x31,
0x84, 0xcf, 0xbf, 0xe6, 0x15, 0x70, 0x77, 0x01, 0x5a, 0x87, 0x69, 0x34, 0x51, 0x4b, 0xbf, 0x08, 0x1f, 0x06, 0xbe, 0x5d, 0x44, 0x3f, 0x5b, 0xe4, 0x67, 0x91, 0xb1, 0x16, 0x1c, 0x85, 0x9f, 0x45,
0x6d, 0x91, 0x94, 0x91, 0x93, 0xef, 0xc0, 0x35, 0xa2, 0xd7, 0xe7, 0xd1, 0x24, 0x1a, 0x45, 0x27, 0xe3, 0xa3, 0x40, 0x2c, 0x6c, 0xc2, 0xe7, 0x5f, 0xf3, 0x0a, 0xb8, 0xbb, 0x00, 0xad, 0xc3, 0x34,
0x17, 0x96, 0xe5, 0xfe, 0x1f, 0x1c, 0x58, 0xb1, 0x72, 0x33, 0xd3, 0x9d, 0xdc, 0x8c, 0x2a, 0xdc, 0x9a, 0xa8, 0xa9, 0x5f, 0x84, 0xb6, 0x48, 0xca, 0xc8, 0xc9, 0xf7, 0xe0, 0x0a, 0xf1, 0xeb, 0xf3,
0x4d, 0x90, 0xf8, 0xb2, 0xb1, 0x2d, 0x88, 0x82, 0xe2, 0x54, 0xe7, 0x85, 0x8c, 0x80, 0xdb, 0xcc, 0x68, 0x12, 0x8d, 0xa2, 0x93, 0x73, 0x6b, 0xe7, 0xfe, 0x1f, 0x1c, 0x58, 0xb1, 0xa8, 0xd9, 0xd6,
0xee, 0x70, 0xa8, 0x0f, 0x05, 0xbd, 0x77, 0x8b, 0xf4, 0x2e, 0xbf, 0x57, 0xb7, 0x3b, 0x54, 0x15, 0x9d, 0xdc, 0x8c, 0x2a, 0xdc, 0x4d, 0xb0, 0xf8, 0xb2, 0xb1, 0x2c, 0x88, 0x8c, 0xe2, 0x54, 0xe7,
0xbf, 0x23, 0x63, 0x7d, 0x86, 0x72, 0xd0, 0x55, 0x3b, 0x3e, 0xc3, 0xf4, 0xf4, 0xa8, 0x1e, 0x0c, 0x85, 0x8c, 0x80, 0xdb, 0xcc, 0xee, 0x70, 0xa8, 0x0f, 0x05, 0xbf, 0x77, 0x8b, 0xfc, 0x2e, 0xbf,
0x34, 0x98, 0xb8, 0xbf, 0x70, 0x00, 0xb2, 0xde, 0x51, 0x84, 0x88, 0xde, 0xda, 0xc4, 0x7d, 0x63, 0x57, 0xb7, 0x3b, 0x54, 0x11, 0xbf, 0x23, 0x63, 0x7d, 0x86, 0xb2, 0xd3, 0x55, 0x3b, 0x3e, 0xc3,
0x63, 0x1b, 0x7b, 0x1f, 0xda, 0xfa, 0x90, 0x3f, 0xdb, 0x2d, 0x5b, 0x0a, 0x43, 0xed, 0xe2, 0x36, 0xf4, 0xf4, 0xa8, 0x16, 0x0c, 0x34, 0x98, 0xb8, 0xbf, 0x70, 0x00, 0xb2, 0xd6, 0x51, 0x84, 0x88,
0x2c, 0x9d, 0x8c, 0xa2, 0x23, 0xd2, 0x62, 0x28, 0x14, 0x37, 0x91, 0xf1, 0xa3, 0x8b, 0x02, 0x7e, 0x5e, 0xda, 0xc4, 0xbd, 0x64, 0x63, 0x19, 0xfb, 0x10, 0xda, 0xfa, 0x90, 0x3f, 0x5b, 0x2d, 0x5b,
0x24, 0xd1, 0x6c, 0x6b, 0xad, 0x99, 0x5b, 0x6b, 0xf9, 0x46, 0xf9, 0xf3, 0x8a, 0x3e, 0x69, 0xcd, 0x0a, 0x43, 0xeb, 0xe2, 0x16, 0x2c, 0x9d, 0x8c, 0xa2, 0x23, 0xb2, 0x62, 0x28, 0x14, 0x37, 0x91,
0x66, 0xe2, 0x8d, 0x5c, 0xce, 0x36, 0x0a, 0x62, 0x7d, 0xc6, 0xe1, 0x26, 0x99, 0x1e, 0x07, 0x97, 0xf1, 0xa3, 0x8b, 0x02, 0x7e, 0x24, 0xd1, 0x6c, 0x69, 0xad, 0x99, 0x4b, 0x6b, 0xf9, 0x42, 0xf9,
0x3a, 0x7e, 0x3f, 0x83, 0xc5, 0x58, 0xc8, 0x4c, 0x25, 0x50, 0x6b, 0x6f, 0x10, 0xa8, 0x0b, 0xb1, 0xf3, 0x8a, 0x3e, 0x69, 0xcd, 0x46, 0xe2, 0xad, 0x52, 0xce, 0x36, 0x0a, 0x6a, 0x7d, 0xc6, 0xe1,
0xb5, 0x33, 0x7f, 0x1d, 0x3a, 0xfe, 0xf0, 0x8c, 0xc7, 0x69, 0x40, 0x8e, 0x30, 0x52, 0xa3, 0xc4, 0x26, 0x6d, 0x3d, 0x0e, 0x2e, 0x74, 0xfc, 0x3e, 0x80, 0xc5, 0x58, 0xe8, 0x4c, 0xa5, 0x50, 0x6b,
0x00, 0x97, 0x0c, 0x9c, 0xb4, 0x95, 0xdb, 0xb0, 0x24, 0xa3, 0x79, 0x75, 0x49, 0x79, 0xf3, 0x2e, 0x6f, 0x51, 0xa8, 0x0b, 0xb1, 0xb5, 0x32, 0x7f, 0x1d, 0x3a, 0xfe, 0xf0, 0x8c, 0xc7, 0x69, 0x40,
0x83, 0xb1, 0xa0, 0xfb, 0x4f, 0xd4, 0xc1, 0xae, 0xbd, 0xba, 0x6f, 0x9e, 0x15, 0x73, 0x84, 0x95, 0x8e, 0x30, 0x32, 0xa3, 0x44, 0x07, 0x97, 0x0c, 0x9c, 0xac, 0x95, 0x5b, 0xb0, 0x24, 0xa3, 0x79,
0xdc, 0x08, 0xbf, 0x26, 0x0f, 0x5a, 0x87, 0xca, 0xe3, 0x56, 0x35, 0xa2, 0xc6, 0x86, 0xf2, 0x60, 0x75, 0x4e, 0x79, 0x43, 0x2f, 0x83, 0x31, 0xa3, 0xfb, 0x4f, 0xd5, 0xc1, 0xae, 0x3d, 0xbb, 0x6f,
0xdc, 0x9e, 0xd6, 0xda, 0xdb, 0x4c, 0xab, 0xfb, 0x9f, 0x1d, 0x98, 0xdf, 0x8d, 0x26, 0xbb, 0x38, 0x1f, 0x15, 0xb3, 0x87, 0x95, 0x5c, 0x0f, 0xbf, 0x26, 0x0f, 0x5a, 0x87, 0xca, 0xe3, 0x56, 0x35,
0xc5, 0xa8, 0xe3, 0x20, 0x9b, 0xe8, 0x50, 0x7a, 0x95, 0xbc, 0x24, 0xba, 0xae, 0x54, 0x2b, 0x59, 0xa2, 0xc6, 0x86, 0xf2, 0x60, 0xdc, 0x1e, 0xd6, 0xda, 0xbb, 0x0c, 0xab, 0xfb, 0x9f, 0x1d, 0x98,
0xc8, 0x6b, 0x25, 0x7f, 0x1e, 0xde, 0x21, 0x9f, 0x6f, 0x1c, 0x4d, 0xa2, 0x18, 0xd9, 0xd5, 0x1f, 0xdf, 0x8d, 0x26, 0xbb, 0x38, 0xc4, 0x68, 0xe3, 0xa0, 0x98, 0xe8, 0x50, 0x7a, 0x95, 0xbc, 0x20,
0x09, 0x15, 0x24, 0x0a, 0xd3, 0x53, 0x25, 0x4e, 0xdf, 0x54, 0x84, 0x1c, 0x31, 0x68, 0x04, 0x0b, 0xba, 0xae, 0xd4, 0x2a, 0x59, 0xc8, 0x5b, 0x25, 0x7f, 0x11, 0xde, 0x23, 0x9f, 0x6f, 0x1c, 0x4d,
0xc3, 0x4a, 0x6a, 0x51, 0x42, 0xca, 0x16, 0x33, 0xdc, 0xdf, 0x86, 0x26, 0x59, 0x18, 0x34, 0xb4, 0xa2, 0x18, 0xc5, 0xd5, 0x1f, 0x09, 0x13, 0x24, 0x0a, 0xd3, 0x53, 0xa5, 0x4e, 0xdf, 0x96, 0x85,
0x0f, 0xa1, 0x79, 0x1a, 0x4d, 0xfa, 0xa7, 0x41, 0x98, 0x2a, 0xf6, 0x5f, 0xcc, 0x54, 0xff, 0x5d, 0x1c, 0x31, 0xb8, 0x09, 0x16, 0x1b, 0x2b, 0x69, 0x45, 0x09, 0x2d, 0x5b, 0x24, 0xb8, 0xbf, 0x0d,
0x9a, 0x14, 0x5d, 0xc0, 0xfd, 0xe5, 0x1c, 0xcc, 0x3f, 0x09, 0xcf, 0xa2, 0x60, 0x40, 0x87, 0xc9, 0x4d, 0xda, 0x61, 0x50, 0xd7, 0x3e, 0x82, 0xe6, 0x69, 0x34, 0xe9, 0x9f, 0x06, 0x61, 0xaa, 0xc4,
0x63, 0x3e, 0x8e, 0xd4, 0xe5, 0x02, 0xfc, 0x8d, 0xd3, 0x41, 0x91, 0xb4, 0x13, 0x41, 0xbc, 0x6d, 0x7f, 0x31, 0x33, 0xfd, 0x77, 0x69, 0x50, 0x74, 0x06, 0xf7, 0x97, 0x73, 0x30, 0xff, 0x24, 0x3c,
0x11, 0x34, 0x22, 0x21, 0xba, 0x5e, 0x9b, 0x5d, 0x0e, 0x14, 0x0c, 0x66, 0x20, 0x68, 0x28, 0xc6, 0x8b, 0x82, 0x01, 0x1d, 0x26, 0x8f, 0xf9, 0x38, 0x52, 0x97, 0x0b, 0xf0, 0x37, 0x0e, 0x07, 0x45,
0xe6, 0xe5, 0x3e, 0x99, 0xca, 0x2e, 0x6f, 0xd4, 0x8d, 0xcb, 0x1b, 0x58, 0x9b, 0xb8, 0x74, 0x46, 0xd2, 0x4e, 0x04, 0xf3, 0xb6, 0x45, 0xd0, 0x88, 0x84, 0xe8, 0x1a, 0x6e, 0x76, 0x39, 0x50, 0x08,
0x33, 0x2b, 0x42, 0x46, 0x0d, 0x04, 0xfb, 0x22, 0x63, 0x02, 0x45, 0xd0, 0x98, 0xe8, 0x8b, 0x84, 0x98, 0x81, 0xe0, 0x46, 0x31, 0x36, 0x2f, 0xf7, 0xc9, 0x54, 0x76, 0x79, 0xa3, 0x6e, 0x5c, 0xde,
0xc8, 0xf8, 0x8d, 0xb9, 0xf0, 0xe9, 0x6b, 0xc5, 0x0c, 0x8d, 0x5f, 0x13, 0x44, 0xe5, 0x4d, 0x7c, 0xc0, 0xd2, 0xc4, 0xa5, 0x33, 0x1a, 0x59, 0x11, 0x32, 0x6a, 0x20, 0xd8, 0x16, 0x19, 0x13, 0x28,
0x20, 0xca, 0x88, 0xcd, 0xc2, 0x84, 0x50, 0x7d, 0xcd, 0xdf, 0x39, 0x15, 0xf7, 0x86, 0xf3, 0x30, 0x82, 0xc6, 0x44, 0x5b, 0x24, 0x44, 0x9b, 0xdf, 0x98, 0x0b, 0x9f, 0xbe, 0x36, 0xcc, 0x70, 0xf3,
0xca, 0xfa, 0x21, 0xd7, 0x22, 0x59, 0x8c, 0x13, 0xc4, 0x05, 0xc9, 0x3c, 0x6e, 0x98, 0xcc, 0x22, 0x6b, 0x82, 0x68, 0xbc, 0x89, 0x0f, 0x44, 0x1e, 0xb1, 0x58, 0x98, 0x10, 0x9a, 0xaf, 0xf9, 0xbb,
0x28, 0x5a, 0x99, 0xcc, 0x48, 0x50, 0xfe, 0x68, 0x74, 0xe4, 0x0f, 0x5e, 0x09, 0x53, 0xb3, 0x2d, 0xa9, 0xe2, 0x7e, 0x71, 0x1e, 0x46, 0x5d, 0x3f, 0xe4, 0x5a, 0x25, 0x8b, 0x7e, 0x82, 0xb8, 0x20,
0x8e, 0x82, 0x2c, 0x90, 0x22, 0xfb, 0xb2, 0x55, 0xa7, 0xf0, 0x9b, 0x9a, 0x67, 0x42, 0x6c, 0x03, 0x99, 0xc7, 0x8d, 0x2d, 0xb3, 0x08, 0x8a, 0x56, 0x5b, 0x66, 0x64, 0x28, 0x7f, 0x34, 0x3a, 0xf2,
0x5a, 0xe4, 0x4e, 0x90, 0xeb, 0xbe, 0x48, 0xeb, 0xde, 0x31, 0xfd, 0x0d, 0xb4, 0xf2, 0x66, 0x21, 0x07, 0xaf, 0xc4, 0x56, 0xb3, 0x2d, 0x8e, 0x82, 0x2c, 0x90, 0x22, 0xfb, 0xb2, 0x59, 0xa7, 0xf0,
0xf3, 0x10, 0x7c, 0xa9, 0x10, 0xa6, 0xec, 0x0f, 0x87, 0x32, 0x7e, 0xa0, 0x23, 0x2e, 0x08, 0x6a, 0x9b, 0x9a, 0x67, 0x42, 0x6c, 0x03, 0x5a, 0xe4, 0x4e, 0x90, 0xf3, 0xbe, 0x48, 0xf3, 0xde, 0x31,
0x80, 0x1c, 0x16, 0x62, 0xc2, 0x44, 0x81, 0x65, 0x2a, 0x60, 0x61, 0xec, 0x86, 0x70, 0x93, 0x4d, 0xfd, 0x0d, 0x34, 0xf3, 0x66, 0x26, 0xf3, 0x10, 0x7c, 0xa9, 0x10, 0xa6, 0xec, 0x0f, 0x87, 0x32,
0xfc, 0x60, 0x48, 0x11, 0x37, 0xc2, 0x38, 0xd5, 0x18, 0xd6, 0xa1, 0x7e, 0xd3, 0xb6, 0xba, 0x42, 0x7e, 0xa0, 0x23, 0x2e, 0x08, 0x6a, 0x80, 0x1c, 0x16, 0x62, 0xc0, 0x44, 0x86, 0x65, 0xca, 0x60,
0xb3, 0x62, 0x61, 0x38, 0x37, 0x3a, 0x3d, 0xce, 0xe2, 0x9a, 0x6d, 0x90, 0x7d, 0x44, 0x27, 0xb8, 0x61, 0xec, 0x9a, 0x70, 0x93, 0x4d, 0xfc, 0x60, 0x48, 0x11, 0x37, 0x62, 0x73, 0xaa, 0x31, 0x2c,
0x29, 0xa7, 0xe0, 0xe5, 0xc5, 0x8d, 0x77, 0xe4, 0x98, 0x25, 0x51, 0xab, 0xbf, 0x87, 0x58, 0xc4, 0x43, 0xfd, 0xa6, 0x65, 0x75, 0x85, 0x46, 0xc5, 0xc2, 0x70, 0x6c, 0x74, 0x7a, 0x9c, 0xc5, 0x35,
0x13, 0x25, 0x51, 0xa9, 0x13, 0x4e, 0xf4, 0x35, 0x4b, 0xa9, 0x93, 0x45, 0xc9, 0x89, 0x2e, 0x0a, 0xdb, 0x20, 0xfb, 0x98, 0x4e, 0x70, 0x53, 0x4e, 0xc1, 0xcb, 0x8b, 0x1b, 0xef, 0xc9, 0x3e, 0x4b,
0xb8, 0x9b, 0xd0, 0x36, 0x2b, 0x60, 0x0d, 0xa8, 0x3d, 0x3b, 0xd8, 0xd9, 0xef, 0x5c, 0x61, 0x2d, 0xa6, 0x56, 0x7f, 0x0f, 0x31, 0x8b, 0x27, 0x72, 0xa2, 0x51, 0x27, 0x9c, 0xe8, 0x6b, 0x96, 0x51,
0x98, 0x3f, 0xdc, 0x79, 0xfe, 0x7c, 0x6f, 0x67, 0xbb, 0xe3, 0xb0, 0x36, 0x34, 0x74, 0xc0, 0x66, 0x27, 0xb3, 0x92, 0x13, 0x5d, 0x64, 0x70, 0x37, 0xa1, 0x6d, 0x16, 0xc0, 0x1a, 0x50, 0x7b, 0x76,
0x05, 0x53, 0x9b, 0x5b, 0x5b, 0x3b, 0x07, 0xcf, 0x77, 0xb6, 0x3b, 0x55, 0xf7, 0x8f, 0x2a, 0xd0, 0xb0, 0xb3, 0xdf, 0xb9, 0xc4, 0x5a, 0x30, 0x7f, 0xb8, 0xf3, 0xfc, 0xf9, 0xde, 0xce, 0x76, 0xc7,
0x32, 0x6a, 0xbe, 0xc4, 0x85, 0x73, 0x03, 0x80, 0x2c, 0x8d, 0x2c, 0x74, 0xa3, 0xe6, 0x19, 0x08, 0x61, 0x6d, 0x68, 0xe8, 0x80, 0xcd, 0x0a, 0xa6, 0x36, 0xb7, 0xb6, 0x76, 0x0e, 0x9e, 0xef, 0x6c,
0x4a, 0x4e, 0x6d, 0x83, 0x57, 0xc5, 0x3d, 0x49, 0x95, 0xa6, 0xf9, 0xa2, 0x0b, 0x89, 0xe6, 0x59, 0x77, 0xaa, 0xee, 0x1f, 0x55, 0xa0, 0x65, 0x94, 0x7c, 0x81, 0x0b, 0xe7, 0x1a, 0x00, 0xed, 0x34,
0x45, 0xdd, 0xb3, 0x41, 0xa4, 0x25, 0x09, 0x50, 0xfc, 0xa0, 0xe0, 0x40, 0x13, 0xc2, 0xb5, 0x89, 0xb2, 0xd0, 0x8d, 0x9a, 0x67, 0x20, 0xa8, 0x39, 0xf5, 0x1e, 0xbc, 0x2a, 0xee, 0x49, 0xaa, 0x34,
0x79, 0x12, 0x8d, 0xce, 0xb8, 0x28, 0x22, 0xf4, 0x35, 0x0b, 0xc3, 0xb6, 0xa4, 0x08, 0x32, 0x62, 0x8d, 0x17, 0x5d, 0x48, 0x34, 0xcf, 0x2a, 0xea, 0x9e, 0x0d, 0x22, 0x2f, 0x49, 0x80, 0xe2, 0x07,
0x7b, 0xeb, 0x9e, 0x0d, 0xb2, 0x6f, 0xaa, 0xb5, 0x69, 0xd0, 0xda, 0xac, 0x17, 0x27, 0xda, 0x5c, 0x85, 0x04, 0x9a, 0x10, 0xce, 0x4d, 0xcc, 0x93, 0x68, 0x74, 0xc6, 0x45, 0x16, 0x61, 0xaf, 0x59,
0x17, 0x37, 0x05, 0xb6, 0x39, 0x1c, 0xca, 0x5c, 0xf3, 0xd6, 0x65, 0x6c, 0x5e, 0xf3, 0x55, 0x42, 0x18, 0xd6, 0x25, 0x55, 0x90, 0x11, 0xdb, 0x5b, 0xf7, 0x6c, 0x90, 0x7d, 0x53, 0xcd, 0x4d, 0x83,
0xa4, 0x84, 0x51, 0x2b, 0xe5, 0x8c, 0xfa, 0x46, 0x72, 0x76, 0x9f, 0x40, 0xeb, 0xc0, 0xb8, 0x38, 0xe6, 0x66, 0xbd, 0x38, 0xd0, 0xe6, 0xbc, 0xb8, 0x29, 0xb0, 0xcd, 0xe1, 0x50, 0x52, 0xcd, 0x5b,
0xec, 0xa2, 0x4c, 0x53, 0x57, 0x86, 0x85, 0x2c, 0x14, 0xbe, 0x97, 0x0c, 0x35, 0xba, 0x54, 0x31, 0x97, 0xb1, 0x79, 0xcd, 0x57, 0x29, 0x91, 0x12, 0x41, 0xad, 0x94, 0x0b, 0xea, 0x5b, 0xd9, 0xd9,
0xbb, 0xe4, 0xfe, 0x63, 0x47, 0xdc, 0xc5, 0xd2, 0x43, 0x10, 0xed, 0xbb, 0xd0, 0xd6, 0xde, 0xe8, 0x7d, 0x02, 0xad, 0x03, 0xe3, 0xe2, 0xb0, 0x8b, 0x3a, 0x4d, 0x5d, 0x19, 0x16, 0xba, 0x50, 0xf8,
0x2c, 0x7c, 0xdd, 0xc2, 0xb0, 0x0c, 0x75, 0xa7, 0x1f, 0x1d, 0x1f, 0x27, 0x5c, 0x05, 0x9a, 0x5a, 0x5e, 0x32, 0xd4, 0x68, 0x52, 0xc5, 0x6c, 0x92, 0xfb, 0x4f, 0x1c, 0x71, 0x17, 0x4b, 0x77, 0x41,
0x98, 0x52, 0x2e, 0x51, 0x5d, 0x0d, 0x44, 0x0b, 0x89, 0x0c, 0x38, 0x2d, 0xe0, 0x48, 0x28, 0xd2, 0xd4, 0xef, 0x42, 0x5b, 0x7b, 0xa3, 0xb3, 0xf0, 0x75, 0x0b, 0xc3, 0x3c, 0xd4, 0x9c, 0x7e, 0x74,
0x6b, 0xa9, 0x42, 0x6c, 0x75, 0x5a, 0x47, 0xd9, 0xe7, 0x67, 0xfa, 0x2e, 0x34, 0x74, 0xbd, 0xf6, 0x7c, 0x9c, 0x70, 0x15, 0x68, 0x6a, 0x61, 0xca, 0xb8, 0x44, 0x73, 0x35, 0x10, 0x35, 0x24, 0x32,
0xce, 0xa1, 0x4a, 0xea, 0x7c, 0xdc, 0xa1, 0xc8, 0xf0, 0xb4, 0x3a, 0x2d, 0xe8, 0xb5, 0x98, 0xc1, 0xe0, 0xb4, 0x80, 0x23, 0xa3, 0x48, 0xaf, 0xa5, 0x0a, 0xb1, 0xd5, 0x69, 0x1d, 0x65, 0x9f, 0x1f,
0xee, 0x01, 0x3b, 0x0e, 0xe2, 0x7c, 0x71, 0x41, 0xc0, 0x25, 0x39, 0xee, 0x4b, 0x58, 0x51, 0x7c, 0xe9, 0x3b, 0xd0, 0xd0, 0xe5, 0xda, 0x2b, 0x87, 0xca, 0xa9, 0xe9, 0xb8, 0x42, 0xd1, 0xc6, 0xd3,
0x67, 0x68, 0xbd, 0xf6, 0x42, 0x3a, 0x97, 0xc9, 0xa5, 0x4a, 0x51, 0x2e, 0xb9, 0xbf, 0xac, 0xc2, 0x6a, 0xb4, 0xe0, 0xd7, 0x22, 0x81, 0xdd, 0x05, 0x76, 0x1c, 0xc4, 0xf9, 0xec, 0x82, 0x81, 0x4b,
0xbc, 0x5c, 0xed, 0xc2, 0x05, 0x74, 0xb1, 0xef, 0x59, 0x18, 0xeb, 0x5a, 0xd7, 0x0c, 0x89, 0x10, 0x28, 0xee, 0x4b, 0x58, 0x51, 0x72, 0x67, 0x58, 0xbd, 0xf6, 0x44, 0x3a, 0x17, 0xe9, 0xa5, 0x4a,
0xe4, 0x6e, 0x55, 0xd8, 0x6f, 0xaa, 0x65, 0xfb, 0x0d, 0x83, 0xda, 0xc4, 0x4f, 0x4f, 0xc9, 0x3d, 0x51, 0x2f, 0xb9, 0xbf, 0xac, 0xc2, 0xbc, 0x9c, 0xed, 0xc2, 0x05, 0x74, 0xb1, 0xee, 0x59, 0x18,
0xd3, 0xf4, 0xe8, 0xb7, 0x72, 0xaa, 0xd6, 0x6d, 0xa7, 0x6a, 0xd9, 0x75, 0x7b, 0xa1, 0x72, 0x15, 0xeb, 0x5a, 0xd7, 0x0c, 0x89, 0x11, 0xe4, 0x6a, 0x55, 0x58, 0x6f, 0xaa, 0x65, 0xeb, 0x0d, 0x83,
0xaf, 0xdb, 0x5f, 0x87, 0xa6, 0xd8, 0x17, 0x33, 0xbf, 0x69, 0x06, 0xe4, 0xf6, 0xd1, 0x46, 0x61, 0xda, 0xc4, 0x4f, 0x4f, 0xc9, 0x3d, 0xd3, 0xf4, 0xe8, 0xb7, 0x72, 0xaa, 0xd6, 0x6d, 0xa7, 0x6a,
0x1f, 0x7d, 0xfb, 0x1d, 0xee, 0xdb, 0x30, 0x27, 0xae, 0x9c, 0xc8, 0x40, 0xe2, 0xeb, 0xea, 0xb8, 0xd9, 0x75, 0x7b, 0x61, 0x72, 0x15, 0xaf, 0xdb, 0x5f, 0x85, 0xa6, 0x58, 0x17, 0x33, 0xbf, 0x69,
0x51, 0x94, 0x53, 0x7f, 0x45, 0x34, 0x92, 0x27, 0xcb, 0x9a, 0x97, 0x56, 0x5b, 0xf6, 0xa5, 0x55, 0x06, 0xe4, 0xd6, 0xd1, 0x46, 0x61, 0x1d, 0x7d, 0xf7, 0x15, 0xee, 0xdb, 0x30, 0x27, 0xae, 0x9c,
0xd3, 0xdd, 0xdb, 0xb6, 0xdd, 0xbd, 0xee, 0x23, 0x58, 0xb0, 0xaa, 0x43, 0x09, 0x2b, 0x03, 0x91, 0xc8, 0x40, 0xe2, 0xab, 0xea, 0xb8, 0x51, 0xe4, 0x53, 0x7f, 0x45, 0x34, 0x92, 0x27, 0xf3, 0x9a,
0x3b, 0x57, 0xd8, 0x02, 0x34, 0x9f, 0xec, 0xf7, 0x1f, 0xed, 0x3d, 0x79, 0xbc, 0xfb, 0xbc, 0xe3, 0x97, 0x56, 0x5b, 0xf6, 0xa5, 0x55, 0xd3, 0xdd, 0xdb, 0xb6, 0xdd, 0xbd, 0xee, 0x23, 0x58, 0xb0,
0x60, 0xf2, 0xf0, 0xc5, 0xd6, 0xd6, 0xce, 0xce, 0x36, 0x49, 0x5c, 0x80, 0xb9, 0x47, 0x9b, 0x4f, 0x8a, 0x43, 0x0d, 0x2b, 0x03, 0x91, 0x3b, 0x97, 0xd8, 0x02, 0x34, 0x9f, 0xec, 0xf7, 0x1f, 0xed,
0xf6, 0x48, 0xde, 0x6e, 0x0b, 0xda, 0x96, 0x75, 0xe9, 0x23, 0x9e, 0x6f, 0x02, 0x53, 0xbe, 0x01, 0x3d, 0x79, 0xbc, 0xfb, 0xbc, 0xe3, 0x60, 0xf2, 0xf0, 0xc5, 0xd6, 0xd6, 0xce, 0xce, 0x36, 0x69,
0x0a, 0x46, 0x9a, 0x8c, 0x78, 0xaa, 0x62, 0xe4, 0x97, 0x65, 0xce, 0x13, 0x9d, 0xa1, 0xae, 0x79, 0x5c, 0x80, 0xb9, 0x47, 0x9b, 0x4f, 0xf6, 0x48, 0xdf, 0x6e, 0x0b, 0xde, 0x96, 0x65, 0xe9, 0x23,
0x64, 0xb5, 0x64, 0x2c, 0x22, 0x27, 0x29, 0xcf, 0x22, 0xb2, 0xa8, 0xa7, 0xf3, 0xdd, 0x1e, 0x74, 0x9e, 0x6f, 0x02, 0x53, 0xbe, 0x01, 0x0a, 0x46, 0x9a, 0x8c, 0x78, 0xaa, 0x62, 0xe4, 0x97, 0x25,
0xb7, 0x39, 0xd6, 0xb6, 0x39, 0x1a, 0xe5, 0xba, 0x83, 0xc6, 0x5d, 0x49, 0x9e, 0xb4, 0xfc, 0xbe, 0xe5, 0x89, 0x26, 0xa8, 0x6b, 0x1e, 0x59, 0x29, 0x99, 0x88, 0xc8, 0x41, 0xca, 0x8b, 0x88, 0xcc,
0x07, 0x57, 0x37, 0x45, 0x38, 0xfc, 0x6f, 0x2a, 0x5a, 0xd2, 0xed, 0xc2, 0x5a, 0xbe, 0x4a, 0xd9, 0xea, 0x69, 0xba, 0xdb, 0x83, 0xee, 0x36, 0xc7, 0xd2, 0x36, 0x47, 0xa3, 0x5c, 0x73, 0x70, 0x73,
0xd8, 0x23, 0x58, 0xde, 0xe6, 0x47, 0xd3, 0x93, 0x3d, 0x7e, 0x96, 0x35, 0xc4, 0xa0, 0x96, 0x9c, 0x57, 0x42, 0x93, 0x3b, 0xbf, 0xef, 0xc1, 0xe5, 0x4d, 0x11, 0x0e, 0xff, 0x9b, 0x8a, 0x96, 0x74,
0x46, 0xe7, 0x72, 0x7e, 0xe8, 0x37, 0x7b, 0x17, 0x60, 0x84, 0x65, 0xfa, 0xc9, 0x84, 0x0f, 0xd4, 0xbb, 0xb0, 0x96, 0x2f, 0x52, 0x56, 0xf6, 0x08, 0x96, 0xb7, 0xf9, 0xd1, 0xf4, 0x64, 0x8f, 0x9f,
0x55, 0x47, 0x42, 0x0e, 0x27, 0x7c, 0xe0, 0x7e, 0x0c, 0xcc, 0xac, 0x47, 0xce, 0x17, 0xea, 0x5b, 0x65, 0x15, 0x31, 0xa8, 0x25, 0xa7, 0xd1, 0x6b, 0x39, 0x3e, 0xf4, 0x9b, 0xbd, 0x0f, 0x30, 0xc2,
0xd3, 0xa3, 0x7e, 0x72, 0x91, 0xa4, 0x7c, 0xac, 0xee, 0x70, 0x9a, 0x90, 0x7b, 0x1b, 0xda, 0x07, 0x3c, 0xfd, 0x64, 0xc2, 0x07, 0xea, 0xaa, 0x23, 0x21, 0x87, 0x13, 0x3e, 0x70, 0x3f, 0x01, 0x66,
0xfe, 0x85, 0xc7, 0x7f, 0x2a, 0x1f, 0x61, 0x58, 0x87, 0xf9, 0x89, 0x7f, 0x81, 0x24, 0xa8, 0x1d, 0x96, 0x23, 0xc7, 0x0b, 0xed, 0xad, 0xe9, 0x51, 0x3f, 0x39, 0x4f, 0x52, 0x3e, 0x56, 0x77, 0x38,
0xc6, 0x94, 0xed, 0xfe, 0xef, 0x0a, 0xcc, 0x89, 0x92, 0x58, 0xeb, 0x90, 0x27, 0x69, 0x10, 0x12, 0x4d, 0xc8, 0xbd, 0x05, 0xed, 0x03, 0xff, 0xdc, 0xe3, 0x3f, 0x95, 0x8f, 0x30, 0xac, 0xc3, 0xfc,
0xa7, 0xa9, 0x5a, 0x0d, 0xa8, 0xc0, 0xdb, 0x95, 0x12, 0xde, 0x96, 0x5e, 0x0c, 0x75, 0x65, 0x4c, 0xc4, 0x3f, 0x47, 0x16, 0xd4, 0x0e, 0x63, 0x22, 0xbb, 0xff, 0xbb, 0x02, 0x73, 0x22, 0x27, 0x96,
0x32, 0xb0, 0x85, 0x21, 0xa7, 0x65, 0x61, 0xcf, 0xc2, 0xad, 0x98, 0x01, 0xb9, 0x83, 0x90, 0x4c, 0x3a, 0xe4, 0x49, 0x1a, 0x84, 0x24, 0x69, 0xaa, 0x54, 0x03, 0x2a, 0xc8, 0x76, 0xa5, 0x44, 0xb6,
0xab, 0x13, 0xfd, 0x53, 0x62, 0x4b, 0xb2, 0xb1, 0x09, 0x95, 0xea, 0x8e, 0xf3, 0x82, 0xdb, 0x0b, 0xa5, 0x17, 0x43, 0x5d, 0x19, 0x93, 0x02, 0x6c, 0x61, 0x28, 0x69, 0x59, 0xd8, 0xb3, 0x70, 0x2b,
0xba, 0x63, 0x41, 0x47, 0x6c, 0xbc, 0x85, 0x8e, 0x28, 0x5c, 0x1b, 0x6f, 0xd2, 0x11, 0xe1, 0x2d, 0x66, 0x40, 0xee, 0x20, 0x24, 0xb3, 0xea, 0x44, 0xfb, 0x94, 0xda, 0x92, 0x62, 0x6c, 0x42, 0xa5,
0x74, 0x44, 0x97, 0x41, 0x87, 0xee, 0xa3, 0xa3, 0x95, 0xa2, 0x68, 0xf7, 0xef, 0x3b, 0xd0, 0x91, 0xb6, 0xe3, 0xbc, 0x90, 0xf6, 0x82, 0xed, 0x58, 0xb0, 0x11, 0x1b, 0xef, 0x60, 0x23, 0x0a, 0xd7,
0x54, 0xa4, 0xf3, 0xd4, 0x91, 0xda, 0x9b, 0x2e, 0x2e, 0xdd, 0x82, 0x05, 0xb2, 0x91, 0xb4, 0x08, 0xc6, 0xdb, 0x6c, 0x44, 0x78, 0x07, 0x1b, 0xd1, 0x65, 0xd0, 0xa1, 0xfb, 0xe8, 0xb8, 0x4b, 0x51,
0x90, 0xc7, 0x53, 0x16, 0x88, 0xe3, 0x50, 0x01, 0x33, 0xe3, 0x60, 0x24, 0x17, 0xc5, 0x84, 0x94, 0xbc, 0xfb, 0x0f, 0x1c, 0xe8, 0x48, 0x2e, 0xd2, 0x34, 0x75, 0xa4, 0xf6, 0xb6, 0x8b, 0x4b, 0x37,
0x14, 0x89, 0x7d, 0x19, 0xbe, 0xeb, 0x78, 0x3a, 0xed, 0xfe, 0x89, 0x03, 0xcb, 0x46, 0x87, 0x25, 0x60, 0x81, 0xf6, 0x48, 0x5a, 0x05, 0xc8, 0xe3, 0x29, 0x0b, 0xc4, 0x7e, 0xa8, 0x80, 0x99, 0x71,
0x15, 0x7e, 0x06, 0x6d, 0xfd, 0xec, 0x03, 0xd7, 0x9b, 0xdb, 0xba, 0xcd, 0x36, 0xd9, 0x67, 0x56, 0x30, 0x92, 0x93, 0x62, 0x42, 0x4a, 0x8b, 0xc4, 0xbe, 0x0c, 0xdf, 0x75, 0x3c, 0x9d, 0x76, 0xff,
0x61, 0x5a, 0x4c, 0xff, 0x82, 0x3a, 0x98, 0x4c, 0xc7, 0x72, 0x57, 0x31, 0x21, 0x24, 0xa4, 0x73, 0xd4, 0x81, 0x65, 0xa3, 0xc1, 0x92, 0x0b, 0x1f, 0x40, 0x5b, 0x3f, 0xfb, 0xc0, 0xf5, 0xe2, 0xb6,
0xce, 0x5f, 0xe9, 0x22, 0x62, 0x5f, 0xb3, 0x30, 0xf2, 0x2d, 0xa3, 0x6d, 0xa7, 0x0b, 0xd5, 0xa4, 0x6e, 0x8b, 0x4d, 0xf6, 0x99, 0x95, 0x99, 0x26, 0xd3, 0x3f, 0xa7, 0x06, 0x26, 0xd3, 0xb1, 0x5c,
0x6f, 0xd9, 0x04, 0xdd, 0xbf, 0x5c, 0x81, 0x15, 0x61, 0xac, 0x4b, 0x27, 0x89, 0xbe, 0x79, 0x3b, 0x55, 0x4c, 0x08, 0x19, 0xe9, 0x35, 0xe7, 0xaf, 0x74, 0x16, 0xb1, 0xae, 0x59, 0x18, 0xf9, 0x96,
0x27, 0xfc, 0x16, 0x82, 0x23, 0x77, 0xaf, 0x78, 0x32, 0xcd, 0xbe, 0xf3, 0x96, 0x0e, 0x06, 0x1d, 0x71, 0x6f, 0xa7, 0x33, 0xd5, 0xa4, 0x6f, 0xd9, 0x04, 0xdd, 0xbf, 0x5a, 0x81, 0x15, 0xb1, 0x59,
0x53, 0x3c, 0x63, 0x2d, 0xaa, 0x65, 0x6b, 0xf1, 0x86, 0x99, 0x2e, 0x73, 0xf3, 0xd7, 0xcb, 0xdd, 0x97, 0x4e, 0x12, 0x7d, 0xf3, 0x76, 0x4e, 0xf8, 0x2d, 0x84, 0x44, 0xee, 0x5e, 0xf2, 0x64, 0x9a,
0xfc, 0x6f, 0xe5, 0x56, 0x7f, 0x38, 0x0f, 0xf5, 0x64, 0x10, 0x4d, 0xb8, 0xbb, 0x06, 0xab, 0xf6, 0x7d, 0xe7, 0x1d, 0x1d, 0x0c, 0x3a, 0xa6, 0x78, 0xc6, 0x5c, 0x54, 0xcb, 0xe6, 0xe2, 0x2d, 0x23,
0x14, 0x48, 0x41, 0xf5, 0x0b, 0x07, 0xba, 0x8f, 0xc4, 0xe1, 0x61, 0x10, 0x9e, 0xec, 0x06, 0x49, 0x5d, 0xe6, 0xe6, 0xaf, 0x97, 0xbb, 0xf9, 0xdf, 0xc9, 0xad, 0xfe, 0x70, 0x1e, 0xea, 0xc9, 0x20,
0x1a, 0xc5, 0xfa, 0x19, 0x83, 0x1b, 0x00, 0x49, 0xea, 0xc7, 0x52, 0xa9, 0x15, 0xaa, 0x81, 0x81, 0x9a, 0x70, 0x77, 0x0d, 0x56, 0xed, 0x21, 0x90, 0x8a, 0xea, 0x17, 0x0e, 0x74, 0x1f, 0x89, 0xc3,
0xe0, 0x48, 0x78, 0x38, 0x14, 0xb9, 0x62, 0x05, 0x75, 0xba, 0xa0, 0x7a, 0x49, 0x87, 0x83, 0xa5, 0xc3, 0x20, 0x3c, 0xd9, 0x0d, 0x92, 0x34, 0x8a, 0xf5, 0x33, 0x06, 0xd7, 0x00, 0x92, 0xd4, 0x8f,
0xc0, 0x7c, 0x20, 0x22, 0xf1, 0xb1, 0xcb, 0xfc, 0x8c, 0xa4, 0xbf, 0xb0, 0xe2, 0x73, 0xa8, 0xfb, 0xa5, 0x51, 0x2b, 0x4c, 0x03, 0x03, 0xc1, 0x9e, 0xf0, 0x70, 0x28, 0xa8, 0x62, 0x06, 0x75, 0xba,
0x07, 0x15, 0x58, 0xca, 0x3a, 0x49, 0xd1, 0x22, 0xb6, 0x0c, 0x91, 0x5a, 0x4b, 0x26, 0x43, 0xe4, 0x60, 0x7a, 0x49, 0x87, 0x83, 0x65, 0xc0, 0xdc, 0x14, 0x91, 0xf8, 0xd8, 0x64, 0x7e, 0x46, 0xda,
0xe1, 0x40, 0x3f, 0x40, 0x35, 0xc6, 0xf0, 0x39, 0x18, 0x28, 0xbb, 0x05, 0x2d, 0x95, 0x8a, 0xa6, 0x5f, 0xec, 0xe2, 0x73, 0xa8, 0xfb, 0x07, 0x15, 0x58, 0xca, 0x1a, 0x49, 0xd1, 0x22, 0xb6, 0x0e,
0xa9, 0x71, 0x9f, 0xd8, 0x84, 0x45, 0x6c, 0x2d, 0x2a, 0x52, 0x52, 0x29, 0x94, 0x29, 0xba, 0xdb, 0x91, 0x56, 0x4b, 0xa6, 0x43, 0xe4, 0xe1, 0x40, 0x3f, 0x40, 0x33, 0xc6, 0xf0, 0x39, 0x18, 0x28,
0x34, 0x4e, 0xe9, 0x4b, 0x31, 0xf3, 0x2a, 0xc9, 0x3a, 0x42, 0x13, 0x11, 0x4f, 0xbb, 0x90, 0x16, 0xbb, 0x01, 0x2d, 0x95, 0x8a, 0xa6, 0xa9, 0x71, 0x9f, 0xd8, 0x84, 0x45, 0x6c, 0x2d, 0x1a, 0x52,
0x62, 0xee, 0xd0, 0x0d, 0xfd, 0x0e, 0x8b, 0xe6, 0x4c, 0x51, 0x63, 0x16, 0x18, 0x5d, 0xf3, 0x4c, 0xd2, 0x28, 0x94, 0x29, 0xba, 0xdb, 0x34, 0x4e, 0xe9, 0x4b, 0x31, 0xf2, 0x2a, 0xc9, 0x3a, 0xc2,
0x48, 0x59, 0x75, 0xd1, 0xd4, 0x38, 0x11, 0xad, 0x79, 0x16, 0xe6, 0xfe, 0x4d, 0x07, 0xae, 0x95, 0x12, 0x11, 0x4f, 0xbb, 0x90, 0x15, 0x62, 0xae, 0xd0, 0x0d, 0xfd, 0x0e, 0x8b, 0x96, 0x4c, 0x51,
0x2c, 0xa3, 0xe4, 0xd4, 0x6d, 0x58, 0x3e, 0xd6, 0x99, 0x6a, 0xaa, 0x05, 0xbb, 0xae, 0xa9, 0x08, 0x62, 0x16, 0x18, 0x5d, 0xf3, 0x4c, 0x48, 0xed, 0xea, 0xa2, 0xa9, 0x71, 0x22, 0x5a, 0xf3, 0x2c,
0x09, 0x7b, 0x7a, 0xbd, 0xe2, 0x07, 0x5a, 0x39, 0x15, 0x8b, 0x67, 0xc5, 0xc1, 0x17, 0x33, 0xdc, 0xcc, 0xfd, 0xdb, 0x0e, 0x5c, 0x29, 0x99, 0x46, 0x29, 0xa9, 0xdb, 0xb0, 0x7c, 0xac, 0x89, 0x6a,
0x03, 0xe8, 0xed, 0xbc, 0x46, 0xc6, 0xdf, 0x32, 0x5f, 0xb5, 0x53, 0x94, 0xb5, 0x51, 0x10, 0x6c, 0xa8, 0x85, 0xb8, 0xae, 0xa9, 0x08, 0x09, 0x7b, 0x78, 0xbd, 0xe2, 0x07, 0xda, 0x38, 0x15, 0x93,
0x97, 0xbb, 0x9a, 0x8e, 0x61, 0xc1, 0xaa, 0x8b, 0x7d, 0xeb, 0x6d, 0x2b, 0x31, 0x79, 0xf4, 0xa6, 0x67, 0xc5, 0xc1, 0x17, 0x09, 0xee, 0x01, 0xf4, 0x76, 0xde, 0xa0, 0xe0, 0x6f, 0x99, 0xaf, 0xdf,
0x5c, 0x75, 0xf1, 0x2c, 0x9f, 0x8a, 0xc6, 0x37, 0x20, 0xf7, 0x0c, 0x96, 0x9e, 0x4e, 0x47, 0x69, 0x29, 0xce, 0xda, 0x28, 0x28, 0xb6, 0x8b, 0x5d, 0x4d, 0xc7, 0xb0, 0x60, 0x95, 0xc5, 0xbe, 0xf5,
0x90, 0x3d, 0xd1, 0xc7, 0xbe, 0x23, 0x3f, 0xa2, 0x2a, 0xd4, 0xd4, 0x95, 0x36, 0x65, 0x96, 0xc3, 0xae, 0x85, 0x98, 0x32, 0x7a, 0x5d, 0xce, 0xba, 0x78, 0xbe, 0x4f, 0x45, 0xe3, 0x1b, 0x90, 0x7b,
0x19, 0x1b, 0x63, 0x4d, 0xfd, 0x62, 0x8b, 0xc5, 0x0c, 0xf7, 0x1a, 0xac, 0x67, 0x4d, 0x8a, 0xb9, 0x06, 0x4b, 0x4f, 0xa7, 0xa3, 0x34, 0xc8, 0x9e, 0xf2, 0x63, 0xdf, 0x91, 0x1f, 0x51, 0x11, 0x6a,
0x53, 0x9b, 0xc3, 0x1f, 0x3a, 0x22, 0xa4, 0xcc, 0x7e, 0x31, 0x90, 0x3d, 0x86, 0x95, 0x24, 0x08, 0xe8, 0x4a, 0xab, 0x32, 0xf3, 0xe1, 0x88, 0x8d, 0xb1, 0xa4, 0x7e, 0xb1, 0xc6, 0x22, 0xc1, 0xbd,
0x4f, 0x46, 0xdc, 0xac, 0x27, 0x91, 0x33, 0x71, 0xd5, 0xee, 0x9e, 0x7c, 0x55, 0xd0, 0x2b, 0xfb, 0x02, 0xeb, 0x59, 0x95, 0x62, 0xec, 0xd4, 0xe2, 0xf0, 0x87, 0x8e, 0x08, 0x29, 0xb3, 0x5f, 0x16,
0x02, 0x09, 0xa4, 0xbc, 0xa3, 0x19, 0x81, 0xe4, 0xa6, 0xa4, 0x6c, 0x00, 0xdf, 0x85, 0x45, 0xbb, 0x64, 0x8f, 0x61, 0x25, 0x09, 0xc2, 0x93, 0x11, 0x37, 0xcb, 0x49, 0xe4, 0x48, 0x5c, 0xb6, 0x9b,
0x31, 0xf6, 0x89, 0x0c, 0xa2, 0xcf, 0x7a, 0x66, 0x9e, 0x0d, 0xd9, 0x94, 0x61, 0x95, 0x74, 0x7f, 0x27, 0x5f, 0x1f, 0xf4, 0xca, 0xbe, 0x40, 0x06, 0x29, 0x6f, 0x68, 0xc6, 0x20, 0xb9, 0x21, 0x29,
0xee, 0x40, 0xd7, 0xe3, 0x48, 0xc6, 0xdc, 0x68, 0x54, 0x52, 0xcf, 0x67, 0x85, 0x6a, 0x67, 0x0f, 0xeb, 0xc0, 0x77, 0x61, 0xd1, 0xae, 0x8c, 0x7d, 0x2a, 0x83, 0xe8, 0xb3, 0x96, 0x99, 0x67, 0x43,
0x58, 0x07, 0xe7, 0xab, 0xb1, 0xde, 0x9b, 0xb9, 0x28, 0xbb, 0x57, 0x4a, 0x46, 0xf5, 0xb0, 0x01, 0x36, 0x67, 0x58, 0x39, 0xdd, 0x9f, 0x3b, 0xd0, 0xf5, 0x38, 0xb2, 0x31, 0x37, 0x2a, 0x95, 0xdc,
0x73, 0x72, 0x7c, 0xeb, 0x70, 0x55, 0x76, 0x49, 0x75, 0x27, 0x3b, 0x54, 0xb0, 0x1a, 0xb5, 0x0e, 0xf3, 0xa0, 0x50, 0xec, 0xec, 0x0e, 0xeb, 0xe0, 0x7c, 0xd5, 0xd7, 0xbb, 0x33, 0x27, 0x65, 0xf7,
0x15, 0x7a, 0xd0, 0x15, 0xaf, 0x55, 0x98, 0xe3, 0x90, 0x1f, 0x6e, 0x03, 0x7b, 0xea, 0x0f, 0xfc, 0x52, 0x49, 0xaf, 0x1e, 0x36, 0x60, 0x4e, 0xf6, 0x6f, 0x1d, 0x2e, 0xcb, 0x26, 0xa9, 0xe6, 0x64,
0x38, 0x8a, 0xc2, 0x03, 0x1e, 0xcb, 0x18, 0x20, 0x52, 0x80, 0xc8, 0xe7, 0xae, 0x74, 0x35, 0x91, 0x87, 0x0a, 0x56, 0xa5, 0xd6, 0xa1, 0x42, 0x0f, 0xba, 0xe2, 0xb5, 0x0a, 0xb3, 0x1f, 0xf2, 0xc3,
0x52, 0x0f, 0x2c, 0x44, 0xa1, 0x7a, 0xc8, 0x42, 0xa4, 0x5c, 0x0f, 0x56, 0x1e, 0xfa, 0xaf, 0xb8, 0x6d, 0x60, 0x4f, 0xfd, 0x81, 0x1f, 0x47, 0x51, 0x78, 0xc0, 0x63, 0x19, 0x03, 0x44, 0x06, 0x10,
0xaa, 0x29, 0x9b, 0xa5, 0xd6, 0x44, 0x57, 0xaa, 0xe6, 0x5e, 0xdd, 0x8f, 0x29, 0x36, 0xeb, 0x99, 0xf9, 0xdc, 0x95, 0xad, 0x26, 0x52, 0xea, 0x81, 0x85, 0x28, 0x54, 0x0f, 0x59, 0x88, 0x94, 0xeb,
0xa5, 0xdd, 0x0d, 0x58, 0xb5, 0xeb, 0x94, 0xa2, 0xa4, 0x07, 0x8d, 0xb1, 0xc4, 0x64, 0xef, 0x74, 0xc1, 0xca, 0x43, 0xff, 0x15, 0x57, 0x25, 0x65, 0xa3, 0xd4, 0x9a, 0xe8, 0x42, 0xd5, 0xd8, 0xab,
0xfa, 0xee, 0x97, 0xd0, 0x32, 0x5e, 0x20, 0x61, 0xeb, 0xb0, 0xf2, 0xf2, 0xc9, 0xf3, 0xfd, 0x9d, 0xfb, 0x31, 0xc5, 0x6a, 0x3d, 0x33, 0xb7, 0xbb, 0x01, 0xab, 0x76, 0x99, 0x52, 0x95, 0xf4, 0xa0,
0xc3, 0xc3, 0xfe, 0xc1, 0x8b, 0x87, 0x9f, 0xef, 0xfc, 0xa0, 0xbf, 0xbb, 0x79, 0xb8, 0xdb, 0xb9, 0x31, 0x96, 0x98, 0x6c, 0x9d, 0x4e, 0xdf, 0xf9, 0x12, 0x5a, 0xc6, 0x0b, 0x24, 0x6c, 0x1d, 0x56,
0xc2, 0xd6, 0x80, 0xed, 0xef, 0x1c, 0x3e, 0xdf, 0xd9, 0xb6, 0x70, 0x87, 0xdd, 0x80, 0xde, 0x8b, 0x5e, 0x3e, 0x79, 0xbe, 0xbf, 0x73, 0x78, 0xd8, 0x3f, 0x78, 0xf1, 0xf0, 0xf3, 0x9d, 0x1f, 0xf4,
0xfd, 0x17, 0x87, 0x3b, 0xdb, 0xfd, 0xb2, 0xef, 0x2a, 0xec, 0x5d, 0xb8, 0x26, 0xf3, 0x4b, 0x3e, 0x77, 0x37, 0x0f, 0x77, 0x3b, 0x97, 0xd8, 0x1a, 0xb0, 0xfd, 0x9d, 0xc3, 0xe7, 0x3b, 0xdb, 0x16,
0xaf, 0xde, 0xfd, 0x0c, 0x3a, 0x79, 0x1f, 0x88, 0xe5, 0x35, 0x7a, 0x93, 0x7b, 0x69, 0xe3, 0xe7, 0xee, 0xb0, 0x6b, 0xd0, 0x7b, 0xb1, 0xff, 0xe2, 0x70, 0x67, 0xbb, 0x5f, 0xf6, 0x5d, 0x85, 0xbd,
0x55, 0x58, 0x14, 0x41, 0x7e, 0xe2, 0xcd, 0x4d, 0x1e, 0xb3, 0xa7, 0x30, 0x2f, 0x1f, 0x6f, 0x65, 0x0f, 0x57, 0x24, 0xbd, 0xe4, 0xf3, 0xea, 0x9d, 0x07, 0xd0, 0xc9, 0xfb, 0x40, 0x2c, 0xaf, 0xd1,
0x8a, 0xb4, 0xec, 0xe7, 0x62, 0x7b, 0x6b, 0x79, 0x58, 0x2e, 0xeb, 0xca, 0x5f, 0xf9, 0x4f, 0xff, 0xdb, 0xdc, 0x4b, 0x1b, 0x3f, 0xaf, 0xc2, 0xa2, 0x08, 0xf2, 0x13, 0x6f, 0x73, 0xf2, 0x98, 0x3d,
0xe3, 0xef, 0x54, 0x16, 0x58, 0xeb, 0xfe, 0xd9, 0x47, 0xf7, 0x4f, 0x78, 0x98, 0x60, 0x1d, 0xbf, 0x85, 0x79, 0xf9, 0xc8, 0x2b, 0x53, 0xac, 0x65, 0x3f, 0x2b, 0xdb, 0x5b, 0xcb, 0xc3, 0x72, 0x5a,
0x07, 0x90, 0x3d, 0x49, 0xca, 0xba, 0xda, 0x07, 0x90, 0x7b, 0xaf, 0xb5, 0x77, 0xad, 0x24, 0x47, 0x57, 0xfe, 0xda, 0x7f, 0xfa, 0x1f, 0x7f, 0xb7, 0xb2, 0xc0, 0x5a, 0xf7, 0xce, 0x3e, 0xbe, 0x77,
0xd6, 0x7b, 0x8d, 0xea, 0x5d, 0x71, 0x17, 0xb1, 0xde, 0x20, 0x0c, 0x52, 0xf1, 0x3c, 0xe9, 0xa7, 0xc2, 0xc3, 0x04, 0xcb, 0xf8, 0x3d, 0x80, 0xec, 0xe9, 0x52, 0xd6, 0xd5, 0x3e, 0x80, 0xdc, 0xbb,
0xce, 0x5d, 0x36, 0x84, 0xb6, 0xf9, 0x58, 0x28, 0x53, 0x67, 0x44, 0x25, 0xcf, 0x9d, 0xf6, 0xde, 0xae, 0xbd, 0x2b, 0x25, 0x14, 0x59, 0xee, 0x15, 0x2a, 0x77, 0xc5, 0x5d, 0xc4, 0x72, 0x83, 0x30,
0x29, 0xcd, 0x53, 0xb4, 0x4c, 0x6d, 0x5c, 0x75, 0x3b, 0xd8, 0xc6, 0x94, 0x4a, 0x64, 0xad, 0x8c, 0x48, 0xc5, 0x33, 0xa6, 0x9f, 0x39, 0x77, 0xd8, 0x10, 0xda, 0xe6, 0xa3, 0xa2, 0x4c, 0x9d, 0x11,
0x04, 0x87, 0x67, 0x6f, 0x82, 0xb2, 0xeb, 0x06, 0xd3, 0x15, 0x5e, 0x24, 0xed, 0xbd, 0x3b, 0x23, 0x95, 0x3c, 0x8b, 0xda, 0x7b, 0xaf, 0x94, 0xa6, 0x78, 0x99, 0xea, 0xb8, 0xec, 0x76, 0xb0, 0x8e,
0x57, 0xb6, 0xf5, 0x2e, 0xb5, 0xb5, 0xee, 0x32, 0x6c, 0x6b, 0x40, 0x65, 0xd4, 0x8b, 0xa4, 0x9f, 0x29, 0xe5, 0xc8, 0x6a, 0x19, 0x09, 0x09, 0xcf, 0xde, 0x0e, 0x65, 0x57, 0x0d, 0xa1, 0x2b, 0xbc,
0x3a, 0x77, 0x37, 0xfe, 0xfd, 0x6d, 0x68, 0xea, 0xf3, 0x63, 0xf6, 0x13, 0x58, 0xb0, 0xa2, 0x30, 0x5c, 0xda, 0x7b, 0x7f, 0x06, 0x55, 0xd6, 0xf5, 0x3e, 0xd5, 0xb5, 0xee, 0x32, 0xac, 0x6b, 0x40,
0x99, 0x1a, 0x46, 0x59, 0xd0, 0x66, 0xef, 0x7a, 0x79, 0xa6, 0x6c, 0xf8, 0x06, 0x35, 0xdc, 0x65, 0x79, 0xd4, 0xcb, 0xa5, 0x9f, 0x39, 0x77, 0x36, 0xfe, 0xfd, 0x2d, 0x68, 0xea, 0xf3, 0x63, 0xf6,
0x6b, 0xd8, 0xb0, 0x0c, 0x63, 0xbc, 0x4f, 0xf1, 0xc4, 0xe2, 0x4a, 0xe2, 0x2b, 0x43, 0x92, 0x89, 0x13, 0x58, 0xb0, 0xa2, 0x30, 0x99, 0xea, 0x46, 0x59, 0xd0, 0x66, 0xef, 0x6a, 0x39, 0x51, 0x56,
0xc6, 0xae, 0xe7, 0x85, 0x8b, 0xd5, 0xda, 0xbb, 0x33, 0x72, 0x65, 0x73, 0xd7, 0xa9, 0xb9, 0x35, 0x7c, 0x8d, 0x2a, 0xee, 0xb2, 0x35, 0xac, 0x58, 0x86, 0x31, 0xde, 0xa3, 0x78, 0x62, 0x71, 0x25,
0xb6, 0x6a, 0x36, 0xa7, 0xcf, 0x74, 0x39, 0xdd, 0xc3, 0x35, 0x9f, 0xcb, 0x64, 0xef, 0x6a, 0xc2, 0xf1, 0x95, 0xa1, 0xc9, 0x44, 0x65, 0x57, 0xf3, 0xca, 0xc5, 0xaa, 0xed, 0xfd, 0x19, 0x54, 0x59,
0x2a, 0x7b, 0x46, 0x53, 0x93, 0x48, 0xf1, 0x2d, 0x4d, 0xb7, 0x4b, 0x4d, 0x31, 0x46, 0xcb, 0x67, 0xdd, 0x55, 0xaa, 0x6e, 0x8d, 0xad, 0x9a, 0xd5, 0xe9, 0x33, 0x5d, 0x4e, 0xf7, 0x70, 0xcd, 0x67,
0xbe, 0x96, 0xc9, 0x8e, 0xa0, 0x65, 0x3c, 0x86, 0xc5, 0xae, 0xcd, 0x7c, 0xb8, 0xab, 0xd7, 0x2b, 0x35, 0xd9, 0xfb, 0x9a, 0xb1, 0xca, 0x9e, 0xdb, 0xd4, 0x2c, 0x52, 0x7c, 0x73, 0xd3, 0xed, 0x52,
0xcb, 0x2a, 0x1b, 0x8a, 0x59, 0xff, 0x7d, 0x54, 0x74, 0x7e, 0x04, 0x4d, 0xfd, 0xbc, 0x12, 0x5b, 0x55, 0x8c, 0xd1, 0xf4, 0x99, 0xaf, 0x6a, 0xb2, 0x23, 0x68, 0x19, 0x8f, 0x61, 0xb1, 0x2b, 0x33,
0x37, 0x9e, 0xbb, 0x32, 0x9f, 0x83, 0xea, 0x75, 0x8b, 0x19, 0x65, 0xc4, 0x67, 0xd6, 0x8e, 0xc4, 0x1f, 0xee, 0xea, 0xf5, 0xca, 0x48, 0x65, 0x5d, 0x31, 0xcb, 0xbf, 0x87, 0x86, 0xce, 0x8f, 0xa0,
0xf7, 0x12, 0x5a, 0xc6, 0x13, 0x4a, 0x7a, 0x00, 0xc5, 0x67, 0x9a, 0xf4, 0x00, 0x4a, 0x5e, 0x5c, 0xa9, 0x9f, 0x57, 0x62, 0xeb, 0xc6, 0x73, 0x57, 0xe6, 0x73, 0x50, 0xbd, 0x6e, 0x91, 0x50, 0xc6,
0x72, 0x97, 0xa9, 0x89, 0x16, 0x6b, 0x12, 0x7d, 0xa7, 0xaf, 0xa3, 0x84, 0xed, 0xc1, 0x55, 0x29, 0x7c, 0x66, 0xe9, 0xc8, 0x7c, 0x2f, 0xa1, 0x65, 0x3c, 0xa1, 0xa4, 0x3b, 0x50, 0x7c, 0xa6, 0x49,
0xb1, 0x8f, 0xf8, 0x57, 0x59, 0x86, 0x92, 0x17, 0x4a, 0x1f, 0x38, 0xec, 0x33, 0x68, 0xa8, 0x97, 0x77, 0xa0, 0xe4, 0xc5, 0x25, 0x77, 0x99, 0xaa, 0x68, 0xb1, 0x26, 0xf1, 0x77, 0xfa, 0x26, 0x4a,
0xb2, 0xd8, 0x5a, 0xf9, 0x8b, 0x5f, 0xbd, 0xf5, 0x02, 0x2e, 0xc5, 0xeb, 0x0f, 0x00, 0xb2, 0xf7, 0xd8, 0x1e, 0x5c, 0x96, 0x1a, 0xfb, 0x88, 0x7f, 0x95, 0x69, 0x28, 0x79, 0xc9, 0xf4, 0xbe, 0xc3,
0x9a, 0xb4, 0x90, 0x28, 0xbc, 0xff, 0xa4, 0x29, 0xa0, 0xf8, 0xb8, 0x93, 0xbb, 0x46, 0x03, 0xec, 0x1e, 0x40, 0x43, 0xbd, 0x94, 0xc5, 0xd6, 0xca, 0x5f, 0xfc, 0xea, 0xad, 0x17, 0x70, 0xa9, 0x5e,
0x30, 0x12, 0x12, 0x21, 0x3f, 0x57, 0x57, 0xee, 0x7f, 0x0c, 0x2d, 0xe3, 0xc9, 0x26, 0x3d, 0x7d, 0x7f, 0x00, 0x90, 0xbd, 0xd7, 0xa4, 0x95, 0x44, 0xe1, 0xfd, 0x27, 0xcd, 0x01, 0xc5, 0xc7, 0x9d,
0xc5, 0xe7, 0x9e, 0xf4, 0xf4, 0x95, 0xbc, 0xf0, 0xe4, 0xf6, 0xa8, 0xf6, 0x55, 0x77, 0x09, 0x6b, 0xdc, 0x35, 0xea, 0x60, 0x87, 0x91, 0x92, 0x08, 0xf9, 0x6b, 0x75, 0xe5, 0xfe, 0xc7, 0xd0, 0x32,
0x4f, 0x82, 0x93, 0x70, 0x2c, 0x0a, 0xe0, 0x02, 0x9d, 0xc2, 0x82, 0xf5, 0x2e, 0x93, 0xe6, 0xd0, 0x9e, 0x6c, 0xd2, 0xc3, 0x57, 0x7c, 0xee, 0x49, 0x0f, 0x5f, 0xc9, 0x0b, 0x4f, 0x6e, 0x8f, 0x4a,
0xb2, 0x57, 0x9f, 0x34, 0x87, 0x96, 0x3e, 0xe5, 0xa4, 0xe8, 0xcc, 0x5d, 0xc6, 0x76, 0xce, 0xa8, 0x5f, 0x75, 0x97, 0xb0, 0xf4, 0x24, 0x38, 0x09, 0xc7, 0x22, 0x03, 0x4e, 0xd0, 0x29, 0x2c, 0x58,
0x88, 0xd1, 0xd2, 0x0f, 0xa1, 0x65, 0xbc, 0xb1, 0xa4, 0xc7, 0x52, 0x7c, 0xce, 0x49, 0x8f, 0xa5, 0xef, 0x32, 0x69, 0x09, 0x2d, 0x7b, 0xf5, 0x49, 0x4b, 0x68, 0xe9, 0x53, 0x4e, 0x8a, 0xcf, 0xdc,
0xec, 0x49, 0xa6, 0x55, 0x6a, 0x63, 0xd1, 0x25, 0x52, 0xa0, 0xcb, 0xe3, 0x58, 0xf7, 0x4f, 0x60, 0x65, 0xac, 0xe7, 0x8c, 0xb2, 0x18, 0x35, 0xfd, 0x10, 0x5a, 0xc6, 0x1b, 0x4b, 0xba, 0x2f, 0xc5,
0xd1, 0x7e, 0x75, 0x49, 0xf3, 0x7e, 0xe9, 0xfb, 0x4d, 0x9a, 0xf7, 0x67, 0x3c, 0xd5, 0x24, 0x49, 0xe7, 0x9c, 0x74, 0x5f, 0xca, 0x9e, 0x64, 0x5a, 0xa5, 0x3a, 0x16, 0x5d, 0x62, 0x05, 0xba, 0x3c,
0xfa, 0xee, 0x8a, 0x6e, 0xe4, 0xfe, 0x17, 0x32, 0x02, 0xed, 0x4b, 0xf6, 0x3d, 0x14, 0x70, 0xf2, 0x8e, 0x65, 0xff, 0x04, 0x16, 0xed, 0x57, 0x97, 0xb4, 0xec, 0x97, 0xbe, 0xdf, 0xa4, 0x65, 0x7f,
0x36, 0x3f, 0x5b, 0x37, 0xa8, 0xd6, 0xbc, 0xf3, 0xaf, 0xf9, 0xa5, 0x70, 0xf1, 0xdf, 0x26, 0x66, 0xc6, 0x53, 0x4d, 0x92, 0xa5, 0xef, 0xac, 0xe8, 0x4a, 0xee, 0x7d, 0x21, 0x23, 0xd0, 0xbe, 0x64,
0x71, 0xfd, 0x9d, 0x76, 0x2d, 0xba, 0xd5, 0x6f, 0xec, 0x5a, 0xe6, 0xc5, 0x7f, 0x63, 0xd7, 0xb2, 0xdf, 0x43, 0x05, 0x27, 0x6f, 0xf3, 0xb3, 0x75, 0x83, 0x6b, 0xcd, 0x3b, 0xff, 0x5a, 0x5e, 0x0a,
0x2e, 0xff, 0xe7, 0x77, 0xad, 0x34, 0xc0, 0x3a, 0x42, 0x58, 0xca, 0xdd, 0x14, 0xd1, 0x5c, 0x51, 0x17, 0xff, 0x6d, 0x66, 0x16, 0xd7, 0xdf, 0x69, 0xd5, 0xa2, 0x5b, 0xfd, 0xc6, 0xaa, 0x65, 0x5e,
0x7e, 0x99, 0xaf, 0x77, 0xe3, 0xcd, 0x17, 0x4c, 0x6c, 0x09, 0xa2, 0x84, 0xe0, 0x7d, 0x75, 0x75, 0xfc, 0x37, 0x56, 0x2d, 0xeb, 0xf2, 0x7f, 0x7e, 0xd5, 0x4a, 0x03, 0x2c, 0x23, 0x84, 0xa5, 0xdc,
0xf2, 0xf7, 0xa1, 0x6d, 0xbe, 0x04, 0xc3, 0x4c, 0x56, 0xce, 0xb7, 0xf4, 0x4e, 0x69, 0x9e, 0xbd, 0x4d, 0x11, 0x2d, 0x15, 0xe5, 0x97, 0xf9, 0x7a, 0xd7, 0xde, 0x7e, 0xc1, 0xc4, 0xd6, 0x20, 0x4a,
0xb8, 0xac, 0x6d, 0x36, 0xc3, 0xbe, 0x0f, 0x6b, 0x9a, 0xd5, 0xcd, 0xcb, 0x07, 0x09, 0x7b, 0xaf, 0x09, 0xde, 0x53, 0x57, 0x27, 0x7f, 0x1f, 0xda, 0xe6, 0x4b, 0x30, 0xcc, 0x14, 0xe5, 0x7c, 0x4d,
0xe4, 0x4a, 0x82, 0xa9, 0xc7, 0xf5, 0xae, 0xcd, 0xbc, 0xb3, 0xf0, 0xc0, 0x41, 0xa2, 0xb1, 0x9f, 0xef, 0x95, 0xd2, 0xec, 0xc9, 0x65, 0x6d, 0xb3, 0x1a, 0xf6, 0x7d, 0x58, 0xd3, 0xa2, 0x6e, 0x5e,
0xd7, 0xc8, 0x36, 0x8c, 0xb2, 0x57, 0x45, 0xb2, 0x0d, 0xa3, 0xf4, 0x4d, 0x0e, 0x45, 0x34, 0x6c, 0x3e, 0x48, 0xd8, 0x07, 0x25, 0x57, 0x12, 0x4c, 0x3b, 0xae, 0x77, 0x65, 0xe6, 0x9d, 0x85, 0xfb,
0xc5, 0x9a, 0x23, 0x71, 0x58, 0xcf, 0x7e, 0x08, 0x4b, 0xc6, 0xf5, 0xae, 0xc3, 0x8b, 0x70, 0xa0, 0x0e, 0x32, 0x8d, 0xfd, 0xbc, 0x46, 0xb6, 0x60, 0x94, 0xbd, 0x2a, 0x92, 0x2d, 0x18, 0xa5, 0x6f,
0x19, 0xa0, 0x78, 0xfb, 0xb8, 0x57, 0x66, 0xa5, 0xb8, 0xeb, 0x54, 0xff, 0xb2, 0x6b, 0x4d, 0x0e, 0x72, 0x28, 0xa6, 0x61, 0x2b, 0xd6, 0x18, 0x89, 0xc3, 0x7a, 0xf6, 0x43, 0x58, 0x32, 0xae, 0x77,
0x12, 0xff, 0x16, 0xb4, 0xcc, 0xab, 0x63, 0x6f, 0xa8, 0x77, 0xdd, 0xc8, 0x32, 0x2f, 0xce, 0x3e, 0x1d, 0x9e, 0x87, 0x03, 0x2d, 0x00, 0xc5, 0xdb, 0xc7, 0xbd, 0xb2, 0x5d, 0x8a, 0xbb, 0x4e, 0xe5,
0x70, 0xd8, 0x81, 0x08, 0xda, 0xd2, 0x4f, 0x7d, 0x46, 0x71, 0x7e, 0xfb, 0xb4, 0x9f, 0x00, 0xd5, 0x2f, 0xbb, 0xd6, 0xe0, 0x20, 0xf3, 0x6f, 0x41, 0xcb, 0xbc, 0x3a, 0xf6, 0x96, 0x72, 0xd7, 0x0d,
0x0b, 0x59, 0xf6, 0xf8, 0xeb, 0x1d, 0xe7, 0x81, 0xc3, 0xfe, 0x81, 0x03, 0x6d, 0xeb, 0x6a, 0x97, 0x92, 0x79, 0x71, 0xf6, 0xbe, 0xc3, 0x0e, 0x44, 0xd0, 0x96, 0x7e, 0xea, 0x33, 0x8a, 0xf3, 0xcb,
0x15, 0x02, 0x93, 0xeb, 0x59, 0xd7, 0xcc, 0x33, 0xbb, 0xe6, 0x7a, 0x34, 0xec, 0xbd, 0xbb, 0xdf, 0xa7, 0xfd, 0x04, 0xa8, 0x9e, 0xc8, 0xb2, 0xc7, 0x5f, 0x6f, 0x3b, 0xf7, 0x1d, 0xf6, 0x0f, 0x1d,
0xb5, 0xa6, 0xf5, 0x0b, 0xcb, 0xa1, 0x76, 0x2f, 0xff, 0xde, 0xe7, 0x97, 0xf9, 0x02, 0xe6, 0x9d, 0x68, 0x5b, 0x57, 0xbb, 0xac, 0x10, 0x98, 0x5c, 0xcb, 0xba, 0x26, 0xcd, 0x6c, 0x9a, 0xeb, 0x51,
0xef, 0x2f, 0x1f, 0x38, 0xec, 0x8f, 0x1d, 0x58, 0xb4, 0xdd, 0xc0, 0x7a, 0xb8, 0xa5, 0x0e, 0x67, 0xb7, 0xf7, 0xee, 0x7c, 0xd7, 0x1a, 0xd6, 0x2f, 0x2c, 0x87, 0xda, 0xdd, 0xfc, 0x7b, 0x9f, 0x5f,
0xbd, 0xf8, 0x33, 0x7c, 0xc7, 0x3f, 0xa4, 0x5e, 0x3e, 0xbf, 0xeb, 0x59, 0xbd, 0x94, 0x4f, 0xb9, 0xe6, 0x33, 0x98, 0x77, 0xbe, 0xbf, 0xbc, 0xef, 0xb0, 0x3f, 0x76, 0x60, 0xd1, 0x76, 0x03, 0xeb,
0xfc, 0x7a, 0xbd, 0x65, 0x9f, 0x8a, 0x77, 0xac, 0xd5, 0x61, 0x0d, 0x2b, 0x3e, 0x95, 0xac, 0x09, 0xee, 0x96, 0x3a, 0x9c, 0xf5, 0xe4, 0xcf, 0xf0, 0x1d, 0xff, 0x90, 0x5a, 0xf9, 0xfc, 0x8e, 0x67,
0xc6, 0x7c, 0xdc, 0x98, 0x16, 0xe1, 0xc7, 0xe2, 0x9d, 0x4b, 0x75, 0x9e, 0x80, 0x74, 0xf7, 0xb6, 0xb5, 0x52, 0x3e, 0xe5, 0xf2, 0xeb, 0xb5, 0x96, 0x7d, 0x26, 0xde, 0xbb, 0x56, 0x87, 0x35, 0xac,
0xdf, 0xbb, 0xb7, 0x68, 0x4c, 0x37, 0xdc, 0x6b, 0xd6, 0x98, 0xf2, 0x3b, 0xfc, 0xa6, 0xe8, 0x9d, 0xf8, 0x54, 0xb2, 0x66, 0x18, 0xf3, 0x71, 0x63, 0x9a, 0x84, 0x1f, 0x8b, 0x77, 0x2e, 0xd5, 0x79,
0x7c, 0x97, 0x38, 0xdb, 0xa2, 0x0a, 0x6f, 0x15, 0xcf, 0xee, 0xe4, 0x58, 0x74, 0x52, 0x16, 0xb7, 0x02, 0xf2, 0xdd, 0xbb, 0x7e, 0xef, 0xde, 0xa0, 0x3e, 0x5d, 0x73, 0xaf, 0x58, 0x7d, 0xca, 0xaf,
0x98, 0xe3, 0x2d, 0xab, 0x71, 0xef, 0x52, 0x5f, 0x6f, 0xb9, 0xef, 0xcd, 0xec, 0xeb, 0x7d, 0x72, 0xf0, 0x9b, 0xa2, 0x75, 0xf2, 0x5d, 0xe2, 0x6c, 0x89, 0x2a, 0xbc, 0x55, 0x3c, 0xbb, 0x91, 0x63,
0xe6, 0x62, 0x8f, 0x0f, 0x00, 0xb2, 0xc3, 0x55, 0x96, 0x3b, 0xd8, 0xd3, 0x22, 0xa3, 0x78, 0xfe, 0xd1, 0x48, 0x99, 0xdd, 0x12, 0x8e, 0x77, 0x2c, 0xc6, 0xbd, 0x43, 0x6d, 0xbd, 0xe1, 0x7e, 0x30,
0x6a, 0x73, 0xa0, 0x3a, 0xff, 0xc3, 0x1a, 0x7f, 0x24, 0x04, 0xe0, 0x13, 0x75, 0x24, 0x68, 0xaa, 0xb3, 0xad, 0xf7, 0xc8, 0x99, 0x8b, 0x2d, 0x3e, 0x00, 0xc8, 0x0e, 0x57, 0x59, 0xee, 0x60, 0x4f,
0x39, 0xf6, 0x09, 0xa8, 0xa5, 0xe6, 0xe4, 0xeb, 0xb7, 0xc4, 0x9f, 0x3e, 0x5f, 0x7c, 0x01, 0x0b, 0xab, 0x8c, 0xe2, 0xf9, 0xab, 0x2d, 0x81, 0xea, 0xfc, 0x0f, 0x4b, 0xfc, 0x91, 0x50, 0x80, 0x4f,
0x7b, 0x51, 0xf4, 0x6a, 0x3a, 0xd1, 0xd1, 0x29, 0xf6, 0x39, 0xcb, 0xae, 0x9f, 0x9c, 0xf6, 0x72, 0xd4, 0x91, 0xa0, 0x69, 0xe6, 0xd8, 0x27, 0xa0, 0x96, 0x99, 0x93, 0x2f, 0xdf, 0x52, 0x7f, 0xfa,
0xa3, 0x70, 0x6f, 0x52, 0x55, 0x3d, 0xd6, 0x35, 0xaa, 0xba, 0xff, 0x45, 0x76, 0x70, 0xfb, 0x25, 0x7c, 0xf1, 0x05, 0x2c, 0xec, 0x45, 0xd1, 0xab, 0xe9, 0x44, 0x47, 0xa7, 0xd8, 0xe7, 0x2c, 0xbb,
0xf3, 0x61, 0x59, 0x4b, 0x55, 0xdd, 0xf1, 0x9e, 0x5d, 0x8d, 0x25, 0x4b, 0xf3, 0x4d, 0x58, 0xfa, 0x7e, 0x72, 0xda, 0xcb, 0xf5, 0xc2, 0xbd, 0x4e, 0x45, 0xf5, 0x58, 0xd7, 0x28, 0xea, 0xde, 0x17,
0xb8, 0xea, 0xed, 0xfd, 0x44, 0xd5, 0x49, 0x32, 0xa5, 0xbd, 0xcd, 0x07, 0x74, 0x3b, 0x85, 0x0e, 0xd9, 0xc1, 0xed, 0x97, 0xcc, 0x87, 0x65, 0xad, 0x55, 0x75, 0xc3, 0x7b, 0x76, 0x31, 0x96, 0x2e,
0x2b, 0x56, 0xb2, 0x8e, 0xeb, 0x53, 0x8e, 0xde, 0x82, 0x05, 0xda, 0x3b, 0xcd, 0xc4, 0xbf, 0x88, 0xcd, 0x57, 0x61, 0xd9, 0xe3, 0xaa, 0xb5, 0xf7, 0x12, 0x55, 0x26, 0xe9, 0x94, 0xf6, 0x36, 0x1f,
0xf9, 0x4f, 0xef, 0x7f, 0x21, 0x8f, 0x41, 0xbe, 0x54, 0x3b, 0x8d, 0x3a, 0x27, 0xb2, 0x76, 0x9a, 0xd0, 0xed, 0x14, 0x3a, 0xac, 0x58, 0xc9, 0x1a, 0xae, 0x4f, 0x39, 0x7a, 0x0b, 0x16, 0x68, 0xaf,
0xdc, 0xc1, 0x92, 0xb5, 0xd3, 0x14, 0x0e, 0x96, 0xac, 0xa9, 0x56, 0xe7, 0x54, 0x6c, 0x04, 0xcb, 0x34, 0x13, 0xff, 0x3c, 0xe6, 0x3f, 0xbd, 0xf7, 0x85, 0x3c, 0x06, 0xf9, 0x52, 0xad, 0x34, 0xea,
0x85, 0xb3, 0x28, 0xbd, 0xc9, 0xcc, 0x3a, 0xc1, 0xea, 0xdd, 0x9c, 0x5d, 0xc0, 0x6e, 0xed, 0xae, 0x9c, 0xc8, 0x5a, 0x69, 0x72, 0x07, 0x4b, 0xd6, 0x4a, 0x53, 0x38, 0x58, 0xb2, 0x86, 0x5a, 0x9d,
0xdd, 0xda, 0x21, 0x2c, 0x6c, 0x73, 0x31, 0x59, 0x22, 0x1c, 0x37, 0x77, 0x3f, 0xd0, 0x0c, 0xf6, 0x53, 0xb1, 0x11, 0x2c, 0x17, 0xce, 0xa2, 0xf4, 0x22, 0x33, 0xeb, 0x04, 0xab, 0x77, 0x7d, 0x76,
0xcd, 0x6f, 0x09, 0x94, 0x67, 0xab, 0x12, 0x14, 0x07, 0xcb, 0x7e, 0x04, 0xad, 0xc7, 0x3c, 0x55, 0x06, 0xbb, 0xb6, 0x3b, 0x76, 0x6d, 0x87, 0xb0, 0xb0, 0xcd, 0xc5, 0x60, 0x89, 0x70, 0xdc, 0xdc,
0xf1, 0xb7, 0x5a, 0x99, 0xcd, 0x05, 0xe4, 0xf6, 0x4a, 0xc2, 0x77, 0x6d, 0x9a, 0xa1, 0xda, 0xee, 0xfd, 0x40, 0x33, 0xd8, 0x37, 0xbf, 0x24, 0x10, 0xcd, 0x36, 0x25, 0x28, 0x0e, 0x96, 0xfd, 0x08,
0xf3, 0xe1, 0x09, 0x17, 0xc2, 0xa9, 0x1f, 0x0c, 0xbf, 0x64, 0x7f, 0x81, 0x2a, 0xd7, 0x17, 0x10, 0x5a, 0x8f, 0x79, 0xaa, 0xe2, 0x6f, 0xb5, 0x31, 0x9b, 0x0b, 0xc8, 0xed, 0x95, 0x84, 0xef, 0xda,
0xd6, 0x8c, 0x60, 0x4a, 0xb3, 0xf2, 0xa5, 0x1c, 0x5e, 0x56, 0x73, 0x18, 0x0d, 0xb9, 0xa1, 0x54, 0x3c, 0x43, 0xa5, 0xdd, 0xe3, 0xc3, 0x13, 0x2e, 0x94, 0x53, 0x3f, 0x18, 0x7e, 0xc9, 0xfe, 0x12,
0x85, 0xd0, 0x32, 0xee, 0x0d, 0x69, 0x06, 0x2a, 0xde, 0x50, 0xd3, 0x0c, 0x54, 0x72, 0xcd, 0xc8, 0x15, 0xae, 0x2f, 0x20, 0xac, 0x19, 0xc1, 0x94, 0x66, 0xe1, 0x4b, 0x39, 0xbc, 0xac, 0xe4, 0x30,
0xbd, 0x43, 0xed, 0xb8, 0xec, 0x66, 0xd6, 0x8e, 0xb8, 0x5a, 0x94, 0xb5, 0x74, 0xff, 0x0b, 0x7f, 0x1a, 0x72, 0xc3, 0xa8, 0x0a, 0xa1, 0x65, 0xdc, 0x1b, 0xd2, 0x02, 0x54, 0xbc, 0xa1, 0xa6, 0x05,
0x9c, 0x7e, 0xc9, 0x5e, 0xd2, 0xd3, 0x4a, 0x66, 0x7c, 0x71, 0xa6, 0x9d, 0xe7, 0x43, 0x91, 0xf5, 0xa8, 0xe4, 0x9a, 0x91, 0x7b, 0x9b, 0xea, 0x71, 0xd9, 0xf5, 0xac, 0x1e, 0x71, 0xb5, 0x28, 0xab,
0x64, 0x19, 0x59, 0xb6, 0xc6, 0x2e, 0x9a, 0x22, 0xdd, 0xeb, 0x3b, 0x00, 0x87, 0x69, 0x34, 0xd9, 0xe9, 0xde, 0x17, 0xfe, 0x38, 0xfd, 0x92, 0xbd, 0xa4, 0xa7, 0x95, 0xcc, 0xf8, 0xe2, 0xcc, 0x3a,
0xf6, 0xf9, 0x38, 0x0a, 0x33, 0x59, 0x9b, 0x45, 0xb7, 0x66, 0xf2, 0xcb, 0x08, 0x71, 0x65, 0x2f, 0xcf, 0x87, 0x22, 0xeb, 0xc1, 0x32, 0x48, 0xb6, 0xc5, 0x2e, 0xaa, 0x22, 0xdb, 0xeb, 0x3b, 0x00,
0x0d, 0x73, 0xc6, 0x0a, 0xd1, 0x56, 0xc4, 0x35, 0x33, 0x00, 0x56, 0x4f, 0x48, 0x49, 0x10, 0xec, 0x87, 0x69, 0x34, 0xd9, 0xf6, 0xf9, 0x38, 0x0a, 0x33, 0x5d, 0x9b, 0x45, 0xb7, 0x66, 0xfa, 0xcb,
0x03, 0x87, 0x6d, 0x02, 0x64, 0x87, 0x91, 0xda, 0x38, 0x29, 0x9c, 0x73, 0x6a, 0xb1, 0x57, 0x72, 0x08, 0x71, 0x65, 0x2f, 0x8d, 0xed, 0x8c, 0x15, 0xa2, 0xad, 0x98, 0x6b, 0x66, 0x00, 0xac, 0x1e,
0x72, 0x79, 0x00, 0xcd, 0xec, 0x74, 0x6b, 0x3d, 0xbb, 0x9d, 0x67, 0x9d, 0x85, 0xe9, 0x1d, 0xbc, 0x90, 0x92, 0x20, 0xd8, 0xfb, 0x0e, 0xdb, 0x04, 0xc8, 0x0e, 0x23, 0xf5, 0xe6, 0xa4, 0x70, 0xce,
0x70, 0xe6, 0xe4, 0x76, 0x68, 0xaa, 0x80, 0x35, 0x70, 0xaa, 0xe8, 0x20, 0x29, 0x80, 0x15, 0xd1, 0xa9, 0xd5, 0x5e, 0xc9, 0xc9, 0xe5, 0x01, 0x34, 0xb3, 0xd3, 0xad, 0xf5, 0xec, 0x76, 0x9e, 0x75,
0x41, 0xad, 0xe0, 0x50, 0x54, 0xa6, 0x1a, 0x49, 0xc9, 0xb9, 0x8f, 0xe6, 0xe6, 0xd2, 0x03, 0x11, 0x16, 0xa6, 0x57, 0xf0, 0xc2, 0x99, 0x93, 0xdb, 0xa1, 0xa1, 0x02, 0xd6, 0xc0, 0xa1, 0xa2, 0x83,
0xcb, 0xc7, 0x82, 0xd4, 0x2a, 0x22, 0x42, 0x51, 0x34, 0x8f, 0x61, 0xb9, 0xe0, 0x63, 0xd7, 0x2c, 0xa4, 0x00, 0x56, 0x44, 0x03, 0xb5, 0x81, 0x43, 0x51, 0x99, 0xaa, 0x27, 0x25, 0xe7, 0x3e, 0x5a,
0x3d, 0xeb, 0x10, 0x45, 0xb3, 0xf4, 0x4c, 0xf7, 0xbc, 0x7b, 0x95, 0x9a, 0x5c, 0x72, 0x81, 0x6c, 0x9a, 0x4b, 0x0f, 0x44, 0x2c, 0x1f, 0x0b, 0x72, 0xab, 0x88, 0x08, 0x45, 0xd5, 0x3c, 0x86, 0xe5,
0xaa, 0xf3, 0x20, 0x1d, 0x9c, 0x62, 0x73, 0x7f, 0xe8, 0xc0, 0x4a, 0x89, 0x0b, 0x9d, 0xbd, 0xaf, 0x82, 0x8f, 0x5d, 0x8b, 0xf4, 0xac, 0x43, 0x14, 0x2d, 0xd2, 0x33, 0xdd, 0xf3, 0xee, 0x65, 0xaa,
0xcc, 0xf3, 0x99, 0xee, 0xf5, 0x5e, 0xa9, 0x87, 0xd5, 0x3d, 0xa4, 0x76, 0x9e, 0xb2, 0xcf, 0xad, 0x72, 0xc9, 0x05, 0xda, 0x53, 0xbd, 0x0e, 0xd2, 0xc1, 0x29, 0x56, 0xf7, 0x87, 0x0e, 0xac, 0x94,
0x8d, 0x4d, 0x38, 0x37, 0x25, 0x67, 0xbe, 0x51, 0xa9, 0x28, 0xd5, 0x28, 0x7e, 0x0a, 0xeb, 0xa2, 0xb8, 0xd0, 0xd9, 0x87, 0x6a, 0x7b, 0x3e, 0xd3, 0xbd, 0xde, 0x2b, 0xf5, 0xb0, 0xba, 0x87, 0x54,
0x23, 0x9b, 0xa3, 0x51, 0xce, 0xfb, 0x7b, 0xa3, 0xf0, 0xbf, 0x6e, 0x2c, 0xaf, 0x76, 0x6f, 0xf6, 0xcf, 0x53, 0xf6, 0xb9, 0xb5, 0xb0, 0x09, 0xe7, 0xa6, 0x94, 0xcc, 0xb7, 0x1a, 0x15, 0xa5, 0x16,
0xff, 0xc2, 0x99, 0xa1, 0x00, 0x8b, 0xae, 0xb2, 0x29, 0x74, 0xf2, 0x1e, 0x55, 0x36, 0xbb, 0xae, 0xc5, 0x4f, 0x61, 0x5d, 0x34, 0x64, 0x73, 0x34, 0xca, 0x79, 0x7f, 0xaf, 0x15, 0xfe, 0x27, 0x8e,
0xde, 0x7b, 0x96, 0xa1, 0x59, 0xe2, 0x85, 0xfd, 0x2d, 0x6a, 0xec, 0x3d, 0xb7, 0x57, 0x36, 0x2f, 0xe5, 0xd5, 0xee, 0xcd, 0xfe, 0x9f, 0x39, 0x33, 0x0c, 0x60, 0xd1, 0x54, 0x36, 0x85, 0x4e, 0xde,
0xc2, 0xf6, 0xc4, 0xf5, 0xf8, 0x4b, 0xda, 0xfd, 0x9b, 0x1b, 0xa7, 0x6a, 0x60, 0x96, 0xbf, 0x5a, 0xa3, 0xca, 0x66, 0x97, 0xd5, 0xfb, 0xc0, 0xda, 0x68, 0x96, 0x78, 0x61, 0x7f, 0x8b, 0x2a, 0xfb,
0x9b, 0xba, 0xe5, 0xde, 0xe3, 0x0f, 0xa8, 0xf9, 0x9b, 0xee, 0x3b, 0x65, 0xcd, 0xc7, 0xe2, 0x13, 0xc0, 0xed, 0x95, 0x8d, 0x8b, 0xd8, 0x7b, 0xe2, 0x7c, 0xfc, 0x15, 0xed, 0xfe, 0xcd, 0xf5, 0x53,
0x61, 0xf4, 0xae, 0xe7, 0xf9, 0x5a, 0xf5, 0xe0, 0x66, 0xd9, 0x7a, 0xcf, 0xb4, 0x5e, 0x72, 0x73, 0x55, 0x30, 0xcb, 0x5f, 0xad, 0xb7, 0xba, 0xe5, 0xde, 0xe3, 0x9b, 0x54, 0xfd, 0x75, 0xf7, 0xbd,
0x7d, 0x85, 0x74, 0xbb, 0xb6, 0xe9, 0xee, 0xd5, 0xec, 0x53, 0xe2, 0x57, 0xd6, 0xec, 0x53, 0xe6, 0xb2, 0xea, 0x63, 0xf1, 0x89, 0xd8, 0xf4, 0xae, 0xe7, 0xe5, 0x5a, 0xb5, 0xe0, 0x7a, 0xd9, 0x7c,
0x1f, 0xb6, 0xf5, 0x1a, 0xe5, 0x19, 0xfe, 0xd4, 0xb9, 0xfb, 0xf0, 0xf6, 0x0f, 0x7f, 0xeb, 0x24, 0xcf, 0xdc, 0xbd, 0xe4, 0xc6, 0xfa, 0x12, 0xd9, 0x76, 0x6d, 0xd3, 0xdd, 0xab, 0xc5, 0xa7, 0xc4,
0x48, 0x4f, 0xa7, 0x47, 0xf7, 0x06, 0xd1, 0xf8, 0xfe, 0x48, 0xb9, 0xf5, 0xe4, 0x4d, 0x85, 0xfb, 0xaf, 0xac, 0xc5, 0xa7, 0xcc, 0x3f, 0x6c, 0xdb, 0x35, 0xca, 0x33, 0xfc, 0x99, 0x73, 0xe7, 0xe1,
0xa3, 0x70, 0x78, 0x9f, 0xaa, 0x3d, 0x9a, 0xa3, 0x7f, 0xce, 0xf5, 0xad, 0xff, 0x1b, 0x00, 0x00, 0xad, 0x1f, 0xfe, 0xd6, 0x49, 0x90, 0x9e, 0x4e, 0x8f, 0xee, 0x0e, 0xa2, 0xf1, 0xbd, 0x91, 0x72,
0xff, 0xff, 0xf5, 0x8b, 0xbe, 0x64, 0xce, 0x6b, 0x00, 0x00, 0xeb, 0xc9, 0x9b, 0x0a, 0xf7, 0x46, 0xe1, 0xf0, 0x1e, 0x15, 0x7b, 0x34, 0x47, 0xff, 0xc4, 0xeb,
0x5b, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0x73, 0xd9, 0x4f, 0x40, 0xf6, 0x6b, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.

@ -937,6 +937,11 @@ message SendRequest {
*/ */
uint64 outgoing_chan_id = 9 [jstype = JS_STRING]; uint64 outgoing_chan_id = 9 [jstype = JS_STRING];
/**
The pubkey of the last hop of the route. If empty, any hop may be used.
*/
bytes last_hop_pubkey = 13;
/** /**
An optional maximum total time lock for the route. This should not exceed An optional maximum total time lock for the route. This should not exceed
lnd's `--max-cltv-expiry` setting. If zero, then the value of lnd's `--max-cltv-expiry` setting. If zero, then the value of

@ -3661,6 +3661,11 @@
"format": "uint64", "format": "uint64",
"description": "*\nThe channel id of the channel that must be taken to the first hop. If zero,\nany channel may be used." "description": "*\nThe channel id of the channel that must be taken to the first hop. If zero,\nany channel may be used."
}, },
"last_hop_pubkey": {
"type": "string",
"format": "byte",
"description": "*\nThe pubkey of the last hop of the route. If empty, any hop may be used."
},
"cltv_limit": { "cltv_limit": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",

@ -263,6 +263,10 @@ type RestrictParams struct {
// hop. If nil, any channel may be used. // hop. If nil, any channel may be used.
OutgoingChannelID *uint64 OutgoingChannelID *uint64
// LastHop is the pubkey of the last node before the final destination
// is reached. If nil, any node may be used.
LastHop *route.Vertex
// CltvLimit is the maximum time lock of the route excluding the final // CltvLimit is the maximum time lock of the route excluding the final
// ctlv. After path finding is complete, the caller needs to increase // ctlv. After path finding is complete, the caller needs to increase
// all cltv expiry heights with the required final cltv delta. // all cltv expiry heights with the required final cltv delta.
@ -562,6 +566,13 @@ func findPath(g *graphParams, r *RestrictParams, cfg *PathFindingConfig,
// Expand all connections using the optimal policy for each // Expand all connections using the optimal policy for each
// connection. // connection.
for fromNode, unifiedPolicy := range u.policies { for fromNode, unifiedPolicy := range u.policies {
// Apply last hop restriction if set.
if r.LastHop != nil &&
pivot == target && fromNode != *r.LastHop {
continue
}
policy := unifiedPolicy.getPolicy( policy := unifiedPolicy.getPolicy(
amtToSend, g.bandwidthHints, amtToSend, g.bandwidthHints,
) )

@ -622,19 +622,8 @@ func TestFindLowestFeePath(t *testing.T) {
}), }),
} }
testGraphInstance, err := createTestGraphFromChannels( ctx := newPathFindingTestContext(t, testChannels, "roasbeef")
testChannels, "roasbeef", defer ctx.cleanup()
)
if err != nil {
t.Fatalf("unable to create graph: %v", err)
}
defer testGraphInstance.cleanUp()
sourceNode, err := testGraphInstance.graph.SourceNode()
if err != nil {
t.Fatalf("unable to fetch source node: %v", err)
}
sourceVertex := route.Vertex(sourceNode.PubKeyBytes)
const ( const (
startingHeight = 100 startingHeight = 100
@ -642,20 +631,13 @@ func TestFindLowestFeePath(t *testing.T) {
) )
paymentAmt := lnwire.NewMSatFromSatoshis(100) paymentAmt := lnwire.NewMSatFromSatoshis(100)
target := testGraphInstance.aliasMap["target"] target := ctx.keyFromAlias("target")
path, err := findPath( path, err := ctx.findPath(target, paymentAmt)
&graphParams{
graph: testGraphInstance.graph,
},
noRestrictions,
testPathFindingConfig,
sourceNode.PubKeyBytes, target, paymentAmt,
)
if err != nil { if err != nil {
t.Fatalf("unable to find path: %v", err) t.Fatalf("unable to find path: %v", err)
} }
route, err := newRoute( route, err := newRoute(
paymentAmt, sourceVertex, path, startingHeight, paymentAmt, ctx.source, path, startingHeight,
finalHopCLTV, nil, finalHopCLTV, nil,
) )
if err != nil { if err != nil {
@ -663,11 +645,10 @@ func TestFindLowestFeePath(t *testing.T) {
} }
// Assert that the lowest fee route is returned. // Assert that the lowest fee route is returned.
if route.Hops[1].PubKeyBytes != testGraphInstance.aliasMap["b"] { if route.Hops[1].PubKeyBytes != ctx.keyFromAlias("b") {
t.Fatalf("expected route to pass through b, "+ t.Fatalf("expected route to pass through b, "+
"but got a route through %v", "but got a route through %v",
getAliasFromPubKey(route.Hops[1].PubKeyBytes, ctx.aliasFromKey(route.Hops[1].PubKeyBytes))
testGraphInstance.aliasMap))
} }
} }
@ -1394,53 +1375,34 @@ func TestRouteFailMaxHTLC(t *testing.T) {
}), }),
} }
graph, err := createTestGraphFromChannels(testChannels, "roasbeef") ctx := newPathFindingTestContext(t, testChannels, "roasbeef")
if err != nil { defer ctx.cleanup()
t.Fatalf("unable to create graph: %v", err)
}
defer graph.cleanUp()
sourceNode, err := graph.graph.SourceNode()
if err != nil {
t.Fatalf("unable to fetch source node: %v", err)
}
// First, attempt to send a payment greater than the max HTLC we are // First, attempt to send a payment greater than the max HTLC we are
// about to set, which should succeed. // about to set, which should succeed.
target := graph.aliasMap["target"] target := ctx.keyFromAlias("target")
payAmt := lnwire.MilliSatoshi(100001) payAmt := lnwire.MilliSatoshi(100001)
_, err = findPath( _, err := ctx.findPath(target, payAmt)
&graphParams{
graph: graph.graph,
},
noRestrictions, testPathFindingConfig,
sourceNode.PubKeyBytes, target, payAmt,
)
if err != nil { if err != nil {
t.Fatalf("graph should've been able to support payment: %v", err) t.Fatalf("graph should've been able to support payment: %v", err)
} }
// Next, update the middle edge policy to only allow payments up to 100k // Next, update the middle edge policy to only allow payments up to 100k
// msat. // msat.
_, midEdge, _, err := graph.graph.FetchChannelEdgesByID(firstToSecondID) graph := ctx.testGraphInstance.graph
_, midEdge, _, err := graph.FetchChannelEdgesByID(firstToSecondID)
if err != nil { if err != nil {
t.Fatalf("unable to fetch channel edges by ID: %v", err) t.Fatalf("unable to fetch channel edges by ID: %v", err)
} }
midEdge.MessageFlags = 1 midEdge.MessageFlags = 1
midEdge.MaxHTLC = payAmt - 1 midEdge.MaxHTLC = payAmt - 1
if err := graph.graph.UpdateEdgePolicy(midEdge); err != nil { if err := graph.UpdateEdgePolicy(midEdge); err != nil {
t.Fatalf("unable to update edge: %v", err) t.Fatalf("unable to update edge: %v", err)
} }
// We'll now attempt to route through that edge with a payment above // We'll now attempt to route through that edge with a payment above
// 100k msat, which should fail. // 100k msat, which should fail.
_, err = findPath( _, err = ctx.findPath(target, payAmt)
&graphParams{
graph: graph.graph,
},
noRestrictions, testPathFindingConfig,
sourceNode.PubKeyBytes, target, payAmt,
)
if !IsError(err, ErrNoPathFound) { if !IsError(err, ErrNoPathFound) {
t.Fatalf("graph shouldn't be able to support payment: %v", err) t.Fatalf("graph shouldn't be able to support payment: %v", err)
} }
@ -1859,45 +1821,26 @@ func TestRestrictOutgoingChannel(t *testing.T) {
// target. The path through channel 2 is the highest cost path. // target. The path through channel 2 is the highest cost path.
testChannels := []*testChannel{ testChannels := []*testChannel{
symmetricTestChannel("roasbeef", "a", 100000, &testChannelPolicy{ symmetricTestChannel("roasbeef", "a", 100000, &testChannelPolicy{
Expiry: 144, Expiry: 144,
FeeRate: 400,
MinHTLC: 1,
}, 1), }, 1),
symmetricTestChannel("a", "target", 100000, &testChannelPolicy{ symmetricTestChannel("a", "target", 100000, &testChannelPolicy{
Expiry: 144, Expiry: 144,
FeeRate: 400, FeeRate: 400,
MinHTLC: 1, }, 4),
}),
symmetricTestChannel("roasbeef", "b", 100000, &testChannelPolicy{ symmetricTestChannel("roasbeef", "b", 100000, &testChannelPolicy{
Expiry: 144, Expiry: 144,
FeeRate: 800,
MinHTLC: 1,
}, 2), }, 2),
symmetricTestChannel("roasbeef", "b", 100000, &testChannelPolicy{ symmetricTestChannel("roasbeef", "b", 100000, &testChannelPolicy{
Expiry: 144, Expiry: 144,
FeeRate: 600,
MinHTLC: 1,
}, 3), }, 3),
symmetricTestChannel("b", "target", 100000, &testChannelPolicy{ symmetricTestChannel("b", "target", 100000, &testChannelPolicy{
Expiry: 144, Expiry: 144,
FeeRate: 400, FeeRate: 800,
MinHTLC: 1, }, 5),
}),
} }
testGraphInstance, err := createTestGraphFromChannels( ctx := newPathFindingTestContext(t, testChannels, "roasbeef")
testChannels, "roasbeef", defer ctx.cleanup()
)
if err != nil {
t.Fatalf("unable to create graph: %v", err)
}
defer testGraphInstance.cleanUp()
sourceNode, err := testGraphInstance.graph.SourceNode()
if err != nil {
t.Fatalf("unable to fetch source node: %v", err)
}
sourceVertex := route.Vertex(sourceNode.PubKeyBytes)
const ( const (
startingHeight = 100 startingHeight = 100
@ -1905,29 +1848,18 @@ func TestRestrictOutgoingChannel(t *testing.T) {
) )
paymentAmt := lnwire.NewMSatFromSatoshis(100) paymentAmt := lnwire.NewMSatFromSatoshis(100)
target := testGraphInstance.aliasMap["target"] target := ctx.keyFromAlias("target")
outgoingChannelID := uint64(2) outgoingChannelID := uint64(2)
// Find the best path given the restriction to only use channel 2 as the // Find the best path given the restriction to only use channel 2 as the
// outgoing channel. // outgoing channel.
path, err := findPath( ctx.restrictParams.OutgoingChannelID = &outgoingChannelID
&graphParams{ path, err := ctx.findPath(target, paymentAmt)
graph: testGraphInstance.graph,
},
&RestrictParams{
FeeLimit: noFeeLimit,
OutgoingChannelID: &outgoingChannelID,
ProbabilitySource: noProbabilitySource,
CltvLimit: math.MaxUint32,
},
testPathFindingConfig,
sourceVertex, target, paymentAmt,
)
if err != nil { if err != nil {
t.Fatalf("unable to find path: %v", err) t.Fatalf("unable to find path: %v", err)
} }
route, err := newRoute( route, err := newRoute(
paymentAmt, sourceVertex, path, startingHeight, paymentAmt, ctx.source, path, startingHeight,
finalHopCLTV, nil, finalHopCLTV, nil,
) )
if err != nil { if err != nil {
@ -1942,6 +1874,51 @@ func TestRestrictOutgoingChannel(t *testing.T) {
} }
} }
// TestRestrictLastHop asserts that a last hop restriction is obeyed by the path
// finding algorithm.
func TestRestrictLastHop(t *testing.T) {
t.Parallel()
// Set up a test graph with three possible paths from roasbeef to
// target. The path via channel 1 and 2 is the lowest cost path.
testChannels := []*testChannel{
symmetricTestChannel("source", "a", 100000, &testChannelPolicy{
Expiry: 144,
}, 1),
symmetricTestChannel("a", "target", 100000, &testChannelPolicy{
Expiry: 144,
FeeRate: 400,
}, 2),
symmetricTestChannel("source", "b", 100000, &testChannelPolicy{
Expiry: 144,
}, 3),
symmetricTestChannel("b", "target", 100000, &testChannelPolicy{
Expiry: 144,
FeeRate: 800,
}, 4),
}
ctx := newPathFindingTestContext(t, testChannels, "source")
defer ctx.cleanup()
paymentAmt := lnwire.NewMSatFromSatoshis(100)
target := ctx.keyFromAlias("target")
lastHop := ctx.keyFromAlias("b")
// Find the best path given the restriction to use b as the last hop.
// This should force pathfinding to not take the lowest cost option.
ctx.restrictParams.LastHop = &lastHop
path, err := ctx.findPath(target, paymentAmt)
if err != nil {
t.Fatalf("unable to find path: %v", err)
}
if path[0].ChannelID != 3 {
t.Fatalf("expected route to pass through channel 3, "+
"but channel %v was selected instead",
path[0].ChannelID)
}
}
// TestCltvLimit asserts that a cltv limit is obeyed by the path finding // TestCltvLimit asserts that a cltv limit is obeyed by the path finding
// algorithm. // algorithm.
func TestCltvLimit(t *testing.T) { func TestCltvLimit(t *testing.T) {
@ -1984,35 +1961,14 @@ func testCltvLimit(t *testing.T, limit uint32, expectedChannel uint64) {
}), }),
} }
testGraphInstance, err := createTestGraphFromChannels( ctx := newPathFindingTestContext(t, testChannels, "roasbeef")
testChannels, "roasbeef", defer ctx.cleanup()
)
if err != nil {
t.Fatalf("unable to create graph: %v", err)
}
defer testGraphInstance.cleanUp()
sourceNode, err := testGraphInstance.graph.SourceNode()
if err != nil {
t.Fatalf("unable to fetch source node: %v", err)
}
sourceVertex := route.Vertex(sourceNode.PubKeyBytes)
paymentAmt := lnwire.NewMSatFromSatoshis(100) paymentAmt := lnwire.NewMSatFromSatoshis(100)
target := testGraphInstance.aliasMap["target"] target := ctx.keyFromAlias("target")
path, err := findPath( ctx.restrictParams.CltvLimit = limit
&graphParams{ path, err := ctx.findPath(target, paymentAmt)
graph: testGraphInstance.graph,
},
&RestrictParams{
FeeLimit: noFeeLimit,
CltvLimit: limit,
ProbabilitySource: noProbabilitySource,
},
testPathFindingConfig,
sourceVertex, target, paymentAmt,
)
if expectedChannel == 0 { if expectedChannel == 0 {
// Finish test if we expect no route. // Finish test if we expect no route.
if IsError(err, ErrNoPathFound) { if IsError(err, ErrNoPathFound) {
@ -2029,7 +1985,7 @@ func testCltvLimit(t *testing.T, limit uint32, expectedChannel uint64) {
finalHopCLTV = 1 finalHopCLTV = 1
) )
route, err := newRoute( route, err := newRoute(
paymentAmt, sourceVertex, path, startingHeight, finalHopCLTV, paymentAmt, ctx.source, path, startingHeight, finalHopCLTV,
nil, nil,
) )
if err != nil { if err != nil {
@ -2146,27 +2102,16 @@ func testProbabilityRouting(t *testing.T, p10, p11, p20, minProbability float64,
}, 20), }, 20),
} }
testGraphInstance, err := createTestGraphFromChannels( ctx := newPathFindingTestContext(t, testChannels, "roasbeef")
testChannels, "roasbeef", defer ctx.cleanup()
)
if err != nil {
t.Fatalf("unable to create graph: %v", err)
}
defer testGraphInstance.cleanUp()
alias := testGraphInstance.aliasMap alias := ctx.testGraphInstance.aliasMap
sourceNode, err := testGraphInstance.graph.SourceNode()
if err != nil {
t.Fatalf("unable to fetch source node: %v", err)
}
sourceVertex := route.Vertex(sourceNode.PubKeyBytes)
paymentAmt := lnwire.NewMSatFromSatoshis(100) paymentAmt := lnwire.NewMSatFromSatoshis(100)
target := testGraphInstance.aliasMap["target"] target := ctx.testGraphInstance.aliasMap["target"]
// Configure a probability source with the test parameters. // Configure a probability source with the test parameters.
probabilitySource := func(fromNode, toNode route.Vertex, ctx.restrictParams.ProbabilitySource = func(fromNode, toNode route.Vertex,
amt lnwire.MilliSatoshi) float64 { amt lnwire.MilliSatoshi) float64 {
if amt == 0 { if amt == 0 {
@ -2185,21 +2130,12 @@ func testProbabilityRouting(t *testing.T, p10, p11, p20, minProbability float64,
} }
} }
path, err := findPath( ctx.pathFindingConfig = PathFindingConfig{
&graphParams{ PaymentAttemptPenalty: lnwire.NewMSatFromSatoshis(10),
graph: testGraphInstance.graph, MinProbability: minProbability,
}, }
&RestrictParams{
FeeLimit: noFeeLimit, path, err := ctx.findPath(target, paymentAmt)
ProbabilitySource: probabilitySource,
CltvLimit: math.MaxUint32,
},
&PathFindingConfig{
PaymentAttemptPenalty: lnwire.NewMSatFromSatoshis(10),
MinProbability: minProbability,
},
sourceVertex, target, paymentAmt,
)
if expectedChan == 0 { if expectedChan == 0 {
if err == nil || !IsError(err, ErrNoPathFound) { if err == nil || !IsError(err, ErrNoPathFound) {
t.Fatalf("expected no path found, but got %v", err) t.Fatalf("expected no path found, but got %v", err)
@ -2217,3 +2153,71 @@ func testProbabilityRouting(t *testing.T, p10, p11, p20, minProbability float64,
path[1].ChannelID) path[1].ChannelID)
} }
} }
type pathFindingTestContext struct {
t *testing.T
graphParams graphParams
restrictParams RestrictParams
pathFindingConfig PathFindingConfig
testGraphInstance *testGraphInstance
source route.Vertex
}
func newPathFindingTestContext(t *testing.T, testChannels []*testChannel,
source string) *pathFindingTestContext {
testGraphInstance, err := createTestGraphFromChannels(
testChannels, source,
)
if err != nil {
t.Fatalf("unable to create graph: %v", err)
}
sourceNode, err := testGraphInstance.graph.SourceNode()
if err != nil {
t.Fatalf("unable to fetch source node: %v", err)
}
ctx := &pathFindingTestContext{
t: t,
testGraphInstance: testGraphInstance,
source: route.Vertex(sourceNode.PubKeyBytes),
}
ctx.pathFindingConfig = *testPathFindingConfig
ctx.graphParams.graph = testGraphInstance.graph
ctx.restrictParams.FeeLimit = noFeeLimit
ctx.restrictParams.ProbabilitySource = noProbabilitySource
ctx.restrictParams.CltvLimit = math.MaxUint32
return ctx
}
func (c *pathFindingTestContext) keyFromAlias(alias string) route.Vertex {
return c.testGraphInstance.aliasMap[alias]
}
func (c *pathFindingTestContext) aliasFromKey(pubKey route.Vertex) string {
for alias, key := range c.testGraphInstance.aliasMap {
if key == pubKey {
return alias
}
}
return ""
}
func (c *pathFindingTestContext) cleanup() {
c.testGraphInstance.cleanUp()
}
func (c *pathFindingTestContext) findPath(target route.Vertex,
amt lnwire.MilliSatoshi) ([]*channeldb.ChannelEdgePolicy,
error) {
return findPath(
&c.graphParams, &c.restrictParams, &c.pathFindingConfig,
c.source, target, amt,
)
}

@ -89,6 +89,7 @@ func (p *paymentSession) RequestRoute(payment *LightningPayment,
ProbabilitySource: ss.MissionControl.GetProbability, ProbabilitySource: ss.MissionControl.GetProbability,
FeeLimit: payment.FeeLimit, FeeLimit: payment.FeeLimit,
OutgoingChannelID: payment.OutgoingChannelID, OutgoingChannelID: payment.OutgoingChannelID,
LastHop: payment.LastHop,
CltvLimit: cltvLimit, CltvLimit: cltvLimit,
} }

@ -1596,6 +1596,10 @@ type LightningPayment struct {
// hop. If nil, any channel may be used. // hop. If nil, any channel may be used.
OutgoingChannelID *uint64 OutgoingChannelID *uint64
// LastHop is the pubkey of the last node before the final destination
// is reached. If nil, any node may be used.
LastHop *route.Vertex
// PaymentRequest is an optional payment request that this payment is // PaymentRequest is an optional payment request that this payment is
// attempting to complete. // attempting to complete.
PaymentRequest []byte PaymentRequest []byte

@ -3017,6 +3017,7 @@ type rpcPaymentIntent struct {
cltvDelta uint16 cltvDelta uint16
routeHints [][]zpay32.HopHint routeHints [][]zpay32.HopHint
outgoingChannelID *uint64 outgoingChannelID *uint64
lastHop *route.Vertex
payReq []byte payReq []byte
destTLV []tlv.Record destTLV []tlv.Record
@ -3058,6 +3059,17 @@ func extractPaymentIntent(rpcPayReq *rpcPaymentRequest) (rpcPaymentIntent, error
payIntent.outgoingChannelID = &rpcPayReq.OutgoingChanId payIntent.outgoingChannelID = &rpcPayReq.OutgoingChanId
} }
// Pass along a last hop restriction if specified.
if len(rpcPayReq.LastHopPubkey) > 0 {
lastHop, err := route.NewVertexFromBytes(
rpcPayReq.LastHopPubkey,
)
if err != nil {
return payIntent, err
}
payIntent.lastHop = &lastHop
}
// Take the CLTV limit from the request if set, otherwise use the max. // Take the CLTV limit from the request if set, otherwise use the max.
cltvLimit, err := routerrpc.ValidateCLTVLimit( cltvLimit, err := routerrpc.ValidateCLTVLimit(
rpcPayReq.CltvLimit, cfg.MaxOutgoingCltvExpiry, rpcPayReq.CltvLimit, cfg.MaxOutgoingCltvExpiry,
@ -3237,6 +3249,7 @@ func (r *rpcServer) dispatchPaymentIntent(
PaymentHash: payIntent.rHash, PaymentHash: payIntent.rHash,
RouteHints: payIntent.routeHints, RouteHints: payIntent.routeHints,
OutgoingChannelID: payIntent.outgoingChannelID, OutgoingChannelID: payIntent.outgoingChannelID,
LastHop: payIntent.lastHop,
PaymentRequest: payIntent.payReq, PaymentRequest: payIntent.payReq,
PayAttemptTimeout: routing.DefaultPayAttemptTimeout, PayAttemptTimeout: routing.DefaultPayAttemptTimeout,
FinalDestRecords: payIntent.destTLV, FinalDestRecords: payIntent.destTLV,