From 1d2d810c1d612b1968710ddc8e6bafe55024c5b8 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Mon, 17 Jan 2022 19:41:16 +0100 Subject: [PATCH 01/49] Add local cafe testing --- core/account.go | 4 ++-- core/anytype/config/config.go | 4 ++-- core/status/service.go | 2 +- pkg/lib/threads/config.go | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core/account.go b/core/account.go index d702a17d1..2110d9052 100644 --- a/core/account.go +++ b/core/account.go @@ -26,8 +26,8 @@ import ( "github.com/anytypeio/go-anytype-middleware/util/pbtypes" ) -const defaultCafeUrl = "https://cafe1.anytype.io" -const defaultCafePeerId = "12D3KooWKwPC165PptjnzYzGrEs7NSjsF5vvMmxmuqpA2VfaBbLw" +const defaultCafeUrl = "127.0.0.1" +const defaultCafePeerId = "12D3KooWRNcPvzFigfUZuqvak7vfQGCcvqotjE7R2KBTfnkKyVvj" // we cannot check the constant error from badger because they hardcoded it there const errSubstringMultipleAnytypeInstance = "Cannot acquire directory lock" diff --git a/core/anytype/config/config.go b/core/anytype/config/config.go index 5b1af5c0a..5d4cdb934 100644 --- a/core/anytype/config/config.go +++ b/core/anytype/config/config.go @@ -23,7 +23,7 @@ var log = logging.Logger("anytype-config") const ( CName = "config" - defaultCafeNodeGRPC = "cafe1.anytype.io:3006" + defaultCafeNodeGRPC = "127.0.0.1:3006" ) type ConfigRequired struct { @@ -69,7 +69,7 @@ var DefaultConfig = Config{ "/dns4/relay1.anytype.io/tcp/4101/p2p/12D3KooWNPqCu4BC5WMBuHmqdiNWwAHGTNKbNy6JP5W1DML2psg1", }, CafeAPIHost: defaultCafeNodeGRPC, - CafeAPIInsecure: false, + CafeAPIInsecure: true, DS: clientds.DefaultConfig, Threads: threads.DefaultConfig, diff --git a/core/status/service.go b/core/status/service.go index 829387fed..463a499e4 100644 --- a/core/status/service.go +++ b/core/status/service.go @@ -35,7 +35,7 @@ const ( cafeLastPullTimeout = 10 * time.Minute // TODO: move to global config component - cafePeerId = "12D3KooWKwPC165PptjnzYzGrEs7NSjsF5vvMmxmuqpA2VfaBbLw" + cafePeerId = "12D3KooWRNcPvzFigfUZuqvak7vfQGCcvqotjE7R2KBTfnkKyVvj" // truncate device names and account IDs to last symbols maxNameLength = 8 diff --git a/pkg/lib/threads/config.go b/pkg/lib/threads/config.go index 83465b546..843006c10 100644 --- a/pkg/lib/threads/config.go +++ b/pkg/lib/threads/config.go @@ -7,7 +7,7 @@ import ( ) const ( - defaultCafeNodeP2P = "/dns4/cafe1.anytype.io/tcp/4001/p2p/12D3KooWKwPC165PptjnzYzGrEs7NSjsF5vvMmxmuqpA2VfaBbLw" + defaultCafeNodeP2P = "/ip4/127.0.0.1/tcp/5001/p2p/12D3KooWRNcPvzFigfUZuqvak7vfQGCcvqotjE7R2KBTfnkKyVvj" ) type CafeConfigFetcher interface { From 94414e9b32bd6c3aecb21b511323e99d97a6ad28 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Tue, 18 Jan 2022 00:10:48 +0100 Subject: [PATCH 02/49] Update go-threads to version with push records --- go.mod | 2 +- go.sum | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index e01100a1a..4f80607d5 100644 --- a/go.mod +++ b/go.mod @@ -91,7 +91,7 @@ require ( replace github.com/JohannesKaufmann/html-to-markdown => github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1 -replace github.com/textileio/go-threads => github.com/anytypeio/go-threads v1.1.0-rc1.0.20211224084450-be1392aa8d22 +replace github.com/textileio/go-threads => github.com/anytypeio/go-threads v1.1.0-rc1.0.20220117223942-926da2f4aae5 replace github.com/msingleton/amplitude-go => github.com/anytypeio/amplitude-go v0.0.0-20211130222238-8d16496a9b31 diff --git a/go.sum b/go.sum index c3be7e54c..ff9537d59 100644 --- a/go.sum +++ b/go.sum @@ -100,6 +100,12 @@ github.com/anytypeio/go-threads v1.1.0-rc1.0.20211223211353-75ca7043619a h1:RLeP github.com/anytypeio/go-threads v1.1.0-rc1.0.20211223211353-75ca7043619a/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= github.com/anytypeio/go-threads v1.1.0-rc1.0.20211224084450-be1392aa8d22 h1:Kcy6w9kAlCXZW3lV8+PEgS456zuz7yBwcaBYj3mYccU= github.com/anytypeio/go-threads v1.1.0-rc1.0.20211224084450-be1392aa8d22/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220115222135-b160ba6a424d h1:W3eUPwaI4plBMIaGDq+Cxhv4/jdCH36RkW5ExtKqKhc= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220115222135-b160ba6a424d/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220117220345-588ba1a74dc8 h1:GEWkeGZ89AabpMvvCkz0S8+XNiueXEH3q4OqKbHagJ4= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220117220345-588ba1a74dc8/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220117223942-926da2f4aae5 h1:PvqvyZJ3ME1Mps7RheuWtELIbil+9gj+5ZbVBuFwhlw= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220117223942-926da2f4aae5/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1 h1:g/LEIEQ0ACBOKX9MhORhlmluUKvuxvrIDbGMI0cqF5A= github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1/go.mod h1:Qnhxlb4mi8T2624UtHX8EgDyYZXWbjQfLGuciFHZ+Go= github.com/anytypeio/ipfs-lite v1.1.20-0.20210428105030-fc5b3446abae h1:drp4/4ippiDtCGQHJw9AEPFlNdZI49DUW/6dkCdmChc= From 55bb4803d18383c1ef28c1efc6a6f510a7894092 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Wed, 26 Jan 2022 00:08:18 +0100 Subject: [PATCH 03/49] Add ANYTYPE_STAGING env variable and respective config --- cmd/cli/debug.go | 19 ++++----- core/account.go | 30 +++++++------ core/anytype/bootstrap.go | 16 ++++--- core/anytype/config/config.go | 80 ++++++++++++++++++++++++++--------- core/status/service.go | 10 ++--- pkg/lib/cafe/client.go | 2 +- pkg/lib/threads/config.go | 7 +-- 7 files changed, 102 insertions(+), 62 deletions(-) diff --git a/cmd/cli/debug.go b/cmd/cli/debug.go index 50d51eab0..16723ee5e 100644 --- a/cmd/cli/debug.go +++ b/cmd/cli/debug.go @@ -1,6 +1,7 @@ package main import ( + "github.com/anytypeio/go-anytype-middleware/app" "github.com/anytypeio/go-anytype-middleware/core/anytype" "github.com/anytypeio/go-anytype-middleware/core/debug" "github.com/anytypeio/go-anytype-middleware/core/event" @@ -33,13 +34,12 @@ var dumpTree = &cobra.Command{ console.Fatal("please specify thread") } - comps, err := anytype.BootstrapConfigAndWallet(false, debugRepoPath, debugAccount) - if err != nil { - console.Fatal("failed to bootstrap anytype: %s", err.Error()) + comps := []app.Component{ + anytype.BootstrapConfig(false, false), + anytype.BootstrapWallet(debugRepoPath, debugAccount), + event.NewCallbackSender(func(event *pb.Event) {}), } - comps = append(comps, event.NewCallbackSender(func(event *pb.Event) {})) - app, err := anytype.StartNewApp(comps...) if err != nil { console.Fatal("failed to start anytype: %s", err.Error()) @@ -62,13 +62,12 @@ var dumpLocalstore = &cobra.Command{ console.Fatal("please specify account") } - comps, err := anytype.BootstrapConfigAndWallet(false, debugRepoPath, debugAccount) - if err != nil { - console.Fatal("failed to bootstrap anytype: %s", err.Error()) + comps := []app.Component{ + anytype.BootstrapConfig(false, false), + anytype.BootstrapWallet(debugRepoPath, debugAccount), + event.NewCallbackSender(func(event *pb.Event) {}), } - comps = append(comps, event.NewCallbackSender(func(event *pb.Event) {})) - app, err := anytype.StartNewApp(comps...) if err != nil { console.Fatal("failed to start anytype: %s", err.Error()) diff --git a/core/account.go b/core/account.go index 2110d9052..e09b4e993 100644 --- a/core/account.go +++ b/core/account.go @@ -14,7 +14,9 @@ import ( "sync" "time" + "github.com/anytypeio/go-anytype-middleware/app" "github.com/anytypeio/go-anytype-middleware/core/anytype" + "github.com/anytypeio/go-anytype-middleware/core/anytype/config" "github.com/anytypeio/go-anytype-middleware/core/block" "github.com/anytypeio/go-anytype-middleware/core/configfetcher" "github.com/anytypeio/go-anytype-middleware/metrics" @@ -26,9 +28,6 @@ import ( "github.com/anytypeio/go-anytype-middleware/util/pbtypes" ) -const defaultCafeUrl = "127.0.0.1" -const defaultCafePeerId = "12D3KooWRNcPvzFigfUZuqvak7vfQGCcvqotjE7R2KBTfnkKyVvj" - // we cannot check the constant error from badger because they hardcoded it there const errSubstringMultipleAnytypeInstance = "Cannot acquire directory lock" @@ -45,7 +44,7 @@ type AlphaInviteErrorResponse struct { Error string `json:"error"` } -func checkInviteCode(code string, account string) error { +func checkInviteCode(cfg *config.Config, code string, account string) error { if code == "" { return fmt.Errorf("invite code is empty") } @@ -57,7 +56,7 @@ func checkInviteCode(code string, account string) error { // TODO: here we always using the default cafe address, because we want to check invite code only on our server // this code should be removed with a public release - req, err := http.NewRequest("POST", defaultCafeUrl+"/alpha-invite", bytes.NewBuffer(jsonStr)) + req, err := http.NewRequest("POST", cfg.CafeUrl()+"/alpha-invite", bytes.NewBuffer(jsonStr)) req.Header.Set("Content-Type", "application/json") client := &http.Client{} @@ -85,7 +84,7 @@ func checkInviteCode(code string, account string) error { return fmt.Errorf("failed to decode response json: %s", err.Error()) } - pubk, err := wallet.NewPubKeyFromAddress(wallet.KeypairTypeDevice, defaultCafePeerId) + pubk, err := wallet.NewPubKeyFromAddress(wallet.KeypairTypeDevice, cfg.CafePeerId) if err != nil { return fmt.Errorf("failed to decode cafe pubkey: %s", err.Error()) } @@ -143,6 +142,7 @@ func (mw *Middleware) AccountCreate(req *pb.RpcAccountCreateRequest) *pb.RpcAcco response(nil, pb.RpcAccountCreateResponseError_FAILED_TO_STOP_RUNNING_NODE, err) } + cfg := anytype.BootstrapConfig(true, os.Getenv("ANYTYPE_STAGING") == "1") index := len(mw.foundAccounts) var account wallet.Keypair for { @@ -162,7 +162,7 @@ func (mw *Middleware) AccountCreate(req *pb.RpcAccountCreateRequest) *pb.RpcAcco continue } - if err := checkInviteCode(req.AlphaInviteCode, account.Address()); err != nil { + if err := checkInviteCode(cfg, req.AlphaInviteCode, account.Address()); err != nil { return response(nil, pb.RpcAccountCreateResponseError_BAD_INVITE_CODE, err) } @@ -177,9 +177,10 @@ func (mw *Middleware) AccountCreate(req *pb.RpcAccountCreateRequest) *pb.RpcAcco newAcc := &model.Account{Id: account.Address()} - comps, err := anytype.BootstrapConfigAndWallet(true, mw.rootPath, account.Address()) - if err != nil { - return response(nil, pb.RpcAccountCreateResponseError_UNKNOWN_ERROR, err) + comps := []app.Component{ + cfg, + anytype.BootstrapWallet(mw.rootPath, account.Address()), + mw.EventSender, } comps = append(comps, mw.EventSender) @@ -468,12 +469,13 @@ func (mw *Middleware) AccountSelect(req *pb.RpcAccountSelectRequest) *pb.RpcAcco } } - comps, err := anytype.BootstrapConfigAndWallet(false, mw.rootPath, req.Id) - if err != nil { - return response(nil, pb.RpcAccountSelectResponseError_UNKNOWN_ERROR, err) + comps := []app.Component{ + anytype.BootstrapConfig(false, os.Getenv("ANYTYPE_STAGING") == "1"), + anytype.BootstrapWallet(mw.rootPath, req.Id), + mw.EventSender, } + var err error - comps = append(comps, mw.EventSender) if mw.app, err = anytype.StartNewApp(comps...); err != nil { if err == core.ErrRepoCorrupted { return response(nil, pb.RpcAccountSelectResponseError_LOCAL_REPO_EXISTS_BUT_CORRUPTED, err) diff --git a/core/anytype/bootstrap.go b/core/anytype/bootstrap.go index 3bed6c6b2..e782f15a2 100644 --- a/core/anytype/bootstrap.go +++ b/core/anytype/bootstrap.go @@ -60,13 +60,15 @@ func StartAccountRecoverApp(eventSender event.Sender, accountPrivKey walletUtil. return a, nil } -func BootstrapConfigAndWallet(newAccount bool, rootPath, accountId string) ([]app.Component, error) { - return []app.Component{ - wallet.NewWithAccountRepo(rootPath, accountId), - config.New(func(c *config.Config) { - c.NewAccount = newAccount - }), - }, nil +func BootstrapConfig(newAccount bool, isStaging bool) *config.Config { + return config.New( + config.WithStagingCafe(isStaging), + config.WithNewAccount(newAccount), + ) +} + +func BootstrapWallet(rootPath, accountId string) wallet.Wallet { + return wallet.NewWithAccountRepo(rootPath, accountId) } func StartNewApp(components ...app.Component) (a *app.App, err error) { diff --git a/core/anytype/config/config.go b/core/anytype/config/config.go index 5d4cdb934..e5954a9d0 100644 --- a/core/anytype/config/config.go +++ b/core/anytype/config/config.go @@ -6,6 +6,7 @@ import ( "net" "os" "path/filepath" + "strconv" "strings" "github.com/kelseyhightower/envconfig" @@ -22,8 +23,6 @@ var log = logging.Logger("anytype-config") const ( CName = "config" - - defaultCafeNodeGRPC = "127.0.0.1:3006" ) type ConfigRequired struct { @@ -34,8 +33,6 @@ type Config struct { ConfigRequired `json:",inline"` NewAccount bool `ignored:"true"` // set to true if a new account is creating. This option controls whether mw should wait for the existing data to arrive before creating the new log Offline bool - CafeAPIInsecure bool - CafeAPIHost string DisableThreadsSyncEvents bool PrivateNetworkSecret string @@ -45,11 +42,36 @@ type Config struct { BootstrapNodes []string RelayNodes []string + CafeAddr string + CafeGrpcPort int + CafeP2PPort int + CafePeerId string + CafeAPIInsecure bool + Threads threads.Config DS clientds.Config DisableFileConfig bool `ignored:"true"` // set in order to skip reading/writing config from/to file } +func (c *Config) CafeNodeGrpcAddr() string { + return c.CafeAddr + ":" + strconv.Itoa(c.CafeGrpcPort) +} + +func (c *Config) CafeUrl() string { + if net.ParseIP(c.CafeAddr) != nil { + return c.CafeAddr + } + prefix := "https://" + if c.CafeAPIInsecure { + prefix = "http://" + } + return prefix + c.CafeAddr +} + +func (c *Config) CafeP2PFullAddr() string { + return fmt.Sprintf("/ip4/%s/tcp/%d/p2p/%s", c.CafeAddr, c.CafeP2PPort, c.CafePeerId) +} + const ( configFileName = "config.json" ) @@ -68,18 +90,38 @@ var DefaultConfig = Config{ "/dns4/relay2.anytype.io/tcp/4101/p2p/12D3KooWMLuW43JqNzUHbXMJH2Ted5Nf26sxv1VMcZAxXV3d3YtB", "/dns4/relay1.anytype.io/tcp/4101/p2p/12D3KooWNPqCu4BC5WMBuHmqdiNWwAHGTNKbNy6JP5W1DML2psg1", }, - CafeAPIHost: defaultCafeNodeGRPC, - CafeAPIInsecure: true, + CafeAPIInsecure: false, + CafeAddr: "cafe1.anytype.io", + CafeP2PPort: 5001, + CafeGrpcPort: 3006, + CafePeerId: "12D3KooWKwPC165PptjnzYzGrEs7NSjsF5vvMmxmuqpA2VfaBbLw", DS: clientds.DefaultConfig, Threads: threads.DefaultConfig, } -func New(apply func(*Config)) *Config { - cfg := DefaultConfig - if apply != nil { - apply(&cfg) +func WithNewAccount(isNewAccount bool) func(*Config) { + return func(c *Config) { + c.NewAccount = isNewAccount } +} + +func WithStagingCafe(isStaging bool) func(*Config) { + return func(c *Config) { + if isStaging { + c.CafeAddr = "cafe-staging.anytype.io" + c.CafePeerId = "12D3KooWPGR6LQyTEtBzFnJ7fGEMe6hKiQKeNof29zLH4bGq2djR" + } + } +} + +func New(options ...func(*Config)) *Config { + cfg := DefaultConfig + for _, opt := range options { + opt(&cfg) + } + cfg.Threads.CafeP2PAddr = cfg.CafeP2PFullAddr() + return &cfg } @@ -92,10 +134,10 @@ func (c *Config) Init(a *app.App) (err error) { return } -func (cfg *Config) initFromFileAndEnv(repoPath string) error { +func (c *Config) initFromFileAndEnv(repoPath string) error { var configFileNotExists bool - if !cfg.DisableFileConfig { + if !c.DisableFileConfig { cfgFilePath := filepath.Join(repoPath, configFileName) cfgFile, err := os.OpenFile(cfgFilePath, os.O_RDONLY, 0655) if err != nil { @@ -106,7 +148,7 @@ func (cfg *Config) initFromFileAndEnv(repoPath string) error { } if err == nil { defer cfgFile.Close() - err = json.NewDecoder(cfgFile).Decode(&cfg) + err = json.NewDecoder(cfgFile).Decode(&c) if err != nil { return fmt.Errorf("invalid format: %w", err) } @@ -119,7 +161,7 @@ func (cfg *Config) initFromFileAndEnv(repoPath string) error { log.Errorf("failed to get random port for gateway, go with the default %d: %s", port, err.Error()) } - cfg.HostAddr = fmt.Sprintf("/ip4/0.0.0.0/tcp/%d", port) + c.HostAddr = fmt.Sprintf("/ip4/0.0.0.0/tcp/%d", port) // we need to save selected port in order in order to increase chances of incoming connections if cfgFile != nil { @@ -134,21 +176,21 @@ func (cfg *Config) initFromFileAndEnv(repoPath string) error { defer cfgFile.Close() - err = json.NewEncoder(cfgFile).Encode(cfg.ConfigRequired) + err = json.NewEncoder(cfgFile).Encode(c.ConfigRequired) if err != nil { return fmt.Errorf("failed to save port to the cfg file: %s", err.Error()) } return nil } - if cfg.HostAddr == "" && configFileNotExists { + if c.HostAddr == "" && configFileNotExists { err = saveRandomHostAddr() if err != nil { return err } } else { - parts := strings.Split(cfg.HostAddr, "/") + parts := strings.Split(c.HostAddr, "/") if len(parts) == 0 { - log.Errorf("failed to parse cfg.HostAddr: %s", cfg.HostAddr) + log.Errorf("failed to parse cfg.HostAddr: %s", c.HostAddr) } else { // lets test the existing port in config addr, err := net.ResolveTCPAddr("tcp4", "0.0.0.0:"+parts[len(parts)-1]) @@ -170,7 +212,7 @@ func (cfg *Config) initFromFileAndEnv(repoPath string) error { } - err := envconfig.Process("ANYTYPE", cfg) + err := envconfig.Process("ANYTYPE", c) if err != nil { log.Errorf("failed to read config from env: %v", err) } diff --git a/core/status/service.go b/core/status/service.go index 463a499e4..b46ec2a8c 100644 --- a/core/status/service.go +++ b/core/status/service.go @@ -1,8 +1,7 @@ package status import ( - "github.com/anytypeio/go-anytype-middleware/core/anytype/config" - "github.com/anytypeio/go-anytype-middleware/core/event" + "fmt" "sort" "sync" "time" @@ -16,6 +15,8 @@ import ( "github.com/textileio/go-threads/core/thread" "github.com/anytypeio/go-anytype-middleware/app" + "github.com/anytypeio/go-anytype-middleware/core/anytype/config" + "github.com/anytypeio/go-anytype-middleware/core/event" "github.com/anytypeio/go-anytype-middleware/pb" cafepb "github.com/anytypeio/go-anytype-middleware/pkg/lib/cafe/pb" "github.com/anytypeio/go-anytype-middleware/pkg/lib/core" @@ -34,9 +35,6 @@ const ( profileInformationLifetime = 30 * time.Second cafeLastPullTimeout = 10 * time.Minute - // TODO: move to global config component - cafePeerId = "12D3KooWRNcPvzFigfUZuqvak7vfQGCcvqotjE7R2KBTfnkKyVvj" - // truncate device names and account IDs to last symbols maxNameLength = 8 ) @@ -110,7 +108,7 @@ func (s *service) Init(a *app.App) (err error) { cafePeer, _ = cafeAddr.ValueForProtocol(ma.P_P2P) } if cafePeer == "" { - cafePeer = cafePeerId + return fmt.Errorf("cafe address must be specified at start time") } cafePid, _ := peer.Decode(cafePeer) diff --git a/pkg/lib/cafe/client.go b/pkg/lib/cafe/client.go index 58612e4ff..41ea680b3 100644 --- a/pkg/lib/cafe/client.go +++ b/pkg/lib/cafe/client.go @@ -69,7 +69,7 @@ func (c *Online) Init(a *app.App) (err error) { } else { opts = append(opts, grpc.WithTransportCredentials(credentials.NewTLS(nil))) } - conn, err := grpc.Dial(cfg.CafeAPIHost, opts...) + conn, err := grpc.Dial(cfg.CafeNodeGrpcAddr(), opts...) if err != nil { return err } diff --git a/pkg/lib/threads/config.go b/pkg/lib/threads/config.go index 843006c10..654318fe9 100644 --- a/pkg/lib/threads/config.go +++ b/pkg/lib/threads/config.go @@ -6,10 +6,6 @@ import ( cafePb "github.com/anytypeio/go-anytype-middleware/pkg/lib/cafe/pb" ) -const ( - defaultCafeNodeP2P = "/ip4/127.0.0.1/tcp/5001/p2p/12D3KooWRNcPvzFigfUZuqvak7vfQGCcvqotjE7R2KBTfnkKyVvj" -) - type CafeConfigFetcher interface { GetCafeConfig() *cafePb.GetConfigResponseConfig } @@ -47,6 +43,7 @@ var DefaultConfig = Config{ Debug: false, Metrics: false, PubSub: true, - CafeP2PAddr: defaultCafeNodeP2P, CafePermanentConnection: true, + // CafeP2PAddr is being set later when we have the global config + // We probably should refactor this default config logic for threads } From e9c3ae93a8f11717b4858405b8e1bbb1bd47c7ec Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Wed, 26 Jan 2022 00:19:29 +0100 Subject: [PATCH 04/49] Fix incorrect addr --- core/anytype/config/config.go | 42 +++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/core/anytype/config/config.go b/core/anytype/config/config.go index e5954a9d0..4efadeffb 100644 --- a/core/anytype/config/config.go +++ b/core/anytype/config/config.go @@ -53,25 +53,6 @@ type Config struct { DisableFileConfig bool `ignored:"true"` // set in order to skip reading/writing config from/to file } -func (c *Config) CafeNodeGrpcAddr() string { - return c.CafeAddr + ":" + strconv.Itoa(c.CafeGrpcPort) -} - -func (c *Config) CafeUrl() string { - if net.ParseIP(c.CafeAddr) != nil { - return c.CafeAddr - } - prefix := "https://" - if c.CafeAPIInsecure { - prefix = "http://" - } - return prefix + c.CafeAddr -} - -func (c *Config) CafeP2PFullAddr() string { - return fmt.Sprintf("/ip4/%s/tcp/%d/p2p/%s", c.CafeAddr, c.CafeP2PPort, c.CafePeerId) -} - const ( configFileName = "config.json" ) @@ -125,6 +106,29 @@ func New(options ...func(*Config)) *Config { return &cfg } +func (c *Config) CafeNodeGrpcAddr() string { + return c.CafeAddr + ":" + strconv.Itoa(c.CafeGrpcPort) +} + +func (c *Config) CafeUrl() string { + if net.ParseIP(c.CafeAddr) != nil { + return c.CafeAddr + } + prefix := "https://" + if c.CafeAPIInsecure { + prefix = "http://" + } + return prefix + c.CafeAddr +} + +func (c *Config) CafeP2PFullAddr() string { + prefix := "dns4" + if net.ParseIP(c.CafeAddr) != nil { + prefix = "ip4" + } + return fmt.Sprintf("/%s/%s/tcp/%d/p2p/%s", prefix, c.CafeAddr, c.CafeP2PPort, c.CafePeerId) +} + func (c *Config) Init(a *app.App) (err error) { repoPath := a.MustComponent(wallet.CName).(wallet.Wallet).RepoPath() if err = c.initFromFileAndEnv(repoPath); err != nil { From a62e52f0410520c2469d7d1ba9f2f0f7aea117e5 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Wed, 26 Jan 2022 00:27:58 +0100 Subject: [PATCH 05/49] Fix cafe port --- core/anytype/config/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/anytype/config/config.go b/core/anytype/config/config.go index 4efadeffb..69d89410b 100644 --- a/core/anytype/config/config.go +++ b/core/anytype/config/config.go @@ -73,7 +73,7 @@ var DefaultConfig = Config{ }, CafeAPIInsecure: false, CafeAddr: "cafe1.anytype.io", - CafeP2PPort: 5001, + CafeP2PPort: 4001, CafeGrpcPort: 3006, CafePeerId: "12D3KooWKwPC165PptjnzYzGrEs7NSjsF5vvMmxmuqpA2VfaBbLw", From 5ea3605ad890195291280f7319f6ea1b69e4ebe5 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Wed, 26 Jan 2022 00:40:06 +0100 Subject: [PATCH 06/49] Remove duplicating component --- core/account.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/core/account.go b/core/account.go index e09b4e993..3fa04b000 100644 --- a/core/account.go +++ b/core/account.go @@ -182,9 +182,7 @@ func (mw *Middleware) AccountCreate(req *pb.RpcAccountCreateRequest) *pb.RpcAcco anytype.BootstrapWallet(mw.rootPath, account.Address()), mw.EventSender, } - - comps = append(comps, mw.EventSender) - + if mw.app, err = anytype.StartNewApp(comps...); err != nil { return response(newAcc, pb.RpcAccountCreateResponseError_ACCOUNT_CREATED_BUT_FAILED_TO_START_NODE, err) } From 33fe73306117709beae814276281b5e400e736a1 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Wed, 26 Jan 2022 23:07:32 +0100 Subject: [PATCH 07/49] Update go-threads to latest --- go.mod | 2 +- go.sum | 347 +-------------------------------------------------------- 2 files changed, 3 insertions(+), 346 deletions(-) diff --git a/go.mod b/go.mod index 4f80607d5..8bcd20c2d 100644 --- a/go.mod +++ b/go.mod @@ -91,7 +91,7 @@ require ( replace github.com/JohannesKaufmann/html-to-markdown => github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1 -replace github.com/textileio/go-threads => github.com/anytypeio/go-threads v1.1.0-rc1.0.20220117223942-926da2f4aae5 +replace github.com/textileio/go-threads => github.com/anytypeio/go-threads v1.1.0-rc1.0.20220126220133-494204269bea replace github.com/msingleton/amplitude-go => github.com/anytypeio/amplitude-go v0.0.0-20211130222238-8d16496a9b31 diff --git a/go.sum b/go.sum index ff9537d59..6cbd0fa65 100644 --- a/go.sum +++ b/go.sum @@ -1,19 +1,12 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.37.0 h1:69FNAINiZfsEuwH3fKq8QrAAnHz+2m4XL4kVYi5BX0Q= cloud.google.com/go v0.37.0/go.mod h1:TS1dMSSfndXH133OKGwekG838Om/cQT0BUHV3HcBgoo= -dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3 h1:hJiie5Bf3QucGRa4ymsAUOxyhYwGEz1xrsVk0P8erlw= dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 h1:VpgP7xuJadIUuKccphEpTJnWhS2jkQyMt6Y7pJCD7fY= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0 h1:SPOUaucgtVls75mg+X7CXigS71EnsfVUK/2CgVrwqgw= dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= -dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412 h1:GvWw74lx5noHocd+f6HBMXK6DuggBB1dhVkuGZbv7qM= dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= -dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c h1:ivON6cwHK1OH26MZyWDCnbTRZZf0IhNsENoNAKFS1g4= dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= -git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999 h1:OR8VhtwhcAI3U48/rzBsVOuHi0zDPzYI1xASVcdSgR8= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= @@ -21,13 +14,10 @@ github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 h1:cTp8I5+VIo github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/HdrHistogram/hdrhistogram-go v1.1.0 h1:6dpdDPTRoo78HxAJ6T1HfMiKSnqhgRRqzCuPshRkQ7I= github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= -github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Kubuxu/go-os-helper v0.0.1 h1:EJiD2VUQyh5A9hWJLmc6iWg6yIcJ7jpBcwC8GMGXfDk= github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= @@ -36,35 +26,25 @@ github.com/PuerkitoBio/goquery v1.7.1 h1:oE+T06D+1T7LNrn91B4aERsRIeCLJ/oPSa6xB9F github.com/PuerkitoBio/goquery v1.7.1/go.mod h1:XY0pP4kfraEmmV1O7Uf6XyjoslwsneBbgeDjLYuN8xY= github.com/RoaringBitmap/roaring v0.4.23 h1:gpyfd12QohbqhFO4NVDUdoPOCXsyahYRQhINmlHxKeo= github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo= -github.com/Shopify/sarama v1.19.0 h1:9oksLxC6uxVPHPVYUmq6xhr1BOF/hHobWH2UzO67z1s= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/Stebalien/go-bitfield v0.0.1 h1:X3kbSSPUaJK60wV2hjOPZwmpljr6VGCqdq4cBLhbQBo= github.com/Stebalien/go-bitfield v0.0.1/go.mod h1:GNjFpasyUVkHMsfEOk8EFLJ9syQ6SI+XWrX9Wf2XH0s= -github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/aead/siphash v1.0.1 h1:FwHfE/T45KPKYuuSAKyyvE+oPWcaQ+CUmFW0bPlM+kg= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= -github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 h1:rFw4nCn9iMW+Vajsk51NtYIcwSTkXr+JGrMd36kTDJw= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 h1:w1UutsfOrms1J05zt7ISrnJIXKzwaspym5BTKGx93EI= github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412/go.mod h1:WPjqKcmVOxf0XSf3YxCJs6N6AOSrOx3obionmG7T0y0= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af h1:wVe6/Ea46ZMeNkQjjBW6xcqyQA/j5e0D6GytH95g0gQ= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/jsonschema v0.0.0-20191017121752-4bb6e3fae4f2 h1:swGeCLPiUQ647AIRnFxnAHdzlg6IPpmU6QdkOPZINt8= github.com/alecthomas/jsonschema v0.0.0-20191017121752-4bb6e3fae4f2/go.mod h1:Juc2PrI3wtNfUwptSvAIeNx+HrETwHQs6nf+TkOJlOA= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= github.com/andybalholm/cascadia v1.2.0 h1:vuRCkM5Ozh/BfmsaTm26kbjm0mIOM3yS5Ek/F5h18aE= github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxBp0T0eFw1RUQY= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/anytypeio/amplitude-go v0.0.0-20211130222238-8d16496a9b31 h1:fCXBjRAxXq4pKyfH8xmYPfjL/E6v5zTTxYrIKDz8ufw= github.com/anytypeio/amplitude-go v0.0.0-20211130222238-8d16496a9b31/go.mod h1:uX6FcwR+wTQWzFszLXQxeKfNeittg1408V7pVAtLKqQ= @@ -76,61 +56,30 @@ github.com/anytypeio/go-gelf v0.0.0-20210418191311-774bd5b016e7 h1:YBmcug6mOdwjJ github.com/anytypeio/go-gelf v0.0.0-20210418191311-774bd5b016e7/go.mod h1:EuPAem8b51iulSY3wBQJc0Shz+A2DmyREddzDt0fywM= github.com/anytypeio/go-log/v2 v2.1.2-0.20200810212702-264b187bb04f h1:aeyycLTPbhwjW2x/EkmuAgRzdX0bdwy+RStmevhQbhM= github.com/anytypeio/go-log/v2 v2.1.2-0.20200810212702-264b187bb04f/go.mod h1:2v2nsGfZsvvAJz13SyFzf9ObaqwHiHxsPLEHntrv9KM= -github.com/anytypeio/go-multiaddr v0.3.4-0.20211215113257-4c68dbbfce09 h1:ekAFvPz4Nwxe09Fppp57kFRGAC5SCh6re+Rko19IFbY= -github.com/anytypeio/go-multiaddr v0.3.4-0.20211215113257-4c68dbbfce09/go.mod h1:lCKNGP1EQ1eZ35Za2wlqnabm9xQkib3fyB+nZXHLag0= -github.com/anytypeio/go-multiaddr v0.3.4-0.20211215200144-88ad0085ccf9 h1:A38rbte7VTCoG97Z1C/7dfY2q7uDOHyG14e6rBbpUvY= -github.com/anytypeio/go-multiaddr v0.3.4-0.20211215200144-88ad0085ccf9/go.mod h1:lCKNGP1EQ1eZ35Za2wlqnabm9xQkib3fyB+nZXHLag0= -github.com/anytypeio/go-multiaddr v0.3.4-0.20211215201846-cc6cccdc52ed h1:uIAyPOlhgOHHI/GNQx0yJKB1iDMvWx1RBztzh/Bmi88= -github.com/anytypeio/go-multiaddr v0.3.4-0.20211215201846-cc6cccdc52ed/go.mod h1:lCKNGP1EQ1eZ35Za2wlqnabm9xQkib3fyB+nZXHLag0= github.com/anytypeio/go-multiaddr v0.3.4-0.20211216092130-ddd80e4d6e9e h1:51Svp85/PdIrpxpkkfmTnFQ8IpWZrRXs+wK3CzCWWSM= github.com/anytypeio/go-multiaddr v0.3.4-0.20211216092130-ddd80e4d6e9e/go.mod h1:lCKNGP1EQ1eZ35Za2wlqnabm9xQkib3fyB+nZXHLag0= github.com/anytypeio/go-slip10 v0.0.0-20200330112030-a352ca8495e4 h1:jB5Ke7NVoW52i65PtLFBr5Q5k6RskIY8L70pgnBcnWo= github.com/anytypeio/go-slip10 v0.0.0-20200330112030-a352ca8495e4/go.mod h1:/8GIEJBE5wmdgcE49JPdupnHNUf7bEn6C+aArfWqvw8= github.com/anytypeio/go-slip21 v0.0.0-20200218204727-e2e51e20ab51 h1:3Y+18zBC8LZgcL3l2dgoTEIzIUzCZa/kN0UV3ZWpbuA= github.com/anytypeio/go-slip21 v0.0.0-20200218204727-e2e51e20ab51/go.mod h1:SoKy+W8Mf6v7XBV30xFWkIFMs7UnXwsNGrGV12yVkEs= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20211201121237-e27ec0f0019f h1:/GtCeOnt23W6URu77Bd4E6Pi3dVxRxhTt99CWwm7kno= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20211201121237-e27ec0f0019f/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20211221202846-ede97c2acd2f h1:2ijedq9v4wuRYuXfcnG0PXwTuVIj2YyrabFBCdxtRc0= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20211221202846-ede97c2acd2f/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20211222110843-32949f7e0f33 h1:6rLgs5nQtVunDYllZa6c1Z1s3d/ZH/Gxyvw1GhDmCkA= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20211222110843-32949f7e0f33/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20211222121755-430c95fe7d33 h1:90BcVIKR9DWL1dGVVo1dubIzprUcR15BZygHwJ4zb4k= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20211222121755-430c95fe7d33/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20211223211353-75ca7043619a h1:RLePHFsEc1P56HabVOqxFnZheWUK4PmgKFBaC0or85I= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20211223211353-75ca7043619a/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20211224084450-be1392aa8d22 h1:Kcy6w9kAlCXZW3lV8+PEgS456zuz7yBwcaBYj3mYccU= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20211224084450-be1392aa8d22/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20220115222135-b160ba6a424d h1:W3eUPwaI4plBMIaGDq+Cxhv4/jdCH36RkW5ExtKqKhc= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20220115222135-b160ba6a424d/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20220117220345-588ba1a74dc8 h1:GEWkeGZ89AabpMvvCkz0S8+XNiueXEH3q4OqKbHagJ4= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20220117220345-588ba1a74dc8/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20220117223942-926da2f4aae5 h1:PvqvyZJ3ME1Mps7RheuWtELIbil+9gj+5ZbVBuFwhlw= -github.com/anytypeio/go-threads v1.1.0-rc1.0.20220117223942-926da2f4aae5/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220126220133-494204269bea h1:l/aReLRnjwpAalFpvvwwGp5MKQI3Uw/a8ctXH9NkWM0= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220126220133-494204269bea/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1 h1:g/LEIEQ0ACBOKX9MhORhlmluUKvuxvrIDbGMI0cqF5A= github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1/go.mod h1:Qnhxlb4mi8T2624UtHX8EgDyYZXWbjQfLGuciFHZ+Go= github.com/anytypeio/ipfs-lite v1.1.20-0.20210428105030-fc5b3446abae h1:drp4/4ippiDtCGQHJw9AEPFlNdZI49DUW/6dkCdmChc= github.com/anytypeio/ipfs-lite v1.1.20-0.20210428105030-fc5b3446abae/go.mod h1:cvIVnQzZQ2Z6ygGnf3hc8vHBASE0Hr0w1R0w7C6+GqY= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/apache/thrift v0.13.0 h1:5hryIiq9gtn+MiLVn0wP37kb/uTeRZgN08WoCsAhIhI= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310 h1:BUAU3CGlLvorLI26FmByPp2eC2qla6E1Tw+scpcg/to= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a h1:pv34s756C4pEXnjgPfGYgdhg/ZdajGhyOvzx8k+23nw= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/awalterschulze/gographviz v0.0.0-20190522210029-fa59802746ab h1:+cdNqtOJWjvepyhxy23G7z7vmpYCoC65AP0nqi1f53s= github.com/awalterschulze/gographviz v0.0.0-20190522210029-fa59802746ab/go.mod h1:GEV5wmg4YquNw7v1kkyoX9etIk8yVmXj+AkDHuuETHs= -github.com/aws/aws-lambda-go v1.13.3 h1:SuCy7H3NLyp+1Mrfp+m80jcbi9KYWAs9/BXwppwRDzY= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.29.15 h1:0ms/213murpsujhsnxnNKNeVouW60aJqSd992Ks3mxs= github.com/aws/aws-sdk-go v1.29.15/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg= -github.com/aws/aws-sdk-go-v2 v0.18.0 h1:qZ+woO4SamnH/eEbjM2IDLhRNwIwND/RQyVlBLp3Jqg= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= @@ -141,13 +90,11 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/blevesearch/bleve v1.0.14 h1:Q8r+fHTt35jtGXJUM0ULwM3Tzg+MRfyai4ZkWDy2xO4= github.com/blevesearch/bleve v1.0.14/go.mod h1:e/LJTr+E7EaoVdkQZTfoz7dt4KoDNvDbLb8MSKuNTLQ= github.com/blevesearch/blevex v1.0.0 h1:pnilj2Qi3YSEGdWgLj1Pn9Io7ukfXPoQcpAI1Bv8n/o= github.com/blevesearch/blevex v1.0.0/go.mod h1:2rNVqoG2BZI8t1/P1awgTKnGlx5MP9ZbtEciQaNhswc= -github.com/blevesearch/cld2 v0.0.0-20200327141045-8b5f551d37f5 h1:/4ikScMMYMqsRFWJjCyzd3CNWB0lxvqDkqa5nEv6NMc= github.com/blevesearch/cld2 v0.0.0-20200327141045-8b5f551d37f5/go.mod h1:PN0QNTLs9+j1bKy3d/GB/59wsNBFC4sWLWG3k69lWbc= github.com/blevesearch/go-porterstemmer v1.0.3 h1:GtmsqID0aZdCSNiY8SkuPJ12pD4jI+DdXTAn4YRcHCo= github.com/blevesearch/go-porterstemmer v1.0.3/go.mod h1:angGc5Ht+k2xhJdZi511LtmxuEf0OVpvUUNrwmM1P7M= @@ -167,7 +114,6 @@ github.com/blevesearch/zap/v14 v14.0.5 h1:NdcT+81Nvmp2zL+NhwSvGSLh7xNgGL8QRVZ67n github.com/blevesearch/zap/v14 v14.0.5/go.mod h1:bWe8S7tRrSBTIaZ6cLRbgNH4TUDaC9LZSpRGs85AsGY= github.com/blevesearch/zap/v15 v15.0.3 h1:Ylj8Oe+mo0P25tr9iLPp33lN6d4qcztGjaIsP51UxaY= github.com/blevesearch/zap/v15 v15.0.3/go.mod h1:iuwQrImsh1WjWJ0Ue2kBqY83a0rFtJTqfa9fp1rbVVU= -github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625 h1:ckJgFhFWywOx+YLEMIJsTb+NV6NexWICk5+AMSuz3ss= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= github.com/btcsuite/btcd v0.0.0-20190523000118-16327141da8c/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= @@ -176,31 +122,21 @@ github.com/btcsuite/btcd v0.0.0-20190824003749-130ea5bddde3/go.mod h1:3J08xEfcug github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.21.0-beta h1:At9hIZdJW0s9E/fAz28nrz6AmcNlSVucCH796ZteX1M= github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= -github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/btcutil v1.0.2 h1:9iZ1Terx9fMIOtq1VrwdqfsATL9MC2l8ZrUY6YZ2uts= github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= -github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd h1:R/opQEbFEy9JGkIguV40SvRY1uliPX8ifOvi6ICsFCw= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= -github.com/btcsuite/goleveldb v1.0.0 h1:Tvd0BfvqX9o823q1j2UZ/epQo09eJh6dTcRp79ilIN4= github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/snappy-go v1.0.0 h1:ZxaA6lo2EpxGddsA8JwWOcxlzRybb444sgmeJQMJGQE= github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 h1:R8vQdOQdZ9Y3SkEwmHoWBmX1DNXhXZqlTpq6s4tyJGc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= -github.com/btcsuite/winsvc v1.0.0 h1:J9B4L7e3oqhXOcm+2IuNApwzQec85lE+QaikUcCs+dk= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= -github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23 h1:D21IyuvjDCshj1/qq+pCNd3VZOAEI9jy6Bi131YlXgI= github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= -github.com/casbin/casbin/v2 v2.1.2 h1:bTwon/ECRx9dwBy2ewRVr5OiqjeXSGiTUY74sDPQi/g= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= @@ -210,22 +146,14 @@ github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitf github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/cheggaaa/mb v1.0.3 h1:03ksWum+6kHclB+kjwKMaBtgl5gtNYUwNpxsHQciKe8= github.com/cheggaaa/mb v1.0.3/go.mod h1:NUl0GBtFLlfg2o6iZwxzcG7Lslc2wV/ADTFbLXtVPE4= -github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec h1:EdRZT3IeKQmfCSrgo8SZ8V3MEnskuJP0wCYNpe+aiXo= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= -github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403 h1:cqQfy1jclcSy/FwLjemeg3SR1yaINm74aQyupQ0Bl8M= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/coreos/bbolt v1.3.2 h1:wZwiHHUieZCquLkDL0B8UhzreNWsPHooDAG3q34zk0s= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible h1:jFneRYjIvLMLhDLCzuTuU4rSJUjRplcJQ7pD7MnhC04= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible h1:bXhRBIXoTm9BYHS3gE0TtQuyNZyeEMux2sDi4oo5YOo= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.2.1-0.20180108230905-e214231b295a/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -233,36 +161,27 @@ github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmf github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/corona10/goimagehash v1.0.2 h1:pUfB0LnsJASMPGEZLj7tGY251vF+qLGqOgEP4rUs6kA= github.com/corona10/goimagehash v1.0.2/go.mod h1:/l9umBhvcHQXVtQO1V6Gp1yD20STawkhRnnX0D1bvVI= -github.com/couchbase/ghistogram v0.1.0 h1:b95QcQTCzjTUocDXp/uMgSNQi8oj1tGwnJ4bODWZnps= github.com/couchbase/ghistogram v0.1.0/go.mod h1:s1Jhy76zqfEecpNWJfWUiKZookAFaiGOEoyzgHt9i7k= -github.com/couchbase/moss v0.1.0 h1:HCL+xxHUwmOaL44kMM/gU08OW6QGCui1WVFO58bjhNI= github.com/couchbase/moss v0.1.0/go.mod h1:9MaHIaRuy9pvLPUJxB8sh8OrLfyDczECVL37grCIubs= github.com/couchbase/vellum v1.0.2 h1:BrbP0NKiyDdndMPec8Jjhy0U47CZ0Lgx3xUC2r9rZqw= github.com/couchbase/vellum v1.0.2/go.mod h1:FcwrEivFpNi24R3jLOs3n+fs5RnuQnQqCLBJ1uAg1W4= -github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3 h1:HVTnpeuvF6Owjd5mniCL8DEXo7uYXdQEmOP4FJbV5tg= github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3/go.mod h1:p1d6YEZWvFzEh4KLyvBcVSnrfNDDvK2zfK/4x2v/4pE= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/creack/pty v1.1.9 h1:uDmaGzcdjhF4i/plgjmEsriH11Y0o7RKapEf/LDaM3w= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0= github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d h1:SwD98825d6bdB+pEuTxWOXiSjBrHdOl/UVp75eI7JT8= github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d/go.mod h1:URriBxXwVq5ijiJ12C7iIZqlA69nTlI+LgI6/pwftG8= -github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548 h1:iwZdTE0PVqJCos1vaoKsclOGD3ADKpshg3SRtYBbwso= github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM= -github.com/cznic/strutil v0.0.0-20181122101858-275e90344537 h1:MZRmHqDBd0vxNwenEbKSQqRVT24d3C05ft8kduSwlqM= github.com/cznic/strutil v0.0.0-20181122101858-275e90344537/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc= github.com/dave/jennifer v1.4.1 h1:XyqG6cn5RQsTj3qlWQTKlRGAyrTcsk1kUmWdZBzRjDw= github.com/dave/jennifer v1.4.1/go.mod h1:7jEdnm+qBcxl8PC0zyp7vxcpSRnzXSt9r39tpTVGlwA= @@ -273,7 +192,6 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= -github.com/decred/dcrd/lru v1.0.0 h1:Kbsb1SFDsIlaupWPwsPp+dkxiBY1frcS07PCPgotKz8= github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= @@ -294,7 +212,6 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954 h1:RMLoZVzv4GliuWafOuPuQDKSm1SJph7uCRnnS61JAn4= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dgtony/collections v0.1.6 h1:Qv4xLe4nXJgIeeExex6e7mDyP57tzZN3MYaGfN8uECc= github.com/dgtony/collections v0.1.6/go.mod h1:olD2FRoNisWmjMhK6LDRKv+lMnDoryOZIT+owtd/o6U= @@ -309,35 +226,23 @@ github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498/go.mod h1:Mw6PkjjMXWbT github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eapache/go-resiliency v1.1.0 h1:1NtRmCAqadE2FN4ZcN6g90TP3uk8cg9rn9eNK2197aU= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d h1:QyzYnTnPE15SQyUeqU6qLbWxMkwyAyu+vGksa0b7j00= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/protoc-gen-validate v0.1.0 h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M= github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5 h1:BBso6MBKW8ncyZLv37o+KNyy0HrrHgfnOaGQC2qvN+A= github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5/go.mod h1:JpoxHjuQauoxiFMl1ie8Xc/7TfLuMZ5eOCONd1sUBHg= -github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= -github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= -github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk= github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= -github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/flynn/noise v0.0.0-20180327030543-2492fe189ae6/go.mod h1:1i71OnUq3iUe1ma7Lr6yG6/rjvM3emb6yoL7xLFzcVQ= github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ= @@ -347,20 +252,16 @@ github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= -github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db h1:gb2Z18BhTPJPpLQWj4T+rfKHYCHxRHCtRxhKKjRidVw= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= -github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8 h1:a9ENSRDFBUPkJ5lCgVZh26+ZbGyoVJG7yb5SSzF5H54= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gliderlabs/ssh v0.1.1 h1:j3L6gSLQalDETeEg/Jg0mGY0/y/N6zI2xX1978P0Uqw= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8 h1:DujepqpGd1hyOd7aW59XpK7Qymp8iy83xq74fLr21is= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= @@ -368,23 +269,16 @@ github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2 h1:Ujru github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy3PbkQ1AERPfmLMMagS60DKF78eWwLn8= github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= -github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= -github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.10.0 h1:dXFJfIHVvUcpSgDOV+Ne6t7jXri8Tfv2uOLHUZ2XNuo= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0 h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= @@ -395,45 +289,32 @@ github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GO github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU= github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd h1:hSkbZ9XSyjyBirMeqSqUrK+9HboWrweVlzRNqoBi2d4= github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/depgen v0.1.0 h1:31atYa/UW9V5q8vMJ+W6wd64OaaTHUrCUXER358zLM4= github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/envy v1.7.0 h1:GlXgaiBkmrYMHco6t4j7SacKO4XUjvh5pwXh0f4uxXU= github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/flect v0.1.3 h1:3GQ53z7E3o00C/yy7Ko8VXqQXoJGLkrTQCLTF1EjoXU= github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= -github.com/gobuffalo/genny v0.1.1 h1:iQ0D6SpNXIxu52WESsD+KoQ7af2e3nCfnSBoSF/hKe0= github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= -github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211 h1:mSVZ4vj4khv+oThUfS+SQU3UuFIZ5Zo6UNcvK8E8Mz8= github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= -github.com/gobuffalo/gogen v0.1.1 h1:dLg+zb+uOyd/mKeQUYIbwbNmfRsr9hd/WtYWepmayhI= github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= -github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2 h1:8thhT+kUJMTMy3HlX4+y9Da+BNJck+p109tqqKp7WDs= github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/mapi v1.0.2 h1:fq9WcL1BYrm36SzK6+aAnZ8hcp+SrmnDyAxhNx8dvJk= github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packd v0.1.0 h1:4sGKOD8yaYJ+dek1FDkwcxCHA40M4kfKgFHx8N2kwbU= github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= -github.com/gobuffalo/packr/v2 v2.2.0 h1:Ir9W9XIm9j7bhhkKE9cokvtTl1vBm62A/fene/ZCj6A= github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= -github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754 h1:tpom+2CJmpzAWj5/VEHync2rJGi+epHNIeRSWjzGA+4= github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= @@ -468,7 +349,6 @@ github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4er github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/lint v0.0.0-20180702182130-06c8688daad7 h1:2hRPrmiwPrp3fQX967rNJIhQPtiGXdlQWAxKbKw3VHA= github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -496,7 +376,6 @@ github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/flatbuffers v1.12.1 h1:MVlul7pQNoDzWRLTw5imwYsl+usrS1TXG2H4jg6ImGw= github.com/google/flatbuffers v1.12.1/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= @@ -508,21 +387,15 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= -github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM= github.com/google/gopacket v1.1.18/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM= github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= -github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57 h1:eqyIo2HjKhKe/mJzTG8n4VqvLXIOEG+SLdDqX7xGtkY= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -530,27 +403,22 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go v2.0.0+incompatible h1:j0GKcs05QVmm7yesiZq2+9cxHkNK9YM6zKx4D2qucQU= github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= -github.com/googleapis/gax-go/v2 v2.0.3 h1:siORttZ36U2R/WjiJuDz8znElWBiAlO9rVt+mqJt0Cc= github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99 h1:twflg0XRTjwKpxb/jFExr4HGq6on2dEOmnL6FV+fgPw= github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -561,80 +429,55 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92Bcuy github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= -github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyFSs7UnsU= github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= -github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= github.com/h2non/filetype v1.1.1 h1:xvOwnXKAckvtLWsN398qS9QhlxlnVXBjXBydK2/UFB4= github.com/h2non/filetype v1.1.1/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= -github.com/hashicorp/consul/api v1.3.0 h1:HXNYlRkkM/t+Y/Yhxtwcy02dlYwIaoxzvxPnS+cqy78= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= -github.com/hashicorp/consul/sdk v0.3.0 h1:UOxjlb4xVNF93jak1mzzoBatyFju9nrkxpVwIp/QqxQ= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0 h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-rootcerts v1.0.0 h1:Rqb66Oo1X/eSV1x66xbDccZjhJigjg0+e82kpwzSwCI= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0 h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.2.0 h1:3vNe/fWF5CBgRIguda1meWhsZHy3m8gCJ5wx+dIzX/E= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go.net v0.0.1 h1:sNCoNyDEvN1xa+X0baata4RdcpKwcMS6DH+xwfqPgjw= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0 h1:WhIgCr5a7AaVH6jPUwjtRuuE7/RDufnUvzIr48smyxs= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3 h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG676r31M= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2 h1:YZ7UKsJv+hKjqGVUUbtE3HNj79Eln2oQ75tniF6iPt0= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3c= github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw= github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= -github.com/hudl/fargo v1.3.0 h1:0U6+BtN6LhaYuTnIJq4Wyq5cpn6O2kWrxAtcqBmYY6w= -github.com/hudl/fargo v1.3.0 h1:0U6+BtN6LhaYuTnIJq4Wyq5cpn6O2kWrxAtcqBmYY6w= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/huin/goupnp v1.0.0 h1:wg75sLpL6DZqwHQN6E1Cfk6mtfzS45z8OV+ic+DtHRo= github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= -github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150 h1:vlNjIqmUZ9CMAWsbURYl3a6wZbw7q5RHVvlXTNS/Bs8= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= -github.com/ikawaha/kagome.ipadic v1.1.2 h1:pFxZ1PpMpc6ZoBK712YN5cVK0u/ju2DZ+gRIOriJFFs= github.com/ikawaha/kagome.ipadic v1.1.2/go.mod h1:DPSBbU0czaJhAb/5uKQZHMc9MTVRpDugJfX+HddPHHg= github.com/improbable-eng/grpc-web v0.13.0/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs= github.com/improbable-eng/grpc-web v0.14.0 h1:GdoK+cXABdB+1keuqsV1drSFO2XLYIxqt/4Rj8SWGBk= github.com/improbable-eng/grpc-web v0.14.0/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d h1:/WZQPMZNsjZ7IlCpsLGdQBINg5bxKQ1K1sh6awxLtkA= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs= @@ -768,7 +611,6 @@ github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2 github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= github.com/ipfs/interface-go-ipfs-core v0.4.0 h1:+mUiamyHIwedqP8ZgbCIwpy40oX7QcXUbo4CZOeJVJg= github.com/ipfs/interface-go-ipfs-core v0.4.0/go.mod h1:UJBcU6iNennuI05amq3FQ7g0JHUkibHFAfhfUIy927o= -github.com/jackpal/gateway v1.0.5 h1:qzXWUJfuMdlLMtt0a3Dgt+xkWQiA5itDEITVJtuSwMc= github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= @@ -783,22 +625,16 @@ github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsj github.com/jbenet/goprocess v0.1.3/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o= github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= -github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1 h1:ujPKutqRlJtcfWk6toYVYagwra7HQHbXOaS171b4Tg8= github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= -github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/jrick/logrotate v1.0.0 h1:lQ1bL/n9mBNeIXoTUoYRlK4dHuNJVofX9oWqBtPnSzI= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -806,7 +642,6 @@ github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024 h1:rBMNdlhTLzJjJSDIjNEXX1Pz3Hmwmz91v+zycvx9PJc= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jsummers/gobmp v0.0.0-20151104160322-e2ba15ffa76e h1:LvL4XsI70QxOGHed6yhQtAU34Kx3Qq2wwBzGFKY8zKk= github.com/jsummers/gobmp v0.0.0-20151104160322-e2ba15ffa76e/go.mod h1:kLgvv7o6UM+0QSf0QjAse3wReFDsb9qbZJdfexWlrQw= @@ -814,24 +649,17 @@ github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVY github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 h1:PJr+ZMXIecYc1Ey2zucXdR73SMBtgjPgwa31099IMv0= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d h1:cVtBfNW5XTHiKQe7jDaDBSh/EVM4XLPutLAGboIXuM0= github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d/go.mod h1:P2viExyCEfeWGU259JnaQ34Inuec4R38JCyBx2edgD0= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= -github.com/karrick/godirwalk v1.10.3 h1:lOpSw2vJP0y5eLBW906QwKsUK/fe/QDyoqM5rnnuPDY= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= -github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23 h1:FOOIBWrEkLgmlgGfMuZT83xIwfPDxEI2OHu6xUmJMFE= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= @@ -839,23 +667,19 @@ github.com/klauspost/compress v1.12.3 h1:G5AfA94pHPysR56qqrkO2pxEexdDzrpFJ6yt/Vq github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/cpuid/v2 v2.0.4 h1:g0I61F2K2DjRHz1cnxlkNSBIaePVoJIjjnHui8QHbiw= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/kljensen/snowball v0.6.0 h1:6DZLCcZeL0cLfodx+Md4/OLC6b/bfurWUOUGs1ydfOU= github.com/kljensen/snowball v0.6.0/go.mod h1:27N7E8fVU5H68RlUmnWwZCfxgt4POBJfENGMvNRhldw= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d h1:68u9r4wEvL3gYg2jvAOgROwZ3H+Y3hIDk4tbbmIjcYQ= github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.3 h1:/Um6a/ZmD5tF7peoOJ5oN5KMQ0DrGVQSXLNwyckutPk= github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -870,7 +694,6 @@ github.com/libp2p/go-buffer-pool v0.0.2 h1:QNK2iAFa8gjAe1SPz6mHSMuCcjs+X1wlHzeOS github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM= github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c= github.com/libp2p/go-cidranger v1.1.0/go.mod h1:KWZTfSr+r9qEo9OkI9/SIEeAtw+NNoU0dXIXt15Okic= -github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= github.com/libp2p/go-conn-security-multistream v0.0.2/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= github.com/libp2p/go-conn-security-multistream v0.1.0/go.mod h1:aw6eD7LOsHEX7+2hJkDxw1MteijaVcI+/eP2/x3J1xc= @@ -948,7 +771,6 @@ github.com/libp2p/go-libp2p-core v0.8.5 h1:aEgbIcPGsKy6zYcC+5AJivYFedhYa4sW7mIpW github.com/libp2p/go-libp2p-core v0.8.5/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= github.com/libp2p/go-libp2p-crypto v0.0.2/go.mod h1:eETI5OUfBnvARGOHrJz2eWNyTUxEGZnBxMcbUjfIj4I= -github.com/libp2p/go-libp2p-crypto v0.1.0 h1:k9MFy+o2zGDNGsaoZl0MA3iZ75qXxr9OOoAZF+sD5OQ= github.com/libp2p/go-libp2p-crypto v0.1.0/go.mod h1:sPUokVISZiy+nNuTTH/TY+leRSxnFj/2GLjtOTW90hI= github.com/libp2p/go-libp2p-discovery v0.0.5/go.mod h1:YtF20GUxjgoKZ4zmXj8j3Nb2TUSBHFlOCetzYdbZL5I= github.com/libp2p/go-libp2p-discovery v0.1.0/go.mod h1:4F/x+aldVHjHDHuX85x1zWoFTGElt8HnoDzwkFZm29g= @@ -959,13 +781,10 @@ github.com/libp2p/go-libp2p-discovery v0.5.0/go.mod h1:+srtPIU9gDaBNu//UHvcdliKB github.com/libp2p/go-libp2p-gostream v0.3.0 h1:rnas//vRdHYCr7bjraZJISPwZV8OGMjeX5k5fN5Ax44= github.com/libp2p/go-libp2p-gostream v0.3.0/go.mod h1:pLBQu8db7vBMNINGsAwLL/ZCE8wng5V1FThoaE5rNjc= github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= -github.com/libp2p/go-libp2p-host v0.0.3 h1:BB/1Z+4X0rjKP5lbQTmjEjLbDVbrcmLOlA6QDsN5/j4= github.com/libp2p/go-libp2p-host v0.0.3/go.mod h1:Y/qPyA6C8j2coYyos1dfRm0I8+nvd4TGrDGt4tA7JR8= github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= github.com/libp2p/go-libp2p-interface-connmgr v0.0.4/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= -github.com/libp2p/go-libp2p-interface-connmgr v0.0.5 h1:KG/KNYL2tYzXAfMvQN5K1aAGTYSYUMJ1prgYa2/JI1E= github.com/libp2p/go-libp2p-interface-connmgr v0.0.5/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= -github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= github.com/libp2p/go-libp2p-kad-dht v0.11.0/go.mod h1:5ojtR2acDPqh/jXf5orWy8YGb8bHQDS+qeDcoscL/PI= github.com/libp2p/go-libp2p-kad-dht v0.11.1/go.mod h1:5ojtR2acDPqh/jXf5orWy8YGb8bHQDS+qeDcoscL/PI= @@ -977,7 +796,6 @@ github.com/libp2p/go-libp2p-kbucket v0.4.7/go.mod h1:XyVo99AfQH0foSf176k4jY1xUJ2 github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= github.com/libp2p/go-libp2p-loggables v0.1.0 h1:h3w8QFfCt2UJl/0/NW4K829HX/0S4KD31PQ7m8UXXO8= github.com/libp2p/go-libp2p-loggables v0.1.0/go.mod h1:EyumB2Y6PrYjr55Q3/tiJ/o3xoDasoRYM7nOzEpoa90= -github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= github.com/libp2p/go-libp2p-mplex v0.1.1/go.mod h1:KUQWpGkCzfV7UIpi8SKsAVxyBgz1c9R5EvxgnwLsb/I= github.com/libp2p/go-libp2p-mplex v0.2.0/go.mod h1:Ejl9IyjvXJ0T9iqUTE1jpYATQ9NM3g+OtR+EMMODbKo= @@ -993,7 +811,6 @@ github.com/libp2p/go-libp2p-nat v0.0.5/go.mod h1:1qubaE5bTZMJE+E/uu2URroMbzdubFz github.com/libp2p/go-libp2p-nat v0.0.6 h1:wMWis3kYynCbHoyKLPBEMu4YRLltbm8Mk08HGSfvTkU= github.com/libp2p/go-libp2p-nat v0.0.6/go.mod h1:iV59LVhB3IkFvS6S6sauVTSOrNEANnINbI/fkaLimiw= github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= -github.com/libp2p/go-libp2p-net v0.0.2 h1:qP06u4TYXfl7uW/hzqPhlVVTSA2nw1B/bHBJaUnbh6M= github.com/libp2p/go-libp2p-net v0.0.2/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= github.com/libp2p/go-libp2p-netutil v0.1.0 h1:zscYDNVEcGxyUpMd0JReUZTrpMfia8PmLKcKF72EAMQ= @@ -1004,7 +821,6 @@ github.com/libp2p/go-libp2p-noise v0.2.0 h1:wmk5nhB9a2w2RxMOyvsoKjizgJOEaJdfAakr github.com/libp2p/go-libp2p-noise v0.2.0/go.mod h1:IEbYhBBzGyvdLBoxxULL/SGbJARhUeqlO8lVSREYu2Q= github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo= github.com/libp2p/go-libp2p-peer v0.1.1/go.mod h1:jkF12jGB4Gk/IOo+yomm+7oLWxF278F7UnrYUQ1Q8es= -github.com/libp2p/go-libp2p-peer v0.2.0 h1:EQ8kMjaCUwt/Y5uLgjT8iY2qg0mGUT0N1zUjer50DsY= github.com/libp2p/go-libp2p-peer v0.2.0/go.mod h1:RCffaCvUyW2CJmG2gAWVqwePwW7JMgxjsHm7+J5kjWY= github.com/libp2p/go-libp2p-peerstore v0.0.1/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= github.com/libp2p/go-libp2p-peerstore v0.0.6/go.mod h1:RabLyPVJLuNQ+GFyoEkfi8H4Ti6k/HtZJ7YKgtSq+20= @@ -1020,7 +836,6 @@ github.com/libp2p/go-libp2p-peerstore v0.2.7/go.mod h1:ss/TWTgHZTMpsU/oKVVPQCGuD github.com/libp2p/go-libp2p-pnet v0.2.0 h1:J6htxttBipJujEjz1y0a5+eYoiPcFHhSYHH6na5f0/k= github.com/libp2p/go-libp2p-pnet v0.2.0/go.mod h1:Qqvq6JH/oMZGwqs3N1Fqhv8NVhrdYcO0BW4wssv21LA= github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= -github.com/libp2p/go-libp2p-protocol v0.1.0 h1:HdqhEyhg0ToCaxgMhnOmUO8snQtt/kQlcjVk3UoJU3c= github.com/libp2p/go-libp2p-protocol v0.1.0/go.mod h1:KQPHpAabB57XQxGrXCNvbL6UEXfQqUgC/1adR2Xtflk= github.com/libp2p/go-libp2p-pubsub v0.4.0 h1:YNVRyXqBgv9i4RG88jzoTtkSOaSB45CqHkL29NNBZb4= github.com/libp2p/go-libp2p-pubsub v0.4.0/go.mod h1:izkeMLvz6Ht8yAISXjx60XUQZMq9ZMe5h2ih4dLIBIQ= @@ -1031,7 +846,6 @@ github.com/libp2p/go-libp2p-record v0.1.0/go.mod h1:ujNc8iuE5dlKWVy6wuL6dd58t0n7 github.com/libp2p/go-libp2p-record v0.1.2/go.mod h1:pal0eNcT5nqZaTV7UGhqeGqxFgGdsU/9W//C8dqjQDk= github.com/libp2p/go-libp2p-record v0.1.3 h1:R27hoScIhQf/A8XJZ8lYpnqh9LatJ5YbHs28kCIfql0= github.com/libp2p/go-libp2p-record v0.1.3/go.mod h1:yNUff/adKIfPnYQXgp6FQmNu3gLJ6EMg7+/vv2+9pY4= -github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= github.com/libp2p/go-libp2p-routing-helpers v0.2.3 h1:xY61alxJ6PurSi+MXbywZpelvuU4U4p/gPTxjqCqTzY= github.com/libp2p/go-libp2p-routing-helpers v0.2.3/go.mod h1:795bh+9YeoFl99rMASoiVgHdi5bjack0N1+AFAdbvBw= @@ -1039,7 +853,6 @@ github.com/libp2p/go-libp2p-secio v0.0.3/go.mod h1:hS7HQ00MgLhRO/Wyu1bTX6ctJKhVp github.com/libp2p/go-libp2p-secio v0.1.0/go.mod h1:tMJo2w7h3+wN4pgU2LSYeiKPrfqBgkOsdiKK77hE7c8= github.com/libp2p/go-libp2p-secio v0.2.0/go.mod h1:2JdZepB8J5V9mBp79BmwsaPQhRPNN2NrnB2lKQcdy6g= github.com/libp2p/go-libp2p-secio v0.2.1/go.mod h1:cWtZpILJqkqrSkiYcDBh5lA3wbT2Q+hz3rJQq3iftD8= -github.com/libp2p/go-libp2p-secio v0.2.2 h1:rLLPvShPQAcY6eNurKNZq3eZjPWfU9kXF2eI9jIYdrg= github.com/libp2p/go-libp2p-secio v0.2.2/go.mod h1:wP3bS+m5AUnFA+OFO7Er03uO1mncHG0uVwGrwvjYlNY= github.com/libp2p/go-libp2p-swarm v0.0.6/go.mod h1:s5GZvzg9xXe8sbeESuFpjt8CJPTCa8mhEusweJqyFy8= github.com/libp2p/go-libp2p-swarm v0.1.0/go.mod h1:wQVsCdjsuZoc730CgOvh5ox6K8evllckjebkdiY5ta4= @@ -1064,7 +877,6 @@ github.com/libp2p/go-libp2p-testing v0.4.0/go.mod h1:Q+PFXYoiYFN5CAEG2w3gLPEzotl github.com/libp2p/go-libp2p-tls v0.1.3 h1:twKMhMu44jQO+HgQK9X8NHO5HkeJu2QbhLzLJpa8oNM= github.com/libp2p/go-libp2p-tls v0.1.3/go.mod h1:wZfuewxOndz5RTnCAxFliGjvYSDA40sKitV4c50uI1M= github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= -github.com/libp2p/go-libp2p-transport v0.0.5 h1:pV6+UlRxyDpASSGD+60vMvdifSCby6JkJDfi+yUMHac= github.com/libp2p/go-libp2p-transport v0.0.5/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= github.com/libp2p/go-libp2p-transport-upgrader v0.0.4/go.mod h1:RGq+tupk+oj7PzL2kn/m1w6YXxcIAYJYeI90h6BGgUc= github.com/libp2p/go-libp2p-transport-upgrader v0.1.1/go.mod h1:IEtA6or8JUbsV07qPW4r01GnTenLW4oi3lOPbUMGJJA= @@ -1073,7 +885,6 @@ github.com/libp2p/go-libp2p-transport-upgrader v0.3.0/go.mod h1:i+SKzbRnvXdVbU3D github.com/libp2p/go-libp2p-transport-upgrader v0.4.0/go.mod h1:J4ko0ObtZSmgn5BX5AmegP+dK3CSnU2lMCKsSq/EY0s= github.com/libp2p/go-libp2p-transport-upgrader v0.4.2 h1:4JsnbfJzgZeRS9AWN7B9dPqn/LY/HoQTlO9gtdJTIYM= github.com/libp2p/go-libp2p-transport-upgrader v0.4.2/go.mod h1:NR8ne1VwfreD5VIWIU62Agt/J18ekORFU/j1i2y8zvk= -github.com/libp2p/go-libp2p-xor v0.0.0-20200501025846-71e284145d58 h1:GcTNu27BMpOTtMnQqun03+kbtHA1qTxJ/J8cZRRYu2k= github.com/libp2p/go-libp2p-xor v0.0.0-20200501025846-71e284145d58/go.mod h1:AYjOiqJIdcmI4SXE2ouKQuFrUbE5myv8txWaB2pl4TI= github.com/libp2p/go-libp2p-yamux v0.1.2/go.mod h1:xUoV/RmYkg6BW/qGxA9XJyg+HzXFYkeXbnhjmnYzKp8= github.com/libp2p/go-libp2p-yamux v0.1.3/go.mod h1:VGSQVrqkh6y4nm0189qqxMtvyBft44MOYYPpYKXiVt4= @@ -1133,7 +944,6 @@ github.com/libp2p/go-sockaddr v0.1.0/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2L github.com/libp2p/go-sockaddr v0.1.1 h1:yD80l2ZOdGksnOyHrhxDdTDFrf7Oy+v3FMVArIRgZxQ= github.com/libp2p/go-sockaddr v0.1.1/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= -github.com/libp2p/go-stream-muxer v0.1.0 h1:3ToDXUzx8pDC6RfuOzGsUYP5roMDthbUKRdMRRhqAqY= github.com/libp2p/go-stream-muxer v0.1.0/go.mod h1:8JAVsjeRBCWwPoZeH0W1imLOcriqXJyFvB0mR4A04sQ= github.com/libp2p/go-stream-muxer-multistream v0.1.1/go.mod h1:zmGdfkQ1AzOECIAcccoL8L//laqawOsO03zX8Sa+eGw= github.com/libp2p/go-stream-muxer-multistream v0.2.0/go.mod h1:j9eyPol/LLRqT+GPLSxvimPhNph4sfYfMoDPd7HkzIc= @@ -1148,7 +958,6 @@ github.com/libp2p/go-tcp-transport v0.2.3/go.mod h1:9dvr03yqrPyYGIEN6Dy5UvdJZjyP github.com/libp2p/go-tcp-transport v0.2.4 h1:IL5ZAQrkLftufe24mWrmGtTV6drGi6BiXWMTLEM9PBE= github.com/libp2p/go-tcp-transport v0.2.4/go.mod h1:9dvr03yqrPyYGIEN6Dy5UvdJZjyPFvl1S/igQ5QD1SU= github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= -github.com/libp2p/go-testutil v0.1.0 h1:4QhjaWGO89udplblLVpgGDOQjzFlRavZOjuEnz2rLMc= github.com/libp2p/go-testutil v0.1.0/go.mod h1:81b2n5HypcVyrCg/MJx4Wgfp/VHojytjVe/gLzZ2Ehc= github.com/libp2p/go-ws-transport v0.0.5/go.mod h1:Qbl4BxPfXXhhd/o0wcrgoaItHqA9tnZjoFZnxykuaXU= github.com/libp2p/go-ws-transport v0.1.0/go.mod h1:rjw1MG1LU9YDC6gzmwObkPd/Sqwhw7yT74kj3raBFuo= @@ -1170,29 +979,21 @@ github.com/libp2p/go-yamux v1.4.1/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/h github.com/libp2p/go-yamux/v2 v2.0.0/go.mod h1:NVWira5+sVUIU6tu1JWvaRn1dRnG+cawOJiflsAM+7U= github.com/libp2p/go-yamux/v2 v2.2.0 h1:RwtpYZ2/wVviZ5+3pjC8qdQ4TKnrak0/E01N1UWoAFU= github.com/libp2p/go-yamux/v2 v2.2.0/go.mod h1:3So6P6TV6r75R9jiBpiIKgU/66lOarCZjqROGxzPpPQ= -github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743 h1:143Bb8f8DuGWck/xpNUOckBVYfFbBTnLevfRZ1aVVqo= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= -github.com/lightstep/lightstep-tracer-go v0.18.1 h1:vi1F1IQ8N7hNWytK9DpJsUfQhGuNSc19z330K6vl4zk= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/lucas-clemente/quic-go v0.19.3 h1:eCDQqvGBB+kCTkA0XrAFtNe81FMa0/fn4QSoeAbmiF4= github.com/lucas-clemente/quic-go v0.19.3/go.mod h1:ADXpNbTQjq1hIzCpB+y/k5iz4n4z4IwqoLb94Kh5Hu8= -github.com/lunixbochs/vtclean v1.0.0 h1:xu2sLAri4lGiovBDQKxl5mrXyESr3gUr5m5SM5+LVb8= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= -github.com/lyft/protoc-gen-validate v0.0.13 h1:KNt/RhmQTOLr7Aj8PsJ7mTronaFyx80mRTT9qF261dA= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.4 h1:8KGKTcQQGm0Kv7vEbKFErAoAOFyyacLStRtQSeYtvkY= github.com/magiconair/properties v1.8.4/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe h1:W/GaMY0y69G4cFlmsC6B9sbuo2fP8OFP1ABjt4kPz+w= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2 h1:JgVTCPf0uBVcUSWpyXmGpgOc62nK5HWUBKAGc3Qqa5k= github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/marten-seemann/qpack v0.2.1 h1:jvTsT/HpCn2UZJdP+UUB53FfUUgeOyG5K1ns0OJOGVs= github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= github.com/marten-seemann/qtls v0.10.0 h1:ECsuYUKalRL240rRD4Ri33ISb7kAQ3qGDlrrl55b2pc= github.com/marten-seemann/qtls v0.10.0/go.mod h1:UvMd1oaYDACI99/oZUYLzMCkBXQVT0aGm99sJhbT8hs= @@ -1202,7 +1003,6 @@ github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8 github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= @@ -1211,7 +1011,6 @@ github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.10 h1:CoZ3S2P7pvtP45xOtBw+/mDL2z0RKI576gSkzRRpdGg= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -1221,7 +1020,6 @@ github.com/mb0/diff v0.0.0-20131118162322-d8d9a906c24d h1:eAS2t2Vy+6psf9LZ4T5WXW github.com/mb0/diff v0.0.0-20131118162322-d8d9a906c24d/go.mod h1:3YMHqrw2Qu3Liy82v4QdAG17e9k91HZ7w3hqlpWqhDo= github.com/mehanizm/dateparse v0.0.0-20210806203422-f82c8742c9f8 h1:SA/3Lk2gFZilCejaXeCTkA3+MHt9uI9ogzx45F/nOFE= github.com/mehanizm/dateparse v0.0.0-20210806203422-f82c8742c9f8/go.mod h1:cBDq2yLJ1Hr7GOJxsu46m4vzUyPslmbimCrvSg6wxXU= -github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= github.com/microcosm-cc/bluemonday v1.0.9 h1:dpCwruVKoyrULicJwhuY76jB+nIxRVKv/e248Vx/BXg= @@ -1249,19 +1047,14 @@ github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= github.com/miolini/datacounter v1.0.2 h1:mGTL0vqEAtH7mwNJS1JIpd6jwTAP6cBQQ2P8apaCIm8= github.com/miolini/datacounter v1.0.2/go.mod h1:C45dc2hBumHjDpEU64IqPwR6TDyPVpzOqqRTN7zmBUA= -github.com/mitchellh/cli v1.0.0 h1:iGBIsUe3+HZ/AD/Vd7DErOt5sU9fa8Uj7A2s1aggv1Y= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0 h1:lfGJxY7ToLJQjHHwi0EX6uYBdK78egf954SQl13PQJc= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -1269,7 +1062,6 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= github.com/mr-tron/base58 v1.1.1/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= @@ -1284,18 +1076,6 @@ github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= github.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4= github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM= -github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= -github.com/multiformats/go-multiaddr v0.0.2/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= -github.com/multiformats/go-multiaddr v0.0.4/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= -github.com/multiformats/go-multiaddr v0.1.0/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= -github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo= -github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4= -github.com/multiformats/go-multiaddr v0.2.1/go.mod h1:s/Apk6IyxfvMjDafnhJgJ3/46z7tZ04iMk5wP4QMGGE= -github.com/multiformats/go-multiaddr v0.2.2/go.mod h1:NtfXiOtHvghW9KojvtySjH5y0u0xW5UouOmQQrn6a3Y= -github.com/multiformats/go-multiaddr v0.3.0/go.mod h1:dF9kph9wfJ+3VLAaeBqo9Of8x4fJxp6ggJGteB8HQTI= -github.com/multiformats/go-multiaddr v0.3.1/go.mod h1:uPbspcUPd5AfaP6ql3ujFY+QWzmBD8uLLL4bXW0XfGc= -github.com/multiformats/go-multiaddr v0.3.3 h1:vo2OTSAqnENB2rLk79pLtr+uhj+VAzSe3uef5q0lRSs= -github.com/multiformats/go-multiaddr v0.3.3/go.mod h1:lCKNGP1EQ1eZ35Za2wlqnabm9xQkib3fyB+nZXHLag0= github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= github.com/multiformats/go-multiaddr-dns v0.2.0/go.mod h1:TJ5pr5bBO7Y1B18djPuRsVkduhQH2YqYSbxWJzYGdK0= @@ -1333,47 +1113,33 @@ github.com/multiformats/go-multistream v0.2.0/go.mod h1:5GZPQZbkWOLOn3J2y4Y99vVW github.com/multiformats/go-multistream v0.2.1/go.mod h1:5GZPQZbkWOLOn3J2y4Y99vVW7vOfsAflxARk3x14o6k= github.com/multiformats/go-multistream v0.2.2 h1:TCYu1BHTDr1F/Qm75qwYISQdzGcRdC21nFgQW7l7GBo= github.com/multiformats/go-multistream v0.2.2/go.mod h1:UIcnm7Zuo8HKG+HkWgfQsGL+/MIEhyTqbODbIUwSXKs= -github.com/multiformats/go-varint v0.0.1/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/multiformats/go-varint v0.0.2/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY= github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/namsral/flag v1.7.4-pre h1:b2ScHhoCUkbsq0d2C15Mv+VU8bl8hAXV8arnWiOHNZs= github.com/namsral/flag v1.7.4-pre/go.mod h1:OXldTctbM6SWH1K899kPZcf65KxJiD7MsceFUpB5yDo= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/jwt v0.3.2 h1:+RB5hMpXUUA2dfxuhBTEkMOrYmM+gKIZYS1KjSostMI= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= -github.com/nats-io/nats-server/v2 v2.1.2 h1:i2Ly0B+1+rzNZHHWtD4ZwKi+OU5l+uQo1iDHZ2PmiIc= github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= -github.com/nats-io/nats.go v1.9.1 h1:ik3HbLhZ0YABLto7iX80pZLPw/6dx3T+++MZJwLnMrQ= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nkeys v0.1.3 h1:6JrEfig+HzTH85yxzhSVbjHRJv9cn0p6n3IngIcM5/k= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86 h1:D6paGObi5Wud7xg83MaEFyjxQB1W5bz5d0IFppr+ymk= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= -github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab h1:eFXv9Nu1lGbrNbj619aWwZfVF5HBrm9Plte8aNptuTI= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5 h1:BvoENQQU+fZ9uukda/RzCAL/191HHwJA5b13R6diVlY= github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/oklog/oklog v0.3.2 h1:wVfs8F+in6nTBMkA7CbRw+zZMIB7nNM825cM1wuzoTk= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= -github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/oklog/ulid/v2 v2.0.2 h1:r4fFzBm+bv0wNKNh5eXTwU7i85y5x+uwkxCUTNVQqLc= github.com/oklog/ulid/v2 v2.0.2/go.mod h1:mtBL0Qe/0HAx6/a4Z30qxVIAL1eQDweXq5lxOEiwQ68= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5 h1:58+kh9C6jJVXYjt8IE48G2eWl6BjwU5Gj0gqY84fy78= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -1389,25 +1155,19 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= -github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492 h1:lM6RxxfUMrYL/f8bWEUqdXrANWtrL7Nndbm9iFN0DlU= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= -github.com/opentracing/basictracer-go v1.0.0 h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5 h1:ZCnq+JUrvXcDVhX/xRolRBZifmabN1HcS1wrPSvxhrU= github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.2.2 h1:nY8Hti+WKaP0cRsSeQ026wU03QsM762XBeCXBb9NAWI= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= -github.com/otiai10/curr v1.0.0 h1:TJIWdbX0B+kpNagQrjgq8bCMrbhiuX73M2XwgtDMoOI= github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= github.com/otiai10/marmoset v0.4.0 h1:Hg59lQI7qQowBEdsAJ/+VDTEospTBzXX/A1Gsw4mlvA= github.com/otiai10/marmoset v0.4.0/go.mod h1:t2q6dXWZ9YcFdRREDApX4bCmfQnL3isJ2dgl8ychlXg= @@ -1416,31 +1176,23 @@ github.com/otiai10/mint v1.3.2 h1:VYWnrP5fXmz1MXvjuUvcBrXSjGE6xjON+axB/UrpO3E= github.com/otiai10/mint v1.3.2/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= github.com/otiai10/opengraph/v2 v2.1.0 h1:rsrq/Krr4E6IPMPUdJ+pit4mc8ijzH9P7eyfEqvlUBI= github.com/otiai10/opengraph/v2 v2.1.0/go.mod h1:gHYa6c2GENKqbB7O6Mkqpq2Ma0Nti31xIM/3QHNcD/M= -github.com/pact-foundation/pact-go v1.0.4 h1:OYkFijGHoZAYbOIb1LWXrwKQbMMRUv1oQ89blD2Mh2Q= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30 h1:BHT1/DKsYDGkUgQ2jmMaozVcdk+sVfz0+1ZJq4zkWgw= github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= -github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.4.0 h1:u3Z1r+oOXJIkxqw34zVhyPgjBsm6X2wn21NWs/HfSeg= github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= -github.com/performancecopilot/speed v3.0.0+incompatible h1:2WnRzIquHa5QxaJKShDkLM+sc0JPuwhXzK8OYOyt3Vg= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 h1:JhzVVoYvbOACxoUmOs6V/G4D5nPVUW73rKvXxP4XUJc= github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ= github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= -github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.2.1 h1:F++O52m40owAmADcojzM+9gyjmMOY/T4oYJkgFDH8RE= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -1448,7 +1200,6 @@ github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXx github.com/polydawn/refmt v0.0.0-20190408063855-01bf1e26dd14/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= github.com/polydawn/refmt v0.0.0-20190807091052-3d65705ee9f1 h1:CskT+S6Ay54OwxBGB0R3Rsx4Muto6UnEYTyKJbyRIAI= github.com/polydawn/refmt v0.0.0-20190807091052-3d65705ee9f1/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= -github.com/posener/complete v1.1.1 h1:ccV59UEOTzVDnDUEFdT95ZzHVZ+5+158q8+SJb2QV5w= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -1484,91 +1235,54 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563 h1:dY6ETXrvDG7Sa4vE8ZQG4yqWg6UnOcbqTAahkV813vQ= github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af h1:gu+uRPtBe88sKxUCEXRoeCvVG90TJmwhiqRpvdhQFng= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.3.0 h1:RR9dF3JtopPvtkroDZuVD7qquD0bnHlKSqaQhgwt8yk= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd h1:CmH9+J6ZSsIjUK3dcGsnCnO41eRBOnY12zwkn5qVwgc= github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f h1:UFr9zpz4xgTnIE5yIMtWAMngCdZ9p/+q6lTbgelo80M= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da h1:p3Vo3i64TCLY7gIfzeQaUJ+kppEO5WQG3cL8iE8tGHU= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/scylladb/termtables v0.0.0-20191203121021-c4c0b6d42ff4 h1:8qmTC5ByIXO3GP/IzBkxcZ/99VITvnIETDhdFz/om7A= github.com/scylladb/termtables v0.0.0-20191203121021-c4c0b6d42ff4/go.mod h1:C1a7PQSMz9NShzorzCiG2fk9+xuCgLkPeCvMHYR2OWg= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4 h1:Fth6mevc5rX7glNLpbAMJnqKlfIkcTjZCSHEeqvKbcI= github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= -github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48 h1:vabduItPAIz9px5iryD5peyx7O3Ya8TBThapgXim98o= github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= -github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470 h1:qb9IthCFBmROJ6YBS31BEMeSYjOscSiG+EO+JVNTz64= github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= -github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e h1:MZM7FHLqUHYI0Y/mQAt3d2aYa0SiNms/hFqC9qJYolM= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= -github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041 h1:llrF3Fs4018ePo4+G/HV/uQUqEI1HMDjCeOf2V6puPc= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= -github.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d h1:Yoy/IzG4lULT6qZg62sVC+qyBL8DQkmD2zv6i7OImrc= github.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw= -github.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c h1:UOk+nlt1BJtTcH15CT7iNO7YVWTfTv/DNwEAQHLIaDQ= github.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c/go.mod h1:8d3azKNyqcHP1GaQE/c6dDgjkgSx2BZ4IoEi4F1reUI= -github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b h1:vYEG87HxbU6dXj5npkeulCS96Dtz5xg3jcfCgpcvbIw= github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU= -github.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20 h1:7pDq9pAMCQgRohFmd25X8hIH8VxmT3TaDm+r9LHxgBk= github.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= -github.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9 h1:MPblCbqA5+z6XARjScMfz1TqtJC7TuTRj0U9VqIBs6k= github.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9/go.mod h1:+rgNQw2P9ARFAs37qieuu7ohDNQ3gds9msbT2yn85sg= -github.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50 h1:crYRwvwjdVh1biHzzciFHe8DrZcYrVcZFlJtykhRctg= github.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50/go.mod h1:zPn1wHpTIePGnXSHpsVPWEktKXHr6+SS6x/IKRb7cpw= -github.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc h1:eHRtZoIi6n9Wo1uR+RU44C247msLWwyA89hVKwRLkMk= github.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc/go.mod h1:aYMfkZ6DWSJPJ6c4Wwz3QtW22G7mf/PEgaB9k/ik5+Y= -github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371 h1:SWV2fHctRpRrp49VXJ6UZja7gU9QLHwRpIPBN89SKEo= github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= -github.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9 h1:fxoFD0in0/CBzXoyNhMTjvBZYW6ilSnTw7N7y/8vkmM= github.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q= -github.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191 h1:T4wuULTrzCKMFlg3HmKHgXAF8oStFb/+lOIupLV2v+o= github.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191/go.mod h1:e2qWDig5bLteJ4fwvDAc2NHzqFEthkqn7aOZAOpj+PQ= -github.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241 h1:Y+TeIabU8sJD10Qwd/zMty2/LEaT9GNDaA6nyZf+jgo= github.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241/go.mod h1:NPpHK2TI7iSaM0buivtFUc9offApnI0Alt/K8hcHy0I= -github.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122 h1:TQVQrsyNaimGwF7bIhzoVC9QkKm4KsWd8cECGzFx8gI= github.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122/go.mod h1:b5uSkrEVM1jQUspwbixRBhaIjIzL2xazXp6kntxYle0= -github.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2 h1:bu666BQci+y4S0tVRVjsHUeRon6vUXmsGBwdowgMrg4= github.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= -github.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82 h1:LneqU9PHDsg/AkPDU3AkqMxnMYL+imaqkpflHu73us8= github.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1lToEk4d2s07G3XGfz2QrgHXg4RJBvjrOozvoWfk= github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537 h1:YGaxtkYjb8mnTvtufv2LKLwCQu2/C7qFB7UtrOlTWOY= github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= -github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133 h1:JtcyT0rk/9PKOdnKQzuDR+FSjh7SGtJwpgVpfZBRKlQ= github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v1.0.0 h1:UVQPSSmc3qtTi+zPPkCXvZX9VvW/xT/NsRvKfwY81a8= @@ -1577,47 +1291,34 @@ github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2 github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/smola/gocompat v0.2.0 h1:6b1oIMlUXIpz//VKEDzPVBK8KG7beVwmHIUEBIs/Pns= github.com/smola/gocompat v0.2.0/go.mod h1:1B0MlxbmoZNo3h8guHp8HztB3BSYR5itql9qtVc0ypY= -github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sony/gobreaker v0.4.1 h1:oMnRNZXX5j85zso6xCPRNPtmAycat+WcoKbklScLDgQ= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= -github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d h1:yKm7XZV6j9Ev6lojP2XaIshpT4ymkqhMeSghO5Ps00E= github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= -github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e h1:qpG93cPwA5f7s/ZPBJnGOYQNK/vKsaDaseuKT5Asee8= github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= -github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a h1:/eS3yfGjQKG+9kayBkj0ip1BGhq6zJ3eaVksphxAaek= github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a/go.mod h1:7AyxJNCJ7SBZ1MfVQCWD6Uqo2oubI2Eq2y2eqf+A5r0= github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 h1:RC6RW7j+1+HkWaX/Yh71Ee5ZHaHYt7ZP4sQgUrm6cDU= github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v0.0.7 h1:FfTH+vuMXOas8jmfb5/M7dzEYx7LpcLb7a0LPe34uOU= github.com/spf13/cobra v0.0.7/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/src-d/envconfig v1.0.0 h1:/AJi6DtjFhZKNx3OB2qMsq7y4yT5//AeSZIe7rk+PX8= github.com/src-d/envconfig v1.0.0/go.mod h1:Q9YQZ7BKITldTBnoxsE5gOeB5y66RyPXeue/R4aaNBc= github.com/steveyen/gtreap v0.1.0 h1:CjhzTa274PyJLJuMZwIzCO1PfC00oRa8d1Kc78bFXJM= github.com/steveyen/gtreap v0.1.0/go.mod h1:kl/5J7XbrOmlIbYIXdRHDDE5QxHqpk0cmkT7Z4dM9/Y= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271 h1:WhxRHzgeVGETMlmVfqhRn8RIeeNoPr2Czh33I4Zdccw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a h1:AhmOdSHeswKHBjhsLs/7+1voOxT+LLrSk/Nxvk35fug= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= @@ -1632,9 +1333,7 @@ github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5Cc github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= -github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07 h1:UyzmZLoiDWMRywV4DUYb9Fbt8uiOSooupjTq10vpvnU= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= -github.com/tebeka/snowball v0.4.2 h1:ujvgLOr6IHbsvB2Vgz27IcxWqDrNu9/oPhhe74lN/Kc= github.com/tebeka/snowball v0.4.2/go.mod h1:4IfL14h1lvwZcp1sfXuuc7/7yCsvVffTWxWxCLfFpYg= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= @@ -1659,7 +1358,6 @@ github.com/tj/assert v0.0.0-20190920132354-ee03d75cd160/go.mod h1:mZ9/Rh9oLWpLLD github.com/tj/go-naturaldate v1.3.0 h1:OgJIPkR/Jk4bFMBLbxZ8w+QUxwjqSvzd9x+yXocY4RI= github.com/tj/go-naturaldate v1.3.0/go.mod h1:rpUbjivDKiS1BlfMGc2qUKNZ/yxgthOfmytQs8d8hKk= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tyler-smith/go-bip39 v1.0.1-0.20190808214741-c55f737395bc h1:TnvShh/v2U3Jxq9rHLlmhoLiSECp2QHdsCh/uo1m9U8= github.com/tyler-smith/go-bip39 v1.0.1-0.20190808214741-c55f737395bc/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= @@ -1674,13 +1372,9 @@ github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljT github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/viant/assertly v0.4.8 h1:5x1GzBaRteIwTr5RAGFVG14uNeRFxVNbXPWrK2qAgpc= github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= -github.com/viant/toolbox v0.24.0 h1:6TteTDQ68CjgcCe8wH3D3ZhUQQOJXMTbj/D9rkk2a1k= github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= -github.com/wangjia184/sortedset v0.0.0-20160527075905-f5d03557ba30 h1:kZiWylALnUy4kzoKJemjH8eqwCl3RjW1r1ITCjjW7G8= github.com/wangjia184/sortedset v0.0.0-20160527075905-f5d03557ba30/go.mod h1:YkocrP2K2tcw938x9gCOmT5G5eCD6jsTz0SZuyAqwIE= github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= github.com/warpfork/go-wish v0.0.0-20190328234359-8b3e70f8e830 h1:8kxMKmKzXXL4Ru1nyhvdms/JjWt+3YLpvRb/bAjO/y0= @@ -1694,11 +1388,8 @@ github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9 github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdznlJHPMoKr0XTrX+IlJs1LH3lyx2nfr1dOlZ79k= github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= -github.com/whyrusleeping/go-logging v0.0.1 h1:fwpzlmT0kRC/Fmd0MdmGgJG/CXIZ6gFq46FQZjprUcc= github.com/whyrusleeping/go-logging v0.0.1/go.mod h1:lDPYj54zutzG1XYfHAhcc7oNXEburHQBn+Iqd4yS4vE= -github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= -github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg59EbA= github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= github.com/whyrusleeping/mdns v0.0.0-20190826153040-b9b60ed33aa9 h1:Y1/FEOpaCpD21WxrmfeIYCFPuVPRCY2XZTWzTNHGw30= @@ -1709,7 +1400,6 @@ github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee h1:lYbXeSv github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee/go.mod h1:m2aV4LZI4Aez7dP5PMyVKEHhUyEJ/RjmPEDOpDvudHg= github.com/willf/bitset v1.1.10 h1:NotGKqX0KwQ72NUzqrjZq5ipPNDQex9lo3WpaS8L2sc= github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= -github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJzfthRT6usrui8uGmg= github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c h1:u40Z8hqBAAQyv+vATcGgV0YCnDjqSL7/q/JyPhhJSPk= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= @@ -1722,9 +1412,7 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 h1:ESFSdwYZvkeru3RtdrYueztKhOBCSAAzS4Gf+k0tEow= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1734,7 +1422,6 @@ go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738 h1:VcrIfasaLFkyjk6KNlXQSzO+B0fZcnECiDrKJsfxka0= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.mongodb.org/mongo-driver v1.4.0 h1:C8rFn1VF4GVEM/rG+dSoMmlm2pyQ9cs2/oRtUATejRU= go.mongodb.org/mongo-driver v1.4.0/go.mod h1:llVBH2pkj9HywK0Dtdt6lDikOjFLbceHVu/Rc0iMKLs= @@ -1768,9 +1455,7 @@ go.uber.org/zap v1.14.1/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM= go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= -go4.org v0.0.0-20180809161055-417644f6feb5 h1:+hE86LblG4AyDgwMCLTE6FOlM9+qjHSYS+rKqxUVdsM= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= -golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d h1:E2M5QgjZ/Jg+ObCQAudsXxuTsLj7Nl5RV/lZcQZmKSo= golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1824,7 +1509,6 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= @@ -1882,9 +1566,7 @@ golang.org/x/net v0.0.0-20211101193420-4a448f8816b3/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421 h1:Wo7BWFiOk0QRFMLYMqJGFMd9CgUAcGx7V+qEg/h5IBI= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852 h1:xYq6+9AtI+xP3M4r0N1hCkHrInHDBohhquRgx9Kk6gI= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1962,7 +1644,6 @@ golang.org/x/sys v0.0.0-20210426080607-c94f62235c83/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1975,7 +1656,6 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -2016,21 +1696,16 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.8.2 h1:CCXrcPKiGGotvnN6jfUsKk4rRqm7q09/YbKb5xCEvtM= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0 h1:OE9mWmgKkjJyEmDAAtGMPjXu+YNeGvK9VTSHY6+Qihc= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b h1:Qh4dB5D/WpoUUp3lSod7qgoyEHbDGPUWjIbnqdqqe1k= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y= -google.golang.org/api v0.3.1 h1:oJra/lMfmtm13/rgY/8i3MzjFWYXvQIAKjQ3HqofMk8= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -2075,7 +1750,6 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -2083,25 +1757,16 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/cheggaaa/pb.v1 v1.0.25 h1:Ev7yu1/f6+d+b3pi5vPdRPc6nNtP1umSfcWiEfRqv6I= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= -gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.3 h1:m8OOJ4ccYHnx2f4gQwpno8nAX5OGOh7RLaaz0pj3Ogs= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/resty.v1 v1.12.0 h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/src-d/go-cli.v0 v0.0.0-20181105080154-d492247bbc0d h1:mXa4inJUuWOoA4uEROxtJ3VMELMlVkIxIfcR0HBekAM= gopkg.in/src-d/go-cli.v0 v0.0.0-20181105080154-d492247bbc0d/go.mod h1:z+K8VcOYVYcSwSjGebuDL6176A1XskgbtNl64NSg+n8= -gopkg.in/src-d/go-log.v1 v1.0.1 h1:heWvX7J6qbGWbeFS/aRmiy1eYaT+QMV6wNvHDyMjQV4= gopkg.in/src-d/go-log.v1 v1.0.1/go.mod h1:GN34hKP0g305ysm2/hctJ0Y8nWP3zxXXJ8GFabTyABE= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -2113,7 +1778,6 @@ gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -grpc.go4.org v0.0.0-20170609214715-11d0a25b4919 h1:tmXTu+dfa+d9Evp8NpJdgOy6+rt8/x4yG7qPBrtNfLY= grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -2123,17 +1787,10 @@ honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXe honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -rsc.io/quote/v3 v3.1.0 h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 h1:ucqkfpjg9WzSUubAO62csmucvxl4/JeW3F4I4909XkM= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= -sourcegraph.com/sourcegraph/go-diff v0.5.0 h1:eTiIR0CoWjGzJcnQ3OkhIl/b9GJovq4lSAVRt0ZFEG8= sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= -sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4 h1:JPJh2pk3+X4lXAkZIk2RuE/7/FoK9maXw+TNPJhVS/c= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= From 7edcc352f709821d03ce8c98c489000039696891 Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Thu, 27 Jan 2022 18:05:37 +0100 Subject: [PATCH 08/49] fix config init in the account recovery app --- core/anytype/bootstrap.go | 10 ++++++---- core/anytype/config/config.go | 6 ++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/core/anytype/bootstrap.go b/core/anytype/bootstrap.go index e782f15a2..ff6d903c7 100644 --- a/core/anytype/bootstrap.go +++ b/core/anytype/bootstrap.go @@ -35,6 +35,7 @@ import ( "github.com/anytypeio/go-anytype-middleware/util/builtinobjects" "github.com/anytypeio/go-anytype-middleware/util/builtintemplate" "github.com/anytypeio/go-anytype-middleware/util/linkpreview" + "os" ) func StartAccountRecoverApp(eventSender event.Sender, accountPrivKey walletUtil.Keypair) (a *app.App, err error) { @@ -44,11 +45,12 @@ func StartAccountRecoverApp(eventSender event.Sender, accountPrivKey walletUtil. return nil, err } - cfg := config.DefaultConfig - cfg.DisableFileConfig = true // do not load/save config to file because we don't have a libp2p node and repo in this mode - a.Register(wallet.NewWithRepoPathAndKeys("", accountPrivKey, device)). - Register(&cfg). + Register(config.New( + config.WithStagingCafe(os.Getenv("ANYTYPE_STAGING") == "1"), + config.DisableFileConfig(true), // do not load/save config to file because we don't have a libp2p node and repo in this mode + ), + ). Register(cafe.New()). Register(profilefinder.New()). Register(eventSender) diff --git a/core/anytype/config/config.go b/core/anytype/config/config.go index 69d89410b..c19e72760 100644 --- a/core/anytype/config/config.go +++ b/core/anytype/config/config.go @@ -96,6 +96,12 @@ func WithStagingCafe(isStaging bool) func(*Config) { } } +func DisableFileConfig(disable bool) func(*Config) { + return func(c *Config) { + c.DisableFileConfig = disable + } +} + func New(options ...func(*Config)) *Config { cfg := DefaultConfig for _, opt := range options { From c1253e4172beeb906614ac5cfe7e43f67fdf0584 Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Wed, 2 Feb 2022 17:46:37 +0100 Subject: [PATCH 09/49] callout style and icon fields for the text block --- clientlibrary/service/service.pb.go | 394 ++--- core/block.go | 20 + core/block/editor.go | 6 + core/block/editor/stext/text.go | 17 + core/block/service.go | 1 + core/block/simple/text/text.go | 11 + docs/proto.md | 137 +- pb/commands.pb.go | 2168 ++++++++++++++++++-------- pb/events.pb.go | 963 +++++++++--- pb/protos/commands.proto | 27 +- pb/protos/events.proto | 9 + pb/protos/service/service.proto | 1 + pb/service/service.pb.go | 407 ++--- pkg/lib/pb/model/models.pb.go | 562 ++++--- pkg/lib/pb/model/protos/models.proto | 4 + 15 files changed, 3232 insertions(+), 1495 deletions(-) diff --git a/clientlibrary/service/service.pb.go b/clientlibrary/service/service.pb.go index f77fd2509..8a8f8f63e 100644 --- a/clientlibrary/service/service.pb.go +++ b/clientlibrary/service/service.pb.go @@ -24,198 +24,199 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 3050 bytes of a gzipped FileDescriptorProto + // 3063 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9b, 0x5b, 0x6f, 0xdc, 0xc6, 0x15, 0x80, 0xb3, 0x40, 0x11, 0xa7, 0x13, 0xc7, 0x71, 0xd8, 0x3a, 0xb1, 0xe5, 0x54, 0xbe, 0xc4, 0xf2, 0x45, 0xb6, 0x28, 0x5b, 0x6e, 0x53, 0xf4, 0x1a, 0x48, 0x2b, 0x5b, 0x16, 0x22, 0xdb, 0xaa, - 0x56, 0xb2, 0x8a, 0xf4, 0x4a, 0x91, 0xe3, 0x5d, 0x46, 0x5c, 0x0e, 0x43, 0xce, 0xae, 0xbc, 0x45, - 0x5b, 0xf4, 0x86, 0x02, 0x7d, 0x0b, 0xd0, 0xc7, 0x3e, 0xf5, 0xb5, 0x40, 0xff, 0x47, 0x1f, 0xf3, + 0x56, 0xb2, 0x8a, 0xf4, 0x4a, 0x91, 0xe3, 0x5d, 0x46, 0x5c, 0x0e, 0x43, 0xce, 0xae, 0xbc, 0x05, + 0x52, 0xf4, 0x86, 0x02, 0x7d, 0x0b, 0x50, 0xa0, 0x2f, 0x7d, 0xea, 0x6b, 0x7f, 0x49, 0x1f, 0xf3, 0xd8, 0xc7, 0xc2, 0xfe, 0x23, 0xc5, 0x70, 0x0e, 0x67, 0x38, 0xc3, 0x99, 0x21, 0xd7, 0x4f, 0x82, 0x78, 0xbe, 0x73, 0xe1, 0xf0, 0xcc, 0x99, 0x33, 0xe4, 0x2c, 0xba, 0x94, 0x1d, 0xad, 0x66, 0x39, 0xa1, 0xa4, 0x58, 0x2d, 0x70, 0x3e, 0x8d, 0x43, 0x5c, 0xfd, 0xf5, 0xcb, 0xcb, 0xde, 0xa9, 0x20, 0x9d, 0xd1, 0x59, 0x86, 0x17, 0xce, 0x4b, 0x32, 0x24, 0xe3, 0x71, 0x90, 0x46, 0x05, 0x47, 0x16, - 0xde, 0x97, 0x12, 0x3c, 0xc5, 0x29, 0x85, 0xeb, 0x6b, 0xff, 0xfe, 0x2d, 0x3a, 0xd3, 0x4f, 0x62, - 0x9c, 0xd2, 0x3e, 0x28, 0x78, 0x39, 0x3a, 0xf7, 0xf4, 0xe8, 0x73, 0x1c, 0xd2, 0xf5, 0x28, 0x3a, - 0x8c, 0xe9, 0x88, 0xff, 0xb3, 0x1d, 0x79, 0xb7, 0x7d, 0xf0, 0xe3, 0xef, 0x65, 0xa1, 0xcf, 0x2f, - 0xfb, 0x1a, 0xe4, 0xef, 0xe1, 0x2f, 0x26, 0xb8, 0xa0, 0x0b, 0x77, 0xba, 0xc1, 0x45, 0x46, 0xd2, - 0x02, 0x7b, 0xcf, 0xd1, 0x7b, 0xfc, 0xe2, 0x60, 0x14, 0xe4, 0x78, 0x63, 0xb6, 0x13, 0xa7, 0xc7, - 0xde, 0x0d, 0x93, 0x89, 0x1a, 0x20, 0x7c, 0xdd, 0x6c, 0x07, 0xc1, 0xcf, 0x21, 0x3a, 0x7d, 0x18, - 0x24, 0x09, 0xa6, 0xfd, 0x1c, 0x07, 0x14, 0x7b, 0x57, 0x15, 0x4d, 0x2e, 0xf2, 0xb9, 0x4c, 0x58, - 0xff, 0xc8, 0xc9, 0x80, 0xe1, 0xcf, 0xd0, 0x3b, 0x5c, 0xb2, 0x87, 0x43, 0x32, 0xc5, 0xb9, 0x67, - 0xd4, 0x02, 0xa1, 0x30, 0x7d, 0xcd, 0x0d, 0xe9, 0xb6, 0xfb, 0x24, 0x9d, 0xe2, 0x9c, 0x9a, 0x6d, - 0x83, 0xd0, 0x6d, 0x5b, 0x42, 0x60, 0xfb, 0xd7, 0xe8, 0xdd, 0x43, 0x92, 0x1f, 0x17, 0x59, 0x10, - 0x62, 0x18, 0x93, 0x25, 0x55, 0xb1, 0x92, 0xea, 0xc3, 0x72, 0xbd, 0x0d, 0x33, 0x78, 0x18, 0xe0, - 0x04, 0x87, 0xd4, 0xea, 0x81, 0x8b, 0x5b, 0x3d, 0x08, 0x0c, 0x3c, 0x24, 0xe8, 0x1b, 0x42, 0xb8, - 0x85, 0x69, 0x7f, 0x92, 0xe7, 0x38, 0xa5, 0xde, 0x2d, 0x8b, 0xba, 0x44, 0x84, 0xa7, 0xe5, 0x2e, - 0xa8, 0xe1, 0x7e, 0xb6, 0x30, 0x5d, 0x4f, 0x12, 0xeb, 0xfd, 0x70, 0x71, 0xeb, 0xfd, 0x08, 0x0c, - 0x3c, 0xfc, 0x1e, 0x5d, 0xa8, 0x8d, 0x18, 0xdd, 0x2e, 0x1e, 0xc5, 0xc3, 0x51, 0x12, 0x0f, 0x47, - 0x14, 0x47, 0xde, 0xaa, 0x75, 0x50, 0x54, 0x50, 0x78, 0xbd, 0xdb, 0x5d, 0x01, 0xfc, 0xff, 0x02, - 0x9d, 0x59, 0x0f, 0x43, 0x32, 0x49, 0x45, 0x32, 0xab, 0xb9, 0x04, 0xc2, 0x46, 0x36, 0x2f, 0xb5, - 0x50, 0x32, 0x9d, 0x41, 0x06, 0x09, 0xf7, 0x91, 0x51, 0x4f, 0x4b, 0xb7, 0x6b, 0x6e, 0xa8, 0x61, - 0x1b, 0x52, 0xcd, 0x6c, 0x5b, 0x4b, 0xb4, 0x6b, 0x6e, 0x08, 0x6c, 0xef, 0xa3, 0xb7, 0x2b, 0xdb, - 0x94, 0x64, 0xde, 0x15, 0xb3, 0x12, 0x25, 0x99, 0xb0, 0x7b, 0xd5, 0x85, 0x48, 0xab, 0x0f, 0xe3, - 0x04, 0x3f, 0x7d, 0xfe, 0x3c, 0x21, 0x41, 0xa4, 0x59, 0x65, 0x12, 0x1f, 0x44, 0x16, 0xab, 0x1a, - 0x22, 0x93, 0x94, 0x09, 0x76, 0xe2, 0x82, 0x56, 0x96, 0x97, 0x1a, 0x6a, 0x4c, 0xda, 0xb0, 0x7e, - 0xbd, 0x0d, 0x03, 0x0f, 0x3f, 0x41, 0xe8, 0x19, 0xce, 0x8b, 0x98, 0xa4, 0x5b, 0x98, 0x7a, 0x97, - 0x15, 0x2d, 0x10, 0xb0, 0xc4, 0x16, 0x76, 0xaf, 0x38, 0x08, 0x30, 0xf9, 0x08, 0x9d, 0xda, 0x21, - 0xc3, 0x01, 0x4e, 0x23, 0xef, 0x5b, 0x0a, 0xbd, 0x43, 0x86, 0x3e, 0xbb, 0x2c, 0x8c, 0x2d, 0xda, - 0xc4, 0x60, 0xe9, 0x09, 0xfa, 0x7a, 0x9f, 0xa4, 0xcf, 0xe3, 0x21, 0x8b, 0xed, 0x92, 0x02, 0xf3, - 0xeb, 0x4a, 0x68, 0x97, 0xed, 0x00, 0xd8, 0xdb, 0x46, 0x6f, 0x0d, 0x46, 0x13, 0x1a, 0x91, 0x93, - 0x54, 0x0b, 0xad, 0xba, 0x6c, 0x09, 0xad, 0x26, 0x96, 0x2b, 0xdd, 0x83, 0x17, 0x14, 0xe7, 0x69, - 0x90, 0x6c, 0xe6, 0x24, 0x63, 0x03, 0x5c, 0x68, 0x2b, 0x5d, 0x5d, 0x5e, 0x3e, 0x81, 0xc2, 0xb2, - 0xd2, 0x19, 0x41, 0x59, 0x14, 0xeb, 0xe2, 0x3e, 0x49, 0x69, 0xb3, 0x28, 0x2a, 0x06, 0x00, 0xb1, - 0x14, 0x45, 0x0b, 0x0a, 0xde, 0xf6, 0xd0, 0xdb, 0x6c, 0xa1, 0xdd, 0xcd, 0xf1, 0x34, 0xc6, 0x27, - 0x5a, 0x3a, 0xd4, 0x24, 0x96, 0x74, 0x50, 0x09, 0xb0, 0xf9, 0x14, 0xa1, 0x83, 0x8c, 0x25, 0x1d, - 0xbb, 0x33, 0xed, 0x29, 0x4a, 0x81, 0xe5, 0x29, 0x2a, 0x00, 0x18, 0x3c, 0x40, 0xa7, 0x37, 0xc9, - 0x49, 0x2a, 0x4c, 0xaa, 0x31, 0xd4, 0x45, 0x96, 0xb9, 0xa6, 0x21, 0x72, 0x06, 0x6f, 0x24, 0x24, - 0x3c, 0xe6, 0x2e, 0x35, 0xab, 0xa5, 0x04, 0xa2, 0xb1, 0x58, 0xd5, 0x10, 0xd9, 0xa9, 0x94, 0x82, - 0x3d, 0x9c, 0x25, 0x41, 0xa8, 0x77, 0x2a, 0x5c, 0x07, 0x64, 0x96, 0x4e, 0x45, 0x67, 0xc0, 0x70, - 0x8c, 0x3c, 0x08, 0x37, 0x0a, 0x28, 0xae, 0xf2, 0xe2, 0xa6, 0x31, 0xa4, 0x1a, 0x21, 0x9c, 0xdc, - 0xea, 0x40, 0xca, 0x69, 0x58, 0xca, 0x9f, 0x66, 0x38, 0xd5, 0x1e, 0x20, 0xd7, 0x63, 0x02, 0xcb, - 0x03, 0x54, 0x00, 0xcd, 0xde, 0x60, 0x44, 0x4e, 0x8c, 0xf6, 0x98, 0xc0, 0x69, 0x0f, 0x00, 0xb0, - 0x47, 0xd0, 0x37, 0xcb, 0xcb, 0x5b, 0x98, 0xee, 0x4e, 0x8e, 0x92, 0x38, 0x3c, 0xc4, 0x47, 0x07, - 0x7b, 0x3b, 0xde, 0xb2, 0x41, 0x53, 0x63, 0x84, 0x97, 0xdb, 0x9d, 0x58, 0xcd, 0x21, 0xbb, 0xad, - 0x8d, 0x1c, 0x07, 0x51, 0x98, 0x4f, 0xc6, 0x47, 0x85, 0xd1, 0xa1, 0xc6, 0x38, 0x1d, 0x36, 0x59, - 0x59, 0x05, 0xf8, 0x88, 0x61, 0x5a, 0xf7, 0x67, 0x7a, 0x86, 0x2a, 0x62, 0xa9, 0x02, 0x16, 0x54, - 0x9b, 0x09, 0xb0, 0xae, 0x9b, 0x66, 0x82, 0xb6, 0xaa, 0x5f, 0x75, 0x21, 0x72, 0x2d, 0xab, 0x59, - 0xdd, 0x0d, 0x86, 0x7a, 0x8b, 0x5a, 0x57, 0x63, 0x62, 0xcb, 0x5a, 0x66, 0xc0, 0x64, 0xc3, 0x53, - 0xf3, 0x30, 0xc0, 0x54, 0x6b, 0x78, 0xea, 0x9a, 0x83, 0xda, 0xc2, 0xb1, 0xd4, 0x42, 0xe9, 0x05, - 0x22, 0x4d, 0xd8, 0xb6, 0xc6, 0x58, 0x20, 0x4a, 0x91, 0xbb, 0x40, 0x54, 0x88, 0x5c, 0x80, 0x79, - 0xd0, 0x09, 0x29, 0xb0, 0x67, 0x4a, 0xf6, 0x52, 0x62, 0xa9, 0xb8, 0x2a, 0x21, 0xbb, 0xa7, 0xf2, - 0x7a, 0x55, 0xe7, 0x3c, 0x53, 0x41, 0xa9, 0x84, 0x96, 0xee, 0xa9, 0x01, 0x81, 0xed, 0x9f, 0x83, - 0xed, 0x2d, 0x4c, 0x1f, 0x07, 0xf9, 0x71, 0x61, 0x1c, 0x62, 0xb6, 0xe8, 0x96, 0x52, 0xe7, 0x10, - 0xd7, 0x29, 0xad, 0x32, 0x1c, 0xa4, 0x11, 0x31, 0x56, 0x06, 0x26, 0x70, 0x56, 0x06, 0x00, 0x34, - 0x7b, 0x7b, 0xd8, 0x62, 0x8f, 0x09, 0x9c, 0xf6, 0x00, 0x00, 0x7b, 0xbf, 0x82, 0x0c, 0x1b, 0x60, - 0xfa, 0x30, 0xc6, 0x49, 0x54, 0x18, 0x53, 0x98, 0x65, 0x0d, 0x17, 0x3b, 0x53, 0x58, 0xc1, 0xc0, - 0xc1, 0x17, 0x50, 0x59, 0x06, 0x6c, 0x07, 0x5a, 0xd0, 0x3c, 0x0e, 0x69, 0x4c, 0xd2, 0xc2, 0xbb, - 0x6d, 0xd1, 0xaf, 0x43, 0x96, 0x3d, 0xbb, 0x15, 0xd6, 0xb2, 0x85, 0xf5, 0x87, 0x8f, 0xc9, 0x14, - 0x9b, 0xb2, 0xa5, 0xec, 0x1d, 0x99, 0xd0, 0x95, 0x2d, 0x75, 0x08, 0x6c, 0x4f, 0xd0, 0xfb, 0x8a, - 0xed, 0x7d, 0xf2, 0x04, 0x9f, 0x94, 0x53, 0xff, 0x8e, 0x43, 0x5f, 0x50, 0xc2, 0xdb, 0x4a, 0x47, - 0x1a, 0xdc, 0x7e, 0xd9, 0x43, 0x97, 0x04, 0x04, 0x7b, 0xe5, 0xfe, 0x28, 0x4e, 0xa2, 0x1c, 0xa7, - 0xfb, 0x84, 0xb1, 0x85, 0xf7, 0x1d, 0x8b, 0x49, 0x33, 0x2e, 0x22, 0xf9, 0x78, 0x5e, 0x35, 0x08, - 0xe9, 0x18, 0x96, 0x6b, 0x06, 0xcb, 0xec, 0xb9, 0x65, 0xb1, 0x66, 0xc8, 0xa0, 0xe5, 0x2e, 0x28, - 0x38, 0x9b, 0xa2, 0x73, 0x75, 0x67, 0xfb, 0xf8, 0x05, 0x1d, 0xd0, 0x59, 0x82, 0xbd, 0x15, 0x87, - 0x11, 0x46, 0xf9, 0x25, 0x26, 0x7c, 0xfa, 0x5d, 0x71, 0xad, 0x27, 0x61, 0xd0, 0xe6, 0x24, 0x4b, - 0xe2, 0x90, 0xad, 0x1f, 0x37, 0x2d, 0x56, 0x04, 0xe1, 0xea, 0x49, 0x1a, 0x24, 0xb8, 0xfa, 0x6b, - 0x0f, 0x5d, 0xac, 0xdf, 0xe3, 0x46, 0x10, 0x1e, 0x0f, 0x73, 0x32, 0x49, 0xa3, 0x3e, 0x49, 0x48, - 0xee, 0xad, 0x39, 0x42, 0xd7, 0x58, 0xe1, 0xfe, 0xfe, 0x5c, 0x3a, 0x10, 0xc8, 0x08, 0xbd, 0x57, - 0x8f, 0x63, 0x3d, 0x89, 0x87, 0xa9, 0xf5, 0x96, 0x99, 0xa5, 0x92, 0x68, 0xbd, 0xe5, 0x3a, 0x09, - 0x9e, 0x0a, 0xa8, 0x0d, 0xe0, 0x69, 0x33, 0x9e, 0xf2, 0x87, 0x7a, 0xc7, 0x61, 0x62, 0x33, 0x9e, - 0x6a, 0xcf, 0x74, 0xa5, 0x23, 0x6d, 0x4e, 0x25, 0xd6, 0x32, 0xb7, 0xa7, 0x52, 0xd9, 0x58, 0x77, - 0x4f, 0x25, 0x05, 0x97, 0xfb, 0x2b, 0x01, 0xed, 0x4f, 0xf2, 0x74, 0x3b, 0xa5, 0x44, 0xdb, 0x5f, - 0x49, 0x23, 0x15, 0x60, 0xd9, 0x5f, 0x19, 0x41, 0xf0, 0xf3, 0x39, 0xf8, 0x19, 0x60, 0xba, 0x13, - 0x50, 0xfc, 0x82, 0xa5, 0xb5, 0xad, 0xaf, 0xf2, 0x4b, 0x82, 0x67, 0x7e, 0x4b, 0x5f, 0xa5, 0xa2, - 0xe0, 0x6b, 0x88, 0xce, 0x56, 0xbe, 0x98, 0xa0, 0x74, 0x75, 0xd3, 0xa2, 0x5f, 0x6a, 0x2a, 0x9e, - 0x6e, 0x75, 0x20, 0x9b, 0x37, 0xc5, 0x04, 0x7c, 0x46, 0x38, 0xf5, 0xd5, 0x89, 0xb0, 0xdc, 0x05, - 0xb5, 0xd7, 0x1a, 0xee, 0xaf, 0xb5, 0xd6, 0xa8, 0x3e, 0xfd, 0xae, 0xb8, 0x79, 0x36, 0x30, 0x84, - 0x35, 0x13, 0xce, 0xd9, 0x50, 0xda, 0x61, 0x54, 0xa7, 0xd9, 0x50, 0xa7, 0xcd, 0x03, 0xcb, 0x67, - 0x82, 0x73, 0x60, 0xd5, 0x59, 0xb0, 0xdc, 0x05, 0x05, 0x5f, 0x99, 0xec, 0xf9, 0xcb, 0x41, 0x1d, - 0xe1, 0xf0, 0x18, 0x47, 0xd6, 0x4e, 0x80, 0x8f, 0x11, 0x87, 0x5a, 0x3b, 0x01, 0x0d, 0xd6, 0x5a, - 0xd1, 0x41, 0x96, 0xc4, 0xd4, 0xd8, 0x8a, 0x96, 0x12, 0x67, 0x2b, 0x5a, 0x11, 0x9a, 0xc9, 0xc7, - 0x38, 0x1f, 0x9a, 0xbb, 0xdb, 0x52, 0xe2, 0x34, 0x59, 0x11, 0x5a, 0x4f, 0xd7, 0x27, 0xd9, 0xcc, - 0xd8, 0xd3, 0x31, 0x81, 0xb3, 0xa7, 0x03, 0x40, 0x0b, 0x71, 0x37, 0x28, 0xa8, 0x39, 0xc4, 0x52, - 0xe2, 0x0c, 0xb1, 0x22, 0xc0, 0xe4, 0xa7, 0xe8, 0x2d, 0x1e, 0xe2, 0x84, 0x7a, 0x8b, 0xa6, 0x00, - 0x26, 0x72, 0x10, 0x2f, 0x59, 0xe5, 0xda, 0xb6, 0xe3, 0xc1, 0x8b, 0x8c, 0xe4, 0xd4, 0xb8, 0xed, - 0xe0, 0x22, 0xe7, 0xb6, 0x43, 0x20, 0xda, 0x8e, 0x72, 0x7b, 0xcc, 0xae, 0xb3, 0x2c, 0x2f, 0xdf, - 0x8a, 0x99, 0x72, 0x59, 0x45, 0x9c, 0xb9, 0xdc, 0x40, 0x9b, 0x95, 0x8f, 0x15, 0xfb, 0x27, 0xc1, - 0x18, 0x5b, 0x2b, 0x5f, 0xb9, 0x1a, 0x30, 0xa2, 0xb5, 0xf2, 0xd5, 0xc9, 0xe6, 0x04, 0xdd, 0x1e, - 0x07, 0x43, 0xee, 0xc9, 0xa6, 0x5f, 0x12, 0xaa, 0xab, 0xe5, 0x2e, 0x28, 0xf8, 0x1a, 0x43, 0xb7, - 0x53, 0xf9, 0x3a, 0x8c, 0x23, 0x3a, 0xf2, 0xdc, 0x16, 0x4a, 0xc6, 0xf9, 0x0e, 0xa0, 0xc9, 0x36, - 0x6f, 0xed, 0x59, 0x1c, 0x61, 0xe2, 0xbc, 0xb5, 0x92, 0xe8, 0x76, 0x6b, 0x0a, 0xda, 0xbc, 0xb5, - 0x52, 0xec, 0xbe, 0x35, 0x6e, 0xa1, 0xdb, 0xad, 0xa9, 0x2c, 0xb8, 0xfb, 0x53, 0x0f, 0x5d, 0x10, - 0xab, 0x70, 0x9c, 0x1e, 0xef, 0x07, 0xf9, 0x10, 0x53, 0x9e, 0x9f, 0x91, 0x77, 0xcf, 0xb6, 0xc4, - 0xb2, 0x7d, 0xb4, 0x82, 0x0a, 0xef, 0x6b, 0xf3, 0xa8, 0x68, 0x1d, 0xfa, 0x06, 0x21, 0xc7, 0xe3, - 0x20, 0x3f, 0x7e, 0x88, 0x69, 0x38, 0x32, 0x0e, 0x70, 0x45, 0xf8, 0x25, 0xe2, 0x1c, 0xe0, 0x06, - 0xaa, 0xb7, 0xaf, 0x15, 0xc0, 0xdf, 0x37, 0xac, 0xa7, 0x11, 0x77, 0xbb, 0xe6, 0xb2, 0xa5, 0xb2, - 0xae, 0xf6, 0xd5, 0xa1, 0x03, 0x81, 0xfc, 0x0e, 0x9d, 0x2f, 0x49, 0x36, 0x97, 0x04, 0x03, 0xaf, - 0x40, 0x57, 0x0d, 0x06, 0xcb, 0x39, 0xa7, 0x81, 0x96, 0x6f, 0x54, 0x4e, 0x05, 0x70, 0x9f, 0x42, - 0x19, 0xda, 0xc3, 0x49, 0xc0, 0xf6, 0xa5, 0x03, 0x4c, 0x3f, 0xc5, 0x33, 0x63, 0xa6, 0x55, 0x88, - 0xcf, 0x19, 0x67, 0xa6, 0x35, 0x59, 0xf0, 0x87, 0xa1, 0x10, 0x55, 0xc0, 0x7a, 0x14, 0x99, 0xba, - 0x4a, 0x69, 0x60, 0x3d, 0x8a, 0x5c, 0x5d, 0xa5, 0x0e, 0x82, 0x9b, 0xdf, 0xa0, 0x0f, 0xf8, 0x1b, - 0x98, 0x80, 0x06, 0xd3, 0x18, 0x9f, 0x3c, 0x8b, 0xf1, 0x09, 0xbc, 0x4d, 0xf3, 0x4d, 0xaf, 0x59, - 0x00, 0xf3, 0x25, 0x27, 0x9c, 0xae, 0x76, 0xe6, 0x1d, 0xbe, 0x37, 0x71, 0x82, 0xbb, 0xf8, 0xe6, - 0x5c, 0x77, 0xdf, 0x82, 0x77, 0xf8, 0xe6, 0x2f, 0x95, 0xdb, 0x7d, 0x73, 0xae, 0xbb, 0x6f, 0xc1, - 0x83, 0xef, 0x3f, 0xf7, 0xd0, 0x42, 0xc3, 0x39, 0xdb, 0x91, 0x85, 0x34, 0x9e, 0x62, 0x63, 0x15, - 0x51, 0xec, 0x09, 0xd4, 0x59, 0x45, 0xac, 0x2a, 0x10, 0xc5, 0xdf, 0x7a, 0xe8, 0x43, 0x53, 0x14, - 0xbb, 0xa4, 0x88, 0x59, 0x9e, 0x78, 0xf7, 0x3b, 0x18, 0xad, 0x60, 0x11, 0xc9, 0xb7, 0xe7, 0x53, - 0x82, 0x58, 0x4e, 0xe0, 0xed, 0x4b, 0x45, 0x0e, 0x30, 0x1d, 0x90, 0x49, 0x1e, 0x1a, 0x37, 0x6f, - 0xd2, 0x9e, 0xc0, 0x5c, 0xbd, 0xb9, 0x19, 0xd7, 0x8a, 0x4a, 0xc5, 0xd4, 0x67, 0x9b, 0xf3, 0xb9, - 0xd6, 0x40, 0x67, 0x51, 0xb1, 0x28, 0xe8, 0xc5, 0x55, 0xf7, 0x0f, 0xa9, 0xb8, 0xd6, 0xc5, 0xa2, - 0x96, 0x8e, 0xf7, 0xe7, 0xd2, 0x69, 0x0b, 0x04, 0xe6, 0x63, 0xa7, 0x40, 0xb4, 0x39, 0x79, 0x7f, - 0x2e, 0x1d, 0x08, 0xe4, 0x1f, 0x3d, 0x74, 0xd5, 0x18, 0x08, 0xdb, 0xec, 0xac, 0x4f, 0x83, 0x38, - 0x09, 0x8e, 0x12, 0xec, 0x7d, 0xaf, 0x8b, 0x6d, 0x45, 0x45, 0x84, 0xf5, 0xfd, 0xd7, 0x51, 0x85, - 0xe8, 0xfe, 0x50, 0x2d, 0xff, 0x32, 0xba, 0x90, 0xe4, 0x11, 0x14, 0xcc, 0x96, 0xe7, 0x2f, 0x49, - 0x11, 0xcb, 0xbd, 0x39, 0x34, 0xdc, 0x21, 0x40, 0xc2, 0x74, 0x08, 0x41, 0x4b, 0x97, 0x7b, 0x73, - 0x68, 0xb8, 0x43, 0x80, 0x54, 0xe9, 0x10, 0x82, 0x96, 0x28, 0xf7, 0xe6, 0xd0, 0x80, 0x10, 0xfe, - 0xd9, 0x43, 0xd7, 0x0c, 0x21, 0x54, 0x8f, 0xef, 0x69, 0x56, 0x4d, 0xe2, 0x1f, 0xb4, 0xdb, 0x6e, - 0x28, 0x89, 0xc0, 0x7e, 0xf8, 0x7a, 0xca, 0x10, 0xe3, 0xbf, 0x7a, 0xe8, 0x46, 0x6b, 0x8c, 0xf0, - 0xdc, 0x7e, 0x3c, 0xaf, 0x27, 0xed, 0x29, 0x7e, 0xf2, 0xda, 0xfa, 0xf3, 0x04, 0x0b, 0x4f, 0x78, - 0xee, 0x60, 0xb5, 0xe7, 0xfd, 0xc9, 0x6b, 0xeb, 0x6b, 0x0d, 0x30, 0x3f, 0x78, 0xb7, 0x3f, 0xcb, - 0xca, 0x4f, 0x68, 0xa6, 0x06, 0x58, 0x12, 0x7e, 0xfd, 0x3b, 0xda, 0x72, 0x17, 0x14, 0x9c, 0xe5, - 0xe8, 0xdc, 0x93, 0x60, 0x1a, 0x0f, 0x45, 0x5d, 0xe0, 0xa0, 0xfe, 0xa5, 0x43, 0x32, 0x7e, 0x0d, - 0xb2, 0xbc, 0xdf, 0xb0, 0xc2, 0xe0, 0xf3, 0xef, 0x3d, 0x74, 0x59, 0x32, 0x5b, 0x18, 0x88, 0xed, - 0xf4, 0x39, 0x39, 0x8c, 0xe9, 0x88, 0x6d, 0x0e, 0x0a, 0xef, 0x63, 0x9b, 0x49, 0x33, 0x2f, 0x42, - 0xf9, 0xee, 0xdc, 0x7a, 0x72, 0x7f, 0xcf, 0xe5, 0x5b, 0x79, 0x90, 0x8d, 0xb4, 0xfd, 0x3d, 0x1c, - 0x82, 0x2c, 0x45, 0x96, 0xfd, 0xbd, 0x86, 0xc8, 0x73, 0x07, 0x70, 0x12, 0x13, 0x07, 0x79, 0x38, - 0xf2, 0x8c, 0x3a, 0x5c, 0x66, 0x39, 0x77, 0xa0, 0x33, 0xf2, 0xc1, 0xd5, 0x0d, 0x0f, 0x26, 0x47, - 0x45, 0x98, 0xc7, 0x47, 0xd8, 0x7c, 0xac, 0x54, 0x83, 0xdc, 0xc7, 0x4a, 0x9b, 0xb0, 0xfc, 0xae, - 0x50, 0x9d, 0x35, 0x2d, 0xa4, 0x43, 0xe3, 0x71, 0xd1, 0x3a, 0x61, 0x79, 0x81, 0x60, 0x26, 0xc1, - 0xd5, 0x0b, 0xf4, 0x41, 0xfd, 0xf6, 0x0e, 0xd2, 0x42, 0xf8, 0x5b, 0xb1, 0xc7, 0x5c, 0xc3, 0x2c, - 0x4d, 0x93, 0x03, 0xd7, 0xcf, 0xce, 0xda, 0xf7, 0x26, 0x60, 0xc4, 0xd4, 0x25, 0xdd, 0x6c, 0x07, - 0xe5, 0xe1, 0x05, 0xd5, 0x0f, 0x14, 0xcb, 0x65, 0x97, 0x05, 0xad, 0x30, 0xde, 0xee, 0xc4, 0xda, - 0x1c, 0x42, 0xc1, 0x73, 0x3a, 0xd4, 0x8a, 0xdb, 0xed, 0x4e, 0xac, 0xfe, 0x0c, 0x9b, 0x0b, 0xd7, - 0x8a, 0xcb, 0x4e, 0x73, 0xa9, 0xf2, 0xbb, 0xe2, 0xe0, 0xf9, 0x8f, 0x3d, 0xb4, 0x60, 0x72, 0x6d, - 0xec, 0x23, 0x8c, 0xe6, 0x9c, 0x7d, 0x84, 0x5b, 0xa3, 0x25, 0x06, 0x63, 0x23, 0x61, 0xb4, 0xe8, - 0x6c, 0x24, 0xdc, 0x1a, 0x10, 0xc3, 0x5f, 0x7a, 0xe8, 0xa2, 0x1a, 0x83, 0xda, 0x68, 0x3a, 0x4d, - 0x9a, 0x1b, 0xcc, 0xb5, 0x79, 0x54, 0xe4, 0x91, 0x93, 0x6a, 0x32, 0xd3, 0x9d, 0x60, 0x46, 0x26, - 0xfa, 0x99, 0x65, 0x31, 0x2b, 0x41, 0x6c, 0xf9, 0x5e, 0x6f, 0xc0, 0x6a, 0x4d, 0x1b, 0x97, 0x3e, - 0xc4, 0x01, 0x9d, 0xe4, 0x38, 0xaa, 0xcf, 0x5e, 0xe3, 0x58, 0xeb, 0xa0, 0xf2, 0x8a, 0xe1, 0xde, - 0x1c, 0x1a, 0xb5, 0x1d, 0xa7, 0x39, 0x84, 0x3d, 0x3c, 0x26, 0x53, 0xac, 0xed, 0x38, 0x6d, 0x36, - 0x39, 0x6c, 0xd9, 0x71, 0xb6, 0x2a, 0xc9, 0xb7, 0xca, 0x62, 0xc0, 0xb7, 0x8b, 0x87, 0xc1, 0x94, - 0xe4, 0x31, 0xd5, 0xdf, 0x52, 0xca, 0xd1, 0x94, 0x88, 0xa5, 0x87, 0xb0, 0xa0, 0x46, 0x6f, 0xeb, - 0x79, 0x38, 0x8a, 0xa7, 0x38, 0x72, 0x78, 0xab, 0x90, 0x0e, 0xde, 0x6a, 0xa8, 0xbe, 0x4e, 0xef, - 0x13, 0xd6, 0x17, 0x19, 0xd7, 0xe9, 0x52, 0xe4, 0x5e, 0xa7, 0x2b, 0x04, 0xac, 0x86, 0xe8, 0x2c, - 0x17, 0x94, 0xdf, 0xcc, 0xf9, 0x14, 0x35, 0x25, 0x1f, 0xff, 0x0e, 0xae, 0x4e, 0xcc, 0x1b, 0xad, - 0x9c, 0x7c, 0x2d, 0x23, 0xa5, 0xea, 0x60, 0xf9, 0x36, 0x1b, 0xe5, 0x7b, 0xe8, 0xe6, 0x88, 0xad, - 0x76, 0xe6, 0xad, 0xbe, 0x45, 0x5a, 0xb4, 0xf8, 0x6e, 0xe4, 0xc6, 0x6a, 0x67, 0x1e, 0x7c, 0x1f, - 0xc1, 0x91, 0xb3, 0x01, 0xa6, 0x9b, 0x98, 0x06, 0x71, 0x52, 0x78, 0xb6, 0x83, 0x38, 0x20, 0xb7, - 0x8c, 0xad, 0x89, 0x93, 0x9f, 0x8f, 0x76, 0x83, 0x61, 0xf5, 0xa3, 0x0b, 0xf5, 0xf3, 0x51, 0x79, - 0x2a, 0x45, 0xdb, 0x9c, 0x5e, 0x71, 0x10, 0xf2, 0x0b, 0xd7, 0x40, 0xfc, 0xb4, 0x45, 0xfd, 0x3e, - 0x34, 0x68, 0xfe, 0xae, 0xe5, 0xb2, 0x1d, 0x90, 0x0b, 0xf0, 0x63, 0x4c, 0xf3, 0x38, 0x2c, 0x06, - 0x98, 0xee, 0x06, 0x79, 0x30, 0xc6, 0x14, 0xe7, 0xfa, 0x71, 0x45, 0x40, 0x7c, 0x85, 0xb1, 0x2c, - 0xc0, 0x36, 0x56, 0x4f, 0x6a, 0xd6, 0xf7, 0xc3, 0x7d, 0x98, 0x92, 0xba, 0xdc, 0x16, 0x68, 0xb7, - 0x73, 0xa3, 0x95, 0x93, 0xa7, 0xfd, 0xa4, 0x94, 0xa5, 0x81, 0x76, 0x14, 0xad, 0xa6, 0x5a, 0x26, - 0x89, 0xf9, 0x28, 0x5a, 0x93, 0x92, 0x2f, 0xcf, 0xa4, 0xac, 0xbe, 0xce, 0x18, 0x7b, 0x88, 0xd2, - 0x80, 0x28, 0x8b, 0x8a, 0x3f, 0xbf, 0x2b, 0x0e, 0x8e, 0x69, 0xd5, 0x60, 0xd7, 0x1d, 0xb3, 0xd5, - 0xe4, 0x4e, 0xab, 0xa1, 0xfa, 0x4a, 0xb2, 0xd2, 0x91, 0x96, 0xaf, 0xec, 0x9a, 0x5e, 0xa1, 0x6d, - 0x59, 0x6d, 0x35, 0xa5, 0x75, 0x2d, 0x77, 0xbb, 0x2b, 0xb8, 0xdc, 0xc3, 0xfa, 0xd5, 0xee, 0x5e, - 0x5b, 0xbb, 0xee, 0x76, 0x57, 0x00, 0xf7, 0x3f, 0x42, 0x5f, 0xdb, 0x8d, 0xd3, 0xa1, 0x77, 0x41, - 0x9d, 0x9c, 0x71, 0x3a, 0x14, 0x46, 0x17, 0x4c, 0x22, 0x79, 0x84, 0x6e, 0x37, 0x27, 0x21, 0x2e, - 0x8a, 0x7e, 0x90, 0x86, 0x38, 0xd1, 0x8e, 0xd0, 0x81, 0xcc, 0xe7, 0x42, 0xcb, 0x11, 0xba, 0x06, - 0x24, 0x97, 0x9d, 0x47, 0x71, 0x41, 0x49, 0x3e, 0x2b, 0x8f, 0x4b, 0xab, 0xe5, 0x03, 0x24, 0xea, - 0x81, 0xe9, 0xab, 0x2e, 0x44, 0x76, 0x46, 0x20, 0x80, 0x9f, 0x70, 0xe8, 0x27, 0x19, 0x2b, 0xb5, - 0x4a, 0x6c, 0xe9, 0x8c, 0x0c, 0x98, 0xdc, 0xce, 0x54, 0x71, 0x63, 0x0a, 0x62, 0x6d, 0x3b, 0x23, - 0x42, 0x13, 0x80, 0x65, 0x3b, 0x63, 0x04, 0xc1, 0x4f, 0x1f, 0xbd, 0x09, 0x5f, 0xc6, 0x2f, 0x6a, - 0x3f, 0x74, 0x50, 0xbe, 0x89, 0x7f, 0x68, 0x16, 0x82, 0x91, 0x5f, 0xa2, 0x77, 0xf9, 0x25, 0xf1, - 0xbb, 0x2a, 0xad, 0x98, 0x68, 0x52, 0x4b, 0x31, 0x69, 0x52, 0xba, 0xfd, 0x7d, 0x3c, 0xce, 0x92, - 0x80, 0xe2, 0xc2, 0x68, 0x5f, 0x48, 0x9d, 0xf6, 0xeb, 0x14, 0xd8, 0x0f, 0xd0, 0x59, 0x2e, 0xdb, - 0x21, 0x61, 0x90, 0xb0, 0xc1, 0xd2, 0x0f, 0x57, 0xeb, 0x62, 0xcb, 0xf3, 0x34, 0x60, 0xf2, 0x57, - 0x17, 0x8f, 0x83, 0x63, 0x5c, 0x39, 0xd7, 0x12, 0xb1, 0x2e, 0xb2, 0x24, 0xa2, 0x86, 0x80, 0xd9, - 0x19, 0x3a, 0x5f, 0x17, 0x6c, 0xcc, 0xe4, 0x74, 0xd5, 0x0a, 0xad, 0x0d, 0xb3, 0x14, 0x5a, 0x07, - 0x0e, 0xae, 0x7f, 0x8a, 0xde, 0xe9, 0x27, 0x24, 0x95, 0xb7, 0xa4, 0xc6, 0xab, 0xc8, 0x2c, 0xef, - 0x48, 0x74, 0x46, 0x3e, 0x6e, 0xee, 0x50, 0x1e, 0x82, 0x34, 0xad, 0x4d, 0xcd, 0x03, 0x90, 0x4b, - 0x2d, 0x14, 0xd8, 0xff, 0x19, 0x3a, 0x73, 0x90, 0x16, 0x59, 0x12, 0x14, 0x23, 0x78, 0xbd, 0xa3, - 0x86, 0xa5, 0x0a, 0x2d, 0x05, 0xa7, 0x01, 0xc9, 0x5c, 0xaa, 0x44, 0xe2, 0x00, 0xf9, 0x92, 0x51, - 0xb3, 0x71, 0x84, 0xfc, 0x7a, 0x1b, 0x26, 0x47, 0x7e, 0x3d, 0xcb, 0x92, 0x99, 0x65, 0xe4, 0x15, - 0x99, 0x65, 0xe4, 0x75, 0x46, 0xb6, 0x4e, 0x9b, 0xf8, 0x68, 0x32, 0x1c, 0xcc, 0xd2, 0x50, 0x6b, - 0x9d, 0xca, 0xeb, 0x3e, 0x13, 0x58, 0x5a, 0x27, 0x05, 0x90, 0xd5, 0xb7, 0xbc, 0xbc, 0x3f, 0xca, - 0x71, 0xe3, 0x47, 0x41, 0x5c, 0x81, 0x8b, 0x6c, 0x3f, 0x35, 0x52, 0x11, 0x2d, 0xca, 0xfd, 0x1c, - 0x63, 0x63, 0x94, 0x4c, 0xe0, 0x8c, 0x12, 0x00, 0xb0, 0x77, 0x17, 0x9d, 0x66, 0x3d, 0x04, 0x4e, - 0x1f, 0x94, 0xbf, 0x09, 0xf7, 0xce, 0x08, 0x8d, 0x07, 0xe3, 0x8c, 0xce, 0x16, 0x6a, 0xff, 0x33, - 0xe0, 0x6e, 0x6f, 0xe3, 0xca, 0x7f, 0x5e, 0x2e, 0xf6, 0xbe, 0x7a, 0xb9, 0xd8, 0xfb, 0xdf, 0xcb, - 0xc5, 0xde, 0x97, 0xaf, 0x16, 0xdf, 0xf8, 0xea, 0xd5, 0xe2, 0x1b, 0xff, 0x7d, 0xb5, 0xf8, 0xc6, - 0x67, 0xa7, 0xe0, 0x37, 0xe9, 0x47, 0x6f, 0x96, 0xbf, 0x2c, 0xbf, 0xff, 0xff, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x03, 0x51, 0xc6, 0x95, 0xb7, 0x3e, 0x00, 0x00, + 0xde, 0x97, 0x12, 0x3c, 0xc5, 0x29, 0x85, 0xeb, 0x6b, 0xff, 0xf8, 0x12, 0x9d, 0xe9, 0x27, 0x31, + 0x4e, 0x69, 0x1f, 0x14, 0xbc, 0x1c, 0x9d, 0x7b, 0x7a, 0xf4, 0x39, 0x0e, 0xe9, 0x7a, 0x14, 0x1d, + 0xc6, 0x74, 0xc4, 0xff, 0xd9, 0x8e, 0xbc, 0xdb, 0x3e, 0xf8, 0xf1, 0xf7, 0xb2, 0xd0, 0xe7, 0x97, + 0x7d, 0x0d, 0xf2, 0xf7, 0xf0, 0x17, 0x13, 0x5c, 0xd0, 0x85, 0x3b, 0xdd, 0xe0, 0x22, 0x23, 0x69, + 0x81, 0xbd, 0xe7, 0xe8, 0x3d, 0x7e, 0x71, 0x30, 0x0a, 0x72, 0xbc, 0x31, 0xdb, 0x89, 0xd3, 0x63, + 0xef, 0x86, 0xc9, 0x44, 0x0d, 0x10, 0xbe, 0x6e, 0xb6, 0x83, 0xe0, 0xe7, 0x10, 0x9d, 0x3e, 0x0c, + 0x92, 0x04, 0xd3, 0x7e, 0x8e, 0x03, 0x8a, 0xbd, 0xab, 0x8a, 0x26, 0x17, 0xf9, 0x5c, 0x26, 0xac, + 0x7f, 0xe4, 0x64, 0xc0, 0xf0, 0x67, 0xe8, 0x1d, 0x2e, 0xd9, 0xc3, 0x21, 0x99, 0xe2, 0xdc, 0x33, + 0x6a, 0x81, 0x50, 0x98, 0xbe, 0xe6, 0x86, 0x74, 0xdb, 0x7d, 0x92, 0x4e, 0x71, 0x4e, 0xcd, 0xb6, + 0x41, 0xe8, 0xb6, 0x2d, 0x21, 0xb0, 0xfd, 0x5b, 0xf4, 0xee, 0x21, 0xc9, 0x8f, 0x8b, 0x2c, 0x08, + 0x31, 0x8c, 0xc9, 0x92, 0xaa, 0x58, 0x49, 0xf5, 0x61, 0xb9, 0xde, 0x86, 0x19, 0x3c, 0x0c, 0x70, + 0x82, 0x43, 0x6a, 0xf5, 0xc0, 0xc5, 0xad, 0x1e, 0x04, 0x06, 0x1e, 0x12, 0xf4, 0x2d, 0x21, 0xdc, + 0xc2, 0xb4, 0x3f, 0xc9, 0x73, 0x9c, 0x52, 0xef, 0x96, 0x45, 0x5d, 0x22, 0xc2, 0xd3, 0x72, 0x17, + 0xd4, 0x70, 0x3f, 0x5b, 0x98, 0xae, 0x27, 0x89, 0xf5, 0x7e, 0xb8, 0xb8, 0xf5, 0x7e, 0x04, 0x06, + 0x1e, 0x7e, 0x8f, 0x2e, 0xd4, 0x46, 0x8c, 0x6e, 0x17, 0x8f, 0xe2, 0xe1, 0x28, 0x89, 0x87, 0x23, + 0x8a, 0x23, 0x6f, 0xd5, 0x3a, 0x28, 0x2a, 0x28, 0xbc, 0xde, 0xed, 0xae, 0x00, 0xfe, 0x7f, 0x85, + 0xce, 0xac, 0x87, 0x21, 0x99, 0xa4, 0x22, 0x99, 0xd5, 0x5c, 0x02, 0x61, 0x23, 0x9b, 0x97, 0x5a, + 0x28, 0x99, 0xce, 0x20, 0x83, 0x84, 0xfb, 0xc8, 0xa8, 0xa7, 0xa5, 0xdb, 0x35, 0x37, 0xd4, 0xb0, + 0x0d, 0xa9, 0x66, 0xb6, 0xad, 0x25, 0xda, 0x35, 0x37, 0x04, 0xb6, 0xf7, 0xd1, 0xdb, 0x95, 0x6d, + 0x4a, 0x32, 0xef, 0x8a, 0x59, 0x89, 0x92, 0x4c, 0xd8, 0xbd, 0xea, 0x42, 0xa4, 0xd5, 0x87, 0x71, + 0x82, 0x9f, 0x3e, 0x7f, 0x9e, 0x90, 0x20, 0xd2, 0xac, 0x32, 0x89, 0x0f, 0x22, 0x8b, 0x55, 0x0d, + 0x91, 0x49, 0xca, 0x04, 0x3b, 0x71, 0x41, 0x2b, 0xcb, 0x4b, 0x0d, 0x35, 0x26, 0x6d, 0x58, 0xbf, + 0xde, 0x86, 0x81, 0x87, 0x9f, 0x21, 0xf4, 0x0c, 0xe7, 0x45, 0x4c, 0xd2, 0x2d, 0x4c, 0xbd, 0xcb, + 0x8a, 0x16, 0x08, 0x58, 0x62, 0x0b, 0xbb, 0x57, 0x1c, 0x04, 0x98, 0x7c, 0x84, 0x4e, 0xed, 0x90, + 0xe1, 0x00, 0xa7, 0x91, 0xf7, 0x1d, 0x85, 0xde, 0x21, 0x43, 0x9f, 0x5d, 0x16, 0xc6, 0x16, 0x6d, + 0x62, 0xb0, 0xf4, 0x04, 0x7d, 0xb3, 0x4f, 0xd2, 0xe7, 0xf1, 0x90, 0xc5, 0x76, 0x49, 0x81, 0xf9, + 0x75, 0x25, 0xb4, 0xcb, 0x76, 0x00, 0xec, 0x6d, 0xa3, 0xb7, 0x06, 0xa3, 0x09, 0x8d, 0xc8, 0x49, + 0xaa, 0x85, 0x56, 0x5d, 0xb6, 0x84, 0x56, 0x13, 0xcb, 0x95, 0xee, 0xc1, 0x0b, 0x8a, 0xf3, 0x34, + 0x48, 0x36, 0x73, 0x92, 0xb1, 0x01, 0x2e, 0xb4, 0x95, 0xae, 0x2e, 0x2f, 0x9f, 0x40, 0x61, 0x59, + 0xe9, 0x8c, 0xa0, 0x2c, 0x8a, 0x75, 0x71, 0x9f, 0xa4, 0xb4, 0x59, 0x14, 0x15, 0x03, 0x80, 0x58, + 0x8a, 0xa2, 0x05, 0x05, 0x6f, 0x7b, 0xe8, 0x6d, 0xb6, 0xd0, 0xee, 0xe6, 0x78, 0x1a, 0xe3, 0x13, + 0x2d, 0x1d, 0x6a, 0x12, 0x4b, 0x3a, 0xa8, 0x04, 0xd8, 0x7c, 0x8a, 0xd0, 0x41, 0xc6, 0x92, 0x8e, + 0xdd, 0x99, 0xf6, 0x14, 0xa5, 0xc0, 0xf2, 0x14, 0x15, 0x00, 0x0c, 0x1e, 0xa0, 0xd3, 0x9b, 0xe4, + 0x24, 0x15, 0x26, 0xd5, 0x18, 0xea, 0x22, 0xcb, 0x5c, 0xd3, 0x10, 0x39, 0x83, 0x37, 0x12, 0x12, + 0x1e, 0x73, 0x97, 0x9a, 0xd5, 0x52, 0x02, 0xd1, 0x58, 0xac, 0x6a, 0x88, 0xec, 0x54, 0x4a, 0xc1, + 0x1e, 0xce, 0x92, 0x20, 0xd4, 0x3b, 0x15, 0xae, 0x03, 0x32, 0x4b, 0xa7, 0xa2, 0x33, 0x60, 0x38, + 0x46, 0x1e, 0x84, 0x1b, 0x05, 0x14, 0x57, 0x79, 0x71, 0xd3, 0x18, 0x52, 0x8d, 0x10, 0x4e, 0x6e, + 0x75, 0x20, 0xe5, 0x34, 0x2c, 0xe5, 0x4f, 0x33, 0x9c, 0x6a, 0x0f, 0x90, 0xeb, 0x31, 0x81, 0xe5, + 0x01, 0x2a, 0x80, 0x66, 0x6f, 0x30, 0x22, 0x27, 0x46, 0x7b, 0x4c, 0xe0, 0xb4, 0x07, 0x00, 0xd8, + 0x23, 0xe8, 0xdb, 0xe5, 0xe5, 0x2d, 0x4c, 0x77, 0x27, 0x47, 0x49, 0x1c, 0x1e, 0xe2, 0xa3, 0x83, + 0xbd, 0x1d, 0x6f, 0xd9, 0xa0, 0xa9, 0x31, 0xc2, 0xcb, 0xed, 0x4e, 0xac, 0xe6, 0x90, 0xdd, 0xd6, + 0x46, 0x8e, 0x83, 0x28, 0xcc, 0x27, 0xe3, 0xa3, 0xc2, 0xe8, 0x50, 0x63, 0x9c, 0x0e, 0x9b, 0xac, + 0xac, 0x02, 0x7c, 0xc4, 0x30, 0xad, 0xfb, 0x33, 0x3d, 0x43, 0x15, 0xb1, 0x54, 0x01, 0x0b, 0xaa, + 0xcd, 0x04, 0x58, 0xd7, 0x4d, 0x33, 0x41, 0x5b, 0xd5, 0xaf, 0xba, 0x10, 0xb9, 0x96, 0xd5, 0xac, + 0xee, 0x06, 0x43, 0xbd, 0x45, 0xad, 0xab, 0x31, 0xb1, 0x65, 0x2d, 0x33, 0x60, 0xb2, 0xe1, 0xa9, + 0x79, 0x18, 0x60, 0xaa, 0x35, 0x3c, 0x75, 0xcd, 0x41, 0x6d, 0xe1, 0x58, 0x6a, 0xa1, 0xf4, 0x02, + 0x91, 0x26, 0x6c, 0x5b, 0x63, 0x2c, 0x10, 0xa5, 0xc8, 0x5d, 0x20, 0x2a, 0x44, 0x2e, 0xc0, 0x3c, + 0xe8, 0x84, 0x14, 0xd8, 0x33, 0x25, 0x7b, 0x29, 0xb1, 0x54, 0x5c, 0x95, 0x90, 0xdd, 0x53, 0x79, + 0xbd, 0xaa, 0x73, 0x9e, 0xa9, 0xa0, 0x54, 0x42, 0x4b, 0xf7, 0xd4, 0x80, 0xc0, 0xf6, 0x2f, 0xc1, + 0xf6, 0x16, 0xa6, 0x8f, 0x83, 0xfc, 0xb8, 0x30, 0x0e, 0x31, 0x5b, 0x74, 0x4b, 0xa9, 0x73, 0x88, + 0xeb, 0x94, 0x56, 0x19, 0x0e, 0xd2, 0x88, 0x18, 0x2b, 0x03, 0x13, 0x38, 0x2b, 0x03, 0x00, 0x9a, + 0xbd, 0x3d, 0x6c, 0xb1, 0xc7, 0x04, 0x4e, 0x7b, 0x00, 0x80, 0xbd, 0xdf, 0x40, 0x86, 0x0d, 0x30, + 0x7d, 0x18, 0xe3, 0x24, 0x2a, 0x8c, 0x29, 0xcc, 0xb2, 0x86, 0x8b, 0x9d, 0x29, 0xac, 0x60, 0xe0, + 0xe0, 0x0b, 0xa8, 0x2c, 0x03, 0xb6, 0x03, 0x2d, 0x68, 0x1e, 0x87, 0x34, 0x26, 0x69, 0xe1, 0xdd, + 0xb6, 0xe8, 0xd7, 0x21, 0xcb, 0x9e, 0xdd, 0x0a, 0x6b, 0xd9, 0xc2, 0xfa, 0xc3, 0xc7, 0x64, 0x8a, + 0x4d, 0xd9, 0x52, 0xf6, 0x8e, 0x4c, 0xe8, 0xca, 0x96, 0x3a, 0x04, 0xb6, 0x27, 0xe8, 0x7d, 0xc5, + 0xf6, 0x3e, 0x79, 0x82, 0x4f, 0xca, 0xa9, 0x7f, 0xc7, 0xa1, 0x2f, 0x28, 0xe1, 0x6d, 0xa5, 0x23, + 0x0d, 0x6e, 0xbf, 0xea, 0xa1, 0x4b, 0x02, 0x82, 0xbd, 0x72, 0x7f, 0x14, 0x27, 0x51, 0x8e, 0xd3, + 0x7d, 0xc2, 0xd8, 0xc2, 0xfb, 0x9e, 0xc5, 0xa4, 0x19, 0x17, 0x91, 0x7c, 0x3c, 0xaf, 0x1a, 0x84, + 0x74, 0x0c, 0xcb, 0x35, 0x83, 0x65, 0xf6, 0xdc, 0xb2, 0x58, 0x33, 0x64, 0xd0, 0x72, 0x17, 0x14, + 0x9c, 0x4d, 0xd1, 0xb9, 0xba, 0xb3, 0x7d, 0xfc, 0x82, 0x0e, 0xe8, 0x2c, 0xc1, 0xde, 0x8a, 0xc3, + 0x08, 0xa3, 0xfc, 0x12, 0x13, 0x3e, 0xfd, 0xae, 0xb8, 0xd6, 0x93, 0x30, 0x68, 0x73, 0x92, 0x25, + 0x71, 0xc8, 0xd6, 0x8f, 0x9b, 0x16, 0x2b, 0x82, 0x70, 0xf5, 0x24, 0x0d, 0x12, 0x5c, 0xfd, 0xb5, + 0x87, 0x2e, 0xd6, 0xef, 0x71, 0x23, 0x08, 0x8f, 0x87, 0x39, 0x99, 0xa4, 0x51, 0x9f, 0x24, 0x24, + 0xf7, 0xd6, 0x1c, 0xa1, 0x6b, 0xac, 0x70, 0x7f, 0x7f, 0x2e, 0x1d, 0x08, 0x64, 0x84, 0xde, 0xab, + 0xc7, 0xb1, 0x9e, 0xc4, 0xc3, 0xd4, 0x7a, 0xcb, 0xcc, 0x52, 0x49, 0xb4, 0xde, 0x72, 0x9d, 0x04, + 0x4f, 0x05, 0xd4, 0x06, 0xf0, 0xb4, 0x19, 0x4f, 0xf9, 0x43, 0xbd, 0xe3, 0x30, 0xb1, 0x19, 0x4f, + 0xb5, 0x67, 0xba, 0xd2, 0x91, 0x36, 0xa7, 0x12, 0x6b, 0x99, 0xdb, 0x53, 0xa9, 0x6c, 0xac, 0xbb, + 0xa7, 0x92, 0x82, 0xcb, 0xfd, 0x95, 0x80, 0xf6, 0x27, 0x79, 0xba, 0x9d, 0x52, 0xa2, 0xed, 0xaf, + 0xa4, 0x91, 0x0a, 0xb0, 0xec, 0xaf, 0x8c, 0x20, 0xf8, 0xf9, 0x1c, 0xfc, 0x0c, 0x30, 0xdd, 0x09, + 0x28, 0x7e, 0xc1, 0xd2, 0xda, 0xd6, 0x57, 0xf9, 0x25, 0xc1, 0x33, 0xbf, 0xa5, 0xaf, 0x52, 0x51, + 0xf0, 0x35, 0x44, 0x67, 0x2b, 0x5f, 0x4c, 0x50, 0xba, 0xba, 0x69, 0xd1, 0x2f, 0x35, 0x15, 0x4f, + 0xb7, 0x3a, 0x90, 0xcd, 0x9b, 0x62, 0x02, 0x3e, 0x23, 0x9c, 0xfa, 0xea, 0x44, 0x58, 0xee, 0x82, + 0xda, 0x6b, 0x0d, 0xf7, 0xd7, 0x5a, 0x6b, 0x54, 0x9f, 0x7e, 0x57, 0xdc, 0x3c, 0x1b, 0x18, 0xc2, + 0x9a, 0x09, 0xe7, 0x6c, 0x28, 0xed, 0x30, 0xaa, 0xd3, 0x6c, 0xa8, 0xd3, 0xe6, 0x81, 0xe5, 0x33, + 0xc1, 0x39, 0xb0, 0xea, 0x2c, 0x58, 0xee, 0x82, 0x82, 0xaf, 0x4c, 0xf6, 0xfc, 0xe5, 0xa0, 0x8e, + 0x70, 0x78, 0x8c, 0x23, 0x6b, 0x27, 0xc0, 0xc7, 0x88, 0x43, 0xad, 0x9d, 0x80, 0x06, 0x9b, 0xf3, + 0x73, 0x3b, 0x24, 0xa9, 0x3b, 0x3f, 0x19, 0xd1, 0x2d, 0x3f, 0x81, 0xd4, 0x7a, 0xde, 0x41, 0x96, + 0xc4, 0xd4, 0xd8, 0xf3, 0x96, 0x12, 0x67, 0xcf, 0x5b, 0x11, 0x9a, 0xc9, 0xc7, 0x38, 0x1f, 0x9a, + 0xdb, 0xe8, 0x52, 0xe2, 0x34, 0x59, 0x11, 0x5a, 0xf3, 0xd8, 0x27, 0xd9, 0xcc, 0xd8, 0x3c, 0x32, + 0x81, 0xb3, 0x79, 0x04, 0x40, 0x0b, 0x71, 0x37, 0x28, 0xa8, 0x39, 0xc4, 0x52, 0xe2, 0x0c, 0xb1, + 0x22, 0xc0, 0xe4, 0xa7, 0xe8, 0x2d, 0x1e, 0xe2, 0x84, 0x7a, 0x8b, 0xa6, 0x00, 0x26, 0x72, 0x10, + 0x2f, 0x59, 0xe5, 0xda, 0xfe, 0xe6, 0xc1, 0x8b, 0x8c, 0xe4, 0xd4, 0xb8, 0xbf, 0xe1, 0x22, 0xe7, + 0xfe, 0x46, 0x20, 0xda, 0xd6, 0x75, 0x7b, 0xcc, 0xae, 0xb3, 0xe9, 0x54, 0xbe, 0x7e, 0x33, 0x65, + 0x8b, 0x8a, 0x38, 0x27, 0x4d, 0x03, 0x6d, 0xa6, 0x30, 0x5b, 0x55, 0x9e, 0x04, 0x63, 0x6c, 0x4d, + 0xe1, 0x72, 0xd9, 0x61, 0x44, 0x6b, 0x0a, 0xd7, 0xc9, 0x66, 0x25, 0xd8, 0x1e, 0x07, 0x43, 0xee, + 0xc9, 0xa6, 0x5f, 0x12, 0xaa, 0xab, 0xe5, 0x2e, 0x28, 0xf8, 0x1a, 0x43, 0x5b, 0x55, 0xf9, 0x3a, + 0x8c, 0x23, 0x3a, 0xf2, 0xdc, 0x16, 0x4a, 0xc6, 0xf9, 0xb2, 0xa1, 0xc9, 0x36, 0x6f, 0xed, 0x59, + 0x1c, 0x61, 0xe2, 0xbc, 0xb5, 0x92, 0xe8, 0x76, 0x6b, 0x0a, 0xda, 0xbc, 0xb5, 0x52, 0xec, 0xbe, + 0x35, 0x6e, 0xa1, 0xdb, 0xad, 0xa9, 0x2c, 0xb8, 0xfb, 0x53, 0x0f, 0x5d, 0x10, 0xcb, 0x7d, 0x9c, + 0x1e, 0xef, 0x07, 0xf9, 0x10, 0x53, 0x9e, 0x9f, 0x91, 0x77, 0xcf, 0xb6, 0x96, 0xb3, 0x0d, 0xbb, + 0x82, 0x0a, 0xef, 0x6b, 0xf3, 0xa8, 0x68, 0x5b, 0x81, 0x0d, 0x42, 0x8e, 0xc7, 0x41, 0x7e, 0xfc, + 0x10, 0xd3, 0x70, 0x64, 0x1c, 0xe0, 0x8a, 0xf0, 0x4b, 0xc4, 0x39, 0xc0, 0x0d, 0x54, 0xef, 0x93, + 0x2b, 0x80, 0xbf, 0xd8, 0x58, 0x4f, 0x23, 0xee, 0x76, 0xcd, 0x65, 0x4b, 0x65, 0x5d, 0x7d, 0xb2, + 0x43, 0x07, 0x02, 0xf9, 0x12, 0x9d, 0x2f, 0x49, 0x36, 0x97, 0x04, 0x03, 0xef, 0x5a, 0x57, 0x0d, + 0x06, 0xcb, 0x39, 0xa7, 0x81, 0x96, 0x8f, 0x61, 0x4e, 0x05, 0x70, 0x9f, 0x42, 0x19, 0xda, 0xc3, + 0x49, 0xc0, 0x36, 0xc0, 0x03, 0x4c, 0x3f, 0xc5, 0x33, 0x63, 0xa6, 0x55, 0x88, 0xcf, 0x19, 0x67, + 0xa6, 0x35, 0x59, 0xf0, 0x87, 0xa1, 0x10, 0x55, 0xc0, 0x7a, 0x14, 0x99, 0xda, 0x57, 0x69, 0x60, + 0x3d, 0x8a, 0x5c, 0xed, 0xab, 0x0e, 0x82, 0x9b, 0xdf, 0xa1, 0x0f, 0xf8, 0xab, 0x9e, 0x80, 0x06, + 0xd3, 0x18, 0x9f, 0x3c, 0x8b, 0xf1, 0x09, 0xbc, 0xb6, 0xf3, 0x4d, 0xef, 0x73, 0x00, 0xf3, 0x25, + 0x27, 0x9c, 0xae, 0x76, 0xe6, 0x1d, 0xbe, 0x37, 0x71, 0x82, 0xbb, 0xf8, 0xe6, 0x5c, 0x77, 0xdf, + 0x82, 0x77, 0xf8, 0xe6, 0x6f, 0xaf, 0xdb, 0x7d, 0x73, 0xae, 0xbb, 0x6f, 0xc1, 0x83, 0xef, 0x3f, + 0xf7, 0xd0, 0x42, 0xc3, 0x39, 0xdb, 0xfa, 0x85, 0x34, 0x9e, 0x62, 0x63, 0x15, 0x51, 0xec, 0x09, + 0xd4, 0x59, 0x45, 0xac, 0x2a, 0x10, 0xc5, 0xdf, 0x7a, 0xe8, 0x43, 0x53, 0x14, 0xbb, 0xa4, 0x88, + 0x59, 0x9e, 0x78, 0xf7, 0x3b, 0x18, 0xad, 0x60, 0x11, 0xc9, 0x77, 0xe7, 0x53, 0x82, 0x58, 0x4e, + 0xe0, 0x35, 0x4f, 0x45, 0x0e, 0x30, 0x1d, 0x90, 0x49, 0x1e, 0x1a, 0x77, 0x89, 0xd2, 0x9e, 0xc0, + 0x5c, 0x9b, 0x00, 0x33, 0xae, 0x15, 0x95, 0x8a, 0xa9, 0xcf, 0x36, 0xe7, 0x73, 0xad, 0x81, 0xce, + 0xa2, 0x62, 0x51, 0xd0, 0x8b, 0xab, 0xee, 0x1f, 0x52, 0x71, 0xad, 0x8b, 0x45, 0x2d, 0x1d, 0xef, + 0xcf, 0xa5, 0xd3, 0x16, 0x08, 0xcc, 0xc7, 0x4e, 0x81, 0x68, 0x73, 0xf2, 0xfe, 0x5c, 0x3a, 0x10, + 0xc8, 0x3f, 0x7b, 0xe8, 0xaa, 0x31, 0x10, 0xb6, 0xab, 0x5a, 0x9f, 0x06, 0x71, 0x12, 0x1c, 0x25, + 0xd8, 0xfb, 0x41, 0x17, 0xdb, 0x8a, 0x8a, 0x08, 0xeb, 0x87, 0xaf, 0xa3, 0x0a, 0xd1, 0xfd, 0xa1, + 0x5a, 0xfe, 0x65, 0x74, 0x21, 0xc9, 0x23, 0x28, 0x98, 0x2d, 0xcf, 0x5f, 0x92, 0x22, 0x96, 0x7b, + 0x73, 0x68, 0xb8, 0x43, 0x80, 0x84, 0xe9, 0x10, 0x82, 0x96, 0x2e, 0xf7, 0xe6, 0xd0, 0x70, 0x87, + 0x00, 0xa9, 0xd2, 0x21, 0x04, 0x2d, 0x51, 0xee, 0xcd, 0xa1, 0x01, 0x21, 0xfc, 0xab, 0x87, 0xae, + 0x19, 0x42, 0xa8, 0x1e, 0xdf, 0xd3, 0xac, 0x9a, 0xc4, 0x3f, 0x6a, 0xb7, 0xdd, 0x50, 0x12, 0x81, + 0xfd, 0xf8, 0xf5, 0x94, 0x21, 0xc6, 0x7f, 0xf7, 0xd0, 0x8d, 0xd6, 0x18, 0xe1, 0xb9, 0xfd, 0x74, + 0x5e, 0x4f, 0xda, 0x53, 0xfc, 0xe4, 0xb5, 0xf5, 0xe7, 0x09, 0x16, 0x9e, 0xf0, 0xdc, 0xc1, 0x6a, + 0xcf, 0xfb, 0x93, 0xd7, 0xd6, 0xd7, 0x1a, 0x60, 0x7e, 0xc2, 0x6f, 0x7f, 0x96, 0x95, 0xdf, 0xea, + 0x4c, 0x0d, 0xb0, 0x24, 0xfc, 0xfa, 0x07, 0xbb, 0xe5, 0x2e, 0x28, 0x38, 0xcb, 0xd1, 0xb9, 0x27, + 0xc1, 0x34, 0x1e, 0x8a, 0xba, 0xc0, 0x41, 0xfd, 0x93, 0x8a, 0x64, 0xfc, 0x1a, 0x64, 0x79, 0x91, + 0x62, 0x85, 0xc1, 0xe7, 0xdf, 0x7b, 0xe8, 0xb2, 0x64, 0xb6, 0x30, 0x10, 0xdb, 0xe9, 0x73, 0x72, + 0x18, 0xd3, 0x11, 0xdb, 0x1c, 0x14, 0xde, 0xc7, 0x36, 0x93, 0x66, 0x5e, 0x84, 0xf2, 0xfd, 0xb9, + 0xf5, 0xe4, 0xfe, 0x9e, 0xcb, 0xb7, 0xf2, 0x20, 0x1b, 0x69, 0xfb, 0x7b, 0x38, 0x6d, 0x59, 0x8a, + 0x2c, 0xfb, 0x7b, 0x0d, 0x91, 0x07, 0x1c, 0xe0, 0xc8, 0x27, 0x0e, 0xf2, 0x70, 0xe4, 0x19, 0x75, + 0xb8, 0xcc, 0x72, 0xc0, 0x41, 0x67, 0xe4, 0x83, 0xab, 0x1b, 0x1e, 0x4c, 0x8e, 0x8a, 0x30, 0x8f, + 0x8f, 0xb0, 0xf9, 0xfc, 0xaa, 0x06, 0xb9, 0xcf, 0xaf, 0x36, 0x61, 0xf9, 0x01, 0xa3, 0x3a, 0xd4, + 0x5a, 0x48, 0x87, 0xc6, 0x73, 0xa9, 0x75, 0xc2, 0xf2, 0x02, 0xc1, 0x4c, 0x82, 0xab, 0x17, 0xe8, + 0x83, 0xfa, 0xed, 0x1d, 0xa4, 0x85, 0xf0, 0xb7, 0x62, 0x8f, 0xb9, 0x86, 0x59, 0x9a, 0x26, 0x07, + 0xae, 0x1f, 0xd2, 0xb5, 0xef, 0x4d, 0xc0, 0x88, 0xa9, 0x4b, 0xba, 0xd9, 0x0e, 0xca, 0x53, 0x12, + 0xaa, 0x1f, 0x28, 0x96, 0xcb, 0x2e, 0x0b, 0x5a, 0x61, 0xbc, 0xdd, 0x89, 0xb5, 0x39, 0x84, 0x82, + 0xe7, 0x74, 0xa8, 0x15, 0xb7, 0xdb, 0x9d, 0x58, 0xfd, 0x19, 0x36, 0x17, 0xae, 0x15, 0x97, 0x9d, + 0xe6, 0x52, 0xe5, 0x77, 0xc5, 0xc1, 0xf3, 0x1f, 0x7b, 0x68, 0xc1, 0xe4, 0xda, 0xd8, 0x47, 0x18, + 0xcd, 0x39, 0xfb, 0x08, 0xb7, 0x46, 0x4b, 0x0c, 0xc6, 0x46, 0xc2, 0x68, 0xd1, 0xd9, 0x48, 0xb8, + 0x35, 0x20, 0x86, 0xbf, 0xf4, 0xd0, 0x45, 0x35, 0x06, 0xb5, 0xd1, 0x74, 0x9a, 0x34, 0x37, 0x98, + 0x6b, 0xf3, 0xa8, 0xc8, 0xb3, 0x2d, 0xd5, 0x64, 0xa6, 0x3b, 0xc1, 0x8c, 0x4c, 0xf4, 0xc3, 0xd1, + 0x62, 0x56, 0x82, 0xd8, 0x72, 0x30, 0xc0, 0x80, 0xd5, 0x9a, 0x36, 0x2e, 0x7d, 0x88, 0x03, 0x3a, + 0xc9, 0x71, 0x54, 0x9f, 0xbd, 0xc6, 0xb1, 0xd6, 0x41, 0xe5, 0x15, 0xc3, 0xbd, 0x39, 0x34, 0x6a, + 0x3b, 0x4e, 0x73, 0x08, 0x7b, 0x78, 0x4c, 0xa6, 0x58, 0xdb, 0x71, 0xda, 0x6c, 0x72, 0xd8, 0xb2, + 0xe3, 0x6c, 0x55, 0x92, 0x6f, 0x95, 0xc5, 0x80, 0x6f, 0x17, 0x0f, 0x83, 0x29, 0xc9, 0x63, 0xaa, + 0xbf, 0xa5, 0x94, 0xa3, 0x29, 0x11, 0x4b, 0x0f, 0x61, 0x41, 0x8d, 0xde, 0xd6, 0xf3, 0x70, 0x14, + 0x4f, 0x71, 0xe4, 0xf0, 0x56, 0x21, 0x1d, 0xbc, 0xd5, 0x50, 0x7d, 0x9d, 0xde, 0x27, 0xac, 0x2f, + 0x32, 0xae, 0xd3, 0xa5, 0xc8, 0xbd, 0x4e, 0x57, 0x08, 0x58, 0x0d, 0xd1, 0x59, 0x2e, 0x28, 0x3f, + 0xce, 0xf3, 0x29, 0x6a, 0x4a, 0x3e, 0xfe, 0xc1, 0x5d, 0x9d, 0x98, 0x37, 0x5a, 0x39, 0xf9, 0x5a, + 0x46, 0x4a, 0xd5, 0xc1, 0xf2, 0x6d, 0x36, 0xca, 0xf7, 0xd0, 0xcd, 0x11, 0x5b, 0xed, 0xcc, 0x5b, + 0x7d, 0x8b, 0xb4, 0x68, 0xf1, 0xdd, 0xc8, 0x8d, 0xd5, 0xce, 0x3c, 0xf8, 0x3e, 0x82, 0xb3, 0x6d, + 0x03, 0x4c, 0x37, 0x31, 0x0d, 0xe2, 0xa4, 0xf0, 0x6c, 0x27, 0x7e, 0x40, 0x6e, 0x19, 0x5b, 0x13, + 0x27, 0x3f, 0x1f, 0xed, 0x06, 0xc3, 0xea, 0xd7, 0x1d, 0xea, 0xe7, 0xa3, 0xf2, 0xf8, 0x8b, 0xb6, + 0x39, 0xbd, 0xe2, 0x20, 0xe4, 0x17, 0xae, 0x81, 0xf8, 0x0d, 0x8d, 0xfa, 0x7d, 0x68, 0xd0, 0xfc, + 0x01, 0xcd, 0x65, 0x3b, 0x20, 0x17, 0xe0, 0xc7, 0x98, 0xe6, 0x71, 0x58, 0x0c, 0x30, 0xdd, 0x0d, + 0xf2, 0x60, 0x8c, 0x29, 0xce, 0xf5, 0x73, 0x91, 0x80, 0xf8, 0x0a, 0x63, 0x59, 0x80, 0x6d, 0xac, + 0x9e, 0xd4, 0xac, 0xef, 0x87, 0xfb, 0x30, 0x25, 0x75, 0xb9, 0x2d, 0xd0, 0x6e, 0xe7, 0x46, 0x2b, + 0x27, 0x8f, 0x15, 0x4a, 0x29, 0x4b, 0x03, 0xed, 0xcc, 0x5b, 0x4d, 0xb5, 0x4c, 0x12, 0xf3, 0x99, + 0xb7, 0x26, 0x25, 0x5f, 0x9e, 0x49, 0x59, 0x7d, 0x9d, 0x31, 0xf6, 0x10, 0xa5, 0x01, 0x51, 0x16, + 0x15, 0x7f, 0x7e, 0x57, 0x1c, 0x1c, 0xd3, 0xaa, 0xc1, 0xae, 0x3b, 0x66, 0xab, 0xc9, 0x9d, 0x56, + 0x43, 0xf5, 0x95, 0x64, 0xa5, 0x23, 0x2d, 0x5f, 0xd9, 0x35, 0xbd, 0x42, 0xdb, 0xb2, 0xda, 0x6a, + 0x4a, 0xeb, 0x5a, 0xee, 0x76, 0x57, 0x70, 0xb9, 0x87, 0xf5, 0xab, 0xdd, 0xbd, 0xb6, 0x76, 0xdd, + 0xed, 0xae, 0x00, 0xee, 0x7f, 0x82, 0xbe, 0xb1, 0x1b, 0xa7, 0x43, 0xef, 0x82, 0x3a, 0x39, 0xe3, + 0x74, 0x28, 0x8c, 0x2e, 0x98, 0x44, 0xf2, 0xac, 0xde, 0x6e, 0x4e, 0x42, 0x5c, 0x14, 0xfd, 0x20, + 0x0d, 0x71, 0xa2, 0x9d, 0xd5, 0x03, 0x99, 0xcf, 0x85, 0x96, 0xb3, 0x7a, 0x0d, 0x48, 0x2e, 0x3b, + 0x8f, 0xe2, 0x82, 0x92, 0x7c, 0x56, 0x9e, 0xcb, 0x56, 0xcb, 0x07, 0x48, 0xd4, 0x93, 0xd9, 0x57, + 0x5d, 0x88, 0xec, 0x8c, 0x40, 0x00, 0xbf, 0x15, 0xd1, 0x8f, 0x4c, 0x56, 0x6a, 0x95, 0xd8, 0xd2, + 0x19, 0x19, 0x30, 0xb9, 0x9d, 0xa9, 0xe2, 0xc6, 0x14, 0xc4, 0xda, 0x76, 0x46, 0x84, 0x26, 0x00, + 0xcb, 0x76, 0xc6, 0x08, 0x82, 0x9f, 0x3e, 0x7a, 0x13, 0xbe, 0x8c, 0x5f, 0xd4, 0x7e, 0x51, 0xa1, + 0x7c, 0x13, 0xff, 0xd0, 0x2c, 0x04, 0x23, 0xbf, 0x46, 0xef, 0xf2, 0x4b, 0xe2, 0x07, 0x5c, 0x5a, + 0x31, 0xd1, 0xa4, 0x96, 0x62, 0xd2, 0xa4, 0x74, 0xfb, 0xfb, 0x78, 0x9c, 0x25, 0x01, 0xc5, 0x85, + 0xd1, 0xbe, 0x90, 0x3a, 0xed, 0xd7, 0x29, 0xb0, 0x1f, 0xa0, 0xb3, 0x5c, 0xb6, 0x43, 0xc2, 0x20, + 0x61, 0x83, 0xa5, 0x9f, 0xe2, 0xd6, 0xc5, 0x96, 0xe7, 0x69, 0xc0, 0xe4, 0xcf, 0x3b, 0x1e, 0x07, + 0xc7, 0xb8, 0x72, 0xae, 0x25, 0x62, 0x5d, 0x64, 0x49, 0x44, 0x0d, 0x01, 0xb3, 0x33, 0x74, 0xbe, + 0x2e, 0xd8, 0x98, 0xc9, 0xe9, 0xaa, 0x15, 0x5a, 0x1b, 0x66, 0x29, 0xb4, 0x0e, 0x1c, 0x5c, 0xff, + 0x1c, 0xbd, 0xd3, 0x4f, 0x48, 0x2a, 0x6f, 0x49, 0x8d, 0x57, 0x91, 0x59, 0xde, 0x91, 0xe8, 0x8c, + 0x7c, 0xdc, 0xdc, 0xa1, 0x3c, 0x6d, 0x69, 0x5a, 0x9b, 0x9a, 0x27, 0x2d, 0x97, 0x5a, 0x28, 0xb0, + 0xff, 0x0b, 0x74, 0xe6, 0x20, 0x2d, 0xb2, 0x24, 0x28, 0x46, 0xf0, 0x7a, 0x47, 0x0d, 0x4b, 0x15, + 0x5a, 0x0a, 0x4e, 0x03, 0x92, 0xb9, 0x54, 0x89, 0xc4, 0x49, 0xf5, 0x25, 0xa3, 0x66, 0xe3, 0xac, + 0xfa, 0xf5, 0x36, 0x4c, 0x8e, 0xfc, 0x7a, 0x96, 0x25, 0x33, 0xcb, 0xc8, 0x2b, 0x32, 0xcb, 0xc8, + 0xeb, 0x8c, 0x6c, 0x9d, 0x36, 0xf1, 0xd1, 0x64, 0x38, 0x98, 0xa5, 0xa1, 0xd6, 0x3a, 0x95, 0xd7, + 0x7d, 0x26, 0xb0, 0xb4, 0x4e, 0x0a, 0x20, 0xab, 0x6f, 0x79, 0x79, 0x7f, 0x94, 0xe3, 0xc6, 0xaf, + 0x8f, 0xb8, 0x02, 0x17, 0xd9, 0x7e, 0xd3, 0xa4, 0x22, 0x5a, 0x94, 0xfb, 0x39, 0xc6, 0xc6, 0x28, + 0x99, 0xc0, 0x19, 0x25, 0x00, 0x60, 0xef, 0x2e, 0x3a, 0xcd, 0x7a, 0x08, 0x9c, 0x3e, 0x28, 0x7f, + 0x7c, 0xee, 0x9d, 0x11, 0x1a, 0x0f, 0xc6, 0x19, 0x9d, 0x2d, 0xd4, 0xfe, 0x67, 0xc0, 0xdd, 0xde, + 0xc6, 0x95, 0xff, 0xbc, 0x5c, 0xec, 0x7d, 0xfd, 0x72, 0xb1, 0xf7, 0xbf, 0x97, 0x8b, 0xbd, 0xaf, + 0x5e, 0x2d, 0xbe, 0xf1, 0xf5, 0xab, 0xc5, 0x37, 0xfe, 0xfb, 0x6a, 0xf1, 0x8d, 0xcf, 0x4e, 0xc1, + 0x8f, 0xdf, 0x8f, 0xde, 0x2c, 0x7f, 0xc2, 0x7e, 0xff, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x53, + 0x39, 0x6d, 0x58, 0x20, 0x3f, 0x00, 0x00, } // This is a compile-time assertion to ensure that this generated file @@ -288,6 +289,7 @@ type ClientCommandsHandler interface { BlockListSetTextMark(*pb.RpcBlockListSetTextMarkRequest) *pb.RpcBlockListSetTextMarkResponse BlockSetTextStyle(*pb.RpcBlockSetTextStyleRequest) *pb.RpcBlockSetTextStyleResponse BlockSetTextChecked(*pb.RpcBlockSetTextCheckedRequest) *pb.RpcBlockSetTextCheckedResponse + BlockSetTextIcon(*pb.RpcBlockSetTextIconRequest) *pb.RpcBlockSetTextIconResponse BlockSplit(*pb.RpcBlockSplitRequest) *pb.RpcBlockSplitResponse BlockMerge(*pb.RpcBlockMergeRequest) *pb.RpcBlockMergeResponse BlockCopy(*pb.RpcBlockCopyRequest) *pb.RpcBlockCopyResponse @@ -1639,6 +1641,26 @@ func BlockSetTextChecked(b []byte) (resp []byte) { return resp } +func BlockSetTextIcon(b []byte) (resp []byte) { + defer func() { + if PanicHandler != nil { + if r := recover(); r != nil { + resp, _ = (&pb.RpcBlockSetTextIconResponse{Error: &pb.RpcBlockSetTextIconResponseError{Code: pb.RpcBlockSetTextIconResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() + PanicHandler(r) + } + } + }() + + in := new(pb.RpcBlockSetTextIconRequest) + if err := in.Unmarshal(b); err != nil { + resp, _ = (&pb.RpcBlockSetTextIconResponse{Error: &pb.RpcBlockSetTextIconResponseError{Code: pb.RpcBlockSetTextIconResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() + return resp + } + + resp, _ = clientCommandsHandler.BlockSetTextIcon(in).Marshal() + return resp +} + func BlockSplit(b []byte) (resp []byte) { defer func() { if PanicHandler != nil { @@ -3509,6 +3531,8 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) { cd = BlockSetTextStyle(data) case "BlockSetTextChecked": cd = BlockSetTextChecked(data) + case "BlockSetTextIcon": + cd = BlockSetTextIcon(data) case "BlockSplit": cd = BlockSplit(data) case "BlockMerge": diff --git a/core/block.go b/core/block.go index e8137ba54..3ddd40fc5 100644 --- a/core/block.go +++ b/core/block.go @@ -915,6 +915,26 @@ func (mw *Middleware) BlockSetTextStyle(req *pb.RpcBlockSetTextStyleRequest) *pb return response(pb.RpcBlockSetTextStyleResponseError_NULL, nil) } +func (mw *Middleware) BlockSetTextIcon(req *pb.RpcBlockSetTextIconRequest) *pb.RpcBlockSetTextIconResponse { + ctx := state.NewContext(nil) + response := func(code pb.RpcBlockSetTextIconResponseErrorCode, err error) *pb.RpcBlockSetTextIconResponse { + m := &pb.RpcBlockSetTextIconResponse{Error: &pb.RpcBlockSetTextIconResponseError{Code: code}} + if err != nil { + m.Error.Description = err.Error() + } else { + m.Event = ctx.GetResponseEvent() + } + return m + } + err := mw.doBlockService(func(bs block.Service) (err error) { + return bs.SetTextIcon(ctx, req.ContextId, req.IconImage, req.IconEmoji, req.BlockId) + }) + if err != nil { + return response(pb.RpcBlockSetTextIconResponseError_UNKNOWN_ERROR, err) + } + return response(pb.RpcBlockSetTextIconResponseError_NULL, nil) +} + func (mw *Middleware) BlockSetTextChecked(req *pb.RpcBlockSetTextCheckedRequest) *pb.RpcBlockSetTextCheckedResponse { ctx := state.NewContext(nil) response := func(code pb.RpcBlockSetTextCheckedResponseErrorCode, err error) *pb.RpcBlockSetTextCheckedResponse { diff --git a/core/block/editor.go b/core/block/editor.go index 2c10ef044..808a87e41 100644 --- a/core/block/editor.go +++ b/core/block/editor.go @@ -561,6 +561,12 @@ func (s *service) SetTextMark(ctx *state.Context, contextId string, mark *model. }) } +func (s *service) SetTextIcon(ctx *state.Context, contextId, image, emoji string, blockIds ...string) error { + return s.DoText(contextId, func(b stext.Text) error { + return b.SetIcon(ctx, image, emoji, blockIds...) + }) +} + func (s *service) SetBackgroundColor(ctx *state.Context, contextId string, color string, blockIds ...string) (err error) { return s.DoBasic(contextId, func(b basic.Basic) error { return b.Update(ctx, func(b simple.Block) error { diff --git a/core/block/editor/stext/text.go b/core/block/editor/stext/text.go index 61a1e40af..24d22912d 100644 --- a/core/block/editor/stext/text.go +++ b/core/block/editor/stext/text.go @@ -26,6 +26,7 @@ type Text interface { Split(ctx *state.Context, req pb.RpcBlockSplitRequest) (newId string, err error) Merge(ctx *state.Context, firstId, secondId string) (err error) SetMark(ctx *state.Context, mark *model.BlockContentTextMark, blockIds ...string) error + SetIcon(ctx *state.Context, image, emoji string, blockIds ...string) error SetText(req pb.RpcBlockSetTextTextRequest) (err error) TurnInto(ctx *state.Context, style model.BlockContentTextStyle, ids ...string) error } @@ -208,6 +209,22 @@ func (t *textImpl) SetMark(ctx *state.Context, mark *model.BlockContentTextMark, return t.Apply(s) } +// SetIcon sets an icon for the text block with style BlockContentText_Callout(13) +func (t *textImpl) SetIcon(ctx *state.Context, image string, emoji string, blockIds ...string) (err error) { + s := t.NewStateCtx(ctx) + for _, id := range blockIds { + tb, err := getText(s, id) + if err != nil { + continue + } + + tb.SetIconImage(image) + tb.SetIconEmoji(emoji) + } + + return t.Apply(s) +} + func (t *textImpl) newSetTextState(blockId string, ctx *state.Context) *state.State { if t.lastSetTextState != nil && t.lastSetTextId == blockId { return t.lastSetTextState diff --git a/core/block/service.go b/core/block/service.go index 89ac7cdcc..d7711edca 100644 --- a/core/block/service.go +++ b/core/block/service.go @@ -141,6 +141,7 @@ type Service interface { SetTextChecked(ctx *state.Context, req pb.RpcBlockSetTextCheckedRequest) error SetTextColor(ctx *state.Context, contextId string, color string, blockIds ...string) error SetTextMark(ctx *state.Context, id string, mark *model.BlockContentTextMark, ids ...string) error + SetTextIcon(ctx *state.Context, contextId, image, emoji string, blockIds ...string) error SetBackgroundColor(ctx *state.Context, contextId string, color string, blockIds ...string) error SetAlign(ctx *state.Context, contextId string, align model.BlockAlign, blockIds ...string) (err error) SetLayout(ctx *state.Context, id string, layout model.ObjectTypeLayout) error diff --git a/core/block/simple/text/text.go b/core/block/simple/text/text.go index 3b96ddd85..7ca1052f0 100644 --- a/core/block/simple/text/text.go +++ b/core/block/simple/text/text.go @@ -51,6 +51,9 @@ type Block interface { RemoveMarkType(markType model.BlockContentTextMarkType) HasMarkForAllText(mark *model.BlockContentTextMark) bool SetTextColor(color string) + SetIconEmoji(emoji string) + SetIconImage(imageHash string) + Split(pos int32) (simple.Block, error) RangeSplit(from int32, to int32, top bool) (newBlock simple.Block, err error) RangeTextPaste(rangeFrom int32, rangeTo int32, copiedBlock *model.Block, isPartOfBlock bool) (caretPosition int32, err error) @@ -149,6 +152,14 @@ func (t *Text) SetTextColor(color string) { t.content.Color = color } +func (t *Text) SetIconEmoji(emoji string) { + t.content.IconEmoji = emoji +} + +func (t *Text) SetIconImage(imageHash string) { + t.content.IconImage = imageHash +} + func (t *Text) SetMarkForAllText(mark *model.BlockContentTextMark) { mRange := &model.Range{ To: int32(utf8.RuneCountInString(t.content.Text)), diff --git a/docs/proto.md b/docs/proto.md index 5910a5bc8..8fb9a0dc6 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -4,12 +4,8 @@ ## Table of Contents - [pb/protos/service/service.proto](#pb/protos/service/service.proto) - - - - [ClientCommands](#anytype.ClientCommands) - - [pb/protos/changes.proto](#pb/protos/changes.proto) - [Change](#anytype.Change) - [Change.BlockCreate](#anytype.Change.BlockCreate) @@ -34,10 +30,6 @@ - [Change.StoreKeySet](#anytype.Change.StoreKeySet) - [Change.StoreKeyUnset](#anytype.Change.StoreKeyUnset) - - - - - [pb/protos/commands.proto](#pb/protos/commands.proto) - [Empty](#anytype.Empty) - [Rpc](#anytype.Rpc) @@ -279,6 +271,10 @@ - [Rpc.Block.Set.Text.Color.Request](#anytype.Rpc.Block.Set.Text.Color.Request) - [Rpc.Block.Set.Text.Color.Response](#anytype.Rpc.Block.Set.Text.Color.Response) - [Rpc.Block.Set.Text.Color.Response.Error](#anytype.Rpc.Block.Set.Text.Color.Response.Error) + - [Rpc.Block.Set.Text.Icon](#anytype.Rpc.Block.Set.Text.Icon) + - [Rpc.Block.Set.Text.Icon.Request](#anytype.Rpc.Block.Set.Text.Icon.Request) + - [Rpc.Block.Set.Text.Icon.Response](#anytype.Rpc.Block.Set.Text.Icon.Response) + - [Rpc.Block.Set.Text.Icon.Response.Error](#anytype.Rpc.Block.Set.Text.Icon.Response.Error) - [Rpc.Block.Set.Text.Style](#anytype.Rpc.Block.Set.Text.Style) - [Rpc.Block.Set.Text.Style.Request](#anytype.Rpc.Block.Set.Text.Style.Request) - [Rpc.Block.Set.Text.Style.Response](#anytype.Rpc.Block.Set.Text.Style.Response) @@ -752,6 +748,7 @@ - [Rpc.Block.Set.Restrictions.Response.Error.Code](#anytype.Rpc.Block.Set.Restrictions.Response.Error.Code) - [Rpc.Block.Set.Text.Checked.Response.Error.Code](#anytype.Rpc.Block.Set.Text.Checked.Response.Error.Code) - [Rpc.Block.Set.Text.Color.Response.Error.Code](#anytype.Rpc.Block.Set.Text.Color.Response.Error.Code) + - [Rpc.Block.Set.Text.Icon.Response.Error.Code](#anytype.Rpc.Block.Set.Text.Icon.Response.Error.Code) - [Rpc.Block.Set.Text.Style.Response.Error.Code](#anytype.Rpc.Block.Set.Text.Style.Response.Error.Code) - [Rpc.Block.Set.Text.Text.Response.Error.Code](#anytype.Rpc.Block.Set.Text.Text.Response.Error.Code) - [Rpc.Block.Set.Video.Name.Response.Error.Code](#anytype.Rpc.Block.Set.Video.Name.Response.Error.Code) @@ -854,9 +851,6 @@ - [Rpc.Workspace.Select.Response.Error.Code](#anytype.Rpc.Workspace.Select.Response.Error.Code) - [Rpc.Workspace.SetIsHighlighted.Response.Error.Code](#anytype.Rpc.Workspace.SetIsHighlighted.Response.Error.Code) - - - - [pb/protos/events.proto](#pb/protos/events.proto) - [Event](#anytype.Event) - [Event.Account](#anytype.Event.Account) @@ -951,6 +945,8 @@ - [Event.Block.Set.Text](#anytype.Event.Block.Set.Text) - [Event.Block.Set.Text.Checked](#anytype.Event.Block.Set.Text.Checked) - [Event.Block.Set.Text.Color](#anytype.Event.Block.Set.Text.Color) + - [Event.Block.Set.Text.IconEmoji](#anytype.Event.Block.Set.Text.IconEmoji) + - [Event.Block.Set.Text.IconImage](#anytype.Event.Block.Set.Text.IconImage) - [Event.Block.Set.Text.Marks](#anytype.Event.Block.Set.Text.Marks) - [Event.Block.Set.Text.Style](#anytype.Event.Block.Set.Text.Style) - [Event.Block.Set.Text.Text](#anytype.Event.Block.Set.Text.Text) @@ -1003,9 +999,6 @@ - [Model.Process.State](#anytype.Model.Process.State) - [Model.Process.Type](#anytype.Model.Process.Type) - - - - [pkg/lib/pb/model/protos/localstore.proto](#pkg/lib/pb/model/protos/localstore.proto) - [ObjectDetails](#anytype.model.ObjectDetails) - [ObjectInfo](#anytype.model.ObjectInfo) @@ -1016,10 +1009,6 @@ - [ObjectLinksInfo](#anytype.model.ObjectLinksInfo) - [ObjectStoreChecksums](#anytype.model.ObjectStoreChecksums) - - - - - [pkg/lib/pb/model/protos/models.proto](#pkg/lib/pb/model/protos/models.proto) - [Account](#anytype.model.Account) - [Account.Avatar](#anytype.model.Account.Avatar) @@ -1089,9 +1078,6 @@ - [Restrictions.ObjectRestriction](#anytype.model.Restrictions.ObjectRestriction) - [SmartBlockType](#anytype.model.SmartBlockType) - - - - [Scalar Value Types](#scalar-value-types) @@ -1178,6 +1164,7 @@ | BlockListSetTextMark | [Rpc.BlockList.Set.Text.Mark.Request](#anytype.Rpc.BlockList.Set.Text.Mark.Request) | [Rpc.BlockList.Set.Text.Mark.Response](#anytype.Rpc.BlockList.Set.Text.Mark.Response) | | | BlockSetTextStyle | [Rpc.Block.Set.Text.Style.Request](#anytype.Rpc.Block.Set.Text.Style.Request) | [Rpc.Block.Set.Text.Style.Response](#anytype.Rpc.Block.Set.Text.Style.Response) | | | BlockSetTextChecked | [Rpc.Block.Set.Text.Checked.Request](#anytype.Rpc.Block.Set.Text.Checked.Request) | [Rpc.Block.Set.Text.Checked.Response](#anytype.Rpc.Block.Set.Text.Checked.Response) | | +| BlockSetTextIcon | [Rpc.Block.Set.Text.Icon.Request](#anytype.Rpc.Block.Set.Text.Icon.Request) | [Rpc.Block.Set.Text.Icon.Response](#anytype.Rpc.Block.Set.Text.Icon.Response) | | | BlockSplit | [Rpc.Block.Split.Request](#anytype.Rpc.Block.Split.Request) | [Rpc.Block.Split.Response](#anytype.Rpc.Block.Split.Response) | | | BlockMerge | [Rpc.Block.Merge.Request](#anytype.Rpc.Block.Merge.Request) | [Rpc.Block.Merge.Response](#anytype.Rpc.Block.Merge.Response) | | | BlockCopy | [Rpc.Block.Copy.Request](#anytype.Rpc.Block.Copy.Request) | [Rpc.Block.Copy.Response](#anytype.Rpc.Block.Copy.Response) | | @@ -5188,6 +5175,66 @@ Image/Video/File blocks then: + + +### Rpc.Block.Set.Text.Icon + + + + + + + + + +### Rpc.Block.Set.Text.Icon.Request + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| contextId | [string](#string) | | | +| blockId | [string](#string) | | | +| iconImage | [string](#string) | | in case both image and emoji are set, image has a priority to show | +| iconEmoji | [string](#string) | | | + + + + + + + + +### Rpc.Block.Set.Text.Icon.Response + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| error | [Rpc.Block.Set.Text.Icon.Response.Error](#anytype.Rpc.Block.Set.Text.Icon.Response.Error) | | | +| event | [ResponseEvent](#anytype.ResponseEvent) | | | + + + + + + + + +### Rpc.Block.Set.Text.Icon.Response.Error + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| code | [Rpc.Block.Set.Text.Icon.Response.Error.Code](#anytype.Rpc.Block.Set.Text.Icon.Response.Error.Code) | | | +| description | [string](#string) | | | + + + + + + ### Rpc.Block.Set.Text.Style @@ -11952,6 +11999,19 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er + + +### Rpc.Block.Set.Text.Icon.Response.Error.Code + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NULL | 0 | | +| UNKNOWN_ERROR | 1 | | +| BAD_INPUT | 2 | ... | + + + ### Rpc.Block.Set.Text.Style.Response.Error.Code @@ -14738,6 +14798,8 @@ Precondition: user A opened a block | marks | [Event.Block.Set.Text.Marks](#anytype.Event.Block.Set.Text.Marks) | | | | checked | [Event.Block.Set.Text.Checked](#anytype.Event.Block.Set.Text.Checked) | | | | color | [Event.Block.Set.Text.Color](#anytype.Event.Block.Set.Text.Color) | | | +| iconEmoji | [Event.Block.Set.Text.IconEmoji](#anytype.Event.Block.Set.Text.IconEmoji) | | | +| iconImage | [Event.Block.Set.Text.IconImage](#anytype.Event.Block.Set.Text.IconImage) | | | @@ -14774,6 +14836,36 @@ Precondition: user A opened a block + + +### Event.Block.Set.Text.IconEmoji + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| value | [string](#string) | | | + + + + + + + + +### Event.Block.Set.Text.IconImage + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| value | [string](#string) | | | + + + + + + ### Event.Block.Set.Text.Marks @@ -16135,6 +16227,8 @@ Link: block to link some content from an external sources. | marks | [Block.Content.Text.Marks](#anytype.model.Block.Content.Text.Marks) | | list of marks to apply to the text | | checked | [bool](#bool) | | | | color | [string](#string) | | | +| iconEmoji | [string](#string) | | used with style Callout | +| iconImage | [string](#string) | | in case both image and emoji are set, image should has a priority in the UI | @@ -16708,6 +16802,7 @@ scope from which this relation have been aggregated | | Numbered | 10 | | | Toggle | 11 | | | Description | 12 | currently only only one block of this style can exists on a page | +| Callout | 13 | currently only only one block of this style can exists on a page | diff --git a/pb/commands.pb.go b/pb/commands.pb.go index eda70a958..0c24025e9 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -1067,6 +1067,34 @@ func (RpcBlockSetTextCheckedResponseErrorCode) EnumDescriptor() ([]byte, []int) return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 5, 3, 1, 0, 0} } +type RpcBlockSetTextIconResponseErrorCode int32 + +const ( + RpcBlockSetTextIconResponseError_NULL RpcBlockSetTextIconResponseErrorCode = 0 + RpcBlockSetTextIconResponseError_UNKNOWN_ERROR RpcBlockSetTextIconResponseErrorCode = 1 + RpcBlockSetTextIconResponseError_BAD_INPUT RpcBlockSetTextIconResponseErrorCode = 2 +) + +var RpcBlockSetTextIconResponseErrorCode_name = map[int32]string{ + 0: "NULL", + 1: "UNKNOWN_ERROR", + 2: "BAD_INPUT", +} + +var RpcBlockSetTextIconResponseErrorCode_value = map[string]int32{ + "NULL": 0, + "UNKNOWN_ERROR": 1, + "BAD_INPUT": 2, +} + +func (x RpcBlockSetTextIconResponseErrorCode) String() string { + return proto.EnumName(RpcBlockSetTextIconResponseErrorCode_name, int32(x)) +} + +func (RpcBlockSetTextIconResponseErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 5, 4, 1, 0, 0} +} + type RpcBlockSetFileNameResponseErrorCode int32 const ( @@ -12616,6 +12644,214 @@ func (m *RpcBlockSetTextCheckedResponseError) GetDescription() string { return "" } +type RpcBlockSetTextIcon struct { +} + +func (m *RpcBlockSetTextIcon) Reset() { *m = RpcBlockSetTextIcon{} } +func (m *RpcBlockSetTextIcon) String() string { return proto.CompactTextString(m) } +func (*RpcBlockSetTextIcon) ProtoMessage() {} +func (*RpcBlockSetTextIcon) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 5, 4} +} +func (m *RpcBlockSetTextIcon) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcBlockSetTextIcon) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcBlockSetTextIcon.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcBlockSetTextIcon) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcBlockSetTextIcon.Merge(m, src) +} +func (m *RpcBlockSetTextIcon) XXX_Size() int { + return m.Size() +} +func (m *RpcBlockSetTextIcon) XXX_DiscardUnknown() { + xxx_messageInfo_RpcBlockSetTextIcon.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcBlockSetTextIcon proto.InternalMessageInfo + +type RpcBlockSetTextIconRequest struct { + ContextId string `protobuf:"bytes,1,opt,name=contextId,proto3" json:"contextId,omitempty"` + BlockId string `protobuf:"bytes,2,opt,name=blockId,proto3" json:"blockId,omitempty"` + IconImage string `protobuf:"bytes,3,opt,name=iconImage,proto3" json:"iconImage,omitempty"` + IconEmoji string `protobuf:"bytes,5,opt,name=iconEmoji,proto3" json:"iconEmoji,omitempty"` +} + +func (m *RpcBlockSetTextIconRequest) Reset() { *m = RpcBlockSetTextIconRequest{} } +func (m *RpcBlockSetTextIconRequest) String() string { return proto.CompactTextString(m) } +func (*RpcBlockSetTextIconRequest) ProtoMessage() {} +func (*RpcBlockSetTextIconRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 5, 4, 0} +} +func (m *RpcBlockSetTextIconRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcBlockSetTextIconRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcBlockSetTextIconRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcBlockSetTextIconRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcBlockSetTextIconRequest.Merge(m, src) +} +func (m *RpcBlockSetTextIconRequest) XXX_Size() int { + return m.Size() +} +func (m *RpcBlockSetTextIconRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RpcBlockSetTextIconRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcBlockSetTextIconRequest proto.InternalMessageInfo + +func (m *RpcBlockSetTextIconRequest) GetContextId() string { + if m != nil { + return m.ContextId + } + return "" +} + +func (m *RpcBlockSetTextIconRequest) GetBlockId() string { + if m != nil { + return m.BlockId + } + return "" +} + +func (m *RpcBlockSetTextIconRequest) GetIconImage() string { + if m != nil { + return m.IconImage + } + return "" +} + +func (m *RpcBlockSetTextIconRequest) GetIconEmoji() string { + if m != nil { + return m.IconEmoji + } + return "" +} + +type RpcBlockSetTextIconResponse struct { + Error *RpcBlockSetTextIconResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + Event *ResponseEvent `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"` +} + +func (m *RpcBlockSetTextIconResponse) Reset() { *m = RpcBlockSetTextIconResponse{} } +func (m *RpcBlockSetTextIconResponse) String() string { return proto.CompactTextString(m) } +func (*RpcBlockSetTextIconResponse) ProtoMessage() {} +func (*RpcBlockSetTextIconResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 5, 4, 1} +} +func (m *RpcBlockSetTextIconResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcBlockSetTextIconResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcBlockSetTextIconResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcBlockSetTextIconResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcBlockSetTextIconResponse.Merge(m, src) +} +func (m *RpcBlockSetTextIconResponse) XXX_Size() int { + return m.Size() +} +func (m *RpcBlockSetTextIconResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RpcBlockSetTextIconResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcBlockSetTextIconResponse proto.InternalMessageInfo + +func (m *RpcBlockSetTextIconResponse) GetError() *RpcBlockSetTextIconResponseError { + if m != nil { + return m.Error + } + return nil +} + +func (m *RpcBlockSetTextIconResponse) GetEvent() *ResponseEvent { + if m != nil { + return m.Event + } + return nil +} + +type RpcBlockSetTextIconResponseError struct { + Code RpcBlockSetTextIconResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcBlockSetTextIconResponseErrorCode" json:"code,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` +} + +func (m *RpcBlockSetTextIconResponseError) Reset() { *m = RpcBlockSetTextIconResponseError{} } +func (m *RpcBlockSetTextIconResponseError) String() string { return proto.CompactTextString(m) } +func (*RpcBlockSetTextIconResponseError) ProtoMessage() {} +func (*RpcBlockSetTextIconResponseError) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 5, 4, 1, 0} +} +func (m *RpcBlockSetTextIconResponseError) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcBlockSetTextIconResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcBlockSetTextIconResponseError.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcBlockSetTextIconResponseError) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcBlockSetTextIconResponseError.Merge(m, src) +} +func (m *RpcBlockSetTextIconResponseError) XXX_Size() int { + return m.Size() +} +func (m *RpcBlockSetTextIconResponseError) XXX_DiscardUnknown() { + xxx_messageInfo_RpcBlockSetTextIconResponseError.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcBlockSetTextIconResponseError proto.InternalMessageInfo + +func (m *RpcBlockSetTextIconResponseError) GetCode() RpcBlockSetTextIconResponseErrorCode { + if m != nil { + return m.Code + } + return RpcBlockSetTextIconResponseError_NULL +} + +func (m *RpcBlockSetTextIconResponseError) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + type RpcBlockSetFile struct { } @@ -37533,6 +37769,7 @@ func init() { proto.RegisterEnum("anytype.RpcBlockSetTextColorResponseErrorCode", RpcBlockSetTextColorResponseErrorCode_name, RpcBlockSetTextColorResponseErrorCode_value) proto.RegisterEnum("anytype.RpcBlockSetTextStyleResponseErrorCode", RpcBlockSetTextStyleResponseErrorCode_name, RpcBlockSetTextStyleResponseErrorCode_value) proto.RegisterEnum("anytype.RpcBlockSetTextCheckedResponseErrorCode", RpcBlockSetTextCheckedResponseErrorCode_name, RpcBlockSetTextCheckedResponseErrorCode_value) + proto.RegisterEnum("anytype.RpcBlockSetTextIconResponseErrorCode", RpcBlockSetTextIconResponseErrorCode_name, RpcBlockSetTextIconResponseErrorCode_value) proto.RegisterEnum("anytype.RpcBlockSetFileNameResponseErrorCode", RpcBlockSetFileNameResponseErrorCode_name, RpcBlockSetFileNameResponseErrorCode_value) proto.RegisterEnum("anytype.RpcBlockSetImageNameResponseErrorCode", RpcBlockSetImageNameResponseErrorCode_name, RpcBlockSetImageNameResponseErrorCode_value) proto.RegisterEnum("anytype.RpcBlockSetImageWidthResponseErrorCode", RpcBlockSetImageWidthResponseErrorCode_name, RpcBlockSetImageWidthResponseErrorCode_value) @@ -37812,6 +38049,10 @@ func init() { proto.RegisterType((*RpcBlockSetTextCheckedRequest)(nil), "anytype.Rpc.Block.Set.Text.Checked.Request") proto.RegisterType((*RpcBlockSetTextCheckedResponse)(nil), "anytype.Rpc.Block.Set.Text.Checked.Response") proto.RegisterType((*RpcBlockSetTextCheckedResponseError)(nil), "anytype.Rpc.Block.Set.Text.Checked.Response.Error") + proto.RegisterType((*RpcBlockSetTextIcon)(nil), "anytype.Rpc.Block.Set.Text.Icon") + proto.RegisterType((*RpcBlockSetTextIconRequest)(nil), "anytype.Rpc.Block.Set.Text.Icon.Request") + proto.RegisterType((*RpcBlockSetTextIconResponse)(nil), "anytype.Rpc.Block.Set.Text.Icon.Response") + proto.RegisterType((*RpcBlockSetTextIconResponseError)(nil), "anytype.Rpc.Block.Set.Text.Icon.Response.Error") proto.RegisterType((*RpcBlockSetFile)(nil), "anytype.Rpc.Block.Set.File") proto.RegisterType((*RpcBlockSetFileName)(nil), "anytype.Rpc.Block.Set.File.Name") proto.RegisterType((*RpcBlockSetFileNameRequest)(nil), "anytype.Rpc.Block.Set.File.Name.Request") @@ -38314,631 +38555,634 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 9970 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x69, 0x94, 0x24, 0x57, - 0x75, 0x27, 0xde, 0x99, 0x91, 0x5b, 0xdd, 0xea, 0xea, 0x4e, 0x05, 0x4d, 0xab, 0x78, 0x88, 0x46, - 0x34, 0x52, 0x23, 0x64, 0x91, 0x2d, 0xb5, 0x10, 0x48, 0x42, 0x0b, 0x59, 0x59, 0x59, 0x5d, 0xa9, - 0xae, 0xca, 0x2c, 0x47, 0x66, 0x75, 0xa3, 0x3f, 0xfe, 0x4f, 0x4d, 0x54, 0xe6, 0xab, 0xaa, 0xa0, - 0xa2, 0x32, 0x92, 0x88, 0xc8, 0x6a, 0x15, 0x1f, 0x66, 0x06, 0xb0, 0x87, 0xed, 0xc0, 0x18, 0xbc, - 0x88, 0x65, 0xcc, 0x6a, 0x8c, 0xc1, 0x2c, 0x06, 0x83, 0xc5, 0x32, 0x0c, 0xd8, 0x23, 0x8d, 0x10, - 0xc6, 0x63, 0x34, 0x5e, 0x30, 0xf8, 0xc0, 0x60, 0x69, 0x74, 0xce, 0xcc, 0xc8, 0x1e, 0x8c, 0x87, - 0xb1, 0x0f, 0xf6, 0x61, 0x3c, 0x27, 0x5e, 0xbc, 0x58, 0x5e, 0x56, 0x46, 0xe4, 0x8b, 0xac, 0x88, - 0xac, 0xe6, 0xcc, 0xa7, 0xcc, 0xf7, 0xe2, 0x2d, 0xf7, 0xdd, 0xdf, 0x7d, 0xfb, 0x7d, 0xf7, 0xc2, - 0x6c, 0x6f, 0xfd, 0x6c, 0x4f, 0xd7, 0x4c, 0xcd, 0x38, 0xdb, 0xd6, 0x76, 0x76, 0xe4, 0x6e, 0xc7, - 0x28, 0x91, 0xb0, 0x98, 0x97, 0xbb, 0x7b, 0xe6, 0x5e, 0x0f, 0xa3, 0xeb, 0x7a, 0xdb, 0x9b, 0x67, - 0x55, 0x65, 0xfd, 0x6c, 0x6f, 0xfd, 0xec, 0x8e, 0xd6, 0xc1, 0xaa, 0x93, 0x81, 0x04, 0x68, 0x72, - 0x74, 0x43, 0x50, 0x2a, 0x55, 0x6b, 0xcb, 0xaa, 0x61, 0x6a, 0x3a, 0xa6, 0x29, 0x4f, 0x7a, 0x55, - 0xe2, 0x5d, 0xdc, 0x35, 0x9d, 0x12, 0xae, 0xd9, 0xd4, 0xb4, 0x4d, 0x15, 0xdb, 0xdf, 0xd6, 0xfb, - 0x1b, 0x67, 0x0d, 0x53, 0xef, 0xb7, 0x4d, 0xfb, 0xeb, 0xe9, 0x37, 0x3d, 0x98, 0x01, 0x41, 0xea, - 0xb5, 0xd1, 0xc3, 0x69, 0xc8, 0x2f, 0x63, 0x53, 0x57, 0xda, 0x06, 0xfa, 0x7c, 0x1a, 0x66, 0x9a, - 0xd8, 0x5c, 0x91, 0x75, 0x79, 0x07, 0x9b, 0x58, 0x37, 0xd0, 0xf5, 0x90, 0x97, 0xf0, 0xab, 0xfb, - 0xd8, 0x30, 0x45, 0x04, 0x85, 0x9e, 0x2a, 0x9b, 0x1b, 0x9a, 0xbe, 0x33, 0x9b, 0xba, 0x36, 0x75, - 0xc3, 0x94, 0xe4, 0x86, 0xd1, 0x3f, 0xa5, 0xa0, 0x20, 0x61, 0xa3, 0xa7, 0x75, 0x0d, 0x2c, 0x9e, - 0x87, 0x2c, 0xd6, 0x75, 0x4d, 0x27, 0xa9, 0xa6, 0xcf, 0xdd, 0x52, 0xa2, 0x2d, 0x2f, 0x49, 0xbd, - 0x76, 0x89, 0x56, 0x55, 0x62, 0xaa, 0x29, 0x39, 0x79, 0x4b, 0x55, 0x2b, 0xa3, 0x64, 0xe7, 0x47, - 0x1f, 0x4d, 0x41, 0x96, 0x44, 0x88, 0xf7, 0x41, 0xa6, 0xad, 0x75, 0x30, 0x29, 0xf1, 0xd8, 0xb9, - 0x97, 0x44, 0x2e, 0xb1, 0x54, 0xd1, 0x3a, 0x58, 0x22, 0x65, 0x88, 0xd7, 0xc2, 0x74, 0x07, 0x1b, - 0x6d, 0x5d, 0xe9, 0x99, 0x8a, 0xd6, 0x9d, 0x4d, 0x93, 0xa6, 0xf8, 0xa3, 0x4e, 0x9f, 0x83, 0x8c, - 0x95, 0x5e, 0x2c, 0x40, 0xa6, 0xbe, 0xba, 0xb4, 0x54, 0x3c, 0x22, 0x5e, 0x05, 0x33, 0xab, 0xf5, - 0x0b, 0xf5, 0xc6, 0xa5, 0xfa, 0x5a, 0x55, 0x92, 0x1a, 0x52, 0x31, 0x25, 0xce, 0xc0, 0xd4, 0x5c, - 0x79, 0x7e, 0xad, 0x56, 0x5f, 0x59, 0x6d, 0x15, 0xd3, 0xe8, 0x7f, 0xe4, 0xe0, 0x68, 0xf5, 0x01, - 0x13, 0xeb, 0x5d, 0x59, 0x9d, 0xd7, 0xb5, 0x1e, 0x7a, 0x42, 0x80, 0xec, 0x82, 0xa2, 0x62, 0x03, - 0x7d, 0x32, 0xe5, 0x31, 0xf1, 0x1a, 0x98, 0x6a, 0x6b, 0x5d, 0x13, 0x3f, 0x60, 0xd6, 0x3a, 0x94, - 0x8b, 0x5e, 0x84, 0x78, 0x1a, 0x8e, 0x76, 0x74, 0xad, 0xd7, 0x92, 0xf5, 0x4d, 0x6c, 0x25, 0xb0, - 0x69, 0x63, 0xe2, 0xc4, 0x3b, 0xa0, 0xd0, 0xd3, 0x0c, 0x85, 0xd0, 0x2e, 0x10, 0x76, 0x3c, 0xc7, - 0x65, 0x07, 0x11, 0x94, 0xd2, 0x9c, 0xaa, 0xb5, 0xb7, 0x4b, 0x2b, 0x34, 0x91, 0xe4, 0x26, 0x17, - 0xcf, 0xc0, 0x31, 0x22, 0x3d, 0x16, 0x59, 0x2b, 0xb2, 0xb9, 0x65, 0xcc, 0x66, 0xae, 0x15, 0x6e, - 0x98, 0x92, 0x06, 0x62, 0xd1, 0x47, 0xd2, 0x3e, 0x34, 0xe7, 0x59, 0x34, 0x4b, 0x0c, 0xef, 0xfd, - 0x2d, 0x2e, 0x91, 0xd6, 0x0e, 0x87, 0x52, 0xbc, 0x09, 0xb2, 0x44, 0x38, 0x49, 0x93, 0xa6, 0xcf, - 0x9d, 0xf4, 0x4a, 0xa1, 0xc9, 0xab, 0xd6, 0x57, 0xc9, 0x4e, 0x84, 0x7e, 0xc3, 0x05, 0xfe, 0x3c, - 0x03, 0xfc, 0xad, 0xd1, 0x2a, 0x4f, 0x1e, 0xf5, 0x1f, 0xa5, 0x21, 0x5f, 0xb1, 0xe0, 0xeb, 0x9a, - 0x48, 0xe1, 0x45, 0xf9, 0x0c, 0x1c, 0xdb, 0xd0, 0xda, 0x7d, 0x03, 0x77, 0x08, 0x52, 0x2e, 0xce, - 0x03, 0xb1, 0xe2, 0x2c, 0xe4, 0xdb, 0x76, 0xd9, 0x04, 0xe8, 0xa3, 0x92, 0x13, 0x44, 0x3f, 0xf1, - 0x77, 0xb7, 0x05, 0x16, 0xa0, 0x9b, 0x83, 0x79, 0x44, 0x29, 0x0d, 0xe8, 0x6d, 0xbf, 0xe9, 0x32, - 0xbd, 0xc6, 0x30, 0xfd, 0xb6, 0xa8, 0x05, 0x26, 0xcf, 0xf6, 0x3f, 0x3e, 0x0b, 0x53, 0x84, 0x4b, - 0x4b, 0x8a, 0x61, 0xa2, 0x4f, 0x09, 0x70, 0xb2, 0xa2, 0x75, 0x77, 0xb1, 0x6e, 0x56, 0xb6, 0x14, - 0xb5, 0xa3, 0xe3, 0x6e, 0x4b, 0x5b, 0x91, 0x37, 0xb1, 0x81, 0xda, 0xbc, 0x98, 0x20, 0x28, 0xac, - 0xdb, 0x6c, 0x37, 0x66, 0xd3, 0xa4, 0x53, 0xb8, 0x61, 0xf1, 0x14, 0x80, 0xb6, 0xfe, 0x2a, 0xdc, - 0x36, 0x5b, 0x7b, 0x3d, 0x4c, 0xa0, 0x98, 0x92, 0x7c, 0x31, 0xe8, 0x53, 0xfe, 0xee, 0x22, 0xb1, - 0x68, 0xdc, 0xc5, 0x30, 0xcf, 0xa5, 0xb9, 0x34, 0x9c, 0xde, 0x80, 0xce, 0x33, 0x0b, 0x79, 0x55, - 0xe9, 0xfa, 0x68, 0x73, 0x82, 0xe8, 0xb3, 0x2e, 0x66, 0xab, 0x0c, 0x66, 0xe5, 0x83, 0x54, 0x9b, - 0x3c, 0x7e, 0x7f, 0x2f, 0x40, 0x66, 0x59, 0xdb, 0xc5, 0xe8, 0x1b, 0xa9, 0x38, 0x00, 0xba, 0x01, - 0x8e, 0x9b, 0x64, 0x78, 0xac, 0xb8, 0xf9, 0x6d, 0x94, 0x06, 0xa3, 0xf7, 0x0d, 0xb0, 0x99, 0x11, - 0x03, 0x6c, 0x36, 0xd2, 0x00, 0x8b, 0xde, 0xe7, 0x97, 0x84, 0x97, 0xb3, 0x92, 0x70, 0x63, 0x00, - 0x24, 0x16, 0x1f, 0x62, 0x19, 0x34, 0x3f, 0xe8, 0xca, 0x42, 0x85, 0x91, 0x85, 0xb3, 0xfc, 0x15, - 0x27, 0x8f, 0xfc, 0xef, 0x64, 0x60, 0xc6, 0xaa, 0xb8, 0xa5, 0xd5, 0xf1, 0x65, 0x4b, 0xf8, 0xd0, - 0x9f, 0xc6, 0x22, 0x02, 0xb7, 0x40, 0xbe, 0x83, 0x4d, 0x59, 0x51, 0x0d, 0x02, 0xfd, 0xf4, 0xb9, - 0xab, 0x4b, 0xf6, 0xf2, 0xa7, 0xe4, 0x2c, 0x7f, 0x4a, 0x4d, 0xb2, 0xfc, 0x91, 0x9c, 0x74, 0x49, - 0xcb, 0xc2, 0x63, 0x7e, 0x59, 0xa8, 0xb1, 0xb2, 0x70, 0x6b, 0x08, 0x24, 0x2e, 0x67, 0x02, 0x84, - 0xe2, 0x24, 0xe4, 0xec, 0xde, 0x4f, 0x21, 0xa1, 0x21, 0x4f, 0x58, 0x04, 0x1e, 0x61, 0xf9, 0x2d, - 0x57, 0x58, 0x96, 0x18, 0x61, 0xb9, 0x7d, 0x0c, 0xca, 0x92, 0x97, 0x9a, 0xbf, 0x11, 0x60, 0x6a, - 0xbe, 0xdf, 0x53, 0x95, 0xb6, 0x6c, 0x62, 0xf4, 0xee, 0x28, 0x12, 0x63, 0xb2, 0x6b, 0x29, 0x37, - 0xcc, 0x48, 0x93, 0x30, 0x20, 0x4d, 0x7e, 0xd8, 0x33, 0xd1, 0x60, 0x7f, 0xc4, 0x0f, 0x7b, 0x95, - 0x85, 0x3d, 0xa8, 0x27, 0xba, 0x4d, 0x0b, 0x80, 0x3c, 0x4c, 0xf0, 0xa3, 0xc1, 0xfe, 0x11, 0x17, - 0xf6, 0x45, 0x06, 0xf6, 0x17, 0x47, 0xa4, 0x2c, 0x79, 0xc8, 0x3f, 0x7b, 0x0d, 0x08, 0x4d, 0x6c, - 0xa2, 0x5f, 0x07, 0xc8, 0xb4, 0xf0, 0x03, 0x26, 0xfa, 0x7d, 0x01, 0xb2, 0x4d, 0x73, 0x4f, 0xc5, - 0xe8, 0x75, 0xb1, 0x8c, 0x18, 0x77, 0x43, 0xd6, 0xb0, 0x8a, 0xa3, 0x8b, 0xe8, 0x17, 0x0c, 0x05, - 0xd8, 0x59, 0xe0, 0x58, 0x14, 0x94, 0x48, 0xed, 0x92, 0x9d, 0x0b, 0xfd, 0x8e, 0x1f, 0xe7, 0xfb, - 0x58, 0x9c, 0x83, 0xb8, 0xd9, 0xc4, 0xfe, 0x92, 0x62, 0x19, 0xf4, 0x3f, 0xee, 0x02, 0xba, 0xcc, - 0x00, 0x7a, 0xc7, 0x38, 0x24, 0x24, 0x8f, 0xea, 0x3b, 0x05, 0xc8, 0x56, 0x34, 0x55, 0xd3, 0xd1, - 0xfd, 0x71, 0x60, 0x78, 0x02, 0xb2, 0x6d, 0xab, 0x34, 0x3a, 0xdd, 0xdb, 0x81, 0x83, 0x41, 0x43, - 0xa8, 0x3b, 0x5c, 0x68, 0x86, 0x91, 0x90, 0x3c, 0x34, 0x5f, 0xb2, 0xd6, 0x64, 0xb2, 0xbe, 0x8d, - 0xfe, 0x65, 0x1c, 0xc8, 0xdc, 0x09, 0x99, 0x1d, 0x59, 0xdf, 0xa6, 0xa3, 0xd2, 0x99, 0xd1, 0x9d, - 0xcb, 0xaa, 0x5a, 0x22, 0x79, 0xd0, 0xa7, 0xc7, 0x98, 0x39, 0x5d, 0xe6, 0x59, 0xe5, 0xc4, 0x02, - 0x5f, 0xd4, 0x19, 0x32, 0x8c, 0x82, 0xe4, 0xd1, 0xfb, 0xb8, 0x00, 0xc7, 0xe7, 0xe4, 0xf6, 0xf6, - 0xa6, 0xae, 0xf5, 0xbb, 0x9d, 0xc4, 0xbb, 0xd8, 0x97, 0xfd, 0x10, 0x35, 0x58, 0x88, 0xc2, 0xe4, - 0x7b, 0x80, 0xc4, 0x58, 0x80, 0xfa, 0xb4, 0x0b, 0x94, 0xc4, 0x00, 0x75, 0xcf, 0xd8, 0x74, 0x24, - 0x0f, 0xd7, 0xc7, 0x04, 0xc8, 0x96, 0x55, 0x65, 0xb3, 0x8b, 0xfa, 0x71, 0x80, 0x74, 0x33, 0x64, - 0x65, 0xab, 0x34, 0x3a, 0x97, 0xa1, 0xa1, 0xdd, 0x8d, 0xd4, 0x27, 0xd9, 0x09, 0xd1, 0x47, 0xc7, - 0x58, 0xa6, 0x58, 0x8c, 0x23, 0x85, 0xc4, 0x02, 0x5b, 0xd4, 0xa5, 0x48, 0x50, 0xed, 0xc9, 0x83, - 0xf5, 0xf6, 0x0c, 0xe4, 0x16, 0x14, 0xac, 0x76, 0x0c, 0xf4, 0xe7, 0xdc, 0x4b, 0x8f, 0x8b, 0x30, - 0x4d, 0xe0, 0xb1, 0x33, 0x12, 0xc4, 0xc2, 0x67, 0x1f, 0x3b, 0x61, 0x89, 0x96, 0x6e, 0x7f, 0x24, - 0x71, 0x92, 0xbf, 0x20, 0x74, 0x09, 0xc0, 0xfb, 0x24, 0xce, 0x42, 0x9e, 0x0a, 0x01, 0xa5, 0xc0, - 0x09, 0x8a, 0x67, 0x21, 0xb7, 0xe1, 0x54, 0x1d, 0xba, 0x1f, 0xa2, 0xc9, 0xd0, 0x6f, 0xa5, 0x79, - 0xcf, 0x94, 0x02, 0xe8, 0x3e, 0xb8, 0x48, 0xf0, 0x9d, 0x40, 0x71, 0x54, 0x9f, 0xbc, 0x4c, 0x3c, - 0x2a, 0x80, 0x30, 0xaf, 0xec, 0xa2, 0xaf, 0xb8, 0xab, 0xd2, 0xd7, 0xc6, 0xb2, 0x2a, 0xbd, 0x8b, - 0x5d, 0x95, 0x86, 0x4f, 0x9c, 0xf3, 0xca, 0x2e, 0xbb, 0x28, 0x1d, 0x77, 0xe6, 0x74, 0x0b, 0x3a, - 0xb4, 0x99, 0x33, 0x88, 0x82, 0xe4, 0x91, 0xfc, 0x03, 0x01, 0x32, 0x0b, 0x8a, 0x8a, 0x0f, 0x77, - 0x83, 0x61, 0x51, 0x10, 0xcf, 0x06, 0xc3, 0x2b, 0xe9, 0xd0, 0x56, 0xb1, 0x81, 0x24, 0x24, 0x8f, - 0xe6, 0x17, 0x04, 0x28, 0xb4, 0xfa, 0x7a, 0xb7, 0xd6, 0x35, 0xb5, 0x2b, 0x63, 0xa3, 0xc8, 0x7f, - 0x99, 0xe2, 0x31, 0xd1, 0x69, 0xc1, 0x04, 0x2f, 0x53, 0x46, 0x56, 0x9e, 0x3c, 0x76, 0x8f, 0x7f, - 0x3b, 0x05, 0x59, 0x42, 0x07, 0xfa, 0x8c, 0x60, 0x21, 0xd7, 0x53, 0xe5, 0x36, 0x46, 0x3b, 0xbc, - 0x20, 0xfa, 0x26, 0xc3, 0x34, 0x3b, 0x19, 0xde, 0x08, 0x59, 0xf2, 0x97, 0x6e, 0x47, 0x4e, 0x0c, - 0x83, 0x50, 0xb2, 0x93, 0xa0, 0x87, 0xfc, 0x78, 0xdd, 0xcb, 0xe2, 0xf5, 0xc2, 0xfd, 0x2c, 0x2b, - 0x51, 0x32, 0x83, 0x8f, 0xee, 0x03, 0x68, 0x8a, 0x76, 0x70, 0xf3, 0x01, 0x17, 0xc4, 0x39, 0x06, - 0xc4, 0x12, 0x37, 0x45, 0x13, 0x59, 0xd4, 0xce, 0xac, 0xf6, 0x3a, 0xb2, 0x89, 0x9d, 0x2b, 0xb1, - 0x09, 0x43, 0x17, 0x71, 0x51, 0x5b, 0x62, 0x88, 0x1d, 0xd5, 0xd7, 0xe2, 0x3e, 0x5f, 0x0b, 0xad, - 0x3d, 0x79, 0xb0, 0xbe, 0x93, 0x81, 0x6c, 0xb3, 0xa7, 0x2a, 0x26, 0x7a, 0x77, 0x3a, 0x16, 0x94, - 0x74, 0xb9, 0xbb, 0x89, 0x03, 0x50, 0x92, 0xac, 0x6f, 0x92, 0x9d, 0xc4, 0x1b, 0x4f, 0x33, 0xe3, - 0x8c, 0xa7, 0xe2, 0x1d, 0x90, 0xb1, 0x12, 0xd2, 0xe3, 0xf8, 0xeb, 0x87, 0x30, 0x96, 0x34, 0xcb, - 0x5d, 0x48, 0x2f, 0x13, 0x4e, 0x5a, 0x59, 0x4e, 0xdf, 0x02, 0x19, 0x2b, 0x24, 0x02, 0xe4, 0xe6, - 0x1a, 0xad, 0x56, 0x63, 0xb9, 0x78, 0x44, 0xcc, 0x83, 0xd0, 0x6a, 0xac, 0x14, 0x53, 0xe2, 0x14, - 0x64, 0x6b, 0xf5, 0x7a, 0x55, 0x2a, 0xa6, 0xad, 0xbf, 0xad, 0x5a, 0x6b, 0xa9, 0x5a, 0x14, 0xd8, - 0x59, 0xf8, 0x6e, 0x56, 0xa4, 0x5e, 0x10, 0x52, 0x77, 0x92, 0x63, 0xc1, 0xfb, 0x5c, 0x21, 0x7b, - 0x39, 0x23, 0x64, 0x37, 0x71, 0xd2, 0x93, 0xbc, 0x70, 0xfd, 0xaa, 0x00, 0xd9, 0x65, 0xac, 0x6f, - 0x62, 0xf4, 0xea, 0x08, 0xaa, 0x0f, 0x1b, 0x8a, 0x6e, 0x98, 0xec, 0x95, 0x38, 0x13, 0x27, 0x5e, - 0x07, 0x33, 0x06, 0x6e, 0x6b, 0x5d, 0xf7, 0xde, 0xdc, 0x3e, 0x93, 0x60, 0x23, 0xd1, 0xbb, 0x22, - 0x42, 0x46, 0x08, 0x8d, 0x65, 0xa6, 0x8d, 0x02, 0xcc, 0xb0, 0x5a, 0x93, 0x07, 0xe6, 0xef, 0x04, - 0x2b, 0x53, 0x6f, 0x0f, 0xbd, 0x8b, 0x7b, 0x69, 0x74, 0x13, 0xe4, 0x88, 0x98, 0x3a, 0x7b, 0xd8, - 0xe1, 0x23, 0x30, 0x4d, 0x23, 0xce, 0xc1, 0x55, 0x06, 0x56, 0x71, 0xdb, 0xc4, 0x1d, 0xab, 0xeb, - 0x4a, 0x23, 0x07, 0x85, 0xfd, 0xc9, 0xd1, 0xe3, 0x7e, 0x00, 0xef, 0x62, 0x01, 0x3c, 0x33, 0x84, - 0x95, 0x56, 0x83, 0x82, 0x6f, 0x4e, 0xac, 0x66, 0x34, 0x55, 0xcd, 0x74, 0x2f, 0x80, 0x68, 0xd8, - 0xfa, 0xb6, 0x65, 0xee, 0xa8, 0xe4, 0x9b, 0x2d, 0x48, 0x6e, 0x58, 0x2c, 0x41, 0x5e, 0xee, 0xee, - 0x91, 0x4f, 0x99, 0x90, 0x56, 0x3b, 0x89, 0xd0, 0x7b, 0x5d, 0xe4, 0xef, 0x65, 0x90, 0xff, 0x19, - 0x3e, 0x72, 0x93, 0x07, 0xfe, 0x6f, 0x73, 0x90, 0x5d, 0x91, 0x0d, 0x13, 0xa3, 0xef, 0x09, 0x71, - 0xeb, 0xa9, 0xc4, 0x80, 0xb9, 0x78, 0x23, 0x14, 0x9d, 0xc8, 0x39, 0x67, 0x21, 0x6e, 0x2b, 0x27, - 0xed, 0x8b, 0xb7, 0x86, 0x01, 0xc5, 0x58, 0x91, 0x75, 0xb3, 0xb1, 0x41, 0xe2, 0xc8, 0x54, 0x50, - 0x90, 0xd8, 0x48, 0x06, 0xfa, 0x5c, 0x08, 0xf4, 0xf9, 0x60, 0xe8, 0x0b, 0x1c, 0xd0, 0x8b, 0x65, - 0x28, 0x6c, 0x28, 0x2a, 0x26, 0x19, 0xa6, 0x48, 0x86, 0x61, 0x73, 0x12, 0xe1, 0xbd, 0x3b, 0x27, - 0x59, 0x1b, 0x24, 0xc9, 0xcd, 0x86, 0x96, 0xec, 0x1d, 0xa8, 0x28, 0x42, 0xa6, 0x2b, 0xef, 0x60, - 0x8a, 0x04, 0xf9, 0x6f, 0xc5, 0x75, 0x64, 0x53, 0x26, 0xac, 0x3f, 0x2a, 0x91, 0xff, 0x16, 0x6c, - 0x44, 0x63, 0x6b, 0x45, 0x36, 0xb7, 0xa8, 0xe8, 0x7a, 0x11, 0xe8, 0x0d, 0x42, 0xb4, 0xf1, 0xcf, - 0x21, 0x2d, 0xea, 0xcd, 0xe3, 0x75, 0x30, 0xd3, 0x96, 0x75, 0x6c, 0xae, 0xf8, 0xb5, 0xd1, 0xb2, - 0x12, 0x1b, 0x69, 0x01, 0xab, 0x18, 0x4d, 0x79, 0x07, 0x93, 0xca, 0x2a, 0xd6, 0x37, 0x32, 0xf1, - 0x17, 0xa4, 0x7d, 0xf1, 0xde, 0x68, 0x9b, 0x8d, 0x7b, 0xb4, 0x1d, 0xd6, 0xc6, 0xe4, 0x3b, 0xdd, - 0x07, 0x32, 0x20, 0x54, 0xfa, 0xe6, 0x15, 0x3d, 0xd8, 0xfe, 0xc4, 0x3f, 0xd8, 0xbe, 0x8c, 0x95, - 0x96, 0x61, 0x82, 0x5c, 0xe9, 0x9b, 0x87, 0x3b, 0xd6, 0x46, 0x94, 0x92, 0x5f, 0x73, 0xa5, 0xe4, - 0x1e, 0x46, 0x4a, 0x6e, 0xe4, 0x6a, 0x5b, 0xf2, 0x32, 0xf2, 0x51, 0x01, 0x8e, 0xd5, 0x76, 0x7a, - 0x9a, 0x6e, 0x2e, 0xcb, 0xfa, 0x76, 0x47, 0xbb, 0xdc, 0x45, 0xe7, 0x79, 0xa5, 0xe5, 0x14, 0x80, - 0x42, 0xb2, 0x92, 0x81, 0xc0, 0x26, 0xc8, 0x17, 0x83, 0xfe, 0x30, 0xda, 0x91, 0x6e, 0x89, 0xa5, - 0x23, 0x00, 0xe6, 0x6b, 0x61, 0x5a, 0xd7, 0x34, 0x73, 0x89, 0x51, 0x48, 0xf3, 0x47, 0x45, 0x5c, - 0xcd, 0x46, 0x38, 0xf4, 0x0d, 0x27, 0x70, 0x02, 0x17, 0x01, 0x02, 0xe4, 0xaa, 0x0f, 0x58, 0x24, - 0xa0, 0xd5, 0x44, 0x7a, 0x34, 0xab, 0x4a, 0x78, 0x0f, 0x8b, 0xd8, 0x0d, 0x43, 0x18, 0x62, 0x53, - 0x13, 0x80, 0x94, 0x08, 0x99, 0x9e, 0x27, 0x18, 0xe4, 0x7f, 0x44, 0x6c, 0xde, 0xef, 0x62, 0x53, - 0x66, 0xb0, 0x79, 0x11, 0x2f, 0x29, 0xc9, 0x63, 0xf2, 0xa0, 0x00, 0xb9, 0xd5, 0x9e, 0xaa, 0xc9, - 0x1d, 0xa4, 0x1d, 0x7c, 0x1f, 0x8b, 0xec, 0xc9, 0xdc, 0x37, 0xb1, 0xba, 0x61, 0xb1, 0x08, 0x42, - 0x5f, 0x57, 0xa9, 0x9a, 0x98, 0xf5, 0x17, 0xbd, 0x27, 0x22, 0x5a, 0x36, 0x9d, 0xb1, 0x6c, 0x35, - 0xa2, 0x20, 0x33, 0xb4, 0xda, 0xe4, 0x91, 0xf9, 0x41, 0x1a, 0x0a, 0xf3, 0xda, 0xe5, 0x2e, 0xc1, - 0xa6, 0x7c, 0x60, 0x6c, 0xa2, 0x2a, 0x57, 0x96, 0x9c, 0xba, 0x27, 0xad, 0x5c, 0x19, 0x54, 0x71, - 0xf2, 0x1c, 0xff, 0xe4, 0xcd, 0xb6, 0xce, 0xd4, 0x07, 0x05, 0xf7, 0xc2, 0x52, 0x3f, 0x78, 0x9f, - 0xf0, 0x6e, 0x12, 0x05, 0xbe, 0x9b, 0xc4, 0x0f, 0xf9, 0x81, 0x9a, 0x63, 0x81, 0x1a, 0x7a, 0x46, - 0x11, 0xef, 0x2d, 0xe2, 0xaf, 0xbb, 0x50, 0x55, 0x19, 0xa8, 0x6e, 0x89, 0x52, 0x75, 0xf2, 0x60, - 0x3d, 0x25, 0x40, 0x7e, 0xde, 0x56, 0x45, 0x45, 0x8b, 0x90, 0xb3, 0xff, 0x5a, 0x83, 0xcc, 0x36, - 0xde, 0xa3, 0xf0, 0x58, 0x7f, 0xad, 0xc6, 0xef, 0xca, 0x6a, 0x1f, 0xbb, 0x8d, 0x1f, 0xe4, 0xfe, - 0x45, 0xeb, 0xab, 0x64, 0x27, 0x42, 0x5b, 0xbc, 0x78, 0xdf, 0xeb, 0x29, 0xcc, 0xa6, 0x03, 0x77, - 0x2d, 0xe4, 0x66, 0xce, 0x4e, 0x45, 0x7f, 0x5d, 0xf5, 0x59, 0xf4, 0x61, 0x3f, 0xca, 0x15, 0x16, - 0xe5, 0x17, 0x8d, 0x28, 0x2b, 0x0e, 0x98, 0x3f, 0xec, 0xc2, 0xbc, 0xc0, 0xc0, 0x7c, 0x2e, 0x52, - 0xdd, 0x13, 0xb9, 0x5f, 0x3c, 0x2a, 0x61, 0xc3, 0xd4, 0x95, 0xb6, 0x55, 0x86, 0x81, 0xde, 0x98, - 0x3a, 0x78, 0x9f, 0xac, 0xc2, 0x51, 0xdd, 0x57, 0x26, 0xed, 0x99, 0xcf, 0x1b, 0x7a, 0x94, 0xea, - 0xaf, 0x5c, 0x62, 0xb2, 0xb1, 0xcb, 0x8d, 0x45, 0x16, 0xc3, 0x20, 0x3e, 0xfa, 0x8b, 0x8b, 0x05, - 0xc8, 0x8f, 0xb9, 0x40, 0x5e, 0x60, 0x80, 0x7c, 0x69, 0x74, 0x02, 0x92, 0x47, 0xf3, 0x75, 0x02, - 0x64, 0x88, 0xda, 0xfa, 0x8f, 0xd3, 0x00, 0x35, 0xa3, 0xac, 0xb7, 0xb7, 0x94, 0x5d, 0xdc, 0x41, - 0xf2, 0xc1, 0x31, 0xb5, 0x56, 0xf3, 0x6e, 0x81, 0x04, 0xd1, 0x82, 0xe4, 0x8b, 0x41, 0x6f, 0xf0, - 0x83, 0x75, 0x81, 0x05, 0xeb, 0xb6, 0x00, 0x5e, 0x11, 0x6d, 0x6d, 0x8f, 0xcc, 0x80, 0x97, 0x3f, - 0x9f, 0x70, 0x11, 0xa8, 0x33, 0x08, 0xdc, 0x39, 0x56, 0xa9, 0xc9, 0x83, 0xf0, 0x2b, 0x02, 0x64, - 0x97, 0x64, 0x13, 0x3f, 0x80, 0xde, 0x22, 0x50, 0xed, 0xe0, 0xd5, 0x83, 0xf3, 0x5f, 0x84, 0x8c, - 0x95, 0x86, 0xae, 0xfb, 0xc8, 0xff, 0xa8, 0x4a, 0x31, 0x84, 0x3b, 0x84, 0x32, 0xfb, 0xe2, 0x62, - 0xc2, 0x4a, 0x31, 0xe1, 0xd5, 0x4f, 0xe0, 0xf2, 0x7d, 0x86, 0xa2, 0xf1, 0x98, 0x03, 0xcb, 0x2f, - 0xa7, 0x12, 0xc1, 0x45, 0xbc, 0x1b, 0xb2, 0x3b, 0xb2, 0xbe, 0x6d, 0x90, 0xd5, 0xf8, 0x34, 0xcf, - 0x1d, 0x92, 0xb5, 0x69, 0x34, 0x24, 0x3b, 0x57, 0xe4, 0x8b, 0x42, 0x57, 0xb7, 0x33, 0x36, 0x54, - 0xa3, 0x5c, 0x14, 0x86, 0xd5, 0x9e, 0x3c, 0xa8, 0x6f, 0x73, 0x55, 0xb6, 0x2f, 0x1d, 0x1c, 0xcb, - 0xe1, 0xda, 0xa4, 0xe3, 0xf4, 0xb2, 0x98, 0x95, 0xb5, 0xa3, 0xf6, 0xb2, 0x43, 0x54, 0xd4, 0xfe, - 0xbc, 0xab, 0xa7, 0xf4, 0xaf, 0x62, 0xe8, 0x5d, 0x07, 0xd4, 0x6e, 0x19, 0x1b, 0xba, 0xf8, 0x34, - 0x94, 0xc6, 0x82, 0xee, 0xd0, 0x9e, 0x3f, 0xe4, 0x2b, 0x5b, 0xb8, 0xbd, 0x8d, 0x3b, 0xe8, 0x95, - 0x07, 0xc7, 0x6e, 0x16, 0xf2, 0x6d, 0xbb, 0x34, 0xba, 0x5c, 0x70, 0x82, 0x63, 0x2d, 0xec, 0x6c, - 0x91, 0xb6, 0x0b, 0x38, 0x94, 0x85, 0x5d, 0x08, 0x01, 0xc9, 0x43, 0xf3, 0x0e, 0x47, 0x0d, 0xf0, - 0x4d, 0x02, 0x64, 0xea, 0xf2, 0x0e, 0x8e, 0x69, 0x49, 0x41, 0x2e, 0x74, 0x04, 0xef, 0x42, 0x67, - 0xac, 0xb9, 0x87, 0x28, 0xd4, 0x59, 0x44, 0x1d, 0xca, 0xdc, 0x13, 0x54, 0x7b, 0xf2, 0xa0, 0x7c, - 0x23, 0x0b, 0xd9, 0xda, 0x8e, 0xb5, 0xdc, 0xfe, 0x6e, 0x3a, 0x59, 0x54, 0xf8, 0x5f, 0xd4, 0x7b, - 0x7c, 0x21, 0x94, 0x85, 0xc0, 0x12, 0x79, 0x64, 0x0a, 0x2c, 0x30, 0x79, 0x4e, 0x3f, 0x91, 0x86, - 0xec, 0x25, 0xa5, 0x63, 0x6e, 0xc5, 0x34, 0xcb, 0x5f, 0xb6, 0xca, 0xa2, 0x37, 0x82, 0x76, 0x20, - 0x82, 0x8d, 0x90, 0x41, 0x8e, 0x10, 0xc2, 0x0e, 0x64, 0x23, 0x84, 0xa7, 0xc4, 0xc9, 0x88, 0xf3, - 0x45, 0xa5, 0x83, 0xb5, 0x2b, 0x52, 0x9c, 0x09, 0x65, 0x71, 0x8a, 0x73, 0x60, 0x81, 0xff, 0xcf, - 0x8a, 0xb3, 0xcd, 0x91, 0x38, 0xc5, 0x39, 0xb8, 0xc4, 0xe4, 0x99, 0xfc, 0x15, 0x01, 0x32, 0x4b, - 0x4a, 0x77, 0x1b, 0xfd, 0xae, 0x00, 0x33, 0xf6, 0x93, 0x79, 0x47, 0x07, 0x6b, 0xf3, 0xe0, 0x5c, - 0xbf, 0x0e, 0x66, 0x4c, 0x7f, 0x99, 0x8e, 0xb2, 0x17, 0x13, 0x89, 0xbe, 0xe4, 0x9f, 0x4d, 0xeb, - 0x2c, 0x0a, 0xb7, 0x07, 0xed, 0x90, 0x95, 0xee, 0x76, 0x89, 0xa1, 0x37, 0x96, 0x69, 0xf5, 0xb7, - 0x5d, 0xe8, 0x7e, 0x96, 0x81, 0xee, 0xee, 0x71, 0xc9, 0x48, 0x1e, 0xc1, 0x87, 0x73, 0x16, 0xf7, - 0x54, 0x99, 0xbc, 0x5c, 0x7f, 0xab, 0x00, 0xb9, 0x26, 0x36, 0x2f, 0xe0, 0x3d, 0xd4, 0x3c, 0x38, - 0x7c, 0xf4, 0x20, 0x5b, 0x70, 0x0f, 0xb2, 0xd1, 0x27, 0xd2, 0xd1, 0x3a, 0x8c, 0x43, 0x58, 0xc9, - 0x26, 0x2a, 0x16, 0x8c, 0xa2, 0x74, 0xaf, 0xf0, 0xfa, 0x93, 0x07, 0xe7, 0x23, 0x02, 0x08, 0xe5, - 0x4e, 0x07, 0xed, 0x1e, 0x1c, 0x8c, 0x5b, 0xa1, 0xa0, 0xd3, 0xd6, 0xb8, 0x97, 0x38, 0x03, 0xfa, - 0x21, 0xf4, 0xb3, 0xe4, 0x26, 0x8c, 0xfa, 0x70, 0xc1, 0xe3, 0x57, 0xb9, 0xd3, 0x99, 0xf4, 0xc3, - 0x85, 0xb0, 0xca, 0x27, 0x70, 0xef, 0x26, 0x00, 0x34, 0x3c, 0x7b, 0x40, 0xef, 0x13, 0xec, 0x6b, - 0xb8, 0x65, 0x5e, 0xe0, 0xae, 0x83, 0x19, 0xcf, 0x9c, 0xd0, 0xaa, 0xae, 0x3a, 0x43, 0x1d, 0x13, - 0x89, 0xbe, 0x16, 0x71, 0xab, 0xed, 0x51, 0xe4, 0x1c, 0x9b, 0x1f, 0x18, 0x91, 0x47, 0x22, 0xac, - 0x00, 0x42, 0xab, 0x8f, 0x86, 0x49, 0x23, 0x3a, 0x26, 0xe2, 0xb3, 0xe1, 0x6a, 0x27, 0x45, 0x63, - 0xee, 0xbe, 0x6a, 0xa5, 0xb5, 0xd6, 0xba, 0x7f, 0xa5, 0xba, 0xb6, 0x2a, 0x2d, 0x15, 0x05, 0xf4, - 0x60, 0x1e, 0x0a, 0x73, 0x9a, 0xb6, 0x4d, 0x9e, 0x9b, 0xbf, 0x59, 0x80, 0xec, 0x02, 0x36, 0xdb, - 0x5b, 0x31, 0x0d, 0x7b, 0x7d, 0x17, 0x40, 0xa2, 0x24, 0x10, 0xf5, 0x84, 0xc4, 0xa1, 0xab, 0x44, - 0x68, 0x9a, 0xf8, 0x09, 0x49, 0x68, 0xf5, 0xc9, 0x77, 0xa5, 0x9f, 0x08, 0x70, 0xac, 0xa2, 0x63, - 0xd9, 0xc4, 0xe5, 0x6e, 0xc7, 0x46, 0xe5, 0x17, 0x63, 0x31, 0xf7, 0x72, 0x00, 0xb3, 0x79, 0xfb, - 0x15, 0x3f, 0xbe, 0x15, 0xed, 0xf9, 0xbb, 0xc7, 0x54, 0xb6, 0x69, 0x09, 0xbf, 0x13, 0x88, 0xf0, - 0x30, 0x9e, 0x93, 0xc2, 0xe4, 0xf1, 0x7f, 0x32, 0x43, 0x8f, 0x61, 0xbe, 0x93, 0x81, 0xe3, 0x2e, - 0x2d, 0x54, 0xc1, 0xe7, 0x6f, 0xaf, 0x38, 0x49, 0x60, 0x55, 0x71, 0xb3, 0x03, 0xaa, 0xb8, 0xe2, - 0x9c, 0xad, 0x4e, 0x44, 0xec, 0xc6, 0xe5, 0x38, 0x1e, 0xf4, 0x92, 0x93, 0x16, 0x2b, 0xb5, 0xe4, - 0xe6, 0x63, 0xb5, 0xe1, 0x97, 0x58, 0x59, 0x1b, 0xb6, 0x6c, 0x21, 0x65, 0x0c, 0x70, 0x2e, 0x61, - 0x41, 0xfb, 0xa4, 0x2b, 0x68, 0x0d, 0x46, 0xd0, 0x5e, 0x36, 0x1e, 0x79, 0x13, 0xb0, 0x96, 0x71, - 0x17, 0x14, 0xe6, 0x65, 0x53, 0xde, 0x55, 0xf0, 0x65, 0xf4, 0x7d, 0x01, 0xe0, 0xa2, 0x82, 0x2f, - 0xdb, 0x44, 0x45, 0x78, 0xc7, 0x1d, 0xcc, 0xbe, 0x7b, 0x20, 0x63, 0x15, 0x4d, 0x6f, 0xa7, 0x6e, - 0x0c, 0x7f, 0xc4, 0x4d, 0xe9, 0x28, 0x59, 0x34, 0x48, 0x24, 0x1f, 0xab, 0xb8, 0xc9, 0x71, 0xd5, - 0xcb, 0x94, 0x61, 0xb7, 0x23, 0x8e, 0x89, 0x43, 0x3c, 0x09, 0x39, 0xab, 0x58, 0x77, 0xf3, 0x45, - 0x43, 0x91, 0x2e, 0x8c, 0x47, 0xd3, 0x96, 0x3c, 0xde, 0x0e, 0xc4, 0xf6, 0x93, 0xbb, 0x08, 0xfa, - 0xd8, 0xc1, 0x10, 0x07, 0xb0, 0xe6, 0xc0, 0xd0, 0x7f, 0xee, 0x20, 0xd0, 0xdb, 0xed, 0x8b, 0x65, - 0xcd, 0x30, 0x36, 0xc4, 0x43, 0x69, 0x48, 0x1e, 0xe2, 0xf7, 0x51, 0x88, 0xe7, 0xb1, 0x8a, 0x4d, - 0xcc, 0x6f, 0xfb, 0x86, 0x07, 0xe1, 0x0c, 0x23, 0xfc, 0x07, 0x42, 0xc8, 0x26, 0xef, 0x70, 0x11, - 0x1a, 0x4a, 0x43, 0xf2, 0x08, 0x7d, 0x5d, 0x80, 0xe3, 0x56, 0xf5, 0x4d, 0xef, 0x75, 0x08, 0xbf, - 0xf5, 0x9b, 0xc8, 0x30, 0x11, 0x73, 0xd5, 0x7e, 0xd3, 0x8d, 0x33, 0x3e, 0x23, 0x7d, 0x5f, 0xf1, - 0x43, 0xb8, 0xc2, 0x42, 0x38, 0x92, 0x7d, 0x3e, 0xfa, 0x63, 0xc1, 0xf1, 0x33, 0x2e, 0x8e, 0x4d, - 0x06, 0xc7, 0x7b, 0xc7, 0x27, 0x24, 0x79, 0x30, 0xbf, 0x25, 0xc0, 0x0c, 0xa5, 0xa1, 0xdc, 0x36, - 0x95, 0x5d, 0x8c, 0xde, 0x90, 0xe0, 0xa0, 0x7a, 0x12, 0x72, 0xda, 0xc6, 0x86, 0x41, 0x9f, 0x0e, - 0xcd, 0x48, 0x34, 0x24, 0x9e, 0x80, 0xac, 0xaa, 0xec, 0x28, 0x26, 0x05, 0xd8, 0x0e, 0x44, 0x3e, - 0x13, 0x1c, 0x64, 0xaa, 0xdd, 0xa0, 0x89, 0x9f, 0x09, 0x72, 0x91, 0x91, 0x3c, 0xb2, 0x9f, 0x20, - 0xfa, 0x8a, 0x6d, 0x4d, 0xef, 0xd0, 0xd9, 0xf2, 0x6d, 0xa9, 0x58, 0xf4, 0xea, 0x75, 0x52, 0xa6, - 0x0b, 0xad, 0x1b, 0x16, 0xcf, 0x42, 0xce, 0xfe, 0x4f, 0xe7, 0xcc, 0x60, 0xfd, 0x62, 0x3b, 0x19, - 0x7a, 0x8b, 0x1f, 0xdf, 0x65, 0x16, 0xdf, 0x97, 0x86, 0x31, 0xd6, 0xdf, 0xac, 0x80, 0xf3, 0xf7, - 0x4f, 0xb9, 0x80, 0xad, 0x30, 0x80, 0xdd, 0x35, 0x66, 0xb9, 0x13, 0x79, 0x40, 0x44, 0xf1, 0xa2, - 0x53, 0xdf, 0xff, 0x9f, 0x28, 0x5c, 0xe8, 0x0b, 0x07, 0xe3, 0x7e, 0x8c, 0x13, 0xe0, 0x01, 0xb0, - 0x3a, 0xa4, 0x29, 0xf0, 0x09, 0x17, 0x2b, 0xba, 0xd9, 0x78, 0x47, 0x2a, 0x16, 0xfd, 0x7c, 0xda, - 0x7f, 0x04, 0xae, 0xfe, 0x23, 0x9e, 0x02, 0x30, 0xf1, 0x4e, 0x4f, 0x95, 0x4d, 0xec, 0xce, 0x9a, - 0xbe, 0x18, 0xf4, 0xef, 0x0e, 0x86, 0x70, 0xe8, 0xfe, 0xc3, 0x23, 0x36, 0xcd, 0xd7, 0xd9, 0x0f, - 0x00, 0xf2, 0x21, 0x6d, 0x36, 0x7e, 0x35, 0x03, 0xd3, 0xce, 0x71, 0xf4, 0x61, 0x9e, 0xdf, 0xbf, - 0x4d, 0x88, 0x76, 0x70, 0xe0, 0xe3, 0x9e, 0x4b, 0x7c, 0x2c, 0xbb, 0xc8, 0x6b, 0x61, 0xda, 0x21, - 0xea, 0x82, 0x7b, 0x25, 0xe4, 0x8f, 0x62, 0xda, 0x97, 0xe1, 0x6d, 0x5f, 0x94, 0x53, 0x07, 0x8e, - 0xb6, 0x25, 0x2f, 0x18, 0x4f, 0x0b, 0x70, 0xcc, 0xa9, 0x9f, 0xce, 0xad, 0xef, 0x8c, 0xa1, 0xff, - 0x27, 0xc4, 0xde, 0x88, 0x26, 0x3e, 0xf7, 0xb3, 0x38, 0xc6, 0xcd, 0x68, 0x94, 0x93, 0x4c, 0x3e, - 0x3a, 0x92, 0x47, 0xfb, 0x73, 0x3e, 0xb4, 0xe9, 0xcc, 0xdc, 0x9e, 0x00, 0xd8, 0x07, 0xc7, 0x8d, - 0x6f, 0x86, 0x16, 0x12, 0xc7, 0xed, 0x90, 0xe6, 0xe8, 0xef, 0x66, 0xe0, 0x6a, 0x7b, 0xfe, 0x70, - 0x08, 0x69, 0xf4, 0x9c, 0xa1, 0xfc, 0xa1, 0x89, 0x74, 0xd7, 0x97, 0x40, 0x4e, 0xeb, 0xf9, 0x3a, - 0xeb, 0xa9, 0x80, 0xce, 0x5a, 0xb2, 0x09, 0x93, 0x68, 0x6a, 0x66, 0xd5, 0x96, 0x1d, 0x58, 0xb5, - 0x31, 0x46, 0x21, 0x5e, 0xc1, 0x4a, 0xc5, 0xdc, 0xe8, 0xa9, 0x74, 0x1f, 0x2b, 0x62, 0x99, 0x18, - 0xbc, 0x86, 0x0a, 0x51, 0x1a, 0x8a, 0xbe, 0xe8, 0x8a, 0xd5, 0x2b, 0x19, 0xb1, 0x3a, 0x7f, 0xf0, - 0x86, 0x4c, 0xe0, 0xb2, 0x38, 0x03, 0x68, 0x18, 0x2d, 0x74, 0x46, 0xf8, 0xe9, 0x15, 0xb1, 0x3f, - 0xf5, 0x0f, 0x3c, 0xaf, 0x64, 0x45, 0xac, 0x1a, 0x15, 0x99, 0x18, 0x27, 0x8f, 0x2f, 0xbb, 0xd2, - 0xf2, 0xcf, 0x18, 0x69, 0xb9, 0x2f, 0x16, 0x9a, 0x26, 0xa0, 0x99, 0x1c, 0x20, 0x30, 0x74, 0x52, - 0x79, 0xcf, 0x44, 0x04, 0x06, 0x41, 0xc1, 0x16, 0x01, 0x77, 0xc7, 0xe0, 0x86, 0x27, 0x27, 0x14, - 0x31, 0xee, 0x1d, 0x63, 0x13, 0x8a, 0x43, 0x9a, 0xa5, 0xfe, 0x40, 0x80, 0x67, 0x3a, 0x84, 0x2c, - 0x29, 0x86, 0x59, 0xde, 0x95, 0x15, 0x55, 0x5e, 0x57, 0x71, 0x1c, 0x2f, 0xed, 0xff, 0xa7, 0x1f, - 0xb4, 0x8b, 0x2c, 0x68, 0x2f, 0xe7, 0x99, 0xba, 0x19, 0x8a, 0x02, 0xf0, 0xba, 0x0d, 0xa6, 0x1c, - 0x01, 0x73, 0x9e, 0x20, 0x07, 0xae, 0x4a, 0xbd, 0x94, 0xe8, 0x3f, 0xbb, 0xc0, 0xdd, 0xcf, 0x00, - 0x57, 0x3d, 0x28, 0x5d, 0xd1, 0x30, 0x5b, 0x1a, 0x43, 0x25, 0x65, 0x16, 0x4e, 0xd4, 0x1b, 0xad, - 0xb5, 0xf2, 0xda, 0x7c, 0xb9, 0x55, 0xbe, 0x58, 0xab, 0x5e, 0x5a, 0x9b, 0x5b, 0x6a, 0x54, 0x2e, - 0x14, 0x05, 0xf4, 0x6f, 0x05, 0x98, 0x6a, 0x62, 0xb3, 0xa9, 0xf5, 0xf5, 0x76, 0x5c, 0x77, 0x17, - 0x06, 0x29, 0x8c, 0xba, 0xb6, 0xa1, 0xa1, 0xa8, 0x46, 0x85, 0x3d, 0x0e, 0xba, 0xd4, 0x8d, 0xea, - 0x7d, 0x99, 0x98, 0x8d, 0x0a, 0x8f, 0x26, 0x21, 0xf9, 0xce, 0xf6, 0x41, 0x01, 0x84, 0xf3, 0xd8, - 0x44, 0xef, 0x16, 0x20, 0x4b, 0xde, 0x11, 0xc6, 0x64, 0xd8, 0x94, 0xd7, 0x64, 0x26, 0xfa, 0x80, - 0x1f, 0xb6, 0x32, 0x0b, 0xdb, 0x30, 0x13, 0x73, 0xe7, 0x31, 0x7d, 0xf0, 0x18, 0xcb, 0x58, 0xf9, - 0x21, 0x17, 0xad, 0x79, 0x06, 0xad, 0x9b, 0x23, 0xd4, 0x9c, 0x3c, 0x48, 0x77, 0xc0, 0xf1, 0xd5, - 0x6e, 0x47, 0x93, 0x70, 0x47, 0xab, 0x68, 0xfd, 0xae, 0x89, 0x89, 0x01, 0x9c, 0x7e, 0xb7, 0xa3, - 0x11, 0x72, 0xb3, 0x12, 0xf9, 0x6f, 0xc5, 0xe9, 0xb8, 0xa3, 0x91, 0x5a, 0xb3, 0x12, 0xf9, 0x8f, - 0xde, 0x23, 0x40, 0xc6, 0xca, 0x8b, 0x5e, 0xc0, 0x09, 0x2b, 0xfa, 0xef, 0x11, 0x4d, 0x14, 0x5a, - 0xa5, 0xc7, 0xb2, 0x64, 0xbe, 0x07, 0x0a, 0x6d, 0xbb, 0x75, 0xce, 0xa3, 0xff, 0xd3, 0x01, 0xd5, - 0xf9, 0x18, 0x21, 0xb9, 0x79, 0x7c, 0x17, 0x12, 0xa3, 0x0d, 0x15, 0x0e, 0x21, 0x3a, 0x1a, 0x8c, - 0xf3, 0x63, 0x0c, 0x92, 0x45, 0x38, 0x5a, 0x29, 0xd7, 0xd7, 0xac, 0x81, 0x72, 0xb9, 0x71, 0xb1, - 0x5a, 0x14, 0x08, 0x3a, 0x56, 0x63, 0x92, 0x43, 0xc7, 0x2a, 0xfd, 0xa7, 0x0e, 0x9d, 0x21, 0x44, - 0x1f, 0x06, 0x3a, 0x1f, 0x11, 0x20, 0xd3, 0xe8, 0xe1, 0x6e, 0x4c, 0xef, 0x19, 0x4d, 0x5d, 0x6e, - 0x63, 0xf7, 0xd6, 0xc1, 0x09, 0xa2, 0xdf, 0x8b, 0x88, 0xa8, 0x45, 0x51, 0x2c, 0x63, 0xdf, 0xd7, - 0x22, 0x20, 0x32, 0xa4, 0xd2, 0x68, 0x88, 0xfc, 0xdc, 0x18, 0x88, 0xcc, 0xc0, 0x94, 0x85, 0xc6, - 0x42, 0x63, 0xb5, 0x3e, 0x5f, 0x14, 0xc4, 0x67, 0xc1, 0x33, 0xcb, 0xf5, 0xfb, 0x89, 0xaa, 0x6b, - 0xbd, 0x5a, 0x9d, 0x6f, 0xae, 0xad, 0xae, 0x9c, 0x97, 0xca, 0xf3, 0xd5, 0x22, 0x10, 0xa4, 0x9a, - 0x5b, 0xda, 0xe5, 0x2b, 0x0b, 0x29, 0x8b, 0xa2, 0x89, 0x23, 0x35, 0xa4, 0xd2, 0x2b, 0x09, 0xa9, - 0xaf, 0xa7, 0xe1, 0xf8, 0x79, 0x6c, 0xae, 0xf4, 0xd7, 0x55, 0xa5, 0x7d, 0x09, 0xaf, 0xaf, 0x4a, - 0x4b, 0xe8, 0xf9, 0x1e, 0x68, 0x81, 0x4e, 0x5f, 0xd0, 0xdb, 0x23, 0x3e, 0xb1, 0x18, 0xa8, 0x24, - 0x00, 0x07, 0xaa, 0xf5, 0x98, 0xf6, 0xf4, 0x5f, 0xa3, 0x3c, 0xa3, 0x08, 0xaf, 0x23, 0xf9, 0x75, - 0xc1, 0x7b, 0x05, 0x38, 0x6e, 0xf5, 0xcc, 0x39, 0x1d, 0xcb, 0x9d, 0xb6, 0xde, 0xdf, 0x59, 0x37, - 0x22, 0xed, 0x91, 0x1c, 0x39, 0x4f, 0xb3, 0x72, 0xfe, 0x68, 0x44, 0x56, 0x0f, 0x90, 0x90, 0xb0, - 0x46, 0x66, 0x14, 0x80, 0xc2, 0x29, 0x4b, 0x1e, 0xa0, 0xd7, 0x0a, 0x70, 0xac, 0x89, 0xcd, 0x00, - 0x7c, 0xae, 0x83, 0x99, 0x75, 0xef, 0x8b, 0x8b, 0x11, 0x1b, 0x69, 0x89, 0xa8, 0xe2, 0x1a, 0xa3, - 0xb4, 0xfe, 0x8e, 0x63, 0x98, 0x60, 0x34, 0x3c, 0x89, 0x1a, 0x26, 0x38, 0x4c, 0x0c, 0xfe, 0x5a, - 0x80, 0x1c, 0xbd, 0x92, 0xfe, 0x58, 0x2c, 0x4a, 0xd6, 0x11, 0xdc, 0x36, 0x1c, 0xc4, 0xdb, 0xea, - 0xe7, 0x22, 0x5a, 0x60, 0x0c, 0xbd, 0x9b, 0x8e, 0xab, 0xf3, 0x45, 0xb1, 0xcd, 0x78, 0x48, 0x77, - 0xd4, 0x7f, 0x9d, 0x01, 0xb0, 0xab, 0x26, 0xc6, 0xac, 0x5e, 0xc7, 0xed, 0x02, 0x62, 0x0c, 0x3f, - 0xcb, 0xac, 0xba, 0x41, 0x76, 0x50, 0xdd, 0x80, 0x5b, 0x57, 0x3f, 0x9a, 0x68, 0xf8, 0xcc, 0x16, - 0xe6, 0xf8, 0xcc, 0x16, 0x7e, 0x3b, 0xa2, 0xd9, 0x42, 0x8f, 0x7f, 0x91, 0xe5, 0xc9, 0xdf, 0x64, - 0x61, 0xa0, 0xc9, 0xd1, 0x4e, 0x52, 0xa2, 0x18, 0x3b, 0x0c, 0x24, 0x38, 0x79, 0x79, 0xfb, 0x4f, - 0x19, 0x98, 0xb2, 0xab, 0x6f, 0x62, 0x13, 0x3d, 0x16, 0xcb, 0x10, 0x13, 0x70, 0xc6, 0xe5, 0x17, - 0xd1, 0x0c, 0xa7, 0x88, 0x1e, 0xc0, 0xcd, 0xf7, 0x8f, 0x22, 0x1e, 0xcd, 0xb8, 0x5c, 0x38, 0x44, - 0xa1, 0xf9, 0x6a, 0x84, 0x03, 0x9d, 0x20, 0x7a, 0x0f, 0xf9, 0x05, 0xdf, 0xd3, 0x69, 0xc8, 0xad, - 0x76, 0x55, 0xa5, 0xbb, 0x8d, 0x2a, 0x31, 0x38, 0xf9, 0x8a, 0x6e, 0xca, 0x97, 0xd4, 0x3d, 0x79, - 0x53, 0xbe, 0xc3, 0xaa, 0x9d, 0x80, 0xc9, 0xa9, 0x34, 0x64, 0x2b, 0xaa, 0x66, 0xc4, 0x72, 0xbb, - 0xf0, 0x74, 0x2a, 0x9a, 0x7f, 0x02, 0x52, 0x71, 0x80, 0xba, 0x66, 0x14, 0x1f, 0x00, 0xc3, 0xca, - 0x49, 0x9e, 0x75, 0x7f, 0x71, 0x14, 0xa6, 0x2e, 0x69, 0xfa, 0xb6, 0xd1, 0x93, 0xdb, 0x18, 0x7d, - 0x21, 0x0d, 0x70, 0x1e, 0x9b, 0x95, 0xbe, 0xae, 0x5b, 0xd0, 0x4f, 0xb9, 0xdc, 0x64, 0xad, 0x1b, - 0x87, 0xae, 0x57, 0xdd, 0xd2, 0x4a, 0x5e, 0x49, 0xc1, 0xb6, 0xda, 0x2f, 0x3b, 0xa9, 0x5d, 0x20, - 0xfc, 0x51, 0x9c, 0x6b, 0x54, 0x8e, 0x2a, 0x93, 0xe7, 0xe4, 0xa7, 0xd2, 0x90, 0x3b, 0x8f, 0xcd, - 0xb2, 0xaa, 0xfa, 0xf9, 0xf6, 0x2e, 0xee, 0x59, 0x9b, 0x69, 0x44, 0x59, 0x55, 0x03, 0x78, 0x76, - 0x1a, 0x8e, 0xfa, 0x18, 0xe4, 0x8c, 0x14, 0x4c, 0x1c, 0xe7, 0xac, 0x3b, 0xa2, 0xc2, 0xe4, 0x39, - 0xf6, 0x7b, 0x69, 0x77, 0x55, 0xff, 0x1c, 0xaf, 0xdf, 0x0e, 0xf1, 0x32, 0x82, 0x1e, 0x1c, 0x83, - 0x8b, 0xa1, 0x6b, 0xe9, 0xd1, 0x92, 0x17, 0x95, 0x87, 0x87, 0xb4, 0x52, 0x7e, 0x3a, 0x0d, 0xc5, - 0x26, 0x36, 0x6b, 0xc6, 0xa2, 0xb2, 0xb9, 0xa5, 0x2a, 0x9b, 0x5b, 0x26, 0xee, 0xa0, 0x0b, 0x1e, - 0x37, 0x11, 0x14, 0xec, 0x67, 0xfa, 0xee, 0x20, 0xe8, 0x86, 0x6d, 0x47, 0x35, 0xbe, 0x7c, 0x84, - 0x26, 0xe2, 0xa8, 0xc6, 0x5f, 0xd8, 0x9b, 0xb8, 0x1f, 0x78, 0x7a, 0xcc, 0x18, 0xa4, 0x28, 0x60, - 0x78, 0xe4, 0x53, 0x91, 0xe4, 0x2e, 0x76, 0x02, 0x8f, 0x0f, 0xd2, 0x90, 0x6b, 0x12, 0x1f, 0x25, - 0xe8, 0x67, 0x3c, 0x1e, 0x0f, 0x08, 0x53, 0x6a, 0xbf, 0x30, 0xfd, 0xef, 0x54, 0x74, 0xf9, 0xb5, - 0xeb, 0x09, 0xe0, 0x5c, 0x54, 0xe9, 0x1c, 0x5a, 0xd8, 0x04, 0x0c, 0xb8, 0x14, 0x20, 0x77, 0x49, - 0x56, 0x55, 0x6c, 0xa2, 0xef, 0x79, 0x9d, 0xfd, 0x7a, 0x46, 0x3c, 0x75, 0x4d, 0xb3, 0x1d, 0x84, - 0x50, 0xf1, 0x74, 0xc2, 0xe8, 0xe3, 0xdc, 0x9e, 0x2e, 0xed, 0x2a, 0xc2, 0x7b, 0x3c, 0x82, 0xc2, - 0x4e, 0x17, 0xef, 0x68, 0x5d, 0xa5, 0xed, 0x2c, 0xd5, 0x9d, 0x30, 0xfa, 0x7d, 0x2e, 0xef, 0x95, - 0x61, 0xb5, 0x44, 0x63, 0x65, 0x73, 0x8c, 0xe5, 0xe6, 0x73, 0xe1, 0xd9, 0x0b, 0xe5, 0xda, 0x52, - 0x75, 0x7e, 0xad, 0xd5, 0x58, 0xab, 0x48, 0xd5, 0x72, 0xab, 0xba, 0xb6, 0xd4, 0xa8, 0x94, 0x97, - 0xd6, 0xa4, 0xea, 0x4a, 0xa3, 0x88, 0xd1, 0x5f, 0x92, 0x4d, 0x72, 0x5b, 0xdb, 0xc5, 0xba, 0x7f, - 0x19, 0x14, 0xc2, 0xe1, 0x50, 0x9e, 0xbc, 0x83, 0xdb, 0x9d, 0x01, 0xe5, 0x0b, 0xad, 0x3b, 0x40, - 0x60, 0xff, 0x03, 0x97, 0x83, 0x82, 0xd0, 0xa2, 0xae, 0x00, 0x1e, 0xff, 0x28, 0x0d, 0xf9, 0x8a, - 0xd6, 0xdd, 0xc5, 0xba, 0x89, 0xee, 0x65, 0x78, 0xec, 0xf2, 0x31, 0xc5, 0xf2, 0xd1, 0x5a, 0x68, - 0xe2, 0xae, 0xa9, 0x6b, 0xbd, 0x3d, 0x67, 0xa1, 0x49, 0x83, 0xac, 0x01, 0x1b, 0x1e, 0x0e, 0xd3, - 0x9a, 0x83, 0x77, 0x66, 0xc3, 0x2b, 0x62, 0xc8, 0x13, 0x06, 0x60, 0xfe, 0x60, 0x14, 0x5c, 0x86, - 0x13, 0x90, 0xfc, 0x30, 0xf2, 0xc6, 0x13, 0x90, 0x2f, 0xb7, 0xc9, 0x35, 0x24, 0x7a, 0x2a, 0x05, - 0xb9, 0x8a, 0xd6, 0xdd, 0x50, 0x36, 0xc5, 0x33, 0x70, 0x0c, 0x77, 0xe5, 0x75, 0x15, 0x3b, 0x3a, - 0x18, 0x84, 0xf6, 0x82, 0x34, 0x10, 0x6b, 0x11, 0x45, 0x63, 0xf0, 0x7a, 0x7f, 0x93, 0xce, 0x72, - 0xfe, 0x28, 0xf1, 0x1e, 0x40, 0x76, 0x50, 0xc2, 0x2a, 0x96, 0x0d, 0x5c, 0xd9, 0x92, 0xbb, 0x5d, - 0xac, 0x36, 0x2f, 0x2b, 0x66, 0x7b, 0x8b, 0x1a, 0x2f, 0x0d, 0x49, 0x61, 0x2d, 0xca, 0xec, 0xaf, - 0x4d, 0x6b, 0xb4, 0x35, 0xa8, 0x07, 0x31, 0x26, 0x4e, 0x7c, 0x11, 0x64, 0xf1, 0x03, 0xa6, 0x2e, - 0xcf, 0x76, 0xc2, 0x77, 0xfd, 0x76, 0x2a, 0xf4, 0x68, 0xd6, 0x1d, 0x2f, 0x3f, 0x90, 0x0a, 0x5d, - 0x1d, 0x89, 0x37, 0xc2, 0x71, 0x79, 0x57, 0x36, 0x65, 0x7d, 0xc9, 0x35, 0xf5, 0x40, 0x18, 0xbf, - 0x78, 0x44, 0x1a, 0xfc, 0x20, 0x9e, 0x86, 0x69, 0x3b, 0xaa, 0xe2, 0xd9, 0x39, 0x5e, 0x3c, 0x22, - 0xf9, 0x23, 0xc5, 0x1b, 0xe0, 0xb8, 0xac, 0xf6, 0xb6, 0xe4, 0x5a, 0x77, 0x57, 0x31, 0xb1, 0x85, - 0xd6, 0xec, 0x09, 0x52, 0xdd, 0x60, 0xf4, 0x5c, 0x01, 0x72, 0x76, 0x46, 0xf4, 0xce, 0x0c, 0xaf, - 0x30, 0x53, 0x20, 0xc3, 0x47, 0xeb, 0x9b, 0x21, 0x2f, 0xdb, 0xe9, 0xf6, 0x6d, 0x52, 0xed, 0x03, - 0x0f, 0x5a, 0x8a, 0xe4, 0x24, 0x13, 0x6f, 0x85, 0x5c, 0x9b, 0x88, 0x05, 0x3d, 0xf8, 0x7b, 0xf6, - 0xf0, 0x4a, 0x49, 0x12, 0x89, 0x26, 0x25, 0x76, 0xf8, 0x46, 0x4b, 0x7f, 0x28, 0xc5, 0xd1, 0xa4, - 0xff, 0x87, 0xa9, 0x31, 0x86, 0xa5, 0x9b, 0xe0, 0x86, 0x72, 0xa5, 0xd2, 0x58, 0xad, 0xb7, 0xe8, - 0xa0, 0x34, 0xbf, 0x36, 0xb7, 0xda, 0x5a, 0xf3, 0x86, 0xaa, 0x66, 0xab, 0x2c, 0xb5, 0xd6, 0xea, - 0x8d, 0xf9, 0x6a, 0xd1, 0x92, 0x86, 0x33, 0x23, 0x52, 0x57, 0x5b, 0x6b, 0xf5, 0xf2, 0x72, 0xb5, - 0xb8, 0xc1, 0x51, 0x72, 0xb5, 0xb5, 0x56, 0xbe, 0x58, 0x6e, 0x95, 0xa5, 0xe2, 0x26, 0x3b, 0x3c, - 0x36, 0x5b, 0x8d, 0x95, 0x35, 0x69, 0xb5, 0x5e, 0xaf, 0xd5, 0xcf, 0xdb, 0x55, 0x6f, 0x89, 0x27, - 0xe0, 0xb8, 0x4d, 0xf7, 0xc5, 0x5a, 0xab, 0xba, 0x56, 0xb1, 0x22, 0x7f, 0x3e, 0x8f, 0xde, 0x9a, - 0xf1, 0x26, 0x26, 0xdf, 0xce, 0xe8, 0xef, 0x04, 0xde, 0x93, 0x29, 0x87, 0xff, 0xe1, 0x33, 0xcc, - 0x6f, 0x08, 0x3c, 0xa7, 0x46, 0xe1, 0x65, 0x45, 0x03, 0xf3, 0xb3, 0xe9, 0x31, 0xc0, 0x7c, 0x26, - 0x5c, 0x55, 0x6f, 0xac, 0x51, 0xae, 0x37, 0xe9, 0x75, 0xab, 0x55, 0xdb, 0x35, 0xf5, 0xaa, 0xcd, - 0x59, 0xa9, 0x5a, 0x69, 0x5c, 0xac, 0x4a, 0x6b, 0x97, 0xca, 0x4b, 0x4b, 0xd5, 0xd6, 0xda, 0x42, - 0x4d, 0x6a, 0xb6, 0x8a, 0x1b, 0xa3, 0x26, 0xa7, 0x4d, 0xf1, 0xf9, 0xf0, 0x5c, 0x2f, 0xbc, 0x56, - 0x7d, 0x45, 0xad, 0xd9, 0x6a, 0x12, 0x38, 0x2b, 0x0d, 0x49, 0x5a, 0x5d, 0x69, 0x55, 0xe7, 0x8b, - 0x5b, 0xe2, 0x49, 0x10, 0xbd, 0x52, 0xa4, 0xd5, 0xba, 0x0d, 0x9d, 0x62, 0xd5, 0x4f, 0xeb, 0x73, - 0xaa, 0xaf, 0x37, 0x5a, 0x6b, 0x2b, 0x55, 0x69, 0xa1, 0x21, 0x2d, 0x57, 0xe7, 0x8b, 0xaf, 0x1a, - 0x85, 0xfe, 0xb6, 0x78, 0x06, 0x4e, 0x97, 0xeb, 0x8d, 0xd6, 0x62, 0x55, 0x5a, 0x73, 0x6e, 0x8e, - 0x57, 0xa4, 0x46, 0xa5, 0xda, 0x6c, 0xae, 0xd5, 0x9a, 0x4e, 0xe2, 0xa2, 0x8a, 0xbe, 0x9c, 0x75, - 0x17, 0xd1, 0xb7, 0x79, 0x03, 0xdb, 0x31, 0x48, 0x2b, 0xce, 0xda, 0x39, 0xad, 0x74, 0x98, 0x75, - 0x4b, 0x7a, 0x60, 0x65, 0xf8, 0x8f, 0x91, 0x07, 0x9b, 0xb0, 0xc5, 0xf4, 0xa4, 0x06, 0x9b, 0x47, - 0x84, 0x28, 0x83, 0x4d, 0x0c, 0x2b, 0xf6, 0x3f, 0x49, 0x27, 0xb0, 0x06, 0xe2, 0x11, 0xb3, 0x8d, - 0x00, 0x31, 0x1b, 0x18, 0x42, 0x16, 0x6a, 0xf5, 0x79, 0xa7, 0x27, 0xac, 0xd5, 0xea, 0x0b, 0x8d, - 0xe2, 0x96, 0x58, 0x82, 0x1b, 0x7d, 0xa5, 0x5b, 0x32, 0x48, 0x6b, 0x28, 0xd7, 0xe7, 0xd7, 0x96, - 0xeb, 0xd5, 0xe5, 0x46, 0xbd, 0x56, 0x21, 0xf1, 0xcd, 0x6a, 0xcb, 0x96, 0xdb, 0x01, 0xa9, 0x6c, - 0x56, 0xcb, 0x52, 0x65, 0x91, 0x08, 0xf0, 0x7c, 0xb5, 0xf8, 0x2a, 0xf1, 0x05, 0xf0, 0x7c, 0x1f, - 0x29, 0x54, 0xb8, 0x57, 0xa4, 0xea, 0x7c, 0x75, 0xa1, 0x56, 0xb7, 0x06, 0xbc, 0xa5, 0x46, 0xe5, - 0x42, 0x33, 0x82, 0xfc, 0xfe, 0x43, 0x1a, 0x32, 0x4d, 0x53, 0xeb, 0xa1, 0x17, 0x7a, 0xd2, 0x7b, - 0x0a, 0x40, 0xc7, 0x3b, 0xda, 0x2e, 0x59, 0x74, 0xd0, 0x65, 0x88, 0x2f, 0x06, 0xfd, 0x47, 0xee, - 0xf3, 0x5b, 0x17, 0x7f, 0x53, 0xeb, 0x05, 0x8c, 0x74, 0x3f, 0xe6, 0x3a, 0x91, 0x0d, 0x29, 0x28, - 0x9a, 0x18, 0xbd, 0x79, 0x9c, 0x39, 0x0b, 0xc1, 0x49, 0x17, 0xd9, 0x26, 0xc1, 0xcb, 0x61, 0x20, - 0x16, 0xaf, 0x86, 0x67, 0x0c, 0x60, 0x46, 0xa0, 0xda, 0x10, 0x9f, 0x07, 0xcf, 0xf1, 0x43, 0xb5, - 0xdc, 0xb8, 0x58, 0x75, 0xe5, 0x63, 0xbe, 0xdc, 0x2a, 0x17, 0x37, 0xd1, 0x57, 0x04, 0x10, 0x96, - 0xb4, 0x4d, 0xf4, 0x90, 0x00, 0x99, 0x26, 0xee, 0x76, 0x98, 0xfb, 0xe0, 0x59, 0xc8, 0xef, 0x60, - 0xc3, 0x90, 0x37, 0x9d, 0xf5, 0x91, 0x13, 0x14, 0xef, 0x80, 0xac, 0x8a, 0x77, 0xb1, 0xad, 0x25, - 0x72, 0xec, 0xdc, 0xf3, 0x19, 0x4e, 0x2d, 0x69, 0x9b, 0x25, 0xab, 0x2c, 0xd7, 0xff, 0xed, 0x92, - 0x95, 0x54, 0xb2, 0x73, 0x9c, 0xbe, 0x0f, 0xb2, 0x24, 0x2c, 0x4e, 0x41, 0x76, 0xbe, 0x3a, 0xb7, - 0x7a, 0xbe, 0x78, 0xc4, 0xfa, 0xeb, 0xb4, 0x7b, 0x0a, 0xb2, 0x0b, 0xe5, 0x56, 0x79, 0xa9, 0x98, - 0xb6, 0xf8, 0x43, 0xa4, 0x58, 0xb0, 0x22, 0x57, 0xca, 0xf5, 0x5a, 0xa5, 0x98, 0x11, 0xa7, 0x21, - 0x7f, 0xa9, 0x2c, 0x91, 0x96, 0x67, 0xd1, 0x6b, 0xfd, 0x62, 0x70, 0x27, 0x2b, 0x06, 0xd7, 0x05, - 0xd1, 0x34, 0x4c, 0x04, 0x3e, 0xef, 0x8a, 0xc0, 0xdd, 0x8c, 0x08, 0xbc, 0x90, 0xa7, 0x90, 0x68, - 0xf0, 0xd7, 0x0f, 0xaa, 0x4b, 0x84, 0x2d, 0x1e, 0xb4, 0x6a, 0xcb, 0xd5, 0xc6, 0x6a, 0xab, 0xb8, - 0x81, 0xfe, 0x26, 0x0d, 0xf9, 0x8b, 0x58, 0x37, 0x14, 0xad, 0x8b, 0xfe, 0x6b, 0xda, 0xd6, 0x5c, - 0xf6, 0x2d, 0x0b, 0x1e, 0xe7, 0x76, 0x8f, 0x4e, 0x0b, 0x21, 0x3a, 0xbd, 0x81, 0x5b, 0xa2, 0x5d, - 0x3b, 0x91, 0xb3, 0x25, 0xa2, 0x41, 0xeb, 0x8b, 0xff, 0x9e, 0x78, 0xca, 0xf3, 0x1b, 0xf6, 0x38, - 0xd7, 0x91, 0x7d, 0x70, 0xdd, 0xd1, 0x98, 0xdb, 0x19, 0x83, 0xb9, 0x27, 0xa0, 0x78, 0xb1, 0x2a, - 0x35, 0x6b, 0x8d, 0xba, 0xd5, 0xb5, 0xaa, 0xcb, 0x2b, 0xad, 0xfb, 0x8b, 0x42, 0x28, 0xcb, 0xdf, - 0xef, 0x38, 0x0f, 0x78, 0x50, 0x80, 0x7c, 0x63, 0x63, 0x83, 0x58, 0xab, 0xab, 0x06, 0xcf, 0xbd, - 0x37, 0x42, 0x51, 0xe9, 0xb6, 0xd5, 0x7e, 0x07, 0xd7, 0x35, 0x73, 0x45, 0xe9, 0x76, 0xdd, 0xb3, - 0xc1, 0x7d, 0xf1, 0xe8, 0x61, 0xee, 0x91, 0x8d, 0x98, 0x56, 0xa3, 0xb5, 0x07, 0x00, 0x76, 0x06, - 0x8e, 0xad, 0xef, 0x99, 0xd8, 0xa0, 0xa9, 0x68, 0xb5, 0x19, 0x69, 0x20, 0x16, 0xfd, 0x11, 0xd7, - 0x08, 0x18, 0x52, 0x61, 0x34, 0x94, 0xe4, 0xf1, 0x50, 0xb2, 0x46, 0x35, 0x7b, 0xaa, 0xb2, 0xd6, - 0xe7, 0xd5, 0xf9, 0xe2, 0x26, 0x19, 0xfa, 0x6a, 0x4b, 0x76, 0xec, 0xfd, 0xd5, 0xd6, 0xda, 0x4a, - 0xad, 0x5e, 0xb7, 0xd6, 0x65, 0xd6, 0xe2, 0xa0, 0x60, 0xd1, 0xbb, 0xa4, 0x18, 0x26, 0xfa, 0xbc, - 0x0f, 0xa6, 0x06, 0x33, 0xbc, 0x69, 0x5d, 0x75, 0xaf, 0xd6, 0x31, 0x66, 0x53, 0xe4, 0xd4, 0xdf, - 0x09, 0x46, 0x02, 0xec, 0x2f, 0xb8, 0xcf, 0xd2, 0x1d, 0x7a, 0x46, 0x83, 0xb6, 0xa1, 0xa8, 0x83, - 0xa0, 0x65, 0xa5, 0x81, 0xd8, 0x21, 0xe0, 0x0a, 0x43, 0xc1, 0xfd, 0x22, 0xd7, 0xd9, 0xe6, 0x08, - 0xe2, 0xa2, 0x01, 0xbc, 0x18, 0x17, 0xc0, 0xe8, 0x97, 0xd2, 0x50, 0x68, 0x6e, 0xf5, 0x4d, 0xe2, - 0x29, 0xd9, 0x37, 0xac, 0xfd, 0x63, 0x8a, 0x77, 0xe4, 0x77, 0x72, 0x07, 0x8c, 0xfc, 0x9f, 0xe1, - 0x1a, 0xf9, 0x03, 0x0a, 0x39, 0x1c, 0xae, 0x60, 0xf4, 0x54, 0xc6, 0x39, 0xb4, 0x41, 0xdf, 0xc9, - 0xec, 0x1b, 0xf2, 0x1f, 0xcd, 0xf0, 0xea, 0xe4, 0xda, 0x65, 0x84, 0x8c, 0xf8, 0xd7, 0xc2, 0xf4, - 0x96, 0x46, 0x9d, 0xb6, 0x7b, 0xf7, 0x3a, 0xbe, 0x28, 0x4b, 0x0a, 0x65, 0xdb, 0x31, 0x1c, 0x6b, - 0xb8, 0x7d, 0x20, 0xd6, 0x4a, 0xd7, 0xd3, 0x35, 0x4b, 0x84, 0x9d, 0x74, 0xf6, 0xbb, 0xc2, 0x81, - 0x58, 0xf1, 0x26, 0xb8, 0x6a, 0x47, 0xd6, 0xb7, 0xb1, 0xd9, 0x53, 0xe5, 0x36, 0x31, 0x89, 0xe9, - 0x6a, 0x11, 0xed, 0xff, 0x20, 0xbe, 0x18, 0x9e, 0xe9, 0x8b, 0x74, 0xde, 0x7d, 0xd5, 0x3a, 0x44, - 0x09, 0x68, 0x4a, 0x1a, 0xfe, 0x71, 0x20, 0x57, 0xcb, 0xd3, 0x56, 0xca, 0xef, 0xcb, 0xd5, 0x62, - 0x14, 0x97, 0x3a, 0x78, 0x57, 0x21, 0x77, 0x12, 0x05, 0x7b, 0x07, 0xe5, 0x84, 0xad, 0xf5, 0xea, - 0xa6, 0x6c, 0xe2, 0xcb, 0xf2, 0xde, 0xaa, 0xae, 0xce, 0x62, 0x5b, 0xe9, 0xc9, 0x8b, 0x41, 0x9f, - 0xe5, 0xd2, 0x56, 0x0e, 0x84, 0xe3, 0xb0, 0xe4, 0xec, 0xf1, 0x34, 0x64, 0x56, 0x94, 0xee, 0xa6, - 0xdf, 0x54, 0xf2, 0x09, 0xc8, 0x2a, 0xdd, 0x0e, 0x7e, 0x80, 0x3e, 0xb3, 0xb1, 0x03, 0xe2, 0x39, - 0x38, 0xd1, 0xed, 0xef, 0xac, 0x63, 0xbd, 0xb1, 0x41, 0xb4, 0x1d, 0x8c, 0x96, 0x66, 0xad, 0x94, - 0xe8, 0xd0, 0x35, 0xf4, 0x1b, 0xfa, 0x5f, 0xfe, 0x3e, 0xfc, 0x12, 0x56, 0x4e, 0xaf, 0x65, 0x18, - 0x63, 0xd1, 0x10, 0x20, 0xa1, 0x2e, 0x39, 0x69, 0x1f, 0x39, 0xe8, 0x9d, 0x2e, 0xbf, 0xef, 0x60, - 0xf8, 0x7d, 0xfd, 0xa8, 0x62, 0x93, 0x3f, 0x7c, 0xfd, 0x50, 0x1a, 0xf2, 0x2b, 0xba, 0xd6, 0xc6, - 0x86, 0x81, 0x1e, 0x4c, 0x43, 0xae, 0x22, 0x77, 0xdb, 0x58, 0x45, 0xcf, 0x0a, 0x5c, 0x3e, 0xa0, - 0x1f, 0xa6, 0x78, 0xb7, 0xe7, 0xb4, 0xdc, 0x92, 0x5d, 0x66, 0xc0, 0x88, 0xc7, 0x77, 0x44, 0x1d, - 0x5a, 0x54, 0xf2, 0x5c, 0xfa, 0xb3, 0x34, 0x4c, 0x2f, 0x29, 0xdd, 0xed, 0x15, 0x1d, 0x13, 0x3b, - 0x99, 0xcf, 0xf6, 0xd8, 0x43, 0xf5, 0xd3, 0x53, 0x3e, 0xfd, 0x74, 0xee, 0x35, 0xae, 0xaf, 0xc8, - 0x00, 0x79, 0xba, 0x0b, 0xa6, 0x55, 0x2f, 0x11, 0x3d, 0xc0, 0x40, 0x03, 0x07, 0x18, 0xbe, 0x62, - 0x24, 0x7f, 0x72, 0x4e, 0x05, 0x95, 0x60, 0x2a, 0x92, 0x67, 0xec, 0x0f, 0x05, 0x00, 0xdb, 0x0c, - 0x2f, 0x59, 0xc1, 0x3e, 0x91, 0x0a, 0x61, 0x2c, 0x6b, 0xee, 0x38, 0x3d, 0x68, 0xee, 0xf8, 0x4e, - 0xc8, 0x58, 0x4d, 0xa2, 0x56, 0x95, 0x79, 0x4d, 0x1d, 0x93, 0x3c, 0xd6, 0x30, 0xdf, 0x51, 0x0c, - 0x79, 0x5d, 0xc5, 0xd5, 0x6e, 0x5b, 0xdf, 0xf3, 0x8c, 0x13, 0x14, 0xa4, 0xfd, 0x1f, 0x3c, 0xaf, - 0x75, 0x59, 0x0e, 0xaf, 0x75, 0xa4, 0x2a, 0xc6, 0x6b, 0x1d, 0xe3, 0x1e, 0x27, 0x74, 0x42, 0xf4, - 0x38, 0x13, 0xec, 0x64, 0x7f, 0x4b, 0x36, 0x5c, 0x27, 0xfb, 0xd6, 0x7f, 0xf4, 0x5e, 0xae, 0xc1, - 0x3d, 0xb0, 0xe8, 0xe4, 0x31, 0xff, 0x5e, 0x1a, 0x8e, 0x3a, 0x5e, 0xca, 0x09, 0xea, 0xb7, 0x30, - 0x17, 0x20, 0xa4, 0x41, 0x29, 0xaf, 0x41, 0x56, 0x5c, 0xcf, 0x43, 0x9c, 0xfc, 0x47, 0xef, 0xe6, - 0xde, 0x97, 0xf8, 0x6b, 0x0a, 0xe0, 0x62, 0xa8, 0x5c, 0xf9, 0x6c, 0x80, 0x85, 0xed, 0x46, 0x42, - 0xaa, 0x89, 0xc6, 0xd1, 0xf2, 0x81, 0x1f, 0xf7, 0xa0, 0xbf, 0xca, 0x03, 0xd4, 0xe5, 0x5d, 0x65, - 0xd3, 0xb6, 0xa5, 0xf4, 0x2d, 0xc1, 0x1a, 0xbc, 0x0c, 0xd3, 0xf6, 0x89, 0x60, 0x30, 0x26, 0x15, - 0xef, 0x80, 0x3c, 0xd5, 0x9a, 0xa3, 0xad, 0x7a, 0x2e, 0xd3, 0x2a, 0xaf, 0x14, 0x5b, 0x9e, 0x1f, - 0x30, 0x25, 0x27, 0xbd, 0xb5, 0x00, 0xd9, 0xe8, 0xab, 0x6a, 0xcb, 0xca, 0x4b, 0x8f, 0x70, 0x9d, - 0xb0, 0x67, 0x1a, 0x93, 0x3a, 0x2d, 0x22, 0x81, 0x01, 0x43, 0x9a, 0x59, 0xc7, 0x90, 0x26, 0xfa, - 0x5d, 0x6e, 0x7f, 0x81, 0x3e, 0x7a, 0x7c, 0x2d, 0x0a, 0x80, 0xf5, 0x56, 0xc8, 0xdb, 0xca, 0x30, - 0xce, 0x0b, 0xff, 0x67, 0x0d, 0x74, 0x54, 0x3b, 0x7b, 0xad, 0xbb, 0xa1, 0x49, 0x4e, 0x4a, 0x4e, - 0xb7, 0x81, 0x5c, 0x74, 0x24, 0xdf, 0x93, 0xbe, 0x29, 0xc0, 0xc9, 0xf3, 0xd8, 0xf4, 0xda, 0x71, - 0x49, 0x31, 0xb7, 0xac, 0xe1, 0xdc, 0x40, 0xff, 0x9c, 0x4f, 0x49, 0xc8, 0x87, 0x7f, 0x3a, 0x1a, - 0xfe, 0xe8, 0x8f, 0xfd, 0xa8, 0x35, 0x59, 0xd4, 0xee, 0x0e, 0x2a, 0x65, 0x38, 0xb5, 0x01, 0x00, - 0xde, 0x09, 0x39, 0x9b, 0x50, 0x3a, 0xef, 0x9d, 0x0e, 0xc4, 0xcf, 0x2d, 0x49, 0xa2, 0x39, 0xd0, - 0xe7, 0x5c, 0x1c, 0x2f, 0x32, 0x38, 0xce, 0x1d, 0x88, 0xb2, 0xc4, 0x21, 0x3d, 0x7d, 0x0b, 0x51, - 0x41, 0x20, 0x1d, 0xec, 0x98, 0xbf, 0x17, 0x17, 0x8f, 0x88, 0x00, 0xb9, 0x65, 0x6d, 0x17, 0xb7, - 0xb4, 0x62, 0xca, 0xfa, 0x6f, 0xd1, 0xd7, 0xd2, 0x8a, 0x69, 0xf4, 0x6f, 0xa6, 0x21, 0xbf, 0xa8, - 0x18, 0xa6, 0xa6, 0xef, 0xa1, 0x6f, 0x64, 0xa0, 0x40, 0x4f, 0xaf, 0x0c, 0xf4, 0xe1, 0x94, 0x7b, - 0x16, 0xb7, 0xef, 0x10, 0xe8, 0x5a, 0x98, 0xee, 0x59, 0x73, 0xbe, 0xd6, 0x37, 0x3c, 0x3d, 0x43, - 0x7f, 0x94, 0x25, 0x36, 0x72, 0xdf, 0xdc, 0xd2, 0x74, 0x4f, 0xe3, 0xdb, 0x09, 0x5b, 0x1b, 0x0c, - 0xfb, 0x7f, 0x5d, 0xde, 0xc1, 0x8e, 0x11, 0x47, 0x2f, 0x86, 0x78, 0x4d, 0x56, 0x76, 0xec, 0x09, - 0x52, 0x90, 0xc8, 0x7f, 0x71, 0x16, 0xf2, 0x9b, 0xba, 0xd6, 0xef, 0xd1, 0xed, 0x90, 0x20, 0x39, - 0x41, 0xbf, 0xcd, 0xd0, 0x93, 0x90, 0xeb, 0xc9, 0x9b, 0x9e, 0x9e, 0x15, 0x0d, 0x89, 0xd7, 0xc1, - 0x8c, 0x2a, 0x1b, 0x26, 0x6d, 0x8d, 0xbb, 0xf7, 0x63, 0x23, 0x87, 0x0f, 0x3b, 0xe8, 0xf3, 0xdc, - 0x47, 0x22, 0x94, 0x8b, 0xce, 0xf9, 0x5f, 0x90, 0x5c, 0x96, 0xa1, 0x40, 0x4f, 0x1a, 0x9d, 0x91, - 0xe5, 0xfa, 0xf0, 0x62, 0xe8, 0x1f, 0xc9, 0xcd, 0xc6, 0xa9, 0xe1, 0x35, 0x82, 0x9e, 0xe4, 0x07, - 0x98, 0xff, 0xe6, 0xbc, 0xda, 0xbd, 0x7f, 0x34, 0x44, 0xd7, 0xc0, 0xd4, 0xee, 0x00, 0x3c, 0x5e, - 0x44, 0xc8, 0x9b, 0xdd, 0x9f, 0x17, 0x78, 0xa7, 0x72, 0x87, 0x1d, 0x21, 0xaf, 0x76, 0xef, 0x04, - 0xb0, 0x07, 0x00, 0x2b, 0xcd, 0xbe, 0xe5, 0x32, 0xd9, 0xef, 0xd1, 0x61, 0x83, 0x94, 0x22, 0xf9, - 0x52, 0x8b, 0xf7, 0x7a, 0xe7, 0xc9, 0xf6, 0xbd, 0x1f, 0x27, 0xaa, 0xfe, 0x63, 0x67, 0xa7, 0x8d, - 0x19, 0xb6, 0x8d, 0x7c, 0x5a, 0xf6, 0x21, 0xed, 0x4b, 0x1e, 0xea, 0xc7, 0xd2, 0x00, 0x4d, 0xec, - 0x74, 0x26, 0xbf, 0xfe, 0xd3, 0x58, 0x80, 0xa3, 0x1f, 0xa7, 0x78, 0x1d, 0x78, 0xb9, 0xcd, 0x76, - 0x6b, 0x0f, 0xd2, 0x01, 0xe0, 0x72, 0xc9, 0x35, 0xb2, 0xb8, 0xe4, 0x79, 0xf9, 0x7a, 0x01, 0x32, - 0xe4, 0x69, 0xdb, 0x3f, 0x78, 0x6a, 0x91, 0x77, 0x79, 0x0c, 0xf5, 0xbd, 0x11, 0x4a, 0xf1, 0xbd, - 0x11, 0x42, 0x9f, 0xe6, 0xde, 0x53, 0x92, 0x17, 0x56, 0xa1, 0xda, 0x37, 0x1e, 0x9e, 0x02, 0x83, - 0x67, 0xb4, 0x67, 0x3c, 0x7c, 0x7b, 0xcb, 0x60, 0x6a, 0x92, 0x47, 0xe1, 0x0f, 0xa9, 0x27, 0xb4, - 0x47, 0xbc, 0xe7, 0xa5, 0x26, 0x23, 0xd5, 0xf4, 0x01, 0x57, 0x2a, 0xe8, 0x01, 0x57, 0x7a, 0xac, - 0x37, 0x86, 0xc2, 0x3e, 0x93, 0xc6, 0x0f, 0x73, 0x5b, 0x25, 0x68, 0x8e, 0xd2, 0x73, 0xb5, 0xa7, - 0x71, 0xc1, 0x9d, 0xc6, 0xa3, 0x61, 0xf6, 0x25, 0xae, 0xad, 0x61, 0x33, 0x1e, 0x35, 0xd8, 0xd8, - 0x5f, 0x5d, 0xbd, 0xf3, 0x04, 0xe3, 0xe8, 0xee, 0xe1, 0x34, 0x64, 0xc8, 0x7d, 0x8a, 0xef, 0xac, - 0xf9, 0xb7, 0xb9, 0xdf, 0xc3, 0xf9, 0x1c, 0xc4, 0x91, 0x7b, 0x86, 0xe1, 0xec, 0x7e, 0x19, 0x4c, - 0x7b, 0x6e, 0xf0, 0xc2, 0xb7, 0x11, 0xe4, 0x34, 0xc1, 0x9f, 0x9a, 0xd3, 0x72, 0x51, 0x38, 0x21, - 0xc9, 0xf7, 0x92, 0xf7, 0x7b, 0xbd, 0x63, 0xde, 0xbf, 0x2f, 0x04, 0xaf, 0x29, 0x94, 0x81, 0x21, - 0xed, 0xf6, 0x25, 0x46, 0x7f, 0xe4, 0xc7, 0xa0, 0xc2, 0x62, 0xf0, 0xa2, 0xa0, 0xa6, 0x87, 0x0a, - 0x3d, 0x4b, 0x4c, 0x3a, 0x0a, 0x31, 0x9e, 0xee, 0xf7, 0x02, 0x83, 0xc1, 0xb9, 0x48, 0x84, 0x1c, - 0xb2, 0xe0, 0xbf, 0xef, 0x98, 0xcf, 0x51, 0xea, 0x5f, 0x52, 0xc7, 0x9c, 0x1b, 0x8c, 0x95, 0x02, - 0xd6, 0x83, 0x63, 0x6a, 0x88, 0x07, 0xc7, 0x71, 0x4d, 0xde, 0xfd, 0xd0, 0x0f, 0x67, 0x8d, 0x85, - 0xf3, 0xd6, 0x20, 0x2e, 0x72, 0x78, 0xe3, 0x1c, 0x93, 0x9c, 0x27, 0x5c, 0x40, 0x97, 0x18, 0x40, - 0x6f, 0x1f, 0x83, 0x94, 0x68, 0xb0, 0x2a, 0x31, 0xc3, 0x2a, 0xce, 0xc2, 0x09, 0xa9, 0x5a, 0x9e, - 0x6f, 0xd4, 0x97, 0xee, 0xf7, 0x7f, 0x2d, 0x66, 0xd0, 0x7b, 0x05, 0xc8, 0x49, 0x44, 0xbd, 0x08, - 0xfd, 0x6c, 0x54, 0x98, 0x07, 0xac, 0x69, 0xa6, 0xf7, 0xdb, 0x68, 0xfe, 0x2a, 0xf7, 0x93, 0x9f, - 0x61, 0x6c, 0xb4, 0xe9, 0x0a, 0x58, 0xa1, 0x3d, 0xc5, 0xf5, 0xe4, 0x87, 0xbb, 0xd8, 0x2b, 0x16, - 0xa0, 0x4f, 0x0b, 0x90, 0xa3, 0x26, 0x73, 0x3b, 0x51, 0x01, 0xf2, 0xdb, 0x43, 0x4f, 0xf3, 0xda, - 0x43, 0x3f, 0x18, 0x66, 0xa1, 0x4e, 0x47, 0xc6, 0xc7, 0x2c, 0x06, 0x93, 0xb4, 0x13, 0xc4, 0xec, - 0xdb, 0x02, 0x5d, 0x2f, 0xf4, 0xa3, 0x22, 0x36, 0x0f, 0xcf, 0x91, 0x7b, 0x3d, 0xdc, 0x75, 0x8d, - 0xaf, 0x1a, 0x0b, 0xba, 0xb6, 0xd3, 0x30, 0xb7, 0xb0, 0xee, 0xac, 0x0b, 0x52, 0x37, 0x14, 0xa4, - 0xf0, 0x44, 0xac, 0x85, 0x87, 0x50, 0xeb, 0x97, 0xc3, 0x78, 0x1d, 0xb2, 0x48, 0x19, 0x73, 0x24, - 0x7d, 0x8c, 0xcb, 0x0c, 0x26, 0x27, 0x2d, 0x87, 0x3c, 0x43, 0x3e, 0x7a, 0x01, 0x72, 0x36, 0xa5, - 0xd6, 0xb2, 0x70, 0xba, 0xb9, 0x25, 0xeb, 0x78, 0x6e, 0x8f, 0xb8, 0x87, 0xbf, 0x9e, 0xeb, 0x20, - 0x14, 0xbd, 0xd5, 0x8f, 0x8e, 0x08, 0x19, 0x55, 0xe9, 0x6e, 0x3b, 0xb7, 0x10, 0xd6, 0x7f, 0x6f, - 0x0b, 0x9b, 0x1e, 0xb2, 0x85, 0x75, 0x8f, 0x14, 0xdc, 0x7a, 0x0f, 0xb4, 0x85, 0x1d, 0x59, 0xdc, - 0x44, 0x6e, 0x3c, 0x8f, 0x97, 0x3b, 0x9d, 0x4b, 0x8a, 0xb9, 0xd5, 0x70, 0x78, 0x74, 0x2f, 0xdf, - 0x99, 0xf2, 0x2c, 0xe4, 0x7b, 0xf2, 0x9e, 0xaa, 0xc9, 0xee, 0xe3, 0x7b, 0x1a, 0x64, 0x15, 0x24, - 0x43, 0x0f, 0xfa, 0x29, 0x07, 0x06, 0x28, 0x08, 0x60, 0x2a, 0xdf, 0x99, 0x3d, 0x57, 0x91, 0xc9, - 0x33, 0xf6, 0xaf, 0x04, 0xd6, 0x41, 0xcb, 0xcf, 0xf1, 0xda, 0x34, 0x18, 0x6b, 0xde, 0xf8, 0x3f, - 0xdc, 0x6e, 0xd4, 0x29, 0x7b, 0x7e, 0x4a, 0xdc, 0xaf, 0x44, 0xea, 0x47, 0x87, 0xe9, 0x76, 0xe5, - 0xab, 0xfb, 0xdd, 0xae, 0xfc, 0x0b, 0x5e, 0xc4, 0x47, 0x2e, 0xe5, 0xc6, 0x73, 0xcd, 0xf3, 0x09, - 0x6e, 0xe3, 0x71, 0x03, 0xfc, 0x8b, 0xd1, 0x2c, 0x3e, 0x9f, 0x89, 0x38, 0x9e, 0xfa, 0x93, 0x87, - 0xf0, 0x2d, 0xfb, 0x7d, 0xa9, 0xd4, 0x62, 0x83, 0x70, 0x7c, 0x34, 0x62, 0xf4, 0x94, 0x32, 0x16, - 0x1a, 0x87, 0x64, 0x7b, 0xfe, 0x17, 0x32, 0x70, 0xd5, 0x7e, 0xdf, 0x28, 0xfc, 0x7e, 0x93, 0x47, - 0x77, 0xaa, 0x71, 0x1d, 0x83, 0x3c, 0x1d, 0x71, 0x81, 0x57, 0xba, 0xb2, 0xfc, 0x9a, 0x7c, 0x3c, - 0xc2, 0x7a, 0xb0, 0x74, 0xf8, 0x9e, 0x4c, 0xfe, 0x4c, 0x80, 0x13, 0x43, 0x7d, 0x98, 0x5c, 0x09, - 0xa2, 0xc0, 0xef, 0xa6, 0x70, 0x28, 0x3f, 0x63, 0x1c, 0x68, 0xf9, 0x3c, 0xd8, 0xf1, 0x53, 0x91, - 0x3c, 0xb0, 0x5f, 0xcc, 0x0c, 0x02, 0x4b, 0x07, 0xdd, 0x4f, 0xc5, 0x08, 0xac, 0xdf, 0xa3, 0x88, - 0x30, 0xe0, 0x51, 0x64, 0x11, 0x9e, 0x4b, 0xde, 0xf4, 0xe9, 0x3b, 0xf6, 0xa1, 0x44, 0x59, 0x55, - 0x2f, 0xca, 0x6a, 0x1f, 0x1b, 0xb5, 0xae, 0xed, 0x83, 0xc3, 0x79, 0x01, 0x3e, 0x2a, 0x19, 0xfa, - 0xc1, 0xc1, 0xc4, 0x20, 0x46, 0x8f, 0x23, 0x4f, 0x8d, 0x2f, 0x06, 0x31, 0x8c, 0xf3, 0x5b, 0x63, - 0xec, 0xf7, 0x5e, 0x0c, 0x37, 0x37, 0x1b, 0xcb, 0x55, 0xf2, 0xa6, 0x4f, 0x9a, 0x6f, 0xae, 0x2d, - 0x96, 0x9b, 0x6b, 0x52, 0x75, 0xa9, 0xdc, 0xaa, 0x35, 0xea, 0x6b, 0x17, 0xcb, 0x4b, 0xab, 0xd5, - 0xb5, 0x4b, 0xb5, 0xd6, 0xe2, 0x5a, 0x6b, 0xb1, 0xd6, 0x5c, 0x6b, 0xac, 0x58, 0xd1, 0x45, 0x01, - 0xbd, 0x21, 0xd0, 0x33, 0x09, 0xb7, 0xfd, 0xf6, 0x87, 0xb9, 0x1d, 0xf8, 0x0e, 0xb0, 0x2b, 0x41, - 0xbf, 0x23, 0x7c, 0x9e, 0x7c, 0x23, 0xd0, 0x33, 0x81, 0xdb, 0xb7, 0x0c, 0xe4, 0x9a, 0x58, 0xd6, - 0xdb, 0x5b, 0xe8, 0xd7, 0x7c, 0x06, 0x3e, 0x17, 0x20, 0xbf, 0xa1, 0xa8, 0xc4, 0x46, 0x7d, 0x8a, - 0x34, 0xff, 0x26, 0x3e, 0x27, 0xf5, 0x0b, 0x24, 0x93, 0xe4, 0x64, 0x16, 0x5f, 0x0e, 0x59, 0x43, - 0xd3, 0x5d, 0xd5, 0x2e, 0x4e, 0x57, 0xf7, 0x4d, 0x4d, 0x37, 0x25, 0x3b, 0x23, 0xa3, 0xbf, 0x26, - 0x0c, 0xe8, 0xaf, 0x05, 0x68, 0xaa, 0xb1, 0x2e, 0x9f, 0x5d, 0xbd, 0xb6, 0x1b, 0xa1, 0xe8, 0x1d, - 0x18, 0xd9, 0x84, 0xce, 0xe6, 0xc8, 0xa5, 0xe2, 0xbe, 0x78, 0x51, 0x84, 0xcc, 0x36, 0xde, 0x33, - 0x66, 0xf3, 0xe4, 0x3b, 0xf9, 0x8f, 0x3e, 0xc8, 0x6d, 0x0a, 0xc7, 0x39, 0x18, 0x20, 0x7c, 0x0d, - 0x10, 0xb1, 0x5b, 0x20, 0xaf, 0xd3, 0x61, 0xca, 0x11, 0xb0, 0xa0, 0x0b, 0x4c, 0x9a, 0x0e, 0x7d, - 0x80, 0xcb, 0x42, 0x4e, 0x58, 0xe5, 0x13, 0x70, 0x83, 0x52, 0x80, 0xec, 0x79, 0x5d, 0xee, 0x6d, - 0xa1, 0x5f, 0x4a, 0xc5, 0x2f, 0x4e, 0x2e, 0xb0, 0xe9, 0x51, 0xc0, 0x0a, 0xc3, 0x81, 0x45, 0x6f, - 0x4e, 0x43, 0xa6, 0x6e, 0x35, 0x6a, 0x50, 0xd3, 0x4a, 0xa4, 0x7a, 0xc9, 0x54, 0x7d, 0x95, 0xe8, - 0x1b, 0x3b, 0x76, 0x3e, 0x04, 0x9f, 0x9d, 0x8f, 0x93, 0x90, 0x53, 0xe5, 0x3d, 0xad, 0xef, 0xca, - 0x9c, 0x1d, 0x1a, 0x64, 0x67, 0x76, 0x1f, 0x3b, 0xad, 0xf1, 0x4c, 0x69, 0x6b, 0xdd, 0xda, 0x8e, - 0xbc, 0x89, 0xe9, 0x53, 0x13, 0x2f, 0xc2, 0xf9, 0x5a, 0xdd, 0xd1, 0x5e, 0xa5, 0xd0, 0x27, 0x25, - 0x5e, 0x84, 0x45, 0x49, 0x47, 0xeb, 0x62, 0xf2, 0x84, 0xa4, 0x20, 0x91, 0xff, 0xe2, 0x19, 0x38, - 0xe6, 0x0c, 0x3d, 0x0b, 0x9a, 0xbe, 0x23, 0x9b, 0xb3, 0x53, 0xf6, 0x93, 0x2f, 0x36, 0x56, 0x9c, - 0x85, 0xbc, 0xd1, 0x55, 0x7a, 0x3d, 0x6c, 0xce, 0x82, 0x7d, 0xd0, 0x43, 0x83, 0xe8, 0x5d, 0x69, - 0xc8, 0x54, 0x3b, 0x9b, 0x98, 0xb9, 0x65, 0x4f, 0xf9, 0x6e, 0xd9, 0x4f, 0x42, 0xce, 0x36, 0x1f, - 0x4a, 0xd9, 0x42, 0x43, 0x43, 0x19, 0xf3, 0x52, 0xca, 0xc0, 0xcc, 0x90, 0xc7, 0xbd, 0x54, 0x26, - 0x89, 0x60, 0x94, 0xac, 0x1a, 0xfd, 0x5a, 0xdd, 0xc9, 0x72, 0xee, 0x24, 0xe4, 0xb6, 0x94, 0x4e, - 0x07, 0x77, 0x29, 0xef, 0x68, 0xe8, 0xf4, 0x29, 0xc8, 0x58, 0x34, 0x58, 0xc2, 0xbd, 0xa4, 0x74, - 0xb7, 0x8b, 0x47, 0xc4, 0xa3, 0xde, 0xf5, 0x5d, 0x31, 0xc5, 0x9e, 0x03, 0x87, 0xea, 0x3b, 0x31, - 0x8d, 0x1b, 0xde, 0xd9, 0x5f, 0x0c, 0xd9, 0xae, 0xd6, 0x71, 0xaf, 0xa6, 0x4f, 0x05, 0xe7, 0xb7, - 0x64, 0x53, 0xb2, 0x13, 0x5b, 0xb9, 0x70, 0x67, 0x13, 0x1b, 0x44, 0x98, 0x43, 0x73, 0x59, 0x2c, - 0x95, 0xec, 0xc4, 0x9c, 0x4a, 0x4c, 0x21, 0x44, 0x27, 0x3f, 0x48, 0x7c, 0x3d, 0x07, 0xc7, 0xed, - 0xf1, 0xa9, 0xd9, 0x5f, 0xb7, 0x8a, 0x5a, 0xc7, 0xe8, 0xc9, 0x34, 0xf3, 0x5a, 0xc8, 0xe8, 0xaf, - 0xbb, 0xb3, 0xbe, 0x1d, 0xf0, 0x0f, 0x22, 0xe9, 0x58, 0xe6, 0x24, 0x61, 0xdc, 0x39, 0x89, 0x99, - 0x5f, 0x84, 0xfd, 0x7a, 0xd3, 0xb6, 0xe2, 0xa4, 0x33, 0x1b, 0x0d, 0x99, 0x4b, 0xac, 0x3e, 0x29, - 0x6f, 0x98, 0x58, 0x77, 0x5f, 0x85, 0x39, 0x41, 0x62, 0x80, 0x16, 0x6f, 0x68, 0x3a, 0xae, 0x75, - 0x48, 0x7f, 0x9e, 0x92, 0xdc, 0xb0, 0xaf, 0x9b, 0x02, 0xa3, 0x0c, 0x73, 0x03, 0x1c, 0x57, 0x36, - 0xbb, 0x9a, 0x8e, 0x5d, 0x5b, 0x73, 0xb3, 0x47, 0x6d, 0x5b, 0x41, 0x03, 0xd1, 0xe8, 0x9b, 0x42, - 0xc4, 0xa3, 0xdd, 0x01, 0x98, 0x62, 0x9b, 0xcc, 0xc4, 0x97, 0xc1, 0xd1, 0x0e, 0xee, 0xe1, 0x6e, - 0x07, 0x77, 0xdb, 0x8a, 0x2b, 0xe3, 0x81, 0xf9, 0x98, 0xc4, 0x9e, 0x80, 0x64, 0xfc, 0x02, 0x72, - 0xde, 0xe7, 0x59, 0x27, 0x3b, 0xa0, 0x4c, 0xc2, 0xea, 0x14, 0xda, 0xcd, 0xe9, 0x51, 0x8d, 0x69, - 0x3b, 0x8b, 0xcf, 0xc5, 0x4e, 0xa4, 0x93, 0xea, 0x70, 0x0e, 0x4d, 0x40, 0x8b, 0x2d, 0x03, 0x47, - 0x6b, 0x1d, 0xc3, 0xeb, 0x49, 0xda, 0xa8, 0x8e, 0xb4, 0xcf, 0x11, 0x82, 0x2b, 0xa2, 0x82, 0x4f, - 0x44, 0x87, 0x08, 0xd5, 0xf4, 0x70, 0xa1, 0x7a, 0xad, 0x5f, 0xa8, 0xaa, 0xac, 0x50, 0x9d, 0x1d, - 0xc6, 0x32, 0x3f, 0xb9, 0x57, 0xb2, 0x44, 0xa1, 0x8f, 0xb8, 0x82, 0xb0, 0xc8, 0x08, 0xc2, 0x8b, - 0x23, 0xb6, 0x2a, 0x79, 0x29, 0xf8, 0xf7, 0x69, 0xb8, 0xca, 0x96, 0xc4, 0xd5, 0xae, 0xe1, 0x8a, - 0xc2, 0xf3, 0x58, 0x45, 0x3a, 0xab, 0x4d, 0x86, 0xab, 0x48, 0x47, 0x42, 0xe8, 0x17, 0xa2, 0x1e, - 0x87, 0xed, 0xab, 0x25, 0xe0, 0xba, 0x27, 0xd2, 0x41, 0xd5, 0xa8, 0x42, 0x93, 0x67, 0xe0, 0x2f, - 0xdb, 0xee, 0x15, 0x97, 0xc8, 0x6a, 0x0e, 0xc9, 0xbc, 0x67, 0x18, 0xb7, 0xbb, 0xcb, 0x41, 0xfb, - 0x41, 0xdb, 0xb5, 0x81, 0x0a, 0x4f, 0x25, 0xbb, 0x68, 0x67, 0xc1, 0x88, 0x3e, 0xc4, 0xad, 0xef, - 0xee, 0xf2, 0x88, 0x52, 0x17, 0xcb, 0x51, 0x03, 0x9f, 0x6a, 0xfb, 0x88, 0xaa, 0x93, 0x87, 0xe5, - 0x5f, 0x0b, 0x30, 0x43, 0x2c, 0xce, 0x2e, 0xc8, 0xbb, 0x9a, 0xae, 0x98, 0x18, 0x9d, 0xe7, 0x85, - 0xe6, 0x14, 0x80, 0xe2, 0x66, 0xa3, 0x97, 0xff, 0xbe, 0x98, 0x08, 0xde, 0x5f, 0x3c, 0x2e, 0x78, - 0x74, 0x4c, 0xd0, 0xfb, 0x0b, 0x47, 0xf5, 0x13, 0x04, 0xa2, 0x6c, 0x3f, 0xd1, 0xef, 0x44, 0x04, - 0xc2, 0xc9, 0xe6, 0x01, 0xe1, 0x16, 0x34, 0x1e, 0x10, 0x4e, 0xf6, 0x43, 0x02, 0x22, 0xa0, 0xfa, - 0xe4, 0x81, 0xf8, 0x74, 0x0e, 0x8a, 0x0b, 0x58, 0x36, 0xfb, 0x3a, 0x76, 0x95, 0x58, 0xd0, 0x1b, - 0xa9, 0xba, 0x61, 0x95, 0x17, 0x93, 0x6b, 0x06, 0x4f, 0xb8, 0xa6, 0xfc, 0x07, 0x59, 0x91, 0x0f, - 0xc6, 0x07, 0x09, 0x2a, 0xc5, 0x74, 0x4d, 0x12, 0xed, 0x60, 0x9c, 0x83, 0x8a, 0xe4, 0xf1, 0x79, - 0xbb, 0xa7, 0x15, 0x18, 0x13, 0x1a, 0x5f, 0xf1, 0xa3, 0xb1, 0xc2, 0xa2, 0x71, 0x27, 0x17, 0x1f, - 0xc2, 0xb4, 0x01, 0x23, 0x02, 0xe2, 0x99, 0x3e, 0x69, 0x32, 0x80, 0xdc, 0x3b, 0x3e, 0x21, 0x13, - 0x70, 0x2d, 0x93, 0x86, 0x6c, 0x4b, 0x6b, 0x62, 0xc6, 0x60, 0x70, 0x38, 0x24, 0xde, 0x5e, 0x2b, - 0xcd, 0x78, 0x47, 0x7e, 0x7d, 0xd4, 0x73, 0x01, 0x52, 0x6f, 0xb0, 0x1d, 0x0a, 0xc3, 0xe7, 0xb7, - 0xc6, 0x0e, 0x44, 0xdb, 0xc1, 0x0f, 0x2b, 0x3e, 0x79, 0x86, 0x7e, 0xb6, 0xe0, 0x28, 0xf9, 0x13, - 0x5d, 0xbd, 0x6f, 0xa7, 0x21, 0x47, 0xaf, 0x7f, 0xd8, 0x03, 0x7c, 0x47, 0xdb, 0xc8, 0x59, 0x75, - 0x7a, 0x11, 0xe8, 0xc3, 0x11, 0x15, 0xd0, 0x89, 0x3a, 0x5b, 0x8c, 0x77, 0x2d, 0x1f, 0x8e, 0xa0, - 0x73, 0x1e, 0x5c, 0xf7, 0x04, 0x5e, 0x7c, 0x65, 0xed, 0xf7, 0x31, 0xff, 0x25, 0x0d, 0x10, 0x38, - 0xfb, 0x06, 0xf3, 0x79, 0xe4, 0xec, 0xfb, 0x06, 0x3f, 0x0e, 0x17, 0x58, 0x1c, 0x6e, 0x0b, 0xe2, - 0x85, 0x25, 0x73, 0xa3, 0xa6, 0x60, 0xf4, 0x09, 0x97, 0xc3, 0x75, 0x86, 0xc3, 0x77, 0x8e, 0x55, - 0x6a, 0xf2, 0x9c, 0xb6, 0x39, 0x1c, 0xb0, 0xd0, 0x1c, 0xc5, 0xe1, 0x90, 0x85, 0xe6, 0x01, 0x38, - 0x1c, 0xbe, 0xda, 0x1c, 0x97, 0xc3, 0x87, 0xb6, 0x88, 0x7c, 0x22, 0x03, 0xb9, 0xea, 0x03, 0x3d, - 0x4d, 0x37, 0xd1, 0x23, 0xac, 0x3d, 0xed, 0x9e, 0x67, 0x1a, 0x9f, 0xfc, 0xb7, 0xc6, 0xdf, 0x8e, - 0xd6, 0xf6, 0x1e, 0x3d, 0xd3, 0x90, 0x78, 0x0e, 0x72, 0x1b, 0xf6, 0x69, 0xb7, 0xbd, 0xe1, 0x42, - 0x4c, 0x53, 0xed, 0xc2, 0x4b, 0xf6, 0xc9, 0xb7, 0x44, 0x53, 0x8a, 0x45, 0x10, 0x5e, 0xa3, 0xf4, - 0xe8, 0x75, 0xb0, 0xf5, 0x97, 0x78, 0xdd, 0xa0, 0x36, 0xd9, 0xb0, 0x61, 0x62, 0xdb, 0x58, 0x54, - 0x41, 0x62, 0x23, 0xc5, 0xd3, 0x70, 0x94, 0x46, 0x2c, 0x28, 0x2a, 0xb6, 0x9d, 0xc4, 0x15, 0x24, - 0x26, 0x0e, 0x7d, 0xd9, 0x0f, 0xee, 0xed, 0x2c, 0xb8, 0xa7, 0x87, 0xd1, 0x16, 0x68, 0x22, 0x64, - 0xd0, 0x7a, 0x06, 0x39, 0xb8, 0xef, 0xb7, 0xdb, 0x18, 0x77, 0xe8, 0x5d, 0x83, 0x13, 0x8c, 0xa8, - 0x37, 0xf4, 0x6e, 0x57, 0x4a, 0x5e, 0xc6, 0x48, 0xc9, 0x0b, 0x46, 0x93, 0x97, 0xfc, 0x4b, 0xfa, - 0x15, 0xc8, 0xd1, 0x7b, 0x8a, 0xa3, 0x50, 0x58, 0x96, 0xf5, 0xed, 0x8e, 0x76, 0xb9, 0x6b, 0x9f, - 0xc6, 0xaf, 0xd0, 0x13, 0x9b, 0x62, 0xca, 0x2a, 0xf1, 0xbe, 0x66, 0xa3, 0x5e, 0x4c, 0x8b, 0x79, - 0x10, 0xe6, 0x1b, 0xad, 0xa2, 0x60, 0xfd, 0x69, 0x5e, 0x3c, 0x5f, 0xcc, 0x88, 0xc7, 0x00, 0xce, - 0x4b, 0xe5, 0x95, 0xc5, 0x35, 0x92, 0x22, 0x8b, 0xde, 0x2c, 0xc0, 0x71, 0xbb, 0x31, 0xde, 0x11, - 0xd5, 0xbd, 0xe1, 0xc2, 0x36, 0xda, 0x13, 0xcd, 0xe7, 0xb8, 0x9f, 0xac, 0x0d, 0x54, 0x1d, 0x01, - 0xef, 0x68, 0xa8, 0xf2, 0xbd, 0x5b, 0x0b, 0xa7, 0x66, 0x02, 0x4f, 0xd3, 0xd3, 0x0e, 0x18, 0x8e, - 0x51, 0x34, 0x63, 0xc0, 0xcf, 0xd0, 0x20, 0x18, 0x91, 0x59, 0xed, 0x16, 0x7c, 0x45, 0xb0, 0x3a, - 0x88, 0x9a, 0x89, 0x3c, 0x67, 0x2e, 0xda, 0x34, 0x10, 0x4f, 0x03, 0x86, 0xa9, 0xe9, 0xd8, 0x6f, - 0xdc, 0x3b, 0xc2, 0x28, 0x8b, 0x1e, 0xe2, 0x3e, 0x9c, 0x1a, 0xac, 0x31, 0x31, 0x10, 0xf8, 0x0e, - 0xac, 0x46, 0x90, 0x93, 0x3c, 0x0a, 0x0f, 0xa5, 0xe1, 0xe8, 0xb2, 0xbc, 0xed, 0xda, 0x00, 0xe4, - 0xd7, 0x68, 0x61, 0x0c, 0x4e, 0x85, 0xee, 0x2c, 0xfc, 0xe5, 0x87, 0xbe, 0x40, 0x4e, 0xbb, 0xe6, - 0xe0, 0xf8, 0xf6, 0x14, 0x21, 0x05, 0x27, 0xcf, 0xb9, 0xef, 0xa6, 0x61, 0xd6, 0x4f, 0xc0, 0xdc, - 0x9e, 0xef, 0x19, 0x31, 0x6b, 0xe6, 0x7b, 0xe0, 0xd1, 0xeb, 0x14, 0xf3, 0x98, 0xf4, 0x57, 0xb8, - 0x4f, 0xb4, 0x83, 0x6a, 0xe3, 0xe4, 0x29, 0xdf, 0x09, 0x37, 0x67, 0x25, 0x13, 0xd0, 0xd8, 0x4b, - 0xc3, 0x4c, 0x45, 0xd5, 0xba, 0x63, 0x88, 0xe6, 0x3f, 0xa5, 0x78, 0x55, 0x5f, 0x98, 0x0a, 0x38, - 0xf9, 0xc8, 0xa7, 0xd7, 0x12, 0x56, 0xf2, 0x04, 0x1e, 0x08, 0xa4, 0xe1, 0xb8, 0x8d, 0xdd, 0x7c, - 0xbf, 0xa7, 0x2a, 0xed, 0x48, 0xec, 0x7b, 0x7d, 0xc4, 0xf7, 0xee, 0x6e, 0x15, 0x9c, 0x0c, 0x8c, - 0xf2, 0x84, 0x3d, 0xa8, 0xec, 0x09, 0xf8, 0x70, 0xcf, 0xc0, 0xb1, 0xd5, 0xae, 0xd1, 0x53, 0x65, - 0x63, 0x8b, 0xaa, 0x9c, 0xdd, 0xc6, 0x5c, 0x55, 0xbe, 0xba, 0x8f, 0xf5, 0x3d, 0xe7, 0xaa, 0x92, - 0x04, 0x86, 0x2b, 0xfc, 0xa0, 0x87, 0x04, 0x5e, 0xdb, 0x96, 0x6c, 0x7d, 0x01, 0xec, 0x5c, 0x84, - 0x42, 0x4f, 0x69, 0x9b, 0x7d, 0x1d, 0xef, 0xd7, 0x2c, 0x08, 0x2b, 0x64, 0xc5, 0xce, 0x24, 0xb9, - 0xb9, 0x91, 0x0c, 0x79, 0x1a, 0xb9, 0x4f, 0xbf, 0x88, 0xda, 0x49, 0x4c, 0x7b, 0x76, 0x12, 0x4f, - 0x42, 0x4e, 0xd6, 0x4d, 0xc5, 0x70, 0xf4, 0xda, 0x68, 0xc8, 0x92, 0x25, 0xfb, 0xdf, 0xaa, 0xae, - 0xd2, 0xeb, 0x48, 0x2f, 0xc2, 0x67, 0x1c, 0x22, 0xcc, 0x10, 0x67, 0x68, 0xbb, 0xa3, 0x41, 0x7d, - 0x61, 0x0c, 0xad, 0xd0, 0xab, 0xe1, 0x19, 0x12, 0xf1, 0x59, 0x51, 0x5b, 0xae, 0xb5, 0xd6, 0xaa, - 0xaf, 0xa8, 0x54, 0xab, 0xf3, 0xd5, 0xf9, 0x62, 0x07, 0x7d, 0x3f, 0x0d, 0x45, 0x87, 0x36, 0xc7, - 0x16, 0xdf, 0x40, 0x3f, 0xa2, 0xcc, 0xf4, 0xfa, 0x91, 0x1b, 0xc1, 0x6a, 0xe0, 0x85, 0xae, 0x4a, - 0x06, 0xeb, 0x88, 0x60, 0x98, 0xf1, 0xcb, 0x5c, 0xeb, 0x8c, 0x11, 0x15, 0x1c, 0x22, 0x8b, 0xbf, - 0x9e, 0x86, 0x99, 0x72, 0xaf, 0xa7, 0xee, 0xb9, 0xc3, 0x7c, 0x94, 0x8b, 0x1a, 0x9f, 0x85, 0x94, - 0xf4, 0x3e, 0x0b, 0x29, 0x3f, 0xe0, 0x9e, 0x06, 0x18, 0x02, 0x02, 0x0e, 0x2f, 0xf8, 0x86, 0xfd, - 0xb0, 0x92, 0x92, 0x1f, 0xb3, 0xde, 0xf6, 0x0c, 0xc8, 0x12, 0xef, 0x64, 0xe8, 0xa3, 0x02, 0xe4, - 0x55, 0x6d, 0xb3, 0xd6, 0xdd, 0xd0, 0x86, 0xe9, 0x0e, 0x6e, 0x61, 0xf7, 0x1d, 0x25, 0xf9, 0x2f, - 0x9e, 0x81, 0x63, 0xd6, 0xaf, 0x23, 0x1f, 0xd4, 0xd0, 0x7a, 0x41, 0x1a, 0x88, 0x15, 0x4f, 0xc3, - 0x51, 0x53, 0x33, 0x65, 0xd5, 0xaf, 0xb3, 0x9e, 0x95, 0x98, 0x38, 0x0b, 0x35, 0x12, 0x6e, 0x2a, - 0xaf, 0xc1, 0x54, 0xa7, 0xd5, 0x8b, 0x10, 0xaf, 0x83, 0x99, 0x0d, 0x45, 0x37, 0x4c, 0x3b, 0x75, - 0xcb, 0x3e, 0xa6, 0xc8, 0x4a, 0x6c, 0xa4, 0x6d, 0x20, 0xde, 0x8d, 0xb8, 0x88, 0x75, 0xa2, 0x2a, - 0x47, 0x0c, 0xc4, 0xfb, 0x63, 0x2d, 0x7a, 0x54, 0xd9, 0x57, 0x58, 0xc1, 0xa6, 0xc7, 0x1f, 0xe7, - 0x98, 0x79, 0xf3, 0x8a, 0xb2, 0x15, 0x0f, 0xd9, 0x48, 0xab, 0x46, 0x2b, 0x62, 0xa5, 0xaf, 0xaa, - 0x4d, 0xdc, 0x2e, 0x6f, 0x6a, 0x44, 0xfd, 0x30, 0x2b, 0x0d, 0xc4, 0x8a, 0x08, 0x0a, 0xfd, 0x5e, - 0xd3, 0x94, 0xcd, 0xbe, 0x41, 0x35, 0x4c, 0xdc, 0xb0, 0x25, 0x91, 0x1d, 0xed, 0x72, 0x97, 0x7e, - 0xb5, 0x95, 0x9a, 0x7c, 0x31, 0xd6, 0xfc, 0x60, 0x0b, 0xe1, 0x8c, 0x3d, 0x6b, 0xd8, 0x92, 0xf5, - 0x27, 0x02, 0x80, 0xb9, 0xa5, 0x63, 0xb9, 0x33, 0x14, 0xae, 0x97, 0xc0, 0x49, 0x55, 0xdb, 0x34, - 0x2e, 0x29, 0xe6, 0x96, 0x07, 0xc4, 0xa2, 0x03, 0x60, 0x56, 0x0a, 0xf8, 0x2a, 0xbe, 0x1c, 0x9e, - 0xed, 0x7c, 0xb9, 0xb4, 0xa5, 0xa9, 0xb8, 0xa5, 0x63, 0x3c, 0x80, 0x6f, 0x56, 0x0a, 0x4b, 0x22, - 0x96, 0x20, 0x63, 0x7d, 0x9e, 0xcd, 0x90, 0x59, 0x86, 0x3d, 0xba, 0x22, 0x62, 0x56, 0xa2, 0x22, - 0x26, 0x91, 0x74, 0xe2, 0xed, 0x70, 0xb5, 0x76, 0xb9, 0xbb, 0xa4, 0x6d, 0x2e, 0xca, 0x46, 0x45, - 0xde, 0xc0, 0x12, 0xb6, 0x27, 0x6f, 0x4d, 0xa7, 0x07, 0x56, 0x41, 0x9f, 0xc5, 0x12, 0x88, 0x6d, - 0x79, 0x03, 0x2f, 0xb1, 0x00, 0xd8, 0x92, 0x31, 0xe4, 0x8b, 0x05, 0xbb, 0x15, 0xbb, 0xea, 0x00, - 0x61, 0xeb, 0x51, 0x32, 0x71, 0x16, 0xa0, 0x56, 0x78, 0xde, 0x03, 0xc4, 0xd6, 0x5d, 0x1b, 0x88, - 0xdd, 0x27, 0xd2, 0x53, 0xa3, 0x44, 0x1a, 0x06, 0x45, 0xda, 0x85, 0x75, 0xda, 0x0f, 0xeb, 0xb7, - 0xb2, 0x90, 0x69, 0xee, 0x75, 0xdb, 0xd6, 0x7a, 0xc7, 0x1d, 0xd1, 0xce, 0xc1, 0x09, 0xaa, 0x00, - 0xd4, 0xd2, 0xe5, 0x5d, 0xac, 0x1b, 0x78, 0x89, 0x2c, 0x18, 0x6c, 0x43, 0xe3, 0x43, 0xbf, 0x59, - 0xf2, 0x6b, 0x6c, 0x2b, 0xbd, 0xea, 0x4e, 0xcf, 0xdc, 0x5b, 0xb2, 0xf0, 0xa0, 0x3e, 0x77, 0x99, - 0x48, 0xf1, 0x1e, 0x40, 0xa6, 0xbe, 0xd7, 0xd2, 0x1c, 0xfc, 0x24, 0xbc, 0xa3, 0x99, 0xd8, 0x69, - 0x14, 0xf5, 0x47, 0x18, 0x9c, 0x02, 0xfd, 0x26, 0xb7, 0x45, 0x7d, 0x1b, 0x7a, 0xab, 0x69, 0x01, - 0xf3, 0xd4, 0x4b, 0x21, 0x6f, 0xcb, 0xb3, 0xb3, 0x40, 0x79, 0xce, 0x90, 0xfc, 0x9e, 0xc4, 0x4b, - 0x4e, 0x6a, 0xc6, 0xfc, 0xbc, 0x30, 0x60, 0x7e, 0xde, 0x81, 0xa9, 0x45, 0x4b, 0xf6, 0x8f, 0x3c, - 0x34, 0x8e, 0xf0, 0xc0, 0xfe, 0x6b, 0x89, 0xb4, 0xd6, 0x37, 0x2d, 0x11, 0xab, 0x75, 0x1b, 0x44, - 0xea, 0xe8, 0x50, 0x14, 0x92, 0x42, 0x9c, 0x83, 0x6b, 0xd8, 0xaf, 0x8b, 0xec, 0x98, 0x68, 0x0b, - 0x64, 0x68, 0x9a, 0x7d, 0xe2, 0x94, 0x1f, 0x25, 0x4e, 0x85, 0x01, 0x71, 0xe2, 0xb4, 0xb5, 0x1c, - 0x88, 0x42, 0xf2, 0xd3, 0xcc, 0x17, 0x04, 0xc8, 0xd9, 0x2c, 0x47, 0x6f, 0x49, 0x31, 0xcf, 0xf7, - 0x29, 0xa8, 0xee, 0xf3, 0x7d, 0x27, 0x3c, 0x21, 0x19, 0x7e, 0x3f, 0xbf, 0x01, 0x67, 0xc2, 0x3d, - 0xbb, 0x11, 0x81, 0x3a, 0x7d, 0x19, 0xa5, 0xbb, 0xa1, 0xd1, 0xeb, 0xb9, 0x11, 0x22, 0x4c, 0x92, - 0x72, 0x1e, 0x5b, 0x84, 0xd4, 0x3d, 0x11, 0xe7, 0xdf, 0x19, 0x6b, 0x98, 0x47, 0xaf, 0x64, 0x9c, - 0xc4, 0xac, 0x53, 0x87, 0x15, 0xd4, 0x07, 0x16, 0x0d, 0x0e, 0x3d, 0x07, 0x3b, 0x0d, 0x47, 0xfb, - 0x5d, 0xb9, 0xab, 0x75, 0xf7, 0x76, 0x94, 0xd7, 0xb8, 0x0b, 0x05, 0x26, 0x8e, 0x55, 0xd3, 0xe3, - 0x18, 0x4c, 0x2c, 0x8a, 0x82, 0x9d, 0x30, 0x6f, 0x28, 0x2a, 0x26, 0x0a, 0xfc, 0x8e, 0x45, 0x68, - 0x1a, 0x8e, 0xd4, 0x53, 0x86, 0x54, 0x91, 0x3c, 0xb7, 0xff, 0x3e, 0x05, 0x27, 0xce, 0xe3, 0x2e, - 0xd6, 0x95, 0xb6, 0xdd, 0x28, 0x2e, 0x6b, 0x8b, 0xc3, 0x72, 0xb0, 0x8b, 0x51, 0x3e, 0x3b, 0x89, - 0xc1, 0xe5, 0x24, 0x7f, 0x51, 0x92, 0x87, 0x2c, 0xe9, 0xd7, 0x73, 0xd7, 0x7c, 0xed, 0x89, 0x53, - 0xa9, 0x6f, 0x3e, 0x71, 0x2a, 0xf5, 0xfd, 0x27, 0x4e, 0xa5, 0x7e, 0xf1, 0xc9, 0x53, 0x47, 0xbe, - 0xf9, 0xe4, 0xa9, 0x23, 0x7f, 0xfe, 0xe4, 0xa9, 0x23, 0xff, 0x5f, 0xba, 0xb7, 0xbe, 0x9e, 0x23, - 0x7a, 0xae, 0xb7, 0xfe, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x87, 0x01, 0xa4, 0xc7, 0x65, 0x0c, - 0x01, 0x00, + // 10020 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x79, 0x94, 0x24, 0x47, + 0x79, 0xa7, 0xaa, 0xb2, 0xae, 0xfe, 0x66, 0x7a, 0xa6, 0x94, 0x0c, 0xa3, 0x26, 0x10, 0x83, 0x18, + 0x24, 0x21, 0x64, 0x51, 0x83, 0x46, 0x08, 0x24, 0xa1, 0x83, 0xea, 0xea, 0xea, 0x99, 0xd2, 0x74, + 0x57, 0xb5, 0xb3, 0xaa, 0x67, 0xd0, 0xe2, 0xdd, 0xde, 0xec, 0xaa, 0xe8, 0xee, 0xa4, 0xb3, 0x33, + 0x8b, 0xcc, 0xac, 0x1e, 0x35, 0xef, 0xed, 0x01, 0x98, 0x05, 0xc3, 0x83, 0x35, 0xf8, 0x00, 0xc4, + 0x9a, 0xd3, 0x18, 0x83, 0x39, 0x2c, 0x0c, 0x16, 0xc7, 0x6a, 0xc1, 0x5e, 0xb1, 0x1c, 0xc6, 0x6b, + 0x58, 0x1f, 0x18, 0xfc, 0x60, 0xb1, 0x58, 0xde, 0xdb, 0x5d, 0x99, 0xc5, 0x78, 0x59, 0xfb, 0x61, + 0x3f, 0xd6, 0xfb, 0x32, 0x32, 0xf2, 0x88, 0xea, 0xca, 0xac, 0xc8, 0xea, 0xcc, 0xea, 0xe1, 0xed, + 0x5f, 0x55, 0x11, 0x19, 0x19, 0xf1, 0xc5, 0xf7, 0xfb, 0xe2, 0xc8, 0x2f, 0xbe, 0xf8, 0x3e, 0x98, + 0xeb, 0xaf, 0x9f, 0xe9, 0x1b, 0xba, 0xa5, 0x9b, 0x67, 0xba, 0xfa, 0xce, 0x8e, 0xac, 0xf5, 0xcc, + 0x0a, 0x49, 0x8b, 0x45, 0x59, 0xdb, 0xb3, 0xf6, 0xfa, 0x18, 0x5d, 0xdf, 0xdf, 0xde, 0x3c, 0xa3, + 0x2a, 0xeb, 0x67, 0xfa, 0xeb, 0x67, 0x76, 0xf4, 0x1e, 0x56, 0xdd, 0x17, 0x48, 0x82, 0x16, 0x47, + 0x37, 0x85, 0x95, 0x52, 0xf5, 0xae, 0xac, 0x9a, 0x96, 0x6e, 0x60, 0x5a, 0xf2, 0xa4, 0xdf, 0x24, + 0xde, 0xc5, 0x9a, 0xe5, 0xd6, 0x70, 0xed, 0xa6, 0xae, 0x6f, 0xaa, 0xd8, 0x79, 0xb6, 0x3e, 0xd8, + 0x38, 0x63, 0x5a, 0xc6, 0xa0, 0x6b, 0x39, 0x4f, 0x4f, 0x3f, 0xfa, 0x50, 0x0e, 0x04, 0xa9, 0xdf, + 0x45, 0x8f, 0x65, 0xa1, 0xb8, 0x8c, 0x2d, 0x43, 0xe9, 0x9a, 0xe8, 0x93, 0x59, 0x98, 0x6d, 0x63, + 0x6b, 0x45, 0x36, 0xe4, 0x1d, 0x6c, 0x61, 0xc3, 0x44, 0x37, 0x40, 0x51, 0xc2, 0x2f, 0x1b, 0x60, + 0xd3, 0x12, 0x11, 0x94, 0xfa, 0xaa, 0x6c, 0x6d, 0xe8, 0xc6, 0xce, 0x5c, 0xe6, 0xba, 0xcc, 0x4d, + 0x33, 0x92, 0x97, 0x46, 0xff, 0x98, 0x81, 0x92, 0x84, 0xcd, 0xbe, 0xae, 0x99, 0x58, 0x3c, 0x07, + 0x79, 0x6c, 0x18, 0xba, 0x41, 0x4a, 0x1d, 0x39, 0x7b, 0x6b, 0x85, 0xf6, 0xbc, 0x22, 0xf5, 0xbb, + 0x15, 0xda, 0x54, 0x85, 0x69, 0xa6, 0xe2, 0xbe, 0x5b, 0xa9, 0xdb, 0x2f, 0x4a, 0xce, 0xfb, 0xe8, + 0x03, 0x19, 0xc8, 0x93, 0x0c, 0xf1, 0x7e, 0xc8, 0x75, 0xf5, 0x1e, 0x26, 0x35, 0x1e, 0x3b, 0xfb, + 0xfc, 0xd8, 0x35, 0x56, 0x6a, 0x7a, 0x0f, 0x4b, 0xa4, 0x0e, 0xf1, 0x3a, 0x38, 0xd2, 0xc3, 0x66, + 0xd7, 0x50, 0xfa, 0x96, 0xa2, 0x6b, 0x73, 0x59, 0xd2, 0x95, 0x60, 0xd6, 0xe9, 0xb3, 0x90, 0xb3, + 0xcb, 0x8b, 0x25, 0xc8, 0x35, 0x57, 0x97, 0x96, 0xca, 0x57, 0x89, 0x57, 0xc3, 0xec, 0x6a, 0xf3, + 0x42, 0xb3, 0x75, 0xa9, 0xb9, 0x56, 0x97, 0xa4, 0x96, 0x54, 0xce, 0x88, 0xb3, 0x30, 0x33, 0x5f, + 0x5d, 0x58, 0x6b, 0x34, 0x57, 0x56, 0x3b, 0xe5, 0x2c, 0xfa, 0x9f, 0x05, 0x38, 0x5a, 0x7f, 0xd0, + 0xc2, 0x86, 0x26, 0xab, 0x0b, 0x86, 0xde, 0x47, 0x8f, 0x0b, 0x90, 0x5f, 0x54, 0x54, 0x6c, 0xa2, + 0x8f, 0x64, 0x7c, 0x26, 0x5e, 0x0b, 0x33, 0x5d, 0x5d, 0xb3, 0xf0, 0x83, 0x56, 0xa3, 0x47, 0xb9, + 0xe8, 0x67, 0x88, 0xa7, 0xe1, 0x68, 0xcf, 0xd0, 0xfb, 0x1d, 0xd9, 0xd8, 0xc4, 0x76, 0x01, 0x87, + 0x36, 0x26, 0x4f, 0xbc, 0x13, 0x4a, 0x7d, 0xdd, 0x54, 0x08, 0xed, 0x02, 0x61, 0xc7, 0xd3, 0x3c, + 0x76, 0x10, 0x41, 0xa9, 0xcc, 0xab, 0x7a, 0x77, 0xbb, 0xb2, 0x42, 0x0b, 0x49, 0x5e, 0x71, 0xf1, + 0x46, 0x38, 0x46, 0xa4, 0xc7, 0x26, 0x6b, 0x45, 0xb6, 0xb6, 0xcc, 0xb9, 0xdc, 0x75, 0xc2, 0x4d, + 0x33, 0xd2, 0x50, 0x2e, 0x7a, 0x7f, 0x36, 0x80, 0xe6, 0x02, 0x8b, 0x66, 0x85, 0xe1, 0x7d, 0xb0, + 0xc7, 0x15, 0xd2, 0xdb, 0xd1, 0x50, 0x8a, 0xb7, 0x40, 0x9e, 0x08, 0x27, 0xe9, 0xd2, 0x91, 0xb3, + 0x27, 0xfd, 0x5a, 0x68, 0xf1, 0xba, 0xfd, 0x54, 0x72, 0x0a, 0xa1, 0xdf, 0xf0, 0x80, 0x3f, 0xc7, + 0x00, 0x7f, 0x5b, 0xbc, 0xc6, 0xd3, 0x47, 0xfd, 0x47, 0x59, 0x28, 0xd6, 0x6c, 0xf8, 0x34, 0x0b, + 0x29, 0xbc, 0x28, 0xdf, 0x08, 0xc7, 0x36, 0xf4, 0xee, 0xc0, 0xc4, 0x3d, 0x82, 0x94, 0x87, 0xf3, + 0x50, 0xae, 0x38, 0x07, 0xc5, 0xae, 0x53, 0x37, 0x01, 0xfa, 0xa8, 0xe4, 0x26, 0xd1, 0x4f, 0x82, + 0xc3, 0x6d, 0x91, 0x05, 0xe8, 0xb9, 0xe1, 0x3c, 0xa2, 0x94, 0x86, 0x8c, 0xb6, 0xdf, 0xf4, 0x98, + 0xde, 0x60, 0x98, 0x7e, 0x7b, 0xdc, 0x0a, 0xd3, 0x67, 0xfb, 0x1f, 0x9f, 0x81, 0x19, 0xc2, 0xa5, + 0x25, 0xc5, 0xb4, 0xd0, 0x47, 0x05, 0x38, 0x59, 0xd3, 0xb5, 0x5d, 0x6c, 0x58, 0xb5, 0x2d, 0x45, + 0xed, 0x19, 0x58, 0xeb, 0xe8, 0x2b, 0xf2, 0x26, 0x36, 0x51, 0x97, 0x17, 0x13, 0x04, 0xa5, 0x75, + 0x87, 0xed, 0xe6, 0x5c, 0x96, 0x0c, 0x0a, 0x2f, 0x2d, 0x9e, 0x02, 0xd0, 0xd7, 0x5f, 0x8a, 0xbb, + 0x56, 0x67, 0xaf, 0x8f, 0x09, 0x14, 0x33, 0x52, 0x20, 0x07, 0x7d, 0x34, 0x38, 0x5c, 0x24, 0x16, + 0x8d, 0xbb, 0x19, 0xe6, 0x79, 0x34, 0x57, 0x46, 0xd3, 0x1b, 0x32, 0x78, 0xe6, 0xa0, 0xa8, 0x2a, + 0x5a, 0x80, 0x36, 0x37, 0x89, 0x3e, 0xee, 0x61, 0xb6, 0xca, 0x60, 0x56, 0x3d, 0x48, 0xb3, 0xe9, + 0xe3, 0xf7, 0x77, 0x02, 0xe4, 0x96, 0xf5, 0x5d, 0x8c, 0xbe, 0x92, 0x49, 0x02, 0xa0, 0x9b, 0xe0, + 0xb8, 0x45, 0xa6, 0xc7, 0x9a, 0xf7, 0xbe, 0x83, 0xd2, 0x70, 0xf6, 0xbe, 0x09, 0x36, 0x37, 0x66, + 0x82, 0xcd, 0xc7, 0x9a, 0x60, 0xd1, 0x3b, 0x83, 0x92, 0xf0, 0x22, 0x56, 0x12, 0x6e, 0x0e, 0x81, + 0xc4, 0xe6, 0x43, 0x22, 0x93, 0xe6, 0x7b, 0x3c, 0x59, 0xa8, 0x31, 0xb2, 0x70, 0x86, 0xbf, 0xe1, + 0xf4, 0x91, 0xff, 0x9d, 0x1c, 0xcc, 0xda, 0x0d, 0x77, 0xf4, 0x26, 0xbe, 0x6c, 0x0b, 0x1f, 0xfa, + 0xd3, 0x44, 0x44, 0xe0, 0x56, 0x28, 0xf6, 0xb0, 0x25, 0x2b, 0xaa, 0x49, 0xa0, 0x3f, 0x72, 0xf6, + 0x9a, 0x8a, 0xb3, 0xfd, 0xa9, 0xb8, 0xdb, 0x9f, 0x4a, 0x9b, 0x6c, 0x7f, 0x24, 0xb7, 0x5c, 0xda, + 0xb2, 0xf0, 0xa5, 0xa0, 0x2c, 0x34, 0x58, 0x59, 0xb8, 0x2d, 0x02, 0x12, 0x8f, 0x33, 0x21, 0x42, + 0x71, 0x12, 0x0a, 0xce, 0xe8, 0xa7, 0x90, 0xd0, 0x94, 0x2f, 0x2c, 0x02, 0x8f, 0xb0, 0xfc, 0x96, + 0x27, 0x2c, 0x4b, 0x8c, 0xb0, 0xdc, 0x31, 0x01, 0x65, 0xe9, 0x4b, 0xcd, 0x5f, 0x0b, 0x30, 0xb3, + 0x30, 0xe8, 0xab, 0x4a, 0x57, 0xb6, 0x30, 0x7a, 0x28, 0x8e, 0xc4, 0x58, 0xec, 0x5e, 0xca, 0x4b, + 0x33, 0xd2, 0x24, 0x0c, 0x49, 0x53, 0x10, 0xf6, 0x5c, 0x3c, 0xd8, 0x3f, 0x1f, 0x84, 0xbd, 0xce, + 0xc2, 0x1e, 0x36, 0x12, 0xbd, 0xae, 0x85, 0x40, 0x1e, 0x25, 0xf8, 0xf1, 0x60, 0x7f, 0xbf, 0x07, + 0xfb, 0x79, 0x06, 0xf6, 0xe7, 0xc5, 0xa4, 0x2c, 0x7d, 0xc8, 0x3f, 0x7e, 0x2d, 0x08, 0x6d, 0x6c, + 0xa1, 0x5f, 0x07, 0xc8, 0x75, 0xf0, 0x83, 0x16, 0xfa, 0x7d, 0x01, 0xf2, 0x6d, 0x6b, 0x4f, 0xc5, + 0xe8, 0x95, 0x89, 0xcc, 0x18, 0xf7, 0x40, 0xde, 0xb4, 0xab, 0xa3, 0x9b, 0xe8, 0x67, 0x8d, 0x04, + 0xd8, 0xdd, 0xe0, 0xd8, 0x14, 0x54, 0x48, 0xeb, 0x92, 0xf3, 0x16, 0xfa, 0x9d, 0x20, 0xce, 0xf7, + 0xb3, 0x38, 0x87, 0x71, 0xb3, 0x8d, 0x83, 0x35, 0x25, 0x32, 0xe9, 0x7f, 0xc8, 0x03, 0x74, 0x99, + 0x01, 0xf4, 0xce, 0x49, 0x48, 0x48, 0x1f, 0xd5, 0xb7, 0x0a, 0x90, 0xaf, 0xe9, 0xaa, 0x6e, 0xa0, + 0x07, 0x92, 0xc0, 0xf0, 0x04, 0xe4, 0xbb, 0x76, 0x6d, 0x74, 0xb9, 0x77, 0x12, 0x07, 0x83, 0x86, + 0x50, 0x77, 0xb8, 0xd0, 0x8c, 0x22, 0x21, 0x7d, 0x68, 0x3e, 0x63, 0xef, 0xc9, 0x64, 0x63, 0x1b, + 0xfd, 0xab, 0x24, 0x90, 0xb9, 0x0b, 0x72, 0x3b, 0xb2, 0xb1, 0x4d, 0x67, 0xa5, 0x1b, 0xc7, 0x0f, + 0x2e, 0xbb, 0x69, 0x89, 0xbc, 0x83, 0x1e, 0x9e, 0x60, 0xe5, 0xf4, 0x98, 0x67, 0xd7, 0x93, 0x08, + 0x7c, 0x71, 0x57, 0xc8, 0x28, 0x0a, 0xd2, 0x47, 0xef, 0x43, 0x02, 0x1c, 0x9f, 0x97, 0xbb, 0xdb, + 0x9b, 0x86, 0x3e, 0xd0, 0x7a, 0xa9, 0x0f, 0xb1, 0x47, 0x83, 0x10, 0xb5, 0x58, 0x88, 0xa2, 0xe4, + 0x7b, 0x88, 0xc4, 0x44, 0x80, 0x7a, 0xd8, 0x03, 0x4a, 0x62, 0x80, 0xba, 0x77, 0x62, 0x3a, 0xd2, + 0x87, 0xeb, 0x83, 0x02, 0xe4, 0xab, 0xaa, 0xb2, 0xa9, 0xa1, 0x41, 0x12, 0x20, 0x3d, 0x17, 0xf2, + 0xb2, 0x5d, 0x1b, 0x5d, 0xcb, 0xd0, 0xc8, 0xe1, 0x46, 0xda, 0x93, 0x9c, 0x82, 0xe8, 0x03, 0x13, + 0x6c, 0x53, 0x6c, 0xc6, 0x91, 0x4a, 0x12, 0x81, 0x2d, 0xee, 0x56, 0x24, 0xac, 0xf5, 0xf4, 0xc1, + 0x7a, 0x53, 0x0e, 0x0a, 0x8b, 0x0a, 0x56, 0x7b, 0x26, 0xfa, 0x73, 0xee, 0xad, 0xc7, 0x45, 0x38, + 0x42, 0xe0, 0x71, 0x5e, 0x24, 0x88, 0x45, 0xaf, 0x3e, 0x4e, 0xc1, 0x0a, 0xad, 0xdd, 0x79, 0x48, + 0xf2, 0xa4, 0x60, 0x45, 0xe8, 0x12, 0x80, 0xff, 0x48, 0x9c, 0x83, 0x22, 0x15, 0x02, 0x4a, 0x81, + 0x9b, 0x14, 0xcf, 0x40, 0x61, 0xc3, 0x6d, 0x3a, 0xf2, 0x7b, 0x88, 0x16, 0x43, 0xbf, 0x95, 0xe5, + 0xd5, 0x29, 0x85, 0xd0, 0x7d, 0x70, 0x91, 0xe0, 0xd3, 0x40, 0x71, 0x34, 0x9f, 0xbe, 0x4c, 0x7c, + 0x41, 0x00, 0x61, 0x41, 0xd9, 0x45, 0x9f, 0xf5, 0x76, 0xa5, 0xaf, 0x48, 0x64, 0x57, 0x7a, 0x37, + 0xbb, 0x2b, 0x8d, 0x5e, 0x38, 0x17, 0x94, 0x5d, 0x76, 0x53, 0x3a, 0xe9, 0xca, 0xe9, 0x55, 0x74, + 0x68, 0x2b, 0x67, 0x18, 0x05, 0xe9, 0x23, 0xf9, 0x07, 0x02, 0xe4, 0x16, 0x15, 0x15, 0x1f, 0xee, + 0x07, 0x86, 0x4d, 0x41, 0x32, 0x1f, 0x18, 0x7e, 0x4d, 0x87, 0xb6, 0x8b, 0x0d, 0x25, 0x21, 0x7d, + 0x34, 0x3f, 0x25, 0x40, 0xa9, 0x33, 0x30, 0xb4, 0x86, 0x66, 0xe9, 0x57, 0xc6, 0x87, 0x22, 0xff, + 0x61, 0x8a, 0xcf, 0x44, 0xb7, 0x07, 0x53, 0x3c, 0x4c, 0x19, 0xdb, 0x78, 0xfa, 0xd8, 0xbd, 0xfa, + 0x5b, 0x19, 0xc8, 0x13, 0x3a, 0xd0, 0xc7, 0x04, 0x1b, 0xb9, 0xbe, 0x2a, 0x77, 0x31, 0xda, 0xe1, + 0x05, 0x31, 0xb0, 0x18, 0x66, 0xd9, 0xc5, 0xf0, 0x66, 0xc8, 0x93, 0xbf, 0xf4, 0x73, 0xe4, 0xc4, + 0x28, 0x08, 0x25, 0xa7, 0x08, 0x7a, 0x24, 0x88, 0xd7, 0x7d, 0x2c, 0x5e, 0xcf, 0xde, 0xcf, 0xb2, + 0x0a, 0x25, 0x33, 0x5c, 0x75, 0x1f, 0x42, 0x53, 0x3c, 0xc5, 0xcd, 0xbb, 0x3d, 0x10, 0xe7, 0x19, + 0x10, 0x2b, 0xdc, 0x14, 0x4d, 0x65, 0x53, 0x3b, 0xbb, 0xda, 0xef, 0xc9, 0x16, 0x76, 0x8f, 0xc4, + 0xa6, 0x0c, 0x5d, 0xcc, 0x4d, 0x6d, 0x85, 0x21, 0x76, 0xdc, 0x58, 0x4b, 0x5a, 0xbf, 0x16, 0xd9, + 0x7a, 0xfa, 0x60, 0x7d, 0x33, 0x07, 0xf9, 0x76, 0x5f, 0x55, 0x2c, 0xf4, 0x50, 0x36, 0x11, 0x94, + 0x0c, 0x59, 0xdb, 0xc4, 0x21, 0x28, 0x49, 0xf6, 0x33, 0xc9, 0x29, 0xe2, 0xcf, 0xa7, 0xb9, 0x49, + 0xe6, 0x53, 0xf1, 0x4e, 0xc8, 0xd9, 0x05, 0xa9, 0x3a, 0xfe, 0x86, 0x11, 0x8c, 0x25, 0xdd, 0xf2, + 0x36, 0xd2, 0xcb, 0x84, 0x93, 0xf6, 0x2b, 0xa7, 0x6f, 0x85, 0x9c, 0x9d, 0x12, 0x01, 0x0a, 0xf3, + 0xad, 0x4e, 0xa7, 0xb5, 0x5c, 0xbe, 0x4a, 0x2c, 0x82, 0xd0, 0x69, 0xad, 0x94, 0x33, 0xe2, 0x0c, + 0xe4, 0x1b, 0xcd, 0x66, 0x5d, 0x2a, 0x67, 0xed, 0xbf, 0x9d, 0x46, 0x67, 0xa9, 0x5e, 0x16, 0xd8, + 0x55, 0xf8, 0x1e, 0x56, 0xa4, 0x9e, 0x15, 0xd1, 0x76, 0x9a, 0x73, 0xc1, 0x3b, 0x3d, 0x21, 0x7b, + 0x11, 0x23, 0x64, 0xb7, 0x70, 0xd2, 0x93, 0xbe, 0x70, 0xfd, 0xaa, 0x00, 0xf9, 0x65, 0x6c, 0x6c, + 0x62, 0xf4, 0xb2, 0x18, 0xa6, 0x0f, 0x1b, 0x8a, 0x61, 0x5a, 0xec, 0x91, 0x38, 0x93, 0x27, 0x5e, + 0x0f, 0xb3, 0x26, 0xee, 0xea, 0x9a, 0x77, 0x6e, 0xee, 0xe8, 0x24, 0xd8, 0x4c, 0xf4, 0xb6, 0x98, + 0x90, 0x11, 0x42, 0x13, 0x59, 0x69, 0xe3, 0x00, 0x33, 0xaa, 0xd5, 0xf4, 0x81, 0xf9, 0x5b, 0xc1, + 0x7e, 0xa9, 0xbf, 0x87, 0xde, 0xc6, 0xbd, 0x35, 0xba, 0x05, 0x0a, 0x44, 0x4c, 0xdd, 0x6f, 0xd8, + 0xd1, 0x33, 0x30, 0x2d, 0x23, 0xce, 0xc3, 0xd5, 0x26, 0x56, 0x71, 0xd7, 0xc2, 0x3d, 0x7b, 0xe8, + 0x4a, 0x63, 0x27, 0x85, 0xfd, 0xc5, 0xd1, 0xd7, 0x82, 0x00, 0xde, 0xcd, 0x02, 0x78, 0xe3, 0x08, + 0x56, 0xda, 0x1d, 0x0a, 0x3f, 0x39, 0xb1, 0xbb, 0xd1, 0x56, 0x75, 0xcb, 0x3b, 0x00, 0xa2, 0x69, + 0xfb, 0xd9, 0x96, 0xb5, 0xa3, 0x92, 0x67, 0x8e, 0x20, 0x79, 0x69, 0xb1, 0x02, 0x45, 0x59, 0xdb, + 0x23, 0x8f, 0x72, 0x11, 0xbd, 0x76, 0x0b, 0xa1, 0x77, 0x78, 0xc8, 0xdf, 0xc7, 0x20, 0xff, 0x33, + 0x7c, 0xe4, 0xa6, 0x0f, 0xfc, 0xdf, 0x14, 0x20, 0xbf, 0x22, 0x9b, 0x16, 0x46, 0xdf, 0x16, 0x92, + 0xb6, 0x53, 0x49, 0x00, 0x73, 0xf1, 0x66, 0x28, 0xbb, 0x99, 0xf3, 0xee, 0x46, 0xdc, 0x31, 0x4e, + 0xda, 0x97, 0x6f, 0x4f, 0x03, 0x8a, 0xb9, 0x22, 0x1b, 0x56, 0x6b, 0x83, 0xe4, 0x91, 0xa5, 0xa0, + 0x24, 0xb1, 0x99, 0x0c, 0xf4, 0x85, 0x08, 0xe8, 0x8b, 0xe1, 0xd0, 0x97, 0x38, 0xa0, 0x17, 0xab, + 0x50, 0xda, 0x50, 0x54, 0x4c, 0x5e, 0x98, 0x21, 0x2f, 0x8c, 0x5a, 0x93, 0x08, 0xef, 0xbd, 0x35, + 0xc9, 0xfe, 0x40, 0x92, 0xbc, 0xd7, 0xd0, 0x92, 0xf3, 0x05, 0x2a, 0x8a, 0x90, 0xd3, 0xe4, 0x1d, + 0x4c, 0x91, 0x20, 0xff, 0xed, 0xbc, 0x9e, 0x6c, 0xc9, 0x84, 0xf5, 0x47, 0x25, 0xf2, 0xdf, 0x86, + 0x8d, 0x58, 0x6c, 0xad, 0xc8, 0xd6, 0x16, 0x15, 0x5d, 0x3f, 0x03, 0xbd, 0x46, 0x88, 0x37, 0xff, + 0xb9, 0xa4, 0xc5, 0x3d, 0x79, 0xbc, 0x1e, 0x66, 0xbb, 0xb2, 0x81, 0xad, 0x95, 0xa0, 0x35, 0x5a, + 0x5e, 0x62, 0x33, 0x6d, 0x60, 0x15, 0xb3, 0x2d, 0xef, 0x60, 0xd2, 0x58, 0xcd, 0x7e, 0x46, 0x16, + 0xfe, 0x92, 0xb4, 0x2f, 0xdf, 0x9f, 0x6d, 0xf3, 0x49, 0xcf, 0xb6, 0xa3, 0xfa, 0x98, 0xfe, 0xa0, + 0x7b, 0x77, 0x0e, 0x84, 0xda, 0xc0, 0xba, 0xa2, 0x27, 0xdb, 0x9f, 0x04, 0x27, 0xdb, 0x17, 0xb2, + 0xd2, 0x32, 0x4a, 0x90, 0x6b, 0x03, 0xeb, 0x70, 0xe7, 0xda, 0x98, 0x52, 0xf2, 0x6b, 0x9e, 0x94, + 0xdc, 0xcb, 0x48, 0xc9, 0xcd, 0x5c, 0x7d, 0x4b, 0x5f, 0x46, 0x3e, 0x20, 0xc0, 0xb1, 0xc6, 0x4e, + 0x5f, 0x37, 0xac, 0x65, 0xd9, 0xd8, 0xee, 0xe9, 0x97, 0x35, 0x74, 0x8e, 0x57, 0x5a, 0x4e, 0x01, + 0x28, 0xe4, 0x55, 0x32, 0x11, 0x38, 0x04, 0x05, 0x72, 0xd0, 0x1f, 0xc6, 0x53, 0xe9, 0x56, 0x58, + 0x3a, 0x42, 0x60, 0xbe, 0x0e, 0x8e, 0x18, 0xba, 0x6e, 0x2d, 0x31, 0x06, 0x69, 0xc1, 0xac, 0x98, + 0xbb, 0xd9, 0x18, 0x4a, 0xdf, 0x68, 0x02, 0xa7, 0x70, 0x10, 0x20, 0x40, 0xa1, 0xfe, 0xa0, 0x4d, + 0x02, 0x5a, 0x4d, 0x65, 0x44, 0xb3, 0xa6, 0x84, 0xf7, 0xb2, 0x88, 0xdd, 0x34, 0x82, 0x21, 0x0e, + 0x35, 0x21, 0x48, 0x89, 0x90, 0xeb, 0xfb, 0x82, 0x41, 0xfe, 0xc7, 0xc4, 0xe6, 0x5d, 0x1e, 0x36, + 0x55, 0x06, 0x9b, 0xe7, 0xf0, 0x92, 0x92, 0x3e, 0x26, 0x6f, 0x11, 0xa0, 0xb0, 0xda, 0x57, 0x75, + 0xb9, 0x87, 0xf4, 0x83, 0x7f, 0xc7, 0x22, 0x67, 0x31, 0x0f, 0x2c, 0xac, 0x5e, 0x5a, 0x2c, 0x83, + 0x30, 0x30, 0x54, 0x6a, 0x26, 0x66, 0xff, 0x45, 0x6f, 0x8f, 0x89, 0x96, 0x43, 0x67, 0x22, 0x9f, + 0x1a, 0x71, 0x90, 0x19, 0xd9, 0x6c, 0xfa, 0xc8, 0xfc, 0x20, 0x0b, 0xa5, 0x05, 0xfd, 0xb2, 0x46, + 0xb0, 0xa9, 0x1e, 0x18, 0x9b, 0xb8, 0xc6, 0x95, 0x15, 0xb7, 0xed, 0x69, 0x1b, 0x57, 0x86, 0x35, + 0x9c, 0x3e, 0xc7, 0x1f, 0xbf, 0xcd, 0xb1, 0x99, 0x7a, 0x8f, 0xe0, 0x1d, 0x58, 0x1a, 0x07, 0x1f, + 0x13, 0xfe, 0x49, 0xa2, 0xc0, 0x77, 0x92, 0xf8, 0xde, 0x20, 0x50, 0xf3, 0x2c, 0x50, 0x23, 0x75, + 0x14, 0xc9, 0x9e, 0x22, 0xfe, 0xba, 0x07, 0x55, 0x9d, 0x81, 0xea, 0xd6, 0x38, 0x4d, 0xa7, 0x0f, + 0xd6, 0xf7, 0x04, 0x28, 0x2e, 0x38, 0xa6, 0xa8, 0xe8, 0x3c, 0x14, 0x9c, 0xbf, 0xf6, 0x24, 0xb3, + 0x8d, 0xf7, 0x28, 0x3c, 0xf6, 0x5f, 0xbb, 0xf3, 0xbb, 0xb2, 0x3a, 0xc0, 0x5e, 0xe7, 0x87, 0xb9, + 0x7f, 0xd1, 0x7e, 0x2a, 0x39, 0x85, 0xd0, 0x16, 0x2f, 0xde, 0xf7, 0xf9, 0x06, 0xb3, 0xd9, 0xd0, + 0xaf, 0x16, 0x72, 0x32, 0xe7, 0x94, 0xa2, 0xbf, 0x9e, 0xf9, 0x2c, 0x7a, 0x5f, 0x10, 0xe5, 0x1a, + 0x8b, 0xf2, 0x73, 0xc6, 0xd4, 0x95, 0x04, 0xcc, 0xef, 0xf3, 0x60, 0x5e, 0x64, 0x60, 0x3e, 0x1b, + 0xab, 0xed, 0xa9, 0x9c, 0x2f, 0x1e, 0x95, 0xb0, 0x69, 0x19, 0x4a, 0xd7, 0xae, 0xc3, 0x44, 0xaf, + 0xcd, 0x1c, 0x7c, 0x4c, 0xd6, 0xe1, 0xa8, 0x11, 0xa8, 0x93, 0x8e, 0xcc, 0x67, 0x8c, 0x54, 0xa5, + 0x06, 0x1b, 0x97, 0x98, 0xd7, 0xd8, 0xed, 0xc6, 0x79, 0x16, 0xc3, 0x30, 0x3e, 0x06, 0xab, 0x4b, + 0x04, 0xc8, 0x0f, 0x7a, 0x40, 0x5e, 0x60, 0x80, 0x7c, 0x41, 0x7c, 0x02, 0xd2, 0x47, 0xf3, 0x95, + 0x02, 0xe4, 0x88, 0xd9, 0xfa, 0x8f, 0xb3, 0x00, 0x0d, 0xb3, 0x6a, 0x74, 0xb7, 0x94, 0x5d, 0xdc, + 0x43, 0xf2, 0xc1, 0x31, 0xb5, 0x77, 0xf3, 0x5e, 0x85, 0x04, 0xd1, 0x92, 0x14, 0xc8, 0x41, 0xaf, + 0x09, 0x82, 0x75, 0x81, 0x05, 0xeb, 0xf6, 0x10, 0x5e, 0x11, 0x6b, 0x6d, 0x9f, 0xcc, 0x90, 0x9b, + 0x3f, 0x1f, 0xf6, 0x10, 0x68, 0x32, 0x08, 0xdc, 0x35, 0x51, 0xad, 0xe9, 0x83, 0xf0, 0x2b, 0x02, + 0xe4, 0x97, 0x64, 0x0b, 0x3f, 0x88, 0x5e, 0x2f, 0x50, 0xeb, 0xe0, 0xd5, 0x83, 0xf3, 0x5f, 0x84, + 0x9c, 0x5d, 0x86, 0xee, 0xfb, 0xc8, 0xff, 0xb8, 0x46, 0x31, 0x84, 0x3b, 0x84, 0x32, 0xe7, 0xe0, + 0x62, 0xca, 0x46, 0x31, 0xd1, 0xcd, 0xa7, 0x8f, 0xcb, 0xf7, 0xcb, 0x14, 0x8d, 0x2f, 0xb9, 0xb0, + 0xfc, 0x72, 0x26, 0x15, 0x5c, 0xc4, 0x7b, 0x20, 0xbf, 0x23, 0x1b, 0xdb, 0x26, 0xd9, 0x8d, 0x1f, + 0xe1, 0x39, 0x43, 0xb2, 0x3f, 0x1a, 0x4d, 0xc9, 0x79, 0x2b, 0xf6, 0x41, 0xa1, 0x67, 0xdb, 0x99, + 0x18, 0xaa, 0x71, 0x0e, 0x0a, 0xa3, 0x5a, 0x4f, 0x1f, 0xd4, 0x37, 0x7a, 0x26, 0xdb, 0x97, 0x0e, + 0x8e, 0xe5, 0x68, 0x6b, 0xd2, 0x49, 0x46, 0x59, 0xc2, 0xc6, 0xda, 0x71, 0x47, 0xd9, 0x21, 0x1a, + 0x6a, 0x7f, 0xd2, 0xb3, 0x53, 0xfa, 0xd7, 0x09, 0x8c, 0xae, 0x03, 0x5a, 0xb7, 0x4c, 0x0c, 0x5d, + 0x72, 0x16, 0x4a, 0x13, 0x41, 0x77, 0x68, 0xd7, 0x1f, 0x8a, 0xb5, 0x2d, 0xdc, 0xdd, 0xc6, 0x3d, + 0xf4, 0x92, 0x83, 0x63, 0x37, 0x07, 0xc5, 0xae, 0x53, 0x1b, 0xdd, 0x2e, 0xb8, 0xc9, 0x89, 0x36, + 0x76, 0x8e, 0x48, 0x3b, 0x15, 0x1c, 0xca, 0xc6, 0x2e, 0x82, 0x80, 0xf4, 0xa1, 0x79, 0x58, 0x80, + 0x5c, 0xa3, 0xab, 0x6b, 0xe8, 0x5f, 0x1c, 0x1c, 0x97, 0x6b, 0x61, 0x46, 0xe9, 0xea, 0x5a, 0x63, + 0x47, 0xde, 0x74, 0xef, 0x0b, 0xfb, 0x19, 0xee, 0xd3, 0xfa, 0x8e, 0xfe, 0x52, 0x85, 0xe8, 0xb0, + 0xe9, 0x53, 0x92, 0x31, 0xf9, 0xd2, 0x64, 0x13, 0x7f, 0x78, 0x4b, 0xd3, 0x88, 0xd6, 0xd3, 0xc7, + 0xec, 0xcd, 0xae, 0xe9, 0xe6, 0x2f, 0x08, 0x90, 0x6b, 0xca, 0x3b, 0x38, 0xa1, 0x6d, 0x20, 0x39, + 0x84, 0x13, 0xfc, 0x43, 0xb8, 0x89, 0x40, 0x21, 0x46, 0x90, 0x36, 0x51, 0x87, 0x02, 0x4a, 0x58, + 0xeb, 0xe9, 0x83, 0xf2, 0x95, 0x3c, 0xe4, 0x89, 0xa0, 0xa3, 0x6f, 0x65, 0xd3, 0x45, 0x85, 0xdf, + 0x0b, 0x82, 0xcf, 0x17, 0x42, 0x59, 0x04, 0x2c, 0xb1, 0x57, 0x93, 0xd0, 0x0a, 0xa7, 0xa0, 0xee, + 0xcb, 0x42, 0xfe, 0x92, 0xd2, 0xb3, 0xb6, 0x12, 0xda, 0x99, 0x5d, 0xb6, 0xeb, 0xa2, 0xa7, 0xb8, + 0x4e, 0x22, 0x86, 0x5f, 0x97, 0x61, 0x8e, 0x10, 0xc2, 0x0e, 0xe4, 0xd7, 0x85, 0xa7, 0xc6, 0xe9, + 0x88, 0xf3, 0x45, 0xa5, 0x87, 0xf5, 0x2b, 0x52, 0x9c, 0x09, 0x65, 0x49, 0x8a, 0x73, 0x68, 0x85, + 0xff, 0xdf, 0x8a, 0xb3, 0xc3, 0x91, 0x24, 0xc5, 0x39, 0xbc, 0xc6, 0xf4, 0x99, 0xfc, 0x59, 0x01, + 0x72, 0x4b, 0x8a, 0xb6, 0x8d, 0x7e, 0x57, 0x80, 0x59, 0xc7, 0xcd, 0x81, 0x6b, 0x37, 0xb7, 0x79, + 0x70, 0xae, 0x5f, 0x0f, 0xb3, 0x56, 0xb0, 0x4e, 0xd7, 0x40, 0x8f, 0xc9, 0x44, 0x9f, 0x09, 0xae, + 0xa6, 0x4d, 0x16, 0x85, 0x3b, 0xc2, 0xb4, 0x1a, 0x8a, 0xb6, 0x5d, 0x61, 0xe8, 0x4d, 0x64, 0x59, + 0xfd, 0x6d, 0x0f, 0xba, 0x9f, 0x65, 0xa0, 0xbb, 0x67, 0x52, 0x32, 0xd2, 0x47, 0xf0, 0xb1, 0x82, + 0xcd, 0x3d, 0x55, 0x26, 0xde, 0x06, 0xde, 0x20, 0x40, 0xa1, 0x8d, 0xad, 0x0b, 0x78, 0x0f, 0xb5, + 0x0f, 0x0e, 0x1f, 0x3d, 0x7c, 0x10, 0xbc, 0xc3, 0x07, 0xf4, 0xe1, 0x6c, 0xbc, 0x01, 0xe3, 0x12, + 0x56, 0x71, 0x88, 0x4a, 0x04, 0xa3, 0x38, 0xc3, 0x2b, 0xba, 0xfd, 0xf4, 0xc1, 0x79, 0xbf, 0x00, + 0x42, 0xb5, 0xd7, 0x43, 0xbb, 0x07, 0x07, 0xe3, 0x36, 0x28, 0x19, 0xb4, 0x37, 0xde, 0xc1, 0xdb, + 0x90, 0x4d, 0x0f, 0x7d, 0x2c, 0x79, 0x05, 0xe3, 0x5e, 0x36, 0xf1, 0xf9, 0x55, 0xed, 0xf5, 0xa6, + 0x7d, 0xd9, 0x24, 0xaa, 0xf1, 0xf4, 0x91, 0xfa, 0x88, 0x00, 0xd0, 0xf2, 0x7d, 0x38, 0xbd, 0x53, + 0x70, 0x8e, 0x4e, 0x97, 0x79, 0x81, 0xbb, 0x1e, 0x66, 0x7d, 0x17, 0x50, 0xab, 0x86, 0xea, 0x4e, + 0x75, 0x4c, 0x26, 0xfa, 0x62, 0x4c, 0xf5, 0x88, 0x4f, 0x91, 0x7b, 0xd4, 0x71, 0x60, 0x44, 0x3e, + 0x1f, 0x63, 0x07, 0x10, 0xd9, 0x7c, 0x3c, 0x4c, 0x5a, 0xf1, 0x31, 0x11, 0x9f, 0x0a, 0xd7, 0xb8, + 0x25, 0x5a, 0xf3, 0xf7, 0xd7, 0x6b, 0x9d, 0xb5, 0xce, 0x03, 0x2b, 0xf5, 0xb5, 0x55, 0x69, 0xa9, + 0x2c, 0xa0, 0xb7, 0x14, 0xa1, 0x34, 0xaf, 0xeb, 0xdb, 0xc4, 0x45, 0xc0, 0xeb, 0x04, 0xc8, 0x2f, + 0x62, 0xab, 0xbb, 0x95, 0xd0, 0xb4, 0x37, 0xf0, 0x00, 0x24, 0x86, 0x1d, 0x71, 0xb5, 0x5a, 0x2e, + 0x5d, 0x15, 0x42, 0xd3, 0xd4, 0xb5, 0x5a, 0x91, 0xcd, 0xa7, 0x3f, 0x94, 0x7e, 0x22, 0xc0, 0xb1, + 0x9a, 0x81, 0x65, 0x0b, 0x57, 0xb5, 0x9e, 0x83, 0xca, 0x2f, 0x26, 0xe2, 0xa2, 0xe7, 0x00, 0xae, + 0x0e, 0xf7, 0x1b, 0xeb, 0x7c, 0x3d, 0x9e, 0xcb, 0x02, 0x9f, 0xa9, 0x6c, 0xd7, 0x52, 0xbe, 0xdb, + 0x11, 0xc3, 0x99, 0x01, 0x27, 0x85, 0xe9, 0xe3, 0xff, 0xdd, 0x1c, 0x55, 0xc3, 0x7c, 0x33, 0x07, + 0xc7, 0x3d, 0x5a, 0xa8, 0x51, 0xd6, 0xdf, 0x5c, 0x71, 0x92, 0xc0, 0x9a, 0x4f, 0xe7, 0x87, 0xcc, + 0xa7, 0xc5, 0x79, 0xc7, 0x04, 0x8c, 0xf8, 0xfa, 0x2b, 0x70, 0x5c, 0xc2, 0x26, 0x9a, 0x16, 0xbb, + 0xb4, 0xe4, 0xbd, 0xc7, 0xde, 0x60, 0x58, 0x62, 0x65, 0x6d, 0xd4, 0xb6, 0x85, 0xd4, 0x31, 0xc4, + 0xb9, 0x94, 0x05, 0xed, 0x23, 0x9e, 0xa0, 0xb5, 0x18, 0x41, 0x7b, 0xe1, 0x64, 0xe4, 0x4d, 0xc1, + 0xc3, 0xc9, 0xdd, 0x50, 0x5a, 0x90, 0x2d, 0x79, 0x57, 0xc1, 0x97, 0xd1, 0x77, 0x04, 0x80, 0x8b, + 0x0a, 0xbe, 0xec, 0x10, 0x15, 0xe3, 0xee, 0x7d, 0x38, 0xfb, 0xee, 0x85, 0x9c, 0x5d, 0x35, 0x3d, + 0x51, 0xbc, 0x39, 0xfa, 0xe2, 0x3d, 0xa5, 0xa3, 0x62, 0xd3, 0x20, 0x91, 0xf7, 0x58, 0x63, 0x5b, + 0x8e, 0xe3, 0x79, 0xa6, 0x0e, 0xa7, 0x1f, 0x49, 0x2c, 0x1c, 0xe2, 0x49, 0x28, 0xd8, 0xd5, 0x7a, + 0x1f, 0x5f, 0x34, 0x15, 0xeb, 0x90, 0x7f, 0x3c, 0x6d, 0xe9, 0xe3, 0xed, 0x42, 0xec, 0x5c, 0x93, + 0x8c, 0x61, 0x43, 0x1f, 0x0e, 0x71, 0x08, 0x6b, 0x0e, 0x0c, 0xfd, 0x27, 0x0e, 0x02, 0xbd, 0xd3, + 0xbf, 0x44, 0xf6, 0x0c, 0x13, 0x43, 0x3c, 0x92, 0x86, 0xf4, 0x21, 0x7e, 0x27, 0x85, 0x78, 0x01, + 0xab, 0xd8, 0xc2, 0xfc, 0xfe, 0x8a, 0x78, 0x10, 0xce, 0x31, 0xc2, 0x7f, 0x20, 0x84, 0x1c, 0xf2, + 0x0e, 0x17, 0xa1, 0x91, 0x34, 0xa4, 0x8f, 0xd0, 0x97, 0x05, 0x38, 0x6e, 0x37, 0xdf, 0xf6, 0x6f, + 0xf4, 0xf0, 0x7b, 0x2c, 0x8a, 0x0d, 0x13, 0x71, 0x31, 0x1e, 0x74, 0xb7, 0x39, 0x1b, 0x70, 0xac, + 0xf8, 0xd9, 0x20, 0x84, 0x2b, 0x2c, 0x84, 0x63, 0xd9, 0x17, 0xa0, 0x3f, 0x11, 0x1c, 0x3f, 0xe6, + 0xe1, 0xd8, 0x66, 0x70, 0xbc, 0x6f, 0x72, 0x42, 0xd2, 0x07, 0xf3, 0xeb, 0x02, 0xcc, 0x52, 0x1a, + 0xaa, 0x5d, 0x4b, 0xd9, 0xc5, 0xe8, 0x35, 0x29, 0x4e, 0xaa, 0x27, 0xa1, 0xa0, 0x6f, 0x6c, 0x98, + 0xf4, 0xba, 0xd7, 0xac, 0x44, 0x53, 0xe2, 0x09, 0xc8, 0xab, 0xca, 0x8e, 0x62, 0x51, 0x80, 0x9d, + 0x44, 0x6c, 0x9d, 0xe0, 0x30, 0x53, 0x9d, 0x0e, 0x4d, 0x5d, 0x27, 0xc8, 0x45, 0x46, 0xfa, 0xc8, + 0x7e, 0x98, 0xd8, 0x98, 0x76, 0x75, 0xa3, 0x47, 0x57, 0xcb, 0x37, 0x66, 0x12, 0xb9, 0x0b, 0x61, + 0x90, 0x3a, 0x3d, 0x68, 0xbd, 0xb4, 0x78, 0x06, 0x0a, 0xce, 0x7f, 0xba, 0x66, 0x86, 0xdb, 0x84, + 0x3b, 0xc5, 0xd0, 0xeb, 0x83, 0xf8, 0x2e, 0xb3, 0xf8, 0xbe, 0x20, 0x8a, 0xb1, 0xc1, 0x6e, 0x85, + 0xe8, 0xdf, 0x3f, 0xea, 0x01, 0xb6, 0xc2, 0x00, 0x76, 0xf7, 0x84, 0xf5, 0x4e, 0xe5, 0xd2, 0x17, + 0xc5, 0x8b, 0x2e, 0x7d, 0xff, 0x34, 0x55, 0xb8, 0xd0, 0xa7, 0x0e, 0xc6, 0xfd, 0x04, 0x17, 0xc0, + 0x03, 0x60, 0x75, 0x48, 0x4b, 0xe0, 0xe3, 0x1e, 0x56, 0xf4, 0x63, 0xe3, 0xcd, 0x99, 0x44, 0xee, + 0x54, 0xd0, 0xf1, 0x23, 0x70, 0x8d, 0x1f, 0xf1, 0x14, 0x80, 0x85, 0x77, 0xfa, 0xaa, 0x6c, 0x61, + 0x6f, 0xd5, 0x0c, 0xe4, 0xa0, 0x7f, 0x7f, 0x30, 0x84, 0x23, 0xbf, 0x3f, 0x7c, 0x62, 0xb3, 0x7c, + 0x83, 0xfd, 0x00, 0x20, 0x1f, 0xd2, 0xc7, 0xc6, 0xaf, 0xe6, 0xe0, 0x88, 0xab, 0x8e, 0x3e, 0x4c, + 0xfd, 0xfd, 0x1b, 0x85, 0x78, 0x8a, 0x83, 0x00, 0xf7, 0x3c, 0xe2, 0x13, 0xf9, 0x8a, 0xbc, 0x0e, + 0x8e, 0xb8, 0x44, 0x5d, 0xf0, 0x8e, 0x84, 0x82, 0x59, 0x4c, 0xff, 0x72, 0xbc, 0xfd, 0x8b, 0xa3, + 0x75, 0xe0, 0xe8, 0x5b, 0xfa, 0x82, 0xf1, 0x84, 0x00, 0xc7, 0xdc, 0xf6, 0xe9, 0xda, 0xfa, 0xd6, + 0x04, 0xc6, 0x7f, 0x4a, 0xec, 0x8d, 0xe9, 0x96, 0x75, 0x3f, 0x8b, 0x13, 0xfc, 0x18, 0x8d, 0xa3, + 0xc9, 0xe4, 0xa3, 0x23, 0x7d, 0xb4, 0x3f, 0x11, 0x40, 0x9b, 0xae, 0xcc, 0xdd, 0x29, 0x80, 0x7d, + 0x70, 0xdc, 0xf8, 0x56, 0x68, 0x21, 0x75, 0xdc, 0x0e, 0x69, 0x8d, 0xfe, 0x56, 0x0e, 0xae, 0x71, + 0xd6, 0x0f, 0x97, 0x90, 0x56, 0xdf, 0x9d, 0xca, 0x1f, 0x99, 0xca, 0x70, 0x7d, 0x3e, 0x14, 0xf4, + 0x7e, 0x60, 0xb0, 0x9e, 0x0a, 0x19, 0xac, 0x15, 0x87, 0x30, 0x89, 0x96, 0x66, 0x76, 0x6d, 0xf9, + 0xa1, 0x5d, 0x1b, 0xe3, 0xc8, 0xe3, 0xc5, 0xac, 0x54, 0xcc, 0x8f, 0x5f, 0x4a, 0xf7, 0xb1, 0x22, + 0x91, 0x85, 0xc1, 0xef, 0xa8, 0x10, 0xa7, 0xa3, 0xe8, 0xd3, 0x9e, 0x58, 0xbd, 0x84, 0x11, 0xab, + 0x73, 0x07, 0xef, 0xc8, 0x14, 0x0e, 0x8b, 0x73, 0x80, 0x46, 0xd1, 0x42, 0x57, 0x84, 0x9f, 0x5e, + 0x11, 0xfb, 0xd3, 0xe0, 0xc4, 0xf3, 0x12, 0x56, 0xc4, 0xea, 0x71, 0x91, 0x49, 0x70, 0xf1, 0x78, + 0xd4, 0x93, 0x96, 0x7f, 0xc6, 0x48, 0xcb, 0xfd, 0x89, 0xd0, 0x34, 0x05, 0xcb, 0xe4, 0x10, 0x81, + 0xa1, 0x8b, 0xca, 0xdb, 0xa7, 0x22, 0x30, 0x08, 0x4a, 0x8e, 0x08, 0x78, 0x5f, 0x0c, 0x5e, 0x7a, + 0x7a, 0x42, 0x91, 0xe0, 0xb7, 0x63, 0x62, 0x42, 0x71, 0x48, 0xab, 0xd4, 0x1f, 0x08, 0xf0, 0x64, + 0x97, 0x90, 0x25, 0xc5, 0xb4, 0xaa, 0xbb, 0xb2, 0xa2, 0xca, 0xeb, 0x2a, 0x4e, 0xc2, 0x3b, 0xc2, + 0xff, 0x0a, 0x82, 0x76, 0x91, 0x05, 0xed, 0x45, 0x3c, 0x4b, 0x37, 0x43, 0x51, 0x08, 0x5e, 0xb7, + 0xc3, 0x8c, 0x2b, 0x60, 0xee, 0xb5, 0xf1, 0xd0, 0x5d, 0xa9, 0x5f, 0x12, 0xfd, 0x17, 0x0f, 0xb8, + 0x07, 0x18, 0xe0, 0xea, 0x07, 0xa5, 0x2b, 0x1e, 0x66, 0x4b, 0x13, 0x98, 0xa4, 0xcc, 0xc1, 0x89, + 0x66, 0xab, 0xb3, 0x56, 0x5d, 0x5b, 0xa8, 0x76, 0xaa, 0x17, 0x1b, 0xf5, 0x4b, 0x6b, 0xf3, 0x4b, + 0xad, 0xda, 0x85, 0xb2, 0x80, 0xfe, 0x9d, 0x00, 0x33, 0x6d, 0x6c, 0xb5, 0xf5, 0x81, 0xd1, 0x4d, + 0xea, 0xec, 0xc2, 0x24, 0x95, 0xd1, 0x70, 0x44, 0x34, 0x15, 0xd7, 0x11, 0xb4, 0xcf, 0x41, 0x8f, + 0xba, 0x71, 0xa3, 0x2f, 0x97, 0xb0, 0x23, 0xe8, 0xf1, 0x24, 0xa4, 0x3f, 0xd8, 0xde, 0x23, 0x80, + 0x70, 0x0e, 0x5b, 0xe8, 0x21, 0x01, 0xf2, 0xe4, 0xee, 0x67, 0x42, 0xce, 0x68, 0x79, 0xdd, 0x9c, + 0xa2, 0x77, 0x07, 0x61, 0xab, 0xb2, 0xb0, 0x8d, 0x72, 0x0b, 0x78, 0x0e, 0xd3, 0x4b, 0xaa, 0x89, + 0xcc, 0x95, 0xef, 0xf5, 0xd0, 0x5a, 0x60, 0xd0, 0x7a, 0x6e, 0x8c, 0x96, 0xd3, 0x07, 0xe9, 0x4e, + 0x38, 0xbe, 0xaa, 0xf5, 0x74, 0x09, 0xf7, 0xf4, 0x9a, 0x3e, 0xd0, 0x2c, 0x4c, 0x9c, 0x16, 0x0d, + 0xb4, 0x9e, 0x4e, 0xc8, 0xcd, 0x4b, 0xe4, 0xbf, 0x9d, 0x67, 0xe0, 0x9e, 0x4e, 0x5a, 0xcd, 0x4b, + 0xe4, 0x3f, 0x7a, 0xbb, 0x00, 0x39, 0xfb, 0x5d, 0xf4, 0x2c, 0x4e, 0x58, 0xd1, 0xff, 0x88, 0xe9, + 0x56, 0xd2, 0xae, 0x3d, 0x91, 0x2d, 0xf3, 0xbd, 0x50, 0xea, 0x3a, 0xbd, 0x73, 0x1d, 0x35, 0x9c, + 0x0e, 0x69, 0x2e, 0xc0, 0x08, 0xc9, 0x7b, 0x27, 0x70, 0x20, 0x31, 0xde, 0xb9, 0xe4, 0x08, 0xa2, + 0xe3, 0xc1, 0xb8, 0x30, 0xc1, 0x24, 0x59, 0x86, 0xa3, 0xb5, 0x6a, 0x73, 0xcd, 0x9e, 0x28, 0x97, + 0x5b, 0x17, 0xeb, 0x65, 0x81, 0xa0, 0x63, 0x77, 0x26, 0x3d, 0x74, 0xec, 0xda, 0x7f, 0xea, 0xd0, + 0x19, 0x41, 0xf4, 0x61, 0xa0, 0xf3, 0x7e, 0x01, 0x72, 0xad, 0x3e, 0xd6, 0x12, 0xba, 0x83, 0x6a, + 0x19, 0x72, 0x17, 0x7b, 0xa7, 0x0e, 0x6e, 0x12, 0xfd, 0x5e, 0x4c, 0x44, 0x6d, 0x8a, 0x12, 0x99, + 0xfb, 0xbe, 0x18, 0x03, 0x91, 0x11, 0x8d, 0xc6, 0x43, 0xe4, 0xe7, 0x26, 0x40, 0x64, 0x16, 0x66, + 0x6c, 0x34, 0x16, 0x5b, 0xab, 0xcd, 0x85, 0xb2, 0x20, 0x3e, 0x05, 0x9e, 0x5c, 0x6d, 0x3e, 0x40, + 0x4c, 0x5d, 0x9b, 0xf5, 0xfa, 0x42, 0x7b, 0x6d, 0x75, 0xe5, 0x9c, 0x54, 0x5d, 0xa8, 0x97, 0x81, + 0x20, 0xd5, 0xde, 0xd2, 0x2f, 0x5f, 0x59, 0x48, 0xd9, 0x14, 0x4d, 0x1d, 0xa9, 0x11, 0x8d, 0x5e, + 0x49, 0x48, 0x7d, 0x39, 0x0b, 0xc7, 0xcf, 0x61, 0x6b, 0x65, 0xb0, 0xae, 0x2a, 0xdd, 0x4b, 0x78, + 0x7d, 0x55, 0x5a, 0x42, 0xcf, 0xf4, 0x41, 0x0b, 0x0d, 0xd4, 0x83, 0xde, 0x14, 0xf3, 0x8a, 0xc5, + 0x50, 0x23, 0x21, 0x38, 0x50, 0xab, 0xc7, 0xac, 0x6f, 0xff, 0x1a, 0xe7, 0x1a, 0x45, 0x74, 0x1b, + 0xe9, 0xef, 0x0b, 0xde, 0x21, 0xc0, 0x71, 0x7b, 0x64, 0xce, 0x1b, 0x58, 0xee, 0x75, 0x8d, 0xc1, + 0xce, 0xba, 0x19, 0xeb, 0x1b, 0xc9, 0x95, 0xf3, 0x2c, 0x2b, 0xe7, 0x5f, 0x88, 0xc9, 0xea, 0x21, + 0x12, 0x52, 0xb6, 0xc8, 0x8c, 0x03, 0x50, 0x34, 0x65, 0xe9, 0x03, 0xf4, 0x0a, 0x01, 0x8e, 0xb5, + 0xb1, 0x15, 0x82, 0xcf, 0xf5, 0x30, 0xbb, 0xee, 0x3f, 0xf1, 0x30, 0x62, 0x33, 0x6d, 0x11, 0x55, + 0x3c, 0x07, 0xa2, 0xf6, 0xdf, 0x49, 0x9c, 0x49, 0x8c, 0x87, 0x27, 0x55, 0x67, 0x12, 0x87, 0x89, + 0xc1, 0xf7, 0x05, 0x28, 0xd0, 0x23, 0xe9, 0x0f, 0x26, 0x62, 0x64, 0x1d, 0x23, 0xd4, 0xc6, 0x41, + 0x22, 0xe4, 0x7e, 0x22, 0xa6, 0xd7, 0xcc, 0xc8, 0xb3, 0xe9, 0xa4, 0x06, 0x5f, 0x1c, 0x7f, 0x9a, + 0x87, 0x74, 0x46, 0xfd, 0xfd, 0x1c, 0x80, 0xd3, 0x34, 0x71, 0x40, 0xf6, 0x4a, 0xee, 0xb0, 0x1d, + 0x13, 0xc4, 0xc6, 0x66, 0xcd, 0x0d, 0xf2, 0xc3, 0xe6, 0x06, 0xdc, 0xb6, 0xfa, 0xf1, 0x44, 0x23, + 0xe0, 0x6a, 0xb2, 0xc0, 0xe7, 0x6a, 0xf2, 0x1b, 0x31, 0x5d, 0x4d, 0xfa, 0xfc, 0x8b, 0x2d, 0x4f, + 0xc1, 0x2e, 0x0b, 0x43, 0x5d, 0x8e, 0xa7, 0x49, 0x89, 0xe3, 0xa0, 0x32, 0x94, 0xe0, 0xf4, 0xe5, + 0xed, 0x3f, 0xe7, 0x60, 0xc6, 0x69, 0xbe, 0x8d, 0x2d, 0xf4, 0xa5, 0x44, 0xa6, 0x98, 0x10, 0x1d, + 0x57, 0x50, 0x44, 0x73, 0x9c, 0x22, 0x7a, 0x80, 0xd0, 0xec, 0x3f, 0x8a, 0xa9, 0x9a, 0xf1, 0xb8, + 0x70, 0x88, 0x42, 0xf3, 0xb9, 0x18, 0x0a, 0x9d, 0x30, 0x7a, 0x0f, 0xf9, 0x06, 0xdf, 0x13, 0x59, + 0x28, 0xac, 0x6a, 0xaa, 0xa2, 0x6d, 0xa3, 0x5a, 0x02, 0x81, 0xd9, 0xe2, 0xbb, 0x5f, 0x26, 0x6d, + 0x4f, 0xdf, 0xfd, 0xf2, 0xa8, 0x66, 0xa7, 0xe0, 0x26, 0x2c, 0x0b, 0xf9, 0x9a, 0xaa, 0x9b, 0x89, + 0x9c, 0x2e, 0x3c, 0x91, 0x89, 0x17, 0x53, 0x82, 0x34, 0x1c, 0x62, 0xae, 0x19, 0x27, 0x6e, 0xc3, + 0xa8, 0x7a, 0xd2, 0x67, 0xdd, 0x5f, 0x1c, 0x85, 0x99, 0x4b, 0xba, 0xb1, 0x6d, 0xf6, 0xe5, 0x2e, + 0x46, 0x9f, 0xca, 0x02, 0x9c, 0xc3, 0x56, 0x6d, 0x60, 0x18, 0x36, 0xf4, 0x33, 0x1e, 0x37, 0x59, + 0x8f, 0xd4, 0x91, 0xfb, 0x55, 0xaf, 0xb6, 0x8a, 0x5f, 0x53, 0xb8, 0x7f, 0xfd, 0xcb, 0x6e, 0x69, + 0x0f, 0x88, 0x60, 0x16, 0xe7, 0x1e, 0x95, 0xa3, 0xc9, 0xf4, 0x39, 0xf9, 0xd1, 0x2c, 0x14, 0xce, + 0x61, 0xab, 0xaa, 0xaa, 0x41, 0xbe, 0xbd, 0x8d, 0x7b, 0xd5, 0x66, 0x3a, 0x51, 0x55, 0xd5, 0x10, + 0x9e, 0x9d, 0x86, 0xa3, 0x01, 0x06, 0xb9, 0x33, 0x05, 0x93, 0xc7, 0xb9, 0xea, 0x8e, 0x69, 0x30, + 0x7d, 0x8e, 0xfd, 0x5e, 0xd6, 0xdb, 0xd5, 0x3f, 0xcd, 0x1f, 0xb7, 0x23, 0x22, 0xc3, 0xa0, 0xb7, + 0x4c, 0xc0, 0xc5, 0xc8, 0xbd, 0xf4, 0x78, 0xc9, 0x8b, 0xcb, 0xc3, 0x43, 0xda, 0x29, 0x3f, 0x91, + 0x85, 0x72, 0x1b, 0x5b, 0x0d, 0xf3, 0xbc, 0xb2, 0xb9, 0xa5, 0x2a, 0x9b, 0x5b, 0x16, 0xee, 0xa1, + 0x0b, 0x3e, 0x37, 0x11, 0x94, 0x9c, 0x6b, 0xfa, 0xde, 0x24, 0xe8, 0xa5, 0x9d, 0xe0, 0x42, 0x81, + 0xf7, 0x08, 0x4d, 0x24, 0xb8, 0x50, 0xb0, 0xb2, 0x5f, 0xe0, 0xbe, 0xe0, 0xe9, 0x33, 0x63, 0x98, + 0xa2, 0x90, 0xe9, 0x91, 0xcf, 0x44, 0x92, 0xbb, 0xda, 0x29, 0x5c, 0x3e, 0xc8, 0x42, 0xa1, 0x4d, + 0xe2, 0xca, 0xa0, 0x9f, 0xf1, 0x79, 0x3c, 0x24, 0x4c, 0x99, 0xfd, 0xc2, 0xf4, 0x7f, 0x32, 0xf1, + 0xe5, 0xd7, 0x69, 0x27, 0x84, 0x73, 0x71, 0xa5, 0x73, 0x64, 0x65, 0x53, 0x70, 0xe0, 0x52, 0x82, + 0xc2, 0x25, 0x59, 0x55, 0xb1, 0x85, 0xbe, 0xed, 0x0f, 0xf6, 0x1b, 0x18, 0xf1, 0x34, 0x74, 0xdd, + 0x09, 0xea, 0x42, 0xc5, 0xd3, 0x4d, 0xa3, 0x0f, 0x71, 0x47, 0x27, 0x75, 0x9a, 0x88, 0x1e, 0xf1, + 0x08, 0x4a, 0x3b, 0x1a, 0xde, 0xd1, 0x35, 0xa5, 0xeb, 0x6e, 0xd5, 0xdd, 0x34, 0xfa, 0x7d, 0xae, + 0x88, 0xa3, 0x51, 0xad, 0xc4, 0x63, 0x65, 0x7b, 0x82, 0xed, 0xe6, 0xd3, 0xe1, 0xa9, 0x8b, 0xd5, + 0xc6, 0x52, 0x7d, 0x61, 0xad, 0xd3, 0x5a, 0xab, 0x49, 0xf5, 0x6a, 0xa7, 0xbe, 0xb6, 0xd4, 0xaa, + 0x55, 0x97, 0xd6, 0xa4, 0xfa, 0x4a, 0xab, 0x8c, 0xd1, 0x5f, 0x92, 0x8f, 0xe4, 0xae, 0xbe, 0x8b, + 0x8d, 0xe0, 0x36, 0x28, 0x82, 0xc3, 0x91, 0x3c, 0x79, 0x33, 0x77, 0x08, 0x0a, 0xca, 0x17, 0xda, + 0x76, 0x88, 0xc0, 0xfe, 0x47, 0xae, 0xa0, 0x12, 0x91, 0x55, 0x5d, 0x01, 0x3c, 0xfe, 0x51, 0x16, + 0x8a, 0x35, 0x5d, 0xdb, 0xc5, 0x86, 0x85, 0xee, 0x63, 0x78, 0xec, 0xf1, 0x31, 0xc3, 0xf2, 0xd1, + 0xde, 0x68, 0x62, 0xcd, 0x32, 0xf4, 0xfe, 0x9e, 0xbb, 0xd1, 0xa4, 0x49, 0xd6, 0x81, 0x0d, 0x0f, + 0x87, 0x69, 0xcb, 0xe1, 0x5f, 0x66, 0xa3, 0x1b, 0x62, 0xc8, 0x13, 0x86, 0x60, 0x7e, 0x4f, 0x1c, + 0x5c, 0x46, 0x13, 0x90, 0xfe, 0x34, 0xf2, 0xda, 0x13, 0x50, 0xac, 0x76, 0xc9, 0x31, 0x24, 0xfa, + 0x5e, 0x06, 0x0a, 0x35, 0x5d, 0xdb, 0x50, 0x36, 0xc5, 0x1b, 0xe1, 0x18, 0xd6, 0xe4, 0x75, 0x15, + 0xbb, 0x36, 0x18, 0x84, 0xf6, 0x92, 0x34, 0x94, 0x6b, 0x13, 0x45, 0x73, 0xf0, 0xfa, 0x60, 0x93, + 0xae, 0x72, 0xc1, 0x2c, 0xf1, 0x5e, 0x40, 0x4e, 0x52, 0xc2, 0x2a, 0x96, 0x4d, 0x5c, 0xdb, 0x92, + 0x35, 0x0d, 0xab, 0xed, 0xcb, 0x8a, 0xd5, 0xdd, 0xa2, 0x0e, 0x67, 0x23, 0x4a, 0xd8, 0x9b, 0x32, + 0xe7, 0x69, 0xdb, 0x9e, 0x6d, 0x4d, 0x1a, 0xf5, 0x8d, 0xc9, 0x13, 0x9f, 0x03, 0x79, 0xfc, 0xa0, + 0x65, 0xc8, 0x73, 0xbd, 0xe8, 0xaf, 0x7e, 0xa7, 0x14, 0xfa, 0x42, 0xde, 0x9b, 0x2f, 0xdf, 0x9d, + 0x89, 0xdc, 0x1d, 0x89, 0x37, 0xc3, 0x71, 0x79, 0x57, 0xb6, 0x64, 0x63, 0xc9, 0x73, 0xf5, 0x40, + 0x18, 0x7f, 0xfe, 0x2a, 0x69, 0xf8, 0x81, 0x78, 0x1a, 0x8e, 0x38, 0x59, 0x35, 0xdf, 0x37, 0xf5, + 0xf9, 0xab, 0xa4, 0x60, 0xa6, 0x78, 0x13, 0x1c, 0x97, 0xd5, 0xfe, 0x96, 0xdc, 0xd0, 0x76, 0x15, + 0x0b, 0xdb, 0x68, 0xcd, 0x9d, 0x20, 0xcd, 0x0d, 0x67, 0xcf, 0x97, 0xa0, 0xe0, 0xbc, 0x88, 0xde, + 0x9a, 0xe3, 0x15, 0x66, 0x0a, 0x64, 0xf4, 0x6c, 0xfd, 0x5c, 0x28, 0xca, 0x4e, 0xb9, 0x7d, 0x1f, + 0xa9, 0x8e, 0xc2, 0x83, 0xd6, 0x22, 0xb9, 0xc5, 0xc4, 0xdb, 0xa0, 0xd0, 0x25, 0x62, 0x41, 0x15, + 0x7f, 0x4f, 0x1d, 0xdd, 0x28, 0x29, 0x22, 0xd1, 0xa2, 0xc4, 0x0f, 0xdf, 0x78, 0xe9, 0x8f, 0xa4, + 0x38, 0x9e, 0xf4, 0xff, 0x30, 0x33, 0xc1, 0xb4, 0x74, 0x0b, 0xdc, 0x54, 0xad, 0xd5, 0x5a, 0xab, + 0xcd, 0x0e, 0x9d, 0x94, 0x16, 0xd6, 0xe6, 0x57, 0x3b, 0x6b, 0xfe, 0x54, 0xd5, 0xee, 0x54, 0xa5, + 0xce, 0x5a, 0xb3, 0xb5, 0x50, 0x2f, 0xdb, 0xd2, 0x70, 0xe3, 0x98, 0xd2, 0xf5, 0xce, 0x5a, 0xb3, + 0xba, 0x5c, 0x2f, 0x6f, 0x70, 0xd4, 0x5c, 0xef, 0xac, 0x55, 0x2f, 0x56, 0x3b, 0x55, 0xa9, 0xbc, + 0xc9, 0x4e, 0x8f, 0xed, 0x4e, 0x6b, 0x65, 0x4d, 0x5a, 0x6d, 0x36, 0x1b, 0xcd, 0x73, 0x4e, 0xd3, + 0x5b, 0xe2, 0x09, 0x38, 0xee, 0xd0, 0x7d, 0xb1, 0xd1, 0xa9, 0xaf, 0xd5, 0xec, 0xcc, 0x9f, 0x2f, + 0xa2, 0x37, 0xe4, 0xfc, 0x85, 0x29, 0xf0, 0x65, 0xf4, 0xb7, 0x02, 0xaf, 0x66, 0xca, 0xe5, 0x7f, + 0xf4, 0x0a, 0xf3, 0x1b, 0x02, 0x8f, 0xd6, 0x28, 0xba, 0xae, 0x78, 0x60, 0x7e, 0x3c, 0x3b, 0x01, + 0x98, 0x4f, 0x86, 0xab, 0x9b, 0xad, 0x35, 0xca, 0xf5, 0x36, 0x3d, 0x6e, 0xb5, 0x5b, 0xbb, 0xb6, + 0x59, 0x77, 0x38, 0x2b, 0xd5, 0x6b, 0xad, 0x8b, 0x75, 0x69, 0xed, 0x52, 0x75, 0x69, 0xa9, 0xde, + 0x59, 0x5b, 0x6c, 0x48, 0xed, 0x4e, 0x79, 0x63, 0xdc, 0xe2, 0xb4, 0x29, 0x3e, 0x13, 0x9e, 0xee, + 0xa7, 0xd7, 0xea, 0x2f, 0x6e, 0xb4, 0x3b, 0x6d, 0x02, 0x67, 0xad, 0x25, 0x49, 0xab, 0x2b, 0x9d, + 0xfa, 0x42, 0x79, 0x4b, 0x3c, 0x09, 0xa2, 0x5f, 0x8b, 0xb4, 0xda, 0x74, 0xa0, 0x53, 0xec, 0xf6, + 0x69, 0x7b, 0x6e, 0xf3, 0xcd, 0x56, 0x67, 0x6d, 0xa5, 0x2e, 0x2d, 0xb6, 0xa4, 0xe5, 0xfa, 0x42, + 0xf9, 0xa5, 0xe3, 0xd0, 0xdf, 0x16, 0x6f, 0x84, 0xd3, 0xd5, 0x66, 0xab, 0x73, 0xbe, 0x2e, 0xad, + 0xb9, 0x27, 0xc7, 0x2b, 0x52, 0xab, 0x56, 0x6f, 0xb7, 0xd7, 0x1a, 0x6d, 0xb7, 0x70, 0x59, 0x45, + 0x8f, 0xe6, 0xbd, 0x4d, 0xf4, 0xed, 0xfe, 0xc4, 0x76, 0x0c, 0xb2, 0x8a, 0xbb, 0x77, 0xce, 0x2a, + 0x3d, 0x66, 0xdf, 0x92, 0x1d, 0xda, 0x19, 0xfe, 0x43, 0xec, 0xc9, 0x26, 0x6a, 0x33, 0x3d, 0xad, + 0xc9, 0xe6, 0xf3, 0x42, 0x9c, 0xc9, 0x26, 0x81, 0x1d, 0xfb, 0x9f, 0x64, 0x53, 0xd8, 0x03, 0xf1, + 0x88, 0xd9, 0x46, 0x88, 0x98, 0x0d, 0x4d, 0x21, 0x8b, 0x8d, 0xe6, 0x82, 0x3b, 0x12, 0xd6, 0x1a, + 0xcd, 0xc5, 0x56, 0x79, 0x4b, 0xac, 0xc0, 0xcd, 0x81, 0xda, 0x6d, 0x19, 0xa4, 0x2d, 0x54, 0x9b, + 0x0b, 0x6b, 0xcb, 0xcd, 0xfa, 0x72, 0xab, 0xd9, 0xa8, 0x91, 0xfc, 0x76, 0xbd, 0xe3, 0xc8, 0xed, + 0x90, 0x54, 0xb6, 0xeb, 0x55, 0xa9, 0x76, 0x9e, 0x08, 0xf0, 0x42, 0xbd, 0xfc, 0x52, 0xf1, 0x59, + 0xf0, 0xcc, 0x00, 0x29, 0x54, 0xb8, 0x57, 0xa4, 0xfa, 0x42, 0x7d, 0xb1, 0xd1, 0xb4, 0x27, 0xbc, + 0xa5, 0x56, 0xed, 0x42, 0x3b, 0x86, 0xfc, 0xfe, 0x7d, 0x16, 0x72, 0x6d, 0x4b, 0xef, 0xa3, 0x67, + 0xfb, 0xd2, 0x7b, 0x0a, 0xc0, 0xc0, 0x3b, 0xfa, 0x2e, 0xd9, 0x74, 0xd0, 0x6d, 0x48, 0x20, 0x07, + 0xfd, 0x27, 0x6e, 0xfd, 0xad, 0x87, 0xbf, 0xa5, 0xf7, 0x43, 0x66, 0xba, 0x1f, 0x73, 0x69, 0x64, + 0x23, 0x2a, 0x8a, 0x27, 0x46, 0xaf, 0x9b, 0x64, 0xcd, 0x42, 0x70, 0xd2, 0x43, 0xb6, 0x4d, 0xf0, + 0x72, 0x19, 0x88, 0xc5, 0x6b, 0xe0, 0x49, 0x43, 0x98, 0x11, 0xa8, 0x36, 0xc4, 0x67, 0xc0, 0xd3, + 0x82, 0x50, 0x2d, 0xb7, 0x2e, 0xd6, 0x3d, 0xf9, 0x58, 0xa8, 0x76, 0xaa, 0xe5, 0x4d, 0xf4, 0x59, + 0x01, 0x84, 0x25, 0x7d, 0x13, 0x3d, 0x22, 0x40, 0xae, 0x8d, 0xb5, 0x1e, 0x73, 0x1e, 0x3c, 0x07, + 0xc5, 0x1d, 0x6c, 0x9a, 0xf2, 0xa6, 0xbb, 0x3f, 0x72, 0x93, 0xe2, 0x9d, 0x90, 0x57, 0xf1, 0x2e, + 0x76, 0xac, 0x44, 0x8e, 0x9d, 0x7d, 0x26, 0xc3, 0xa9, 0x25, 0x7d, 0xb3, 0x62, 0xd7, 0xe5, 0xc5, + 0x2c, 0x5e, 0xb2, 0x8b, 0x4a, 0xce, 0x1b, 0xa7, 0xef, 0x87, 0x3c, 0x49, 0x8b, 0x33, 0x90, 0x5f, + 0xa8, 0xcf, 0xaf, 0x9e, 0x2b, 0x5f, 0x65, 0xff, 0x75, 0xfb, 0x3d, 0x03, 0xf9, 0xc5, 0x6a, 0xa7, + 0xba, 0x54, 0xce, 0xda, 0xfc, 0x21, 0x52, 0x2c, 0xd8, 0x99, 0x2b, 0xd5, 0x66, 0xa3, 0x56, 0xce, + 0x89, 0x47, 0xa0, 0x78, 0xa9, 0x2a, 0x91, 0x9e, 0xe7, 0xd1, 0x2b, 0x82, 0x62, 0x70, 0x17, 0x2b, + 0x06, 0xd7, 0x87, 0xd1, 0x34, 0x4a, 0x04, 0x3e, 0xe9, 0x89, 0xc0, 0x3d, 0x8c, 0x08, 0x3c, 0x9b, + 0xa7, 0x92, 0x78, 0xf0, 0x37, 0x0f, 0x6a, 0x4b, 0x84, 0x6d, 0x1e, 0x74, 0x1a, 0xcb, 0xf5, 0xd6, + 0x6a, 0xa7, 0xbc, 0x81, 0xfe, 0x3a, 0x0b, 0xc5, 0x8b, 0xd8, 0x30, 0x15, 0x5d, 0x43, 0xff, 0x2d, + 0xeb, 0x58, 0x2e, 0x07, 0xb6, 0x05, 0x5f, 0xe3, 0x0e, 0x69, 0x4f, 0x2b, 0x21, 0x36, 0xbd, 0xa1, + 0x9f, 0x44, 0xbb, 0x4e, 0x21, 0xf7, 0x93, 0x88, 0x26, 0xed, 0x27, 0xc1, 0x73, 0xe2, 0x19, 0x3f, + 0xd6, 0xdb, 0xd7, 0xb8, 0x54, 0xf6, 0xe1, 0x6d, 0xc7, 0x63, 0x6e, 0x6f, 0x02, 0xe6, 0x9e, 0x80, + 0xf2, 0xc5, 0xba, 0xd4, 0x6e, 0xb4, 0x9a, 0xf6, 0xd0, 0xaa, 0x2f, 0xaf, 0x74, 0x1e, 0x28, 0x0b, + 0x91, 0x2c, 0x7f, 0x97, 0x1b, 0x3c, 0xe0, 0x2d, 0x02, 0x14, 0x5b, 0x1b, 0x1b, 0xc4, 0x5b, 0x5d, + 0x3d, 0x7c, 0xed, 0xbd, 0x19, 0xca, 0x8a, 0xd6, 0x55, 0x07, 0x3d, 0xdc, 0xd4, 0xad, 0x15, 0x45, + 0xd3, 0x3c, 0xdd, 0xe0, 0xbe, 0x7c, 0xf4, 0x18, 0xf7, 0xcc, 0x46, 0x5c, 0xab, 0xd1, 0xd6, 0x43, + 0x00, 0xbb, 0x11, 0x8e, 0xad, 0xef, 0x59, 0xd8, 0xa4, 0xa5, 0x68, 0xb3, 0x39, 0x69, 0x28, 0x17, + 0xfd, 0x11, 0xd7, 0x0c, 0x18, 0xd1, 0x60, 0x3c, 0x94, 0xe4, 0xc9, 0x50, 0xb2, 0x67, 0x35, 0x67, + 0xa9, 0xb2, 0xf7, 0xe7, 0xf5, 0x85, 0xf2, 0x26, 0x99, 0xfa, 0x1a, 0x4b, 0x4e, 0xee, 0x03, 0xf5, + 0xce, 0xda, 0x4a, 0xa3, 0xd9, 0xb4, 0xf7, 0x65, 0xf6, 0xe6, 0xa0, 0x64, 0xd3, 0xbb, 0xa4, 0x98, + 0x16, 0xfa, 0x64, 0x00, 0xa6, 0x16, 0x33, 0xbd, 0xe9, 0x9a, 0xba, 0xd7, 0xe8, 0x99, 0x73, 0x19, + 0xa2, 0xf5, 0x77, 0x93, 0xb1, 0x00, 0xfb, 0x0b, 0x6e, 0x5d, 0xba, 0x4b, 0xcf, 0x78, 0xd0, 0x36, + 0x14, 0x75, 0x18, 0xb4, 0xbc, 0x34, 0x94, 0x3b, 0x02, 0x5c, 0x61, 0x24, 0xb8, 0x9f, 0xe6, 0xd2, + 0x6d, 0x8e, 0x21, 0x2e, 0x1e, 0xc0, 0xe7, 0x93, 0x02, 0x18, 0xfd, 0x52, 0x16, 0x4a, 0xed, 0xad, + 0x81, 0x45, 0xa2, 0x5b, 0x07, 0xa6, 0xb5, 0x7f, 0xc8, 0xf0, 0xce, 0xfc, 0xee, 0xdb, 0x21, 0x33, + 0xff, 0xc7, 0xb8, 0x66, 0xfe, 0x90, 0x4a, 0x0e, 0x87, 0x2b, 0x18, 0x7d, 0x2f, 0xe7, 0x2a, 0x6d, + 0xd0, 0x37, 0x73, 0xfb, 0xa6, 0xfc, 0x2f, 0xe4, 0x78, 0x6d, 0x72, 0x9d, 0x3a, 0x22, 0x66, 0xfc, + 0xeb, 0xe0, 0xc8, 0x96, 0x4e, 0x03, 0xed, 0xfb, 0xe7, 0x3a, 0x81, 0x2c, 0x5b, 0x0a, 0x65, 0x27, + 0x98, 0x1f, 0xeb, 0xb8, 0x7d, 0x28, 0xd7, 0x2e, 0xd7, 0x37, 0x74, 0x5b, 0x84, 0xdd, 0x72, 0xce, + 0xbd, 0xc2, 0xa1, 0x5c, 0xf1, 0x16, 0xb8, 0x7a, 0x47, 0x36, 0xb6, 0xb1, 0xd5, 0x57, 0xe5, 0x2e, + 0x71, 0x89, 0xe9, 0x59, 0x11, 0xed, 0x7f, 0x20, 0x3e, 0x0f, 0x9e, 0x1c, 0xc8, 0x74, 0xef, 0x7d, + 0x35, 0x7a, 0xc4, 0x08, 0x68, 0x46, 0x1a, 0xfd, 0x70, 0xe8, 0xad, 0x8e, 0x6f, 0xad, 0x54, 0xdc, + 0xf7, 0x56, 0x87, 0x31, 0x5c, 0xea, 0xe1, 0x5d, 0x85, 0x9c, 0x49, 0x94, 0x9c, 0x2f, 0x28, 0x37, + 0x6d, 0xef, 0x57, 0x37, 0x65, 0x0b, 0x5f, 0x96, 0xf7, 0x56, 0x0d, 0x75, 0x0e, 0x3b, 0x46, 0x4f, + 0x7e, 0x0e, 0xfa, 0x38, 0x97, 0xb5, 0x72, 0x28, 0x1c, 0x87, 0x25, 0x67, 0x5f, 0xcb, 0x42, 0x6e, + 0x45, 0xd1, 0x36, 0x83, 0xae, 0x92, 0x4f, 0x40, 0x5e, 0xd1, 0x7a, 0xf8, 0x41, 0x7a, 0xcd, 0xc6, + 0x49, 0x88, 0x67, 0xe1, 0x84, 0x36, 0xd8, 0x59, 0xc7, 0x46, 0x6b, 0x83, 0x58, 0x3b, 0x98, 0x1d, + 0xdd, 0xde, 0x29, 0xd1, 0xa9, 0x6b, 0xe4, 0x33, 0xf4, 0xbf, 0x83, 0x63, 0xf8, 0xf9, 0xac, 0x9c, + 0x5e, 0xc7, 0x30, 0xc6, 0xa6, 0x21, 0x44, 0x42, 0x3d, 0x72, 0xb2, 0x01, 0x72, 0xd0, 0x5b, 0x3d, + 0x7e, 0xdf, 0xc9, 0xf0, 0xfb, 0x86, 0x71, 0xd5, 0xa6, 0xaf, 0x7c, 0x7d, 0x6f, 0x16, 0x8a, 0x2b, + 0x86, 0xde, 0xc5, 0xa6, 0x89, 0xde, 0x92, 0x85, 0x42, 0x4d, 0xd6, 0xba, 0x58, 0x45, 0x4f, 0x09, + 0xdd, 0x3e, 0xa0, 0x1f, 0x66, 0x78, 0x3f, 0xcf, 0x69, 0xbd, 0x15, 0xa7, 0xce, 0x90, 0x19, 0x8f, + 0x4f, 0x45, 0x1d, 0x59, 0x55, 0xfa, 0x5c, 0xfa, 0xb3, 0x2c, 0x1c, 0x59, 0x52, 0xb4, 0xed, 0x15, + 0x03, 0x13, 0x3f, 0x99, 0x4f, 0xf5, 0xd9, 0x43, 0xed, 0xd3, 0x33, 0x01, 0xfb, 0x74, 0xee, 0x3d, + 0x6e, 0xa0, 0xca, 0x10, 0x79, 0xba, 0x1b, 0x8e, 0xa8, 0x7e, 0x21, 0xaa, 0xc0, 0x40, 0x43, 0x0a, + 0x8c, 0x40, 0x35, 0x52, 0xb0, 0x38, 0xa7, 0x81, 0x4a, 0x38, 0x15, 0xe9, 0x33, 0xf6, 0x87, 0x02, + 0x80, 0xe3, 0x86, 0x97, 0xec, 0x60, 0x1f, 0xcf, 0x44, 0x30, 0x96, 0x75, 0x77, 0x9c, 0x1d, 0x76, + 0x77, 0x7c, 0x17, 0xe4, 0xec, 0x2e, 0x51, 0xaf, 0xca, 0xbc, 0xae, 0x8e, 0xc9, 0x3b, 0xf6, 0x34, + 0xdf, 0x53, 0x4c, 0x79, 0x5d, 0xc5, 0x75, 0xad, 0x6b, 0xec, 0xf9, 0xce, 0x09, 0x4a, 0xd2, 0xfe, + 0x07, 0x7e, 0xa4, 0xc1, 0x3c, 0x47, 0xa4, 0x41, 0xd2, 0x14, 0x13, 0x69, 0x90, 0x09, 0x8f, 0x13, + 0xb9, 0x20, 0xfa, 0x9c, 0x09, 0x11, 0x0f, 0x11, 0x72, 0x5b, 0xb2, 0xe9, 0x32, 0x83, 0xfc, 0x47, + 0xef, 0xe0, 0x9a, 0xdc, 0x43, 0xab, 0x4e, 0x1f, 0xf3, 0x6f, 0x67, 0xe1, 0xa8, 0x1b, 0x59, 0x9e, + 0xa0, 0x7e, 0x2b, 0x73, 0x00, 0x42, 0x3a, 0x94, 0xf1, 0x3b, 0x64, 0xe7, 0xf5, 0x7d, 0xc4, 0xc9, + 0x7f, 0xf4, 0x10, 0xf7, 0x77, 0x49, 0xb0, 0xa5, 0x10, 0x2e, 0x46, 0xca, 0x55, 0xc0, 0x07, 0x58, + 0xd4, 0xd7, 0x48, 0x44, 0x33, 0xf1, 0x38, 0x5a, 0x3d, 0xf0, 0xe5, 0x1e, 0xf4, 0x57, 0x45, 0x80, + 0xa6, 0xbc, 0xab, 0x6c, 0x3a, 0xbe, 0x94, 0xbe, 0x2e, 0xd8, 0x93, 0x97, 0x69, 0x39, 0x31, 0x11, + 0x4c, 0xc6, 0xa5, 0xe2, 0x9d, 0x50, 0xa4, 0x56, 0x73, 0xb4, 0x57, 0x4f, 0x67, 0x7a, 0xe5, 0xd7, + 0xe2, 0xc8, 0xf3, 0x83, 0x96, 0xe4, 0x96, 0xb7, 0x37, 0x20, 0x1b, 0x03, 0x55, 0xed, 0xd8, 0xef, + 0x52, 0x15, 0xae, 0x9b, 0xf6, 0x5d, 0x63, 0xd2, 0xa0, 0x45, 0x24, 0x31, 0xe4, 0x48, 0x33, 0xef, + 0x3a, 0xd2, 0x44, 0xbf, 0xcb, 0x1d, 0xe3, 0x31, 0x40, 0x4f, 0xa0, 0x47, 0x21, 0xb0, 0xde, 0x06, + 0x45, 0xc7, 0x18, 0xc6, 0xbd, 0xe1, 0xff, 0x94, 0xa1, 0x81, 0xea, 0xbc, 0xde, 0xd0, 0x36, 0x74, + 0xc9, 0x2d, 0xc9, 0x19, 0xea, 0x91, 0x8b, 0x8e, 0xf4, 0x47, 0xd2, 0x57, 0x05, 0x38, 0x79, 0x0e, + 0x5b, 0x7e, 0x3f, 0x2e, 0x29, 0xd6, 0x96, 0x3d, 0x9d, 0x9b, 0xe8, 0x9f, 0xf3, 0x19, 0x09, 0x05, + 0xf0, 0xcf, 0xc6, 0xc3, 0x1f, 0xfd, 0x71, 0x10, 0xb5, 0x36, 0x8b, 0xda, 0x3d, 0x61, 0xb5, 0x8c, + 0xa6, 0x36, 0x04, 0xc0, 0xbb, 0xa0, 0xe0, 0x10, 0x4a, 0xd7, 0xbd, 0xd3, 0xa1, 0xf8, 0x79, 0x35, + 0x49, 0xf4, 0x0d, 0xf4, 0x09, 0x0f, 0xc7, 0x8b, 0x0c, 0x8e, 0xf3, 0x07, 0xa2, 0x2c, 0x75, 0x48, + 0x4f, 0xdf, 0x4a, 0x4c, 0x10, 0xc8, 0x00, 0x3b, 0x16, 0x1c, 0xc5, 0xe5, 0xab, 0x44, 0x80, 0xc2, + 0xb2, 0xbe, 0x8b, 0x3b, 0x7a, 0x39, 0x63, 0xff, 0xb7, 0xe9, 0xeb, 0xe8, 0xe5, 0x2c, 0xfa, 0xb7, + 0x47, 0xa0, 0x78, 0x5e, 0x31, 0x2d, 0xdd, 0xd8, 0x43, 0x5f, 0xc9, 0x41, 0x89, 0x6a, 0xaf, 0x4c, + 0xf4, 0xbe, 0x8c, 0xa7, 0x8b, 0xdb, 0xa7, 0x04, 0xba, 0x0e, 0x8e, 0xf4, 0xed, 0x35, 0x5f, 0x1f, + 0x98, 0xbe, 0x9d, 0x61, 0x30, 0xcb, 0x16, 0x1b, 0x79, 0x60, 0x6d, 0xe9, 0x86, 0x6f, 0xf1, 0xed, + 0xa6, 0xed, 0x0f, 0x0c, 0xe7, 0x7f, 0x53, 0xde, 0xc1, 0xae, 0x13, 0x47, 0x3f, 0x87, 0x44, 0xba, + 0x56, 0x76, 0x9c, 0x05, 0x52, 0x90, 0xc8, 0x7f, 0x71, 0x0e, 0x8a, 0x9b, 0x86, 0x3e, 0xe8, 0xd3, + 0xcf, 0x21, 0x41, 0x72, 0x93, 0x41, 0x9f, 0xa1, 0x27, 0xa1, 0xd0, 0x97, 0x37, 0x7d, 0x3b, 0x2b, + 0x9a, 0x12, 0xaf, 0x87, 0x59, 0x55, 0x36, 0x2d, 0xda, 0x1b, 0xef, 0xdb, 0x8f, 0xcd, 0x1c, 0x3d, + 0xed, 0xa0, 0x4f, 0x72, 0xab, 0x44, 0x28, 0x17, 0x5d, 0xfd, 0x5f, 0x98, 0x5c, 0x56, 0xa1, 0x44, + 0x35, 0x8d, 0xee, 0xcc, 0x72, 0x43, 0x74, 0x35, 0xf4, 0x8f, 0xe4, 0xbd, 0xc6, 0x69, 0xe1, 0x35, + 0x86, 0x9e, 0xf4, 0x27, 0x98, 0xff, 0xee, 0xde, 0xda, 0x7d, 0x60, 0x3c, 0x44, 0xd7, 0xc2, 0xcc, + 0xee, 0x10, 0x3c, 0x7e, 0x46, 0xc4, 0x9d, 0xdd, 0x9f, 0x17, 0x78, 0x97, 0x72, 0x97, 0x1d, 0x11, + 0xb7, 0x76, 0xef, 0x02, 0x70, 0x26, 0x00, 0xbb, 0xcc, 0xbe, 0xed, 0x32, 0xf9, 0xde, 0xa3, 0xd3, + 0x06, 0xa9, 0x45, 0x0a, 0x94, 0x16, 0xef, 0xf3, 0xf5, 0xc9, 0xce, 0xb9, 0x1f, 0x27, 0xaa, 0x41, + 0xb5, 0xb3, 0xdb, 0xc7, 0x1c, 0xdb, 0x47, 0x3e, 0x2b, 0xfb, 0x88, 0xfe, 0xa5, 0x0f, 0xf5, 0x97, + 0xb2, 0x00, 0x6d, 0xec, 0x0e, 0xa6, 0xa0, 0xfd, 0xd3, 0x44, 0x80, 0xa3, 0x1f, 0x67, 0x78, 0x03, + 0x78, 0x79, 0xdd, 0xf6, 0x5a, 0x0f, 0xb3, 0x01, 0xe0, 0x0a, 0xc9, 0x35, 0xb6, 0xba, 0xf4, 0x79, + 0xf9, 0x2a, 0x01, 0x72, 0xe4, 0x6a, 0xdb, 0xdf, 0xfb, 0x66, 0x91, 0x77, 0xfb, 0x0c, 0x0d, 0xdc, + 0x11, 0xca, 0xf0, 0xdd, 0x11, 0x42, 0x0f, 0x73, 0x7f, 0x53, 0x92, 0x1b, 0x56, 0x91, 0xd6, 0x37, + 0x3e, 0x9e, 0x02, 0x83, 0x67, 0xbc, 0x6b, 0x3c, 0x7c, 0xdf, 0x96, 0xe1, 0xd4, 0xa4, 0x8f, 0xc2, + 0x1f, 0xd2, 0x48, 0x68, 0x9f, 0xf7, 0xaf, 0x97, 0x5a, 0x8c, 0x54, 0xd3, 0x0b, 0x5c, 0x99, 0xb0, + 0x0b, 0x5c, 0xd9, 0x89, 0xee, 0x18, 0x0a, 0xfb, 0x5c, 0x1a, 0x3f, 0xc6, 0xed, 0x95, 0xa0, 0x3d, + 0xce, 0xce, 0xd5, 0x59, 0xc6, 0x05, 0x6f, 0x19, 0x8f, 0x87, 0xd9, 0x67, 0xb8, 0x3e, 0x0d, 0xdb, + 0xc9, 0x98, 0xc1, 0x26, 0x7e, 0xeb, 0xea, 0xad, 0x27, 0x98, 0x40, 0x77, 0x8f, 0x65, 0x21, 0x47, + 0xce, 0x53, 0x02, 0xba, 0xe6, 0xdf, 0xe6, 0xbe, 0x0f, 0x17, 0x08, 0x10, 0x47, 0xce, 0x19, 0x46, + 0xb3, 0xfb, 0x85, 0x70, 0xc4, 0x0f, 0x83, 0x17, 0xfd, 0x19, 0x41, 0xb4, 0x09, 0xc1, 0xd2, 0x9c, + 0x9e, 0x8b, 0xa2, 0x09, 0x49, 0x7f, 0x94, 0xbc, 0xcb, 0x1f, 0x1d, 0x0b, 0xc1, 0xef, 0x42, 0xf0, + 0xbb, 0x42, 0x19, 0x18, 0xd1, 0xef, 0x40, 0x61, 0xf4, 0x47, 0x41, 0x0c, 0x6a, 0x2c, 0x06, 0xcf, + 0x09, 0xeb, 0x7a, 0xa4, 0xd0, 0xb3, 0xc4, 0x64, 0xe3, 0x10, 0xe3, 0xdb, 0x7e, 0x2f, 0x32, 0x18, + 0x9c, 0x8d, 0x45, 0xc8, 0x21, 0x0b, 0xfe, 0x3b, 0x8f, 0x05, 0x02, 0xa5, 0xfe, 0x25, 0x0d, 0xcc, + 0xb9, 0xc1, 0x78, 0x29, 0x60, 0x23, 0x38, 0x66, 0x46, 0x44, 0x70, 0x9c, 0xd4, 0xe5, 0xdd, 0x0f, + 0x83, 0x70, 0x36, 0x58, 0x38, 0x6f, 0x0b, 0xe3, 0x22, 0x47, 0x34, 0xce, 0x09, 0xc9, 0x79, 0xdc, + 0x03, 0x74, 0x89, 0x01, 0xf4, 0x8e, 0x09, 0x48, 0x89, 0x07, 0xab, 0x92, 0x30, 0xac, 0xe2, 0x1c, + 0x9c, 0x90, 0xea, 0xd5, 0x85, 0x56, 0x73, 0xe9, 0x81, 0xe0, 0xd3, 0x72, 0x0e, 0xbd, 0x43, 0x80, + 0x82, 0x44, 0xcc, 0x8b, 0xd0, 0xcf, 0xc6, 0x85, 0x79, 0xc8, 0x9b, 0x66, 0x76, 0xbf, 0x8f, 0xe6, + 0xcf, 0x71, 0x5f, 0xf9, 0x19, 0xc5, 0x46, 0x87, 0xae, 0x90, 0x1d, 0xda, 0xf7, 0xb8, 0xae, 0xfc, + 0x70, 0x57, 0x7b, 0xc5, 0x02, 0xf4, 0xb0, 0x00, 0x05, 0xea, 0x32, 0xb7, 0x17, 0x17, 0xa0, 0xa0, + 0x3f, 0xf4, 0x2c, 0xaf, 0x3f, 0xf4, 0x83, 0x61, 0x16, 0x19, 0x74, 0x64, 0x72, 0xcc, 0x12, 0x70, + 0x49, 0x3b, 0x45, 0xcc, 0xbe, 0x21, 0xd0, 0xfd, 0xc2, 0x20, 0x2e, 0x62, 0x0b, 0xf0, 0x34, 0xb9, + 0xdf, 0xc7, 0x9a, 0xe7, 0x7c, 0xd5, 0x5c, 0x34, 0xf4, 0x9d, 0x96, 0xb5, 0x85, 0x0d, 0x77, 0x5f, + 0x90, 0xb9, 0xa9, 0x24, 0x45, 0x17, 0x62, 0x3d, 0x3c, 0x44, 0x7a, 0xbf, 0x1c, 0xc5, 0xeb, 0x88, + 0x4d, 0xca, 0x84, 0x33, 0xe9, 0x97, 0xb8, 0xdc, 0x60, 0x72, 0xd2, 0x72, 0xc8, 0x2b, 0xe4, 0x17, + 0x2e, 0x40, 0xc1, 0xa1, 0xd4, 0xde, 0x16, 0x1e, 0x69, 0x6f, 0xc9, 0x06, 0x9e, 0xdf, 0x23, 0xe1, + 0xe1, 0x6f, 0xe0, 0x52, 0x84, 0xa2, 0x37, 0x04, 0xd1, 0x11, 0x21, 0xa7, 0x2a, 0xda, 0xb6, 0x7b, + 0x0a, 0x61, 0xff, 0xf7, 0x3f, 0x61, 0xb3, 0x23, 0x3e, 0x61, 0x3d, 0x95, 0x82, 0xd7, 0xee, 0x81, + 0x3e, 0x61, 0xc7, 0x56, 0x37, 0x95, 0x13, 0xcf, 0xe3, 0xd5, 0x5e, 0xef, 0x92, 0x62, 0x6d, 0xb5, + 0x5c, 0x1e, 0xdd, 0xc7, 0xa7, 0x53, 0x9e, 0x83, 0x62, 0x5f, 0xde, 0x53, 0x75, 0xd9, 0xbb, 0x7c, + 0x4f, 0x93, 0xac, 0x81, 0x64, 0xa4, 0xa2, 0x9f, 0x72, 0x60, 0x88, 0x82, 0x10, 0xa6, 0xf2, 0xe9, + 0xec, 0xb9, 0xaa, 0x4c, 0x9f, 0xb1, 0x7f, 0x25, 0xb0, 0x01, 0x5a, 0x7e, 0x8e, 0xd7, 0xa7, 0xc1, + 0x44, 0xeb, 0xc6, 0xff, 0xe5, 0x0e, 0xa3, 0x4e, 0xd9, 0xf3, 0x53, 0x12, 0x7e, 0x25, 0xd6, 0x38, + 0x3a, 0xcc, 0xb0, 0x2b, 0x9f, 0xdb, 0x1f, 0x76, 0xe5, 0x5f, 0xf2, 0x22, 0x3e, 0x76, 0x2b, 0x37, + 0x59, 0x68, 0x9e, 0x0f, 0x73, 0x3b, 0x8f, 0x1b, 0xe2, 0x5f, 0x82, 0x6e, 0xf1, 0xf9, 0x5c, 0xc4, + 0xf1, 0xb4, 0x9f, 0x3e, 0x84, 0xaf, 0xdf, 0x1f, 0x4b, 0xa5, 0x91, 0x18, 0x84, 0x93, 0xa3, 0x91, + 0x60, 0xa4, 0x94, 0x89, 0xd0, 0x38, 0x24, 0xdf, 0xf3, 0xaf, 0xce, 0xc1, 0xd5, 0xfb, 0x63, 0xa3, + 0xf0, 0xc7, 0x4d, 0x1e, 0x3f, 0xa8, 0x26, 0x0d, 0x0c, 0xf2, 0x44, 0xcc, 0x0d, 0x5e, 0xe5, 0xca, + 0x8a, 0x6b, 0xf2, 0xa1, 0x18, 0xfb, 0xc1, 0xca, 0xe1, 0x47, 0x32, 0xf9, 0x33, 0x01, 0x4e, 0x8c, + 0x8c, 0x61, 0x72, 0x25, 0x88, 0x02, 0x7f, 0x98, 0xc2, 0x91, 0xfc, 0x4c, 0x70, 0xa2, 0xe5, 0x8b, + 0x60, 0xc7, 0x4f, 0x45, 0xfa, 0xc0, 0x7e, 0x3a, 0x37, 0x0c, 0x2c, 0x9d, 0x74, 0x3f, 0x9a, 0x20, + 0xb0, 0xc1, 0x88, 0x22, 0xc2, 0x50, 0x44, 0x91, 0xf3, 0xf0, 0x74, 0x72, 0xa7, 0xcf, 0xd8, 0x71, + 0x94, 0x12, 0x55, 0x55, 0xbd, 0x28, 0xab, 0x03, 0x6c, 0x36, 0x34, 0x27, 0x06, 0x87, 0x7b, 0x03, + 0x7c, 0x5c, 0x31, 0xf4, 0x83, 0x83, 0x89, 0x41, 0x82, 0x11, 0x47, 0xbe, 0x37, 0xb9, 0x18, 0x24, + 0x30, 0xcf, 0x6f, 0x4d, 0xf0, 0xbd, 0xf7, 0x3c, 0x78, 0x6e, 0xbb, 0xb5, 0x5c, 0x27, 0x77, 0xfa, + 0xa4, 0x85, 0xf6, 0xda, 0xf9, 0x6a, 0x7b, 0x4d, 0xaa, 0x2f, 0x55, 0x3b, 0x8d, 0x56, 0x73, 0xed, + 0x62, 0x75, 0x69, 0xb5, 0xbe, 0x76, 0xa9, 0xd1, 0x39, 0xbf, 0xd6, 0x39, 0xdf, 0x68, 0xaf, 0xb5, + 0x56, 0xec, 0xec, 0xb2, 0x80, 0x5e, 0x13, 0x1a, 0x99, 0x84, 0xdb, 0x7f, 0xfb, 0x63, 0xdc, 0x01, + 0x7c, 0x87, 0xd8, 0x95, 0x62, 0xdc, 0x11, 0xbe, 0x48, 0xbe, 0x31, 0xe8, 0x99, 0xc2, 0xe9, 0x5b, + 0x0e, 0x0a, 0x6d, 0x2c, 0x1b, 0xdd, 0x2d, 0xf4, 0x6b, 0x01, 0x07, 0x9f, 0x8b, 0x50, 0xdc, 0x50, + 0x54, 0xe2, 0xa3, 0x3e, 0x43, 0xba, 0x7f, 0x0b, 0x5f, 0x90, 0xfa, 0x45, 0xf2, 0x92, 0xe4, 0xbe, + 0x2c, 0xbe, 0x08, 0xf2, 0xa6, 0x6e, 0x78, 0xa6, 0x5d, 0x9c, 0xa1, 0xee, 0xdb, 0xba, 0x61, 0x49, + 0xce, 0x8b, 0x8c, 0xfd, 0x9a, 0x30, 0x64, 0xbf, 0x16, 0x62, 0xa9, 0xc6, 0x86, 0x7c, 0xf6, 0xec, + 0xda, 0x6e, 0x86, 0xb2, 0xaf, 0x30, 0x72, 0x08, 0x9d, 0x2b, 0x90, 0x43, 0xc5, 0x7d, 0xf9, 0xa2, + 0x08, 0xb9, 0x6d, 0xbc, 0x67, 0xce, 0x15, 0xc9, 0x73, 0xf2, 0x1f, 0xbd, 0x87, 0xdb, 0x15, 0x8e, + 0xab, 0x18, 0x20, 0x7c, 0x0d, 0x11, 0xb1, 0x5b, 0xa1, 0x68, 0xd0, 0x69, 0xca, 0x15, 0xb0, 0xb0, + 0x03, 0x4c, 0x5a, 0x0e, 0xbd, 0x9b, 0xcb, 0x43, 0x4e, 0x54, 0xe3, 0x53, 0x08, 0x83, 0x52, 0x82, + 0xfc, 0x39, 0x43, 0xee, 0x6f, 0xa1, 0x5f, 0xca, 0x24, 0x2f, 0x4e, 0x1e, 0xb0, 0xd9, 0x71, 0xc0, + 0x0a, 0xa3, 0x81, 0x45, 0xaf, 0xcb, 0x42, 0xae, 0x69, 0x77, 0x6a, 0xd8, 0xd2, 0x4a, 0xa4, 0x76, + 0xc9, 0xd4, 0x7c, 0x95, 0xd8, 0x1b, 0xbb, 0x7e, 0x3e, 0x84, 0x80, 0x9f, 0x8f, 0x93, 0x50, 0x50, + 0xe5, 0x3d, 0x7d, 0xe0, 0xc9, 0x9c, 0x93, 0x1a, 0x66, 0x67, 0x7e, 0x1f, 0x3b, 0xed, 0xf9, 0x4c, + 0xe9, 0xea, 0x5a, 0x63, 0x47, 0xde, 0xc4, 0xf4, 0xaa, 0x89, 0x9f, 0xe1, 0x3e, 0xad, 0xef, 0xe8, + 0x2f, 0x55, 0xe8, 0x95, 0x12, 0x3f, 0xc3, 0xa6, 0xa4, 0xa7, 0x6b, 0x98, 0x5c, 0x21, 0x29, 0x49, + 0xe4, 0xbf, 0x78, 0x23, 0x1c, 0x73, 0xa7, 0x9e, 0x45, 0xdd, 0xd8, 0x91, 0xad, 0xb9, 0x19, 0xe7, + 0xca, 0x17, 0x9b, 0x2b, 0xce, 0x41, 0xd1, 0xd4, 0x94, 0x7e, 0x1f, 0x5b, 0x73, 0xe0, 0x28, 0x7a, + 0x68, 0x12, 0xbd, 0x2d, 0x0b, 0xb9, 0x7a, 0x6f, 0x13, 0x33, 0xa7, 0xec, 0x99, 0xc0, 0x29, 0xfb, + 0x49, 0x28, 0x38, 0xee, 0x43, 0x29, 0x5b, 0x68, 0x6a, 0x24, 0x63, 0x5e, 0x40, 0x19, 0x98, 0x1b, + 0x71, 0xb9, 0x97, 0xca, 0x24, 0x11, 0x8c, 0x8a, 0xdd, 0x62, 0xd0, 0xaa, 0x3b, 0x5d, 0xce, 0x9d, + 0x84, 0xc2, 0x96, 0xd2, 0xeb, 0x61, 0x8d, 0xf2, 0x8e, 0xa6, 0x4e, 0x9f, 0x82, 0x9c, 0x4d, 0x83, + 0x2d, 0xdc, 0x4b, 0x8a, 0xb6, 0x5d, 0xbe, 0x4a, 0x3c, 0xea, 0x1f, 0xdf, 0x95, 0x33, 0xac, 0x1e, + 0x38, 0xd2, 0xde, 0x89, 0xe9, 0xdc, 0xe8, 0xc1, 0xfe, 0x3c, 0xc8, 0x6b, 0x7a, 0xcf, 0x3b, 0x9a, + 0x3e, 0x15, 0xfe, 0xbe, 0x2d, 0x9b, 0x92, 0x53, 0xd8, 0x7e, 0x0b, 0xf7, 0x36, 0xb1, 0x49, 0x84, + 0x39, 0xf2, 0x2d, 0x9b, 0xa5, 0x92, 0x53, 0x98, 0xd3, 0x88, 0x29, 0x82, 0xe8, 0xf4, 0x27, 0x89, + 0x2f, 0x17, 0xe0, 0xb8, 0x33, 0x3f, 0xb5, 0x07, 0xeb, 0x76, 0x55, 0xeb, 0x18, 0x7d, 0x37, 0xcb, + 0xdc, 0x16, 0x32, 0x07, 0xeb, 0xde, 0xaa, 0xef, 0x24, 0x82, 0x93, 0x48, 0x36, 0x91, 0x35, 0x49, + 0x98, 0x74, 0x4d, 0x62, 0xd6, 0x17, 0x61, 0xbf, 0xdd, 0xb4, 0x63, 0x38, 0xe9, 0xae, 0x46, 0x23, + 0xd6, 0x12, 0x7b, 0x4c, 0xca, 0x1b, 0x16, 0x36, 0xbc, 0x5b, 0x61, 0x6e, 0x92, 0x38, 0xa0, 0xc5, + 0x1b, 0xba, 0x81, 0x1b, 0x3d, 0x32, 0x9e, 0x67, 0x24, 0x2f, 0x1d, 0x18, 0xa6, 0xc0, 0x18, 0xc3, + 0xdc, 0x04, 0xc7, 0x95, 0x4d, 0x4d, 0x37, 0xb0, 0xe7, 0x6b, 0x6e, 0xee, 0xa8, 0xe3, 0x2b, 0x68, + 0x28, 0x1b, 0x7d, 0x55, 0x88, 0xa9, 0xda, 0x1d, 0x82, 0x29, 0xb1, 0xc5, 0x4c, 0x7c, 0x21, 0x1c, + 0xed, 0xe1, 0x3e, 0xd6, 0x7a, 0x58, 0xeb, 0x2a, 0x9e, 0x8c, 0x87, 0xbe, 0xc7, 0x14, 0xf6, 0x05, + 0x24, 0x17, 0x14, 0x90, 0x73, 0x81, 0xc8, 0x3a, 0xf9, 0x21, 0x63, 0x12, 0xd6, 0xa6, 0xd0, 0xe9, + 0x4e, 0x9f, 0x5a, 0x4c, 0x3b, 0xaf, 0x04, 0x42, 0xec, 0xc4, 0xd2, 0x54, 0x47, 0x73, 0x68, 0x0a, + 0x56, 0x6c, 0x39, 0x38, 0xda, 0xe8, 0x99, 0xfe, 0x48, 0xd2, 0xc7, 0x0d, 0xa4, 0x7d, 0x81, 0x10, + 0x3c, 0x11, 0x15, 0x02, 0x22, 0x3a, 0x42, 0xa8, 0x8e, 0x8c, 0x16, 0xaa, 0x57, 0x04, 0x85, 0xaa, + 0xce, 0x0a, 0xd5, 0x99, 0x51, 0x2c, 0x0b, 0x92, 0x7b, 0x25, 0x4b, 0x14, 0x7a, 0xbf, 0x27, 0x08, + 0xe7, 0x19, 0x41, 0x78, 0x5e, 0xcc, 0x5e, 0xa5, 0x2f, 0x05, 0xff, 0x21, 0x0b, 0x57, 0x3b, 0x92, + 0xb8, 0xaa, 0x99, 0x9e, 0x28, 0x3c, 0x83, 0x35, 0xa4, 0xb3, 0xfb, 0x64, 0x7a, 0x86, 0x74, 0x24, + 0x85, 0x5e, 0x1d, 0x57, 0x1d, 0xb6, 0xaf, 0x95, 0x90, 0xe3, 0x9e, 0x58, 0x8a, 0xaa, 0x71, 0x95, + 0xa6, 0xcf, 0xc0, 0x5f, 0x76, 0xc2, 0x2b, 0x2e, 0x91, 0xdd, 0x1c, 0x92, 0x79, 0x75, 0x18, 0x77, + 0x78, 0xdb, 0x41, 0xe7, 0x42, 0xdb, 0x75, 0xa1, 0x06, 0x4f, 0x15, 0xa7, 0x6a, 0x77, 0xc3, 0x88, + 0xde, 0xcb, 0x6d, 0xef, 0xee, 0xf1, 0x88, 0x52, 0x97, 0x88, 0xaa, 0x81, 0xcf, 0xb4, 0x7d, 0x4c, + 0xd3, 0xe9, 0xc3, 0xf2, 0x6f, 0x04, 0x98, 0x25, 0x1e, 0x67, 0x17, 0xe5, 0x5d, 0xdd, 0x50, 0x2c, + 0x8c, 0xce, 0xf1, 0x42, 0x73, 0x0a, 0x40, 0xf1, 0x5e, 0xa3, 0x87, 0xff, 0x81, 0x9c, 0x18, 0xd1, + 0x5f, 0x7c, 0x2e, 0xf8, 0x74, 0x4c, 0x31, 0xfa, 0x0b, 0x47, 0xf3, 0x53, 0x04, 0xa2, 0xea, 0x5c, + 0xd1, 0xef, 0xc5, 0x04, 0xc2, 0x7d, 0xcd, 0x07, 0xc2, 0xab, 0x68, 0x32, 0x20, 0xdc, 0xd7, 0x0f, + 0x09, 0x88, 0x90, 0xe6, 0xd3, 0x07, 0xe2, 0xe1, 0x02, 0x94, 0x17, 0xb1, 0x6c, 0x0d, 0x0c, 0xec, + 0x19, 0xb1, 0xa0, 0xd7, 0x52, 0x73, 0xc3, 0x3a, 0x2f, 0x26, 0xd7, 0x0e, 0x6b, 0xb8, 0x66, 0x82, + 0x8a, 0xac, 0xd8, 0x8a, 0xf1, 0x61, 0x82, 0x2a, 0x09, 0x1d, 0x93, 0xc4, 0x53, 0x8c, 0x73, 0x50, + 0x91, 0x3e, 0x3e, 0x6f, 0xf2, 0xad, 0x02, 0x13, 0x42, 0xe3, 0xb3, 0x41, 0x34, 0x56, 0x58, 0x34, + 0xee, 0xe2, 0xe2, 0x43, 0x94, 0x35, 0x60, 0x4c, 0x40, 0x7c, 0xd7, 0x27, 0x6d, 0x06, 0x90, 0xfb, + 0x26, 0x27, 0x64, 0x0a, 0xa1, 0x65, 0xb2, 0x90, 0xef, 0xe8, 0x6d, 0xcc, 0x38, 0x0c, 0x8e, 0x86, + 0xc4, 0xff, 0xd6, 0xca, 0x32, 0xd1, 0x91, 0x5f, 0x15, 0x57, 0x2f, 0x40, 0xda, 0x0d, 0xf7, 0x43, + 0x61, 0x06, 0xe2, 0xd6, 0x38, 0x89, 0x78, 0x5f, 0xf0, 0xa3, 0xaa, 0x4f, 0x9f, 0xa1, 0x1f, 0x2f, + 0xb9, 0x46, 0xfe, 0xc4, 0x56, 0xef, 0x1b, 0x59, 0x28, 0xd0, 0xe3, 0x1f, 0x56, 0x81, 0xef, 0x5a, + 0x1b, 0xb9, 0xbb, 0x4e, 0x3f, 0x03, 0xbd, 0x2f, 0xa6, 0x01, 0x3a, 0x31, 0x67, 0x4b, 0xf0, 0xac, + 0xe5, 0x7d, 0x31, 0x6c, 0xce, 0xc3, 0xdb, 0x9e, 0xc2, 0x8d, 0xaf, 0xbc, 0x73, 0x3f, 0xe6, 0xbf, + 0x66, 0x01, 0x42, 0x57, 0xdf, 0x70, 0x3e, 0x8f, 0x5d, 0x7d, 0x5f, 0x13, 0xc4, 0xe1, 0x02, 0x8b, + 0xc3, 0xed, 0x61, 0xbc, 0xb0, 0x65, 0x6e, 0xdc, 0x12, 0x8c, 0x3e, 0xec, 0x71, 0xb8, 0xc9, 0x70, + 0xf8, 0xae, 0x89, 0x6a, 0x4d, 0x9f, 0xd3, 0x0e, 0x87, 0x43, 0x36, 0x9a, 0xe3, 0x38, 0x1c, 0xb1, + 0xd1, 0x3c, 0x00, 0x87, 0xa3, 0x77, 0x9b, 0x93, 0x72, 0xf8, 0xd0, 0x36, 0x91, 0x8f, 0xe7, 0xa0, + 0x50, 0x7f, 0xb0, 0xaf, 0x1b, 0x16, 0xfa, 0x3c, 0xeb, 0x4f, 0xbb, 0xef, 0xbb, 0xc6, 0x27, 0xff, + 0xed, 0xf9, 0xb7, 0xa7, 0x77, 0xfd, 0x4b, 0xcf, 0x34, 0x25, 0x9e, 0x85, 0xc2, 0x86, 0xa3, 0xed, + 0x76, 0x3e, 0xb8, 0x10, 0xd3, 0x55, 0xa7, 0xf2, 0x8a, 0xa3, 0xf9, 0x96, 0x68, 0x49, 0xb1, 0x0c, + 0xc2, 0xcb, 0x95, 0x3e, 0x3d, 0x0e, 0xb6, 0xff, 0x92, 0xa8, 0x1b, 0xd4, 0x27, 0x1b, 0x36, 0x2d, + 0xec, 0x38, 0x8b, 0x2a, 0x49, 0x6c, 0xa6, 0x78, 0x1a, 0x8e, 0xd2, 0x8c, 0x45, 0x45, 0xc5, 0x4e, + 0x90, 0xb8, 0x92, 0xc4, 0xe4, 0xa1, 0x47, 0x83, 0xe0, 0xde, 0xc1, 0x82, 0x7b, 0x7a, 0x14, 0x6d, + 0xa1, 0x2e, 0x42, 0x86, 0xbd, 0x67, 0x10, 0xc5, 0xfd, 0xa0, 0xdb, 0xc5, 0xb8, 0x47, 0xcf, 0x1a, + 0xdc, 0x64, 0x4c, 0xbb, 0xa1, 0x87, 0x3c, 0x29, 0x79, 0x21, 0x23, 0x25, 0xcf, 0x1a, 0x4f, 0x5e, + 0xfa, 0x37, 0xe9, 0x57, 0xa0, 0x40, 0xcf, 0x29, 0x8e, 0x42, 0x69, 0x59, 0x36, 0xb6, 0x7b, 0xfa, + 0x65, 0xcd, 0xd1, 0xc6, 0xaf, 0x50, 0x8d, 0x4d, 0x39, 0x63, 0xd7, 0x78, 0x7f, 0xbb, 0xd5, 0x2c, + 0x67, 0xc5, 0x22, 0x08, 0x0b, 0xad, 0x4e, 0x59, 0xb0, 0xff, 0xb4, 0x2f, 0x9e, 0x2b, 0xe7, 0xc4, + 0x63, 0x00, 0xe7, 0xa4, 0xea, 0xca, 0xf9, 0x35, 0x52, 0x22, 0x8f, 0x5e, 0x27, 0xc0, 0x71, 0xa7, + 0x33, 0xbe, 0x8a, 0xea, 0xbe, 0x68, 0x61, 0x1b, 0x1f, 0x89, 0xe6, 0x13, 0xdc, 0x57, 0xd6, 0x86, + 0x9a, 0x8e, 0x81, 0x77, 0x3c, 0x54, 0xf9, 0xee, 0xad, 0x45, 0x53, 0x33, 0x85, 0xab, 0xe9, 0x59, + 0x17, 0x0c, 0xd7, 0x29, 0x9a, 0x39, 0x14, 0x67, 0x68, 0x18, 0x8c, 0xd8, 0xac, 0xf6, 0x2a, 0xbe, + 0x22, 0x58, 0x1d, 0x46, 0xcd, 0x54, 0xae, 0x33, 0x97, 0x1d, 0x1a, 0x48, 0xa4, 0x01, 0xd3, 0xd2, + 0x0d, 0x1c, 0x74, 0xee, 0x1d, 0x63, 0x96, 0x45, 0x8f, 0x70, 0x2b, 0xa7, 0x86, 0x5b, 0x4c, 0x0d, + 0x04, 0x3e, 0x85, 0xd5, 0x18, 0x72, 0xd2, 0x47, 0xe1, 0x91, 0x2c, 0x1c, 0x5d, 0x96, 0xb7, 0x3d, + 0x1f, 0x80, 0xfc, 0x16, 0x2d, 0x8c, 0xc3, 0xa9, 0xc8, 0x2f, 0x8b, 0x60, 0xfd, 0x91, 0x37, 0x90, + 0xb3, 0x9e, 0x3b, 0x38, 0xbe, 0x6f, 0x8a, 0x88, 0x8a, 0xd3, 0xe7, 0xdc, 0xb7, 0xb2, 0x30, 0x17, + 0x24, 0x60, 0x7e, 0x2f, 0x70, 0x8d, 0x98, 0x75, 0xf3, 0x3d, 0x74, 0xe9, 0x75, 0x86, 0xb9, 0x4c, + 0xfa, 0x2b, 0xdc, 0x1a, 0xed, 0xb0, 0xd6, 0x38, 0x79, 0xca, 0xa7, 0xe1, 0xe6, 0x6c, 0x64, 0x0a, + 0x16, 0x7b, 0x59, 0x98, 0xad, 0xa9, 0xba, 0x36, 0x81, 0x68, 0xfe, 0x63, 0x86, 0xd7, 0xf4, 0x85, + 0x69, 0x80, 0x93, 0x8f, 0x7c, 0x76, 0x2d, 0x51, 0x35, 0x4f, 0xe1, 0x82, 0x40, 0x16, 0x8e, 0x3b, + 0xd8, 0x2d, 0x0c, 0xfa, 0xaa, 0xd2, 0x8d, 0xc5, 0xbe, 0x57, 0xc5, 0xbc, 0xef, 0xee, 0x35, 0xc1, + 0xc9, 0xc0, 0x38, 0x57, 0xd8, 0xc3, 0xea, 0x9e, 0x42, 0x0c, 0xf7, 0x1c, 0x1c, 0x5b, 0xd5, 0xcc, + 0xbe, 0x2a, 0x9b, 0x5b, 0xd4, 0xe4, 0xec, 0x76, 0xe6, 0xa8, 0xf2, 0x65, 0x03, 0x6c, 0xec, 0xb9, + 0x47, 0x95, 0x24, 0x31, 0xda, 0xe0, 0x07, 0x3d, 0x22, 0xf0, 0xfa, 0xb6, 0x64, 0xdb, 0x0b, 0x61, + 0xe7, 0x79, 0x28, 0xf5, 0x95, 0xae, 0x35, 0x30, 0xf0, 0x7e, 0xcb, 0x82, 0xa8, 0x4a, 0x56, 0x9c, + 0x97, 0x24, 0xef, 0x6d, 0x24, 0x43, 0x91, 0x66, 0xee, 0xb3, 0x2f, 0xa2, 0x7e, 0x12, 0xb3, 0xbe, + 0x9f, 0xc4, 0x93, 0x50, 0x90, 0x0d, 0x4b, 0x31, 0x5d, 0xbb, 0x36, 0x9a, 0xb2, 0x65, 0xc9, 0xf9, + 0xb7, 0x6a, 0xa8, 0xf4, 0x38, 0xd2, 0xcf, 0x08, 0x38, 0x87, 0x88, 0x72, 0xc4, 0x19, 0xd9, 0xef, + 0x78, 0x50, 0x5f, 0x98, 0xc0, 0x2a, 0xf4, 0x1a, 0x78, 0x92, 0x44, 0x62, 0x56, 0x34, 0x96, 0x1b, + 0x9d, 0xb5, 0xfa, 0x8b, 0x6b, 0xf5, 0xfa, 0x42, 0x7d, 0xa1, 0xdc, 0x43, 0xdf, 0xc9, 0x42, 0xd9, + 0xa5, 0xcd, 0xf5, 0xc5, 0x37, 0x34, 0x8e, 0x28, 0x33, 0xfd, 0x71, 0xe4, 0x65, 0xb0, 0x16, 0x78, + 0x91, 0xbb, 0x92, 0xe1, 0x36, 0x62, 0x38, 0x66, 0x7c, 0x94, 0x6b, 0x9f, 0x31, 0xa6, 0x81, 0x43, + 0x64, 0xf1, 0x97, 0xb3, 0x30, 0x5b, 0xed, 0xf7, 0xd5, 0x3d, 0x6f, 0x9a, 0x8f, 0x73, 0x50, 0x13, + 0xf0, 0x90, 0x92, 0xdd, 0xe7, 0x21, 0xe5, 0x07, 0xdc, 0xcb, 0x00, 0x43, 0x40, 0x88, 0xf2, 0x82, + 0x6f, 0xda, 0x8f, 0xaa, 0x29, 0xfd, 0x39, 0xeb, 0x8d, 0x4f, 0x82, 0x3c, 0x89, 0x4e, 0x86, 0x3e, + 0x20, 0x40, 0x51, 0xd5, 0x37, 0x1b, 0xda, 0x86, 0x3e, 0xca, 0x76, 0x70, 0x0b, 0x7b, 0xf7, 0x28, + 0xc9, 0x7f, 0xf1, 0x46, 0x38, 0x66, 0xff, 0xba, 0xf2, 0x41, 0x1d, 0xad, 0x97, 0xa4, 0xa1, 0x5c, + 0xf1, 0x34, 0x1c, 0xb5, 0x74, 0x4b, 0x56, 0x83, 0x36, 0xeb, 0x79, 0x89, 0xc9, 0xb3, 0x51, 0x23, + 0xe9, 0xb6, 0xf2, 0x72, 0x4c, 0x6d, 0x5a, 0xfd, 0x0c, 0xf1, 0x7a, 0x98, 0xdd, 0x50, 0x0c, 0xd3, + 0x72, 0x4a, 0x77, 0x1c, 0x35, 0x45, 0x5e, 0x62, 0x33, 0x1d, 0x07, 0xf1, 0x5e, 0xc6, 0x45, 0x6c, + 0x10, 0x53, 0x39, 0xe2, 0x20, 0x3e, 0x98, 0x6b, 0xd3, 0xa3, 0xca, 0x81, 0xca, 0x4a, 0x0e, 0x3d, + 0xc1, 0x3c, 0xd7, 0xcd, 0x9b, 0x5f, 0x95, 0x63, 0x78, 0xc8, 0x66, 0xda, 0x2d, 0xda, 0x19, 0x2b, + 0x03, 0x55, 0x6d, 0xe3, 0x6e, 0x75, 0x53, 0x27, 0xe6, 0x87, 0x79, 0x69, 0x28, 0x57, 0x44, 0x50, + 0x1a, 0xf4, 0xdb, 0x96, 0x6c, 0x0d, 0x4c, 0x6a, 0x61, 0xe2, 0xa5, 0x6d, 0x89, 0xec, 0xe9, 0x97, + 0x35, 0xfa, 0xd4, 0x31, 0x6a, 0x0a, 0xe4, 0xd8, 0xeb, 0x83, 0x23, 0x84, 0xb3, 0xce, 0xaa, 0xe1, + 0x48, 0xd6, 0x9f, 0x08, 0x00, 0xd6, 0x96, 0x81, 0xe5, 0xde, 0x48, 0xb8, 0x9e, 0x0f, 0x27, 0x55, + 0x7d, 0xd3, 0xbc, 0xa4, 0x58, 0x5b, 0x3e, 0x10, 0xe7, 0x5d, 0x00, 0xf3, 0x52, 0xc8, 0x53, 0xf1, + 0x45, 0xf0, 0x54, 0xf7, 0xc9, 0xa5, 0x2d, 0x5d, 0xc5, 0x1d, 0x03, 0xe3, 0x21, 0x7c, 0xf3, 0x52, + 0x54, 0x11, 0xb1, 0x02, 0x39, 0xfb, 0xf1, 0x5c, 0x8e, 0xac, 0x32, 0xac, 0xea, 0x8a, 0x88, 0x59, + 0x85, 0x8a, 0x98, 0x44, 0xca, 0x89, 0x77, 0xc0, 0x35, 0xfa, 0x65, 0x6d, 0x49, 0xdf, 0x3c, 0x2f, + 0x9b, 0x35, 0x79, 0x03, 0x4b, 0xd8, 0x59, 0xbc, 0x75, 0x83, 0x2a, 0xac, 0xc2, 0x1e, 0x8b, 0x15, + 0x10, 0xbb, 0xf2, 0x06, 0x5e, 0x62, 0x01, 0x70, 0x24, 0x63, 0xc4, 0x13, 0x1b, 0x76, 0x3b, 0x77, + 0xd5, 0x05, 0xc2, 0xb1, 0xa3, 0x64, 0xf2, 0x6c, 0x40, 0xed, 0xf4, 0x82, 0x0f, 0x88, 0x63, 0xbb, + 0x36, 0x94, 0xbb, 0x4f, 0xa4, 0x67, 0xc6, 0x89, 0x34, 0x0c, 0x8b, 0xb4, 0x07, 0xeb, 0x91, 0x20, + 0xac, 0x5f, 0xcf, 0x43, 0xae, 0xbd, 0xa7, 0x75, 0xed, 0xfd, 0x8e, 0x37, 0xa3, 0x9d, 0x85, 0x13, + 0xd4, 0x00, 0xa8, 0x63, 0xc8, 0xbb, 0xd8, 0x30, 0xf1, 0x12, 0xd9, 0x30, 0x38, 0x8e, 0xc6, 0x47, + 0x3e, 0xb3, 0xe5, 0xd7, 0xdc, 0x56, 0xfa, 0xf5, 0x9d, 0xbe, 0xb5, 0xb7, 0x64, 0xe3, 0x41, 0x63, + 0xee, 0x32, 0x99, 0xe2, 0xbd, 0x80, 0x2c, 0x63, 0xaf, 0xa3, 0xbb, 0xf8, 0x49, 0x78, 0x47, 0xb7, + 0xb0, 0xdb, 0x29, 0x1a, 0x8f, 0x30, 0xbc, 0x04, 0xfa, 0x4d, 0x6e, 0x8f, 0xfa, 0x0e, 0xf4, 0x76, + 0xd7, 0x42, 0xd6, 0xa9, 0x17, 0x40, 0xd1, 0x91, 0x67, 0x77, 0x83, 0xf2, 0xb4, 0x11, 0xef, 0xfb, + 0x12, 0x2f, 0xb9, 0xa5, 0x19, 0xf7, 0xf3, 0xc2, 0x90, 0xfb, 0x79, 0x17, 0xa6, 0x0e, 0xad, 0x39, + 0x38, 0xf3, 0xd0, 0x3c, 0xc2, 0x03, 0xe7, 0xaf, 0x2d, 0xd2, 0xfa, 0xc0, 0xb2, 0x45, 0xac, 0xa1, + 0xb5, 0x88, 0xd4, 0xd1, 0xa9, 0x28, 0xa2, 0x84, 0x38, 0x0f, 0xd7, 0xb2, 0x4f, 0xcf, 0xb3, 0x73, + 0xa2, 0x23, 0x90, 0x91, 0x65, 0xf6, 0x89, 0x53, 0x71, 0x9c, 0x38, 0x95, 0x86, 0xc4, 0x89, 0xd3, + 0xd7, 0x72, 0x28, 0x0a, 0xe9, 0x2f, 0x33, 0x9f, 0x12, 0xa0, 0xe0, 0xb0, 0x1c, 0xbd, 0x3e, 0xc3, + 0x5c, 0xdf, 0xa7, 0xa0, 0x7a, 0xd7, 0xf7, 0xdd, 0xf4, 0x94, 0x64, 0xf8, 0x5d, 0xfc, 0x0e, 0x9c, + 0x09, 0xf7, 0x9c, 0x4e, 0x84, 0xda, 0xf4, 0xe5, 0x14, 0x6d, 0x43, 0xa7, 0xc7, 0x73, 0x63, 0x44, + 0x98, 0x14, 0xe5, 0x54, 0x5b, 0x44, 0xb4, 0x3d, 0x95, 0xe0, 0xdf, 0x39, 0x7b, 0x9a, 0x47, 0x2f, + 0x61, 0x82, 0xc4, 0xac, 0xd3, 0x80, 0x15, 0x34, 0x06, 0x16, 0x4d, 0x8e, 0xd4, 0x83, 0x9d, 0x86, + 0xa3, 0x03, 0x4d, 0xd6, 0x74, 0x6d, 0x6f, 0x47, 0x79, 0xb9, 0xb7, 0x51, 0x60, 0xf2, 0x58, 0x33, + 0x3d, 0x8e, 0xc9, 0xc4, 0xa6, 0x28, 0x3c, 0x08, 0xf3, 0x86, 0xa2, 0x62, 0x62, 0xc0, 0xef, 0x7a, + 0x84, 0xa6, 0xe9, 0x58, 0x23, 0x65, 0x44, 0x13, 0xe9, 0x73, 0xfb, 0xef, 0x32, 0x70, 0xe2, 0x1c, + 0xd6, 0xb0, 0xa1, 0x74, 0x9d, 0x4e, 0x71, 0x79, 0x5b, 0x1c, 0xf5, 0x06, 0xbb, 0x19, 0xe5, 0xf3, + 0x93, 0x18, 0x5e, 0x4f, 0xfa, 0x07, 0x25, 0x45, 0xc8, 0x93, 0x71, 0x3d, 0x7f, 0xed, 0x17, 0x1f, + 0x3f, 0x95, 0xf9, 0xea, 0xe3, 0xa7, 0x32, 0xdf, 0x79, 0xfc, 0x54, 0xe6, 0x17, 0xbf, 0x7b, 0xea, + 0xaa, 0xaf, 0x7e, 0xf7, 0xd4, 0x55, 0x7f, 0xfe, 0xdd, 0x53, 0x57, 0xfd, 0x93, 0x6c, 0x7f, 0x7d, + 0xbd, 0x40, 0xec, 0x5c, 0x6f, 0xfb, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf2, 0x4c, 0x96, 0xd0, + 0x19, 0x0e, 0x01, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -44987,6 +45231,162 @@ func (m *RpcBlockSetTextCheckedResponseError) MarshalToSizedBuffer(dAtA []byte) return len(dAtA) - i, nil } +func (m *RpcBlockSetTextIcon) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcBlockSetTextIcon) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcBlockSetTextIcon) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *RpcBlockSetTextIconRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcBlockSetTextIconRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcBlockSetTextIconRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.IconEmoji) > 0 { + i -= len(m.IconEmoji) + copy(dAtA[i:], m.IconEmoji) + i = encodeVarintCommands(dAtA, i, uint64(len(m.IconEmoji))) + i-- + dAtA[i] = 0x2a + } + if len(m.IconImage) > 0 { + i -= len(m.IconImage) + copy(dAtA[i:], m.IconImage) + i = encodeVarintCommands(dAtA, i, uint64(len(m.IconImage))) + i-- + dAtA[i] = 0x1a + } + if len(m.BlockId) > 0 { + i -= len(m.BlockId) + copy(dAtA[i:], m.BlockId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.BlockId))) + i-- + dAtA[i] = 0x12 + } + if len(m.ContextId) > 0 { + i -= len(m.ContextId) + copy(dAtA[i:], m.ContextId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.ContextId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcBlockSetTextIconResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcBlockSetTextIconResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcBlockSetTextIconResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Event != nil { + { + size, err := m.Event.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcBlockSetTextIconResponseError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcBlockSetTextIconResponseError) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcBlockSetTextIconResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintCommands(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *RpcBlockSetFile) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -65811,6 +66211,73 @@ func (m *RpcBlockSetTextCheckedResponseError) Size() (n int) { return n } +func (m *RpcBlockSetTextIcon) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RpcBlockSetTextIconRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ContextId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + l = len(m.BlockId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + l = len(m.IconImage) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + l = len(m.IconEmoji) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcBlockSetTextIconResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovCommands(uint64(l)) + } + if m.Event != nil { + l = m.Event.Size() + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcBlockSetTextIconResponseError) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovCommands(uint64(m.Code)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + func (m *RpcBlockSetFile) Size() (n int) { if m == nil { return 0 @@ -90111,6 +90578,457 @@ func (m *RpcBlockSetTextCheckedResponseError) Unmarshal(dAtA []byte) error { } return nil } +func (m *RpcBlockSetTextIcon) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Icon: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Icon: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcBlockSetTextIconRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Request: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContextId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContextId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BlockId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BlockId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IconImage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IconImage = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IconEmoji", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IconEmoji = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcBlockSetTextIconResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Response: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &RpcBlockSetTextIconResponseError{} + } + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Event", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Event == nil { + m.Event = &ResponseEvent{} + } + if err := m.Event.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcBlockSetTextIconResponseError) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Error: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= RpcBlockSetTextIconResponseErrorCode(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *RpcBlockSetFile) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pb/events.pb.go b/pb/events.pb.go index 0316db7dd..1dfedef9e 100644 --- a/pb/events.pb.go +++ b/pb/events.pb.go @@ -2883,12 +2883,14 @@ func (m *EventBlockSetAlign) GetAlign() model.BlockAlign { } type EventBlockSetText struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Text *EventBlockSetTextText `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` - Style *EventBlockSetTextStyle `protobuf:"bytes,3,opt,name=style,proto3" json:"style,omitempty"` - Marks *EventBlockSetTextMarks `protobuf:"bytes,4,opt,name=marks,proto3" json:"marks,omitempty"` - Checked *EventBlockSetTextChecked `protobuf:"bytes,5,opt,name=checked,proto3" json:"checked,omitempty"` - Color *EventBlockSetTextColor `protobuf:"bytes,6,opt,name=color,proto3" json:"color,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Text *EventBlockSetTextText `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` + Style *EventBlockSetTextStyle `protobuf:"bytes,3,opt,name=style,proto3" json:"style,omitempty"` + Marks *EventBlockSetTextMarks `protobuf:"bytes,4,opt,name=marks,proto3" json:"marks,omitempty"` + Checked *EventBlockSetTextChecked `protobuf:"bytes,5,opt,name=checked,proto3" json:"checked,omitempty"` + Color *EventBlockSetTextColor `protobuf:"bytes,6,opt,name=color,proto3" json:"color,omitempty"` + IconEmoji *EventBlockSetTextIconEmoji `protobuf:"bytes,7,opt,name=iconEmoji,proto3" json:"iconEmoji,omitempty"` + IconImage *EventBlockSetTextIconImage `protobuf:"bytes,8,opt,name=iconImage,proto3" json:"iconImage,omitempty"` } func (m *EventBlockSetText) Reset() { *m = EventBlockSetText{} } @@ -2966,6 +2968,20 @@ func (m *EventBlockSetText) GetColor() *EventBlockSetTextColor { return nil } +func (m *EventBlockSetText) GetIconEmoji() *EventBlockSetTextIconEmoji { + if m != nil { + return m.IconEmoji + } + return nil +} + +func (m *EventBlockSetText) GetIconImage() *EventBlockSetTextIconImage { + if m != nil { + return m.IconImage + } + return nil +} + type EventBlockSetTextText struct { Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } @@ -3186,6 +3202,94 @@ func (m *EventBlockSetTextColor) GetValue() string { return "" } +type EventBlockSetTextIconEmoji struct { + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *EventBlockSetTextIconEmoji) Reset() { *m = EventBlockSetTextIconEmoji{} } +func (m *EventBlockSetTextIconEmoji) String() string { return proto.CompactTextString(m) } +func (*EventBlockSetTextIconEmoji) ProtoMessage() {} +func (*EventBlockSetTextIconEmoji) Descriptor() ([]byte, []int) { + return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 6, 5} +} +func (m *EventBlockSetTextIconEmoji) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventBlockSetTextIconEmoji) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventBlockSetTextIconEmoji.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventBlockSetTextIconEmoji) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventBlockSetTextIconEmoji.Merge(m, src) +} +func (m *EventBlockSetTextIconEmoji) XXX_Size() int { + return m.Size() +} +func (m *EventBlockSetTextIconEmoji) XXX_DiscardUnknown() { + xxx_messageInfo_EventBlockSetTextIconEmoji.DiscardUnknown(m) +} + +var xxx_messageInfo_EventBlockSetTextIconEmoji proto.InternalMessageInfo + +func (m *EventBlockSetTextIconEmoji) GetValue() string { + if m != nil { + return m.Value + } + return "" +} + +type EventBlockSetTextIconImage struct { + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *EventBlockSetTextIconImage) Reset() { *m = EventBlockSetTextIconImage{} } +func (m *EventBlockSetTextIconImage) String() string { return proto.CompactTextString(m) } +func (*EventBlockSetTextIconImage) ProtoMessage() {} +func (*EventBlockSetTextIconImage) Descriptor() ([]byte, []int) { + return fileDescriptor_a966342d378ae5f5, []int{0, 3, 4, 6, 6} +} +func (m *EventBlockSetTextIconImage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventBlockSetTextIconImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventBlockSetTextIconImage.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventBlockSetTextIconImage) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventBlockSetTextIconImage.Merge(m, src) +} +func (m *EventBlockSetTextIconImage) XXX_Size() int { + return m.Size() +} +func (m *EventBlockSetTextIconImage) XXX_DiscardUnknown() { + xxx_messageInfo_EventBlockSetTextIconImage.DiscardUnknown(m) +} + +var xxx_messageInfo_EventBlockSetTextIconImage proto.InternalMessageInfo + +func (m *EventBlockSetTextIconImage) GetValue() string { + if m != nil { + return m.Value + } + return "" +} + type EventBlockSetLatex struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Text *EventBlockSetLatexText `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` @@ -8051,6 +8155,8 @@ func init() { proto.RegisterType((*EventBlockSetTextMarks)(nil), "anytype.Event.Block.Set.Text.Marks") proto.RegisterType((*EventBlockSetTextChecked)(nil), "anytype.Event.Block.Set.Text.Checked") proto.RegisterType((*EventBlockSetTextColor)(nil), "anytype.Event.Block.Set.Text.Color") + proto.RegisterType((*EventBlockSetTextIconEmoji)(nil), "anytype.Event.Block.Set.Text.IconEmoji") + proto.RegisterType((*EventBlockSetTextIconImage)(nil), "anytype.Event.Block.Set.Text.IconImage") proto.RegisterType((*EventBlockSetLatex)(nil), "anytype.Event.Block.Set.Latex") proto.RegisterType((*EventBlockSetLatexText)(nil), "anytype.Event.Block.Set.Latex.Text") proto.RegisterType((*EventBlockSetDiv)(nil), "anytype.Event.Block.Set.Div") @@ -8149,250 +8255,253 @@ func init() { func init() { proto.RegisterFile("pb/protos/events.proto", fileDescriptor_a966342d378ae5f5) } var fileDescriptor_a966342d378ae5f5 = []byte{ - // 3878 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x4d, 0x6c, 0x1c, 0xc9, - 0x75, 0x9e, 0x9f, 0x9e, 0xbf, 0x47, 0x91, 0x62, 0x6a, 0x65, 0x6d, 0x6f, 0x89, 0xe2, 0x72, 0x25, - 0xed, 0xae, 0xec, 0x95, 0x47, 0xb6, 0xb4, 0x5a, 0xc9, 0xd2, 0x4a, 0x5a, 0x89, 0x94, 0x40, 0x6a, - 0xb5, 0x22, 0x5d, 0x23, 0xda, 0x89, 0x1d, 0x04, 0x69, 0x4e, 0x17, 0x87, 0x6d, 0xce, 0x74, 0x0f, - 0xba, 0x7b, 0x28, 0xd2, 0x41, 0x80, 0x00, 0xbe, 0x04, 0x01, 0x02, 0x24, 0x39, 0x24, 0xb9, 0xf9, - 0x90, 0x93, 0x2f, 0xb9, 0x24, 0x87, 0xdc, 0x72, 0x08, 0x0c, 0x38, 0x39, 0xf9, 0x96, 0x00, 0xc9, - 0x21, 0xd8, 0xcd, 0x21, 0x40, 0x4e, 0xb9, 0x04, 0xb9, 0x04, 0x08, 0xea, 0xb7, 0xab, 0x7b, 0xba, - 0xa7, 0x87, 0xde, 0x6c, 0x12, 0xc3, 0x3e, 0x71, 0xaa, 0xea, 0x7b, 0x5f, 0xbd, 0xaa, 0x7a, 0xf5, - 0xaa, 0xde, 0xeb, 0x22, 0x9c, 0x1f, 0xef, 0x5d, 0x1f, 0x87, 0x41, 0x1c, 0x44, 0xd7, 0xe9, 0x11, - 0xf5, 0xe3, 0xa8, 0xcb, 0x4b, 0xa8, 0xe5, 0xf8, 0x27, 0xf1, 0xc9, 0x98, 0xe2, 0x2b, 0xe3, 0xc3, - 0xc1, 0xf5, 0xa1, 0xb7, 0x77, 0x7d, 0xbc, 0x77, 0x7d, 0x14, 0xb8, 0x74, 0xa8, 0xe0, 0xbc, 0x20, - 0xe1, 0x78, 0x65, 0x10, 0x04, 0x83, 0x21, 0x15, 0x6d, 0x7b, 0x93, 0xfd, 0xeb, 0x51, 0x1c, 0x4e, - 0xfa, 0xb1, 0x68, 0xbd, 0xf4, 0x9f, 0xc7, 0xd0, 0x78, 0xc2, 0xd8, 0xd1, 0x0d, 0x68, 0x8f, 0x68, - 0x14, 0x39, 0x03, 0x1a, 0xd9, 0xd5, 0xb5, 0xfa, 0xd5, 0x85, 0x1b, 0xe7, 0xbb, 0xb2, 0xa7, 0x2e, - 0x47, 0x74, 0x3f, 0x11, 0xcd, 0x44, 0xe3, 0xd0, 0x0a, 0x74, 0xfa, 0x81, 0x1f, 0xd3, 0xe3, 0x78, - 0xcb, 0xb5, 0x6b, 0x6b, 0xd5, 0xab, 0x1d, 0x92, 0x54, 0xa0, 0xf7, 0xa1, 0xe3, 0xf9, 0x5e, 0xec, - 0x39, 0x71, 0x10, 0xda, 0xf5, 0xb5, 0x6a, 0x8a, 0x92, 0xeb, 0xd8, 0x7d, 0xd4, 0xef, 0x07, 0x13, - 0x3f, 0x26, 0x09, 0x10, 0xd9, 0xd0, 0x8a, 0x43, 0xa7, 0x4f, 0xb7, 0x5c, 0xdb, 0xe2, 0x8c, 0xaa, - 0x88, 0xff, 0x7a, 0x0d, 0x5a, 0x52, 0x07, 0xf4, 0x10, 0x16, 0x1c, 0x21, 0xdb, 0x3b, 0x08, 0x5e, - 0xd9, 0x55, 0xce, 0x7e, 0x21, 0xa3, 0xb0, 0x64, 0xef, 0x32, 0xc8, 0x66, 0x85, 0x98, 0x12, 0x68, - 0x0b, 0x96, 0x64, 0x71, 0x83, 0xc6, 0x8e, 0x37, 0x8c, 0xec, 0xbf, 0x15, 0x24, 0xab, 0x05, 0x24, - 0x12, 0xb6, 0x59, 0x21, 0x19, 0x41, 0xf4, 0x6b, 0xf0, 0x9a, 0xac, 0x59, 0x0f, 0xfc, 0x7d, 0x6f, - 0xb0, 0x3b, 0x76, 0x9d, 0x98, 0xda, 0x7f, 0x27, 0xf8, 0xae, 0x14, 0xf0, 0x09, 0x6c, 0x57, 0x80, - 0x37, 0x2b, 0x24, 0x8f, 0x03, 0x6d, 0xc3, 0x72, 0xb0, 0xf7, 0x3d, 0xda, 0x57, 0x7d, 0xf5, 0x68, - 0x6c, 0x2f, 0x73, 0xda, 0xb7, 0x32, 0xb4, 0xdb, 0x1c, 0xa6, 0xb4, 0xec, 0xf6, 0x68, 0xbc, 0x59, - 0x21, 0x53, 0xc2, 0x68, 0x17, 0x50, 0xaa, 0xee, 0xd1, 0x88, 0xfa, 0xae, 0x7d, 0x83, 0x53, 0x5e, - 0x9e, 0x4d, 0xc9, 0xa1, 0x9b, 0x15, 0x92, 0x43, 0x30, 0x45, 0xbb, 0xeb, 0x47, 0x34, 0xb6, 0x6f, - 0xce, 0x43, 0xcb, 0xa1, 0x53, 0xb4, 0xbc, 0x36, 0xa1, 0x25, 0x74, 0xe8, 0xc4, 0x5e, 0xe0, 0xf3, - 0x09, 0x38, 0x3f, 0x8b, 0x56, 0x23, 0xe5, 0x14, 0xe4, 0x10, 0xa0, 0xef, 0xc2, 0xb9, 0x4c, 0xad, - 0x98, 0x86, 0xf7, 0x39, 0xf1, 0xdb, 0x65, 0xc4, 0x6a, 0x22, 0x72, 0x49, 0xd0, 0x6f, 0xc0, 0x97, - 0x32, 0xf5, 0x84, 0x8e, 0x82, 0x23, 0x6a, 0xdf, 0xe2, 0xec, 0xef, 0x94, 0xb1, 0x0b, 0xf4, 0x66, - 0x85, 0xe4, 0xd3, 0xa0, 0xc7, 0x70, 0x46, 0x35, 0x70, 0xda, 0x0f, 0x38, 0xed, 0x4a, 0x11, 0xad, - 0x24, 0x4b, 0xc9, 0xa0, 0x0f, 0x01, 0x44, 0x99, 0x6f, 0x9e, 0x55, 0xce, 0x80, 0xf3, 0x19, 0xe4, - 0xde, 0x31, 0xf0, 0x88, 0xc0, 0xd9, 0x68, 0xb2, 0x17, 0xf5, 0x43, 0x6f, 0xcc, 0x14, 0x7b, 0xe4, - 0xba, 0xf6, 0x87, 0xb3, 0xc6, 0xd6, 0x33, 0xc0, 0xdd, 0x47, 0x2e, 0x9b, 0xba, 0x2c, 0x01, 0xfa, - 0x2e, 0x20, 0xb3, 0x4a, 0x8e, 0xed, 0x3e, 0xa7, 0xfd, 0xf2, 0x1c, 0xb4, 0x7a, 0xa0, 0x39, 0x34, - 0xc8, 0x81, 0x73, 0x66, 0xed, 0x4e, 0x10, 0x79, 0xec, 0xaf, 0xfd, 0x80, 0xd3, 0xbf, 0x37, 0x07, - 0xbd, 0x12, 0x61, 0xab, 0x9e, 0x47, 0x95, 0xed, 0x62, 0x9d, 0xed, 0x64, 0x1a, 0x46, 0xf6, 0xc3, - 0xb9, 0xbb, 0x50, 0x22, 0xd9, 0x2e, 0x54, 0x3d, 0xfa, 0x00, 0xda, 0x7b, 0xc3, 0xa0, 0x7f, 0xc8, - 0xe6, 0xbb, 0xc6, 0x69, 0xed, 0x0c, 0xed, 0x63, 0xd6, 0x2c, 0x67, 0x58, 0x63, 0x99, 0xab, 0xe4, - 0xbf, 0x37, 0xe8, 0x90, 0xc6, 0x54, 0x3a, 0xe2, 0x0b, 0xb9, 0xa2, 0x02, 0xc2, 0x5c, 0xa5, 0x21, - 0x81, 0x36, 0x60, 0x61, 0xdf, 0x1b, 0xd2, 0x68, 0x77, 0x3c, 0x0c, 0x1c, 0xe1, 0x95, 0x17, 0x6e, - 0xac, 0xe5, 0x12, 0x3c, 0x4d, 0x70, 0x8c, 0xc5, 0x10, 0x43, 0x0f, 0xa0, 0x33, 0x72, 0xc2, 0xc3, - 0x68, 0xcb, 0xdf, 0x0f, 0xec, 0x46, 0xae, 0xab, 0x15, 0x1c, 0x9f, 0x28, 0xd4, 0x66, 0x85, 0x24, - 0x22, 0xcc, 0x61, 0x73, 0xa5, 0x7a, 0x34, 0x7e, 0xea, 0xd1, 0xa1, 0x1b, 0xd9, 0x4d, 0x4e, 0xf2, - 0x66, 0x2e, 0x49, 0x8f, 0xc6, 0x5d, 0x01, 0x63, 0x0e, 0x3b, 0x2d, 0x88, 0x7e, 0x15, 0x5e, 0x53, - 0x35, 0xeb, 0x07, 0xde, 0xd0, 0x0d, 0xa9, 0xbf, 0xe5, 0x46, 0x76, 0x2b, 0xd7, 0x5f, 0x27, 0x7c, - 0x06, 0x96, 0xf9, 0xeb, 0x1c, 0x0a, 0xe6, 0x59, 0x54, 0x35, 0xa1, 0x51, 0x1c, 0x7a, 0x7d, 0xbe, - 0x75, 0xed, 0x76, 0xae, 0x67, 0x49, 0xa8, 0x4d, 0x30, 0x33, 0x80, 0x3c, 0x12, 0xe4, 0xc2, 0xeb, - 0xaa, 0xfe, 0xb1, 0xd3, 0x3f, 0x1c, 0x84, 0xc1, 0xc4, 0x77, 0xd7, 0x83, 0x61, 0x10, 0xda, 0x1d, - 0xce, 0x7f, 0xb5, 0x90, 0x3f, 0x83, 0xdf, 0xac, 0x90, 0x22, 0x2a, 0xb4, 0x0e, 0x67, 0x54, 0xd3, - 0x4b, 0x7a, 0x1c, 0xdb, 0xc0, 0xa9, 0x2f, 0x16, 0x52, 0x33, 0x10, 0x73, 0x30, 0xa6, 0x90, 0x49, - 0xc2, 0x4c, 0xc2, 0x5e, 0x28, 0x21, 0x61, 0x20, 0x93, 0x84, 0x95, 0x4d, 0x92, 0xe7, 0x9e, 0x7f, - 0x68, 0x2f, 0x96, 0x90, 0x30, 0x90, 0x49, 0xc2, 0xca, 0xec, 0x04, 0xd5, 0x23, 0x0d, 0x82, 0x43, - 0x66, 0x4f, 0xf6, 0x52, 0xee, 0x09, 0x6a, 0xcc, 0x96, 0x04, 0xb2, 0x13, 0x34, 0x2b, 0x8c, 0x9e, - 0xc2, 0xa2, 0xaa, 0x7b, 0x34, 0xf4, 0x06, 0xbe, 0x7d, 0x76, 0x86, 0x2d, 0x33, 0x36, 0x8e, 0xda, - 0xac, 0x90, 0xb4, 0x18, 0xfa, 0x48, 0x6e, 0xcb, 0x1e, 0x8d, 0x37, 0xbc, 0x23, 0xfb, 0x57, 0x72, - 0xdd, 0x78, 0xc2, 0xb2, 0xe1, 0x1d, 0xe9, 0x7d, 0x29, 0x44, 0xcc, 0xa1, 0xa9, 0x43, 0xc2, 0xfe, - 0x52, 0xc9, 0xd0, 0x14, 0xd0, 0x1c, 0x9a, 0xaa, 0x33, 0x87, 0xf6, 0xdc, 0x89, 0xe9, 0xb1, 0xfd, - 0x46, 0xc9, 0xd0, 0x38, 0xca, 0x1c, 0x1a, 0xaf, 0xd0, 0x86, 0xba, 0xe1, 0xc4, 0xce, 0x91, 0x47, - 0x5f, 0x11, 0xda, 0x0f, 0x42, 0x97, 0x9f, 0xdd, 0x68, 0x86, 0xa1, 0x2a, 0x78, 0x37, 0xc1, 0x6b, - 0x43, 0x9d, 0xa6, 0x42, 0x23, 0xc0, 0x79, 0x4d, 0xf2, 0xf6, 0x85, 0x73, 0x1d, 0x6f, 0x7e, 0x47, - 0xfa, 0x0e, 0x36, 0x83, 0xb0, 0xa8, 0xbb, 0x2d, 0x3f, 0xa2, 0x61, 0x6c, 0x5f, 0x38, 0x45, 0x77, - 0x42, 0xa4, 0xa8, 0x3b, 0xd1, 0x5a, 0xd4, 0x9d, 0x74, 0xe2, 0x2b, 0xa7, 0xe8, 0x4e, 0x3b, 0xf5, - 0x19, 0x84, 0xc8, 0x81, 0xf3, 0xa9, 0xd6, 0x5e, 0x30, 0x09, 0xfb, 0x94, 0xad, 0xd8, 0x65, 0xde, - 0xd5, 0xbb, 0xb3, 0xbb, 0xd2, 0xf0, 0xcd, 0x0a, 0x29, 0x20, 0xd2, 0xbe, 0x51, 0xb5, 0x7c, 0x8b, - 0xb5, 0xd2, 0xd8, 0x7e, 0x6d, 0x86, 0x6f, 0xd4, 0x1d, 0x48, 0xb0, 0xf6, 0x8d, 0x19, 0x92, 0x29, - 0x93, 0x63, 0xf5, 0x72, 0xae, 0xce, 0xcd, 0x63, 0x72, 0x09, 0x7e, 0xca, 0xe4, 0x92, 0xa6, 0xa9, - 0x59, 0x62, 0x4d, 0xdb, 0xa1, 0x4b, 0x43, 0xfb, 0xe2, 0x3c, 0xb3, 0xa4, 0xe1, 0x53, 0xb3, 0xa4, - 0x5b, 0xd0, 0x18, 0x2e, 0x64, 0x96, 0x49, 0x6c, 0x4e, 0x39, 0x18, 0x9b, 0xf7, 0x73, 0xad, 0x6c, - 0xe1, 0x4d, 0x99, 0xcd, 0x0a, 0x99, 0x45, 0x89, 0x06, 0x60, 0xe7, 0x36, 0xb3, 0xb5, 0x79, 0x3d, - 0xf7, 0x02, 0x56, 0xd0, 0x9d, 0x58, 0x9f, 0x42, 0x32, 0xe6, 0x5e, 0x26, 0x11, 0x0d, 0xb9, 0xf4, - 0xb3, 0xc0, 0xf3, 0xed, 0x37, 0x73, 0xdd, 0xcb, 0x6e, 0x44, 0x43, 0xd9, 0x05, 0x43, 0x31, 0xf7, - 0x92, 0x12, 0x4b, 0xf1, 0x3c, 0xa7, 0xfb, 0xb1, 0xbd, 0x56, 0xc6, 0xc3, 0x50, 0x29, 0x1e, 0x56, - 0xc1, 0x0c, 0x52, 0x57, 0xf4, 0xe8, 0x90, 0x5d, 0x8f, 0x1d, 0x7f, 0x40, 0xed, 0xb7, 0x72, 0x0d, - 0xd2, 0xa0, 0x33, 0xc0, 0xcc, 0x20, 0xf3, 0x48, 0x58, 0xe8, 0xa2, 0xeb, 0xd9, 0x91, 0x28, 0xa8, - 0x2f, 0xe5, 0x86, 0x2e, 0x06, 0xb5, 0x86, 0xb2, 0xab, 0xec, 0x34, 0x01, 0xfa, 0x32, 0x58, 0x63, - 0xcf, 0x1f, 0xd8, 0x2e, 0x27, 0x7a, 0x2d, 0x43, 0xb4, 0xe3, 0xf9, 0x83, 0xcd, 0x0a, 0xe1, 0x10, - 0x76, 0xc9, 0x1f, 0x87, 0x41, 0x9f, 0x46, 0xd1, 0x0b, 0xfa, 0xca, 0xa6, 0xb9, 0x97, 0xfc, 0x1d, - 0x01, 0xe8, 0xbe, 0xa0, 0xfc, 0x92, 0x9f, 0xe0, 0xd1, 0x13, 0x58, 0x94, 0x25, 0xe9, 0x50, 0xf7, - 0x73, 0x4f, 0x5f, 0x45, 0xa0, 0x5d, 0x68, 0x5a, 0x8a, 0x5d, 0x3e, 0x65, 0xc5, 0x46, 0xe0, 0x53, - 0x7b, 0x90, 0x7b, 0xf9, 0x54, 0x24, 0x0c, 0xc2, 0x0e, 0x39, 0x43, 0x82, 0x85, 0x3b, 0xf1, 0x41, - 0x48, 0x1d, 0xb7, 0x17, 0x3b, 0xf1, 0x24, 0xb2, 0xfd, 0xdc, 0x73, 0x52, 0x34, 0x76, 0x5f, 0x72, - 0x24, 0xbb, 0x03, 0x98, 0x32, 0x8f, 0x5b, 0xd0, 0x38, 0x72, 0x86, 0x13, 0x8a, 0x7f, 0xa7, 0x06, - 0x2d, 0x19, 0x7f, 0xe3, 0x17, 0x60, 0xf1, 0x68, 0xe6, 0x1c, 0x34, 0x3c, 0xdf, 0xa5, 0xc7, 0x3c, - 0x87, 0xd0, 0x20, 0xa2, 0x80, 0xbe, 0x06, 0x2d, 0x19, 0x8f, 0xcb, 0xbb, 0x76, 0x51, 0xe6, 0x42, - 0xc1, 0xf0, 0x77, 0xa0, 0xa5, 0x12, 0x02, 0x2b, 0xd0, 0x19, 0x87, 0x01, 0xbb, 0xfc, 0x6e, 0xb9, - 0x9c, 0xb6, 0x43, 0x92, 0x0a, 0xf4, 0x75, 0x68, 0xb9, 0x32, 0xe5, 0x20, 0xa8, 0x5f, 0xef, 0x8a, - 0x14, 0x4d, 0x57, 0xa5, 0x68, 0xba, 0x3d, 0x9e, 0xa2, 0x21, 0x0a, 0x87, 0xb7, 0xa0, 0x29, 0xd2, - 0x02, 0xf8, 0x21, 0x34, 0xe5, 0xcc, 0xde, 0x82, 0x66, 0x9f, 0xd7, 0xc9, 0xe4, 0xc7, 0xc5, 0x7c, - 0x05, 0x65, 0x9e, 0x81, 0x48, 0x30, 0xfe, 0x97, 0x33, 0xd0, 0x14, 0xe1, 0x07, 0xfe, 0x8f, 0x9a, - 0x56, 0x19, 0xff, 0x4d, 0x15, 0x1a, 0x22, 0x7e, 0x5d, 0x82, 0x9a, 0xa7, 0xb4, 0xae, 0x79, 0x2e, - 0x7a, 0x6a, 0xaa, 0x5b, 0xcf, 0x71, 0x3e, 0x79, 0x69, 0x82, 0xee, 0xc7, 0xf4, 0xe4, 0x5b, 0x6c, - 0xca, 0xf5, 0x18, 0xd0, 0x79, 0x68, 0x46, 0x93, 0x3d, 0x76, 0xcf, 0xae, 0xaf, 0xd5, 0xaf, 0x76, - 0x88, 0x2c, 0xe1, 0x67, 0xd0, 0x56, 0x60, 0xb4, 0x0c, 0xf5, 0x43, 0x7a, 0x22, 0x3b, 0x67, 0x3f, - 0xd1, 0x35, 0xb9, 0x74, 0x7a, 0x15, 0xb2, 0x53, 0x25, 0x7a, 0x91, 0xeb, 0xfb, 0x9b, 0x50, 0x67, - 0x8e, 0x26, 0x3b, 0x84, 0xd3, 0xcf, 0x78, 0xa1, 0xb6, 0xeb, 0xd0, 0x10, 0xa9, 0x89, 0x6c, 0x1f, - 0x08, 0xac, 0x43, 0x7a, 0x22, 0xe6, 0xa8, 0x43, 0xf8, 0xef, 0x42, 0x92, 0x1f, 0xd7, 0xe0, 0x8c, - 0x19, 0xfb, 0xe1, 0x27, 0x50, 0x67, 0x91, 0x5a, 0x96, 0xd3, 0x86, 0x96, 0xb3, 0x1f, 0xd3, 0x50, - 0x27, 0xd7, 0x54, 0x91, 0x19, 0x2d, 0xe7, 0xe2, 0xd1, 0x5c, 0x87, 0x88, 0x02, 0xee, 0x42, 0x53, - 0x46, 0xbc, 0x59, 0x26, 0x8d, 0xaf, 0x99, 0xf8, 0x67, 0xd0, 0xd6, 0x01, 0xec, 0xe7, 0xed, 0x3b, - 0x84, 0xb6, 0x8e, 0x54, 0xcf, 0x41, 0x23, 0x0e, 0x62, 0x67, 0xc8, 0xe9, 0xea, 0x44, 0x14, 0xd8, - 0xae, 0xf0, 0xe9, 0x71, 0xbc, 0xae, 0x37, 0x55, 0x9d, 0x24, 0x15, 0x62, 0xcf, 0xd0, 0x23, 0xd1, - 0x5a, 0x17, 0xad, 0xba, 0x22, 0xe9, 0xd3, 0x32, 0xfb, 0xfc, 0xfb, 0x2a, 0x74, 0x74, 0x7a, 0x04, - 0x3f, 0xcf, 0x5f, 0xfc, 0x5b, 0xd0, 0x09, 0x15, 0x46, 0x5a, 0xf0, 0xeb, 0x99, 0xad, 0xa2, 0x38, - 0x48, 0x82, 0xc4, 0x2f, 0x8a, 0xf6, 0xc3, 0xcf, 0xc8, 0x77, 0xad, 0x70, 0x6d, 0x72, 0x2c, 0x07, - 0xff, 0x65, 0x15, 0xda, 0x8a, 0x05, 0x0f, 0xf3, 0x07, 0xb6, 0x06, 0x0b, 0x8a, 0xfe, 0x63, 0x7a, - 0x22, 0x57, 0xc9, 0xac, 0x42, 0x37, 0xa1, 0xad, 0x8a, 0x32, 0xec, 0x2f, 0xd4, 0x54, 0x03, 0xf1, - 0xdd, 0x42, 0x45, 0x4b, 0x3b, 0xc4, 0xff, 0x56, 0x97, 0x4e, 0xf5, 0x3c, 0x34, 0xc3, 0x20, 0x88, - 0xb5, 0xfb, 0x93, 0x25, 0x74, 0x0d, 0x9a, 0xfc, 0x7a, 0xa0, 0x66, 0xee, 0x5c, 0x46, 0x1f, 0x7e, - 0xda, 0x11, 0x89, 0x41, 0xf7, 0x92, 0x7d, 0x5b, 0xe7, 0xf0, 0xf2, 0xa4, 0x67, 0xb2, 0x83, 0xbf, - 0x0e, 0x16, 0x43, 0x72, 0x8b, 0x59, 0x9a, 0xf2, 0x8e, 0xbd, 0x91, 0x13, 0xc6, 0xe2, 0x6c, 0x3d, - 0x19, 0x53, 0xc2, 0xa1, 0xe8, 0x1e, 0x2c, 0x88, 0x34, 0x17, 0xab, 0x8b, 0xec, 0x06, 0xef, 0xf3, - 0x8d, 0x8c, 0xe4, 0xb6, 0x46, 0x10, 0x13, 0x9d, 0xb6, 0x8b, 0xd6, 0xbc, 0x76, 0x81, 0x1e, 0xc2, - 0x99, 0x70, 0x3a, 0x53, 0x70, 0x61, 0x4a, 0x32, 0x81, 0x90, 0x94, 0x00, 0x3e, 0x06, 0xac, 0x78, - 0xbf, 0xed, 0xc5, 0x07, 0xdc, 0x1f, 0xee, 0xd0, 0x50, 0xa8, 0x89, 0x30, 0xb4, 0x85, 0x92, 0x7a, - 0x29, 0x74, 0x19, 0x3d, 0x98, 0xb6, 0xe4, 0xb5, 0x02, 0x8d, 0x35, 0xb3, 0x69, 0xd2, 0x58, 0x5b, - 0xca, 0x32, 0xd4, 0x3d, 0x57, 0x7c, 0x36, 0xe8, 0x10, 0xf6, 0x13, 0xff, 0xe4, 0x1e, 0x34, 0xf8, - 0xf4, 0xe2, 0x9b, 0xc2, 0xb7, 0x25, 0x2b, 0x5f, 0x2d, 0x5f, 0x79, 0xbc, 0x0e, 0x0b, 0x46, 0x2a, - 0x89, 0x39, 0x23, 0xde, 0xa0, 0x07, 0xa1, 0x8a, 0x6c, 0x7c, 0xec, 0x58, 0xdd, 0x71, 0xe2, 0x03, - 0xb9, 0x81, 0x74, 0x19, 0x5f, 0x81, 0xa6, 0xbc, 0xe2, 0x62, 0x99, 0x3a, 0xdb, 0xd2, 0x4a, 0xea, - 0x32, 0xfe, 0x75, 0xe8, 0xe8, 0x8c, 0x13, 0xda, 0x86, 0x33, 0x32, 0xe3, 0x24, 0xee, 0x6b, 0x0c, - 0xbc, 0x64, 0xc4, 0x59, 0x86, 0xae, 0xec, 0x60, 0x8d, 0x99, 0x11, 0xb2, 0xcb, 0x19, 0x4f, 0x5a, - 0x75, 0xb9, 0x51, 0xa4, 0x08, 0xf0, 0x0f, 0xde, 0xe0, 0x9b, 0x17, 0x8f, 0x93, 0xfd, 0x3c, 0xb5, - 0xaf, 0x6e, 0x8b, 0x53, 0xaf, 0x56, 0x9a, 0x23, 0x12, 0xf2, 0xec, 0x6c, 0xe5, 0x87, 0x23, 0xbe, - 0x00, 0x75, 0xb6, 0xcd, 0xcf, 0xa9, 0x33, 0x52, 0x50, 0xca, 0xb3, 0x70, 0x0b, 0x9a, 0x32, 0xdd, - 0x95, 0xed, 0xef, 0x3a, 0x34, 0xf7, 0x45, 0x06, 0xad, 0xe4, 0x34, 0x94, 0x30, 0xfc, 0x10, 0x16, - 0xcc, 0x24, 0x57, 0x8e, 0x5f, 0xe8, 0x1b, 0x69, 0x34, 0xb1, 0x0c, 0x66, 0x15, 0xa6, 0x70, 0x26, - 0x95, 0xc9, 0xca, 0x32, 0x3c, 0xc9, 0x6c, 0x82, 0x5a, 0x26, 0x8b, 0x61, 0x4e, 0xfb, 0x8c, 0xad, - 0xf0, 0x31, 0x9c, 0xcd, 0x66, 0xb3, 0xb2, 0x3d, 0x5d, 0x85, 0xb3, 0x7b, 0x99, 0xdc, 0x99, 0xf0, - 0x63, 0xd9, 0x6a, 0xbc, 0x05, 0x0d, 0x91, 0xa8, 0xc9, 0x52, 0x7c, 0x0d, 0x1a, 0x0e, 0x4f, 0xfc, - 0xd4, 0xb8, 0x67, 0xc1, 0xb9, 0x5a, 0x72, 0x51, 0x22, 0x80, 0xf8, 0xcf, 0x2d, 0xb0, 0x78, 0x5a, - 0x2c, 0x4b, 0xf5, 0x01, 0x58, 0x31, 0x3d, 0x56, 0x57, 0xcc, 0x4b, 0x33, 0x73, 0x6c, 0x22, 0x34, - 0xe0, 0x78, 0xf4, 0x0d, 0x68, 0x44, 0xf1, 0xc9, 0x50, 0x25, 0x73, 0x2f, 0xcf, 0x16, 0xec, 0x31, - 0x28, 0x11, 0x12, 0x4c, 0x94, 0x1b, 0xa8, 0x4c, 0xe3, 0x96, 0x88, 0xf2, 0x9d, 0x41, 0x84, 0x04, - 0x7a, 0x08, 0xad, 0xfe, 0x01, 0xed, 0x1f, 0x52, 0x57, 0xe6, 0x6f, 0xdf, 0x9e, 0x2d, 0xbc, 0x2e, - 0xc0, 0x44, 0x49, 0xb1, 0xbe, 0xfb, 0x7c, 0xca, 0x9b, 0xf3, 0xf4, 0xcd, 0x97, 0x81, 0x08, 0x09, - 0xbc, 0x22, 0x67, 0x30, 0xdf, 0xd6, 0x9f, 0x42, 0x83, 0x0f, 0x12, 0xdd, 0x37, 0x9b, 0x97, 0x8c, - 0x78, 0xbc, 0x70, 0xe3, 0xca, 0xc9, 0xd1, 0x3c, 0x7c, 0xc4, 0x69, 0x9e, 0x85, 0x79, 0x78, 0xe4, - 0x4c, 0x09, 0x9e, 0x37, 0xa1, 0x25, 0x07, 0x9f, 0x56, 0xb8, 0xad, 0x00, 0x17, 0xa1, 0x21, 0xec, - 0x33, 0x7f, 0x3c, 0x3e, 0x34, 0x44, 0x26, 0x6d, 0xda, 0x55, 0x98, 0x06, 0x73, 0x79, 0x76, 0x62, - 0xce, 0xb0, 0x98, 0x92, 0xf9, 0xfb, 0xe3, 0x2a, 0xd4, 0x37, 0xbc, 0xa3, 0xa9, 0xee, 0xee, 0x28, - 0x3b, 0x2b, 0x33, 0xd0, 0x0d, 0xef, 0x28, 0x65, 0x66, 0xf8, 0x89, 0x5a, 0x91, 0x0f, 0xd3, 0x2b, - 0xf2, 0xce, 0xcc, 0x99, 0x34, 0x68, 0x84, 0x62, 0x7f, 0xd8, 0x04, 0x8b, 0xe7, 0x82, 0xf3, 0x76, - 0x0e, 0x3b, 0xdd, 0xcb, 0x14, 0x63, 0xc2, 0x5d, 0xe3, 0x88, 0xe7, 0x3b, 0xc7, 0x89, 0xcb, 0x77, - 0x0e, 0x17, 0x64, 0xf1, 0x23, 0x1f, 0x12, 0x0b, 0xb8, 0x3e, 0x00, 0x6b, 0xe4, 0x8d, 0xa8, 0xdc, - 0x38, 0x25, 0x5d, 0x7e, 0xe2, 0x8d, 0x28, 0xe1, 0x78, 0x26, 0x77, 0xe0, 0x44, 0x07, 0x72, 0xcf, - 0x94, 0xc8, 0x6d, 0x3a, 0xd1, 0x01, 0xe1, 0x78, 0x26, 0xe7, 0x3b, 0x23, 0x2a, 0x37, 0x4b, 0x89, - 0xdc, 0x0b, 0x87, 0xf5, 0xc7, 0xf0, 0x4c, 0x2e, 0xf2, 0xbe, 0x4f, 0xe5, 0xe7, 0x8c, 0x12, 0xb9, - 0x9e, 0xf7, 0x7d, 0x4a, 0x38, 0x3e, 0x71, 0x2a, 0xed, 0xf9, 0xa6, 0xc6, 0x58, 0xed, 0x15, 0xb0, - 0x98, 0x02, 0x05, 0xd6, 0x75, 0x11, 0x1a, 0xdf, 0xf6, 0xdc, 0xf8, 0x20, 0xdd, 0xdc, 0x48, 0x6d, - 0x5e, 0x36, 0xc1, 0xa7, 0xda, 0xbc, 0xe6, 0xfa, 0x08, 0x9e, 0x0d, 0xb0, 0xd8, 0x42, 0x9f, 0xce, - 0xe2, 0x12, 0xfb, 0xf8, 0x5c, 0xae, 0xc4, 0x9c, 0x12, 0xc1, 0xb3, 0x02, 0x16, 0x5b, 0xcb, 0x82, - 0x29, 0x59, 0x01, 0x8b, 0x59, 0x48, 0x71, 0x2b, 0x5b, 0x97, 0x74, 0x6b, 0x5d, 0xb5, 0xfe, 0x5e, - 0x1d, 0x2c, 0xfe, 0x69, 0x23, 0xbb, 0x27, 0xbe, 0x09, 0x8b, 0xb1, 0x13, 0x0e, 0xa8, 0xb8, 0xd7, - 0x6e, 0xa9, 0xaf, 0x84, 0xef, 0xcd, 0xfc, 0x60, 0xd2, 0x7d, 0x69, 0x8a, 0x90, 0x34, 0xc3, 0xfc, - 0x07, 0x0d, 0xa7, 0x4a, 0x1d, 0x34, 0x1f, 0xea, 0x5b, 0x86, 0x55, 0xf2, 0x5d, 0x8d, 0xcb, 0x8a, - 0xbb, 0x8a, 0xbe, 0x72, 0xbc, 0x0d, 0x8b, 0x29, 0xc5, 0xfe, 0x47, 0x1d, 0xbf, 0xa9, 0xac, 0xe0, - 0xb9, 0xad, 0x2f, 0x4b, 0x5f, 0x4d, 0x7b, 0xfe, 0xc2, 0xbb, 0x91, 0x14, 0xfc, 0xb3, 0x06, 0xb4, - 0xf5, 0xa7, 0xa1, 0x9c, 0x8b, 0xdd, 0x24, 0x1c, 0x96, 0x5e, 0xec, 0x94, 0x7c, 0x77, 0x37, 0x1c, - 0x12, 0x26, 0xc1, 0x46, 0x13, 0x7b, 0xb1, 0x9e, 0xf6, 0x77, 0xcb, 0x45, 0x5f, 0x32, 0x38, 0x11, - 0x52, 0x68, 0x1b, 0x16, 0x5c, 0xaa, 0xb3, 0x0b, 0x72, 0xfe, 0xbf, 0x5a, 0x4e, 0xb2, 0x91, 0x08, - 0x11, 0x93, 0x01, 0x6d, 0x41, 0xc7, 0x1b, 0x39, 0x03, 0xba, 0x99, 0xf8, 0xb1, 0xf7, 0xca, 0xe9, - 0xb6, 0x94, 0x08, 0x49, 0xa4, 0x99, 0x6e, 0xfb, 0xce, 0x91, 0xd7, 0x0f, 0x7c, 0x4e, 0xd6, 0x9c, - 0x57, 0xb7, 0xa7, 0x89, 0x10, 0x31, 0x19, 0xd0, 0x5d, 0x79, 0x12, 0xb4, 0x72, 0x9f, 0x20, 0xe4, - 0x4d, 0x95, 0x3e, 0x0d, 0xd8, 0x05, 0x7a, 0x37, 0x1c, 0x16, 0xbb, 0x2d, 0x3e, 0xab, 0x05, 0xcd, - 0x97, 0x61, 0xc1, 0x98, 0xaf, 0x02, 0xd0, 0x5b, 0xd0, 0xd1, 0xb3, 0x50, 0xcc, 0x63, 0x8c, 0xad, - 0x00, 0x74, 0x5f, 0xfa, 0xb6, 0x5b, 0x69, 0x33, 0x7f, 0x33, 0x63, 0xe6, 0xcc, 0xb0, 0x77, 0x42, - 0xca, 0xb3, 0xf2, 0xa6, 0x53, 0xfb, 0x27, 0x9b, 0x1f, 0xa3, 0x43, 0xfc, 0x3c, 0x49, 0x52, 0x7e, - 0xfe, 0x24, 0x19, 0x7e, 0x09, 0x67, 0x37, 0x9c, 0xd8, 0xd9, 0x73, 0x22, 0x2a, 0xbf, 0x26, 0xe5, - 0xb1, 0x86, 0xa2, 0x49, 0xe7, 0x4a, 0x8a, 0x58, 0x25, 0xee, 0x97, 0x81, 0xcb, 0xff, 0x9f, 0xc0, - 0xe5, 0x2f, 0x8a, 0x02, 0x97, 0x79, 0xee, 0xa1, 0xcc, 0xe0, 0xa6, 0x22, 0x97, 0xbb, 0xe9, 0x03, - 0xe5, 0x4a, 0x89, 0x64, 0xea, 0x44, 0xb9, 0x9b, 0x0e, 0x5d, 0xca, 0x64, 0x53, 0xb1, 0xcb, 0x47, - 0xd9, 0xd8, 0xe5, 0x9d, 0x12, 0xe9, 0xa9, 0xe0, 0xe5, 0x6e, 0x3a, 0x78, 0x29, 0xeb, 0xfd, 0x17, - 0x38, 0x7a, 0xf9, 0x93, 0x82, 0x68, 0xe2, 0x1b, 0xe9, 0x68, 0x62, 0x86, 0xd5, 0x7c, 0x51, 0xe1, - 0xc4, 0x9f, 0x16, 0x85, 0x13, 0xb7, 0x53, 0xe1, 0xc4, 0x0c, 0xcd, 0xb2, 0xf1, 0xc4, 0xdd, 0x74, - 0x3c, 0x71, 0xa5, 0x44, 0x32, 0x15, 0x50, 0xdc, 0x4e, 0x05, 0x14, 0x65, 0x9d, 0x1a, 0x11, 0xc5, - 0xed, 0x54, 0x44, 0x51, 0x26, 0x68, 0x84, 0x14, 0xb7, 0x53, 0x21, 0x45, 0x99, 0xa0, 0x11, 0x53, - 0xdc, 0x4e, 0xc5, 0x14, 0x65, 0x82, 0x46, 0x50, 0x71, 0x37, 0x1d, 0x54, 0x94, 0xcf, 0xcf, 0x2f, - 0xa3, 0x8a, 0xff, 0x9b, 0xa8, 0xe2, 0xf7, 0x8b, 0xa2, 0x0a, 0x92, 0x1f, 0x55, 0x5c, 0x2b, 0x5e, - 0xc9, 0xf2, 0xb0, 0x62, 0xfe, 0x53, 0x60, 0x3a, 0xae, 0xb8, 0x9f, 0x89, 0x2b, 0xde, 0x2e, 0x11, - 0xfe, 0x39, 0x0d, 0x2c, 0x7e, 0x34, 0x2b, 0xb0, 0xb8, 0x63, 0x06, 0x16, 0x33, 0x4e, 0xb2, 0xe9, - 0xc8, 0xe2, 0x41, 0x3a, 0xb2, 0xb8, 0x3a, 0x87, 0x6c, 0x2a, 0xb4, 0xd8, 0xc9, 0x0b, 0x2d, 0xba, - 0x73, 0xb0, 0x14, 0xc6, 0x16, 0xcf, 0xa6, 0x63, 0x8b, 0x6b, 0x73, 0xf0, 0xe5, 0x06, 0x17, 0x3b, - 0x79, 0xc1, 0xc5, 0x3c, 0xda, 0x15, 0x46, 0x17, 0xf7, 0x52, 0xd1, 0xc5, 0xbb, 0xf3, 0x4c, 0xd7, - 0x2f, 0x5e, 0x78, 0xf1, 0x8f, 0x2d, 0x68, 0xab, 0x07, 0x3f, 0xf8, 0x87, 0x55, 0x68, 0xa9, 0x57, - 0x59, 0x59, 0xbb, 0x3d, 0x0f, 0x4d, 0x86, 0xd1, 0xdf, 0x94, 0x65, 0x09, 0x3d, 0x00, 0x8b, 0xfd, - 0x92, 0x46, 0xf9, 0x95, 0xd9, 0x87, 0xba, 0xf9, 0x9a, 0x8a, 0x70, 0x39, 0xc6, 0x1b, 0xec, 0xef, - 0x47, 0x34, 0xe6, 0x06, 0xb9, 0x48, 0x64, 0x89, 0x8d, 0x76, 0xe8, 0x8d, 0xbc, 0x98, 0xdb, 0xd5, - 0x22, 0x11, 0x05, 0xfc, 0x3e, 0x80, 0xf1, 0xa6, 0x6b, 0x4e, 0x1d, 0xf1, 0x2d, 0xe8, 0x24, 0xaf, - 0xb4, 0x72, 0xbe, 0x96, 0x0b, 0x98, 0x8a, 0x22, 0x54, 0x11, 0xdf, 0x84, 0x4e, 0xf2, 0x04, 0x2e, - 0xa7, 0xaf, 0x88, 0x37, 0x4a, 0x29, 0x59, 0xc2, 0x8f, 0x61, 0x29, 0xf3, 0x48, 0xeb, 0xf4, 0xdf, - 0x62, 0x63, 0x58, 0x30, 0x1f, 0x5f, 0xfd, 0x2f, 0x7d, 0x3d, 0xfe, 0x6d, 0x00, 0xe3, 0x89, 0xe6, - 0xbc, 0xeb, 0x6f, 0x44, 0x89, 0xf5, 0xf9, 0xa2, 0xc4, 0xe4, 0x8d, 0x41, 0x4b, 0x2c, 0x2d, 0x2f, - 0xe0, 0x3f, 0xaa, 0xc2, 0x62, 0xfa, 0x1d, 0xe5, 0x17, 0xa8, 0xc2, 0x3b, 0xb0, 0xe4, 0xf1, 0x4e, - 0xf4, 0x3f, 0x14, 0x08, 0x33, 0xcb, 0xd4, 0xe2, 0xef, 0x69, 0x9d, 0xe4, 0xd3, 0x9d, 0x9f, 0x41, - 0x27, 0x6b, 0xce, 0xe0, 0xf9, 0x9b, 0xba, 0xaf, 0xd3, 0x99, 0x37, 0xb3, 0xe0, 0x90, 0x7f, 0xcc, - 0x75, 0xed, 0xa6, 0xb0, 0x60, 0x59, 0xc4, 0xff, 0x5e, 0x03, 0x6b, 0x37, 0xa2, 0x21, 0xfe, 0xd7, - 0x9a, 0xfa, 0xa6, 0x7b, 0x07, 0x2c, 0xfe, 0x12, 0xcf, 0x78, 0x25, 0x55, 0xcd, 0xbc, 0x92, 0x4a, - 0xfd, 0xb3, 0x53, 0xf2, 0x4a, 0xea, 0x0e, 0x58, 0xfc, 0xed, 0xdd, 0xe9, 0x25, 0x7f, 0x50, 0x85, - 0x4e, 0xf2, 0x0e, 0xee, 0xd4, 0xf2, 0xe6, 0x37, 0xe4, 0x5a, 0xfa, 0x1b, 0xf2, 0x57, 0xa0, 0x11, - 0xf2, 0xaf, 0xbd, 0xc2, 0xca, 0xb3, 0x5f, 0xa6, 0x79, 0x87, 0x44, 0x40, 0x30, 0x85, 0x05, 0xf3, - 0x95, 0xdf, 0xe9, 0xd5, 0xb8, 0x22, 0xdf, 0x58, 0x6f, 0xb9, 0xd1, 0xa3, 0x30, 0x74, 0x4e, 0xe4, - 0xce, 0x4f, 0x57, 0xb2, 0xbb, 0xda, 0x8e, 0xe7, 0x0f, 0xf2, 0x1f, 0xa7, 0xe1, 0xbf, 0xaa, 0x42, - 0x4b, 0xbe, 0x99, 0xc3, 0xb7, 0xa1, 0xfe, 0x82, 0xbe, 0x62, 0x8a, 0xc8, 0x57, 0x73, 0x53, 0x8a, - 0x7c, 0xc2, 0x47, 0x21, 0xf1, 0x44, 0xc1, 0xf0, 0x5d, 0xfd, 0x92, 0xec, 0xf4, 0xb2, 0x77, 0xc0, - 0xe2, 0x8f, 0xf3, 0x4e, 0x2f, 0xf9, 0xbb, 0x6d, 0x68, 0x8a, 0x57, 0x79, 0xf8, 0xbf, 0x5a, 0xd0, - 0x14, 0x0f, 0xf6, 0xd0, 0x03, 0x68, 0x45, 0x93, 0xd1, 0xc8, 0x09, 0x4f, 0xec, 0xfc, 0x7f, 0x9a, - 0x4b, 0xbd, 0xef, 0xeb, 0xf6, 0x04, 0x96, 0x28, 0x21, 0x74, 0x0b, 0xac, 0xbe, 0xb3, 0x4f, 0xa7, - 0xd2, 0x2f, 0x79, 0xc2, 0xeb, 0xce, 0x3e, 0x25, 0x1c, 0x8e, 0x3e, 0x82, 0xb6, 0x5c, 0x16, 0xb5, - 0xe9, 0x67, 0xf7, 0xab, 0x16, 0x53, 0x4b, 0xe1, 0x67, 0xd0, 0x92, 0xca, 0xa0, 0x87, 0xd0, 0x8c, - 0xc4, 0x13, 0xc5, 0xec, 0x4d, 0x31, 0x77, 0x08, 0x27, 0x7e, 0x5f, 0xd4, 0x10, 0x29, 0x86, 0x7f, - 0x5c, 0x03, 0x8b, 0x29, 0xf7, 0xb9, 0x99, 0xd0, 0x2a, 0xc0, 0xd0, 0x89, 0xe2, 0x9d, 0xc9, 0x70, - 0x48, 0x5d, 0xf9, 0xd4, 0xca, 0xa8, 0x41, 0x57, 0xe1, 0xac, 0x28, 0x45, 0x07, 0xbd, 0x49, 0xbf, - 0x4f, 0xa9, 0x78, 0xcb, 0xd5, 0x26, 0xd9, 0x6a, 0xf4, 0x08, 0x1a, 0xfc, 0x7f, 0x78, 0xe4, 0x45, - 0xef, 0xbd, 0xd2, 0x99, 0xed, 0xee, 0x78, 0xbe, 0xd4, 0x46, 0x48, 0xe2, 0x00, 0x3a, 0xba, 0x8e, - 0x6d, 0xc2, 0xb1, 0xe7, 0xfb, 0x9e, 0x3f, 0x90, 0x16, 0xad, 0x8a, 0xcc, 0x2f, 0xb1, 0x9f, 0x52, - 0xdf, 0x06, 0x91, 0x25, 0x56, 0xbf, 0xef, 0x78, 0x43, 0xa9, 0x62, 0x83, 0xc8, 0x12, 0x63, 0x9a, - 0x70, 0xf3, 0x15, 0x6f, 0xc2, 0xea, 0x44, 0x15, 0xf1, 0xa7, 0x55, 0xfd, 0xc8, 0x33, 0xef, 0xad, - 0x15, 0x0f, 0x80, 0x85, 0x07, 0x10, 0xb1, 0xed, 0x8a, 0x79, 0x01, 0x15, 0x6f, 0xda, 0x8c, 0x2b, - 0x25, 0xbb, 0x5a, 0xf8, 0x43, 0xcf, 0x17, 0x61, 0x7a, 0x9b, 0xc8, 0x52, 0x66, 0x8e, 0x1b, 0x53, - 0x73, 0x2c, 0xdb, 0x9f, 0xb8, 0x5e, 0xcc, 0x5d, 0xaa, 0x6e, 0x17, 0x35, 0xe8, 0x3e, 0xb4, 0x5c, - 0x7a, 0xe4, 0xf5, 0xa9, 0x7a, 0x2c, 0x74, 0x79, 0xe6, 0xdc, 0x6e, 0x70, 0x2c, 0x51, 0x32, 0x38, - 0x86, 0xa6, 0xa8, 0xd2, 0x43, 0xaa, 0x1a, 0x43, 0x4a, 0x94, 0xae, 0xcd, 0x50, 0xba, 0x5e, 0xa2, - 0xb4, 0x95, 0x55, 0xfa, 0xd2, 0xc7, 0x00, 0x89, 0xb9, 0xa1, 0x05, 0x68, 0xed, 0xfa, 0x87, 0x7e, - 0xf0, 0xca, 0x5f, 0xae, 0xb0, 0xc2, 0xf6, 0xfe, 0x3e, 0xeb, 0x65, 0xb9, 0xca, 0x0a, 0x0c, 0xe7, - 0xf9, 0x83, 0xe5, 0x1a, 0x02, 0x68, 0xb2, 0x02, 0x75, 0x97, 0xeb, 0xec, 0xf7, 0x53, 0xbe, 0x7e, - 0xcb, 0xd6, 0xa5, 0xdf, 0x62, 0x47, 0x55, 0x34, 0x0e, 0xfc, 0x88, 0x7e, 0x51, 0xff, 0x81, 0x5c, - 0xf8, 0xbf, 0xc4, 0x97, 0x7e, 0x54, 0x87, 0x06, 0x77, 0x51, 0xf8, 0x87, 0x75, 0xed, 0x4c, 0x73, - 0x12, 0xce, 0x49, 0x5a, 0x68, 0xc9, 0x78, 0x94, 0x95, 0x72, 0x6e, 0x66, 0x3a, 0xe8, 0x86, 0x99, - 0x0e, 0x5a, 0x32, 0x9e, 0x29, 0xa7, 0x25, 0x52, 0x69, 0xa0, 0x7b, 0xd0, 0x1e, 0x87, 0xc1, 0x20, - 0x64, 0x5e, 0xd4, 0xca, 0xfc, 0x4b, 0x5b, 0x5a, 0x6c, 0x47, 0xc2, 0x88, 0x16, 0xc0, 0x2f, 0xa0, - 0xad, 0x6a, 0x0b, 0x9e, 0x5d, 0x22, 0xb0, 0xdc, 0x40, 0x5a, 0x42, 0x9d, 0xf0, 0xdf, 0x6c, 0x5e, - 0xe4, 0x0c, 0x4a, 0x83, 0x57, 0xc5, 0x4b, 0xdb, 0x32, 0x12, 0x58, 0x84, 0xce, 0x46, 0x18, 0x8c, - 0xf9, 0x23, 0xac, 0xe5, 0x0a, 0x5b, 0xb7, 0xad, 0xd1, 0x38, 0x08, 0xe3, 0xe5, 0x2a, 0xfb, 0xfd, - 0xe4, 0x98, 0xff, 0xae, 0xa1, 0x33, 0xd0, 0xee, 0x39, 0x47, 0x94, 0xc1, 0x96, 0xeb, 0x08, 0xb1, - 0x6b, 0x6b, 0x3f, 0x38, 0xa2, 0xa1, 0xdc, 0x7f, 0xcb, 0xd6, 0xa5, 0x47, 0x2a, 0x0f, 0xd3, 0x06, - 0xeb, 0x45, 0xe0, 0x53, 0x61, 0x2a, 0x64, 0xc2, 0x77, 0xfd, 0x72, 0x95, 0x55, 0xb3, 0xa3, 0x44, - 0x70, 0xad, 0x3b, 0x7e, 0x9f, 0x0e, 0xb9, 0xa5, 0x74, 0xa0, 0xf1, 0x24, 0x0c, 0x83, 0x70, 0xd9, - 0x7a, 0xbc, 0xf2, 0x93, 0x4f, 0x57, 0xab, 0x3f, 0xfd, 0x74, 0xb5, 0xfa, 0xcf, 0x9f, 0xae, 0x56, - 0xff, 0xe0, 0xb3, 0xd5, 0xca, 0x4f, 0x3f, 0x5b, 0xad, 0xfc, 0xc3, 0x67, 0xab, 0x95, 0xef, 0xd4, - 0xc6, 0x7b, 0x7b, 0x4d, 0x7e, 0x17, 0xba, 0xf9, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4d, 0xf3, - 0x50, 0xeb, 0x2f, 0x3f, 0x00, 0x00, + // 3925 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x4d, 0x8c, 0x1c, 0x49, + 0x56, 0xae, 0x9f, 0xac, 0xbf, 0xd7, 0xee, 0x76, 0x13, 0xe3, 0xf5, 0xe4, 0x86, 0xdb, 0x3d, 0x3d, + 0xb6, 0x67, 0xc6, 0xbb, 0xe3, 0x2d, 0xef, 0xda, 0xe3, 0xb1, 0xd7, 0x33, 0xb6, 0xc7, 0xee, 0x6e, + 0xab, 0xcb, 0xe3, 0xb1, 0x7b, 0xa3, 0xdc, 0xbb, 0xb0, 0x8b, 0x10, 0xd9, 0x95, 0xd1, 0xd5, 0x39, + 0x5d, 0x95, 0x59, 0xca, 0xcc, 0x6e, 0x77, 0x0f, 0x42, 0x42, 0x70, 0x41, 0x48, 0x48, 0xc0, 0x01, + 0x38, 0x20, 0xed, 0x81, 0xd3, 0x9e, 0xe1, 0xc0, 0x8d, 0x03, 0x5a, 0x09, 0x10, 0x87, 0xbd, 0x2d, + 0x12, 0x1c, 0xd0, 0x0c, 0x07, 0x24, 0x4e, 0x5c, 0xb8, 0x21, 0xa1, 0xf8, 0xcd, 0xc8, 0xac, 0xcc, + 0xca, 0xea, 0x1d, 0x06, 0x58, 0xed, 0x9c, 0xba, 0x22, 0xe2, 0x7b, 0x5f, 0xbc, 0x88, 0x78, 0xf1, + 0x22, 0xde, 0xcb, 0x68, 0x38, 0x3f, 0xd9, 0xbd, 0x3e, 0x09, 0x83, 0x38, 0x88, 0xae, 0xd3, 0x23, + 0xea, 0xc7, 0x51, 0x97, 0x97, 0x50, 0xcb, 0xf1, 0x4f, 0xe2, 0x93, 0x09, 0xc5, 0x57, 0x26, 0x07, + 0xc3, 0xeb, 0x23, 0x6f, 0xf7, 0xfa, 0x64, 0xf7, 0xfa, 0x38, 0x70, 0xe9, 0x48, 0xc1, 0x79, 0x41, + 0xc2, 0xf1, 0xca, 0x30, 0x08, 0x86, 0x23, 0x2a, 0xda, 0x76, 0x0f, 0xf7, 0xae, 0x47, 0x71, 0x78, + 0x38, 0x88, 0x45, 0xeb, 0xa5, 0x7f, 0xf8, 0x04, 0x1a, 0x9b, 0x8c, 0x1d, 0xdd, 0x80, 0xf6, 0x98, + 0x46, 0x91, 0x33, 0xa4, 0x91, 0x5d, 0x5d, 0xab, 0x5f, 0x5d, 0xb8, 0x71, 0xbe, 0x2b, 0x7b, 0xea, + 0x72, 0x44, 0xf7, 0x23, 0xd1, 0x4c, 0x34, 0x0e, 0xad, 0x40, 0x67, 0x10, 0xf8, 0x31, 0x3d, 0x8e, + 0x7b, 0xae, 0x5d, 0x5b, 0xab, 0x5e, 0xed, 0x90, 0xa4, 0x02, 0xbd, 0x03, 0x1d, 0xcf, 0xf7, 0x62, + 0xcf, 0x89, 0x83, 0xd0, 0xae, 0xaf, 0x55, 0x53, 0x94, 0x5c, 0xc7, 0xee, 0xc3, 0xc1, 0x20, 0x38, + 0xf4, 0x63, 0x92, 0x00, 0x91, 0x0d, 0xad, 0x38, 0x74, 0x06, 0xb4, 0xe7, 0xda, 0x16, 0x67, 0x54, + 0x45, 0xfc, 0xd7, 0x6b, 0xd0, 0x92, 0x3a, 0xa0, 0x07, 0xb0, 0xe0, 0x08, 0xd9, 0xfe, 0x7e, 0xf0, + 0xd2, 0xae, 0x72, 0xf6, 0x0b, 0x19, 0x85, 0x25, 0x7b, 0x97, 0x41, 0xb6, 0x2a, 0xc4, 0x94, 0x40, + 0x3d, 0x58, 0x92, 0xc5, 0x0d, 0x1a, 0x3b, 0xde, 0x28, 0xb2, 0xff, 0x4e, 0x90, 0xac, 0x16, 0x90, + 0x48, 0xd8, 0x56, 0x85, 0x64, 0x04, 0xd1, 0xaf, 0xc0, 0x2b, 0xb2, 0x66, 0x3d, 0xf0, 0xf7, 0xbc, + 0xe1, 0xce, 0xc4, 0x75, 0x62, 0x6a, 0xff, 0xbd, 0xe0, 0xbb, 0x52, 0xc0, 0x27, 0xb0, 0x5d, 0x01, + 0xde, 0xaa, 0x90, 0x3c, 0x0e, 0xf4, 0x1c, 0x96, 0x83, 0xdd, 0x8f, 0xe9, 0x40, 0xf5, 0xd5, 0xa7, + 0xb1, 0xbd, 0xcc, 0x69, 0x5f, 0xcf, 0xd0, 0x3e, 0xe7, 0x30, 0xa5, 0x65, 0xb7, 0x4f, 0xe3, 0xad, + 0x0a, 0x99, 0x12, 0x46, 0x3b, 0x80, 0x52, 0x75, 0x0f, 0xc7, 0xd4, 0x77, 0xed, 0x1b, 0x9c, 0xf2, + 0xf2, 0x6c, 0x4a, 0x0e, 0xdd, 0xaa, 0x90, 0x1c, 0x82, 0x29, 0xda, 0x1d, 0x3f, 0xa2, 0xb1, 0x7d, + 0x73, 0x1e, 0x5a, 0x0e, 0x9d, 0xa2, 0xe5, 0xb5, 0x09, 0x2d, 0xa1, 0x23, 0x27, 0xf6, 0x02, 0x9f, + 0x4f, 0xc0, 0xf9, 0x59, 0xb4, 0x1a, 0x29, 0xa7, 0x20, 0x87, 0x00, 0xfd, 0x00, 0xce, 0x65, 0x6a, + 0xc5, 0x34, 0xbc, 0xc3, 0x89, 0xdf, 0x28, 0x23, 0x56, 0x13, 0x91, 0x4b, 0x82, 0x7e, 0x0d, 0xbe, + 0x92, 0xa9, 0x27, 0x74, 0x1c, 0x1c, 0x51, 0xfb, 0x16, 0x67, 0x7f, 0xb3, 0x8c, 0x5d, 0xa0, 0xb7, + 0x2a, 0x24, 0x9f, 0x06, 0x3d, 0x82, 0x33, 0xaa, 0x81, 0xd3, 0xbe, 0xcb, 0x69, 0x57, 0x8a, 0x68, + 0x25, 0x59, 0x4a, 0x06, 0xbd, 0x0f, 0x20, 0xca, 0x7c, 0xf3, 0xac, 0x72, 0x06, 0x9c, 0xcf, 0x20, + 0xf7, 0x8e, 0x81, 0x47, 0x04, 0xce, 0x46, 0x87, 0xbb, 0xd1, 0x20, 0xf4, 0x26, 0x4c, 0xb1, 0x87, + 0xae, 0x6b, 0xbf, 0x3f, 0x6b, 0x6c, 0x7d, 0x03, 0xdc, 0x7d, 0xe8, 0xb2, 0xa9, 0xcb, 0x12, 0xa0, + 0x1f, 0x00, 0x32, 0xab, 0xe4, 0xd8, 0xee, 0x71, 0xda, 0xaf, 0xcd, 0x41, 0xab, 0x07, 0x9a, 0x43, + 0x83, 0x1c, 0x38, 0x67, 0xd6, 0x6e, 0x07, 0x91, 0xc7, 0xfe, 0xda, 0xf7, 0x39, 0xfd, 0xdb, 0x73, + 0xd0, 0x2b, 0x11, 0xb6, 0xea, 0x79, 0x54, 0xd9, 0x2e, 0xd6, 0xd9, 0x4e, 0xa6, 0x61, 0x64, 0x3f, + 0x98, 0xbb, 0x0b, 0x25, 0x92, 0xed, 0x42, 0xd5, 0xa3, 0x77, 0xa1, 0xbd, 0x3b, 0x0a, 0x06, 0x07, + 0x6c, 0xbe, 0x6b, 0x9c, 0xd6, 0xce, 0xd0, 0x3e, 0x62, 0xcd, 0x72, 0x86, 0x35, 0x96, 0xb9, 0x4a, + 0xfe, 0x7b, 0x83, 0x8e, 0x68, 0x4c, 0xa5, 0x23, 0xbe, 0x90, 0x2b, 0x2a, 0x20, 0xcc, 0x55, 0x1a, + 0x12, 0x68, 0x03, 0x16, 0xf6, 0xbc, 0x11, 0x8d, 0x76, 0x26, 0xa3, 0xc0, 0x11, 0x5e, 0x79, 0xe1, + 0xc6, 0x5a, 0x2e, 0xc1, 0xe3, 0x04, 0xc7, 0x58, 0x0c, 0x31, 0x74, 0x1f, 0x3a, 0x63, 0x27, 0x3c, + 0x88, 0x7a, 0xfe, 0x5e, 0x60, 0x37, 0x72, 0x5d, 0xad, 0xe0, 0xf8, 0x48, 0xa1, 0xb6, 0x2a, 0x24, + 0x11, 0x61, 0x0e, 0x9b, 0x2b, 0xd5, 0xa7, 0xf1, 0x63, 0x8f, 0x8e, 0xdc, 0xc8, 0x6e, 0x72, 0x92, + 0xd7, 0x72, 0x49, 0xfa, 0x34, 0xee, 0x0a, 0x18, 0x73, 0xd8, 0x69, 0x41, 0xf4, 0xcb, 0xf0, 0x8a, + 0xaa, 0x59, 0xdf, 0xf7, 0x46, 0x6e, 0x48, 0xfd, 0x9e, 0x1b, 0xd9, 0xad, 0x5c, 0x7f, 0x9d, 0xf0, + 0x19, 0x58, 0xe6, 0xaf, 0x73, 0x28, 0x98, 0x67, 0x51, 0xd5, 0x84, 0x46, 0x71, 0xe8, 0x0d, 0xf8, + 0xd6, 0xb5, 0xdb, 0xb9, 0x9e, 0x25, 0xa1, 0x36, 0xc1, 0xcc, 0x00, 0xf2, 0x48, 0x90, 0x0b, 0xaf, + 0xaa, 0xfa, 0x47, 0xce, 0xe0, 0x60, 0x18, 0x06, 0x87, 0xbe, 0xbb, 0x1e, 0x8c, 0x82, 0xd0, 0xee, + 0x70, 0xfe, 0xab, 0x85, 0xfc, 0x19, 0xfc, 0x56, 0x85, 0x14, 0x51, 0xa1, 0x75, 0x38, 0xa3, 0x9a, + 0x5e, 0xd0, 0xe3, 0xd8, 0x06, 0x4e, 0x7d, 0xb1, 0x90, 0x9a, 0x81, 0x98, 0x83, 0x31, 0x85, 0x4c, + 0x12, 0x66, 0x12, 0xf6, 0x42, 0x09, 0x09, 0x03, 0x99, 0x24, 0xac, 0x6c, 0x92, 0x3c, 0xf5, 0xfc, + 0x03, 0x7b, 0xb1, 0x84, 0x84, 0x81, 0x4c, 0x12, 0x56, 0x66, 0x27, 0xa8, 0x1e, 0x69, 0x10, 0x1c, + 0x30, 0x7b, 0xb2, 0x97, 0x72, 0x4f, 0x50, 0x63, 0xb6, 0x24, 0x90, 0x9d, 0xa0, 0x59, 0x61, 0xf4, + 0x18, 0x16, 0x55, 0xdd, 0xc3, 0x91, 0x37, 0xf4, 0xed, 0xb3, 0x33, 0x6c, 0x99, 0xb1, 0x71, 0xd4, + 0x56, 0x85, 0xa4, 0xc5, 0xd0, 0x07, 0x72, 0x5b, 0xf6, 0x69, 0xbc, 0xe1, 0x1d, 0xd9, 0xbf, 0x94, + 0xeb, 0xc6, 0x13, 0x96, 0x0d, 0xef, 0x48, 0xef, 0x4b, 0x21, 0x62, 0x0e, 0x4d, 0x1d, 0x12, 0xf6, + 0x57, 0x4a, 0x86, 0xa6, 0x80, 0xe6, 0xd0, 0x54, 0x9d, 0x39, 0xb4, 0xa7, 0x4e, 0x4c, 0x8f, 0xed, + 0xaf, 0x96, 0x0c, 0x8d, 0xa3, 0xcc, 0xa1, 0xf1, 0x0a, 0x6d, 0xa8, 0x1b, 0x4e, 0xec, 0x1c, 0x79, + 0xf4, 0x25, 0xa1, 0x83, 0x20, 0x74, 0xf9, 0xd9, 0x8d, 0x66, 0x18, 0xaa, 0x82, 0x77, 0x13, 0xbc, + 0x36, 0xd4, 0x69, 0x2a, 0x34, 0x06, 0x9c, 0xd7, 0x24, 0x6f, 0x5f, 0x38, 0xd7, 0xf1, 0xe6, 0x77, + 0xa4, 0xef, 0x60, 0x33, 0x08, 0x8b, 0xba, 0xeb, 0xf9, 0x11, 0x0d, 0x63, 0xfb, 0xc2, 0x29, 0xba, + 0x13, 0x22, 0x45, 0xdd, 0x89, 0xd6, 0xa2, 0xee, 0xa4, 0x13, 0x5f, 0x39, 0x45, 0x77, 0xda, 0xa9, + 0xcf, 0x20, 0x44, 0x0e, 0x9c, 0x4f, 0xb5, 0xf6, 0x83, 0xc3, 0x70, 0x40, 0xd9, 0x8a, 0x5d, 0xe6, + 0x5d, 0xbd, 0x35, 0xbb, 0x2b, 0x0d, 0xdf, 0xaa, 0x90, 0x02, 0x22, 0xed, 0x1b, 0x55, 0xcb, 0x77, + 0x59, 0x2b, 0x8d, 0xed, 0x57, 0x66, 0xf8, 0x46, 0xdd, 0x81, 0x04, 0x6b, 0xdf, 0x98, 0x21, 0x99, + 0x32, 0x39, 0x56, 0x2f, 0xe7, 0xea, 0xdc, 0x3c, 0x26, 0x97, 0xe0, 0xa7, 0x4c, 0x2e, 0x69, 0x9a, + 0x9a, 0x25, 0xd6, 0xf4, 0x3c, 0x74, 0x69, 0x68, 0x5f, 0x9c, 0x67, 0x96, 0x34, 0x7c, 0x6a, 0x96, + 0x74, 0x0b, 0x9a, 0xc0, 0x85, 0xcc, 0x32, 0x89, 0xcd, 0x29, 0x07, 0x63, 0xf3, 0x7e, 0xae, 0x95, + 0x2d, 0xbc, 0x29, 0xb3, 0x55, 0x21, 0xb3, 0x28, 0xd1, 0x10, 0xec, 0xdc, 0x66, 0xb6, 0x36, 0xaf, + 0xe6, 0x5e, 0xc0, 0x0a, 0xba, 0x13, 0xeb, 0x53, 0x48, 0xc6, 0xdc, 0xcb, 0x61, 0x44, 0x43, 0x2e, + 0xfd, 0x24, 0xf0, 0x7c, 0xfb, 0xb5, 0x5c, 0xf7, 0xb2, 0x13, 0xd1, 0x50, 0x76, 0xc1, 0x50, 0xcc, + 0xbd, 0xa4, 0xc4, 0x52, 0x3c, 0x4f, 0xe9, 0x5e, 0x6c, 0xaf, 0x95, 0xf1, 0x30, 0x54, 0x8a, 0x87, + 0x55, 0x30, 0x83, 0xd4, 0x15, 0x7d, 0x3a, 0x62, 0xd7, 0x63, 0xc7, 0x1f, 0x52, 0xfb, 0xf5, 0x5c, + 0x83, 0x34, 0xe8, 0x0c, 0x30, 0x33, 0xc8, 0x3c, 0x12, 0x16, 0xba, 0xe8, 0x7a, 0x76, 0x24, 0x0a, + 0xea, 0x4b, 0xb9, 0xa1, 0x8b, 0x41, 0xad, 0xa1, 0xec, 0x2a, 0x3b, 0x4d, 0x80, 0xbe, 0x06, 0xd6, + 0xc4, 0xf3, 0x87, 0xb6, 0xcb, 0x89, 0x5e, 0xc9, 0x10, 0x6d, 0x7b, 0xfe, 0x70, 0xab, 0x42, 0x38, + 0x84, 0x5d, 0xf2, 0x27, 0x61, 0x30, 0xa0, 0x51, 0xf4, 0x8c, 0xbe, 0xb4, 0x69, 0xee, 0x25, 0x7f, + 0x5b, 0x00, 0xba, 0xcf, 0x28, 0xbf, 0xe4, 0x27, 0x78, 0xb4, 0x09, 0x8b, 0xb2, 0x24, 0x1d, 0xea, + 0x5e, 0xee, 0xe9, 0xab, 0x08, 0xb4, 0x0b, 0x4d, 0x4b, 0xb1, 0xcb, 0xa7, 0xac, 0xd8, 0x08, 0x7c, + 0x6a, 0x0f, 0x73, 0x2f, 0x9f, 0x8a, 0x84, 0x41, 0xd8, 0x21, 0x67, 0x48, 0xb0, 0x70, 0x27, 0xde, + 0x0f, 0xa9, 0xe3, 0xf6, 0x63, 0x27, 0x3e, 0x8c, 0x6c, 0x3f, 0xf7, 0x9c, 0x14, 0x8d, 0xdd, 0x17, + 0x1c, 0xc9, 0xee, 0x00, 0xa6, 0xcc, 0xa3, 0x16, 0x34, 0x8e, 0x9c, 0xd1, 0x21, 0xc5, 0xbf, 0x55, + 0x83, 0x96, 0x8c, 0xbf, 0xf1, 0x33, 0xb0, 0x78, 0x34, 0x73, 0x0e, 0x1a, 0x9e, 0xef, 0xd2, 0x63, + 0x9e, 0x43, 0x68, 0x10, 0x51, 0x40, 0xdf, 0x84, 0x96, 0x8c, 0xc7, 0xe5, 0x5d, 0xbb, 0x28, 0x73, + 0xa1, 0x60, 0xf8, 0xfb, 0xd0, 0x52, 0x09, 0x81, 0x15, 0xe8, 0x4c, 0xc2, 0x80, 0x5d, 0x7e, 0x7b, + 0x2e, 0xa7, 0xed, 0x90, 0xa4, 0x02, 0x7d, 0x0b, 0x5a, 0xae, 0x4c, 0x39, 0x08, 0xea, 0x57, 0xbb, + 0x22, 0x45, 0xd3, 0x55, 0x29, 0x9a, 0x6e, 0x9f, 0xa7, 0x68, 0x88, 0xc2, 0xe1, 0x1e, 0x34, 0x45, + 0x5a, 0x00, 0x3f, 0x80, 0xa6, 0x9c, 0xd9, 0x5b, 0xd0, 0x1c, 0xf0, 0x3a, 0x99, 0xfc, 0xb8, 0x98, + 0xaf, 0xa0, 0xcc, 0x33, 0x10, 0x09, 0xc6, 0xff, 0x7a, 0x06, 0x9a, 0x22, 0xfc, 0xc0, 0xff, 0x59, + 0xd3, 0x2a, 0xe3, 0xbf, 0xa9, 0x42, 0x43, 0xc4, 0xaf, 0x4b, 0x50, 0xf3, 0x94, 0xd6, 0x35, 0xcf, + 0x45, 0x8f, 0x4d, 0x75, 0xeb, 0x39, 0xce, 0x27, 0x2f, 0x4d, 0xd0, 0xfd, 0x90, 0x9e, 0x7c, 0x97, + 0x4d, 0xb9, 0x1e, 0x03, 0x3a, 0x0f, 0xcd, 0xe8, 0x70, 0x97, 0xdd, 0xb3, 0xeb, 0x6b, 0xf5, 0xab, + 0x1d, 0x22, 0x4b, 0xf8, 0x09, 0xb4, 0x15, 0x18, 0x2d, 0x43, 0xfd, 0x80, 0x9e, 0xc8, 0xce, 0xd9, + 0x4f, 0x74, 0x4d, 0x2e, 0x9d, 0x5e, 0x85, 0xec, 0x54, 0x89, 0x5e, 0xe4, 0xfa, 0xfe, 0x3a, 0xd4, + 0x99, 0xa3, 0xc9, 0x0e, 0xe1, 0xf4, 0x33, 0x5e, 0xa8, 0xed, 0x3a, 0x34, 0x44, 0x6a, 0x22, 0xdb, + 0x07, 0x02, 0xeb, 0x80, 0x9e, 0x88, 0x39, 0xea, 0x10, 0xfe, 0xbb, 0x90, 0xe4, 0xc7, 0x35, 0x38, + 0x63, 0xc6, 0x7e, 0x78, 0x13, 0xea, 0x2c, 0x52, 0xcb, 0x72, 0xda, 0xd0, 0x72, 0xf6, 0x62, 0x1a, + 0xea, 0xe4, 0x9a, 0x2a, 0x32, 0xa3, 0xe5, 0x5c, 0x3c, 0x9a, 0xeb, 0x10, 0x51, 0xc0, 0x5d, 0x68, + 0xca, 0x88, 0x37, 0xcb, 0xa4, 0xf1, 0x35, 0x13, 0xff, 0x04, 0xda, 0x3a, 0x80, 0xfd, 0xbc, 0x7d, + 0x87, 0xd0, 0xd6, 0x91, 0xea, 0x39, 0x68, 0xc4, 0x41, 0xec, 0x8c, 0x38, 0x5d, 0x9d, 0x88, 0x02, + 0xdb, 0x15, 0x3e, 0x3d, 0x8e, 0xd7, 0xf5, 0xa6, 0xaa, 0x93, 0xa4, 0x42, 0xec, 0x19, 0x7a, 0x24, + 0x5a, 0xeb, 0xa2, 0x55, 0x57, 0x24, 0x7d, 0x5a, 0x66, 0x9f, 0x3f, 0xad, 0x42, 0x47, 0xa7, 0x47, + 0xf0, 0xd3, 0xfc, 0xc5, 0xbf, 0x05, 0x9d, 0x50, 0x61, 0xa4, 0x05, 0xbf, 0x9a, 0xd9, 0x2a, 0x8a, + 0x83, 0x24, 0x48, 0xfc, 0xac, 0x68, 0x3f, 0xfc, 0x8c, 0x7c, 0xd7, 0x0a, 0xd7, 0x26, 0xc7, 0x72, + 0xf0, 0x5f, 0x56, 0xa1, 0xad, 0x58, 0xf0, 0x28, 0x7f, 0x60, 0x6b, 0xb0, 0xa0, 0xe8, 0x3f, 0xa4, + 0x27, 0x72, 0x95, 0xcc, 0x2a, 0x74, 0x13, 0xda, 0xaa, 0x28, 0xc3, 0xfe, 0x42, 0x4d, 0x35, 0x10, + 0xdf, 0x2d, 0x54, 0xb4, 0xb4, 0x43, 0xfc, 0xef, 0x75, 0xe9, 0x54, 0xcf, 0x43, 0x33, 0x0c, 0x82, + 0x58, 0xbb, 0x3f, 0x59, 0x42, 0xd7, 0xa0, 0xc9, 0xaf, 0x07, 0x6a, 0xe6, 0xce, 0x65, 0xf4, 0xe1, + 0xa7, 0x1d, 0x91, 0x18, 0xf4, 0x5e, 0xb2, 0x6f, 0xeb, 0x1c, 0x5e, 0x9e, 0xf4, 0x4c, 0x76, 0xf0, + 0xb7, 0xc0, 0x62, 0x48, 0x6e, 0x31, 0x4b, 0x53, 0xde, 0xb1, 0x3f, 0x76, 0xc2, 0x58, 0x9c, 0xad, + 0x27, 0x13, 0x4a, 0x38, 0x14, 0xbd, 0x07, 0x0b, 0x22, 0xcd, 0xc5, 0xea, 0x22, 0xbb, 0xc1, 0xfb, + 0xfc, 0x6a, 0x46, 0xf2, 0xb9, 0x46, 0x10, 0x13, 0x9d, 0xb6, 0x8b, 0xd6, 0xbc, 0x76, 0x81, 0x1e, + 0xc0, 0x99, 0x70, 0x3a, 0x53, 0x70, 0x61, 0x4a, 0x32, 0x81, 0x90, 0x94, 0x00, 0x3e, 0x06, 0xac, + 0x78, 0xbf, 0xe7, 0xc5, 0xfb, 0xdc, 0x1f, 0x6e, 0xd3, 0x50, 0xa8, 0x89, 0x30, 0xb4, 0x85, 0x92, + 0x7a, 0x29, 0x74, 0x19, 0xdd, 0x9f, 0xb6, 0xe4, 0xb5, 0x02, 0x8d, 0x35, 0xb3, 0x69, 0xd2, 0x58, + 0x5b, 0xca, 0x32, 0xd4, 0x3d, 0x57, 0x7c, 0x36, 0xe8, 0x10, 0xf6, 0x13, 0xff, 0xd9, 0x3d, 0x68, + 0xf0, 0xe9, 0xc5, 0x37, 0x85, 0x6f, 0x4b, 0x56, 0xbe, 0x5a, 0xbe, 0xf2, 0x78, 0x1d, 0x16, 0x8c, + 0x54, 0x12, 0x73, 0x46, 0xbc, 0x41, 0x0f, 0x42, 0x15, 0xd9, 0xf8, 0xd8, 0xb1, 0xba, 0xed, 0xc4, + 0xfb, 0x72, 0x03, 0xe9, 0x32, 0xbe, 0x02, 0x4d, 0x79, 0xc5, 0xc5, 0x32, 0x75, 0xd6, 0xd3, 0x4a, + 0xea, 0x32, 0xfe, 0x55, 0xe8, 0xe8, 0x8c, 0x13, 0x7a, 0x0e, 0x67, 0x64, 0xc6, 0x49, 0xdc, 0xd7, + 0x18, 0x78, 0xc9, 0x88, 0xb3, 0x0c, 0x5d, 0xd9, 0xc1, 0x1a, 0x33, 0x23, 0x64, 0x97, 0x33, 0x9e, + 0xb4, 0xea, 0x72, 0xa3, 0x48, 0x11, 0xe0, 0x9f, 0x62, 0xbe, 0x79, 0xf1, 0x24, 0xd9, 0xcf, 0x53, + 0xfb, 0xea, 0xb6, 0x38, 0xf5, 0x6a, 0xa5, 0x39, 0x22, 0x21, 0xcf, 0xce, 0x56, 0x7e, 0x38, 0xe2, + 0x0b, 0x50, 0x67, 0xdb, 0xfc, 0x9c, 0x3a, 0x23, 0x05, 0xa5, 0x3c, 0x0b, 0x7b, 0xd0, 0x94, 0xe9, + 0xae, 0x6c, 0x7f, 0xd7, 0xa1, 0xb9, 0x27, 0x32, 0x68, 0x25, 0xa7, 0xa1, 0x84, 0xe1, 0x07, 0xb0, + 0x60, 0x26, 0xb9, 0x72, 0xfc, 0xc2, 0xc0, 0x48, 0xa3, 0x89, 0x65, 0x30, 0xab, 0x30, 0x85, 0x33, + 0xa9, 0x4c, 0x56, 0x96, 0x61, 0x33, 0xb3, 0x09, 0x6a, 0x99, 0x2c, 0x86, 0x39, 0xed, 0x33, 0xb6, + 0xc2, 0x87, 0x70, 0x36, 0x9b, 0xcd, 0xca, 0xf6, 0x74, 0x15, 0xce, 0xee, 0x66, 0x72, 0x67, 0xc2, + 0x8f, 0x65, 0xab, 0x71, 0x0f, 0x1a, 0x22, 0x51, 0x93, 0xa5, 0xf8, 0x26, 0x34, 0x1c, 0x9e, 0xf8, + 0xa9, 0x71, 0xcf, 0x82, 0x73, 0xb5, 0xe4, 0xa2, 0x44, 0x00, 0xf1, 0x6f, 0x37, 0xc1, 0xe2, 0x69, + 0xb1, 0x2c, 0xd5, 0xbb, 0x60, 0xc5, 0xf4, 0x58, 0x5d, 0x31, 0x2f, 0xcd, 0xcc, 0xb1, 0x89, 0xd0, + 0x80, 0xe3, 0xd1, 0xb7, 0xa1, 0x11, 0xc5, 0x27, 0x23, 0x95, 0xcc, 0xbd, 0x3c, 0x5b, 0xb0, 0xcf, + 0xa0, 0x44, 0x48, 0x30, 0x51, 0x6e, 0xa0, 0x32, 0x8d, 0x5b, 0x22, 0xca, 0x77, 0x06, 0x11, 0x12, + 0xe8, 0x01, 0xb4, 0x06, 0xfb, 0x74, 0x70, 0x40, 0x5d, 0x99, 0xbf, 0x7d, 0x63, 0xb6, 0xf0, 0xba, + 0x00, 0x13, 0x25, 0xc5, 0xfa, 0x1e, 0xf0, 0x29, 0x6f, 0xce, 0xd3, 0x37, 0x5f, 0x06, 0x22, 0x24, + 0xd0, 0x26, 0x74, 0xbc, 0x41, 0xe0, 0x6f, 0x8e, 0x83, 0x8f, 0x3d, 0x99, 0xa8, 0x7d, 0x6b, 0xb6, + 0x78, 0x4f, 0xc1, 0x49, 0x22, 0xa9, 0x68, 0x7a, 0x63, 0x67, 0x48, 0xa5, 0xab, 0x9d, 0x83, 0x86, + 0xc3, 0x49, 0x22, 0x89, 0x57, 0xe4, 0x7a, 0xe6, 0xef, 0xbc, 0xc7, 0xd0, 0xe0, 0x53, 0x8e, 0xee, + 0x99, 0xcd, 0x4b, 0x46, 0x4f, 0x85, 0x6e, 0x44, 0x2e, 0x95, 0xe6, 0xe1, 0xf3, 0x9f, 0xe6, 0x59, + 0x98, 0x87, 0x47, 0xae, 0x9b, 0xe0, 0x79, 0x0d, 0x5a, 0x72, 0x29, 0xd2, 0x0a, 0xb7, 0x15, 0xe0, + 0x22, 0x34, 0xc4, 0x6e, 0xc9, 0x1f, 0xcf, 0xeb, 0xd0, 0xd1, 0x93, 0x39, 0x1b, 0xc2, 0x67, 0xa7, + 0x00, 0xe2, 0x43, 0x43, 0x64, 0x07, 0xa7, 0xdd, 0x9f, 0xb9, 0x09, 0x2e, 0xcf, 0x4e, 0x36, 0x1a, + 0xbb, 0xa0, 0x64, 0x15, 0xfe, 0xb8, 0x0a, 0xf5, 0x0d, 0xef, 0x68, 0xaa, 0xbb, 0x3b, 0x6a, 0xef, + 0x94, 0x6d, 0xba, 0x0d, 0xef, 0x28, 0xb5, 0x75, 0xf0, 0xa6, 0x5a, 0xd7, 0xf7, 0xd3, 0xeb, 0xfa, + 0xe6, 0xcc, 0xf5, 0x30, 0x68, 0x84, 0x62, 0x7f, 0xd8, 0x04, 0x8b, 0xe7, 0xb7, 0xf3, 0xbc, 0x01, + 0xbb, 0xb1, 0x94, 0x29, 0xc6, 0x84, 0xbb, 0xc6, 0xb5, 0x85, 0x7b, 0x03, 0x27, 0x2e, 0xf7, 0x06, + 0x5c, 0x90, 0xc5, 0xc4, 0x7c, 0x48, 0x2c, 0x88, 0x7c, 0x17, 0xac, 0xb1, 0x37, 0xa6, 0xd2, 0x19, + 0x94, 0x74, 0xf9, 0x91, 0x37, 0xa6, 0x84, 0xe3, 0x99, 0xdc, 0xbe, 0x13, 0xed, 0x4b, 0x3f, 0x50, + 0x22, 0xb7, 0xe5, 0x44, 0xfb, 0x84, 0xe3, 0x99, 0x9c, 0xef, 0x8c, 0xa9, 0x74, 0x00, 0x25, 0x72, + 0xcf, 0x1c, 0xd6, 0x1f, 0xc3, 0x33, 0xb9, 0xc8, 0xfb, 0x84, 0xca, 0x9d, 0x5f, 0x22, 0xd7, 0xf7, + 0x3e, 0xa1, 0x84, 0xe3, 0x13, 0x47, 0xd9, 0x9e, 0x6f, 0x6a, 0x8c, 0xd5, 0x5e, 0x01, 0x8b, 0x29, + 0x50, 0x60, 0x5d, 0x17, 0xa1, 0xf1, 0x3d, 0xcf, 0x8d, 0xf7, 0xd3, 0xcd, 0x8d, 0x94, 0x0b, 0x60, + 0x13, 0x7c, 0x2a, 0x17, 0x60, 0xae, 0x8f, 0xe0, 0xd9, 0x00, 0x8b, 0x2d, 0xf4, 0xe9, 0x2c, 0x2e, + 0xb1, 0x8f, 0xcf, 0xe5, 0x90, 0xcc, 0x29, 0x11, 0x3c, 0x2b, 0x60, 0xb1, 0xb5, 0x2c, 0x98, 0x92, + 0x15, 0xb0, 0x98, 0x85, 0x14, 0xb7, 0xb2, 0x75, 0x49, 0xb7, 0xd6, 0x55, 0xeb, 0xef, 0xd5, 0xc1, + 0xe2, 0x9f, 0x6b, 0xb2, 0x7b, 0xe2, 0x3b, 0xb0, 0x18, 0x3b, 0xe1, 0x90, 0x8a, 0xbb, 0x7a, 0x4f, + 0x7d, 0xf9, 0x7c, 0x7b, 0xe6, 0x47, 0xa0, 0xee, 0x0b, 0x53, 0x84, 0xa4, 0x19, 0xe6, 0x3f, 0x3c, + 0x39, 0x55, 0xea, 0xf0, 0x7c, 0x5f, 0xdf, 0x9c, 0xac, 0x92, 0x6f, 0x85, 0x5c, 0x56, 0xdc, 0xbf, + 0xf4, 0x35, 0xea, 0x0d, 0x58, 0x4c, 0x29, 0xf6, 0x3f, 0x7a, 0x7c, 0x98, 0xca, 0x0a, 0x9e, 0xdb, + 0xfa, 0x02, 0xf8, 0x8d, 0xf4, 0xf9, 0x51, 0x78, 0xdf, 0x93, 0x82, 0x7f, 0xde, 0x80, 0xb6, 0xfe, + 0xdc, 0x95, 0x73, 0x59, 0x3d, 0x0c, 0x47, 0xa5, 0x97, 0x55, 0x25, 0xdf, 0xdd, 0x09, 0x47, 0x84, + 0x49, 0xb0, 0xd1, 0xc4, 0x5e, 0xac, 0xa7, 0xfd, 0xad, 0x72, 0xd1, 0x17, 0x0c, 0x4e, 0x84, 0x14, + 0x7a, 0x0e, 0x0b, 0x2e, 0xd5, 0x19, 0x13, 0x39, 0xff, 0xdf, 0x28, 0x27, 0xd9, 0x48, 0x84, 0x88, + 0xc9, 0x80, 0x7a, 0xd0, 0xf1, 0xd8, 0x71, 0xb5, 0x95, 0xf8, 0xb1, 0xb7, 0xcb, 0xe9, 0x7a, 0x4a, + 0x84, 0x24, 0xd2, 0x4c, 0xb7, 0x3d, 0xe7, 0x88, 0x5d, 0x0f, 0x38, 0x59, 0x73, 0x5e, 0xdd, 0x1e, + 0x27, 0x42, 0xc4, 0x64, 0x40, 0x77, 0xe5, 0x49, 0xd0, 0xca, 0x7d, 0x56, 0x91, 0x37, 0x55, 0xfa, + 0x34, 0x60, 0x41, 0xc1, 0x4e, 0x38, 0x2a, 0x76, 0x5b, 0x7c, 0x56, 0x0b, 0x9a, 0x2f, 0xc3, 0x82, + 0x31, 0x5f, 0x33, 0xce, 0x7a, 0x3d, 0xf4, 0x42, 0x1e, 0x63, 0x6c, 0x05, 0xa0, 0x7b, 0xd2, 0xb7, + 0xdd, 0x4a, 0x9b, 0xf9, 0x6b, 0x19, 0x33, 0x67, 0x86, 0xbd, 0x1d, 0x52, 0xfe, 0xa5, 0xc1, 0x74, + 0x6a, 0xff, 0x6c, 0xf3, 0x63, 0x74, 0x84, 0x9f, 0x26, 0x89, 0xd7, 0xcf, 0x9f, 0xf8, 0xc3, 0x2f, + 0xe0, 0xec, 0x86, 0x13, 0x3b, 0xbb, 0x4e, 0x44, 0xe5, 0x17, 0xb2, 0x3c, 0xd6, 0x50, 0x34, 0xe9, + 0xfc, 0x4f, 0x11, 0xab, 0xc4, 0x7d, 0x19, 0x8c, 0xfd, 0xff, 0x09, 0xc6, 0xfe, 0xc2, 0x2a, 0x08, + 0xc6, 0xe6, 0xb9, 0x87, 0x32, 0x83, 0x9b, 0x8a, 0xc6, 0xee, 0xa6, 0x0f, 0x94, 0x2b, 0x25, 0x92, + 0xa9, 0x13, 0xe5, 0x6e, 0x3a, 0x1c, 0x2b, 0x93, 0x4d, 0xc5, 0x63, 0x1f, 0x64, 0xe3, 0xb1, 0x37, + 0x4b, 0xa4, 0xa7, 0x02, 0xb2, 0xbb, 0xe9, 0x80, 0xac, 0xac, 0x77, 0x33, 0x22, 0xfb, 0x05, 0x8b, + 0x81, 0xfe, 0xa4, 0x20, 0x9a, 0xf8, 0x76, 0x3a, 0x9a, 0x98, 0x61, 0x35, 0x5f, 0x54, 0x38, 0xf1, + 0xa7, 0x45, 0xe1, 0xc4, 0xed, 0x54, 0x38, 0x31, 0x43, 0xb3, 0x6c, 0x3c, 0x71, 0x37, 0x1d, 0x4f, + 0x5c, 0x29, 0x91, 0x4c, 0x05, 0x14, 0xb7, 0x53, 0x01, 0x45, 0x59, 0xa7, 0x46, 0x44, 0x71, 0x3b, + 0x15, 0x51, 0x94, 0x09, 0x1a, 0x21, 0xc5, 0xed, 0x54, 0x48, 0x51, 0x26, 0x68, 0xc4, 0x14, 0xb7, + 0x53, 0x31, 0x45, 0x99, 0xa0, 0x11, 0x54, 0xdc, 0x4d, 0x07, 0x15, 0xe5, 0xf3, 0xf3, 0x65, 0x54, + 0xf1, 0x7f, 0x13, 0x55, 0xfc, 0x7e, 0x51, 0x54, 0x41, 0xf2, 0xa3, 0x8a, 0x6b, 0xc5, 0x2b, 0x59, + 0x1e, 0x56, 0xcc, 0x7f, 0x0a, 0x4c, 0xc7, 0x15, 0xf7, 0x32, 0x71, 0xc5, 0x1b, 0x25, 0xc2, 0x3f, + 0xa7, 0x81, 0xc5, 0x8f, 0x66, 0x05, 0x16, 0x77, 0xcc, 0xc0, 0x62, 0xc6, 0x49, 0x36, 0x1d, 0x59, + 0xdc, 0x4f, 0x47, 0x16, 0x57, 0xe7, 0x90, 0x4d, 0x85, 0x16, 0xdb, 0x79, 0xa1, 0x45, 0x77, 0x0e, + 0x96, 0xc2, 0xd8, 0xe2, 0xc9, 0x74, 0x6c, 0x71, 0x6d, 0x0e, 0xbe, 0xdc, 0xe0, 0x62, 0x3b, 0x2f, + 0xb8, 0x98, 0x47, 0xbb, 0xc2, 0xe8, 0xe2, 0xbd, 0x54, 0x74, 0xf1, 0xd6, 0x3c, 0xd3, 0xf5, 0x8b, + 0x17, 0x5e, 0xfc, 0x53, 0x0b, 0xda, 0xea, 0x11, 0x13, 0xfe, 0x61, 0x15, 0x5a, 0xea, 0xa5, 0x59, + 0xd6, 0x6e, 0xcf, 0x43, 0x93, 0x61, 0xf4, 0x77, 0x72, 0x59, 0x42, 0xf7, 0xc1, 0x62, 0xbf, 0xa4, + 0x51, 0x7e, 0x7d, 0xf6, 0xa1, 0x6e, 0xbe, 0x10, 0x23, 0x5c, 0x8e, 0xf1, 0x06, 0x7b, 0x7b, 0x11, + 0x8d, 0xb9, 0x41, 0x2e, 0x12, 0x59, 0x62, 0xa3, 0x1d, 0x79, 0x63, 0x2f, 0xe6, 0x76, 0xb5, 0x48, + 0x44, 0x01, 0xbf, 0x03, 0x60, 0xbc, 0x53, 0x9b, 0x53, 0x47, 0x7c, 0x0b, 0x3a, 0xc9, 0xcb, 0xb3, + 0x9c, 0x17, 0x00, 0x02, 0xa6, 0xa2, 0x08, 0x55, 0xc4, 0x37, 0xa1, 0x93, 0x3c, 0xeb, 0xcb, 0xe9, + 0x2b, 0xe2, 0x8d, 0x52, 0x4a, 0x96, 0xf0, 0x23, 0x58, 0xca, 0x3c, 0x3c, 0x3b, 0xfd, 0xf7, 0xe5, + 0x18, 0x16, 0xcc, 0x07, 0x65, 0xff, 0x4b, 0x5f, 0xc4, 0x7f, 0x13, 0xc0, 0x78, 0x76, 0x3a, 0xef, + 0xfa, 0x1b, 0x51, 0x62, 0x7d, 0xbe, 0x28, 0x31, 0x79, 0x37, 0xd1, 0x12, 0x4b, 0xcb, 0x0b, 0xf8, + 0x8f, 0xaa, 0xb0, 0x98, 0x7e, 0x1b, 0xfa, 0x05, 0xaa, 0xf0, 0x26, 0x2c, 0x79, 0xbc, 0x13, 0xfd, + 0x4f, 0x12, 0xc2, 0xcc, 0x32, 0xb5, 0xf8, 0x63, 0xad, 0x93, 0x7c, 0x8e, 0xf4, 0x33, 0xe8, 0x64, + 0xcd, 0x19, 0x3c, 0x7f, 0x47, 0xf7, 0x75, 0x3a, 0xf3, 0x66, 0x16, 0x1c, 0xf2, 0x0f, 0xd4, 0xae, + 0xdd, 0x14, 0x16, 0x2c, 0x8b, 0xf8, 0x3f, 0x6a, 0x60, 0xed, 0x44, 0x34, 0xc4, 0xff, 0x56, 0x53, + 0xdf, 0xa9, 0xef, 0x80, 0xc5, 0x5f, 0x17, 0x1a, 0x2f, 0xbf, 0xaa, 0x99, 0x97, 0x5f, 0xa9, 0x7f, + 0xe0, 0x4a, 0x5e, 0x7e, 0xdd, 0x01, 0x8b, 0xbf, 0x27, 0x3c, 0xbd, 0xe4, 0xef, 0x54, 0xa1, 0x93, + 0xbc, 0xed, 0x3b, 0xb5, 0xbc, 0xf9, 0x5d, 0xbc, 0x96, 0xfe, 0x2e, 0xfe, 0x75, 0x68, 0x84, 0xfc, + 0x0b, 0xb6, 0xb0, 0xf2, 0xec, 0xd7, 0x76, 0xde, 0x21, 0x11, 0x10, 0x4c, 0x61, 0xc1, 0x7c, 0xb9, + 0x78, 0x7a, 0x35, 0xae, 0xc8, 0x77, 0xe3, 0x3d, 0x37, 0x7a, 0x18, 0x86, 0xce, 0x89, 0xdc, 0xf9, + 0xe9, 0x4a, 0x76, 0x57, 0xdb, 0xf6, 0xfc, 0x61, 0xfe, 0x83, 0x3b, 0xfc, 0x57, 0x55, 0x68, 0xc9, + 0x77, 0x80, 0xf8, 0x36, 0xd4, 0x9f, 0xd1, 0x97, 0x4c, 0x11, 0xf9, 0x12, 0x70, 0x4a, 0x91, 0x8f, + 0xf8, 0x28, 0x24, 0x9e, 0x28, 0x18, 0xbe, 0xab, 0x5f, 0xc7, 0x9d, 0x5e, 0xf6, 0x0e, 0x58, 0xfc, + 0xc1, 0xe1, 0xe9, 0x25, 0x7f, 0xb7, 0x0d, 0x4d, 0xf1, 0xd2, 0x10, 0xff, 0x57, 0x0b, 0x9a, 0xe2, + 0x11, 0x22, 0xba, 0x0f, 0xad, 0xe8, 0x70, 0x3c, 0x76, 0xc2, 0x13, 0x3b, 0xff, 0x1f, 0x01, 0x53, + 0x6f, 0x16, 0xbb, 0x7d, 0x81, 0x25, 0x4a, 0x08, 0xdd, 0x02, 0x6b, 0xe0, 0xec, 0xd1, 0xa9, 0xf4, + 0x4b, 0x9e, 0xf0, 0xba, 0xb3, 0x47, 0x09, 0x87, 0xa3, 0x0f, 0xa0, 0x2d, 0x97, 0x45, 0x6d, 0xfa, + 0xd9, 0xfd, 0xaa, 0xc5, 0xd4, 0x52, 0xf8, 0x09, 0xb4, 0xa4, 0x32, 0xe8, 0x01, 0x34, 0x23, 0xf1, + 0xec, 0x32, 0x7b, 0x53, 0xcc, 0x1d, 0xc2, 0x89, 0x3f, 0x10, 0x35, 0x44, 0x8a, 0xe1, 0x1f, 0xd7, + 0xc0, 0x62, 0xca, 0x7d, 0x6e, 0x26, 0xb4, 0x0a, 0x30, 0x72, 0xa2, 0x78, 0xfb, 0x70, 0x34, 0xa2, + 0xae, 0x7c, 0x3e, 0x66, 0xd4, 0xa0, 0xab, 0x70, 0x56, 0x94, 0xa2, 0xfd, 0xfe, 0xe1, 0x60, 0x40, + 0xa9, 0x78, 0x9f, 0xd6, 0x26, 0xd9, 0x6a, 0xf4, 0x10, 0x1a, 0xfc, 0xff, 0x92, 0xe4, 0x45, 0xef, + 0xed, 0xd2, 0x99, 0xed, 0x6e, 0x7b, 0xbe, 0xd4, 0x46, 0x48, 0xe2, 0x00, 0x3a, 0xba, 0x8e, 0x6d, + 0xc2, 0x89, 0xe7, 0xfb, 0x9e, 0x3f, 0x94, 0x16, 0xad, 0x8a, 0xcc, 0x2f, 0xb1, 0x9f, 0x52, 0xdf, + 0x06, 0x91, 0x25, 0x56, 0xbf, 0xe7, 0x78, 0x23, 0xa9, 0x62, 0x83, 0xc8, 0x12, 0x63, 0x3a, 0xe4, + 0xe6, 0x2b, 0xde, 0xb9, 0xd5, 0x89, 0x2a, 0xe2, 0x4f, 0xab, 0xfa, 0xe1, 0x6a, 0xde, 0xfb, 0x31, + 0x1e, 0x00, 0x0b, 0x0f, 0x20, 0x62, 0xdb, 0x15, 0xf3, 0x02, 0x2a, 0xde, 0xe9, 0x19, 0x57, 0x4a, + 0x76, 0xb5, 0xf0, 0x47, 0x9e, 0x2f, 0xc2, 0xf4, 0x36, 0x91, 0xa5, 0xcc, 0x1c, 0x37, 0xa6, 0xe6, + 0x58, 0xb6, 0x6f, 0xba, 0x5e, 0xcc, 0x5d, 0xaa, 0x6e, 0x17, 0x35, 0xe8, 0x1e, 0xb4, 0x5c, 0x7a, + 0xe4, 0x0d, 0xa8, 0x7a, 0x00, 0x75, 0x79, 0xe6, 0xdc, 0x6e, 0x70, 0x2c, 0x51, 0x32, 0x38, 0x86, + 0xa6, 0xa8, 0xd2, 0x43, 0xaa, 0x1a, 0x43, 0x4a, 0x94, 0xae, 0xcd, 0x50, 0xba, 0x5e, 0xa2, 0xb4, + 0x95, 0x55, 0xfa, 0xd2, 0x87, 0x00, 0x89, 0xb9, 0xa1, 0x05, 0x68, 0xed, 0xf8, 0x07, 0x7e, 0xf0, + 0xd2, 0x5f, 0xae, 0xb0, 0xc2, 0xf3, 0xbd, 0x3d, 0xd6, 0xcb, 0x72, 0x95, 0x15, 0x18, 0xce, 0xf3, + 0x87, 0xcb, 0x35, 0x04, 0xd0, 0x64, 0x05, 0xea, 0x2e, 0xd7, 0xd9, 0xef, 0xc7, 0x7c, 0xfd, 0x96, + 0xad, 0x4b, 0xbf, 0xc1, 0x8e, 0xaa, 0x68, 0x12, 0xf8, 0x11, 0xfd, 0xa2, 0xfe, 0xab, 0xba, 0xf0, + 0xff, 0xa3, 0x2f, 0xfd, 0xa8, 0x0e, 0x0d, 0xee, 0xa2, 0xf0, 0x0f, 0xeb, 0xda, 0x99, 0xe6, 0x24, + 0x9c, 0x93, 0xb4, 0xd0, 0x92, 0xf1, 0xd0, 0x2c, 0xe5, 0xdc, 0xcc, 0x74, 0xd0, 0x0d, 0x33, 0x1d, + 0xb4, 0x64, 0x3c, 0xbd, 0x4e, 0x4b, 0xa4, 0xd2, 0x40, 0xef, 0x41, 0x7b, 0x12, 0x06, 0xc3, 0x90, + 0x79, 0x51, 0x2b, 0xf3, 0x6f, 0x7a, 0x69, 0xb1, 0x6d, 0x09, 0x23, 0x5a, 0x00, 0x3f, 0x83, 0xb6, + 0xaa, 0x2d, 0x78, 0x4a, 0x8a, 0xc0, 0x72, 0x03, 0x69, 0x09, 0x75, 0xc2, 0x7f, 0xb3, 0x79, 0x91, + 0x33, 0x28, 0x0d, 0x5e, 0x15, 0x2f, 0x3d, 0x97, 0x91, 0xc0, 0x22, 0x74, 0x36, 0xc2, 0x60, 0xc2, + 0x1f, 0x96, 0x2d, 0x57, 0xd8, 0xba, 0xf5, 0xc6, 0x93, 0x20, 0x8c, 0x97, 0xab, 0xec, 0xf7, 0xe6, + 0x31, 0xff, 0x5d, 0x43, 0x67, 0xa0, 0xdd, 0x77, 0x8e, 0x28, 0x83, 0x2d, 0xd7, 0x11, 0x62, 0xd7, + 0xd6, 0x41, 0x70, 0x44, 0x43, 0xb9, 0xff, 0x96, 0xad, 0x4b, 0x0f, 0x55, 0x1e, 0xa6, 0x0d, 0xd6, + 0xb3, 0xc0, 0xa7, 0xc2, 0x54, 0xc8, 0x21, 0xdf, 0xf5, 0xcb, 0x55, 0x56, 0xcd, 0x8e, 0x12, 0xc1, + 0xb5, 0xee, 0xf8, 0x03, 0x3a, 0xe2, 0x96, 0xd2, 0x81, 0xc6, 0x66, 0x18, 0x06, 0xe1, 0xb2, 0xf5, + 0x68, 0xe5, 0x6f, 0x3f, 0x5d, 0xad, 0xfe, 0xe4, 0xd3, 0xd5, 0xea, 0xbf, 0x7c, 0xba, 0x5a, 0xfd, + 0x83, 0xcf, 0x56, 0x2b, 0x3f, 0xf9, 0x6c, 0xb5, 0xf2, 0x8f, 0x9f, 0xad, 0x56, 0xbe, 0x5f, 0x9b, + 0xec, 0xee, 0x36, 0xf9, 0x5d, 0xe8, 0xe6, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x93, 0x4d, 0x57, + 0xe1, 0x03, 0x40, 0x00, 0x00, } func (m *Event) Marshal() (dAtA []byte, err error) { @@ -11128,6 +11237,30 @@ func (m *EventBlockSetText) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.IconImage != nil { + { + size, err := m.IconImage.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if m.IconEmoji != nil { + { + size, err := m.IconEmoji.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } if m.Color != nil { { size, err := m.Color.MarshalToSizedBuffer(dAtA[:i]) @@ -11354,6 +11487,66 @@ func (m *EventBlockSetTextColor) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } +func (m *EventBlockSetTextIconEmoji) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventBlockSetTextIconEmoji) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventBlockSetTextIconEmoji) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Value) > 0 { + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventBlockSetTextIconImage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventBlockSetTextIconImage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventBlockSetTextIconImage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Value) > 0 { + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *EventBlockSetLatex) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -16380,6 +16573,14 @@ func (m *EventBlockSetText) Size() (n int) { l = m.Color.Size() n += 1 + l + sovEvents(uint64(l)) } + if m.IconEmoji != nil { + l = m.IconEmoji.Size() + n += 1 + l + sovEvents(uint64(l)) + } + if m.IconImage != nil { + l = m.IconImage.Size() + n += 1 + l + sovEvents(uint64(l)) + } return n } @@ -16446,6 +16647,32 @@ func (m *EventBlockSetTextColor) Size() (n int) { return n } +func (m *EventBlockSetTextIconEmoji) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Value) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + return n +} + +func (m *EventBlockSetTextIconImage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Value) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + return n +} + func (m *EventBlockSetLatex) Size() (n int) { if m == nil { return 0 @@ -24327,6 +24554,78 @@ func (m *EventBlockSetText) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IconEmoji", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.IconEmoji == nil { + m.IconEmoji = &EventBlockSetTextIconEmoji{} + } + if err := m.IconEmoji.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IconImage", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.IconImage == nil { + m.IconImage = &EventBlockSetTextIconImage{} + } + if err := m.IconImage.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) @@ -24737,6 +25036,170 @@ func (m *EventBlockSetTextColor) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventBlockSetTextIconEmoji) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IconEmoji: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IconEmoji: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventBlockSetTextIconImage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IconImage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IconImage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *EventBlockSetLatex) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index 8a4f485b3..e056cb054 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -933,7 +933,6 @@ message Rpc { } } - message Style { message Request { string contextId = 1; @@ -983,6 +982,32 @@ message Rpc { } } } + + message Icon { + message Request { + string contextId = 1; + string blockId = 2; + string iconImage = 3; // in case both image and emoji are set, image has a priority to show + string iconEmoji = 5; + } + + message Response { + Error error = 1; + ResponseEvent event = 2; + + message Error { + Code code = 1; + string description = 2; + + enum Code { + NULL = 0; + UNKNOWN_ERROR = 1; + BAD_INPUT = 2; + // ... + } + } + } + } } message File { diff --git a/pb/protos/events.proto b/pb/protos/events.proto index 50cd4b120..877c651c4 100644 --- a/pb/protos/events.proto +++ b/pb/protos/events.proto @@ -302,6 +302,8 @@ message Event { Marks marks = 4; Checked checked = 5; Color color = 6; + IconEmoji iconEmoji = 7; + IconImage iconImage = 8; message Text { string value = 1; @@ -323,6 +325,13 @@ message Event { string value = 1; } + message IconEmoji { + string value = 1; + } + + message IconImage { + string value = 1; + } } message Latex { string id = 1; diff --git a/pb/protos/service/service.proto b/pb/protos/service/service.proto index 3e79c3057..da5daabe2 100644 --- a/pb/protos/service/service.proto +++ b/pb/protos/service/service.proto @@ -83,6 +83,7 @@ service ClientCommands { rpc BlockListSetTextMark (anytype.Rpc.BlockList.Set.Text.Mark.Request) returns (anytype.Rpc.BlockList.Set.Text.Mark.Response); rpc BlockSetTextStyle (anytype.Rpc.Block.Set.Text.Style.Request) returns (anytype.Rpc.Block.Set.Text.Style.Response); rpc BlockSetTextChecked (anytype.Rpc.Block.Set.Text.Checked.Request) returns (anytype.Rpc.Block.Set.Text.Checked.Response); + rpc BlockSetTextIcon (anytype.Rpc.Block.Set.Text.Icon.Request) returns (anytype.Rpc.Block.Set.Text.Icon.Response); rpc BlockSplit (anytype.Rpc.Block.Split.Request) returns (anytype.Rpc.Block.Split.Response); rpc BlockMerge (anytype.Rpc.Block.Merge.Request) returns (anytype.Rpc.Block.Merge.Response); diff --git a/pb/service/service.pb.go b/pb/service/service.pb.go index dad68d05b..c41a62a6c 100644 --- a/pb/service/service.pb.go +++ b/pb/service/service.pb.go @@ -26,198 +26,199 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 3050 bytes of a gzipped FileDescriptorProto + // 3063 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9b, 0x5b, 0x6f, 0xdc, 0xc6, 0x15, 0x80, 0xb3, 0x40, 0x11, 0xa7, 0x13, 0xc7, 0x71, 0xd8, 0x3a, 0xb1, 0xe5, 0x54, 0xbe, 0xc4, 0xf2, 0x45, 0xb6, 0x28, 0x5b, 0x6e, 0x53, 0xf4, 0x1a, 0x48, 0x2b, 0x5b, 0x16, 0x22, 0xdb, 0xaa, - 0x56, 0xb2, 0x8a, 0xf4, 0x4a, 0x91, 0xe3, 0x5d, 0x46, 0x5c, 0x0e, 0x43, 0xce, 0xae, 0xbc, 0x45, - 0x5b, 0xf4, 0x86, 0x02, 0x7d, 0x0b, 0xd0, 0xc7, 0x3e, 0xf5, 0xb5, 0x40, 0xff, 0x47, 0x1f, 0xf3, + 0x56, 0xb2, 0x8a, 0xf4, 0x4a, 0x91, 0xe3, 0x5d, 0x46, 0x5c, 0x0e, 0x43, 0xce, 0xae, 0xbc, 0x05, + 0x52, 0xf4, 0x86, 0x02, 0x7d, 0x0b, 0x50, 0xa0, 0x2f, 0x7d, 0xea, 0x6b, 0x7f, 0x49, 0x1f, 0xf3, 0xd8, 0xc7, 0xc2, 0xfe, 0x23, 0xc5, 0x70, 0x0e, 0x67, 0x38, 0xc3, 0x99, 0x21, 0xd7, 0x4f, 0x82, 0x78, 0xbe, 0x73, 0xe1, 0xf0, 0xcc, 0x99, 0x33, 0xe4, 0x2c, 0xba, 0x94, 0x1d, 0xad, 0x66, 0x39, 0xa1, 0xa4, 0x58, 0x2d, 0x70, 0x3e, 0x8d, 0x43, 0x5c, 0xfd, 0xf5, 0xcb, 0xcb, 0xde, 0xa9, 0x20, 0x9d, 0xd1, 0x59, 0x86, 0x17, 0xce, 0x4b, 0x32, 0x24, 0xe3, 0x71, 0x90, 0x46, 0x05, 0x47, 0x16, - 0xde, 0x97, 0x12, 0x3c, 0xc5, 0x29, 0x85, 0xeb, 0x6b, 0xff, 0xfe, 0x2d, 0x3a, 0xd3, 0x4f, 0x62, - 0x9c, 0xd2, 0x3e, 0x28, 0x78, 0x39, 0x3a, 0xf7, 0xf4, 0xe8, 0x73, 0x1c, 0xd2, 0xf5, 0x28, 0x3a, - 0x8c, 0xe9, 0x88, 0xff, 0xb3, 0x1d, 0x79, 0xb7, 0x7d, 0xf0, 0xe3, 0xef, 0x65, 0xa1, 0xcf, 0x2f, - 0xfb, 0x1a, 0xe4, 0xef, 0xe1, 0x2f, 0x26, 0xb8, 0xa0, 0x0b, 0x77, 0xba, 0xc1, 0x45, 0x46, 0xd2, - 0x02, 0x7b, 0xcf, 0xd1, 0x7b, 0xfc, 0xe2, 0x60, 0x14, 0xe4, 0x78, 0x63, 0xb6, 0x13, 0xa7, 0xc7, - 0xde, 0x0d, 0x93, 0x89, 0x1a, 0x20, 0x7c, 0xdd, 0x6c, 0x07, 0xc1, 0xcf, 0x21, 0x3a, 0x7d, 0x18, - 0x24, 0x09, 0xa6, 0xfd, 0x1c, 0x07, 0x14, 0x7b, 0x57, 0x15, 0x4d, 0x2e, 0xf2, 0xb9, 0x4c, 0x58, - 0xff, 0xc8, 0xc9, 0x80, 0xe1, 0xcf, 0xd0, 0x3b, 0x5c, 0xb2, 0x87, 0x43, 0x32, 0xc5, 0xb9, 0x67, - 0xd4, 0x02, 0xa1, 0x30, 0x7d, 0xcd, 0x0d, 0xe9, 0xb6, 0xfb, 0x24, 0x9d, 0xe2, 0x9c, 0x9a, 0x6d, - 0x83, 0xd0, 0x6d, 0x5b, 0x42, 0x60, 0xfb, 0xd7, 0xe8, 0xdd, 0x43, 0x92, 0x1f, 0x17, 0x59, 0x10, - 0x62, 0x18, 0x93, 0x25, 0x55, 0xb1, 0x92, 0xea, 0xc3, 0x72, 0xbd, 0x0d, 0x33, 0x78, 0x18, 0xe0, - 0x04, 0x87, 0xd4, 0xea, 0x81, 0x8b, 0x5b, 0x3d, 0x08, 0x0c, 0x3c, 0x24, 0xe8, 0x1b, 0x42, 0xb8, - 0x85, 0x69, 0x7f, 0x92, 0xe7, 0x38, 0xa5, 0xde, 0x2d, 0x8b, 0xba, 0x44, 0x84, 0xa7, 0xe5, 0x2e, - 0xa8, 0xe1, 0x7e, 0xb6, 0x30, 0x5d, 0x4f, 0x12, 0xeb, 0xfd, 0x70, 0x71, 0xeb, 0xfd, 0x08, 0x0c, - 0x3c, 0xfc, 0x1e, 0x5d, 0xa8, 0x8d, 0x18, 0xdd, 0x2e, 0x1e, 0xc5, 0xc3, 0x51, 0x12, 0x0f, 0x47, - 0x14, 0x47, 0xde, 0xaa, 0x75, 0x50, 0x54, 0x50, 0x78, 0xbd, 0xdb, 0x5d, 0x01, 0xfc, 0xff, 0x02, - 0x9d, 0x59, 0x0f, 0x43, 0x32, 0x49, 0x45, 0x32, 0xab, 0xb9, 0x04, 0xc2, 0x46, 0x36, 0x2f, 0xb5, - 0x50, 0x32, 0x9d, 0x41, 0x06, 0x09, 0xf7, 0x91, 0x51, 0x4f, 0x4b, 0xb7, 0x6b, 0x6e, 0xa8, 0x61, - 0x1b, 0x52, 0xcd, 0x6c, 0x5b, 0x4b, 0xb4, 0x6b, 0x6e, 0x08, 0x6c, 0xef, 0xa3, 0xb7, 0x2b, 0xdb, - 0x94, 0x64, 0xde, 0x15, 0xb3, 0x12, 0x25, 0x99, 0xb0, 0x7b, 0xd5, 0x85, 0x48, 0xab, 0x0f, 0xe3, - 0x04, 0x3f, 0x7d, 0xfe, 0x3c, 0x21, 0x41, 0xa4, 0x59, 0x65, 0x12, 0x1f, 0x44, 0x16, 0xab, 0x1a, - 0x22, 0x93, 0x94, 0x09, 0x76, 0xe2, 0x82, 0x56, 0x96, 0x97, 0x1a, 0x6a, 0x4c, 0xda, 0xb0, 0x7e, - 0xbd, 0x0d, 0x03, 0x0f, 0x3f, 0x41, 0xe8, 0x19, 0xce, 0x8b, 0x98, 0xa4, 0x5b, 0x98, 0x7a, 0x97, - 0x15, 0x2d, 0x10, 0xb0, 0xc4, 0x16, 0x76, 0xaf, 0x38, 0x08, 0x30, 0xf9, 0x08, 0x9d, 0xda, 0x21, - 0xc3, 0x01, 0x4e, 0x23, 0xef, 0x5b, 0x0a, 0xbd, 0x43, 0x86, 0x3e, 0xbb, 0x2c, 0x8c, 0x2d, 0xda, - 0xc4, 0x60, 0xe9, 0x09, 0xfa, 0x7a, 0x9f, 0xa4, 0xcf, 0xe3, 0x21, 0x8b, 0xed, 0x92, 0x02, 0xf3, - 0xeb, 0x4a, 0x68, 0x97, 0xed, 0x00, 0xd8, 0xdb, 0x46, 0x6f, 0x0d, 0x46, 0x13, 0x1a, 0x91, 0x93, - 0x54, 0x0b, 0xad, 0xba, 0x6c, 0x09, 0xad, 0x26, 0x96, 0x2b, 0xdd, 0x83, 0x17, 0x14, 0xe7, 0x69, - 0x90, 0x6c, 0xe6, 0x24, 0x63, 0x03, 0x5c, 0x68, 0x2b, 0x5d, 0x5d, 0x5e, 0x3e, 0x81, 0xc2, 0xb2, - 0xd2, 0x19, 0x41, 0x59, 0x14, 0xeb, 0xe2, 0x3e, 0x49, 0x69, 0xb3, 0x28, 0x2a, 0x06, 0x00, 0xb1, - 0x14, 0x45, 0x0b, 0x0a, 0xde, 0xf6, 0xd0, 0xdb, 0x6c, 0xa1, 0xdd, 0xcd, 0xf1, 0x34, 0xc6, 0x27, - 0x5a, 0x3a, 0xd4, 0x24, 0x96, 0x74, 0x50, 0x09, 0xb0, 0xf9, 0x14, 0xa1, 0x83, 0x8c, 0x25, 0x1d, - 0xbb, 0x33, 0xed, 0x29, 0x4a, 0x81, 0xe5, 0x29, 0x2a, 0x00, 0x18, 0x3c, 0x40, 0xa7, 0x37, 0xc9, - 0x49, 0x2a, 0x4c, 0xaa, 0x31, 0xd4, 0x45, 0x96, 0xb9, 0xa6, 0x21, 0x72, 0x06, 0x6f, 0x24, 0x24, - 0x3c, 0xe6, 0x2e, 0x35, 0xab, 0xa5, 0x04, 0xa2, 0xb1, 0x58, 0xd5, 0x10, 0xd9, 0xa9, 0x94, 0x82, - 0x3d, 0x9c, 0x25, 0x41, 0xa8, 0x77, 0x2a, 0x5c, 0x07, 0x64, 0x96, 0x4e, 0x45, 0x67, 0xc0, 0x70, - 0x8c, 0x3c, 0x08, 0x37, 0x0a, 0x28, 0xae, 0xf2, 0xe2, 0xa6, 0x31, 0xa4, 0x1a, 0x21, 0x9c, 0xdc, - 0xea, 0x40, 0xca, 0x69, 0x58, 0xca, 0x9f, 0x66, 0x38, 0xd5, 0x1e, 0x20, 0xd7, 0x63, 0x02, 0xcb, - 0x03, 0x54, 0x00, 0xcd, 0xde, 0x60, 0x44, 0x4e, 0x8c, 0xf6, 0x98, 0xc0, 0x69, 0x0f, 0x00, 0xb0, - 0x47, 0xd0, 0x37, 0xcb, 0xcb, 0x5b, 0x98, 0xee, 0x4e, 0x8e, 0x92, 0x38, 0x3c, 0xc4, 0x47, 0x07, - 0x7b, 0x3b, 0xde, 0xb2, 0x41, 0x53, 0x63, 0x84, 0x97, 0xdb, 0x9d, 0x58, 0xcd, 0x21, 0xbb, 0xad, - 0x8d, 0x1c, 0x07, 0x51, 0x98, 0x4f, 0xc6, 0x47, 0x85, 0xd1, 0xa1, 0xc6, 0x38, 0x1d, 0x36, 0x59, - 0x59, 0x05, 0xf8, 0x88, 0x61, 0x5a, 0xf7, 0x67, 0x7a, 0x86, 0x2a, 0x62, 0xa9, 0x02, 0x16, 0x54, - 0x9b, 0x09, 0xb0, 0xae, 0x9b, 0x66, 0x82, 0xb6, 0xaa, 0x5f, 0x75, 0x21, 0x72, 0x2d, 0xab, 0x59, - 0xdd, 0x0d, 0x86, 0x7a, 0x8b, 0x5a, 0x57, 0x63, 0x62, 0xcb, 0x5a, 0x66, 0xc0, 0x64, 0xc3, 0x53, - 0xf3, 0x30, 0xc0, 0x54, 0x6b, 0x78, 0xea, 0x9a, 0x83, 0xda, 0xc2, 0xb1, 0xd4, 0x42, 0xe9, 0x05, - 0x22, 0x4d, 0xd8, 0xb6, 0xc6, 0x58, 0x20, 0x4a, 0x91, 0xbb, 0x40, 0x54, 0x88, 0x5c, 0x80, 0x79, - 0xd0, 0x09, 0x29, 0xb0, 0x67, 0x4a, 0xf6, 0x52, 0x62, 0xa9, 0xb8, 0x2a, 0x21, 0xbb, 0xa7, 0xf2, - 0x7a, 0x55, 0xe7, 0x3c, 0x53, 0x41, 0xa9, 0x84, 0x96, 0xee, 0xa9, 0x01, 0x81, 0xed, 0x9f, 0x83, - 0xed, 0x2d, 0x4c, 0x1f, 0x07, 0xf9, 0x71, 0x61, 0x1c, 0x62, 0xb6, 0xe8, 0x96, 0x52, 0xe7, 0x10, - 0xd7, 0x29, 0xad, 0x32, 0x1c, 0xa4, 0x11, 0x31, 0x56, 0x06, 0x26, 0x70, 0x56, 0x06, 0x00, 0x34, - 0x7b, 0x7b, 0xd8, 0x62, 0x8f, 0x09, 0x9c, 0xf6, 0x00, 0x00, 0x7b, 0xbf, 0x82, 0x0c, 0x1b, 0x60, - 0xfa, 0x30, 0xc6, 0x49, 0x54, 0x18, 0x53, 0x98, 0x65, 0x0d, 0x17, 0x3b, 0x53, 0x58, 0xc1, 0xc0, - 0xc1, 0x17, 0x50, 0x59, 0x06, 0x6c, 0x07, 0x5a, 0xd0, 0x3c, 0x0e, 0x69, 0x4c, 0xd2, 0xc2, 0xbb, - 0x6d, 0xd1, 0xaf, 0x43, 0x96, 0x3d, 0xbb, 0x15, 0xd6, 0xb2, 0x85, 0xf5, 0x87, 0x8f, 0xc9, 0x14, - 0x9b, 0xb2, 0xa5, 0xec, 0x1d, 0x99, 0xd0, 0x95, 0x2d, 0x75, 0x08, 0x6c, 0x4f, 0xd0, 0xfb, 0x8a, - 0xed, 0x7d, 0xf2, 0x04, 0x9f, 0x94, 0x53, 0xff, 0x8e, 0x43, 0x5f, 0x50, 0xc2, 0xdb, 0x4a, 0x47, - 0x1a, 0xdc, 0x7e, 0xd9, 0x43, 0x97, 0x04, 0x04, 0x7b, 0xe5, 0xfe, 0x28, 0x4e, 0xa2, 0x1c, 0xa7, - 0xfb, 0x84, 0xb1, 0x85, 0xf7, 0x1d, 0x8b, 0x49, 0x33, 0x2e, 0x22, 0xf9, 0x78, 0x5e, 0x35, 0x08, - 0xe9, 0x18, 0x96, 0x6b, 0x06, 0xcb, 0xec, 0xb9, 0x65, 0xb1, 0x66, 0xc8, 0xa0, 0xe5, 0x2e, 0x28, - 0x38, 0x9b, 0xa2, 0x73, 0x75, 0x67, 0xfb, 0xf8, 0x05, 0x1d, 0xd0, 0x59, 0x82, 0xbd, 0x15, 0x87, - 0x11, 0x46, 0xf9, 0x25, 0x26, 0x7c, 0xfa, 0x5d, 0x71, 0xad, 0x27, 0x61, 0xd0, 0xe6, 0x24, 0x4b, - 0xe2, 0x90, 0xad, 0x1f, 0x37, 0x2d, 0x56, 0x04, 0xe1, 0xea, 0x49, 0x1a, 0x24, 0xb8, 0xfa, 0x6b, - 0x0f, 0x5d, 0xac, 0xdf, 0xe3, 0x46, 0x10, 0x1e, 0x0f, 0x73, 0x32, 0x49, 0xa3, 0x3e, 0x49, 0x48, - 0xee, 0xad, 0x39, 0x42, 0xd7, 0x58, 0xe1, 0xfe, 0xfe, 0x5c, 0x3a, 0x10, 0xc8, 0x08, 0xbd, 0x57, - 0x8f, 0x63, 0x3d, 0x89, 0x87, 0xa9, 0xf5, 0x96, 0x99, 0xa5, 0x92, 0x68, 0xbd, 0xe5, 0x3a, 0x09, - 0x9e, 0x0a, 0xa8, 0x0d, 0xe0, 0x69, 0x33, 0x9e, 0xf2, 0x87, 0x7a, 0xc7, 0x61, 0x62, 0x33, 0x9e, - 0x6a, 0xcf, 0x74, 0xa5, 0x23, 0x6d, 0x4e, 0x25, 0xd6, 0x32, 0xb7, 0xa7, 0x52, 0xd9, 0x58, 0x77, - 0x4f, 0x25, 0x05, 0x97, 0xfb, 0x2b, 0x01, 0xed, 0x4f, 0xf2, 0x74, 0x3b, 0xa5, 0x44, 0xdb, 0x5f, - 0x49, 0x23, 0x15, 0x60, 0xd9, 0x5f, 0x19, 0x41, 0xf0, 0xf3, 0x39, 0xf8, 0x19, 0x60, 0xba, 0x13, - 0x50, 0xfc, 0x82, 0xa5, 0xb5, 0xad, 0xaf, 0xf2, 0x4b, 0x82, 0x67, 0x7e, 0x4b, 0x5f, 0xa5, 0xa2, - 0xe0, 0x6b, 0x88, 0xce, 0x56, 0xbe, 0x98, 0xa0, 0x74, 0x75, 0xd3, 0xa2, 0x5f, 0x6a, 0x2a, 0x9e, - 0x6e, 0x75, 0x20, 0x9b, 0x37, 0xc5, 0x04, 0x7c, 0x46, 0x38, 0xf5, 0xd5, 0x89, 0xb0, 0xdc, 0x05, - 0xb5, 0xd7, 0x1a, 0xee, 0xaf, 0xb5, 0xd6, 0xa8, 0x3e, 0xfd, 0xae, 0xb8, 0x79, 0x36, 0x30, 0x84, - 0x35, 0x13, 0xce, 0xd9, 0x50, 0xda, 0x61, 0x54, 0xa7, 0xd9, 0x50, 0xa7, 0xcd, 0x03, 0xcb, 0x67, - 0x82, 0x73, 0x60, 0xd5, 0x59, 0xb0, 0xdc, 0x05, 0x05, 0x5f, 0x99, 0xec, 0xf9, 0xcb, 0x41, 0x1d, - 0xe1, 0xf0, 0x18, 0x47, 0xd6, 0x4e, 0x80, 0x8f, 0x11, 0x87, 0x5a, 0x3b, 0x01, 0x0d, 0xd6, 0x5a, - 0xd1, 0x41, 0x96, 0xc4, 0xd4, 0xd8, 0x8a, 0x96, 0x12, 0x67, 0x2b, 0x5a, 0x11, 0x9a, 0xc9, 0xc7, - 0x38, 0x1f, 0x9a, 0xbb, 0xdb, 0x52, 0xe2, 0x34, 0x59, 0x11, 0x5a, 0x4f, 0xd7, 0x27, 0xd9, 0xcc, - 0xd8, 0xd3, 0x31, 0x81, 0xb3, 0xa7, 0x03, 0x40, 0x0b, 0x71, 0x37, 0x28, 0xa8, 0x39, 0xc4, 0x52, - 0xe2, 0x0c, 0xb1, 0x22, 0xc0, 0xe4, 0xa7, 0xe8, 0x2d, 0x1e, 0xe2, 0x84, 0x7a, 0x8b, 0xa6, 0x00, - 0x26, 0x72, 0x10, 0x2f, 0x59, 0xe5, 0xda, 0xb6, 0xe3, 0xc1, 0x8b, 0x8c, 0xe4, 0xd4, 0xb8, 0xed, - 0xe0, 0x22, 0xe7, 0xb6, 0x43, 0x20, 0xda, 0x8e, 0x72, 0x7b, 0xcc, 0xae, 0xb3, 0x2c, 0x2f, 0xdf, - 0x8a, 0x99, 0x72, 0x59, 0x45, 0x9c, 0xb9, 0xdc, 0x40, 0x9b, 0x95, 0x8f, 0x15, 0xfb, 0x27, 0xc1, - 0x18, 0x5b, 0x2b, 0x5f, 0xb9, 0x1a, 0x30, 0xa2, 0xb5, 0xf2, 0xd5, 0xc9, 0xe6, 0x04, 0xdd, 0x1e, - 0x07, 0x43, 0xee, 0xc9, 0xa6, 0x5f, 0x12, 0xaa, 0xab, 0xe5, 0x2e, 0x28, 0xf8, 0x1a, 0x43, 0xb7, - 0x53, 0xf9, 0x3a, 0x8c, 0x23, 0x3a, 0xf2, 0xdc, 0x16, 0x4a, 0xc6, 0xf9, 0x0e, 0xa0, 0xc9, 0x36, - 0x6f, 0xed, 0x59, 0x1c, 0x61, 0xe2, 0xbc, 0xb5, 0x92, 0xe8, 0x76, 0x6b, 0x0a, 0xda, 0xbc, 0xb5, - 0x52, 0xec, 0xbe, 0x35, 0x6e, 0xa1, 0xdb, 0xad, 0xa9, 0x2c, 0xb8, 0xfb, 0x53, 0x0f, 0x5d, 0x10, - 0xab, 0x70, 0x9c, 0x1e, 0xef, 0x07, 0xf9, 0x10, 0x53, 0x9e, 0x9f, 0x91, 0x77, 0xcf, 0xb6, 0xc4, - 0xb2, 0x7d, 0xb4, 0x82, 0x0a, 0xef, 0x6b, 0xf3, 0xa8, 0x68, 0x1d, 0xfa, 0x06, 0x21, 0xc7, 0xe3, - 0x20, 0x3f, 0x7e, 0x88, 0x69, 0x38, 0x32, 0x0e, 0x70, 0x45, 0xf8, 0x25, 0xe2, 0x1c, 0xe0, 0x06, - 0xaa, 0xb7, 0xaf, 0x15, 0xc0, 0xdf, 0x37, 0xac, 0xa7, 0x11, 0x77, 0xbb, 0xe6, 0xb2, 0xa5, 0xb2, - 0xae, 0xf6, 0xd5, 0xa1, 0x03, 0x81, 0xfc, 0x0e, 0x9d, 0x2f, 0x49, 0x36, 0x97, 0x04, 0x03, 0xaf, - 0x40, 0x57, 0x0d, 0x06, 0xcb, 0x39, 0xa7, 0x81, 0x96, 0x6f, 0x54, 0x4e, 0x05, 0x70, 0x9f, 0x42, - 0x19, 0xda, 0xc3, 0x49, 0xc0, 0xf6, 0xa5, 0x03, 0x4c, 0x3f, 0xc5, 0x33, 0x63, 0xa6, 0x55, 0x88, - 0xcf, 0x19, 0x67, 0xa6, 0x35, 0x59, 0xf0, 0x87, 0xa1, 0x10, 0x55, 0xc0, 0x7a, 0x14, 0x99, 0xba, - 0x4a, 0x69, 0x60, 0x3d, 0x8a, 0x5c, 0x5d, 0xa5, 0x0e, 0x82, 0x9b, 0xdf, 0xa0, 0x0f, 0xf8, 0x1b, - 0x98, 0x80, 0x06, 0xd3, 0x18, 0x9f, 0x3c, 0x8b, 0xf1, 0x09, 0xbc, 0x4d, 0xf3, 0x4d, 0xaf, 0x59, - 0x00, 0xf3, 0x25, 0x27, 0x9c, 0xae, 0x76, 0xe6, 0x1d, 0xbe, 0x37, 0x71, 0x82, 0xbb, 0xf8, 0xe6, - 0x5c, 0x77, 0xdf, 0x82, 0x77, 0xf8, 0xe6, 0x2f, 0x95, 0xdb, 0x7d, 0x73, 0xae, 0xbb, 0x6f, 0xc1, - 0x83, 0xef, 0x3f, 0xf7, 0xd0, 0x42, 0xc3, 0x39, 0xdb, 0x91, 0x85, 0x34, 0x9e, 0x62, 0x63, 0x15, - 0x51, 0xec, 0x09, 0xd4, 0x59, 0x45, 0xac, 0x2a, 0x10, 0xc5, 0xdf, 0x7a, 0xe8, 0x43, 0x53, 0x14, - 0xbb, 0xa4, 0x88, 0x59, 0x9e, 0x78, 0xf7, 0x3b, 0x18, 0xad, 0x60, 0x11, 0xc9, 0xb7, 0xe7, 0x53, - 0x82, 0x58, 0x4e, 0xe0, 0xed, 0x4b, 0x45, 0x0e, 0x30, 0x1d, 0x90, 0x49, 0x1e, 0x1a, 0x37, 0x6f, - 0xd2, 0x9e, 0xc0, 0x5c, 0xbd, 0xb9, 0x19, 0xd7, 0x8a, 0x4a, 0xc5, 0xd4, 0x67, 0x9b, 0xf3, 0xb9, - 0xd6, 0x40, 0x67, 0x51, 0xb1, 0x28, 0xe8, 0xc5, 0x55, 0xf7, 0x0f, 0xa9, 0xb8, 0xd6, 0xc5, 0xa2, - 0x96, 0x8e, 0xf7, 0xe7, 0xd2, 0x69, 0x0b, 0x04, 0xe6, 0x63, 0xa7, 0x40, 0xb4, 0x39, 0x79, 0x7f, - 0x2e, 0x1d, 0x08, 0xe4, 0x1f, 0x3d, 0x74, 0xd5, 0x18, 0x08, 0xdb, 0xec, 0xac, 0x4f, 0x83, 0x38, - 0x09, 0x8e, 0x12, 0xec, 0x7d, 0xaf, 0x8b, 0x6d, 0x45, 0x45, 0x84, 0xf5, 0xfd, 0xd7, 0x51, 0x85, - 0xe8, 0xfe, 0x50, 0x2d, 0xff, 0x32, 0xba, 0x90, 0xe4, 0x11, 0x14, 0xcc, 0x96, 0xe7, 0x2f, 0x49, - 0x11, 0xcb, 0xbd, 0x39, 0x34, 0xdc, 0x21, 0x40, 0xc2, 0x74, 0x08, 0x41, 0x4b, 0x97, 0x7b, 0x73, - 0x68, 0xb8, 0x43, 0x80, 0x54, 0xe9, 0x10, 0x82, 0x96, 0x28, 0xf7, 0xe6, 0xd0, 0x80, 0x10, 0xfe, - 0xd9, 0x43, 0xd7, 0x0c, 0x21, 0x54, 0x8f, 0xef, 0x69, 0x56, 0x4d, 0xe2, 0x1f, 0xb4, 0xdb, 0x6e, - 0x28, 0x89, 0xc0, 0x7e, 0xf8, 0x7a, 0xca, 0x10, 0xe3, 0xbf, 0x7a, 0xe8, 0x46, 0x6b, 0x8c, 0xf0, - 0xdc, 0x7e, 0x3c, 0xaf, 0x27, 0xed, 0x29, 0x7e, 0xf2, 0xda, 0xfa, 0xf3, 0x04, 0x0b, 0x4f, 0x78, - 0xee, 0x60, 0xb5, 0xe7, 0xfd, 0xc9, 0x6b, 0xeb, 0x6b, 0x0d, 0x30, 0x3f, 0x78, 0xb7, 0x3f, 0xcb, - 0xca, 0x4f, 0x68, 0xa6, 0x06, 0x58, 0x12, 0x7e, 0xfd, 0x3b, 0xda, 0x72, 0x17, 0x14, 0x9c, 0xe5, - 0xe8, 0xdc, 0x93, 0x60, 0x1a, 0x0f, 0x45, 0x5d, 0xe0, 0xa0, 0xfe, 0xa5, 0x43, 0x32, 0x7e, 0x0d, - 0xb2, 0xbc, 0xdf, 0xb0, 0xc2, 0xe0, 0xf3, 0xef, 0x3d, 0x74, 0x59, 0x32, 0x5b, 0x18, 0x88, 0xed, - 0xf4, 0x39, 0x39, 0x8c, 0xe9, 0x88, 0x6d, 0x0e, 0x0a, 0xef, 0x63, 0x9b, 0x49, 0x33, 0x2f, 0x42, - 0xf9, 0xee, 0xdc, 0x7a, 0x72, 0x7f, 0xcf, 0xe5, 0x5b, 0x79, 0x90, 0x8d, 0xb4, 0xfd, 0x3d, 0x1c, - 0x82, 0x2c, 0x45, 0x96, 0xfd, 0xbd, 0x86, 0xc8, 0x73, 0x07, 0x70, 0x12, 0x13, 0x07, 0x79, 0x38, - 0xf2, 0x8c, 0x3a, 0x5c, 0x66, 0x39, 0x77, 0xa0, 0x33, 0xf2, 0xc1, 0xd5, 0x0d, 0x0f, 0x26, 0x47, - 0x45, 0x98, 0xc7, 0x47, 0xd8, 0x7c, 0xac, 0x54, 0x83, 0xdc, 0xc7, 0x4a, 0x9b, 0xb0, 0xfc, 0xae, - 0x50, 0x9d, 0x35, 0x2d, 0xa4, 0x43, 0xe3, 0x71, 0xd1, 0x3a, 0x61, 0x79, 0x81, 0x60, 0x26, 0xc1, - 0xd5, 0x0b, 0xf4, 0x41, 0xfd, 0xf6, 0x0e, 0xd2, 0x42, 0xf8, 0x5b, 0xb1, 0xc7, 0x5c, 0xc3, 0x2c, - 0x4d, 0x93, 0x03, 0xd7, 0xcf, 0xce, 0xda, 0xf7, 0x26, 0x60, 0xc4, 0xd4, 0x25, 0xdd, 0x6c, 0x07, - 0xe5, 0xe1, 0x05, 0xd5, 0x0f, 0x14, 0xcb, 0x65, 0x97, 0x05, 0xad, 0x30, 0xde, 0xee, 0xc4, 0xda, - 0x1c, 0x42, 0xc1, 0x73, 0x3a, 0xd4, 0x8a, 0xdb, 0xed, 0x4e, 0xac, 0xfe, 0x0c, 0x9b, 0x0b, 0xd7, - 0x8a, 0xcb, 0x4e, 0x73, 0xa9, 0xf2, 0xbb, 0xe2, 0xe0, 0xf9, 0x8f, 0x3d, 0xb4, 0x60, 0x72, 0x6d, - 0xec, 0x23, 0x8c, 0xe6, 0x9c, 0x7d, 0x84, 0x5b, 0xa3, 0x25, 0x06, 0x63, 0x23, 0x61, 0xb4, 0xe8, - 0x6c, 0x24, 0xdc, 0x1a, 0x10, 0xc3, 0x5f, 0x7a, 0xe8, 0xa2, 0x1a, 0x83, 0xda, 0x68, 0x3a, 0x4d, - 0x9a, 0x1b, 0xcc, 0xb5, 0x79, 0x54, 0xe4, 0x91, 0x93, 0x6a, 0x32, 0xd3, 0x9d, 0x60, 0x46, 0x26, - 0xfa, 0x99, 0x65, 0x31, 0x2b, 0x41, 0x6c, 0xf9, 0x5e, 0x6f, 0xc0, 0x6a, 0x4d, 0x1b, 0x97, 0x3e, - 0xc4, 0x01, 0x9d, 0xe4, 0x38, 0xaa, 0xcf, 0x5e, 0xe3, 0x58, 0xeb, 0xa0, 0xf2, 0x8a, 0xe1, 0xde, - 0x1c, 0x1a, 0xb5, 0x1d, 0xa7, 0x39, 0x84, 0x3d, 0x3c, 0x26, 0x53, 0xac, 0xed, 0x38, 0x6d, 0x36, - 0x39, 0x6c, 0xd9, 0x71, 0xb6, 0x2a, 0xc9, 0xb7, 0xca, 0x62, 0xc0, 0xb7, 0x8b, 0x87, 0xc1, 0x94, - 0xe4, 0x31, 0xd5, 0xdf, 0x52, 0xca, 0xd1, 0x94, 0x88, 0xa5, 0x87, 0xb0, 0xa0, 0x46, 0x6f, 0xeb, - 0x79, 0x38, 0x8a, 0xa7, 0x38, 0x72, 0x78, 0xab, 0x90, 0x0e, 0xde, 0x6a, 0xa8, 0xbe, 0x4e, 0xef, - 0x13, 0xd6, 0x17, 0x19, 0xd7, 0xe9, 0x52, 0xe4, 0x5e, 0xa7, 0x2b, 0x04, 0xac, 0x86, 0xe8, 0x2c, - 0x17, 0x94, 0xdf, 0xcc, 0xf9, 0x14, 0x35, 0x25, 0x1f, 0xff, 0x0e, 0xae, 0x4e, 0xcc, 0x1b, 0xad, - 0x9c, 0x7c, 0x2d, 0x23, 0xa5, 0xea, 0x60, 0xf9, 0x36, 0x1b, 0xe5, 0x7b, 0xe8, 0xe6, 0x88, 0xad, - 0x76, 0xe6, 0xad, 0xbe, 0x45, 0x5a, 0xb4, 0xf8, 0x6e, 0xe4, 0xc6, 0x6a, 0x67, 0x1e, 0x7c, 0x1f, - 0xc1, 0x91, 0xb3, 0x01, 0xa6, 0x9b, 0x98, 0x06, 0x71, 0x52, 0x78, 0xb6, 0x83, 0x38, 0x20, 0xb7, - 0x8c, 0xad, 0x89, 0x93, 0x9f, 0x8f, 0x76, 0x83, 0x61, 0xf5, 0xa3, 0x0b, 0xf5, 0xf3, 0x51, 0x79, - 0x2a, 0x45, 0xdb, 0x9c, 0x5e, 0x71, 0x10, 0xf2, 0x0b, 0xd7, 0x40, 0xfc, 0xb4, 0x45, 0xfd, 0x3e, - 0x34, 0x68, 0xfe, 0xae, 0xe5, 0xb2, 0x1d, 0x90, 0x0b, 0xf0, 0x63, 0x4c, 0xf3, 0x38, 0x2c, 0x06, - 0x98, 0xee, 0x06, 0x79, 0x30, 0xc6, 0x14, 0xe7, 0xfa, 0x71, 0x45, 0x40, 0x7c, 0x85, 0xb1, 0x2c, - 0xc0, 0x36, 0x56, 0x4f, 0x6a, 0xd6, 0xf7, 0xc3, 0x7d, 0x98, 0x92, 0xba, 0xdc, 0x16, 0x68, 0xb7, - 0x73, 0xa3, 0x95, 0x93, 0xa7, 0xfd, 0xa4, 0x94, 0xa5, 0x81, 0x76, 0x14, 0xad, 0xa6, 0x5a, 0x26, - 0x89, 0xf9, 0x28, 0x5a, 0x93, 0x92, 0x2f, 0xcf, 0xa4, 0xac, 0xbe, 0xce, 0x18, 0x7b, 0x88, 0xd2, - 0x80, 0x28, 0x8b, 0x8a, 0x3f, 0xbf, 0x2b, 0x0e, 0x8e, 0x69, 0xd5, 0x60, 0xd7, 0x1d, 0xb3, 0xd5, - 0xe4, 0x4e, 0xab, 0xa1, 0xfa, 0x4a, 0xb2, 0xd2, 0x91, 0x96, 0xaf, 0xec, 0x9a, 0x5e, 0xa1, 0x6d, - 0x59, 0x6d, 0x35, 0xa5, 0x75, 0x2d, 0x77, 0xbb, 0x2b, 0xb8, 0xdc, 0xc3, 0xfa, 0xd5, 0xee, 0x5e, - 0x5b, 0xbb, 0xee, 0x76, 0x57, 0x00, 0xf7, 0x3f, 0x42, 0x5f, 0xdb, 0x8d, 0xd3, 0xa1, 0x77, 0x41, - 0x9d, 0x9c, 0x71, 0x3a, 0x14, 0x46, 0x17, 0x4c, 0x22, 0x79, 0x84, 0x6e, 0x37, 0x27, 0x21, 0x2e, - 0x8a, 0x7e, 0x90, 0x86, 0x38, 0xd1, 0x8e, 0xd0, 0x81, 0xcc, 0xe7, 0x42, 0xcb, 0x11, 0xba, 0x06, - 0x24, 0x97, 0x9d, 0x47, 0x71, 0x41, 0x49, 0x3e, 0x2b, 0x8f, 0x4b, 0xab, 0xe5, 0x03, 0x24, 0xea, - 0x81, 0xe9, 0xab, 0x2e, 0x44, 0x76, 0x46, 0x20, 0x80, 0x9f, 0x70, 0xe8, 0x27, 0x19, 0x2b, 0xb5, - 0x4a, 0x6c, 0xe9, 0x8c, 0x0c, 0x98, 0xdc, 0xce, 0x54, 0x71, 0x63, 0x0a, 0x62, 0x6d, 0x3b, 0x23, - 0x42, 0x13, 0x80, 0x65, 0x3b, 0x63, 0x04, 0xc1, 0x4f, 0x1f, 0xbd, 0x09, 0x5f, 0xc6, 0x2f, 0x6a, - 0x3f, 0x74, 0x50, 0xbe, 0x89, 0x7f, 0x68, 0x16, 0x82, 0x91, 0x5f, 0xa2, 0x77, 0xf9, 0x25, 0xf1, - 0xbb, 0x2a, 0xad, 0x98, 0x68, 0x52, 0x4b, 0x31, 0x69, 0x52, 0xba, 0xfd, 0x7d, 0x3c, 0xce, 0x92, - 0x80, 0xe2, 0xc2, 0x68, 0x5f, 0x48, 0x9d, 0xf6, 0xeb, 0x14, 0xd8, 0x0f, 0xd0, 0x59, 0x2e, 0xdb, - 0x21, 0x61, 0x90, 0xb0, 0xc1, 0xd2, 0x0f, 0x57, 0xeb, 0x62, 0xcb, 0xf3, 0x34, 0x60, 0xf2, 0x57, - 0x17, 0x8f, 0x83, 0x63, 0x5c, 0x39, 0xd7, 0x12, 0xb1, 0x2e, 0xb2, 0x24, 0xa2, 0x86, 0x80, 0xd9, - 0x19, 0x3a, 0x5f, 0x17, 0x6c, 0xcc, 0xe4, 0x74, 0xd5, 0x0a, 0xad, 0x0d, 0xb3, 0x14, 0x5a, 0x07, - 0x0e, 0xae, 0x7f, 0x8a, 0xde, 0xe9, 0x27, 0x24, 0x95, 0xb7, 0xa4, 0xc6, 0xab, 0xc8, 0x2c, 0xef, - 0x48, 0x74, 0x46, 0x3e, 0x6e, 0xee, 0x50, 0x1e, 0x82, 0x34, 0xad, 0x4d, 0xcd, 0x03, 0x90, 0x4b, - 0x2d, 0x14, 0xd8, 0xff, 0x19, 0x3a, 0x73, 0x90, 0x16, 0x59, 0x12, 0x14, 0x23, 0x78, 0xbd, 0xa3, - 0x86, 0xa5, 0x0a, 0x2d, 0x05, 0xa7, 0x01, 0xc9, 0x5c, 0xaa, 0x44, 0xe2, 0x00, 0xf9, 0x92, 0x51, - 0xb3, 0x71, 0x84, 0xfc, 0x7a, 0x1b, 0x26, 0x47, 0x7e, 0x3d, 0xcb, 0x92, 0x99, 0x65, 0xe4, 0x15, - 0x99, 0x65, 0xe4, 0x75, 0x46, 0xb6, 0x4e, 0x9b, 0xf8, 0x68, 0x32, 0x1c, 0xcc, 0xd2, 0x50, 0x6b, - 0x9d, 0xca, 0xeb, 0x3e, 0x13, 0x58, 0x5a, 0x27, 0x05, 0x90, 0xd5, 0xb7, 0xbc, 0xbc, 0x3f, 0xca, - 0x71, 0xe3, 0x47, 0x41, 0x5c, 0x81, 0x8b, 0x6c, 0x3f, 0x35, 0x52, 0x11, 0x2d, 0xca, 0xfd, 0x1c, - 0x63, 0x63, 0x94, 0x4c, 0xe0, 0x8c, 0x12, 0x00, 0xb0, 0x77, 0x17, 0x9d, 0x66, 0x3d, 0x04, 0x4e, - 0x1f, 0x94, 0xbf, 0x09, 0xf7, 0xce, 0x08, 0x8d, 0x07, 0xe3, 0x8c, 0xce, 0x16, 0x6a, 0xff, 0x33, - 0xe0, 0x6e, 0x6f, 0xe3, 0xca, 0x7f, 0x5e, 0x2e, 0xf6, 0xbe, 0x7a, 0xb9, 0xd8, 0xfb, 0xdf, 0xcb, - 0xc5, 0xde, 0x97, 0xaf, 0x16, 0xdf, 0xf8, 0xea, 0xd5, 0xe2, 0x1b, 0xff, 0x7d, 0xb5, 0xf8, 0xc6, - 0x67, 0xa7, 0xe0, 0x37, 0xe9, 0x47, 0x6f, 0x96, 0xbf, 0x2c, 0xbf, 0xff, 0xff, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x03, 0x51, 0xc6, 0x95, 0xb7, 0x3e, 0x00, 0x00, + 0xde, 0x97, 0x12, 0x3c, 0xc5, 0x29, 0x85, 0xeb, 0x6b, 0xff, 0xf8, 0x12, 0x9d, 0xe9, 0x27, 0x31, + 0x4e, 0x69, 0x1f, 0x14, 0xbc, 0x1c, 0x9d, 0x7b, 0x7a, 0xf4, 0x39, 0x0e, 0xe9, 0x7a, 0x14, 0x1d, + 0xc6, 0x74, 0xc4, 0xff, 0xd9, 0x8e, 0xbc, 0xdb, 0x3e, 0xf8, 0xf1, 0xf7, 0xb2, 0xd0, 0xe7, 0x97, + 0x7d, 0x0d, 0xf2, 0xf7, 0xf0, 0x17, 0x13, 0x5c, 0xd0, 0x85, 0x3b, 0xdd, 0xe0, 0x22, 0x23, 0x69, + 0x81, 0xbd, 0xe7, 0xe8, 0x3d, 0x7e, 0x71, 0x30, 0x0a, 0x72, 0xbc, 0x31, 0xdb, 0x89, 0xd3, 0x63, + 0xef, 0x86, 0xc9, 0x44, 0x0d, 0x10, 0xbe, 0x6e, 0xb6, 0x83, 0xe0, 0xe7, 0x10, 0x9d, 0x3e, 0x0c, + 0x92, 0x04, 0xd3, 0x7e, 0x8e, 0x03, 0x8a, 0xbd, 0xab, 0x8a, 0x26, 0x17, 0xf9, 0x5c, 0x26, 0xac, + 0x7f, 0xe4, 0x64, 0xc0, 0xf0, 0x67, 0xe8, 0x1d, 0x2e, 0xd9, 0xc3, 0x21, 0x99, 0xe2, 0xdc, 0x33, + 0x6a, 0x81, 0x50, 0x98, 0xbe, 0xe6, 0x86, 0x74, 0xdb, 0x7d, 0x92, 0x4e, 0x71, 0x4e, 0xcd, 0xb6, + 0x41, 0xe8, 0xb6, 0x2d, 0x21, 0xb0, 0xfd, 0x5b, 0xf4, 0xee, 0x21, 0xc9, 0x8f, 0x8b, 0x2c, 0x08, + 0x31, 0x8c, 0xc9, 0x92, 0xaa, 0x58, 0x49, 0xf5, 0x61, 0xb9, 0xde, 0x86, 0x19, 0x3c, 0x0c, 0x70, + 0x82, 0x43, 0x6a, 0xf5, 0xc0, 0xc5, 0xad, 0x1e, 0x04, 0x06, 0x1e, 0x12, 0xf4, 0x2d, 0x21, 0xdc, + 0xc2, 0xb4, 0x3f, 0xc9, 0x73, 0x9c, 0x52, 0xef, 0x96, 0x45, 0x5d, 0x22, 0xc2, 0xd3, 0x72, 0x17, + 0xd4, 0x70, 0x3f, 0x5b, 0x98, 0xae, 0x27, 0x89, 0xf5, 0x7e, 0xb8, 0xb8, 0xf5, 0x7e, 0x04, 0x06, + 0x1e, 0x7e, 0x8f, 0x2e, 0xd4, 0x46, 0x8c, 0x6e, 0x17, 0x8f, 0xe2, 0xe1, 0x28, 0x89, 0x87, 0x23, + 0x8a, 0x23, 0x6f, 0xd5, 0x3a, 0x28, 0x2a, 0x28, 0xbc, 0xde, 0xed, 0xae, 0x00, 0xfe, 0x7f, 0x85, + 0xce, 0xac, 0x87, 0x21, 0x99, 0xa4, 0x22, 0x99, 0xd5, 0x5c, 0x02, 0x61, 0x23, 0x9b, 0x97, 0x5a, + 0x28, 0x99, 0xce, 0x20, 0x83, 0x84, 0xfb, 0xc8, 0xa8, 0xa7, 0xa5, 0xdb, 0x35, 0x37, 0xd4, 0xb0, + 0x0d, 0xa9, 0x66, 0xb6, 0xad, 0x25, 0xda, 0x35, 0x37, 0x04, 0xb6, 0xf7, 0xd1, 0xdb, 0x95, 0x6d, + 0x4a, 0x32, 0xef, 0x8a, 0x59, 0x89, 0x92, 0x4c, 0xd8, 0xbd, 0xea, 0x42, 0xa4, 0xd5, 0x87, 0x71, + 0x82, 0x9f, 0x3e, 0x7f, 0x9e, 0x90, 0x20, 0xd2, 0xac, 0x32, 0x89, 0x0f, 0x22, 0x8b, 0x55, 0x0d, + 0x91, 0x49, 0xca, 0x04, 0x3b, 0x71, 0x41, 0x2b, 0xcb, 0x4b, 0x0d, 0x35, 0x26, 0x6d, 0x58, 0xbf, + 0xde, 0x86, 0x81, 0x87, 0x9f, 0x21, 0xf4, 0x0c, 0xe7, 0x45, 0x4c, 0xd2, 0x2d, 0x4c, 0xbd, 0xcb, + 0x8a, 0x16, 0x08, 0x58, 0x62, 0x0b, 0xbb, 0x57, 0x1c, 0x04, 0x98, 0x7c, 0x84, 0x4e, 0xed, 0x90, + 0xe1, 0x00, 0xa7, 0x91, 0xf7, 0x1d, 0x85, 0xde, 0x21, 0x43, 0x9f, 0x5d, 0x16, 0xc6, 0x16, 0x6d, + 0x62, 0xb0, 0xf4, 0x04, 0x7d, 0xb3, 0x4f, 0xd2, 0xe7, 0xf1, 0x90, 0xc5, 0x76, 0x49, 0x81, 0xf9, + 0x75, 0x25, 0xb4, 0xcb, 0x76, 0x00, 0xec, 0x6d, 0xa3, 0xb7, 0x06, 0xa3, 0x09, 0x8d, 0xc8, 0x49, + 0xaa, 0x85, 0x56, 0x5d, 0xb6, 0x84, 0x56, 0x13, 0xcb, 0x95, 0xee, 0xc1, 0x0b, 0x8a, 0xf3, 0x34, + 0x48, 0x36, 0x73, 0x92, 0xb1, 0x01, 0x2e, 0xb4, 0x95, 0xae, 0x2e, 0x2f, 0x9f, 0x40, 0x61, 0x59, + 0xe9, 0x8c, 0xa0, 0x2c, 0x8a, 0x75, 0x71, 0x9f, 0xa4, 0xb4, 0x59, 0x14, 0x15, 0x03, 0x80, 0x58, + 0x8a, 0xa2, 0x05, 0x05, 0x6f, 0x7b, 0xe8, 0x6d, 0xb6, 0xd0, 0xee, 0xe6, 0x78, 0x1a, 0xe3, 0x13, + 0x2d, 0x1d, 0x6a, 0x12, 0x4b, 0x3a, 0xa8, 0x04, 0xd8, 0x7c, 0x8a, 0xd0, 0x41, 0xc6, 0x92, 0x8e, + 0xdd, 0x99, 0xf6, 0x14, 0xa5, 0xc0, 0xf2, 0x14, 0x15, 0x00, 0x0c, 0x1e, 0xa0, 0xd3, 0x9b, 0xe4, + 0x24, 0x15, 0x26, 0xd5, 0x18, 0xea, 0x22, 0xcb, 0x5c, 0xd3, 0x10, 0x39, 0x83, 0x37, 0x12, 0x12, + 0x1e, 0x73, 0x97, 0x9a, 0xd5, 0x52, 0x02, 0xd1, 0x58, 0xac, 0x6a, 0x88, 0xec, 0x54, 0x4a, 0xc1, + 0x1e, 0xce, 0x92, 0x20, 0xd4, 0x3b, 0x15, 0xae, 0x03, 0x32, 0x4b, 0xa7, 0xa2, 0x33, 0x60, 0x38, + 0x46, 0x1e, 0x84, 0x1b, 0x05, 0x14, 0x57, 0x79, 0x71, 0xd3, 0x18, 0x52, 0x8d, 0x10, 0x4e, 0x6e, + 0x75, 0x20, 0xe5, 0x34, 0x2c, 0xe5, 0x4f, 0x33, 0x9c, 0x6a, 0x0f, 0x90, 0xeb, 0x31, 0x81, 0xe5, + 0x01, 0x2a, 0x80, 0x66, 0x6f, 0x30, 0x22, 0x27, 0x46, 0x7b, 0x4c, 0xe0, 0xb4, 0x07, 0x00, 0xd8, + 0x23, 0xe8, 0xdb, 0xe5, 0xe5, 0x2d, 0x4c, 0x77, 0x27, 0x47, 0x49, 0x1c, 0x1e, 0xe2, 0xa3, 0x83, + 0xbd, 0x1d, 0x6f, 0xd9, 0xa0, 0xa9, 0x31, 0xc2, 0xcb, 0xed, 0x4e, 0xac, 0xe6, 0x90, 0xdd, 0xd6, + 0x46, 0x8e, 0x83, 0x28, 0xcc, 0x27, 0xe3, 0xa3, 0xc2, 0xe8, 0x50, 0x63, 0x9c, 0x0e, 0x9b, 0xac, + 0xac, 0x02, 0x7c, 0xc4, 0x30, 0xad, 0xfb, 0x33, 0x3d, 0x43, 0x15, 0xb1, 0x54, 0x01, 0x0b, 0xaa, + 0xcd, 0x04, 0x58, 0xd7, 0x4d, 0x33, 0x41, 0x5b, 0xd5, 0xaf, 0xba, 0x10, 0xb9, 0x96, 0xd5, 0xac, + 0xee, 0x06, 0x43, 0xbd, 0x45, 0xad, 0xab, 0x31, 0xb1, 0x65, 0x2d, 0x33, 0x60, 0xb2, 0xe1, 0xa9, + 0x79, 0x18, 0x60, 0xaa, 0x35, 0x3c, 0x75, 0xcd, 0x41, 0x6d, 0xe1, 0x58, 0x6a, 0xa1, 0xf4, 0x02, + 0x91, 0x26, 0x6c, 0x5b, 0x63, 0x2c, 0x10, 0xa5, 0xc8, 0x5d, 0x20, 0x2a, 0x44, 0x2e, 0xc0, 0x3c, + 0xe8, 0x84, 0x14, 0xd8, 0x33, 0x25, 0x7b, 0x29, 0xb1, 0x54, 0x5c, 0x95, 0x90, 0xdd, 0x53, 0x79, + 0xbd, 0xaa, 0x73, 0x9e, 0xa9, 0xa0, 0x54, 0x42, 0x4b, 0xf7, 0xd4, 0x80, 0xc0, 0xf6, 0x2f, 0xc1, + 0xf6, 0x16, 0xa6, 0x8f, 0x83, 0xfc, 0xb8, 0x30, 0x0e, 0x31, 0x5b, 0x74, 0x4b, 0xa9, 0x73, 0x88, + 0xeb, 0x94, 0x56, 0x19, 0x0e, 0xd2, 0x88, 0x18, 0x2b, 0x03, 0x13, 0x38, 0x2b, 0x03, 0x00, 0x9a, + 0xbd, 0x3d, 0x6c, 0xb1, 0xc7, 0x04, 0x4e, 0x7b, 0x00, 0x80, 0xbd, 0xdf, 0x40, 0x86, 0x0d, 0x30, + 0x7d, 0x18, 0xe3, 0x24, 0x2a, 0x8c, 0x29, 0xcc, 0xb2, 0x86, 0x8b, 0x9d, 0x29, 0xac, 0x60, 0xe0, + 0xe0, 0x0b, 0xa8, 0x2c, 0x03, 0xb6, 0x03, 0x2d, 0x68, 0x1e, 0x87, 0x34, 0x26, 0x69, 0xe1, 0xdd, + 0xb6, 0xe8, 0xd7, 0x21, 0xcb, 0x9e, 0xdd, 0x0a, 0x6b, 0xd9, 0xc2, 0xfa, 0xc3, 0xc7, 0x64, 0x8a, + 0x4d, 0xd9, 0x52, 0xf6, 0x8e, 0x4c, 0xe8, 0xca, 0x96, 0x3a, 0x04, 0xb6, 0x27, 0xe8, 0x7d, 0xc5, + 0xf6, 0x3e, 0x79, 0x82, 0x4f, 0xca, 0xa9, 0x7f, 0xc7, 0xa1, 0x2f, 0x28, 0xe1, 0x6d, 0xa5, 0x23, + 0x0d, 0x6e, 0xbf, 0xea, 0xa1, 0x4b, 0x02, 0x82, 0xbd, 0x72, 0x7f, 0x14, 0x27, 0x51, 0x8e, 0xd3, + 0x7d, 0xc2, 0xd8, 0xc2, 0xfb, 0x9e, 0xc5, 0xa4, 0x19, 0x17, 0x91, 0x7c, 0x3c, 0xaf, 0x1a, 0x84, + 0x74, 0x0c, 0xcb, 0x35, 0x83, 0x65, 0xf6, 0xdc, 0xb2, 0x58, 0x33, 0x64, 0xd0, 0x72, 0x17, 0x14, + 0x9c, 0x4d, 0xd1, 0xb9, 0xba, 0xb3, 0x7d, 0xfc, 0x82, 0x0e, 0xe8, 0x2c, 0xc1, 0xde, 0x8a, 0xc3, + 0x08, 0xa3, 0xfc, 0x12, 0x13, 0x3e, 0xfd, 0xae, 0xb8, 0xd6, 0x93, 0x30, 0x68, 0x73, 0x92, 0x25, + 0x71, 0xc8, 0xd6, 0x8f, 0x9b, 0x16, 0x2b, 0x82, 0x70, 0xf5, 0x24, 0x0d, 0x12, 0x5c, 0xfd, 0xb5, + 0x87, 0x2e, 0xd6, 0xef, 0x71, 0x23, 0x08, 0x8f, 0x87, 0x39, 0x99, 0xa4, 0x51, 0x9f, 0x24, 0x24, + 0xf7, 0xd6, 0x1c, 0xa1, 0x6b, 0xac, 0x70, 0x7f, 0x7f, 0x2e, 0x1d, 0x08, 0x64, 0x84, 0xde, 0xab, + 0xc7, 0xb1, 0x9e, 0xc4, 0xc3, 0xd4, 0x7a, 0xcb, 0xcc, 0x52, 0x49, 0xb4, 0xde, 0x72, 0x9d, 0x04, + 0x4f, 0x05, 0xd4, 0x06, 0xf0, 0xb4, 0x19, 0x4f, 0xf9, 0x43, 0xbd, 0xe3, 0x30, 0xb1, 0x19, 0x4f, + 0xb5, 0x67, 0xba, 0xd2, 0x91, 0x36, 0xa7, 0x12, 0x6b, 0x99, 0xdb, 0x53, 0xa9, 0x6c, 0xac, 0xbb, + 0xa7, 0x92, 0x82, 0xcb, 0xfd, 0x95, 0x80, 0xf6, 0x27, 0x79, 0xba, 0x9d, 0x52, 0xa2, 0xed, 0xaf, + 0xa4, 0x91, 0x0a, 0xb0, 0xec, 0xaf, 0x8c, 0x20, 0xf8, 0xf9, 0x1c, 0xfc, 0x0c, 0x30, 0xdd, 0x09, + 0x28, 0x7e, 0xc1, 0xd2, 0xda, 0xd6, 0x57, 0xf9, 0x25, 0xc1, 0x33, 0xbf, 0xa5, 0xaf, 0x52, 0x51, + 0xf0, 0x35, 0x44, 0x67, 0x2b, 0x5f, 0x4c, 0x50, 0xba, 0xba, 0x69, 0xd1, 0x2f, 0x35, 0x15, 0x4f, + 0xb7, 0x3a, 0x90, 0xcd, 0x9b, 0x62, 0x02, 0x3e, 0x23, 0x9c, 0xfa, 0xea, 0x44, 0x58, 0xee, 0x82, + 0xda, 0x6b, 0x0d, 0xf7, 0xd7, 0x5a, 0x6b, 0x54, 0x9f, 0x7e, 0x57, 0xdc, 0x3c, 0x1b, 0x18, 0xc2, + 0x9a, 0x09, 0xe7, 0x6c, 0x28, 0xed, 0x30, 0xaa, 0xd3, 0x6c, 0xa8, 0xd3, 0xe6, 0x81, 0xe5, 0x33, + 0xc1, 0x39, 0xb0, 0xea, 0x2c, 0x58, 0xee, 0x82, 0x82, 0xaf, 0x4c, 0xf6, 0xfc, 0xe5, 0xa0, 0x8e, + 0x70, 0x78, 0x8c, 0x23, 0x6b, 0x27, 0xc0, 0xc7, 0x88, 0x43, 0xad, 0x9d, 0x80, 0x06, 0x9b, 0xf3, + 0x73, 0x3b, 0x24, 0xa9, 0x3b, 0x3f, 0x19, 0xd1, 0x2d, 0x3f, 0x81, 0xd4, 0x7a, 0xde, 0x41, 0x96, + 0xc4, 0xd4, 0xd8, 0xf3, 0x96, 0x12, 0x67, 0xcf, 0x5b, 0x11, 0x9a, 0xc9, 0xc7, 0x38, 0x1f, 0x9a, + 0xdb, 0xe8, 0x52, 0xe2, 0x34, 0x59, 0x11, 0x5a, 0xf3, 0xd8, 0x27, 0xd9, 0xcc, 0xd8, 0x3c, 0x32, + 0x81, 0xb3, 0x79, 0x04, 0x40, 0x0b, 0x71, 0x37, 0x28, 0xa8, 0x39, 0xc4, 0x52, 0xe2, 0x0c, 0xb1, + 0x22, 0xc0, 0xe4, 0xa7, 0xe8, 0x2d, 0x1e, 0xe2, 0x84, 0x7a, 0x8b, 0xa6, 0x00, 0x26, 0x72, 0x10, + 0x2f, 0x59, 0xe5, 0xda, 0xfe, 0xe6, 0xc1, 0x8b, 0x8c, 0xe4, 0xd4, 0xb8, 0xbf, 0xe1, 0x22, 0xe7, + 0xfe, 0x46, 0x20, 0xda, 0xd6, 0x75, 0x7b, 0xcc, 0xae, 0xb3, 0xe9, 0x54, 0xbe, 0x7e, 0x33, 0x65, + 0x8b, 0x8a, 0x38, 0x27, 0x4d, 0x03, 0x6d, 0xa6, 0x30, 0x5b, 0x55, 0x9e, 0x04, 0x63, 0x6c, 0x4d, + 0xe1, 0x72, 0xd9, 0x61, 0x44, 0x6b, 0x0a, 0xd7, 0xc9, 0x66, 0x25, 0xd8, 0x1e, 0x07, 0x43, 0xee, + 0xc9, 0xa6, 0x5f, 0x12, 0xaa, 0xab, 0xe5, 0x2e, 0x28, 0xf8, 0x1a, 0x43, 0x5b, 0x55, 0xf9, 0x3a, + 0x8c, 0x23, 0x3a, 0xf2, 0xdc, 0x16, 0x4a, 0xc6, 0xf9, 0xb2, 0xa1, 0xc9, 0x36, 0x6f, 0xed, 0x59, + 0x1c, 0x61, 0xe2, 0xbc, 0xb5, 0x92, 0xe8, 0x76, 0x6b, 0x0a, 0xda, 0xbc, 0xb5, 0x52, 0xec, 0xbe, + 0x35, 0x6e, 0xa1, 0xdb, 0xad, 0xa9, 0x2c, 0xb8, 0xfb, 0x53, 0x0f, 0x5d, 0x10, 0xcb, 0x7d, 0x9c, + 0x1e, 0xef, 0x07, 0xf9, 0x10, 0x53, 0x9e, 0x9f, 0x91, 0x77, 0xcf, 0xb6, 0x96, 0xb3, 0x0d, 0xbb, + 0x82, 0x0a, 0xef, 0x6b, 0xf3, 0xa8, 0x68, 0x5b, 0x81, 0x0d, 0x42, 0x8e, 0xc7, 0x41, 0x7e, 0xfc, + 0x10, 0xd3, 0x70, 0x64, 0x1c, 0xe0, 0x8a, 0xf0, 0x4b, 0xc4, 0x39, 0xc0, 0x0d, 0x54, 0xef, 0x93, + 0x2b, 0x80, 0xbf, 0xd8, 0x58, 0x4f, 0x23, 0xee, 0x76, 0xcd, 0x65, 0x4b, 0x65, 0x5d, 0x7d, 0xb2, + 0x43, 0x07, 0x02, 0xf9, 0x12, 0x9d, 0x2f, 0x49, 0x36, 0x97, 0x04, 0x03, 0xef, 0x5a, 0x57, 0x0d, + 0x06, 0xcb, 0x39, 0xa7, 0x81, 0x96, 0x8f, 0x61, 0x4e, 0x05, 0x70, 0x9f, 0x42, 0x19, 0xda, 0xc3, + 0x49, 0xc0, 0x36, 0xc0, 0x03, 0x4c, 0x3f, 0xc5, 0x33, 0x63, 0xa6, 0x55, 0x88, 0xcf, 0x19, 0x67, + 0xa6, 0x35, 0x59, 0xf0, 0x87, 0xa1, 0x10, 0x55, 0xc0, 0x7a, 0x14, 0x99, 0xda, 0x57, 0x69, 0x60, + 0x3d, 0x8a, 0x5c, 0xed, 0xab, 0x0e, 0x82, 0x9b, 0xdf, 0xa1, 0x0f, 0xf8, 0xab, 0x9e, 0x80, 0x06, + 0xd3, 0x18, 0x9f, 0x3c, 0x8b, 0xf1, 0x09, 0xbc, 0xb6, 0xf3, 0x4d, 0xef, 0x73, 0x00, 0xf3, 0x25, + 0x27, 0x9c, 0xae, 0x76, 0xe6, 0x1d, 0xbe, 0x37, 0x71, 0x82, 0xbb, 0xf8, 0xe6, 0x5c, 0x77, 0xdf, + 0x82, 0x77, 0xf8, 0xe6, 0x6f, 0xaf, 0xdb, 0x7d, 0x73, 0xae, 0xbb, 0x6f, 0xc1, 0x83, 0xef, 0x3f, + 0xf7, 0xd0, 0x42, 0xc3, 0x39, 0xdb, 0xfa, 0x85, 0x34, 0x9e, 0x62, 0x63, 0x15, 0x51, 0xec, 0x09, + 0xd4, 0x59, 0x45, 0xac, 0x2a, 0x10, 0xc5, 0xdf, 0x7a, 0xe8, 0x43, 0x53, 0x14, 0xbb, 0xa4, 0x88, + 0x59, 0x9e, 0x78, 0xf7, 0x3b, 0x18, 0xad, 0x60, 0x11, 0xc9, 0x77, 0xe7, 0x53, 0x82, 0x58, 0x4e, + 0xe0, 0x35, 0x4f, 0x45, 0x0e, 0x30, 0x1d, 0x90, 0x49, 0x1e, 0x1a, 0x77, 0x89, 0xd2, 0x9e, 0xc0, + 0x5c, 0x9b, 0x00, 0x33, 0xae, 0x15, 0x95, 0x8a, 0xa9, 0xcf, 0x36, 0xe7, 0x73, 0xad, 0x81, 0xce, + 0xa2, 0x62, 0x51, 0xd0, 0x8b, 0xab, 0xee, 0x1f, 0x52, 0x71, 0xad, 0x8b, 0x45, 0x2d, 0x1d, 0xef, + 0xcf, 0xa5, 0xd3, 0x16, 0x08, 0xcc, 0xc7, 0x4e, 0x81, 0x68, 0x73, 0xf2, 0xfe, 0x5c, 0x3a, 0x10, + 0xc8, 0x3f, 0x7b, 0xe8, 0xaa, 0x31, 0x10, 0xb6, 0xab, 0x5a, 0x9f, 0x06, 0x71, 0x12, 0x1c, 0x25, + 0xd8, 0xfb, 0x41, 0x17, 0xdb, 0x8a, 0x8a, 0x08, 0xeb, 0x87, 0xaf, 0xa3, 0x0a, 0xd1, 0xfd, 0xa1, + 0x5a, 0xfe, 0x65, 0x74, 0x21, 0xc9, 0x23, 0x28, 0x98, 0x2d, 0xcf, 0x5f, 0x92, 0x22, 0x96, 0x7b, + 0x73, 0x68, 0xb8, 0x43, 0x80, 0x84, 0xe9, 0x10, 0x82, 0x96, 0x2e, 0xf7, 0xe6, 0xd0, 0x70, 0x87, + 0x00, 0xa9, 0xd2, 0x21, 0x04, 0x2d, 0x51, 0xee, 0xcd, 0xa1, 0x01, 0x21, 0xfc, 0xab, 0x87, 0xae, + 0x19, 0x42, 0xa8, 0x1e, 0xdf, 0xd3, 0xac, 0x9a, 0xc4, 0x3f, 0x6a, 0xb7, 0xdd, 0x50, 0x12, 0x81, + 0xfd, 0xf8, 0xf5, 0x94, 0x21, 0xc6, 0x7f, 0xf7, 0xd0, 0x8d, 0xd6, 0x18, 0xe1, 0xb9, 0xfd, 0x74, + 0x5e, 0x4f, 0xda, 0x53, 0xfc, 0xe4, 0xb5, 0xf5, 0xe7, 0x09, 0x16, 0x9e, 0xf0, 0xdc, 0xc1, 0x6a, + 0xcf, 0xfb, 0x93, 0xd7, 0xd6, 0xd7, 0x1a, 0x60, 0x7e, 0xc2, 0x6f, 0x7f, 0x96, 0x95, 0xdf, 0xea, + 0x4c, 0x0d, 0xb0, 0x24, 0xfc, 0xfa, 0x07, 0xbb, 0xe5, 0x2e, 0x28, 0x38, 0xcb, 0xd1, 0xb9, 0x27, + 0xc1, 0x34, 0x1e, 0x8a, 0xba, 0xc0, 0x41, 0xfd, 0x93, 0x8a, 0x64, 0xfc, 0x1a, 0x64, 0x79, 0x91, + 0x62, 0x85, 0xc1, 0xe7, 0xdf, 0x7b, 0xe8, 0xb2, 0x64, 0xb6, 0x30, 0x10, 0xdb, 0xe9, 0x73, 0x72, + 0x18, 0xd3, 0x11, 0xdb, 0x1c, 0x14, 0xde, 0xc7, 0x36, 0x93, 0x66, 0x5e, 0x84, 0xf2, 0xfd, 0xb9, + 0xf5, 0xe4, 0xfe, 0x9e, 0xcb, 0xb7, 0xf2, 0x20, 0x1b, 0x69, 0xfb, 0x7b, 0x38, 0x6d, 0x59, 0x8a, + 0x2c, 0xfb, 0x7b, 0x0d, 0x91, 0x07, 0x1c, 0xe0, 0xc8, 0x27, 0x0e, 0xf2, 0x70, 0xe4, 0x19, 0x75, + 0xb8, 0xcc, 0x72, 0xc0, 0x41, 0x67, 0xe4, 0x83, 0xab, 0x1b, 0x1e, 0x4c, 0x8e, 0x8a, 0x30, 0x8f, + 0x8f, 0xb0, 0xf9, 0xfc, 0xaa, 0x06, 0xb9, 0xcf, 0xaf, 0x36, 0x61, 0xf9, 0x01, 0xa3, 0x3a, 0xd4, + 0x5a, 0x48, 0x87, 0xc6, 0x73, 0xa9, 0x75, 0xc2, 0xf2, 0x02, 0xc1, 0x4c, 0x82, 0xab, 0x17, 0xe8, + 0x83, 0xfa, 0xed, 0x1d, 0xa4, 0x85, 0xf0, 0xb7, 0x62, 0x8f, 0xb9, 0x86, 0x59, 0x9a, 0x26, 0x07, + 0xae, 0x1f, 0xd2, 0xb5, 0xef, 0x4d, 0xc0, 0x88, 0xa9, 0x4b, 0xba, 0xd9, 0x0e, 0xca, 0x53, 0x12, + 0xaa, 0x1f, 0x28, 0x96, 0xcb, 0x2e, 0x0b, 0x5a, 0x61, 0xbc, 0xdd, 0x89, 0xb5, 0x39, 0x84, 0x82, + 0xe7, 0x74, 0xa8, 0x15, 0xb7, 0xdb, 0x9d, 0x58, 0xfd, 0x19, 0x36, 0x17, 0xae, 0x15, 0x97, 0x9d, + 0xe6, 0x52, 0xe5, 0x77, 0xc5, 0xc1, 0xf3, 0x1f, 0x7b, 0x68, 0xc1, 0xe4, 0xda, 0xd8, 0x47, 0x18, + 0xcd, 0x39, 0xfb, 0x08, 0xb7, 0x46, 0x4b, 0x0c, 0xc6, 0x46, 0xc2, 0x68, 0xd1, 0xd9, 0x48, 0xb8, + 0x35, 0x20, 0x86, 0xbf, 0xf4, 0xd0, 0x45, 0x35, 0x06, 0xb5, 0xd1, 0x74, 0x9a, 0x34, 0x37, 0x98, + 0x6b, 0xf3, 0xa8, 0xc8, 0xb3, 0x2d, 0xd5, 0x64, 0xa6, 0x3b, 0xc1, 0x8c, 0x4c, 0xf4, 0xc3, 0xd1, + 0x62, 0x56, 0x82, 0xd8, 0x72, 0x30, 0xc0, 0x80, 0xd5, 0x9a, 0x36, 0x2e, 0x7d, 0x88, 0x03, 0x3a, + 0xc9, 0x71, 0x54, 0x9f, 0xbd, 0xc6, 0xb1, 0xd6, 0x41, 0xe5, 0x15, 0xc3, 0xbd, 0x39, 0x34, 0x6a, + 0x3b, 0x4e, 0x73, 0x08, 0x7b, 0x78, 0x4c, 0xa6, 0x58, 0xdb, 0x71, 0xda, 0x6c, 0x72, 0xd8, 0xb2, + 0xe3, 0x6c, 0x55, 0x92, 0x6f, 0x95, 0xc5, 0x80, 0x6f, 0x17, 0x0f, 0x83, 0x29, 0xc9, 0x63, 0xaa, + 0xbf, 0xa5, 0x94, 0xa3, 0x29, 0x11, 0x4b, 0x0f, 0x61, 0x41, 0x8d, 0xde, 0xd6, 0xf3, 0x70, 0x14, + 0x4f, 0x71, 0xe4, 0xf0, 0x56, 0x21, 0x1d, 0xbc, 0xd5, 0x50, 0x7d, 0x9d, 0xde, 0x27, 0xac, 0x2f, + 0x32, 0xae, 0xd3, 0xa5, 0xc8, 0xbd, 0x4e, 0x57, 0x08, 0x58, 0x0d, 0xd1, 0x59, 0x2e, 0x28, 0x3f, + 0xce, 0xf3, 0x29, 0x6a, 0x4a, 0x3e, 0xfe, 0xc1, 0x5d, 0x9d, 0x98, 0x37, 0x5a, 0x39, 0xf9, 0x5a, + 0x46, 0x4a, 0xd5, 0xc1, 0xf2, 0x6d, 0x36, 0xca, 0xf7, 0xd0, 0xcd, 0x11, 0x5b, 0xed, 0xcc, 0x5b, + 0x7d, 0x8b, 0xb4, 0x68, 0xf1, 0xdd, 0xc8, 0x8d, 0xd5, 0xce, 0x3c, 0xf8, 0x3e, 0x82, 0xb3, 0x6d, + 0x03, 0x4c, 0x37, 0x31, 0x0d, 0xe2, 0xa4, 0xf0, 0x6c, 0x27, 0x7e, 0x40, 0x6e, 0x19, 0x5b, 0x13, + 0x27, 0x3f, 0x1f, 0xed, 0x06, 0xc3, 0xea, 0xd7, 0x1d, 0xea, 0xe7, 0xa3, 0xf2, 0xf8, 0x8b, 0xb6, + 0x39, 0xbd, 0xe2, 0x20, 0xe4, 0x17, 0xae, 0x81, 0xf8, 0x0d, 0x8d, 0xfa, 0x7d, 0x68, 0xd0, 0xfc, + 0x01, 0xcd, 0x65, 0x3b, 0x20, 0x17, 0xe0, 0xc7, 0x98, 0xe6, 0x71, 0x58, 0x0c, 0x30, 0xdd, 0x0d, + 0xf2, 0x60, 0x8c, 0x29, 0xce, 0xf5, 0x73, 0x91, 0x80, 0xf8, 0x0a, 0x63, 0x59, 0x80, 0x6d, 0xac, + 0x9e, 0xd4, 0xac, 0xef, 0x87, 0xfb, 0x30, 0x25, 0x75, 0xb9, 0x2d, 0xd0, 0x6e, 0xe7, 0x46, 0x2b, + 0x27, 0x8f, 0x15, 0x4a, 0x29, 0x4b, 0x03, 0xed, 0xcc, 0x5b, 0x4d, 0xb5, 0x4c, 0x12, 0xf3, 0x99, + 0xb7, 0x26, 0x25, 0x5f, 0x9e, 0x49, 0x59, 0x7d, 0x9d, 0x31, 0xf6, 0x10, 0xa5, 0x01, 0x51, 0x16, + 0x15, 0x7f, 0x7e, 0x57, 0x1c, 0x1c, 0xd3, 0xaa, 0xc1, 0xae, 0x3b, 0x66, 0xab, 0xc9, 0x9d, 0x56, + 0x43, 0xf5, 0x95, 0x64, 0xa5, 0x23, 0x2d, 0x5f, 0xd9, 0x35, 0xbd, 0x42, 0xdb, 0xb2, 0xda, 0x6a, + 0x4a, 0xeb, 0x5a, 0xee, 0x76, 0x57, 0x70, 0xb9, 0x87, 0xf5, 0xab, 0xdd, 0xbd, 0xb6, 0x76, 0xdd, + 0xed, 0xae, 0x00, 0xee, 0x7f, 0x82, 0xbe, 0xb1, 0x1b, 0xa7, 0x43, 0xef, 0x82, 0x3a, 0x39, 0xe3, + 0x74, 0x28, 0x8c, 0x2e, 0x98, 0x44, 0xf2, 0xac, 0xde, 0x6e, 0x4e, 0x42, 0x5c, 0x14, 0xfd, 0x20, + 0x0d, 0x71, 0xa2, 0x9d, 0xd5, 0x03, 0x99, 0xcf, 0x85, 0x96, 0xb3, 0x7a, 0x0d, 0x48, 0x2e, 0x3b, + 0x8f, 0xe2, 0x82, 0x92, 0x7c, 0x56, 0x9e, 0xcb, 0x56, 0xcb, 0x07, 0x48, 0xd4, 0x93, 0xd9, 0x57, + 0x5d, 0x88, 0xec, 0x8c, 0x40, 0x00, 0xbf, 0x15, 0xd1, 0x8f, 0x4c, 0x56, 0x6a, 0x95, 0xd8, 0xd2, + 0x19, 0x19, 0x30, 0xb9, 0x9d, 0xa9, 0xe2, 0xc6, 0x14, 0xc4, 0xda, 0x76, 0x46, 0x84, 0x26, 0x00, + 0xcb, 0x76, 0xc6, 0x08, 0x82, 0x9f, 0x3e, 0x7a, 0x13, 0xbe, 0x8c, 0x5f, 0xd4, 0x7e, 0x51, 0xa1, + 0x7c, 0x13, 0xff, 0xd0, 0x2c, 0x04, 0x23, 0xbf, 0x46, 0xef, 0xf2, 0x4b, 0xe2, 0x07, 0x5c, 0x5a, + 0x31, 0xd1, 0xa4, 0x96, 0x62, 0xd2, 0xa4, 0x74, 0xfb, 0xfb, 0x78, 0x9c, 0x25, 0x01, 0xc5, 0x85, + 0xd1, 0xbe, 0x90, 0x3a, 0xed, 0xd7, 0x29, 0xb0, 0x1f, 0xa0, 0xb3, 0x5c, 0xb6, 0x43, 0xc2, 0x20, + 0x61, 0x83, 0xa5, 0x9f, 0xe2, 0xd6, 0xc5, 0x96, 0xe7, 0x69, 0xc0, 0xe4, 0xcf, 0x3b, 0x1e, 0x07, + 0xc7, 0xb8, 0x72, 0xae, 0x25, 0x62, 0x5d, 0x64, 0x49, 0x44, 0x0d, 0x01, 0xb3, 0x33, 0x74, 0xbe, + 0x2e, 0xd8, 0x98, 0xc9, 0xe9, 0xaa, 0x15, 0x5a, 0x1b, 0x66, 0x29, 0xb4, 0x0e, 0x1c, 0x5c, 0xff, + 0x1c, 0xbd, 0xd3, 0x4f, 0x48, 0x2a, 0x6f, 0x49, 0x8d, 0x57, 0x91, 0x59, 0xde, 0x91, 0xe8, 0x8c, + 0x7c, 0xdc, 0xdc, 0xa1, 0x3c, 0x6d, 0x69, 0x5a, 0x9b, 0x9a, 0x27, 0x2d, 0x97, 0x5a, 0x28, 0xb0, + 0xff, 0x0b, 0x74, 0xe6, 0x20, 0x2d, 0xb2, 0x24, 0x28, 0x46, 0xf0, 0x7a, 0x47, 0x0d, 0x4b, 0x15, + 0x5a, 0x0a, 0x4e, 0x03, 0x92, 0xb9, 0x54, 0x89, 0xc4, 0x49, 0xf5, 0x25, 0xa3, 0x66, 0xe3, 0xac, + 0xfa, 0xf5, 0x36, 0x4c, 0x8e, 0xfc, 0x7a, 0x96, 0x25, 0x33, 0xcb, 0xc8, 0x2b, 0x32, 0xcb, 0xc8, + 0xeb, 0x8c, 0x6c, 0x9d, 0x36, 0xf1, 0xd1, 0x64, 0x38, 0x98, 0xa5, 0xa1, 0xd6, 0x3a, 0x95, 0xd7, + 0x7d, 0x26, 0xb0, 0xb4, 0x4e, 0x0a, 0x20, 0xab, 0x6f, 0x79, 0x79, 0x7f, 0x94, 0xe3, 0xc6, 0xaf, + 0x8f, 0xb8, 0x02, 0x17, 0xd9, 0x7e, 0xd3, 0xa4, 0x22, 0x5a, 0x94, 0xfb, 0x39, 0xc6, 0xc6, 0x28, + 0x99, 0xc0, 0x19, 0x25, 0x00, 0x60, 0xef, 0x2e, 0x3a, 0xcd, 0x7a, 0x08, 0x9c, 0x3e, 0x28, 0x7f, + 0x7c, 0xee, 0x9d, 0x11, 0x1a, 0x0f, 0xc6, 0x19, 0x9d, 0x2d, 0xd4, 0xfe, 0x67, 0xc0, 0xdd, 0xde, + 0xc6, 0x95, 0xff, 0xbc, 0x5c, 0xec, 0x7d, 0xfd, 0x72, 0xb1, 0xf7, 0xbf, 0x97, 0x8b, 0xbd, 0xaf, + 0x5e, 0x2d, 0xbe, 0xf1, 0xf5, 0xab, 0xc5, 0x37, 0xfe, 0xfb, 0x6a, 0xf1, 0x8d, 0xcf, 0x4e, 0xc1, + 0x8f, 0xdf, 0x8f, 0xde, 0x2c, 0x7f, 0xc2, 0x7e, 0xff, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x53, + 0x39, 0x6d, 0x58, 0x20, 0x3f, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -295,6 +296,7 @@ type ClientCommandsClient interface { BlockListSetTextMark(ctx context.Context, in *pb.RpcBlockListSetTextMarkRequest, opts ...grpc.CallOption) (*pb.RpcBlockListSetTextMarkResponse, error) BlockSetTextStyle(ctx context.Context, in *pb.RpcBlockSetTextStyleRequest, opts ...grpc.CallOption) (*pb.RpcBlockSetTextStyleResponse, error) BlockSetTextChecked(ctx context.Context, in *pb.RpcBlockSetTextCheckedRequest, opts ...grpc.CallOption) (*pb.RpcBlockSetTextCheckedResponse, error) + BlockSetTextIcon(ctx context.Context, in *pb.RpcBlockSetTextIconRequest, opts ...grpc.CallOption) (*pb.RpcBlockSetTextIconResponse, error) BlockSplit(ctx context.Context, in *pb.RpcBlockSplitRequest, opts ...grpc.CallOption) (*pb.RpcBlockSplitResponse, error) BlockMerge(ctx context.Context, in *pb.RpcBlockMergeRequest, opts ...grpc.CallOption) (*pb.RpcBlockMergeResponse, error) BlockCopy(ctx context.Context, in *pb.RpcBlockCopyRequest, opts ...grpc.CallOption) (*pb.RpcBlockCopyResponse, error) @@ -968,6 +970,15 @@ func (c *clientCommandsClient) BlockSetTextChecked(ctx context.Context, in *pb.R return out, nil } +func (c *clientCommandsClient) BlockSetTextIcon(ctx context.Context, in *pb.RpcBlockSetTextIconRequest, opts ...grpc.CallOption) (*pb.RpcBlockSetTextIconResponse, error) { + out := new(pb.RpcBlockSetTextIconResponse) + err := c.cc.Invoke(ctx, "/anytype.ClientCommands/BlockSetTextIcon", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *clientCommandsClient) BlockSplit(ctx context.Context, in *pb.RpcBlockSplitRequest, opts ...grpc.CallOption) (*pb.RpcBlockSplitResponse, error) { out := new(pb.RpcBlockSplitResponse) err := c.cc.Invoke(ctx, "/anytype.ClientCommands/BlockSplit", in, out, opts...) @@ -1848,6 +1859,7 @@ type ClientCommandsServer interface { BlockListSetTextMark(*pb.RpcBlockListSetTextMarkRequest) *pb.RpcBlockListSetTextMarkResponse BlockSetTextStyle(*pb.RpcBlockSetTextStyleRequest) *pb.RpcBlockSetTextStyleResponse BlockSetTextChecked(*pb.RpcBlockSetTextCheckedRequest) *pb.RpcBlockSetTextCheckedResponse + BlockSetTextIcon(*pb.RpcBlockSetTextIconRequest) *pb.RpcBlockSetTextIconResponse BlockSplit(*pb.RpcBlockSplitRequest) *pb.RpcBlockSplitResponse BlockMerge(*pb.RpcBlockMergeRequest) *pb.RpcBlockMergeResponse BlockCopy(*pb.RpcBlockCopyRequest) *pb.RpcBlockCopyResponse @@ -2145,6 +2157,9 @@ func (*UnimplementedClientCommandsServer) BlockSetTextStyle(req *pb.RpcBlockSetT func (*UnimplementedClientCommandsServer) BlockSetTextChecked(req *pb.RpcBlockSetTextCheckedRequest) *pb.RpcBlockSetTextCheckedResponse { return nil } +func (*UnimplementedClientCommandsServer) BlockSetTextIcon(req *pb.RpcBlockSetTextIconRequest) *pb.RpcBlockSetTextIconResponse { + return nil +} func (*UnimplementedClientCommandsServer) BlockSplit(req *pb.RpcBlockSplitRequest) *pb.RpcBlockSplitResponse { return nil } @@ -3530,6 +3545,24 @@ func _ClientCommands_BlockSetTextChecked_Handler(srv interface{}, ctx context.Co return interceptor(ctx, in, info, handler) } +func _ClientCommands_BlockSetTextIcon_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(pb.RpcBlockSetTextIconRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClientCommandsServer).BlockSetTextIcon(in), nil + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/anytype.ClientCommands/BlockSetTextIcon", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClientCommandsServer).BlockSetTextIcon(req.(*pb.RpcBlockSetTextIconRequest)), nil + } + return interceptor(ctx, in, info, handler) +} + func _ClientCommands_BlockSplit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(pb.RpcBlockSplitRequest) if err := dec(in); err != nil { @@ -5370,6 +5403,10 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{ MethodName: "BlockSetTextChecked", Handler: _ClientCommands_BlockSetTextChecked_Handler, }, + { + MethodName: "BlockSetTextIcon", + Handler: _ClientCommands_BlockSetTextIcon_Handler, + }, { MethodName: "BlockSplit", Handler: _ClientCommands_BlockSplit_Handler, diff --git a/pkg/lib/pb/model/models.pb.go b/pkg/lib/pb/model/models.pb.go index aa22a5ec3..071716f7e 100644 --- a/pkg/lib/pb/model/models.pb.go +++ b/pkg/lib/pb/model/models.pb.go @@ -351,6 +351,7 @@ const ( BlockContentText_Numbered BlockContentTextStyle = 10 BlockContentText_Toggle BlockContentTextStyle = 11 BlockContentText_Description BlockContentTextStyle = 12 + BlockContentText_Callout BlockContentTextStyle = 13 ) var BlockContentTextStyle_name = map[int32]string{ @@ -367,6 +368,7 @@ var BlockContentTextStyle_name = map[int32]string{ 10: "Numbered", 11: "Toggle", 12: "Description", + 13: "Callout", } var BlockContentTextStyle_value = map[string]int32{ @@ -383,6 +385,7 @@ var BlockContentTextStyle_value = map[string]int32{ "Numbered": 10, "Toggle": 11, "Description": 12, + "Callout": 13, } func (x BlockContentTextStyle) String() string { @@ -1824,11 +1827,13 @@ func (m *BlockContentFeaturedRelations) XXX_DiscardUnknown() { var xxx_messageInfo_BlockContentFeaturedRelations proto.InternalMessageInfo type BlockContentText struct { - Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` - Style BlockContentTextStyle `protobuf:"varint,2,opt,name=style,proto3,enum=anytype.model.BlockContentTextStyle" json:"style,omitempty"` - Marks *BlockContentTextMarks `protobuf:"bytes,3,opt,name=marks,proto3" json:"marks,omitempty"` - Checked bool `protobuf:"varint,4,opt,name=checked,proto3" json:"checked,omitempty"` - Color string `protobuf:"bytes,5,opt,name=color,proto3" json:"color,omitempty"` + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` + Style BlockContentTextStyle `protobuf:"varint,2,opt,name=style,proto3,enum=anytype.model.BlockContentTextStyle" json:"style,omitempty"` + Marks *BlockContentTextMarks `protobuf:"bytes,3,opt,name=marks,proto3" json:"marks,omitempty"` + Checked bool `protobuf:"varint,4,opt,name=checked,proto3" json:"checked,omitempty"` + Color string `protobuf:"bytes,5,opt,name=color,proto3" json:"color,omitempty"` + IconEmoji string `protobuf:"bytes,6,opt,name=iconEmoji,proto3" json:"iconEmoji,omitempty"` + IconImage string `protobuf:"bytes,7,opt,name=iconImage,proto3" json:"iconImage,omitempty"` } func (m *BlockContentText) Reset() { *m = BlockContentText{} } @@ -1899,6 +1904,20 @@ func (m *BlockContentText) GetColor() string { return "" } +func (m *BlockContentText) GetIconEmoji() string { + if m != nil { + return m.IconEmoji + } + return "" +} + +func (m *BlockContentText) GetIconImage() string { + if m != nil { + return m.IconImage + } + return "" +} + type BlockContentTextMarks struct { Marks []*BlockContentTextMark `protobuf:"bytes,1,rep,name=marks,proto3" json:"marks,omitempty"` } @@ -3904,236 +3923,237 @@ func init() { } var fileDescriptor_98a910b73321e591 = []byte{ - // 3655 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x3a, 0x4d, 0x6f, 0x24, 0xc7, - 0x75, 0xec, 0x99, 0x9e, 0xaf, 0x47, 0xee, 0x6c, 0xb1, 0x96, 0xa6, 0xc6, 0x23, 0x99, 0xd9, 0x74, - 0x14, 0x79, 0xbd, 0x96, 0x67, 0x25, 0xae, 0x64, 0x47, 0x4a, 0xf4, 0x41, 0x72, 0x76, 0x4d, 0x62, - 0x77, 0xc5, 0x55, 0x0f, 0x97, 0x4e, 0x8c, 0x20, 0x50, 0x4d, 0x77, 0x71, 0xa6, 0xc5, 0x9e, 0xae, - 0x71, 0x75, 0x0d, 0x97, 0x63, 0xe4, 0x60, 0xc7, 0x71, 0x92, 0x4b, 0x00, 0x27, 0x41, 0x90, 0x1c, - 0x9d, 0xbb, 0x81, 0x1c, 0x82, 0x00, 0xf9, 0x05, 0x41, 0x02, 0xe4, 0xa0, 0xa3, 0x7d, 0x0b, 0x24, - 0xe4, 0x1e, 0xe4, 0x18, 0xe4, 0x10, 0xbc, 0xaa, 0xea, 0x9e, 0x9e, 0x21, 0x97, 0x3b, 0xab, 0xe4, - 0xd6, 0xef, 0xf5, 0x7b, 0xaf, 0x5e, 0xbd, 0x7e, 0x9f, 0x55, 0x0d, 0xaf, 0x8e, 0x4f, 0x07, 0x77, - 0xe2, 0xa8, 0x7f, 0x67, 0xdc, 0xbf, 0x33, 0x12, 0x21, 0x8f, 0xef, 0x8c, 0xa5, 0x50, 0x22, 0x35, - 0x40, 0xda, 0xd1, 0x10, 0xbd, 0xc6, 0x92, 0xa9, 0x9a, 0x8e, 0x79, 0x47, 0x63, 0xdb, 0xaf, 0x0c, - 0x84, 0x18, 0xc4, 0xdc, 0x90, 0xf6, 0x27, 0x27, 0x77, 0x52, 0x25, 0x27, 0x81, 0x32, 0xc4, 0xde, - 0xbf, 0x95, 0x60, 0xb3, 0x37, 0x62, 0x52, 0xed, 0xc6, 0x22, 0x38, 0xed, 0x25, 0x6c, 0x9c, 0x0e, - 0x85, 0xda, 0x65, 0x29, 0xa7, 0xaf, 0x43, 0xb5, 0x8f, 0xc8, 0xb4, 0xe5, 0xdc, 0x2c, 0xdf, 0x5a, - 0xdd, 0xde, 0xe8, 0xcc, 0x09, 0xee, 0x68, 0x0e, 0xdf, 0xd2, 0xd0, 0x37, 0xa1, 0x16, 0x72, 0xc5, - 0xa2, 0x38, 0x6d, 0x95, 0x6e, 0x3a, 0xb7, 0x56, 0xb7, 0x5f, 0xea, 0x98, 0x85, 0x3b, 0xd9, 0xc2, - 0x9d, 0x9e, 0x5e, 0xd8, 0xcf, 0xe8, 0xe8, 0x5d, 0xa8, 0x9f, 0x44, 0x31, 0x7f, 0xc0, 0xa7, 0x69, - 0xab, 0x7c, 0x35, 0x4f, 0x4e, 0x48, 0x3f, 0x80, 0x26, 0x3f, 0x57, 0x92, 0xf9, 0x3c, 0x66, 0x2a, - 0x12, 0x49, 0xda, 0x72, 0xb5, 0x76, 0x2f, 0x2d, 0x68, 0x97, 0xbd, 0xf7, 0x17, 0xc8, 0xe9, 0x4d, - 0x58, 0x15, 0xfd, 0x4f, 0x79, 0xa0, 0x8e, 0xa6, 0x63, 0x9e, 0xb6, 0x2a, 0x37, 0xcb, 0xb7, 0x1a, - 0x7e, 0x11, 0x45, 0xdf, 0x81, 0xd5, 0x40, 0xc4, 0x31, 0x0f, 0x8c, 0xfc, 0xea, 0xd5, 0xaa, 0x15, - 0x69, 0xbd, 0xff, 0xfe, 0x06, 0x54, 0xb4, 0x5d, 0x68, 0x13, 0x4a, 0x51, 0xd8, 0x72, 0x6e, 0x3a, - 0xb7, 0x1a, 0x7e, 0x29, 0x0a, 0xe9, 0x1d, 0xa8, 0x9e, 0x44, 0x3c, 0x0e, 0x9f, 0x6b, 0x1e, 0x4b, - 0x46, 0xef, 0xc1, 0x9a, 0xe4, 0xa9, 0x92, 0x91, 0x55, 0xc3, 0x58, 0xe8, 0xd7, 0x2f, 0xfb, 0x08, - 0x1d, 0xbf, 0x40, 0xe8, 0xcf, 0xb1, 0xe1, 0x76, 0x83, 0x61, 0x14, 0x87, 0x92, 0x27, 0x07, 0xa1, - 0x31, 0x56, 0xc3, 0x2f, 0xa2, 0xe8, 0x2d, 0xb8, 0xde, 0x67, 0xc1, 0xe9, 0x40, 0x8a, 0x49, 0x12, - 0xee, 0x89, 0x58, 0xc8, 0x56, 0x45, 0xab, 0xbd, 0x88, 0xa6, 0x6f, 0x40, 0x85, 0xc5, 0xd1, 0x20, - 0xd1, 0x26, 0x69, 0x6e, 0xb7, 0x2f, 0xd5, 0x65, 0x07, 0x29, 0x7c, 0x43, 0x48, 0x0f, 0x00, 0x52, - 0xf4, 0x2e, 0xed, 0x24, 0xad, 0x55, 0xbd, 0x85, 0xaf, 0x5f, 0xca, 0xb6, 0x27, 0x12, 0xc5, 0x13, - 0xd5, 0xe9, 0xe5, 0xe4, 0xfb, 0x2b, 0x7e, 0x81, 0x99, 0x7e, 0x07, 0x5c, 0xc5, 0xcf, 0x55, 0xab, - 0x79, 0x85, 0x1d, 0x32, 0x21, 0x47, 0xfc, 0x5c, 0xed, 0xaf, 0xf8, 0x9a, 0x01, 0x19, 0xd1, 0x7b, - 0x5a, 0xd7, 0x97, 0x60, 0xbc, 0x1f, 0xc5, 0x1c, 0x19, 0x91, 0x81, 0xbe, 0x07, 0xd5, 0x98, 0x4d, - 0xc5, 0x44, 0xb5, 0x88, 0x66, 0xfd, 0x8d, 0x2b, 0x59, 0x1f, 0x6a, 0xd2, 0xfd, 0x15, 0xdf, 0x32, - 0xd1, 0xb7, 0xa0, 0x1c, 0x46, 0x67, 0xad, 0x75, 0xcd, 0x7b, 0xf3, 0x4a, 0xde, 0x6e, 0x74, 0xb6, - 0xbf, 0xe2, 0x23, 0x39, 0xdd, 0x83, 0x7a, 0x5f, 0x88, 0xd3, 0x11, 0x93, 0xa7, 0x2d, 0xaa, 0x59, - 0x7f, 0xf3, 0x4a, 0xd6, 0x5d, 0x4b, 0xbc, 0xbf, 0xe2, 0xe7, 0x8c, 0xb8, 0xe5, 0x28, 0x10, 0x49, - 0xeb, 0xc6, 0x12, 0x5b, 0x3e, 0x08, 0x44, 0x82, 0x5b, 0x46, 0x06, 0x64, 0x8c, 0xa3, 0xe4, 0xb4, - 0xb5, 0xb1, 0x04, 0xe3, 0xc3, 0x28, 0xc1, 0x55, 0x35, 0x03, 0xaa, 0x1d, 0x32, 0xc5, 0xce, 0x22, - 0xfe, 0xb4, 0xf5, 0x95, 0x25, 0xd4, 0xee, 0x5a, 0x62, 0x54, 0x3b, 0x63, 0x44, 0x21, 0xd2, 0xc6, - 0x69, 0x6b, 0x73, 0x09, 0x21, 0x59, 0x50, 0xa3, 0x90, 0x8c, 0x91, 0xfe, 0x01, 0xac, 0x9f, 0x70, - 0xa6, 0x26, 0x92, 0x87, 0xb3, 0x1c, 0xf1, 0x92, 0x96, 0xd6, 0xb9, 0xfa, 0xdb, 0x2f, 0x72, 0xed, + // 3680 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x3a, 0x4d, 0x73, 0x24, 0xc9, + 0x55, 0xaa, 0xee, 0xea, 0xaf, 0x27, 0xa9, 0x27, 0x95, 0x23, 0x6b, 0xdb, 0xbd, 0xeb, 0xf1, 0x50, + 0x2c, 0xeb, 0x61, 0xbc, 0xee, 0xd9, 0xd5, 0xec, 0xda, 0xec, 0xc2, 0x7e, 0x48, 0xea, 0x19, 0x4b, + 0x31, 0x33, 0xab, 0xd9, 0x6a, 0x8d, 0x0c, 0x0e, 0x82, 0xd8, 0xec, 0xaa, 0x54, 0x77, 0xad, 0xaa, + 0x2b, 0xdb, 0x59, 0xd9, 0x1a, 0xb5, 0x83, 0x83, 0x8d, 0x31, 0x70, 0x21, 0xc2, 0x40, 0x10, 0x70, + 0x34, 0x9c, 0x7d, 0x23, 0x88, 0x80, 0x08, 0x6e, 0x44, 0x10, 0x10, 0xc1, 0x61, 0x8f, 0xe6, 0x46, + 0xec, 0x06, 0x7f, 0x80, 0x33, 0x07, 0xe2, 0x65, 0x66, 0x55, 0x57, 0xb7, 0x34, 0x9a, 0x9e, 0x85, + 0x5b, 0xbd, 0x97, 0xef, 0xbd, 0x7c, 0xf9, 0xf2, 0x7d, 0x65, 0x66, 0xc1, 0xab, 0xe3, 0xd3, 0xc1, + 0x9d, 0x38, 0xea, 0xdf, 0x19, 0xf7, 0xef, 0x8c, 0x44, 0xc8, 0xe3, 0x3b, 0x63, 0x29, 0x94, 0x48, + 0x0d, 0x90, 0x76, 0x34, 0x44, 0xd7, 0x59, 0x32, 0x55, 0xd3, 0x31, 0xef, 0x68, 0x6c, 0xfb, 0x95, + 0x81, 0x10, 0x83, 0x98, 0x1b, 0xd2, 0xfe, 0xe4, 0xe4, 0x4e, 0xaa, 0xe4, 0x24, 0x50, 0x86, 0xd8, + 0xfb, 0xf7, 0x12, 0x6c, 0xf5, 0x46, 0x4c, 0xaa, 0xdd, 0x58, 0x04, 0xa7, 0xbd, 0x84, 0x8d, 0xd3, + 0xa1, 0x50, 0xbb, 0x2c, 0xe5, 0xf4, 0x75, 0xa8, 0xf6, 0x11, 0x99, 0xb6, 0x9c, 0x9b, 0xe5, 0x5b, + 0xab, 0xdb, 0x9b, 0x9d, 0x39, 0xc1, 0x1d, 0xcd, 0xe1, 0x5b, 0x1a, 0xfa, 0x26, 0xd4, 0x42, 0xae, + 0x58, 0x14, 0xa7, 0xad, 0xd2, 0x4d, 0xe7, 0xd6, 0xea, 0xf6, 0x4b, 0x1d, 0x33, 0x71, 0x27, 0x9b, + 0xb8, 0xd3, 0xd3, 0x13, 0xfb, 0x19, 0x1d, 0xbd, 0x0b, 0xf5, 0x93, 0x28, 0xe6, 0x0f, 0xf8, 0x34, + 0x6d, 0x95, 0xaf, 0xe6, 0xc9, 0x09, 0xe9, 0x07, 0xd0, 0xe4, 0xe7, 0x4a, 0x32, 0x9f, 0xc7, 0x4c, + 0x45, 0x22, 0x49, 0x5b, 0xae, 0xd6, 0xee, 0xa5, 0x05, 0xed, 0xb2, 0x71, 0x7f, 0x81, 0x9c, 0xde, + 0x84, 0x55, 0xd1, 0xff, 0x94, 0x07, 0xea, 0x68, 0x3a, 0xe6, 0x69, 0xab, 0x72, 0xb3, 0x7c, 0xab, + 0xe1, 0x17, 0x51, 0xf4, 0x1d, 0x58, 0x0d, 0x44, 0x1c, 0xf3, 0xc0, 0xc8, 0xaf, 0x5e, 0xad, 0x5a, + 0x91, 0xd6, 0xfb, 0xe7, 0xdb, 0x50, 0xd1, 0x76, 0xa1, 0x4d, 0x28, 0x45, 0x61, 0xcb, 0xb9, 0xe9, + 0xdc, 0x6a, 0xf8, 0xa5, 0x28, 0xa4, 0x77, 0xa0, 0x7a, 0x12, 0xf1, 0x38, 0x7c, 0xae, 0x79, 0x2c, + 0x19, 0xbd, 0x07, 0x6b, 0x92, 0xa7, 0x4a, 0x46, 0x56, 0x0d, 0x63, 0xa1, 0x5f, 0xb9, 0x6c, 0x13, + 0x3a, 0x7e, 0x81, 0xd0, 0x9f, 0x63, 0xc3, 0xe5, 0x06, 0xc3, 0x28, 0x0e, 0x25, 0x4f, 0x0e, 0x42, + 0x63, 0xac, 0x86, 0x5f, 0x44, 0xd1, 0x5b, 0x70, 0xad, 0xcf, 0x82, 0xd3, 0x81, 0x14, 0x93, 0x24, + 0xdc, 0x13, 0xb1, 0x90, 0xad, 0x8a, 0x56, 0x7b, 0x11, 0x4d, 0xdf, 0x80, 0x0a, 0x8b, 0xa3, 0x41, + 0xa2, 0x4d, 0xd2, 0xdc, 0x6e, 0x5f, 0xaa, 0xcb, 0x0e, 0x52, 0xf8, 0x86, 0x90, 0x1e, 0x00, 0xa4, + 0xe8, 0x5d, 0xda, 0x49, 0x5a, 0xab, 0x7a, 0x09, 0xdf, 0xb8, 0x94, 0x6d, 0x4f, 0x24, 0x8a, 0x27, + 0xaa, 0xd3, 0xcb, 0xc9, 0xf7, 0x57, 0xfc, 0x02, 0x33, 0xfd, 0x0e, 0xb8, 0x8a, 0x9f, 0xab, 0x56, + 0xf3, 0x0a, 0x3b, 0x64, 0x42, 0x8e, 0xf8, 0xb9, 0xda, 0x5f, 0xf1, 0x35, 0x03, 0x32, 0xa2, 0xf7, + 0xb4, 0xae, 0x2d, 0xc1, 0x78, 0x3f, 0x8a, 0x39, 0x32, 0x22, 0x03, 0x7d, 0x0f, 0xaa, 0x31, 0x9b, + 0x8a, 0x89, 0x6a, 0x11, 0xcd, 0xfa, 0xab, 0x57, 0xb2, 0x3e, 0xd4, 0xa4, 0xfb, 0x2b, 0xbe, 0x65, + 0xa2, 0x6f, 0x41, 0x39, 0x8c, 0xce, 0x5a, 0x1b, 0x9a, 0xf7, 0xe6, 0x95, 0xbc, 0xdd, 0xe8, 0x6c, + 0x7f, 0xc5, 0x47, 0x72, 0xba, 0x07, 0xf5, 0xbe, 0x10, 0xa7, 0x23, 0x26, 0x4f, 0x5b, 0x54, 0xb3, + 0xfe, 0xda, 0x95, 0xac, 0xbb, 0x96, 0x78, 0x7f, 0xc5, 0xcf, 0x19, 0x71, 0xc9, 0x51, 0x20, 0x92, + 0xd6, 0xf5, 0x25, 0x96, 0x7c, 0x10, 0x88, 0x04, 0x97, 0x8c, 0x0c, 0xc8, 0x18, 0x47, 0xc9, 0x69, + 0x6b, 0x73, 0x09, 0xc6, 0x87, 0x51, 0x82, 0xb3, 0x6a, 0x06, 0x54, 0x3b, 0x64, 0x8a, 0x9d, 0x45, + 0xfc, 0x69, 0xeb, 0x2b, 0x4b, 0xa8, 0xdd, 0xb5, 0xc4, 0xa8, 0x76, 0xc6, 0x88, 0x42, 0xa4, 0x8d, + 0xd3, 0xd6, 0xd6, 0x12, 0x42, 0xb2, 0xa0, 0x46, 0x21, 0x19, 0x23, 0xfd, 0x3d, 0xd8, 0x38, 0xe1, + 0x4c, 0x4d, 0x24, 0x0f, 0x67, 0x39, 0xe2, 0x25, 0x2d, 0xad, 0x73, 0xf5, 0xde, 0x2f, 0x72, 0xed, 0xaf, 0xf8, 0x17, 0x45, 0xd1, 0x77, 0xa1, 0x12, 0x33, 0xc5, 0xcf, 0x5b, 0x2d, 0x2d, 0xd3, 0x7b, - 0x8e, 0x53, 0x28, 0x7e, 0xbe, 0xbf, 0xe2, 0x1b, 0x16, 0xfa, 0xbb, 0x70, 0x5d, 0xb1, 0x7e, 0xcc, + 0x8e, 0x53, 0x28, 0x7e, 0xbe, 0xbf, 0xe2, 0x1b, 0x16, 0xfa, 0xdb, 0x70, 0x4d, 0xb1, 0x7e, 0xcc, 0x0f, 0x4f, 0x2c, 0x41, 0xda, 0xfa, 0xaa, 0x96, 0xf2, 0xfa, 0xd5, 0xee, 0x3c, 0xcf, 0xb3, 0xbf, 0xe2, 0x2f, 0x8a, 0x69, 0xff, 0x10, 0xd6, 0x8a, 0x49, 0x80, 0x52, 0x70, 0x25, 0x67, 0x26, 0x01, - 0xd5, 0x7d, 0xfd, 0x8c, 0x38, 0x1e, 0x46, 0x4a, 0x27, 0xa0, 0xba, 0xaf, 0x9f, 0xe9, 0x26, 0x54, + 0xd5, 0x7d, 0xfd, 0x8d, 0x38, 0x1e, 0x46, 0x4a, 0x27, 0xa0, 0xba, 0xaf, 0xbf, 0xe9, 0x16, 0x54, 0x25, 0x1f, 0x89, 0x33, 0xae, 0xf3, 0x4b, 0xdd, 0xb7, 0x10, 0xd2, 0x86, 0x92, 0x0d, 0x5a, 0xae, - 0xa1, 0xc5, 0x67, 0xa4, 0x0d, 0xa5, 0x18, 0x1f, 0x26, 0x3a, 0x3f, 0xd4, 0x7d, 0x0b, 0xb5, 0x7f, - 0xb5, 0x05, 0x35, 0xab, 0x48, 0xfb, 0x0f, 0xa1, 0x6a, 0x02, 0x81, 0x7e, 0x00, 0x95, 0x54, 0x4d, - 0x63, 0xae, 0x55, 0x68, 0x6e, 0x7f, 0x63, 0x89, 0xe0, 0xe9, 0xf4, 0x90, 0xc1, 0x37, 0x7c, 0xde, - 0x9b, 0x50, 0xd1, 0x30, 0xad, 0x41, 0xd9, 0x17, 0x4f, 0xc9, 0x0a, 0x05, 0xa8, 0xee, 0x89, 0x78, - 0x32, 0x4a, 0x88, 0x83, 0xc8, 0x6e, 0x74, 0x46, 0x4a, 0x88, 0xdc, 0xe7, 0x2c, 0xe4, 0x92, 0x94, - 0xdb, 0xbf, 0x72, 0xc0, 0x45, 0xb7, 0xa4, 0xaf, 0xc2, 0x35, 0xc5, 0xe4, 0x80, 0x9b, 0xb2, 0x76, - 0x90, 0x25, 0xe2, 0x79, 0x24, 0x7d, 0x2f, 0x53, 0xb1, 0xa4, 0x55, 0xfc, 0xfa, 0x73, 0xdd, 0x7d, - 0x4e, 0xc1, 0x42, 0x4a, 0x2f, 0x2f, 0x95, 0xd2, 0xbd, 0xdf, 0xce, 0x76, 0x54, 0x07, 0xf7, 0x31, - 0x1b, 0x70, 0xb2, 0x42, 0xd7, 0xa0, 0x9e, 0x85, 0x02, 0x71, 0xe8, 0x35, 0x68, 0x74, 0x59, 0x3a, - 0xec, 0x0b, 0x26, 0x43, 0x52, 0xa2, 0xab, 0x50, 0xdb, 0x91, 0xc1, 0x30, 0x3a, 0xe3, 0xa4, 0xdc, - 0xfe, 0x44, 0x6f, 0x98, 0xfe, 0xce, 0xbc, 0x59, 0x5f, 0x7b, 0x5e, 0x5e, 0x99, 0xb7, 0xe9, 0xcb, - 0x05, 0x0d, 0x1e, 0x46, 0x09, 0x6a, 0x50, 0x07, 0xb7, 0x2b, 0x54, 0x4a, 0x9c, 0xf6, 0xbf, 0x3a, - 0x50, 0xcf, 0xd2, 0x09, 0x25, 0x50, 0x9e, 0xc8, 0xd8, 0xda, 0x0d, 0x1f, 0xe9, 0x06, 0x54, 0x54, - 0xa4, 0xac, 0xb5, 0x1a, 0xbe, 0x01, 0xb0, 0xbe, 0x84, 0x3c, 0x0d, 0x64, 0x34, 0xd6, 0x61, 0x5b, - 0xd6, 0xef, 0x8a, 0x28, 0xfa, 0x0a, 0x34, 0xa2, 0x11, 0x1b, 0xf0, 0x7d, 0x96, 0x0e, 0xb5, 0x3f, - 0x35, 0xfc, 0x19, 0x02, 0xf9, 0x4f, 0xd8, 0x19, 0x26, 0x1f, 0xfd, 0xde, 0x54, 0x9e, 0x22, 0x8a, - 0xde, 0x05, 0x17, 0x37, 0x68, 0x8b, 0xce, 0xaf, 0x2d, 0x6c, 0x18, 0x3f, 0xcb, 0x63, 0xc9, 0xd1, + 0xa1, 0xc5, 0x6f, 0xa4, 0x0d, 0xa5, 0x18, 0x1f, 0x26, 0x3a, 0x3f, 0xd4, 0x7d, 0x0b, 0xb5, 0xff, + 0xf6, 0xeb, 0x50, 0xb3, 0x8a, 0xb4, 0x7f, 0x1f, 0xaa, 0x26, 0x10, 0xe8, 0x07, 0x50, 0x49, 0xd5, + 0x34, 0xe6, 0x5a, 0x85, 0xe6, 0xf6, 0xaf, 0x2f, 0x11, 0x3c, 0x9d, 0x1e, 0x32, 0xf8, 0x86, 0xcf, + 0x7b, 0x13, 0x2a, 0x1a, 0xa6, 0x35, 0x28, 0xfb, 0xe2, 0x29, 0x59, 0xa1, 0x00, 0xd5, 0x3d, 0x11, + 0x4f, 0x46, 0x09, 0x71, 0x10, 0xd9, 0x8d, 0xce, 0x48, 0x09, 0x91, 0xfb, 0x9c, 0x85, 0x5c, 0x92, + 0x72, 0xfb, 0x3f, 0x1c, 0x70, 0xd1, 0x2d, 0xe9, 0xab, 0xb0, 0xae, 0x98, 0x1c, 0x70, 0x53, 0xd6, + 0x0e, 0xb2, 0x44, 0x3c, 0x8f, 0xa4, 0xef, 0x65, 0x2a, 0x96, 0xb4, 0x8a, 0xdf, 0x78, 0xae, 0xbb, + 0xcf, 0x29, 0x58, 0x48, 0xe9, 0xe5, 0xa5, 0x52, 0xba, 0xf7, 0x9b, 0xd9, 0x8a, 0xea, 0xe0, 0x3e, + 0x66, 0x03, 0x4e, 0x56, 0xe8, 0x1a, 0xd4, 0xb3, 0x50, 0x20, 0x0e, 0x5d, 0x87, 0x46, 0x97, 0xa5, + 0xc3, 0xbe, 0x60, 0x32, 0x24, 0x25, 0xba, 0x0a, 0xb5, 0x1d, 0x19, 0x0c, 0xa3, 0x33, 0x4e, 0xca, + 0xed, 0x4f, 0xf4, 0x82, 0xe9, 0x6f, 0xcd, 0x9b, 0xf5, 0xb5, 0xe7, 0xe5, 0x95, 0x79, 0x9b, 0xbe, + 0x5c, 0xd0, 0xe0, 0x61, 0x94, 0xa0, 0x06, 0x75, 0x70, 0xbb, 0x42, 0xa5, 0xc4, 0x69, 0xff, 0x9b, + 0x03, 0xf5, 0x2c, 0x9d, 0x50, 0x02, 0xe5, 0x89, 0x8c, 0xad, 0xdd, 0xf0, 0x93, 0x6e, 0x42, 0x45, + 0x45, 0xca, 0x5a, 0xab, 0xe1, 0x1b, 0x00, 0xeb, 0x4b, 0xc8, 0xd3, 0x40, 0x46, 0x63, 0x1d, 0xb6, + 0x65, 0x3d, 0x56, 0x44, 0xd1, 0x57, 0xa0, 0x11, 0x8d, 0xd8, 0x80, 0xef, 0xb3, 0x74, 0xa8, 0xfd, + 0xa9, 0xe1, 0xcf, 0x10, 0xc8, 0x7f, 0xc2, 0xce, 0x30, 0xf9, 0xe8, 0x71, 0x53, 0x79, 0x8a, 0x28, + 0x7a, 0x17, 0x5c, 0x5c, 0xa0, 0x2d, 0x3a, 0x5f, 0x5f, 0x58, 0x30, 0x6e, 0xcb, 0x63, 0xc9, 0xd1, 0x80, 0x1d, 0x2c, 0xdf, 0xbe, 0x26, 0x6e, 0xb7, 0xc1, 0xc5, 0xc4, 0x86, 0x7e, 0x9c, 0xb0, 0x11, - 0xb7, 0xfb, 0xd0, 0xcf, 0xed, 0x1b, 0xb0, 0x7e, 0x21, 0xd6, 0xdb, 0xff, 0x59, 0x01, 0x17, 0xcb, + 0xb7, 0xeb, 0xd0, 0xdf, 0xed, 0xeb, 0xb0, 0x71, 0x21, 0xd6, 0xdb, 0xff, 0x58, 0x05, 0x17, 0xcb, 0x06, 0x72, 0xe8, 0x3a, 0x63, 0x39, 0x74, 0x09, 0x79, 0x21, 0x47, 0x41, 0x29, 0xf3, 0x8e, 0xf2, 0x1e, 0x54, 0xd0, 0xa6, 0x99, 0x9f, 0x2c, 0xc1, 0xfe, 0x08, 0xc9, 0x7d, 0xc3, 0x45, 0x5b, 0x50, - 0x0b, 0x86, 0x3c, 0x38, 0xe5, 0xa1, 0x0d, 0xc7, 0x0c, 0xc4, 0x4f, 0x12, 0x14, 0x0a, 0xb6, 0x01, - 0xda, 0xf7, 0xa0, 0xa2, 0xf9, 0xd1, 0x57, 0xcc, 0xba, 0xa6, 0x81, 0x7b, 0x6d, 0xb9, 0x75, 0xed, - 0xb2, 0xed, 0x5f, 0x94, 0xc0, 0x45, 0x98, 0xde, 0x86, 0x8a, 0x64, 0xc9, 0xc0, 0x18, 0xf1, 0x62, - 0x1f, 0xe8, 0xe3, 0x3b, 0xdf, 0x90, 0xd0, 0x0f, 0xec, 0xc7, 0x32, 0x86, 0xfa, 0xe6, 0x72, 0x2b, - 0x16, 0x3e, 0x1c, 0x6e, 0x69, 0xcc, 0x24, 0x1b, 0x59, 0x4f, 0x32, 0x80, 0xf7, 0x73, 0x07, 0x5c, - 0x24, 0xa2, 0xeb, 0x70, 0xad, 0xa7, 0x64, 0x74, 0xca, 0xd5, 0x50, 0x8a, 0xc9, 0x60, 0x68, 0x42, - 0xe8, 0x01, 0x9f, 0x9a, 0x98, 0x71, 0x30, 0x1d, 0x1c, 0x28, 0x16, 0x47, 0x01, 0x29, 0xa1, 0x6b, - 0xef, 0x8a, 0x38, 0x24, 0x65, 0x7a, 0x1d, 0x56, 0x9f, 0x24, 0x21, 0x97, 0x69, 0x20, 0x24, 0x0f, - 0x89, 0x6b, 0xfd, 0xff, 0x94, 0x54, 0x30, 0xe6, 0x50, 0x11, 0xdd, 0xe1, 0x90, 0x2a, 0xbd, 0x01, - 0xd7, 0x77, 0xe7, 0xdb, 0x1e, 0x52, 0xc3, 0x40, 0x7c, 0xc4, 0x13, 0x74, 0x14, 0x52, 0xa7, 0x0d, - 0xa8, 0xdc, 0x1b, 0x89, 0x4f, 0x23, 0xd2, 0xc0, 0xc5, 0x0e, 0x75, 0xe3, 0x48, 0xc0, 0xfb, 0x7b, - 0x27, 0x8b, 0xad, 0x6b, 0xd0, 0x78, 0xcc, 0x24, 0x1b, 0x48, 0x36, 0x46, 0xfd, 0x56, 0xa1, 0x66, - 0x12, 0xd4, 0x9b, 0xc4, 0x99, 0x01, 0xdb, 0x26, 0xbe, 0x0d, 0x70, 0x97, 0x94, 0x67, 0xc0, 0x5b, - 0xc4, 0xc5, 0x35, 0x3e, 0x9e, 0x08, 0xc5, 0x49, 0x05, 0x35, 0xdd, 0x13, 0x21, 0x27, 0x55, 0x44, - 0x1e, 0x61, 0xcc, 0x91, 0x1a, 0xee, 0x79, 0x0f, 0x7d, 0xa0, 0x2f, 0xce, 0x49, 0x1d, 0xd5, 0x40, - 0x33, 0xf2, 0x90, 0x34, 0xf0, 0xcd, 0x47, 0x93, 0x51, 0x9f, 0xe3, 0x36, 0x01, 0xdf, 0x1c, 0x89, - 0xc1, 0x20, 0xe6, 0x64, 0x15, 0x6d, 0xd0, 0x9d, 0x85, 0x25, 0x59, 0x6b, 0x7f, 0x56, 0x06, 0x17, - 0x1b, 0x1e, 0x74, 0xf9, 0x21, 0x06, 0x9f, 0x75, 0x79, 0x7c, 0xce, 0x03, 0xa7, 0x34, 0x0b, 0x1c, - 0xfa, 0xae, 0xfd, 0xb8, 0xe5, 0x25, 0x52, 0x0f, 0x0a, 0x2e, 0x7e, 0x57, 0x0a, 0xee, 0x28, 0x1a, - 0x71, 0x9b, 0x00, 0xf4, 0x33, 0xe2, 0xd2, 0xe8, 0x87, 0x5c, 0x7b, 0x6f, 0xd9, 0xd7, 0xcf, 0xe8, - 0xec, 0x2c, 0x0c, 0x79, 0xb8, 0xa3, 0x74, 0xc0, 0x97, 0xfd, 0x0c, 0x34, 0x41, 0xc8, 0x14, 0x6f, - 0xd5, 0x96, 0x08, 0x42, 0xbd, 0x7c, 0x0f, 0xc9, 0x7d, 0xc3, 0x35, 0x8b, 0xe1, 0xfa, 0xf2, 0xec, - 0x85, 0xcc, 0xd9, 0xb5, 0x0e, 0x58, 0x07, 0xf7, 0x23, 0x91, 0x25, 0x4e, 0x24, 0x23, 0x0e, 0x7e, - 0x98, 0x03, 0x4c, 0x68, 0xa4, 0x84, 0x8f, 0xc7, 0x51, 0xc8, 0x05, 0x29, 0xe3, 0xe3, 0xce, 0x24, - 0x8c, 0x04, 0x71, 0xb1, 0x58, 0x3d, 0xee, 0xde, 0x27, 0x15, 0xef, 0xb5, 0x42, 0xfe, 0xdd, 0x99, - 0x28, 0x61, 0xc4, 0x68, 0x4f, 0x74, 0x8c, 0x63, 0xf5, 0x79, 0x48, 0x4a, 0xde, 0xb7, 0x91, 0x0e, - 0xb5, 0xd6, 0xb8, 0xb1, 0x9a, 0x92, 0x15, 0x74, 0xab, 0x27, 0xe3, 0x58, 0xb0, 0x30, 0x4a, 0x06, - 0xc4, 0x31, 0x79, 0x3b, 0xb1, 0x6b, 0xde, 0x93, 0x52, 0x60, 0x01, 0x5c, 0x03, 0x98, 0x35, 0xd0, - 0xed, 0xff, 0x6a, 0xce, 0xaa, 0x0b, 0x56, 0xef, 0x54, 0x4c, 0x64, 0xc0, 0x75, 0x36, 0x68, 0xf8, - 0x16, 0xa2, 0x1f, 0x42, 0x05, 0xdf, 0xe3, 0x5c, 0x82, 0x49, 0xe2, 0xf6, 0x52, 0x6d, 0x5b, 0xe7, - 0x38, 0xe2, 0x4f, 0x7d, 0xc3, 0x48, 0xdf, 0x86, 0x86, 0x5c, 0x76, 0x1a, 0x9b, 0x51, 0xd2, 0x2d, - 0x00, 0x16, 0xa8, 0xe8, 0x8c, 0xa3, 0x2c, 0x1b, 0xee, 0x05, 0x4c, 0xfb, 0x97, 0x2e, 0xb8, 0xf8, - 0x70, 0x61, 0x94, 0xda, 0x9b, 0xcb, 0x31, 0x77, 0x96, 0x57, 0x78, 0xc1, 0x1f, 0xb5, 0x7f, 0x97, - 0x0b, 0xfe, 0xfd, 0x21, 0x54, 0x52, 0x21, 0x55, 0xb6, 0x89, 0x25, 0x4d, 0xd1, 0x13, 0x52, 0xf9, - 0x86, 0x91, 0xde, 0x87, 0xda, 0x49, 0x14, 0x2b, 0x2e, 0xcd, 0x60, 0xf9, 0xbc, 0xc6, 0x2e, 0x97, - 0x71, 0x5f, 0x33, 0xf9, 0x19, 0x33, 0x7d, 0x58, 0x34, 0x69, 0x55, 0x4b, 0xea, 0x2c, 0x27, 0xe9, - 0x32, 0x4b, 0xdf, 0x06, 0x12, 0x88, 0x33, 0x2e, 0xb3, 0x77, 0x0f, 0xf8, 0x54, 0x07, 0x51, 0xc3, - 0xbf, 0x80, 0xa7, 0x6d, 0xa8, 0x0f, 0xa3, 0x90, 0x63, 0xf1, 0xd4, 0x91, 0x52, 0xf7, 0x73, 0x98, - 0x3e, 0x80, 0x7a, 0xc0, 0x64, 0xd8, 0xc3, 0x98, 0x6d, 0xbc, 0xb0, 0xf1, 0x91, 0xcd, 0xcf, 0x05, - 0xe0, 0x42, 0x7a, 0xf1, 0xfb, 0x91, 0x6a, 0x81, 0x59, 0x28, 0x83, 0xbd, 0xb7, 0x6c, 0xb0, 0x61, - 0xc6, 0xc3, 0x46, 0x37, 0x0b, 0x93, 0x54, 0x99, 0x14, 0xfa, 0x5d, 0x16, 0xc7, 0x5c, 0x4e, 0x4d, - 0xf7, 0xf7, 0x80, 0x25, 0x7d, 0x96, 0x90, 0xb2, 0x77, 0x0b, 0x5c, 0x2d, 0xb9, 0x01, 0x95, 0xde, - 0x88, 0xc5, 0xb1, 0xe9, 0x18, 0x1f, 0xf1, 0x30, 0x9a, 0x8c, 0x4c, 0x78, 0x3d, 0xc4, 0xf6, 0x8f, - 0x94, 0xda, 0xff, 0x54, 0x86, 0x7a, 0xb6, 0x69, 0xec, 0x74, 0x4e, 0xf9, 0x34, 0xeb, 0x74, 0x4e, - 0xf9, 0x54, 0x77, 0x2c, 0xe9, 0x71, 0x94, 0x46, 0x7d, 0x5b, 0xf2, 0xeb, 0xfe, 0x0c, 0x81, 0x15, - 0xea, 0x69, 0x14, 0xaa, 0xa1, 0x76, 0x9d, 0x8a, 0x6f, 0x00, 0x9c, 0xa2, 0x43, 0xa6, 0xf8, 0x41, - 0x12, 0xc4, 0x93, 0x90, 0x1f, 0x61, 0xaa, 0x33, 0x5d, 0xf2, 0x22, 0x9a, 0xfe, 0x1e, 0x80, 0x8a, - 0x46, 0xfc, 0xbe, 0x90, 0x23, 0xa6, 0x6c, 0x57, 0xf3, 0xce, 0x8b, 0x7d, 0xdc, 0xce, 0x51, 0x2e, - 0xc0, 0x2f, 0x08, 0x43, 0xd1, 0xb8, 0x9a, 0x15, 0x5d, 0xfb, 0x52, 0xa2, 0xbb, 0xb9, 0x00, 0xbf, - 0x20, 0xcc, 0xfb, 0x7d, 0x80, 0xd9, 0x1b, 0xba, 0x09, 0xf4, 0x91, 0x48, 0xd4, 0x70, 0xa7, 0xdf, - 0x97, 0xbb, 0xfc, 0x44, 0x48, 0xde, 0x65, 0x98, 0xa3, 0xbe, 0x02, 0xeb, 0x39, 0x7e, 0xe7, 0x44, - 0x71, 0x89, 0x68, 0x6d, 0xfa, 0xde, 0x50, 0x48, 0x65, 0x6a, 0x9e, 0x7e, 0x7c, 0xd2, 0x23, 0x65, - 0xcc, 0x8b, 0x07, 0xbd, 0x43, 0xe2, 0x7a, 0xb7, 0x00, 0x66, 0x5b, 0xc2, 0x1a, 0x66, 0x9e, 0xde, - 0xdc, 0x36, 0xf5, 0xdd, 0x40, 0xdb, 0x6f, 0x11, 0xa7, 0xfd, 0x67, 0x0e, 0xb8, 0x18, 0x71, 0xd8, - 0x38, 0x16, 0xfd, 0xd9, 0x7c, 0xbe, 0x22, 0xea, 0xcb, 0xe5, 0x09, 0x94, 0x5d, 0xc8, 0x13, 0xde, - 0x57, 0xad, 0x2b, 0xd6, 0xa0, 0xbc, 0x93, 0x06, 0xb6, 0x5f, 0xe6, 0x69, 0x40, 0x9c, 0xf6, 0x5f, - 0xb9, 0x50, 0x35, 0x81, 0x4b, 0x3f, 0x86, 0xba, 0x18, 0x73, 0xc9, 0x94, 0x90, 0xb6, 0x31, 0x7f, - 0xfb, 0x45, 0x02, 0xbf, 0x73, 0x68, 0x99, 0xfd, 0x5c, 0xcc, 0xe2, 0xfe, 0x4a, 0x17, 0xf7, 0x77, - 0x1b, 0x48, 0x16, 0xe3, 0x8f, 0x25, 0xf2, 0xa9, 0xa9, 0x6d, 0x04, 0x2f, 0xe0, 0xe9, 0x11, 0x34, - 0x02, 0x91, 0x84, 0x51, 0xde, 0xa4, 0x37, 0xb7, 0xbf, 0xfd, 0x42, 0x1a, 0xee, 0x65, 0xdc, 0xfe, - 0x4c, 0x10, 0x7d, 0x1d, 0x2a, 0x67, 0x2c, 0x9e, 0x98, 0xaa, 0xbe, 0xba, 0xbd, 0x79, 0x61, 0x00, - 0x3a, 0xc6, 0xb7, 0xbe, 0x21, 0xf2, 0x5e, 0x86, 0x7a, 0xb6, 0x4f, 0x6d, 0xce, 0x24, 0x24, 0x2b, - 0xb4, 0x0a, 0xa5, 0x43, 0x49, 0x1c, 0xef, 0x9f, 0x1d, 0x68, 0xe4, 0x6b, 0x14, 0xaa, 0x2c, 0x16, - 0xb7, 0x1f, 0x4c, 0x58, 0x4c, 0x1c, 0xdd, 0xda, 0x08, 0x65, 0x20, 0xed, 0x48, 0xdf, 0x95, 0x9c, - 0x29, 0x1c, 0xfc, 0x74, 0x76, 0xe0, 0x69, 0x4a, 0x5c, 0x4a, 0xa1, 0x69, 0xd1, 0x87, 0xd2, 0x90, - 0x56, 0xb0, 0xf3, 0xc1, 0xb7, 0x19, 0xa2, 0x6a, 0x92, 0xc9, 0x29, 0x37, 0x9d, 0xdd, 0x47, 0x42, - 0x69, 0xa0, 0x8e, 0xba, 0x1c, 0x24, 0xa4, 0x81, 0x6b, 0x7e, 0x24, 0xd4, 0x41, 0x42, 0x60, 0x56, - 0x7f, 0x57, 0xb3, 0xe5, 0x35, 0xb4, 0xa6, 0xab, 0x7b, 0x1c, 0x1f, 0x24, 0xe4, 0x9a, 0x7d, 0x61, - 0xa0, 0x66, 0xfb, 0x95, 0xab, 0x52, 0x4b, 0xfb, 0x65, 0x4c, 0x42, 0x8a, 0x9f, 0x5f, 0x36, 0x66, - 0xb4, 0xd7, 0xe1, 0xfa, 0xc2, 0xa8, 0xef, 0x9d, 0x40, 0xfd, 0xb1, 0x48, 0x17, 0x8d, 0x52, 0x83, - 0xf2, 0x91, 0x18, 0x9b, 0x6e, 0x77, 0x57, 0x28, 0x25, 0x46, 0xa6, 0xdb, 0x7d, 0xc8, 0x4f, 0x94, - 0xe9, 0x3c, 0xfc, 0x68, 0x30, 0x54, 0xa6, 0x91, 0x3c, 0x48, 0x12, 0x2e, 0x49, 0x05, 0xb7, 0xea, - 0xf3, 0x71, 0xcc, 0x02, 0xec, 0x25, 0x9b, 0x00, 0x1a, 0x7f, 0x3f, 0x92, 0xa9, 0x22, 0x35, 0xef, - 0x3b, 0xb8, 0x9d, 0x68, 0x90, 0x60, 0x97, 0xa1, 0x1f, 0xb4, 0xa8, 0x15, 0x34, 0x9d, 0x06, 0xf7, - 0x78, 0x82, 0x96, 0x76, 0x90, 0xd1, 0x9c, 0xf0, 0xe9, 0x05, 0x4a, 0xbb, 0x0d, 0xa8, 0x05, 0x46, - 0x59, 0xef, 0x31, 0x5c, 0xd3, 0x3e, 0xf4, 0x88, 0x2b, 0x76, 0x98, 0xc4, 0xd3, 0xff, 0xf3, 0x19, - 0xa8, 0xf7, 0x4d, 0xa8, 0xe8, 0xe9, 0x02, 0xad, 0x75, 0x22, 0xc5, 0x48, 0xcb, 0xaa, 0xf8, 0xfa, - 0x19, 0xa5, 0x2b, 0xa1, 0x25, 0x55, 0xfc, 0x92, 0x12, 0xde, 0x3f, 0x94, 0xa1, 0xb6, 0x13, 0x04, - 0x62, 0x92, 0xa8, 0x0b, 0x2b, 0x5f, 0xd6, 0xcd, 0xbe, 0x0d, 0x55, 0x76, 0xc6, 0x14, 0x93, 0x76, - 0x2c, 0xfb, 0xda, 0x42, 0x3c, 0x58, 0x59, 0x9d, 0x1d, 0x4d, 0xe4, 0x5b, 0xe2, 0x36, 0x87, 0xaa, - 0xc1, 0xd0, 0x77, 0xa0, 0xa2, 0xe7, 0x58, 0x3b, 0x17, 0x2d, 0x75, 0xb2, 0x68, 0x38, 0xe8, 0x66, - 0x36, 0xb8, 0x69, 0x85, 0x10, 0xaf, 0xc1, 0xdd, 0x7a, 0xa6, 0x53, 0xfb, 0x3f, 0x1c, 0xa8, 0xee, - 0x89, 0xe4, 0x24, 0x1a, 0xd0, 0xd7, 0xa0, 0xc9, 0x13, 0xf4, 0x8b, 0x2c, 0x26, 0xed, 0xa9, 0xce, - 0x02, 0x16, 0x33, 0x86, 0xc5, 0xf0, 0xfe, 0x64, 0x60, 0x0b, 0x57, 0x11, 0x45, 0xdf, 0x87, 0xb6, - 0x01, 0x7d, 0x1e, 0x73, 0x96, 0xf2, 0xbd, 0x21, 0x4b, 0x12, 0x1e, 0xf7, 0x9e, 0x46, 0x2a, 0x18, - 0xda, 0x13, 0xa0, 0x2b, 0x28, 0xa8, 0x07, 0x6b, 0xe6, 0x6d, 0x6f, 0xcc, 0x02, 0x9e, 0xda, 0x71, - 0x74, 0x0e, 0x47, 0xbf, 0x05, 0x15, 0x7d, 0xe2, 0xde, 0x0a, 0xaf, 0xfe, 0xc6, 0x86, 0xca, 0xfb, - 0x1f, 0x07, 0x56, 0x0b, 0x33, 0xfc, 0xff, 0xe3, 0xb9, 0x43, 0x1b, 0xea, 0xda, 0xd8, 0x4f, 0x64, - 0x6c, 0xa7, 0x8e, 0x1c, 0xc6, 0xde, 0xd3, 0x1e, 0x31, 0xe0, 0x5b, 0x93, 0x34, 0x0b, 0x98, 0x2f, - 0x75, 0xe6, 0xe0, 0x6d, 0xdb, 0x52, 0xb1, 0x0a, 0xb5, 0x27, 0xc9, 0x69, 0x22, 0x9e, 0x26, 0xa6, - 0x5c, 0xe8, 0xa3, 0x9e, 0xb9, 0x29, 0xa1, 0x6e, 0xce, 0x1a, 0x48, 0xd9, 0xfb, 0x89, 0xbb, 0x70, - 0x70, 0x77, 0x0f, 0xaa, 0xe6, 0x2e, 0x42, 0xb7, 0xe9, 0xcd, 0xed, 0x6f, 0x5d, 0xe8, 0xa4, 0x67, - 0xc4, 0x1d, 0x33, 0x7c, 0x16, 0x50, 0xbe, 0x65, 0xa6, 0x0f, 0x0b, 0xe7, 0xb1, 0xa6, 0xb1, 0x7f, - 0xe3, 0x2a, 0x41, 0x99, 0x0f, 0xcd, 0x5d, 0x24, 0xe4, 0x12, 0xda, 0x3f, 0x75, 0x60, 0xe3, 0x32, - 0x12, 0x9c, 0xd6, 0xfa, 0x73, 0x27, 0x6c, 0x19, 0x48, 0x7b, 0x0b, 0xd7, 0x17, 0x25, 0xbd, 0x9b, - 0x3b, 0x2f, 0xa8, 0xc4, 0xfc, 0x65, 0x86, 0xf7, 0x63, 0x07, 0xd6, 0x2f, 0xec, 0xb9, 0x90, 0x17, - 0x01, 0xaa, 0x5d, 0x1e, 0x73, 0xc5, 0xcd, 0x59, 0x5a, 0x7e, 0xba, 0x63, 0x1a, 0x45, 0x1d, 0x90, - 0xa9, 0x19, 0xb5, 0xbb, 0xe6, 0x0e, 0x8a, 0xb8, 0x98, 0xd0, 0xf0, 0xab, 0xa1, 0xa3, 0x0f, 0x70, - 0xde, 0x26, 0xb0, 0x66, 0x4e, 0x23, 0x2d, 0xa6, 0x8a, 0xf9, 0xfd, 0x88, 0x8f, 0xc6, 0x31, 0x53, - 0x9c, 0xd4, 0x3c, 0x1f, 0x6e, 0x5c, 0xa2, 0xa8, 0x5e, 0xfa, 0xd8, 0xaa, 0xd1, 0x04, 0xe8, 0x1e, - 0x67, 0x8b, 0x13, 0x07, 0x6b, 0x52, 0xf7, 0x78, 0x4f, 0x57, 0x25, 0x7b, 0x5c, 0xa0, 0xcb, 0x57, - 0xf7, 0x18, 0xfb, 0xe2, 0x94, 0x94, 0xbd, 0x0f, 0xe0, 0x2b, 0x47, 0x43, 0xc9, 0x59, 0xd8, 0xe5, - 0x7c, 0x1c, 0xa3, 0x77, 0xb1, 0x29, 0x4e, 0x7a, 0x97, 0xf4, 0xa6, 0x1b, 0x50, 0x61, 0x61, 0x28, - 0x8d, 0x41, 0x1b, 0xbe, 0x01, 0xbc, 0x4f, 0x60, 0xd3, 0x08, 0x30, 0xab, 0x7c, 0x3c, 0xe1, 0x13, - 0x7e, 0x2f, 0x51, 0x72, 0x6a, 0x7a, 0xff, 0xec, 0x82, 0xca, 0xd0, 0x58, 0x71, 0x17, 0xf0, 0x18, - 0x31, 0x4a, 0x3f, 0x1d, 0x84, 0x36, 0xd8, 0x72, 0xd8, 0xfb, 0x53, 0x17, 0xe0, 0x30, 0xbf, 0x24, - 0xbb, 0x24, 0x4c, 0x2f, 0x4f, 0xb1, 0x85, 0x31, 0xa6, 0xbc, 0xf4, 0x64, 0xf8, 0x5b, 0xf9, 0xc5, - 0x8b, 0xab, 0xe3, 0x6f, 0xf1, 0xf2, 0x64, 0xa6, 0x87, 0x3d, 0x38, 0xce, 0xef, 0x5c, 0xb0, 0x73, - 0x0f, 0x44, 0xa2, 0xcf, 0x67, 0x6c, 0x58, 0xcf, 0x10, 0x8b, 0x39, 0xa3, 0x7a, 0x31, 0x67, 0x6c, - 0x42, 0x75, 0x18, 0x85, 0x21, 0x4f, 0x74, 0xf3, 0x5c, 0xf7, 0x2d, 0x84, 0x96, 0x41, 0x3b, 0x88, - 0x24, 0x9e, 0x66, 0xc3, 0x4a, 0x06, 0xd3, 0xbb, 0x50, 0x51, 0xfa, 0x2a, 0xb1, 0xae, 0x5d, 0x7c, - 0xb1, 0x8c, 0xcc, 0x6e, 0x57, 0x75, 0xaa, 0x30, 0xb4, 0x98, 0x80, 0xa2, 0xd4, 0x1e, 0xee, 0x86, - 0x7a, 0x98, 0xaa, 0xfb, 0x05, 0x8c, 0xf7, 0xb7, 0x4e, 0x7e, 0x90, 0xde, 0x80, 0x4a, 0x9f, 0xa5, - 0x51, 0x60, 0x8e, 0x92, 0xc6, 0x52, 0x9c, 0x98, 0x53, 0x87, 0x3a, 0xb8, 0x4a, 0x84, 0x82, 0x94, - 0xb0, 0x1d, 0x48, 0x39, 0x16, 0xfe, 0x26, 0xc0, 0xec, 0x22, 0x93, 0xb8, 0xe8, 0xb9, 0x99, 0x55, - 0xcd, 0x49, 0x92, 0x66, 0xad, 0x62, 0x6c, 0x84, 0xf9, 0x39, 0x73, 0x0d, 0x57, 0xd0, 0x99, 0x91, - 0xd4, 0x91, 0x26, 0x11, 0x8a, 0x9b, 0x26, 0x28, 0xc5, 0x8c, 0x4e, 0x00, 0xc5, 0x60, 0x2a, 0xe8, - 0xb3, 0x94, 0x93, 0x0d, 0xef, 0xaf, 0x67, 0xaa, 0xbd, 0x91, 0x97, 0xd9, 0x65, 0x3e, 0xd2, 0xb3, - 0x0a, 0xf1, 0x3d, 0x58, 0x97, 0xfc, 0x07, 0x93, 0x68, 0xee, 0xc6, 0xe6, 0x39, 0xde, 0x72, 0x91, - 0xc3, 0x3b, 0x83, 0xf5, 0x0c, 0xf8, 0x5e, 0xa4, 0x86, 0xba, 0xf5, 0xa4, 0x77, 0x0b, 0x57, 0x4a, - 0x8e, 0x2d, 0x48, 0xcf, 0x10, 0x39, 0xbb, 0x42, 0xca, 0xdb, 0xda, 0xd2, 0x32, 0x6d, 0xed, 0xdf, - 0xd4, 0xae, 0x1c, 0x26, 0xdf, 0x86, 0xea, 0x89, 0x99, 0xc7, 0xcc, 0x1c, 0xf2, 0xb5, 0x67, 0xac, - 0x6f, 0x67, 0x2e, 0x4b, 0x7c, 0xe9, 0xf9, 0xc4, 0xbb, 0xb0, 0x16, 0xf2, 0x13, 0x36, 0x89, 0xd5, - 0xf1, 0x12, 0x5d, 0xf7, 0x1c, 0x2d, 0xdd, 0xd5, 0xa3, 0x21, 0xeb, 0x99, 0x23, 0xa0, 0x8a, 0x56, - 0xc5, 0x7b, 0x86, 0x2a, 0x3a, 0x13, 0x1b, 0x4a, 0xbf, 0xc0, 0x55, 0x88, 0x8e, 0xea, 0x65, 0xd1, - 0x81, 0x3d, 0x9f, 0x8d, 0x9b, 0x1c, 0x36, 0x43, 0x8a, 0x79, 0xce, 0xc4, 0xeb, 0x9b, 0xd8, 0xba, - 0x7f, 0x01, 0x8f, 0xb9, 0x6d, 0x34, 0x89, 0x55, 0x64, 0x0f, 0x1e, 0x0c, 0xb0, 0x78, 0x61, 0xdf, - 0xb8, 0x78, 0x61, 0xff, 0x3e, 0x40, 0xca, 0x31, 0x95, 0x75, 0xa3, 0x40, 0xb5, 0xd6, 0xb4, 0xe7, - 0x6c, 0x3d, 0x6b, 0x6f, 0x87, 0x3a, 0xd2, 0xfd, 0x02, 0x07, 0xea, 0x3f, 0x62, 0xe7, 0x7b, 0xd8, - 0xed, 0xb5, 0xae, 0xe9, 0x7e, 0x32, 0x87, 0x17, 0x73, 0x46, 0xf3, 0x62, 0xce, 0xb8, 0x0b, 0x95, - 0x34, 0x10, 0x63, 0xae, 0x2f, 0x4d, 0x9f, 0xfd, 0x7d, 0x3b, 0x3d, 0x24, 0xf2, 0x0d, 0xad, 0x3e, - 0xd3, 0xc7, 0x54, 0x2d, 0xa4, 0xbe, 0x2e, 0x6d, 0xf8, 0x19, 0xd8, 0xfe, 0x85, 0x03, 0x55, 0xa3, - 0xe3, 0x65, 0x5d, 0xac, 0x9e, 0x19, 0x4a, 0x85, 0xab, 0x89, 0xfc, 0x0a, 0xa0, 0x5c, 0xb8, 0x02, - 0xa0, 0xef, 0x66, 0x3a, 0x99, 0x04, 0xfa, 0xea, 0xd5, 0xc6, 0x98, 0x53, 0xcd, 0x7b, 0x1d, 0x2a, - 0x1a, 0xc6, 0x0c, 0x10, 0x8b, 0x80, 0xc5, 0x66, 0x06, 0x97, 0xb3, 0x7a, 0x06, 0x99, 0x4b, 0x93, - 0x92, 0xf7, 0xfd, 0x8c, 0x1a, 0xb2, 0xc6, 0xc5, 0x34, 0x3d, 0xb8, 0x1a, 0x71, 0xe8, 0x06, 0x90, - 0x94, 0xab, 0xc3, 0x93, 0xa3, 0x21, 0xef, 0xb1, 0x11, 0xd7, 0x79, 0xa9, 0x44, 0x5b, 0xb0, 0x61, - 0x68, 0xd3, 0xf9, 0x37, 0xba, 0x34, 0xc7, 0x51, 0x5f, 0x32, 0x39, 0x25, 0xae, 0xf7, 0xbe, 0x3e, - 0x73, 0xc8, 0xbc, 0x6f, 0x35, 0xff, 0xc3, 0xc4, 0x64, 0xc2, 0x90, 0x4b, 0x4c, 0x95, 0xe6, 0x44, - 0x88, 0x99, 0x66, 0xdd, 0x9c, 0x86, 0x1a, 0xad, 0xcb, 0xde, 0x6e, 0xa1, 0x05, 0x98, 0xaf, 0x45, - 0xce, 0xb2, 0xb5, 0xc8, 0x7b, 0x00, 0xd7, 0x33, 0xb4, 0x31, 0x16, 0x96, 0xa7, 0x9a, 0x18, 0x17, - 0xe5, 0x3c, 0xcf, 0xd7, 0x32, 0xf2, 0xdb, 0x7f, 0x5e, 0x86, 0xe6, 0x7c, 0x3d, 0xd0, 0xf3, 0x94, - 0xd1, 0xfd, 0x30, 0x0e, 0xcd, 0xc0, 0xb5, 0x8b, 0x81, 0x11, 0xc8, 0xc9, 0xa8, 0x9f, 0x9a, 0x34, - 0xaf, 0x1b, 0x48, 0x82, 0xaf, 0x1e, 0x9b, 0xec, 0xaf, 0x11, 0xeb, 0xf8, 0x6a, 0x5f, 0x8c, 0x38, - 0xb9, 0x59, 0xbc, 0x29, 0x7c, 0x23, 0xbb, 0x53, 0xd4, 0xe9, 0xfa, 0x43, 0x2c, 0x0e, 0x3d, 0xae, - 0xc8, 0x0e, 0x36, 0x36, 0xbd, 0xa3, 0x59, 0x56, 0x26, 0x9f, 0xd0, 0x86, 0x3d, 0xc1, 0xfe, 0x51, - 0x89, 0x5e, 0x2b, 0xf4, 0x38, 0x3f, 0x2f, 0xd1, 0x0d, 0xb8, 0xbe, 0x3b, 0x49, 0xc2, 0x98, 0x87, - 0x39, 0xf6, 0xef, 0x34, 0x56, 0xdf, 0x33, 0x28, 0x3d, 0x45, 0x6a, 0x21, 0x3f, 0xc3, 0x8f, 0x79, - 0xa3, 0x80, 0xcd, 0xdb, 0x9e, 0xbf, 0x58, 0x7c, 0x93, 0x4b, 0xfa, 0xcb, 0xa2, 0xfc, 0x9c, 0xfe, - 0x47, 0x2e, 0x62, 0x0f, 0x92, 0x90, 0x9f, 0x17, 0xb0, 0x3f, 0x76, 0xe9, 0x26, 0xac, 0x5b, 0xda, - 0x82, 0xf2, 0x7f, 0xe4, 0xd2, 0x1b, 0xd0, 0xdc, 0x31, 0x66, 0xb7, 0x56, 0x21, 0x3f, 0xc1, 0x79, - 0xd7, 0xed, 0xe2, 0x1a, 0x7f, 0xec, 0xd2, 0x75, 0x58, 0xfb, 0x9e, 0x90, 0xa7, 0xba, 0x88, 0xa1, - 0x6d, 0x7f, 0x8a, 0xbd, 0x5e, 0x23, 0x47, 0x91, 0x3f, 0x71, 0x6f, 0xff, 0xa3, 0x03, 0xcd, 0xf9, - 0xfc, 0x8b, 0xc6, 0x8b, 0x45, 0x32, 0xc0, 0xd8, 0x32, 0x67, 0xee, 0xe9, 0x50, 0x48, 0xa5, 0x41, - 0xed, 0xf8, 0x89, 0xbe, 0x5c, 0x31, 0x0d, 0x65, 0xaa, 0x98, 0x9a, 0xa4, 0xe6, 0x1c, 0x4b, 0xb1, - 0x01, 0x59, 0xc5, 0x2f, 0x12, 0xe2, 0xf2, 0x6e, 0x5e, 0x6c, 0x2b, 0x28, 0x31, 0xc8, 0xee, 0x6a, - 0xaa, 0x48, 0x3a, 0x91, 0xb1, 0x29, 0xba, 0x7c, 0xc4, 0xa2, 0xd8, 0xdc, 0x28, 0x8d, 0x87, 0xd8, - 0x3a, 0x36, 0x0c, 0x56, 0x7c, 0x1a, 0x99, 0xbb, 0x1b, 0x1b, 0x50, 0x21, 0xea, 0x91, 0xbb, 0x24, - 0xe1, 0xbb, 0xb7, 0xff, 0xe5, 0xf3, 0x2d, 0xe7, 0xb3, 0xcf, 0xb7, 0x9c, 0x7f, 0xff, 0x7c, 0xcb, - 0xf9, 0xd9, 0x17, 0x5b, 0x2b, 0x9f, 0x7d, 0xb1, 0xb5, 0xf2, 0xcb, 0x2f, 0xb6, 0x56, 0xbe, 0x4f, - 0x16, 0x7f, 0x11, 0xeb, 0x57, 0x75, 0x59, 0xb8, 0xfb, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x15, - 0xd6, 0xae, 0x62, 0x3d, 0x26, 0x00, 0x00, + 0x0b, 0x86, 0x3c, 0x38, 0xe5, 0xa1, 0x0d, 0xc7, 0x0c, 0xc4, 0x2d, 0x09, 0x0a, 0x05, 0xdb, 0x00, + 0xda, 0xe0, 0x81, 0x48, 0xee, 0x8d, 0xc4, 0xa7, 0x91, 0xb6, 0x1a, 0x1a, 0x3c, 0x43, 0x64, 0xa3, + 0x07, 0xb8, 0x03, 0xad, 0xda, 0x6c, 0x54, 0x23, 0xda, 0xf7, 0xa0, 0xa2, 0xe7, 0x46, 0x3f, 0x33, + 0x3a, 0x9b, 0xe6, 0xef, 0xb5, 0xe5, 0x74, 0xb6, 0x2a, 0xb7, 0x7f, 0x51, 0x02, 0x17, 0x61, 0x7a, + 0x1b, 0x2a, 0x92, 0x25, 0x03, 0xb3, 0x01, 0x17, 0x7b, 0x48, 0x1f, 0xc7, 0x7c, 0x43, 0x42, 0x3f, + 0xb0, 0x1b, 0x6d, 0x8c, 0xfc, 0xcd, 0xe5, 0x66, 0x2c, 0x6c, 0x3a, 0x9a, 0x63, 0xcc, 0x24, 0x1b, + 0x59, 0x2f, 0x34, 0x80, 0xf7, 0x73, 0x07, 0x5c, 0x24, 0xa2, 0x1b, 0xb0, 0xde, 0x53, 0x32, 0x3a, + 0xe5, 0x6a, 0x28, 0xc5, 0x64, 0x30, 0x34, 0xe1, 0xf7, 0x80, 0x4f, 0x4d, 0xbc, 0x39, 0x98, 0x4a, + 0x0e, 0x14, 0x8b, 0xa3, 0x80, 0x94, 0x30, 0x2c, 0x76, 0x45, 0x1c, 0x92, 0x32, 0xbd, 0x06, 0xab, + 0x4f, 0x92, 0x90, 0xcb, 0x34, 0x10, 0x92, 0x87, 0xc4, 0xb5, 0xb1, 0x73, 0x4a, 0x2a, 0x18, 0xaf, + 0xa8, 0x88, 0xee, 0x8e, 0x48, 0x95, 0x5e, 0x87, 0x6b, 0xbb, 0xf3, 0x2d, 0x13, 0xa9, 0x61, 0x10, + 0x3f, 0xe2, 0x09, 0x3a, 0x19, 0xa9, 0xd3, 0x06, 0x54, 0xf4, 0x2e, 0x90, 0x06, 0x4e, 0x76, 0xa8, + 0x9b, 0x4e, 0x02, 0xde, 0x3f, 0x39, 0x59, 0x5c, 0xae, 0x43, 0xe3, 0x31, 0x93, 0x6c, 0x20, 0xd9, + 0x18, 0xf5, 0x5b, 0x85, 0x9a, 0x49, 0x6e, 0x6f, 0x12, 0x67, 0x06, 0x6c, 0x9b, 0xdc, 0x60, 0x80, + 0xbb, 0xa4, 0x3c, 0x03, 0xde, 0x22, 0x2e, 0xce, 0xf1, 0xf1, 0x44, 0x28, 0x4e, 0x2a, 0xa8, 0xe9, + 0x9e, 0x08, 0x39, 0xa9, 0x22, 0xf2, 0x08, 0xe3, 0x95, 0xd4, 0x70, 0xcd, 0x7b, 0xe8, 0x3f, 0x7d, + 0x71, 0x4e, 0xea, 0xa8, 0x06, 0x9a, 0x91, 0x87, 0xa4, 0x81, 0x23, 0x1f, 0x4d, 0x46, 0x7d, 0x8e, + 0xcb, 0x04, 0x1c, 0x39, 0x12, 0x83, 0x41, 0xcc, 0xc9, 0x2a, 0xda, 0xa0, 0x3b, 0x0b, 0x69, 0xb2, + 0x86, 0x33, 0xee, 0xb1, 0x38, 0x16, 0x13, 0x45, 0xd6, 0xdb, 0x9f, 0x95, 0xc1, 0xc5, 0xce, 0x09, + 0x63, 0x67, 0x88, 0x51, 0x6c, 0x63, 0x07, 0xbf, 0xf3, 0x08, 0x2c, 0xcd, 0x22, 0x90, 0xbe, 0x6b, + 0x77, 0xba, 0xbc, 0x44, 0x0e, 0x43, 0xc1, 0xc5, 0x4d, 0xa6, 0xe0, 0x8e, 0xa2, 0x11, 0xb7, 0x99, + 0x44, 0x7f, 0x23, 0x2e, 0x8d, 0x7e, 0xc8, 0x75, 0x18, 0x94, 0x7d, 0xfd, 0x8d, 0x51, 0xc3, 0xc2, + 0x90, 0x87, 0x3b, 0x4a, 0xc7, 0x40, 0xd9, 0xcf, 0x40, 0x13, 0xcd, 0x4c, 0x19, 0xef, 0x7f, 0x5e, + 0x34, 0xeb, 0xe9, 0x7b, 0x48, 0xee, 0x1b, 0xae, 0x59, 0x32, 0xa8, 0x2f, 0xcf, 0x5e, 0x48, 0xc1, + 0x5d, 0xeb, 0x8d, 0x75, 0x70, 0x3f, 0x12, 0x59, 0x06, 0x46, 0x32, 0xe2, 0xe0, 0x2e, 0xe9, 0x30, + 0x24, 0x25, 0xfc, 0x3c, 0x8e, 0x42, 0x2e, 0x48, 0x19, 0x3f, 0x77, 0x26, 0x61, 0x24, 0x88, 0x8b, + 0x55, 0xef, 0x71, 0xf7, 0x3e, 0xa9, 0x78, 0xaf, 0x15, 0x12, 0xf9, 0xce, 0x44, 0x09, 0x23, 0x46, + 0xbb, 0xa5, 0x63, 0xbc, 0xac, 0xcf, 0x43, 0x52, 0xf2, 0xbe, 0x8d, 0x74, 0xa8, 0xb5, 0xc6, 0x8d, + 0xd5, 0x94, 0xac, 0xa0, 0x8f, 0x3d, 0x19, 0xc7, 0x82, 0x85, 0x51, 0x32, 0x20, 0x8e, 0x29, 0x00, + 0x89, 0x9d, 0xf3, 0x9e, 0x94, 0x02, 0x2b, 0xe9, 0x1a, 0xc0, 0xac, 0x13, 0x6f, 0xff, 0x77, 0x73, + 0x56, 0xa6, 0xb0, 0x0d, 0x48, 0xc5, 0x44, 0x06, 0x5c, 0xa7, 0x86, 0x86, 0x6f, 0x21, 0xfa, 0x21, + 0x54, 0x70, 0x1c, 0x0f, 0x38, 0x98, 0x31, 0x6e, 0x2f, 0xd5, 0xff, 0x75, 0x8e, 0x23, 0xfe, 0xd4, + 0x37, 0x8c, 0xf4, 0x6d, 0x68, 0xc8, 0x65, 0x8f, 0x75, 0x33, 0x4a, 0x7a, 0x03, 0x80, 0x05, 0x2a, + 0x3a, 0xe3, 0x28, 0xcb, 0xc6, 0x7e, 0x01, 0xd3, 0xfe, 0xa5, 0x0b, 0x2e, 0x7e, 0x5c, 0x38, 0x93, + 0xed, 0xcd, 0x25, 0x9c, 0x3b, 0xcb, 0x2b, 0xbc, 0xe0, 0x8f, 0xda, 0xbf, 0xcb, 0x05, 0xff, 0xfe, + 0x10, 0x2a, 0xa9, 0x90, 0x2a, 0x5b, 0xc4, 0x92, 0xa6, 0xe8, 0x09, 0xa9, 0x7c, 0xc3, 0x48, 0xef, + 0x43, 0xed, 0x24, 0x8a, 0x15, 0x97, 0xe6, 0x84, 0xfa, 0xbc, 0x0e, 0x31, 0x97, 0x71, 0x5f, 0x33, + 0xf9, 0x19, 0x33, 0x7d, 0x58, 0x34, 0x69, 0x55, 0x4b, 0xea, 0x2c, 0x27, 0xe9, 0x32, 0x4b, 0xdf, + 0x06, 0x12, 0x88, 0x33, 0x2e, 0xb3, 0xb1, 0x07, 0x7c, 0x6a, 0x4b, 0xc8, 0x05, 0x3c, 0x6d, 0x43, + 0x7d, 0x18, 0x85, 0x1c, 0xab, 0xb0, 0x8e, 0x94, 0xba, 0x9f, 0xc3, 0xf4, 0x01, 0xd4, 0x03, 0x26, + 0xc3, 0x1e, 0xc6, 0x6c, 0xe3, 0x85, 0x8d, 0x8f, 0x6c, 0x7e, 0x2e, 0x00, 0x27, 0xd2, 0x93, 0xdf, + 0x8f, 0x54, 0x0b, 0xcc, 0x44, 0x19, 0xec, 0xbd, 0x65, 0x83, 0x0d, 0xd3, 0x1f, 0x76, 0xcc, 0x59, + 0x98, 0xa4, 0xca, 0xe4, 0xd3, 0xef, 0xb2, 0x38, 0xe6, 0x72, 0x6a, 0xda, 0xc8, 0x07, 0x2c, 0xe9, + 0xb3, 0x84, 0x94, 0xbd, 0x5b, 0xe0, 0x6a, 0xc9, 0x0d, 0xa8, 0xf4, 0x46, 0x2c, 0x8e, 0x4d, 0xeb, + 0xf9, 0x88, 0x87, 0xd1, 0x64, 0x64, 0xc2, 0xeb, 0x21, 0xf6, 0x91, 0xa4, 0xd4, 0xfe, 0x87, 0x32, + 0xd4, 0xb3, 0x45, 0x63, 0xcb, 0x74, 0xca, 0xa7, 0x59, 0xcb, 0x74, 0xca, 0xa7, 0xba, 0xd6, 0xa6, + 0xc7, 0x51, 0x1a, 0xf5, 0x6d, 0xef, 0x50, 0xf7, 0x67, 0x08, 0x2c, 0x57, 0x4f, 0xa3, 0x50, 0x0d, + 0xb5, 0xeb, 0x54, 0x7c, 0x03, 0xe0, 0x71, 0x3c, 0x64, 0x8a, 0x1f, 0x24, 0x41, 0x3c, 0x09, 0xf9, + 0x11, 0xa6, 0x3a, 0xd3, 0x6e, 0x2f, 0xa2, 0xe9, 0xef, 0x00, 0xa8, 0x68, 0xc4, 0xef, 0x0b, 0x39, + 0x62, 0xca, 0xb6, 0x47, 0xef, 0xbc, 0xd8, 0xe6, 0x76, 0x8e, 0x72, 0x01, 0x7e, 0x41, 0x18, 0x8a, + 0xc6, 0xd9, 0xac, 0xe8, 0xda, 0x97, 0x12, 0xdd, 0xcd, 0x05, 0xf8, 0x05, 0x61, 0xde, 0xef, 0x02, + 0xcc, 0x46, 0xe8, 0x16, 0xd0, 0x47, 0x22, 0x51, 0xc3, 0x9d, 0x7e, 0x5f, 0xee, 0xf2, 0x13, 0x21, + 0x79, 0x97, 0x61, 0x8e, 0xfa, 0x0a, 0x6c, 0xe4, 0xf8, 0x9d, 0x13, 0xc5, 0x25, 0xa2, 0xb5, 0xe9, + 0x7b, 0x43, 0x21, 0x95, 0x29, 0x80, 0xfa, 0xf3, 0x49, 0x8f, 0x94, 0x31, 0x2f, 0x1e, 0xf4, 0x0e, + 0x89, 0xeb, 0xdd, 0x02, 0x98, 0x2d, 0x09, 0x0b, 0x9a, 0xf9, 0x7a, 0x73, 0xdb, 0x14, 0x7b, 0x03, + 0x6d, 0xbf, 0x45, 0x9c, 0xf6, 0x9f, 0x38, 0xe0, 0x62, 0xc4, 0x61, 0x07, 0x5a, 0xf4, 0x67, 0xb3, + 0x7d, 0x45, 0xd4, 0x97, 0xcb, 0x13, 0x28, 0xbb, 0x90, 0x27, 0xbc, 0xaf, 0x5a, 0x57, 0xac, 0x41, + 0x79, 0x27, 0x0d, 0x6c, 0xe3, 0xcd, 0xd3, 0x80, 0x38, 0xed, 0xbf, 0x70, 0xa1, 0x6a, 0x02, 0x97, + 0x7e, 0x0c, 0x75, 0x31, 0xe6, 0x92, 0x29, 0x21, 0x6d, 0x87, 0xff, 0xf6, 0x8b, 0x04, 0x7e, 0xe7, + 0xd0, 0x32, 0xfb, 0xb9, 0x98, 0xc5, 0xf5, 0x95, 0x2e, 0xae, 0xef, 0x36, 0x90, 0x2c, 0xc6, 0x1f, + 0x4b, 0xe4, 0x53, 0x53, 0xdb, 0x51, 0x5e, 0xc0, 0xd3, 0x23, 0x68, 0x04, 0x22, 0x09, 0xa3, 0xbc, + 0xdb, 0x6f, 0x6e, 0x7f, 0xfb, 0x85, 0x34, 0xdc, 0xcb, 0xb8, 0xfd, 0x99, 0x20, 0xfa, 0x3a, 0x54, + 0xce, 0x58, 0x3c, 0x31, 0x55, 0x7d, 0x75, 0x7b, 0xeb, 0xc2, 0x49, 0xea, 0x18, 0x47, 0x7d, 0x43, + 0xe4, 0xbd, 0x0c, 0xf5, 0x6c, 0x9d, 0xda, 0x9c, 0x49, 0x48, 0x56, 0x68, 0x15, 0x4a, 0x87, 0x92, + 0x38, 0xde, 0xbf, 0x38, 0xd0, 0xc8, 0xe7, 0x28, 0x54, 0x59, 0x2c, 0x6e, 0x3f, 0x98, 0xb0, 0x98, + 0x38, 0xba, 0xcf, 0x11, 0xca, 0x40, 0xda, 0x91, 0xbe, 0x2b, 0x39, 0x53, 0x78, 0x82, 0xd4, 0xd9, + 0x81, 0xa7, 0x29, 0x71, 0x29, 0x85, 0xa6, 0x45, 0x1f, 0x4a, 0x43, 0x5a, 0xc1, 0x36, 0x08, 0x47, + 0x33, 0x44, 0xd5, 0x24, 0x93, 0x53, 0x6e, 0xda, 0xbc, 0x8f, 0x84, 0xd2, 0x40, 0x1d, 0x75, 0x39, + 0x48, 0x48, 0x03, 0xe7, 0xfc, 0x48, 0xa8, 0x83, 0x84, 0xc0, 0xac, 0xfe, 0xae, 0x66, 0xd3, 0x6b, + 0x68, 0x4d, 0x57, 0xf7, 0x38, 0x3e, 0x48, 0xc8, 0xba, 0x1d, 0x30, 0x50, 0xb3, 0xfd, 0xca, 0x55, + 0xa9, 0xa5, 0xfd, 0x32, 0x26, 0x21, 0xc5, 0xcf, 0x2f, 0x3b, 0xaf, 0xb4, 0x37, 0xe0, 0xda, 0xc2, + 0x9d, 0x81, 0x77, 0x02, 0xf5, 0xc7, 0x22, 0x5d, 0x34, 0x4a, 0x0d, 0xca, 0x47, 0x62, 0x6c, 0x5a, + 0xdf, 0x5d, 0xa1, 0x94, 0x18, 0x99, 0xd6, 0xf7, 0x21, 0x3f, 0x51, 0xa6, 0xf3, 0xf0, 0xa3, 0xc1, + 0x50, 0x99, 0xae, 0xf2, 0x20, 0x49, 0xb8, 0x24, 0x15, 0x5c, 0xaa, 0xcf, 0xc7, 0x31, 0x0b, 0xb0, + 0xb1, 0x6c, 0x02, 0x68, 0xfc, 0xfd, 0x48, 0xa6, 0x8a, 0xd4, 0xbc, 0xef, 0xe0, 0x72, 0xa2, 0x41, + 0x82, 0x5d, 0x86, 0xfe, 0xd0, 0xa2, 0x56, 0xd0, 0x74, 0x1a, 0xdc, 0xe3, 0x09, 0x5a, 0xda, 0x41, + 0x46, 0x73, 0x55, 0xa8, 0x27, 0x28, 0xed, 0x36, 0xa0, 0x16, 0x18, 0x65, 0xbd, 0xc7, 0xb0, 0xae, + 0x7d, 0xe8, 0x11, 0x57, 0xec, 0x30, 0x89, 0xa7, 0xff, 0xe7, 0xcb, 0x54, 0xef, 0x9b, 0x50, 0xd1, + 0x47, 0x0d, 0xb4, 0xd6, 0x89, 0x14, 0x23, 0x2d, 0xab, 0xe2, 0xeb, 0x6f, 0x94, 0xae, 0x84, 0x96, + 0x54, 0xf1, 0x4b, 0x4a, 0x78, 0x7f, 0x57, 0x86, 0xda, 0x4e, 0x10, 0x88, 0x49, 0xa2, 0x2e, 0xcc, + 0x7c, 0x59, 0x37, 0xfb, 0x36, 0x54, 0xd9, 0x19, 0x53, 0x4c, 0xda, 0xf3, 0xdd, 0xd7, 0x16, 0xe2, + 0xc1, 0xca, 0xea, 0xec, 0x68, 0x22, 0xdf, 0x12, 0xb7, 0x39, 0x54, 0x0d, 0x86, 0xbe, 0x03, 0x15, + 0x7d, 0x20, 0xb6, 0x87, 0xa4, 0xa5, 0xae, 0x28, 0x0d, 0x07, 0xdd, 0xca, 0x4e, 0x80, 0x5a, 0x21, + 0xc4, 0x6b, 0x70, 0xb7, 0x9e, 0xe9, 0xd4, 0xfe, 0x2f, 0x07, 0xaa, 0x7b, 0x22, 0x39, 0x89, 0x06, + 0xf4, 0x35, 0x68, 0xf2, 0x04, 0xfd, 0x22, 0x8b, 0x49, 0x7b, 0x3d, 0xb4, 0x80, 0xc5, 0x8c, 0x61, + 0x31, 0xbc, 0x3f, 0x19, 0xd8, 0xc2, 0x55, 0x44, 0xd1, 0xf7, 0xa1, 0x6d, 0x40, 0x9f, 0xc7, 0x9c, + 0xa5, 0x7c, 0x6f, 0xc8, 0x92, 0x84, 0xc7, 0xbd, 0xa7, 0x91, 0x0a, 0x86, 0xf6, 0x2a, 0xe9, 0x0a, + 0x0a, 0xea, 0xc1, 0x9a, 0x19, 0xed, 0x8d, 0x59, 0xc0, 0x53, 0x7b, 0xae, 0x9d, 0xc3, 0xd1, 0x6f, + 0x41, 0x45, 0x5f, 0xdd, 0xb7, 0xc2, 0xab, 0xf7, 0xd8, 0x50, 0x79, 0xff, 0xe3, 0xc0, 0x6a, 0xe1, + 0x32, 0xe0, 0xff, 0xf1, 0x02, 0xa3, 0x0d, 0x75, 0x6d, 0xec, 0x27, 0x32, 0xb6, 0xa7, 0x8e, 0x1c, + 0xc6, 0xde, 0xd3, 0xde, 0x55, 0xe0, 0xa8, 0x49, 0x9a, 0x05, 0xcc, 0x97, 0xba, 0xbc, 0xf0, 0xb6, + 0x6d, 0xa9, 0x58, 0x85, 0xda, 0x93, 0xe4, 0x34, 0x11, 0x4f, 0x13, 0x53, 0x2e, 0xf4, 0x9d, 0xd1, + 0xdc, 0x29, 0xa1, 0x6e, 0x2e, 0x2d, 0x48, 0xd9, 0xfb, 0x89, 0xbb, 0x70, 0x03, 0x78, 0x0f, 0xaa, + 0xe6, 0x51, 0x43, 0xb7, 0xe9, 0xcd, 0xed, 0x6f, 0x5d, 0xe8, 0xa4, 0x67, 0xc4, 0x1d, 0x73, 0x12, + 0x2d, 0xa0, 0x7c, 0xcb, 0x4c, 0x1f, 0x16, 0x2e, 0x76, 0x4d, 0x63, 0xff, 0xc6, 0x55, 0x82, 0x32, + 0x1f, 0x9a, 0x7b, 0x91, 0xc8, 0x25, 0xb4, 0x7f, 0xea, 0xc0, 0xe6, 0x65, 0x24, 0x78, 0x5a, 0xeb, + 0xcf, 0x5d, 0xd5, 0x65, 0x20, 0xed, 0x2d, 0xbc, 0x83, 0x94, 0xf4, 0x6a, 0xee, 0xbc, 0xa0, 0x12, + 0xf3, 0xaf, 0x22, 0xde, 0x8f, 0x1d, 0xd8, 0xb8, 0xb0, 0xe6, 0x42, 0x5e, 0x04, 0xa8, 0x76, 0x79, + 0xcc, 0x15, 0x37, 0x97, 0x72, 0xf9, 0x35, 0x91, 0x69, 0x14, 0x75, 0x40, 0xa6, 0xe6, 0xdc, 0xdd, + 0x35, 0x8f, 0x59, 0xc4, 0xc5, 0x84, 0x86, 0xbb, 0x86, 0x8e, 0x3e, 0xc0, 0xc3, 0x37, 0x81, 0x35, + 0x73, 0xad, 0x69, 0x31, 0x55, 0xcc, 0xef, 0x47, 0x7c, 0x34, 0x8e, 0x99, 0xe2, 0xa4, 0xe6, 0xf9, + 0x70, 0xfd, 0x12, 0x45, 0xf5, 0xd4, 0xc7, 0x56, 0x8d, 0x26, 0x40, 0xf7, 0x38, 0x9b, 0x9c, 0x38, + 0x58, 0x93, 0xba, 0xc7, 0x7b, 0xba, 0x2a, 0xd9, 0xbb, 0x03, 0x5d, 0xbe, 0xba, 0xc7, 0xd8, 0x17, + 0xa7, 0xa4, 0xec, 0x7d, 0x00, 0x5f, 0x39, 0x1a, 0x4a, 0xce, 0xc2, 0x2e, 0xe7, 0xe3, 0x18, 0xbd, + 0x8b, 0x4d, 0xf1, 0xa4, 0x77, 0x49, 0x6f, 0xba, 0x09, 0x15, 0x16, 0x86, 0xd2, 0x18, 0xb4, 0xe1, + 0x1b, 0xc0, 0xfb, 0x04, 0xb6, 0x8c, 0x00, 0x33, 0xcb, 0xc7, 0x13, 0x3e, 0xe1, 0xf7, 0x12, 0x25, + 0xa7, 0xa6, 0xf7, 0xcf, 0x5e, 0xba, 0x0c, 0x8d, 0x15, 0x77, 0x01, 0x8f, 0x11, 0xa3, 0xf4, 0xd7, + 0x41, 0x68, 0x83, 0x2d, 0x87, 0xbd, 0x3f, 0x76, 0x01, 0x0e, 0xf3, 0xd7, 0xb6, 0x4b, 0xc2, 0xf4, + 0xf2, 0x14, 0x5b, 0x38, 0xc6, 0x94, 0x97, 0x3e, 0x19, 0xfe, 0x46, 0xfe, 0x82, 0xe3, 0xea, 0xf8, + 0x5b, 0x7c, 0x85, 0x99, 0xe9, 0x61, 0x6f, 0xa0, 0xf3, 0xc7, 0x9b, 0xb9, 0x3b, 0xb4, 0xca, 0xe2, + 0x1d, 0xda, 0x42, 0xce, 0xa8, 0x5e, 0xcc, 0x19, 0x5b, 0x50, 0x1d, 0x46, 0x61, 0xc8, 0x13, 0xdd, + 0x3c, 0xd7, 0x7d, 0x0b, 0xa1, 0x65, 0xd0, 0x0e, 0x22, 0x89, 0xa7, 0xd9, 0x61, 0x25, 0x83, 0xe9, + 0x5d, 0xa8, 0x28, 0xfd, 0x26, 0x59, 0xd7, 0x2e, 0xbe, 0x58, 0x46, 0x66, 0xcf, 0xb4, 0x3a, 0x55, + 0x18, 0x5a, 0x4c, 0x40, 0x51, 0x6a, 0x6f, 0x89, 0x43, 0x7d, 0x98, 0xaa, 0xfb, 0x05, 0x8c, 0xf7, + 0xd7, 0x4e, 0x7e, 0x23, 0xdf, 0x80, 0x4a, 0x9f, 0xa5, 0x51, 0x60, 0xee, 0x95, 0xc6, 0x52, 0x9c, + 0x98, 0x5b, 0x87, 0x3a, 0xb8, 0x4a, 0x84, 0x82, 0x94, 0xb0, 0x1d, 0x48, 0x39, 0x16, 0xfe, 0x26, + 0xc0, 0xec, 0x45, 0x94, 0xb8, 0xe8, 0xb9, 0x99, 0x55, 0xcd, 0xb5, 0x92, 0x66, 0xad, 0x62, 0x6c, + 0x84, 0xf9, 0x85, 0x75, 0x0d, 0x67, 0xd0, 0x99, 0x91, 0xd4, 0x91, 0x26, 0x11, 0x8a, 0x9b, 0x26, + 0x28, 0xc5, 0x8c, 0x4e, 0x00, 0xc5, 0x60, 0x2a, 0xe8, 0xb3, 0x94, 0x93, 0x4d, 0xef, 0x2f, 0x67, + 0xaa, 0xbd, 0x91, 0x97, 0xd9, 0x65, 0x36, 0xe9, 0x59, 0x85, 0xf8, 0x1e, 0x6c, 0x48, 0xfe, 0x83, + 0x49, 0x34, 0xf7, 0xf4, 0xf3, 0x1c, 0x6f, 0xb9, 0xc8, 0xe1, 0x9d, 0xc1, 0x46, 0x06, 0x7c, 0x2f, + 0x52, 0x43, 0xdd, 0x7a, 0xd2, 0xbb, 0x85, 0xb7, 0x29, 0xc7, 0x16, 0xa4, 0x67, 0x88, 0x9c, 0xbd, + 0x45, 0xe5, 0x6d, 0x6d, 0x69, 0x99, 0xb6, 0xf6, 0xaf, 0x6a, 0x57, 0x1e, 0x26, 0xdf, 0x86, 0xea, + 0x89, 0x39, 0x8f, 0x99, 0x73, 0xc8, 0xd7, 0x9e, 0x31, 0xbf, 0x3d, 0x73, 0x59, 0xe2, 0x4b, 0xef, + 0x27, 0xde, 0x85, 0xb5, 0x90, 0x9f, 0xb0, 0x49, 0xac, 0x8e, 0x97, 0xe8, 0xba, 0xe7, 0x68, 0xe9, + 0xae, 0x3e, 0x1a, 0xb2, 0x9e, 0xb9, 0x02, 0xaa, 0x68, 0x55, 0xbc, 0x67, 0xa8, 0xa2, 0x33, 0xb1, + 0xa1, 0xf4, 0x0b, 0x5c, 0x85, 0xe8, 0xa8, 0x5e, 0x16, 0x1d, 0xd8, 0xf3, 0xd9, 0xb8, 0xc9, 0x61, + 0x73, 0x48, 0x31, 0xdf, 0x99, 0x78, 0xfd, 0xa4, 0x5b, 0xf7, 0x2f, 0xe0, 0x31, 0xb7, 0x8d, 0x26, + 0xb1, 0x8a, 0xec, 0xc5, 0x83, 0x01, 0x16, 0x5f, 0xfe, 0x1b, 0x17, 0x5f, 0xfe, 0xdf, 0x07, 0x48, + 0x39, 0xa6, 0xb2, 0x6e, 0x14, 0xa8, 0xd6, 0x9a, 0xf6, 0x9c, 0x1b, 0xcf, 0x5a, 0xdb, 0xa1, 0x8e, + 0x74, 0xbf, 0xc0, 0x81, 0xfa, 0x8f, 0xd8, 0xf9, 0x1e, 0x76, 0x7b, 0xad, 0x75, 0xdd, 0x4f, 0xe6, + 0xf0, 0x62, 0xce, 0x68, 0x5e, 0xcc, 0x19, 0x77, 0xa1, 0x92, 0x06, 0x62, 0xcc, 0xf5, 0xeb, 0xeb, + 0xb3, 0xf7, 0xb7, 0xd3, 0x43, 0x22, 0xdf, 0xd0, 0xea, 0xc7, 0x01, 0x4c, 0xd5, 0x42, 0xea, 0x77, + 0xd7, 0x86, 0x9f, 0x81, 0xed, 0x5f, 0x38, 0x50, 0x35, 0x3a, 0x5e, 0xd6, 0xc5, 0xea, 0x33, 0x43, + 0xa9, 0xf0, 0xc6, 0x91, 0xbf, 0x25, 0x94, 0x8b, 0x6f, 0x09, 0xef, 0x66, 0x3a, 0x99, 0x04, 0xfa, + 0xea, 0xd5, 0xc6, 0x98, 0x53, 0xcd, 0x7b, 0x1d, 0x2a, 0x1a, 0xc6, 0x0c, 0x10, 0x8b, 0x80, 0xc5, + 0xe6, 0x0c, 0x2e, 0x67, 0xf5, 0x0c, 0x32, 0x97, 0x26, 0x25, 0xef, 0xfb, 0x19, 0x35, 0x64, 0x8d, + 0x8b, 0x69, 0x7a, 0x70, 0x36, 0xe2, 0xd0, 0x4d, 0x20, 0x29, 0x57, 0x87, 0x27, 0x47, 0x43, 0xde, + 0x63, 0x23, 0xae, 0xf3, 0x52, 0x89, 0xb6, 0x60, 0xd3, 0xd0, 0xa6, 0xf3, 0x23, 0xba, 0x34, 0xc7, + 0x51, 0x5f, 0x32, 0x39, 0x25, 0xae, 0xf7, 0xbe, 0xbe, 0x73, 0xc8, 0xbc, 0x6f, 0x35, 0xff, 0x55, + 0xc5, 0x64, 0xc2, 0x90, 0x4b, 0x4c, 0x95, 0xe6, 0x46, 0x88, 0x99, 0x66, 0xdd, 0xdc, 0x86, 0x1a, + 0xad, 0xcb, 0xde, 0x6e, 0xa1, 0x05, 0x98, 0xaf, 0x45, 0xce, 0xb2, 0xb5, 0xc8, 0x7b, 0x00, 0xd7, + 0x32, 0xb4, 0x31, 0x16, 0x96, 0xa7, 0x9a, 0x18, 0x17, 0xe5, 0x3c, 0xcf, 0xd7, 0x32, 0xf2, 0xdb, + 0x7f, 0x5a, 0x86, 0xe6, 0x7c, 0x3d, 0xd0, 0xe7, 0x29, 0xa3, 0xfb, 0x61, 0x1c, 0x9a, 0x03, 0xd7, + 0x2e, 0x06, 0x46, 0x20, 0x27, 0xa3, 0x7e, 0x6a, 0xd2, 0xbc, 0x6e, 0x20, 0x09, 0x0e, 0x3d, 0x36, + 0xd9, 0x5f, 0x23, 0x36, 0x70, 0x68, 0x5f, 0x8c, 0x38, 0xb9, 0x59, 0x7c, 0x72, 0x7c, 0x23, 0x7b, + 0x9c, 0xd4, 0xe9, 0xfa, 0x43, 0x2c, 0x0e, 0x3d, 0xae, 0xc8, 0x0e, 0x36, 0x36, 0xbd, 0xa3, 0x59, + 0x56, 0x26, 0x9f, 0xd0, 0x86, 0xbd, 0xc1, 0xfe, 0x51, 0x89, 0xae, 0x17, 0x7a, 0x9c, 0x9f, 0x97, + 0xe8, 0x26, 0x5c, 0xdb, 0x9d, 0x24, 0x61, 0xcc, 0xc3, 0x1c, 0xfb, 0x37, 0x1a, 0xab, 0x1f, 0x1d, + 0x94, 0x3e, 0x45, 0x6a, 0x21, 0x3f, 0xc3, 0xcd, 0xbc, 0x5e, 0xc0, 0xe6, 0x6d, 0xcf, 0x9f, 0x2d, + 0x8e, 0xe4, 0x92, 0xfe, 0xbc, 0x28, 0x3f, 0xa7, 0xff, 0x91, 0x8b, 0xd8, 0x83, 0x24, 0xe4, 0xe7, + 0x05, 0xec, 0x8f, 0x5d, 0xba, 0x05, 0x1b, 0x96, 0xb6, 0xa0, 0xfc, 0x1f, 0xb8, 0xf4, 0x3a, 0x34, + 0x77, 0x8c, 0xd9, 0xad, 0x55, 0xc8, 0x4f, 0xf0, 0xbc, 0xeb, 0x76, 0x71, 0x8e, 0x3f, 0x74, 0xe9, + 0x06, 0xac, 0x7d, 0x4f, 0xc8, 0x53, 0x5d, 0xc4, 0xd0, 0xb6, 0x3f, 0xc5, 0x5e, 0xaf, 0x91, 0xa3, + 0xc8, 0x1f, 0xb9, 0xb7, 0xff, 0xde, 0x81, 0xe6, 0x7c, 0xfe, 0x45, 0xe3, 0xc5, 0x22, 0x19, 0x60, + 0x6c, 0x99, 0x3b, 0xf7, 0x74, 0x28, 0xa4, 0xd2, 0xa0, 0x76, 0xfc, 0x44, 0xbf, 0xb4, 0x98, 0x86, + 0x32, 0x55, 0x4c, 0x4d, 0x52, 0x73, 0x8f, 0xa5, 0xd8, 0x80, 0xac, 0xe2, 0x8e, 0x84, 0x38, 0xbd, + 0x9b, 0x17, 0xdb, 0x0a, 0x4a, 0x0c, 0xb2, 0x87, 0x9b, 0x2a, 0x92, 0x4e, 0x64, 0x6c, 0x8a, 0x2e, + 0x1f, 0xb1, 0x28, 0x36, 0xcf, 0x4b, 0xe3, 0x21, 0xb6, 0x8e, 0x0d, 0x83, 0x15, 0x9f, 0x46, 0xe6, + 0x21, 0xc7, 0x06, 0x54, 0x88, 0x7a, 0xe4, 0x2e, 0x49, 0xf8, 0xee, 0xed, 0x7f, 0xfd, 0xfc, 0x86, + 0xf3, 0xd9, 0xe7, 0x37, 0x9c, 0xff, 0xfc, 0xfc, 0x86, 0xf3, 0xb3, 0x2f, 0x6e, 0xac, 0x7c, 0xf6, + 0xc5, 0x8d, 0x95, 0x5f, 0x7e, 0x71, 0x63, 0xe5, 0xfb, 0x64, 0xf1, 0x5f, 0xb3, 0x7e, 0x55, 0x97, + 0x85, 0xbb, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x90, 0xd2, 0xca, 0xe0, 0x86, 0x26, 0x00, 0x00, } func (m *SmartBlockSnapshotBase) Marshal() (dAtA []byte, err error) { @@ -4944,6 +4964,20 @@ func (m *BlockContentText) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.IconImage) > 0 { + i -= len(m.IconImage) + copy(dAtA[i:], m.IconImage) + i = encodeVarintModels(dAtA, i, uint64(len(m.IconImage))) + i-- + dAtA[i] = 0x3a + } + if len(m.IconEmoji) > 0 { + i -= len(m.IconEmoji) + copy(dAtA[i:], m.IconEmoji) + i = encodeVarintModels(dAtA, i, uint64(len(m.IconEmoji))) + i-- + dAtA[i] = 0x32 + } if len(m.Color) > 0 { i -= len(m.Color) copy(dAtA[i:], m.Color) @@ -6984,6 +7018,14 @@ func (m *BlockContentText) Size() (n int) { if l > 0 { n += 1 + l + sovModels(uint64(l)) } + l = len(m.IconEmoji) + if l > 0 { + n += 1 + l + sovModels(uint64(l)) + } + l = len(m.IconImage) + if l > 0 { + n += 1 + l + sovModels(uint64(l)) + } return n } @@ -9645,6 +9687,70 @@ func (m *BlockContentText) Unmarshal(dAtA []byte) error { } m.Color = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IconEmoji", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowModels + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthModels + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthModels + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IconEmoji = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IconImage", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowModels + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthModels + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthModels + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IconImage = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipModels(dAtA[iNdEx:]) diff --git a/pkg/lib/pb/model/protos/models.proto b/pkg/lib/pb/model/protos/models.proto index b07c2ff84..d2b4eaf10 100644 --- a/pkg/lib/pb/model/protos/models.proto +++ b/pkg/lib/pb/model/protos/models.proto @@ -171,6 +171,8 @@ message Block { Marks marks = 3; // list of marks to apply to the text bool checked = 4; string color = 5; + string iconEmoji = 6; // used with style Callout + string iconImage = 7; // in case both image and emoji are set, image should has a priority in the UI message Marks { repeated Mark marks = 1; @@ -210,6 +212,8 @@ message Block { Numbered = 10; Toggle = 11; Description = 12; // currently only only one block of this style can exists on a page + Callout = 13; // currently only only one block of this style can exists on a page + } } From 01f9b6548b45bf230a1884fb9753552bdaceb232 Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Thu, 3 Feb 2022 14:41:00 +0100 Subject: [PATCH 10/49] fix text block icon events --- core/block/simple/text/details.go | 2 +- core/block/simple/text/text.go | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/block/simple/text/details.go b/core/block/simple/text/details.go index 472b0a095..a9235820f 100644 --- a/core/block/simple/text/details.go +++ b/core/block/simple/text/details.go @@ -133,7 +133,7 @@ func (td *textDetails) Diff(s simple.Block) (msgs []simple.EventMessage, err err } } if st := msg.Msg.GetBlockSetText(); st != nil { - if st.Text == nil && st.Checked == nil && st.Marks == nil && st.Style == nil && st.Color == nil { + if st.Text == nil && st.Checked == nil && st.Marks == nil && st.Style == nil && st.Color == nil && st.IconImage == nil && st.IconEmoji == nil { toRemove = i } } diff --git a/core/block/simple/text/text.go b/core/block/simple/text/text.go index 7ca1052f0..276d2f6f5 100644 --- a/core/block/simple/text/text.go +++ b/core/block/simple/text/text.go @@ -130,6 +130,14 @@ func (t *Text) Diff(b simple.Block) (msgs []simple.EventMessage, err error) { hasChanges = true changes.Color = &pb.EventBlockSetTextColor{Value: text.content.Color} } + if t.content.IconImage != text.content.IconImage { + hasChanges = true + changes.IconImage = &pb.EventBlockSetTextIconImage{Value: text.content.IconImage} + } + if t.content.IconEmoji != text.content.IconEmoji { + hasChanges = true + changes.IconEmoji = &pb.EventBlockSetTextIconEmoji{Value: text.content.IconEmoji} + } if hasChanges { msgs = append(msgs, simple.EventMessage{Msg: &pb.EventMessage{Value: &pb.EventMessageValueOfBlockSetText{BlockSetText: changes}}}) } @@ -616,5 +624,11 @@ func (t *Text) ApplyEvent(e *pb.EventBlockSetText) error { if e.Color != nil { t.content.Color = e.Color.GetValue() } + if e.IconImage != nil { + t.content.IconImage = e.IconImage.GetValue() + } + if e.IconEmoji != nil { + t.content.IconEmoji = e.IconEmoji.GetValue() + } return nil } From 5231f6aba10f13e5057363a1a70c6fbca70c5591 Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Thu, 3 Feb 2022 15:16:01 +0100 Subject: [PATCH 11/49] ci fixes --- .github/workflows/build.yml | 11 ++++------- package.json | 6 +++--- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d248f13ee..d07c27b91 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,15 +10,12 @@ jobs: - name: Install Go uses: actions/setup-go@v1 with: - go-version: 1.17.3 + go-version: 1.17.6 - name: Setup GO run: | echo GOPATH=$(go env GOPATH) >> $GITHUB_ENV echo GOBIN=$(go env GOPATH)/bin >> $GITHUB_ENV echo $(go env GOPATH)/bin >> $GITHUB_PATH - wget https://at9412003.fra1.digitaloceanspaces.com/goroot.tar.gz - tar -xzf goroot.tar.gz -C $GOROOT - go version - name: Install patched gox run: | mkdir -p $GOPATH/src/github.com/mitchellh @@ -148,7 +145,7 @@ jobs: run: | gomobile bind -tags "nogrpcserver gomobile" -ldflags "$FLAGS" -v -target=ios -o Lib.xcframework github.com/anytypeio/go-anytype-middleware/clientlibrary/service github.com/anytypeio/go-anytype-middleware/core sudo /usr/sbin/purge - gtar -czvf ios_framework_${VERSION}.tar.gz Lib.xcframework protobuf + gtar --exclude ".*" -czvf ios_framework_${VERSION}.tar.gz Lib.xcframework protobuf mv ios_framework_${VERSION}.tar.gz .release/ - name: Make java protos run: | @@ -163,7 +160,7 @@ jobs: run: | gomobile bind -tags "nogrpcserver gomobile" -ldflags "$FLAGS" -v -target=android -o lib.aar github.com/anytypeio/go-anytype-middleware/clientlibrary/service github.com/anytypeio/go-anytype-middleware/core sudo /usr/sbin/purge - gtar -czvf android_lib_${VERSION}.tar.gz lib.aar protobuf + gtar --exclude ".*" -czvf android_lib_${VERSION}.tar.gz lib.aar protobuf mv android_lib_${VERSION}.tar.gz .release/ - name: Publish android lib to maven run: | @@ -187,7 +184,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v1 with: - go-version: 1.16 + go-version: 1.17.6 - name: Checkout uses: actions/checkout@v2 - name: Set env vars diff --git a/package.json b/package.json index cf1415ff2..f3994cfe6 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,9 @@ "build:protos": "webpack -o ./build/web/commands-web.js ./build/web/pb/protos/service/service_grpc_web_pb.js" }, "dependencies": { - "google-protobuf": "^3.6.1", - "grpc-web": "latest", - "protobufjs": "^6.8.8" + "google-protobuf": "~3.19.4", + "grpc-web": "~1.3.1", + "protobufjs": "~6.11.2" }, "devDependencies": { "webpack": "^4.16.5", From 9f40d9592948e3fd22a088340cc4053339e49b9c Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Thu, 3 Feb 2022 16:03:27 +0100 Subject: [PATCH 12/49] Account Create remove avatarColor --- core/account.go | 5 - docs/proto.md | 22 - pb/commands.pb.go | 1312 ++++++++++++++++++-------------------- pb/protos/commands.proto | 1 - 4 files changed, 621 insertions(+), 719 deletions(-) diff --git a/core/account.go b/core/account.go index d702a17d1..e9a114a2f 100644 --- a/core/account.go +++ b/core/account.go @@ -217,11 +217,6 @@ func (mw *Middleware) AccountCreate(req *pb.RpcAccountCreateRequest) *pb.RpcAcco Value: pbtypes.String(hash), }) } - } else if req.GetAvatarColor() != "" { - details = append(details, &pb.RpcBlockSetDetailsDetail{ - Key: "iconColor", - Value: pbtypes.String(req.GetAvatarColor()), - }) } if err = bs.SetDetails(nil, pb.RpcBlockSetDetailsRequest{ diff --git a/docs/proto.md b/docs/proto.md index 5910a5bc8..251396ffc 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -4,12 +4,8 @@ ## Table of Contents - [pb/protos/service/service.proto](#pb/protos/service/service.proto) - - - - [ClientCommands](#anytype.ClientCommands) - - [pb/protos/changes.proto](#pb/protos/changes.proto) - [Change](#anytype.Change) - [Change.BlockCreate](#anytype.Change.BlockCreate) @@ -34,10 +30,6 @@ - [Change.StoreKeySet](#anytype.Change.StoreKeySet) - [Change.StoreKeyUnset](#anytype.Change.StoreKeyUnset) - - - - - [pb/protos/commands.proto](#pb/protos/commands.proto) - [Empty](#anytype.Empty) - [Rpc](#anytype.Rpc) @@ -854,9 +846,6 @@ - [Rpc.Workspace.Select.Response.Error.Code](#anytype.Rpc.Workspace.Select.Response.Error.Code) - [Rpc.Workspace.SetIsHighlighted.Response.Error.Code](#anytype.Rpc.Workspace.SetIsHighlighted.Response.Error.Code) - - - - [pb/protos/events.proto](#pb/protos/events.proto) - [Event](#anytype.Event) - [Event.Account](#anytype.Event.Account) @@ -1003,9 +992,6 @@ - [Model.Process.State](#anytype.Model.Process.State) - [Model.Process.Type](#anytype.Model.Process.Type) - - - - [pkg/lib/pb/model/protos/localstore.proto](#pkg/lib/pb/model/protos/localstore.proto) - [ObjectDetails](#anytype.model.ObjectDetails) - [ObjectInfo](#anytype.model.ObjectInfo) @@ -1016,10 +1002,6 @@ - [ObjectLinksInfo](#anytype.model.ObjectLinksInfo) - [ObjectStoreChecksums](#anytype.model.ObjectStoreChecksums) - - - - - [pkg/lib/pb/model/protos/models.proto](#pkg/lib/pb/model/protos/models.proto) - [Account](#anytype.model.Account) - [Account.Avatar](#anytype.model.Account.Avatar) @@ -1089,9 +1071,6 @@ - [Restrictions.ObjectRestriction](#anytype.model.Restrictions.ObjectRestriction) - [SmartBlockType](#anytype.model.SmartBlockType) - - - - [Scalar Value Types](#scalar-value-types) @@ -1734,7 +1713,6 @@ Front end to middleware request-to-create-an account | ----- | ---- | ----- | ----------- | | name | [string](#string) | | Account name | | avatarLocalPath | [string](#string) | | Path to an image, that will be used as an avatar of this account | -| avatarColor | [string](#string) | | Avatar color as an alternative for avatar image | | alphaInviteCode | [string](#string) | | | diff --git a/pb/commands.pb.go b/pb/commands.pb.go index eda70a958..739dc2cb7 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -23244,7 +23244,6 @@ type RpcAccountCreateRequest struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Types that are valid to be assigned to Avatar: // *RpcAccountCreateRequestAvatarOfAvatarLocalPath - // *RpcAccountCreateRequestAvatarOfAvatarColor Avatar IsRpcAccountCreateRequestAvatar `protobuf_oneof:"avatar"` AlphaInviteCode string `protobuf:"bytes,20,opt,name=alphaInviteCode,proto3" json:"alphaInviteCode,omitempty"` } @@ -23291,12 +23290,8 @@ type IsRpcAccountCreateRequestAvatar interface { type RpcAccountCreateRequestAvatarOfAvatarLocalPath struct { AvatarLocalPath string `protobuf:"bytes,2,opt,name=avatarLocalPath,proto3,oneof" json:"avatarLocalPath,omitempty"` } -type RpcAccountCreateRequestAvatarOfAvatarColor struct { - AvatarColor string `protobuf:"bytes,3,opt,name=avatarColor,proto3,oneof" json:"avatarColor,omitempty"` -} func (*RpcAccountCreateRequestAvatarOfAvatarLocalPath) IsRpcAccountCreateRequestAvatar() {} -func (*RpcAccountCreateRequestAvatarOfAvatarColor) IsRpcAccountCreateRequestAvatar() {} func (m *RpcAccountCreateRequest) GetAvatar() IsRpcAccountCreateRequestAvatar { if m != nil { @@ -23319,13 +23314,6 @@ func (m *RpcAccountCreateRequest) GetAvatarLocalPath() string { return "" } -func (m *RpcAccountCreateRequest) GetAvatarColor() string { - if x, ok := m.GetAvatar().(*RpcAccountCreateRequestAvatarOfAvatarColor); ok { - return x.AvatarColor - } - return "" -} - func (m *RpcAccountCreateRequest) GetAlphaInviteCode() string { if m != nil { return m.AlphaInviteCode @@ -23337,7 +23325,6 @@ func (m *RpcAccountCreateRequest) GetAlphaInviteCode() string { func (*RpcAccountCreateRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ (*RpcAccountCreateRequestAvatarOfAvatarLocalPath)(nil), - (*RpcAccountCreateRequestAvatarOfAvatarColor)(nil), } } @@ -38314,630 +38301,629 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 9970 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x69, 0x94, 0x24, 0x57, - 0x75, 0x27, 0xde, 0x99, 0x91, 0x5b, 0xdd, 0xea, 0xea, 0x4e, 0x05, 0x4d, 0xab, 0x78, 0x88, 0x46, - 0x34, 0x52, 0x23, 0x64, 0x91, 0x2d, 0xb5, 0x10, 0x48, 0x42, 0x0b, 0x59, 0x59, 0x59, 0x5d, 0xa9, - 0xae, 0xca, 0x2c, 0x47, 0x66, 0x75, 0xa3, 0x3f, 0xfe, 0x4f, 0x4d, 0x54, 0xe6, 0xab, 0xaa, 0xa0, - 0xa2, 0x32, 0x92, 0x88, 0xc8, 0x6a, 0x15, 0x1f, 0x66, 0x06, 0xb0, 0x87, 0xed, 0xc0, 0x18, 0xbc, - 0x88, 0x65, 0xcc, 0x6a, 0x8c, 0xc1, 0x2c, 0x06, 0x83, 0xc5, 0x32, 0x0c, 0xd8, 0x23, 0x8d, 0x10, - 0xc6, 0x63, 0x34, 0x5e, 0x30, 0xf8, 0xc0, 0x60, 0x69, 0x74, 0xce, 0xcc, 0xc8, 0x1e, 0x8c, 0x87, - 0xb1, 0x0f, 0xf6, 0x61, 0x3c, 0x27, 0x5e, 0xbc, 0x58, 0x5e, 0x56, 0x46, 0xe4, 0x8b, 0xac, 0x88, - 0xac, 0xe6, 0xcc, 0xa7, 0xcc, 0xf7, 0xe2, 0x2d, 0xf7, 0xdd, 0xdf, 0x7d, 0xfb, 0x7d, 0xf7, 0xc2, - 0x6c, 0x6f, 0xfd, 0x6c, 0x4f, 0xd7, 0x4c, 0xcd, 0x38, 0xdb, 0xd6, 0x76, 0x76, 0xe4, 0x6e, 0xc7, - 0x28, 0x91, 0xb0, 0x98, 0x97, 0xbb, 0x7b, 0xe6, 0x5e, 0x0f, 0xa3, 0xeb, 0x7a, 0xdb, 0x9b, 0x67, - 0x55, 0x65, 0xfd, 0x6c, 0x6f, 0xfd, 0xec, 0x8e, 0xd6, 0xc1, 0xaa, 0x93, 0x81, 0x04, 0x68, 0x72, - 0x74, 0x43, 0x50, 0x2a, 0x55, 0x6b, 0xcb, 0xaa, 0x61, 0x6a, 0x3a, 0xa6, 0x29, 0x4f, 0x7a, 0x55, - 0xe2, 0x5d, 0xdc, 0x35, 0x9d, 0x12, 0xae, 0xd9, 0xd4, 0xb4, 0x4d, 0x15, 0xdb, 0xdf, 0xd6, 0xfb, - 0x1b, 0x67, 0x0d, 0x53, 0xef, 0xb7, 0x4d, 0xfb, 0xeb, 0xe9, 0x37, 0x3d, 0x98, 0x01, 0x41, 0xea, - 0xb5, 0xd1, 0xc3, 0x69, 0xc8, 0x2f, 0x63, 0x53, 0x57, 0xda, 0x06, 0xfa, 0x7c, 0x1a, 0x66, 0x9a, - 0xd8, 0x5c, 0x91, 0x75, 0x79, 0x07, 0x9b, 0x58, 0x37, 0xd0, 0xf5, 0x90, 0x97, 0xf0, 0xab, 0xfb, - 0xd8, 0x30, 0x45, 0x04, 0x85, 0x9e, 0x2a, 0x9b, 0x1b, 0x9a, 0xbe, 0x33, 0x9b, 0xba, 0x36, 0x75, - 0xc3, 0x94, 0xe4, 0x86, 0xd1, 0x3f, 0xa5, 0xa0, 0x20, 0x61, 0xa3, 0xa7, 0x75, 0x0d, 0x2c, 0x9e, - 0x87, 0x2c, 0xd6, 0x75, 0x4d, 0x27, 0xa9, 0xa6, 0xcf, 0xdd, 0x52, 0xa2, 0x2d, 0x2f, 0x49, 0xbd, - 0x76, 0x89, 0x56, 0x55, 0x62, 0xaa, 0x29, 0x39, 0x79, 0x4b, 0x55, 0x2b, 0xa3, 0x64, 0xe7, 0x47, - 0x1f, 0x4d, 0x41, 0x96, 0x44, 0x88, 0xf7, 0x41, 0xa6, 0xad, 0x75, 0x30, 0x29, 0xf1, 0xd8, 0xb9, - 0x97, 0x44, 0x2e, 0xb1, 0x54, 0xd1, 0x3a, 0x58, 0x22, 0x65, 0x88, 0xd7, 0xc2, 0x74, 0x07, 0x1b, - 0x6d, 0x5d, 0xe9, 0x99, 0x8a, 0xd6, 0x9d, 0x4d, 0x93, 0xa6, 0xf8, 0xa3, 0x4e, 0x9f, 0x83, 0x8c, - 0x95, 0x5e, 0x2c, 0x40, 0xa6, 0xbe, 0xba, 0xb4, 0x54, 0x3c, 0x22, 0x5e, 0x05, 0x33, 0xab, 0xf5, - 0x0b, 0xf5, 0xc6, 0xa5, 0xfa, 0x5a, 0x55, 0x92, 0x1a, 0x52, 0x31, 0x25, 0xce, 0xc0, 0xd4, 0x5c, - 0x79, 0x7e, 0xad, 0x56, 0x5f, 0x59, 0x6d, 0x15, 0xd3, 0xe8, 0x7f, 0xe4, 0xe0, 0x68, 0xf5, 0x01, - 0x13, 0xeb, 0x5d, 0x59, 0x9d, 0xd7, 0xb5, 0x1e, 0x7a, 0x42, 0x80, 0xec, 0x82, 0xa2, 0x62, 0x03, - 0x7d, 0x32, 0xe5, 0x31, 0xf1, 0x1a, 0x98, 0x6a, 0x6b, 0x5d, 0x13, 0x3f, 0x60, 0xd6, 0x3a, 0x94, - 0x8b, 0x5e, 0x84, 0x78, 0x1a, 0x8e, 0x76, 0x74, 0xad, 0xd7, 0x92, 0xf5, 0x4d, 0x6c, 0x25, 0xb0, - 0x69, 0x63, 0xe2, 0xc4, 0x3b, 0xa0, 0xd0, 0xd3, 0x0c, 0x85, 0xd0, 0x2e, 0x10, 0x76, 0x3c, 0xc7, - 0x65, 0x07, 0x11, 0x94, 0xd2, 0x9c, 0xaa, 0xb5, 0xb7, 0x4b, 0x2b, 0x34, 0x91, 0xe4, 0x26, 0x17, - 0xcf, 0xc0, 0x31, 0x22, 0x3d, 0x16, 0x59, 0x2b, 0xb2, 0xb9, 0x65, 0xcc, 0x66, 0xae, 0x15, 0x6e, - 0x98, 0x92, 0x06, 0x62, 0xd1, 0x47, 0xd2, 0x3e, 0x34, 0xe7, 0x59, 0x34, 0x4b, 0x0c, 0xef, 0xfd, - 0x2d, 0x2e, 0x91, 0xd6, 0x0e, 0x87, 0x52, 0xbc, 0x09, 0xb2, 0x44, 0x38, 0x49, 0x93, 0xa6, 0xcf, - 0x9d, 0xf4, 0x4a, 0xa1, 0xc9, 0xab, 0xd6, 0x57, 0xc9, 0x4e, 0x84, 0x7e, 0xc3, 0x05, 0xfe, 0x3c, - 0x03, 0xfc, 0xad, 0xd1, 0x2a, 0x4f, 0x1e, 0xf5, 0x1f, 0xa5, 0x21, 0x5f, 0xb1, 0xe0, 0xeb, 0x9a, - 0x48, 0xe1, 0x45, 0xf9, 0x0c, 0x1c, 0xdb, 0xd0, 0xda, 0x7d, 0x03, 0x77, 0x08, 0x52, 0x2e, 0xce, - 0x03, 0xb1, 0xe2, 0x2c, 0xe4, 0xdb, 0x76, 0xd9, 0x04, 0xe8, 0xa3, 0x92, 0x13, 0x44, 0x3f, 0xf1, - 0x77, 0xb7, 0x05, 0x16, 0xa0, 0x9b, 0x83, 0x79, 0x44, 0x29, 0x0d, 0xe8, 0x6d, 0xbf, 0xe9, 0x32, - 0xbd, 0xc6, 0x30, 0xfd, 0xb6, 0xa8, 0x05, 0x26, 0xcf, 0xf6, 0x3f, 0x3e, 0x0b, 0x53, 0x84, 0x4b, - 0x4b, 0x8a, 0x61, 0xa2, 0x4f, 0x09, 0x70, 0xb2, 0xa2, 0x75, 0x77, 0xb1, 0x6e, 0x56, 0xb6, 0x14, - 0xb5, 0xa3, 0xe3, 0x6e, 0x4b, 0x5b, 0x91, 0x37, 0xb1, 0x81, 0xda, 0xbc, 0x98, 0x20, 0x28, 0xac, - 0xdb, 0x6c, 0x37, 0x66, 0xd3, 0xa4, 0x53, 0xb8, 0x61, 0xf1, 0x14, 0x80, 0xb6, 0xfe, 0x2a, 0xdc, - 0x36, 0x5b, 0x7b, 0x3d, 0x4c, 0xa0, 0x98, 0x92, 0x7c, 0x31, 0xe8, 0x53, 0xfe, 0xee, 0x22, 0xb1, - 0x68, 0xdc, 0xc5, 0x30, 0xcf, 0xa5, 0xb9, 0x34, 0x9c, 0xde, 0x80, 0xce, 0x33, 0x0b, 0x79, 0x55, - 0xe9, 0xfa, 0x68, 0x73, 0x82, 0xe8, 0xb3, 0x2e, 0x66, 0xab, 0x0c, 0x66, 0xe5, 0x83, 0x54, 0x9b, - 0x3c, 0x7e, 0x7f, 0x2f, 0x40, 0x66, 0x59, 0xdb, 0xc5, 0xe8, 0x1b, 0xa9, 0x38, 0x00, 0xba, 0x01, - 0x8e, 0x9b, 0x64, 0x78, 0xac, 0xb8, 0xf9, 0x6d, 0x94, 0x06, 0xa3, 0xf7, 0x0d, 0xb0, 0x99, 0x11, - 0x03, 0x6c, 0x36, 0xd2, 0x00, 0x8b, 0xde, 0xe7, 0x97, 0x84, 0x97, 0xb3, 0x92, 0x70, 0x63, 0x00, - 0x24, 0x16, 0x1f, 0x62, 0x19, 0x34, 0x3f, 0xe8, 0xca, 0x42, 0x85, 0x91, 0x85, 0xb3, 0xfc, 0x15, - 0x27, 0x8f, 0xfc, 0xef, 0x64, 0x60, 0xc6, 0xaa, 0xb8, 0xa5, 0xd5, 0xf1, 0x65, 0x4b, 0xf8, 0xd0, - 0x9f, 0xc6, 0x22, 0x02, 0xb7, 0x40, 0xbe, 0x83, 0x4d, 0x59, 0x51, 0x0d, 0x02, 0xfd, 0xf4, 0xb9, - 0xab, 0x4b, 0xf6, 0xf2, 0xa7, 0xe4, 0x2c, 0x7f, 0x4a, 0x4d, 0xb2, 0xfc, 0x91, 0x9c, 0x74, 0x49, - 0xcb, 0xc2, 0x63, 0x7e, 0x59, 0xa8, 0xb1, 0xb2, 0x70, 0x6b, 0x08, 0x24, 0x2e, 0x67, 0x02, 0x84, - 0xe2, 0x24, 0xe4, 0xec, 0xde, 0x4f, 0x21, 0xa1, 0x21, 0x4f, 0x58, 0x04, 0x1e, 0x61, 0xf9, 0x2d, - 0x57, 0x58, 0x96, 0x18, 0x61, 0xb9, 0x7d, 0x0c, 0xca, 0x92, 0x97, 0x9a, 0xbf, 0x11, 0x60, 0x6a, - 0xbe, 0xdf, 0x53, 0x95, 0xb6, 0x6c, 0x62, 0xf4, 0xee, 0x28, 0x12, 0x63, 0xb2, 0x6b, 0x29, 0x37, - 0xcc, 0x48, 0x93, 0x30, 0x20, 0x4d, 0x7e, 0xd8, 0x33, 0xd1, 0x60, 0x7f, 0xc4, 0x0f, 0x7b, 0x95, - 0x85, 0x3d, 0xa8, 0x27, 0xba, 0x4d, 0x0b, 0x80, 0x3c, 0x4c, 0xf0, 0xa3, 0xc1, 0xfe, 0x11, 0x17, - 0xf6, 0x45, 0x06, 0xf6, 0x17, 0x47, 0xa4, 0x2c, 0x79, 0xc8, 0x3f, 0x7b, 0x0d, 0x08, 0x4d, 0x6c, - 0xa2, 0x5f, 0x07, 0xc8, 0xb4, 0xf0, 0x03, 0x26, 0xfa, 0x7d, 0x01, 0xb2, 0x4d, 0x73, 0x4f, 0xc5, - 0xe8, 0x75, 0xb1, 0x8c, 0x18, 0x77, 0x43, 0xd6, 0xb0, 0x8a, 0xa3, 0x8b, 0xe8, 0x17, 0x0c, 0x05, - 0xd8, 0x59, 0xe0, 0x58, 0x14, 0x94, 0x48, 0xed, 0x92, 0x9d, 0x0b, 0xfd, 0x8e, 0x1f, 0xe7, 0xfb, - 0x58, 0x9c, 0x83, 0xb8, 0xd9, 0xc4, 0xfe, 0x92, 0x62, 0x19, 0xf4, 0x3f, 0xee, 0x02, 0xba, 0xcc, - 0x00, 0x7a, 0xc7, 0x38, 0x24, 0x24, 0x8f, 0xea, 0x3b, 0x05, 0xc8, 0x56, 0x34, 0x55, 0xd3, 0xd1, - 0xfd, 0x71, 0x60, 0x78, 0x02, 0xb2, 0x6d, 0xab, 0x34, 0x3a, 0xdd, 0xdb, 0x81, 0x83, 0x41, 0x43, - 0xa8, 0x3b, 0x5c, 0x68, 0x86, 0x91, 0x90, 0x3c, 0x34, 0x5f, 0xb2, 0xd6, 0x64, 0xb2, 0xbe, 0x8d, - 0xfe, 0x65, 0x1c, 0xc8, 0xdc, 0x09, 0x99, 0x1d, 0x59, 0xdf, 0xa6, 0xa3, 0xd2, 0x99, 0xd1, 0x9d, - 0xcb, 0xaa, 0x5a, 0x22, 0x79, 0xd0, 0xa7, 0xc7, 0x98, 0x39, 0x5d, 0xe6, 0x59, 0xe5, 0xc4, 0x02, - 0x5f, 0xd4, 0x19, 0x32, 0x8c, 0x82, 0xe4, 0xd1, 0xfb, 0xb8, 0x00, 0xc7, 0xe7, 0xe4, 0xf6, 0xf6, - 0xa6, 0xae, 0xf5, 0xbb, 0x9d, 0xc4, 0xbb, 0xd8, 0x97, 0xfd, 0x10, 0x35, 0x58, 0x88, 0xc2, 0xe4, - 0x7b, 0x80, 0xc4, 0x58, 0x80, 0xfa, 0xb4, 0x0b, 0x94, 0xc4, 0x00, 0x75, 0xcf, 0xd8, 0x74, 0x24, - 0x0f, 0xd7, 0xc7, 0x04, 0xc8, 0x96, 0x55, 0x65, 0xb3, 0x8b, 0xfa, 0x71, 0x80, 0x74, 0x33, 0x64, - 0x65, 0xab, 0x34, 0x3a, 0x97, 0xa1, 0xa1, 0xdd, 0x8d, 0xd4, 0x27, 0xd9, 0x09, 0xd1, 0x47, 0xc7, - 0x58, 0xa6, 0x58, 0x8c, 0x23, 0x85, 0xc4, 0x02, 0x5b, 0xd4, 0xa5, 0x48, 0x50, 0xed, 0xc9, 0x83, - 0xf5, 0xf6, 0x0c, 0xe4, 0x16, 0x14, 0xac, 0x76, 0x0c, 0xf4, 0xe7, 0xdc, 0x4b, 0x8f, 0x8b, 0x30, - 0x4d, 0xe0, 0xb1, 0x33, 0x12, 0xc4, 0xc2, 0x67, 0x1f, 0x3b, 0x61, 0x89, 0x96, 0x6e, 0x7f, 0x24, - 0x71, 0x92, 0xbf, 0x20, 0x74, 0x09, 0xc0, 0xfb, 0x24, 0xce, 0x42, 0x9e, 0x0a, 0x01, 0xa5, 0xc0, - 0x09, 0x8a, 0x67, 0x21, 0xb7, 0xe1, 0x54, 0x1d, 0xba, 0x1f, 0xa2, 0xc9, 0xd0, 0x6f, 0xa5, 0x79, - 0xcf, 0x94, 0x02, 0xe8, 0x3e, 0xb8, 0x48, 0xf0, 0x9d, 0x40, 0x71, 0x54, 0x9f, 0xbc, 0x4c, 0x3c, - 0x2a, 0x80, 0x30, 0xaf, 0xec, 0xa2, 0xaf, 0xb8, 0xab, 0xd2, 0xd7, 0xc6, 0xb2, 0x2a, 0xbd, 0x8b, - 0x5d, 0x95, 0x86, 0x4f, 0x9c, 0xf3, 0xca, 0x2e, 0xbb, 0x28, 0x1d, 0x77, 0xe6, 0x74, 0x0b, 0x3a, - 0xb4, 0x99, 0x33, 0x88, 0x82, 0xe4, 0x91, 0xfc, 0x03, 0x01, 0x32, 0x0b, 0x8a, 0x8a, 0x0f, 0x77, - 0x83, 0x61, 0x51, 0x10, 0xcf, 0x06, 0xc3, 0x2b, 0xe9, 0xd0, 0x56, 0xb1, 0x81, 0x24, 0x24, 0x8f, - 0xe6, 0x17, 0x04, 0x28, 0xb4, 0xfa, 0x7a, 0xb7, 0xd6, 0x35, 0xb5, 0x2b, 0x63, 0xa3, 0xc8, 0x7f, - 0x99, 0xe2, 0x31, 0xd1, 0x69, 0xc1, 0x04, 0x2f, 0x53, 0x46, 0x56, 0x9e, 0x3c, 0x76, 0x8f, 0x7f, - 0x3b, 0x05, 0x59, 0x42, 0x07, 0xfa, 0x8c, 0x60, 0x21, 0xd7, 0x53, 0xe5, 0x36, 0x46, 0x3b, 0xbc, - 0x20, 0xfa, 0x26, 0xc3, 0x34, 0x3b, 0x19, 0xde, 0x08, 0x59, 0xf2, 0x97, 0x6e, 0x47, 0x4e, 0x0c, - 0x83, 0x50, 0xb2, 0x93, 0xa0, 0x87, 0xfc, 0x78, 0xdd, 0xcb, 0xe2, 0xf5, 0xc2, 0xfd, 0x2c, 0x2b, - 0x51, 0x32, 0x83, 0x8f, 0xee, 0x03, 0x68, 0x8a, 0x76, 0x70, 0xf3, 0x01, 0x17, 0xc4, 0x39, 0x06, - 0xc4, 0x12, 0x37, 0x45, 0x13, 0x59, 0xd4, 0xce, 0xac, 0xf6, 0x3a, 0xb2, 0x89, 0x9d, 0x2b, 0xb1, - 0x09, 0x43, 0x17, 0x71, 0x51, 0x5b, 0x62, 0x88, 0x1d, 0xd5, 0xd7, 0xe2, 0x3e, 0x5f, 0x0b, 0xad, - 0x3d, 0x79, 0xb0, 0xbe, 0x93, 0x81, 0x6c, 0xb3, 0xa7, 0x2a, 0x26, 0x7a, 0x77, 0x3a, 0x16, 0x94, - 0x74, 0xb9, 0xbb, 0x89, 0x03, 0x50, 0x92, 0xac, 0x6f, 0x92, 0x9d, 0xc4, 0x1b, 0x4f, 0x33, 0xe3, - 0x8c, 0xa7, 0xe2, 0x1d, 0x90, 0xb1, 0x12, 0xd2, 0xe3, 0xf8, 0xeb, 0x87, 0x30, 0x96, 0x34, 0xcb, - 0x5d, 0x48, 0x2f, 0x13, 0x4e, 0x5a, 0x59, 0x4e, 0xdf, 0x02, 0x19, 0x2b, 0x24, 0x02, 0xe4, 0xe6, - 0x1a, 0xad, 0x56, 0x63, 0xb9, 0x78, 0x44, 0xcc, 0x83, 0xd0, 0x6a, 0xac, 0x14, 0x53, 0xe2, 0x14, - 0x64, 0x6b, 0xf5, 0x7a, 0x55, 0x2a, 0xa6, 0xad, 0xbf, 0xad, 0x5a, 0x6b, 0xa9, 0x5a, 0x14, 0xd8, - 0x59, 0xf8, 0x6e, 0x56, 0xa4, 0x5e, 0x10, 0x52, 0x77, 0x92, 0x63, 0xc1, 0xfb, 0x5c, 0x21, 0x7b, - 0x39, 0x23, 0x64, 0x37, 0x71, 0xd2, 0x93, 0xbc, 0x70, 0xfd, 0xaa, 0x00, 0xd9, 0x65, 0xac, 0x6f, - 0x62, 0xf4, 0xea, 0x08, 0xaa, 0x0f, 0x1b, 0x8a, 0x6e, 0x98, 0xec, 0x95, 0x38, 0x13, 0x27, 0x5e, - 0x07, 0x33, 0x06, 0x6e, 0x6b, 0x5d, 0xf7, 0xde, 0xdc, 0x3e, 0x93, 0x60, 0x23, 0xd1, 0xbb, 0x22, - 0x42, 0x46, 0x08, 0x8d, 0x65, 0xa6, 0x8d, 0x02, 0xcc, 0xb0, 0x5a, 0x93, 0x07, 0xe6, 0xef, 0x04, - 0x2b, 0x53, 0x6f, 0x0f, 0xbd, 0x8b, 0x7b, 0x69, 0x74, 0x13, 0xe4, 0x88, 0x98, 0x3a, 0x7b, 0xd8, - 0xe1, 0x23, 0x30, 0x4d, 0x23, 0xce, 0xc1, 0x55, 0x06, 0x56, 0x71, 0xdb, 0xc4, 0x1d, 0xab, 0xeb, - 0x4a, 0x23, 0x07, 0x85, 0xfd, 0xc9, 0xd1, 0xe3, 0x7e, 0x00, 0xef, 0x62, 0x01, 0x3c, 0x33, 0x84, - 0x95, 0x56, 0x83, 0x82, 0x6f, 0x4e, 0xac, 0x66, 0x34, 0x55, 0xcd, 0x74, 0x2f, 0x80, 0x68, 0xd8, - 0xfa, 0xb6, 0x65, 0xee, 0xa8, 0xe4, 0x9b, 0x2d, 0x48, 0x6e, 0x58, 0x2c, 0x41, 0x5e, 0xee, 0xee, - 0x91, 0x4f, 0x99, 0x90, 0x56, 0x3b, 0x89, 0xd0, 0x7b, 0x5d, 0xe4, 0xef, 0x65, 0x90, 0xff, 0x19, - 0x3e, 0x72, 0x93, 0x07, 0xfe, 0x6f, 0x73, 0x90, 0x5d, 0x91, 0x0d, 0x13, 0xa3, 0xef, 0x09, 0x71, - 0xeb, 0xa9, 0xc4, 0x80, 0xb9, 0x78, 0x23, 0x14, 0x9d, 0xc8, 0x39, 0x67, 0x21, 0x6e, 0x2b, 0x27, - 0xed, 0x8b, 0xb7, 0x86, 0x01, 0xc5, 0x58, 0x91, 0x75, 0xb3, 0xb1, 0x41, 0xe2, 0xc8, 0x54, 0x50, - 0x90, 0xd8, 0x48, 0x06, 0xfa, 0x5c, 0x08, 0xf4, 0xf9, 0x60, 0xe8, 0x0b, 0x1c, 0xd0, 0x8b, 0x65, - 0x28, 0x6c, 0x28, 0x2a, 0x26, 0x19, 0xa6, 0x48, 0x86, 0x61, 0x73, 0x12, 0xe1, 0xbd, 0x3b, 0x27, - 0x59, 0x1b, 0x24, 0xc9, 0xcd, 0x86, 0x96, 0xec, 0x1d, 0xa8, 0x28, 0x42, 0xa6, 0x2b, 0xef, 0x60, - 0x8a, 0x04, 0xf9, 0x6f, 0xc5, 0x75, 0x64, 0x53, 0x26, 0xac, 0x3f, 0x2a, 0x91, 0xff, 0x16, 0x6c, - 0x44, 0x63, 0x6b, 0x45, 0x36, 0xb7, 0xa8, 0xe8, 0x7a, 0x11, 0xe8, 0x0d, 0x42, 0xb4, 0xf1, 0xcf, - 0x21, 0x2d, 0xea, 0xcd, 0xe3, 0x75, 0x30, 0xd3, 0x96, 0x75, 0x6c, 0xae, 0xf8, 0xb5, 0xd1, 0xb2, - 0x12, 0x1b, 0x69, 0x01, 0xab, 0x18, 0x4d, 0x79, 0x07, 0x93, 0xca, 0x2a, 0xd6, 0x37, 0x32, 0xf1, - 0x17, 0xa4, 0x7d, 0xf1, 0xde, 0x68, 0x9b, 0x8d, 0x7b, 0xb4, 0x1d, 0xd6, 0xc6, 0xe4, 0x3b, 0xdd, - 0x07, 0x32, 0x20, 0x54, 0xfa, 0xe6, 0x15, 0x3d, 0xd8, 0xfe, 0xc4, 0x3f, 0xd8, 0xbe, 0x8c, 0x95, - 0x96, 0x61, 0x82, 0x5c, 0xe9, 0x9b, 0x87, 0x3b, 0xd6, 0x46, 0x94, 0x92, 0x5f, 0x73, 0xa5, 0xe4, - 0x1e, 0x46, 0x4a, 0x6e, 0xe4, 0x6a, 0x5b, 0xf2, 0x32, 0xf2, 0x51, 0x01, 0x8e, 0xd5, 0x76, 0x7a, - 0x9a, 0x6e, 0x2e, 0xcb, 0xfa, 0x76, 0x47, 0xbb, 0xdc, 0x45, 0xe7, 0x79, 0xa5, 0xe5, 0x14, 0x80, - 0x42, 0xb2, 0x92, 0x81, 0xc0, 0x26, 0xc8, 0x17, 0x83, 0xfe, 0x30, 0xda, 0x91, 0x6e, 0x89, 0xa5, - 0x23, 0x00, 0xe6, 0x6b, 0x61, 0x5a, 0xd7, 0x34, 0x73, 0x89, 0x51, 0x48, 0xf3, 0x47, 0x45, 0x5c, - 0xcd, 0x46, 0x38, 0xf4, 0x0d, 0x27, 0x70, 0x02, 0x17, 0x01, 0x02, 0xe4, 0xaa, 0x0f, 0x58, 0x24, - 0xa0, 0xd5, 0x44, 0x7a, 0x34, 0xab, 0x4a, 0x78, 0x0f, 0x8b, 0xd8, 0x0d, 0x43, 0x18, 0x62, 0x53, - 0x13, 0x80, 0x94, 0x08, 0x99, 0x9e, 0x27, 0x18, 0xe4, 0x7f, 0x44, 0x6c, 0xde, 0xef, 0x62, 0x53, - 0x66, 0xb0, 0x79, 0x11, 0x2f, 0x29, 0xc9, 0x63, 0xf2, 0xa0, 0x00, 0xb9, 0xd5, 0x9e, 0xaa, 0xc9, - 0x1d, 0xa4, 0x1d, 0x7c, 0x1f, 0x8b, 0xec, 0xc9, 0xdc, 0x37, 0xb1, 0xba, 0x61, 0xb1, 0x08, 0x42, - 0x5f, 0x57, 0xa9, 0x9a, 0x98, 0xf5, 0x17, 0xbd, 0x27, 0x22, 0x5a, 0x36, 0x9d, 0xb1, 0x6c, 0x35, - 0xa2, 0x20, 0x33, 0xb4, 0xda, 0xe4, 0x91, 0xf9, 0x41, 0x1a, 0x0a, 0xf3, 0xda, 0xe5, 0x2e, 0xc1, - 0xa6, 0x7c, 0x60, 0x6c, 0xa2, 0x2a, 0x57, 0x96, 0x9c, 0xba, 0x27, 0xad, 0x5c, 0x19, 0x54, 0x71, - 0xf2, 0x1c, 0xff, 0xe4, 0xcd, 0xb6, 0xce, 0xd4, 0x07, 0x05, 0xf7, 0xc2, 0x52, 0x3f, 0x78, 0x9f, - 0xf0, 0x6e, 0x12, 0x05, 0xbe, 0x9b, 0xc4, 0x0f, 0xf9, 0x81, 0x9a, 0x63, 0x81, 0x1a, 0x7a, 0x46, - 0x11, 0xef, 0x2d, 0xe2, 0xaf, 0xbb, 0x50, 0x55, 0x19, 0xa8, 0x6e, 0x89, 0x52, 0x75, 0xf2, 0x60, - 0x3d, 0x25, 0x40, 0x7e, 0xde, 0x56, 0x45, 0x45, 0x8b, 0x90, 0xb3, 0xff, 0x5a, 0x83, 0xcc, 0x36, - 0xde, 0xa3, 0xf0, 0x58, 0x7f, 0xad, 0xc6, 0xef, 0xca, 0x6a, 0x1f, 0xbb, 0x8d, 0x1f, 0xe4, 0xfe, - 0x45, 0xeb, 0xab, 0x64, 0x27, 0x42, 0x5b, 0xbc, 0x78, 0xdf, 0xeb, 0x29, 0xcc, 0xa6, 0x03, 0x77, - 0x2d, 0xe4, 0x66, 0xce, 0x4e, 0x45, 0x7f, 0x5d, 0xf5, 0x59, 0xf4, 0x61, 0x3f, 0xca, 0x15, 0x16, - 0xe5, 0x17, 0x8d, 0x28, 0x2b, 0x0e, 0x98, 0x3f, 0xec, 0xc2, 0xbc, 0xc0, 0xc0, 0x7c, 0x2e, 0x52, - 0xdd, 0x13, 0xb9, 0x5f, 0x3c, 0x2a, 0x61, 0xc3, 0xd4, 0x95, 0xb6, 0x55, 0x86, 0x81, 0xde, 0x98, - 0x3a, 0x78, 0x9f, 0xac, 0xc2, 0x51, 0xdd, 0x57, 0x26, 0xed, 0x99, 0xcf, 0x1b, 0x7a, 0x94, 0xea, - 0xaf, 0x5c, 0x62, 0xb2, 0xb1, 0xcb, 0x8d, 0x45, 0x16, 0xc3, 0x20, 0x3e, 0xfa, 0x8b, 0x8b, 0x05, - 0xc8, 0x8f, 0xb9, 0x40, 0x5e, 0x60, 0x80, 0x7c, 0x69, 0x74, 0x02, 0x92, 0x47, 0xf3, 0x75, 0x02, - 0x64, 0x88, 0xda, 0xfa, 0x8f, 0xd3, 0x00, 0x35, 0xa3, 0xac, 0xb7, 0xb7, 0x94, 0x5d, 0xdc, 0x41, - 0xf2, 0xc1, 0x31, 0xb5, 0x56, 0xf3, 0x6e, 0x81, 0x04, 0xd1, 0x82, 0xe4, 0x8b, 0x41, 0x6f, 0xf0, - 0x83, 0x75, 0x81, 0x05, 0xeb, 0xb6, 0x00, 0x5e, 0x11, 0x6d, 0x6d, 0x8f, 0xcc, 0x80, 0x97, 0x3f, - 0x9f, 0x70, 0x11, 0xa8, 0x33, 0x08, 0xdc, 0x39, 0x56, 0xa9, 0xc9, 0x83, 0xf0, 0x2b, 0x02, 0x64, - 0x97, 0x64, 0x13, 0x3f, 0x80, 0xde, 0x22, 0x50, 0xed, 0xe0, 0xd5, 0x83, 0xf3, 0x5f, 0x84, 0x8c, - 0x95, 0x86, 0xae, 0xfb, 0xc8, 0xff, 0xa8, 0x4a, 0x31, 0x84, 0x3b, 0x84, 0x32, 0xfb, 0xe2, 0x62, - 0xc2, 0x4a, 0x31, 0xe1, 0xd5, 0x4f, 0xe0, 0xf2, 0x7d, 0x86, 0xa2, 0xf1, 0x98, 0x03, 0xcb, 0x2f, - 0xa7, 0x12, 0xc1, 0x45, 0xbc, 0x1b, 0xb2, 0x3b, 0xb2, 0xbe, 0x6d, 0x90, 0xd5, 0xf8, 0x34, 0xcf, - 0x1d, 0x92, 0xb5, 0x69, 0x34, 0x24, 0x3b, 0x57, 0xe4, 0x8b, 0x42, 0x57, 0xb7, 0x33, 0x36, 0x54, - 0xa3, 0x5c, 0x14, 0x86, 0xd5, 0x9e, 0x3c, 0xa8, 0x6f, 0x73, 0x55, 0xb6, 0x2f, 0x1d, 0x1c, 0xcb, - 0xe1, 0xda, 0xa4, 0xe3, 0xf4, 0xb2, 0x98, 0x95, 0xb5, 0xa3, 0xf6, 0xb2, 0x43, 0x54, 0xd4, 0xfe, - 0xbc, 0xab, 0xa7, 0xf4, 0xaf, 0x62, 0xe8, 0x5d, 0x07, 0xd4, 0x6e, 0x19, 0x1b, 0xba, 0xf8, 0x34, - 0x94, 0xc6, 0x82, 0xee, 0xd0, 0x9e, 0x3f, 0xe4, 0x2b, 0x5b, 0xb8, 0xbd, 0x8d, 0x3b, 0xe8, 0x95, - 0x07, 0xc7, 0x6e, 0x16, 0xf2, 0x6d, 0xbb, 0x34, 0xba, 0x5c, 0x70, 0x82, 0x63, 0x2d, 0xec, 0x6c, - 0x91, 0xb6, 0x0b, 0x38, 0x94, 0x85, 0x5d, 0x08, 0x01, 0xc9, 0x43, 0xf3, 0x0e, 0x47, 0x0d, 0xf0, - 0x4d, 0x02, 0x64, 0xea, 0xf2, 0x0e, 0x8e, 0x69, 0x49, 0x41, 0x2e, 0x74, 0x04, 0xef, 0x42, 0x67, - 0xac, 0xb9, 0x87, 0x28, 0xd4, 0x59, 0x44, 0x1d, 0xca, 0xdc, 0x13, 0x54, 0x7b, 0xf2, 0xa0, 0x7c, - 0x23, 0x0b, 0xd9, 0xda, 0x8e, 0xb5, 0xdc, 0xfe, 0x6e, 0x3a, 0x59, 0x54, 0xf8, 0x5f, 0xd4, 0x7b, - 0x7c, 0x21, 0x94, 0x85, 0xc0, 0x12, 0x79, 0x64, 0x0a, 0x2c, 0x30, 0x79, 0x4e, 0x3f, 0x91, 0x86, - 0xec, 0x25, 0xa5, 0x63, 0x6e, 0xc5, 0x34, 0xcb, 0x5f, 0xb6, 0xca, 0xa2, 0x37, 0x82, 0x76, 0x20, - 0x82, 0x8d, 0x90, 0x41, 0x8e, 0x10, 0xc2, 0x0e, 0x64, 0x23, 0x84, 0xa7, 0xc4, 0xc9, 0x88, 0xf3, - 0x45, 0xa5, 0x83, 0xb5, 0x2b, 0x52, 0x9c, 0x09, 0x65, 0x71, 0x8a, 0x73, 0x60, 0x81, 0xff, 0xcf, - 0x8a, 0xb3, 0xcd, 0x91, 0x38, 0xc5, 0x39, 0xb8, 0xc4, 0xe4, 0x99, 0xfc, 0x15, 0x01, 0x32, 0x4b, - 0x4a, 0x77, 0x1b, 0xfd, 0xae, 0x00, 0x33, 0xf6, 0x93, 0x79, 0x47, 0x07, 0x6b, 0xf3, 0xe0, 0x5c, - 0xbf, 0x0e, 0x66, 0x4c, 0x7f, 0x99, 0x8e, 0xb2, 0x17, 0x13, 0x89, 0xbe, 0xe4, 0x9f, 0x4d, 0xeb, - 0x2c, 0x0a, 0xb7, 0x07, 0xed, 0x90, 0x95, 0xee, 0x76, 0x89, 0xa1, 0x37, 0x96, 0x69, 0xf5, 0xb7, - 0x5d, 0xe8, 0x7e, 0x96, 0x81, 0xee, 0xee, 0x71, 0xc9, 0x48, 0x1e, 0xc1, 0x87, 0x73, 0x16, 0xf7, - 0x54, 0x99, 0xbc, 0x5c, 0x7f, 0xab, 0x00, 0xb9, 0x26, 0x36, 0x2f, 0xe0, 0x3d, 0xd4, 0x3c, 0x38, - 0x7c, 0xf4, 0x20, 0x5b, 0x70, 0x0f, 0xb2, 0xd1, 0x27, 0xd2, 0xd1, 0x3a, 0x8c, 0x43, 0x58, 0xc9, - 0x26, 0x2a, 0x16, 0x8c, 0xa2, 0x74, 0xaf, 0xf0, 0xfa, 0x93, 0x07, 0xe7, 0x23, 0x02, 0x08, 0xe5, - 0x4e, 0x07, 0xed, 0x1e, 0x1c, 0x8c, 0x5b, 0xa1, 0xa0, 0xd3, 0xd6, 0xb8, 0x97, 0x38, 0x03, 0xfa, - 0x21, 0xf4, 0xb3, 0xe4, 0x26, 0x8c, 0xfa, 0x70, 0xc1, 0xe3, 0x57, 0xb9, 0xd3, 0x99, 0xf4, 0xc3, - 0x85, 0xb0, 0xca, 0x27, 0x70, 0xef, 0x26, 0x00, 0x34, 0x3c, 0x7b, 0x40, 0xef, 0x13, 0xec, 0x6b, - 0xb8, 0x65, 0x5e, 0xe0, 0xae, 0x83, 0x19, 0xcf, 0x9c, 0xd0, 0xaa, 0xae, 0x3a, 0x43, 0x1d, 0x13, - 0x89, 0xbe, 0x16, 0x71, 0xab, 0xed, 0x51, 0xe4, 0x1c, 0x9b, 0x1f, 0x18, 0x91, 0x47, 0x22, 0xac, - 0x00, 0x42, 0xab, 0x8f, 0x86, 0x49, 0x23, 0x3a, 0x26, 0xe2, 0xb3, 0xe1, 0x6a, 0x27, 0x45, 0x63, - 0xee, 0xbe, 0x6a, 0xa5, 0xb5, 0xd6, 0xba, 0x7f, 0xa5, 0xba, 0xb6, 0x2a, 0x2d, 0x15, 0x05, 0xf4, - 0x60, 0x1e, 0x0a, 0x73, 0x9a, 0xb6, 0x4d, 0x9e, 0x9b, 0xbf, 0x59, 0x80, 0xec, 0x02, 0x36, 0xdb, - 0x5b, 0x31, 0x0d, 0x7b, 0x7d, 0x17, 0x40, 0xa2, 0x24, 0x10, 0xf5, 0x84, 0xc4, 0xa1, 0xab, 0x44, - 0x68, 0x9a, 0xf8, 0x09, 0x49, 0x68, 0xf5, 0xc9, 0x77, 0xa5, 0x9f, 0x08, 0x70, 0xac, 0xa2, 0x63, - 0xd9, 0xc4, 0xe5, 0x6e, 0xc7, 0x46, 0xe5, 0x17, 0x63, 0x31, 0xf7, 0x72, 0x00, 0xb3, 0x79, 0xfb, - 0x15, 0x3f, 0xbe, 0x15, 0xed, 0xf9, 0xbb, 0xc7, 0x54, 0xb6, 0x69, 0x09, 0xbf, 0x13, 0x88, 0xf0, - 0x30, 0x9e, 0x93, 0xc2, 0xe4, 0xf1, 0x7f, 0x32, 0x43, 0x8f, 0x61, 0xbe, 0x93, 0x81, 0xe3, 0x2e, - 0x2d, 0x54, 0xc1, 0xe7, 0x6f, 0xaf, 0x38, 0x49, 0x60, 0x55, 0x71, 0xb3, 0x03, 0xaa, 0xb8, 0xe2, - 0x9c, 0xad, 0x4e, 0x44, 0xec, 0xc6, 0xe5, 0x38, 0x1e, 0xf4, 0x92, 0x93, 0x16, 0x2b, 0xb5, 0xe4, - 0xe6, 0x63, 0xb5, 0xe1, 0x97, 0x58, 0x59, 0x1b, 0xb6, 0x6c, 0x21, 0x65, 0x0c, 0x70, 0x2e, 0x61, - 0x41, 0xfb, 0xa4, 0x2b, 0x68, 0x0d, 0x46, 0xd0, 0x5e, 0x36, 0x1e, 0x79, 0x13, 0xb0, 0x96, 0x71, - 0x17, 0x14, 0xe6, 0x65, 0x53, 0xde, 0x55, 0xf0, 0x65, 0xf4, 0x7d, 0x01, 0xe0, 0xa2, 0x82, 0x2f, - 0xdb, 0x44, 0x45, 0x78, 0xc7, 0x1d, 0xcc, 0xbe, 0x7b, 0x20, 0x63, 0x15, 0x4d, 0x6f, 0xa7, 0x6e, - 0x0c, 0x7f, 0xc4, 0x4d, 0xe9, 0x28, 0x59, 0x34, 0x48, 0x24, 0x1f, 0xab, 0xb8, 0xc9, 0x71, 0xd5, - 0xcb, 0x94, 0x61, 0xb7, 0x23, 0x8e, 0x89, 0x43, 0x3c, 0x09, 0x39, 0xab, 0x58, 0x77, 0xf3, 0x45, - 0x43, 0x91, 0x2e, 0x8c, 0x47, 0xd3, 0x96, 0x3c, 0xde, 0x0e, 0xc4, 0xf6, 0x93, 0xbb, 0x08, 0xfa, - 0xd8, 0xc1, 0x10, 0x07, 0xb0, 0xe6, 0xc0, 0xd0, 0x7f, 0xee, 0x20, 0xd0, 0xdb, 0xed, 0x8b, 0x65, - 0xcd, 0x30, 0x36, 0xc4, 0x43, 0x69, 0x48, 0x1e, 0xe2, 0xf7, 0x51, 0x88, 0xe7, 0xb1, 0x8a, 0x4d, - 0xcc, 0x6f, 0xfb, 0x86, 0x07, 0xe1, 0x0c, 0x23, 0xfc, 0x07, 0x42, 0xc8, 0x26, 0xef, 0x70, 0x11, - 0x1a, 0x4a, 0x43, 0xf2, 0x08, 0x7d, 0x5d, 0x80, 0xe3, 0x56, 0xf5, 0x4d, 0xef, 0x75, 0x08, 0xbf, - 0xf5, 0x9b, 0xc8, 0x30, 0x11, 0x73, 0xd5, 0x7e, 0xd3, 0x8d, 0x33, 0x3e, 0x23, 0x7d, 0x5f, 0xf1, - 0x43, 0xb8, 0xc2, 0x42, 0x38, 0x92, 0x7d, 0x3e, 0xfa, 0x63, 0xc1, 0xf1, 0x33, 0x2e, 0x8e, 0x4d, - 0x06, 0xc7, 0x7b, 0xc7, 0x27, 0x24, 0x79, 0x30, 0xbf, 0x25, 0xc0, 0x0c, 0xa5, 0xa1, 0xdc, 0x36, - 0x95, 0x5d, 0x8c, 0xde, 0x90, 0xe0, 0xa0, 0x7a, 0x12, 0x72, 0xda, 0xc6, 0x86, 0x41, 0x9f, 0x0e, - 0xcd, 0x48, 0x34, 0x24, 0x9e, 0x80, 0xac, 0xaa, 0xec, 0x28, 0x26, 0x05, 0xd8, 0x0e, 0x44, 0x3e, - 0x13, 0x1c, 0x64, 0xaa, 0xdd, 0xa0, 0x89, 0x9f, 0x09, 0x72, 0x91, 0x91, 0x3c, 0xb2, 0x9f, 0x20, - 0xfa, 0x8a, 0x6d, 0x4d, 0xef, 0xd0, 0xd9, 0xf2, 0x6d, 0xa9, 0x58, 0xf4, 0xea, 0x75, 0x52, 0xa6, - 0x0b, 0xad, 0x1b, 0x16, 0xcf, 0x42, 0xce, 0xfe, 0x4f, 0xe7, 0xcc, 0x60, 0xfd, 0x62, 0x3b, 0x19, - 0x7a, 0x8b, 0x1f, 0xdf, 0x65, 0x16, 0xdf, 0x97, 0x86, 0x31, 0xd6, 0xdf, 0xac, 0x80, 0xf3, 0xf7, - 0x4f, 0xb9, 0x80, 0xad, 0x30, 0x80, 0xdd, 0x35, 0x66, 0xb9, 0x13, 0x79, 0x40, 0x44, 0xf1, 0xa2, - 0x53, 0xdf, 0xff, 0x9f, 0x28, 0x5c, 0xe8, 0x0b, 0x07, 0xe3, 0x7e, 0x8c, 0x13, 0xe0, 0x01, 0xb0, - 0x3a, 0xa4, 0x29, 0xf0, 0x09, 0x17, 0x2b, 0xba, 0xd9, 0x78, 0x47, 0x2a, 0x16, 0xfd, 0x7c, 0xda, - 0x7f, 0x04, 0xae, 0xfe, 0x23, 0x9e, 0x02, 0x30, 0xf1, 0x4e, 0x4f, 0x95, 0x4d, 0xec, 0xce, 0x9a, - 0xbe, 0x18, 0xf4, 0xef, 0x0e, 0x86, 0x70, 0xe8, 0xfe, 0xc3, 0x23, 0x36, 0xcd, 0xd7, 0xd9, 0x0f, - 0x00, 0xf2, 0x21, 0x6d, 0x36, 0x7e, 0x35, 0x03, 0xd3, 0xce, 0x71, 0xf4, 0x61, 0x9e, 0xdf, 0xbf, - 0x4d, 0x88, 0x76, 0x70, 0xe0, 0xe3, 0x9e, 0x4b, 0x7c, 0x2c, 0xbb, 0xc8, 0x6b, 0x61, 0xda, 0x21, - 0xea, 0x82, 0x7b, 0x25, 0xe4, 0x8f, 0x62, 0xda, 0x97, 0xe1, 0x6d, 0x5f, 0x94, 0x53, 0x07, 0x8e, - 0xb6, 0x25, 0x2f, 0x18, 0x4f, 0x0b, 0x70, 0xcc, 0xa9, 0x9f, 0xce, 0xad, 0xef, 0x8c, 0xa1, 0xff, - 0x27, 0xc4, 0xde, 0x88, 0x26, 0x3e, 0xf7, 0xb3, 0x38, 0xc6, 0xcd, 0x68, 0x94, 0x93, 0x4c, 0x3e, - 0x3a, 0x92, 0x47, 0xfb, 0x73, 0x3e, 0xb4, 0xe9, 0xcc, 0xdc, 0x9e, 0x00, 0xd8, 0x07, 0xc7, 0x8d, - 0x6f, 0x86, 0x16, 0x12, 0xc7, 0xed, 0x90, 0xe6, 0xe8, 0xef, 0x66, 0xe0, 0x6a, 0x7b, 0xfe, 0x70, - 0x08, 0x69, 0xf4, 0x9c, 0xa1, 0xfc, 0xa1, 0x89, 0x74, 0xd7, 0x97, 0x40, 0x4e, 0xeb, 0xf9, 0x3a, - 0xeb, 0xa9, 0x80, 0xce, 0x5a, 0xb2, 0x09, 0x93, 0x68, 0x6a, 0x66, 0xd5, 0x96, 0x1d, 0x58, 0xb5, - 0x31, 0x46, 0x21, 0x5e, 0xc1, 0x4a, 0xc5, 0xdc, 0xe8, 0xa9, 0x74, 0x1f, 0x2b, 0x62, 0x99, 0x18, - 0xbc, 0x86, 0x0a, 0x51, 0x1a, 0x8a, 0xbe, 0xe8, 0x8a, 0xd5, 0x2b, 0x19, 0xb1, 0x3a, 0x7f, 0xf0, - 0x86, 0x4c, 0xe0, 0xb2, 0x38, 0x03, 0x68, 0x18, 0x2d, 0x74, 0x46, 0xf8, 0xe9, 0x15, 0xb1, 0x3f, - 0xf5, 0x0f, 0x3c, 0xaf, 0x64, 0x45, 0xac, 0x1a, 0x15, 0x99, 0x18, 0x27, 0x8f, 0x2f, 0xbb, 0xd2, - 0xf2, 0xcf, 0x18, 0x69, 0xb9, 0x2f, 0x16, 0x9a, 0x26, 0xa0, 0x99, 0x1c, 0x20, 0x30, 0x74, 0x52, - 0x79, 0xcf, 0x44, 0x04, 0x06, 0x41, 0xc1, 0x16, 0x01, 0x77, 0xc7, 0xe0, 0x86, 0x27, 0x27, 0x14, - 0x31, 0xee, 0x1d, 0x63, 0x13, 0x8a, 0x43, 0x9a, 0xa5, 0xfe, 0x40, 0x80, 0x67, 0x3a, 0x84, 0x2c, - 0x29, 0x86, 0x59, 0xde, 0x95, 0x15, 0x55, 0x5e, 0x57, 0x71, 0x1c, 0x2f, 0xed, 0xff, 0xa7, 0x1f, - 0xb4, 0x8b, 0x2c, 0x68, 0x2f, 0xe7, 0x99, 0xba, 0x19, 0x8a, 0x02, 0xf0, 0xba, 0x0d, 0xa6, 0x1c, - 0x01, 0x73, 0x9e, 0x20, 0x07, 0xae, 0x4a, 0xbd, 0x94, 0xe8, 0x3f, 0xbb, 0xc0, 0xdd, 0xcf, 0x00, - 0x57, 0x3d, 0x28, 0x5d, 0xd1, 0x30, 0x5b, 0x1a, 0x43, 0x25, 0x65, 0x16, 0x4e, 0xd4, 0x1b, 0xad, - 0xb5, 0xf2, 0xda, 0x7c, 0xb9, 0x55, 0xbe, 0x58, 0xab, 0x5e, 0x5a, 0x9b, 0x5b, 0x6a, 0x54, 0x2e, - 0x14, 0x05, 0xf4, 0x6f, 0x05, 0x98, 0x6a, 0x62, 0xb3, 0xa9, 0xf5, 0xf5, 0x76, 0x5c, 0x77, 0x17, - 0x06, 0x29, 0x8c, 0xba, 0xb6, 0xa1, 0xa1, 0xa8, 0x46, 0x85, 0x3d, 0x0e, 0xba, 0xd4, 0x8d, 0xea, - 0x7d, 0x99, 0x98, 0x8d, 0x0a, 0x8f, 0x26, 0x21, 0xf9, 0xce, 0xf6, 0x41, 0x01, 0x84, 0xf3, 0xd8, - 0x44, 0xef, 0x16, 0x20, 0x4b, 0xde, 0x11, 0xc6, 0x64, 0xd8, 0x94, 0xd7, 0x64, 0x26, 0xfa, 0x80, - 0x1f, 0xb6, 0x32, 0x0b, 0xdb, 0x30, 0x13, 0x73, 0xe7, 0x31, 0x7d, 0xf0, 0x18, 0xcb, 0x58, 0xf9, - 0x21, 0x17, 0xad, 0x79, 0x06, 0xad, 0x9b, 0x23, 0xd4, 0x9c, 0x3c, 0x48, 0x77, 0xc0, 0xf1, 0xd5, - 0x6e, 0x47, 0x93, 0x70, 0x47, 0xab, 0x68, 0xfd, 0xae, 0x89, 0x89, 0x01, 0x9c, 0x7e, 0xb7, 0xa3, - 0x11, 0x72, 0xb3, 0x12, 0xf9, 0x6f, 0xc5, 0xe9, 0xb8, 0xa3, 0x91, 0x5a, 0xb3, 0x12, 0xf9, 0x8f, - 0xde, 0x23, 0x40, 0xc6, 0xca, 0x8b, 0x5e, 0xc0, 0x09, 0x2b, 0xfa, 0xef, 0x11, 0x4d, 0x14, 0x5a, - 0xa5, 0xc7, 0xb2, 0x64, 0xbe, 0x07, 0x0a, 0x6d, 0xbb, 0x75, 0xce, 0xa3, 0xff, 0xd3, 0x01, 0xd5, - 0xf9, 0x18, 0x21, 0xb9, 0x79, 0x7c, 0x17, 0x12, 0xa3, 0x0d, 0x15, 0x0e, 0x21, 0x3a, 0x1a, 0x8c, - 0xf3, 0x63, 0x0c, 0x92, 0x45, 0x38, 0x5a, 0x29, 0xd7, 0xd7, 0xac, 0x81, 0x72, 0xb9, 0x71, 0xb1, - 0x5a, 0x14, 0x08, 0x3a, 0x56, 0x63, 0x92, 0x43, 0xc7, 0x2a, 0xfd, 0xa7, 0x0e, 0x9d, 0x21, 0x44, - 0x1f, 0x06, 0x3a, 0x1f, 0x11, 0x20, 0xd3, 0xe8, 0xe1, 0x6e, 0x4c, 0xef, 0x19, 0x4d, 0x5d, 0x6e, - 0x63, 0xf7, 0xd6, 0xc1, 0x09, 0xa2, 0xdf, 0x8b, 0x88, 0xa8, 0x45, 0x51, 0x2c, 0x63, 0xdf, 0xd7, - 0x22, 0x20, 0x32, 0xa4, 0xd2, 0x68, 0x88, 0xfc, 0xdc, 0x18, 0x88, 0xcc, 0xc0, 0x94, 0x85, 0xc6, - 0x42, 0x63, 0xb5, 0x3e, 0x5f, 0x14, 0xc4, 0x67, 0xc1, 0x33, 0xcb, 0xf5, 0xfb, 0x89, 0xaa, 0x6b, - 0xbd, 0x5a, 0x9d, 0x6f, 0xae, 0xad, 0xae, 0x9c, 0x97, 0xca, 0xf3, 0xd5, 0x22, 0x10, 0xa4, 0x9a, - 0x5b, 0xda, 0xe5, 0x2b, 0x0b, 0x29, 0x8b, 0xa2, 0x89, 0x23, 0x35, 0xa4, 0xd2, 0x2b, 0x09, 0xa9, - 0xaf, 0xa7, 0xe1, 0xf8, 0x79, 0x6c, 0xae, 0xf4, 0xd7, 0x55, 0xa5, 0x7d, 0x09, 0xaf, 0xaf, 0x4a, - 0x4b, 0xe8, 0xf9, 0x1e, 0x68, 0x81, 0x4e, 0x5f, 0xd0, 0xdb, 0x23, 0x3e, 0xb1, 0x18, 0xa8, 0x24, - 0x00, 0x07, 0xaa, 0xf5, 0x98, 0xf6, 0xf4, 0x5f, 0xa3, 0x3c, 0xa3, 0x08, 0xaf, 0x23, 0xf9, 0x75, - 0xc1, 0x7b, 0x05, 0x38, 0x6e, 0xf5, 0xcc, 0x39, 0x1d, 0xcb, 0x9d, 0xb6, 0xde, 0xdf, 0x59, 0x37, - 0x22, 0xed, 0x91, 0x1c, 0x39, 0x4f, 0xb3, 0x72, 0xfe, 0x68, 0x44, 0x56, 0x0f, 0x90, 0x90, 0xb0, - 0x46, 0x66, 0x14, 0x80, 0xc2, 0x29, 0x4b, 0x1e, 0xa0, 0xd7, 0x0a, 0x70, 0xac, 0x89, 0xcd, 0x00, - 0x7c, 0xae, 0x83, 0x99, 0x75, 0xef, 0x8b, 0x8b, 0x11, 0x1b, 0x69, 0x89, 0xa8, 0xe2, 0x1a, 0xa3, - 0xb4, 0xfe, 0x8e, 0x63, 0x98, 0x60, 0x34, 0x3c, 0x89, 0x1a, 0x26, 0x38, 0x4c, 0x0c, 0xfe, 0x5a, - 0x80, 0x1c, 0xbd, 0x92, 0xfe, 0x58, 0x2c, 0x4a, 0xd6, 0x11, 0xdc, 0x36, 0x1c, 0xc4, 0xdb, 0xea, - 0xe7, 0x22, 0x5a, 0x60, 0x0c, 0xbd, 0x9b, 0x8e, 0xab, 0xf3, 0x45, 0xb1, 0xcd, 0x78, 0x48, 0x77, - 0xd4, 0x7f, 0x9d, 0x01, 0xb0, 0xab, 0x26, 0xc6, 0xac, 0x5e, 0xc7, 0xed, 0x02, 0x62, 0x0c, 0x3f, - 0xcb, 0xac, 0xba, 0x41, 0x76, 0x50, 0xdd, 0x80, 0x5b, 0x57, 0x3f, 0x9a, 0x68, 0xf8, 0xcc, 0x16, - 0xe6, 0xf8, 0xcc, 0x16, 0x7e, 0x3b, 0xa2, 0xd9, 0x42, 0x8f, 0x7f, 0x91, 0xe5, 0xc9, 0xdf, 0x64, - 0x61, 0xa0, 0xc9, 0xd1, 0x4e, 0x52, 0xa2, 0x18, 0x3b, 0x0c, 0x24, 0x38, 0x79, 0x79, 0xfb, 0x4f, - 0x19, 0x98, 0xb2, 0xab, 0x6f, 0x62, 0x13, 0x3d, 0x16, 0xcb, 0x10, 0x13, 0x70, 0xc6, 0xe5, 0x17, - 0xd1, 0x0c, 0xa7, 0x88, 0x1e, 0xc0, 0xcd, 0xf7, 0x8f, 0x22, 0x1e, 0xcd, 0xb8, 0x5c, 0x38, 0x44, - 0xa1, 0xf9, 0x6a, 0x84, 0x03, 0x9d, 0x20, 0x7a, 0x0f, 0xf9, 0x05, 0xdf, 0xd3, 0x69, 0xc8, 0xad, - 0x76, 0x55, 0xa5, 0xbb, 0x8d, 0x2a, 0x31, 0x38, 0xf9, 0x8a, 0x6e, 0xca, 0x97, 0xd4, 0x3d, 0x79, - 0x53, 0xbe, 0xc3, 0xaa, 0x9d, 0x80, 0xc9, 0xa9, 0x34, 0x64, 0x2b, 0xaa, 0x66, 0xc4, 0x72, 0xbb, - 0xf0, 0x74, 0x2a, 0x9a, 0x7f, 0x02, 0x52, 0x71, 0x80, 0xba, 0x66, 0x14, 0x1f, 0x00, 0xc3, 0xca, - 0x49, 0x9e, 0x75, 0x7f, 0x71, 0x14, 0xa6, 0x2e, 0x69, 0xfa, 0xb6, 0xd1, 0x93, 0xdb, 0x18, 0x7d, - 0x21, 0x0d, 0x70, 0x1e, 0x9b, 0x95, 0xbe, 0xae, 0x5b, 0xd0, 0x4f, 0xb9, 0xdc, 0x64, 0xad, 0x1b, - 0x87, 0xae, 0x57, 0xdd, 0xd2, 0x4a, 0x5e, 0x49, 0xc1, 0xb6, 0xda, 0x2f, 0x3b, 0xa9, 0x5d, 0x20, - 0xfc, 0x51, 0x9c, 0x6b, 0x54, 0x8e, 0x2a, 0x93, 0xe7, 0xe4, 0xa7, 0xd2, 0x90, 0x3b, 0x8f, 0xcd, - 0xb2, 0xaa, 0xfa, 0xf9, 0xf6, 0x2e, 0xee, 0x59, 0x9b, 0x69, 0x44, 0x59, 0x55, 0x03, 0x78, 0x76, - 0x1a, 0x8e, 0xfa, 0x18, 0xe4, 0x8c, 0x14, 0x4c, 0x1c, 0xe7, 0xac, 0x3b, 0xa2, 0xc2, 0xe4, 0x39, - 0xf6, 0x7b, 0x69, 0x77, 0x55, 0xff, 0x1c, 0xaf, 0xdf, 0x0e, 0xf1, 0x32, 0x82, 0x1e, 0x1c, 0x83, - 0x8b, 0xa1, 0x6b, 0xe9, 0xd1, 0x92, 0x17, 0x95, 0x87, 0x87, 0xb4, 0x52, 0x7e, 0x3a, 0x0d, 0xc5, - 0x26, 0x36, 0x6b, 0xc6, 0xa2, 0xb2, 0xb9, 0xa5, 0x2a, 0x9b, 0x5b, 0x26, 0xee, 0xa0, 0x0b, 0x1e, - 0x37, 0x11, 0x14, 0xec, 0x67, 0xfa, 0xee, 0x20, 0xe8, 0x86, 0x6d, 0x47, 0x35, 0xbe, 0x7c, 0x84, - 0x26, 0xe2, 0xa8, 0xc6, 0x5f, 0xd8, 0x9b, 0xb8, 0x1f, 0x78, 0x7a, 0xcc, 0x18, 0xa4, 0x28, 0x60, - 0x78, 0xe4, 0x53, 0x91, 0xe4, 0x2e, 0x76, 0x02, 0x8f, 0x0f, 0xd2, 0x90, 0x6b, 0x12, 0x1f, 0x25, - 0xe8, 0x67, 0x3c, 0x1e, 0x0f, 0x08, 0x53, 0x6a, 0xbf, 0x30, 0xfd, 0xef, 0x54, 0x74, 0xf9, 0xb5, - 0xeb, 0x09, 0xe0, 0x5c, 0x54, 0xe9, 0x1c, 0x5a, 0xd8, 0x04, 0x0c, 0xb8, 0x14, 0x20, 0x77, 0x49, - 0x56, 0x55, 0x6c, 0xa2, 0xef, 0x79, 0x9d, 0xfd, 0x7a, 0x46, 0x3c, 0x75, 0x4d, 0xb3, 0x1d, 0x84, - 0x50, 0xf1, 0x74, 0xc2, 0xe8, 0xe3, 0xdc, 0x9e, 0x2e, 0xed, 0x2a, 0xc2, 0x7b, 0x3c, 0x82, 0xc2, - 0x4e, 0x17, 0xef, 0x68, 0x5d, 0xa5, 0xed, 0x2c, 0xd5, 0x9d, 0x30, 0xfa, 0x7d, 0x2e, 0xef, 0x95, - 0x61, 0xb5, 0x44, 0x63, 0x65, 0x73, 0x8c, 0xe5, 0xe6, 0x73, 0xe1, 0xd9, 0x0b, 0xe5, 0xda, 0x52, - 0x75, 0x7e, 0xad, 0xd5, 0x58, 0xab, 0x48, 0xd5, 0x72, 0xab, 0xba, 0xb6, 0xd4, 0xa8, 0x94, 0x97, - 0xd6, 0xa4, 0xea, 0x4a, 0xa3, 0x88, 0xd1, 0x5f, 0x92, 0x4d, 0x72, 0x5b, 0xdb, 0xc5, 0xba, 0x7f, - 0x19, 0x14, 0xc2, 0xe1, 0x50, 0x9e, 0xbc, 0x83, 0xdb, 0x9d, 0x01, 0xe5, 0x0b, 0xad, 0x3b, 0x40, - 0x60, 0xff, 0x03, 0x97, 0x83, 0x82, 0xd0, 0xa2, 0xae, 0x00, 0x1e, 0xff, 0x28, 0x0d, 0xf9, 0x8a, - 0xd6, 0xdd, 0xc5, 0xba, 0x89, 0xee, 0x65, 0x78, 0xec, 0xf2, 0x31, 0xc5, 0xf2, 0xd1, 0x5a, 0x68, - 0xe2, 0xae, 0xa9, 0x6b, 0xbd, 0x3d, 0x67, 0xa1, 0x49, 0x83, 0xac, 0x01, 0x1b, 0x1e, 0x0e, 0xd3, - 0x9a, 0x83, 0x77, 0x66, 0xc3, 0x2b, 0x62, 0xc8, 0x13, 0x06, 0x60, 0xfe, 0x60, 0x14, 0x5c, 0x86, - 0x13, 0x90, 0xfc, 0x30, 0xf2, 0xc6, 0x13, 0x90, 0x2f, 0xb7, 0xc9, 0x35, 0x24, 0x7a, 0x2a, 0x05, - 0xb9, 0x8a, 0xd6, 0xdd, 0x50, 0x36, 0xc5, 0x33, 0x70, 0x0c, 0x77, 0xe5, 0x75, 0x15, 0x3b, 0x3a, - 0x18, 0x84, 0xf6, 0x82, 0x34, 0x10, 0x6b, 0x11, 0x45, 0x63, 0xf0, 0x7a, 0x7f, 0x93, 0xce, 0x72, - 0xfe, 0x28, 0xf1, 0x1e, 0x40, 0x76, 0x50, 0xc2, 0x2a, 0x96, 0x0d, 0x5c, 0xd9, 0x92, 0xbb, 0x5d, - 0xac, 0x36, 0x2f, 0x2b, 0x66, 0x7b, 0x8b, 0x1a, 0x2f, 0x0d, 0x49, 0x61, 0x2d, 0xca, 0xec, 0xaf, - 0x4d, 0x6b, 0xb4, 0x35, 0xa8, 0x07, 0x31, 0x26, 0x4e, 0x7c, 0x11, 0x64, 0xf1, 0x03, 0xa6, 0x2e, - 0xcf, 0x76, 0xc2, 0x77, 0xfd, 0x76, 0x2a, 0xf4, 0x68, 0xd6, 0x1d, 0x2f, 0x3f, 0x90, 0x0a, 0x5d, - 0x1d, 0x89, 0x37, 0xc2, 0x71, 0x79, 0x57, 0x36, 0x65, 0x7d, 0xc9, 0x35, 0xf5, 0x40, 0x18, 0xbf, - 0x78, 0x44, 0x1a, 0xfc, 0x20, 0x9e, 0x86, 0x69, 0x3b, 0xaa, 0xe2, 0xd9, 0x39, 0x5e, 0x3c, 0x22, - 0xf9, 0x23, 0xc5, 0x1b, 0xe0, 0xb8, 0xac, 0xf6, 0xb6, 0xe4, 0x5a, 0x77, 0x57, 0x31, 0xb1, 0x85, - 0xd6, 0xec, 0x09, 0x52, 0xdd, 0x60, 0xf4, 0x5c, 0x01, 0x72, 0x76, 0x46, 0xf4, 0xce, 0x0c, 0xaf, - 0x30, 0x53, 0x20, 0xc3, 0x47, 0xeb, 0x9b, 0x21, 0x2f, 0xdb, 0xe9, 0xf6, 0x6d, 0x52, 0xed, 0x03, - 0x0f, 0x5a, 0x8a, 0xe4, 0x24, 0x13, 0x6f, 0x85, 0x5c, 0x9b, 0x88, 0x05, 0x3d, 0xf8, 0x7b, 0xf6, - 0xf0, 0x4a, 0x49, 0x12, 0x89, 0x26, 0x25, 0x76, 0xf8, 0x46, 0x4b, 0x7f, 0x28, 0xc5, 0xd1, 0xa4, - 0xff, 0x87, 0xa9, 0x31, 0x86, 0xa5, 0x9b, 0xe0, 0x86, 0x72, 0xa5, 0xd2, 0x58, 0xad, 0xb7, 0xe8, - 0xa0, 0x34, 0xbf, 0x36, 0xb7, 0xda, 0x5a, 0xf3, 0x86, 0xaa, 0x66, 0xab, 0x2c, 0xb5, 0xd6, 0xea, - 0x8d, 0xf9, 0x6a, 0xd1, 0x92, 0x86, 0x33, 0x23, 0x52, 0x57, 0x5b, 0x6b, 0xf5, 0xf2, 0x72, 0xb5, - 0xb8, 0xc1, 0x51, 0x72, 0xb5, 0xb5, 0x56, 0xbe, 0x58, 0x6e, 0x95, 0xa5, 0xe2, 0x26, 0x3b, 0x3c, - 0x36, 0x5b, 0x8d, 0x95, 0x35, 0x69, 0xb5, 0x5e, 0xaf, 0xd5, 0xcf, 0xdb, 0x55, 0x6f, 0x89, 0x27, - 0xe0, 0xb8, 0x4d, 0xf7, 0xc5, 0x5a, 0xab, 0xba, 0x56, 0xb1, 0x22, 0x7f, 0x3e, 0x8f, 0xde, 0x9a, - 0xf1, 0x26, 0x26, 0xdf, 0xce, 0xe8, 0xef, 0x04, 0xde, 0x93, 0x29, 0x87, 0xff, 0xe1, 0x33, 0xcc, - 0x6f, 0x08, 0x3c, 0xa7, 0x46, 0xe1, 0x65, 0x45, 0x03, 0xf3, 0xb3, 0xe9, 0x31, 0xc0, 0x7c, 0x26, - 0x5c, 0x55, 0x6f, 0xac, 0x51, 0xae, 0x37, 0xe9, 0x75, 0xab, 0x55, 0xdb, 0x35, 0xf5, 0xaa, 0xcd, - 0x59, 0xa9, 0x5a, 0x69, 0x5c, 0xac, 0x4a, 0x6b, 0x97, 0xca, 0x4b, 0x4b, 0xd5, 0xd6, 0xda, 0x42, - 0x4d, 0x6a, 0xb6, 0x8a, 0x1b, 0xa3, 0x26, 0xa7, 0x4d, 0xf1, 0xf9, 0xf0, 0x5c, 0x2f, 0xbc, 0x56, - 0x7d, 0x45, 0xad, 0xd9, 0x6a, 0x12, 0x38, 0x2b, 0x0d, 0x49, 0x5a, 0x5d, 0x69, 0x55, 0xe7, 0x8b, - 0x5b, 0xe2, 0x49, 0x10, 0xbd, 0x52, 0xa4, 0xd5, 0xba, 0x0d, 0x9d, 0x62, 0xd5, 0x4f, 0xeb, 0x73, - 0xaa, 0xaf, 0x37, 0x5a, 0x6b, 0x2b, 0x55, 0x69, 0xa1, 0x21, 0x2d, 0x57, 0xe7, 0x8b, 0xaf, 0x1a, - 0x85, 0xfe, 0xb6, 0x78, 0x06, 0x4e, 0x97, 0xeb, 0x8d, 0xd6, 0x62, 0x55, 0x5a, 0x73, 0x6e, 0x8e, - 0x57, 0xa4, 0x46, 0xa5, 0xda, 0x6c, 0xae, 0xd5, 0x9a, 0x4e, 0xe2, 0xa2, 0x8a, 0xbe, 0x9c, 0x75, - 0x17, 0xd1, 0xb7, 0x79, 0x03, 0xdb, 0x31, 0x48, 0x2b, 0xce, 0xda, 0x39, 0xad, 0x74, 0x98, 0x75, - 0x4b, 0x7a, 0x60, 0x65, 0xf8, 0x8f, 0x91, 0x07, 0x9b, 0xb0, 0xc5, 0xf4, 0xa4, 0x06, 0x9b, 0x47, - 0x84, 0x28, 0x83, 0x4d, 0x0c, 0x2b, 0xf6, 0x3f, 0x49, 0x27, 0xb0, 0x06, 0xe2, 0x11, 0xb3, 0x8d, - 0x00, 0x31, 0x1b, 0x18, 0x42, 0x16, 0x6a, 0xf5, 0x79, 0xa7, 0x27, 0xac, 0xd5, 0xea, 0x0b, 0x8d, - 0xe2, 0x96, 0x58, 0x82, 0x1b, 0x7d, 0xa5, 0x5b, 0x32, 0x48, 0x6b, 0x28, 0xd7, 0xe7, 0xd7, 0x96, - 0xeb, 0xd5, 0xe5, 0x46, 0xbd, 0x56, 0x21, 0xf1, 0xcd, 0x6a, 0xcb, 0x96, 0xdb, 0x01, 0xa9, 0x6c, - 0x56, 0xcb, 0x52, 0x65, 0x91, 0x08, 0xf0, 0x7c, 0xb5, 0xf8, 0x2a, 0xf1, 0x05, 0xf0, 0x7c, 0x1f, - 0x29, 0x54, 0xb8, 0x57, 0xa4, 0xea, 0x7c, 0x75, 0xa1, 0x56, 0xb7, 0x06, 0xbc, 0xa5, 0x46, 0xe5, - 0x42, 0x33, 0x82, 0xfc, 0xfe, 0x43, 0x1a, 0x32, 0x4d, 0x53, 0xeb, 0xa1, 0x17, 0x7a, 0xd2, 0x7b, - 0x0a, 0x40, 0xc7, 0x3b, 0xda, 0x2e, 0x59, 0x74, 0xd0, 0x65, 0x88, 0x2f, 0x06, 0xfd, 0x47, 0xee, - 0xf3, 0x5b, 0x17, 0x7f, 0x53, 0xeb, 0x05, 0x8c, 0x74, 0x3f, 0xe6, 0x3a, 0x91, 0x0d, 0x29, 0x28, - 0x9a, 0x18, 0xbd, 0x79, 0x9c, 0x39, 0x0b, 0xc1, 0x49, 0x17, 0xd9, 0x26, 0xc1, 0xcb, 0x61, 0x20, - 0x16, 0xaf, 0x86, 0x67, 0x0c, 0x60, 0x46, 0xa0, 0xda, 0x10, 0x9f, 0x07, 0xcf, 0xf1, 0x43, 0xb5, - 0xdc, 0xb8, 0x58, 0x75, 0xe5, 0x63, 0xbe, 0xdc, 0x2a, 0x17, 0x37, 0xd1, 0x57, 0x04, 0x10, 0x96, - 0xb4, 0x4d, 0xf4, 0x90, 0x00, 0x99, 0x26, 0xee, 0x76, 0x98, 0xfb, 0xe0, 0x59, 0xc8, 0xef, 0x60, - 0xc3, 0x90, 0x37, 0x9d, 0xf5, 0x91, 0x13, 0x14, 0xef, 0x80, 0xac, 0x8a, 0x77, 0xb1, 0xad, 0x25, - 0x72, 0xec, 0xdc, 0xf3, 0x19, 0x4e, 0x2d, 0x69, 0x9b, 0x25, 0xab, 0x2c, 0xd7, 0xff, 0xed, 0x92, - 0x95, 0x54, 0xb2, 0x73, 0x9c, 0xbe, 0x0f, 0xb2, 0x24, 0x2c, 0x4e, 0x41, 0x76, 0xbe, 0x3a, 0xb7, - 0x7a, 0xbe, 0x78, 0xc4, 0xfa, 0xeb, 0xb4, 0x7b, 0x0a, 0xb2, 0x0b, 0xe5, 0x56, 0x79, 0xa9, 0x98, - 0xb6, 0xf8, 0x43, 0xa4, 0x58, 0xb0, 0x22, 0x57, 0xca, 0xf5, 0x5a, 0xa5, 0x98, 0x11, 0xa7, 0x21, - 0x7f, 0xa9, 0x2c, 0x91, 0x96, 0x67, 0xd1, 0x6b, 0xfd, 0x62, 0x70, 0x27, 0x2b, 0x06, 0xd7, 0x05, - 0xd1, 0x34, 0x4c, 0x04, 0x3e, 0xef, 0x8a, 0xc0, 0xdd, 0x8c, 0x08, 0xbc, 0x90, 0xa7, 0x90, 0x68, - 0xf0, 0xd7, 0x0f, 0xaa, 0x4b, 0x84, 0x2d, 0x1e, 0xb4, 0x6a, 0xcb, 0xd5, 0xc6, 0x6a, 0xab, 0xb8, - 0x81, 0xfe, 0x26, 0x0d, 0xf9, 0x8b, 0x58, 0x37, 0x14, 0xad, 0x8b, 0xfe, 0x6b, 0xda, 0xd6, 0x5c, - 0xf6, 0x2d, 0x0b, 0x1e, 0xe7, 0x76, 0x8f, 0x4e, 0x0b, 0x21, 0x3a, 0xbd, 0x81, 0x5b, 0xa2, 0x5d, - 0x3b, 0x91, 0xb3, 0x25, 0xa2, 0x41, 0xeb, 0x8b, 0xff, 0x9e, 0x78, 0xca, 0xf3, 0x1b, 0xf6, 0x38, - 0xd7, 0x91, 0x7d, 0x70, 0xdd, 0xd1, 0x98, 0xdb, 0x19, 0x83, 0xb9, 0x27, 0xa0, 0x78, 0xb1, 0x2a, - 0x35, 0x6b, 0x8d, 0xba, 0xd5, 0xb5, 0xaa, 0xcb, 0x2b, 0xad, 0xfb, 0x8b, 0x42, 0x28, 0xcb, 0xdf, - 0xef, 0x38, 0x0f, 0x78, 0x50, 0x80, 0x7c, 0x63, 0x63, 0x83, 0x58, 0xab, 0xab, 0x06, 0xcf, 0xbd, - 0x37, 0x42, 0x51, 0xe9, 0xb6, 0xd5, 0x7e, 0x07, 0xd7, 0x35, 0x73, 0x45, 0xe9, 0x76, 0xdd, 0xb3, - 0xc1, 0x7d, 0xf1, 0xe8, 0x61, 0xee, 0x91, 0x8d, 0x98, 0x56, 0xa3, 0xb5, 0x07, 0x00, 0x76, 0x06, - 0x8e, 0xad, 0xef, 0x99, 0xd8, 0xa0, 0xa9, 0x68, 0xb5, 0x19, 0x69, 0x20, 0x16, 0xfd, 0x11, 0xd7, - 0x08, 0x18, 0x52, 0x61, 0x34, 0x94, 0xe4, 0xf1, 0x50, 0xb2, 0x46, 0x35, 0x7b, 0xaa, 0xb2, 0xd6, - 0xe7, 0xd5, 0xf9, 0xe2, 0x26, 0x19, 0xfa, 0x6a, 0x4b, 0x76, 0xec, 0xfd, 0xd5, 0xd6, 0xda, 0x4a, - 0xad, 0x5e, 0xb7, 0xd6, 0x65, 0xd6, 0xe2, 0xa0, 0x60, 0xd1, 0xbb, 0xa4, 0x18, 0x26, 0xfa, 0xbc, - 0x0f, 0xa6, 0x06, 0x33, 0xbc, 0x69, 0x5d, 0x75, 0xaf, 0xd6, 0x31, 0x66, 0x53, 0xe4, 0xd4, 0xdf, - 0x09, 0x46, 0x02, 0xec, 0x2f, 0xb8, 0xcf, 0xd2, 0x1d, 0x7a, 0x46, 0x83, 0xb6, 0xa1, 0xa8, 0x83, - 0xa0, 0x65, 0xa5, 0x81, 0xd8, 0x21, 0xe0, 0x0a, 0x43, 0xc1, 0xfd, 0x22, 0xd7, 0xd9, 0xe6, 0x08, - 0xe2, 0xa2, 0x01, 0xbc, 0x18, 0x17, 0xc0, 0xe8, 0x97, 0xd2, 0x50, 0x68, 0x6e, 0xf5, 0x4d, 0xe2, - 0x29, 0xd9, 0x37, 0xac, 0xfd, 0x63, 0x8a, 0x77, 0xe4, 0x77, 0x72, 0x07, 0x8c, 0xfc, 0x9f, 0xe1, - 0x1a, 0xf9, 0x03, 0x0a, 0x39, 0x1c, 0xae, 0x60, 0xf4, 0x54, 0xc6, 0x39, 0xb4, 0x41, 0xdf, 0xc9, - 0xec, 0x1b, 0xf2, 0x1f, 0xcd, 0xf0, 0xea, 0xe4, 0xda, 0x65, 0x84, 0x8c, 0xf8, 0xd7, 0xc2, 0xf4, - 0x96, 0x46, 0x9d, 0xb6, 0x7b, 0xf7, 0x3a, 0xbe, 0x28, 0x4b, 0x0a, 0x65, 0xdb, 0x31, 0x1c, 0x6b, - 0xb8, 0x7d, 0x20, 0xd6, 0x4a, 0xd7, 0xd3, 0x35, 0x4b, 0x84, 0x9d, 0x74, 0xf6, 0xbb, 0xc2, 0x81, - 0x58, 0xf1, 0x26, 0xb8, 0x6a, 0x47, 0xd6, 0xb7, 0xb1, 0xd9, 0x53, 0xe5, 0x36, 0x31, 0x89, 0xe9, - 0x6a, 0x11, 0xed, 0xff, 0x20, 0xbe, 0x18, 0x9e, 0xe9, 0x8b, 0x74, 0xde, 0x7d, 0xd5, 0x3a, 0x44, - 0x09, 0x68, 0x4a, 0x1a, 0xfe, 0x71, 0x20, 0x57, 0xcb, 0xd3, 0x56, 0xca, 0xef, 0xcb, 0xd5, 0x62, - 0x14, 0x97, 0x3a, 0x78, 0x57, 0x21, 0x77, 0x12, 0x05, 0x7b, 0x07, 0xe5, 0x84, 0xad, 0xf5, 0xea, - 0xa6, 0x6c, 0xe2, 0xcb, 0xf2, 0xde, 0xaa, 0xae, 0xce, 0x62, 0x5b, 0xe9, 0xc9, 0x8b, 0x41, 0x9f, - 0xe5, 0xd2, 0x56, 0x0e, 0x84, 0xe3, 0xb0, 0xe4, 0xec, 0xf1, 0x34, 0x64, 0x56, 0x94, 0xee, 0xa6, - 0xdf, 0x54, 0xf2, 0x09, 0xc8, 0x2a, 0xdd, 0x0e, 0x7e, 0x80, 0x3e, 0xb3, 0xb1, 0x03, 0xe2, 0x39, - 0x38, 0xd1, 0xed, 0xef, 0xac, 0x63, 0xbd, 0xb1, 0x41, 0xb4, 0x1d, 0x8c, 0x96, 0x66, 0xad, 0x94, - 0xe8, 0xd0, 0x35, 0xf4, 0x1b, 0xfa, 0x5f, 0xfe, 0x3e, 0xfc, 0x12, 0x56, 0x4e, 0xaf, 0x65, 0x18, - 0x63, 0xd1, 0x10, 0x20, 0xa1, 0x2e, 0x39, 0x69, 0x1f, 0x39, 0xe8, 0x9d, 0x2e, 0xbf, 0xef, 0x60, - 0xf8, 0x7d, 0xfd, 0xa8, 0x62, 0x93, 0x3f, 0x7c, 0xfd, 0x50, 0x1a, 0xf2, 0x2b, 0xba, 0xd6, 0xc6, - 0x86, 0x81, 0x1e, 0x4c, 0x43, 0xae, 0x22, 0x77, 0xdb, 0x58, 0x45, 0xcf, 0x0a, 0x5c, 0x3e, 0xa0, - 0x1f, 0xa6, 0x78, 0xb7, 0xe7, 0xb4, 0xdc, 0x92, 0x5d, 0x66, 0xc0, 0x88, 0xc7, 0x77, 0x44, 0x1d, - 0x5a, 0x54, 0xf2, 0x5c, 0xfa, 0xb3, 0x34, 0x4c, 0x2f, 0x29, 0xdd, 0xed, 0x15, 0x1d, 0x13, 0x3b, - 0x99, 0xcf, 0xf6, 0xd8, 0x43, 0xf5, 0xd3, 0x53, 0x3e, 0xfd, 0x74, 0xee, 0x35, 0xae, 0xaf, 0xc8, - 0x00, 0x79, 0xba, 0x0b, 0xa6, 0x55, 0x2f, 0x11, 0x3d, 0xc0, 0x40, 0x03, 0x07, 0x18, 0xbe, 0x62, - 0x24, 0x7f, 0x72, 0x4e, 0x05, 0x95, 0x60, 0x2a, 0x92, 0x67, 0xec, 0x0f, 0x05, 0x00, 0xdb, 0x0c, - 0x2f, 0x59, 0xc1, 0x3e, 0x91, 0x0a, 0x61, 0x2c, 0x6b, 0xee, 0x38, 0x3d, 0x68, 0xee, 0xf8, 0x4e, - 0xc8, 0x58, 0x4d, 0xa2, 0x56, 0x95, 0x79, 0x4d, 0x1d, 0x93, 0x3c, 0xd6, 0x30, 0xdf, 0x51, 0x0c, - 0x79, 0x5d, 0xc5, 0xd5, 0x6e, 0x5b, 0xdf, 0xf3, 0x8c, 0x13, 0x14, 0xa4, 0xfd, 0x1f, 0x3c, 0xaf, - 0x75, 0x59, 0x0e, 0xaf, 0x75, 0xa4, 0x2a, 0xc6, 0x6b, 0x1d, 0xe3, 0x1e, 0x27, 0x74, 0x42, 0xf4, - 0x38, 0x13, 0xec, 0x64, 0x7f, 0x4b, 0x36, 0x5c, 0x27, 0xfb, 0xd6, 0x7f, 0xf4, 0x5e, 0xae, 0xc1, - 0x3d, 0xb0, 0xe8, 0xe4, 0x31, 0xff, 0x5e, 0x1a, 0x8e, 0x3a, 0x5e, 0xca, 0x09, 0xea, 0xb7, 0x30, - 0x17, 0x20, 0xa4, 0x41, 0x29, 0xaf, 0x41, 0x56, 0x5c, 0xcf, 0x43, 0x9c, 0xfc, 0x47, 0xef, 0xe6, - 0xde, 0x97, 0xf8, 0x6b, 0x0a, 0xe0, 0x62, 0xa8, 0x5c, 0xf9, 0x6c, 0x80, 0x85, 0xed, 0x46, 0x42, - 0xaa, 0x89, 0xc6, 0xd1, 0xf2, 0x81, 0x1f, 0xf7, 0xa0, 0xbf, 0xca, 0x03, 0xd4, 0xe5, 0x5d, 0x65, - 0xd3, 0xb6, 0xa5, 0xf4, 0x2d, 0xc1, 0x1a, 0xbc, 0x0c, 0xd3, 0xf6, 0x89, 0x60, 0x30, 0x26, 0x15, - 0xef, 0x80, 0x3c, 0xd5, 0x9a, 0xa3, 0xad, 0x7a, 0x2e, 0xd3, 0x2a, 0xaf, 0x14, 0x5b, 0x9e, 0x1f, - 0x30, 0x25, 0x27, 0xbd, 0xb5, 0x00, 0xd9, 0xe8, 0xab, 0x6a, 0xcb, 0xca, 0x4b, 0x8f, 0x70, 0x9d, - 0xb0, 0x67, 0x1a, 0x93, 0x3a, 0x2d, 0x22, 0x81, 0x01, 0x43, 0x9a, 0x59, 0xc7, 0x90, 0x26, 0xfa, - 0x5d, 0x6e, 0x7f, 0x81, 0x3e, 0x7a, 0x7c, 0x2d, 0x0a, 0x80, 0xf5, 0x56, 0xc8, 0xdb, 0xca, 0x30, - 0xce, 0x0b, 0xff, 0x67, 0x0d, 0x74, 0x54, 0x3b, 0x7b, 0xad, 0xbb, 0xa1, 0x49, 0x4e, 0x4a, 0x4e, - 0xb7, 0x81, 0x5c, 0x74, 0x24, 0xdf, 0x93, 0xbe, 0x29, 0xc0, 0xc9, 0xf3, 0xd8, 0xf4, 0xda, 0x71, - 0x49, 0x31, 0xb7, 0xac, 0xe1, 0xdc, 0x40, 0xff, 0x9c, 0x4f, 0x49, 0xc8, 0x87, 0x7f, 0x3a, 0x1a, - 0xfe, 0xe8, 0x8f, 0xfd, 0xa8, 0x35, 0x59, 0xd4, 0xee, 0x0e, 0x2a, 0x65, 0x38, 0xb5, 0x01, 0x00, - 0xde, 0x09, 0x39, 0x9b, 0x50, 0x3a, 0xef, 0x9d, 0x0e, 0xc4, 0xcf, 0x2d, 0x49, 0xa2, 0x39, 0xd0, - 0xe7, 0x5c, 0x1c, 0x2f, 0x32, 0x38, 0xce, 0x1d, 0x88, 0xb2, 0xc4, 0x21, 0x3d, 0x7d, 0x0b, 0x51, - 0x41, 0x20, 0x1d, 0xec, 0x98, 0xbf, 0x17, 0x17, 0x8f, 0x88, 0x00, 0xb9, 0x65, 0x6d, 0x17, 0xb7, - 0xb4, 0x62, 0xca, 0xfa, 0x6f, 0xd1, 0xd7, 0xd2, 0x8a, 0x69, 0xf4, 0x6f, 0xa6, 0x21, 0xbf, 0xa8, - 0x18, 0xa6, 0xa6, 0xef, 0xa1, 0x6f, 0x64, 0xa0, 0x40, 0x4f, 0xaf, 0x0c, 0xf4, 0xe1, 0x94, 0x7b, - 0x16, 0xb7, 0xef, 0x10, 0xe8, 0x5a, 0x98, 0xee, 0x59, 0x73, 0xbe, 0xd6, 0x37, 0x3c, 0x3d, 0x43, - 0x7f, 0x94, 0x25, 0x36, 0x72, 0xdf, 0xdc, 0xd2, 0x74, 0x4f, 0xe3, 0xdb, 0x09, 0x5b, 0x1b, 0x0c, - 0xfb, 0x7f, 0x5d, 0xde, 0xc1, 0x8e, 0x11, 0x47, 0x2f, 0x86, 0x78, 0x4d, 0x56, 0x76, 0xec, 0x09, - 0x52, 0x90, 0xc8, 0x7f, 0x71, 0x16, 0xf2, 0x9b, 0xba, 0xd6, 0xef, 0xd1, 0xed, 0x90, 0x20, 0x39, - 0x41, 0xbf, 0xcd, 0xd0, 0x93, 0x90, 0xeb, 0xc9, 0x9b, 0x9e, 0x9e, 0x15, 0x0d, 0x89, 0xd7, 0xc1, - 0x8c, 0x2a, 0x1b, 0x26, 0x6d, 0x8d, 0xbb, 0xf7, 0x63, 0x23, 0x87, 0x0f, 0x3b, 0xe8, 0xf3, 0xdc, - 0x47, 0x22, 0x94, 0x8b, 0xce, 0xf9, 0x5f, 0x90, 0x5c, 0x96, 0xa1, 0x40, 0x4f, 0x1a, 0x9d, 0x91, - 0xe5, 0xfa, 0xf0, 0x62, 0xe8, 0x1f, 0xc9, 0xcd, 0xc6, 0xa9, 0xe1, 0x35, 0x82, 0x9e, 0xe4, 0x07, - 0x98, 0xff, 0xe6, 0xbc, 0xda, 0xbd, 0x7f, 0x34, 0x44, 0xd7, 0xc0, 0xd4, 0xee, 0x00, 0x3c, 0x5e, - 0x44, 0xc8, 0x9b, 0xdd, 0x9f, 0x17, 0x78, 0xa7, 0x72, 0x87, 0x1d, 0x21, 0xaf, 0x76, 0xef, 0x04, - 0xb0, 0x07, 0x00, 0x2b, 0xcd, 0xbe, 0xe5, 0x32, 0xd9, 0xef, 0xd1, 0x61, 0x83, 0x94, 0x22, 0xf9, - 0x52, 0x8b, 0xf7, 0x7a, 0xe7, 0xc9, 0xf6, 0xbd, 0x1f, 0x27, 0xaa, 0xfe, 0x63, 0x67, 0xa7, 0x8d, - 0x19, 0xb6, 0x8d, 0x7c, 0x5a, 0xf6, 0x21, 0xed, 0x4b, 0x1e, 0xea, 0xc7, 0xd2, 0x00, 0x4d, 0xec, - 0x74, 0x26, 0xbf, 0xfe, 0xd3, 0x58, 0x80, 0xa3, 0x1f, 0xa7, 0x78, 0x1d, 0x78, 0xb9, 0xcd, 0x76, - 0x6b, 0x0f, 0xd2, 0x01, 0xe0, 0x72, 0xc9, 0x35, 0xb2, 0xb8, 0xe4, 0x79, 0xf9, 0x7a, 0x01, 0x32, - 0xe4, 0x69, 0xdb, 0x3f, 0x78, 0x6a, 0x91, 0x77, 0x79, 0x0c, 0xf5, 0xbd, 0x11, 0x4a, 0xf1, 0xbd, - 0x11, 0x42, 0x9f, 0xe6, 0xde, 0x53, 0x92, 0x17, 0x56, 0xa1, 0xda, 0x37, 0x1e, 0x9e, 0x02, 0x83, - 0x67, 0xb4, 0x67, 0x3c, 0x7c, 0x7b, 0xcb, 0x60, 0x6a, 0x92, 0x47, 0xe1, 0x0f, 0xa9, 0x27, 0xb4, - 0x47, 0xbc, 0xe7, 0xa5, 0x26, 0x23, 0xd5, 0xf4, 0x01, 0x57, 0x2a, 0xe8, 0x01, 0x57, 0x7a, 0xac, - 0x37, 0x86, 0xc2, 0x3e, 0x93, 0xc6, 0x0f, 0x73, 0x5b, 0x25, 0x68, 0x8e, 0xd2, 0x73, 0xb5, 0xa7, - 0x71, 0xc1, 0x9d, 0xc6, 0xa3, 0x61, 0xf6, 0x25, 0xae, 0xad, 0x61, 0x33, 0x1e, 0x35, 0xd8, 0xd8, - 0x5f, 0x5d, 0xbd, 0xf3, 0x04, 0xe3, 0xe8, 0xee, 0xe1, 0x34, 0x64, 0xc8, 0x7d, 0x8a, 0xef, 0xac, - 0xf9, 0xb7, 0xb9, 0xdf, 0xc3, 0xf9, 0x1c, 0xc4, 0x91, 0x7b, 0x86, 0xe1, 0xec, 0x7e, 0x19, 0x4c, - 0x7b, 0x6e, 0xf0, 0xc2, 0xb7, 0x11, 0xe4, 0x34, 0xc1, 0x9f, 0x9a, 0xd3, 0x72, 0x51, 0x38, 0x21, - 0xc9, 0xf7, 0x92, 0xf7, 0x7b, 0xbd, 0x63, 0xde, 0xbf, 0x2f, 0x04, 0xaf, 0x29, 0x94, 0x81, 0x21, - 0xed, 0xf6, 0x25, 0x46, 0x7f, 0xe4, 0xc7, 0xa0, 0xc2, 0x62, 0xf0, 0xa2, 0xa0, 0xa6, 0x87, 0x0a, - 0x3d, 0x4b, 0x4c, 0x3a, 0x0a, 0x31, 0x9e, 0xee, 0xf7, 0x02, 0x83, 0xc1, 0xb9, 0x48, 0x84, 0x1c, - 0xb2, 0xe0, 0xbf, 0xef, 0x98, 0xcf, 0x51, 0xea, 0x5f, 0x52, 0xc7, 0x9c, 0x1b, 0x8c, 0x95, 0x02, - 0xd6, 0x83, 0x63, 0x6a, 0x88, 0x07, 0xc7, 0x71, 0x4d, 0xde, 0xfd, 0xd0, 0x0f, 0x67, 0x8d, 0x85, - 0xf3, 0xd6, 0x20, 0x2e, 0x72, 0x78, 0xe3, 0x1c, 0x93, 0x9c, 0x27, 0x5c, 0x40, 0x97, 0x18, 0x40, - 0x6f, 0x1f, 0x83, 0x94, 0x68, 0xb0, 0x2a, 0x31, 0xc3, 0x2a, 0xce, 0xc2, 0x09, 0xa9, 0x5a, 0x9e, - 0x6f, 0xd4, 0x97, 0xee, 0xf7, 0x7f, 0x2d, 0x66, 0xd0, 0x7b, 0x05, 0xc8, 0x49, 0x44, 0xbd, 0x08, - 0xfd, 0x6c, 0x54, 0x98, 0x07, 0xac, 0x69, 0xa6, 0xf7, 0xdb, 0x68, 0xfe, 0x2a, 0xf7, 0x93, 0x9f, - 0x61, 0x6c, 0xb4, 0xe9, 0x0a, 0x58, 0xa1, 0x3d, 0xc5, 0xf5, 0xe4, 0x87, 0xbb, 0xd8, 0x2b, 0x16, - 0xa0, 0x4f, 0x0b, 0x90, 0xa3, 0x26, 0x73, 0x3b, 0x51, 0x01, 0xf2, 0xdb, 0x43, 0x4f, 0xf3, 0xda, - 0x43, 0x3f, 0x18, 0x66, 0xa1, 0x4e, 0x47, 0xc6, 0xc7, 0x2c, 0x06, 0x93, 0xb4, 0x13, 0xc4, 0xec, - 0xdb, 0x02, 0x5d, 0x2f, 0xf4, 0xa3, 0x22, 0x36, 0x0f, 0xcf, 0x91, 0x7b, 0x3d, 0xdc, 0x75, 0x8d, - 0xaf, 0x1a, 0x0b, 0xba, 0xb6, 0xd3, 0x30, 0xb7, 0xb0, 0xee, 0xac, 0x0b, 0x52, 0x37, 0x14, 0xa4, - 0xf0, 0x44, 0xac, 0x85, 0x87, 0x50, 0xeb, 0x97, 0xc3, 0x78, 0x1d, 0xb2, 0x48, 0x19, 0x73, 0x24, - 0x7d, 0x8c, 0xcb, 0x0c, 0x26, 0x27, 0x2d, 0x87, 0x3c, 0x43, 0x3e, 0x7a, 0x01, 0x72, 0x36, 0xa5, - 0xd6, 0xb2, 0x70, 0xba, 0xb9, 0x25, 0xeb, 0x78, 0x6e, 0x8f, 0xb8, 0x87, 0xbf, 0x9e, 0xeb, 0x20, - 0x14, 0xbd, 0xd5, 0x8f, 0x8e, 0x08, 0x19, 0x55, 0xe9, 0x6e, 0x3b, 0xb7, 0x10, 0xd6, 0x7f, 0x6f, - 0x0b, 0x9b, 0x1e, 0xb2, 0x85, 0x75, 0x8f, 0x14, 0xdc, 0x7a, 0x0f, 0xb4, 0x85, 0x1d, 0x59, 0xdc, - 0x44, 0x6e, 0x3c, 0x8f, 0x97, 0x3b, 0x9d, 0x4b, 0x8a, 0xb9, 0xd5, 0x70, 0x78, 0x74, 0x2f, 0xdf, - 0x99, 0xf2, 0x2c, 0xe4, 0x7b, 0xf2, 0x9e, 0xaa, 0xc9, 0xee, 0xe3, 0x7b, 0x1a, 0x64, 0x15, 0x24, - 0x43, 0x0f, 0xfa, 0x29, 0x07, 0x06, 0x28, 0x08, 0x60, 0x2a, 0xdf, 0x99, 0x3d, 0x57, 0x91, 0xc9, - 0x33, 0xf6, 0xaf, 0x04, 0xd6, 0x41, 0xcb, 0xcf, 0xf1, 0xda, 0x34, 0x18, 0x6b, 0xde, 0xf8, 0x3f, - 0xdc, 0x6e, 0xd4, 0x29, 0x7b, 0x7e, 0x4a, 0xdc, 0xaf, 0x44, 0xea, 0x47, 0x87, 0xe9, 0x76, 0xe5, - 0xab, 0xfb, 0xdd, 0xae, 0xfc, 0x0b, 0x5e, 0xc4, 0x47, 0x2e, 0xe5, 0xc6, 0x73, 0xcd, 0xf3, 0x09, - 0x6e, 0xe3, 0x71, 0x03, 0xfc, 0x8b, 0xd1, 0x2c, 0x3e, 0x9f, 0x89, 0x38, 0x9e, 0xfa, 0x93, 0x87, - 0xf0, 0x2d, 0xfb, 0x7d, 0xa9, 0xd4, 0x62, 0x83, 0x70, 0x7c, 0x34, 0x62, 0xf4, 0x94, 0x32, 0x16, - 0x1a, 0x87, 0x64, 0x7b, 0xfe, 0x17, 0x32, 0x70, 0xd5, 0x7e, 0xdf, 0x28, 0xfc, 0x7e, 0x93, 0x47, - 0x77, 0xaa, 0x71, 0x1d, 0x83, 0x3c, 0x1d, 0x71, 0x81, 0x57, 0xba, 0xb2, 0xfc, 0x9a, 0x7c, 0x3c, - 0xc2, 0x7a, 0xb0, 0x74, 0xf8, 0x9e, 0x4c, 0xfe, 0x4c, 0x80, 0x13, 0x43, 0x7d, 0x98, 0x5c, 0x09, - 0xa2, 0xc0, 0xef, 0xa6, 0x70, 0x28, 0x3f, 0x63, 0x1c, 0x68, 0xf9, 0x3c, 0xd8, 0xf1, 0x53, 0x91, - 0x3c, 0xb0, 0x5f, 0xcc, 0x0c, 0x02, 0x4b, 0x07, 0xdd, 0x4f, 0xc5, 0x08, 0xac, 0xdf, 0xa3, 0x88, - 0x30, 0xe0, 0x51, 0x64, 0x11, 0x9e, 0x4b, 0xde, 0xf4, 0xe9, 0x3b, 0xf6, 0xa1, 0x44, 0x59, 0x55, - 0x2f, 0xca, 0x6a, 0x1f, 0x1b, 0xb5, 0xae, 0xed, 0x83, 0xc3, 0x79, 0x01, 0x3e, 0x2a, 0x19, 0xfa, - 0xc1, 0xc1, 0xc4, 0x20, 0x46, 0x8f, 0x23, 0x4f, 0x8d, 0x2f, 0x06, 0x31, 0x8c, 0xf3, 0x5b, 0x63, - 0xec, 0xf7, 0x5e, 0x0c, 0x37, 0x37, 0x1b, 0xcb, 0x55, 0xf2, 0xa6, 0x4f, 0x9a, 0x6f, 0xae, 0x2d, - 0x96, 0x9b, 0x6b, 0x52, 0x75, 0xa9, 0xdc, 0xaa, 0x35, 0xea, 0x6b, 0x17, 0xcb, 0x4b, 0xab, 0xd5, - 0xb5, 0x4b, 0xb5, 0xd6, 0xe2, 0x5a, 0x6b, 0xb1, 0xd6, 0x5c, 0x6b, 0xac, 0x58, 0xd1, 0x45, 0x01, - 0xbd, 0x21, 0xd0, 0x33, 0x09, 0xb7, 0xfd, 0xf6, 0x87, 0xb9, 0x1d, 0xf8, 0x0e, 0xb0, 0x2b, 0x41, - 0xbf, 0x23, 0x7c, 0x9e, 0x7c, 0x23, 0xd0, 0x33, 0x81, 0xdb, 0xb7, 0x0c, 0xe4, 0x9a, 0x58, 0xd6, - 0xdb, 0x5b, 0xe8, 0xd7, 0x7c, 0x06, 0x3e, 0x17, 0x20, 0xbf, 0xa1, 0xa8, 0xc4, 0x46, 0x7d, 0x8a, - 0x34, 0xff, 0x26, 0x3e, 0x27, 0xf5, 0x0b, 0x24, 0x93, 0xe4, 0x64, 0x16, 0x5f, 0x0e, 0x59, 0x43, - 0xd3, 0x5d, 0xd5, 0x2e, 0x4e, 0x57, 0xf7, 0x4d, 0x4d, 0x37, 0x25, 0x3b, 0x23, 0xa3, 0xbf, 0x26, - 0x0c, 0xe8, 0xaf, 0x05, 0x68, 0xaa, 0xb1, 0x2e, 0x9f, 0x5d, 0xbd, 0xb6, 0x1b, 0xa1, 0xe8, 0x1d, - 0x18, 0xd9, 0x84, 0xce, 0xe6, 0xc8, 0xa5, 0xe2, 0xbe, 0x78, 0x51, 0x84, 0xcc, 0x36, 0xde, 0x33, - 0x66, 0xf3, 0xe4, 0x3b, 0xf9, 0x8f, 0x3e, 0xc8, 0x6d, 0x0a, 0xc7, 0x39, 0x18, 0x20, 0x7c, 0x0d, - 0x10, 0xb1, 0x5b, 0x20, 0xaf, 0xd3, 0x61, 0xca, 0x11, 0xb0, 0xa0, 0x0b, 0x4c, 0x9a, 0x0e, 0x7d, - 0x80, 0xcb, 0x42, 0x4e, 0x58, 0xe5, 0x13, 0x70, 0x83, 0x52, 0x80, 0xec, 0x79, 0x5d, 0xee, 0x6d, - 0xa1, 0x5f, 0x4a, 0xc5, 0x2f, 0x4e, 0x2e, 0xb0, 0xe9, 0x51, 0xc0, 0x0a, 0xc3, 0x81, 0x45, 0x6f, - 0x4e, 0x43, 0xa6, 0x6e, 0x35, 0x6a, 0x50, 0xd3, 0x4a, 0xa4, 0x7a, 0xc9, 0x54, 0x7d, 0x95, 0xe8, - 0x1b, 0x3b, 0x76, 0x3e, 0x04, 0x9f, 0x9d, 0x8f, 0x93, 0x90, 0x53, 0xe5, 0x3d, 0xad, 0xef, 0xca, - 0x9c, 0x1d, 0x1a, 0x64, 0x67, 0x76, 0x1f, 0x3b, 0xad, 0xf1, 0x4c, 0x69, 0x6b, 0xdd, 0xda, 0x8e, - 0xbc, 0x89, 0xe9, 0x53, 0x13, 0x2f, 0xc2, 0xf9, 0x5a, 0xdd, 0xd1, 0x5e, 0xa5, 0xd0, 0x27, 0x25, - 0x5e, 0x84, 0x45, 0x49, 0x47, 0xeb, 0x62, 0xf2, 0x84, 0xa4, 0x20, 0x91, 0xff, 0xe2, 0x19, 0x38, - 0xe6, 0x0c, 0x3d, 0x0b, 0x9a, 0xbe, 0x23, 0x9b, 0xb3, 0x53, 0xf6, 0x93, 0x2f, 0x36, 0x56, 0x9c, - 0x85, 0xbc, 0xd1, 0x55, 0x7a, 0x3d, 0x6c, 0xce, 0x82, 0x7d, 0xd0, 0x43, 0x83, 0xe8, 0x5d, 0x69, - 0xc8, 0x54, 0x3b, 0x9b, 0x98, 0xb9, 0x65, 0x4f, 0xf9, 0x6e, 0xd9, 0x4f, 0x42, 0xce, 0x36, 0x1f, - 0x4a, 0xd9, 0x42, 0x43, 0x43, 0x19, 0xf3, 0x52, 0xca, 0xc0, 0xcc, 0x90, 0xc7, 0xbd, 0x54, 0x26, - 0x89, 0x60, 0x94, 0xac, 0x1a, 0xfd, 0x5a, 0xdd, 0xc9, 0x72, 0xee, 0x24, 0xe4, 0xb6, 0x94, 0x4e, - 0x07, 0x77, 0x29, 0xef, 0x68, 0xe8, 0xf4, 0x29, 0xc8, 0x58, 0x34, 0x58, 0xc2, 0xbd, 0xa4, 0x74, - 0xb7, 0x8b, 0x47, 0xc4, 0xa3, 0xde, 0xf5, 0x5d, 0x31, 0xc5, 0x9e, 0x03, 0x87, 0xea, 0x3b, 0x31, - 0x8d, 0x1b, 0xde, 0xd9, 0x5f, 0x0c, 0xd9, 0xae, 0xd6, 0x71, 0xaf, 0xa6, 0x4f, 0x05, 0xe7, 0xb7, - 0x64, 0x53, 0xb2, 0x13, 0x5b, 0xb9, 0x70, 0x67, 0x13, 0x1b, 0x44, 0x98, 0x43, 0x73, 0x59, 0x2c, - 0x95, 0xec, 0xc4, 0x9c, 0x4a, 0x4c, 0x21, 0x44, 0x27, 0x3f, 0x48, 0x7c, 0x3d, 0x07, 0xc7, 0xed, - 0xf1, 0xa9, 0xd9, 0x5f, 0xb7, 0x8a, 0x5a, 0xc7, 0xe8, 0xc9, 0x34, 0xf3, 0x5a, 0xc8, 0xe8, 0xaf, - 0xbb, 0xb3, 0xbe, 0x1d, 0xf0, 0x0f, 0x22, 0xe9, 0x58, 0xe6, 0x24, 0x61, 0xdc, 0x39, 0x89, 0x99, - 0x5f, 0x84, 0xfd, 0x7a, 0xd3, 0xb6, 0xe2, 0xa4, 0x33, 0x1b, 0x0d, 0x99, 0x4b, 0xac, 0x3e, 0x29, - 0x6f, 0x98, 0x58, 0x77, 0x5f, 0x85, 0x39, 0x41, 0x62, 0x80, 0x16, 0x6f, 0x68, 0x3a, 0xae, 0x75, - 0x48, 0x7f, 0x9e, 0x92, 0xdc, 0xb0, 0xaf, 0x9b, 0x02, 0xa3, 0x0c, 0x73, 0x03, 0x1c, 0x57, 0x36, - 0xbb, 0x9a, 0x8e, 0x5d, 0x5b, 0x73, 0xb3, 0x47, 0x6d, 0x5b, 0x41, 0x03, 0xd1, 0xe8, 0x9b, 0x42, - 0xc4, 0xa3, 0xdd, 0x01, 0x98, 0x62, 0x9b, 0xcc, 0xc4, 0x97, 0xc1, 0xd1, 0x0e, 0xee, 0xe1, 0x6e, - 0x07, 0x77, 0xdb, 0x8a, 0x2b, 0xe3, 0x81, 0xf9, 0x98, 0xc4, 0x9e, 0x80, 0x64, 0xfc, 0x02, 0x72, - 0xde, 0xe7, 0x59, 0x27, 0x3b, 0xa0, 0x4c, 0xc2, 0xea, 0x14, 0xda, 0xcd, 0xe9, 0x51, 0x8d, 0x69, - 0x3b, 0x8b, 0xcf, 0xc5, 0x4e, 0xa4, 0x93, 0xea, 0x70, 0x0e, 0x4d, 0x40, 0x8b, 0x2d, 0x03, 0x47, - 0x6b, 0x1d, 0xc3, 0xeb, 0x49, 0xda, 0xa8, 0x8e, 0xb4, 0xcf, 0x11, 0x82, 0x2b, 0xa2, 0x82, 0x4f, - 0x44, 0x87, 0x08, 0xd5, 0xf4, 0x70, 0xa1, 0x7a, 0xad, 0x5f, 0xa8, 0xaa, 0xac, 0x50, 0x9d, 0x1d, - 0xc6, 0x32, 0x3f, 0xb9, 0x57, 0xb2, 0x44, 0xa1, 0x8f, 0xb8, 0x82, 0xb0, 0xc8, 0x08, 0xc2, 0x8b, - 0x23, 0xb6, 0x2a, 0x79, 0x29, 0xf8, 0xf7, 0x69, 0xb8, 0xca, 0x96, 0xc4, 0xd5, 0xae, 0xe1, 0x8a, - 0xc2, 0xf3, 0x58, 0x45, 0x3a, 0xab, 0x4d, 0x86, 0xab, 0x48, 0x47, 0x42, 0xe8, 0x17, 0xa2, 0x1e, - 0x87, 0xed, 0xab, 0x25, 0xe0, 0xba, 0x27, 0xd2, 0x41, 0xd5, 0xa8, 0x42, 0x93, 0x67, 0xe0, 0x2f, - 0xdb, 0xee, 0x15, 0x97, 0xc8, 0x6a, 0x0e, 0xc9, 0xbc, 0x67, 0x18, 0xb7, 0xbb, 0xcb, 0x41, 0xfb, - 0x41, 0xdb, 0xb5, 0x81, 0x0a, 0x4f, 0x25, 0xbb, 0x68, 0x67, 0xc1, 0x88, 0x3e, 0xc4, 0xad, 0xef, - 0xee, 0xf2, 0x88, 0x52, 0x17, 0xcb, 0x51, 0x03, 0x9f, 0x6a, 0xfb, 0x88, 0xaa, 0x93, 0x87, 0xe5, - 0x5f, 0x0b, 0x30, 0x43, 0x2c, 0xce, 0x2e, 0xc8, 0xbb, 0x9a, 0xae, 0x98, 0x18, 0x9d, 0xe7, 0x85, - 0xe6, 0x14, 0x80, 0xe2, 0x66, 0xa3, 0x97, 0xff, 0xbe, 0x98, 0x08, 0xde, 0x5f, 0x3c, 0x2e, 0x78, - 0x74, 0x4c, 0xd0, 0xfb, 0x0b, 0x47, 0xf5, 0x13, 0x04, 0xa2, 0x6c, 0x3f, 0xd1, 0xef, 0x44, 0x04, - 0xc2, 0xc9, 0xe6, 0x01, 0xe1, 0x16, 0x34, 0x1e, 0x10, 0x4e, 0xf6, 0x43, 0x02, 0x22, 0xa0, 0xfa, - 0xe4, 0x81, 0xf8, 0x74, 0x0e, 0x8a, 0x0b, 0x58, 0x36, 0xfb, 0x3a, 0x76, 0x95, 0x58, 0xd0, 0x1b, - 0xa9, 0xba, 0x61, 0x95, 0x17, 0x93, 0x6b, 0x06, 0x4f, 0xb8, 0xa6, 0xfc, 0x07, 0x59, 0x91, 0x0f, - 0xc6, 0x07, 0x09, 0x2a, 0xc5, 0x74, 0x4d, 0x12, 0xed, 0x60, 0x9c, 0x83, 0x8a, 0xe4, 0xf1, 0x79, - 0xbb, 0xa7, 0x15, 0x18, 0x13, 0x1a, 0x5f, 0xf1, 0xa3, 0xb1, 0xc2, 0xa2, 0x71, 0x27, 0x17, 0x1f, - 0xc2, 0xb4, 0x01, 0x23, 0x02, 0xe2, 0x99, 0x3e, 0x69, 0x32, 0x80, 0xdc, 0x3b, 0x3e, 0x21, 0x13, - 0x70, 0x2d, 0x93, 0x86, 0x6c, 0x4b, 0x6b, 0x62, 0xc6, 0x60, 0x70, 0x38, 0x24, 0xde, 0x5e, 0x2b, - 0xcd, 0x78, 0x47, 0x7e, 0x7d, 0xd4, 0x73, 0x01, 0x52, 0x6f, 0xb0, 0x1d, 0x0a, 0xc3, 0xe7, 0xb7, - 0xc6, 0x0e, 0x44, 0xdb, 0xc1, 0x0f, 0x2b, 0x3e, 0x79, 0x86, 0x7e, 0xb6, 0xe0, 0x28, 0xf9, 0x13, - 0x5d, 0xbd, 0x6f, 0xa7, 0x21, 0x47, 0xaf, 0x7f, 0xd8, 0x03, 0x7c, 0x47, 0xdb, 0xc8, 0x59, 0x75, - 0x7a, 0x11, 0xe8, 0xc3, 0x11, 0x15, 0xd0, 0x89, 0x3a, 0x5b, 0x8c, 0x77, 0x2d, 0x1f, 0x8e, 0xa0, - 0x73, 0x1e, 0x5c, 0xf7, 0x04, 0x5e, 0x7c, 0x65, 0xed, 0xf7, 0x31, 0xff, 0x25, 0x0d, 0x10, 0x38, - 0xfb, 0x06, 0xf3, 0x79, 0xe4, 0xec, 0xfb, 0x06, 0x3f, 0x0e, 0x17, 0x58, 0x1c, 0x6e, 0x0b, 0xe2, - 0x85, 0x25, 0x73, 0xa3, 0xa6, 0x60, 0xf4, 0x09, 0x97, 0xc3, 0x75, 0x86, 0xc3, 0x77, 0x8e, 0x55, - 0x6a, 0xf2, 0x9c, 0xb6, 0x39, 0x1c, 0xb0, 0xd0, 0x1c, 0xc5, 0xe1, 0x90, 0x85, 0xe6, 0x01, 0x38, - 0x1c, 0xbe, 0xda, 0x1c, 0x97, 0xc3, 0x87, 0xb6, 0x88, 0x7c, 0x22, 0x03, 0xb9, 0xea, 0x03, 0x3d, - 0x4d, 0x37, 0xd1, 0x23, 0xac, 0x3d, 0xed, 0x9e, 0x67, 0x1a, 0x9f, 0xfc, 0xb7, 0xc6, 0xdf, 0x8e, - 0xd6, 0xf6, 0x1e, 0x3d, 0xd3, 0x90, 0x78, 0x0e, 0x72, 0x1b, 0xf6, 0x69, 0xb7, 0xbd, 0xe1, 0x42, - 0x4c, 0x53, 0xed, 0xc2, 0x4b, 0xf6, 0xc9, 0xb7, 0x44, 0x53, 0x8a, 0x45, 0x10, 0x5e, 0xa3, 0xf4, - 0xe8, 0x75, 0xb0, 0xf5, 0x97, 0x78, 0xdd, 0xa0, 0x36, 0xd9, 0xb0, 0x61, 0x62, 0xdb, 0x58, 0x54, - 0x41, 0x62, 0x23, 0xc5, 0xd3, 0x70, 0x94, 0x46, 0x2c, 0x28, 0x2a, 0xb6, 0x9d, 0xc4, 0x15, 0x24, - 0x26, 0x0e, 0x7d, 0xd9, 0x0f, 0xee, 0xed, 0x2c, 0xb8, 0xa7, 0x87, 0xd1, 0x16, 0x68, 0x22, 0x64, - 0xd0, 0x7a, 0x06, 0x39, 0xb8, 0xef, 0xb7, 0xdb, 0x18, 0x77, 0xe8, 0x5d, 0x83, 0x13, 0x8c, 0xa8, - 0x37, 0xf4, 0x6e, 0x57, 0x4a, 0x5e, 0xc6, 0x48, 0xc9, 0x0b, 0x46, 0x93, 0x97, 0xfc, 0x4b, 0xfa, - 0x15, 0xc8, 0xd1, 0x7b, 0x8a, 0xa3, 0x50, 0x58, 0x96, 0xf5, 0xed, 0x8e, 0x76, 0xb9, 0x6b, 0x9f, - 0xc6, 0xaf, 0xd0, 0x13, 0x9b, 0x62, 0xca, 0x2a, 0xf1, 0xbe, 0x66, 0xa3, 0x5e, 0x4c, 0x8b, 0x79, - 0x10, 0xe6, 0x1b, 0xad, 0xa2, 0x60, 0xfd, 0x69, 0x5e, 0x3c, 0x5f, 0xcc, 0x88, 0xc7, 0x00, 0xce, - 0x4b, 0xe5, 0x95, 0xc5, 0x35, 0x92, 0x22, 0x8b, 0xde, 0x2c, 0xc0, 0x71, 0xbb, 0x31, 0xde, 0x11, - 0xd5, 0xbd, 0xe1, 0xc2, 0x36, 0xda, 0x13, 0xcd, 0xe7, 0xb8, 0x9f, 0xac, 0x0d, 0x54, 0x1d, 0x01, - 0xef, 0x68, 0xa8, 0xf2, 0xbd, 0x5b, 0x0b, 0xa7, 0x66, 0x02, 0x4f, 0xd3, 0xd3, 0x0e, 0x18, 0x8e, - 0x51, 0x34, 0x63, 0xc0, 0xcf, 0xd0, 0x20, 0x18, 0x91, 0x59, 0xed, 0x16, 0x7c, 0x45, 0xb0, 0x3a, - 0x88, 0x9a, 0x89, 0x3c, 0x67, 0x2e, 0xda, 0x34, 0x10, 0x4f, 0x03, 0x86, 0xa9, 0xe9, 0xd8, 0x6f, - 0xdc, 0x3b, 0xc2, 0x28, 0x8b, 0x1e, 0xe2, 0x3e, 0x9c, 0x1a, 0xac, 0x31, 0x31, 0x10, 0xf8, 0x0e, - 0xac, 0x46, 0x90, 0x93, 0x3c, 0x0a, 0x0f, 0xa5, 0xe1, 0xe8, 0xb2, 0xbc, 0xed, 0xda, 0x00, 0xe4, - 0xd7, 0x68, 0x61, 0x0c, 0x4e, 0x85, 0xee, 0x2c, 0xfc, 0xe5, 0x87, 0xbe, 0x40, 0x4e, 0xbb, 0xe6, - 0xe0, 0xf8, 0xf6, 0x14, 0x21, 0x05, 0x27, 0xcf, 0xb9, 0xef, 0xa6, 0x61, 0xd6, 0x4f, 0xc0, 0xdc, - 0x9e, 0xef, 0x19, 0x31, 0x6b, 0xe6, 0x7b, 0xe0, 0xd1, 0xeb, 0x14, 0xf3, 0x98, 0xf4, 0x57, 0xb8, - 0x4f, 0xb4, 0x83, 0x6a, 0xe3, 0xe4, 0x29, 0xdf, 0x09, 0x37, 0x67, 0x25, 0x13, 0xd0, 0xd8, 0x4b, - 0xc3, 0x4c, 0x45, 0xd5, 0xba, 0x63, 0x88, 0xe6, 0x3f, 0xa5, 0x78, 0x55, 0x5f, 0x98, 0x0a, 0x38, - 0xf9, 0xc8, 0xa7, 0xd7, 0x12, 0x56, 0xf2, 0x04, 0x1e, 0x08, 0xa4, 0xe1, 0xb8, 0x8d, 0xdd, 0x7c, - 0xbf, 0xa7, 0x2a, 0xed, 0x48, 0xec, 0x7b, 0x7d, 0xc4, 0xf7, 0xee, 0x6e, 0x15, 0x9c, 0x0c, 0x8c, - 0xf2, 0x84, 0x3d, 0xa8, 0xec, 0x09, 0xf8, 0x70, 0xcf, 0xc0, 0xb1, 0xd5, 0xae, 0xd1, 0x53, 0x65, - 0x63, 0x8b, 0xaa, 0x9c, 0xdd, 0xc6, 0x5c, 0x55, 0xbe, 0xba, 0x8f, 0xf5, 0x3d, 0xe7, 0xaa, 0x92, - 0x04, 0x86, 0x2b, 0xfc, 0xa0, 0x87, 0x04, 0x5e, 0xdb, 0x96, 0x6c, 0x7d, 0x01, 0xec, 0x5c, 0x84, - 0x42, 0x4f, 0x69, 0x9b, 0x7d, 0x1d, 0xef, 0xd7, 0x2c, 0x08, 0x2b, 0x64, 0xc5, 0xce, 0x24, 0xb9, - 0xb9, 0x91, 0x0c, 0x79, 0x1a, 0xb9, 0x4f, 0xbf, 0x88, 0xda, 0x49, 0x4c, 0x7b, 0x76, 0x12, 0x4f, - 0x42, 0x4e, 0xd6, 0x4d, 0xc5, 0x70, 0xf4, 0xda, 0x68, 0xc8, 0x92, 0x25, 0xfb, 0xdf, 0xaa, 0xae, + // 9954 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x7b, 0x94, 0x24, 0x47, + 0x75, 0x27, 0xac, 0xaa, 0xac, 0x57, 0xdf, 0x99, 0x9e, 0x29, 0x25, 0xc3, 0xa8, 0x09, 0xc4, 0x20, + 0x06, 0x69, 0x10, 0xb2, 0xa8, 0x91, 0x46, 0x08, 0x24, 0xa1, 0x07, 0xd5, 0xd5, 0xd5, 0x33, 0xa5, + 0xe9, 0xae, 0x6a, 0x67, 0x55, 0xcf, 0xa0, 0x0f, 0x7f, 0xdb, 0x9b, 0x5d, 0x15, 0xdd, 0x9d, 0x74, + 0x76, 0x65, 0x91, 0x99, 0xd5, 0xa3, 0xe6, 0x9c, 0x7d, 0x00, 0xf6, 0x62, 0xc3, 0x81, 0x35, 0xd8, + 0xe6, 0xb9, 0x46, 0x20, 0x2c, 0xcb, 0x60, 0x84, 0x2c, 0x2c, 0x59, 0x02, 0x56, 0x2b, 0xec, 0x95, + 0x16, 0x84, 0xf1, 0x1a, 0xad, 0x1f, 0x18, 0x7c, 0x60, 0xb1, 0x64, 0x9d, 0xb3, 0xbb, 0xb2, 0x17, + 0xe3, 0x65, 0xed, 0x83, 0x7d, 0x58, 0xef, 0xc9, 0xc8, 0xc8, 0x47, 0x54, 0x57, 0x66, 0x45, 0x56, + 0x67, 0x56, 0x0f, 0x67, 0xff, 0xaa, 0x8a, 0xc8, 0x78, 0xdc, 0xb8, 0xbf, 0x1b, 0xef, 0x1b, 0xf7, + 0xc2, 0x4c, 0x6f, 0xf5, 0x64, 0x4f, 0xd7, 0x4c, 0xcd, 0x38, 0xd9, 0xd6, 0xb6, 0xb6, 0xe4, 0x6e, + 0xc7, 0x28, 0x91, 0xb0, 0x98, 0x97, 0xbb, 0x3b, 0xe6, 0x4e, 0x0f, 0xa3, 0x2b, 0x7b, 0x9b, 0xeb, + 0x27, 0x55, 0x65, 0xf5, 0x64, 0x6f, 0xf5, 0xe4, 0x96, 0xd6, 0xc1, 0xaa, 0x93, 0x81, 0x04, 0x68, + 0x72, 0x74, 0x75, 0x50, 0x2a, 0x55, 0x6b, 0xcb, 0xaa, 0x61, 0x6a, 0x3a, 0xa6, 0x29, 0x8f, 0x7a, + 0x55, 0xe2, 0x6d, 0xdc, 0x35, 0x9d, 0x12, 0x2e, 0x5f, 0xd7, 0xb4, 0x75, 0x15, 0xdb, 0xdf, 0x56, + 0xfb, 0x6b, 0x27, 0x0d, 0x53, 0xef, 0xb7, 0x4d, 0xfb, 0xeb, 0xf1, 0xbf, 0xfc, 0x60, 0x06, 0x04, + 0xa9, 0xd7, 0x46, 0x4f, 0xa6, 0x21, 0xbf, 0x88, 0x4d, 0x5d, 0x69, 0x1b, 0xe8, 0xb1, 0x34, 0x4c, + 0x37, 0xb1, 0xb9, 0x24, 0xeb, 0xf2, 0x16, 0x36, 0xb1, 0x6e, 0xa0, 0xab, 0x20, 0x2f, 0xe1, 0xb7, + 0xf6, 0xb1, 0x61, 0x8a, 0x08, 0x0a, 0x3d, 0x55, 0x36, 0xd7, 0x34, 0x7d, 0x6b, 0x26, 0x75, 0x45, + 0xea, 0xea, 0x29, 0xc9, 0x0d, 0xa3, 0x7f, 0x4a, 0x41, 0x41, 0xc2, 0x46, 0x4f, 0xeb, 0x1a, 0x58, + 0x3c, 0x0d, 0x59, 0xac, 0xeb, 0x9a, 0x4e, 0x52, 0x1d, 0x38, 0x75, 0x7d, 0x89, 0xb6, 0xbc, 0x24, + 0xf5, 0xda, 0x25, 0x5a, 0x55, 0x89, 0xa9, 0xa6, 0xe4, 0xe4, 0x2d, 0x55, 0xad, 0x8c, 0x92, 0x9d, + 0x1f, 0x7d, 0x3a, 0x05, 0x59, 0x12, 0x21, 0xde, 0x09, 0x99, 0xb6, 0xd6, 0xc1, 0xa4, 0xc4, 0x43, + 0xa7, 0x5e, 0x17, 0xb9, 0xc4, 0x52, 0x45, 0xeb, 0x60, 0x89, 0x94, 0x21, 0x5e, 0x01, 0x07, 0x3a, + 0xd8, 0x68, 0xeb, 0x4a, 0xcf, 0x54, 0xb4, 0xee, 0x4c, 0x9a, 0x34, 0xc5, 0x1f, 0x75, 0xfc, 0x14, + 0x64, 0xac, 0xf4, 0x62, 0x01, 0x32, 0xf5, 0xe5, 0x85, 0x85, 0xe2, 0x25, 0xe2, 0xa5, 0x30, 0xbd, + 0x5c, 0x3f, 0x5b, 0x6f, 0x9c, 0xaf, 0xaf, 0x54, 0x25, 0xa9, 0x21, 0x15, 0x53, 0xe2, 0x34, 0x4c, + 0xcd, 0x96, 0xe7, 0x56, 0x6a, 0xf5, 0xa5, 0xe5, 0x56, 0x31, 0x8d, 0xfe, 0x47, 0x0e, 0x0e, 0x56, + 0xef, 0x36, 0xb1, 0xde, 0x95, 0xd5, 0x39, 0x5d, 0xeb, 0xa1, 0x67, 0x05, 0xc8, 0xce, 0x2b, 0x2a, + 0x36, 0xd0, 0xe7, 0x52, 0x1e, 0x13, 0x2f, 0x87, 0xa9, 0xb6, 0xd6, 0x35, 0xf1, 0xdd, 0x66, 0xad, + 0x43, 0xb9, 0xe8, 0x45, 0x88, 0xc7, 0xe1, 0x60, 0x47, 0xd7, 0x7a, 0x2d, 0x59, 0x5f, 0xc7, 0x56, + 0x02, 0x9b, 0x36, 0x26, 0x4e, 0xbc, 0x19, 0x0a, 0x3d, 0xcd, 0x50, 0x08, 0xed, 0x02, 0x61, 0xc7, + 0xcb, 0x5c, 0x76, 0x10, 0x41, 0x29, 0xcd, 0xaa, 0x5a, 0x7b, 0xb3, 0xb4, 0x44, 0x13, 0x49, 0x6e, + 0x72, 0xf1, 0x04, 0x1c, 0x22, 0xd2, 0x63, 0x91, 0xb5, 0x24, 0x9b, 0x1b, 0xc6, 0x4c, 0xe6, 0x0a, + 0xe1, 0xea, 0x29, 0x69, 0x20, 0x16, 0xdd, 0x9f, 0xf6, 0xa1, 0x39, 0xc7, 0xa2, 0x59, 0x62, 0x78, + 0xef, 0x6f, 0x71, 0x89, 0xb4, 0x76, 0x38, 0x94, 0xe2, 0xb5, 0x90, 0x25, 0xc2, 0x49, 0x9a, 0x74, + 0xe0, 0xd4, 0x51, 0xaf, 0x14, 0x9a, 0xbc, 0x6a, 0x7d, 0x95, 0xec, 0x44, 0xe8, 0xd7, 0x5d, 0xe0, + 0x4f, 0x33, 0xc0, 0xdf, 0x10, 0xad, 0xf2, 0xe4, 0x51, 0xff, 0x61, 0x1a, 0xf2, 0x15, 0x0b, 0xbe, + 0xae, 0x89, 0x14, 0x5e, 0x94, 0x4f, 0xc0, 0xa1, 0x35, 0xad, 0xdd, 0x37, 0x70, 0x87, 0x20, 0xe5, + 0xe2, 0x3c, 0x10, 0x2b, 0xce, 0x40, 0xbe, 0x6d, 0x97, 0x4d, 0x80, 0x3e, 0x28, 0x39, 0x41, 0xf4, + 0x63, 0x7f, 0x77, 0x9b, 0x67, 0x01, 0xba, 0x2e, 0x98, 0x47, 0x94, 0xd2, 0x80, 0xde, 0xf6, 0x1b, + 0x2e, 0xd3, 0x6b, 0x0c, 0xd3, 0x6f, 0x8c, 0x5a, 0x60, 0xf2, 0x6c, 0xff, 0xa3, 0x93, 0x30, 0x45, + 0xb8, 0xb4, 0xa0, 0x18, 0x26, 0x7a, 0x50, 0x80, 0xa3, 0x15, 0xad, 0xbb, 0x8d, 0x75, 0xb3, 0xb2, + 0xa1, 0xa8, 0x1d, 0x1d, 0x77, 0x5b, 0xda, 0x92, 0xbc, 0x8e, 0x0d, 0xd4, 0xe6, 0xc5, 0x04, 0x41, + 0x61, 0xd5, 0x66, 0xbb, 0x31, 0x93, 0x26, 0x9d, 0xc2, 0x0d, 0x8b, 0xc7, 0x00, 0xb4, 0xd5, 0xb7, + 0xe0, 0xb6, 0xd9, 0xda, 0xe9, 0x61, 0x02, 0xc5, 0x94, 0xe4, 0x8b, 0x41, 0x0f, 0xfa, 0xbb, 0x8b, + 0xc4, 0xa2, 0x71, 0x2b, 0xc3, 0x3c, 0x97, 0xe6, 0xd2, 0x70, 0x7a, 0x03, 0x3a, 0xcf, 0x0c, 0xe4, + 0x55, 0xa5, 0xeb, 0xa3, 0xcd, 0x09, 0xa2, 0x87, 0x5d, 0xcc, 0x96, 0x19, 0xcc, 0xca, 0x7b, 0xa9, + 0x36, 0x79, 0xfc, 0xfe, 0x5e, 0x80, 0xcc, 0xa2, 0xb6, 0x8d, 0xd1, 0xd7, 0x53, 0x71, 0x00, 0x74, + 0x35, 0x1c, 0x36, 0xc9, 0xf0, 0x58, 0x71, 0xf3, 0xdb, 0x28, 0x0d, 0x46, 0xef, 0x1a, 0x60, 0x33, + 0x23, 0x06, 0xd8, 0x6c, 0xa4, 0x01, 0x16, 0xdd, 0xe3, 0x97, 0x84, 0x37, 0xb2, 0x92, 0x70, 0x4d, + 0x00, 0x24, 0x16, 0x1f, 0x62, 0x19, 0x34, 0xef, 0x75, 0x65, 0xa1, 0xc2, 0xc8, 0xc2, 0x49, 0xfe, + 0x8a, 0x93, 0x47, 0xfe, 0xb7, 0x33, 0x30, 0x6d, 0x55, 0xdc, 0xd2, 0xea, 0xf8, 0x82, 0x25, 0x7c, + 0xe8, 0x4f, 0x62, 0x11, 0x81, 0xeb, 0x21, 0xdf, 0xc1, 0xa6, 0xac, 0xa8, 0x06, 0x81, 0xfe, 0xc0, + 0xa9, 0xcb, 0x4a, 0xf6, 0xf2, 0xa7, 0xe4, 0x2c, 0x7f, 0x4a, 0x4d, 0xb2, 0xfc, 0x91, 0x9c, 0x74, + 0x49, 0xcb, 0xc2, 0xd3, 0x7e, 0x59, 0xa8, 0xb1, 0xb2, 0x70, 0x43, 0x08, 0x24, 0x2e, 0x67, 0x02, + 0x84, 0xe2, 0x28, 0xe4, 0xec, 0xde, 0x4f, 0x21, 0xa1, 0x21, 0x4f, 0x58, 0x04, 0x1e, 0x61, 0xf9, + 0x4d, 0x57, 0x58, 0x16, 0x18, 0x61, 0xb9, 0x69, 0x0c, 0xca, 0x92, 0x97, 0x9a, 0xbf, 0x11, 0x60, + 0x6a, 0xae, 0xdf, 0x53, 0x95, 0xb6, 0x6c, 0x62, 0xf4, 0xd1, 0x28, 0x12, 0x63, 0xb2, 0x6b, 0x29, + 0x37, 0xcc, 0x48, 0x93, 0x30, 0x20, 0x4d, 0x7e, 0xd8, 0x33, 0xd1, 0x60, 0x7f, 0xca, 0x0f, 0x7b, + 0x95, 0x85, 0x3d, 0xa8, 0x27, 0xba, 0x4d, 0x0b, 0x80, 0x3c, 0x4c, 0xf0, 0xa3, 0xc1, 0x7e, 0xbf, + 0x0b, 0xfb, 0x19, 0x06, 0xf6, 0xd7, 0x46, 0xa4, 0x2c, 0x79, 0xc8, 0x1f, 0xbe, 0x1c, 0x84, 0x26, + 0x36, 0xd1, 0xaf, 0x01, 0x64, 0x5a, 0xf8, 0x6e, 0x13, 0xfd, 0x9e, 0x00, 0xd9, 0xa6, 0xb9, 0xa3, + 0x62, 0xf4, 0x8e, 0x58, 0x46, 0x8c, 0xdb, 0x20, 0x6b, 0x58, 0xc5, 0xd1, 0x45, 0xf4, 0xab, 0x86, + 0x02, 0xec, 0x2c, 0x70, 0x2c, 0x0a, 0x4a, 0xa4, 0x76, 0xc9, 0xce, 0x85, 0x7e, 0xdb, 0x8f, 0xf3, + 0x9d, 0x2c, 0xce, 0x41, 0xdc, 0x6c, 0x62, 0x7f, 0x49, 0xb1, 0x0c, 0xfa, 0x9f, 0x75, 0x01, 0x5d, + 0x64, 0x00, 0xbd, 0x79, 0x1c, 0x12, 0x92, 0x47, 0xf5, 0xc3, 0x02, 0x64, 0x2b, 0x9a, 0xaa, 0xe9, + 0xe8, 0xae, 0x38, 0x30, 0x3c, 0x02, 0xd9, 0xb6, 0x55, 0x1a, 0x9d, 0xee, 0xed, 0xc0, 0xde, 0xa0, + 0x21, 0xd4, 0xed, 0x2f, 0x34, 0xc3, 0x48, 0x48, 0x1e, 0x9a, 0x2f, 0x59, 0x6b, 0x32, 0x59, 0xdf, + 0x44, 0xff, 0x2a, 0x0e, 0x64, 0x6e, 0x81, 0xcc, 0x96, 0xac, 0x6f, 0xd2, 0x51, 0xe9, 0xc4, 0xe8, + 0xce, 0x65, 0x55, 0x2d, 0x91, 0x3c, 0xe8, 0xa1, 0x31, 0x66, 0x4e, 0x97, 0x79, 0x56, 0x39, 0xb1, + 0xc0, 0x17, 0x75, 0x86, 0x0c, 0xa3, 0x20, 0x79, 0xf4, 0x3e, 0x2b, 0xc0, 0xe1, 0x59, 0xb9, 0xbd, + 0xb9, 0xae, 0x6b, 0xfd, 0x6e, 0x27, 0xf1, 0x2e, 0xf6, 0xb8, 0x1f, 0xa2, 0x06, 0x0b, 0x51, 0x98, + 0x7c, 0x0f, 0x90, 0x18, 0x0b, 0x50, 0x0f, 0xb9, 0x40, 0x49, 0x0c, 0x50, 0xb7, 0x8f, 0x4d, 0x47, + 0xf2, 0x70, 0x7d, 0x46, 0x80, 0x6c, 0x59, 0x55, 0xd6, 0xbb, 0xa8, 0x1f, 0x07, 0x48, 0xd7, 0x41, + 0x56, 0xb6, 0x4a, 0xa3, 0x73, 0x19, 0x1a, 0xda, 0xdd, 0x48, 0x7d, 0x92, 0x9d, 0x10, 0x7d, 0x7a, + 0x8c, 0x65, 0x8a, 0xc5, 0x38, 0x52, 0x48, 0x2c, 0xb0, 0x45, 0x5d, 0x8a, 0x04, 0xd5, 0x9e, 0x3c, + 0x58, 0xef, 0xcf, 0x40, 0x6e, 0x5e, 0xc1, 0x6a, 0xc7, 0x40, 0x7f, 0xc6, 0xbd, 0xf4, 0x38, 0x07, + 0x07, 0x08, 0x3c, 0x76, 0x46, 0x82, 0x58, 0xf8, 0xec, 0x63, 0x27, 0x2c, 0xd1, 0xd2, 0xed, 0x8f, + 0x24, 0x4e, 0xf2, 0x17, 0x84, 0xce, 0x03, 0x78, 0x9f, 0xc4, 0x19, 0xc8, 0x53, 0x21, 0xa0, 0x14, + 0x38, 0x41, 0xf1, 0x24, 0xe4, 0xd6, 0x9c, 0xaa, 0x43, 0xf7, 0x43, 0x34, 0x19, 0xfa, 0xcd, 0x34, + 0xef, 0x99, 0x52, 0x00, 0xdd, 0x7b, 0x17, 0x09, 0xbe, 0x13, 0x28, 0x8e, 0xea, 0x93, 0x97, 0x89, + 0xaf, 0x08, 0x20, 0xcc, 0x29, 0xdb, 0xe8, 0x09, 0x77, 0x55, 0xfa, 0xf6, 0x58, 0x56, 0xa5, 0xb7, + 0xb2, 0xab, 0xd2, 0xf0, 0x89, 0x73, 0x4e, 0xd9, 0x66, 0x17, 0xa5, 0xe3, 0xce, 0x9c, 0x6e, 0x41, + 0xfb, 0x36, 0x73, 0x06, 0x51, 0x90, 0x3c, 0x92, 0xbf, 0x2f, 0x40, 0x66, 0x5e, 0x51, 0xf1, 0xfe, + 0x6e, 0x30, 0x2c, 0x0a, 0xe2, 0xd9, 0x60, 0x78, 0x25, 0xed, 0xdb, 0x2a, 0x36, 0x90, 0x84, 0xe4, + 0xd1, 0xfc, 0x82, 0x00, 0x85, 0x56, 0x5f, 0xef, 0xd6, 0xba, 0xa6, 0x76, 0x71, 0x6c, 0x14, 0xf9, + 0x2f, 0x53, 0x3c, 0x26, 0x3a, 0x2d, 0x98, 0xe0, 0x65, 0xca, 0xc8, 0xca, 0x93, 0xc7, 0xee, 0x99, + 0x6f, 0xa5, 0x20, 0x4b, 0xe8, 0x40, 0x9f, 0x17, 0x2c, 0xe4, 0x7a, 0xaa, 0xdc, 0xc6, 0x68, 0x8b, + 0x17, 0x44, 0xdf, 0x64, 0x98, 0x66, 0x27, 0xc3, 0x6b, 0x20, 0x4b, 0xfe, 0xd2, 0xed, 0xc8, 0x91, + 0x61, 0x10, 0x4a, 0x76, 0x12, 0xf4, 0xa8, 0x1f, 0xaf, 0x3b, 0x58, 0xbc, 0x5e, 0xbd, 0x9b, 0x65, + 0x25, 0x4a, 0x66, 0xf0, 0xd1, 0x7d, 0x00, 0x4d, 0xd1, 0x0e, 0x6e, 0x3e, 0xe9, 0x82, 0x38, 0xcb, + 0x80, 0x58, 0xe2, 0xa6, 0x68, 0x22, 0x8b, 0xda, 0xe9, 0xe5, 0x5e, 0x47, 0x36, 0xb1, 0x73, 0x25, + 0x36, 0x61, 0xe8, 0x22, 0x2e, 0x6a, 0x4b, 0x0c, 0xb1, 0xa3, 0xfa, 0x5a, 0xdc, 0xe7, 0x6b, 0xa1, + 0xb5, 0x27, 0x0f, 0xd6, 0xb7, 0x33, 0x90, 0x6d, 0xf6, 0x54, 0xc5, 0x44, 0x1f, 0x4d, 0xc7, 0x82, + 0x92, 0x2e, 0x77, 0xd7, 0x71, 0x00, 0x4a, 0x92, 0xf5, 0x4d, 0xb2, 0x93, 0x78, 0xe3, 0x69, 0x66, + 0x9c, 0xf1, 0x54, 0xbc, 0x19, 0x32, 0x56, 0x42, 0x7a, 0x1c, 0x7f, 0xd5, 0x10, 0xc6, 0x92, 0x66, + 0xb9, 0x0b, 0xe9, 0x45, 0xc2, 0x49, 0x2b, 0xcb, 0xf1, 0xeb, 0x21, 0x63, 0x85, 0x44, 0x80, 0xdc, + 0x6c, 0xa3, 0xd5, 0x6a, 0x2c, 0x16, 0x2f, 0x11, 0xf3, 0x20, 0xb4, 0x1a, 0x4b, 0xc5, 0x94, 0x38, + 0x05, 0xd9, 0x5a, 0xbd, 0x5e, 0x95, 0x8a, 0x69, 0xeb, 0x6f, 0xab, 0xd6, 0x5a, 0xa8, 0x16, 0x05, + 0x76, 0x16, 0xbe, 0x8d, 0x15, 0xa9, 0x57, 0x85, 0xd4, 0x9d, 0xe4, 0x58, 0x70, 0x8f, 0x2b, 0x64, + 0x6f, 0x64, 0x84, 0xec, 0x5a, 0x4e, 0x7a, 0x92, 0x17, 0xae, 0x0f, 0x0a, 0x90, 0x5d, 0xc4, 0xfa, + 0x3a, 0x46, 0x6f, 0x8d, 0xa0, 0xfa, 0xb0, 0xa6, 0xe8, 0x86, 0xc9, 0x5e, 0x89, 0x33, 0x71, 0xe2, + 0x95, 0x30, 0x6d, 0xe0, 0xb6, 0xd6, 0x75, 0xef, 0xcd, 0xed, 0x33, 0x09, 0x36, 0x12, 0x7d, 0x24, + 0x22, 0x64, 0x84, 0xd0, 0x58, 0x66, 0xda, 0x28, 0xc0, 0x0c, 0xab, 0x35, 0x79, 0x60, 0xfe, 0x4e, + 0xb0, 0x32, 0xf5, 0x76, 0xd0, 0x47, 0xb8, 0x97, 0x46, 0xd7, 0x42, 0x8e, 0x88, 0xa9, 0xb3, 0x87, + 0x1d, 0x3e, 0x02, 0xd3, 0x34, 0xe2, 0x2c, 0x5c, 0x6a, 0x60, 0x15, 0xb7, 0x4d, 0xdc, 0xb1, 0xba, + 0xae, 0x34, 0x72, 0x50, 0xd8, 0x9d, 0x1c, 0x3d, 0xe3, 0x07, 0xf0, 0x56, 0x16, 0xc0, 0x13, 0x43, + 0x58, 0x69, 0x35, 0x28, 0xf8, 0xe6, 0xc4, 0x6a, 0x46, 0x53, 0xd5, 0x4c, 0xf7, 0x02, 0x88, 0x86, + 0xad, 0x6f, 0x1b, 0xe6, 0x96, 0x4a, 0xbe, 0xd9, 0x82, 0xe4, 0x86, 0xc5, 0x12, 0xe4, 0xe5, 0xee, + 0x0e, 0xf9, 0x94, 0x09, 0x69, 0xb5, 0x93, 0x08, 0x7d, 0xdc, 0x45, 0xfe, 0x0e, 0x06, 0xf9, 0x9f, + 0xe2, 0x23, 0x37, 0x79, 0xe0, 0xff, 0x36, 0x07, 0xd9, 0x25, 0xd9, 0x30, 0x31, 0xfa, 0xae, 0x10, + 0xb7, 0x9e, 0x4a, 0x0c, 0x98, 0x8b, 0xd7, 0x40, 0xd1, 0x89, 0x9c, 0x75, 0x16, 0xe2, 0xb6, 0x72, + 0xd2, 0xae, 0x78, 0x6b, 0x18, 0x50, 0x8c, 0x25, 0x59, 0x37, 0x1b, 0x6b, 0x24, 0x8e, 0x4c, 0x05, + 0x05, 0x89, 0x8d, 0x64, 0xa0, 0xcf, 0x85, 0x40, 0x9f, 0x0f, 0x86, 0xbe, 0xc0, 0x01, 0xbd, 0x58, + 0x86, 0xc2, 0x9a, 0xa2, 0x62, 0x92, 0x61, 0x8a, 0x64, 0x18, 0x36, 0x27, 0x11, 0xde, 0xbb, 0x73, + 0x92, 0xb5, 0x41, 0x92, 0xdc, 0x6c, 0x68, 0xc1, 0xde, 0x81, 0x8a, 0x22, 0x64, 0xba, 0xf2, 0x16, + 0xa6, 0x48, 0x90, 0xff, 0x56, 0x5c, 0x47, 0x36, 0x65, 0xc2, 0xfa, 0x83, 0x12, 0xf9, 0x6f, 0xc1, + 0x46, 0x34, 0xb6, 0x96, 0x64, 0x73, 0x83, 0x8a, 0xae, 0x17, 0x81, 0xde, 0x25, 0x44, 0x1b, 0xff, + 0x1c, 0xd2, 0xa2, 0xde, 0x3c, 0x5e, 0x09, 0xd3, 0x6d, 0x59, 0xc7, 0xe6, 0x92, 0x5f, 0x1b, 0x2d, + 0x2b, 0xb1, 0x91, 0x16, 0xb0, 0x8a, 0xd1, 0x94, 0xb7, 0x30, 0xa9, 0xac, 0x62, 0x7d, 0x23, 0x13, + 0x7f, 0x41, 0xda, 0x15, 0xef, 0x8d, 0xb6, 0xd9, 0xb8, 0x47, 0xdb, 0x61, 0x6d, 0x4c, 0xbe, 0xd3, + 0x7d, 0x32, 0x03, 0x42, 0xa5, 0x6f, 0x5e, 0xd4, 0x83, 0xed, 0x8f, 0xfd, 0x83, 0xed, 0x1b, 0x58, + 0x69, 0x19, 0x26, 0xc8, 0x95, 0xbe, 0xb9, 0xbf, 0x63, 0x6d, 0x44, 0x29, 0xf9, 0x55, 0x57, 0x4a, + 0x6e, 0x67, 0xa4, 0xe4, 0x1a, 0xae, 0xb6, 0x25, 0x2f, 0x23, 0x9f, 0x16, 0xe0, 0x50, 0x6d, 0xab, + 0xa7, 0xe9, 0xe6, 0xa2, 0xac, 0x6f, 0x76, 0xb4, 0x0b, 0x5d, 0x74, 0x9a, 0x57, 0x5a, 0x8e, 0x01, + 0x28, 0x24, 0x2b, 0x19, 0x08, 0x6c, 0x82, 0x7c, 0x31, 0xe8, 0x0f, 0xa2, 0x1d, 0xe9, 0x96, 0x58, + 0x3a, 0x02, 0x60, 0xbe, 0x02, 0x0e, 0xe8, 0x9a, 0x66, 0x2e, 0x30, 0x0a, 0x69, 0xfe, 0xa8, 0x88, + 0xab, 0xd9, 0x08, 0x87, 0xbe, 0xe1, 0x04, 0x4e, 0xe0, 0x22, 0x40, 0x80, 0x5c, 0xf5, 0x6e, 0x8b, + 0x04, 0xb4, 0x9c, 0x48, 0x8f, 0x66, 0x55, 0x09, 0x6f, 0x67, 0x11, 0xbb, 0x7a, 0x08, 0x43, 0x6c, + 0x6a, 0x02, 0x90, 0x12, 0x21, 0xd3, 0xf3, 0x04, 0x83, 0xfc, 0x8f, 0x88, 0xcd, 0x27, 0x5c, 0x6c, + 0xca, 0x0c, 0x36, 0xaf, 0xe1, 0x25, 0x25, 0x79, 0x4c, 0x3e, 0x24, 0x40, 0x6e, 0xb9, 0xa7, 0x6a, + 0x72, 0x07, 0x69, 0x7b, 0xdf, 0xc7, 0x22, 0x7b, 0x32, 0xf7, 0x4d, 0xac, 0x6e, 0x58, 0x2c, 0x82, + 0xd0, 0xd7, 0x55, 0xaa, 0x26, 0x66, 0xfd, 0x45, 0x1f, 0x8b, 0x88, 0x96, 0x4d, 0x67, 0x2c, 0x5b, + 0x8d, 0x28, 0xc8, 0x0c, 0xad, 0x36, 0x79, 0x64, 0xbe, 0x9f, 0x86, 0xc2, 0x9c, 0x76, 0xa1, 0x4b, + 0xb0, 0x29, 0xef, 0x19, 0x9b, 0xa8, 0xca, 0x95, 0x25, 0xa7, 0xee, 0x49, 0x2b, 0x57, 0x06, 0x55, + 0x9c, 0x3c, 0xc7, 0x3f, 0x77, 0x9d, 0xad, 0x33, 0x75, 0xaf, 0xe0, 0x5e, 0x58, 0xea, 0x7b, 0xef, + 0x13, 0xde, 0x4d, 0xa2, 0xc0, 0x77, 0x93, 0xf8, 0x29, 0x3f, 0x50, 0xb3, 0x2c, 0x50, 0x43, 0xcf, + 0x28, 0xe2, 0xbd, 0x45, 0xfc, 0x35, 0x17, 0xaa, 0x2a, 0x03, 0xd5, 0xf5, 0x51, 0xaa, 0x4e, 0x1e, + 0xac, 0xe7, 0x05, 0xc8, 0xcf, 0xd9, 0xaa, 0xa8, 0xe8, 0x0c, 0xe4, 0xec, 0xbf, 0xd6, 0x20, 0xb3, + 0x89, 0x77, 0x28, 0x3c, 0xd6, 0x5f, 0xab, 0xf1, 0xdb, 0xb2, 0xda, 0xc7, 0x6e, 0xe3, 0x07, 0xb9, + 0x7f, 0xce, 0xfa, 0x2a, 0xd9, 0x89, 0xd0, 0x06, 0x2f, 0xde, 0x77, 0x78, 0x0a, 0xb3, 0xe9, 0xc0, + 0x5d, 0x0b, 0xb9, 0x99, 0xb3, 0x53, 0xd1, 0x5f, 0x57, 0x7d, 0x16, 0xdd, 0xe7, 0x47, 0xb9, 0xc2, + 0xa2, 0xfc, 0x9a, 0x11, 0x65, 0xc5, 0x01, 0xf3, 0x7d, 0x2e, 0xcc, 0xf3, 0x0c, 0xcc, 0xa7, 0x22, + 0xd5, 0x3d, 0x91, 0xfb, 0xc5, 0x83, 0x12, 0x36, 0x4c, 0x5d, 0x69, 0x5b, 0x65, 0x18, 0xe8, 0xe7, + 0x53, 0x7b, 0xef, 0x93, 0x55, 0x38, 0xa8, 0xfb, 0xca, 0xa4, 0x3d, 0xf3, 0x15, 0x43, 0x8f, 0x52, + 0xfd, 0x95, 0x4b, 0x4c, 0x36, 0x76, 0xb9, 0x71, 0x86, 0xc5, 0x30, 0x88, 0x8f, 0xfe, 0xe2, 0x62, + 0x01, 0xf2, 0x33, 0x2e, 0x90, 0x67, 0x19, 0x20, 0x5f, 0x1f, 0x9d, 0x80, 0xe4, 0xd1, 0x7c, 0x87, + 0x00, 0x19, 0xa2, 0xb6, 0xfe, 0xa3, 0x34, 0x40, 0xcd, 0x28, 0xeb, 0xed, 0x0d, 0x65, 0x1b, 0x77, + 0x90, 0xbc, 0x77, 0x4c, 0xad, 0xd5, 0xbc, 0x5b, 0x20, 0x41, 0xb4, 0x20, 0xf9, 0x62, 0xd0, 0xbb, + 0xfc, 0x60, 0x9d, 0x65, 0xc1, 0xba, 0x31, 0x80, 0x57, 0x44, 0x5b, 0xdb, 0x23, 0x33, 0xe0, 0xe5, + 0xcf, 0x03, 0x2e, 0x02, 0x75, 0x06, 0x81, 0x5b, 0xc6, 0x2a, 0x35, 0x79, 0x10, 0x7e, 0x45, 0x80, + 0xec, 0x82, 0x6c, 0xe2, 0xbb, 0xd1, 0x7b, 0x04, 0xaa, 0x1d, 0xbc, 0xbc, 0x77, 0xfe, 0x8b, 0x90, + 0xb1, 0xd2, 0xd0, 0x75, 0x1f, 0xf9, 0x1f, 0x55, 0x29, 0x86, 0x70, 0x87, 0x50, 0x66, 0x5f, 0x5c, + 0x4c, 0x58, 0x29, 0x26, 0xbc, 0xfa, 0x09, 0x5c, 0xbe, 0x4f, 0x53, 0x34, 0x9e, 0x76, 0x60, 0xf9, + 0xe5, 0x54, 0x22, 0xb8, 0x88, 0xb7, 0x41, 0x76, 0x4b, 0xd6, 0x37, 0x0d, 0xb2, 0x1a, 0x3f, 0xc0, + 0x73, 0x87, 0x64, 0x6d, 0x1a, 0x0d, 0xc9, 0xce, 0x15, 0xf9, 0xa2, 0xd0, 0xd5, 0xed, 0x8c, 0x0d, + 0xd5, 0x28, 0x17, 0x85, 0x61, 0xb5, 0x27, 0x0f, 0xea, 0xfb, 0x5c, 0x95, 0xed, 0xf3, 0x7b, 0xc7, + 0x72, 0xb8, 0x36, 0xe9, 0x38, 0xbd, 0x2c, 0x66, 0x65, 0xed, 0xa8, 0xbd, 0x6c, 0x1f, 0x15, 0xb5, + 0x1f, 0x73, 0xf5, 0x94, 0xfe, 0x75, 0x0c, 0xbd, 0x6b, 0x8f, 0xda, 0x2d, 0x63, 0x43, 0x17, 0x9f, + 0x86, 0xd2, 0x58, 0xd0, 0xed, 0xdb, 0xf3, 0x87, 0x7c, 0x65, 0x03, 0xb7, 0x37, 0x71, 0x07, 0xbd, + 0x79, 0xef, 0xd8, 0xcd, 0x40, 0xbe, 0x6d, 0x97, 0x46, 0x97, 0x0b, 0x4e, 0x70, 0xac, 0x85, 0x9d, + 0x2d, 0xd2, 0x76, 0x01, 0xfb, 0xb2, 0xb0, 0x0b, 0x21, 0x20, 0x79, 0x68, 0x3e, 0xe0, 0xa8, 0x01, + 0xfe, 0x82, 0x00, 0x99, 0xba, 0xbc, 0x85, 0x63, 0x5a, 0x52, 0x90, 0x0b, 0x1d, 0xc1, 0xbb, 0xd0, + 0x19, 0x6b, 0xee, 0x21, 0x0a, 0x75, 0x16, 0x51, 0xfb, 0x32, 0xf7, 0x04, 0xd5, 0x9e, 0x3c, 0x28, + 0x5f, 0xcf, 0x42, 0xb6, 0xb6, 0x65, 0x2d, 0xb7, 0xbf, 0x93, 0x4e, 0x16, 0x15, 0xfe, 0x17, 0xf5, + 0x1e, 0x5f, 0x08, 0x65, 0x21, 0xb0, 0x44, 0x1e, 0x99, 0x02, 0x0b, 0x4c, 0x9e, 0xd3, 0xcf, 0xa6, + 0x21, 0x7b, 0x5e, 0xe9, 0x98, 0x1b, 0x31, 0xcd, 0xf2, 0x17, 0xac, 0xb2, 0xe8, 0x8d, 0xa0, 0x1d, + 0x88, 0x60, 0x23, 0x64, 0x90, 0x23, 0x84, 0xb0, 0x3d, 0xd9, 0x08, 0xe1, 0x29, 0x71, 0x32, 0xe2, + 0x7c, 0x4e, 0xe9, 0x60, 0xed, 0xa2, 0x14, 0x67, 0x42, 0x59, 0x9c, 0xe2, 0x1c, 0x58, 0xe0, 0xff, + 0xb3, 0xe2, 0x6c, 0x73, 0x24, 0x4e, 0x71, 0x0e, 0x2e, 0x31, 0x79, 0x26, 0x3f, 0x21, 0x40, 0x66, + 0x41, 0xe9, 0x6e, 0xa2, 0xdf, 0x11, 0x60, 0xda, 0x7e, 0x32, 0xef, 0xe8, 0x60, 0xad, 0xef, 0x9d, + 0xeb, 0x57, 0xc2, 0xb4, 0xe9, 0x2f, 0xd3, 0x51, 0xf6, 0x62, 0x22, 0xd1, 0x97, 0xfc, 0xb3, 0x69, + 0x9d, 0x45, 0xe1, 0xa6, 0xa0, 0x1d, 0xb2, 0xd2, 0xdd, 0x2c, 0x31, 0xf4, 0xc6, 0x32, 0xad, 0xfe, + 0x96, 0x0b, 0xdd, 0x4f, 0x33, 0xd0, 0xdd, 0x36, 0x2e, 0x19, 0xc9, 0x23, 0xf8, 0x64, 0xce, 0xe2, + 0x9e, 0x2a, 0x93, 0x97, 0xeb, 0xef, 0x15, 0x20, 0xd7, 0xc4, 0xe6, 0x59, 0xbc, 0x83, 0x9a, 0x7b, + 0x87, 0x8f, 0x1e, 0x64, 0x0b, 0xee, 0x41, 0x36, 0x7a, 0x20, 0x1d, 0xad, 0xc3, 0x38, 0x84, 0x95, + 0x6c, 0xa2, 0x62, 0xc1, 0x28, 0x4a, 0xf7, 0x0a, 0xaf, 0x3f, 0x79, 0x70, 0xee, 0x17, 0x40, 0x28, + 0x77, 0x3a, 0x68, 0x7b, 0xef, 0x60, 0xdc, 0x00, 0x05, 0x9d, 0xb6, 0xc6, 0xbd, 0xc4, 0x19, 0xd0, + 0x0f, 0xa1, 0x9f, 0x25, 0x37, 0x61, 0xd4, 0x87, 0x0b, 0x1e, 0xbf, 0xca, 0x9d, 0xce, 0xa4, 0x1f, + 0x2e, 0x84, 0x55, 0x3e, 0x81, 0x7b, 0x37, 0x01, 0xa0, 0xe1, 0xd9, 0x03, 0xba, 0x47, 0xb0, 0xaf, + 0xe1, 0x16, 0x79, 0x81, 0xbb, 0x12, 0xa6, 0x3d, 0x73, 0x42, 0xcb, 0xba, 0xea, 0x0c, 0x75, 0x4c, + 0x24, 0xfa, 0x6a, 0xc4, 0xad, 0xb6, 0x47, 0x91, 0x73, 0x6c, 0xbe, 0x67, 0x44, 0x9e, 0x8a, 0xb0, + 0x02, 0x08, 0xad, 0x3e, 0x1a, 0x26, 0x8d, 0xe8, 0x98, 0x88, 0x2f, 0x85, 0xcb, 0x9c, 0x14, 0x8d, + 0xd9, 0x3b, 0xab, 0x95, 0xd6, 0x4a, 0xeb, 0xae, 0xa5, 0xea, 0xca, 0xb2, 0xb4, 0x50, 0x14, 0xd0, + 0x87, 0xf2, 0x50, 0x98, 0xd5, 0xb4, 0x4d, 0xf2, 0xdc, 0xfc, 0xdd, 0x02, 0x64, 0xe7, 0xb1, 0xd9, + 0xde, 0x88, 0x69, 0xd8, 0xeb, 0xbb, 0x00, 0x12, 0x25, 0x81, 0xa8, 0x27, 0x24, 0x0e, 0x5d, 0x25, + 0x42, 0xd3, 0xc4, 0x4f, 0x48, 0x42, 0xab, 0x4f, 0xbe, 0x2b, 0xfd, 0x58, 0x80, 0x43, 0x15, 0x1d, + 0xcb, 0x26, 0x2e, 0x77, 0x3b, 0x36, 0x2a, 0xbf, 0x18, 0x8b, 0xb9, 0x97, 0x3d, 0x98, 0xcd, 0xdb, + 0xad, 0xf8, 0xf1, 0xcd, 0x68, 0xcf, 0xdf, 0x3d, 0xa6, 0xb2, 0x4d, 0x4b, 0xf8, 0x9d, 0x40, 0x84, + 0x87, 0xf1, 0x9c, 0x14, 0x26, 0x8f, 0xff, 0x73, 0x19, 0x7a, 0x0c, 0xf3, 0xed, 0x0c, 0x1c, 0x76, + 0x69, 0xa1, 0x0a, 0x3e, 0x7f, 0x7b, 0xd1, 0x49, 0x02, 0xab, 0x8a, 0x9b, 0x1d, 0x50, 0xc5, 0x15, + 0x67, 0x6d, 0x75, 0x22, 0x62, 0x37, 0x2e, 0xc7, 0xf1, 0xa0, 0x97, 0x9c, 0xb4, 0x58, 0xa9, 0x25, + 0x37, 0x1f, 0xab, 0x0d, 0xbf, 0xc0, 0xca, 0xda, 0xb0, 0x65, 0x0b, 0x29, 0x63, 0x80, 0x73, 0x09, + 0x0b, 0xda, 0xe7, 0x5c, 0x41, 0x6b, 0x30, 0x82, 0xf6, 0x86, 0xf1, 0xc8, 0x9b, 0x80, 0xb5, 0x8c, + 0x5b, 0xa1, 0x30, 0x27, 0x9b, 0xf2, 0xb6, 0x82, 0x2f, 0xa0, 0xef, 0x09, 0x00, 0xe7, 0x14, 0x7c, + 0xc1, 0x26, 0x2a, 0xc2, 0x3b, 0xee, 0x60, 0xf6, 0xdd, 0x0e, 0x19, 0xab, 0x68, 0x7a, 0x3b, 0x75, + 0x4d, 0xf8, 0x23, 0x6e, 0x4a, 0x47, 0xc9, 0xa2, 0x41, 0x22, 0xf9, 0x58, 0xc5, 0x4d, 0x8e, 0xab, + 0x5e, 0xa6, 0x0c, 0xbb, 0x1d, 0x71, 0x4c, 0x1c, 0xe2, 0x51, 0xc8, 0x59, 0xc5, 0xba, 0x9b, 0x2f, + 0x1a, 0x8a, 0x74, 0x61, 0x3c, 0x9a, 0xb6, 0xe4, 0xf1, 0x76, 0x20, 0xb6, 0x9f, 0xdc, 0x45, 0xd0, + 0xc7, 0x0e, 0x86, 0x38, 0x80, 0x35, 0x7b, 0x86, 0xfe, 0x91, 0xbd, 0x40, 0x6f, 0xb7, 0x2f, 0x96, + 0x35, 0xc3, 0xd8, 0x10, 0x0f, 0xa5, 0x21, 0x79, 0x88, 0xef, 0xa1, 0x10, 0xcf, 0x61, 0x15, 0x9b, + 0x98, 0xdf, 0xf6, 0x0d, 0x0f, 0xc2, 0x19, 0x46, 0xf8, 0xf7, 0x84, 0x90, 0x4d, 0xde, 0xfe, 0x22, + 0x34, 0x94, 0x86, 0xe4, 0x11, 0xfa, 0x9a, 0x00, 0x87, 0xad, 0xea, 0x9b, 0xde, 0xeb, 0x10, 0x7e, + 0xeb, 0x37, 0x91, 0x61, 0x22, 0xe6, 0xaa, 0xfd, 0xa6, 0x1b, 0xa7, 0x7d, 0x46, 0xfa, 0x9e, 0xf0, + 0x43, 0xb8, 0xc4, 0x42, 0x38, 0x92, 0x7d, 0x3e, 0xfa, 0x63, 0xc1, 0xf1, 0xf3, 0x2e, 0x8e, 0x4d, + 0x06, 0xc7, 0x3b, 0xc6, 0x27, 0x24, 0x79, 0x30, 0xbf, 0x29, 0xc0, 0x34, 0xa5, 0xa1, 0xdc, 0x36, + 0x95, 0x6d, 0x8c, 0xde, 0x95, 0xe0, 0xa0, 0x7a, 0x14, 0x72, 0xda, 0xda, 0x9a, 0x41, 0x9f, 0x0e, + 0x4d, 0x4b, 0x34, 0x24, 0x1e, 0x81, 0xac, 0xaa, 0x6c, 0x29, 0x26, 0x05, 0xd8, 0x0e, 0x44, 0x3e, + 0x13, 0x1c, 0x64, 0xaa, 0xdd, 0xa0, 0x89, 0x9f, 0x09, 0x72, 0x91, 0x91, 0x3c, 0xb2, 0x0f, 0x10, + 0x7d, 0xc5, 0xb6, 0xa6, 0x77, 0xe8, 0x6c, 0xf9, 0xbe, 0x54, 0x2c, 0x7a, 0xf5, 0x3a, 0x29, 0xd3, + 0x85, 0xd6, 0x0d, 0x8b, 0x27, 0x21, 0x67, 0xff, 0xa7, 0x73, 0x66, 0xb0, 0x7e, 0xb1, 0x9d, 0x0c, + 0xbd, 0xc7, 0x8f, 0xef, 0x22, 0x8b, 0xef, 0xeb, 0xc3, 0x18, 0xeb, 0x6f, 0x56, 0xc0, 0xf9, 0xfb, + 0x83, 0x2e, 0x60, 0x4b, 0x0c, 0x60, 0xb7, 0x8e, 0x59, 0xee, 0x44, 0x1e, 0x10, 0x51, 0xbc, 0xe8, + 0xd4, 0xf7, 0xff, 0x27, 0x0a, 0x17, 0xfa, 0xc2, 0xde, 0xb8, 0x1f, 0xe3, 0x04, 0xb8, 0x07, 0xac, + 0xf6, 0x69, 0x0a, 0x7c, 0xd6, 0xc5, 0x8a, 0x6e, 0x36, 0x3e, 0x90, 0x8a, 0x45, 0x3f, 0x9f, 0xf6, + 0x1f, 0x81, 0xab, 0xff, 0x88, 0xc7, 0x00, 0x4c, 0xbc, 0xd5, 0x53, 0x65, 0x13, 0xbb, 0xb3, 0xa6, + 0x2f, 0x06, 0xfd, 0xfb, 0xbd, 0x21, 0x1c, 0xba, 0xff, 0xf0, 0x88, 0x4d, 0xf3, 0x75, 0xf6, 0x3d, + 0x80, 0xbc, 0x4f, 0x9b, 0x8d, 0x0f, 0x66, 0xe0, 0x80, 0x73, 0x1c, 0xbd, 0x9f, 0xe7, 0xf7, 0xef, + 0x13, 0xa2, 0x1d, 0x1c, 0xf8, 0xb8, 0xe7, 0x12, 0x1f, 0xcb, 0x2e, 0xf2, 0x0a, 0x38, 0xe0, 0x10, + 0x75, 0xd6, 0xbd, 0x12, 0xf2, 0x47, 0x31, 0xed, 0xcb, 0xf0, 0xb6, 0x2f, 0xca, 0xa9, 0x03, 0x47, + 0xdb, 0x92, 0x17, 0x8c, 0x17, 0x04, 0x38, 0xe4, 0xd4, 0x4f, 0xe7, 0xd6, 0x0f, 0xc7, 0xd0, 0xff, + 0x13, 0x62, 0x6f, 0x44, 0x13, 0x9f, 0xbb, 0x59, 0x1c, 0xe3, 0x66, 0x34, 0xca, 0x49, 0x26, 0x1f, + 0x1d, 0xc9, 0xa3, 0xfd, 0x88, 0x0f, 0x6d, 0x3a, 0x33, 0xb7, 0x27, 0x00, 0xf6, 0xde, 0x71, 0xe3, + 0x9b, 0xa1, 0x85, 0xc4, 0x71, 0xdb, 0xa7, 0x39, 0xfa, 0x3b, 0x19, 0xb8, 0xcc, 0x9e, 0x3f, 0x1c, + 0x42, 0x1a, 0x3d, 0x67, 0x28, 0x7f, 0x74, 0x22, 0xdd, 0xf5, 0x75, 0x90, 0xd3, 0x7a, 0xbe, 0xce, + 0x7a, 0x2c, 0xa0, 0xb3, 0x96, 0x6c, 0xc2, 0x24, 0x9a, 0x9a, 0x59, 0xb5, 0x65, 0x07, 0x56, 0x6d, + 0x8c, 0x51, 0x88, 0x37, 0xb1, 0x52, 0x31, 0x3b, 0x7a, 0x2a, 0xdd, 0xc5, 0x8a, 0x58, 0x26, 0x06, + 0xaf, 0xa1, 0x42, 0x94, 0x86, 0xa2, 0x2f, 0xba, 0x62, 0xf5, 0x66, 0x46, 0xac, 0x4e, 0xef, 0xbd, + 0x21, 0x13, 0xb8, 0x2c, 0xce, 0x00, 0x1a, 0x46, 0x0b, 0x9d, 0x11, 0x7e, 0x72, 0x45, 0xec, 0x4f, + 0xfc, 0x03, 0xcf, 0x9b, 0x59, 0x11, 0xab, 0x46, 0x45, 0x26, 0xc6, 0xc9, 0xe3, 0x71, 0x57, 0x5a, + 0xfe, 0x19, 0x23, 0x2d, 0x77, 0xc6, 0x42, 0xd3, 0x04, 0x34, 0x93, 0x03, 0x04, 0x86, 0x4e, 0x2a, + 0x1f, 0x9b, 0x88, 0xc0, 0x20, 0x28, 0xd8, 0x22, 0xe0, 0xee, 0x18, 0xdc, 0xf0, 0xe4, 0x84, 0x22, + 0xc6, 0xbd, 0x63, 0x6c, 0x42, 0xb1, 0x4f, 0xb3, 0xd4, 0xef, 0x0b, 0xf0, 0x62, 0x87, 0x90, 0x05, + 0xc5, 0x30, 0xcb, 0xdb, 0xb2, 0xa2, 0xca, 0xab, 0x2a, 0x8e, 0xe3, 0xa5, 0xfd, 0xff, 0xf4, 0x83, + 0x76, 0x8e, 0x05, 0xed, 0x8d, 0x3c, 0x53, 0x37, 0x43, 0x51, 0x00, 0x5e, 0x37, 0xc2, 0x94, 0x23, + 0x60, 0xce, 0x13, 0xe4, 0xc0, 0x55, 0xa9, 0x97, 0x12, 0xfd, 0x17, 0x17, 0xb8, 0xbb, 0x18, 0xe0, + 0xaa, 0x7b, 0xa5, 0x2b, 0x1a, 0x66, 0x0b, 0x63, 0xa8, 0xa4, 0xcc, 0xc0, 0x91, 0x7a, 0xa3, 0xb5, + 0x52, 0x5e, 0x99, 0x2b, 0xb7, 0xca, 0xe7, 0x6a, 0xd5, 0xf3, 0x2b, 0xb3, 0x0b, 0x8d, 0xca, 0xd9, + 0xa2, 0x80, 0xfe, 0x9d, 0x00, 0x53, 0x4d, 0x6c, 0x36, 0xb5, 0xbe, 0xde, 0x8e, 0xeb, 0xee, 0xc2, + 0x20, 0x85, 0x51, 0xd7, 0x36, 0x34, 0x14, 0xd5, 0xa8, 0xb0, 0xc7, 0x41, 0x97, 0xba, 0x51, 0xbd, + 0x2f, 0x13, 0xb3, 0x51, 0xe1, 0xd1, 0x24, 0x24, 0xdf, 0xd9, 0xee, 0x15, 0x40, 0x38, 0x8d, 0x4d, + 0xf4, 0x51, 0x01, 0xb2, 0xe4, 0x1d, 0x61, 0x4c, 0x86, 0x4d, 0x79, 0x4d, 0x66, 0xa2, 0x4f, 0xfa, + 0x61, 0x2b, 0xb3, 0xb0, 0x0d, 0x33, 0x31, 0x77, 0x1a, 0xd3, 0x07, 0x8f, 0xb1, 0x8c, 0x95, 0x9f, + 0x72, 0xd1, 0x9a, 0x63, 0xd0, 0xba, 0x2e, 0x42, 0xcd, 0xc9, 0x83, 0x74, 0x33, 0x1c, 0x5e, 0xee, + 0x76, 0x34, 0x09, 0x77, 0xb4, 0x8a, 0xd6, 0xef, 0x9a, 0x98, 0x18, 0xc0, 0xe9, 0x77, 0x3b, 0x1a, + 0x21, 0x37, 0x2b, 0x91, 0xff, 0x56, 0x9c, 0x8e, 0x3b, 0x1a, 0xa9, 0x35, 0x2b, 0x91, 0xff, 0xe8, + 0x63, 0x02, 0x64, 0xac, 0xbc, 0xe8, 0x55, 0x9c, 0xb0, 0xa2, 0xff, 0x1e, 0xd1, 0x44, 0xa1, 0x55, + 0x7a, 0x2c, 0x4b, 0xe6, 0xdb, 0xa1, 0xd0, 0xb6, 0x5b, 0xe7, 0x3c, 0xfa, 0x3f, 0x1e, 0x50, 0x9d, + 0x8f, 0x11, 0x92, 0x9b, 0xc7, 0x77, 0x21, 0x31, 0xda, 0x50, 0xe1, 0x10, 0xa2, 0xa3, 0xc1, 0x38, + 0x37, 0xc6, 0x20, 0x59, 0x84, 0x83, 0x95, 0x72, 0x7d, 0xc5, 0x1a, 0x28, 0x17, 0x1b, 0xe7, 0xaa, + 0x45, 0x81, 0xa0, 0x63, 0x35, 0x26, 0x39, 0x74, 0xac, 0xd2, 0x7f, 0xe2, 0xd0, 0x19, 0x42, 0xf4, + 0x7e, 0xa0, 0x73, 0xbf, 0x00, 0x99, 0x46, 0x0f, 0x77, 0x63, 0x7a, 0xcf, 0x68, 0xea, 0x72, 0x1b, + 0xbb, 0xb7, 0x0e, 0x4e, 0x10, 0xfd, 0x6e, 0x44, 0x44, 0x2d, 0x8a, 0x62, 0x19, 0xfb, 0xbe, 0x1a, + 0x01, 0x91, 0x21, 0x95, 0x46, 0x43, 0xe4, 0x67, 0xc6, 0x40, 0x64, 0x1a, 0xa6, 0x2c, 0x34, 0xe6, + 0x1b, 0xcb, 0xf5, 0xb9, 0xa2, 0x20, 0xbe, 0x04, 0x5e, 0x5c, 0xae, 0xdf, 0x45, 0x54, 0x5d, 0xeb, + 0xd5, 0xea, 0x5c, 0x73, 0x65, 0x79, 0xe9, 0xb4, 0x54, 0x9e, 0xab, 0x16, 0x81, 0x20, 0xd5, 0xdc, + 0xd0, 0x2e, 0x5c, 0x5c, 0x48, 0x59, 0x14, 0x4d, 0x1c, 0xa9, 0x21, 0x95, 0x5e, 0x4c, 0x48, 0x7d, + 0x2d, 0x0d, 0x87, 0x4f, 0x63, 0x73, 0xa9, 0xbf, 0xaa, 0x2a, 0xed, 0xf3, 0x78, 0x75, 0x59, 0x5a, + 0x40, 0xaf, 0xf4, 0x40, 0x0b, 0x74, 0xfa, 0x82, 0xde, 0x1f, 0xf1, 0x89, 0xc5, 0x40, 0x25, 0x01, + 0x38, 0x50, 0xad, 0xc7, 0xb4, 0xa7, 0xff, 0x1a, 0xe5, 0x19, 0x45, 0x78, 0x1d, 0xc9, 0xaf, 0x0b, + 0x3e, 0x2e, 0xc0, 0x61, 0xab, 0x67, 0xce, 0xea, 0x58, 0xee, 0xb4, 0xf5, 0xfe, 0xd6, 0xaa, 0x11, + 0x69, 0x8f, 0xe4, 0xc8, 0x79, 0x9a, 0x95, 0xf3, 0xaf, 0x44, 0x64, 0xf5, 0x00, 0x09, 0x09, 0x6b, + 0x64, 0x46, 0x01, 0x28, 0x9c, 0xb2, 0xe4, 0x01, 0x7a, 0xbb, 0x00, 0x87, 0x9a, 0xd8, 0x0c, 0xc0, + 0xe7, 0x4a, 0x98, 0x5e, 0xf5, 0xbe, 0xb8, 0x18, 0xb1, 0x91, 0x96, 0x88, 0x2a, 0xae, 0x31, 0x4a, + 0xeb, 0xef, 0x38, 0x86, 0x09, 0x46, 0xc3, 0x93, 0xa8, 0x61, 0x82, 0xfd, 0xc4, 0xe0, 0xaf, 0x05, + 0xc8, 0xd1, 0x2b, 0xe9, 0xcf, 0xc4, 0xa2, 0x64, 0x1d, 0xc1, 0x6d, 0xc3, 0x5e, 0xbc, 0xad, 0x3e, + 0x12, 0xd1, 0x02, 0x63, 0xe8, 0xdd, 0x74, 0x5c, 0x9d, 0x2f, 0x8a, 0x6d, 0xc6, 0x7d, 0xba, 0xa3, + 0xfe, 0xeb, 0x0c, 0x80, 0x5d, 0x35, 0x31, 0x66, 0xf5, 0x0e, 0x6e, 0x17, 0x10, 0x63, 0xf8, 0x59, + 0x66, 0xd5, 0x0d, 0xb2, 0x83, 0xea, 0x06, 0xdc, 0xba, 0xfa, 0xd1, 0x44, 0xc3, 0x67, 0xb6, 0x30, + 0xc7, 0x67, 0xb6, 0xf0, 0x5b, 0x11, 0xcd, 0x16, 0x7a, 0xfc, 0x8b, 0x2c, 0x4f, 0xfe, 0x26, 0x0b, + 0x03, 0x4d, 0x8e, 0x76, 0x92, 0x12, 0xc5, 0xd8, 0x61, 0x20, 0xc1, 0xc9, 0xcb, 0xdb, 0x7f, 0xce, + 0xc0, 0x94, 0x5d, 0x7d, 0x13, 0x9b, 0xe8, 0xe9, 0x58, 0x86, 0x98, 0x80, 0x33, 0x2e, 0xbf, 0x88, + 0x66, 0x38, 0x45, 0x74, 0x0f, 0x6e, 0xbe, 0x7f, 0x18, 0xf1, 0x68, 0xc6, 0xe5, 0xc2, 0x3e, 0x0a, + 0xcd, 0x97, 0x23, 0x1c, 0xe8, 0x04, 0xd1, 0xbb, 0xcf, 0x2f, 0xf8, 0x5e, 0x48, 0x43, 0x6e, 0xb9, + 0xab, 0x2a, 0xdd, 0x4d, 0x54, 0x89, 0xc1, 0xc9, 0x57, 0x74, 0x53, 0xbe, 0xa4, 0xee, 0xc9, 0x9b, + 0xf2, 0x1d, 0x56, 0xed, 0x04, 0x4c, 0x4e, 0xa5, 0x21, 0x5b, 0x51, 0x35, 0x23, 0x96, 0xdb, 0x85, + 0x17, 0x52, 0xd1, 0xfc, 0x13, 0x90, 0x8a, 0x03, 0xd4, 0x35, 0xa3, 0xf8, 0x00, 0x18, 0x56, 0x4e, + 0xf2, 0xac, 0xfb, 0xf3, 0x83, 0x30, 0x75, 0x5e, 0xd3, 0x37, 0x8d, 0x9e, 0xdc, 0xc6, 0xe8, 0x0b, + 0x69, 0x80, 0xd3, 0xd8, 0xac, 0xf4, 0x75, 0xdd, 0x82, 0x7e, 0xca, 0xe5, 0x26, 0x6b, 0xdd, 0x38, + 0x74, 0xbd, 0xea, 0x96, 0x56, 0xf2, 0x4a, 0x0a, 0xb6, 0xd5, 0x7e, 0xc1, 0x49, 0xed, 0x02, 0xe1, + 0x8f, 0xe2, 0x5c, 0xa3, 0x72, 0x54, 0x99, 0x3c, 0x27, 0x1f, 0x4c, 0x43, 0xee, 0x34, 0x36, 0xcb, + 0xaa, 0xea, 0xe7, 0xdb, 0x47, 0xb8, 0x67, 0x6d, 0xa6, 0x11, 0x65, 0x55, 0x0d, 0xe0, 0xd9, 0x71, + 0x38, 0xe8, 0x63, 0x90, 0x33, 0x52, 0x30, 0x71, 0x9c, 0xb3, 0xee, 0x88, 0x0a, 0x93, 0xe7, 0xd8, + 0xef, 0xa6, 0xdd, 0x55, 0xfd, 0xcb, 0xbc, 0x7e, 0x3b, 0xc4, 0xcb, 0x08, 0xfa, 0xd0, 0x18, 0x5c, + 0x0c, 0x5d, 0x4b, 0x8f, 0x96, 0xbc, 0xa8, 0x3c, 0xdc, 0xa7, 0x95, 0xf2, 0x0b, 0x69, 0x28, 0x36, + 0xb1, 0x59, 0x33, 0xce, 0x28, 0xeb, 0x1b, 0xaa, 0xb2, 0xbe, 0x61, 0xe2, 0x0e, 0x3a, 0xeb, 0x71, + 0x13, 0x41, 0xc1, 0x7e, 0xa6, 0xef, 0x0e, 0x82, 0x6e, 0xd8, 0x76, 0x54, 0xe3, 0xcb, 0x47, 0x68, + 0x22, 0x8e, 0x6a, 0xfc, 0x85, 0xfd, 0x02, 0xf7, 0x03, 0x4f, 0x8f, 0x19, 0x83, 0x14, 0x05, 0x0c, + 0x8f, 0x7c, 0x2a, 0x92, 0xdc, 0xc5, 0x4e, 0xe0, 0xf1, 0x41, 0x1a, 0x72, 0x4d, 0xe2, 0xa3, 0x04, + 0xfd, 0x94, 0xc7, 0xe3, 0x01, 0x61, 0x4a, 0xed, 0x16, 0xa6, 0xff, 0x9d, 0x8a, 0x2e, 0xbf, 0x76, + 0x3d, 0x01, 0x9c, 0x8b, 0x2a, 0x9d, 0x43, 0x0b, 0x9b, 0x80, 0x01, 0x97, 0x02, 0xe4, 0xce, 0xcb, + 0xaa, 0x8a, 0x4d, 0xf4, 0x5d, 0xaf, 0xb3, 0x5f, 0xc5, 0x88, 0xa7, 0xae, 0x69, 0xb6, 0x83, 0x10, + 0x2a, 0x9e, 0x4e, 0x18, 0x7d, 0x96, 0xdb, 0xd3, 0xa5, 0x5d, 0x45, 0x78, 0x8f, 0x47, 0x50, 0xd8, + 0xea, 0xe2, 0x2d, 0xad, 0xab, 0xb4, 0x9d, 0xa5, 0xba, 0x13, 0x46, 0xbf, 0xc7, 0xe5, 0xbd, 0x32, + 0xac, 0x96, 0x68, 0xac, 0x6c, 0x8e, 0xb1, 0xdc, 0x7c, 0x39, 0xbc, 0x74, 0xbe, 0x5c, 0x5b, 0xa8, + 0xce, 0xad, 0xb4, 0x1a, 0x2b, 0x15, 0xa9, 0x5a, 0x6e, 0x55, 0x57, 0x16, 0x1a, 0x95, 0xf2, 0xc2, + 0x8a, 0x54, 0x5d, 0x6a, 0x14, 0x31, 0xfa, 0x0b, 0xb2, 0x49, 0x6e, 0x6b, 0xdb, 0x58, 0xf7, 0x2f, + 0x83, 0x42, 0x38, 0x1c, 0xca, 0x93, 0x0f, 0x70, 0xbb, 0x33, 0xa0, 0x7c, 0xa1, 0x75, 0x07, 0x08, + 0xec, 0x7f, 0xe4, 0x72, 0x50, 0x10, 0x5a, 0xd4, 0x45, 0xc0, 0xe3, 0x1f, 0xa6, 0x21, 0x5f, 0xd1, + 0xba, 0xdb, 0x58, 0x37, 0xd1, 0x1d, 0x0c, 0x8f, 0x5d, 0x3e, 0xa6, 0x58, 0x3e, 0x5a, 0x0b, 0x4d, + 0xdc, 0x35, 0x75, 0xad, 0xb7, 0xe3, 0x2c, 0x34, 0x69, 0x90, 0x35, 0x60, 0xc3, 0xc3, 0x61, 0x5a, + 0x73, 0xf0, 0xce, 0x6c, 0x78, 0x45, 0x0c, 0x79, 0xc2, 0x00, 0xcc, 0xf7, 0x46, 0xc1, 0x65, 0x38, + 0x01, 0x13, 0xb0, 0xba, 0xf0, 0x22, 0xc8, 0x97, 0xdb, 0xe4, 0x1a, 0x12, 0x3d, 0x9f, 0x82, 0x5c, + 0x45, 0xeb, 0xae, 0x29, 0xeb, 0xe2, 0x09, 0x38, 0x84, 0xbb, 0xf2, 0xaa, 0x8a, 0x1d, 0x1d, 0x0c, + 0x42, 0x7b, 0x41, 0x1a, 0x88, 0xb5, 0x88, 0xa2, 0x31, 0x78, 0xb5, 0xbf, 0x4e, 0x67, 0x39, 0x7f, + 0x94, 0x78, 0x3b, 0x20, 0x3b, 0x28, 0x61, 0x15, 0xcb, 0x06, 0xae, 0x6c, 0xc8, 0xdd, 0x2e, 0x56, + 0x9b, 0x17, 0x14, 0xb3, 0xbd, 0x41, 0x8d, 0x97, 0x86, 0xa4, 0xb0, 0x16, 0x65, 0xf6, 0xd7, 0xa6, + 0x35, 0xda, 0x1a, 0xd4, 0x83, 0x18, 0x13, 0x27, 0xbe, 0x06, 0xb2, 0xf8, 0x6e, 0x53, 0x97, 0x67, + 0x3a, 0xe1, 0xbb, 0x7e, 0x3b, 0x15, 0xba, 0x37, 0xeb, 0x8e, 0x97, 0xff, 0x22, 0x74, 0x71, 0x24, + 0x5e, 0x03, 0x87, 0xe5, 0x6d, 0xd9, 0x94, 0xf5, 0x05, 0xd7, 0xd2, 0x03, 0xe1, 0xfb, 0x99, 0x4b, + 0xa4, 0xc1, 0x0f, 0xe2, 0xd5, 0x70, 0x58, 0x56, 0x7b, 0x1b, 0x72, 0xad, 0xbb, 0xad, 0x98, 0xd8, + 0x02, 0x62, 0xe6, 0x08, 0x29, 0x6a, 0x30, 0x7a, 0xb6, 0x00, 0x39, 0x3b, 0x33, 0xfa, 0x70, 0x86, + 0x57, 0x4e, 0x29, 0x46, 0xe1, 0x03, 0xf1, 0x75, 0x90, 0x97, 0xed, 0x74, 0xbb, 0xf6, 0x9f, 0xf6, + 0x59, 0x06, 0x2d, 0x45, 0x72, 0x92, 0x89, 0x37, 0x40, 0xae, 0x4d, 0x10, 0xa7, 0x67, 0x7a, 0x2f, + 0x1d, 0x5e, 0x29, 0x49, 0x22, 0xd1, 0xa4, 0xc4, 0xc4, 0xde, 0x68, 0xc1, 0x0e, 0xa5, 0x38, 0x9a, + 0x60, 0xff, 0x20, 0x35, 0xc6, 0x88, 0x73, 0x2d, 0x5c, 0x5d, 0xae, 0x54, 0x1a, 0xcb, 0xf5, 0x16, + 0x1d, 0x6f, 0xe6, 0x56, 0x66, 0x97, 0x5b, 0x2b, 0xde, 0x28, 0xd4, 0x6c, 0x95, 0xa5, 0xd6, 0x4a, + 0xbd, 0x31, 0x57, 0x2d, 0x5a, 0x48, 0x9f, 0x18, 0x91, 0xba, 0xda, 0x5a, 0xa9, 0x97, 0x17, 0xab, + 0xc5, 0x35, 0x8e, 0x92, 0xab, 0xad, 0x95, 0xf2, 0xb9, 0x72, 0xab, 0x2c, 0x15, 0xd7, 0xd9, 0x91, + 0xaf, 0xd9, 0x6a, 0x2c, 0xad, 0x48, 0xcb, 0xf5, 0x7a, 0xad, 0x7e, 0xda, 0xae, 0x7a, 0x43, 0x3c, + 0x02, 0x87, 0x6d, 0xba, 0xcf, 0xd5, 0x5a, 0xd5, 0x95, 0x8a, 0x15, 0xf9, 0xb3, 0x79, 0xf4, 0xde, + 0x8c, 0x37, 0xe7, 0xf8, 0x36, 0x3d, 0x7f, 0x27, 0xf0, 0x1e, 0x3a, 0x39, 0xfc, 0x0f, 0x9f, 0x3c, + 0x7e, 0x5d, 0xe0, 0x39, 0x10, 0x0a, 0x2f, 0x2b, 0x1a, 0x98, 0x0f, 0xa7, 0xc7, 0x00, 0xf3, 0xc5, + 0x70, 0x69, 0xbd, 0xb1, 0x42, 0xb9, 0xde, 0xa4, 0x37, 0xa9, 0x56, 0x6d, 0x97, 0xd7, 0xab, 0x36, + 0x67, 0xa5, 0x6a, 0xa5, 0x71, 0xae, 0x2a, 0xad, 0x9c, 0x2f, 0x2f, 0x2c, 0x54, 0x5b, 0x2b, 0xf3, + 0x35, 0xa9, 0xd9, 0x2a, 0xae, 0x8d, 0x9a, 0x77, 0xd6, 0xc5, 0x57, 0xc2, 0xcb, 0xbd, 0xf0, 0x4a, + 0xf5, 0x4d, 0xb5, 0x66, 0xab, 0x49, 0xe0, 0xac, 0x34, 0x24, 0x69, 0x79, 0xa9, 0x55, 0x9d, 0x2b, + 0x6e, 0x88, 0x47, 0x41, 0xf4, 0x4a, 0x91, 0x96, 0xeb, 0x36, 0x74, 0x8a, 0x55, 0x3f, 0xad, 0xcf, + 0xa9, 0xbe, 0xde, 0x68, 0xad, 0x2c, 0x55, 0xa5, 0xf9, 0x86, 0xb4, 0x58, 0x9d, 0x2b, 0xbe, 0x65, + 0x14, 0xfa, 0x9b, 0xe2, 0x09, 0x38, 0x5e, 0xae, 0x37, 0x5a, 0x67, 0xaa, 0xd2, 0x8a, 0x73, 0x29, + 0xbc, 0x24, 0x35, 0x2a, 0xd5, 0x66, 0x73, 0xa5, 0xd6, 0x74, 0x12, 0x17, 0x55, 0xf4, 0x78, 0xd6, + 0x5d, 0x1f, 0xdf, 0xe8, 0x0d, 0x5a, 0x87, 0x20, 0xad, 0x38, 0xcb, 0xe2, 0xb4, 0xd2, 0x61, 0x96, + 0x24, 0xe9, 0x81, 0x45, 0xdf, 0x3f, 0x46, 0x1e, 0x6c, 0xc2, 0xd6, 0xc9, 0x93, 0x1a, 0x6c, 0x9e, + 0x12, 0xa2, 0x0c, 0x36, 0x31, 0x2c, 0xc6, 0xff, 0x38, 0x9d, 0xc0, 0xf2, 0x86, 0x47, 0xcc, 0xd6, + 0x02, 0xc4, 0x6c, 0x60, 0x08, 0x99, 0xaf, 0xd5, 0xe7, 0x9c, 0x9e, 0xb0, 0x52, 0xab, 0xcf, 0x37, + 0x8a, 0x1b, 0x62, 0x09, 0xae, 0xf1, 0x95, 0x6e, 0xc9, 0x20, 0xad, 0xa1, 0x5c, 0x9f, 0x5b, 0x59, + 0xac, 0x57, 0x17, 0x1b, 0xf5, 0x5a, 0x85, 0xc4, 0x37, 0xab, 0x2d, 0x5b, 0x6e, 0x07, 0xa4, 0xb2, + 0x59, 0x2d, 0x4b, 0x95, 0x33, 0x44, 0x80, 0xe7, 0xaa, 0xc5, 0xb7, 0x88, 0xaf, 0x82, 0x57, 0xfa, + 0x48, 0xa1, 0xc2, 0xbd, 0x24, 0x55, 0xe7, 0xaa, 0xf3, 0xb5, 0xba, 0x35, 0xe0, 0x2d, 0x34, 0x2a, + 0x67, 0x9b, 0x11, 0xe4, 0xf7, 0x1f, 0xd2, 0x90, 0x69, 0x9a, 0x5a, 0x0f, 0xbd, 0xda, 0x93, 0xde, + 0x63, 0x00, 0x3a, 0xde, 0xd2, 0xb6, 0xc9, 0x7a, 0x82, 0xae, 0x30, 0x7c, 0x31, 0xe8, 0x3f, 0x71, + 0x1f, 0xcd, 0xba, 0xf8, 0x9b, 0x5a, 0x2f, 0x60, 0xa4, 0xfb, 0x11, 0xd7, 0x61, 0x6b, 0x48, 0x41, + 0xd1, 0xc4, 0xe8, 0xdd, 0xe3, 0xcc, 0x59, 0x08, 0x8e, 0xba, 0xc8, 0x36, 0x09, 0x5e, 0x0e, 0x03, + 0xb1, 0x78, 0x19, 0xbc, 0x68, 0x00, 0x33, 0x02, 0xd5, 0x9a, 0xf8, 0x0a, 0x78, 0x99, 0x1f, 0xaa, + 0xc5, 0xc6, 0xb9, 0xaa, 0x2b, 0x1f, 0x73, 0xe5, 0x56, 0xb9, 0xb8, 0x8e, 0x9e, 0x10, 0x40, 0x58, + 0xd0, 0xd6, 0xd1, 0xa3, 0x02, 0x64, 0x9a, 0xb8, 0xdb, 0x61, 0xae, 0x7a, 0x67, 0x20, 0xbf, 0x85, + 0x0d, 0x43, 0x5e, 0x77, 0xd6, 0x3e, 0x4e, 0x50, 0xbc, 0x19, 0xb2, 0x2a, 0xde, 0xc6, 0xb6, 0x02, + 0xc8, 0xa1, 0x53, 0xaf, 0x64, 0x38, 0xb5, 0xa0, 0xad, 0x97, 0xac, 0xb2, 0x5c, 0xd7, 0xb6, 0x0b, + 0x56, 0x52, 0xc9, 0xce, 0x71, 0xfc, 0x4e, 0xc8, 0x92, 0xb0, 0x38, 0x05, 0xd9, 0xb9, 0xea, 0xec, + 0xf2, 0xe9, 0xe2, 0x25, 0xd6, 0x5f, 0xa7, 0xdd, 0x53, 0x90, 0x9d, 0x2f, 0xb7, 0xca, 0x0b, 0xc5, + 0xb4, 0xc5, 0x1f, 0x22, 0xc5, 0x82, 0x15, 0xb9, 0x54, 0xae, 0xd7, 0x2a, 0xc5, 0x8c, 0x78, 0x00, + 0xf2, 0xe7, 0xcb, 0x12, 0x69, 0x79, 0x16, 0xbd, 0xdd, 0x2f, 0x06, 0xb7, 0xb0, 0x62, 0x70, 0x65, + 0x10, 0x4d, 0xc3, 0x44, 0xe0, 0x31, 0x57, 0x04, 0x6e, 0x63, 0x44, 0xe0, 0xd5, 0x3c, 0x85, 0x44, + 0x83, 0xbf, 0xbe, 0x57, 0x35, 0x21, 0x6c, 0xf1, 0xa0, 0x55, 0x5b, 0xac, 0x36, 0x96, 0x5b, 0xc5, + 0x35, 0xf4, 0x37, 0x69, 0xc8, 0x9f, 0xc3, 0xba, 0xa1, 0x68, 0x5d, 0xf4, 0x97, 0x69, 0x5b, 0x29, + 0xd9, 0xb7, 0x2c, 0x78, 0x86, 0xdb, 0xf3, 0x39, 0x2d, 0x84, 0xa8, 0xeb, 0x06, 0xee, 0x76, 0xb6, + 0xed, 0x44, 0xce, 0x6e, 0x87, 0x06, 0xad, 0x2f, 0xfe, 0x2b, 0xe0, 0x29, 0xcf, 0x25, 0xd8, 0x33, + 0x5c, 0xa7, 0xf1, 0xc1, 0x75, 0x47, 0x63, 0x6e, 0x67, 0x0c, 0xe6, 0x1e, 0x81, 0xe2, 0xb9, 0xaa, + 0xd4, 0xac, 0x35, 0xea, 0x56, 0xd7, 0xaa, 0x2e, 0x2e, 0xb5, 0xee, 0x2a, 0x0a, 0xa1, 0x2c, 0xff, + 0x84, 0xe3, 0x17, 0xe0, 0x43, 0x02, 0xe4, 0x1b, 0x6b, 0x6b, 0xc4, 0x10, 0x5d, 0x35, 0x78, 0xee, + 0xbd, 0x06, 0x8a, 0x4a, 0xb7, 0xad, 0xf6, 0x3b, 0xb8, 0xae, 0x99, 0x4b, 0x4a, 0xb7, 0xeb, 0x1e, + 0xfb, 0xed, 0x8a, 0x47, 0x4f, 0x72, 0x8f, 0x6c, 0xc4, 0x6a, 0x1a, 0xad, 0x3d, 0x00, 0xb0, 0x13, + 0x70, 0x68, 0x75, 0xc7, 0xc4, 0x06, 0x4d, 0x45, 0xab, 0xcd, 0x48, 0x03, 0xb1, 0xe8, 0x0f, 0xb9, + 0x46, 0xc0, 0x90, 0x0a, 0xa3, 0xa1, 0x24, 0x8f, 0x87, 0x92, 0x35, 0xaa, 0xd9, 0x53, 0x95, 0xb5, + 0x3e, 0xaf, 0xce, 0x15, 0xd7, 0xc9, 0xd0, 0x57, 0x5b, 0xb0, 0x63, 0xef, 0xaa, 0xb6, 0x56, 0x96, + 0x6a, 0xf5, 0xba, 0xb5, 0x2e, 0xb3, 0x16, 0x07, 0x05, 0x8b, 0xde, 0x05, 0xc5, 0x30, 0xd1, 0x63, + 0x3e, 0x98, 0x1a, 0xcc, 0xf0, 0xa6, 0x75, 0xd5, 0x9d, 0x5a, 0xc7, 0x98, 0x49, 0x91, 0x03, 0x7d, + 0x27, 0x18, 0x09, 0xb0, 0x3f, 0xe7, 0x3e, 0x26, 0x77, 0xe8, 0x19, 0x0d, 0xda, 0x9a, 0xa2, 0x0e, + 0x82, 0x96, 0x95, 0x06, 0x62, 0x87, 0x80, 0x2b, 0x0c, 0x05, 0xf7, 0x8b, 0x5c, 0xc7, 0x96, 0x23, + 0x88, 0x8b, 0x06, 0xf0, 0x99, 0xb8, 0x00, 0x46, 0xbf, 0x94, 0x86, 0x42, 0x73, 0xa3, 0x6f, 0x12, + 0x27, 0xc8, 0xbe, 0x61, 0xed, 0x1f, 0x53, 0xbc, 0x23, 0xbf, 0x93, 0x3b, 0x60, 0xe4, 0xff, 0x3c, + 0xd7, 0xc8, 0x1f, 0x50, 0xc8, 0xfe, 0x70, 0x05, 0xa3, 0xe7, 0x33, 0xce, 0x79, 0x0c, 0xfa, 0x76, + 0x66, 0xd7, 0x90, 0xff, 0x95, 0x0c, 0xaf, 0xba, 0xad, 0x5d, 0x46, 0xc8, 0x88, 0x7f, 0x05, 0x1c, + 0xd8, 0xd0, 0xa8, 0x3f, 0x76, 0xef, 0xca, 0xc6, 0x17, 0x65, 0x49, 0xa1, 0x6c, 0xfb, 0x7c, 0x63, + 0x6d, 0xb2, 0x0f, 0xc4, 0x5a, 0xe9, 0x7a, 0xba, 0x66, 0x89, 0xb0, 0x93, 0xce, 0x7e, 0x32, 0x38, + 0x10, 0x2b, 0x5e, 0x0b, 0x97, 0x6e, 0xc9, 0xfa, 0x26, 0x36, 0x7b, 0xaa, 0xdc, 0x26, 0xd6, 0x2e, + 0x5d, 0x05, 0xa1, 0xdd, 0x1f, 0xc4, 0xd7, 0xc2, 0x8b, 0x7d, 0x91, 0xce, 0x93, 0xae, 0x5a, 0x87, + 0x7a, 0xf7, 0x1f, 0xfe, 0x71, 0x20, 0x57, 0xcb, 0x53, 0x44, 0xca, 0xef, 0xca, 0xd5, 0x62, 0x74, + 0x92, 0x3a, 0x78, 0x5b, 0x21, 0xd7, 0x0d, 0x05, 0x7b, 0x07, 0xe5, 0x84, 0xad, 0xf5, 0xea, 0xba, + 0x6c, 0xe2, 0x0b, 0xf2, 0xce, 0xb2, 0xae, 0xce, 0x60, 0x5b, 0x9f, 0xc9, 0x8b, 0x41, 0x0f, 0x73, + 0x29, 0x22, 0x07, 0xc2, 0xb1, 0x5f, 0x72, 0xf6, 0x4c, 0x1a, 0x32, 0x4b, 0x4a, 0x77, 0xdd, 0x6f, + 0x05, 0xf9, 0x08, 0x64, 0x95, 0x6e, 0x07, 0xdf, 0x4d, 0x5f, 0xd0, 0xd8, 0x01, 0xf1, 0x14, 0x1c, + 0xe9, 0xf6, 0xb7, 0x56, 0xb1, 0xde, 0x58, 0x23, 0x8a, 0x0c, 0x46, 0x4b, 0xb3, 0x56, 0x4a, 0x74, + 0xe8, 0x1a, 0xfa, 0x0d, 0xfd, 0x2f, 0x7f, 0x1f, 0x7e, 0x1d, 0x2b, 0xa7, 0x57, 0x30, 0x8c, 0xb1, + 0x68, 0x08, 0x90, 0x50, 0x97, 0x9c, 0xb4, 0x8f, 0x1c, 0xf4, 0x61, 0x97, 0xdf, 0x37, 0x33, 0xfc, + 0xbe, 0x6a, 0x54, 0xb1, 0xc9, 0x9f, 0xab, 0x7e, 0x2a, 0x0d, 0xf9, 0x25, 0x5d, 0x6b, 0x63, 0xc3, + 0x40, 0x1f, 0x4a, 0x43, 0xae, 0x22, 0x77, 0xdb, 0x58, 0x45, 0x2f, 0x09, 0x5c, 0x3e, 0xa0, 0x1f, + 0xa4, 0x78, 0xb7, 0xe7, 0xb4, 0xdc, 0x92, 0x5d, 0x66, 0xc0, 0x88, 0xc7, 0x77, 0xfa, 0x1c, 0x5a, + 0x54, 0xf2, 0x5c, 0xfa, 0xd3, 0x34, 0x1c, 0x58, 0x50, 0xba, 0x9b, 0x4b, 0x3a, 0x26, 0x26, 0x30, + 0x5f, 0xea, 0xb1, 0x87, 0xaa, 0x9e, 0xa7, 0x7c, 0xaa, 0xe7, 0xdc, 0x6b, 0x5c, 0x5f, 0x91, 0x01, + 0xf2, 0x74, 0x2b, 0x1c, 0x50, 0xbd, 0x44, 0xf4, 0x00, 0x03, 0x0d, 0x1c, 0x60, 0xf8, 0x8a, 0x91, + 0xfc, 0xc9, 0x39, 0x75, 0x4f, 0x82, 0xa9, 0x48, 0x9e, 0xb1, 0x3f, 0x10, 0x00, 0x6c, 0x0b, 0xbb, + 0x64, 0x05, 0xfb, 0x6c, 0x2a, 0x84, 0xb1, 0xac, 0x25, 0xe3, 0xf4, 0xa0, 0x25, 0xe3, 0x5b, 0x20, + 0x63, 0x35, 0x89, 0x1a, 0x4c, 0xe6, 0xb5, 0x62, 0x4c, 0xf2, 0x58, 0xc3, 0x7c, 0x47, 0x31, 0xe4, + 0x55, 0x15, 0x57, 0xbb, 0x6d, 0x7d, 0xc7, 0xb3, 0x3b, 0x50, 0x90, 0x76, 0x7f, 0xf0, 0x1c, 0xd2, + 0x65, 0x39, 0x1c, 0xd2, 0x91, 0xaa, 0x18, 0x87, 0x74, 0x8c, 0xe7, 0x9b, 0xd0, 0x09, 0xd1, 0xe3, + 0x4c, 0xb0, 0xff, 0xfc, 0x0d, 0xd9, 0x70, 0xfd, 0xe7, 0x5b, 0xff, 0xd1, 0xc7, 0xb9, 0x06, 0xf7, + 0xc0, 0xa2, 0x93, 0xc7, 0xfc, 0xbb, 0x69, 0x38, 0xe8, 0x38, 0x20, 0x27, 0xa8, 0x5f, 0xcf, 0x5c, + 0x6e, 0x90, 0x06, 0xa5, 0xbc, 0x06, 0x59, 0x71, 0x3d, 0x0f, 0x71, 0xf2, 0x1f, 0x7d, 0x94, 0x7b, + 0x5f, 0xe2, 0xaf, 0x29, 0x80, 0x8b, 0xa1, 0x72, 0xe5, 0x33, 0xef, 0x15, 0xb6, 0x1b, 0x09, 0xa9, + 0x26, 0x1a, 0x47, 0xcb, 0x7b, 0x7e, 0xb7, 0x83, 0xfe, 0x2a, 0x0f, 0x50, 0x97, 0xb7, 0x95, 0x75, + 0xdb, 0x4c, 0xd2, 0x37, 0x05, 0x6b, 0xf0, 0x32, 0x4c, 0xdb, 0xdd, 0x81, 0xc1, 0x58, 0x4b, 0xbc, + 0x19, 0xf2, 0x54, 0x21, 0x8e, 0xb6, 0xea, 0xe5, 0x4c, 0xab, 0xbc, 0x52, 0x6c, 0x79, 0xbe, 0xdb, + 0x94, 0x9c, 0xf4, 0xd6, 0x02, 0x64, 0xad, 0xaf, 0xaa, 0x2d, 0x2b, 0x2f, 0x3d, 0xc2, 0x75, 0xc2, + 0x9e, 0xd5, 0x4b, 0xea, 0x8f, 0x88, 0x04, 0x06, 0x6c, 0x64, 0x66, 0x1d, 0x1b, 0x99, 0xe8, 0x77, + 0xb8, 0x5d, 0x01, 0xfa, 0xe8, 0xf1, 0xb5, 0x28, 0x00, 0xd6, 0x1b, 0x20, 0x6f, 0xeb, 0xb9, 0x38, + 0x8f, 0xf7, 0x5f, 0x32, 0xd0, 0x51, 0xed, 0xec, 0xb5, 0xee, 0x9a, 0x26, 0x39, 0x29, 0x39, 0x3d, + 0x02, 0x72, 0xd1, 0x91, 0x7c, 0x4f, 0xfa, 0x86, 0x00, 0x47, 0x4f, 0x63, 0xd3, 0x6b, 0xc7, 0x79, + 0xc5, 0xdc, 0xb0, 0x86, 0x73, 0x03, 0xfd, 0x73, 0x3e, 0xfd, 0x1f, 0x1f, 0xfe, 0xe9, 0x68, 0xf8, + 0xa3, 0x3f, 0xf2, 0xa3, 0xd6, 0x64, 0x51, 0xbb, 0x2d, 0xa8, 0x94, 0xe1, 0xd4, 0x06, 0x00, 0x78, + 0x0b, 0xe4, 0x6c, 0x42, 0xe9, 0xbc, 0x77, 0x3c, 0x10, 0x3f, 0xb7, 0x24, 0x89, 0xe6, 0x40, 0x8f, + 0xb8, 0x38, 0x9e, 0x63, 0x70, 0x9c, 0xdd, 0x13, 0x65, 0x89, 0x43, 0x7a, 0xfc, 0x7a, 0xa2, 0x5d, + 0x40, 0x3a, 0xd8, 0x21, 0x7f, 0x2f, 0x2e, 0x5e, 0x22, 0x02, 0xe4, 0x16, 0xb5, 0x6d, 0xdc, 0xd2, + 0x8a, 0x29, 0xeb, 0xbf, 0x45, 0x5f, 0x4b, 0x2b, 0xa6, 0xd1, 0xbf, 0x3d, 0x00, 0xf9, 0x33, 0x8a, + 0x61, 0x6a, 0xfa, 0x0e, 0xfa, 0x7a, 0x06, 0x0a, 0xf4, 0xf4, 0xca, 0x40, 0xf7, 0xa5, 0xdc, 0xb3, + 0xb8, 0x5d, 0x87, 0x40, 0x57, 0xc0, 0x81, 0x9e, 0x35, 0xe7, 0x6b, 0x7d, 0xc3, 0x53, 0x21, 0xf4, + 0x47, 0x59, 0x62, 0x23, 0xf7, 0xcd, 0x0d, 0x4d, 0xf7, 0x94, 0xb9, 0x9d, 0xb0, 0xb5, 0xc1, 0xb0, + 0xff, 0xd7, 0xe5, 0x2d, 0xec, 0xd8, 0x67, 0xf4, 0x62, 0x88, 0x43, 0x64, 0x65, 0xcb, 0x9e, 0x20, + 0x05, 0x89, 0xfc, 0x17, 0x67, 0x20, 0xbf, 0xae, 0x6b, 0xfd, 0x1e, 0xdd, 0x0e, 0x09, 0x92, 0x13, + 0xf4, 0x9b, 0x03, 0x3d, 0x0a, 0xb9, 0x9e, 0xbc, 0xee, 0xa9, 0x50, 0xd1, 0x90, 0x78, 0x25, 0x4c, + 0xab, 0xb2, 0x61, 0xd2, 0xd6, 0xb8, 0x7b, 0x3f, 0x36, 0x72, 0xf8, 0xb0, 0x83, 0x1e, 0xe3, 0x3e, + 0x12, 0xa1, 0x5c, 0x74, 0xce, 0xff, 0x82, 0xe4, 0xb2, 0x0c, 0x05, 0x7a, 0xd2, 0xe8, 0x8c, 0x2c, + 0x57, 0x85, 0x17, 0x43, 0xff, 0x48, 0x6e, 0x36, 0x4e, 0xe5, 0xad, 0x11, 0xf4, 0x24, 0x3f, 0xc0, + 0xfc, 0x37, 0xe7, 0x41, 0xee, 0x5d, 0xa3, 0x21, 0xba, 0x1c, 0xa6, 0xb6, 0x07, 0xe0, 0xf1, 0x22, + 0x42, 0x9e, 0xe3, 0xfe, 0xac, 0xc0, 0x3b, 0x95, 0x3b, 0xec, 0x08, 0x79, 0x90, 0x7b, 0x0b, 0x80, + 0x3d, 0x00, 0x58, 0x69, 0x76, 0x2d, 0x97, 0xc9, 0x7e, 0x8f, 0x0e, 0x1b, 0xa4, 0x14, 0xc9, 0x97, + 0x5a, 0xbc, 0xc3, 0x3b, 0x4f, 0xb6, 0xef, 0xfd, 0x38, 0x51, 0xf5, 0x1f, 0x3b, 0x3b, 0x6d, 0xcc, + 0xb0, 0x6d, 0xe4, 0x53, 0xa0, 0x0f, 0x69, 0x5f, 0xf2, 0x50, 0x3f, 0x9d, 0x06, 0x68, 0x62, 0xa7, + 0x33, 0xf9, 0x55, 0x9b, 0xc6, 0x02, 0x1c, 0xfd, 0x28, 0xc5, 0xeb, 0x9b, 0xcb, 0x6d, 0xb6, 0x5b, + 0x7b, 0x90, 0x0e, 0x00, 0x97, 0xb7, 0xad, 0x91, 0xc5, 0x25, 0xcf, 0xcb, 0x77, 0x0a, 0x90, 0x21, + 0xaf, 0xd6, 0xfe, 0xc1, 0xd3, 0x78, 0xbc, 0xd5, 0x63, 0xa8, 0xef, 0xf9, 0x4f, 0x8a, 0xef, 0xf9, + 0x0f, 0x7a, 0x88, 0x7b, 0x4f, 0x49, 0x1e, 0x4f, 0x85, 0x6a, 0xdf, 0x78, 0x78, 0x0a, 0x0c, 0x9e, + 0xd1, 0x5e, 0xe8, 0xf0, 0xed, 0x2d, 0x83, 0xa9, 0x49, 0x1e, 0x85, 0x3f, 0xa0, 0x4e, 0xce, 0x9e, + 0xf2, 0x5e, 0x8e, 0x9a, 0x8c, 0x54, 0xd3, 0xb7, 0x59, 0xa9, 0xa0, 0xb7, 0x59, 0xe9, 0xb1, 0x9e, + 0x0f, 0x0a, 0xbb, 0xac, 0x15, 0x3f, 0xc9, 0x6d, 0x70, 0xa0, 0x39, 0x4a, 0x85, 0xd5, 0x9e, 0xc6, + 0x05, 0x77, 0x1a, 0x8f, 0x86, 0xd9, 0x97, 0xb8, 0xb6, 0x86, 0xcd, 0x78, 0x34, 0x5c, 0x63, 0x7f, + 0x50, 0xf5, 0xe1, 0x23, 0x8c, 0x0f, 0xbb, 0x27, 0xd3, 0x90, 0x21, 0xf7, 0x29, 0xbe, 0xb3, 0xe6, + 0xdf, 0xe2, 0x7e, 0xea, 0xe6, 0xf3, 0xfd, 0x46, 0xee, 0x19, 0x86, 0xb3, 0xfb, 0x0d, 0x70, 0xc0, + 0xf3, 0x70, 0x17, 0xbe, 0x8d, 0x20, 0xa7, 0x09, 0xfe, 0xd4, 0x9c, 0x46, 0x89, 0xc2, 0x09, 0x49, + 0xbe, 0x97, 0x7c, 0xc2, 0xeb, 0x1d, 0x73, 0xfe, 0x7d, 0x21, 0x78, 0x4d, 0xa1, 0x0c, 0x0c, 0x69, + 0xb7, 0x2f, 0x31, 0xfa, 0x43, 0x3f, 0x06, 0x15, 0x16, 0x83, 0xd7, 0x04, 0x35, 0x3d, 0x54, 0xe8, + 0x59, 0x62, 0xd2, 0x51, 0x88, 0xf1, 0xd4, 0xba, 0xe7, 0x19, 0x0c, 0x4e, 0x45, 0x22, 0x64, 0x9f, + 0x05, 0xff, 0x9e, 0x43, 0x3e, 0x1f, 0xa8, 0x7f, 0x41, 0x7d, 0x6e, 0xae, 0x31, 0x06, 0x08, 0x58, + 0xe7, 0x8c, 0xa9, 0x21, 0xce, 0x19, 0xc7, 0xb5, 0x66, 0xf7, 0x03, 0x3f, 0x9c, 0x35, 0x16, 0xce, + 0x1b, 0x82, 0xb8, 0xc8, 0xe1, 0x68, 0x73, 0x4c, 0x72, 0x9e, 0x75, 0x01, 0x5d, 0x60, 0x00, 0xbd, + 0x69, 0x0c, 0x52, 0xa2, 0xc1, 0xaa, 0xc4, 0x0c, 0xab, 0x38, 0x03, 0x47, 0xa4, 0x6a, 0x79, 0xae, + 0x51, 0x5f, 0xb8, 0xcb, 0xff, 0xb5, 0x98, 0x41, 0x1f, 0x17, 0x20, 0x27, 0x11, 0xf5, 0x22, 0xf4, + 0xd3, 0x51, 0x61, 0x1e, 0x30, 0x94, 0x99, 0xde, 0x6d, 0x7e, 0xf9, 0xcb, 0xdc, 0xaf, 0x79, 0x86, + 0xb1, 0xd1, 0xa6, 0x2b, 0x60, 0x85, 0xf6, 0x3c, 0xd7, 0x6b, 0x1e, 0xee, 0x62, 0x2f, 0x5a, 0x80, + 0x1e, 0x12, 0x20, 0x47, 0xad, 0xe1, 0x76, 0xa2, 0x02, 0xe4, 0x37, 0x75, 0x9e, 0xe6, 0x35, 0x75, + 0xbe, 0x37, 0xcc, 0x42, 0xfd, 0x89, 0x8c, 0x8f, 0x59, 0x0c, 0xd6, 0x66, 0x27, 0x88, 0xd9, 0xb7, + 0x04, 0xba, 0x5e, 0xe8, 0x47, 0x45, 0x6c, 0x0e, 0x5e, 0x26, 0xf7, 0x7a, 0xb8, 0xeb, 0xda, 0x55, + 0x35, 0xe6, 0x75, 0x6d, 0xab, 0x61, 0x6e, 0x60, 0xdd, 0x59, 0x17, 0xa4, 0xae, 0x2e, 0x48, 0xe1, + 0x89, 0x58, 0xe3, 0x0d, 0xa1, 0x86, 0x2d, 0x87, 0xf1, 0x3a, 0x64, 0x91, 0x32, 0xe6, 0x48, 0xfa, + 0x34, 0x97, 0x85, 0x4b, 0x4e, 0x5a, 0xf6, 0x79, 0x86, 0xfc, 0xca, 0x59, 0xc8, 0xd9, 0x94, 0x5a, + 0xcb, 0xc2, 0x03, 0xcd, 0x0d, 0x59, 0xc7, 0xb3, 0x3b, 0xc4, 0xf3, 0xfb, 0x55, 0x5c, 0x07, 0xa1, + 0xe8, 0xbd, 0x7e, 0x74, 0x44, 0xc8, 0xa8, 0x4a, 0x77, 0xd3, 0xb9, 0x85, 0xb0, 0xfe, 0x7b, 0x5b, + 0xd8, 0xf4, 0x90, 0x2d, 0xac, 0x7b, 0xa4, 0xe0, 0xd6, 0xbb, 0xa7, 0x2d, 0xec, 0xc8, 0xe2, 0x26, + 0x72, 0xe3, 0x79, 0xb8, 0xdc, 0xe9, 0x9c, 0x57, 0xcc, 0x8d, 0x86, 0xc3, 0xa3, 0x3b, 0xf8, 0xce, + 0x94, 0x67, 0x20, 0xdf, 0x93, 0x77, 0x54, 0x4d, 0x76, 0xdf, 0xd5, 0xd3, 0x20, 0xab, 0x20, 0x19, + 0x7a, 0xd0, 0x4f, 0x39, 0x30, 0x40, 0x41, 0x00, 0x53, 0xf9, 0xce, 0xec, 0xb9, 0x8a, 0x4c, 0x9e, + 0xb1, 0x7f, 0x25, 0xb0, 0xbe, 0x57, 0x7e, 0x86, 0xd7, 0x5c, 0xc1, 0x58, 0xf3, 0xc6, 0xff, 0xe1, + 0xf6, 0x90, 0x4e, 0xd9, 0xf3, 0x13, 0xe2, 0x59, 0x25, 0x52, 0x3f, 0xda, 0x4f, 0x8f, 0x2a, 0x5f, + 0xde, 0xed, 0x51, 0xe5, 0x5f, 0xf2, 0x22, 0x3e, 0x72, 0x29, 0x37, 0x9e, 0xd7, 0x9d, 0x07, 0xb8, + 0xed, 0xc2, 0x0d, 0xf0, 0x2f, 0x46, 0x8b, 0xf7, 0x7c, 0xd6, 0xdf, 0x78, 0xea, 0x4f, 0x1e, 0xc2, + 0xf7, 0xec, 0x76, 0x93, 0x52, 0x8b, 0x0d, 0xc2, 0xf1, 0xd1, 0x88, 0xd1, 0x09, 0xca, 0x58, 0x68, + 0xec, 0x93, 0x59, 0xf9, 0x9f, 0xcb, 0xc0, 0xa5, 0xbb, 0xdd, 0x9e, 0xf0, 0xbb, 0x44, 0x1e, 0xdd, + 0xa9, 0xc6, 0xf5, 0xf9, 0xf1, 0x42, 0xc4, 0x05, 0x5e, 0xe9, 0xe2, 0x72, 0x59, 0xf2, 0xd9, 0x08, + 0xeb, 0xc1, 0xd2, 0xfe, 0x3b, 0x29, 0xf9, 0x53, 0x01, 0x8e, 0x0c, 0x75, 0x4f, 0x72, 0x31, 0x88, + 0x02, 0xbf, 0x07, 0xc2, 0xa1, 0xfc, 0x8c, 0x71, 0xa0, 0xe5, 0x73, 0x4e, 0xc7, 0x4f, 0x45, 0xf2, + 0xc0, 0x7e, 0x31, 0x33, 0x08, 0x2c, 0x1d, 0x74, 0x1f, 0x8c, 0x11, 0x58, 0xbf, 0xb3, 0x10, 0x61, + 0xc0, 0x59, 0xc8, 0x19, 0x78, 0x39, 0x79, 0xd3, 0xa7, 0x6f, 0xd9, 0x87, 0x12, 0x65, 0x55, 0x3d, + 0x27, 0xab, 0x7d, 0x6c, 0xd4, 0xba, 0xb6, 0x7b, 0x0d, 0xe7, 0x71, 0xf7, 0xa8, 0x64, 0xe8, 0xfb, + 0x7b, 0x13, 0x83, 0x18, 0x9d, 0x89, 0x3c, 0x3f, 0xbe, 0x18, 0xc4, 0x30, 0xce, 0x6f, 0x8c, 0xb1, + 0xdf, 0x7b, 0x2d, 0x5c, 0xd7, 0x6c, 0x2c, 0x56, 0xc9, 0x9b, 0x3e, 0x69, 0xae, 0xb9, 0x72, 0xa6, + 0xdc, 0x5c, 0x91, 0xaa, 0x0b, 0xe5, 0x56, 0xad, 0x51, 0x5f, 0x39, 0x57, 0x5e, 0x58, 0xae, 0xae, + 0x9c, 0xaf, 0xb5, 0xce, 0xac, 0xb4, 0xce, 0xd4, 0x9a, 0x2b, 0x8d, 0x25, 0x2b, 0xba, 0x28, 0xa0, + 0x77, 0x05, 0x3a, 0x1d, 0xe1, 0x36, 0xcd, 0xfe, 0x24, 0xb7, 0x6f, 0xde, 0x01, 0x76, 0x25, 0xe8, + 0x52, 0x84, 0xcf, 0x49, 0x6f, 0x04, 0x7a, 0x26, 0x70, 0xfb, 0x96, 0x81, 0x5c, 0x13, 0xcb, 0x7a, + 0x7b, 0x03, 0xfd, 0xaa, 0xcf, 0x76, 0xe7, 0x3c, 0xe4, 0xd7, 0x14, 0x95, 0x98, 0x9f, 0x4f, 0x91, + 0xe6, 0x5f, 0xcb, 0xe7, 0x7f, 0x7e, 0x9e, 0x64, 0x92, 0x9c, 0xcc, 0xe2, 0x1b, 0x21, 0x6b, 0x68, + 0xba, 0xab, 0xda, 0xc5, 0xe9, 0xc5, 0xbe, 0xa9, 0xe9, 0xa6, 0x64, 0x67, 0x64, 0xf4, 0xd7, 0x84, + 0x01, 0xfd, 0xb5, 0x00, 0x4d, 0x35, 0xd6, 0x9b, 0xb3, 0xab, 0xd7, 0x76, 0x0d, 0x14, 0xbd, 0x03, + 0x23, 0x9b, 0xd0, 0x99, 0x1c, 0xb9, 0x54, 0xdc, 0x15, 0x2f, 0x8a, 0x90, 0xd9, 0xc4, 0x3b, 0xc6, + 0x4c, 0x9e, 0x7c, 0x27, 0xff, 0xd1, 0xbd, 0xdc, 0x56, 0x6e, 0x9c, 0x83, 0x01, 0xc2, 0xd7, 0x00, + 0x11, 0xbb, 0x1e, 0xf2, 0x3a, 0x1d, 0xa6, 0x1c, 0x01, 0x0b, 0xba, 0xc0, 0xa4, 0xe9, 0xd0, 0x27, + 0xb9, 0x8c, 0xdf, 0x84, 0x55, 0x3e, 0x01, 0x0f, 0x27, 0x05, 0xc8, 0x9e, 0xd6, 0xe5, 0xde, 0x06, + 0xfa, 0xa5, 0x54, 0xfc, 0xe2, 0xe4, 0x02, 0x9b, 0x1e, 0x05, 0xac, 0x30, 0x1c, 0x58, 0xf4, 0xee, + 0x34, 0x64, 0xea, 0x56, 0xa3, 0x06, 0x35, 0xad, 0x44, 0xaa, 0x97, 0x4c, 0xd5, 0x57, 0x89, 0xbe, + 0xb1, 0x63, 0xc3, 0x43, 0xf0, 0xd9, 0xf0, 0x38, 0x0a, 0x39, 0x55, 0xde, 0xd1, 0xfa, 0xae, 0xcc, + 0xd9, 0xa1, 0x41, 0x76, 0x66, 0x77, 0xb1, 0xd3, 0x1a, 0xcf, 0x94, 0xb6, 0xd6, 0xad, 0x6d, 0xc9, + 0xeb, 0x98, 0x3e, 0x35, 0xf1, 0x22, 0x9c, 0xaf, 0xd5, 0x2d, 0xed, 0x2d, 0x0a, 0x7d, 0x52, 0xe2, + 0x45, 0x58, 0x94, 0x74, 0xb4, 0x2e, 0x26, 0x4f, 0x48, 0x0a, 0x12, 0xf9, 0x2f, 0x9e, 0x80, 0x43, + 0xce, 0xd0, 0x33, 0xaf, 0xe9, 0x5b, 0xb2, 0x39, 0x33, 0x65, 0x3f, 0xf9, 0x62, 0x63, 0xc5, 0x19, + 0xc8, 0x1b, 0x5d, 0xa5, 0xd7, 0xc3, 0xe6, 0x0c, 0xd8, 0x07, 0x3d, 0x34, 0x88, 0x3e, 0x92, 0x86, + 0x4c, 0xb5, 0xb3, 0x8e, 0x99, 0x5b, 0xf6, 0x94, 0xef, 0x96, 0xfd, 0x28, 0xe4, 0x6c, 0xcb, 0xa0, + 0x94, 0x2d, 0x34, 0x34, 0x94, 0x31, 0xaf, 0xa7, 0x0c, 0xcc, 0x0c, 0x79, 0xdc, 0x4b, 0x65, 0x92, + 0x08, 0x46, 0xc9, 0xaa, 0xd1, 0xaf, 0xd5, 0x9d, 0x2c, 0xe7, 0x8e, 0x42, 0x6e, 0x43, 0xe9, 0x74, + 0x70, 0x97, 0xf2, 0x8e, 0x86, 0x8e, 0x1f, 0x83, 0x8c, 0x45, 0x83, 0x25, 0xdc, 0x0b, 0x4a, 0x77, + 0xb3, 0x78, 0x89, 0x78, 0xd0, 0xbb, 0xbe, 0x2b, 0xa6, 0xd8, 0x73, 0xe0, 0x50, 0x7d, 0x27, 0xa6, + 0x71, 0xc3, 0x3b, 0xfb, 0x6b, 0x21, 0xdb, 0xd5, 0x3a, 0xee, 0xd5, 0xf4, 0xb1, 0xe0, 0xfc, 0x96, + 0x6c, 0x4a, 0x76, 0x62, 0x2b, 0x17, 0xee, 0xac, 0x63, 0x83, 0x08, 0x73, 0x68, 0x2e, 0x8b, 0xa5, + 0x92, 0x9d, 0x98, 0x53, 0x89, 0x29, 0x84, 0xe8, 0xe4, 0x07, 0x89, 0xaf, 0xe5, 0xe0, 0xb0, 0x3d, + 0x3e, 0x35, 0xfb, 0xab, 0x56, 0x51, 0xab, 0x18, 0x3d, 0x97, 0x66, 0x5e, 0x0b, 0x19, 0xfd, 0x55, + 0x77, 0xd6, 0xb7, 0x03, 0xfe, 0x41, 0x24, 0x1d, 0xcb, 0x9c, 0x24, 0x8c, 0x3b, 0x27, 0x31, 0xf3, + 0x8b, 0xb0, 0x5b, 0x6f, 0xda, 0x56, 0x9c, 0x74, 0x66, 0xa3, 0x21, 0x73, 0x89, 0xd5, 0x27, 0xe5, + 0x35, 0x13, 0xeb, 0xee, 0xab, 0x30, 0x27, 0x48, 0x6c, 0xcb, 0xe2, 0x35, 0x4d, 0xc7, 0xb5, 0x0e, + 0xe9, 0xcf, 0x53, 0x92, 0x1b, 0xf6, 0x75, 0x53, 0x60, 0x94, 0x61, 0xae, 0x86, 0xc3, 0xca, 0x7a, + 0x57, 0xd3, 0xb1, 0x6b, 0x46, 0x6e, 0xe6, 0xa0, 0x6d, 0x2b, 0x68, 0x20, 0x1a, 0x7d, 0x43, 0x88, + 0x78, 0xb4, 0x3b, 0x00, 0x53, 0x6c, 0x93, 0x99, 0xf8, 0x06, 0x38, 0xd8, 0xc1, 0x3d, 0xdc, 0xed, + 0xe0, 0x6e, 0x5b, 0x71, 0x65, 0x3c, 0x30, 0x1f, 0x93, 0xd8, 0x13, 0x90, 0x8c, 0x5f, 0x40, 0x4e, + 0xfb, 0x9c, 0xe6, 0x64, 0x07, 0x94, 0x49, 0x58, 0x9d, 0x42, 0xbb, 0x39, 0x3d, 0xaa, 0x31, 0x6d, + 0x67, 0xf1, 0x79, 0xcf, 0x89, 0x74, 0x52, 0x1d, 0xce, 0xa1, 0x09, 0x68, 0xb1, 0x65, 0xe0, 0x60, + 0xad, 0x63, 0x78, 0x3d, 0x49, 0x1b, 0xd5, 0x91, 0x76, 0xf9, 0x38, 0x70, 0x45, 0x54, 0xf0, 0x89, + 0xe8, 0x10, 0xa1, 0x3a, 0x30, 0x5c, 0xa8, 0xde, 0xee, 0x17, 0xaa, 0x2a, 0x2b, 0x54, 0x27, 0x87, + 0xb1, 0xcc, 0x4f, 0xee, 0xc5, 0x2c, 0x51, 0xe8, 0x7e, 0x57, 0x10, 0xce, 0x30, 0x82, 0xf0, 0xda, + 0x88, 0xad, 0x4a, 0x5e, 0x0a, 0xfe, 0x43, 0x1a, 0x2e, 0xb5, 0x25, 0x71, 0xb9, 0x6b, 0xb8, 0xa2, + 0xf0, 0x0a, 0x56, 0x91, 0xce, 0x6a, 0x93, 0xe1, 0x2a, 0xd2, 0x91, 0x10, 0xfa, 0xb9, 0xa8, 0xc7, + 0x61, 0xbb, 0x6a, 0x09, 0xb8, 0xee, 0x89, 0x74, 0x50, 0x35, 0xaa, 0xd0, 0xe4, 0x19, 0xf8, 0xcb, + 0xb6, 0xe7, 0xc4, 0x05, 0xb2, 0x9a, 0x43, 0x32, 0xef, 0x19, 0xc6, 0x4d, 0xee, 0x72, 0xd0, 0x7e, + 0xd0, 0x76, 0x45, 0xa0, 0xc2, 0x53, 0xc9, 0x2e, 0xda, 0x59, 0x30, 0xa2, 0x4f, 0x71, 0xeb, 0xbb, + 0xbb, 0x3c, 0xa2, 0xd4, 0xc5, 0x72, 0xd4, 0xc0, 0xa7, 0xda, 0x3e, 0xa2, 0xea, 0xe4, 0x61, 0xf9, + 0x37, 0x02, 0x4c, 0x13, 0x63, 0xb2, 0xf3, 0xf2, 0xb6, 0xa6, 0x2b, 0x26, 0x46, 0xa7, 0x79, 0xa1, + 0x39, 0x06, 0xa0, 0xb8, 0xd9, 0xe8, 0xe5, 0xbf, 0x2f, 0x26, 0x82, 0x63, 0x17, 0x8f, 0x0b, 0x1e, + 0x1d, 0x13, 0x74, 0xec, 0xc2, 0x51, 0xfd, 0x04, 0x81, 0x28, 0xdb, 0x4f, 0xf4, 0x3b, 0x11, 0x81, + 0x70, 0xb2, 0x79, 0x40, 0xb8, 0x05, 0x8d, 0x07, 0x84, 0x93, 0x7d, 0x9f, 0x80, 0x08, 0xa8, 0x3e, + 0x79, 0x20, 0x1e, 0xca, 0x41, 0x71, 0x1e, 0xcb, 0x66, 0x5f, 0xc7, 0xae, 0x12, 0x0b, 0xfa, 0x79, + 0xaa, 0x6e, 0x58, 0xe5, 0xc5, 0xe4, 0xf2, 0xc1, 0x13, 0xae, 0x29, 0xff, 0x41, 0x56, 0xe4, 0x83, + 0xf1, 0x41, 0x82, 0x4a, 0x31, 0x5d, 0x93, 0x44, 0x3b, 0x18, 0xe7, 0xa0, 0x22, 0x79, 0x7c, 0xde, + 0xef, 0x69, 0x05, 0xc6, 0x84, 0xc6, 0x13, 0x7e, 0x34, 0x96, 0x58, 0x34, 0x6e, 0xe1, 0xe2, 0x43, + 0x98, 0x36, 0x60, 0x44, 0x40, 0x3c, 0xd3, 0x27, 0x4d, 0x06, 0x90, 0x3b, 0xc6, 0x27, 0x64, 0x02, + 0x5e, 0x63, 0xd2, 0x90, 0x6d, 0x69, 0x4d, 0xcc, 0xd8, 0x02, 0x0e, 0x87, 0xc4, 0xdb, 0x6b, 0xa5, + 0x19, 0xc7, 0xc7, 0xef, 0x8c, 0x7a, 0x2e, 0x40, 0xea, 0x0d, 0xb6, 0x43, 0x61, 0xf8, 0x5c, 0xd2, + 0xd8, 0x81, 0x68, 0x3b, 0xf8, 0x61, 0xc5, 0x27, 0xcf, 0xd0, 0x87, 0x0b, 0x8e, 0x92, 0x3f, 0xd1, + 0xd5, 0xfb, 0x56, 0x1a, 0x72, 0xf4, 0xfa, 0x87, 0x3d, 0xc0, 0x77, 0xb4, 0x8d, 0x9c, 0x55, 0xa7, + 0x17, 0x81, 0xee, 0x8b, 0xa8, 0x80, 0x4e, 0xd4, 0xd9, 0x62, 0xbc, 0x6b, 0xb9, 0x2f, 0x82, 0xce, + 0x79, 0x70, 0xdd, 0x13, 0x78, 0xf1, 0x95, 0xb5, 0xdf, 0xc7, 0xfc, 0xd7, 0x34, 0x40, 0xe0, 0xec, + 0x1b, 0xcc, 0xe7, 0x91, 0xb3, 0xef, 0xbb, 0xfc, 0x38, 0x9c, 0x65, 0x71, 0xb8, 0x31, 0x88, 0x17, + 0x96, 0xcc, 0x8d, 0x9a, 0x82, 0xd1, 0x03, 0x2e, 0x87, 0xeb, 0x0c, 0x87, 0x6f, 0x19, 0xab, 0xd4, + 0xe4, 0x39, 0x6d, 0x73, 0x38, 0x60, 0xa1, 0x39, 0x8a, 0xc3, 0x21, 0x0b, 0xcd, 0x3d, 0x70, 0x38, + 0x7c, 0xb5, 0x39, 0x2e, 0x87, 0xf7, 0x6d, 0x11, 0xf9, 0x6c, 0x06, 0x72, 0xd5, 0xbb, 0x7b, 0x9a, + 0x6e, 0xa2, 0xa7, 0x52, 0x8c, 0x39, 0x89, 0x9e, 0x67, 0xf5, 0x9e, 0xfc, 0xb7, 0xc6, 0xdf, 0x8e, + 0xd6, 0xf6, 0x1e, 0x3d, 0xd3, 0x90, 0x78, 0x0a, 0x72, 0x6b, 0xf6, 0x69, 0xb7, 0xbd, 0xe1, 0x42, + 0x4c, 0x53, 0xed, 0xc2, 0x4b, 0xf6, 0xc9, 0xb7, 0x44, 0x53, 0x8a, 0x45, 0x10, 0xde, 0xa6, 0xf4, + 0xe8, 0x75, 0xb0, 0xf5, 0x97, 0x38, 0xd4, 0xa0, 0x36, 0xd9, 0xb0, 0x61, 0x62, 0xdb, 0x58, 0x54, + 0x41, 0x62, 0x23, 0xc5, 0xe3, 0x70, 0x90, 0x46, 0xcc, 0x2b, 0x2a, 0xb6, 0xfd, 0xbf, 0x15, 0x24, + 0x26, 0x0e, 0x3d, 0xee, 0x07, 0xf7, 0x26, 0x16, 0xdc, 0xe3, 0xc3, 0x68, 0x0b, 0x34, 0x11, 0x32, + 0x68, 0x3d, 0x83, 0x1c, 0xdc, 0xf7, 0xdb, 0x6d, 0x8c, 0x3b, 0xf4, 0xae, 0xc1, 0x09, 0x46, 0xd4, + 0x1b, 0xfa, 0xa8, 0x2b, 0x25, 0x6f, 0x60, 0xa4, 0xe4, 0x55, 0xa3, 0xc9, 0x4b, 0xfe, 0x25, 0xfd, + 0x12, 0xe4, 0xe8, 0x3d, 0xc5, 0x41, 0x28, 0x2c, 0xca, 0xfa, 0x66, 0x47, 0xbb, 0xd0, 0xb5, 0x4f, + 0xe3, 0x97, 0xe8, 0x89, 0x4d, 0x31, 0x65, 0x95, 0x78, 0x67, 0xb3, 0x51, 0x2f, 0xa6, 0xc5, 0x3c, + 0x08, 0x73, 0x8d, 0x56, 0x51, 0xb0, 0xfe, 0x34, 0xcf, 0x9d, 0x2e, 0x66, 0xc4, 0x43, 0x00, 0xa7, + 0xa5, 0xf2, 0xd2, 0x99, 0x15, 0x92, 0x22, 0x8b, 0xde, 0x2d, 0xc0, 0x61, 0xbb, 0x31, 0xde, 0x11, + 0xd5, 0x1d, 0xe1, 0xc2, 0x36, 0xda, 0xc9, 0xcc, 0x23, 0xdc, 0x4f, 0xd6, 0x06, 0xaa, 0x8e, 0x80, + 0x77, 0x34, 0x54, 0xf9, 0xde, 0xad, 0x85, 0x53, 0x33, 0x81, 0xa7, 0xe9, 0x69, 0x07, 0x0c, 0xc7, + 0x28, 0x9a, 0x31, 0xe0, 0x42, 0x68, 0x10, 0x8c, 0xc8, 0xac, 0x76, 0x0b, 0xbe, 0x28, 0x58, 0x1d, + 0x44, 0xcd, 0x44, 0x9e, 0x33, 0x17, 0x6d, 0x1a, 0x88, 0x17, 0x01, 0xc3, 0xd4, 0x74, 0xec, 0x37, + 0xee, 0x1d, 0x61, 0x94, 0x45, 0x8f, 0x72, 0x1f, 0x4e, 0x0d, 0xd6, 0x98, 0x18, 0x08, 0x7c, 0x07, + 0x56, 0x23, 0xc8, 0x49, 0x1e, 0x85, 0x47, 0xd3, 0x70, 0x70, 0x51, 0xde, 0x74, 0x6d, 0x00, 0xf2, + 0x6b, 0xb4, 0x30, 0x06, 0xa7, 0x42, 0x77, 0x16, 0xfe, 0xf2, 0x43, 0x5f, 0x20, 0xa7, 0x5d, 0x73, + 0x70, 0x7c, 0x7b, 0x8a, 0x90, 0x82, 0x93, 0xe7, 0xdc, 0x77, 0xd2, 0x30, 0xe3, 0x27, 0x60, 0x76, + 0xc7, 0xf7, 0x8c, 0x98, 0x35, 0xf3, 0x3d, 0xf0, 0xe8, 0x75, 0x8a, 0x79, 0x4c, 0xfa, 0x2b, 0xdc, + 0x27, 0xda, 0x41, 0xb5, 0x71, 0xf2, 0x94, 0xef, 0x84, 0x9b, 0xb3, 0x92, 0x09, 0x68, 0xec, 0xa5, + 0x61, 0xba, 0xa2, 0x6a, 0xdd, 0x31, 0x44, 0xf3, 0x9f, 0x52, 0xbc, 0xaa, 0x2f, 0x4c, 0x05, 0x9c, + 0x7c, 0xe4, 0xd3, 0x6b, 0x09, 0x2b, 0x79, 0x02, 0x0f, 0x04, 0xd2, 0x70, 0xd8, 0xc6, 0x6e, 0xae, + 0xdf, 0x53, 0x95, 0x76, 0x24, 0xf6, 0xbd, 0x33, 0xe2, 0x7b, 0x77, 0xb7, 0x0a, 0x4e, 0x06, 0x46, + 0x79, 0xc2, 0x1e, 0x54, 0xf6, 0x04, 0xdc, 0xb3, 0x67, 0xe0, 0xd0, 0x72, 0xd7, 0xe8, 0xa9, 0xb2, + 0xb1, 0x41, 0x55, 0xce, 0x6e, 0x64, 0xae, 0x2a, 0xdf, 0xda, 0xc7, 0xfa, 0x8e, 0x73, 0x55, 0x49, + 0x02, 0xc3, 0x15, 0x7e, 0xd0, 0xa3, 0x02, 0xaf, 0x6d, 0x4b, 0xb6, 0xbe, 0x00, 0x76, 0x9e, 0x81, + 0x42, 0x4f, 0x69, 0x9b, 0x7d, 0x1d, 0xef, 0xd6, 0x2c, 0x08, 0x2b, 0x64, 0xc9, 0xce, 0x24, 0xb9, + 0xb9, 0x91, 0x0c, 0x79, 0x1a, 0xb9, 0x4b, 0xbf, 0x88, 0xda, 0x49, 0x4c, 0x7b, 0x76, 0x12, 0x8f, + 0x42, 0x4e, 0xd6, 0x4d, 0xc5, 0x70, 0xf4, 0xda, 0x68, 0xc8, 0x92, 0x25, 0xfb, 0xdf, 0xb2, 0xae, 0xd2, 0xeb, 0x48, 0x2f, 0xc2, 0x67, 0x1c, 0x22, 0xcc, 0x10, 0x67, 0x68, 0xbb, 0xa3, 0x41, 0x7d, - 0x61, 0x0c, 0xad, 0xd0, 0xab, 0xe1, 0x19, 0x12, 0xf1, 0x59, 0x51, 0x5b, 0xae, 0xb5, 0xd6, 0xaa, - 0xaf, 0xa8, 0x54, 0xab, 0xf3, 0xd5, 0xf9, 0x62, 0x07, 0x7d, 0x3f, 0x0d, 0x45, 0x87, 0x36, 0xc7, + 0x76, 0x0c, 0xad, 0xd0, 0xcb, 0xe0, 0x45, 0x12, 0xf1, 0x59, 0x51, 0x5b, 0xac, 0xb5, 0x56, 0xaa, + 0x6f, 0xaa, 0x54, 0xab, 0x73, 0xd5, 0xb9, 0x62, 0x07, 0x7d, 0x2f, 0x0d, 0x45, 0x87, 0x36, 0xc7, 0x16, 0xdf, 0x40, 0x3f, 0xa2, 0xcc, 0xf4, 0xfa, 0x91, 0x1b, 0xc1, 0x6a, 0xe0, 0x85, 0xae, 0x4a, - 0x06, 0xeb, 0x88, 0x60, 0x98, 0xf1, 0xcb, 0x5c, 0xeb, 0x8c, 0x11, 0x15, 0x1c, 0x22, 0x8b, 0xbf, - 0x9e, 0x86, 0x99, 0x72, 0xaf, 0xa7, 0xee, 0xb9, 0xc3, 0x7c, 0x94, 0x8b, 0x1a, 0x9f, 0x85, 0x94, - 0xf4, 0x3e, 0x0b, 0x29, 0x3f, 0xe0, 0x9e, 0x06, 0x18, 0x02, 0x02, 0x0e, 0x2f, 0xf8, 0x86, 0xfd, - 0xb0, 0x92, 0x92, 0x1f, 0xb3, 0xde, 0xf6, 0x0c, 0xc8, 0x12, 0xef, 0x64, 0xe8, 0xa3, 0x02, 0xe4, - 0x55, 0x6d, 0xb3, 0xd6, 0xdd, 0xd0, 0x86, 0xe9, 0x0e, 0x6e, 0x61, 0xf7, 0x1d, 0x25, 0xf9, 0x2f, - 0x9e, 0x81, 0x63, 0xd6, 0xaf, 0x23, 0x1f, 0xd4, 0xd0, 0x7a, 0x41, 0x1a, 0x88, 0x15, 0x4f, 0xc3, - 0x51, 0x53, 0x33, 0x65, 0xd5, 0xaf, 0xb3, 0x9e, 0x95, 0x98, 0x38, 0x0b, 0x35, 0x12, 0x6e, 0x2a, - 0xaf, 0xc1, 0x54, 0xa7, 0xd5, 0x8b, 0x10, 0xaf, 0x83, 0x99, 0x0d, 0x45, 0x37, 0x4c, 0x3b, 0x75, - 0xcb, 0x3e, 0xa6, 0xc8, 0x4a, 0x6c, 0xa4, 0x6d, 0x20, 0xde, 0x8d, 0xb8, 0x88, 0x75, 0xa2, 0x2a, - 0x47, 0x0c, 0xc4, 0xfb, 0x63, 0x2d, 0x7a, 0x54, 0xd9, 0x57, 0x58, 0xc1, 0xa6, 0xc7, 0x1f, 0xe7, - 0x98, 0x79, 0xf3, 0x8a, 0xb2, 0x15, 0x0f, 0xd9, 0x48, 0xab, 0x46, 0x2b, 0x62, 0xa5, 0xaf, 0xaa, - 0x4d, 0xdc, 0x2e, 0x6f, 0x6a, 0x44, 0xfd, 0x30, 0x2b, 0x0d, 0xc4, 0x8a, 0x08, 0x0a, 0xfd, 0x5e, - 0xd3, 0x94, 0xcd, 0xbe, 0x41, 0x35, 0x4c, 0xdc, 0xb0, 0x25, 0x91, 0x1d, 0xed, 0x72, 0x97, 0x7e, - 0xb5, 0x95, 0x9a, 0x7c, 0x31, 0xd6, 0xfc, 0x60, 0x0b, 0xe1, 0x8c, 0x3d, 0x6b, 0xd8, 0x92, 0xf5, - 0x27, 0x02, 0x80, 0xb9, 0xa5, 0x63, 0xb9, 0x33, 0x14, 0xae, 0x97, 0xc0, 0x49, 0x55, 0xdb, 0x34, - 0x2e, 0x29, 0xe6, 0x96, 0x07, 0xc4, 0xa2, 0x03, 0x60, 0x56, 0x0a, 0xf8, 0x2a, 0xbe, 0x1c, 0x9e, - 0xed, 0x7c, 0xb9, 0xb4, 0xa5, 0xa9, 0xb8, 0xa5, 0x63, 0x3c, 0x80, 0x6f, 0x56, 0x0a, 0x4b, 0x22, - 0x96, 0x20, 0x63, 0x7d, 0x9e, 0xcd, 0x90, 0x59, 0x86, 0x3d, 0xba, 0x22, 0x62, 0x56, 0xa2, 0x22, - 0x26, 0x91, 0x74, 0xe2, 0xed, 0x70, 0xb5, 0x76, 0xb9, 0xbb, 0xa4, 0x6d, 0x2e, 0xca, 0x46, 0x45, - 0xde, 0xc0, 0x12, 0xb6, 0x27, 0x6f, 0x4d, 0xa7, 0x07, 0x56, 0x41, 0x9f, 0xc5, 0x12, 0x88, 0x6d, - 0x79, 0x03, 0x2f, 0xb1, 0x00, 0xd8, 0x92, 0x31, 0xe4, 0x8b, 0x05, 0xbb, 0x15, 0xbb, 0xea, 0x00, - 0x61, 0xeb, 0x51, 0x32, 0x71, 0x16, 0xa0, 0x56, 0x78, 0xde, 0x03, 0xc4, 0xd6, 0x5d, 0x1b, 0x88, - 0xdd, 0x27, 0xd2, 0x53, 0xa3, 0x44, 0x1a, 0x06, 0x45, 0xda, 0x85, 0x75, 0xda, 0x0f, 0xeb, 0xb7, - 0xb2, 0x90, 0x69, 0xee, 0x75, 0xdb, 0xd6, 0x7a, 0xc7, 0x1d, 0xd1, 0xce, 0xc1, 0x09, 0xaa, 0x00, - 0xd4, 0xd2, 0xe5, 0x5d, 0xac, 0x1b, 0x78, 0x89, 0x2c, 0x18, 0x6c, 0x43, 0xe3, 0x43, 0xbf, 0x59, - 0xf2, 0x6b, 0x6c, 0x2b, 0xbd, 0xea, 0x4e, 0xcf, 0xdc, 0x5b, 0xb2, 0xf0, 0xa0, 0x3e, 0x77, 0x99, - 0x48, 0xf1, 0x1e, 0x40, 0xa6, 0xbe, 0xd7, 0xd2, 0x1c, 0xfc, 0x24, 0xbc, 0xa3, 0x99, 0xd8, 0x69, - 0x14, 0xf5, 0x47, 0x18, 0x9c, 0x02, 0xfd, 0x26, 0xb7, 0x45, 0x7d, 0x1b, 0x7a, 0xab, 0x69, 0x01, - 0xf3, 0xd4, 0x4b, 0x21, 0x6f, 0xcb, 0xb3, 0xb3, 0x40, 0x79, 0xce, 0x90, 0xfc, 0x9e, 0xc4, 0x4b, - 0x4e, 0x6a, 0xc6, 0xfc, 0xbc, 0x30, 0x60, 0x7e, 0xde, 0x81, 0xa9, 0x45, 0x4b, 0xf6, 0x8f, 0x3c, - 0x34, 0x8e, 0xf0, 0xc0, 0xfe, 0x6b, 0x89, 0xb4, 0xd6, 0x37, 0x2d, 0x11, 0xab, 0x75, 0x1b, 0x44, - 0xea, 0xe8, 0x50, 0x14, 0x92, 0x42, 0x9c, 0x83, 0x6b, 0xd8, 0xaf, 0x8b, 0xec, 0x98, 0x68, 0x0b, - 0x64, 0x68, 0x9a, 0x7d, 0xe2, 0x94, 0x1f, 0x25, 0x4e, 0x85, 0x01, 0x71, 0xe2, 0xb4, 0xb5, 0x1c, - 0x88, 0x42, 0xf2, 0xd3, 0xcc, 0x17, 0x04, 0xc8, 0xd9, 0x2c, 0x47, 0x6f, 0x49, 0x31, 0xcf, 0xf7, - 0x29, 0xa8, 0xee, 0xf3, 0x7d, 0x27, 0x3c, 0x21, 0x19, 0x7e, 0x3f, 0xbf, 0x01, 0x67, 0xc2, 0x3d, - 0xbb, 0x11, 0x81, 0x3a, 0x7d, 0x19, 0xa5, 0xbb, 0xa1, 0xd1, 0xeb, 0xb9, 0x11, 0x22, 0x4c, 0x92, - 0x72, 0x1e, 0x5b, 0x84, 0xd4, 0x3d, 0x11, 0xe7, 0xdf, 0x19, 0x6b, 0x98, 0x47, 0xaf, 0x64, 0x9c, - 0xc4, 0xac, 0x53, 0x87, 0x15, 0xd4, 0x07, 0x16, 0x0d, 0x0e, 0x3d, 0x07, 0x3b, 0x0d, 0x47, 0xfb, - 0x5d, 0xb9, 0xab, 0x75, 0xf7, 0x76, 0x94, 0xd7, 0xb8, 0x0b, 0x05, 0x26, 0x8e, 0x55, 0xd3, 0xe3, - 0x18, 0x4c, 0x2c, 0x8a, 0x82, 0x9d, 0x30, 0x6f, 0x28, 0x2a, 0x26, 0x0a, 0xfc, 0x8e, 0x45, 0x68, - 0x1a, 0x8e, 0xd4, 0x53, 0x86, 0x54, 0x91, 0x3c, 0xb7, 0xff, 0x3e, 0x05, 0x27, 0xce, 0xe3, 0x2e, - 0xd6, 0x95, 0xb6, 0xdd, 0x28, 0x2e, 0x6b, 0x8b, 0xc3, 0x72, 0xb0, 0x8b, 0x51, 0x3e, 0x3b, 0x89, - 0xc1, 0xe5, 0x24, 0x7f, 0x51, 0x92, 0x87, 0x2c, 0xe9, 0xd7, 0x73, 0xd7, 0x7c, 0xed, 0x89, 0x53, - 0xa9, 0x6f, 0x3e, 0x71, 0x2a, 0xf5, 0xfd, 0x27, 0x4e, 0xa5, 0x7e, 0xf1, 0xc9, 0x53, 0x47, 0xbe, - 0xf9, 0xe4, 0xa9, 0x23, 0x7f, 0xfe, 0xe4, 0xa9, 0x23, 0xff, 0x5f, 0xba, 0xb7, 0xbe, 0x9e, 0x23, - 0x7a, 0xae, 0xb7, 0xfe, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x87, 0x01, 0xa4, 0xc7, 0x65, 0x0c, + 0x06, 0xeb, 0x88, 0x60, 0x98, 0xf1, 0x71, 0xae, 0x75, 0xc6, 0x88, 0x0a, 0xf6, 0x91, 0xc5, 0x5f, + 0x4b, 0xc3, 0x74, 0xb9, 0xd7, 0x53, 0x77, 0xdc, 0x61, 0x3e, 0xca, 0x45, 0x8d, 0xcf, 0x42, 0x4a, + 0x7a, 0x97, 0x85, 0x94, 0xef, 0x73, 0x4f, 0x03, 0x0c, 0x01, 0x01, 0x87, 0x17, 0x7c, 0xc3, 0x7e, + 0x58, 0x49, 0xc9, 0x8f, 0x59, 0xef, 0x7b, 0x11, 0x64, 0x89, 0xe3, 0x31, 0xf4, 0x69, 0x01, 0xf2, + 0xaa, 0xb6, 0x5e, 0xeb, 0xae, 0x69, 0xc3, 0x74, 0x07, 0x37, 0xb0, 0xfb, 0x8e, 0x92, 0xfc, 0x17, + 0x4f, 0xc0, 0x21, 0xeb, 0xd7, 0x91, 0x0f, 0x6a, 0x68, 0xbd, 0x20, 0x0d, 0xc4, 0x8a, 0xc7, 0xe1, + 0xa0, 0xa9, 0x99, 0xb2, 0xea, 0xd7, 0x59, 0xcf, 0x4a, 0x4c, 0x9c, 0x85, 0x1a, 0x09, 0x37, 0x95, + 0xb7, 0x61, 0xaa, 0xd3, 0xea, 0x45, 0x88, 0x57, 0xc2, 0xf4, 0x9a, 0xa2, 0x1b, 0xa6, 0x9d, 0xba, + 0x65, 0x1f, 0x53, 0x64, 0x25, 0x36, 0xd2, 0x36, 0x10, 0xef, 0x46, 0x9c, 0xc3, 0x3a, 0x51, 0x95, + 0x23, 0x06, 0xe2, 0xfd, 0xb1, 0x16, 0x3d, 0xaa, 0xec, 0x2b, 0xac, 0x60, 0xd3, 0xe3, 0x8f, 0x73, + 0xcc, 0xbc, 0x79, 0x45, 0xd9, 0x8a, 0x87, 0x6c, 0xa4, 0x55, 0xa3, 0x15, 0xb1, 0xd4, 0x57, 0xd5, + 0x26, 0x6e, 0x97, 0xd7, 0x35, 0xa2, 0x7e, 0x98, 0x95, 0x06, 0x62, 0x45, 0x04, 0x85, 0x7e, 0xaf, + 0x69, 0xca, 0x66, 0xdf, 0xa0, 0x1a, 0x26, 0x6e, 0xd8, 0x92, 0xc8, 0x8e, 0x76, 0xa1, 0x4b, 0xbf, + 0xda, 0x4a, 0x4d, 0xbe, 0x18, 0x6b, 0x7e, 0xb0, 0x85, 0x70, 0xda, 0x9e, 0x35, 0x6c, 0xc9, 0xfa, + 0x63, 0x01, 0xc0, 0xdc, 0xd0, 0xb1, 0xdc, 0x19, 0x0a, 0xd7, 0xeb, 0xe0, 0xa8, 0xaa, 0xad, 0x1b, + 0xe7, 0x15, 0x73, 0xc3, 0x03, 0xe2, 0x8c, 0x03, 0x60, 0x56, 0x0a, 0xf8, 0x2a, 0xbe, 0x11, 0x5e, + 0xea, 0x7c, 0x39, 0xbf, 0xa1, 0xa9, 0xb8, 0xa5, 0x63, 0x3c, 0x80, 0x6f, 0x56, 0x0a, 0x4b, 0x22, + 0x96, 0x20, 0x63, 0x7d, 0x9e, 0xc9, 0x90, 0x59, 0x86, 0x3d, 0xba, 0x22, 0x62, 0x56, 0xa2, 0x22, + 0x26, 0x91, 0x74, 0xe2, 0x4d, 0x70, 0x99, 0x76, 0xa1, 0xbb, 0xa0, 0xad, 0x9f, 0x91, 0x8d, 0x8a, + 0xbc, 0x86, 0x25, 0x6c, 0x4f, 0xde, 0x9a, 0x4e, 0x0f, 0xac, 0x82, 0x3e, 0x8b, 0x25, 0x10, 0xdb, + 0xf2, 0x1a, 0x5e, 0x60, 0x01, 0xb0, 0x25, 0x63, 0xc8, 0x17, 0x0b, 0x76, 0x2b, 0x76, 0xd9, 0x01, + 0xc2, 0xd6, 0xa3, 0x64, 0xe2, 0x2c, 0x40, 0xad, 0xf0, 0x9c, 0x07, 0x88, 0xad, 0xbb, 0x36, 0x10, + 0xbb, 0x4b, 0xa4, 0xa7, 0x46, 0x89, 0x34, 0x0c, 0x8a, 0xb4, 0x0b, 0xeb, 0x01, 0x3f, 0xac, 0xdf, + 0xcc, 0x42, 0xa6, 0xb9, 0xd3, 0x6d, 0x5b, 0xeb, 0x1d, 0x77, 0x44, 0x3b, 0x05, 0x47, 0xa8, 0x02, + 0x50, 0x4b, 0x97, 0xb7, 0xb1, 0x6e, 0xe0, 0x05, 0xb2, 0x60, 0xb0, 0x0d, 0x8d, 0x0f, 0xfd, 0x66, + 0xc9, 0xaf, 0xb1, 0xa9, 0xf4, 0xaa, 0x5b, 0x3d, 0x73, 0x67, 0xc1, 0xc2, 0x83, 0xba, 0xd3, 0x65, + 0x22, 0xc5, 0xdb, 0x01, 0x99, 0xfa, 0x4e, 0x4b, 0x73, 0xf0, 0x93, 0xf0, 0x96, 0x66, 0x62, 0xa7, + 0x51, 0xd4, 0xd5, 0x60, 0x70, 0x0a, 0xf4, 0x1b, 0xdc, 0x16, 0xf5, 0x6d, 0xe8, 0xad, 0xa6, 0x05, + 0xcc, 0x53, 0xaf, 0x87, 0xbc, 0x2d, 0xcf, 0xce, 0x02, 0xe5, 0x65, 0x43, 0xf2, 0x7b, 0x12, 0x2f, + 0x39, 0xa9, 0x19, 0xf3, 0xf3, 0xc2, 0x80, 0xf9, 0x79, 0x07, 0xa6, 0x16, 0x2d, 0xd9, 0x3f, 0xf2, + 0xd0, 0x38, 0xc2, 0x03, 0xfb, 0xaf, 0x25, 0xd2, 0x5a, 0xdf, 0xb4, 0x44, 0xac, 0xd6, 0x6d, 0x10, + 0xa9, 0xa3, 0x43, 0x51, 0x48, 0x0a, 0x71, 0x16, 0x2e, 0x67, 0xbf, 0x9e, 0x61, 0xc7, 0x44, 0x5b, + 0x20, 0x43, 0xd3, 0xec, 0x12, 0xa7, 0xfc, 0x28, 0x71, 0x2a, 0x0c, 0x88, 0x13, 0xa7, 0xad, 0xe5, + 0x40, 0x14, 0x92, 0x9f, 0x66, 0xbe, 0x20, 0x40, 0xce, 0x66, 0x39, 0x7a, 0x4f, 0x8a, 0x79, 0xbe, + 0x4f, 0x41, 0x75, 0x9f, 0xef, 0x3b, 0xe1, 0x09, 0xc9, 0xf0, 0x27, 0xf8, 0x0d, 0x38, 0x13, 0xee, + 0xd9, 0x8d, 0x08, 0xd4, 0xe9, 0xcb, 0x28, 0xdd, 0x35, 0x8d, 0x5e, 0xcf, 0x8d, 0x10, 0x61, 0x92, + 0x94, 0xf3, 0xd8, 0x22, 0xa4, 0xee, 0x89, 0xf8, 0xf5, 0xce, 0x58, 0xc3, 0x3c, 0x7a, 0x33, 0xe3, + 0x24, 0x66, 0x95, 0x3a, 0xac, 0xa0, 0x3e, 0xb0, 0x68, 0x70, 0xe8, 0x39, 0xd8, 0x71, 0x38, 0xd8, + 0xef, 0xca, 0x5d, 0xad, 0xbb, 0xb3, 0xa5, 0xbc, 0xcd, 0x5d, 0x28, 0x30, 0x71, 0xac, 0x9a, 0x1e, + 0xc7, 0x60, 0x62, 0x51, 0x14, 0xec, 0x5f, 0x79, 0x4d, 0x51, 0x31, 0x51, 0xe0, 0x77, 0x2c, 0x42, + 0xd3, 0x70, 0xa4, 0x9e, 0x32, 0xa4, 0x8a, 0xe4, 0xb9, 0xfd, 0xf7, 0x29, 0x38, 0x72, 0x1a, 0x77, + 0xb1, 0xae, 0xb4, 0xed, 0x46, 0x71, 0x59, 0x5b, 0x1c, 0x96, 0x83, 0x5d, 0x8c, 0xf2, 0xd9, 0x49, + 0x0c, 0x2e, 0x27, 0xf9, 0x8b, 0x92, 0x3c, 0x64, 0x49, 0xbf, 0x9e, 0xbd, 0xfc, 0xab, 0xcf, 0x1e, + 0x4b, 0x7d, 0xe3, 0xd9, 0x63, 0xa9, 0xef, 0x3d, 0x7b, 0x2c, 0xf5, 0x8b, 0xcf, 0x1d, 0xbb, 0xe4, + 0x1b, 0xcf, 0x1d, 0xbb, 0xe4, 0xcf, 0x9e, 0x3b, 0x76, 0xc9, 0xff, 0x97, 0xee, 0xad, 0xae, 0xe6, + 0x88, 0x9e, 0xeb, 0x0d, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0xab, 0xcf, 0xa1, 0xa7, 0x40, 0x0c, 0x01, 0x00, } @@ -52804,20 +52790,6 @@ func (m *RpcAccountCreateRequestAvatarOfAvatarLocalPath) MarshalToSizedBuffer(dA dAtA[i] = 0x12 return len(dAtA) - i, nil } -func (m *RpcAccountCreateRequestAvatarOfAvatarColor) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcAccountCreateRequestAvatarOfAvatarColor) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - i -= len(m.AvatarColor) - copy(dAtA[i:], m.AvatarColor) - i = encodeVarintCommands(dAtA, i, uint64(len(m.AvatarColor))) - i-- - dAtA[i] = 0x1a - return len(dAtA) - i, nil -} func (m *RpcAccountCreateResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -69102,16 +69074,6 @@ func (m *RpcAccountCreateRequestAvatarOfAvatarLocalPath) Size() (n int) { n += 1 + l + sovCommands(uint64(l)) return n } -func (m *RpcAccountCreateRequestAvatarOfAvatarColor) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.AvatarColor) - n += 1 + l + sovCommands(uint64(l)) - return n -} func (m *RpcAccountCreateResponse) Size() (n int) { if m == nil { return 0 @@ -111608,38 +111570,6 @@ func (m *RpcAccountCreateRequest) Unmarshal(dAtA []byte) error { } m.Avatar = &RpcAccountCreateRequestAvatarOfAvatarLocalPath{string(dAtA[iNdEx:postIndex])} iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AvatarColor", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Avatar = &RpcAccountCreateRequestAvatarOfAvatarColor{string(dAtA[iNdEx:postIndex])} - iNdEx = postIndex case 20: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field AlphaInviteCode", wireType) diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index 8a4f485b3..ec9a81822 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -2318,7 +2318,6 @@ message Rpc { string name = 1; // Account name oneof avatar { string avatarLocalPath = 2; // Path to an image, that will be used as an avatar of this account - string avatarColor = 3; // Avatar color as an alternative for avatar image } From dd26c08a699fd9bf1db3b5366351ec37e9daaaef Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Fri, 4 Feb 2022 09:35:19 +0100 Subject: [PATCH 13/49] ObjectGraph: ignore hidden relations --- core/object.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/object.go b/core/object.go index 9cfbe4720..093a332b0 100644 --- a/core/object.go +++ b/core/object.go @@ -306,8 +306,10 @@ func (mw *Middleware) ObjectGraph(req *pb.RpcObjectGraphRequest) *pb.RpcObjectGr continue } - if rel.Key == bundle.RelationKeyId.String() || rel.Key == bundle.RelationKeyType.String() || rel.Key == bundle.RelationKeyCreator.String() || rel.Key == bundle.RelationKeyLastModifiedBy.String() { - outgoingRelationLink[l] = struct{}{} + if rel.Hidden || + rel.Key == bundle.RelationKeyId.String() || + rel.Key == bundle.RelationKeyCreator.String() || + rel.Key == bundle.RelationKeyLastModifiedBy.String() { continue } From 8ceb069eec4653b7baa7d71055452d2ccff605fb Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Fri, 4 Feb 2022 09:36:41 +0100 Subject: [PATCH 14/49] ObjectGraph: use indexed links in the details --- core/object.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/object.go b/core/object.go index 093a332b0..3795e4b40 100644 --- a/core/object.go +++ b/core/object.go @@ -325,7 +325,7 @@ func (mw *Middleware) ObjectGraph(req *pb.RpcObjectGraphRequest) *pb.RpcObjectGr } } } - links, _ := at.ObjectStore().GetOutboundLinksById(id) + links := pbtypes.GetStringList(rec.Details, bundle.RelationKeyLinks.String()) for _, link := range links { sbType, _ := smartblock.SmartBlockTypeFromID(link) // ignore files because we index all file blocks as outgoing links From a83ea1a2f5319bf13cf96cf9e18c0d47ad8c7cf3 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Fri, 4 Feb 2022 15:19:07 +0300 Subject: [PATCH 15/49] fix subscription keys collect --- core/subscription/context.go | 4 ++-- core/subscription/service.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/subscription/context.go b/core/subscription/context.go index 522e3ae5e..6ebac2ab6 100644 --- a/core/subscription/context.go +++ b/core/subscription/context.go @@ -172,8 +172,8 @@ func (ctx *opCtx) collectKeys(id string, subId string, keys []string) { if kb.id == id { found = true for _, k := range keys { - if slice.FindPos(kb.keys, k) == -1 { - ctx.keysBuf[i].keys = append(kb.keys, k) + if slice.FindPos(ctx.keysBuf[i].keys, k) == -1 { + ctx.keysBuf[i].keys = append(ctx.keysBuf[i].keys, k) } } if slice.FindPos(kb.subIds, subId) == -1 { diff --git a/core/subscription/service.go b/core/subscription/service.go index 81f278c52..3aeff7f81 100644 --- a/core/subscription/service.go +++ b/core/subscription/service.go @@ -257,8 +257,8 @@ func (s *service) onChange(entries []*entry) { for _, sub := range s.subscriptions { sub.onChange(s.ctxBuf) } - log.Debugf("handle %d etries; ctx: %#v", len(entries), s.ctxBuf) event := s.ctxBuf.apply() + log.Debugf("handle %d etries; event: %v", len(entries), pbtypes.Sprint(event)) s.sendEvent(event) } From c68949e8bc3ccb334a36d9ecba7fd45614586618 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Fri, 4 Feb 2022 15:52:54 +0300 Subject: [PATCH 16/49] subscriptions optimize dep fetch --- core/subscription/dep.go | 38 +++++++++++++++++++------------ core/subscription/service.go | 6 ++++- core/subscription/service_test.go | 9 ++------ 3 files changed, 31 insertions(+), 22 deletions(-) diff --git a/core/subscription/dep.go b/core/subscription/dep.go index cb68d743c..40b3c7a89 100644 --- a/core/subscription/dep.go +++ b/core/subscription/dep.go @@ -48,33 +48,43 @@ func (ds *dependencyService) depEntriesByEntries(ctx *opCtx, entries []*entry, d if len(depIds) == 0 { return } - depRecords, err := ds.s.objectStore.QueryById(depIds) - if err != nil { - log.Errorf("can't query by id: %v", err) - } - depEntries = make([]*entry, 0, len(depRecords)) - for _, r := range depRecords { + var missIds []string + for _, id := range depIds { var e *entry - id := pbtypes.GetString(r.Details, "id") // priority: ctx.entries, cache, objectStore if e = ctx.getEntry(id); e == nil { - if e = ds.s.cache.Get(id); e == nil { - e = &entry{ - id: id, - data: r.Details, - } - } else { + if e = ds.s.cache.Get(id); e != nil { e = &entry{ id: id, data: e.data, subIds: e.subIds, subIsActive: e.subIsActive, } + } else { + missIds = append(missIds, id) + } + if e != nil { + ctx.entries = append(ctx.entries, e) + } + } + if e != nil { + depEntries = append(depEntries, e) + } + } + if len(missIds) > 0 { + records, err := ds.s.objectStore.QueryById(missIds) + if err != nil { + log.Errorf("can't query by id: %v", err) + } + for _, r := range records { + e := &entry{ + id: pbtypes.GetString(r.Details, "id"), + data: r.Details, } ctx.entries = append(ctx.entries, e) + depEntries = append(depEntries, e) } - depEntries = append(depEntries, e) } return } diff --git a/core/subscription/service.go b/core/subscription/service.go index 3aeff7f81..a2c8b2d32 100644 --- a/core/subscription/service.go +++ b/core/subscription/service.go @@ -3,6 +3,7 @@ package subscription import ( "fmt" "sync" + "time" "github.com/anytypeio/go-anytype-middleware/app" "github.com/anytypeio/go-anytype-middleware/core/event" @@ -252,13 +253,16 @@ func (s *service) recordsHandler() { func (s *service) onChange(entries []*entry) { s.m.Lock() defer s.m.Unlock() + st := time.Now() s.ctxBuf.reset() s.ctxBuf.entries = entries for _, sub := range s.subscriptions { sub.onChange(s.ctxBuf) } + handleTime := time.Since(st) event := s.ctxBuf.apply() - log.Debugf("handle %d etries; event: %v", len(entries), pbtypes.Sprint(event)) + dur := time.Since(st) + log.Debugf("handle %d etries; %v(handle:%v;genEvents:%v) event: %v", len(entries), dur, handleTime, dur-handleTime, pbtypes.Sprint(event)) s.sendEvent(event) } diff --git a/core/subscription/service_test.go b/core/subscription/service_test.go index 47fe5ebd3..e97e10981 100644 --- a/core/subscription/service_test.go +++ b/core/subscription/service_test.go @@ -44,7 +44,7 @@ func TestService_Search(t *testing.T) { "id": pbtypes.String("author1"), "name": pbtypes.String("author1"), }}}, - }, nil) + }, nil).AnyTimes() resp, err := fx.Search(pb.RpcObjectSearchSubscribeRequest{ SubId: subId, @@ -63,7 +63,7 @@ func TestService_Search(t *testing.T) { newSub(fx, "test") - fx.store.EXPECT().QueryById([]string{"author2", "author3", "1"}).Return([]database.Record{ + fx.store.EXPECT().QueryById([]string{"author2", "author3"}).Return([]database.Record{ {Details: &types.Struct{Fields: map[string]*types.Value{ "id": pbtypes.String("author2"), "name": pbtypes.String("author2"), @@ -72,11 +72,6 @@ func TestService_Search(t *testing.T) { "id": pbtypes.String("author3"), "name": pbtypes.String("author3"), }}}, - {Details: &types.Struct{Fields: map[string]*types.Value{ - "id": pbtypes.String("1"), - "name": pbtypes.String("one"), - "author": pbtypes.StringList([]string{"author2", "author3", "1"}), - }}}, }, nil) fx.Service.(*service).onChange([]*entry{ From 6f17dfa34b356b851ce2d1b2ecf05d387a639c23 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Fri, 4 Feb 2022 19:32:52 +0300 Subject: [PATCH 17/49] subscriptions: noDepSubscription flag + dep objects optimize --- core/subscription/dep.go | 17 +- core/subscription/service.go | 8 +- core/subscription/simple.go | 12 + core/subscription/sorted.go | 3 +- docs/proto.md | 1 + pb/commands.pb.go | 1209 ++++++++++++++++++---------------- pb/protos/commands.proto | 2 + 7 files changed, 661 insertions(+), 591 deletions(-) diff --git a/core/subscription/dep.go b/core/subscription/dep.go index 40b3c7a89..9131b5ce5 100644 --- a/core/subscription/dep.go +++ b/core/subscription/dep.go @@ -23,19 +23,22 @@ type dependencyService struct { func (ds *dependencyService) makeSubscriptionByEntries(subId string, allEntries, activeEntries []*entry, keys, depKeys, filterDepIds []string) *simpleSub { depSub := ds.s.newSimpleSub(subId, keys, true) depSub.forceIds = filterDepIds - depEntries := ds.depEntriesByEntries(&opCtx{entries: allEntries}, activeEntries, depKeys, depSub.forceIds) + depEntries := ds.depEntriesByEntries(&opCtx{entries: allEntries}, ds.depIdsByEntries(activeEntries, depKeys, depSub.forceIds)) depSub.init(depEntries) return depSub } func (ds *dependencyService) refillSubscription(ctx *opCtx, sub *simpleSub, entries []*entry, depKeys []string) { - depEntries := ds.depEntriesByEntries(ctx, entries, depKeys, sub.forceIds) - sub.refill(ctx, depEntries) + depIds := ds.depIdsByEntries(entries, depKeys, sub.forceIds) + if !sub.isEqualIds(depIds) { + depEntries := ds.depEntriesByEntries(ctx, depIds) + sub.refill(ctx, depEntries) + } return } -func (ds *dependencyService) depEntriesByEntries(ctx *opCtx, entries []*entry, depKeys, forceIds []string) (depEntries []*entry) { - var depIds = forceIds +func (ds *dependencyService) depIdsByEntries(entries []*entry, depKeys, forceIds []string) (depIds []string) { + depIds = forceIds for _, e := range entries { for _, k := range depKeys { for _, depId := range pbtypes.GetStringList(e.data, k) { @@ -45,6 +48,10 @@ func (ds *dependencyService) depEntriesByEntries(ctx *opCtx, entries []*entry, d } } } + return +} + +func (ds *dependencyService) depEntriesByEntries(ctx *opCtx, depIds []string) (depEntries []*entry) { if len(depIds) == 0 { return } diff --git a/core/subscription/service.go b/core/subscription/service.go index a2c8b2d32..0a076a639 100644 --- a/core/subscription/service.go +++ b/core/subscription/service.go @@ -130,7 +130,11 @@ func (s *service) Search(req pb.RpcObjectSearchSubscribeRequest) (resp *pb.RpcOb req.Limit = 0 } sub := s.newSortedSub(req.SubId, req.Keys, f.FilterObj, f.Order, int(req.Limit), int(req.Offset)) - sub.forceSubIds = filterDepIds + if req.NoDepSubscription { + sub.disableDep = true + } else { + sub.forceSubIds = filterDepIds + } entries := make([]*entry, 0, len(records)) for _, r := range records { entries = append(entries, &entry{ @@ -262,7 +266,7 @@ func (s *service) onChange(entries []*entry) { handleTime := time.Since(st) event := s.ctxBuf.apply() dur := time.Since(st) - log.Debugf("handle %d etries; %v(handle:%v;genEvents:%v) event: %v", len(entries), dur, handleTime, dur-handleTime, pbtypes.Sprint(event)) + log.Debugf("handle %d entries; %v(handle:%v;genEvents:%v); cacheSize: %d; ctx.ch: %v", len(entries), dur, handleTime, dur-handleTime, len(s.cache.entries), len(s.ctxBuf.change)) s.sendEvent(event) } diff --git a/core/subscription/simple.go b/core/subscription/simple.go index cad297567..504ca35cf 100644 --- a/core/subscription/simple.go +++ b/core/subscription/simple.go @@ -47,6 +47,18 @@ func (s *simpleSub) init(entries []*entry) (err error) { return } +func (s *simpleSub) isEqualIds(ids []string) bool { + if len(s.set) != len(ids) { + return false + } + for _, id := range ids { + if _, ok := s.set[id]; !ok { + return false + } + } + return true +} + func (s *simpleSub) refill(ctx *opCtx, entries []*entry) { var newSet = make(map[string]struct{}) for _, e := range entries { diff --git a/core/subscription/sorted.go b/core/subscription/sorted.go index e714c4187..2657bf689 100644 --- a/core/subscription/sorted.go +++ b/core/subscription/sorted.go @@ -46,6 +46,7 @@ type sortedSub struct { activeEntriesBuf []*entry forceSubIds []string + disableDep bool cache *cache ds *dependencyService @@ -111,7 +112,7 @@ func (s *sortedSub) init(entries []*entry) (err error) { ae.SetSub(s.id, true) } - if s.ds != nil { + if s.ds != nil && !s.disableDep { s.depKeys = s.ds.depKeys(s.keys) if len(s.depKeys) > 0 || len(s.forceSubIds) > 0 { s.depSub = s.ds.makeSubscriptionByEntries(s.id+"/dep", entries, activeEntries, s.keys, s.depKeys, s.forceSubIds) diff --git a/docs/proto.md b/docs/proto.md index 502c393a5..ab6318d22 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -9220,6 +9220,7 @@ deprecated, to be removed | | beforeId | [string](#string) | | (optional) pagination: middleware will return results before given id | | source | [string](#string) | repeated | | | ignoreWorkspace | [string](#string) | | | +| noDepSubscription | [bool](#bool) | | disable dependent subscription | diff --git a/pb/commands.pb.go b/pb/commands.pb.go index b8e787d3b..c0553ba74 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -31951,6 +31951,8 @@ type RpcObjectSearchSubscribeRequest struct { BeforeId string `protobuf:"bytes,9,opt,name=beforeId,proto3" json:"beforeId,omitempty"` Source []string `protobuf:"bytes,10,rep,name=source,proto3" json:"source,omitempty"` IgnoreWorkspace string `protobuf:"bytes,12,opt,name=ignoreWorkspace,proto3" json:"ignoreWorkspace,omitempty"` + // disable dependent subscription + NoDepSubscription bool `protobuf:"varint,13,opt,name=noDepSubscription,proto3" json:"noDepSubscription,omitempty"` } func (m *RpcObjectSearchSubscribeRequest) Reset() { *m = RpcObjectSearchSubscribeRequest{} } @@ -32056,6 +32058,13 @@ func (m *RpcObjectSearchSubscribeRequest) GetIgnoreWorkspace() string { return "" } +func (m *RpcObjectSearchSubscribeRequest) GetNoDepSubscription() bool { + if m != nil { + return m.NoDepSubscription + } + return false +} + type RpcObjectSearchSubscribeResponse struct { Error *RpcObjectSearchSubscribeResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` Records []*types.Struct `protobuf:"bytes,2,rep,name=records,proto3" json:"records,omitempty"` @@ -38542,372 +38551,372 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 10006 bytes of a gzipped FileDescriptorProto + // 10024 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x7b, 0x94, 0x24, 0x57, - 0x79, 0x9f, 0xba, 0xab, 0x5f, 0xf3, 0xed, 0xce, 0x6e, 0xab, 0x58, 0x56, 0xc3, 0x45, 0x2c, 0x62, - 0x91, 0x84, 0x90, 0x45, 0x2f, 0x5a, 0x21, 0x90, 0x84, 0x1e, 0xf4, 0xf4, 0xf4, 0xec, 0xb6, 0x76, - 0xa6, 0x7b, 0x5c, 0xdd, 0xb3, 0x8b, 0x82, 0x93, 0x49, 0x4d, 0xf7, 0x9d, 0x99, 0x62, 0x6a, 0xaa, - 0x9a, 0xaa, 0xea, 0x59, 0x0d, 0xe7, 0x38, 0x09, 0x60, 0x82, 0x0d, 0x07, 0x62, 0xf0, 0x03, 0x21, - 0x62, 0x1e, 0xc2, 0x18, 0x83, 0x79, 0x58, 0x18, 0x2c, 0x1e, 0x21, 0x60, 0x47, 0x84, 0x87, 0x71, - 0x0c, 0xf1, 0x03, 0x83, 0x0f, 0x04, 0x8b, 0x70, 0x4e, 0x12, 0x4c, 0x30, 0x0e, 0xb1, 0x0f, 0xf6, - 0x21, 0xce, 0xa9, 0x5b, 0xb7, 0x1e, 0xb7, 0xa7, 0xab, 0xfa, 0x56, 0x4f, 0x55, 0xcf, 0x72, 0xfc, - 0x57, 0xf7, 0xbd, 0x75, 0xeb, 0xde, 0xef, 0x7e, 0xbf, 0xef, 0x3e, 0xea, 0xbb, 0xdf, 0xfd, 0x3e, - 0x98, 0xeb, 0xaf, 0x9f, 0xe9, 0x1b, 0xba, 0xa5, 0x9b, 0x67, 0xba, 0xfa, 0xce, 0x8e, 0xac, 0xf5, - 0xcc, 0x0a, 0x49, 0x8b, 0x45, 0x59, 0xdb, 0xb3, 0xf6, 0xfa, 0x18, 0x5d, 0xdf, 0xdf, 0xde, 0x3c, - 0xa3, 0x2a, 0xeb, 0x67, 0xfa, 0xeb, 0x67, 0x76, 0xf4, 0x1e, 0x56, 0xdd, 0x17, 0x48, 0x82, 0x16, - 0x47, 0x37, 0x85, 0x95, 0x52, 0xf5, 0xae, 0xac, 0x9a, 0x96, 0x6e, 0x60, 0x5a, 0xf2, 0xa4, 0xdf, - 0x24, 0xde, 0xc5, 0x9a, 0xe5, 0xd6, 0x70, 0xed, 0xa6, 0xae, 0x6f, 0xaa, 0xd8, 0x79, 0xb6, 0x3e, - 0xd8, 0x38, 0x63, 0x5a, 0xc6, 0xa0, 0x6b, 0x39, 0x4f, 0x4f, 0x3f, 0xf4, 0x70, 0x0e, 0x04, 0xa9, - 0xdf, 0x45, 0x8f, 0x67, 0xa1, 0xb8, 0x8c, 0x2d, 0x43, 0xe9, 0x9a, 0xe8, 0x63, 0x59, 0x98, 0x6d, - 0x63, 0x6b, 0x45, 0x36, 0xe4, 0x1d, 0x6c, 0x61, 0xc3, 0x44, 0x37, 0x40, 0x51, 0xc2, 0x2f, 0x1b, - 0x60, 0xd3, 0x12, 0x11, 0x94, 0xfa, 0xaa, 0x6c, 0x6d, 0xe8, 0xc6, 0xce, 0x5c, 0xe6, 0xba, 0xcc, - 0x4d, 0x33, 0x92, 0x97, 0x46, 0xff, 0x98, 0x81, 0x92, 0x84, 0xcd, 0xbe, 0xae, 0x99, 0x58, 0x3c, - 0x07, 0x79, 0x6c, 0x18, 0xba, 0x41, 0x4a, 0x1d, 0x39, 0x7b, 0x6b, 0x85, 0xf6, 0xbc, 0x22, 0xf5, - 0xbb, 0x15, 0xda, 0x54, 0x85, 0x69, 0xa6, 0xe2, 0xbe, 0x5b, 0xa9, 0xdb, 0x2f, 0x4a, 0xce, 0xfb, - 0xe8, 0xbd, 0x19, 0xc8, 0x93, 0x0c, 0xf1, 0x7e, 0xc8, 0x75, 0xf5, 0x1e, 0x26, 0x35, 0x1e, 0x3b, - 0xfb, 0xfc, 0xd8, 0x35, 0x56, 0x6a, 0x7a, 0x0f, 0x4b, 0xa4, 0x0e, 0xf1, 0x3a, 0x38, 0xd2, 0xc3, - 0x66, 0xd7, 0x50, 0xfa, 0x96, 0xa2, 0x6b, 0x73, 0x59, 0xd2, 0x95, 0x60, 0xd6, 0xe9, 0xb3, 0x90, - 0xb3, 0xcb, 0x8b, 0x25, 0xc8, 0x35, 0x57, 0x97, 0x96, 0xca, 0x57, 0x89, 0x57, 0xc3, 0xec, 0x6a, - 0xf3, 0x42, 0xb3, 0x75, 0xa9, 0xb9, 0x56, 0x97, 0xa4, 0x96, 0x54, 0xce, 0x88, 0xb3, 0x30, 0x33, - 0x5f, 0x5d, 0x58, 0x6b, 0x34, 0x57, 0x56, 0x3b, 0xe5, 0x2c, 0xfa, 0x5f, 0x05, 0x38, 0x5a, 0x7f, - 0xd0, 0xc2, 0x86, 0x26, 0xab, 0x0b, 0x86, 0xde, 0x47, 0x4f, 0x08, 0x90, 0x5f, 0x54, 0x54, 0x6c, - 0xa2, 0x0f, 0x66, 0x7c, 0x26, 0x5e, 0x0b, 0x33, 0x5d, 0x5d, 0xb3, 0xf0, 0x83, 0x56, 0xa3, 0x47, - 0xb9, 0xe8, 0x67, 0x88, 0xa7, 0xe1, 0x68, 0xcf, 0xd0, 0xfb, 0x1d, 0xd9, 0xd8, 0xc4, 0x76, 0x01, - 0x87, 0x36, 0x26, 0x4f, 0xbc, 0x13, 0x4a, 0x7d, 0xdd, 0x54, 0x08, 0xed, 0x02, 0x61, 0xc7, 0xd3, - 0x3c, 0x76, 0x10, 0x41, 0xa9, 0xcc, 0xab, 0x7a, 0x77, 0xbb, 0xb2, 0x42, 0x0b, 0x49, 0x5e, 0x71, - 0xf1, 0x46, 0x38, 0x46, 0xa4, 0xc7, 0x26, 0x6b, 0x45, 0xb6, 0xb6, 0xcc, 0xb9, 0xdc, 0x75, 0xc2, - 0x4d, 0x33, 0xd2, 0x50, 0x2e, 0x7a, 0x4f, 0x36, 0x80, 0xe6, 0x02, 0x8b, 0x66, 0x85, 0xe1, 0x7d, - 0xb0, 0xc7, 0x15, 0xd2, 0xdb, 0xd1, 0x50, 0x8a, 0xb7, 0x40, 0x9e, 0x08, 0x27, 0xe9, 0xd2, 0x91, - 0xb3, 0x27, 0xfd, 0x5a, 0x68, 0xf1, 0xba, 0xfd, 0x54, 0x72, 0x0a, 0xa1, 0xdf, 0xf0, 0x80, 0x3f, - 0xc7, 0x00, 0x7f, 0x5b, 0xbc, 0xc6, 0xd3, 0x47, 0xfd, 0x87, 0x59, 0x28, 0xd6, 0x6c, 0xf8, 0x34, - 0x0b, 0x29, 0xbc, 0x28, 0xdf, 0x08, 0xc7, 0x36, 0xf4, 0xee, 0xc0, 0xc4, 0x3d, 0x82, 0x94, 0x87, - 0xf3, 0x50, 0xae, 0x38, 0x07, 0xc5, 0xae, 0x53, 0x37, 0x01, 0xfa, 0xa8, 0xe4, 0x26, 0xd1, 0x8f, - 0x83, 0xc3, 0x6d, 0x91, 0x05, 0xe8, 0xb9, 0xe1, 0x3c, 0xa2, 0x94, 0x86, 0x8c, 0xb6, 0xdf, 0xf4, - 0x98, 0xde, 0x60, 0x98, 0x7e, 0x7b, 0xdc, 0x0a, 0xd3, 0x67, 0xfb, 0x1f, 0x9f, 0x81, 0x19, 0xc2, - 0xa5, 0x25, 0xc5, 0xb4, 0xd0, 0x87, 0x04, 0x38, 0x59, 0xd3, 0xb5, 0x5d, 0x6c, 0x58, 0xb5, 0x2d, - 0x45, 0xed, 0x19, 0x58, 0xeb, 0xe8, 0x2b, 0xf2, 0x26, 0x36, 0x51, 0x97, 0x17, 0x13, 0x04, 0xa5, - 0x75, 0x87, 0xed, 0xe6, 0x5c, 0x96, 0x0c, 0x0a, 0x2f, 0x2d, 0x9e, 0x02, 0xd0, 0xd7, 0x5f, 0x8a, - 0xbb, 0x56, 0x67, 0xaf, 0x8f, 0x09, 0x14, 0x33, 0x52, 0x20, 0x07, 0x7d, 0x28, 0x38, 0x5c, 0x24, - 0x16, 0x8d, 0xbb, 0x19, 0xe6, 0x79, 0x34, 0x57, 0x46, 0xd3, 0x1b, 0x32, 0x78, 0xe6, 0xa0, 0xa8, - 0x2a, 0x5a, 0x80, 0x36, 0x37, 0x89, 0x3e, 0xe2, 0x61, 0xb6, 0xca, 0x60, 0x56, 0x3d, 0x48, 0xb3, - 0xe9, 0xe3, 0xf7, 0x77, 0x02, 0xe4, 0x96, 0xf5, 0x5d, 0x8c, 0xbe, 0x94, 0x49, 0x02, 0xa0, 0x9b, - 0xe0, 0xb8, 0x45, 0xa6, 0xc7, 0x9a, 0xf7, 0xbe, 0x83, 0xd2, 0x70, 0xf6, 0xbe, 0x09, 0x36, 0x37, - 0x66, 0x82, 0xcd, 0xc7, 0x9a, 0x60, 0xd1, 0xdb, 0x83, 0x92, 0xf0, 0x22, 0x56, 0x12, 0x6e, 0x0e, - 0x81, 0xc4, 0xe6, 0x43, 0x22, 0x93, 0xe6, 0x23, 0x9e, 0x2c, 0xd4, 0x18, 0x59, 0x38, 0xc3, 0xdf, - 0x70, 0xfa, 0xc8, 0xff, 0x4e, 0x0e, 0x66, 0xed, 0x86, 0x3b, 0x7a, 0x13, 0x5f, 0xb6, 0x85, 0x0f, - 0xfd, 0x69, 0x22, 0x22, 0x70, 0x2b, 0x14, 0x7b, 0xd8, 0x92, 0x15, 0xd5, 0x24, 0xd0, 0x1f, 0x39, - 0x7b, 0x4d, 0xc5, 0xd9, 0xfe, 0x54, 0xdc, 0xed, 0x4f, 0xa5, 0x4d, 0xb6, 0x3f, 0x92, 0x5b, 0x2e, - 0x6d, 0x59, 0xf8, 0x42, 0x50, 0x16, 0x1a, 0xac, 0x2c, 0xdc, 0x16, 0x01, 0x89, 0xc7, 0x99, 0x10, - 0xa1, 0x38, 0x09, 0x05, 0x67, 0xf4, 0x53, 0x48, 0x68, 0xca, 0x17, 0x16, 0x81, 0x47, 0x58, 0x7e, - 0xcb, 0x13, 0x96, 0x25, 0x46, 0x58, 0xee, 0x98, 0x80, 0xb2, 0xf4, 0xa5, 0xe6, 0xaf, 0x05, 0x98, - 0x59, 0x18, 0xf4, 0x55, 0xa5, 0x2b, 0x5b, 0x18, 0x3d, 0x1c, 0x47, 0x62, 0x2c, 0x76, 0x2f, 0xe5, - 0xa5, 0x19, 0x69, 0x12, 0x86, 0xa4, 0x29, 0x08, 0x7b, 0x2e, 0x1e, 0xec, 0x9f, 0x0d, 0xc2, 0x5e, - 0x67, 0x61, 0x0f, 0x1b, 0x89, 0x5e, 0xd7, 0x42, 0x20, 0x8f, 0x12, 0xfc, 0x78, 0xb0, 0xbf, 0xc7, - 0x83, 0xfd, 0x3c, 0x03, 0xfb, 0xf3, 0x62, 0x52, 0x96, 0x3e, 0xe4, 0x1f, 0xb9, 0x16, 0x84, 0x36, - 0xb6, 0xd0, 0xaf, 0x03, 0xe4, 0x3a, 0xf8, 0x41, 0x0b, 0xfd, 0xbe, 0x00, 0xf9, 0xb6, 0xb5, 0xa7, - 0x62, 0xf4, 0xca, 0x44, 0x66, 0x8c, 0x7b, 0x20, 0x6f, 0xda, 0xd5, 0xd1, 0x4d, 0xf4, 0xb3, 0x46, - 0x02, 0xec, 0x6e, 0x70, 0x6c, 0x0a, 0x2a, 0xa4, 0x75, 0xc9, 0x79, 0x0b, 0xfd, 0x4e, 0x10, 0xe7, - 0xfb, 0x59, 0x9c, 0xc3, 0xb8, 0xd9, 0xc6, 0xc1, 0x9a, 0x12, 0x99, 0xf4, 0xdf, 0xef, 0x01, 0xba, - 0xcc, 0x00, 0x7a, 0xe7, 0x24, 0x24, 0xa4, 0x8f, 0xea, 0x43, 0x02, 0xe4, 0x6b, 0xba, 0xaa, 0x1b, - 0xe8, 0x81, 0x24, 0x30, 0x3c, 0x01, 0xf9, 0xae, 0x5d, 0x1b, 0x5d, 0xee, 0x9d, 0xc4, 0xc1, 0xa0, - 0x21, 0xd4, 0x1d, 0x2e, 0x34, 0xa3, 0x48, 0x48, 0x1f, 0x9a, 0x4f, 0xda, 0x7b, 0x32, 0xd9, 0xd8, - 0x46, 0xff, 0x3a, 0x09, 0x64, 0xee, 0x82, 0xdc, 0x8e, 0x6c, 0x6c, 0xd3, 0x59, 0xe9, 0xc6, 0xf1, - 0x83, 0xcb, 0x6e, 0x5a, 0x22, 0xef, 0xa0, 0x47, 0x27, 0x58, 0x39, 0x3d, 0xe6, 0xd9, 0xf5, 0x24, - 0x02, 0x5f, 0xdc, 0x15, 0x32, 0x8a, 0x82, 0xf4, 0xd1, 0x7b, 0xbf, 0x00, 0xc7, 0xe7, 0xe5, 0xee, - 0xf6, 0xa6, 0xa1, 0x0f, 0xb4, 0x5e, 0xea, 0x43, 0xec, 0x53, 0x41, 0x88, 0x5a, 0x2c, 0x44, 0x51, - 0xf2, 0x3d, 0x44, 0x62, 0x22, 0x40, 0x3d, 0xea, 0x01, 0x25, 0x31, 0x40, 0xdd, 0x3b, 0x31, 0x1d, - 0xe9, 0xc3, 0xf5, 0x3e, 0x01, 0xf2, 0x55, 0x55, 0xd9, 0xd4, 0xd0, 0x20, 0x09, 0x90, 0x9e, 0x0b, - 0x79, 0xd9, 0xae, 0x8d, 0xae, 0x65, 0x68, 0xe4, 0x70, 0x23, 0xed, 0x49, 0x4e, 0x41, 0xf4, 0xde, - 0x09, 0xb6, 0x29, 0x36, 0xe3, 0x48, 0x25, 0x89, 0xc0, 0x16, 0x77, 0x2b, 0x12, 0xd6, 0x7a, 0xfa, - 0x60, 0xbd, 0x31, 0x07, 0x85, 0x45, 0x05, 0xab, 0x3d, 0x13, 0xfd, 0x39, 0xf7, 0xd6, 0xe3, 0x22, - 0x1c, 0x21, 0xf0, 0x38, 0x2f, 0x12, 0xc4, 0xa2, 0x57, 0x1f, 0xa7, 0x60, 0x85, 0xd6, 0xee, 0x3c, - 0x24, 0x79, 0x52, 0xb0, 0x22, 0x74, 0x09, 0xc0, 0x7f, 0x24, 0xce, 0x41, 0x91, 0x0a, 0x01, 0xa5, - 0xc0, 0x4d, 0x8a, 0x67, 0xa0, 0xb0, 0xe1, 0x36, 0x1d, 0xf9, 0x3d, 0x44, 0x8b, 0xa1, 0xdf, 0xca, - 0xf2, 0xea, 0x94, 0x42, 0xe8, 0x3e, 0xb8, 0x48, 0xf0, 0x69, 0xa0, 0x38, 0x9a, 0x4f, 0x5f, 0x26, - 0x3e, 0x27, 0x80, 0xb0, 0xa0, 0xec, 0xa2, 0x4f, 0x7b, 0xbb, 0xd2, 0x57, 0x24, 0xb2, 0x2b, 0xbd, - 0x9b, 0xdd, 0x95, 0x46, 0x2f, 0x9c, 0x0b, 0xca, 0x2e, 0xbb, 0x29, 0x9d, 0x74, 0xe5, 0xf4, 0x2a, - 0x3a, 0xb4, 0x95, 0x33, 0x8c, 0x82, 0xf4, 0x91, 0xfc, 0x03, 0x01, 0x72, 0x8b, 0x8a, 0x8a, 0x0f, - 0xf7, 0x03, 0xc3, 0xa6, 0x20, 0x99, 0x0f, 0x0c, 0xbf, 0xa6, 0x43, 0xdb, 0xc5, 0x86, 0x92, 0x90, - 0x3e, 0x9a, 0x1f, 0x17, 0xa0, 0xd4, 0x19, 0x18, 0x5a, 0x43, 0xb3, 0xf4, 0x2b, 0xe3, 0x43, 0x91, - 0xff, 0x30, 0xc5, 0x67, 0xa2, 0xdb, 0x83, 0x29, 0x1e, 0xa6, 0x8c, 0x6d, 0x3c, 0x7d, 0xec, 0x5e, - 0xfd, 0x8d, 0x0c, 0xe4, 0x09, 0x1d, 0xe8, 0xc3, 0x82, 0x8d, 0x5c, 0x5f, 0x95, 0xbb, 0x18, 0xed, - 0xf0, 0x82, 0x18, 0x58, 0x0c, 0xb3, 0xec, 0x62, 0x78, 0x33, 0xe4, 0xc9, 0x5f, 0xfa, 0x39, 0x72, - 0x62, 0x14, 0x84, 0x92, 0x53, 0x04, 0x3d, 0x16, 0xc4, 0xeb, 0x3e, 0x16, 0xaf, 0x67, 0xef, 0x67, - 0x59, 0x85, 0x92, 0x19, 0xae, 0xba, 0x0f, 0xa1, 0x29, 0x9e, 0xe2, 0xe6, 0x9d, 0x1e, 0x88, 0xf3, - 0x0c, 0x88, 0x15, 0x6e, 0x8a, 0xa6, 0xb2, 0xa9, 0x9d, 0x5d, 0xed, 0xf7, 0x64, 0x0b, 0xbb, 0x47, - 0x62, 0x53, 0x86, 0x2e, 0xe6, 0xa6, 0xb6, 0xc2, 0x10, 0x3b, 0x6e, 0xac, 0x25, 0xad, 0x5f, 0x8b, - 0x6c, 0x3d, 0x7d, 0xb0, 0xbe, 0x9e, 0x83, 0x7c, 0xbb, 0xaf, 0x2a, 0x16, 0x7a, 0x38, 0x9b, 0x08, - 0x4a, 0x86, 0xac, 0x6d, 0xe2, 0x10, 0x94, 0x24, 0xfb, 0x99, 0xe4, 0x14, 0xf1, 0xe7, 0xd3, 0xdc, - 0x24, 0xf3, 0xa9, 0x78, 0x27, 0xe4, 0xec, 0x82, 0x54, 0x1d, 0x7f, 0xc3, 0x08, 0xc6, 0x92, 0x6e, - 0x79, 0x1b, 0xe9, 0x65, 0xc2, 0x49, 0xfb, 0x95, 0xd3, 0xb7, 0x42, 0xce, 0x4e, 0x89, 0x00, 0x85, - 0xf9, 0x56, 0xa7, 0xd3, 0x5a, 0x2e, 0x5f, 0x25, 0x16, 0x41, 0xe8, 0xb4, 0x56, 0xca, 0x19, 0x71, - 0x06, 0xf2, 0x8d, 0x66, 0xb3, 0x2e, 0x95, 0xb3, 0xf6, 0xdf, 0x4e, 0xa3, 0xb3, 0x54, 0x2f, 0x0b, - 0xec, 0x2a, 0x7c, 0x0f, 0x2b, 0x52, 0xcf, 0x8a, 0x68, 0x3b, 0xcd, 0xb9, 0xe0, 0xed, 0x9e, 0x90, - 0xbd, 0x88, 0x11, 0xb2, 0x5b, 0x38, 0xe9, 0x49, 0x5f, 0xb8, 0x7e, 0x55, 0x80, 0xfc, 0x32, 0x36, - 0x36, 0x31, 0x7a, 0x59, 0x0c, 0xd3, 0x87, 0x0d, 0xc5, 0x30, 0x2d, 0xf6, 0x48, 0x9c, 0xc9, 0x13, - 0xaf, 0x87, 0x59, 0x13, 0x77, 0x75, 0xcd, 0x3b, 0x37, 0x77, 0x74, 0x12, 0x6c, 0x26, 0x7a, 0x4b, - 0x4c, 0xc8, 0x08, 0xa1, 0x89, 0xac, 0xb4, 0x71, 0x80, 0x19, 0xd5, 0x6a, 0xfa, 0xc0, 0xfc, 0xad, - 0x60, 0xbf, 0xd4, 0xdf, 0x43, 0x6f, 0xe1, 0xde, 0x1a, 0xdd, 0x02, 0x05, 0x22, 0xa6, 0xee, 0x37, - 0xec, 0xe8, 0x19, 0x98, 0x96, 0x11, 0xe7, 0xe1, 0x6a, 0x13, 0xab, 0xb8, 0x6b, 0xe1, 0x9e, 0x3d, - 0x74, 0xa5, 0xb1, 0x93, 0xc2, 0xfe, 0xe2, 0xe8, 0x2b, 0x41, 0x00, 0xef, 0x66, 0x01, 0xbc, 0x71, - 0x04, 0x2b, 0xed, 0x0e, 0x85, 0x9f, 0x9c, 0xd8, 0xdd, 0x68, 0xab, 0xba, 0xe5, 0x1d, 0x00, 0xd1, - 0xb4, 0xfd, 0x6c, 0xcb, 0xda, 0x51, 0xc9, 0x33, 0x47, 0x90, 0xbc, 0xb4, 0x58, 0x81, 0xa2, 0xac, - 0xed, 0x91, 0x47, 0xb9, 0x88, 0x5e, 0xbb, 0x85, 0xd0, 0xdb, 0x3c, 0xe4, 0xef, 0x63, 0x90, 0xff, - 0x29, 0x3e, 0x72, 0xd3, 0x07, 0xfe, 0x6f, 0x0a, 0x90, 0x5f, 0x91, 0x4d, 0x0b, 0xa3, 0x6f, 0x0a, - 0x49, 0xdb, 0xa9, 0x24, 0x80, 0xb9, 0x78, 0x33, 0x94, 0xdd, 0xcc, 0x79, 0x77, 0x23, 0xee, 0x18, - 0x27, 0xed, 0xcb, 0xb7, 0xa7, 0x01, 0xc5, 0x5c, 0x91, 0x0d, 0xab, 0xb5, 0x41, 0xf2, 0xc8, 0x52, - 0x50, 0x92, 0xd8, 0x4c, 0x06, 0xfa, 0x42, 0x04, 0xf4, 0xc5, 0x70, 0xe8, 0x4b, 0x1c, 0xd0, 0x8b, - 0x55, 0x28, 0x6d, 0x28, 0x2a, 0x26, 0x2f, 0xcc, 0x90, 0x17, 0x46, 0xad, 0x49, 0x84, 0xf7, 0xde, - 0x9a, 0x64, 0x7f, 0x20, 0x49, 0xde, 0x6b, 0x68, 0xc9, 0xf9, 0x02, 0x15, 0x45, 0xc8, 0x69, 0xf2, - 0x0e, 0xa6, 0x48, 0x90, 0xff, 0x76, 0x5e, 0x4f, 0xb6, 0x64, 0xc2, 0xfa, 0xa3, 0x12, 0xf9, 0x6f, - 0xc3, 0x46, 0x2c, 0xb6, 0x56, 0x64, 0x6b, 0x8b, 0x8a, 0xae, 0x9f, 0x81, 0x5e, 0x23, 0xc4, 0x9b, - 0xff, 0x5c, 0xd2, 0xe2, 0x9e, 0x3c, 0x5e, 0x0f, 0xb3, 0x5d, 0xd9, 0xc0, 0xd6, 0x4a, 0xd0, 0x1a, - 0x2d, 0x2f, 0xb1, 0x99, 0x36, 0xb0, 0x8a, 0xd9, 0x96, 0x77, 0x30, 0x69, 0xac, 0x66, 0x3f, 0x23, - 0x0b, 0x7f, 0x49, 0xda, 0x97, 0xef, 0xcf, 0xb6, 0xf9, 0xa4, 0x67, 0xdb, 0x51, 0x7d, 0x4c, 0x7f, - 0xd0, 0xbd, 0x33, 0x07, 0x42, 0x6d, 0x60, 0x5d, 0xd1, 0x93, 0xed, 0x8f, 0x83, 0x93, 0xed, 0x0b, - 0x59, 0x69, 0x19, 0x25, 0xc8, 0xb5, 0x81, 0x75, 0xb8, 0x73, 0x6d, 0x4c, 0x29, 0xf9, 0x35, 0x4f, - 0x4a, 0xee, 0x65, 0xa4, 0xe4, 0x66, 0xae, 0xbe, 0xa5, 0x2f, 0x23, 0xef, 0x15, 0xe0, 0x58, 0x63, - 0xa7, 0xaf, 0x1b, 0xd6, 0xb2, 0x6c, 0x6c, 0xf7, 0xf4, 0xcb, 0x1a, 0x3a, 0xc7, 0x2b, 0x2d, 0xa7, - 0x00, 0x14, 0xf2, 0x2a, 0x99, 0x08, 0x1c, 0x82, 0x02, 0x39, 0xe8, 0x0f, 0xe3, 0xa9, 0x74, 0x2b, - 0x2c, 0x1d, 0x21, 0x30, 0x5f, 0x07, 0x47, 0x0c, 0x5d, 0xb7, 0x96, 0x18, 0x83, 0xb4, 0x60, 0x56, - 0xcc, 0xdd, 0x6c, 0x0c, 0xa5, 0x6f, 0x34, 0x81, 0x53, 0x38, 0x08, 0x10, 0xa0, 0x50, 0x7f, 0xd0, - 0x26, 0x01, 0xad, 0xa6, 0x32, 0xa2, 0x59, 0x53, 0xc2, 0x7b, 0x59, 0xc4, 0x6e, 0x1a, 0xc1, 0x10, - 0x87, 0x9a, 0x10, 0xa4, 0x44, 0xc8, 0xf5, 0x7d, 0xc1, 0x20, 0xff, 0x63, 0x62, 0xf3, 0x0e, 0x0f, - 0x9b, 0x2a, 0x83, 0xcd, 0x73, 0x78, 0x49, 0x49, 0x1f, 0x93, 0x37, 0x0b, 0x50, 0x58, 0xed, 0xab, - 0xba, 0xdc, 0x43, 0xfa, 0xc1, 0xbf, 0x63, 0x91, 0xb3, 0x98, 0x07, 0x16, 0x56, 0x2f, 0x2d, 0x96, - 0x41, 0x18, 0x18, 0x2a, 0x35, 0x13, 0xb3, 0xff, 0xa2, 0xb7, 0xc6, 0x44, 0xcb, 0xa1, 0x33, 0x91, - 0x4f, 0x8d, 0x38, 0xc8, 0x8c, 0x6c, 0x36, 0x7d, 0x64, 0xbe, 0x9f, 0x85, 0xd2, 0x82, 0x7e, 0x59, - 0x23, 0xd8, 0x54, 0x0f, 0x8c, 0x4d, 0x5c, 0xe3, 0xca, 0x8a, 0xdb, 0xf6, 0xb4, 0x8d, 0x2b, 0xc3, - 0x1a, 0x4e, 0x9f, 0xe3, 0x4f, 0xdc, 0xe6, 0xd8, 0x4c, 0x3d, 0x22, 0x78, 0x07, 0x96, 0xc6, 0xc1, - 0xc7, 0x84, 0x7f, 0x92, 0x28, 0xf0, 0x9d, 0x24, 0xbe, 0x2b, 0x08, 0xd4, 0x3c, 0x0b, 0xd4, 0x48, - 0x1d, 0x45, 0xb2, 0xa7, 0x88, 0xbf, 0xee, 0x41, 0x55, 0x67, 0xa0, 0xba, 0x35, 0x4e, 0xd3, 0xe9, - 0x83, 0xf5, 0x1d, 0x01, 0x8a, 0x0b, 0x8e, 0x29, 0x2a, 0x3a, 0x0f, 0x05, 0xe7, 0xaf, 0x3d, 0xc9, - 0x6c, 0xe3, 0x3d, 0x0a, 0x8f, 0xfd, 0xd7, 0xee, 0xfc, 0xae, 0xac, 0x0e, 0xb0, 0xd7, 0xf9, 0x61, - 0xee, 0x5f, 0xb4, 0x9f, 0x4a, 0x4e, 0x21, 0xb4, 0xc5, 0x8b, 0xf7, 0x7d, 0xbe, 0xc1, 0x6c, 0x36, - 0xf4, 0xab, 0x85, 0x9c, 0xcc, 0x39, 0xa5, 0xe8, 0xaf, 0x67, 0x3e, 0x8b, 0xde, 0x1d, 0x44, 0xb9, - 0xc6, 0xa2, 0xfc, 0x9c, 0x31, 0x75, 0x25, 0x01, 0xf3, 0xbb, 0x3d, 0x98, 0x17, 0x19, 0x98, 0xcf, - 0xc6, 0x6a, 0x7b, 0x2a, 0xe7, 0x8b, 0x47, 0x25, 0x6c, 0x5a, 0x86, 0xd2, 0xb5, 0xeb, 0x30, 0xd1, - 0xcf, 0x67, 0x0e, 0x3e, 0x26, 0xeb, 0x70, 0xd4, 0x08, 0xd4, 0x49, 0x47, 0xe6, 0x33, 0x46, 0xaa, - 0x52, 0x83, 0x8d, 0x4b, 0xcc, 0x6b, 0xec, 0x76, 0xe3, 0x3c, 0x8b, 0x61, 0x18, 0x1f, 0x83, 0xd5, - 0x25, 0x02, 0xe4, 0xfb, 0x3c, 0x20, 0x2f, 0x30, 0x40, 0xbe, 0x20, 0x3e, 0x01, 0xe9, 0xa3, 0xf9, - 0x4a, 0x01, 0x72, 0xc4, 0x6c, 0xfd, 0x47, 0x59, 0x80, 0x86, 0x59, 0x35, 0xba, 0x5b, 0xca, 0x2e, - 0xee, 0x21, 0xf9, 0xe0, 0x98, 0xda, 0xbb, 0x79, 0xaf, 0x42, 0x82, 0x68, 0x49, 0x0a, 0xe4, 0xa0, - 0xd7, 0x04, 0xc1, 0xba, 0xc0, 0x82, 0x75, 0x7b, 0x08, 0xaf, 0x88, 0xb5, 0xb6, 0x4f, 0x66, 0xc8, - 0xcd, 0x9f, 0x0f, 0x78, 0x08, 0x34, 0x19, 0x04, 0xee, 0x9a, 0xa8, 0xd6, 0xf4, 0x41, 0xf8, 0x15, - 0x01, 0xf2, 0x4b, 0xb2, 0x85, 0x1f, 0x44, 0xaf, 0x13, 0xa8, 0x75, 0xf0, 0xea, 0xc1, 0xf9, 0x2f, - 0x42, 0xce, 0x2e, 0x43, 0xf7, 0x7d, 0xe4, 0x7f, 0x5c, 0xa3, 0x18, 0xc2, 0x1d, 0x42, 0x99, 0x73, - 0x70, 0x31, 0x65, 0xa3, 0x98, 0xe8, 0xe6, 0xd3, 0xc7, 0xe5, 0x7b, 0x65, 0x8a, 0xc6, 0x17, 0x5c, - 0x58, 0x7e, 0x39, 0x93, 0x0a, 0x2e, 0xe2, 0x3d, 0x90, 0xdf, 0x91, 0x8d, 0x6d, 0x93, 0xec, 0xc6, - 0x8f, 0xf0, 0x9c, 0x21, 0xd9, 0x1f, 0x8d, 0xa6, 0xe4, 0xbc, 0x15, 0xfb, 0xa0, 0xd0, 0xb3, 0xed, - 0x4c, 0x0c, 0xd5, 0x38, 0x07, 0x85, 0x51, 0xad, 0xa7, 0x0f, 0xea, 0x1b, 0x3c, 0x93, 0xed, 0x4b, - 0x07, 0xc7, 0x72, 0xb4, 0x35, 0xe9, 0x24, 0xa3, 0x2c, 0x61, 0x63, 0xed, 0xb8, 0xa3, 0xec, 0x10, - 0x0d, 0xb5, 0x3f, 0xe6, 0xd9, 0x29, 0xfd, 0x9b, 0x04, 0x46, 0xd7, 0x01, 0xad, 0x5b, 0x26, 0x86, - 0x2e, 0x39, 0x0b, 0xa5, 0x89, 0xa0, 0x3b, 0xb4, 0xeb, 0x0f, 0xc5, 0xda, 0x16, 0xee, 0x6e, 0xe3, - 0x1e, 0x7a, 0xc9, 0xc1, 0xb1, 0x9b, 0x83, 0x62, 0xd7, 0xa9, 0x8d, 0x6e, 0x17, 0xdc, 0xe4, 0x44, - 0x1b, 0x3b, 0x47, 0xa4, 0x9d, 0x0a, 0x0e, 0x65, 0x63, 0x17, 0x41, 0x40, 0xfa, 0xd0, 0x3c, 0x2a, - 0x40, 0xae, 0xd1, 0xd5, 0x35, 0xf4, 0xb3, 0x07, 0xc7, 0xe5, 0x5a, 0x98, 0x51, 0xba, 0xba, 0xd6, - 0xd8, 0x91, 0x37, 0xdd, 0xfb, 0xc2, 0x7e, 0x86, 0xfb, 0xb4, 0xbe, 0xa3, 0xbf, 0x54, 0x21, 0x3a, - 0x6c, 0xfa, 0x94, 0x64, 0x4c, 0xbe, 0x34, 0xd9, 0xc4, 0x1f, 0xde, 0xd2, 0x34, 0xa2, 0xf5, 0xf4, - 0x31, 0x7b, 0x93, 0x6b, 0xba, 0xf9, 0x0b, 0x02, 0xe4, 0x9a, 0xf2, 0x0e, 0x4e, 0x68, 0x1b, 0x48, - 0x0e, 0xe1, 0x04, 0xff, 0x10, 0x6e, 0x22, 0x50, 0x88, 0x11, 0xa4, 0x4d, 0xd4, 0xa1, 0x80, 0x12, - 0xd6, 0x7a, 0xfa, 0xa0, 0x7c, 0x29, 0x0f, 0x79, 0x22, 0xe8, 0xe8, 0x1b, 0xd9, 0x74, 0x51, 0xe1, - 0xf7, 0x82, 0xe0, 0xf3, 0x85, 0x50, 0x16, 0x01, 0x4b, 0xec, 0xd5, 0x24, 0xb4, 0xc2, 0x29, 0xa8, - 0xfb, 0xb2, 0x90, 0xbf, 0xa4, 0xf4, 0xac, 0xad, 0x84, 0x76, 0x66, 0x97, 0xed, 0xba, 0xe8, 0x29, - 0xae, 0x93, 0x88, 0xe1, 0xd7, 0x65, 0x98, 0x23, 0x84, 0xb0, 0x03, 0xf9, 0x75, 0xe1, 0xa9, 0x71, - 0x3a, 0xe2, 0x7c, 0x51, 0xe9, 0x61, 0xfd, 0x8a, 0x14, 0x67, 0x42, 0x59, 0x92, 0xe2, 0x1c, 0x5a, - 0xe1, 0x3f, 0x59, 0x71, 0x76, 0x38, 0x92, 0xa4, 0x38, 0x87, 0xd7, 0x98, 0x3e, 0x93, 0x3f, 0x2d, - 0x40, 0x6e, 0x49, 0xd1, 0xb6, 0xd1, 0xef, 0x0a, 0x30, 0xeb, 0xb8, 0x39, 0x70, 0xed, 0xe6, 0x36, - 0x0f, 0xce, 0xf5, 0xeb, 0x61, 0xd6, 0x0a, 0xd6, 0xe9, 0x1a, 0xe8, 0x31, 0x99, 0xe8, 0x93, 0xc1, - 0xd5, 0xb4, 0xc9, 0xa2, 0x70, 0x47, 0x98, 0x56, 0x43, 0xd1, 0xb6, 0x2b, 0x0c, 0xbd, 0x89, 0x2c, - 0xab, 0xbf, 0xed, 0x41, 0xf7, 0xd3, 0x0c, 0x74, 0xf7, 0x4c, 0x4a, 0x46, 0xfa, 0x08, 0x3e, 0x5e, - 0xb0, 0xb9, 0xa7, 0xca, 0xc4, 0xdb, 0xc0, 0xeb, 0x05, 0x28, 0xb4, 0xb1, 0x75, 0x01, 0xef, 0xa1, - 0xf6, 0xc1, 0xe1, 0xa3, 0x87, 0x0f, 0x82, 0x77, 0xf8, 0x80, 0x3e, 0x90, 0x8d, 0x37, 0x60, 0x5c, - 0xc2, 0x2a, 0x0e, 0x51, 0x89, 0x60, 0x14, 0x67, 0x78, 0x45, 0xb7, 0x9f, 0x3e, 0x38, 0xef, 0x11, - 0x40, 0xa8, 0xf6, 0x7a, 0x68, 0xf7, 0xe0, 0x60, 0xdc, 0x06, 0x25, 0x83, 0xf6, 0xc6, 0x3b, 0x78, - 0x1b, 0xb2, 0xe9, 0xa1, 0x8f, 0x25, 0xaf, 0x60, 0xdc, 0xcb, 0x26, 0x3e, 0xbf, 0xaa, 0xbd, 0xde, - 0xb4, 0x2f, 0x9b, 0x44, 0x35, 0x9e, 0x3e, 0x52, 0x1f, 0x14, 0x00, 0x5a, 0xbe, 0x0f, 0xa7, 0xb7, - 0x0b, 0xce, 0xd1, 0xe9, 0x32, 0x2f, 0x70, 0xd7, 0xc3, 0xac, 0xef, 0x02, 0x6a, 0xd5, 0x50, 0xdd, - 0xa9, 0x8e, 0xc9, 0x44, 0x9f, 0x8f, 0xa9, 0x1e, 0xf1, 0x29, 0x72, 0x8f, 0x3a, 0x0e, 0x8c, 0xc8, - 0x67, 0x63, 0xec, 0x00, 0x22, 0x9b, 0x8f, 0x87, 0x49, 0x2b, 0x3e, 0x26, 0xe2, 0x53, 0xe1, 0x1a, - 0xb7, 0x44, 0x6b, 0xfe, 0xfe, 0x7a, 0xad, 0xb3, 0xd6, 0x79, 0x60, 0xa5, 0xbe, 0xb6, 0x2a, 0x2d, - 0x95, 0x05, 0xf4, 0xe6, 0x22, 0x94, 0xe6, 0x75, 0x7d, 0x9b, 0xb8, 0x08, 0x78, 0xad, 0x00, 0xf9, - 0x45, 0x6c, 0x75, 0xb7, 0x12, 0x9a, 0xf6, 0x06, 0x1e, 0x80, 0xc4, 0xb0, 0x23, 0xae, 0x56, 0xcb, - 0xa5, 0xab, 0x42, 0x68, 0x9a, 0xba, 0x56, 0x2b, 0xb2, 0xf9, 0xf4, 0x87, 0xd2, 0x8f, 0x05, 0x38, - 0x56, 0x33, 0xb0, 0x6c, 0xe1, 0xaa, 0xd6, 0x73, 0x50, 0xf9, 0xc5, 0x44, 0x5c, 0xf4, 0x1c, 0xc0, - 0xd5, 0xe1, 0x7e, 0x63, 0x9d, 0xaf, 0xc6, 0x73, 0x59, 0xe0, 0x33, 0x95, 0xed, 0x5a, 0xca, 0x77, - 0x3b, 0x62, 0x38, 0x33, 0xe0, 0xa4, 0x30, 0x7d, 0xfc, 0xbf, 0x9d, 0xa3, 0x6a, 0x98, 0xaf, 0xe7, - 0xe0, 0xb8, 0x47, 0x0b, 0x35, 0xca, 0xfa, 0x9b, 0x2b, 0x4e, 0x12, 0x58, 0xf3, 0xe9, 0xfc, 0x90, - 0xf9, 0xb4, 0x38, 0xef, 0x98, 0x80, 0x11, 0x5f, 0x7f, 0x05, 0x8e, 0x4b, 0xd8, 0x44, 0xd3, 0x62, - 0x97, 0x96, 0xbc, 0xf7, 0xd8, 0x1b, 0x0c, 0x4b, 0xac, 0xac, 0x8d, 0xda, 0xb6, 0x90, 0x3a, 0x86, - 0x38, 0x97, 0xb2, 0xa0, 0x7d, 0xd0, 0x13, 0xb4, 0x16, 0x23, 0x68, 0x2f, 0x9c, 0x8c, 0xbc, 0x29, - 0x78, 0x38, 0xb9, 0x1b, 0x4a, 0x0b, 0xb2, 0x25, 0xef, 0x2a, 0xf8, 0x32, 0xfa, 0x96, 0x00, 0x70, - 0x51, 0xc1, 0x97, 0x1d, 0xa2, 0x62, 0xdc, 0xbd, 0x0f, 0x67, 0xdf, 0xbd, 0x90, 0xb3, 0xab, 0xa6, - 0x27, 0x8a, 0x37, 0x47, 0x5f, 0xbc, 0xa7, 0x74, 0x54, 0x6c, 0x1a, 0x24, 0xf2, 0x1e, 0x6b, 0x6c, - 0xcb, 0x71, 0x3c, 0xcf, 0xd4, 0xe1, 0xf4, 0x23, 0x89, 0x85, 0x43, 0x3c, 0x09, 0x05, 0xbb, 0x5a, - 0xef, 0xe3, 0x8b, 0xa6, 0x62, 0x1d, 0xf2, 0x8f, 0xa7, 0x2d, 0x7d, 0xbc, 0x5d, 0x88, 0x9d, 0x6b, - 0x92, 0x31, 0x6c, 0xe8, 0xc3, 0x21, 0x0e, 0x61, 0xcd, 0x81, 0xa1, 0xff, 0xe8, 0x41, 0xa0, 0x77, - 0xfa, 0x97, 0xc8, 0x9e, 0x61, 0x62, 0x88, 0x47, 0xd2, 0x90, 0x3e, 0xc4, 0x6f, 0xa7, 0x10, 0x2f, - 0x60, 0x15, 0x5b, 0x98, 0xdf, 0x5f, 0x11, 0x0f, 0xc2, 0x39, 0x46, 0xf8, 0x0f, 0x84, 0x90, 0x43, - 0xde, 0xe1, 0x22, 0x34, 0x92, 0x86, 0xf4, 0x11, 0xfa, 0xa2, 0x00, 0xc7, 0xed, 0xe6, 0xdb, 0xfe, - 0x8d, 0x1e, 0x7e, 0x8f, 0x45, 0xb1, 0x61, 0x22, 0x2e, 0xc6, 0x83, 0xee, 0x36, 0x67, 0x03, 0x8e, - 0x15, 0x3f, 0x1d, 0x84, 0x70, 0x85, 0x85, 0x70, 0x2c, 0xfb, 0x02, 0xf4, 0x27, 0x82, 0xe3, 0x87, - 0x3d, 0x1c, 0xdb, 0x0c, 0x8e, 0xf7, 0x4d, 0x4e, 0x48, 0xfa, 0x60, 0x7e, 0x55, 0x80, 0x59, 0x4a, - 0x43, 0xb5, 0x6b, 0x29, 0xbb, 0x18, 0xbd, 0x26, 0xc5, 0x49, 0xf5, 0x24, 0x14, 0xf4, 0x8d, 0x0d, - 0x93, 0x5e, 0xf7, 0x9a, 0x95, 0x68, 0x4a, 0x3c, 0x01, 0x79, 0x55, 0xd9, 0x51, 0x2c, 0x0a, 0xb0, - 0x93, 0x88, 0xad, 0x13, 0x1c, 0x66, 0xaa, 0xd3, 0xa1, 0xa9, 0xeb, 0x04, 0xb9, 0xc8, 0x48, 0x1f, - 0xd9, 0x0f, 0x10, 0x1b, 0xd3, 0xae, 0x6e, 0xf4, 0xe8, 0x6a, 0xf9, 0x86, 0x4c, 0x22, 0x77, 0x21, - 0x0c, 0x52, 0xa7, 0x07, 0xad, 0x97, 0x16, 0xcf, 0x40, 0xc1, 0xf9, 0x4f, 0xd7, 0xcc, 0x70, 0x9b, - 0x70, 0xa7, 0x18, 0x7a, 0x5d, 0x10, 0xdf, 0x65, 0x16, 0xdf, 0x17, 0x44, 0x31, 0x36, 0xd8, 0xad, - 0x10, 0xfd, 0xfb, 0x87, 0x3c, 0xc0, 0x56, 0x18, 0xc0, 0xee, 0x9e, 0xb0, 0xde, 0xa9, 0x5c, 0xfa, - 0xa2, 0x78, 0xd1, 0xa5, 0xef, 0x9f, 0xa7, 0x0a, 0x17, 0xfa, 0xf8, 0xc1, 0xb8, 0x9f, 0xe0, 0x02, - 0x78, 0x00, 0xac, 0x0e, 0x69, 0x09, 0x7c, 0xc2, 0xc3, 0x8a, 0x7e, 0x6c, 0xbc, 0x29, 0x93, 0xc8, - 0x9d, 0x0a, 0x3a, 0x7e, 0x04, 0xae, 0xf1, 0x23, 0x9e, 0x02, 0xb0, 0xf0, 0x4e, 0x5f, 0x95, 0x2d, - 0xec, 0xad, 0x9a, 0x81, 0x1c, 0xf4, 0x1f, 0x0e, 0x86, 0x70, 0xe4, 0xf7, 0x87, 0x4f, 0x6c, 0x96, - 0x6f, 0xb0, 0x1f, 0x00, 0xe4, 0x43, 0xfa, 0xd8, 0xf8, 0xd5, 0x1c, 0x1c, 0x71, 0xd5, 0xd1, 0x87, - 0xa9, 0xbf, 0x7f, 0x83, 0x10, 0x4f, 0x71, 0x10, 0xe0, 0x9e, 0x47, 0x7c, 0x22, 0x5f, 0x91, 0xd7, - 0xc1, 0x11, 0x97, 0xa8, 0x0b, 0xde, 0x91, 0x50, 0x30, 0x8b, 0xe9, 0x5f, 0x8e, 0xb7, 0x7f, 0x71, - 0xb4, 0x0e, 0x1c, 0x7d, 0x4b, 0x5f, 0x30, 0xbe, 0x2b, 0xc0, 0x31, 0xb7, 0x7d, 0xba, 0xb6, 0x3e, - 0x94, 0xc0, 0xf8, 0x4f, 0x89, 0xbd, 0x31, 0xdd, 0xb2, 0xee, 0x67, 0x71, 0x82, 0x1f, 0xa3, 0x71, - 0x34, 0x99, 0x7c, 0x74, 0xa4, 0x8f, 0xf6, 0x47, 0x03, 0x68, 0xd3, 0x95, 0xb9, 0x3b, 0x05, 0xb0, - 0x0f, 0x8e, 0x1b, 0xdf, 0x0a, 0x2d, 0xa4, 0x8e, 0xdb, 0x21, 0xad, 0xd1, 0xdf, 0xc8, 0xc1, 0x35, - 0xce, 0xfa, 0xe1, 0x12, 0xd2, 0xea, 0xbb, 0x53, 0xf9, 0x63, 0x53, 0x19, 0xae, 0xcf, 0x87, 0x82, - 0xde, 0x0f, 0x0c, 0xd6, 0x53, 0x21, 0x83, 0xb5, 0xe2, 0x10, 0x26, 0xd1, 0xd2, 0xcc, 0xae, 0x2d, - 0x3f, 0xb4, 0x6b, 0x63, 0x1c, 0x79, 0xbc, 0x98, 0x95, 0x8a, 0xf9, 0xf1, 0x4b, 0xe9, 0x3e, 0x56, - 0x24, 0xb2, 0x30, 0xf8, 0x1d, 0x15, 0xe2, 0x74, 0x14, 0x7d, 0xc2, 0x13, 0xab, 0x97, 0x30, 0x62, - 0x75, 0xee, 0xe0, 0x1d, 0x99, 0xc2, 0x61, 0x71, 0x0e, 0xd0, 0x28, 0x5a, 0xe8, 0x8a, 0xf0, 0x93, - 0x2b, 0x62, 0x7f, 0x1a, 0x9c, 0x78, 0x5e, 0xc2, 0x8a, 0x58, 0x3d, 0x2e, 0x32, 0x09, 0x2e, 0x1e, - 0x9f, 0xf2, 0xa4, 0xe5, 0x5f, 0x30, 0xd2, 0x72, 0x7f, 0x22, 0x34, 0x4d, 0xc1, 0x32, 0x39, 0x44, - 0x60, 0xe8, 0xa2, 0xf2, 0xd6, 0xa9, 0x08, 0x0c, 0x82, 0x92, 0x23, 0x02, 0xde, 0x17, 0x83, 0x97, - 0x9e, 0x9e, 0x50, 0x24, 0xf8, 0xed, 0x98, 0x98, 0x50, 0x1c, 0xd2, 0x2a, 0xf5, 0x07, 0x02, 0x3c, - 0xd9, 0x25, 0x64, 0x49, 0x31, 0xad, 0xea, 0xae, 0xac, 0xa8, 0xf2, 0xba, 0x8a, 0x93, 0xf0, 0x8e, - 0xf0, 0xbf, 0x83, 0xa0, 0x5d, 0x64, 0x41, 0x7b, 0x11, 0xcf, 0xd2, 0xcd, 0x50, 0x14, 0x82, 0xd7, - 0xed, 0x30, 0xe3, 0x0a, 0x98, 0x7b, 0x6d, 0x3c, 0x74, 0x57, 0xea, 0x97, 0x44, 0xff, 0xd5, 0x03, - 0xee, 0x01, 0x06, 0xb8, 0xfa, 0x41, 0xe9, 0x8a, 0x87, 0xd9, 0xd2, 0x04, 0x26, 0x29, 0x73, 0x70, - 0xa2, 0xd9, 0xea, 0xac, 0x55, 0xd7, 0x16, 0xaa, 0x9d, 0xea, 0xc5, 0x46, 0xfd, 0xd2, 0xda, 0xfc, - 0x52, 0xab, 0x76, 0xa1, 0x2c, 0xa0, 0x7f, 0x2f, 0xc0, 0x4c, 0x1b, 0x5b, 0x6d, 0x7d, 0x60, 0x74, - 0x93, 0x3a, 0xbb, 0x30, 0x49, 0x65, 0x34, 0x1c, 0x11, 0x4d, 0xc5, 0x75, 0x04, 0xed, 0x73, 0xd0, - 0xa3, 0x6e, 0xdc, 0xe8, 0xcb, 0x25, 0xec, 0x08, 0x7a, 0x3c, 0x09, 0xe9, 0x0f, 0xb6, 0x47, 0x04, - 0x10, 0xce, 0x61, 0x0b, 0x3d, 0x2c, 0x40, 0x9e, 0xdc, 0xfd, 0x4c, 0xc8, 0x19, 0x2d, 0xaf, 0x9b, - 0x53, 0xf4, 0xce, 0x20, 0x6c, 0x55, 0x16, 0xb6, 0x51, 0x6e, 0x01, 0xcf, 0x61, 0x7a, 0x49, 0x35, - 0x91, 0xb9, 0xf2, 0x5d, 0x1e, 0x5a, 0x0b, 0x0c, 0x5a, 0xcf, 0x8d, 0xd1, 0x72, 0xfa, 0x20, 0xdd, - 0x09, 0xc7, 0x57, 0xb5, 0x9e, 0x2e, 0xe1, 0x9e, 0x5e, 0xd3, 0x07, 0x9a, 0x85, 0x89, 0xd3, 0xa2, - 0x81, 0xd6, 0xd3, 0x09, 0xb9, 0x79, 0x89, 0xfc, 0xb7, 0xf3, 0x0c, 0xdc, 0xd3, 0x49, 0xab, 0x79, - 0x89, 0xfc, 0x47, 0x6f, 0x15, 0x20, 0x67, 0xbf, 0x8b, 0x9e, 0xc5, 0x09, 0x2b, 0xfa, 0x9f, 0x31, - 0xdd, 0x4a, 0xda, 0xb5, 0x27, 0xb2, 0x65, 0xbe, 0x17, 0x4a, 0x5d, 0xa7, 0x77, 0xae, 0xa3, 0x86, - 0xd3, 0x21, 0xcd, 0x05, 0x18, 0x21, 0x79, 0xef, 0x04, 0x0e, 0x24, 0xc6, 0x3b, 0x97, 0x1c, 0x41, - 0x74, 0x3c, 0x18, 0x17, 0x26, 0x98, 0x24, 0xcb, 0x70, 0xb4, 0x56, 0x6d, 0xae, 0xd9, 0x13, 0xe5, - 0x72, 0xeb, 0x62, 0xbd, 0x2c, 0x10, 0x74, 0xec, 0xce, 0xa4, 0x87, 0x8e, 0x5d, 0xfb, 0x4f, 0x1c, - 0x3a, 0x23, 0x88, 0x3e, 0x0c, 0x74, 0xde, 0x23, 0x40, 0xae, 0xd5, 0xc7, 0x5a, 0x42, 0x77, 0x50, - 0x2d, 0x43, 0xee, 0x62, 0xef, 0xd4, 0xc1, 0x4d, 0xa2, 0xdf, 0x8b, 0x89, 0xa8, 0x4d, 0x51, 0x22, - 0x73, 0xdf, 0xe7, 0x63, 0x20, 0x32, 0xa2, 0xd1, 0x78, 0x88, 0xfc, 0xcc, 0x04, 0x88, 0xcc, 0xc2, - 0x8c, 0x8d, 0xc6, 0x62, 0x6b, 0xb5, 0xb9, 0x50, 0x16, 0xc4, 0xa7, 0xc0, 0x93, 0xab, 0xcd, 0x07, - 0x88, 0xa9, 0x6b, 0xb3, 0x5e, 0x5f, 0x68, 0xaf, 0xad, 0xae, 0x9c, 0x93, 0xaa, 0x0b, 0xf5, 0x32, - 0x10, 0xa4, 0xda, 0x5b, 0xfa, 0xe5, 0x2b, 0x0b, 0x29, 0x9b, 0xa2, 0xa9, 0x23, 0x35, 0xa2, 0xd1, - 0x2b, 0x09, 0xa9, 0x2f, 0x66, 0xe1, 0xf8, 0x39, 0x6c, 0xad, 0x0c, 0xd6, 0x55, 0xa5, 0x7b, 0x09, - 0xaf, 0xaf, 0x4a, 0x4b, 0xe8, 0x99, 0x3e, 0x68, 0xa1, 0x81, 0x7a, 0xd0, 0x1b, 0x63, 0x5e, 0xb1, - 0x18, 0x6a, 0x24, 0x04, 0x07, 0x6a, 0xf5, 0x98, 0xf5, 0xed, 0x5f, 0xe3, 0x5c, 0xa3, 0x88, 0x6e, - 0x23, 0xfd, 0x7d, 0xc1, 0xdb, 0x04, 0x38, 0x6e, 0x8f, 0xcc, 0x79, 0x03, 0xcb, 0xbd, 0xae, 0x31, - 0xd8, 0x59, 0x37, 0x63, 0x7d, 0x23, 0xb9, 0x72, 0x9e, 0x65, 0xe5, 0xfc, 0x73, 0x31, 0x59, 0x3d, - 0x44, 0x42, 0xca, 0x16, 0x99, 0x71, 0x00, 0x8a, 0xa6, 0x2c, 0x7d, 0x80, 0x5e, 0x21, 0xc0, 0xb1, - 0x36, 0xb6, 0x42, 0xf0, 0xb9, 0x1e, 0x66, 0xd7, 0xfd, 0x27, 0x1e, 0x46, 0x6c, 0xa6, 0x2d, 0xa2, - 0x8a, 0xe7, 0x40, 0xd4, 0xfe, 0x3b, 0x89, 0x33, 0x89, 0xf1, 0xf0, 0xa4, 0xea, 0x4c, 0xe2, 0x30, - 0x31, 0xf8, 0x9e, 0x00, 0x05, 0x7a, 0x24, 0xfd, 0xbe, 0x44, 0x8c, 0xac, 0x63, 0x84, 0xda, 0x38, - 0x48, 0x84, 0xdc, 0x8f, 0xc6, 0xf4, 0x9a, 0x19, 0x79, 0x36, 0x9d, 0xd4, 0xe0, 0x8b, 0xe3, 0x4f, - 0xf3, 0x90, 0xce, 0xa8, 0xbf, 0x97, 0x03, 0x70, 0x9a, 0x26, 0x0e, 0xc8, 0x5e, 0xc9, 0x1d, 0xb6, - 0x63, 0x82, 0xd8, 0xd8, 0xac, 0xb9, 0x41, 0x7e, 0xd8, 0xdc, 0x80, 0xdb, 0x56, 0x3f, 0x9e, 0x68, - 0x04, 0x5c, 0x4d, 0x16, 0xf8, 0x5c, 0x4d, 0x7e, 0x2d, 0xa6, 0xab, 0x49, 0x9f, 0x7f, 0xb1, 0xe5, - 0x29, 0xd8, 0x65, 0x61, 0xa8, 0xcb, 0xf1, 0x34, 0x29, 0x71, 0x1c, 0x54, 0x86, 0x12, 0x9c, 0xbe, - 0xbc, 0xfd, 0x97, 0x1c, 0xcc, 0x38, 0xcd, 0xb7, 0xb1, 0x85, 0xbe, 0x90, 0xc8, 0x14, 0x13, 0xa2, - 0xe3, 0x0a, 0x8a, 0x68, 0x8e, 0x53, 0x44, 0x0f, 0x10, 0x9a, 0xfd, 0x87, 0x31, 0x55, 0x33, 0x1e, - 0x17, 0x0e, 0x51, 0x68, 0x3e, 0x13, 0x43, 0xa1, 0x13, 0x46, 0xef, 0x21, 0xdf, 0xe0, 0xfb, 0x6e, - 0x16, 0x0a, 0xab, 0x9a, 0xaa, 0x68, 0xdb, 0xa8, 0x96, 0x40, 0x60, 0xb6, 0xf8, 0xee, 0x97, 0x49, - 0xdb, 0xd3, 0x77, 0xbf, 0x3c, 0xaa, 0xd9, 0x29, 0xb8, 0x09, 0xcb, 0x42, 0xbe, 0xa6, 0xea, 0x66, - 0x22, 0xa7, 0x0b, 0xdf, 0xcd, 0xc4, 0x8b, 0x29, 0x41, 0x1a, 0x0e, 0x31, 0xd7, 0x8c, 0x13, 0xb7, - 0x61, 0x54, 0x3d, 0xe9, 0xb3, 0xee, 0x2f, 0x8e, 0xc2, 0xcc, 0x25, 0xdd, 0xd8, 0x36, 0xfb, 0x72, - 0x17, 0xa3, 0x8f, 0x67, 0x01, 0xce, 0x61, 0xab, 0x36, 0x30, 0x0c, 0x1b, 0xfa, 0x19, 0x8f, 0x9b, - 0xac, 0x47, 0xea, 0xc8, 0xfd, 0xaa, 0x57, 0x5b, 0xc5, 0xaf, 0x29, 0xdc, 0xbf, 0xfe, 0x65, 0xb7, - 0xb4, 0x07, 0x44, 0x30, 0x8b, 0x73, 0x8f, 0xca, 0xd1, 0x64, 0xfa, 0x9c, 0xfc, 0x50, 0x16, 0x0a, - 0xe7, 0xb0, 0x55, 0x55, 0xd5, 0x20, 0xdf, 0xde, 0xc2, 0xbd, 0x6a, 0x33, 0x9d, 0xa8, 0xaa, 0x6a, - 0x08, 0xcf, 0x4e, 0xc3, 0xd1, 0x00, 0x83, 0xdc, 0x99, 0x82, 0xc9, 0xe3, 0x5c, 0x75, 0xc7, 0x34, - 0x98, 0x3e, 0xc7, 0x7e, 0x2f, 0xeb, 0xed, 0xea, 0x9f, 0xe6, 0x8f, 0xdb, 0x11, 0x91, 0x61, 0xd0, - 0x9b, 0x27, 0xe0, 0x62, 0xe4, 0x5e, 0x7a, 0xbc, 0xe4, 0xc5, 0xe5, 0xe1, 0x21, 0xed, 0x94, 0xbf, - 0x9b, 0x85, 0x72, 0x1b, 0x5b, 0x0d, 0xf3, 0xbc, 0xb2, 0xb9, 0xa5, 0x2a, 0x9b, 0x5b, 0x16, 0xee, - 0xa1, 0x0b, 0x3e, 0x37, 0x11, 0x94, 0x9c, 0x6b, 0xfa, 0xde, 0x24, 0xe8, 0xa5, 0x9d, 0xe0, 0x42, - 0x81, 0xf7, 0x08, 0x4d, 0x24, 0xb8, 0x50, 0xb0, 0xb2, 0x5f, 0xe0, 0xbe, 0xe0, 0xe9, 0x33, 0x63, - 0x98, 0xa2, 0x90, 0xe9, 0x91, 0xcf, 0x44, 0x92, 0xbb, 0xda, 0x29, 0x5c, 0x3e, 0xc8, 0x42, 0xa1, - 0x4d, 0xe2, 0xca, 0xa0, 0x9f, 0xf2, 0x79, 0x3c, 0x24, 0x4c, 0x99, 0xfd, 0xc2, 0xf4, 0x7f, 0x33, + 0x79, 0x9f, 0xba, 0xab, 0x5f, 0xf3, 0xed, 0xce, 0x6e, 0xab, 0x58, 0x56, 0xe3, 0x8b, 0x58, 0xc4, + 0x22, 0x09, 0x21, 0x8b, 0x5e, 0xb4, 0x42, 0x20, 0x09, 0x3d, 0xe8, 0xe9, 0xe9, 0xd9, 0x6d, 0xed, + 0x4c, 0xf7, 0xb8, 0xba, 0x67, 0x17, 0x05, 0x27, 0x93, 0x9a, 0xee, 0x3b, 0x33, 0xc5, 0xd4, 0x54, + 0x35, 0x55, 0xd5, 0xb3, 0x1a, 0xce, 0x71, 0x12, 0xc0, 0x04, 0x1b, 0x0e, 0xc4, 0xe0, 0x07, 0x20, + 0x62, 0x1e, 0xc2, 0x18, 0x83, 0x79, 0x58, 0x18, 0x2c, 0x1e, 0x21, 0x60, 0x47, 0x98, 0x87, 0x71, + 0x0c, 0xf1, 0x03, 0x83, 0x0f, 0x04, 0x8b, 0x70, 0x4e, 0x12, 0x99, 0x60, 0x1c, 0x6c, 0x07, 0xfb, + 0x10, 0xe7, 0xd4, 0xad, 0x5b, 0x8f, 0xdb, 0xd3, 0x55, 0x7d, 0xab, 0xa7, 0xaa, 0x67, 0x39, 0xf9, + 0xab, 0xfb, 0xde, 0xba, 0x75, 0xef, 0x77, 0xbf, 0xdf, 0x77, 0x1f, 0xf5, 0xdd, 0xef, 0x7e, 0x1f, + 0xcc, 0xf5, 0xd7, 0xcf, 0xf4, 0x0d, 0xdd, 0xd2, 0xcd, 0x33, 0x5d, 0x7d, 0x67, 0x47, 0xd6, 0x7a, + 0x66, 0x85, 0xa4, 0xc5, 0xa2, 0xac, 0xed, 0x59, 0x7b, 0x7d, 0x8c, 0xae, 0xef, 0x6f, 0x6f, 0x9e, + 0x51, 0x95, 0xf5, 0x33, 0xfd, 0xf5, 0x33, 0x3b, 0x7a, 0x0f, 0xab, 0xee, 0x0b, 0x24, 0x41, 0x8b, + 0xa3, 0x9b, 0xc2, 0x4a, 0xa9, 0x7a, 0x57, 0x56, 0x4d, 0x4b, 0x37, 0x30, 0x2d, 0x79, 0xd2, 0x6f, + 0x12, 0xef, 0x62, 0xcd, 0x72, 0x6b, 0xb8, 0x76, 0x53, 0xd7, 0x37, 0x55, 0xec, 0x3c, 0x5b, 0x1f, + 0x6c, 0x9c, 0x31, 0x2d, 0x63, 0xd0, 0xb5, 0x9c, 0xa7, 0xa7, 0x7f, 0xff, 0xa1, 0x1c, 0x08, 0x52, + 0xbf, 0x8b, 0x1e, 0xcb, 0x42, 0x71, 0x19, 0x5b, 0x86, 0xd2, 0x35, 0xd1, 0xc7, 0xb2, 0x30, 0xdb, + 0xc6, 0xd6, 0x8a, 0x6c, 0xc8, 0x3b, 0xd8, 0xc2, 0x86, 0x89, 0x6e, 0x80, 0xa2, 0x84, 0x5f, 0x3a, + 0xc0, 0xa6, 0x25, 0x22, 0x28, 0xf5, 0x55, 0xd9, 0xda, 0xd0, 0x8d, 0x9d, 0xb9, 0xcc, 0x75, 0x99, + 0x9b, 0x66, 0x24, 0x2f, 0x8d, 0xfe, 0x29, 0x03, 0x25, 0x09, 0x9b, 0x7d, 0x5d, 0x33, 0xb1, 0x78, + 0x0e, 0xf2, 0xd8, 0x30, 0x74, 0x83, 0x94, 0x3a, 0x72, 0xf6, 0xd6, 0x0a, 0xed, 0x79, 0x45, 0xea, + 0x77, 0x2b, 0xb4, 0xa9, 0x0a, 0xd3, 0x4c, 0xc5, 0x7d, 0xb7, 0x52, 0xb7, 0x5f, 0x94, 0x9c, 0xf7, + 0xd1, 0x7b, 0x33, 0x90, 0x27, 0x19, 0xe2, 0xfd, 0x90, 0xeb, 0xea, 0x3d, 0x4c, 0x6a, 0x3c, 0x76, + 0xf6, 0x79, 0xb1, 0x6b, 0xac, 0xd4, 0xf4, 0x1e, 0x96, 0x48, 0x1d, 0xe2, 0x75, 0x70, 0xa4, 0x87, + 0xcd, 0xae, 0xa1, 0xf4, 0x2d, 0x45, 0xd7, 0xe6, 0xb2, 0xa4, 0x2b, 0xc1, 0xac, 0xd3, 0x67, 0x21, + 0x67, 0x97, 0x17, 0x4b, 0x90, 0x6b, 0xae, 0x2e, 0x2d, 0x95, 0xaf, 0x12, 0xaf, 0x86, 0xd9, 0xd5, + 0xe6, 0x85, 0x66, 0xeb, 0x52, 0x73, 0xad, 0x2e, 0x49, 0x2d, 0xa9, 0x9c, 0x11, 0x67, 0x61, 0x66, + 0xbe, 0xba, 0xb0, 0xd6, 0x68, 0xae, 0xac, 0x76, 0xca, 0x59, 0xf4, 0x3f, 0x0b, 0x70, 0xb4, 0xfe, + 0xa0, 0x85, 0x0d, 0x4d, 0x56, 0x17, 0x0c, 0xbd, 0x8f, 0x1e, 0x17, 0x20, 0xbf, 0xa8, 0xa8, 0xd8, + 0x44, 0x1f, 0xcc, 0xf8, 0x4c, 0xbc, 0x16, 0x66, 0xba, 0xba, 0x66, 0xe1, 0x07, 0xad, 0x46, 0x8f, + 0x72, 0xd1, 0xcf, 0x10, 0x4f, 0xc3, 0xd1, 0x9e, 0xa1, 0xf7, 0x3b, 0xb2, 0xb1, 0x89, 0xed, 0x02, + 0x0e, 0x6d, 0x4c, 0x9e, 0x78, 0x27, 0x94, 0xfa, 0xba, 0xa9, 0x10, 0xda, 0x05, 0xc2, 0x8e, 0xa7, + 0x7a, 0xec, 0x20, 0x82, 0x52, 0x99, 0x57, 0xf5, 0xee, 0x76, 0x65, 0x85, 0x16, 0x92, 0xbc, 0xe2, + 0xe2, 0x8d, 0x70, 0x8c, 0x48, 0x8f, 0x4d, 0xd6, 0x8a, 0x6c, 0x6d, 0x99, 0x73, 0xb9, 0xeb, 0x84, + 0x9b, 0x66, 0xa4, 0xa1, 0x5c, 0xf4, 0x9e, 0x6c, 0x00, 0xcd, 0x05, 0x16, 0xcd, 0x0a, 0xc3, 0xfb, + 0x60, 0x8f, 0x2b, 0xa4, 0xb7, 0xa3, 0xa1, 0x14, 0x6f, 0x81, 0x3c, 0x11, 0x4e, 0xd2, 0xa5, 0x23, + 0x67, 0x4f, 0xfa, 0xb5, 0xd0, 0xe2, 0x75, 0xfb, 0xa9, 0xe4, 0x14, 0x42, 0xbf, 0xee, 0x01, 0x7f, + 0x8e, 0x01, 0xfe, 0xb6, 0x78, 0x8d, 0xa7, 0x8f, 0xfa, 0x0f, 0xb2, 0x50, 0xac, 0xd9, 0xf0, 0x69, + 0x16, 0x52, 0x78, 0x51, 0xbe, 0x11, 0x8e, 0x6d, 0xe8, 0xdd, 0x81, 0x89, 0x7b, 0x04, 0x29, 0x0f, + 0xe7, 0xa1, 0x5c, 0x71, 0x0e, 0x8a, 0x5d, 0xa7, 0x6e, 0x02, 0xf4, 0x51, 0xc9, 0x4d, 0xa2, 0x1f, + 0x05, 0x87, 0xdb, 0x22, 0x0b, 0xd0, 0x73, 0xc2, 0x79, 0x44, 0x29, 0x0d, 0x19, 0x6d, 0xbf, 0xe1, + 0x31, 0xbd, 0xc1, 0x30, 0xfd, 0xf6, 0xb8, 0x15, 0xa6, 0xcf, 0xf6, 0x3f, 0x3e, 0x03, 0x33, 0x84, + 0x4b, 0x4b, 0x8a, 0x69, 0xa1, 0x0f, 0x09, 0x70, 0xb2, 0xa6, 0x6b, 0xbb, 0xd8, 0xb0, 0x6a, 0x5b, + 0x8a, 0xda, 0x33, 0xb0, 0xd6, 0xd1, 0x57, 0xe4, 0x4d, 0x6c, 0xa2, 0x2e, 0x2f, 0x26, 0x08, 0x4a, + 0xeb, 0x0e, 0xdb, 0xcd, 0xb9, 0x2c, 0x19, 0x14, 0x5e, 0x5a, 0x3c, 0x05, 0xa0, 0xaf, 0xbf, 0x04, + 0x77, 0xad, 0xce, 0x5e, 0x1f, 0x13, 0x28, 0x66, 0xa4, 0x40, 0x0e, 0xfa, 0x50, 0x70, 0xb8, 0x48, + 0x2c, 0x1a, 0x77, 0x33, 0xcc, 0xf3, 0x68, 0xae, 0x8c, 0xa6, 0x37, 0x64, 0xf0, 0xcc, 0x41, 0x51, + 0x55, 0xb4, 0x00, 0x6d, 0x6e, 0x12, 0x7d, 0xc4, 0xc3, 0x6c, 0x95, 0xc1, 0xac, 0x7a, 0x90, 0x66, + 0xd3, 0xc7, 0xef, 0xef, 0x05, 0xc8, 0x2d, 0xeb, 0xbb, 0x18, 0x7d, 0x29, 0x93, 0x04, 0x40, 0x37, + 0xc1, 0x71, 0x8b, 0x4c, 0x8f, 0x35, 0xef, 0x7d, 0x07, 0xa5, 0xe1, 0xec, 0x7d, 0x13, 0x6c, 0x6e, + 0xcc, 0x04, 0x9b, 0x8f, 0x35, 0xc1, 0xa2, 0xb7, 0x07, 0x25, 0xe1, 0x85, 0xac, 0x24, 0xdc, 0x1c, + 0x02, 0x89, 0xcd, 0x87, 0x44, 0x26, 0xcd, 0x87, 0x3d, 0x59, 0xa8, 0x31, 0xb2, 0x70, 0x86, 0xbf, + 0xe1, 0xf4, 0x91, 0xff, 0xed, 0x1c, 0xcc, 0xda, 0x0d, 0x77, 0xf4, 0x26, 0xbe, 0x6c, 0x0b, 0x1f, + 0xfa, 0xd3, 0x44, 0x44, 0xe0, 0x56, 0x28, 0xf6, 0xb0, 0x25, 0x2b, 0xaa, 0x49, 0xa0, 0x3f, 0x72, + 0xf6, 0x9a, 0x8a, 0xb3, 0xfd, 0xa9, 0xb8, 0xdb, 0x9f, 0x4a, 0x9b, 0x6c, 0x7f, 0x24, 0xb7, 0x5c, + 0xda, 0xb2, 0xf0, 0x85, 0xa0, 0x2c, 0x34, 0x58, 0x59, 0xb8, 0x2d, 0x02, 0x12, 0x8f, 0x33, 0x21, + 0x42, 0x71, 0x12, 0x0a, 0xce, 0xe8, 0xa7, 0x90, 0xd0, 0x94, 0x2f, 0x2c, 0x02, 0x8f, 0xb0, 0xfc, + 0xa6, 0x27, 0x2c, 0x4b, 0x8c, 0xb0, 0xdc, 0x31, 0x01, 0x65, 0xe9, 0x4b, 0xcd, 0x5f, 0x0b, 0x30, + 0xb3, 0x30, 0xe8, 0xab, 0x4a, 0x57, 0xb6, 0x30, 0x7a, 0x28, 0x8e, 0xc4, 0x58, 0xec, 0x5e, 0xca, + 0x4b, 0x33, 0xd2, 0x24, 0x0c, 0x49, 0x53, 0x10, 0xf6, 0x5c, 0x3c, 0xd8, 0x3f, 0x1b, 0x84, 0xbd, + 0xce, 0xc2, 0x1e, 0x36, 0x12, 0xbd, 0xae, 0x85, 0x40, 0x1e, 0x25, 0xf8, 0xf1, 0x60, 0x7f, 0x8f, + 0x07, 0xfb, 0x79, 0x06, 0xf6, 0xe7, 0xc6, 0xa4, 0x2c, 0x7d, 0xc8, 0x3f, 0x72, 0x2d, 0x08, 0x6d, + 0x6c, 0xa1, 0x5f, 0x03, 0xc8, 0x75, 0xf0, 0x83, 0x16, 0xfa, 0x3d, 0x01, 0xf2, 0x6d, 0x6b, 0x4f, + 0xc5, 0xe8, 0x15, 0x89, 0xcc, 0x18, 0xf7, 0x40, 0xde, 0xb4, 0xab, 0xa3, 0x9b, 0xe8, 0x67, 0x8e, + 0x04, 0xd8, 0xdd, 0xe0, 0xd8, 0x14, 0x54, 0x48, 0xeb, 0x92, 0xf3, 0x16, 0xfa, 0xed, 0x20, 0xce, + 0xf7, 0xb3, 0x38, 0x87, 0x71, 0xb3, 0x8d, 0x83, 0x35, 0x25, 0x32, 0xe9, 0xbf, 0xdf, 0x03, 0x74, + 0x99, 0x01, 0xf4, 0xce, 0x49, 0x48, 0x48, 0x1f, 0xd5, 0x37, 0x0b, 0x90, 0xaf, 0xe9, 0xaa, 0x6e, + 0xa0, 0x07, 0x92, 0xc0, 0xf0, 0x04, 0xe4, 0xbb, 0x76, 0x6d, 0x74, 0xb9, 0x77, 0x12, 0x07, 0x83, + 0x86, 0x50, 0x77, 0xb8, 0xd0, 0x8c, 0x22, 0x21, 0x7d, 0x68, 0x3e, 0x69, 0xef, 0xc9, 0x64, 0x63, + 0x1b, 0xfd, 0xeb, 0x24, 0x90, 0xb9, 0x0b, 0x72, 0x3b, 0xb2, 0xb1, 0x4d, 0x67, 0xa5, 0x1b, 0xc7, + 0x0f, 0x2e, 0xbb, 0x69, 0x89, 0xbc, 0x83, 0x1e, 0x99, 0x60, 0xe5, 0xf4, 0x98, 0x67, 0xd7, 0x93, + 0x08, 0x7c, 0x71, 0x57, 0xc8, 0x28, 0x0a, 0xd2, 0x47, 0xef, 0xfd, 0x02, 0x1c, 0x9f, 0x97, 0xbb, + 0xdb, 0x9b, 0x86, 0x3e, 0xd0, 0x7a, 0xa9, 0x0f, 0xb1, 0x4f, 0x05, 0x21, 0x6a, 0xb1, 0x10, 0x45, + 0xc9, 0xf7, 0x10, 0x89, 0x89, 0x00, 0xf5, 0x88, 0x07, 0x94, 0xc4, 0x00, 0x75, 0xef, 0xc4, 0x74, + 0xa4, 0x0f, 0xd7, 0xfb, 0x04, 0xc8, 0x57, 0x55, 0x65, 0x53, 0x43, 0x83, 0x24, 0x40, 0x7a, 0x0e, + 0xe4, 0x65, 0xbb, 0x36, 0xba, 0x96, 0xa1, 0x91, 0xc3, 0x8d, 0xb4, 0x27, 0x39, 0x05, 0xd1, 0x7b, + 0x27, 0xd8, 0xa6, 0xd8, 0x8c, 0x23, 0x95, 0x24, 0x02, 0x5b, 0xdc, 0xad, 0x48, 0x58, 0xeb, 0xe9, + 0x83, 0xf5, 0x86, 0x1c, 0x14, 0x16, 0x15, 0xac, 0xf6, 0x4c, 0xf4, 0xe7, 0xdc, 0x5b, 0x8f, 0x8b, + 0x70, 0x84, 0xc0, 0xe3, 0xbc, 0x48, 0x10, 0x8b, 0x5e, 0x7d, 0x9c, 0x82, 0x15, 0x5a, 0xbb, 0xf3, + 0x90, 0xe4, 0x49, 0xc1, 0x8a, 0xd0, 0x25, 0x00, 0xff, 0x91, 0x38, 0x07, 0x45, 0x2a, 0x04, 0x94, + 0x02, 0x37, 0x29, 0x9e, 0x81, 0xc2, 0x86, 0xdb, 0x74, 0xe4, 0xf7, 0x10, 0x2d, 0x86, 0x7e, 0x33, + 0xcb, 0xab, 0x53, 0x0a, 0xa1, 0xfb, 0xe0, 0x22, 0xc1, 0xa7, 0x81, 0xe2, 0x68, 0x3e, 0x7d, 0x99, + 0xf8, 0x9c, 0x00, 0xc2, 0x82, 0xb2, 0x8b, 0x3e, 0xed, 0xed, 0x4a, 0x5f, 0x9e, 0xc8, 0xae, 0xf4, + 0x6e, 0x76, 0x57, 0x1a, 0xbd, 0x70, 0x2e, 0x28, 0xbb, 0xec, 0xa6, 0x74, 0xd2, 0x95, 0xd3, 0xab, + 0xe8, 0xd0, 0x56, 0xce, 0x30, 0x0a, 0xd2, 0x47, 0xf2, 0x0f, 0x04, 0xc8, 0x2d, 0x2a, 0x2a, 0x3e, + 0xdc, 0x0f, 0x0c, 0x9b, 0x82, 0x64, 0x3e, 0x30, 0xfc, 0x9a, 0x0e, 0x6d, 0x17, 0x1b, 0x4a, 0x42, + 0xfa, 0x68, 0x7e, 0x5c, 0x80, 0x52, 0x67, 0x60, 0x68, 0x0d, 0xcd, 0xd2, 0xaf, 0x8c, 0x0f, 0x45, + 0xfe, 0xc3, 0x14, 0x9f, 0x89, 0x6e, 0x0f, 0xa6, 0x78, 0x98, 0x32, 0xb6, 0xf1, 0xf4, 0xb1, 0x7b, + 0xd5, 0x37, 0x32, 0x90, 0x27, 0x74, 0xa0, 0x0f, 0x0b, 0x36, 0x72, 0x7d, 0x55, 0xee, 0x62, 0xb4, + 0xc3, 0x0b, 0x62, 0x60, 0x31, 0xcc, 0xb2, 0x8b, 0xe1, 0xcd, 0x90, 0x27, 0x7f, 0xe9, 0xe7, 0xc8, + 0x89, 0x51, 0x10, 0x4a, 0x4e, 0x11, 0xf4, 0x68, 0x10, 0xaf, 0xfb, 0x58, 0xbc, 0x9e, 0xb5, 0x9f, + 0x65, 0x15, 0x4a, 0x66, 0xb8, 0xea, 0x3e, 0x84, 0xa6, 0x78, 0x8a, 0x9b, 0x77, 0x7a, 0x20, 0xce, + 0x33, 0x20, 0x56, 0xb8, 0x29, 0x9a, 0xca, 0xa6, 0x76, 0x76, 0xb5, 0xdf, 0x93, 0x2d, 0xec, 0x1e, + 0x89, 0x4d, 0x19, 0xba, 0x98, 0x9b, 0xda, 0x0a, 0x43, 0xec, 0xb8, 0xb1, 0x96, 0xb4, 0x7e, 0x2d, + 0xb2, 0xf5, 0xf4, 0xc1, 0xfa, 0x7a, 0x0e, 0xf2, 0xed, 0xbe, 0xaa, 0x58, 0xe8, 0xa1, 0x6c, 0x22, + 0x28, 0x19, 0xb2, 0xb6, 0x89, 0x43, 0x50, 0x92, 0xec, 0x67, 0x92, 0x53, 0xc4, 0x9f, 0x4f, 0x73, + 0x93, 0xcc, 0xa7, 0xe2, 0x9d, 0x90, 0xb3, 0x0b, 0x52, 0x75, 0xfc, 0x0d, 0x23, 0x18, 0x4b, 0xba, + 0xe5, 0x6d, 0xa4, 0x97, 0x09, 0x27, 0xed, 0x57, 0x4e, 0xdf, 0x0a, 0x39, 0x3b, 0x25, 0x02, 0x14, + 0xe6, 0x5b, 0x9d, 0x4e, 0x6b, 0xb9, 0x7c, 0x95, 0x58, 0x04, 0xa1, 0xd3, 0x5a, 0x29, 0x67, 0xc4, + 0x19, 0xc8, 0x37, 0x9a, 0xcd, 0xba, 0x54, 0xce, 0xda, 0x7f, 0x3b, 0x8d, 0xce, 0x52, 0xbd, 0x2c, + 0xb0, 0xab, 0xf0, 0x3d, 0xac, 0x48, 0x3d, 0x33, 0xa2, 0xed, 0x34, 0xe7, 0x82, 0xb7, 0x7b, 0x42, + 0xf6, 0x42, 0x46, 0xc8, 0x6e, 0xe1, 0xa4, 0x27, 0x7d, 0xe1, 0xfa, 0x15, 0x01, 0xf2, 0xcb, 0xd8, + 0xd8, 0xc4, 0xe8, 0xa5, 0x31, 0x4c, 0x1f, 0x36, 0x14, 0xc3, 0xb4, 0xd8, 0x23, 0x71, 0x26, 0x4f, + 0xbc, 0x1e, 0x66, 0x4d, 0xdc, 0xd5, 0x35, 0xef, 0xdc, 0xdc, 0xd1, 0x49, 0xb0, 0x99, 0xe8, 0x2d, + 0x31, 0x21, 0x23, 0x84, 0x26, 0xb2, 0xd2, 0xc6, 0x01, 0x66, 0x54, 0xab, 0xe9, 0x03, 0xf3, 0x77, + 0x82, 0xfd, 0x52, 0x7f, 0x0f, 0xbd, 0x85, 0x7b, 0x6b, 0x74, 0x0b, 0x14, 0x88, 0x98, 0xba, 0xdf, + 0xb0, 0xa3, 0x67, 0x60, 0x5a, 0x46, 0x9c, 0x87, 0xab, 0x4d, 0xac, 0xe2, 0xae, 0x85, 0x7b, 0xf6, + 0xd0, 0x95, 0xc6, 0x4e, 0x0a, 0xfb, 0x8b, 0xa3, 0xaf, 0x04, 0x01, 0xbc, 0x9b, 0x05, 0xf0, 0xc6, + 0x11, 0xac, 0xb4, 0x3b, 0x14, 0x7e, 0x72, 0x62, 0x77, 0xa3, 0xad, 0xea, 0x96, 0x77, 0x00, 0x44, + 0xd3, 0xf6, 0xb3, 0x2d, 0x6b, 0x47, 0x25, 0xcf, 0x1c, 0x41, 0xf2, 0xd2, 0x62, 0x05, 0x8a, 0xb2, + 0xb6, 0x47, 0x1e, 0xe5, 0x22, 0x7a, 0xed, 0x16, 0x42, 0x6f, 0xf3, 0x90, 0xbf, 0x8f, 0x41, 0xfe, + 0x27, 0xf9, 0xc8, 0x4d, 0x1f, 0xf8, 0xbf, 0x29, 0x40, 0x7e, 0x45, 0x36, 0x2d, 0x8c, 0xbe, 0x29, + 0x24, 0x6d, 0xa7, 0x92, 0x00, 0xe6, 0xe2, 0xcd, 0x50, 0x76, 0x33, 0xe7, 0xdd, 0x8d, 0xb8, 0x63, + 0x9c, 0xb4, 0x2f, 0xdf, 0x9e, 0x06, 0x14, 0x73, 0x45, 0x36, 0xac, 0xd6, 0x06, 0xc9, 0x23, 0x4b, + 0x41, 0x49, 0x62, 0x33, 0x19, 0xe8, 0x0b, 0x11, 0xd0, 0x17, 0xc3, 0xa1, 0x2f, 0x71, 0x40, 0x2f, + 0x56, 0xa1, 0xb4, 0xa1, 0xa8, 0x98, 0xbc, 0x30, 0x43, 0x5e, 0x18, 0xb5, 0x26, 0x11, 0xde, 0x7b, + 0x6b, 0x92, 0xfd, 0x81, 0x24, 0x79, 0xaf, 0xa1, 0x25, 0xe7, 0x0b, 0x54, 0x14, 0x21, 0xa7, 0xc9, + 0x3b, 0x98, 0x22, 0x41, 0xfe, 0xdb, 0x79, 0x3d, 0xd9, 0x92, 0x09, 0xeb, 0x8f, 0x4a, 0xe4, 0xbf, + 0x0d, 0x1b, 0xb1, 0xd8, 0x5a, 0x91, 0xad, 0x2d, 0x2a, 0xba, 0x7e, 0x06, 0x7a, 0xb5, 0x10, 0x6f, + 0xfe, 0x73, 0x49, 0x8b, 0x7b, 0xf2, 0x78, 0x3d, 0xcc, 0x76, 0x65, 0x03, 0x5b, 0x2b, 0x41, 0x6b, + 0xb4, 0xbc, 0xc4, 0x66, 0xda, 0xc0, 0x2a, 0x66, 0x5b, 0xde, 0xc1, 0xa4, 0xb1, 0x9a, 0xfd, 0x8c, + 0x2c, 0xfc, 0x25, 0x69, 0x5f, 0xbe, 0x3f, 0xdb, 0xe6, 0x93, 0x9e, 0x6d, 0x47, 0xf5, 0x31, 0xfd, + 0x41, 0xf7, 0xce, 0x1c, 0x08, 0xb5, 0x81, 0x75, 0x45, 0x4f, 0xb6, 0x3f, 0x0a, 0x4e, 0xb6, 0x2f, + 0x60, 0xa5, 0x65, 0x94, 0x20, 0xd7, 0x06, 0xd6, 0xe1, 0xce, 0xb5, 0x31, 0xa5, 0xe4, 0x57, 0x3d, + 0x29, 0xb9, 0x97, 0x91, 0x92, 0x9b, 0xb9, 0xfa, 0x96, 0xbe, 0x8c, 0xbc, 0x57, 0x80, 0x63, 0x8d, + 0x9d, 0xbe, 0x6e, 0x58, 0xcb, 0xb2, 0xb1, 0xdd, 0xd3, 0x2f, 0x6b, 0xe8, 0x1c, 0xaf, 0xb4, 0x9c, + 0x02, 0x50, 0xc8, 0xab, 0x64, 0x22, 0x70, 0x08, 0x0a, 0xe4, 0xa0, 0x3f, 0x8c, 0xa7, 0xd2, 0xad, + 0xb0, 0x74, 0x84, 0xc0, 0x7c, 0x1d, 0x1c, 0x31, 0x74, 0xdd, 0x5a, 0x62, 0x0c, 0xd2, 0x82, 0x59, + 0x31, 0x77, 0xb3, 0x31, 0x94, 0xbe, 0xd1, 0x04, 0x4e, 0xe1, 0x20, 0x40, 0x80, 0x42, 0xfd, 0x41, + 0x9b, 0x04, 0xb4, 0x9a, 0xca, 0x88, 0x66, 0x4d, 0x09, 0xef, 0x65, 0x11, 0xbb, 0x69, 0x04, 0x43, + 0x1c, 0x6a, 0x42, 0x90, 0x12, 0x21, 0xd7, 0xf7, 0x05, 0x83, 0xfc, 0x8f, 0x89, 0xcd, 0x3b, 0x3c, + 0x6c, 0xaa, 0x0c, 0x36, 0xcf, 0xe6, 0x25, 0x25, 0x7d, 0x4c, 0xde, 0x24, 0x40, 0x61, 0xb5, 0xaf, + 0xea, 0x72, 0x0f, 0xe9, 0x07, 0xff, 0x8e, 0x45, 0xce, 0x62, 0x1e, 0x58, 0x58, 0xbd, 0xb4, 0x58, + 0x06, 0x61, 0x60, 0xa8, 0xd4, 0x4c, 0xcc, 0xfe, 0x8b, 0xde, 0x1a, 0x13, 0x2d, 0x87, 0xce, 0x44, + 0x3e, 0x35, 0xe2, 0x20, 0x33, 0xb2, 0xd9, 0xf4, 0x91, 0xf9, 0x5e, 0x16, 0x4a, 0x0b, 0xfa, 0x65, + 0x8d, 0x60, 0x53, 0x3d, 0x30, 0x36, 0x71, 0x8d, 0x2b, 0x2b, 0x6e, 0xdb, 0xd3, 0x36, 0xae, 0x0c, + 0x6b, 0x38, 0x7d, 0x8e, 0x3f, 0x7e, 0x9b, 0x63, 0x33, 0xf5, 0xb0, 0xe0, 0x1d, 0x58, 0x1a, 0x07, + 0x1f, 0x13, 0xfe, 0x49, 0xa2, 0xc0, 0x77, 0x92, 0xf8, 0xae, 0x20, 0x50, 0xf3, 0x2c, 0x50, 0x23, + 0x75, 0x14, 0xc9, 0x9e, 0x22, 0xfe, 0x9a, 0x07, 0x55, 0x9d, 0x81, 0xea, 0xd6, 0x38, 0x4d, 0xa7, + 0x0f, 0xd6, 0x77, 0x04, 0x28, 0x2e, 0x38, 0xa6, 0xa8, 0xe8, 0x3c, 0x14, 0x9c, 0xbf, 0xf6, 0x24, + 0xb3, 0x8d, 0xf7, 0x28, 0x3c, 0xf6, 0x5f, 0xbb, 0xf3, 0xbb, 0xb2, 0x3a, 0xc0, 0x5e, 0xe7, 0x87, + 0xb9, 0x7f, 0xd1, 0x7e, 0x2a, 0x39, 0x85, 0xd0, 0x16, 0x2f, 0xde, 0xf7, 0xf9, 0x06, 0xb3, 0xd9, + 0xd0, 0xaf, 0x16, 0x72, 0x32, 0xe7, 0x94, 0xa2, 0xbf, 0x9e, 0xf9, 0x2c, 0x7a, 0x77, 0x10, 0xe5, + 0x1a, 0x8b, 0xf2, 0xb3, 0xc7, 0xd4, 0x95, 0x04, 0xcc, 0xef, 0xf6, 0x60, 0x5e, 0x64, 0x60, 0x3e, + 0x1b, 0xab, 0xed, 0xa9, 0x9c, 0x2f, 0x1e, 0x95, 0xb0, 0x69, 0x19, 0x4a, 0xd7, 0xae, 0xc3, 0x44, + 0x3f, 0x97, 0x39, 0xf8, 0x98, 0xac, 0xc3, 0x51, 0x23, 0x50, 0x27, 0x1d, 0x99, 0x4f, 0x1f, 0xa9, + 0x4a, 0x0d, 0x36, 0x2e, 0x31, 0xaf, 0xb1, 0xdb, 0x8d, 0xf3, 0x2c, 0x86, 0x61, 0x7c, 0x0c, 0x56, + 0x97, 0x08, 0x90, 0xef, 0xf3, 0x80, 0xbc, 0xc0, 0x00, 0xf9, 0xfc, 0xf8, 0x04, 0xa4, 0x8f, 0xe6, + 0x2b, 0x04, 0xc8, 0x11, 0xb3, 0xf5, 0x1f, 0x66, 0x01, 0x1a, 0x66, 0xd5, 0xe8, 0x6e, 0x29, 0xbb, + 0xb8, 0x87, 0xe4, 0x83, 0x63, 0x6a, 0xef, 0xe6, 0xbd, 0x0a, 0x09, 0xa2, 0x25, 0x29, 0x90, 0x83, + 0x5e, 0x1d, 0x04, 0xeb, 0x02, 0x0b, 0xd6, 0xed, 0x21, 0xbc, 0x22, 0xd6, 0xda, 0x3e, 0x99, 0x21, + 0x37, 0x7f, 0x3e, 0xe0, 0x21, 0xd0, 0x64, 0x10, 0xb8, 0x6b, 0xa2, 0x5a, 0xd3, 0x07, 0xe1, 0x97, + 0x05, 0xc8, 0x2f, 0xc9, 0x16, 0x7e, 0x10, 0xbd, 0x56, 0xa0, 0xd6, 0xc1, 0xab, 0x07, 0xe7, 0xbf, + 0x08, 0x39, 0xbb, 0x0c, 0xdd, 0xf7, 0x91, 0xff, 0x71, 0x8d, 0x62, 0x08, 0x77, 0x08, 0x65, 0xce, + 0xc1, 0xc5, 0x94, 0x8d, 0x62, 0xa2, 0x9b, 0x4f, 0x1f, 0x97, 0xef, 0x96, 0x29, 0x1a, 0x5f, 0x70, + 0x61, 0xf9, 0xa5, 0x4c, 0x2a, 0xb8, 0x88, 0xf7, 0x40, 0x7e, 0x47, 0x36, 0xb6, 0x4d, 0xb2, 0x1b, + 0x3f, 0xc2, 0x73, 0x86, 0x64, 0x7f, 0x34, 0x9a, 0x92, 0xf3, 0x56, 0xec, 0x83, 0x42, 0xcf, 0xb6, + 0x33, 0x31, 0x54, 0xe3, 0x1c, 0x14, 0x46, 0xb5, 0x9e, 0x3e, 0xa8, 0xaf, 0xf7, 0x4c, 0xb6, 0x2f, + 0x1d, 0x1c, 0xcb, 0xd1, 0xd6, 0xa4, 0x93, 0x8c, 0xb2, 0x84, 0x8d, 0xb5, 0xe3, 0x8e, 0xb2, 0x43, + 0x34, 0xd4, 0xfe, 0x98, 0x67, 0xa7, 0xf4, 0x6f, 0x12, 0x18, 0x5d, 0x07, 0xb4, 0x6e, 0x99, 0x18, + 0xba, 0xe4, 0x2c, 0x94, 0x26, 0x82, 0xee, 0xd0, 0xae, 0x3f, 0x14, 0x6b, 0x5b, 0xb8, 0xbb, 0x8d, + 0x7b, 0xe8, 0xc5, 0x07, 0xc7, 0x6e, 0x0e, 0x8a, 0x5d, 0xa7, 0x36, 0xba, 0x5d, 0x70, 0x93, 0x13, + 0x6d, 0xec, 0x1c, 0x91, 0x76, 0x2a, 0x38, 0x94, 0x8d, 0x5d, 0x04, 0x01, 0xe9, 0x43, 0xf3, 0x88, + 0x00, 0xb9, 0x46, 0x57, 0xd7, 0xd0, 0xcf, 0x1c, 0x1c, 0x97, 0x6b, 0x61, 0x46, 0xe9, 0xea, 0x5a, + 0x63, 0x47, 0xde, 0x74, 0xef, 0x0b, 0xfb, 0x19, 0xee, 0xd3, 0xfa, 0x8e, 0xfe, 0x12, 0x85, 0xe8, + 0xb0, 0xe9, 0x53, 0x92, 0x31, 0xf9, 0xd2, 0x64, 0x13, 0x7f, 0x78, 0x4b, 0xd3, 0x88, 0xd6, 0xd3, + 0xc7, 0xec, 0x8d, 0xae, 0xe9, 0xe6, 0xcf, 0x0b, 0x90, 0x6b, 0xca, 0x3b, 0x38, 0xa1, 0x6d, 0x20, + 0x39, 0x84, 0x13, 0xfc, 0x43, 0xb8, 0x89, 0x40, 0x21, 0x46, 0x90, 0x36, 0x51, 0x87, 0x02, 0x4a, + 0x58, 0xeb, 0xe9, 0x83, 0xf2, 0xa5, 0x3c, 0xe4, 0x89, 0xa0, 0xa3, 0x6f, 0x64, 0xd3, 0x45, 0x85, + 0xdf, 0x0b, 0x82, 0xcf, 0x17, 0x42, 0x59, 0x04, 0x2c, 0xb1, 0x57, 0x93, 0xd0, 0x0a, 0xa7, 0xa0, + 0xee, 0xcb, 0x42, 0xfe, 0x92, 0xd2, 0xb3, 0xb6, 0x12, 0xda, 0x99, 0x5d, 0xb6, 0xeb, 0xa2, 0xa7, + 0xb8, 0x4e, 0x22, 0x86, 0x5f, 0x97, 0x61, 0x8e, 0x10, 0xc2, 0x0e, 0xe4, 0xd7, 0x85, 0xa7, 0xc6, + 0xe9, 0x88, 0xf3, 0x45, 0xa5, 0x87, 0xf5, 0x2b, 0x52, 0x9c, 0x09, 0x65, 0x49, 0x8a, 0x73, 0x68, + 0x85, 0xff, 0xdf, 0x8a, 0xb3, 0xc3, 0x91, 0x24, 0xc5, 0x39, 0xbc, 0xc6, 0xf4, 0x99, 0xfc, 0x69, + 0x01, 0x72, 0x4b, 0x8a, 0xb6, 0x8d, 0x7e, 0x47, 0x80, 0x59, 0xc7, 0xcd, 0x81, 0x6b, 0x37, 0xb7, + 0x79, 0x70, 0xae, 0x5f, 0x0f, 0xb3, 0x56, 0xb0, 0x4e, 0xd7, 0x40, 0x8f, 0xc9, 0x44, 0x9f, 0x0c, + 0xae, 0xa6, 0x4d, 0x16, 0x85, 0x3b, 0xc2, 0xb4, 0x1a, 0x8a, 0xb6, 0x5d, 0x61, 0xe8, 0x4d, 0x64, + 0x59, 0xfd, 0x2d, 0x0f, 0xba, 0x9f, 0x62, 0xa0, 0xbb, 0x67, 0x52, 0x32, 0xd2, 0x47, 0xf0, 0xb1, + 0x82, 0xcd, 0x3d, 0x55, 0x26, 0xde, 0x06, 0x5e, 0x27, 0x40, 0xa1, 0x8d, 0xad, 0x0b, 0x78, 0x0f, + 0xb5, 0x0f, 0x0e, 0x1f, 0x3d, 0x7c, 0x10, 0xbc, 0xc3, 0x07, 0xf4, 0x81, 0x6c, 0xbc, 0x01, 0xe3, + 0x12, 0x56, 0x71, 0x88, 0x4a, 0x04, 0xa3, 0x38, 0xc3, 0x2b, 0xba, 0xfd, 0xf4, 0xc1, 0x79, 0x8f, + 0x00, 0x42, 0xb5, 0xd7, 0x43, 0xbb, 0x07, 0x07, 0xe3, 0x36, 0x28, 0x19, 0xb4, 0x37, 0xde, 0xc1, + 0xdb, 0x90, 0x4d, 0x0f, 0x7d, 0x2c, 0x79, 0x05, 0xe3, 0x5e, 0x36, 0xf1, 0xf9, 0x55, 0xed, 0xf5, + 0xa6, 0x7d, 0xd9, 0x24, 0xaa, 0xf1, 0xf4, 0x91, 0xfa, 0xa0, 0x00, 0xd0, 0xf2, 0x7d, 0x38, 0xbd, + 0x5d, 0x70, 0x8e, 0x4e, 0x97, 0x79, 0x81, 0xbb, 0x1e, 0x66, 0x7d, 0x17, 0x50, 0xab, 0x86, 0xea, + 0x4e, 0x75, 0x4c, 0x26, 0xfa, 0x7c, 0x4c, 0xf5, 0x88, 0x4f, 0x91, 0x7b, 0xd4, 0x71, 0x60, 0x44, + 0x3e, 0x1b, 0x63, 0x07, 0x10, 0xd9, 0x7c, 0x3c, 0x4c, 0x5a, 0xf1, 0x31, 0x11, 0x9f, 0x02, 0xd7, + 0xb8, 0x25, 0x5a, 0xf3, 0xf7, 0xd7, 0x6b, 0x9d, 0xb5, 0xce, 0x03, 0x2b, 0xf5, 0xb5, 0x55, 0x69, + 0xa9, 0x2c, 0xa0, 0x37, 0x15, 0xa1, 0x34, 0xaf, 0xeb, 0xdb, 0xc4, 0x45, 0xc0, 0x6b, 0x04, 0xc8, + 0x2f, 0x62, 0xab, 0xbb, 0x95, 0xd0, 0xb4, 0x37, 0xf0, 0x00, 0x24, 0x86, 0x1d, 0x71, 0xb5, 0x5a, + 0x2e, 0x5d, 0x15, 0x42, 0xd3, 0xd4, 0xb5, 0x5a, 0x91, 0xcd, 0xa7, 0x3f, 0x94, 0x7e, 0x24, 0xc0, + 0xb1, 0x9a, 0x81, 0x65, 0x0b, 0x57, 0xb5, 0x9e, 0x83, 0xca, 0x2f, 0x24, 0xe2, 0xa2, 0xe7, 0x00, + 0xae, 0x0e, 0xf7, 0x1b, 0xeb, 0x7c, 0x35, 0x9e, 0xcb, 0x02, 0x9f, 0xa9, 0x6c, 0xd7, 0x52, 0xbe, + 0xdb, 0x11, 0xc3, 0x99, 0x01, 0x27, 0x85, 0xe9, 0xe3, 0xff, 0xed, 0x1c, 0x55, 0xc3, 0x7c, 0x3d, + 0x07, 0xc7, 0x3d, 0x5a, 0xa8, 0x51, 0xd6, 0xdf, 0x5c, 0x71, 0x92, 0xc0, 0x9a, 0x4f, 0xe7, 0x87, + 0xcc, 0xa7, 0xc5, 0x79, 0xc7, 0x04, 0x8c, 0xf8, 0xfa, 0x2b, 0x70, 0x5c, 0xc2, 0x26, 0x9a, 0x16, + 0xbb, 0xb4, 0xe4, 0xbd, 0xc7, 0xde, 0x60, 0x58, 0x62, 0x65, 0x6d, 0xd4, 0xb6, 0x85, 0xd4, 0x31, + 0xc4, 0xb9, 0x94, 0x05, 0xed, 0x83, 0x9e, 0xa0, 0xb5, 0x18, 0x41, 0x7b, 0xc1, 0x64, 0xe4, 0x4d, + 0xc1, 0xc3, 0xc9, 0xdd, 0x50, 0x5a, 0x90, 0x2d, 0x79, 0x57, 0xc1, 0x97, 0xd1, 0xb7, 0x04, 0x80, + 0x8b, 0x0a, 0xbe, 0xec, 0x10, 0x15, 0xe3, 0xee, 0x7d, 0x38, 0xfb, 0xee, 0x85, 0x9c, 0x5d, 0x35, + 0x3d, 0x51, 0xbc, 0x39, 0xfa, 0xe2, 0x3d, 0xa5, 0xa3, 0x62, 0xd3, 0x20, 0x91, 0xf7, 0x58, 0x63, + 0x5b, 0x8e, 0xe3, 0x79, 0xa6, 0x0e, 0xa7, 0x1f, 0x49, 0x2c, 0x1c, 0xe2, 0x49, 0x28, 0xd8, 0xd5, + 0x7a, 0x1f, 0x5f, 0x34, 0x15, 0xeb, 0x90, 0x7f, 0x3c, 0x6d, 0xe9, 0xe3, 0xed, 0x42, 0xec, 0x5c, + 0x93, 0x8c, 0x61, 0x43, 0x1f, 0x0e, 0x71, 0x08, 0x6b, 0x0e, 0x0c, 0xfd, 0x47, 0x0f, 0x02, 0xbd, + 0xd3, 0xbf, 0x44, 0xf6, 0x0c, 0x13, 0x43, 0x3c, 0x92, 0x86, 0xf4, 0x21, 0x7e, 0x3b, 0x85, 0x78, + 0x01, 0xab, 0xd8, 0xc2, 0xfc, 0xfe, 0x8a, 0x78, 0x10, 0xce, 0x31, 0xc2, 0x7f, 0x20, 0x84, 0x1c, + 0xf2, 0x0e, 0x17, 0xa1, 0x91, 0x34, 0xa4, 0x8f, 0xd0, 0x17, 0x05, 0x38, 0x6e, 0x37, 0xdf, 0xf6, + 0x6f, 0xf4, 0xf0, 0x7b, 0x2c, 0x8a, 0x0d, 0x13, 0x71, 0x31, 0x1e, 0x74, 0xb7, 0x39, 0x1b, 0x70, + 0xac, 0xf8, 0xe9, 0x20, 0x84, 0x2b, 0x2c, 0x84, 0x63, 0xd9, 0x17, 0xa0, 0x3f, 0x11, 0x1c, 0x3f, + 0xec, 0xe1, 0xd8, 0x66, 0x70, 0xbc, 0x6f, 0x72, 0x42, 0xd2, 0x07, 0xf3, 0xab, 0x02, 0xcc, 0x52, + 0x1a, 0xaa, 0x5d, 0x4b, 0xd9, 0xc5, 0xe8, 0xd5, 0x29, 0x4e, 0xaa, 0x27, 0xa1, 0xa0, 0x6f, 0x6c, + 0x98, 0xf4, 0xba, 0xd7, 0xac, 0x44, 0x53, 0xe2, 0x09, 0xc8, 0xab, 0xca, 0x8e, 0x62, 0x51, 0x80, + 0x9d, 0x44, 0x6c, 0x9d, 0xe0, 0x30, 0x53, 0x9d, 0x0e, 0x4d, 0x5d, 0x27, 0xc8, 0x45, 0x46, 0xfa, + 0xc8, 0x7e, 0x80, 0xd8, 0x98, 0x76, 0x75, 0xa3, 0x47, 0x57, 0xcb, 0xd7, 0x67, 0x12, 0xb9, 0x0b, + 0x61, 0x90, 0x3a, 0x3d, 0x68, 0xbd, 0xb4, 0x78, 0x06, 0x0a, 0xce, 0x7f, 0xba, 0x66, 0x86, 0xdb, + 0x84, 0x3b, 0xc5, 0xd0, 0x6b, 0x83, 0xf8, 0x2e, 0xb3, 0xf8, 0x3e, 0x3f, 0x8a, 0xb1, 0xc1, 0x6e, + 0x85, 0xe8, 0xdf, 0x3f, 0xe4, 0x01, 0xb6, 0xc2, 0x00, 0x76, 0xf7, 0x84, 0xf5, 0x4e, 0xe5, 0xd2, + 0x17, 0xc5, 0x8b, 0x2e, 0x7d, 0xff, 0x3c, 0x55, 0xb8, 0xd0, 0xc7, 0x0f, 0xc6, 0xfd, 0x04, 0x17, + 0xc0, 0x03, 0x60, 0x75, 0x48, 0x4b, 0xe0, 0xe3, 0x1e, 0x56, 0xf4, 0x63, 0xe3, 0x8d, 0x99, 0x44, + 0xee, 0x54, 0xd0, 0xf1, 0x23, 0x70, 0x8d, 0x1f, 0xf1, 0x14, 0x80, 0x85, 0x77, 0xfa, 0xaa, 0x6c, + 0x61, 0x6f, 0xd5, 0x0c, 0xe4, 0xa0, 0xff, 0x70, 0x30, 0x84, 0x23, 0xbf, 0x3f, 0x7c, 0x62, 0xb3, + 0x7c, 0x83, 0xfd, 0x00, 0x20, 0x1f, 0xd2, 0xc7, 0xc6, 0xaf, 0xe4, 0xe0, 0x88, 0xab, 0x8e, 0x3e, + 0x4c, 0xfd, 0xfd, 0xeb, 0x85, 0x78, 0x8a, 0x83, 0x00, 0xf7, 0x3c, 0xe2, 0x13, 0xf9, 0x8a, 0xbc, + 0x0e, 0x8e, 0xb8, 0x44, 0x5d, 0xf0, 0x8e, 0x84, 0x82, 0x59, 0x4c, 0xff, 0x72, 0xbc, 0xfd, 0x8b, + 0xa3, 0x75, 0xe0, 0xe8, 0x5b, 0xfa, 0x82, 0xf1, 0x84, 0x00, 0xc7, 0xdc, 0xf6, 0xe9, 0xda, 0xfa, + 0xe6, 0x04, 0xc6, 0x7f, 0x4a, 0xec, 0x8d, 0xe9, 0x96, 0x75, 0x3f, 0x8b, 0x13, 0xfc, 0x18, 0x8d, + 0xa3, 0xc9, 0xe4, 0xa3, 0x23, 0x7d, 0xb4, 0x3f, 0x1a, 0x40, 0x9b, 0xae, 0xcc, 0xdd, 0x29, 0x80, + 0x7d, 0x70, 0xdc, 0xf8, 0x56, 0x68, 0x21, 0x75, 0xdc, 0x0e, 0x69, 0x8d, 0xfe, 0x46, 0x0e, 0xae, + 0x71, 0xd6, 0x0f, 0x97, 0x90, 0x56, 0xdf, 0x9d, 0xca, 0x1f, 0x9d, 0xca, 0x70, 0x7d, 0x1e, 0x14, + 0xf4, 0x7e, 0x60, 0xb0, 0x9e, 0x0a, 0x19, 0xac, 0x15, 0x87, 0x30, 0x89, 0x96, 0x66, 0x76, 0x6d, + 0xf9, 0xa1, 0x5d, 0x1b, 0xe3, 0xc8, 0xe3, 0x45, 0xac, 0x54, 0xcc, 0x8f, 0x5f, 0x4a, 0xf7, 0xb1, + 0x22, 0x91, 0x85, 0xc1, 0xef, 0xa8, 0x10, 0xa7, 0xa3, 0xe8, 0x13, 0x9e, 0x58, 0xbd, 0x98, 0x11, + 0xab, 0x73, 0x07, 0xef, 0xc8, 0x14, 0x0e, 0x8b, 0x73, 0x80, 0x46, 0xd1, 0x42, 0x57, 0x84, 0x1f, + 0x5f, 0x11, 0xfb, 0xd3, 0xe0, 0xc4, 0xf3, 0x62, 0x56, 0xc4, 0xea, 0x71, 0x91, 0x49, 0x70, 0xf1, + 0xf8, 0x94, 0x27, 0x2d, 0xff, 0x82, 0x91, 0x96, 0xfb, 0x13, 0xa1, 0x69, 0x0a, 0x96, 0xc9, 0x21, + 0x02, 0x43, 0x17, 0x95, 0xb7, 0x4e, 0x45, 0x60, 0x10, 0x94, 0x1c, 0x11, 0xf0, 0xbe, 0x18, 0xbc, + 0xf4, 0xf4, 0x84, 0x22, 0xc1, 0x6f, 0xc7, 0xc4, 0x84, 0xe2, 0x90, 0x56, 0xa9, 0x3f, 0x10, 0xe0, + 0xc9, 0x2e, 0x21, 0x4b, 0x8a, 0x69, 0x55, 0x77, 0x65, 0x45, 0x95, 0xd7, 0x55, 0x9c, 0x84, 0x77, + 0x84, 0xff, 0x15, 0x04, 0xed, 0x22, 0x0b, 0xda, 0x0b, 0x79, 0x96, 0x6e, 0x86, 0xa2, 0x10, 0xbc, + 0x6e, 0x87, 0x19, 0x57, 0xc0, 0xdc, 0x6b, 0xe3, 0xa1, 0xbb, 0x52, 0xbf, 0x24, 0xfa, 0x2f, 0x1e, + 0x70, 0x0f, 0x30, 0xc0, 0xd5, 0x0f, 0x4a, 0x57, 0x3c, 0xcc, 0x96, 0x26, 0x30, 0x49, 0x99, 0x83, + 0x13, 0xcd, 0x56, 0x67, 0xad, 0xba, 0xb6, 0x50, 0xed, 0x54, 0x2f, 0x36, 0xea, 0x97, 0xd6, 0xe6, + 0x97, 0x5a, 0xb5, 0x0b, 0x65, 0x01, 0xfd, 0x7b, 0x01, 0x66, 0xda, 0xd8, 0x6a, 0xeb, 0x03, 0xa3, + 0x9b, 0xd4, 0xd9, 0x85, 0x49, 0x2a, 0xa3, 0xe1, 0x88, 0x68, 0x2a, 0xae, 0x23, 0x68, 0x9f, 0x83, + 0x1e, 0x75, 0xe3, 0x46, 0x5f, 0x2e, 0x61, 0x47, 0xd0, 0xe3, 0x49, 0x48, 0x7f, 0xb0, 0x3d, 0x2c, + 0x80, 0x70, 0x0e, 0x5b, 0xe8, 0x21, 0x01, 0xf2, 0xe4, 0xee, 0x67, 0x42, 0xce, 0x68, 0x79, 0xdd, + 0x9c, 0xa2, 0x77, 0x06, 0x61, 0xab, 0xb2, 0xb0, 0x8d, 0x72, 0x0b, 0x78, 0x0e, 0xd3, 0x4b, 0xaa, + 0x89, 0xcc, 0x95, 0xef, 0xf2, 0xd0, 0x5a, 0x60, 0xd0, 0x7a, 0x4e, 0x8c, 0x96, 0xd3, 0x07, 0xe9, + 0x4e, 0x38, 0xbe, 0xaa, 0xf5, 0x74, 0x09, 0xf7, 0xf4, 0x9a, 0x3e, 0xd0, 0x2c, 0x4c, 0x9c, 0x16, + 0x0d, 0xb4, 0x9e, 0x4e, 0xc8, 0xcd, 0x4b, 0xe4, 0xbf, 0x9d, 0x67, 0xe0, 0x9e, 0x4e, 0x5a, 0xcd, + 0x4b, 0xe4, 0x3f, 0x7a, 0xab, 0x00, 0x39, 0xfb, 0x5d, 0xf4, 0x4c, 0x4e, 0x58, 0xd1, 0xff, 0x88, + 0xe9, 0x56, 0xd2, 0xae, 0x3d, 0x91, 0x2d, 0xf3, 0xbd, 0x50, 0xea, 0x3a, 0xbd, 0x73, 0x1d, 0x35, + 0x9c, 0x0e, 0x69, 0x2e, 0xc0, 0x08, 0xc9, 0x7b, 0x27, 0x70, 0x20, 0x31, 0xde, 0xb9, 0xe4, 0x08, + 0xa2, 0xe3, 0xc1, 0xb8, 0x30, 0xc1, 0x24, 0x59, 0x86, 0xa3, 0xb5, 0x6a, 0x73, 0xcd, 0x9e, 0x28, + 0x97, 0x5b, 0x17, 0xeb, 0x65, 0x81, 0xa0, 0x63, 0x77, 0x26, 0x3d, 0x74, 0xec, 0xda, 0x7f, 0xec, + 0xd0, 0x19, 0x41, 0xf4, 0x61, 0xa0, 0xf3, 0x1e, 0x01, 0x72, 0xad, 0x3e, 0xd6, 0x12, 0xba, 0x83, + 0x6a, 0x19, 0x72, 0x17, 0x7b, 0xa7, 0x0e, 0x6e, 0x12, 0xfd, 0x6e, 0x4c, 0x44, 0x6d, 0x8a, 0x12, + 0x99, 0xfb, 0x3e, 0x1f, 0x03, 0x91, 0x11, 0x8d, 0xc6, 0x43, 0xe4, 0xa7, 0x27, 0x40, 0x64, 0x16, + 0x66, 0x6c, 0x34, 0x16, 0x5b, 0xab, 0xcd, 0x85, 0xb2, 0x20, 0xfe, 0x04, 0x3c, 0xb9, 0xda, 0x7c, + 0x80, 0x98, 0xba, 0x36, 0xeb, 0xf5, 0x85, 0xf6, 0xda, 0xea, 0xca, 0x39, 0xa9, 0xba, 0x50, 0x2f, + 0x03, 0x41, 0xaa, 0xbd, 0xa5, 0x5f, 0xbe, 0xb2, 0x90, 0xb2, 0x29, 0x9a, 0x3a, 0x52, 0x23, 0x1a, + 0xbd, 0x92, 0x90, 0xfa, 0x62, 0x16, 0x8e, 0x9f, 0xc3, 0xd6, 0xca, 0x60, 0x5d, 0x55, 0xba, 0x97, + 0xf0, 0xfa, 0xaa, 0xb4, 0x84, 0x9e, 0xe1, 0x83, 0x16, 0x1a, 0xa8, 0x07, 0xbd, 0x21, 0xe6, 0x15, + 0x8b, 0xa1, 0x46, 0x42, 0x70, 0xa0, 0x56, 0x8f, 0x59, 0xdf, 0xfe, 0x35, 0xce, 0x35, 0x8a, 0xe8, + 0x36, 0xd2, 0xdf, 0x17, 0xbc, 0x4d, 0x80, 0xe3, 0xf6, 0xc8, 0x9c, 0x37, 0xb0, 0xdc, 0xeb, 0x1a, + 0x83, 0x9d, 0x75, 0x33, 0xd6, 0x37, 0x92, 0x2b, 0xe7, 0x59, 0x56, 0xce, 0x3f, 0x17, 0x93, 0xd5, + 0x43, 0x24, 0xa4, 0x6c, 0x91, 0x19, 0x07, 0xa0, 0x68, 0xca, 0xd2, 0x07, 0xe8, 0xe5, 0x02, 0x1c, + 0x6b, 0x63, 0x2b, 0x04, 0x9f, 0xeb, 0x61, 0x76, 0xdd, 0x7f, 0xe2, 0x61, 0xc4, 0x66, 0xda, 0x22, + 0xaa, 0x78, 0x0e, 0x44, 0xed, 0xbf, 0x93, 0x38, 0x93, 0x18, 0x0f, 0x4f, 0xaa, 0xce, 0x24, 0x0e, + 0x13, 0x83, 0xef, 0x0a, 0x50, 0xa0, 0x47, 0xd2, 0xef, 0x4b, 0xc4, 0xc8, 0x3a, 0x46, 0xa8, 0x8d, + 0x83, 0x44, 0xc8, 0xfd, 0x68, 0x4c, 0xaf, 0x99, 0x91, 0x67, 0xd3, 0x49, 0x0d, 0xbe, 0x38, 0xfe, + 0x34, 0x0f, 0xe9, 0x8c, 0xfa, 0xbb, 0x39, 0x00, 0xa7, 0x69, 0xe2, 0x80, 0xec, 0x15, 0xdc, 0x61, + 0x3b, 0x26, 0x88, 0x8d, 0xcd, 0x9a, 0x1b, 0xe4, 0x87, 0xcd, 0x0d, 0xb8, 0x6d, 0xf5, 0xe3, 0x89, + 0x46, 0xc0, 0xd5, 0x64, 0x81, 0xcf, 0xd5, 0xe4, 0xd7, 0x62, 0xba, 0x9a, 0xf4, 0xf9, 0x17, 0x5b, + 0x9e, 0x82, 0x5d, 0x16, 0x86, 0xba, 0x1c, 0x4f, 0x93, 0x12, 0xc7, 0x41, 0x65, 0x28, 0xc1, 0xe9, + 0xcb, 0xdb, 0x7f, 0xce, 0xc1, 0x8c, 0xd3, 0x7c, 0x1b, 0x5b, 0xe8, 0x0b, 0x89, 0x4c, 0x31, 0x21, + 0x3a, 0xae, 0xa0, 0x88, 0xe6, 0x38, 0x45, 0xf4, 0x00, 0xa1, 0xd9, 0x7f, 0x10, 0x53, 0x35, 0xe3, + 0x71, 0xe1, 0x10, 0x85, 0xe6, 0x33, 0x31, 0x14, 0x3a, 0x61, 0xf4, 0x1e, 0xf2, 0x0d, 0xbe, 0x27, + 0xb2, 0x50, 0x58, 0xd5, 0x54, 0x45, 0xdb, 0x46, 0xb5, 0x04, 0x02, 0xb3, 0xc5, 0x77, 0xbf, 0x4c, + 0xda, 0x9e, 0xbe, 0xfb, 0xe5, 0x51, 0xcd, 0x4e, 0xc1, 0x4d, 0x58, 0x16, 0xf2, 0x35, 0x55, 0x37, + 0x13, 0x39, 0x5d, 0x78, 0x22, 0x13, 0x2f, 0xa6, 0x04, 0x69, 0x38, 0xc4, 0x5c, 0x33, 0x4e, 0xdc, + 0x86, 0x51, 0xf5, 0xa4, 0xcf, 0xba, 0xbf, 0x38, 0x0a, 0x33, 0x97, 0x74, 0x63, 0xdb, 0xec, 0xcb, + 0x5d, 0x8c, 0x3e, 0x9e, 0x05, 0x38, 0x87, 0xad, 0xda, 0xc0, 0x30, 0x6c, 0xe8, 0x67, 0x3c, 0x6e, + 0xb2, 0x1e, 0xa9, 0x23, 0xf7, 0xab, 0x5e, 0x6d, 0x15, 0xbf, 0xa6, 0x70, 0xff, 0xfa, 0x97, 0xdd, + 0xd2, 0x1e, 0x10, 0xc1, 0x2c, 0xce, 0x3d, 0x2a, 0x47, 0x93, 0xe9, 0x73, 0xf2, 0x43, 0x59, 0x28, + 0x9c, 0xc3, 0x56, 0x55, 0x55, 0x83, 0x7c, 0x7b, 0x0b, 0xf7, 0xaa, 0xcd, 0x74, 0xa2, 0xaa, 0xaa, + 0x21, 0x3c, 0x3b, 0x0d, 0x47, 0x03, 0x0c, 0x72, 0x67, 0x0a, 0x26, 0x8f, 0x73, 0xd5, 0x1d, 0xd3, + 0x60, 0xfa, 0x1c, 0xfb, 0xdd, 0xac, 0xb7, 0xab, 0x7f, 0xaa, 0x3f, 0x6e, 0x47, 0x44, 0x86, 0x41, + 0x6f, 0x9a, 0x80, 0x8b, 0x91, 0x7b, 0xe9, 0xf1, 0x92, 0x17, 0x97, 0x87, 0x87, 0xb4, 0x53, 0x7e, + 0x22, 0x0b, 0xe5, 0x36, 0xb6, 0x1a, 0xe6, 0x79, 0x65, 0x73, 0x4b, 0x55, 0x36, 0xb7, 0x2c, 0xdc, + 0x43, 0x17, 0x7c, 0x6e, 0x22, 0x28, 0x39, 0xd7, 0xf4, 0xbd, 0x49, 0xd0, 0x4b, 0x3b, 0xc1, 0x85, + 0x02, 0xef, 0x11, 0x9a, 0x48, 0x70, 0xa1, 0x60, 0x65, 0x3f, 0xcf, 0x7d, 0xc1, 0xd3, 0x67, 0xc6, + 0x30, 0x45, 0x21, 0xd3, 0x23, 0x9f, 0x89, 0x24, 0x77, 0xb5, 0x53, 0xb8, 0x7c, 0x90, 0x85, 0x42, + 0x9b, 0xc4, 0x95, 0x41, 0x3f, 0xe9, 0xf3, 0x78, 0x48, 0x98, 0x32, 0xfb, 0x85, 0xe9, 0x6f, 0x33, 0xf1, 0xe5, 0xd7, 0x69, 0x27, 0x84, 0x73, 0x71, 0xa5, 0x73, 0x64, 0x65, 0x53, 0x70, 0xe0, 0x52, 0x82, 0xc2, 0x25, 0x59, 0x55, 0xb1, 0x85, 0xbe, 0xe9, 0x0f, 0xf6, 0x1b, 0x18, 0xf1, 0x34, 0x74, 0xdd, 0x09, 0xea, 0x42, 0xc5, 0xd3, 0x4d, 0xa3, 0xf7, 0x73, 0x47, 0x27, 0x75, 0x9a, 0x88, 0x1e, - 0xf1, 0x08, 0x4a, 0x3b, 0x1a, 0xde, 0xd1, 0x35, 0xa5, 0xeb, 0x6e, 0xd5, 0xdd, 0x34, 0xfa, 0x7d, - 0xae, 0x88, 0xa3, 0x51, 0xad, 0xc4, 0x63, 0x65, 0x7b, 0x82, 0xed, 0xe6, 0xd3, 0xe1, 0xa9, 0x8b, + 0xf1, 0x08, 0x4a, 0x3b, 0x1a, 0xde, 0xd1, 0x35, 0xa5, 0xeb, 0x6e, 0xd5, 0xdd, 0x34, 0xfa, 0x3d, + 0xae, 0x88, 0xa3, 0x51, 0xad, 0xc4, 0x63, 0x65, 0x7b, 0x82, 0xed, 0xe6, 0xd3, 0xe0, 0x29, 0x8b, 0xd5, 0xc6, 0x52, 0x7d, 0x61, 0xad, 0xd3, 0x5a, 0xab, 0x49, 0xf5, 0x6a, 0xa7, 0xbe, 0xb6, 0xd4, 0xaa, 0x55, 0x97, 0xd6, 0xa4, 0xfa, 0x4a, 0xab, 0x8c, 0xd1, 0x5f, 0x92, 0x8f, 0xe4, 0xae, 0xbe, - 0x8b, 0x8d, 0xe0, 0x36, 0x28, 0x82, 0xc3, 0x91, 0x3c, 0x79, 0x13, 0x77, 0x08, 0x0a, 0xca, 0x17, - 0xda, 0x76, 0x88, 0xc0, 0xfe, 0x27, 0xae, 0xa0, 0x12, 0x91, 0x55, 0x5d, 0x01, 0x3c, 0xfe, 0x61, + 0x8b, 0x8d, 0xe0, 0x36, 0x28, 0x82, 0xc3, 0x91, 0x3c, 0x79, 0x23, 0x77, 0x08, 0x0a, 0xca, 0x17, + 0xda, 0x76, 0x88, 0xc0, 0xfe, 0x27, 0xae, 0xa0, 0x12, 0x91, 0x55, 0x5d, 0x01, 0x3c, 0xfe, 0x41, 0x16, 0x8a, 0x35, 0x5d, 0xdb, 0xc5, 0x86, 0x85, 0xee, 0x63, 0x78, 0xec, 0xf1, 0x31, 0xc3, 0xf2, 0xd1, 0xde, 0x68, 0x62, 0xcd, 0x32, 0xf4, 0xfe, 0x9e, 0xbb, 0xd1, 0xa4, 0x49, 0xd6, 0x81, 0x0d, - 0x0f, 0x87, 0x69, 0xcb, 0xe1, 0x5f, 0x66, 0xa3, 0x1b, 0x62, 0xc8, 0x13, 0x86, 0x60, 0x7e, 0x24, + 0x0f, 0x87, 0x69, 0xcb, 0xe1, 0x5f, 0x66, 0xa3, 0x1b, 0x62, 0xc8, 0x13, 0x86, 0x60, 0x7e, 0x38, 0x0e, 0x2e, 0xa3, 0x09, 0x98, 0x82, 0xd7, 0x85, 0x27, 0x41, 0xb1, 0xda, 0x25, 0xc7, 0x90, 0xe8, 0x3b, 0x19, 0x28, 0xd4, 0x74, 0x6d, 0x43, 0xd9, 0x14, 0x6f, 0x84, 0x63, 0x58, 0x93, 0xd7, 0x55, 0xec, 0xda, 0x60, 0x10, 0xda, 0x4b, 0xd2, 0x50, 0xae, 0x4d, 0x14, 0xcd, 0xc1, 0xeb, 0x83, 0x4d, 0xba, 0xca, 0x05, 0xb3, 0xc4, 0x7b, 0x01, 0x39, 0x49, 0x09, 0xab, 0x58, 0x36, 0x71, 0x6d, 0x4b, 0xd6, 0x34, 0xac, 0xb6, 0x2f, 0x2b, 0x56, 0x77, 0x8b, 0x3a, 0x9c, 0x8d, 0x28, 0x61, 0x6f, 0xca, - 0x9c, 0xa7, 0x6d, 0x7b, 0xb6, 0x35, 0x69, 0xd4, 0x37, 0x26, 0x4f, 0x7c, 0x0e, 0xe4, 0xf1, 0x83, - 0x96, 0x21, 0xcf, 0xf5, 0xa2, 0xbf, 0xfa, 0x9d, 0x52, 0xe8, 0x91, 0xbc, 0x37, 0x5f, 0xfe, 0x6c, + 0x9c, 0xa7, 0x6d, 0x7b, 0xb6, 0x35, 0x69, 0xd4, 0x37, 0x26, 0x4f, 0x7c, 0x36, 0xe4, 0xf1, 0x83, + 0x96, 0x21, 0xcf, 0xf5, 0xa2, 0xbf, 0xfa, 0x9d, 0x52, 0xe8, 0xe1, 0xbc, 0x37, 0x5f, 0xfe, 0x4c, 0xe4, 0xe6, 0x48, 0xbc, 0x19, 0x8e, 0xcb, 0xbb, 0xb2, 0x25, 0x1b, 0x4b, 0x9e, 0xa7, 0x07, 0xc2, 0xf7, 0xf3, 0x57, 0x49, 0xc3, 0x0f, 0xc4, 0x9b, 0xe0, 0xb8, 0xac, 0xf6, 0xb7, 0xe4, 0x86, 0xb6, 0xab, 0x58, 0xd8, 0x06, 0x62, 0xee, 0x04, 0xa9, 0x6a, 0x38, 0x7b, 0xbe, 0x04, 0x05, 0xe7, 0x65, - 0xf4, 0x50, 0x8e, 0x57, 0x4e, 0x29, 0x46, 0xd1, 0x13, 0xf1, 0x73, 0xa1, 0x28, 0x3b, 0xe5, 0xf6, - 0x7d, 0x7f, 0x3a, 0xba, 0x0c, 0x5a, 0x8b, 0xe4, 0x16, 0x13, 0x6f, 0x83, 0x42, 0x97, 0x20, 0x4e, - 0x75, 0x7a, 0x4f, 0x1d, 0xdd, 0x28, 0x29, 0x22, 0xd1, 0xa2, 0xc4, 0xc5, 0xde, 0x78, 0xc1, 0x8e, - 0xa4, 0x38, 0x9e, 0x60, 0xff, 0x20, 0x33, 0xc1, 0x8c, 0x73, 0x0b, 0xdc, 0x54, 0xad, 0xd5, 0x5a, - 0xab, 0xcd, 0x0e, 0x9d, 0x6f, 0x16, 0xd6, 0xe6, 0x57, 0x3b, 0x6b, 0xfe, 0x2c, 0xd4, 0xee, 0x54, - 0xa5, 0xce, 0x5a, 0xb3, 0xb5, 0x50, 0x2f, 0xdb, 0x48, 0xdf, 0x38, 0xa6, 0x74, 0xbd, 0xb3, 0xd6, - 0xac, 0x2e, 0xd7, 0xcb, 0x1b, 0x1c, 0x35, 0xd7, 0x3b, 0x6b, 0xd5, 0x8b, 0xd5, 0x4e, 0x55, 0x2a, - 0x6f, 0xb2, 0x33, 0x5f, 0xbb, 0xd3, 0x5a, 0x59, 0x93, 0x56, 0x9b, 0xcd, 0x46, 0xf3, 0x9c, 0xd3, - 0xf4, 0x96, 0x78, 0x02, 0x8e, 0x3b, 0x74, 0x5f, 0x6c, 0x74, 0xea, 0x6b, 0x35, 0x3b, 0xf3, 0xe7, - 0x8a, 0xe8, 0xf5, 0x39, 0x7f, 0xcd, 0x09, 0x7c, 0xf4, 0xfc, 0xad, 0xc0, 0xab, 0x74, 0x72, 0xf9, - 0x1f, 0xbd, 0x78, 0xfc, 0x86, 0xc0, 0xa3, 0x10, 0x8a, 0xae, 0x2b, 0x1e, 0x98, 0x1f, 0xc9, 0x4e, - 0x00, 0xe6, 0x93, 0xe1, 0xea, 0x66, 0x6b, 0x8d, 0x72, 0xbd, 0x4d, 0x4f, 0x52, 0xed, 0xd6, 0xae, - 0x6d, 0xd6, 0x1d, 0xce, 0x4a, 0xf5, 0x5a, 0xeb, 0x62, 0x5d, 0x5a, 0xbb, 0x54, 0x5d, 0x5a, 0xaa, - 0x77, 0xd6, 0x16, 0x1b, 0x52, 0xbb, 0x53, 0xde, 0x18, 0xb7, 0xee, 0x6c, 0x8a, 0xcf, 0x84, 0xa7, - 0xfb, 0xe9, 0xb5, 0xfa, 0x8b, 0x1b, 0xed, 0x4e, 0x9b, 0xc0, 0x59, 0x6b, 0x49, 0xd2, 0xea, 0x4a, - 0xa7, 0xbe, 0x50, 0xde, 0x12, 0x4f, 0x82, 0xe8, 0xd7, 0x22, 0xad, 0x36, 0x1d, 0xe8, 0x14, 0xbb, - 0x7d, 0xda, 0x9e, 0xdb, 0x7c, 0xb3, 0xd5, 0x59, 0x5b, 0xa9, 0x4b, 0x8b, 0x2d, 0x69, 0xb9, 0xbe, - 0x50, 0x7e, 0xe9, 0x38, 0xf4, 0xb7, 0xc5, 0x1b, 0xe1, 0x74, 0xb5, 0xd9, 0xea, 0x9c, 0xaf, 0x4b, - 0x6b, 0xee, 0xa1, 0xf0, 0x8a, 0xd4, 0xaa, 0xd5, 0xdb, 0xed, 0xb5, 0x46, 0xdb, 0x2d, 0x5c, 0x56, - 0xd1, 0xa7, 0xf2, 0xde, 0xfe, 0xf8, 0x76, 0x7f, 0xd2, 0x3a, 0x06, 0x59, 0xc5, 0xdd, 0x16, 0x67, - 0x95, 0x1e, 0xb3, 0x25, 0xc9, 0x0e, 0x6d, 0xfa, 0xfe, 0x21, 0xf6, 0x64, 0x13, 0xb5, 0x4f, 0x9e, - 0xd6, 0x64, 0xf3, 0x59, 0x21, 0xce, 0x64, 0x93, 0xc0, 0x66, 0xfc, 0x4f, 0xb2, 0x29, 0x6c, 0x6f, - 0x78, 0xc4, 0x6c, 0x23, 0x44, 0xcc, 0x86, 0xa6, 0x90, 0xc5, 0x46, 0x73, 0xc1, 0x1d, 0x09, 0x6b, - 0x8d, 0xe6, 0x62, 0xab, 0xbc, 0x25, 0x56, 0xe0, 0xe6, 0x40, 0xed, 0xb6, 0x0c, 0xd2, 0x16, 0xaa, - 0xcd, 0x85, 0xb5, 0xe5, 0x66, 0x7d, 0xb9, 0xd5, 0x6c, 0xd4, 0x48, 0x7e, 0xbb, 0xde, 0x71, 0xe4, - 0x76, 0x48, 0x2a, 0xdb, 0xf5, 0xaa, 0x54, 0x3b, 0x4f, 0x04, 0x78, 0xa1, 0x5e, 0x7e, 0xa9, 0xf8, - 0x2c, 0x78, 0x66, 0x80, 0x14, 0x2a, 0xdc, 0x2b, 0x52, 0x7d, 0xa1, 0xbe, 0xd8, 0x68, 0xda, 0x13, - 0xde, 0x52, 0xab, 0x76, 0xa1, 0x1d, 0x43, 0x7e, 0xff, 0x3e, 0x0b, 0xb9, 0xb6, 0xa5, 0xf7, 0xd1, - 0xb3, 0x7d, 0xe9, 0x3d, 0x05, 0x60, 0xe0, 0x1d, 0x7d, 0x97, 0xec, 0x27, 0xe8, 0x0e, 0x23, 0x90, - 0x83, 0xfe, 0x33, 0xb7, 0x6a, 0xd6, 0xc3, 0xdf, 0xd2, 0xfb, 0x21, 0x33, 0xdd, 0x8f, 0xb8, 0x94, - 0xad, 0x11, 0x15, 0xc5, 0x13, 0xa3, 0xd7, 0x4e, 0xb2, 0x66, 0x21, 0x38, 0xe9, 0x21, 0xdb, 0x26, - 0x78, 0xb9, 0x0c, 0xc4, 0xe2, 0x35, 0xf0, 0xa4, 0x21, 0xcc, 0x08, 0x54, 0x1b, 0xe2, 0x33, 0xe0, - 0x69, 0x41, 0xa8, 0x96, 0x5b, 0x17, 0xeb, 0x9e, 0x7c, 0x2c, 0x54, 0x3b, 0xd5, 0xf2, 0x26, 0xfa, - 0xb4, 0x00, 0xc2, 0x92, 0xbe, 0x89, 0x1e, 0x13, 0x20, 0xd7, 0xc6, 0x5a, 0x8f, 0x39, 0xea, 0x9d, + 0xf4, 0xe6, 0x1c, 0xaf, 0x9c, 0x52, 0x8c, 0xa2, 0x27, 0xe2, 0xe7, 0x40, 0x51, 0x76, 0xca, 0xed, + 0xfb, 0xfe, 0x74, 0x74, 0x19, 0xb4, 0x16, 0xc9, 0x2d, 0x26, 0xde, 0x06, 0x85, 0x2e, 0x41, 0x9c, + 0xea, 0xf4, 0x9e, 0x32, 0xba, 0x51, 0x52, 0x44, 0xa2, 0x45, 0x89, 0x8b, 0xbd, 0xf1, 0x82, 0x1d, + 0x49, 0x71, 0x3c, 0xc1, 0xfe, 0x7e, 0x66, 0x82, 0x19, 0xe7, 0x16, 0xb8, 0xa9, 0x5a, 0xab, 0xb5, + 0x56, 0x9b, 0x1d, 0x3a, 0xdf, 0x2c, 0xac, 0xcd, 0xaf, 0x76, 0xd6, 0xfc, 0x59, 0xa8, 0xdd, 0xa9, + 0x4a, 0x9d, 0xb5, 0x66, 0x6b, 0xa1, 0x5e, 0xb6, 0x91, 0xbe, 0x71, 0x4c, 0xe9, 0x7a, 0x67, 0xad, + 0x59, 0x5d, 0xae, 0x97, 0x37, 0x38, 0x6a, 0xae, 0x77, 0xd6, 0xaa, 0x17, 0xab, 0x9d, 0xaa, 0x54, + 0xde, 0x64, 0x67, 0xbe, 0x76, 0xa7, 0xb5, 0xb2, 0x26, 0xad, 0x36, 0x9b, 0x8d, 0xe6, 0x39, 0xa7, + 0xe9, 0x2d, 0xf1, 0x04, 0x1c, 0x77, 0xe8, 0xbe, 0xd8, 0xe8, 0xd4, 0xd7, 0x6a, 0x76, 0xe6, 0xcf, + 0x16, 0xd1, 0xeb, 0x72, 0xfe, 0x9a, 0x13, 0xf8, 0xe8, 0xf9, 0x3b, 0x81, 0x57, 0xe9, 0xe4, 0xf2, + 0x3f, 0x7a, 0xf1, 0xf8, 0x75, 0x81, 0x47, 0x21, 0x14, 0x5d, 0x57, 0x3c, 0x30, 0x3f, 0x92, 0x9d, + 0x00, 0xcc, 0x27, 0xc3, 0xd5, 0xcd, 0xd6, 0x1a, 0xe5, 0x7a, 0x9b, 0x9e, 0xa4, 0xda, 0xad, 0x5d, + 0xdb, 0xac, 0x3b, 0x9c, 0x95, 0xea, 0xb5, 0xd6, 0xc5, 0xba, 0xb4, 0x76, 0xa9, 0xba, 0xb4, 0x54, + 0xef, 0xac, 0x2d, 0x36, 0xa4, 0x76, 0xa7, 0xbc, 0x31, 0x6e, 0xdd, 0xd9, 0x14, 0x9f, 0x01, 0x4f, + 0xf3, 0xd3, 0x6b, 0xf5, 0x17, 0x35, 0xda, 0x9d, 0x36, 0x81, 0xb3, 0xd6, 0x92, 0xa4, 0xd5, 0x95, + 0x4e, 0x7d, 0xa1, 0xbc, 0x25, 0x9e, 0x04, 0xd1, 0xaf, 0x45, 0x5a, 0x6d, 0x3a, 0xd0, 0x29, 0x76, + 0xfb, 0xb4, 0x3d, 0xb7, 0xf9, 0x66, 0xab, 0xb3, 0xb6, 0x52, 0x97, 0x16, 0x5b, 0xd2, 0x72, 0x7d, + 0xa1, 0xfc, 0x92, 0x71, 0xe8, 0x6f, 0x8b, 0x37, 0xc2, 0xe9, 0x6a, 0xb3, 0xd5, 0x39, 0x5f, 0x97, + 0xd6, 0xdc, 0x43, 0xe1, 0x15, 0xa9, 0x55, 0xab, 0xb7, 0xdb, 0x6b, 0x8d, 0xb6, 0x5b, 0xb8, 0xac, + 0xa2, 0x4f, 0xe5, 0xbd, 0xfd, 0xf1, 0xed, 0xfe, 0xa4, 0x75, 0x0c, 0xb2, 0x8a, 0xbb, 0x2d, 0xce, + 0x2a, 0x3d, 0x66, 0x4b, 0x92, 0x1d, 0xda, 0xf4, 0xfd, 0x63, 0xec, 0xc9, 0x26, 0x6a, 0x9f, 0x3c, + 0xad, 0xc9, 0xe6, 0xb3, 0x42, 0x9c, 0xc9, 0x26, 0x81, 0xcd, 0xf8, 0x9f, 0x64, 0x53, 0xd8, 0xde, + 0xf0, 0x88, 0xd9, 0x46, 0x88, 0x98, 0x0d, 0x4d, 0x21, 0x8b, 0x8d, 0xe6, 0x82, 0x3b, 0x12, 0xd6, + 0x1a, 0xcd, 0xc5, 0x56, 0x79, 0x4b, 0xac, 0xc0, 0xcd, 0x81, 0xda, 0x6d, 0x19, 0xa4, 0x2d, 0x54, + 0x9b, 0x0b, 0x6b, 0xcb, 0xcd, 0xfa, 0x72, 0xab, 0xd9, 0xa8, 0x91, 0xfc, 0x76, 0xbd, 0xe3, 0xc8, + 0xed, 0x90, 0x54, 0xb6, 0xeb, 0x55, 0xa9, 0x76, 0x9e, 0x08, 0xf0, 0x42, 0xbd, 0xfc, 0x12, 0xf1, + 0x99, 0xf0, 0x8c, 0x00, 0x29, 0x54, 0xb8, 0x57, 0xa4, 0xfa, 0x42, 0x7d, 0xb1, 0xd1, 0xb4, 0x27, + 0xbc, 0xa5, 0x56, 0xed, 0x42, 0x3b, 0x86, 0xfc, 0xfe, 0x43, 0x16, 0x72, 0x6d, 0x4b, 0xef, 0xa3, + 0x67, 0xf9, 0xd2, 0x7b, 0x0a, 0xc0, 0xc0, 0x3b, 0xfa, 0x2e, 0xd9, 0x4f, 0xd0, 0x1d, 0x46, 0x20, + 0x07, 0xfd, 0x3e, 0xb7, 0x6a, 0xd6, 0xc3, 0xdf, 0xd2, 0xfb, 0x21, 0x33, 0xdd, 0x0f, 0xb9, 0x94, + 0xad, 0x11, 0x15, 0xc5, 0x13, 0xa3, 0xd7, 0x4c, 0xb2, 0x66, 0x21, 0x38, 0xe9, 0x21, 0xdb, 0x26, + 0x78, 0xb9, 0x0c, 0xc4, 0xe2, 0x35, 0xf0, 0xa4, 0x21, 0xcc, 0x08, 0x54, 0x1b, 0xe2, 0xd3, 0xe1, + 0xa9, 0x41, 0xa8, 0x96, 0x5b, 0x17, 0xeb, 0x9e, 0x7c, 0x2c, 0x54, 0x3b, 0xd5, 0xf2, 0x26, 0xfa, + 0xb4, 0x00, 0xc2, 0x92, 0xbe, 0x89, 0x1e, 0x15, 0x20, 0xd7, 0xc6, 0x5a, 0x8f, 0x39, 0xea, 0x9d, 0x83, 0xe2, 0x0e, 0x36, 0x4d, 0x79, 0xd3, 0xdd, 0xfb, 0xb8, 0x49, 0xf1, 0x4e, 0xc8, 0xab, 0x78, - 0x17, 0x3b, 0x06, 0x20, 0xc7, 0xce, 0x3e, 0x93, 0xe1, 0xd4, 0x92, 0xbe, 0x59, 0xb1, 0xeb, 0xf2, + 0x17, 0x3b, 0x06, 0x20, 0xc7, 0xce, 0x3e, 0x83, 0xe1, 0xd4, 0x92, 0xbe, 0x59, 0xb1, 0xeb, 0xf2, 0xc2, 0x11, 0x2f, 0xd9, 0x45, 0x25, 0xe7, 0x8d, 0xd3, 0xf7, 0x43, 0x9e, 0xa4, 0xc5, 0x19, 0xc8, 0x2f, 0xd4, 0xe7, 0x57, 0xcf, 0x95, 0xaf, 0xb2, 0xff, 0xba, 0xfd, 0x9e, 0x81, 0xfc, 0x62, 0xb5, 0x53, 0x5d, 0x2a, 0x67, 0x6d, 0xfe, 0x10, 0x29, 0x16, 0xec, 0xcc, 0x95, 0x6a, 0xb3, 0x51, 0x2b, - 0xe7, 0xc4, 0x23, 0x50, 0xbc, 0x54, 0x95, 0x48, 0xcf, 0xf3, 0xe8, 0x15, 0x41, 0x31, 0xb8, 0x8b, + 0xe7, 0xc4, 0x23, 0x50, 0xbc, 0x54, 0x95, 0x48, 0xcf, 0xf3, 0xe8, 0xe5, 0x41, 0x31, 0xb8, 0x8b, 0x15, 0x83, 0xeb, 0xc3, 0x68, 0x1a, 0x25, 0x02, 0x1f, 0xf3, 0x44, 0xe0, 0x1e, 0x46, 0x04, 0x9e, - 0xcd, 0x53, 0x49, 0x3c, 0xf8, 0x9b, 0x07, 0x35, 0x13, 0xc2, 0x36, 0x0f, 0x3a, 0x8d, 0xe5, 0x7a, + 0xc5, 0x53, 0x49, 0x3c, 0xf8, 0x9b, 0x07, 0x35, 0x13, 0xc2, 0x36, 0x0f, 0x3a, 0x8d, 0xe5, 0x7a, 0x6b, 0xb5, 0x53, 0xde, 0x40, 0x7f, 0x9d, 0x85, 0xe2, 0x45, 0x6c, 0x98, 0x8a, 0xae, 0xa1, 0xff, - 0x9e, 0x75, 0x8c, 0x92, 0x03, 0xdb, 0x82, 0xaf, 0x70, 0x47, 0xab, 0xa7, 0x95, 0x10, 0x73, 0xdd, + 0x96, 0x75, 0x8c, 0x92, 0x03, 0xdb, 0x82, 0xaf, 0x70, 0x47, 0xab, 0xa7, 0x95, 0x10, 0x73, 0xdd, 0xd0, 0xaf, 0x9d, 0x5d, 0xa7, 0x90, 0xfb, 0xb5, 0x43, 0x93, 0xf6, 0x93, 0xe0, 0x11, 0xf0, 0x8c, 0x1f, 0xc6, 0xed, 0x2b, 0x5c, 0xda, 0xf8, 0xf0, 0xb6, 0xe3, 0x31, 0xb7, 0x37, 0x01, 0x73, 0x4f, 0x40, 0xf9, 0x62, 0x5d, 0x6a, 0x37, 0x5a, 0x4d, 0x7b, 0x68, 0xd5, 0x97, 0x57, 0x3a, 0x0f, 0x94, - 0x85, 0x48, 0x96, 0xbf, 0xc3, 0x8d, 0x0b, 0xf0, 0x66, 0x01, 0x8a, 0xad, 0x8d, 0x0d, 0xe2, 0x88, + 0x85, 0x48, 0x96, 0xbf, 0xc3, 0x8d, 0x0b, 0xf0, 0x26, 0x01, 0x8a, 0xad, 0x8d, 0x0d, 0xe2, 0x88, 0xae, 0x1e, 0xbe, 0xf6, 0xde, 0x0c, 0x65, 0x45, 0xeb, 0xaa, 0x83, 0x1e, 0x6e, 0xea, 0xd6, 0x8a, - 0xa2, 0x69, 0x9e, 0xda, 0x6f, 0x5f, 0x3e, 0x7a, 0x9c, 0x7b, 0x66, 0x23, 0x5e, 0xd3, 0x68, 0xeb, + 0xa2, 0x69, 0x9e, 0xda, 0x6f, 0x5f, 0x3e, 0x7a, 0x8c, 0x7b, 0x66, 0x23, 0x5e, 0xd3, 0x68, 0xeb, 0x21, 0x80, 0xdd, 0x08, 0xc7, 0xd6, 0xf7, 0x2c, 0x6c, 0xd2, 0x52, 0xb4, 0xd9, 0x9c, 0x34, 0x94, 0x8b, 0xfe, 0x88, 0x6b, 0x06, 0x8c, 0x68, 0x30, 0x1e, 0x4a, 0xf2, 0x64, 0x28, 0xd9, 0xb3, 0x9a, 0xb3, 0x54, 0xd9, 0xfb, 0xf3, 0xfa, 0x42, 0x79, 0x93, 0x4c, 0x7d, 0x8d, 0x25, 0x27, 0xf7, 0x81, @@ -38915,260 +38924,261 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x4c, 0x0b, 0x7d, 0x2c, 0x00, 0x53, 0x8b, 0x99, 0xde, 0x74, 0x4d, 0xdd, 0x6b, 0xf4, 0xcc, 0xb9, 0x0c, 0x51, 0xe8, 0xbb, 0xc9, 0x58, 0x80, 0xfd, 0x05, 0xb7, 0x9a, 0xdc, 0xa5, 0x67, 0x3c, 0x68, 0x1b, 0x8a, 0x3a, 0x0c, 0x5a, 0x5e, 0x1a, 0xca, 0x1d, 0x01, 0xae, 0x30, 0x12, 0xdc, 0x4f, 0x70, - 0xa9, 0x2d, 0xc7, 0x10, 0x17, 0x0f, 0xe0, 0xf3, 0x49, 0x01, 0x8c, 0x7e, 0x29, 0x0b, 0xa5, 0xf6, - 0xd6, 0xc0, 0x22, 0x81, 0xab, 0x03, 0xd3, 0xda, 0x3f, 0x64, 0x78, 0x67, 0x7e, 0xf7, 0xed, 0x90, + 0xa9, 0x2d, 0xc7, 0x10, 0x17, 0x0f, 0xe0, 0xf3, 0x49, 0x01, 0x8c, 0x7e, 0x31, 0x0b, 0xa5, 0xf6, + 0xd6, 0xc0, 0x22, 0x81, 0xab, 0x03, 0xd3, 0xda, 0x3f, 0x66, 0x78, 0x67, 0x7e, 0xf7, 0xed, 0x90, 0x99, 0xff, 0xc3, 0x5c, 0x33, 0x7f, 0x48, 0x25, 0x87, 0xc3, 0x15, 0x8c, 0xbe, 0x93, 0x73, 0xf5, 0x31, 0xe8, 0xeb, 0xb9, 0x7d, 0x53, 0xfe, 0xe7, 0x72, 0xbc, 0xe6, 0xb6, 0x4e, 0x1d, 0x11, 0x33, 0xfe, 0x75, 0x70, 0x64, 0x4b, 0xa7, 0x31, 0xf4, 0xfd, 0x23, 0x9b, 0x40, 0x96, 0x2d, 0x85, 0xb2, 0x13, 0xa7, 0x8f, 0xf5, 0xc9, 0x3e, 0x94, 0x6b, 0x97, 0xeb, 0x1b, 0xba, 0x2d, 0xc2, 0x6e, 0x39, 0xe7, 0xca, 0xe0, 0x50, 0xae, 0x78, 0x0b, 0x5c, 0xbd, 0x23, 0x1b, 0xdb, 0xd8, 0xea, 0xab, 0x72, - 0x97, 0x78, 0xbb, 0xf4, 0x0c, 0x84, 0xf6, 0x3f, 0x10, 0x9f, 0x07, 0x4f, 0x0e, 0x64, 0xba, 0x57, + 0x97, 0x78, 0xbb, 0xf4, 0x0c, 0x84, 0xf6, 0x3f, 0x10, 0x9f, 0x0b, 0x4f, 0x0e, 0x64, 0xba, 0x57, 0xba, 0x1a, 0x3d, 0x62, 0xdf, 0x33, 0x23, 0x8d, 0x7e, 0x38, 0xf4, 0x56, 0xc7, 0x37, 0x44, 0x2a, 0xee, 0x7b, 0xab, 0xc3, 0xd8, 0x24, 0xf5, 0xf0, 0xae, 0x42, 0x8e, 0x1b, 0x4a, 0xce, 0x17, 0x94, 0x9b, 0xb6, 0xf7, 0xab, 0x9b, 0xb2, 0x85, 0x2f, 0xcb, 0x7b, 0xab, 0x86, 0x3a, 0x87, 0x1d, 0x7b, 0x26, 0x3f, 0x07, 0x7d, 0x84, 0xcb, 0x10, 0x39, 0x14, 0x8e, 0xc3, 0x92, 0xb3, 0xaf, 0x64, 0x21, 0xb7, 0xa2, 0x68, 0x9b, 0x41, 0x2f, 0xc8, 0x27, 0x20, 0xaf, 0x68, 0x3d, 0xfc, 0x20, 0xbd, 0x41, 0xe3, 0x24, 0xc4, 0xb3, 0x70, 0x42, 0x1b, 0xec, 0xac, 0x63, 0xa3, 0xb5, 0x41, 0x0c, 0x19, 0xcc, - 0x8e, 0x6e, 0xef, 0x94, 0xe8, 0xd4, 0x35, 0xf2, 0x19, 0xfa, 0x3f, 0xc1, 0x31, 0xfc, 0x7c, 0x56, - 0x4e, 0xaf, 0x63, 0x18, 0x63, 0xd3, 0x10, 0x22, 0xa1, 0x1e, 0x39, 0xd9, 0x00, 0x39, 0xe8, 0x21, - 0x8f, 0xdf, 0x77, 0x32, 0xfc, 0xbe, 0x61, 0x5c, 0xb5, 0xe9, 0xeb, 0x55, 0xdf, 0x95, 0x85, 0xe2, - 0x8a, 0xa1, 0x77, 0xb1, 0x69, 0xa2, 0x37, 0x67, 0xa1, 0x50, 0x93, 0xb5, 0x2e, 0x56, 0xd1, 0x53, - 0x42, 0xb7, 0x0f, 0xe8, 0x07, 0x19, 0xde, 0xcf, 0x73, 0x5a, 0x6f, 0xc5, 0xa9, 0x33, 0x64, 0xc6, - 0xe3, 0xd3, 0x3e, 0x47, 0x56, 0x95, 0x3e, 0x97, 0xfe, 0x2c, 0x0b, 0x47, 0x96, 0x14, 0x6d, 0x7b, - 0xc5, 0xc0, 0xc4, 0x05, 0xe6, 0x53, 0x7d, 0xf6, 0x50, 0xd3, 0xf3, 0x4c, 0xc0, 0xf4, 0x9c, 0x7b, - 0x8f, 0x1b, 0xa8, 0x32, 0x44, 0x9e, 0xee, 0x86, 0x23, 0xaa, 0x5f, 0x88, 0x2a, 0x30, 0xd0, 0x90, - 0x02, 0x23, 0x50, 0x8d, 0x14, 0x2c, 0xce, 0x69, 0x7b, 0x12, 0x4e, 0x45, 0xfa, 0x8c, 0xfd, 0x81, - 0x00, 0xe0, 0x78, 0xd8, 0x25, 0x3b, 0xd8, 0x27, 0x32, 0x11, 0x8c, 0x65, 0x3d, 0x19, 0x67, 0x87, - 0x3d, 0x19, 0xdf, 0x05, 0x39, 0xbb, 0x4b, 0xd4, 0x61, 0x32, 0xaf, 0x17, 0x63, 0xf2, 0x8e, 0x3d, - 0xcd, 0xf7, 0x14, 0x53, 0x5e, 0x57, 0x71, 0x5d, 0xeb, 0x1a, 0x7b, 0xbe, 0xdf, 0x81, 0x92, 0xb4, - 0xff, 0x81, 0x1f, 0x44, 0x30, 0xcf, 0x11, 0x44, 0x90, 0x34, 0xc5, 0x04, 0x11, 0x64, 0x22, 0xdf, - 0x44, 0x2e, 0x88, 0x3e, 0x67, 0x42, 0xc4, 0x43, 0x84, 0xdc, 0x96, 0x6c, 0xba, 0xcc, 0x20, 0xff, - 0xd1, 0xdb, 0xb8, 0x26, 0xf7, 0xd0, 0xaa, 0xd3, 0xc7, 0xfc, 0x9b, 0x59, 0x38, 0xea, 0x06, 0x8d, - 0x27, 0xa8, 0xdf, 0xca, 0x1c, 0x6e, 0x90, 0x0e, 0x65, 0xfc, 0x0e, 0xd9, 0x79, 0x7d, 0x1f, 0x71, - 0xf2, 0x1f, 0x3d, 0xcc, 0xfd, 0x5d, 0x12, 0x6c, 0x29, 0x84, 0x8b, 0x91, 0x72, 0x15, 0x70, 0xef, - 0x15, 0xf5, 0x35, 0x12, 0xd1, 0x4c, 0x3c, 0x8e, 0x56, 0x0f, 0x7c, 0x6f, 0x07, 0xfd, 0x55, 0x11, - 0xa0, 0x29, 0xef, 0x2a, 0x9b, 0x8e, 0x9b, 0xa4, 0xaf, 0x0a, 0xf6, 0xe4, 0x65, 0x5a, 0x4e, 0xb8, - 0x03, 0x93, 0xf1, 0x96, 0x78, 0x27, 0x14, 0xa9, 0x41, 0x1c, 0xed, 0xd5, 0xd3, 0x99, 0x5e, 0xf9, - 0xb5, 0x38, 0xf2, 0xfc, 0xa0, 0x25, 0xb9, 0xe5, 0xed, 0x0d, 0xc8, 0xc6, 0x40, 0x55, 0x3b, 0xf6, - 0xbb, 0x54, 0x85, 0xeb, 0xa6, 0x7d, 0xaf, 0x97, 0x34, 0x1e, 0x11, 0x49, 0x0c, 0xf9, 0xc8, 0xcc, - 0xbb, 0x3e, 0x32, 0xd1, 0xef, 0x72, 0x87, 0x6f, 0x0c, 0xd0, 0x13, 0xe8, 0x51, 0x08, 0xac, 0xb7, - 0x41, 0xd1, 0xb1, 0x73, 0x71, 0x2f, 0xef, 0x3f, 0x65, 0x68, 0xa0, 0x3a, 0xaf, 0x37, 0xb4, 0x0d, - 0x5d, 0x72, 0x4b, 0x72, 0x46, 0x71, 0xe4, 0xa2, 0x23, 0xfd, 0x91, 0xf4, 0x65, 0x01, 0x4e, 0x9e, - 0xc3, 0x96, 0xdf, 0x8f, 0x4b, 0x8a, 0xb5, 0x65, 0x4f, 0xe7, 0x26, 0xfa, 0x97, 0x7c, 0xf6, 0x3f, - 0x01, 0xfc, 0xb3, 0xf1, 0xf0, 0x47, 0x7f, 0x1c, 0x44, 0xad, 0xcd, 0xa2, 0x76, 0x4f, 0x58, 0x2d, - 0xa3, 0xa9, 0x0d, 0x01, 0xf0, 0x2e, 0x28, 0x38, 0x84, 0xd2, 0x75, 0xef, 0x74, 0x28, 0x7e, 0x5e, - 0x4d, 0x12, 0x7d, 0x03, 0x7d, 0xd4, 0xc3, 0xf1, 0x22, 0x83, 0xe3, 0xfc, 0x81, 0x28, 0x4b, 0x1d, - 0xd2, 0xd3, 0xb7, 0x12, 0xeb, 0x02, 0x32, 0xc0, 0x8e, 0x05, 0x47, 0x71, 0xf9, 0x2a, 0x11, 0xa0, - 0xb0, 0xac, 0xef, 0xe2, 0x8e, 0x5e, 0xce, 0xd8, 0xff, 0x6d, 0xfa, 0x3a, 0x7a, 0x39, 0x8b, 0xfe, - 0xdd, 0x11, 0x28, 0x9e, 0x57, 0x4c, 0x4b, 0x37, 0xf6, 0xd0, 0x97, 0x72, 0x50, 0xa2, 0xda, 0x2b, - 0x13, 0xbd, 0x3b, 0xe3, 0xe9, 0xe2, 0xf6, 0x29, 0x81, 0xae, 0x83, 0x23, 0x7d, 0x7b, 0xcd, 0xd7, - 0x07, 0xa6, 0x6f, 0x42, 0x18, 0xcc, 0xb2, 0xc5, 0x46, 0x1e, 0x58, 0x5b, 0xba, 0xe1, 0x1b, 0x73, - 0xbb, 0x69, 0xfb, 0x03, 0xc3, 0xf9, 0xdf, 0x94, 0x77, 0xb0, 0xeb, 0x9f, 0xd1, 0xcf, 0x21, 0x41, - 0xac, 0x95, 0x1d, 0x67, 0x81, 0x14, 0x24, 0xf2, 0x5f, 0x9c, 0x83, 0xe2, 0xa6, 0xa1, 0x0f, 0xfa, - 0xf4, 0x73, 0x48, 0x90, 0xdc, 0x64, 0xd0, 0x1d, 0xe8, 0x49, 0x28, 0xf4, 0xe5, 0x4d, 0xdf, 0x84, - 0x8a, 0xa6, 0xc4, 0xeb, 0x61, 0x56, 0x95, 0x4d, 0x8b, 0xf6, 0xc6, 0xfb, 0xf6, 0x63, 0x33, 0x47, - 0x4f, 0x3b, 0xe8, 0x63, 0xdc, 0x2a, 0x11, 0xca, 0x45, 0x57, 0xff, 0x17, 0x26, 0x97, 0x55, 0x28, - 0x51, 0x4d, 0xa3, 0x3b, 0xb3, 0xdc, 0x10, 0x5d, 0x0d, 0xfd, 0x23, 0x79, 0xaf, 0x71, 0x1a, 0x6f, - 0x8d, 0xa1, 0x27, 0xfd, 0x09, 0xe6, 0x7f, 0xb8, 0x17, 0x72, 0x1f, 0x18, 0x0f, 0xd1, 0xb5, 0x30, - 0xb3, 0x3b, 0x04, 0x8f, 0x9f, 0x11, 0x71, 0x1d, 0xf7, 0xe7, 0x04, 0xde, 0xa5, 0xdc, 0x65, 0x47, - 0xc4, 0x85, 0xdc, 0xbb, 0x00, 0x9c, 0x09, 0xc0, 0x2e, 0xb3, 0x6f, 0xbb, 0x4c, 0xbe, 0xf7, 0xe8, - 0xb4, 0x41, 0x6a, 0x91, 0x02, 0xa5, 0xc5, 0xfb, 0x7c, 0x7d, 0xb2, 0x73, 0xee, 0xc7, 0x89, 0x6a, - 0x50, 0xed, 0xec, 0xf6, 0x31, 0xc7, 0xf6, 0x91, 0xcf, 0x80, 0x3e, 0xa2, 0x7f, 0xe9, 0x43, 0xfd, - 0x85, 0x2c, 0x40, 0x1b, 0xbb, 0x83, 0x29, 0x68, 0xda, 0x34, 0x11, 0xe0, 0xe8, 0x47, 0x19, 0xde, - 0xd8, 0x5c, 0x5e, 0xb7, 0xbd, 0xd6, 0xc3, 0x6c, 0x00, 0xb8, 0xa2, 0x6d, 0x8d, 0xad, 0x2e, 0x7d, - 0x5e, 0xbe, 0x4a, 0x80, 0x1c, 0xb9, 0xb5, 0xf6, 0xf7, 0xbe, 0xc5, 0xe3, 0xdd, 0x3e, 0x43, 0x03, - 0xd7, 0x7f, 0x32, 0x7c, 0xd7, 0x7f, 0xd0, 0xa3, 0xdc, 0xdf, 0x94, 0xe4, 0xf2, 0x54, 0xa4, 0xf5, - 0x8d, 0x8f, 0xa7, 0xc0, 0xe0, 0x19, 0xef, 0x86, 0x0e, 0xdf, 0xb7, 0x65, 0x38, 0x35, 0xe9, 0xa3, - 0xf0, 0x87, 0x34, 0xc8, 0xd9, 0x67, 0xfd, 0x9b, 0xa3, 0x16, 0x23, 0xd5, 0xf4, 0x6e, 0x56, 0x26, - 0xec, 0x6e, 0x56, 0x76, 0xa2, 0xeb, 0x83, 0xc2, 0x3e, 0x6f, 0xc5, 0x8f, 0x73, 0x3b, 0x1c, 0x68, - 0x8f, 0x33, 0x61, 0x75, 0x96, 0x71, 0xc1, 0x5b, 0xc6, 0xe3, 0x61, 0xf6, 0x49, 0xae, 0x4f, 0xc3, - 0x76, 0x32, 0x16, 0xae, 0x89, 0x5f, 0xa8, 0x7a, 0xe8, 0x04, 0x13, 0xc3, 0xee, 0xf1, 0x2c, 0xe4, - 0xc8, 0x79, 0x4a, 0x40, 0xd7, 0xfc, 0xdb, 0xdc, 0x57, 0xdd, 0x02, 0xb1, 0xdf, 0xc8, 0x39, 0xc3, - 0x68, 0x76, 0xbf, 0x10, 0x8e, 0xf8, 0x11, 0xee, 0xa2, 0x3f, 0x23, 0x88, 0x36, 0x21, 0x58, 0x9a, - 0xd3, 0x29, 0x51, 0x34, 0x21, 0xe9, 0x8f, 0x92, 0x77, 0xf8, 0xa3, 0x63, 0x21, 0xf8, 0x5d, 0x08, - 0x7e, 0x57, 0x28, 0x03, 0x23, 0xfa, 0x1d, 0x28, 0x8c, 0xfe, 0x28, 0x88, 0x41, 0x8d, 0xc5, 0xe0, - 0x39, 0x61, 0x5d, 0x8f, 0x14, 0x7a, 0x96, 0x98, 0x6c, 0x1c, 0x62, 0x7c, 0xb3, 0xee, 0x45, 0x06, - 0x83, 0xb3, 0xb1, 0x08, 0x39, 0x64, 0xc1, 0x7f, 0xfb, 0xb1, 0x40, 0x0c, 0xd4, 0xbf, 0xa4, 0x31, - 0x37, 0x37, 0x18, 0x07, 0x04, 0x6c, 0x70, 0xc6, 0xcc, 0x88, 0xe0, 0x8c, 0x93, 0x7a, 0xb3, 0xfb, - 0x41, 0x10, 0xce, 0x06, 0x0b, 0xe7, 0x6d, 0x61, 0x5c, 0xe4, 0x08, 0xb4, 0x39, 0x21, 0x39, 0x4f, - 0x78, 0x80, 0x2e, 0x31, 0x80, 0xde, 0x31, 0x01, 0x29, 0xf1, 0x60, 0x55, 0x12, 0x86, 0x55, 0x9c, - 0x83, 0x13, 0x52, 0xbd, 0xba, 0xd0, 0x6a, 0x2e, 0x3d, 0x10, 0x7c, 0x5a, 0xce, 0xa1, 0xb7, 0x09, - 0x50, 0x90, 0x88, 0x79, 0x11, 0xfa, 0xe9, 0xb8, 0x30, 0x0f, 0x39, 0xca, 0xcc, 0xee, 0x77, 0xbf, - 0xfc, 0x19, 0xee, 0xdb, 0x3c, 0xa3, 0xd8, 0xe8, 0xd0, 0x15, 0xb2, 0x43, 0xfb, 0x0e, 0xd7, 0x6d, - 0x1e, 0xee, 0x6a, 0xaf, 0x58, 0x80, 0x1e, 0x15, 0xa0, 0x40, 0xbd, 0xe1, 0xf6, 0xe2, 0x02, 0x14, - 0x74, 0x75, 0x9e, 0xe5, 0x75, 0x75, 0x7e, 0x30, 0xcc, 0x22, 0xe3, 0x89, 0x4c, 0x8e, 0x59, 0x02, - 0xde, 0x66, 0xa7, 0x88, 0xd9, 0xd7, 0x04, 0xba, 0x5f, 0x18, 0xc4, 0x45, 0x6c, 0x01, 0x9e, 0x26, - 0xf7, 0xfb, 0x58, 0xf3, 0xfc, 0xaa, 0x9a, 0x8b, 0x86, 0xbe, 0xd3, 0xb2, 0xb6, 0xb0, 0xe1, 0xee, - 0x0b, 0x32, 0x37, 0x95, 0xa4, 0xe8, 0x42, 0xac, 0xf3, 0x86, 0x48, 0xc7, 0x96, 0xa3, 0x78, 0x1d, - 0xb1, 0x49, 0x99, 0x70, 0x26, 0xfd, 0x02, 0x97, 0x87, 0x4b, 0x4e, 0x5a, 0x0e, 0x79, 0x85, 0xfc, - 0xdc, 0x05, 0x28, 0x38, 0x94, 0xda, 0xdb, 0xc2, 0x23, 0xed, 0x2d, 0xd9, 0xc0, 0xf3, 0x7b, 0x24, - 0xf2, 0xfb, 0x0d, 0x5c, 0x8a, 0x50, 0xf4, 0xfa, 0x20, 0x3a, 0x22, 0xe4, 0x54, 0x45, 0xdb, 0x76, - 0x4f, 0x21, 0xec, 0xff, 0xfe, 0x27, 0x6c, 0x76, 0xc4, 0x27, 0xac, 0xa7, 0x52, 0xf0, 0xda, 0x3d, - 0xd0, 0x27, 0xec, 0xd8, 0xea, 0xa6, 0x72, 0xe2, 0x79, 0xbc, 0xda, 0xeb, 0x5d, 0x52, 0xac, 0xad, - 0x96, 0xcb, 0xa3, 0xfb, 0xf8, 0x74, 0xca, 0x73, 0x50, 0xec, 0xcb, 0x7b, 0xaa, 0x2e, 0x7b, 0xf7, - 0xea, 0x69, 0x92, 0x35, 0x90, 0x8c, 0x54, 0xf4, 0x53, 0x0e, 0x0c, 0x51, 0x10, 0xc2, 0x54, 0x3e, - 0x9d, 0x3d, 0x57, 0x95, 0xe9, 0x33, 0xf6, 0xaf, 0x04, 0x36, 0xf6, 0xca, 0xcf, 0xf0, 0xba, 0x2b, - 0x98, 0x68, 0xdd, 0xf8, 0x7f, 0xdc, 0x11, 0xd2, 0x29, 0x7b, 0x7e, 0x42, 0x22, 0xab, 0xc4, 0x1a, - 0x47, 0x87, 0x19, 0x51, 0xe5, 0x33, 0xfb, 0x23, 0xaa, 0xfc, 0x2b, 0x5e, 0xc4, 0xc7, 0x6e, 0xe5, - 0x26, 0x8b, 0xba, 0xf3, 0x01, 0x6e, 0xbf, 0x70, 0x43, 0xfc, 0x4b, 0xd0, 0xe3, 0x3d, 0x9f, 0xf7, - 0x37, 0x9e, 0xf6, 0xd3, 0x87, 0xf0, 0x75, 0xfb, 0xc3, 0xa4, 0x34, 0x12, 0x83, 0x70, 0x72, 0x34, - 0x12, 0x0c, 0x82, 0x32, 0x11, 0x1a, 0x87, 0xe4, 0x56, 0xfe, 0xd5, 0x39, 0xb8, 0x7a, 0x7f, 0xd8, - 0x13, 0xfe, 0x90, 0xc8, 0xe3, 0x07, 0xd5, 0xa4, 0x31, 0x3f, 0xbe, 0x1b, 0x73, 0x83, 0x57, 0xb9, - 0xb2, 0x42, 0x96, 0xbc, 0x3f, 0xc6, 0x7e, 0xb0, 0x72, 0xf8, 0x41, 0x4a, 0xfe, 0x4c, 0x80, 0x13, - 0x23, 0xc3, 0x93, 0x5c, 0x09, 0xa2, 0xc0, 0x1f, 0x81, 0x70, 0x24, 0x3f, 0x13, 0x9c, 0x68, 0xf9, - 0x82, 0xd3, 0xf1, 0x53, 0x91, 0x3e, 0xb0, 0x9f, 0xc8, 0x0d, 0x03, 0x4b, 0x27, 0xdd, 0x0f, 0x25, - 0x08, 0x6c, 0x30, 0x58, 0x88, 0x30, 0x14, 0x2c, 0xe4, 0x3c, 0x3c, 0x9d, 0xdc, 0xe9, 0x33, 0x76, - 0x1c, 0xa5, 0x44, 0x55, 0x55, 0x2f, 0xca, 0xea, 0x00, 0x9b, 0x0d, 0xcd, 0x09, 0xaf, 0xe1, 0x5e, - 0xee, 0x1e, 0x57, 0x0c, 0x7d, 0xff, 0x60, 0x62, 0x90, 0x60, 0x30, 0x91, 0xef, 0x4c, 0x2e, 0x06, - 0x09, 0xcc, 0xf3, 0x5b, 0x13, 0x7c, 0xef, 0x3d, 0x0f, 0x9e, 0xdb, 0x6e, 0x2d, 0xd7, 0xc9, 0x9d, - 0x3e, 0x69, 0xa1, 0xbd, 0x76, 0xbe, 0xda, 0x5e, 0x93, 0xea, 0x4b, 0xd5, 0x4e, 0xa3, 0xd5, 0x5c, - 0xbb, 0x58, 0x5d, 0x5a, 0xad, 0xaf, 0x5d, 0x6a, 0x74, 0xce, 0xaf, 0x75, 0xce, 0x37, 0xda, 0x6b, - 0xad, 0x15, 0x3b, 0xbb, 0x2c, 0xa0, 0xd7, 0x84, 0x06, 0x1d, 0xe1, 0x76, 0xcd, 0xfe, 0x38, 0x77, - 0x6c, 0xde, 0x21, 0x76, 0xa5, 0x18, 0x52, 0x84, 0x2f, 0x48, 0x6f, 0x0c, 0x7a, 0xa6, 0x70, 0xfa, - 0x96, 0x83, 0x42, 0x1b, 0xcb, 0x46, 0x77, 0x0b, 0xfd, 0x5a, 0xc0, 0x77, 0xe7, 0x22, 0x14, 0x37, - 0x14, 0x95, 0xb8, 0x9f, 0xcf, 0x90, 0xee, 0xdf, 0xc2, 0x17, 0x7f, 0x7e, 0x91, 0xbc, 0x24, 0xb9, - 0x2f, 0x8b, 0x2f, 0x82, 0xbc, 0xa9, 0x1b, 0x9e, 0x69, 0x17, 0x67, 0x14, 0xfb, 0xb6, 0x6e, 0x58, - 0x92, 0xf3, 0x22, 0x63, 0xbf, 0x26, 0x0c, 0xd9, 0xaf, 0x85, 0x58, 0xaa, 0xb1, 0xd1, 0x9c, 0x3d, - 0xbb, 0xb6, 0x9b, 0xa1, 0xec, 0x2b, 0x8c, 0x1c, 0x42, 0xe7, 0x0a, 0xe4, 0x50, 0x71, 0x5f, 0xbe, - 0x28, 0x42, 0x6e, 0x1b, 0xef, 0x99, 0x73, 0x45, 0xf2, 0x9c, 0xfc, 0x47, 0x8f, 0x70, 0x7b, 0xb9, - 0x71, 0x15, 0x03, 0x84, 0xaf, 0x21, 0x22, 0x76, 0x2b, 0x14, 0x0d, 0x3a, 0x4d, 0xb9, 0x02, 0x16, - 0x76, 0x80, 0x49, 0xcb, 0xa1, 0x77, 0x72, 0x39, 0xbf, 0x89, 0x6a, 0x7c, 0x0a, 0x11, 0x4e, 0x4a, - 0x90, 0x3f, 0x67, 0xc8, 0xfd, 0x2d, 0xf4, 0x4b, 0x99, 0xe4, 0xc5, 0xc9, 0x03, 0x36, 0x3b, 0x0e, - 0x58, 0x61, 0x34, 0xb0, 0xe8, 0xb5, 0x59, 0xc8, 0x35, 0xed, 0x4e, 0x0d, 0x5b, 0x5a, 0x89, 0xd4, - 0x2e, 0x99, 0x9a, 0xaf, 0x12, 0x7b, 0x63, 0xd7, 0x87, 0x87, 0x10, 0xf0, 0xe1, 0x71, 0x12, 0x0a, - 0xaa, 0xbc, 0xa7, 0x0f, 0x3c, 0x99, 0x73, 0x52, 0xc3, 0xec, 0xcc, 0xef, 0x63, 0xa7, 0x3d, 0x9f, - 0x29, 0x5d, 0x5d, 0x6b, 0xec, 0xc8, 0x9b, 0x98, 0x5e, 0x35, 0xf1, 0x33, 0xdc, 0xa7, 0xf5, 0x1d, - 0xfd, 0xa5, 0x0a, 0xbd, 0x52, 0xe2, 0x67, 0xd8, 0x94, 0xf4, 0x74, 0x0d, 0x93, 0x2b, 0x24, 0x25, - 0x89, 0xfc, 0x17, 0x6f, 0x84, 0x63, 0xee, 0xd4, 0xb3, 0xa8, 0x1b, 0x3b, 0xb2, 0x35, 0x37, 0xe3, - 0x5c, 0xf9, 0x62, 0x73, 0xc5, 0x39, 0x28, 0x9a, 0x9a, 0xd2, 0xef, 0x63, 0x6b, 0x0e, 0x1c, 0x45, - 0x0f, 0x4d, 0xa2, 0xb7, 0x64, 0x21, 0x57, 0xef, 0x6d, 0x62, 0xe6, 0x94, 0x3d, 0x13, 0x38, 0x65, - 0x3f, 0x09, 0x05, 0xc7, 0x33, 0x28, 0x65, 0x0b, 0x4d, 0x8d, 0x64, 0xcc, 0x0b, 0x28, 0x03, 0x73, - 0x23, 0x2e, 0xf7, 0x52, 0x99, 0x24, 0x82, 0x51, 0xb1, 0x5b, 0x0c, 0x5a, 0x75, 0xa7, 0xcb, 0xb9, - 0x93, 0x50, 0xd8, 0x52, 0x7a, 0x3d, 0xac, 0x51, 0xde, 0xd1, 0xd4, 0xe9, 0x53, 0x90, 0xb3, 0x69, - 0xb0, 0x85, 0x7b, 0x49, 0xd1, 0xb6, 0xcb, 0x57, 0x89, 0x47, 0xfd, 0xe3, 0xbb, 0x72, 0x86, 0xd5, - 0x03, 0x47, 0xda, 0x3b, 0x31, 0x9d, 0x1b, 0x3d, 0xd8, 0x9f, 0x07, 0x79, 0x4d, 0xef, 0x79, 0x47, - 0xd3, 0xa7, 0xc2, 0xdf, 0xb7, 0x65, 0x53, 0x72, 0x0a, 0xdb, 0x6f, 0xe1, 0xde, 0x26, 0x36, 0x89, - 0x30, 0x47, 0xbe, 0x65, 0xb3, 0x54, 0x72, 0x0a, 0x73, 0x1a, 0x31, 0x45, 0x10, 0x9d, 0xfe, 0x24, - 0xf1, 0xc5, 0x02, 0x1c, 0x77, 0xe6, 0xa7, 0xf6, 0x60, 0xdd, 0xae, 0x6a, 0x1d, 0xa3, 0x6f, 0x67, - 0x99, 0xdb, 0x42, 0xe6, 0x60, 0xdd, 0x5b, 0xf5, 0x9d, 0x44, 0x70, 0x12, 0xc9, 0x26, 0xb2, 0x26, - 0x09, 0x93, 0xae, 0x49, 0xcc, 0xfa, 0x22, 0xec, 0xb7, 0x9b, 0x76, 0x0c, 0x27, 0xdd, 0xd5, 0x68, - 0xc4, 0x5a, 0x62, 0x8f, 0x49, 0x79, 0xc3, 0xc2, 0x86, 0x77, 0x2b, 0xcc, 0x4d, 0x12, 0xdf, 0xb2, - 0x78, 0x43, 0x37, 0x70, 0xa3, 0x47, 0xc6, 0xf3, 0x8c, 0xe4, 0xa5, 0x03, 0xc3, 0x14, 0x18, 0x63, - 0x98, 0x9b, 0xe0, 0xb8, 0xb2, 0xa9, 0xe9, 0x06, 0xf6, 0xdc, 0xc8, 0xcd, 0x1d, 0x75, 0x7c, 0x05, - 0x0d, 0x65, 0xa3, 0x2f, 0x0b, 0x31, 0x55, 0xbb, 0x43, 0x30, 0x25, 0xb6, 0x98, 0x89, 0x2f, 0x84, - 0xa3, 0x3d, 0xdc, 0xc7, 0x5a, 0x0f, 0x6b, 0x5d, 0xc5, 0x93, 0xf1, 0xd0, 0xf7, 0x98, 0xc2, 0xbe, - 0x80, 0xe4, 0x82, 0x02, 0x72, 0x2e, 0x10, 0x34, 0x27, 0x3f, 0x64, 0x4c, 0xc2, 0xda, 0x14, 0x3a, - 0xdd, 0xe9, 0x53, 0x8b, 0x69, 0xe7, 0x95, 0x40, 0xf4, 0x9c, 0x58, 0x9a, 0xea, 0x68, 0x0e, 0x4d, - 0xc1, 0x8a, 0x2d, 0x07, 0x47, 0x1b, 0x3d, 0xd3, 0x1f, 0x49, 0xfa, 0xb8, 0x81, 0xb4, 0x2f, 0xc6, - 0x81, 0x27, 0xa2, 0x42, 0x40, 0x44, 0x47, 0x08, 0xd5, 0x91, 0xd1, 0x42, 0xf5, 0x8a, 0xa0, 0x50, - 0xd5, 0x59, 0xa1, 0x3a, 0x33, 0x8a, 0x65, 0x41, 0x72, 0xaf, 0x64, 0x89, 0x42, 0xef, 0xf1, 0x04, - 0xe1, 0x3c, 0x23, 0x08, 0xcf, 0x8b, 0xd9, 0xab, 0xf4, 0xa5, 0xe0, 0x3f, 0x66, 0xe1, 0x6a, 0x47, - 0x12, 0x57, 0x35, 0xd3, 0x13, 0x85, 0x67, 0xb0, 0x86, 0x74, 0x76, 0x9f, 0x4c, 0xcf, 0x90, 0x8e, - 0xa4, 0xd0, 0xab, 0xe3, 0xaa, 0xc3, 0xf6, 0xb5, 0x12, 0x72, 0xdc, 0x13, 0x4b, 0x51, 0x35, 0xae, - 0xd2, 0xf4, 0x19, 0xf8, 0xcb, 0x4e, 0xe4, 0xc4, 0x25, 0xb2, 0x9b, 0x43, 0x32, 0xaf, 0x0e, 0xe3, - 0x0e, 0x6f, 0x3b, 0xe8, 0x5c, 0x68, 0xbb, 0x2e, 0xd4, 0xe0, 0xa9, 0xe2, 0x54, 0xed, 0x6e, 0x18, - 0xd1, 0xbb, 0xb8, 0xed, 0xdd, 0x3d, 0x1e, 0x51, 0xea, 0x12, 0x51, 0x35, 0xf0, 0x99, 0xb6, 0x8f, - 0x69, 0x3a, 0x7d, 0x58, 0xfe, 0xad, 0x00, 0xb3, 0xc4, 0x99, 0xec, 0xa2, 0xbc, 0xab, 0x1b, 0x8a, - 0x85, 0xd1, 0x39, 0x5e, 0x68, 0x4e, 0x01, 0x28, 0xde, 0x6b, 0xf4, 0xf0, 0x3f, 0x90, 0x13, 0x23, - 0xb0, 0x8b, 0xcf, 0x05, 0x9f, 0x8e, 0x29, 0x06, 0x76, 0xe1, 0x68, 0x7e, 0x8a, 0x40, 0x54, 0x9d, - 0x2b, 0xfa, 0xbd, 0x98, 0x40, 0xb8, 0xaf, 0xf9, 0x40, 0x78, 0x15, 0x4d, 0x06, 0x84, 0xfb, 0xfa, - 0x21, 0x01, 0x11, 0xd2, 0x7c, 0xfa, 0x40, 0x3c, 0x5a, 0x80, 0xf2, 0x22, 0x96, 0xad, 0x81, 0x81, - 0x3d, 0x23, 0x16, 0xf4, 0xf3, 0xd4, 0xdc, 0xb0, 0xce, 0x8b, 0xc9, 0xb5, 0xc3, 0x1a, 0xae, 0x99, - 0xa0, 0x22, 0x2b, 0xb6, 0x62, 0x7c, 0x98, 0xa0, 0x4a, 0x42, 0xc7, 0x24, 0xf1, 0x14, 0xe3, 0x1c, - 0x54, 0xa4, 0x8f, 0xcf, 0x1b, 0x7d, 0xab, 0xc0, 0x84, 0xd0, 0xf8, 0x74, 0x10, 0x8d, 0x15, 0x16, - 0x8d, 0xbb, 0xb8, 0xf8, 0x10, 0x65, 0x0d, 0x18, 0x13, 0x10, 0xdf, 0xf5, 0x49, 0x9b, 0x01, 0xe4, - 0xbe, 0xc9, 0x09, 0x99, 0x42, 0xd4, 0x98, 0x2c, 0xe4, 0x3b, 0x7a, 0x1b, 0x33, 0xbe, 0x80, 0xa3, - 0x21, 0xf1, 0xbf, 0xb5, 0xb2, 0x4c, 0xe0, 0xe3, 0x57, 0xc5, 0xd5, 0x0b, 0x90, 0x76, 0xc3, 0xfd, - 0x50, 0x98, 0x81, 0x90, 0x34, 0x4e, 0x22, 0xde, 0x17, 0xfc, 0xa8, 0xea, 0xd3, 0x67, 0xe8, 0x47, - 0x4a, 0xae, 0x91, 0x3f, 0xb1, 0xd5, 0xfb, 0x5a, 0x16, 0x0a, 0xf4, 0xf8, 0x87, 0x55, 0xe0, 0xbb, - 0xd6, 0x46, 0xee, 0xae, 0xd3, 0xcf, 0x40, 0xef, 0x8e, 0x69, 0x80, 0x4e, 0xcc, 0xd9, 0x12, 0x3c, - 0x6b, 0x79, 0x77, 0x0c, 0x9b, 0xf3, 0xf0, 0xb6, 0xa7, 0x70, 0xe3, 0x2b, 0xef, 0xdc, 0x8f, 0xf9, - 0x6f, 0x59, 0x80, 0xd0, 0xd5, 0x37, 0x9c, 0xcf, 0x63, 0x57, 0xdf, 0xd7, 0x04, 0x71, 0xb8, 0xc0, - 0xe2, 0x70, 0x7b, 0x18, 0x2f, 0x6c, 0x99, 0x1b, 0xb7, 0x04, 0xa3, 0x0f, 0x78, 0x1c, 0x6e, 0x32, - 0x1c, 0xbe, 0x6b, 0xa2, 0x5a, 0xd3, 0xe7, 0xb4, 0xc3, 0xe1, 0x90, 0x8d, 0xe6, 0x38, 0x0e, 0x47, - 0x6c, 0x34, 0x0f, 0xc0, 0xe1, 0xe8, 0xdd, 0xe6, 0xa4, 0x1c, 0x3e, 0xb4, 0x4d, 0xe4, 0x13, 0x39, - 0x28, 0xd4, 0x1f, 0xec, 0xeb, 0x86, 0x85, 0x3e, 0x9b, 0x61, 0xdc, 0x49, 0xf4, 0x7d, 0xaf, 0xf7, - 0xe4, 0xbf, 0x3d, 0xff, 0xf6, 0xf4, 0xae, 0x7f, 0xe9, 0x99, 0xa6, 0xc4, 0xb3, 0x50, 0xd8, 0x70, - 0xb4, 0xdd, 0xce, 0x07, 0x17, 0x62, 0xba, 0xea, 0x54, 0x5e, 0x71, 0x34, 0xdf, 0x12, 0x2d, 0x29, - 0x96, 0x41, 0x78, 0xb9, 0xd2, 0xa7, 0xc7, 0xc1, 0xf6, 0x5f, 0x12, 0x50, 0x83, 0xfa, 0x64, 0xc3, - 0xa6, 0x85, 0x1d, 0x67, 0x51, 0x25, 0x89, 0xcd, 0x14, 0x4f, 0xc3, 0x51, 0x9a, 0xb1, 0xa8, 0xa8, - 0xd8, 0x89, 0xff, 0x56, 0x92, 0x98, 0x3c, 0xf4, 0xa9, 0x20, 0xb8, 0x77, 0xb0, 0xe0, 0x9e, 0x1e, - 0x45, 0x5b, 0xa8, 0x8b, 0x90, 0x61, 0xef, 0x19, 0x44, 0x71, 0x3f, 0xe8, 0x76, 0x31, 0xee, 0xd1, - 0xb3, 0x06, 0x37, 0x19, 0xd3, 0x6e, 0xe8, 0x61, 0x4f, 0x4a, 0x5e, 0xc8, 0x48, 0xc9, 0xb3, 0xc6, - 0x93, 0x97, 0xfe, 0x4d, 0xfa, 0x15, 0x28, 0xd0, 0x73, 0x8a, 0xa3, 0x50, 0x5a, 0x96, 0x8d, 0xed, - 0x9e, 0x7e, 0x59, 0x73, 0xb4, 0xf1, 0x2b, 0x54, 0x63, 0x53, 0xce, 0xd8, 0x35, 0xde, 0xdf, 0x6e, - 0x35, 0xcb, 0x59, 0xb1, 0x08, 0xc2, 0x42, 0xab, 0x53, 0x16, 0xec, 0x3f, 0xed, 0x8b, 0xe7, 0xca, - 0x39, 0xf1, 0x18, 0xc0, 0x39, 0xa9, 0xba, 0x72, 0x7e, 0x8d, 0x94, 0xc8, 0xa3, 0xd7, 0x0a, 0x70, - 0xdc, 0xe9, 0x8c, 0xaf, 0xa2, 0xba, 0x2f, 0x5a, 0xd8, 0xc6, 0x07, 0x99, 0xf9, 0x28, 0xf7, 0x95, - 0xb5, 0xa1, 0xa6, 0x63, 0xe0, 0x1d, 0x0f, 0x55, 0xbe, 0x7b, 0x6b, 0xd1, 0xd4, 0x4c, 0xe1, 0x6a, - 0x7a, 0xd6, 0x05, 0xc3, 0x75, 0x8a, 0x66, 0x0e, 0x85, 0x10, 0x1a, 0x06, 0x23, 0x36, 0xab, 0xbd, - 0x8a, 0xaf, 0x08, 0x56, 0x87, 0x51, 0x33, 0x95, 0xeb, 0xcc, 0x65, 0x87, 0x06, 0x12, 0x45, 0xc0, - 0xb4, 0x74, 0x03, 0x07, 0x9d, 0x7b, 0xc7, 0x98, 0x65, 0xd1, 0x63, 0xdc, 0xca, 0xa9, 0xe1, 0x16, - 0x53, 0x03, 0x81, 0x4f, 0x61, 0x35, 0x86, 0x9c, 0xf4, 0x51, 0x78, 0x2c, 0x0b, 0x47, 0x97, 0xe5, - 0x6d, 0xcf, 0x07, 0x20, 0xbf, 0x45, 0x0b, 0xe3, 0x70, 0x2a, 0xf2, 0xcb, 0x22, 0x58, 0x7f, 0xe4, - 0x0d, 0xe4, 0xac, 0xe7, 0x0e, 0x8e, 0xef, 0x9b, 0x22, 0xa2, 0xe2, 0xf4, 0x39, 0xf7, 0x8d, 0x2c, - 0xcc, 0x05, 0x09, 0x98, 0xdf, 0x0b, 0x5c, 0x23, 0x66, 0xdd, 0x7c, 0x0f, 0x5d, 0x7a, 0x9d, 0x61, - 0x2e, 0x93, 0xfe, 0x0a, 0xb7, 0x46, 0x3b, 0xac, 0x35, 0x4e, 0x9e, 0xf2, 0x69, 0xb8, 0x39, 0x1b, - 0x99, 0x82, 0xc5, 0x5e, 0x16, 0x66, 0x6b, 0xaa, 0xae, 0x4d, 0x20, 0x9a, 0xff, 0x98, 0xe1, 0x35, - 0x7d, 0x61, 0x1a, 0xe0, 0xe4, 0x23, 0x9f, 0x5d, 0x4b, 0x54, 0xcd, 0x53, 0xb8, 0x20, 0x90, 0x85, - 0xe3, 0x0e, 0x76, 0x0b, 0x83, 0xbe, 0xaa, 0x74, 0x63, 0xb1, 0xef, 0x55, 0x31, 0xef, 0xbb, 0x7b, - 0x4d, 0x70, 0x32, 0x30, 0xce, 0x15, 0xf6, 0xb0, 0xba, 0xa7, 0x10, 0x9e, 0x3d, 0x07, 0xc7, 0x56, - 0x35, 0xb3, 0xaf, 0xca, 0xe6, 0x16, 0x35, 0x39, 0xbb, 0x9d, 0x39, 0xaa, 0x7c, 0xd9, 0x00, 0x1b, - 0x7b, 0xee, 0x51, 0x25, 0x49, 0x8c, 0x36, 0xf8, 0x41, 0x8f, 0x09, 0xbc, 0xbe, 0x2d, 0xd9, 0xf6, - 0x42, 0xd8, 0x79, 0x1e, 0x4a, 0x7d, 0xa5, 0x6b, 0x0d, 0x0c, 0xbc, 0xdf, 0xb2, 0x20, 0xaa, 0x92, - 0x15, 0xe7, 0x25, 0xc9, 0x7b, 0x1b, 0xc9, 0x50, 0xa4, 0x99, 0xfb, 0xec, 0x8b, 0xa8, 0x9f, 0xc4, - 0xac, 0xef, 0x27, 0xf1, 0x24, 0x14, 0x64, 0xc3, 0x52, 0x4c, 0xd7, 0xae, 0x8d, 0xa6, 0x6c, 0x59, - 0x72, 0xfe, 0xad, 0x1a, 0x2a, 0x3d, 0x8e, 0xf4, 0x33, 0x02, 0xce, 0x21, 0xa2, 0x1c, 0x71, 0x46, - 0xf6, 0x3b, 0x1e, 0xd4, 0x17, 0x26, 0xb0, 0x0a, 0xbd, 0x06, 0x9e, 0x24, 0x91, 0x98, 0x15, 0x8d, - 0xe5, 0x46, 0x67, 0xad, 0xfe, 0xe2, 0x5a, 0xbd, 0xbe, 0x50, 0x5f, 0x28, 0xf7, 0xd0, 0xb7, 0xb2, - 0x50, 0x76, 0x69, 0x73, 0x7d, 0xf1, 0x0d, 0x8d, 0x23, 0xca, 0x4c, 0x7f, 0x1c, 0x79, 0x19, 0xac, - 0x05, 0x5e, 0xe4, 0xae, 0x64, 0xb8, 0x8d, 0x18, 0x8e, 0x19, 0x3f, 0xc5, 0xb5, 0xcf, 0x18, 0xd3, - 0xc0, 0x21, 0xb2, 0xf8, 0x8b, 0x59, 0x98, 0xad, 0xf6, 0xfb, 0xea, 0x9e, 0x37, 0xcd, 0xc7, 0x39, - 0xa8, 0x09, 0x78, 0x48, 0xc9, 0xee, 0xf3, 0x90, 0xf2, 0x7d, 0xee, 0x65, 0x80, 0x21, 0x20, 0x44, - 0x79, 0xc1, 0x37, 0xed, 0x47, 0xd5, 0x94, 0xfe, 0x9c, 0xf5, 0x86, 0x27, 0x41, 0x9e, 0x04, 0x1e, - 0x43, 0xef, 0x15, 0xa0, 0xa8, 0xea, 0x9b, 0x0d, 0x6d, 0x43, 0x1f, 0x65, 0x3b, 0xb8, 0x85, 0xbd, - 0x7b, 0x94, 0xe4, 0xbf, 0x78, 0x23, 0x1c, 0xb3, 0x7f, 0x5d, 0xf9, 0xa0, 0x8e, 0xd6, 0x4b, 0xd2, - 0x50, 0xae, 0x78, 0x1a, 0x8e, 0x5a, 0xba, 0x25, 0xab, 0x41, 0x9b, 0xf5, 0xbc, 0xc4, 0xe4, 0xd9, - 0xa8, 0x91, 0x74, 0x5b, 0x79, 0x39, 0xa6, 0x36, 0xad, 0x7e, 0x86, 0x78, 0x3d, 0xcc, 0x6e, 0x28, - 0x86, 0x69, 0x39, 0xa5, 0x3b, 0x8e, 0x9a, 0x22, 0x2f, 0xb1, 0x99, 0x8e, 0x83, 0x78, 0x2f, 0xe3, - 0x22, 0x36, 0x88, 0xa9, 0x1c, 0x71, 0x10, 0x1f, 0xcc, 0xb5, 0xe9, 0x51, 0xe5, 0x40, 0x65, 0x25, - 0x87, 0x9e, 0x60, 0x9e, 0xeb, 0xe6, 0xcd, 0xaf, 0xca, 0x31, 0x3c, 0x64, 0x33, 0xed, 0x16, 0xed, - 0x8c, 0x95, 0x81, 0xaa, 0xb6, 0x71, 0xb7, 0xba, 0xa9, 0x13, 0xf3, 0xc3, 0xbc, 0x34, 0x94, 0x2b, - 0x22, 0x28, 0x0d, 0xfa, 0x6d, 0x4b, 0xb6, 0x06, 0x26, 0xb5, 0x30, 0xf1, 0xd2, 0xb6, 0x44, 0xf6, - 0xf4, 0xcb, 0x1a, 0x7d, 0xea, 0x18, 0x35, 0x05, 0x72, 0xec, 0xf5, 0xc1, 0x11, 0xc2, 0x59, 0x67, - 0xd5, 0x70, 0x24, 0xeb, 0x4f, 0x04, 0x00, 0x6b, 0xcb, 0xc0, 0x72, 0x6f, 0x24, 0x5c, 0xcf, 0x87, - 0x93, 0xaa, 0xbe, 0x69, 0x5e, 0x52, 0xac, 0x2d, 0x1f, 0x88, 0xf3, 0x2e, 0x80, 0x79, 0x29, 0xe4, - 0xa9, 0xf8, 0x22, 0x78, 0xaa, 0xfb, 0xe4, 0xd2, 0x96, 0xae, 0xe2, 0x8e, 0x81, 0xf1, 0x10, 0xbe, - 0x79, 0x29, 0xaa, 0x88, 0x58, 0x81, 0x9c, 0xfd, 0x78, 0x2e, 0x47, 0x56, 0x19, 0x56, 0x75, 0x45, - 0xc4, 0xac, 0x42, 0x45, 0x4c, 0x22, 0xe5, 0xc4, 0x3b, 0xe0, 0x1a, 0xfd, 0xb2, 0xb6, 0xa4, 0x6f, - 0x9e, 0x97, 0xcd, 0x9a, 0xbc, 0x81, 0x25, 0xec, 0x2c, 0xde, 0xba, 0x41, 0x15, 0x56, 0x61, 0x8f, - 0xc5, 0x0a, 0x88, 0x5d, 0x79, 0x03, 0x2f, 0xb1, 0x00, 0x38, 0x92, 0x31, 0xe2, 0x89, 0x0d, 0xbb, - 0x9d, 0xbb, 0xea, 0x02, 0xe1, 0xd8, 0x51, 0x32, 0x79, 0x36, 0xa0, 0x76, 0x7a, 0xc1, 0x07, 0xc4, - 0xb1, 0x5d, 0x1b, 0xca, 0xdd, 0x27, 0xd2, 0x33, 0xe3, 0x44, 0x1a, 0x86, 0x45, 0xda, 0x83, 0xf5, - 0x48, 0x10, 0xd6, 0xaf, 0xe6, 0x21, 0xd7, 0xde, 0xd3, 0xba, 0xf6, 0x7e, 0xc7, 0x9b, 0xd1, 0xce, - 0xc2, 0x09, 0x6a, 0x00, 0xd4, 0x31, 0xe4, 0x5d, 0x6c, 0x98, 0x78, 0x89, 0x6c, 0x18, 0x1c, 0x47, - 0xe3, 0x23, 0x9f, 0xd9, 0xf2, 0x6b, 0x6e, 0x2b, 0xfd, 0xfa, 0x4e, 0xdf, 0xda, 0x5b, 0xb2, 0xf1, - 0xa0, 0xe1, 0x74, 0x99, 0x4c, 0xf1, 0x5e, 0x40, 0x96, 0xb1, 0xd7, 0xd1, 0x5d, 0xfc, 0x24, 0xbc, - 0xa3, 0x5b, 0xd8, 0xed, 0x14, 0x0d, 0x35, 0x18, 0x5e, 0x02, 0xfd, 0x26, 0xb7, 0x47, 0x7d, 0x07, - 0x7a, 0xbb, 0x6b, 0x21, 0xeb, 0xd4, 0x0b, 0xa0, 0xe8, 0xc8, 0xb3, 0xbb, 0x41, 0x79, 0xda, 0x88, - 0xf7, 0x7d, 0x89, 0x97, 0xdc, 0xd2, 0x8c, 0xfb, 0x79, 0x61, 0xc8, 0xfd, 0xbc, 0x0b, 0x53, 0x87, - 0xd6, 0x1c, 0x9c, 0x79, 0x68, 0x1e, 0xe1, 0x81, 0xf3, 0xd7, 0x16, 0x69, 0x7d, 0x60, 0xd9, 0x22, - 0xd6, 0xd0, 0x5a, 0x44, 0xea, 0xe8, 0x54, 0x14, 0x51, 0x42, 0x9c, 0x87, 0x6b, 0xd9, 0xa7, 0xe7, - 0xd9, 0x39, 0xd1, 0x11, 0xc8, 0xc8, 0x32, 0xfb, 0xc4, 0xa9, 0x38, 0x4e, 0x9c, 0x4a, 0x43, 0xe2, - 0xc4, 0xe9, 0x6b, 0x39, 0x14, 0x85, 0xf4, 0x97, 0x99, 0x8f, 0x0b, 0x50, 0x70, 0x58, 0x8e, 0x5e, - 0x97, 0x61, 0xae, 0xef, 0x53, 0x50, 0xbd, 0xeb, 0xfb, 0x6e, 0x7a, 0x4a, 0x32, 0xfc, 0x0e, 0x7e, - 0x07, 0xce, 0x84, 0x7b, 0x4e, 0x27, 0x42, 0x6d, 0xfa, 0x72, 0x8a, 0xb6, 0xa1, 0xd3, 0xe3, 0xb9, - 0x31, 0x22, 0x4c, 0x8a, 0x72, 0xaa, 0x2d, 0x22, 0xda, 0x9e, 0x4a, 0x5c, 0xef, 0x9c, 0x3d, 0xcd, - 0xa3, 0x97, 0x30, 0x41, 0x62, 0xd6, 0x69, 0xc0, 0x0a, 0x1a, 0x03, 0x8b, 0x26, 0x47, 0xea, 0xc1, - 0x4e, 0xc3, 0xd1, 0x81, 0x26, 0x6b, 0xba, 0xb6, 0xb7, 0xa3, 0xbc, 0xdc, 0xdb, 0x28, 0x30, 0x79, - 0xac, 0x99, 0x1e, 0xc7, 0x64, 0x62, 0x53, 0x14, 0x1e, 0x5f, 0x79, 0x43, 0x51, 0x31, 0x31, 0xe0, - 0x77, 0x3d, 0x42, 0xd3, 0x74, 0xac, 0x91, 0x32, 0xa2, 0x89, 0xf4, 0xb9, 0xfd, 0x77, 0x19, 0x38, - 0x71, 0x0e, 0x6b, 0xd8, 0x50, 0xba, 0x4e, 0xa7, 0xb8, 0xbc, 0x2d, 0x8e, 0x7a, 0x83, 0xdd, 0x8c, - 0xf2, 0xf9, 0x49, 0x0c, 0xaf, 0x27, 0xfd, 0x83, 0x92, 0x22, 0xe4, 0xc9, 0xb8, 0x9e, 0xbf, 0xf6, - 0xf3, 0x4f, 0x9c, 0xca, 0x7c, 0xf9, 0x89, 0x53, 0x99, 0x6f, 0x3d, 0x71, 0x2a, 0xf3, 0x8b, 0xdf, - 0x3e, 0x75, 0xd5, 0x97, 0xbf, 0x7d, 0xea, 0xaa, 0x3f, 0xff, 0xf6, 0xa9, 0xab, 0xfe, 0x59, 0xb6, - 0xbf, 0xbe, 0x5e, 0x20, 0x76, 0xae, 0xb7, 0xfd, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x81, 0x1a, - 0x77, 0x15, 0xf4, 0x0d, 0x01, 0x00, + 0x8e, 0x6e, 0xef, 0x94, 0xe8, 0xd4, 0x35, 0xf2, 0x19, 0xfa, 0xdf, 0xc1, 0x31, 0xfc, 0x3c, 0x56, + 0x4e, 0xaf, 0x63, 0x18, 0x63, 0xd3, 0x10, 0x22, 0xa1, 0x1e, 0x39, 0xd9, 0x00, 0x39, 0xe8, 0xcd, + 0x1e, 0xbf, 0xef, 0x64, 0xf8, 0x7d, 0xc3, 0xb8, 0x6a, 0xd3, 0xd7, 0xab, 0xbe, 0x2b, 0x0b, 0xc5, + 0x15, 0x43, 0xef, 0x62, 0xd3, 0x44, 0x6f, 0xca, 0x42, 0xa1, 0x26, 0x6b, 0x5d, 0xac, 0xa2, 0x9f, + 0x08, 0xdd, 0x3e, 0xa0, 0xef, 0x67, 0x78, 0x3f, 0xcf, 0x69, 0xbd, 0x15, 0xa7, 0xce, 0x90, 0x19, + 0x8f, 0x4f, 0xfb, 0x1c, 0x59, 0x55, 0xfa, 0x5c, 0xfa, 0xb3, 0x2c, 0x1c, 0x59, 0x52, 0xb4, 0xed, + 0x15, 0x03, 0x13, 0x17, 0x98, 0x4f, 0xf1, 0xd9, 0x43, 0x4d, 0xcf, 0x33, 0x01, 0xd3, 0x73, 0xee, + 0x3d, 0x6e, 0xa0, 0xca, 0x10, 0x79, 0xba, 0x1b, 0x8e, 0xa8, 0x7e, 0x21, 0xaa, 0xc0, 0x40, 0x43, + 0x0a, 0x8c, 0x40, 0x35, 0x52, 0xb0, 0x38, 0xa7, 0xed, 0x49, 0x38, 0x15, 0xe9, 0x33, 0xf6, 0xfb, + 0x02, 0x80, 0xe3, 0x61, 0x97, 0xec, 0x60, 0x1f, 0xcf, 0x44, 0x30, 0x96, 0xf5, 0x64, 0x9c, 0x1d, + 0xf6, 0x64, 0x7c, 0x17, 0xe4, 0xec, 0x2e, 0x51, 0x87, 0xc9, 0xbc, 0x5e, 0x8c, 0xc9, 0x3b, 0xf6, + 0x34, 0xdf, 0x53, 0x4c, 0x79, 0x5d, 0xc5, 0x75, 0xad, 0x6b, 0xec, 0xf9, 0x7e, 0x07, 0x4a, 0xd2, + 0xfe, 0x07, 0x7e, 0x10, 0xc1, 0x3c, 0x47, 0x10, 0x41, 0xd2, 0x14, 0x13, 0x44, 0x90, 0x89, 0x7c, + 0x13, 0xb9, 0x20, 0xfa, 0x9c, 0x09, 0x11, 0x0f, 0x11, 0x72, 0x5b, 0xb2, 0xe9, 0x32, 0x83, 0xfc, + 0x47, 0x6f, 0xe3, 0x9a, 0xdc, 0x43, 0xab, 0x4e, 0x1f, 0xf3, 0x6f, 0x66, 0xe1, 0xa8, 0x1b, 0x34, + 0x9e, 0xa0, 0x7e, 0x2b, 0x73, 0xb8, 0x41, 0x3a, 0x94, 0xf1, 0x3b, 0x64, 0xe7, 0xf5, 0x7d, 0xc4, + 0xc9, 0x7f, 0xf4, 0x10, 0xf7, 0x77, 0x49, 0xb0, 0xa5, 0x10, 0x2e, 0x46, 0xca, 0x55, 0xc0, 0xbd, + 0x57, 0xd4, 0xd7, 0x48, 0x44, 0x33, 0xf1, 0x38, 0x5a, 0x3d, 0xf0, 0xbd, 0x1d, 0xf4, 0x57, 0x45, + 0x80, 0xa6, 0xbc, 0xab, 0x6c, 0x3a, 0x6e, 0x92, 0xbe, 0x2a, 0xd8, 0x93, 0x97, 0x69, 0x39, 0xe1, + 0x0e, 0x4c, 0xc6, 0x5b, 0xe2, 0x9d, 0x50, 0xa4, 0x06, 0x71, 0xb4, 0x57, 0x4f, 0x63, 0x7a, 0xe5, + 0xd7, 0xe2, 0xc8, 0xf3, 0x83, 0x96, 0xe4, 0x96, 0xb7, 0x37, 0x20, 0x1b, 0x03, 0x55, 0xed, 0xd8, + 0xef, 0x52, 0x15, 0xae, 0x9b, 0xf6, 0xbd, 0x5e, 0xd2, 0x78, 0x44, 0x24, 0x31, 0xe4, 0x23, 0x33, + 0xef, 0xfa, 0xc8, 0x44, 0xbf, 0xc3, 0x1d, 0xbe, 0x31, 0x40, 0x4f, 0xa0, 0x47, 0x21, 0xb0, 0xde, + 0x06, 0x45, 0xc7, 0xce, 0xc5, 0xbd, 0xbc, 0xff, 0x13, 0x43, 0x03, 0xd5, 0x79, 0xbd, 0xa1, 0x6d, + 0xe8, 0x92, 0x5b, 0x92, 0x33, 0x8a, 0x23, 0x17, 0x1d, 0xe9, 0x8f, 0xa4, 0x2f, 0x0b, 0x70, 0xf2, + 0x1c, 0xb6, 0xfc, 0x7e, 0x5c, 0x52, 0xac, 0x2d, 0x7b, 0x3a, 0x37, 0xd1, 0xbf, 0xe4, 0xb3, 0xff, + 0x09, 0xe0, 0x9f, 0x8d, 0x87, 0x3f, 0xfa, 0xe3, 0x20, 0x6a, 0x6d, 0x16, 0xb5, 0x7b, 0xc2, 0x6a, + 0x19, 0x4d, 0x6d, 0x08, 0x80, 0x77, 0x41, 0xc1, 0x21, 0x94, 0xae, 0x7b, 0xa7, 0x43, 0xf1, 0xf3, + 0x6a, 0x92, 0xe8, 0x1b, 0xe8, 0xa3, 0x1e, 0x8e, 0x17, 0x19, 0x1c, 0xe7, 0x0f, 0x44, 0x59, 0xea, + 0x90, 0x9e, 0xbe, 0x95, 0x58, 0x17, 0x90, 0x01, 0x76, 0x2c, 0x38, 0x8a, 0xcb, 0x57, 0x89, 0x00, + 0x85, 0x65, 0x7d, 0x17, 0x77, 0xf4, 0x72, 0xc6, 0xfe, 0x6f, 0xd3, 0xd7, 0xd1, 0xcb, 0x59, 0xf4, + 0xef, 0x8e, 0x40, 0xf1, 0xbc, 0x62, 0x5a, 0xba, 0xb1, 0x87, 0xbe, 0x94, 0x83, 0x12, 0xd5, 0x5e, + 0x99, 0xe8, 0xdd, 0x19, 0x4f, 0x17, 0xb7, 0x4f, 0x09, 0x74, 0x1d, 0x1c, 0xe9, 0xdb, 0x6b, 0xbe, + 0x3e, 0x30, 0x7d, 0x13, 0xc2, 0x60, 0x96, 0x2d, 0x36, 0xf2, 0xc0, 0xda, 0xd2, 0x0d, 0xdf, 0x98, + 0xdb, 0x4d, 0xdb, 0x1f, 0x18, 0xce, 0xff, 0xa6, 0xbc, 0x83, 0x5d, 0xff, 0x8c, 0x7e, 0x0e, 0x09, + 0x62, 0xad, 0xec, 0x38, 0x0b, 0xa4, 0x20, 0x91, 0xff, 0xe2, 0x1c, 0x14, 0x37, 0x0d, 0x7d, 0xd0, + 0xa7, 0x9f, 0x43, 0x82, 0xe4, 0x26, 0x83, 0xee, 0x40, 0x4f, 0x42, 0xa1, 0x2f, 0x6f, 0xfa, 0x26, + 0x54, 0x34, 0x25, 0x5e, 0x0f, 0xb3, 0xaa, 0x6c, 0x5a, 0xb4, 0x37, 0xde, 0xb7, 0x1f, 0x9b, 0x39, + 0x7a, 0xda, 0x41, 0x1f, 0xe3, 0x56, 0x89, 0x50, 0x2e, 0xba, 0xfa, 0xbf, 0x30, 0xb9, 0xac, 0x42, + 0x89, 0x6a, 0x1a, 0xdd, 0x99, 0xe5, 0x86, 0xe8, 0x6a, 0xe8, 0x1f, 0xc9, 0x7b, 0x8d, 0xd3, 0x78, + 0x6b, 0x0c, 0x3d, 0xe9, 0x4f, 0x30, 0xff, 0xdd, 0xbd, 0x90, 0xfb, 0xc0, 0x78, 0x88, 0xae, 0x85, + 0x99, 0xdd, 0x21, 0x78, 0xfc, 0x8c, 0x88, 0xeb, 0xb8, 0x3f, 0x2b, 0xf0, 0x2e, 0xe5, 0x2e, 0x3b, + 0x22, 0x2e, 0xe4, 0xde, 0x05, 0xe0, 0x4c, 0x00, 0x76, 0x99, 0x7d, 0xdb, 0x65, 0xf2, 0xbd, 0x47, + 0xa7, 0x0d, 0x52, 0x8b, 0x14, 0x28, 0x2d, 0xde, 0xe7, 0xeb, 0x93, 0x9d, 0x73, 0x3f, 0x4e, 0x54, + 0x83, 0x6a, 0x67, 0xb7, 0x8f, 0x39, 0xb6, 0x8f, 0x7c, 0x06, 0xf4, 0x11, 0xfd, 0x4b, 0x1f, 0xea, + 0x2f, 0x64, 0x01, 0xda, 0xd8, 0x1d, 0x4c, 0x41, 0xd3, 0xa6, 0x89, 0x00, 0x47, 0x3f, 0xcc, 0xf0, + 0xc6, 0xe6, 0xf2, 0xba, 0xed, 0xb5, 0x1e, 0x66, 0x03, 0xc0, 0x15, 0x6d, 0x6b, 0x6c, 0x75, 0xe9, + 0xf3, 0xf2, 0x95, 0x02, 0xe4, 0xc8, 0xad, 0xb5, 0x7f, 0xf0, 0x2d, 0x1e, 0xef, 0xf6, 0x19, 0x1a, + 0xb8, 0xfe, 0x93, 0xe1, 0xbb, 0xfe, 0x83, 0x1e, 0xe1, 0xfe, 0xa6, 0x24, 0x97, 0xa7, 0x22, 0xad, + 0x6f, 0x7c, 0x3c, 0x05, 0x06, 0xcf, 0x78, 0x37, 0x74, 0xf8, 0xbe, 0x2d, 0xc3, 0xa9, 0x49, 0x1f, + 0x85, 0x3f, 0xa4, 0x41, 0xce, 0x3e, 0xeb, 0xdf, 0x1c, 0xb5, 0x18, 0xa9, 0xa6, 0x77, 0xb3, 0x32, + 0x61, 0x77, 0xb3, 0xb2, 0x13, 0x5d, 0x1f, 0x14, 0xf6, 0x79, 0x2b, 0x7e, 0x8c, 0xdb, 0xe1, 0x40, + 0x7b, 0x9c, 0x09, 0xab, 0xb3, 0x8c, 0x0b, 0xde, 0x32, 0x1e, 0x0f, 0xb3, 0x4f, 0x72, 0x7d, 0x1a, + 0xb6, 0x93, 0xb1, 0x70, 0x4d, 0xfc, 0x42, 0xd5, 0x9b, 0x4f, 0x30, 0x31, 0xec, 0x1e, 0xcb, 0x42, + 0x8e, 0x9c, 0xa7, 0x04, 0x74, 0xcd, 0xbf, 0xc5, 0x7d, 0xd5, 0x2d, 0x10, 0xfb, 0x8d, 0x9c, 0x33, + 0x8c, 0x66, 0xf7, 0x0b, 0xe0, 0x88, 0x1f, 0xe1, 0x2e, 0xfa, 0x33, 0x82, 0x68, 0x13, 0x82, 0xa5, + 0x39, 0x9d, 0x12, 0x45, 0x13, 0x92, 0xfe, 0x28, 0x79, 0x87, 0x3f, 0x3a, 0x16, 0x82, 0xdf, 0x85, + 0xe0, 0x77, 0x85, 0x32, 0x30, 0xa2, 0xdf, 0x81, 0xc2, 0xe8, 0x8f, 0x82, 0x18, 0xd4, 0x58, 0x0c, + 0x9e, 0x1d, 0xd6, 0xf5, 0x48, 0xa1, 0x67, 0x89, 0xc9, 0xc6, 0x21, 0xc6, 0x37, 0xeb, 0x5e, 0x64, + 0x30, 0x38, 0x1b, 0x8b, 0x90, 0x43, 0x16, 0xfc, 0xb7, 0x1f, 0x0b, 0xc4, 0x40, 0xfd, 0x4b, 0x1a, + 0x73, 0x73, 0x83, 0x71, 0x40, 0xc0, 0x06, 0x67, 0xcc, 0x8c, 0x08, 0xce, 0x38, 0xa9, 0x37, 0xbb, + 0xef, 0x07, 0xe1, 0x6c, 0xb0, 0x70, 0xde, 0x16, 0xc6, 0x45, 0x8e, 0x40, 0x9b, 0x13, 0x92, 0xf3, + 0xb8, 0x07, 0xe8, 0x12, 0x03, 0xe8, 0x1d, 0x13, 0x90, 0x12, 0x0f, 0x56, 0x25, 0x61, 0x58, 0xc5, + 0x39, 0x38, 0x21, 0xd5, 0xab, 0x0b, 0xad, 0xe6, 0xd2, 0x03, 0xc1, 0xa7, 0xe5, 0x1c, 0x7a, 0x9b, + 0x00, 0x05, 0x89, 0x98, 0x17, 0xa1, 0x9f, 0x8a, 0x0b, 0xf3, 0x90, 0xa3, 0xcc, 0xec, 0x7e, 0xf7, + 0xcb, 0x9f, 0xe1, 0xbe, 0xcd, 0x33, 0x8a, 0x8d, 0x0e, 0x5d, 0x21, 0x3b, 0xb4, 0xef, 0x70, 0xdd, + 0xe6, 0xe1, 0xae, 0xf6, 0x8a, 0x05, 0xe8, 0x11, 0x01, 0x0a, 0xd4, 0x1b, 0x6e, 0x2f, 0x2e, 0x40, + 0x41, 0x57, 0xe7, 0x59, 0x5e, 0x57, 0xe7, 0x07, 0xc3, 0x2c, 0x32, 0x9e, 0xc8, 0xe4, 0x98, 0x25, + 0xe0, 0x6d, 0x76, 0x8a, 0x98, 0x7d, 0x4d, 0xa0, 0xfb, 0x85, 0x41, 0x5c, 0xc4, 0x16, 0xe0, 0xa9, + 0x72, 0xbf, 0x8f, 0x35, 0xcf, 0xaf, 0xaa, 0xb9, 0x68, 0xe8, 0x3b, 0x2d, 0x6b, 0x0b, 0x1b, 0xee, + 0xbe, 0x20, 0x73, 0x53, 0x49, 0x8a, 0x2e, 0xc4, 0x3a, 0x6f, 0x88, 0x74, 0x6c, 0x39, 0x8a, 0xd7, + 0x11, 0x9b, 0x94, 0x09, 0x67, 0xd2, 0x2f, 0x70, 0x79, 0xb8, 0xe4, 0xa4, 0xe5, 0x90, 0x57, 0xc8, + 0xbf, 0xbd, 0x00, 0x05, 0x87, 0x52, 0x7b, 0x5b, 0x78, 0xa4, 0xbd, 0x25, 0x1b, 0x78, 0x7e, 0x8f, + 0x44, 0x7e, 0xbf, 0x81, 0x4b, 0x11, 0x8a, 0x5e, 0x17, 0x44, 0x47, 0x84, 0x9c, 0xaa, 0x68, 0xdb, + 0xee, 0x29, 0x84, 0xfd, 0xdf, 0xff, 0x84, 0xcd, 0x8e, 0xf8, 0x84, 0xf5, 0x54, 0x0a, 0x5e, 0xbb, + 0x07, 0xfa, 0x84, 0x1d, 0x5b, 0xdd, 0x54, 0x4e, 0x3c, 0x8f, 0x57, 0x7b, 0xbd, 0x4b, 0x8a, 0xb5, + 0xd5, 0x72, 0x79, 0x74, 0x1f, 0x9f, 0x4e, 0x79, 0x0e, 0x8a, 0x7d, 0x79, 0x4f, 0xd5, 0x65, 0xef, + 0x5e, 0x3d, 0x4d, 0xb2, 0x06, 0x92, 0x91, 0x8a, 0x7e, 0xca, 0x81, 0x21, 0x0a, 0x42, 0x98, 0xca, + 0xa7, 0xb3, 0xe7, 0xaa, 0x32, 0x7d, 0xc6, 0xfe, 0x95, 0xc0, 0xc6, 0x5e, 0xf9, 0x69, 0x5e, 0x77, + 0x05, 0x13, 0xad, 0x1b, 0xff, 0x97, 0x3b, 0x42, 0x3a, 0x65, 0xcf, 0x8f, 0x49, 0x64, 0x95, 0x58, + 0xe3, 0xe8, 0x30, 0x23, 0xaa, 0x7c, 0x66, 0x7f, 0x44, 0x95, 0x7f, 0xc5, 0x8b, 0xf8, 0xd8, 0xad, + 0xdc, 0x64, 0x51, 0x77, 0x3e, 0xc0, 0xed, 0x17, 0x6e, 0x88, 0x7f, 0x09, 0x7a, 0xbc, 0xe7, 0xf3, + 0xfe, 0xc6, 0xd3, 0x7e, 0xfa, 0x10, 0xbe, 0x76, 0x7f, 0x98, 0x94, 0x46, 0x62, 0x10, 0x4e, 0x8e, + 0x46, 0x82, 0x41, 0x50, 0x26, 0x42, 0xe3, 0x90, 0xdc, 0xca, 0xbf, 0x2a, 0x07, 0x57, 0xef, 0x0f, + 0x7b, 0xc2, 0x1f, 0x12, 0x79, 0xfc, 0xa0, 0x9a, 0x34, 0xe6, 0xc7, 0x13, 0x31, 0x37, 0x78, 0x95, + 0x2b, 0x2b, 0x64, 0xc9, 0xfb, 0x63, 0xec, 0x07, 0x2b, 0x87, 0x1f, 0xa4, 0xe4, 0xcf, 0x04, 0x38, + 0x31, 0x32, 0x3c, 0xc9, 0x95, 0x20, 0x0a, 0xfc, 0x11, 0x08, 0x47, 0xf2, 0x33, 0xc1, 0x89, 0x96, + 0x2f, 0x38, 0x1d, 0x3f, 0x15, 0xe9, 0x03, 0xfb, 0x89, 0xdc, 0x30, 0xb0, 0x74, 0xd2, 0xfd, 0x50, + 0x82, 0xc0, 0x06, 0x83, 0x85, 0x08, 0x43, 0xc1, 0x42, 0xce, 0xc3, 0xd3, 0xc8, 0x9d, 0x3e, 0x63, + 0xc7, 0x51, 0x4a, 0x54, 0x55, 0xf5, 0xa2, 0xac, 0x0e, 0xb0, 0xd9, 0xd0, 0x9c, 0xf0, 0x1a, 0xee, + 0xe5, 0xee, 0x71, 0xc5, 0xd0, 0xf7, 0x0e, 0x26, 0x06, 0x09, 0x06, 0x13, 0xf9, 0xce, 0xe4, 0x62, + 0x90, 0xc0, 0x3c, 0xbf, 0x35, 0xc1, 0xf7, 0xde, 0x73, 0xe1, 0x39, 0xed, 0xd6, 0x72, 0x9d, 0xdc, + 0xe9, 0x93, 0x16, 0xda, 0x6b, 0xe7, 0xab, 0xed, 0x35, 0xa9, 0xbe, 0x54, 0xed, 0x34, 0x5a, 0xcd, + 0xb5, 0x8b, 0xd5, 0xa5, 0xd5, 0xfa, 0xda, 0xa5, 0x46, 0xe7, 0xfc, 0x5a, 0xe7, 0x7c, 0xa3, 0xbd, + 0xd6, 0x5a, 0xb1, 0xb3, 0xcb, 0x02, 0x7a, 0x75, 0x68, 0xd0, 0x11, 0x6e, 0xd7, 0xec, 0x8f, 0x71, + 0xc7, 0xe6, 0x1d, 0x62, 0x57, 0x8a, 0x21, 0x45, 0xf8, 0x82, 0xf4, 0xc6, 0xa0, 0x67, 0x0a, 0xa7, + 0x6f, 0x39, 0x28, 0xb4, 0xb1, 0x6c, 0x74, 0xb7, 0xd0, 0xaf, 0x06, 0x7c, 0x77, 0x2e, 0x42, 0x71, + 0x43, 0x51, 0x89, 0xfb, 0xf9, 0x0c, 0xe9, 0xfe, 0x2d, 0x7c, 0xf1, 0xe7, 0x17, 0xc9, 0x4b, 0x92, + 0xfb, 0xb2, 0xf8, 0x42, 0xc8, 0x9b, 0xba, 0xe1, 0x99, 0x76, 0x71, 0x46, 0xb1, 0x6f, 0xeb, 0x86, + 0x25, 0x39, 0x2f, 0x32, 0xf6, 0x6b, 0xc2, 0x90, 0xfd, 0x5a, 0x88, 0xa5, 0x1a, 0x1b, 0xcd, 0xd9, + 0xb3, 0x6b, 0xbb, 0x19, 0xca, 0xbe, 0xc2, 0xc8, 0x21, 0x74, 0xae, 0x40, 0x0e, 0x15, 0xf7, 0xe5, + 0x8b, 0x22, 0xe4, 0xb6, 0xf1, 0x9e, 0x39, 0x57, 0x24, 0xcf, 0xc9, 0x7f, 0xf4, 0x30, 0xb7, 0x97, + 0x1b, 0x57, 0x31, 0x40, 0xf8, 0x1a, 0x22, 0x62, 0xb7, 0x42, 0xd1, 0xa0, 0xd3, 0x94, 0x2b, 0x60, + 0x61, 0x07, 0x98, 0xb4, 0x1c, 0x7a, 0x27, 0x97, 0xf3, 0x9b, 0xa8, 0xc6, 0xa7, 0x10, 0xe1, 0xa4, + 0x04, 0xf9, 0x73, 0x86, 0xdc, 0xdf, 0x42, 0xbf, 0x98, 0x49, 0x5e, 0x9c, 0x3c, 0x60, 0xb3, 0xe3, + 0x80, 0x15, 0x46, 0x03, 0x8b, 0x5e, 0x93, 0x85, 0x5c, 0xd3, 0xee, 0xd4, 0xb0, 0xa5, 0x95, 0x48, + 0xed, 0x92, 0xa9, 0xf9, 0x2a, 0xb1, 0x37, 0x76, 0x7d, 0x78, 0x08, 0x01, 0x1f, 0x1e, 0x27, 0xa1, + 0xa0, 0xca, 0x7b, 0xfa, 0xc0, 0x93, 0x39, 0x27, 0x35, 0xcc, 0xce, 0xfc, 0x3e, 0x76, 0xda, 0xf3, + 0x99, 0xd2, 0xd5, 0xb5, 0xc6, 0x8e, 0xbc, 0x89, 0xe9, 0x55, 0x13, 0x3f, 0xc3, 0x7d, 0x5a, 0xdf, + 0xd1, 0x5f, 0xa2, 0xd0, 0x2b, 0x25, 0x7e, 0x86, 0x4d, 0x49, 0x4f, 0xd7, 0x30, 0xb9, 0x42, 0x52, + 0x92, 0xc8, 0x7f, 0xf1, 0x46, 0x38, 0xe6, 0x4e, 0x3d, 0x8b, 0xba, 0xb1, 0x23, 0x5b, 0x73, 0x33, + 0xce, 0x95, 0x2f, 0x36, 0x57, 0x9c, 0x83, 0xa2, 0xa9, 0x29, 0xfd, 0x3e, 0xb6, 0xe6, 0xc0, 0x51, + 0xf4, 0xd0, 0x24, 0x7a, 0x4b, 0x16, 0x72, 0xf5, 0xde, 0x26, 0x66, 0x4e, 0xd9, 0x33, 0x81, 0x53, + 0xf6, 0x93, 0x50, 0x70, 0x3c, 0x83, 0x52, 0xb6, 0xd0, 0xd4, 0x48, 0xc6, 0x3c, 0x9f, 0x32, 0x30, + 0x37, 0xe2, 0x72, 0x2f, 0x95, 0x49, 0x22, 0x18, 0x15, 0xbb, 0xc5, 0xa0, 0x55, 0x77, 0xba, 0x9c, + 0x3b, 0x09, 0x85, 0x2d, 0xa5, 0xd7, 0xc3, 0x1a, 0xe5, 0x1d, 0x4d, 0x9d, 0x3e, 0x05, 0x39, 0x9b, + 0x06, 0x5b, 0xb8, 0x97, 0x14, 0x6d, 0xbb, 0x7c, 0x95, 0x78, 0xd4, 0x3f, 0xbe, 0x2b, 0x67, 0x58, + 0x3d, 0x70, 0xa4, 0xbd, 0x13, 0xd3, 0xb9, 0xd1, 0x83, 0xfd, 0xb9, 0x90, 0xd7, 0xf4, 0x9e, 0x77, + 0x34, 0x7d, 0x2a, 0xfc, 0x7d, 0x5b, 0x36, 0x25, 0xa7, 0xb0, 0xfd, 0x16, 0xee, 0x6d, 0x62, 0x93, + 0x08, 0x73, 0xe4, 0x5b, 0x36, 0x4b, 0x25, 0xa7, 0x30, 0xa7, 0x11, 0x53, 0x04, 0xd1, 0xe9, 0x4f, + 0x12, 0xff, 0xa7, 0x00, 0xc7, 0x9d, 0xf9, 0xa9, 0x3d, 0x58, 0xb7, 0xab, 0x5a, 0xc7, 0xe8, 0x0d, + 0x02, 0x73, 0x5b, 0xc8, 0x1c, 0xac, 0x7b, 0xab, 0xbe, 0x93, 0x08, 0x4e, 0x22, 0xd9, 0x44, 0xd6, + 0x24, 0x61, 0xd2, 0x35, 0x89, 0x59, 0x5f, 0x84, 0xfd, 0x76, 0xd3, 0x8e, 0xe1, 0xa4, 0xbb, 0x1a, + 0x8d, 0x58, 0x4b, 0xec, 0x31, 0x29, 0x6f, 0x58, 0xd8, 0xf0, 0x6e, 0x85, 0xb9, 0x49, 0xe2, 0x5b, + 0x16, 0x6f, 0xe8, 0x06, 0x6e, 0xf4, 0xc8, 0x78, 0x9e, 0x91, 0xbc, 0x74, 0x60, 0x98, 0x02, 0x63, + 0x0c, 0x73, 0x13, 0x1c, 0x57, 0x36, 0x35, 0xdd, 0xc0, 0x9e, 0x1b, 0xb9, 0xb9, 0xa3, 0x8e, 0xaf, + 0xa0, 0xa1, 0x6c, 0xf1, 0x16, 0xb8, 0x5a, 0xd3, 0x17, 0x70, 0x9f, 0xf2, 0xdd, 0x41, 0x75, 0xd6, + 0xb9, 0x41, 0xb1, 0xef, 0x01, 0xfa, 0xb2, 0x10, 0x53, 0x11, 0x3c, 0x04, 0x6a, 0x62, 0x4b, 0x9f, + 0xf8, 0x02, 0x38, 0xda, 0xc3, 0x7d, 0xac, 0xf5, 0xb0, 0xd6, 0x55, 0xbc, 0x11, 0x11, 0xfa, 0x1e, + 0x53, 0xd8, 0x17, 0xa7, 0x5c, 0x50, 0x9c, 0xce, 0x05, 0x42, 0xec, 0xe4, 0x87, 0x4c, 0x4f, 0x58, + 0x0b, 0xc4, 0x00, 0x4b, 0x2a, 0x34, 0xd4, 0x8e, 0x19, 0x88, 0xb5, 0x13, 0x4b, 0xaf, 0x1d, 0xcd, + 0xa1, 0x29, 0xd8, 0xbc, 0xe5, 0xe0, 0x68, 0xa3, 0x67, 0xfa, 0xe3, 0x4e, 0x1f, 0x37, 0xec, 0xf6, + 0x45, 0x44, 0xf0, 0x04, 0x5a, 0x08, 0x08, 0xf4, 0x08, 0x11, 0x3c, 0x32, 0x52, 0x04, 0xd1, 0xcb, + 0x83, 0x42, 0x55, 0x67, 0x85, 0xea, 0xcc, 0x28, 0x96, 0x05, 0xc9, 0xbd, 0x92, 0x25, 0x0a, 0xbd, + 0xc7, 0x13, 0x84, 0xf3, 0x8c, 0x20, 0x3c, 0x37, 0x66, 0xaf, 0xd2, 0x97, 0x82, 0xff, 0x98, 0x85, + 0xab, 0x1d, 0x49, 0x5c, 0xd5, 0x4c, 0x4f, 0x14, 0x9e, 0xce, 0x9a, 0xdd, 0xd9, 0x7d, 0x32, 0x3d, + 0xb3, 0x3b, 0x92, 0x42, 0xaf, 0x8a, 0xab, 0x3c, 0xdb, 0xd7, 0x4a, 0xc8, 0xe1, 0x50, 0x2c, 0xb5, + 0xd6, 0xb8, 0x4a, 0xd3, 0x67, 0xe0, 0x2f, 0x39, 0x71, 0x16, 0x97, 0xc8, 0xde, 0x0f, 0xc9, 0xbc, + 0x1a, 0x8f, 0x3b, 0xbc, 0xcd, 0xa3, 0x73, 0xfd, 0xed, 0xba, 0x50, 0xf3, 0xa8, 0x8a, 0x53, 0xb5, + 0xbb, 0xbd, 0x44, 0xef, 0xe2, 0xb6, 0x8e, 0xf7, 0x78, 0x44, 0xa9, 0x4b, 0x44, 0x31, 0xc1, 0x67, + 0x08, 0x3f, 0xa6, 0xe9, 0xf4, 0x61, 0xf9, 0xb7, 0x02, 0xcc, 0x12, 0xd7, 0xb3, 0x8b, 0xf2, 0xae, + 0x6e, 0x28, 0x16, 0x46, 0xe7, 0x78, 0xa1, 0x39, 0x05, 0xa0, 0x78, 0xaf, 0x51, 0x53, 0x81, 0x40, + 0x4e, 0x8c, 0x30, 0x30, 0x3e, 0x17, 0x7c, 0x3a, 0xa6, 0x18, 0x06, 0x86, 0xa3, 0xf9, 0x29, 0x02, + 0x51, 0x75, 0x2e, 0xf4, 0xf7, 0x62, 0x02, 0xe1, 0xbe, 0xe6, 0x03, 0xe1, 0x55, 0x34, 0x19, 0x10, + 0xee, 0xeb, 0x87, 0x04, 0x44, 0x48, 0xf3, 0xe9, 0x03, 0xf1, 0x48, 0x01, 0xca, 0x8b, 0x58, 0xb6, + 0x06, 0x06, 0xf6, 0x4c, 0x5e, 0xd0, 0xcf, 0x51, 0xe3, 0xc4, 0x3a, 0x2f, 0x26, 0xd7, 0x0e, 0xeb, + 0xc3, 0x66, 0x82, 0x6a, 0xaf, 0xd8, 0x6a, 0xf4, 0x61, 0x82, 0x2a, 0x09, 0x1d, 0xaa, 0xc4, 0x53, + 0xa3, 0x73, 0x50, 0x91, 0x3e, 0x3e, 0x6f, 0xf0, 0x6d, 0x08, 0x13, 0x42, 0xe3, 0xd3, 0x41, 0x34, + 0x56, 0x58, 0x34, 0xee, 0xe2, 0xe2, 0x43, 0x94, 0xed, 0x60, 0x4c, 0x40, 0x7c, 0x47, 0x29, 0x6d, + 0x06, 0x90, 0xfb, 0x26, 0x27, 0x64, 0x0a, 0x31, 0x66, 0xb2, 0x90, 0xef, 0xe8, 0x6d, 0xcc, 0x78, + 0x0e, 0x8e, 0x86, 0xc4, 0xff, 0x32, 0xcb, 0x32, 0x61, 0x92, 0x5f, 0x19, 0x57, 0x8b, 0x40, 0xda, + 0x0d, 0xf7, 0x5a, 0x61, 0x06, 0x02, 0xd8, 0x38, 0x89, 0x78, 0xdf, 0xfb, 0xa3, 0xaa, 0x4f, 0x9f, + 0xa1, 0x1f, 0x29, 0xb9, 0x57, 0x02, 0x88, 0x65, 0xdf, 0xd7, 0xb2, 0x50, 0xa0, 0x87, 0x45, 0xac, + 0xba, 0xdf, 0xb5, 0x4d, 0x72, 0x77, 0x9d, 0x7e, 0x06, 0x7a, 0x77, 0x4c, 0x73, 0x75, 0x62, 0xfc, + 0x96, 0xe0, 0xc9, 0xcc, 0xbb, 0x63, 0x58, 0xa8, 0x87, 0xb7, 0x3d, 0x85, 0xfb, 0x61, 0x79, 0xe7, + 0x36, 0xcd, 0x7f, 0xcd, 0x02, 0x84, 0xae, 0xbe, 0xe1, 0x7c, 0x1e, 0xbb, 0xfa, 0xbe, 0x3a, 0x88, + 0xc3, 0x05, 0x16, 0x87, 0xdb, 0xc3, 0x78, 0x61, 0xcb, 0xdc, 0xb8, 0x25, 0x18, 0x7d, 0xc0, 0xe3, + 0x70, 0x93, 0xe1, 0xf0, 0x5d, 0x13, 0xd5, 0x9a, 0x3e, 0xa7, 0x1d, 0x0e, 0x87, 0x6c, 0x34, 0xc7, + 0x71, 0x38, 0x62, 0xa3, 0x79, 0x00, 0x0e, 0x47, 0xef, 0x36, 0x27, 0xe5, 0xf0, 0xa1, 0x6d, 0x22, + 0x1f, 0xcf, 0x41, 0xa1, 0xfe, 0x60, 0x5f, 0x37, 0x2c, 0xf4, 0xd9, 0x0c, 0xe3, 0x7c, 0xa2, 0xef, + 0xfb, 0xc8, 0x27, 0xff, 0xed, 0xf9, 0xb7, 0xa7, 0x77, 0xfd, 0x2b, 0xd2, 0x34, 0x25, 0x9e, 0x85, + 0xc2, 0x86, 0xa3, 0x1b, 0x77, 0x3e, 0xb8, 0x10, 0xd3, 0x55, 0xa7, 0xf2, 0x8a, 0xa3, 0x27, 0x97, + 0x68, 0x49, 0xb1, 0x0c, 0xc2, 0xcb, 0x94, 0x3e, 0x3d, 0x3c, 0xb6, 0xff, 0x92, 0xf0, 0x1b, 0xd4, + 0x83, 0x1b, 0x36, 0x2d, 0xec, 0xb8, 0x96, 0x2a, 0x49, 0x6c, 0xa6, 0x78, 0x1a, 0x8e, 0xd2, 0x8c, + 0x45, 0x45, 0xc5, 0x4e, 0xb4, 0xb8, 0x92, 0xc4, 0xe4, 0xa1, 0x4f, 0x05, 0xc1, 0xbd, 0x83, 0x05, + 0xf7, 0xf4, 0x28, 0xda, 0x42, 0x1d, 0x8a, 0x0c, 0xfb, 0xda, 0x20, 0x6a, 0xfe, 0x41, 0xb7, 0x8b, + 0x71, 0x8f, 0x9e, 0x4c, 0xb8, 0xc9, 0x98, 0x56, 0x46, 0x0f, 0x79, 0x52, 0xf2, 0x02, 0x46, 0x4a, + 0x9e, 0x39, 0x9e, 0xbc, 0xf4, 0xef, 0xdd, 0xaf, 0x40, 0x81, 0x9e, 0x6a, 0x1c, 0x85, 0xd2, 0xb2, + 0x6c, 0x6c, 0xf7, 0xf4, 0xcb, 0x9a, 0xa3, 0xbb, 0x5f, 0xa1, 0x1a, 0x9b, 0x72, 0xc6, 0xae, 0xf1, + 0xfe, 0x76, 0xab, 0x59, 0xce, 0x8a, 0x45, 0x10, 0x16, 0x5a, 0x9d, 0xb2, 0x60, 0xff, 0x69, 0x5f, + 0x3c, 0x57, 0xce, 0x89, 0xc7, 0x00, 0xce, 0x49, 0xd5, 0x95, 0xf3, 0x6b, 0xa4, 0x44, 0x1e, 0xbd, + 0x46, 0x80, 0xe3, 0x4e, 0x67, 0x7c, 0x15, 0xd5, 0x7d, 0xd1, 0xc2, 0x36, 0x3e, 0x24, 0xcd, 0x47, + 0xb9, 0x2f, 0xb8, 0x0d, 0x35, 0x1d, 0x03, 0xef, 0x78, 0xa8, 0xf2, 0xdd, 0x72, 0x8b, 0xa6, 0x66, + 0x0a, 0x17, 0xd9, 0xb3, 0x2e, 0x18, 0xae, 0x0b, 0x35, 0x73, 0x28, 0xe0, 0xd0, 0x30, 0x18, 0xb1, + 0x59, 0xed, 0x55, 0x7c, 0x45, 0xb0, 0x3a, 0x8c, 0x9a, 0xa9, 0x5c, 0x7e, 0x2e, 0x3b, 0x34, 0x90, + 0x98, 0x03, 0xa6, 0xa5, 0x1b, 0x38, 0xe8, 0x0a, 0x3c, 0xc6, 0x2c, 0x8b, 0x1e, 0xe5, 0x56, 0x4e, + 0x0d, 0xb7, 0x98, 0x1a, 0x08, 0x7c, 0x0a, 0xab, 0x31, 0xe4, 0xa4, 0x8f, 0xc2, 0xa3, 0x59, 0x38, + 0xba, 0x2c, 0x6f, 0x7b, 0x1e, 0x03, 0xf9, 0xed, 0x5f, 0x18, 0xf7, 0x54, 0x91, 0x5f, 0x16, 0xc1, + 0xfa, 0x23, 0xef, 0x2b, 0x67, 0x3d, 0xe7, 0x71, 0x7c, 0xdf, 0x14, 0x11, 0x15, 0xa7, 0xcf, 0xb9, + 0x6f, 0x64, 0x61, 0x2e, 0x48, 0xc0, 0xfc, 0x5e, 0xe0, 0xd2, 0x31, 0xeb, 0x14, 0x7c, 0xe8, 0x8a, + 0xec, 0x0c, 0x73, 0xf5, 0xf4, 0x97, 0xb9, 0x35, 0xda, 0x61, 0xad, 0x71, 0xf2, 0x94, 0x4f, 0xc3, + 0xcd, 0xd9, 0xc8, 0x14, 0xec, 0xfb, 0xb2, 0x30, 0x5b, 0x53, 0x75, 0x6d, 0x02, 0xd1, 0xfc, 0xa7, + 0x0c, 0xaf, 0xa1, 0x0c, 0xd3, 0x00, 0x27, 0x1f, 0xf9, 0xac, 0x60, 0xa2, 0x6a, 0x9e, 0xc2, 0x75, + 0x82, 0x2c, 0x1c, 0x77, 0xb0, 0x5b, 0x18, 0xf4, 0x55, 0xa5, 0x1b, 0x8b, 0x7d, 0xaf, 0x8c, 0x79, + 0x3b, 0xde, 0x6b, 0x82, 0x93, 0x81, 0x71, 0x2e, 0xbc, 0x87, 0xd5, 0x3d, 0x85, 0x60, 0xee, 0x39, + 0x38, 0xb6, 0xaa, 0x99, 0x7d, 0x55, 0x36, 0xb7, 0xa8, 0x81, 0xda, 0xed, 0xcc, 0x51, 0xe5, 0x4b, + 0x07, 0xd8, 0xd8, 0x73, 0x8f, 0x2a, 0x49, 0x62, 0xb4, 0x79, 0x10, 0x7a, 0x54, 0xe0, 0xf5, 0x84, + 0xc9, 0xb6, 0x17, 0xc2, 0xce, 0xf3, 0x50, 0xea, 0x2b, 0x5d, 0x6b, 0x60, 0xe0, 0xfd, 0x76, 0x08, + 0x51, 0x95, 0xac, 0x38, 0x2f, 0x49, 0xde, 0xdb, 0x48, 0x86, 0x22, 0xcd, 0xdc, 0x67, 0x8d, 0x44, + 0xbd, 0x2a, 0x66, 0x7d, 0xaf, 0x8a, 0x27, 0xa1, 0x20, 0x1b, 0x96, 0x62, 0xba, 0x56, 0x70, 0x34, + 0x65, 0xcb, 0x92, 0xf3, 0x6f, 0xd5, 0x50, 0xe9, 0x71, 0xa4, 0x9f, 0x11, 0x70, 0x25, 0x11, 0xe5, + 0xb6, 0x33, 0xb2, 0xdf, 0xf1, 0xa0, 0xbe, 0x30, 0x81, 0x0d, 0xe9, 0x35, 0xf0, 0x24, 0x89, 0x44, + 0xb8, 0x68, 0x2c, 0x37, 0x3a, 0x6b, 0xf5, 0x17, 0xd5, 0xea, 0xf5, 0x85, 0xfa, 0x42, 0xb9, 0x87, + 0xbe, 0x95, 0x85, 0xb2, 0x4b, 0x9b, 0xeb, 0xb9, 0x6f, 0x68, 0x1c, 0x51, 0x66, 0xfa, 0xe3, 0xc8, + 0xcb, 0x60, 0xed, 0xf5, 0x22, 0x77, 0x25, 0xc3, 0x6d, 0xc4, 0x70, 0xe3, 0xf8, 0x29, 0xae, 0x7d, + 0xc6, 0x98, 0x06, 0x0e, 0x91, 0xc5, 0x5f, 0xcc, 0xc2, 0x6c, 0xb5, 0xdf, 0x57, 0xf7, 0xbc, 0x69, + 0x3e, 0xce, 0x41, 0x4d, 0xc0, 0x9f, 0x4a, 0x76, 0x9f, 0x3f, 0x95, 0xef, 0x71, 0x2f, 0x03, 0x0c, + 0x01, 0x21, 0xca, 0x0b, 0xbe, 0x69, 0x3f, 0xaa, 0xa6, 0xf4, 0xe7, 0xac, 0xd7, 0x3f, 0x09, 0xf2, + 0x24, 0x4c, 0x19, 0x7a, 0xaf, 0x00, 0x45, 0x55, 0xdf, 0x6c, 0x68, 0x1b, 0xfa, 0x28, 0x4b, 0xc3, + 0x2d, 0xec, 0xdd, 0xba, 0x24, 0xff, 0xc5, 0x1b, 0xe1, 0x98, 0xfd, 0xeb, 0xca, 0x07, 0x75, 0xcb, + 0x5e, 0x92, 0x86, 0x72, 0xc5, 0xd3, 0x70, 0xd4, 0xd2, 0x2d, 0x59, 0x0d, 0x5a, 0xb8, 0xe7, 0x25, + 0x26, 0xcf, 0x46, 0x8d, 0xa4, 0xdb, 0xca, 0xcb, 0x30, 0xb5, 0x80, 0xf5, 0x33, 0xc4, 0xeb, 0x61, + 0x76, 0x43, 0x31, 0x4c, 0xcb, 0x29, 0xdd, 0x71, 0xd4, 0x14, 0x79, 0x89, 0xcd, 0x74, 0xdc, 0xc9, + 0x7b, 0x19, 0x17, 0xb1, 0x41, 0x0c, 0xeb, 0x88, 0x3b, 0xf9, 0x60, 0xae, 0x4d, 0x8f, 0x2a, 0x07, + 0x2a, 0x2b, 0x39, 0xf4, 0x04, 0xf3, 0x5c, 0xa7, 0x70, 0x7e, 0x55, 0x8e, 0x99, 0x22, 0x9b, 0x69, + 0xb7, 0x68, 0x67, 0xac, 0x0c, 0x54, 0xb5, 0x8d, 0xbb, 0xd5, 0x4d, 0x9d, 0x18, 0x2b, 0xe6, 0xa5, + 0xa1, 0x5c, 0x11, 0x41, 0x69, 0xd0, 0x6f, 0x5b, 0xb2, 0x35, 0x30, 0xa9, 0x85, 0x89, 0x97, 0xb6, + 0x25, 0xb2, 0xa7, 0x5f, 0xd6, 0xe8, 0x53, 0xc7, 0x04, 0x2a, 0x90, 0x63, 0xaf, 0x0f, 0x8e, 0x10, + 0xce, 0x3a, 0xab, 0x86, 0x23, 0x59, 0x7f, 0x22, 0x00, 0x58, 0x5b, 0x06, 0x96, 0x7b, 0x23, 0xe1, + 0x7a, 0x1e, 0x9c, 0x54, 0xf5, 0x4d, 0xf3, 0x92, 0x62, 0x6d, 0xf9, 0x40, 0x9c, 0x77, 0x01, 0xcc, + 0x4b, 0x21, 0x4f, 0xc5, 0x17, 0xc2, 0x53, 0xdc, 0x27, 0x97, 0xb6, 0x74, 0x15, 0x77, 0x0c, 0x8c, + 0x87, 0xf0, 0xcd, 0x4b, 0x51, 0x45, 0xc4, 0x0a, 0xe4, 0xec, 0xc7, 0x73, 0x39, 0xb2, 0xca, 0xb0, + 0xaa, 0x2b, 0x22, 0x66, 0x15, 0x2a, 0x62, 0x12, 0x29, 0x27, 0xde, 0x01, 0xd7, 0xe8, 0x97, 0xb5, + 0x25, 0x7d, 0xf3, 0xbc, 0x6c, 0xd6, 0xe4, 0x0d, 0x2c, 0x61, 0x67, 0xf1, 0xd6, 0x0d, 0xaa, 0xb0, + 0x0a, 0x7b, 0x2c, 0x56, 0x40, 0xec, 0xca, 0x1b, 0x78, 0x89, 0x05, 0xc0, 0x91, 0x8c, 0x11, 0x4f, + 0x6c, 0xd8, 0xed, 0xdc, 0x55, 0x17, 0x08, 0xc7, 0xea, 0x92, 0xc9, 0xb3, 0x01, 0xb5, 0xd3, 0x0b, + 0x3e, 0x20, 0x8e, 0xa5, 0xdb, 0x50, 0xee, 0x3e, 0x91, 0x9e, 0x19, 0x27, 0xd2, 0x30, 0x2c, 0xd2, + 0x1e, 0xac, 0x47, 0x82, 0xb0, 0x7e, 0x35, 0x0f, 0xb9, 0xf6, 0x9e, 0xd6, 0xb5, 0xf7, 0x3b, 0xde, + 0x8c, 0x76, 0x16, 0x4e, 0x50, 0x03, 0xa0, 0x8e, 0x21, 0xef, 0x62, 0xc3, 0xc4, 0x4b, 0x64, 0xc3, + 0xe0, 0xb8, 0x25, 0x1f, 0xf9, 0xcc, 0x96, 0x5f, 0x73, 0x5b, 0xe9, 0xd7, 0x77, 0xfa, 0xd6, 0xde, + 0x92, 0x8d, 0x07, 0x0d, 0xbe, 0xcb, 0x64, 0x8a, 0xf7, 0x02, 0xb2, 0x8c, 0xbd, 0x8e, 0xee, 0xe2, + 0x27, 0xe1, 0x1d, 0xdd, 0xc2, 0x6e, 0xa7, 0x68, 0x60, 0xc2, 0xf0, 0x12, 0xe8, 0x37, 0xb8, 0xfd, + 0xef, 0x3b, 0xd0, 0xdb, 0x5d, 0x0b, 0x59, 0xa7, 0x9e, 0x0f, 0x45, 0x47, 0x9e, 0xdd, 0x0d, 0xca, + 0x53, 0x47, 0xbc, 0xef, 0x4b, 0xbc, 0xe4, 0x96, 0x66, 0x9c, 0xd5, 0x0b, 0x43, 0xce, 0xea, 0x5d, + 0x98, 0x3a, 0xb4, 0xe6, 0xe0, 0xcc, 0x43, 0xf3, 0x08, 0x0f, 0x9c, 0xbf, 0xb6, 0x48, 0xeb, 0x03, + 0xcb, 0x16, 0xb1, 0x86, 0xd6, 0x22, 0x52, 0x47, 0xa7, 0xa2, 0x88, 0x12, 0xe2, 0x3c, 0x5c, 0xcb, + 0x3e, 0x3d, 0xcf, 0xce, 0x89, 0x8e, 0x40, 0x46, 0x96, 0xd9, 0x27, 0x4e, 0xc5, 0x71, 0xe2, 0x54, + 0x1a, 0x12, 0x27, 0x4e, 0xcf, 0xcc, 0xa1, 0x28, 0xa4, 0xbf, 0xcc, 0x7c, 0x5c, 0x80, 0x82, 0xc3, + 0x72, 0xf4, 0xda, 0x0c, 0x73, 0xd9, 0x9f, 0x82, 0xea, 0x5d, 0xf6, 0x77, 0xd3, 0x53, 0x92, 0xe1, + 0x77, 0xf0, 0xbb, 0x7b, 0x26, 0xdc, 0x73, 0x3a, 0x11, 0x6a, 0xd3, 0x97, 0x53, 0xb4, 0x0d, 0x9d, + 0x1e, 0xcf, 0x8d, 0x11, 0x61, 0x52, 0x94, 0x53, 0x6d, 0x11, 0xd1, 0xf6, 0x54, 0xa2, 0x80, 0xe7, + 0xec, 0x69, 0x1e, 0xbd, 0x98, 0x09, 0x29, 0xb3, 0x4e, 0xc3, 0x5b, 0xd0, 0x88, 0x59, 0x34, 0x39, + 0x52, 0x0f, 0x76, 0x1a, 0x8e, 0x0e, 0x34, 0x59, 0xd3, 0xb5, 0xbd, 0x1d, 0xe5, 0x65, 0xde, 0x46, + 0x81, 0xc9, 0x63, 0xcd, 0xf4, 0x38, 0x26, 0x13, 0x9b, 0xa2, 0xf0, 0x68, 0xcc, 0x1b, 0x8a, 0x8a, + 0x89, 0xb9, 0xbf, 0xeb, 0x3f, 0x9a, 0xa6, 0x63, 0x8d, 0x94, 0x11, 0x4d, 0xa4, 0xcf, 0xed, 0xbf, + 0xcf, 0xc0, 0x89, 0x73, 0x58, 0xc3, 0x86, 0xd2, 0x75, 0x3a, 0xc5, 0xe5, 0x9b, 0x71, 0xd4, 0x1b, + 0xec, 0x66, 0x94, 0xcf, 0xab, 0x62, 0x78, 0x3d, 0xe9, 0x1f, 0x94, 0x14, 0x21, 0x4f, 0xc6, 0xf5, + 0xfc, 0xb5, 0x9f, 0x7f, 0xfc, 0x54, 0xe6, 0xcb, 0x8f, 0x9f, 0xca, 0x7c, 0xeb, 0xf1, 0x53, 0x99, + 0x5f, 0xf8, 0xf6, 0xa9, 0xab, 0xbe, 0xfc, 0xed, 0x53, 0x57, 0xfd, 0xf9, 0xb7, 0x4f, 0x5d, 0xf5, + 0xcf, 0xb2, 0xfd, 0xf5, 0xf5, 0x02, 0xb1, 0x73, 0xbd, 0xed, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, + 0xa0, 0xb2, 0x06, 0xf1, 0x22, 0x0e, 0x01, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -59356,6 +59366,16 @@ func (m *RpcObjectSearchSubscribeRequest) MarshalToSizedBuffer(dAtA []byte) (int _ = i var l int _ = l + if m.NoDepSubscription { + i-- + if m.NoDepSubscription { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x68 + } if len(m.IgnoreWorkspace) > 0 { i -= len(m.IgnoreWorkspace) copy(dAtA[i:], m.IgnoreWorkspace) @@ -72173,6 +72193,9 @@ func (m *RpcObjectSearchSubscribeRequest) Size() (n int) { if l > 0 { n += 1 + l + sovCommands(uint64(l)) } + if m.NoDepSubscription { + n += 2 + } return n } @@ -129395,6 +129418,26 @@ func (m *RpcObjectSearchSubscribeRequest) Unmarshal(dAtA []byte) error { } m.IgnoreWorkspace = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NoDepSubscription", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NoDepSubscription = bool(v != 0) default: iNdEx = preIndex skippy, err := skipCommands(dAtA[iNdEx:]) diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index 27d2eb947..8b912dab4 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -3453,6 +3453,8 @@ message Rpc { repeated string source = 10; string ignoreWorkspace = 12; + // disable dependent subscription + bool noDepSubscription = 13; } message Response { From 5bb64382aa23d48001f8dae431c8f4c486d1d410 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Sat, 5 Feb 2022 13:47:56 +0300 Subject: [PATCH 18/49] subscription batcher --- core/subscription/service.go | 38 ++++++++++++++++++++++++++++++++---- core/subscription/simple.go | 4 ++++ core/subscription/sorted.go | 4 ++++ 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/core/subscription/service.go b/core/subscription/service.go index 0a076a639..3721c9385 100644 --- a/core/subscription/service.go +++ b/core/subscription/service.go @@ -27,6 +27,8 @@ const CName = "subscription" var log = logging.Logger("anytype-mw-subscription") +var batchTime = 50 * time.Millisecond + func New() Service { return new(service) } @@ -46,6 +48,7 @@ type subscription interface { counters() (prev, next int) onChange(ctx *opCtx) getActiveRecords() (res []*types.Struct) + hasDep() bool close() } @@ -238,36 +241,63 @@ func (s *service) UnsubscribeAll() (err error) { func (s *service) recordsHandler() { var entries []*entry + nilIfExists := func(id string) { + for i, e := range entries { + if e != nil && e.id == id { + entries[i] = nil + return + } + } + } for { records := s.recBatch.Wait() if len(records) == 0 { return } for _, rec := range records { + id := pbtypes.GetString(rec.(database.Record).Details, "id") + // nil previous version + nilIfExists(id) entries = append(entries, &entry{ - id: pbtypes.GetString(rec.(database.Record).Details, "id"), + id: id, data: rec.(database.Record).Details, }) } - s.onChange(entries) + // filter nil entries + var filtered = entries[:0] + for _, e := range entries { + if e != nil { + filtered = append(filtered, e) + } + } + if s.onChange(filtered) < batchTime { + time.Sleep(batchTime) + } entries = entries[:0] } } -func (s *service) onChange(entries []*entry) { +func (s *service) onChange(entries []*entry) time.Duration { s.m.Lock() defer s.m.Unlock() + var subCount, depCount int st := time.Now() s.ctxBuf.reset() s.ctxBuf.entries = entries for _, sub := range s.subscriptions { sub.onChange(s.ctxBuf) + subCount++ + if sub.hasDep() { + depCount++ + } } handleTime := time.Since(st) event := s.ctxBuf.apply() dur := time.Since(st) - log.Debugf("handle %d entries; %v(handle:%v;genEvents:%v); cacheSize: %d; ctx.ch: %v", len(entries), dur, handleTime, dur-handleTime, len(s.cache.entries), len(s.ctxBuf.change)) + + log.Debugf("handle %d entries; %v(handle:%v;genEvents:%v); cacheSize: %d; subCount:%d; subDepCount:%d", len(entries), dur, handleTime, dur-handleTime, len(s.cache.entries), subCount, depCount) s.sendEvent(event) + return dur } func (s *service) filtersFromSource(sources []string) (filter.Filter, error) { diff --git a/core/subscription/simple.go b/core/subscription/simple.go index 504ca35cf..92bd567ab 100644 --- a/core/subscription/simple.go +++ b/core/subscription/simple.go @@ -127,6 +127,10 @@ func (s *simpleSub) getActiveRecords() (res []*types.Struct) { return } +func (s *simpleSub) hasDep() bool { + return s.depSub != nil +} + func (s *simpleSub) close() { for id := range s.set { s.cache.RemoveSubId(id, s.id) diff --git a/core/subscription/sorted.go b/core/subscription/sorted.go index 2657bf689..60bae2cd9 100644 --- a/core/subscription/sorted.go +++ b/core/subscription/sorted.go @@ -549,6 +549,10 @@ func (s *sortedSub) CalcScore(key interface{}) float64 { return 0 } +func (s *sortedSub) hasDep() bool { + return s.depSub != nil +} + func (s *sortedSub) close() { el := s.skl.Front() for el != nil { From 552b40f516f31a2f08cab8984031329f2c7facf1 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Sat, 5 Feb 2022 14:32:04 +0300 Subject: [PATCH 19/49] batch logs --- core/subscription/service.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/subscription/service.go b/core/subscription/service.go index 3721c9385..3f1a9ef2f 100644 --- a/core/subscription/service.go +++ b/core/subscription/service.go @@ -270,6 +270,7 @@ func (s *service) recordsHandler() { filtered = append(filtered, e) } } + log.Debugf("batch rewrite: %d->%d", len(entries), len(filtered)) if s.onChange(filtered) < batchTime { time.Sleep(batchTime) } From 716df4bbfd9977e39b4134db250a3cd26fe6764f Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Thu, 10 Feb 2022 00:50:41 +0100 Subject: [PATCH 20/49] Update go-threads to merged version --- go.mod | 2 +- go.sum | 2 ++ metrics/metrics.go | 28 ++++++++++++++++++++++++++++ pkg/lib/threads/service.go | 6 ++---- 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 5818b497b..651fcd30f 100644 --- a/go.mod +++ b/go.mod @@ -101,7 +101,7 @@ require ( replace github.com/JohannesKaufmann/html-to-markdown => github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1 -replace github.com/textileio/go-threads => github.com/anytypeio/go-threads v1.1.0-rc1.0.20220126220133-494204269bea +replace github.com/textileio/go-threads => github.com/anytypeio/go-threads v1.1.0-rc1.0.20220209232550-ccd68d5a3c6e replace github.com/msingleton/amplitude-go => github.com/anytypeio/amplitude-go v0.0.0-20211130222238-8d16496a9b31 diff --git a/go.sum b/go.sum index de02d5c97..75dbe04b4 100644 --- a/go.sum +++ b/go.sum @@ -92,6 +92,8 @@ github.com/anytypeio/go-slip21 v0.0.0-20200218204727-e2e51e20ab51 h1:3Y+18zBC8LZ github.com/anytypeio/go-slip21 v0.0.0-20200218204727-e2e51e20ab51/go.mod h1:SoKy+W8Mf6v7XBV30xFWkIFMs7UnXwsNGrGV12yVkEs= github.com/anytypeio/go-threads v1.1.0-rc1.0.20220126220133-494204269bea h1:l/aReLRnjwpAalFpvvwwGp5MKQI3Uw/a8ctXH9NkWM0= github.com/anytypeio/go-threads v1.1.0-rc1.0.20220126220133-494204269bea/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220209232550-ccd68d5a3c6e h1:WpP7pR0B1WKUSz8wTRqGlfiRxrNfC9i5X9nqnQUQNlk= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220209232550-ccd68d5a3c6e/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1 h1:g/LEIEQ0ACBOKX9MhORhlmluUKvuxvrIDbGMI0cqF5A= github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1/go.mod h1:Qnhxlb4mi8T2624UtHX8EgDyYZXWbjQfLGuciFHZ+Go= github.com/anytypeio/ipfs-lite v1.1.20-0.20210428105030-fc5b3446abae h1:drp4/4ippiDtCGQHJw9AEPFlNdZI49DUW/6dkCdmChc= diff --git a/metrics/metrics.go b/metrics/metrics.go index 62ac44c29..20f884d0a 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -69,6 +69,34 @@ func (t *threadsMetrics) CreateRecord(threadId string, prepareMs int64, newRecor }) } +func (t *threadsMetrics) NumberOfRecordsSentForLog(num int) {} + +func (t *threadsMetrics) NumberOfRecordsSentTotal(num int) {} + +func (t *threadsMetrics) GetRecordsGetThreadDuration(duration time.Duration) {} + +func (t *threadsMetrics) GetRecordsHeadsChangedDuration(duration time.Duration) {} + +func (t *threadsMetrics) GetLocalRecordsGetLogDuration(duration time.Duration) {} + +func (t *threadsMetrics) GetLocalRecordsCborGetRecordsDuration(duration time.Duration) {} + +func (t *threadsMetrics) UpdateRecordsDuration(duration time.Duration) {} + +func (t *threadsMetrics) SemaphoreAcquireDuration(duration time.Duration) {} + +func (t *threadsMetrics) SemaphoreHoldDuration(duration time.Duration) {} + +func (t *threadsMetrics) SemaphoreAcquire() {} + +func (t *threadsMetrics) ThreadServed() {} + +func (t *threadsMetrics) ThreadPulled() {} + +func (t *threadsMetrics) ThreadPullDuration(duration time.Duration) {} + +func (t *threadsMetrics) UpdateRecordsDelayAfterExchangeEdges(duration time.Duration) {} + var ( Enabled bool once sync.Once diff --git a/pkg/lib/threads/service.go b/pkg/lib/threads/service.go index f55a9c20a..31da2fb27 100644 --- a/pkg/lib/threads/service.go +++ b/pkg/lib/threads/service.go @@ -27,7 +27,6 @@ import ( "github.com/textileio/go-threads/crypto/symmetric" threadsDb "github.com/textileio/go-threads/db" "github.com/textileio/go-threads/db/keytransform" - threadsMetrics "github.com/textileio/go-threads/metrics" "google.golang.org/grpc" "github.com/anytypeio/go-anytype-middleware/app" @@ -216,13 +215,12 @@ func (s *service) Run() (err error) { syncBook = s.logstore } - ctx := context.WithValue(s.ctx, threadsMetrics.ContextKey{}, metrics.NewThreadsMetrics()) - - s.t, err = threadsNet.NewNetwork(ctx, s.ipfsNode.GetHost(), s.ipfsNode.BlockStore(), s.ipfsNode, s.logstore, threadsNet.Config{ + s.t, err = threadsNet.NewNetwork(s.ctx, s.ipfsNode.GetHost(), s.ipfsNode.BlockStore(), s.ipfsNode, s.logstore, threadsNet.Config{ Debug: s.Debug, PubSub: s.PubSub, SyncTracking: s.SyncTracking, SyncBook: syncBook, + Metrics: metrics.NewThreadsMetrics(), }, s.GRPCServerOptions, s.GRPCDialOptions) if err != nil { return err From c71f8a7cabaf6f2075536ec4ce20969e4be00acf Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Thu, 10 Feb 2022 01:06:10 +0100 Subject: [PATCH 21/49] Update to latest go-threads --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 651fcd30f..f02826673 100644 --- a/go.mod +++ b/go.mod @@ -101,7 +101,7 @@ require ( replace github.com/JohannesKaufmann/html-to-markdown => github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1 -replace github.com/textileio/go-threads => github.com/anytypeio/go-threads v1.1.0-rc1.0.20220209232550-ccd68d5a3c6e +replace github.com/textileio/go-threads => github.com/anytypeio/go-threads v1.1.0-rc1.0.20220210000429-5fa142ad3bb1 replace github.com/msingleton/amplitude-go => github.com/anytypeio/amplitude-go v0.0.0-20211130222238-8d16496a9b31 diff --git a/go.sum b/go.sum index 75dbe04b4..2667d8fc5 100644 --- a/go.sum +++ b/go.sum @@ -94,6 +94,8 @@ github.com/anytypeio/go-threads v1.1.0-rc1.0.20220126220133-494204269bea h1:l/aR github.com/anytypeio/go-threads v1.1.0-rc1.0.20220126220133-494204269bea/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= github.com/anytypeio/go-threads v1.1.0-rc1.0.20220209232550-ccd68d5a3c6e h1:WpP7pR0B1WKUSz8wTRqGlfiRxrNfC9i5X9nqnQUQNlk= github.com/anytypeio/go-threads v1.1.0-rc1.0.20220209232550-ccd68d5a3c6e/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220210000429-5fa142ad3bb1 h1:PogPTWhXWBfI/8iCu1wHeRdQXSZeRHYsZ+eXTbxkrAA= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220210000429-5fa142ad3bb1/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1 h1:g/LEIEQ0ACBOKX9MhORhlmluUKvuxvrIDbGMI0cqF5A= github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1/go.mod h1:Qnhxlb4mi8T2624UtHX8EgDyYZXWbjQfLGuciFHZ+Go= github.com/anytypeio/ipfs-lite v1.1.20-0.20210428105030-fc5b3446abae h1:drp4/4ippiDtCGQHJw9AEPFlNdZI49DUW/6dkCdmChc= From 603d4f5636c0d563576a88aac2471f9718350fe8 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Thu, 10 Feb 2022 14:18:47 +0300 Subject: [PATCH 22/49] listDiff benchmark --- core/subscription/context.go | 1 + core/subscription/diff.go | 67 ++++++ core/subscription/diff_test.go | 78 +++++++ core/subscription/service_test.go | 66 ++++++ core/subscription/sorted.go | 324 ++++-------------------------- core/subscription/sorted_test.go | 237 ---------------------- 6 files changed, 253 insertions(+), 520 deletions(-) create mode 100644 core/subscription/diff.go create mode 100644 core/subscription/diff_test.go diff --git a/core/subscription/context.go b/core/subscription/context.go index 6ebac2ab6..9d519fb94 100644 --- a/core/subscription/context.go +++ b/core/subscription/context.go @@ -13,6 +13,7 @@ type opChange struct { subId string keys []string afterId string + isAdd bool } type opRemove struct { diff --git a/core/subscription/diff.go b/core/subscription/diff.go new file mode 100644 index 000000000..2109d0cda --- /dev/null +++ b/core/subscription/diff.go @@ -0,0 +1,67 @@ +package subscription + +type listDiff struct { + beforeFirstId, afterFirstId string + // map[id]prevId + before, after map[string]string + fillAfterLastId string +} + +func (ld *listDiff) fillAfter(id string) { + ld.after[id] = ld.fillAfterLastId + ld.fillAfterLastId = id +} + +func (ld *listDiff) fillAfterReverse(id string) { + if ld.fillAfterLastId != "" { + ld.after[ld.fillAfterLastId] = id + } + ld.fillAfterLastId = id +} + +func (ld *listDiff) fillAfterReverseFinalize() { + ld.after[ld.fillAfterLastId] = "" +} + +func (ld *listDiff) reset() { + ld.before = ld.after + ld.after = make(map[string]string) + ld.beforeFirstId = ld.afterFirstId + ld.afterFirstId = "" + ld.fillAfterLastId = "" +} + +func (ld *listDiff) diff(ctx *opCtx, subId string, keys []string) { + var id, prevId, bPrevId string + var ok bool + for id, prevId = range ld.after { + if bPrevId, ok = ld.before[id]; ok { + // change position + if bPrevId != prevId { + ctx.change = append(ctx.change, opChange{ + id: id, + subId: subId, + keys: keys, + afterId: prevId, + }) + } + } else { + // add + ctx.change = append(ctx.change, opChange{ + id: id, + subId: subId, + keys: keys, + afterId: prevId, + isAdd: true, + }) + } + } + for id = range ld.before { + if _, ok = ld.after[id]; !ok { + ctx.remove = append(ctx.remove, opRemove{ + id: id, + subId: subId, + }) + } + } +} diff --git a/core/subscription/diff_test.go b/core/subscription/diff_test.go new file mode 100644 index 000000000..ed78119ba --- /dev/null +++ b/core/subscription/diff_test.go @@ -0,0 +1,78 @@ +package subscription + +import ( + "fmt" + "strings" + "testing" +) + +func TestListDiff(t *testing.T) { + var before = []string{"1", "2", "3"} + var after = []string{"0", "1", "2"} + d := &listDiff{} + d.reset() + for _, id := range before { + d.fillAfter(id) + } + d.reset() + for _, id := range after { + d.fillAfter(id) + } + ctx := &opCtx{} + d.diff(ctx, "", nil) + for _, ch := range ctx.change { + t.Log("ch", ch) + } + for _, rm := range ctx.remove { + t.Log("rm", rm.id) + } +} + +func BenchmarkDiff(b *testing.B) { + b.ReportAllocs() + genData := func(n int, reverse bool) []string { + res := make([]string, n) + for i := 0; i < n; i++ { + if reverse { + res[i] = strings.Repeat("x", 40) + fmt.Sprint(n-i) + } else { + res[i] = strings.Repeat("x", 40) + fmt.Sprint(i) + } + } + return res + } + benchmark := func(before, after []string) func(b *testing.B) { + d := &listDiff{} + d.reset() + for _, id := range before { + d.fillAfter(id) + } + d.reset() + ctx := &opCtx{} + return func(b *testing.B) { + b.ReportAllocs() + for i := 0; i < b.N; i++ { + for _, id := range after { + d.fillAfter(id) + } + d.diff(ctx, "", nil) + d.reset() + ctx.reset() + after, before = before, after + } + } + } + var before, after []string + for _, n := range []int{ + 100, 1000, 10000, 100000, + } { + b.Run(fmt.Sprintf("big-diff-%d", n), benchmark(genData(n, false), genData(n, true))) + before = genData(n, false) + after = genData(n, false) + after[(n/2)-1], after[(n/2)] = after[(n/2)], after[(n/2)-1] + b.Run(fmt.Sprintf("small-diff-%d", n), benchmark(before, after)) + before = genData(n, false) + b.Run(fmt.Sprintf("equal-%d", n), benchmark(before, before)) + } + +} diff --git a/core/subscription/service_test.go b/core/subscription/service_test.go index e97e10981..5d5126a7f 100644 --- a/core/subscription/service_test.go +++ b/core/subscription/service_test.go @@ -170,6 +170,72 @@ func TestService_Search(t *testing.T) { assert.Len(t, resp.Dependencies, 2) }) + t.Run("add with limit", func(t *testing.T) { + fx := newFixture(t) + defer fx.a.Close() + defer fx.ctrl.Finish() + + fx.store.EXPECT().QueryRaw(gomock.Any()).Return( + []database.Record{ + {Details: &types.Struct{Fields: map[string]*types.Value{ + "id": pbtypes.String("1"), + "name": pbtypes.String("1"), + }}}, + {Details: &types.Struct{Fields: map[string]*types.Value{ + "id": pbtypes.String("2"), + "name": pbtypes.String("2"), + }}}, + {Details: &types.Struct{Fields: map[string]*types.Value{ + "id": pbtypes.String("3"), + "name": pbtypes.String("3"), + }}}, + }, + nil, + ) + fx.store.EXPECT().GetRelation(bundle.RelationKeyName.String()).Return(&model.Relation{ + Key: bundle.RelationKeyName.String(), + Format: model.RelationFormat_shorttext, + }, nil).AnyTimes() + + resp, err := fx.Search(pb.RpcObjectSearchSubscribeRequest{ + SubId: "test", + Sorts: []*model.BlockContentDataviewSort{ + { + RelationKey: "name", + Type: model.BlockContentDataviewSort_Desc, + }, + }, + Limit: 2, + Keys: []string{"id", "name"}, + }) + require.NoError(t, err) + // should be 3,2 (1) + require.Len(t, resp.Records, 2) + assert.Equal(t, "3", pbtypes.GetString(resp.Records[0], "id")) + assert.Equal(t, "2", pbtypes.GetString(resp.Records[1], "id")) + + fx.Service.(*service).onChange([]*entry{ + {id: "1", data: &types.Struct{Fields: map[string]*types.Value{ + "id": pbtypes.String("1"), + "name": pbtypes.String("4"), + }}}, + }) + // should be 1,3 (2) + require.Len(t, fx.events[0].Messages, 3) + assert.NotEmpty(t, fx.events[0].Messages[0].GetObjectDetailsSet()) + assert.NotEmpty(t, fx.events[0].Messages[1].GetSubscriptionAdd()) + assert.NotEmpty(t, fx.events[0].Messages[2].GetSubscriptionRemove()) + + fx.Service.(*service).onChange([]*entry{ + {id: "2", data: &types.Struct{Fields: map[string]*types.Value{ + "id": pbtypes.String("2"), + "name": pbtypes.String("6"), + }}}, + }) + + // should be 2,1 (3) + t.Log(pbtypes.Sprint(fx.events[1])) + }) } func newFixture(t *testing.T) *fixture { diff --git a/core/subscription/sorted.go b/core/subscription/sorted.go index 60bae2cd9..794f918cc 100644 --- a/core/subscription/sorted.go +++ b/core/subscription/sorted.go @@ -2,7 +2,6 @@ package subscription import ( "errors" - "github.com/anytypeio/go-anytype-middleware/pkg/lib/database/filter" "github.com/anytypeio/go-anytype-middleware/util/pbtypes" "github.com/gogo/protobuf/types" @@ -48,6 +47,9 @@ type sortedSub struct { forceSubIds []string disableDep bool + compIdsBefore, compIdsAfter []string + compCountBefore, compCountAfter opCounter + cache *cache ds *dependencyService } @@ -64,7 +66,7 @@ func (s *sortedSub) init(entries []*entry) (err error) { for i, e := range entries { e = s.cache.GetOrSet(e) entries[i] = e - e.SetSub(s.id, true) + e.SetSub(s.id, false) s.skl.Set(e, nil) } if s.afterId != "" { @@ -110,7 +112,11 @@ func (s *sortedSub) init(entries []*entry) (err error) { activeEntries := s.getActiveEntries() for _, ae := range activeEntries { ae.SetSub(s.id, true) + s.compIdsBefore = append(s.compIdsBefore, s.id) } + s.compCountBefore.subId = s.id + s.compCountBefore.prevCount, s.compCountAfter.nextCount = s.counters() + s.compCountBefore.total = s.skl.Len() if s.ds != nil && !s.disableDep { s.depKeys = s.ds.depKeys(s.keys) @@ -122,286 +128,57 @@ func (s *sortedSub) init(entries []*entry) (err error) { } func (s *sortedSub) onChange(ctx *opCtx) { - var countersChanged, activeChanged bool for _, e := range ctx.entries { - ch, ac := s.onEntryChange(ctx, e) - if ch { - countersChanged = true - } - if ac { - activeChanged = true + s.onEntryChange(ctx, e) + } + s.compIdsAfter = s.compIdsAfter[:0] + if s.iterateActive(func(e *entry) { + s.compIdsAfter = append(s.compIdsAfter, e.id) + }) { + for i, j := 0, len(s.compIdsAfter)-1; i < j; i, j = i+1, j-1 { + s.compIdsAfter[i], s.compIdsAfter[j] = s.compIdsAfter[j], s.compIdsAfter[i] } } - if countersChanged { - prev, next := s.counters() - ctx.counters = append(ctx.counters, opCounter{ - subId: s.id, - total: s.skl.Len(), - prevCount: prev, - nextCount: next, - }) - } - if activeChanged && s.depSub != nil { - s.ds.refillSubscription(ctx, s.depSub, s.getActiveEntries(), s.depKeys) - } + + /* + if activeChanged && s.depSub != nil { + s.ds.refillSubscription(ctx, s.depSub, s.getActiveEntries(), s.depKeys) + }*/ } -func (s *sortedSub) onEntryChange(ctx *opCtx, e *entry) (countersChanged, activeChanged bool) { +func (s *sortedSub) onEntryChange(ctx *opCtx, e *entry) { newInSet := true if s.filter != nil { newInSet = s.filter.FilterObject(e) } - curInSet, currInActive := s.lookup(s.cache.Get(e.id)) + curr := s.cache.Get(e.id) + curInSet := curr != nil + // nothing if !curInSet && !newInSet { - return false, false - } - if curInSet && !newInSet { - if currInActive { - s.removeActive(ctx, e) - activeChanged = true - } else { - s.removeNonActive(e.id) - } - countersChanged = true return } - if !curInSet && newInSet { - return s.add(ctx, e) + // remove + if curInSet && !newInSet { + s.skl.Remove(curr) + curr.RemoveSubId(s.id) + return } + // add + if !curInSet && newInSet { + s.skl.Set(e, nil) + e.SetSub(s.id, false) + return + } + // change if curInSet && newInSet { - return s.change(ctx, e, currInActive) + s.skl.Remove(curr) + s.skl.Set(e, nil) + e.SetSub(s.id, false) + return } panic("subscription: check algo") } -func (s *sortedSub) removeNonActive(id string) { - e := s.cache.Get(id) - if s.afterEl != nil { - if comp := s.Compare(s.afterEl.Key(), s.skl.Get(e).Key()); comp <= 0 { - if comp == 0 { - s.afterEl = s.afterEl.Prev() - if s.afterEl != nil { - s.afterId = s.afterEl.Key().(*entry).id - } - } - } - } else if s.beforeEl != nil { - if comp := s.Compare(s.beforeEl.Key(), s.skl.Get(e).Key()); comp >= 0 { - if comp == 0 { - s.beforeEl = s.beforeEl.Next() - if s.beforeEl != nil { - s.beforeId = s.beforeEl.Key().(*entry).id - } - } - } - } - s.skl.Remove(e) -} - -func (s *sortedSub) removeActive(ctx *opCtx, e *entry) { - s.skl.Remove(s.cache.Get(e.id)) - ctx.remove = append(ctx.remove, opRemove{ - id: e.id, - subId: s.id, - }) - s.alignAdd(ctx) -} - -func (s *sortedSub) add(ctx *opCtx, e *entry) (countersChanged, activeChanged bool) { - s.skl.Set(e, nil) - _, inActive := s.lookup(e) - if inActive { - var afterId string - if prev := s.skl.Get(e).Prev(); prev != nil { - afterId = prev.Key().(*entry).id - } - ctx.add = append(ctx.add, opChange{ - id: e.id, - subId: s.id, - keys: s.keys, - afterId: afterId, - }) - s.alignRemove(ctx) - e.SetSub(s.id, true) - return true, true - } - e.SetSub(s.id, false) - return true, false -} - -func (s *sortedSub) change(ctx *opCtx, e *entry, currInActive bool) (countersChanged, activeChanged bool) { - var currAfterId string - if currInActive { - if prev := s.skl.Get(s.cache.Get(e.id)).Prev(); prev != nil { - currAfterId = prev.Key().(*entry).id - } - } - s.skl.Remove(s.cache.Get(e.id)) - s.skl.Set(e, nil) - _, newInActive := s.lookup(e) - if newInActive { - var newAfterId string - if prev := s.skl.Get(e).Prev(); prev != nil { - newAfterId = prev.Key().(*entry).id - } - if currAfterId != newAfterId { - ctx.position = append(ctx.position, opPosition{ - id: e.id, - subId: s.id, - afterId: newAfterId, - }) - } - if !currInActive { - countersChanged = true - } else { - activeChanged = true - } - ctx.change = append(ctx.change, opChange{ - id: e.id, - subId: s.id, - keys: s.keys, - }) - e.SetSub(s.id, true) - } else { - if currInActive { - ctx.remove = append(ctx.remove, opRemove{ - id: e.id, - subId: s.id, - }) - s.alignAdd(ctx) - activeChanged = true - } - countersChanged = true - e.SetSub(s.id, false) - } - return -} - -func (s *sortedSub) alignAdd(ctx *opCtx) { - if s.limit > 0 { - if s.beforeEl != nil { - ctx.add = append(ctx.add, opChange{ - id: s.beforeEl.Key().(*entry).id, - subId: s.id, - keys: s.keys, - }) - s.beforeEl = s.beforeEl.Next() - if s.beforeEl != nil { - s.beforeId = s.beforeEl.Key().(*entry).id - } - } else { - var i int - var next = s.afterEl - if next == nil { - next = s.skl.Front() - } else { - next = next.Next() - } - for next != nil { - i++ - if i == s.limit { - break - } - next = next.Next() - } - if next != nil { - afterId := "" - prev := next.Prev() - if prev != nil { - afterId = prev.Key().(*entry).id - } - ctx.add = append(ctx.add, opChange{ - id: next.Key().(*entry).id, - afterId: afterId, - subId: s.id, - keys: s.keys, - }) - } - } - } -} - -func (s *sortedSub) alignRemove(ctx *opCtx) { - if s.limit > 0 { - if s.beforeEl != nil { - ctx.remove = append(ctx.remove, opRemove{ - id: s.beforeEl.Key().(*entry).id, - subId: s.id, - }) - s.beforeEl = s.beforeEl.Prev() - if s.beforeEl != nil { - s.beforeId = s.beforeEl.Key().(*entry).id - } - } else { - var i int - var next = s.afterEl - if next == nil { - next = s.skl.Front() - } else { - next = next.Next() - } - for next != nil { - if i == s.limit { - break - } - next = next.Next() - i++ - } - if next != nil { - ctx.remove = append(ctx.remove, opRemove{ - id: next.Key().(*entry).id, - subId: s.id, - }) - } - } - } -} - -func (s *sortedSub) lookup(e *entry) (inSet, inActive bool) { - if e == nil { - return - } - el := s.skl.Get(e) - if el == nil { - return - } - inSet = true - var ( - startEl *skiplist.Element - backward bool - ) - if s.afterEl != nil { - startEl = s.afterEl - } else if s.beforeEl != nil { - startEl = s.beforeEl - backward = true - } - - if startEl != nil { - comp := s.Compare(startEl.Key(), e) - if comp == 0 { - return - } - if (comp < 0 && backward) || (comp > 0 && !backward) { - return - } - if s.limit > 0 { - if s.inDistance(startEl, e.id, s.limit, backward) { - inActive = true - } - } else { - inActive = true - } - } else if s.limit > 0 { - if s.inDistance(s.skl.Front(), e.id, s.limit-1, false) { - inActive = true - } - } else { - inActive = true - } - return -} - func (s *sortedSub) counters() (prev, next int) { if s.beforeEl == nil && s.afterEl == nil && s.limit <= 0 { // no pagination - no counters @@ -453,25 +230,6 @@ func (s *sortedSub) counters() (prev, next int) { return } -func (s *sortedSub) inDistance(el *skiplist.Element, id string, distance int, backward bool) bool { - var i int - for el != nil { - if el.Key().(*entry).id == id { - return true - } - i++ - if i > distance { - return false - } - if backward { - el = el.Prev() - } else { - el = el.Next() - } - } - return false -} - func (s *sortedSub) getActiveRecords() (res []*types.Struct) { reverse := s.iterateActive(func(e *entry) { res = append(res, pbtypes.StructFilterKeys(e.data, s.keys)) diff --git a/core/subscription/sorted_test.go b/core/subscription/sorted_test.go index 8d16044ef..7e8fdac6b 100644 --- a/core/subscription/sorted_test.go +++ b/core/subscription/sorted_test.go @@ -11,243 +11,6 @@ import ( "github.com/stretchr/testify/require" ) -func TestSubscription_Internal(t *testing.T) { - t.Run("init", func(t *testing.T) { - t.Run("afterId err", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - afterId: "id101", - } - require.Equal(t, ErrAfterId, sub.init(genEntries(100, false))) - assert.Len(t, sub.cache.entries, 0) - }) - t.Run("beforeId err", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - beforeId: "id101", - } - require.Equal(t, ErrBeforeId, sub.init(genEntries(100, false))) - assert.Len(t, sub.cache.entries, 0) - }) - }) - t.Run("lookup", func(t *testing.T) { - t.Run("no limits", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - } - require.NoError(t, sub.init(genEntries(100, false))) - inSet, inActive := sub.lookup(sub.cache.Get("id50")) - assert.True(t, inSet, "inSet") - assert.True(t, inActive, "inActive") - - assert.Len(t, sub.cache.entries, 100) - for _, e := range sub.cache.entries { - assert.Len(t, e.SubIds(), 1) - } - }) - t.Run("with limit", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - limit: 10, - } - require.NoError(t, sub.init(genEntries(100, false))) - inSet, inActive := sub.lookup(sub.cache.Get("id11")) - assert.True(t, inSet, "inSet") - assert.False(t, inActive, "inActive") - inSet, inActive = sub.lookup(sub.cache.Get("id10")) - assert.True(t, inSet, "inSet") - assert.True(t, inActive, "inActive") - }) - t.Run("afterId no limit", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - afterId: "id50", - } - require.NoError(t, sub.init(genEntries(100, false))) - - inSet, inActive := sub.lookup(sub.cache.Get("id49")) - assert.True(t, inSet, "inSet") - assert.False(t, inActive, "inActive") - inSet, inActive = sub.lookup(sub.cache.Get("id50")) - assert.True(t, inSet, "inSet") - assert.False(t, inActive, "inActive") - inSet, inActive = sub.lookup(sub.cache.Get("id51")) - assert.True(t, inSet, "inSet") - assert.True(t, inActive, "inActive") - }) - t.Run("beforeId no limit", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - beforeId: "id50", - } - require.NoError(t, sub.init(genEntries(100, false))) - inSet, inActive := sub.lookup(sub.cache.Get("id51")) - assert.True(t, inSet, "inSet") - assert.False(t, inActive, "inActive") - - inSet, inActive = sub.lookup(sub.cache.Get("id50")) - assert.True(t, inSet, "inSet") - assert.False(t, inActive, "inActive") - - inSet, inActive = sub.lookup(sub.cache.Get("id49")) - assert.True(t, inSet, "inSet") - assert.True(t, inActive, "inActive") - }) - t.Run("afterId limit", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - afterId: "id50", - limit: 10, - } - require.NoError(t, sub.init(genEntries(100, false))) - - inSet, inActive := sub.lookup(sub.cache.Get("id49")) - assert.True(t, inSet, "inSet") - assert.False(t, inActive, "inActive") - - inSet, inActive = sub.lookup(sub.cache.Get("id60")) - assert.True(t, inSet, "inSet") - assert.True(t, inActive, "inActive") - - inSet, inActive = sub.lookup(sub.cache.Get("id61")) - assert.True(t, inSet, "inSet") - assert.False(t, inActive, "inActive") - }) - t.Run("beforeId limit", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - beforeId: "id50", - limit: 10, - } - require.NoError(t, sub.init(genEntries(100, false))) - - inSet, inActive := sub.lookup(sub.cache.Get("id51")) - assert.True(t, inSet, "inSet") - assert.False(t, inActive, "inActive") - - inSet, inActive = sub.lookup(sub.cache.Get("id40")) - assert.True(t, inSet, "inSet") - assert.True(t, inActive, "inActive") - - inSet, inActive = sub.lookup(sub.cache.Get("id39")) - assert.True(t, inSet, "inSet") - assert.False(t, inActive, "inActive") - }) - }) - t.Run("counters", func(t *testing.T) { - t.Run("no limits", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - } - require.NoError(t, sub.init(genEntries(6, false))) - prev, next := sub.counters() - assert.Equal(t, 0, prev, "prevCount") - assert.Equal(t, 0, next, "nextCount") - }) - t.Run("limit only", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - limit: 2, - } - require.NoError(t, sub.init(genEntries(6, false))) - prev, next := sub.counters() - assert.Equal(t, 0, prev, "prevCount") - assert.Equal(t, 4, next, "nextCount") - }) - t.Run("afterId no limit", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - afterId: "id2", - } - require.NoError(t, sub.init(genEntries(6, false))) - prev, next := sub.counters() - assert.Equal(t, 2, prev, "prevCount") - assert.Equal(t, 0, next, "nextCount") - }) - t.Run("beforeId no limit", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - beforeId: "id3", - } - require.NoError(t, sub.init(genEntries(6, false))) - prev, next := sub.counters() - assert.Equal(t, 0, prev, "prevCount") - assert.Equal(t, 4, next, "nextCount") - }) - t.Run("afterId with limit", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - afterId: "id2", - limit: 2, - } - require.NoError(t, sub.init(genEntries(6, false))) - prev, next := sub.counters() - assert.Equal(t, 2, prev, "prevCount") - assert.Equal(t, 2, next, "nextCount") - }) - t.Run("beforeId with limit", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - beforeId: "id5", - limit: 2, - } - require.NoError(t, sub.init(genEntries(6, false))) - prev, next := sub.counters() - assert.Equal(t, 2, prev, "prevCount") - assert.Equal(t, 2, next, "nextCount") - }) - t.Run("limit only - big limit", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - limit: 20, - } - require.NoError(t, sub.init(genEntries(6, false))) - prev, next := sub.counters() - assert.Equal(t, 0, prev, "prevCount") - assert.Equal(t, 0, next, "nextCount") - }) - t.Run("afterId - big limit", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - limit: 20, - afterId: "id2", - } - require.NoError(t, sub.init(genEntries(6, false))) - prev, next := sub.counters() - assert.Equal(t, 2, prev, "prevCount") - assert.Equal(t, 0, next, "nextCount") - }) - t.Run("beforeId - big limit", func(t *testing.T) { - sub := &sortedSub{ - order: testOrder, - cache: newCache(), - limit: 20, - beforeId: "id5", - } - require.NoError(t, sub.init(genEntries(6, false))) - prev, next := sub.counters() - assert.Equal(t, 0, prev, "prevCount") - assert.Equal(t, 2, next, "nextCount") - }) - }) -} - func TestSubscription_Add(t *testing.T) { t.Run("add", func(t *testing.T) { sub := &sortedSub{ From 56aefe40584a5589ffd8fdbb63d9bf30c64a9926 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Thu, 10 Feb 2022 19:37:37 +0300 Subject: [PATCH 23/49] diff fuzz test --- core/subscription/diff.go | 76 +++++++++++++++++++------ core/subscription/diff_test.go | 100 +++++++++++++++++++++++++-------- 2 files changed, 136 insertions(+), 40 deletions(-) diff --git a/core/subscription/diff.go b/core/subscription/diff.go index 2109d0cda..f12510817 100644 --- a/core/subscription/diff.go +++ b/core/subscription/diff.go @@ -1,43 +1,81 @@ package subscription +func newListDiff(ids []string) *listDiff { + ld := &listDiff{ + before: make(map[string]string), + after: make(map[string]string), + } + var prevId string + for _, id := range ids { + ld.before[id] = prevId + prevId = id + } + return ld +} + type listDiff struct { - beforeFirstId, afterFirstId string // map[id]prevId - before, after map[string]string - fillAfterLastId string + before, after map[string]string + afterIds []string } func (ld *listDiff) fillAfter(id string) { - ld.after[id] = ld.fillAfterLastId - ld.fillAfterLastId = id + ld.afterIds = append(ld.afterIds, id) } -func (ld *listDiff) fillAfterReverse(id string) { - if ld.fillAfterLastId != "" { - ld.after[ld.fillAfterLastId] = id +func (ld *listDiff) reverse() { + for i, j := 0, len(ld.afterIds)-1; i < j; i, j = i+1, j-1 { + ld.afterIds[i], ld.afterIds[j] = ld.afterIds[j], ld.afterIds[i] } - ld.fillAfterLastId = id -} - -func (ld *listDiff) fillAfterReverseFinalize() { - ld.after[ld.fillAfterLastId] = "" } func (ld *listDiff) reset() { ld.before = ld.after ld.after = make(map[string]string) - ld.beforeFirstId = ld.afterFirstId - ld.afterFirstId = "" - ld.fillAfterLastId = "" + ld.afterIds = ld.afterIds[:0] } func (ld *listDiff) diff(ctx *opCtx, subId string, keys []string) { + var ctxChangesLen = len(ctx.change) + var _ = func(prevId, bPrevId string) bool { + // by changes + ctxChanges := ctx.change[ctxChangesLen:] + for { + found := false + for _, ch := range ctxChanges { + if ch.id == prevId { + found = true + } + } + if found { + if prevId = ld.after[prevId]; prevId == "" { + break + } + } else { + break + } + } + return prevId != bPrevId + } + var changeNeededAdd = func(prevId, bPrevId string) bool { + // by add + for { + if _, ok := ld.before[prevId]; !ok { + if prevId = ld.after[prevId]; prevId == "" { + break + } + } else { + break + } + } + return prevId != bPrevId + } var id, prevId, bPrevId string var ok bool - for id, prevId = range ld.after { + for _, id = range ld.afterIds { if bPrevId, ok = ld.before[id]; ok { // change position - if bPrevId != prevId { + if bPrevId != prevId && changeNeededAdd(prevId, bPrevId) { ctx.change = append(ctx.change, opChange{ id: id, subId: subId, @@ -55,6 +93,8 @@ func (ld *listDiff) diff(ctx *opCtx, subId string, keys []string) { isAdd: true, }) } + ld.after[id] = prevId + prevId = id } for id = range ld.before { if _, ok = ld.after[id]; !ok { diff --git a/core/subscription/diff_test.go b/core/subscription/diff_test.go index ed78119ba..4e438f100 100644 --- a/core/subscription/diff_test.go +++ b/core/subscription/diff_test.go @@ -2,29 +2,90 @@ package subscription import ( "fmt" + "github.com/anytypeio/go-anytype-middleware/util/slice" + "github.com/stretchr/testify/assert" + "math/rand" "strings" "testing" + "time" ) -func TestListDiff(t *testing.T) { - var before = []string{"1", "2", "3"} - var after = []string{"0", "1", "2"} - d := &listDiff{} - d.reset() - for _, id := range before { - d.fillAfter(id) +func TestListDiffFuzz(t *testing.T) { + var genRandomUniqueSeq = func(l int) []string { + ids := map[string]struct{}{} + for len(ids) < l { + ids[fmt.Sprint(rand.Intn(int(float64(l)*1.2)))] = struct{}{} + } + res := make([]string, 0, l) + for id := range ids { + res = append(res, id) + } + return res } - d.reset() - for _, id := range after { - d.fillAfter(id) + + var chToString = func(ch opChange) string { + if ch.isAdd { + return fmt.Sprintf("add: %s after: %s", ch.id, ch.afterId) + } + return fmt.Sprintf("move: %s after: %s", ch.id, ch.afterId) } - ctx := &opCtx{} - d.diff(ctx, "", nil) - for _, ch := range ctx.change { - t.Log("ch", ch) + + var checkBeforeAfter = func(before, after []string) { + var debug []string + + d := newListDiff(before) + for _, id := range after { + d.fillAfter(id) + } + ctx := &opCtx{} + d.diff(ctx, "", nil) + + var resAfter = make([]string, len(before)) + copy(resAfter, before) + + for i, ch := range ctx.change { + if !ch.isAdd { + resAfter = slice.Remove(resAfter, ch.id) + } + if ch.afterId == "" { + resAfter = append([]string{ch.id}, resAfter...) + } else { + pos := slice.FindPos(resAfter, ch.afterId) + resAfter = slice.Insert(resAfter, pos+1, ch.id) + } + debug = append(debug, fmt.Sprintf("%d:\t %+v", i, chToString(ch))) + debug = append(debug, fmt.Sprintf("%d:\t %v", i, resAfter)) + } + for _, rm := range ctx.remove { + resAfter = slice.Remove(resAfter, rm.id) + } + ok := assert.ObjectsAreEqual(after, resAfter) + + if !ok { + t.Log("after", after) + t.Log("afterRes", resAfter) + t.Log("before", before) + + for _, dbg := range debug { + t.Log(dbg) + } + } else { + //t.Logf("ch: %d; rm: %d; %v", len(ctx.change), len(ctx.remove), resAfter) + } + assert.True(t, ok) + return } - for _, rm := range ctx.remove { - t.Log("rm", rm.id) + + rand.Seed(time.Now().UnixNano()) + + var initialLen = 5 + + var before, after []string + before = genRandomUniqueSeq(initialLen) + for i := 0; i < 20; i++ { + after = genRandomUniqueSeq(initialLen + rand.Intn(1+i)) + checkBeforeAfter(before, after) + before = after } } @@ -42,12 +103,7 @@ func BenchmarkDiff(b *testing.B) { return res } benchmark := func(before, after []string) func(b *testing.B) { - d := &listDiff{} - d.reset() - for _, id := range before { - d.fillAfter(id) - } - d.reset() + d := newListDiff(before) ctx := &opCtx{} return func(b *testing.B) { b.ReportAllocs() From 857a624169ae84b05a16194ab9a336165ee5f2f4 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Thu, 10 Feb 2022 19:46:58 +0300 Subject: [PATCH 24/49] fix --- core/subscription/diff_test.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/core/subscription/diff_test.go b/core/subscription/diff_test.go index 4e438f100..7dcf9764d 100644 --- a/core/subscription/diff_test.go +++ b/core/subscription/diff_test.go @@ -30,7 +30,7 @@ func TestListDiffFuzz(t *testing.T) { return fmt.Sprintf("move: %s after: %s", ch.id, ch.afterId) } - var checkBeforeAfter = func(before, after []string) { + var checkBeforeAfter = func(before, after []string) (ok bool) { var debug []string d := newListDiff(before) @@ -56,10 +56,12 @@ func TestListDiffFuzz(t *testing.T) { debug = append(debug, fmt.Sprintf("%d:\t %+v", i, chToString(ch))) debug = append(debug, fmt.Sprintf("%d:\t %v", i, resAfter)) } - for _, rm := range ctx.remove { + for i, rm := range ctx.remove { resAfter = slice.Remove(resAfter, rm.id) + debug = append(debug, fmt.Sprintf("%d:\t remove %+v", i, rm.id)) + debug = append(debug, fmt.Sprintf("%d:\t %v", i, resAfter)) } - ok := assert.ObjectsAreEqual(after, resAfter) + ok = assert.ObjectsAreEqual(after, resAfter) if !ok { t.Log("after", after) @@ -82,9 +84,11 @@ func TestListDiffFuzz(t *testing.T) { var before, after []string before = genRandomUniqueSeq(initialLen) - for i := 0; i < 20; i++ { + for i := 0; i < 100; i++ { after = genRandomUniqueSeq(initialLen + rand.Intn(1+i)) - checkBeforeAfter(before, after) + if !checkBeforeAfter(before, after) { + break + } before = after } } From 9c78b34d33cbaa4e260e19227ff530c7c0a1e6c5 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Thu, 10 Feb 2022 23:20:22 +0300 Subject: [PATCH 25/49] listDiff thanks Myers --- core/subscription/diff.go | 117 ++++++++++++++------------------- core/subscription/diff_test.go | 30 +++++++-- 2 files changed, 74 insertions(+), 73 deletions(-) diff --git a/core/subscription/diff.go b/core/subscription/diff.go index f12510817..40ff07e6f 100644 --- a/core/subscription/diff.go +++ b/core/subscription/diff.go @@ -1,24 +1,28 @@ package subscription +import ( + "github.com/mb0/diff" +) + func newListDiff(ids []string) *listDiff { ld := &listDiff{ - before: make(map[string]string), - after: make(map[string]string), + beforeIds: ids, + beforeIdsM: map[string]struct{}{}, + afterIdsM: map[string]struct{}{}, } - var prevId string for _, id := range ids { - ld.before[id] = prevId - prevId = id + ld.beforeIdsM[id] = struct{}{} } return ld } type listDiff struct { - // map[id]prevId - before, after map[string]string - afterIds []string + beforeIds, afterIds []string + beforeIdsM, afterIdsM map[string]struct{} } +func (ld *listDiff) Equal(i, j int) bool { return ld.beforeIds[i] == ld.afterIds[j] } + func (ld *listDiff) fillAfter(id string) { ld.afterIds = append(ld.afterIds, id) } @@ -30,78 +34,55 @@ func (ld *listDiff) reverse() { } func (ld *listDiff) reset() { - ld.before = ld.after - ld.after = make(map[string]string) + ld.beforeIds, ld.afterIds = ld.afterIds, ld.beforeIds ld.afterIds = ld.afterIds[:0] + ld.beforeIdsM = ld.afterIdsM + ld.afterIdsM = make(map[string]struct{}) } func (ld *listDiff) diff(ctx *opCtx, subId string, keys []string) { - var ctxChangesLen = len(ctx.change) - var _ = func(prevId, bPrevId string) bool { - // by changes - ctxChanges := ctx.change[ctxChangesLen:] - for { - found := false - for _, ch := range ctxChanges { - if ch.id == prevId { - found = true - } - } - if found { - if prevId = ld.after[prevId]; prevId == "" { - break - } - } else { - break - } - } - return prevId != bPrevId + for _, id := range ld.afterIds { + ld.afterIdsM[id] = struct{}{} } - var changeNeededAdd = func(prevId, bPrevId string) bool { - // by add - for { - if _, ok := ld.before[prevId]; !ok { - if prevId = ld.after[prevId]; prevId == "" { - break - } - } else { - break - } + + hasBefore := func(id string) bool { + if _, ok := ld.beforeIdsM[id]; ok { + return true } - return prevId != bPrevId + return false } - var id, prevId, bPrevId string - var ok bool - for _, id = range ld.afterIds { - if bPrevId, ok = ld.before[id]; ok { - // change position - if bPrevId != prevId && changeNeededAdd(prevId, bPrevId) { - ctx.change = append(ctx.change, opChange{ - id: id, - subId: subId, - keys: keys, - afterId: prevId, - }) - } - } else { - // add + hasAfter := func(id string) bool { + if _, ok := ld.afterIdsM[id]; ok { + return true + } + return false + } + getPrevId := func(s []string, i int) string { + if i == 0 { + return "" + } + return s[i-1] + } + diffData := diff.Diff(len(ld.beforeIds), len(ld.afterIds), ld) + for _, ch := range diffData { + for i := 0; i < ch.Ins; i++ { + idx := ch.B + i ctx.change = append(ctx.change, opChange{ - id: id, + id: ld.afterIds[idx], subId: subId, keys: keys, - afterId: prevId, - isAdd: true, + afterId: getPrevId(ld.afterIds, idx), + isAdd: !hasBefore(ld.afterIds[idx]), }) } - ld.after[id] = prevId - prevId = id - } - for id = range ld.before { - if _, ok = ld.after[id]; !ok { - ctx.remove = append(ctx.remove, opRemove{ - id: id, - subId: subId, - }) + for i := 0; i < ch.Del; i++ { + idx := ch.A + i + if !hasAfter(ld.beforeIds[idx]) { + ctx.remove = append(ctx.remove, opRemove{ + id: ld.beforeIds[idx], + subId: subId, + }) + } } } } diff --git a/core/subscription/diff_test.go b/core/subscription/diff_test.go index 7dcf9764d..e436c0b91 100644 --- a/core/subscription/diff_test.go +++ b/core/subscription/diff_test.go @@ -3,6 +3,7 @@ package subscription import ( "fmt" "github.com/anytypeio/go-anytype-middleware/util/slice" + "github.com/mb0/diff" "github.com/stretchr/testify/assert" "math/rand" "strings" @@ -10,6 +11,21 @@ import ( "time" ) +type dstrings struct{ a, b []string } + +func (d *dstrings) Equal(i, j int) bool { return d.a[i] == d.b[j] } + +func TestDiff(t *testing.T) { + data := &dstrings{ + a: []string{"1", "2", "3", "4", "5"}, + b: []string{"6", "2", "3", "4", "5", "1"}, + } + d := diff.Diff(len(data.a), len(data.b), data) + for _, ch := range d { + t.Logf("%+v", ch) + } +} + func TestListDiffFuzz(t *testing.T) { var genRandomUniqueSeq = func(l int) []string { ids := map[string]struct{}{} @@ -72,20 +88,24 @@ func TestListDiffFuzz(t *testing.T) { t.Log(dbg) } } else { - //t.Logf("ch: %d; rm: %d; %v", len(ctx.change), len(ctx.remove), resAfter) + t.Logf("ch: %d; rm: %d; %v", len(ctx.change), len(ctx.remove), len(resAfter)) } assert.True(t, ok) return } + /* + checkBeforeAfter([]string{"1", "2", "3", "4", "5", "6"}, []string{"6", "2", "3", "4", "5", "1"}) + return + */ rand.Seed(time.Now().UnixNano()) - var initialLen = 5 + var initialLen = 30 var before, after []string before = genRandomUniqueSeq(initialLen) - for i := 0; i < 100; i++ { - after = genRandomUniqueSeq(initialLen + rand.Intn(1+i)) + for i := 0; i < 1000; i++ { + after = genRandomUniqueSeq(initialLen + rand.Intn(1+5)) if !checkBeforeAfter(before, after) { break } @@ -124,7 +144,7 @@ func BenchmarkDiff(b *testing.B) { } var before, after []string for _, n := range []int{ - 100, 1000, 10000, 100000, + 100, 1000, 10000, } { b.Run(fmt.Sprintf("big-diff-%d", n), benchmark(genData(n, false), genData(n, true))) before = genData(n, false) From daf09dde7fa3950bbc1f675e50db0cc1b2a8313b Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Fri, 11 Feb 2022 00:31:44 +0300 Subject: [PATCH 26/49] rewrite sorted sub to diff strings --- core/subscription/context.go | 59 +++++++++++------------ core/subscription/diff.go | 12 +++-- core/subscription/diff_test.go | 22 ++------- core/subscription/simple.go | 3 +- core/subscription/sorted.go | 74 +++++++++++++++++++++-------- core/subscription/sorted_test.go | 4 +- core/subscription/testutils_test.go | 7 +-- 7 files changed, 102 insertions(+), 79 deletions(-) diff --git a/core/subscription/context.go b/core/subscription/context.go index 9d519fb94..ef353699d 100644 --- a/core/subscription/context.go +++ b/core/subscription/context.go @@ -9,11 +9,9 @@ import ( ) type opChange struct { - id string - subId string - keys []string - afterId string - isAdd bool + id string + subId string + keys []string } type opRemove struct { @@ -25,6 +23,8 @@ type opPosition struct { id string subId string afterId string + keys []string + isAdd bool } type opCounter struct { @@ -38,7 +38,6 @@ type opCtx struct { // subIds for remove remove []opRemove change []opChange - add []opChange position []opPosition counters []opCounter entries []*entry @@ -55,18 +54,30 @@ type opCtx struct { func (ctx *opCtx) apply() (event *pb.Event) { var subMsgs = make([]*pb.EventMessage, 0, 10) - // adds - for _, add := range ctx.add { - ctx.collectKeys(add.id, add.subId, add.keys) - subMsgs = append(subMsgs, &pb.EventMessage{ - Value: &pb.EventMessageValueOfSubscriptionAdd{ - SubscriptionAdd: &pb.EventObjectSubscriptionAdd{ - Id: add.id, - AfterId: add.afterId, - SubId: add.subId, + // adds, positions + for _, pos := range ctx.position { + if pos.isAdd { + ctx.collectKeys(pos.id, pos.subId, pos.keys) + subMsgs = append(subMsgs, &pb.EventMessage{ + Value: &pb.EventMessageValueOfSubscriptionAdd{ + SubscriptionAdd: &pb.EventObjectSubscriptionAdd{ + Id: pos.id, + AfterId: pos.afterId, + SubId: pos.subId, + }, }, - }, - }) + }) + } else { + subMsgs = append(subMsgs, &pb.EventMessage{ + Value: &pb.EventMessageValueOfSubscriptionPosition{ + SubscriptionPosition: &pb.EventObjectSubscriptionPosition{ + Id: pos.id, + AfterId: pos.afterId, + SubId: pos.subId, + }, + }, + }) + } } // changes @@ -77,19 +88,6 @@ func (ctx *opCtx) apply() (event *pb.Event) { // details events eventMsgs := ctx.detailsEvents() - // positions - for _, pos := range ctx.position { - subMsgs = append(subMsgs, &pb.EventMessage{ - Value: &pb.EventMessageValueOfSubscriptionPosition{ - SubscriptionPosition: &pb.EventObjectSubscriptionPosition{ - Id: pos.id, - AfterId: pos.afterId, - SubId: pos.subId, - }, - }, - }) - } - // removes for _, rem := range ctx.remove { subMsgs = append(subMsgs, &pb.EventMessage{ @@ -206,7 +204,6 @@ func (ctx *opCtx) getEntry(id string) *entry { func (ctx *opCtx) reset() { ctx.remove = ctx.remove[:0] ctx.change = ctx.change[:0] - ctx.add = ctx.add[:0] ctx.position = ctx.position[:0] ctx.counters = ctx.counters[:0] ctx.keysBuf = ctx.keysBuf[:0] diff --git a/core/subscription/diff.go b/core/subscription/diff.go index 40ff07e6f..8ad2ca5cd 100644 --- a/core/subscription/diff.go +++ b/core/subscription/diff.go @@ -40,7 +40,7 @@ func (ld *listDiff) reset() { ld.afterIdsM = make(map[string]struct{}) } -func (ld *listDiff) diff(ctx *opCtx, subId string, keys []string) { +func (ld *listDiff) diff(ctx *opCtx, subId string, keys []string) (wasAddOrRemove bool) { for _, id := range ld.afterIds { ld.afterIdsM[id] = struct{}{} } @@ -67,13 +67,17 @@ func (ld *listDiff) diff(ctx *opCtx, subId string, keys []string) { for _, ch := range diffData { for i := 0; i < ch.Ins; i++ { idx := ch.B + i - ctx.change = append(ctx.change, opChange{ + isAdd := !hasBefore(ld.afterIds[idx]) + ctx.position = append(ctx.position, opPosition{ id: ld.afterIds[idx], subId: subId, keys: keys, afterId: getPrevId(ld.afterIds, idx), - isAdd: !hasBefore(ld.afterIds[idx]), + isAdd: isAdd, }) + if isAdd { + wasAddOrRemove = true + } } for i := 0; i < ch.Del; i++ { idx := ch.A + i @@ -82,7 +86,9 @@ func (ld *listDiff) diff(ctx *opCtx, subId string, keys []string) { id: ld.beforeIds[idx], subId: subId, }) + wasAddOrRemove = true } } } + return } diff --git a/core/subscription/diff_test.go b/core/subscription/diff_test.go index e436c0b91..fca0e7131 100644 --- a/core/subscription/diff_test.go +++ b/core/subscription/diff_test.go @@ -3,7 +3,6 @@ package subscription import ( "fmt" "github.com/anytypeio/go-anytype-middleware/util/slice" - "github.com/mb0/diff" "github.com/stretchr/testify/assert" "math/rand" "strings" @@ -11,21 +10,6 @@ import ( "time" ) -type dstrings struct{ a, b []string } - -func (d *dstrings) Equal(i, j int) bool { return d.a[i] == d.b[j] } - -func TestDiff(t *testing.T) { - data := &dstrings{ - a: []string{"1", "2", "3", "4", "5"}, - b: []string{"6", "2", "3", "4", "5", "1"}, - } - d := diff.Diff(len(data.a), len(data.b), data) - for _, ch := range d { - t.Logf("%+v", ch) - } -} - func TestListDiffFuzz(t *testing.T) { var genRandomUniqueSeq = func(l int) []string { ids := map[string]struct{}{} @@ -39,7 +23,7 @@ func TestListDiffFuzz(t *testing.T) { return res } - var chToString = func(ch opChange) string { + var chToString = func(ch opPosition) string { if ch.isAdd { return fmt.Sprintf("add: %s after: %s", ch.id, ch.afterId) } @@ -59,7 +43,7 @@ func TestListDiffFuzz(t *testing.T) { var resAfter = make([]string, len(before)) copy(resAfter, before) - for i, ch := range ctx.change { + for i, ch := range ctx.position { if !ch.isAdd { resAfter = slice.Remove(resAfter, ch.id) } @@ -88,7 +72,7 @@ func TestListDiffFuzz(t *testing.T) { t.Log(dbg) } } else { - t.Logf("ch: %d; rm: %d; %v", len(ctx.change), len(ctx.remove), len(resAfter)) + t.Logf("ch: %d; rm: %d; %v", len(ctx.position), len(ctx.remove), len(resAfter)) } assert.True(t, ok) return diff --git a/core/subscription/simple.go b/core/subscription/simple.go index 92bd567ab..b40109f91 100644 --- a/core/subscription/simple.go +++ b/core/subscription/simple.go @@ -69,10 +69,11 @@ func (s *simpleSub) refill(ctx *opCtx, entries []*entry) { keys: s.keys, }) } else { - ctx.add = append(ctx.add, opChange{ + ctx.position = append(ctx.position, opPosition{ id: e.id, subId: s.id, keys: s.keys, + isAdd: true, }) } newSet[e.id] = struct{}{} diff --git a/core/subscription/sorted.go b/core/subscription/sorted.go index 794f918cc..1a533e551 100644 --- a/core/subscription/sorted.go +++ b/core/subscription/sorted.go @@ -47,7 +47,8 @@ type sortedSub struct { forceSubIds []string disableDep bool - compIdsBefore, compIdsAfter []string + diff *listDiff + compCountBefore, compCountAfter opCounter cache *cache @@ -62,7 +63,6 @@ func (s *sortedSub) init(entries []*entry) (err error) { s.close() } }() - for i, e := range entries { e = s.cache.GetOrSet(e) entries[i] = e @@ -110,12 +110,14 @@ func (s *sortedSub) init(entries []*entry) (err error) { } activeEntries := s.getActiveEntries() - for _, ae := range activeEntries { + var activeIds = make([]string, len(activeEntries)) + for i, ae := range activeEntries { ae.SetSub(s.id, true) - s.compIdsBefore = append(s.compIdsBefore, s.id) + activeIds[i] = ae.id } + s.diff = newListDiff(activeIds) s.compCountBefore.subId = s.id - s.compCountBefore.prevCount, s.compCountAfter.nextCount = s.counters() + s.compCountBefore.prevCount, s.compCountBefore.nextCount = s.counters() s.compCountBefore.total = s.skl.Len() if s.ds != nil && !s.disableDep { @@ -128,25 +130,57 @@ func (s *sortedSub) init(entries []*entry) (err error) { } func (s *sortedSub) onChange(ctx *opCtx) { + var changed bool for _, e := range ctx.entries { - s.onEntryChange(ctx, e) - } - s.compIdsAfter = s.compIdsAfter[:0] - if s.iterateActive(func(e *entry) { - s.compIdsAfter = append(s.compIdsAfter, e.id) - }) { - for i, j := 0, len(s.compIdsAfter)-1; i < j; i, j = i+1, j-1 { - s.compIdsAfter[i], s.compIdsAfter[j] = s.compIdsAfter[j], s.compIdsAfter[i] + if !s.onEntryChange(ctx, e) { + changed = true } } + if !changed { + return + } + defer s.diff.reset() + s.activeEntriesBuf = s.activeEntriesBuf[:0] + if s.iterateActive(func(e *entry) { + s.diff.fillAfter(e.id) + if s.depSub != nil { + s.activeEntriesBuf = append(s.activeEntriesBuf, e) + } + }) { + s.diff.reverse() + } + + s.compCountAfter.subId = s.id + s.compCountAfter.prevCount, s.compCountAfter.nextCount = s.counters() + s.compCountAfter.total = s.skl.Len() + + if s.compCountAfter != s.compCountBefore { + ctx.counters = append(ctx.counters, s.compCountAfter) + s.compCountBefore = s.compCountAfter + } + + wasAddOrRemove := s.diff.diff(ctx, s.id, s.keys) + + hasChanges := false + for _, e := range ctx.entries { + if _, ok := s.diff.afterIdsM[e.id]; ok { + e.SetSub(s.id, true) + } + ctx.change = append(ctx.change, opChange{ + id: e.id, + subId: s.id, + keys: s.keys, + }) + hasChanges = true + } + + if (wasAddOrRemove || hasChanges) && s.depSub != nil { + s.ds.refillSubscription(ctx, s.depSub, s.activeEntriesBuf, s.depKeys) + } - /* - if activeChanged && s.depSub != nil { - s.ds.refillSubscription(ctx, s.depSub, s.getActiveEntries(), s.depKeys) - }*/ } -func (s *sortedSub) onEntryChange(ctx *opCtx, e *entry) { +func (s *sortedSub) onEntryChange(ctx *opCtx, e *entry) (noChange bool) { newInSet := true if s.filter != nil { newInSet = s.filter.FilterObject(e) @@ -155,12 +189,12 @@ func (s *sortedSub) onEntryChange(ctx *opCtx, e *entry) { curInSet := curr != nil // nothing if !curInSet && !newInSet { - return + return true } // remove if curInSet && !newInSet { s.skl.Remove(curr) - curr.RemoveSubId(s.id) + e.RemoveSubId(s.id) return } // add diff --git a/core/subscription/sorted_test.go b/core/subscription/sorted_test.go index 7e8fdac6b..555c43005 100644 --- a/core/subscription/sorted_test.go +++ b/core/subscription/sorted_test.go @@ -33,7 +33,7 @@ func TestSubscription_Add(t *testing.T) { ctx := &opCtx{c: sub.cache, entries: newEntries} sub.onChange(ctx) - assertCtxAdd(t, ctx, "newActiveId1", "id3") + assertCtxAdd(t, ctx, "newActiveId1", "") assertCtxAdd(t, ctx, "newActiveId2", "newActiveId1") assertCtxRemove(t, ctx, "id5", "id6") assertCtxCounters(t, ctx, opCounter{subId: "test", total: 14, prevCount: 4, nextCount: 7}) @@ -101,7 +101,7 @@ func TestSubscription_Change(t *testing.T) { data: &types.Struct{Fields: map[string]*types.Value{"id": pbtypes.String("id4"), "order": pbtypes.Int64(6)}}, }) sub.onChange(ctx) - assertCtxPosition(t, ctx, "id4", "id5") + assertCtxPosition(t, ctx, "id5", "") assertCtxChange(t, ctx, "id4") }) } diff --git a/core/subscription/testutils_test.go b/core/subscription/testutils_test.go index 6d563d4b3..cf4030a20 100644 --- a/core/subscription/testutils_test.go +++ b/core/subscription/testutils_test.go @@ -40,10 +40,11 @@ func genEntry(id string, ord int64) *entry { func assertCtxAdd(t *testing.T, ctx *opCtx, id, afterId string) { var found bool - for _, add := range ctx.add { - if add.id == id { + for _, add := range ctx.position { + if add.isAdd && add.id == id { found = true assert.Equal(t, afterId, add.afterId, "add after id not equal") + break } } assert.True(t, found, fmt.Sprintf("add id %v not found", id)) @@ -55,6 +56,7 @@ func assertCtxPosition(t *testing.T, ctx *opCtx, id, afterId string) { if pos.id == id { found = true assert.Equal(t, afterId, pos.afterId, "pos after id not equal") + break } } assert.True(t, found, fmt.Sprintf("pos id %v not found", id)) @@ -93,7 +95,6 @@ func assertCtxChange(t *testing.T, ctx *opCtx, ids ...string) { } func assertCtxEmpty(t *testing.T, ctx *opCtx) { - assert.Len(t, ctx.add, 0, "add not empty") assert.Len(t, ctx.remove, 0, "remove not empty") assert.Len(t, ctx.counters, 0, "counters not empty") assert.Len(t, ctx.change, 0, "change not empty") From a54611fef0540ed94119834b65f98a8585e7891d Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Fri, 11 Feb 2022 11:02:24 +0100 Subject: [PATCH 27/49] AccountCreate: add network conditions error codes --- core/account.go | 61 +- docs/proto.md | 4 + pb/commands.pb.go | 1278 +++++++++++++++++++------------------- pb/protos/commands.proto | 5 + 4 files changed, 703 insertions(+), 645 deletions(-) diff --git a/core/account.go b/core/account.go index ea63e132f..86874f279 100644 --- a/core/account.go +++ b/core/account.go @@ -7,11 +7,14 @@ import ( "encoding/json" "fmt" "io/ioutil" + "net" "net/http" + "net/url" "os" "path/filepath" "strings" "sync" + "syscall" "time" "github.com/anytypeio/go-anytype-middleware/app" @@ -44,9 +47,9 @@ type AlphaInviteErrorResponse struct { Error string `json:"error"` } -func checkInviteCode(cfg *config.Config, code string, account string) error { +func checkInviteCode(cfg *config.Config, code string, account string) (errorCode pb.RpcAccountCreateResponseErrorCode, err error) { if code == "" { - return fmt.Errorf("invite code is empty") + return pb.RpcAccountCreateResponseError_BAD_INPUT, fmt.Errorf("invite code is empty") } jsonStr, err := json.Marshal(AlphaInviteRequest{ @@ -59,51 +62,81 @@ func checkInviteCode(cfg *config.Config, code string, account string) error { req, err := http.NewRequest("POST", cfg.CafeUrl()+"/alpha-invite", bytes.NewBuffer(jsonStr)) req.Header.Set("Content-Type", "application/json") + checkNetError := func(err error) (netOpError bool, offline bool) { + if netErr, ok := err.(*net.OpError); ok { + if syscallErr, ok := netErr.Err.(*os.SyscallError); ok { + if syscallErr.Err == syscall.ENETDOWN || syscallErr.Err == syscall.ENETUNREACH { + return true, true + } + } + return true, false + } + return false, false + } + client := &http.Client{} resp, err := client.Do(req) if err != nil { - return fmt.Errorf("failed to access cafe server: %s", err.Error()) + var netOpErr bool + if urlErr, ok := err.(*url.Error); ok { + var offline bool + if netOpErr, offline = checkNetError(urlErr.Err); offline { + return pb.RpcAccountCreateResponseError_NET_OFFLINE, err + } + } + + if netOpErr { + // additionally, check connection to the opendns ip + _, err2 := net.DialTimeout("tcp", "1.1.1.1:80", time.Second*5) + _, offline := checkNetError(err2) + if offline { + return pb.RpcAccountCreateResponseError_NET_OFFLINE, err + } + return pb.RpcAccountCreateResponseError_NET_CONNECTION_REFUSED, err + } + + return pb.RpcAccountCreateResponseError_NET_ERROR, err } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { - return fmt.Errorf("failed to read response body: %s", err.Error()) + return pb.RpcAccountCreateResponseError_NET_ERROR, fmt.Errorf("failed to read response body: %s", err.Error()) } if resp.StatusCode != 200 { respJson := AlphaInviteErrorResponse{} err = json.Unmarshal(body, &respJson) - return fmt.Errorf(respJson.Error) + return pb.RpcAccountCreateResponseError_BAD_INVITE_CODE, fmt.Errorf(respJson.Error) } respJson := AlphaInviteResponse{} err = json.Unmarshal(body, &respJson) if err != nil { - return fmt.Errorf("failed to decode response json: %s", err.Error()) + return pb.RpcAccountCreateResponseError_UNKNOWN_ERROR, fmt.Errorf("failed to decode response json: %s", err.Error()) } pubk, err := wallet.NewPubKeyFromAddress(wallet.KeypairTypeDevice, cfg.CafePeerId) if err != nil { - return fmt.Errorf("failed to decode cafe pubkey: %s", err.Error()) + return pb.RpcAccountCreateResponseError_UNKNOWN_ERROR, fmt.Errorf("failed to decode cafe pubkey: %s", err.Error()) } signature, err := base64.RawStdEncoding.DecodeString(respJson.Signature) if err != nil { - return fmt.Errorf("failed to decode cafe signature: %s", err.Error()) + return pb.RpcAccountCreateResponseError_UNKNOWN_ERROR, fmt.Errorf("failed to decode cafe signature: %s", err.Error()) } valid, err := pubk.Verify([]byte(code+account), signature) if err != nil { - return fmt.Errorf("failed to verify cafe signature: %s", err.Error()) + return pb.RpcAccountCreateResponseError_UNKNOWN_ERROR, fmt.Errorf("failed to verify cafe signature: %s", err.Error()) } if !valid { - return fmt.Errorf("invalid signature") + return pb.RpcAccountCreateResponseError_UNKNOWN_ERROR, fmt.Errorf("invalid signature") } - return nil + return pb.RpcAccountCreateResponseError_NULL, nil } func (mw *Middleware) getAccountConfig() *pb.RpcAccountConfig { @@ -162,8 +195,8 @@ func (mw *Middleware) AccountCreate(req *pb.RpcAccountCreateRequest) *pb.RpcAcco continue } - if err := checkInviteCode(cfg, req.AlphaInviteCode, account.Address()); err != nil { - return response(nil, pb.RpcAccountCreateResponseError_BAD_INVITE_CODE, err) + if code, err := checkInviteCode(cfg, req.AlphaInviteCode, account.Address()); err != nil { + return response(nil, code, err) } seedRaw, err := account.Raw() @@ -182,7 +215,7 @@ func (mw *Middleware) AccountCreate(req *pb.RpcAccountCreateRequest) *pb.RpcAcco anytype.BootstrapWallet(mw.rootPath, account.Address()), mw.EventSender, } - + if mw.app, err = anytype.StartNewApp(comps...); err != nil { return response(newAcc, pb.RpcAccountCreateResponseError_ACCOUNT_CREATED_BUT_FAILED_TO_START_NODE, err) } diff --git a/docs/proto.md b/docs/proto.md index ab6318d22..4cb5302a4 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -11269,6 +11269,9 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er | ACCOUNT_CREATED_BUT_FAILED_TO_SET_AVATAR | 103 | | | FAILED_TO_STOP_RUNNING_NODE | 104 | | | BAD_INVITE_CODE | 900 | | +| NET_ERROR | 901 | means general network error | +| NET_CONNECTION_REFUSED | 902 | means we wasn't able to connect to the cafe server | +| NET_OFFLINE | 903 | client can additionally support this error code to notify user that device is offline | @@ -12805,6 +12808,7 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er | NULL | 0 | | | UNKNOWN_ERROR | 1 | | | BAD_INPUT | 2 | | +| ALREADY_EXISTS | 10 | | diff --git a/pb/commands.pb.go b/pb/commands.pb.go index c0553ba74..dd5c95841 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -2511,6 +2511,9 @@ const ( RpcAccountCreateResponseError_ACCOUNT_CREATED_BUT_FAILED_TO_SET_AVATAR RpcAccountCreateResponseErrorCode = 103 RpcAccountCreateResponseError_FAILED_TO_STOP_RUNNING_NODE RpcAccountCreateResponseErrorCode = 104 RpcAccountCreateResponseError_BAD_INVITE_CODE RpcAccountCreateResponseErrorCode = 900 + RpcAccountCreateResponseError_NET_ERROR RpcAccountCreateResponseErrorCode = 901 + RpcAccountCreateResponseError_NET_CONNECTION_REFUSED RpcAccountCreateResponseErrorCode = 902 + RpcAccountCreateResponseError_NET_OFFLINE RpcAccountCreateResponseErrorCode = 903 ) var RpcAccountCreateResponseErrorCode_name = map[int32]string{ @@ -2522,6 +2525,9 @@ var RpcAccountCreateResponseErrorCode_name = map[int32]string{ 103: "ACCOUNT_CREATED_BUT_FAILED_TO_SET_AVATAR", 104: "FAILED_TO_STOP_RUNNING_NODE", 900: "BAD_INVITE_CODE", + 901: "NET_ERROR", + 902: "NET_CONNECTION_REFUSED", + 903: "NET_OFFLINE", } var RpcAccountCreateResponseErrorCode_value = map[string]int32{ @@ -2533,6 +2539,9 @@ var RpcAccountCreateResponseErrorCode_value = map[string]int32{ "ACCOUNT_CREATED_BUT_FAILED_TO_SET_AVATAR": 103, "FAILED_TO_STOP_RUNNING_NODE": 104, "BAD_INVITE_CODE": 900, + "NET_ERROR": 901, + "NET_CONNECTION_REFUSED": 902, + "NET_OFFLINE": 903, } func (x RpcAccountCreateResponseErrorCode) String() string { @@ -3542,21 +3551,24 @@ func (RpcObjectAddWithObjectIdResponseErrorCode) EnumDescriptor() ([]byte, []int type RpcObjectRelationAddResponseErrorCode int32 const ( - RpcObjectRelationAddResponseError_NULL RpcObjectRelationAddResponseErrorCode = 0 - RpcObjectRelationAddResponseError_UNKNOWN_ERROR RpcObjectRelationAddResponseErrorCode = 1 - RpcObjectRelationAddResponseError_BAD_INPUT RpcObjectRelationAddResponseErrorCode = 2 + RpcObjectRelationAddResponseError_NULL RpcObjectRelationAddResponseErrorCode = 0 + RpcObjectRelationAddResponseError_UNKNOWN_ERROR RpcObjectRelationAddResponseErrorCode = 1 + RpcObjectRelationAddResponseError_BAD_INPUT RpcObjectRelationAddResponseErrorCode = 2 + RpcObjectRelationAddResponseError_ALREADY_EXISTS RpcObjectRelationAddResponseErrorCode = 10 ) var RpcObjectRelationAddResponseErrorCode_name = map[int32]string{ - 0: "NULL", - 1: "UNKNOWN_ERROR", - 2: "BAD_INPUT", + 0: "NULL", + 1: "UNKNOWN_ERROR", + 2: "BAD_INPUT", + 10: "ALREADY_EXISTS", } var RpcObjectRelationAddResponseErrorCode_value = map[string]int32{ - "NULL": 0, - "UNKNOWN_ERROR": 1, - "BAD_INPUT": 2, + "NULL": 0, + "UNKNOWN_ERROR": 1, + "BAD_INPUT": 2, + "ALREADY_EXISTS": 10, } func (x RpcObjectRelationAddResponseErrorCode) String() string { @@ -38551,634 +38563,638 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 10024 bytes of a gzipped FileDescriptorProto + // 10089 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x7b, 0x94, 0x24, 0x57, - 0x79, 0x9f, 0xba, 0xab, 0x5f, 0xf3, 0xed, 0xce, 0x6e, 0xab, 0x58, 0x56, 0xe3, 0x8b, 0x58, 0xc4, - 0x22, 0x09, 0x21, 0x8b, 0x5e, 0xb4, 0x42, 0x20, 0x09, 0x3d, 0xe8, 0xe9, 0xe9, 0xd9, 0x6d, 0xed, - 0x4c, 0xf7, 0xb8, 0xba, 0x67, 0x17, 0x05, 0x27, 0x93, 0x9a, 0xee, 0x3b, 0x33, 0xc5, 0xd4, 0x54, - 0x35, 0x55, 0xd5, 0xb3, 0x1a, 0xce, 0x71, 0x12, 0xc0, 0x04, 0x1b, 0x0e, 0xc4, 0xe0, 0x07, 0x20, - 0x62, 0x1e, 0xc2, 0x18, 0x83, 0x79, 0x58, 0x18, 0x2c, 0x1e, 0x21, 0x60, 0x47, 0x98, 0x87, 0x71, - 0x0c, 0xf1, 0x03, 0x83, 0x0f, 0x04, 0x8b, 0x70, 0x4e, 0x12, 0x99, 0x60, 0x1c, 0x6c, 0x07, 0xfb, - 0x10, 0xe7, 0xd4, 0xad, 0x5b, 0x8f, 0xdb, 0xd3, 0x55, 0x7d, 0xab, 0xa7, 0xaa, 0x67, 0x39, 0xf9, - 0xab, 0xfb, 0xde, 0xba, 0x75, 0xef, 0x77, 0xbf, 0xdf, 0x77, 0x1f, 0xf5, 0xdd, 0xef, 0x7e, 0x1f, - 0xcc, 0xf5, 0xd7, 0xcf, 0xf4, 0x0d, 0xdd, 0xd2, 0xcd, 0x33, 0x5d, 0x7d, 0x67, 0x47, 0xd6, 0x7a, - 0x66, 0x85, 0xa4, 0xc5, 0xa2, 0xac, 0xed, 0x59, 0x7b, 0x7d, 0x8c, 0xae, 0xef, 0x6f, 0x6f, 0x9e, - 0x51, 0x95, 0xf5, 0x33, 0xfd, 0xf5, 0x33, 0x3b, 0x7a, 0x0f, 0xab, 0xee, 0x0b, 0x24, 0x41, 0x8b, - 0xa3, 0x9b, 0xc2, 0x4a, 0xa9, 0x7a, 0x57, 0x56, 0x4d, 0x4b, 0x37, 0x30, 0x2d, 0x79, 0xd2, 0x6f, - 0x12, 0xef, 0x62, 0xcd, 0x72, 0x6b, 0xb8, 0x76, 0x53, 0xd7, 0x37, 0x55, 0xec, 0x3c, 0x5b, 0x1f, - 0x6c, 0x9c, 0x31, 0x2d, 0x63, 0xd0, 0xb5, 0x9c, 0xa7, 0xa7, 0x7f, 0xff, 0xa1, 0x1c, 0x08, 0x52, - 0xbf, 0x8b, 0x1e, 0xcb, 0x42, 0x71, 0x19, 0x5b, 0x86, 0xd2, 0x35, 0xd1, 0xc7, 0xb2, 0x30, 0xdb, - 0xc6, 0xd6, 0x8a, 0x6c, 0xc8, 0x3b, 0xd8, 0xc2, 0x86, 0x89, 0x6e, 0x80, 0xa2, 0x84, 0x5f, 0x3a, - 0xc0, 0xa6, 0x25, 0x22, 0x28, 0xf5, 0x55, 0xd9, 0xda, 0xd0, 0x8d, 0x9d, 0xb9, 0xcc, 0x75, 0x99, - 0x9b, 0x66, 0x24, 0x2f, 0x8d, 0xfe, 0x29, 0x03, 0x25, 0x09, 0x9b, 0x7d, 0x5d, 0x33, 0xb1, 0x78, - 0x0e, 0xf2, 0xd8, 0x30, 0x74, 0x83, 0x94, 0x3a, 0x72, 0xf6, 0xd6, 0x0a, 0xed, 0x79, 0x45, 0xea, - 0x77, 0x2b, 0xb4, 0xa9, 0x0a, 0xd3, 0x4c, 0xc5, 0x7d, 0xb7, 0x52, 0xb7, 0x5f, 0x94, 0x9c, 0xf7, - 0xd1, 0x7b, 0x33, 0x90, 0x27, 0x19, 0xe2, 0xfd, 0x90, 0xeb, 0xea, 0x3d, 0x4c, 0x6a, 0x3c, 0x76, - 0xf6, 0x79, 0xb1, 0x6b, 0xac, 0xd4, 0xf4, 0x1e, 0x96, 0x48, 0x1d, 0xe2, 0x75, 0x70, 0xa4, 0x87, - 0xcd, 0xae, 0xa1, 0xf4, 0x2d, 0x45, 0xd7, 0xe6, 0xb2, 0xa4, 0x2b, 0xc1, 0xac, 0xd3, 0x67, 0x21, - 0x67, 0x97, 0x17, 0x4b, 0x90, 0x6b, 0xae, 0x2e, 0x2d, 0x95, 0xaf, 0x12, 0xaf, 0x86, 0xd9, 0xd5, - 0xe6, 0x85, 0x66, 0xeb, 0x52, 0x73, 0xad, 0x2e, 0x49, 0x2d, 0xa9, 0x9c, 0x11, 0x67, 0x61, 0x66, - 0xbe, 0xba, 0xb0, 0xd6, 0x68, 0xae, 0xac, 0x76, 0xca, 0x59, 0xf4, 0x3f, 0x0b, 0x70, 0xb4, 0xfe, - 0xa0, 0x85, 0x0d, 0x4d, 0x56, 0x17, 0x0c, 0xbd, 0x8f, 0x1e, 0x17, 0x20, 0xbf, 0xa8, 0xa8, 0xd8, - 0x44, 0x1f, 0xcc, 0xf8, 0x4c, 0xbc, 0x16, 0x66, 0xba, 0xba, 0x66, 0xe1, 0x07, 0xad, 0x46, 0x8f, - 0x72, 0xd1, 0xcf, 0x10, 0x4f, 0xc3, 0xd1, 0x9e, 0xa1, 0xf7, 0x3b, 0xb2, 0xb1, 0x89, 0xed, 0x02, - 0x0e, 0x6d, 0x4c, 0x9e, 0x78, 0x27, 0x94, 0xfa, 0xba, 0xa9, 0x10, 0xda, 0x05, 0xc2, 0x8e, 0xa7, - 0x7a, 0xec, 0x20, 0x82, 0x52, 0x99, 0x57, 0xf5, 0xee, 0x76, 0x65, 0x85, 0x16, 0x92, 0xbc, 0xe2, - 0xe2, 0x8d, 0x70, 0x8c, 0x48, 0x8f, 0x4d, 0xd6, 0x8a, 0x6c, 0x6d, 0x99, 0x73, 0xb9, 0xeb, 0x84, - 0x9b, 0x66, 0xa4, 0xa1, 0x5c, 0xf4, 0x9e, 0x6c, 0x00, 0xcd, 0x05, 0x16, 0xcd, 0x0a, 0xc3, 0xfb, - 0x60, 0x8f, 0x2b, 0xa4, 0xb7, 0xa3, 0xa1, 0x14, 0x6f, 0x81, 0x3c, 0x11, 0x4e, 0xd2, 0xa5, 0x23, - 0x67, 0x4f, 0xfa, 0xb5, 0xd0, 0xe2, 0x75, 0xfb, 0xa9, 0xe4, 0x14, 0x42, 0xbf, 0xee, 0x01, 0x7f, - 0x8e, 0x01, 0xfe, 0xb6, 0x78, 0x8d, 0xa7, 0x8f, 0xfa, 0x0f, 0xb2, 0x50, 0xac, 0xd9, 0xf0, 0x69, - 0x16, 0x52, 0x78, 0x51, 0xbe, 0x11, 0x8e, 0x6d, 0xe8, 0xdd, 0x81, 0x89, 0x7b, 0x04, 0x29, 0x0f, - 0xe7, 0xa1, 0x5c, 0x71, 0x0e, 0x8a, 0x5d, 0xa7, 0x6e, 0x02, 0xf4, 0x51, 0xc9, 0x4d, 0xa2, 0x1f, - 0x05, 0x87, 0xdb, 0x22, 0x0b, 0xd0, 0x73, 0xc2, 0x79, 0x44, 0x29, 0x0d, 0x19, 0x6d, 0xbf, 0xe1, - 0x31, 0xbd, 0xc1, 0x30, 0xfd, 0xf6, 0xb8, 0x15, 0xa6, 0xcf, 0xf6, 0x3f, 0x3e, 0x03, 0x33, 0x84, - 0x4b, 0x4b, 0x8a, 0x69, 0xa1, 0x0f, 0x09, 0x70, 0xb2, 0xa6, 0x6b, 0xbb, 0xd8, 0xb0, 0x6a, 0x5b, - 0x8a, 0xda, 0x33, 0xb0, 0xd6, 0xd1, 0x57, 0xe4, 0x4d, 0x6c, 0xa2, 0x2e, 0x2f, 0x26, 0x08, 0x4a, - 0xeb, 0x0e, 0xdb, 0xcd, 0xb9, 0x2c, 0x19, 0x14, 0x5e, 0x5a, 0x3c, 0x05, 0xa0, 0xaf, 0xbf, 0x04, - 0x77, 0xad, 0xce, 0x5e, 0x1f, 0x13, 0x28, 0x66, 0xa4, 0x40, 0x0e, 0xfa, 0x50, 0x70, 0xb8, 0x48, - 0x2c, 0x1a, 0x77, 0x33, 0xcc, 0xf3, 0x68, 0xae, 0x8c, 0xa6, 0x37, 0x64, 0xf0, 0xcc, 0x41, 0x51, - 0x55, 0xb4, 0x00, 0x6d, 0x6e, 0x12, 0x7d, 0xc4, 0xc3, 0x6c, 0x95, 0xc1, 0xac, 0x7a, 0x90, 0x66, - 0xd3, 0xc7, 0xef, 0xef, 0x05, 0xc8, 0x2d, 0xeb, 0xbb, 0x18, 0x7d, 0x29, 0x93, 0x04, 0x40, 0x37, - 0xc1, 0x71, 0x8b, 0x4c, 0x8f, 0x35, 0xef, 0x7d, 0x07, 0xa5, 0xe1, 0xec, 0x7d, 0x13, 0x6c, 0x6e, - 0xcc, 0x04, 0x9b, 0x8f, 0x35, 0xc1, 0xa2, 0xb7, 0x07, 0x25, 0xe1, 0x85, 0xac, 0x24, 0xdc, 0x1c, - 0x02, 0x89, 0xcd, 0x87, 0x44, 0x26, 0xcd, 0x87, 0x3d, 0x59, 0xa8, 0x31, 0xb2, 0x70, 0x86, 0xbf, - 0xe1, 0xf4, 0x91, 0xff, 0xed, 0x1c, 0xcc, 0xda, 0x0d, 0x77, 0xf4, 0x26, 0xbe, 0x6c, 0x0b, 0x1f, - 0xfa, 0xd3, 0x44, 0x44, 0xe0, 0x56, 0x28, 0xf6, 0xb0, 0x25, 0x2b, 0xaa, 0x49, 0xa0, 0x3f, 0x72, - 0xf6, 0x9a, 0x8a, 0xb3, 0xfd, 0xa9, 0xb8, 0xdb, 0x9f, 0x4a, 0x9b, 0x6c, 0x7f, 0x24, 0xb7, 0x5c, - 0xda, 0xb2, 0xf0, 0x85, 0xa0, 0x2c, 0x34, 0x58, 0x59, 0xb8, 0x2d, 0x02, 0x12, 0x8f, 0x33, 0x21, - 0x42, 0x71, 0x12, 0x0a, 0xce, 0xe8, 0xa7, 0x90, 0xd0, 0x94, 0x2f, 0x2c, 0x02, 0x8f, 0xb0, 0xfc, - 0xa6, 0x27, 0x2c, 0x4b, 0x8c, 0xb0, 0xdc, 0x31, 0x01, 0x65, 0xe9, 0x4b, 0xcd, 0x5f, 0x0b, 0x30, - 0xb3, 0x30, 0xe8, 0xab, 0x4a, 0x57, 0xb6, 0x30, 0x7a, 0x28, 0x8e, 0xc4, 0x58, 0xec, 0x5e, 0xca, - 0x4b, 0x33, 0xd2, 0x24, 0x0c, 0x49, 0x53, 0x10, 0xf6, 0x5c, 0x3c, 0xd8, 0x3f, 0x1b, 0x84, 0xbd, - 0xce, 0xc2, 0x1e, 0x36, 0x12, 0xbd, 0xae, 0x85, 0x40, 0x1e, 0x25, 0xf8, 0xf1, 0x60, 0x7f, 0x8f, - 0x07, 0xfb, 0x79, 0x06, 0xf6, 0xe7, 0xc6, 0xa4, 0x2c, 0x7d, 0xc8, 0x3f, 0x72, 0x2d, 0x08, 0x6d, - 0x6c, 0xa1, 0x5f, 0x03, 0xc8, 0x75, 0xf0, 0x83, 0x16, 0xfa, 0x3d, 0x01, 0xf2, 0x6d, 0x6b, 0x4f, - 0xc5, 0xe8, 0x15, 0x89, 0xcc, 0x18, 0xf7, 0x40, 0xde, 0xb4, 0xab, 0xa3, 0x9b, 0xe8, 0x67, 0x8e, - 0x04, 0xd8, 0xdd, 0xe0, 0xd8, 0x14, 0x54, 0x48, 0xeb, 0x92, 0xf3, 0x16, 0xfa, 0xed, 0x20, 0xce, - 0xf7, 0xb3, 0x38, 0x87, 0x71, 0xb3, 0x8d, 0x83, 0x35, 0x25, 0x32, 0xe9, 0xbf, 0xdf, 0x03, 0x74, - 0x99, 0x01, 0xf4, 0xce, 0x49, 0x48, 0x48, 0x1f, 0xd5, 0x37, 0x0b, 0x90, 0xaf, 0xe9, 0xaa, 0x6e, - 0xa0, 0x07, 0x92, 0xc0, 0xf0, 0x04, 0xe4, 0xbb, 0x76, 0x6d, 0x74, 0xb9, 0x77, 0x12, 0x07, 0x83, - 0x86, 0x50, 0x77, 0xb8, 0xd0, 0x8c, 0x22, 0x21, 0x7d, 0x68, 0x3e, 0x69, 0xef, 0xc9, 0x64, 0x63, - 0x1b, 0xfd, 0xeb, 0x24, 0x90, 0xb9, 0x0b, 0x72, 0x3b, 0xb2, 0xb1, 0x4d, 0x67, 0xa5, 0x1b, 0xc7, - 0x0f, 0x2e, 0xbb, 0x69, 0x89, 0xbc, 0x83, 0x1e, 0x99, 0x60, 0xe5, 0xf4, 0x98, 0x67, 0xd7, 0x93, - 0x08, 0x7c, 0x71, 0x57, 0xc8, 0x28, 0x0a, 0xd2, 0x47, 0xef, 0xfd, 0x02, 0x1c, 0x9f, 0x97, 0xbb, - 0xdb, 0x9b, 0x86, 0x3e, 0xd0, 0x7a, 0xa9, 0x0f, 0xb1, 0x4f, 0x05, 0x21, 0x6a, 0xb1, 0x10, 0x45, - 0xc9, 0xf7, 0x10, 0x89, 0x89, 0x00, 0xf5, 0x88, 0x07, 0x94, 0xc4, 0x00, 0x75, 0xef, 0xc4, 0x74, - 0xa4, 0x0f, 0xd7, 0xfb, 0x04, 0xc8, 0x57, 0x55, 0x65, 0x53, 0x43, 0x83, 0x24, 0x40, 0x7a, 0x0e, - 0xe4, 0x65, 0xbb, 0x36, 0xba, 0x96, 0xa1, 0x91, 0xc3, 0x8d, 0xb4, 0x27, 0x39, 0x05, 0xd1, 0x7b, - 0x27, 0xd8, 0xa6, 0xd8, 0x8c, 0x23, 0x95, 0x24, 0x02, 0x5b, 0xdc, 0xad, 0x48, 0x58, 0xeb, 0xe9, - 0x83, 0xf5, 0x86, 0x1c, 0x14, 0x16, 0x15, 0xac, 0xf6, 0x4c, 0xf4, 0xe7, 0xdc, 0x5b, 0x8f, 0x8b, - 0x70, 0x84, 0xc0, 0xe3, 0xbc, 0x48, 0x10, 0x8b, 0x5e, 0x7d, 0x9c, 0x82, 0x15, 0x5a, 0xbb, 0xf3, - 0x90, 0xe4, 0x49, 0xc1, 0x8a, 0xd0, 0x25, 0x00, 0xff, 0x91, 0x38, 0x07, 0x45, 0x2a, 0x04, 0x94, - 0x02, 0x37, 0x29, 0x9e, 0x81, 0xc2, 0x86, 0xdb, 0x74, 0xe4, 0xf7, 0x10, 0x2d, 0x86, 0x7e, 0x33, - 0xcb, 0xab, 0x53, 0x0a, 0xa1, 0xfb, 0xe0, 0x22, 0xc1, 0xa7, 0x81, 0xe2, 0x68, 0x3e, 0x7d, 0x99, - 0xf8, 0x9c, 0x00, 0xc2, 0x82, 0xb2, 0x8b, 0x3e, 0xed, 0xed, 0x4a, 0x5f, 0x9e, 0xc8, 0xae, 0xf4, - 0x6e, 0x76, 0x57, 0x1a, 0xbd, 0x70, 0x2e, 0x28, 0xbb, 0xec, 0xa6, 0x74, 0xd2, 0x95, 0xd3, 0xab, - 0xe8, 0xd0, 0x56, 0xce, 0x30, 0x0a, 0xd2, 0x47, 0xf2, 0x0f, 0x04, 0xc8, 0x2d, 0x2a, 0x2a, 0x3e, - 0xdc, 0x0f, 0x0c, 0x9b, 0x82, 0x64, 0x3e, 0x30, 0xfc, 0x9a, 0x0e, 0x6d, 0x17, 0x1b, 0x4a, 0x42, - 0xfa, 0x68, 0x7e, 0x5c, 0x80, 0x52, 0x67, 0x60, 0x68, 0x0d, 0xcd, 0xd2, 0xaf, 0x8c, 0x0f, 0x45, - 0xfe, 0xc3, 0x14, 0x9f, 0x89, 0x6e, 0x0f, 0xa6, 0x78, 0x98, 0x32, 0xb6, 0xf1, 0xf4, 0xb1, 0x7b, - 0xd5, 0x37, 0x32, 0x90, 0x27, 0x74, 0xa0, 0x0f, 0x0b, 0x36, 0x72, 0x7d, 0x55, 0xee, 0x62, 0xb4, - 0xc3, 0x0b, 0x62, 0x60, 0x31, 0xcc, 0xb2, 0x8b, 0xe1, 0xcd, 0x90, 0x27, 0x7f, 0xe9, 0xe7, 0xc8, - 0x89, 0x51, 0x10, 0x4a, 0x4e, 0x11, 0xf4, 0x68, 0x10, 0xaf, 0xfb, 0x58, 0xbc, 0x9e, 0xb5, 0x9f, - 0x65, 0x15, 0x4a, 0x66, 0xb8, 0xea, 0x3e, 0x84, 0xa6, 0x78, 0x8a, 0x9b, 0x77, 0x7a, 0x20, 0xce, - 0x33, 0x20, 0x56, 0xb8, 0x29, 0x9a, 0xca, 0xa6, 0x76, 0x76, 0xb5, 0xdf, 0x93, 0x2d, 0xec, 0x1e, - 0x89, 0x4d, 0x19, 0xba, 0x98, 0x9b, 0xda, 0x0a, 0x43, 0xec, 0xb8, 0xb1, 0x96, 0xb4, 0x7e, 0x2d, - 0xb2, 0xf5, 0xf4, 0xc1, 0xfa, 0x7a, 0x0e, 0xf2, 0xed, 0xbe, 0xaa, 0x58, 0xe8, 0xa1, 0x6c, 0x22, + 0x79, 0x9f, 0xba, 0xab, 0x1f, 0x33, 0xdf, 0xee, 0xec, 0xb6, 0xca, 0xcb, 0x6a, 0xb8, 0x12, 0x8b, + 0x58, 0x24, 0x21, 0x64, 0xd1, 0x8b, 0x56, 0x08, 0x24, 0xa1, 0x07, 0x3d, 0x3d, 0x3d, 0xbb, 0xad, + 0xed, 0xe9, 0x1e, 0x57, 0xf7, 0xec, 0xa2, 0xe0, 0x64, 0x52, 0xd3, 0x7d, 0x67, 0xa6, 0x98, 0x9a, + 0xaa, 0xa6, 0xaa, 0x7a, 0x56, 0xc3, 0x39, 0x4e, 0x0c, 0x18, 0xcb, 0xc0, 0x81, 0x18, 0xfc, 0xe0, + 0x15, 0xf3, 0x34, 0xc6, 0x60, 0x5e, 0xc2, 0x60, 0xf1, 0x08, 0x01, 0x3b, 0x22, 0x3c, 0x8c, 0x63, + 0x88, 0x1f, 0x18, 0x7c, 0x20, 0x20, 0xc2, 0x39, 0x49, 0x08, 0xc1, 0x38, 0xc4, 0x0e, 0xf6, 0xe1, + 0x38, 0xa7, 0x6e, 0xdd, 0x7a, 0xdc, 0x9e, 0xae, 0xea, 0x5b, 0x3d, 0x55, 0x3d, 0xcb, 0xc9, 0x5f, + 0xdd, 0xf7, 0xd6, 0xad, 0x7b, 0xbf, 0xfb, 0xfd, 0xbe, 0xfb, 0xa8, 0xef, 0x7e, 0xf7, 0xfb, 0x60, + 0xbe, 0xbf, 0x7e, 0xa6, 0x6f, 0xe8, 0x96, 0x6e, 0x9e, 0xe9, 0xea, 0x3b, 0x3b, 0xb2, 0xd6, 0x33, + 0xcb, 0x24, 0x2d, 0x16, 0x65, 0x6d, 0xcf, 0xda, 0xeb, 0x63, 0x74, 0x43, 0x7f, 0x7b, 0xf3, 0x8c, + 0xaa, 0xac, 0x9f, 0xe9, 0xaf, 0x9f, 0xd9, 0xd1, 0x7b, 0x58, 0x75, 0x5f, 0x20, 0x09, 0x5a, 0x1c, + 0xdd, 0x1c, 0x56, 0x4a, 0xd5, 0xbb, 0xb2, 0x6a, 0x5a, 0xba, 0x81, 0x69, 0xc9, 0x93, 0x7e, 0x93, + 0x78, 0x17, 0x6b, 0x96, 0x5b, 0xc3, 0x75, 0x9b, 0xba, 0xbe, 0xa9, 0x62, 0xe7, 0xd9, 0xfa, 0x60, + 0xe3, 0x8c, 0x69, 0x19, 0x83, 0xae, 0xe5, 0x3c, 0x3d, 0xfd, 0xc6, 0x37, 0xe7, 0x40, 0x90, 0xfa, + 0x5d, 0xf4, 0x58, 0x16, 0x8a, 0xcb, 0xd8, 0x32, 0x94, 0xae, 0x89, 0x3e, 0x96, 0x85, 0xb9, 0x36, + 0xb6, 0x56, 0x64, 0x43, 0xde, 0xc1, 0x16, 0x36, 0x4c, 0x74, 0x23, 0x14, 0x25, 0xfc, 0xa2, 0x01, + 0x36, 0x2d, 0x11, 0xc1, 0x4c, 0x5f, 0x95, 0xad, 0x0d, 0xdd, 0xd8, 0x99, 0xcf, 0x5c, 0x9f, 0xb9, + 0x79, 0x56, 0xf2, 0xd2, 0xe8, 0x9f, 0x32, 0x30, 0x23, 0x61, 0xb3, 0xaf, 0x6b, 0x26, 0x16, 0xcf, + 0x41, 0x1e, 0x1b, 0x86, 0x6e, 0x90, 0x52, 0x47, 0xce, 0xde, 0x56, 0xa6, 0x3d, 0x2f, 0x4b, 0xfd, + 0x6e, 0x99, 0x36, 0x55, 0x66, 0x9a, 0x29, 0xbb, 0xef, 0x96, 0x6b, 0xf6, 0x8b, 0x92, 0xf3, 0x3e, + 0x7a, 0x4f, 0x06, 0xf2, 0x24, 0x43, 0x7c, 0x00, 0x72, 0x5d, 0xbd, 0x87, 0x49, 0x8d, 0xc7, 0xce, + 0x3e, 0x3b, 0x76, 0x8d, 0xe5, 0xaa, 0xde, 0xc3, 0x12, 0xa9, 0x43, 0xbc, 0x1e, 0x8e, 0xf4, 0xb0, + 0xd9, 0x35, 0x94, 0xbe, 0xa5, 0xe8, 0xda, 0x7c, 0x96, 0x74, 0x25, 0x98, 0x75, 0xfa, 0x2c, 0xe4, + 0xec, 0xf2, 0xe2, 0x0c, 0xe4, 0x9a, 0xab, 0x8d, 0x46, 0xe9, 0x2a, 0xf1, 0x6a, 0x98, 0x5b, 0x6d, + 0x5e, 0x68, 0xb6, 0x2e, 0x35, 0xd7, 0x6a, 0x92, 0xd4, 0x92, 0x4a, 0x19, 0x71, 0x0e, 0x66, 0x17, + 0x2a, 0x8b, 0x6b, 0xf5, 0xe6, 0xca, 0x6a, 0xa7, 0x94, 0x45, 0xff, 0xa3, 0x00, 0x47, 0x6b, 0x0f, + 0x59, 0xd8, 0xd0, 0x64, 0x75, 0xd1, 0xd0, 0xfb, 0xe8, 0x71, 0x01, 0xf2, 0x4b, 0x8a, 0x8a, 0x4d, + 0xf4, 0x81, 0x8c, 0xcf, 0xc4, 0xeb, 0x60, 0xb6, 0xab, 0x6b, 0x16, 0x7e, 0xc8, 0xaa, 0xf7, 0x28, + 0x17, 0xfd, 0x0c, 0xf1, 0x34, 0x1c, 0xed, 0x19, 0x7a, 0xbf, 0x23, 0x1b, 0x9b, 0xd8, 0x2e, 0xe0, + 0xd0, 0xc6, 0xe4, 0x89, 0x77, 0xc1, 0x4c, 0x5f, 0x37, 0x15, 0x42, 0xbb, 0x40, 0xd8, 0xf1, 0x24, + 0x8f, 0x1d, 0x44, 0x50, 0xca, 0x0b, 0xaa, 0xde, 0xdd, 0x2e, 0xaf, 0xd0, 0x42, 0x92, 0x57, 0x5c, + 0xbc, 0x09, 0x8e, 0x11, 0xe9, 0xb1, 0xc9, 0x5a, 0x91, 0xad, 0x2d, 0x73, 0x3e, 0x77, 0xbd, 0x70, + 0xf3, 0xac, 0x34, 0x94, 0x8b, 0xde, 0x9d, 0x0d, 0xa0, 0xb9, 0xc8, 0xa2, 0x59, 0x66, 0x78, 0x1f, + 0xec, 0x71, 0x99, 0xf4, 0x76, 0x34, 0x94, 0xe2, 0xad, 0x90, 0x27, 0xc2, 0x49, 0xba, 0x74, 0xe4, + 0xec, 0x49, 0xbf, 0x16, 0x5a, 0xbc, 0x66, 0x3f, 0x95, 0x9c, 0x42, 0xe8, 0x77, 0x3c, 0xe0, 0xcf, + 0x31, 0xc0, 0xdf, 0x1e, 0xaf, 0xf1, 0xf4, 0x51, 0xff, 0x51, 0x16, 0x8a, 0x55, 0x1b, 0x3e, 0xcd, + 0x42, 0x0a, 0x2f, 0xca, 0x37, 0xc1, 0xb1, 0x0d, 0xbd, 0x3b, 0x30, 0x71, 0x8f, 0x20, 0xe5, 0xe1, + 0x3c, 0x94, 0x2b, 0xce, 0x43, 0xb1, 0xeb, 0xd4, 0x4d, 0x80, 0x3e, 0x2a, 0xb9, 0x49, 0xf4, 0x93, + 0xe0, 0x70, 0x5b, 0x62, 0x01, 0x7a, 0x66, 0x38, 0x8f, 0x28, 0xa5, 0x21, 0xa3, 0xed, 0x77, 0x3d, + 0xa6, 0xd7, 0x19, 0xa6, 0xdf, 0x11, 0xb7, 0xc2, 0xf4, 0xd9, 0xfe, 0x67, 0x67, 0x60, 0x96, 0x70, + 0xa9, 0xa1, 0x98, 0x16, 0xfa, 0xa0, 0x00, 0x27, 0xab, 0xba, 0xb6, 0x8b, 0x0d, 0xab, 0xba, 0xa5, + 0xa8, 0x3d, 0x03, 0x6b, 0x1d, 0x7d, 0x45, 0xde, 0xc4, 0x26, 0xea, 0xf2, 0x62, 0x82, 0x60, 0x66, + 0xdd, 0x61, 0xbb, 0x39, 0x9f, 0x25, 0x83, 0xc2, 0x4b, 0x8b, 0xa7, 0x00, 0xf4, 0xf5, 0x17, 0xe2, + 0xae, 0xd5, 0xd9, 0xeb, 0x63, 0x02, 0xc5, 0xac, 0x14, 0xc8, 0x41, 0x1f, 0x0c, 0x0e, 0x17, 0x89, + 0x45, 0xe3, 0x1e, 0x86, 0x79, 0x1e, 0xcd, 0xe5, 0xd1, 0xf4, 0x86, 0x0c, 0x9e, 0x79, 0x28, 0xaa, + 0x8a, 0x16, 0xa0, 0xcd, 0x4d, 0xa2, 0x8f, 0x78, 0x98, 0xad, 0x32, 0x98, 0x55, 0x0e, 0xd2, 0x6c, + 0xfa, 0xf8, 0xfd, 0xbd, 0x00, 0xb9, 0x65, 0x7d, 0x17, 0xa3, 0x2f, 0x65, 0x92, 0x00, 0xe8, 0x66, + 0x38, 0x6e, 0x91, 0xe9, 0xb1, 0xea, 0xbd, 0xef, 0xa0, 0x34, 0x9c, 0xbd, 0x6f, 0x82, 0xcd, 0x8d, + 0x99, 0x60, 0xf3, 0xb1, 0x26, 0x58, 0xf4, 0xd6, 0xa0, 0x24, 0x3c, 0x8f, 0x95, 0x84, 0x5b, 0x42, + 0x20, 0xb1, 0xf9, 0x90, 0xc8, 0xa4, 0xf9, 0x0e, 0x4f, 0x16, 0xaa, 0x8c, 0x2c, 0x9c, 0xe1, 0x6f, + 0x38, 0x7d, 0xe4, 0x7f, 0x3f, 0x07, 0x73, 0x76, 0xc3, 0x1d, 0xbd, 0x89, 0x2f, 0xdb, 0xc2, 0x87, + 0xfe, 0x22, 0x11, 0x11, 0xb8, 0x0d, 0x8a, 0x3d, 0x6c, 0xc9, 0x8a, 0x6a, 0x12, 0xe8, 0x8f, 0x9c, + 0xbd, 0xa6, 0xec, 0x6c, 0x7f, 0xca, 0xee, 0xf6, 0xa7, 0xdc, 0x26, 0xdb, 0x1f, 0xc9, 0x2d, 0x97, + 0xb6, 0x2c, 0x7c, 0x21, 0x28, 0x0b, 0x75, 0x56, 0x16, 0x6e, 0x8f, 0x80, 0xc4, 0xe3, 0x4c, 0x88, + 0x50, 0x9c, 0x84, 0x82, 0x33, 0xfa, 0x29, 0x24, 0x34, 0xe5, 0x0b, 0x8b, 0xc0, 0x23, 0x2c, 0xbf, + 0xe7, 0x09, 0x4b, 0x83, 0x11, 0x96, 0x3b, 0x27, 0xa0, 0x2c, 0x7d, 0xa9, 0xf9, 0x1b, 0x01, 0x66, + 0x17, 0x07, 0x7d, 0x55, 0xe9, 0xca, 0x16, 0x46, 0x6f, 0x8a, 0x23, 0x31, 0x16, 0xbb, 0x97, 0xf2, + 0xd2, 0x8c, 0x34, 0x09, 0x43, 0xd2, 0x14, 0x84, 0x3d, 0x17, 0x0f, 0xf6, 0xcf, 0x06, 0x61, 0xaf, + 0xb1, 0xb0, 0x87, 0x8d, 0x44, 0xaf, 0x6b, 0x21, 0x90, 0x47, 0x09, 0x7e, 0x3c, 0xd8, 0xdf, 0xed, + 0xc1, 0x7e, 0x9e, 0x81, 0xfd, 0x59, 0x31, 0x29, 0x4b, 0x1f, 0xf2, 0x8f, 0x5c, 0x07, 0x42, 0x1b, + 0x5b, 0xe8, 0xb7, 0x01, 0x72, 0x1d, 0xfc, 0x90, 0x85, 0xfe, 0x48, 0x80, 0x7c, 0xdb, 0xda, 0x53, + 0x31, 0x7a, 0x69, 0x22, 0x33, 0xc6, 0xbd, 0x90, 0x37, 0xed, 0xea, 0xe8, 0x26, 0xfa, 0x69, 0x23, + 0x01, 0x76, 0x37, 0x38, 0x36, 0x05, 0x65, 0xd2, 0xba, 0xe4, 0xbc, 0x85, 0x7e, 0x3f, 0x88, 0xf3, + 0x03, 0x2c, 0xce, 0x61, 0xdc, 0x6c, 0xe3, 0x60, 0x4d, 0x89, 0x4c, 0xfa, 0xef, 0xf3, 0x00, 0x5d, + 0x66, 0x00, 0xbd, 0x6b, 0x12, 0x12, 0xd2, 0x47, 0xf5, 0x0d, 0x02, 0xe4, 0xab, 0xba, 0xaa, 0x1b, + 0xe8, 0xc1, 0x24, 0x30, 0x3c, 0x01, 0xf9, 0xae, 0x5d, 0x1b, 0x5d, 0xee, 0x9d, 0xc4, 0xc1, 0xa0, + 0x21, 0xd4, 0x1d, 0x2e, 0x34, 0xa3, 0x48, 0x48, 0x1f, 0x9a, 0x4f, 0xda, 0x7b, 0x32, 0xd9, 0xd8, + 0x46, 0xff, 0x3a, 0x09, 0x64, 0xee, 0x86, 0xdc, 0x8e, 0x6c, 0x6c, 0xd3, 0x59, 0xe9, 0xa6, 0xf1, + 0x83, 0xcb, 0x6e, 0x5a, 0x22, 0xef, 0xa0, 0x47, 0x26, 0x58, 0x39, 0x3d, 0xe6, 0xd9, 0xf5, 0x24, + 0x02, 0x5f, 0xdc, 0x15, 0x32, 0x8a, 0x82, 0xf4, 0xd1, 0x7b, 0x9f, 0x00, 0xc7, 0x17, 0xe4, 0xee, + 0xf6, 0xa6, 0xa1, 0x0f, 0xb4, 0x5e, 0xea, 0x43, 0xec, 0x53, 0x41, 0x88, 0x5a, 0x2c, 0x44, 0x51, + 0xf2, 0x3d, 0x44, 0x62, 0x22, 0x40, 0x3d, 0xe2, 0x01, 0x25, 0x31, 0x40, 0xdd, 0x37, 0x31, 0x1d, + 0xe9, 0xc3, 0xf5, 0x5e, 0x01, 0xf2, 0x15, 0x55, 0xd9, 0xd4, 0xd0, 0x20, 0x09, 0x90, 0x9e, 0x09, + 0x79, 0xd9, 0xae, 0x8d, 0xae, 0x65, 0x68, 0xe4, 0x70, 0x23, 0xed, 0x49, 0x4e, 0x41, 0xf4, 0x9e, + 0x09, 0xb6, 0x29, 0x36, 0xe3, 0x48, 0x25, 0x89, 0xc0, 0x16, 0x77, 0x2b, 0x12, 0xd6, 0x7a, 0xfa, + 0x60, 0xbd, 0x36, 0x07, 0x85, 0x25, 0x05, 0xab, 0x3d, 0x13, 0xfd, 0x15, 0xf7, 0xd6, 0xe3, 0x22, + 0x1c, 0x21, 0xf0, 0x38, 0x2f, 0x12, 0xc4, 0xa2, 0x57, 0x1f, 0xa7, 0x60, 0x99, 0xd6, 0xee, 0x3c, + 0x24, 0x79, 0x52, 0xb0, 0x22, 0x74, 0x09, 0xc0, 0x7f, 0x24, 0xce, 0x43, 0x91, 0x0a, 0x01, 0xa5, + 0xc0, 0x4d, 0x8a, 0x67, 0xa0, 0xb0, 0xe1, 0x36, 0x1d, 0xf9, 0x3d, 0x44, 0x8b, 0xa1, 0xdf, 0xcb, + 0xf2, 0xea, 0x94, 0x42, 0xe8, 0x3e, 0xb8, 0x48, 0xf0, 0x69, 0xa0, 0x38, 0x9a, 0x4f, 0x5f, 0x26, + 0x3e, 0x27, 0x80, 0xb0, 0xa8, 0xec, 0xa2, 0x4f, 0x7b, 0xbb, 0xd2, 0x97, 0x24, 0xb2, 0x2b, 0xbd, + 0x87, 0xdd, 0x95, 0x46, 0x2f, 0x9c, 0x8b, 0xca, 0x2e, 0xbb, 0x29, 0x9d, 0x74, 0xe5, 0xf4, 0x2a, + 0x3a, 0xb4, 0x95, 0x33, 0x8c, 0x82, 0xf4, 0x91, 0xfc, 0x63, 0x01, 0x72, 0x4b, 0x8a, 0x8a, 0x0f, + 0xf7, 0x03, 0xc3, 0xa6, 0x20, 0x99, 0x0f, 0x0c, 0xbf, 0xa6, 0x43, 0xdb, 0xc5, 0x86, 0x92, 0x90, + 0x3e, 0x9a, 0x1f, 0x17, 0x60, 0xa6, 0x33, 0x30, 0xb4, 0xba, 0x66, 0xe9, 0x57, 0xc6, 0x87, 0x22, + 0xff, 0x61, 0x8a, 0xcf, 0x44, 0xb7, 0x07, 0x53, 0x3c, 0x4c, 0x19, 0xdb, 0x78, 0xfa, 0xd8, 0xbd, + 0xfc, 0x1b, 0x19, 0xc8, 0x13, 0x3a, 0xd0, 0x87, 0x05, 0x1b, 0xb9, 0xbe, 0x2a, 0x77, 0x31, 0xda, + 0xe1, 0x05, 0x31, 0xb0, 0x18, 0x66, 0xd9, 0xc5, 0xf0, 0x16, 0xc8, 0x93, 0xbf, 0xf4, 0x73, 0xe4, + 0xc4, 0x28, 0x08, 0x25, 0xa7, 0x08, 0x7a, 0x34, 0x88, 0xd7, 0xfd, 0x2c, 0x5e, 0x4f, 0xdf, 0xcf, + 0xb2, 0x32, 0x25, 0x33, 0x5c, 0x75, 0x1f, 0x42, 0x53, 0x3c, 0xc5, 0xcd, 0xdb, 0x3d, 0x10, 0x17, + 0x18, 0x10, 0xcb, 0xdc, 0x14, 0x4d, 0x65, 0x53, 0x3b, 0xb7, 0xda, 0xef, 0xc9, 0x16, 0x76, 0x8f, + 0xc4, 0xa6, 0x0c, 0x5d, 0xcc, 0x4d, 0x6d, 0x99, 0x21, 0x76, 0xdc, 0x58, 0x4b, 0x5a, 0xbf, 0x16, + 0xd9, 0x7a, 0xfa, 0x60, 0x7d, 0x3d, 0x07, 0xf9, 0x76, 0x5f, 0x55, 0x2c, 0xf4, 0xa6, 0x6c, 0x22, 0x28, 0x19, 0xb2, 0xb6, 0x89, 0x43, 0x50, 0x92, 0xec, 0x67, 0x92, 0x53, 0xc4, 0x9f, 0x4f, 0x73, - 0x93, 0xcc, 0xa7, 0xe2, 0x9d, 0x90, 0xb3, 0x0b, 0x52, 0x75, 0xfc, 0x0d, 0x23, 0x18, 0x4b, 0xba, - 0xe5, 0x6d, 0xa4, 0x97, 0x09, 0x27, 0xed, 0x57, 0x4e, 0xdf, 0x0a, 0x39, 0x3b, 0x25, 0x02, 0x14, - 0xe6, 0x5b, 0x9d, 0x4e, 0x6b, 0xb9, 0x7c, 0x95, 0x58, 0x04, 0xa1, 0xd3, 0x5a, 0x29, 0x67, 0xc4, - 0x19, 0xc8, 0x37, 0x9a, 0xcd, 0xba, 0x54, 0xce, 0xda, 0x7f, 0x3b, 0x8d, 0xce, 0x52, 0xbd, 0x2c, - 0xb0, 0xab, 0xf0, 0x3d, 0xac, 0x48, 0x3d, 0x33, 0xa2, 0xed, 0x34, 0xe7, 0x82, 0xb7, 0x7b, 0x42, - 0xf6, 0x42, 0x46, 0xc8, 0x6e, 0xe1, 0xa4, 0x27, 0x7d, 0xe1, 0xfa, 0x15, 0x01, 0xf2, 0xcb, 0xd8, - 0xd8, 0xc4, 0xe8, 0xa5, 0x31, 0x4c, 0x1f, 0x36, 0x14, 0xc3, 0xb4, 0xd8, 0x23, 0x71, 0x26, 0x4f, - 0xbc, 0x1e, 0x66, 0x4d, 0xdc, 0xd5, 0x35, 0xef, 0xdc, 0xdc, 0xd1, 0x49, 0xb0, 0x99, 0xe8, 0x2d, - 0x31, 0x21, 0x23, 0x84, 0x26, 0xb2, 0xd2, 0xc6, 0x01, 0x66, 0x54, 0xab, 0xe9, 0x03, 0xf3, 0x77, - 0x82, 0xfd, 0x52, 0x7f, 0x0f, 0xbd, 0x85, 0x7b, 0x6b, 0x74, 0x0b, 0x14, 0x88, 0x98, 0xba, 0xdf, - 0xb0, 0xa3, 0x67, 0x60, 0x5a, 0x46, 0x9c, 0x87, 0xab, 0x4d, 0xac, 0xe2, 0xae, 0x85, 0x7b, 0xf6, - 0xd0, 0x95, 0xc6, 0x4e, 0x0a, 0xfb, 0x8b, 0xa3, 0xaf, 0x04, 0x01, 0xbc, 0x9b, 0x05, 0xf0, 0xc6, - 0x11, 0xac, 0xb4, 0x3b, 0x14, 0x7e, 0x72, 0x62, 0x77, 0xa3, 0xad, 0xea, 0x96, 0x77, 0x00, 0x44, - 0xd3, 0xf6, 0xb3, 0x2d, 0x6b, 0x47, 0x25, 0xcf, 0x1c, 0x41, 0xf2, 0xd2, 0x62, 0x05, 0x8a, 0xb2, - 0xb6, 0x47, 0x1e, 0xe5, 0x22, 0x7a, 0xed, 0x16, 0x42, 0x6f, 0xf3, 0x90, 0xbf, 0x8f, 0x41, 0xfe, - 0x27, 0xf9, 0xc8, 0x4d, 0x1f, 0xf8, 0xbf, 0x29, 0x40, 0x7e, 0x45, 0x36, 0x2d, 0x8c, 0xbe, 0x29, - 0x24, 0x6d, 0xa7, 0x92, 0x00, 0xe6, 0xe2, 0xcd, 0x50, 0x76, 0x33, 0xe7, 0xdd, 0x8d, 0xb8, 0x63, - 0x9c, 0xb4, 0x2f, 0xdf, 0x9e, 0x06, 0x14, 0x73, 0x45, 0x36, 0xac, 0xd6, 0x06, 0xc9, 0x23, 0x4b, - 0x41, 0x49, 0x62, 0x33, 0x19, 0xe8, 0x0b, 0x11, 0xd0, 0x17, 0xc3, 0xa1, 0x2f, 0x71, 0x40, 0x2f, - 0x56, 0xa1, 0xb4, 0xa1, 0xa8, 0x98, 0xbc, 0x30, 0x43, 0x5e, 0x18, 0xb5, 0x26, 0x11, 0xde, 0x7b, - 0x6b, 0x92, 0xfd, 0x81, 0x24, 0x79, 0xaf, 0xa1, 0x25, 0xe7, 0x0b, 0x54, 0x14, 0x21, 0xa7, 0xc9, - 0x3b, 0x98, 0x22, 0x41, 0xfe, 0xdb, 0x79, 0x3d, 0xd9, 0x92, 0x09, 0xeb, 0x8f, 0x4a, 0xe4, 0xbf, - 0x0d, 0x1b, 0xb1, 0xd8, 0x5a, 0x91, 0xad, 0x2d, 0x2a, 0xba, 0x7e, 0x06, 0x7a, 0xb5, 0x10, 0x6f, - 0xfe, 0x73, 0x49, 0x8b, 0x7b, 0xf2, 0x78, 0x3d, 0xcc, 0x76, 0x65, 0x03, 0x5b, 0x2b, 0x41, 0x6b, - 0xb4, 0xbc, 0xc4, 0x66, 0xda, 0xc0, 0x2a, 0x66, 0x5b, 0xde, 0xc1, 0xa4, 0xb1, 0x9a, 0xfd, 0x8c, - 0x2c, 0xfc, 0x25, 0x69, 0x5f, 0xbe, 0x3f, 0xdb, 0xe6, 0x93, 0x9e, 0x6d, 0x47, 0xf5, 0x31, 0xfd, - 0x41, 0xf7, 0xce, 0x1c, 0x08, 0xb5, 0x81, 0x75, 0x45, 0x4f, 0xb6, 0x3f, 0x0a, 0x4e, 0xb6, 0x2f, - 0x60, 0xa5, 0x65, 0x94, 0x20, 0xd7, 0x06, 0xd6, 0xe1, 0xce, 0xb5, 0x31, 0xa5, 0xe4, 0x57, 0x3d, - 0x29, 0xb9, 0x97, 0x91, 0x92, 0x9b, 0xb9, 0xfa, 0x96, 0xbe, 0x8c, 0xbc, 0x57, 0x80, 0x63, 0x8d, - 0x9d, 0xbe, 0x6e, 0x58, 0xcb, 0xb2, 0xb1, 0xdd, 0xd3, 0x2f, 0x6b, 0xe8, 0x1c, 0xaf, 0xb4, 0x9c, - 0x02, 0x50, 0xc8, 0xab, 0x64, 0x22, 0x70, 0x08, 0x0a, 0xe4, 0xa0, 0x3f, 0x8c, 0xa7, 0xd2, 0xad, - 0xb0, 0x74, 0x84, 0xc0, 0x7c, 0x1d, 0x1c, 0x31, 0x74, 0xdd, 0x5a, 0x62, 0x0c, 0xd2, 0x82, 0x59, - 0x31, 0x77, 0xb3, 0x31, 0x94, 0xbe, 0xd1, 0x04, 0x4e, 0xe1, 0x20, 0x40, 0x80, 0x42, 0xfd, 0x41, - 0x9b, 0x04, 0xb4, 0x9a, 0xca, 0x88, 0x66, 0x4d, 0x09, 0xef, 0x65, 0x11, 0xbb, 0x69, 0x04, 0x43, - 0x1c, 0x6a, 0x42, 0x90, 0x12, 0x21, 0xd7, 0xf7, 0x05, 0x83, 0xfc, 0x8f, 0x89, 0xcd, 0x3b, 0x3c, - 0x6c, 0xaa, 0x0c, 0x36, 0xcf, 0xe6, 0x25, 0x25, 0x7d, 0x4c, 0xde, 0x24, 0x40, 0x61, 0xb5, 0xaf, + 0x93, 0xcc, 0xa7, 0xe2, 0x5d, 0x90, 0xb3, 0x0b, 0x52, 0x75, 0xfc, 0x8d, 0x23, 0x18, 0x4b, 0xba, + 0xe5, 0x6d, 0xa4, 0x97, 0x09, 0x27, 0xed, 0x57, 0x4e, 0xdf, 0x06, 0x39, 0x3b, 0x25, 0x02, 0x14, + 0x16, 0x5a, 0x9d, 0x4e, 0x6b, 0xb9, 0x74, 0x95, 0x58, 0x04, 0xa1, 0xd3, 0x5a, 0x29, 0x65, 0xc4, + 0x59, 0xc8, 0xd7, 0x9b, 0xcd, 0x9a, 0x54, 0xca, 0xda, 0x7f, 0x3b, 0xf5, 0x4e, 0xa3, 0x56, 0x12, + 0xd8, 0x55, 0xf8, 0x5e, 0x56, 0xa4, 0x9e, 0x16, 0xd1, 0x76, 0x9a, 0x73, 0xc1, 0x5b, 0x3d, 0x21, + 0x7b, 0x1e, 0x23, 0x64, 0xb7, 0x72, 0xd2, 0x93, 0xbe, 0x70, 0xfd, 0xa6, 0x00, 0xf9, 0x65, 0x6c, + 0x6c, 0x62, 0xf4, 0xa2, 0x18, 0xa6, 0x0f, 0x1b, 0x8a, 0x61, 0x5a, 0xec, 0x91, 0x38, 0x93, 0x27, + 0xde, 0x00, 0x73, 0x26, 0xee, 0xea, 0x9a, 0x77, 0x6e, 0xee, 0xe8, 0x24, 0xd8, 0x4c, 0xf4, 0xc6, + 0x98, 0x90, 0x11, 0x42, 0x13, 0x59, 0x69, 0xe3, 0x00, 0x33, 0xaa, 0xd5, 0xf4, 0x81, 0xf9, 0x3b, + 0xc1, 0x7e, 0xa9, 0xbf, 0x87, 0xde, 0xc8, 0xbd, 0x35, 0xba, 0x15, 0x0a, 0x44, 0x4c, 0xdd, 0x6f, + 0xd8, 0xd1, 0x33, 0x30, 0x2d, 0x23, 0x2e, 0xc0, 0xd5, 0x26, 0x56, 0x71, 0xd7, 0xc2, 0x3d, 0x7b, + 0xe8, 0x4a, 0x63, 0x27, 0x85, 0xfd, 0xc5, 0xd1, 0x57, 0x82, 0x00, 0xde, 0xc3, 0x02, 0x78, 0xd3, + 0x08, 0x56, 0xda, 0x1d, 0x0a, 0x3f, 0x39, 0xb1, 0xbb, 0xd1, 0x56, 0x75, 0xcb, 0x3b, 0x00, 0xa2, + 0x69, 0xfb, 0xd9, 0x96, 0xb5, 0xa3, 0x92, 0x67, 0x8e, 0x20, 0x79, 0x69, 0xb1, 0x0c, 0x45, 0x59, + 0xdb, 0x23, 0x8f, 0x72, 0x11, 0xbd, 0x76, 0x0b, 0xa1, 0xb7, 0x78, 0xc8, 0xdf, 0xcf, 0x20, 0xff, + 0xb3, 0x7c, 0xe4, 0xa6, 0x0f, 0xfc, 0xdf, 0x16, 0x20, 0xbf, 0x22, 0x9b, 0x16, 0x46, 0xdf, 0x14, + 0x92, 0xb6, 0x53, 0x49, 0x00, 0x73, 0xf1, 0x16, 0x28, 0xb9, 0x99, 0x0b, 0xee, 0x46, 0xdc, 0x31, + 0x4e, 0xda, 0x97, 0x6f, 0x4f, 0x03, 0x8a, 0xb9, 0x22, 0x1b, 0x56, 0x6b, 0x83, 0xe4, 0x91, 0xa5, + 0x60, 0x46, 0x62, 0x33, 0x19, 0xe8, 0x0b, 0x11, 0xd0, 0x17, 0xc3, 0xa1, 0x9f, 0xe1, 0x80, 0x5e, + 0xac, 0xc0, 0xcc, 0x86, 0xa2, 0x62, 0xf2, 0xc2, 0x2c, 0x79, 0x61, 0xd4, 0x9a, 0x44, 0x78, 0xef, + 0xad, 0x49, 0xf6, 0x07, 0x92, 0xe4, 0xbd, 0x86, 0x1a, 0xce, 0x17, 0xa8, 0x28, 0x42, 0x4e, 0x93, + 0x77, 0x30, 0x45, 0x82, 0xfc, 0xb7, 0xf3, 0x7a, 0xb2, 0x25, 0x13, 0xd6, 0x1f, 0x95, 0xc8, 0x7f, + 0x1b, 0x36, 0x62, 0xb1, 0xb5, 0x22, 0x5b, 0x5b, 0x54, 0x74, 0xfd, 0x0c, 0xf4, 0xb0, 0x10, 0x6f, + 0xfe, 0x73, 0x49, 0x8b, 0x7b, 0xf2, 0x78, 0x03, 0xcc, 0x75, 0x65, 0x03, 0x5b, 0x2b, 0x41, 0x6b, + 0xb4, 0xbc, 0xc4, 0x66, 0xda, 0xc0, 0x2a, 0x66, 0x5b, 0xde, 0xc1, 0xa4, 0xb1, 0xaa, 0xfd, 0x8c, + 0x2c, 0xfc, 0x33, 0xd2, 0xbe, 0x7c, 0x7f, 0xb6, 0xcd, 0x27, 0x3d, 0xdb, 0x8e, 0xea, 0x63, 0xfa, + 0x83, 0xee, 0xed, 0x39, 0x10, 0xaa, 0x03, 0xeb, 0x8a, 0x9e, 0x6c, 0x7f, 0x12, 0x9c, 0x6c, 0x9f, + 0xcb, 0x4a, 0xcb, 0x28, 0x41, 0xae, 0x0e, 0xac, 0xc3, 0x9d, 0x6b, 0x63, 0x4a, 0xc9, 0x6f, 0x79, + 0x52, 0x72, 0x1f, 0x23, 0x25, 0xb7, 0x70, 0xf5, 0x2d, 0x7d, 0x19, 0x79, 0x8f, 0x00, 0xc7, 0xea, + 0x3b, 0x7d, 0xdd, 0xb0, 0x96, 0x65, 0x63, 0xbb, 0xa7, 0x5f, 0xd6, 0xd0, 0x39, 0x5e, 0x69, 0x39, + 0x05, 0xa0, 0x90, 0x57, 0xc9, 0x44, 0xe0, 0x10, 0x14, 0xc8, 0x41, 0x7f, 0x12, 0x4f, 0xa5, 0x5b, + 0x66, 0xe9, 0x08, 0x81, 0xf9, 0x7a, 0x38, 0x62, 0xe8, 0xba, 0xd5, 0x60, 0x0c, 0xd2, 0x82, 0x59, + 0x31, 0x77, 0xb3, 0x31, 0x94, 0xbe, 0xd1, 0x04, 0x4e, 0xe1, 0x20, 0x40, 0x80, 0x42, 0xed, 0x21, + 0x9b, 0x04, 0xb4, 0x9a, 0xca, 0x88, 0x66, 0x4d, 0x09, 0xef, 0x63, 0x11, 0xbb, 0x79, 0x04, 0x43, + 0x1c, 0x6a, 0x42, 0x90, 0x12, 0x21, 0xd7, 0xf7, 0x05, 0x83, 0xfc, 0x8f, 0x89, 0xcd, 0xdb, 0x3c, + 0x6c, 0x2a, 0x0c, 0x36, 0xcf, 0xe0, 0x25, 0x25, 0x7d, 0x4c, 0x5e, 0x2f, 0x40, 0x61, 0xb5, 0xaf, 0xea, 0x72, 0x0f, 0xe9, 0x07, 0xff, 0x8e, 0x45, 0xce, 0x62, 0x1e, 0x58, 0x58, 0xbd, 0xb4, 0x58, - 0x06, 0x61, 0x60, 0xa8, 0xd4, 0x4c, 0xcc, 0xfe, 0x8b, 0xde, 0x1a, 0x13, 0x2d, 0x87, 0xce, 0x44, - 0x3e, 0x35, 0xe2, 0x20, 0x33, 0xb2, 0xd9, 0xf4, 0x91, 0xf9, 0x5e, 0x16, 0x4a, 0x0b, 0xfa, 0x65, - 0x8d, 0x60, 0x53, 0x3d, 0x30, 0x36, 0x71, 0x8d, 0x2b, 0x2b, 0x6e, 0xdb, 0xd3, 0x36, 0xae, 0x0c, - 0x6b, 0x38, 0x7d, 0x8e, 0x3f, 0x7e, 0x9b, 0x63, 0x33, 0xf5, 0xb0, 0xe0, 0x1d, 0x58, 0x1a, 0x07, - 0x1f, 0x13, 0xfe, 0x49, 0xa2, 0xc0, 0x77, 0x92, 0xf8, 0xae, 0x20, 0x50, 0xf3, 0x2c, 0x50, 0x23, - 0x75, 0x14, 0xc9, 0x9e, 0x22, 0xfe, 0x9a, 0x07, 0x55, 0x9d, 0x81, 0xea, 0xd6, 0x38, 0x4d, 0xa7, - 0x0f, 0xd6, 0x77, 0x04, 0x28, 0x2e, 0x38, 0xa6, 0xa8, 0xe8, 0x3c, 0x14, 0x9c, 0xbf, 0xf6, 0x24, - 0xb3, 0x8d, 0xf7, 0x28, 0x3c, 0xf6, 0x5f, 0xbb, 0xf3, 0xbb, 0xb2, 0x3a, 0xc0, 0x5e, 0xe7, 0x87, - 0xb9, 0x7f, 0xd1, 0x7e, 0x2a, 0x39, 0x85, 0xd0, 0x16, 0x2f, 0xde, 0xf7, 0xf9, 0x06, 0xb3, 0xd9, - 0xd0, 0xaf, 0x16, 0x72, 0x32, 0xe7, 0x94, 0xa2, 0xbf, 0x9e, 0xf9, 0x2c, 0x7a, 0x77, 0x10, 0xe5, - 0x1a, 0x8b, 0xf2, 0xb3, 0xc7, 0xd4, 0x95, 0x04, 0xcc, 0xef, 0xf6, 0x60, 0x5e, 0x64, 0x60, 0x3e, - 0x1b, 0xab, 0xed, 0xa9, 0x9c, 0x2f, 0x1e, 0x95, 0xb0, 0x69, 0x19, 0x4a, 0xd7, 0xae, 0xc3, 0x44, - 0x3f, 0x97, 0x39, 0xf8, 0x98, 0xac, 0xc3, 0x51, 0x23, 0x50, 0x27, 0x1d, 0x99, 0x4f, 0x1f, 0xa9, - 0x4a, 0x0d, 0x36, 0x2e, 0x31, 0xaf, 0xb1, 0xdb, 0x8d, 0xf3, 0x2c, 0x86, 0x61, 0x7c, 0x0c, 0x56, - 0x97, 0x08, 0x90, 0xef, 0xf3, 0x80, 0xbc, 0xc0, 0x00, 0xf9, 0xfc, 0xf8, 0x04, 0xa4, 0x8f, 0xe6, - 0x2b, 0x04, 0xc8, 0x11, 0xb3, 0xf5, 0x1f, 0x66, 0x01, 0x1a, 0x66, 0xd5, 0xe8, 0x6e, 0x29, 0xbb, - 0xb8, 0x87, 0xe4, 0x83, 0x63, 0x6a, 0xef, 0xe6, 0xbd, 0x0a, 0x09, 0xa2, 0x25, 0x29, 0x90, 0x83, - 0x5e, 0x1d, 0x04, 0xeb, 0x02, 0x0b, 0xd6, 0xed, 0x21, 0xbc, 0x22, 0xd6, 0xda, 0x3e, 0x99, 0x21, - 0x37, 0x7f, 0x3e, 0xe0, 0x21, 0xd0, 0x64, 0x10, 0xb8, 0x6b, 0xa2, 0x5a, 0xd3, 0x07, 0xe1, 0x97, - 0x05, 0xc8, 0x2f, 0xc9, 0x16, 0x7e, 0x10, 0xbd, 0x56, 0xa0, 0xd6, 0xc1, 0xab, 0x07, 0xe7, 0xbf, - 0x08, 0x39, 0xbb, 0x0c, 0xdd, 0xf7, 0x91, 0xff, 0x71, 0x8d, 0x62, 0x08, 0x77, 0x08, 0x65, 0xce, - 0xc1, 0xc5, 0x94, 0x8d, 0x62, 0xa2, 0x9b, 0x4f, 0x1f, 0x97, 0xef, 0x96, 0x29, 0x1a, 0x5f, 0x70, - 0x61, 0xf9, 0xa5, 0x4c, 0x2a, 0xb8, 0x88, 0xf7, 0x40, 0x7e, 0x47, 0x36, 0xb6, 0x4d, 0xb2, 0x1b, - 0x3f, 0xc2, 0x73, 0x86, 0x64, 0x7f, 0x34, 0x9a, 0x92, 0xf3, 0x56, 0xec, 0x83, 0x42, 0xcf, 0xb6, - 0x33, 0x31, 0x54, 0xe3, 0x1c, 0x14, 0x46, 0xb5, 0x9e, 0x3e, 0xa8, 0xaf, 0xf7, 0x4c, 0xb6, 0x2f, - 0x1d, 0x1c, 0xcb, 0xd1, 0xd6, 0xa4, 0x93, 0x8c, 0xb2, 0x84, 0x8d, 0xb5, 0xe3, 0x8e, 0xb2, 0x43, - 0x34, 0xd4, 0xfe, 0x98, 0x67, 0xa7, 0xf4, 0x6f, 0x12, 0x18, 0x5d, 0x07, 0xb4, 0x6e, 0x99, 0x18, - 0xba, 0xe4, 0x2c, 0x94, 0x26, 0x82, 0xee, 0xd0, 0xae, 0x3f, 0x14, 0x6b, 0x5b, 0xb8, 0xbb, 0x8d, - 0x7b, 0xe8, 0xc5, 0x07, 0xc7, 0x6e, 0x0e, 0x8a, 0x5d, 0xa7, 0x36, 0xba, 0x5d, 0x70, 0x93, 0x13, + 0x02, 0x61, 0x60, 0xa8, 0xd4, 0x4c, 0xcc, 0xfe, 0x8b, 0xde, 0x1c, 0x13, 0x2d, 0x87, 0xce, 0x44, + 0x3e, 0x35, 0xe2, 0x20, 0x33, 0xb2, 0xd9, 0xf4, 0x91, 0xf9, 0x41, 0x16, 0x66, 0x16, 0xf5, 0xcb, + 0x1a, 0xc1, 0xa6, 0x72, 0x60, 0x6c, 0xe2, 0x1a, 0x57, 0x96, 0xdd, 0xb6, 0xa7, 0x6d, 0x5c, 0x19, + 0xd6, 0x70, 0xfa, 0x1c, 0x7f, 0xfc, 0x76, 0xc7, 0x66, 0xea, 0x1d, 0x82, 0x77, 0x60, 0x69, 0x1c, + 0x7c, 0x4c, 0xf8, 0x27, 0x89, 0x02, 0xdf, 0x49, 0xe2, 0x3b, 0x83, 0x40, 0x2d, 0xb0, 0x40, 0x8d, + 0xd4, 0x51, 0x24, 0x7b, 0x8a, 0xf8, 0xdb, 0x1e, 0x54, 0x35, 0x06, 0xaa, 0xdb, 0xe2, 0x34, 0x9d, + 0x3e, 0x58, 0xdf, 0x15, 0xa0, 0xb8, 0xe8, 0x98, 0xa2, 0xa2, 0xf3, 0x50, 0x70, 0xfe, 0xda, 0x93, + 0xcc, 0x36, 0xde, 0xa3, 0xf0, 0xd8, 0x7f, 0xed, 0xce, 0xef, 0xca, 0xea, 0x00, 0x7b, 0x9d, 0x1f, + 0xe6, 0xfe, 0x45, 0xfb, 0xa9, 0xe4, 0x14, 0x42, 0x5b, 0xbc, 0x78, 0xdf, 0xef, 0x1b, 0xcc, 0x66, + 0x43, 0xbf, 0x5a, 0xc8, 0xc9, 0x9c, 0x53, 0x8a, 0xfe, 0x7a, 0xe6, 0xb3, 0xe8, 0x5d, 0x41, 0x94, + 0xab, 0x2c, 0xca, 0xcf, 0x18, 0x53, 0x57, 0x12, 0x30, 0xbf, 0xcb, 0x83, 0x79, 0x89, 0x81, 0xf9, + 0x6c, 0xac, 0xb6, 0xa7, 0x72, 0xbe, 0x78, 0x54, 0xc2, 0xa6, 0x65, 0x28, 0x5d, 0xbb, 0x0e, 0x13, + 0xfd, 0x4a, 0xe6, 0xe0, 0x63, 0xb2, 0x06, 0x47, 0x8d, 0x40, 0x9d, 0x74, 0x64, 0x3e, 0x65, 0xa4, + 0x2a, 0x35, 0xd8, 0xb8, 0xc4, 0xbc, 0xc6, 0x6e, 0x37, 0xce, 0xb3, 0x18, 0x86, 0xf1, 0x31, 0x58, + 0x5d, 0x22, 0x40, 0xbe, 0xd7, 0x03, 0xf2, 0x02, 0x03, 0xe4, 0x73, 0xe2, 0x13, 0x90, 0x3e, 0x9a, + 0x2f, 0x15, 0x20, 0x47, 0xcc, 0xd6, 0x7f, 0x9c, 0x05, 0xa8, 0x9b, 0x15, 0xa3, 0xbb, 0xa5, 0xec, + 0xe2, 0x1e, 0x92, 0x0f, 0x8e, 0xa9, 0xbd, 0x9b, 0xf7, 0x2a, 0x24, 0x88, 0xce, 0x48, 0x81, 0x1c, + 0xf4, 0x70, 0x10, 0xac, 0x0b, 0x2c, 0x58, 0x77, 0x84, 0xf0, 0x8a, 0x58, 0x6b, 0xfb, 0x64, 0x86, + 0xdc, 0xfc, 0x79, 0xbf, 0x87, 0x40, 0x93, 0x41, 0xe0, 0xee, 0x89, 0x6a, 0x4d, 0x1f, 0x84, 0xdf, + 0x10, 0x20, 0xdf, 0x90, 0x2d, 0xfc, 0x10, 0x7a, 0x95, 0x40, 0xad, 0x83, 0x57, 0x0f, 0xce, 0x7f, + 0x11, 0x72, 0x76, 0x19, 0xba, 0xef, 0x23, 0xff, 0xe3, 0x1a, 0xc5, 0x10, 0xee, 0x10, 0xca, 0x9c, + 0x83, 0x8b, 0x29, 0x1b, 0xc5, 0x44, 0x37, 0x9f, 0x3e, 0x2e, 0xdf, 0x2f, 0x51, 0x34, 0xbe, 0xe0, + 0xc2, 0xf2, 0xeb, 0x99, 0x54, 0x70, 0x11, 0xef, 0x85, 0xfc, 0x8e, 0x6c, 0x6c, 0x9b, 0x64, 0x37, + 0x7e, 0x84, 0xe7, 0x0c, 0xc9, 0xfe, 0x68, 0x34, 0x25, 0xe7, 0xad, 0xd8, 0x07, 0x85, 0x9e, 0x6d, + 0x67, 0x62, 0xa8, 0xc6, 0x39, 0x28, 0x8c, 0x6a, 0x3d, 0x7d, 0x50, 0x5f, 0xe3, 0x99, 0x6c, 0x5f, + 0x3a, 0x38, 0x96, 0xa3, 0xad, 0x49, 0x27, 0x19, 0x65, 0x09, 0x1b, 0x6b, 0xc7, 0x1d, 0x65, 0x87, + 0x68, 0xa8, 0xfd, 0x31, 0xcf, 0x4e, 0xe9, 0x17, 0x13, 0x18, 0x5d, 0x07, 0xb4, 0x6e, 0x99, 0x18, + 0xba, 0xe4, 0x2c, 0x94, 0x26, 0x82, 0xee, 0xd0, 0xae, 0x3f, 0x14, 0xab, 0x5b, 0xb8, 0xbb, 0x8d, + 0x7b, 0xe8, 0x05, 0x07, 0xc7, 0x6e, 0x1e, 0x8a, 0x5d, 0xa7, 0x36, 0xba, 0x5d, 0x70, 0x93, 0x13, 0x6d, 0xec, 0x1c, 0x91, 0x76, 0x2a, 0x38, 0x94, 0x8d, 0x5d, 0x04, 0x01, 0xe9, 0x43, 0xf3, 0x88, - 0x00, 0xb9, 0x46, 0x57, 0xd7, 0xd0, 0xcf, 0x1c, 0x1c, 0x97, 0x6b, 0x61, 0x46, 0xe9, 0xea, 0x5a, - 0x63, 0x47, 0xde, 0x74, 0xef, 0x0b, 0xfb, 0x19, 0xee, 0xd3, 0xfa, 0x8e, 0xfe, 0x12, 0x85, 0xe8, + 0x00, 0xb9, 0x7a, 0x57, 0xd7, 0xd0, 0x2f, 0x1c, 0x1c, 0x97, 0xeb, 0x60, 0x56, 0xe9, 0xea, 0x5a, + 0x7d, 0x47, 0xde, 0x74, 0xef, 0x0b, 0xfb, 0x19, 0xee, 0xd3, 0xda, 0x8e, 0xfe, 0x42, 0x85, 0xe8, 0xb0, 0xe9, 0x53, 0x92, 0x31, 0xf9, 0xd2, 0x64, 0x13, 0x7f, 0x78, 0x4b, 0xd3, 0x88, 0xd6, 0xd3, - 0xc7, 0xec, 0x8d, 0xae, 0xe9, 0xe6, 0xcf, 0x0b, 0x90, 0x6b, 0xca, 0x3b, 0x38, 0xa1, 0x6d, 0x20, - 0x39, 0x84, 0x13, 0xfc, 0x43, 0xb8, 0x89, 0x40, 0x21, 0x46, 0x90, 0x36, 0x51, 0x87, 0x02, 0x4a, - 0x58, 0xeb, 0xe9, 0x83, 0xf2, 0xa5, 0x3c, 0xe4, 0x89, 0xa0, 0xa3, 0x6f, 0x64, 0xd3, 0x45, 0x85, - 0xdf, 0x0b, 0x82, 0xcf, 0x17, 0x42, 0x59, 0x04, 0x2c, 0xb1, 0x57, 0x93, 0xd0, 0x0a, 0xa7, 0xa0, - 0xee, 0xcb, 0x42, 0xfe, 0x92, 0xd2, 0xb3, 0xb6, 0x12, 0xda, 0x99, 0x5d, 0xb6, 0xeb, 0xa2, 0xa7, - 0xb8, 0x4e, 0x22, 0x86, 0x5f, 0x97, 0x61, 0x8e, 0x10, 0xc2, 0x0e, 0xe4, 0xd7, 0x85, 0xa7, 0xc6, - 0xe9, 0x88, 0xf3, 0x45, 0xa5, 0x87, 0xf5, 0x2b, 0x52, 0x9c, 0x09, 0x65, 0x49, 0x8a, 0x73, 0x68, - 0x85, 0xff, 0xdf, 0x8a, 0xb3, 0xc3, 0x91, 0x24, 0xc5, 0x39, 0xbc, 0xc6, 0xf4, 0x99, 0xfc, 0x69, - 0x01, 0x72, 0x4b, 0x8a, 0xb6, 0x8d, 0x7e, 0x47, 0x80, 0x59, 0xc7, 0xcd, 0x81, 0x6b, 0x37, 0xb7, - 0x79, 0x70, 0xae, 0x5f, 0x0f, 0xb3, 0x56, 0xb0, 0x4e, 0xd7, 0x40, 0x8f, 0xc9, 0x44, 0x9f, 0x0c, - 0xae, 0xa6, 0x4d, 0x16, 0x85, 0x3b, 0xc2, 0xb4, 0x1a, 0x8a, 0xb6, 0x5d, 0x61, 0xe8, 0x4d, 0x64, - 0x59, 0xfd, 0x2d, 0x0f, 0xba, 0x9f, 0x62, 0xa0, 0xbb, 0x67, 0x52, 0x32, 0xd2, 0x47, 0xf0, 0xb1, - 0x82, 0xcd, 0x3d, 0x55, 0x26, 0xde, 0x06, 0x5e, 0x27, 0x40, 0xa1, 0x8d, 0xad, 0x0b, 0x78, 0x0f, - 0xb5, 0x0f, 0x0e, 0x1f, 0x3d, 0x7c, 0x10, 0xbc, 0xc3, 0x07, 0xf4, 0x81, 0x6c, 0xbc, 0x01, 0xe3, - 0x12, 0x56, 0x71, 0x88, 0x4a, 0x04, 0xa3, 0x38, 0xc3, 0x2b, 0xba, 0xfd, 0xf4, 0xc1, 0x79, 0x8f, - 0x00, 0x42, 0xb5, 0xd7, 0x43, 0xbb, 0x07, 0x07, 0xe3, 0x36, 0x28, 0x19, 0xb4, 0x37, 0xde, 0xc1, - 0xdb, 0x90, 0x4d, 0x0f, 0x7d, 0x2c, 0x79, 0x05, 0xe3, 0x5e, 0x36, 0xf1, 0xf9, 0x55, 0xed, 0xf5, - 0xa6, 0x7d, 0xd9, 0x24, 0xaa, 0xf1, 0xf4, 0x91, 0xfa, 0xa0, 0x00, 0xd0, 0xf2, 0x7d, 0x38, 0xbd, - 0x5d, 0x70, 0x8e, 0x4e, 0x97, 0x79, 0x81, 0xbb, 0x1e, 0x66, 0x7d, 0x17, 0x50, 0xab, 0x86, 0xea, - 0x4e, 0x75, 0x4c, 0x26, 0xfa, 0x7c, 0x4c, 0xf5, 0x88, 0x4f, 0x91, 0x7b, 0xd4, 0x71, 0x60, 0x44, - 0x3e, 0x1b, 0x63, 0x07, 0x10, 0xd9, 0x7c, 0x3c, 0x4c, 0x5a, 0xf1, 0x31, 0x11, 0x9f, 0x02, 0xd7, - 0xb8, 0x25, 0x5a, 0xf3, 0xf7, 0xd7, 0x6b, 0x9d, 0xb5, 0xce, 0x03, 0x2b, 0xf5, 0xb5, 0x55, 0x69, - 0xa9, 0x2c, 0xa0, 0x37, 0x15, 0xa1, 0x34, 0xaf, 0xeb, 0xdb, 0xc4, 0x45, 0xc0, 0x6b, 0x04, 0xc8, - 0x2f, 0x62, 0xab, 0xbb, 0x95, 0xd0, 0xb4, 0x37, 0xf0, 0x00, 0x24, 0x86, 0x1d, 0x71, 0xb5, 0x5a, - 0x2e, 0x5d, 0x15, 0x42, 0xd3, 0xd4, 0xb5, 0x5a, 0x91, 0xcd, 0xa7, 0x3f, 0x94, 0x7e, 0x24, 0xc0, - 0xb1, 0x9a, 0x81, 0x65, 0x0b, 0x57, 0xb5, 0x9e, 0x83, 0xca, 0x2f, 0x24, 0xe2, 0xa2, 0xe7, 0x00, - 0xae, 0x0e, 0xf7, 0x1b, 0xeb, 0x7c, 0x35, 0x9e, 0xcb, 0x02, 0x9f, 0xa9, 0x6c, 0xd7, 0x52, 0xbe, - 0xdb, 0x11, 0xc3, 0x99, 0x01, 0x27, 0x85, 0xe9, 0xe3, 0xff, 0xed, 0x1c, 0x55, 0xc3, 0x7c, 0x3d, - 0x07, 0xc7, 0x3d, 0x5a, 0xa8, 0x51, 0xd6, 0xdf, 0x5c, 0x71, 0x92, 0xc0, 0x9a, 0x4f, 0xe7, 0x87, - 0xcc, 0xa7, 0xc5, 0x79, 0xc7, 0x04, 0x8c, 0xf8, 0xfa, 0x2b, 0x70, 0x5c, 0xc2, 0x26, 0x9a, 0x16, - 0xbb, 0xb4, 0xe4, 0xbd, 0xc7, 0xde, 0x60, 0x58, 0x62, 0x65, 0x6d, 0xd4, 0xb6, 0x85, 0xd4, 0x31, - 0xc4, 0xb9, 0x94, 0x05, 0xed, 0x83, 0x9e, 0xa0, 0xb5, 0x18, 0x41, 0x7b, 0xc1, 0x64, 0xe4, 0x4d, - 0xc1, 0xc3, 0xc9, 0xdd, 0x50, 0x5a, 0x90, 0x2d, 0x79, 0x57, 0xc1, 0x97, 0xd1, 0xb7, 0x04, 0x80, - 0x8b, 0x0a, 0xbe, 0xec, 0x10, 0x15, 0xe3, 0xee, 0x7d, 0x38, 0xfb, 0xee, 0x85, 0x9c, 0x5d, 0x35, - 0x3d, 0x51, 0xbc, 0x39, 0xfa, 0xe2, 0x3d, 0xa5, 0xa3, 0x62, 0xd3, 0x20, 0x91, 0xf7, 0x58, 0x63, - 0x5b, 0x8e, 0xe3, 0x79, 0xa6, 0x0e, 0xa7, 0x1f, 0x49, 0x2c, 0x1c, 0xe2, 0x49, 0x28, 0xd8, 0xd5, - 0x7a, 0x1f, 0x5f, 0x34, 0x15, 0xeb, 0x90, 0x7f, 0x3c, 0x6d, 0xe9, 0xe3, 0xed, 0x42, 0xec, 0x5c, - 0x93, 0x8c, 0x61, 0x43, 0x1f, 0x0e, 0x71, 0x08, 0x6b, 0x0e, 0x0c, 0xfd, 0x47, 0x0f, 0x02, 0xbd, - 0xd3, 0xbf, 0x44, 0xf6, 0x0c, 0x13, 0x43, 0x3c, 0x92, 0x86, 0xf4, 0x21, 0x7e, 0x3b, 0x85, 0x78, - 0x01, 0xab, 0xd8, 0xc2, 0xfc, 0xfe, 0x8a, 0x78, 0x10, 0xce, 0x31, 0xc2, 0x7f, 0x20, 0x84, 0x1c, - 0xf2, 0x0e, 0x17, 0xa1, 0x91, 0x34, 0xa4, 0x8f, 0xd0, 0x17, 0x05, 0x38, 0x6e, 0x37, 0xdf, 0xf6, - 0x6f, 0xf4, 0xf0, 0x7b, 0x2c, 0x8a, 0x0d, 0x13, 0x71, 0x31, 0x1e, 0x74, 0xb7, 0x39, 0x1b, 0x70, - 0xac, 0xf8, 0xe9, 0x20, 0x84, 0x2b, 0x2c, 0x84, 0x63, 0xd9, 0x17, 0xa0, 0x3f, 0x11, 0x1c, 0x3f, - 0xec, 0xe1, 0xd8, 0x66, 0x70, 0xbc, 0x6f, 0x72, 0x42, 0xd2, 0x07, 0xf3, 0xab, 0x02, 0xcc, 0x52, - 0x1a, 0xaa, 0x5d, 0x4b, 0xd9, 0xc5, 0xe8, 0xd5, 0x29, 0x4e, 0xaa, 0x27, 0xa1, 0xa0, 0x6f, 0x6c, - 0x98, 0xf4, 0xba, 0xd7, 0xac, 0x44, 0x53, 0xe2, 0x09, 0xc8, 0xab, 0xca, 0x8e, 0x62, 0x51, 0x80, - 0x9d, 0x44, 0x6c, 0x9d, 0xe0, 0x30, 0x53, 0x9d, 0x0e, 0x4d, 0x5d, 0x27, 0xc8, 0x45, 0x46, 0xfa, - 0xc8, 0x7e, 0x80, 0xd8, 0x98, 0x76, 0x75, 0xa3, 0x47, 0x57, 0xcb, 0xd7, 0x67, 0x12, 0xb9, 0x0b, - 0x61, 0x90, 0x3a, 0x3d, 0x68, 0xbd, 0xb4, 0x78, 0x06, 0x0a, 0xce, 0x7f, 0xba, 0x66, 0x86, 0xdb, - 0x84, 0x3b, 0xc5, 0xd0, 0x6b, 0x83, 0xf8, 0x2e, 0xb3, 0xf8, 0x3e, 0x3f, 0x8a, 0xb1, 0xc1, 0x6e, - 0x85, 0xe8, 0xdf, 0x3f, 0xe4, 0x01, 0xb6, 0xc2, 0x00, 0x76, 0xf7, 0x84, 0xf5, 0x4e, 0xe5, 0xd2, - 0x17, 0xc5, 0x8b, 0x2e, 0x7d, 0xff, 0x3c, 0x55, 0xb8, 0xd0, 0xc7, 0x0f, 0xc6, 0xfd, 0x04, 0x17, - 0xc0, 0x03, 0x60, 0x75, 0x48, 0x4b, 0xe0, 0xe3, 0x1e, 0x56, 0xf4, 0x63, 0xe3, 0x8d, 0x99, 0x44, - 0xee, 0x54, 0xd0, 0xf1, 0x23, 0x70, 0x8d, 0x1f, 0xf1, 0x14, 0x80, 0x85, 0x77, 0xfa, 0xaa, 0x6c, - 0x61, 0x6f, 0xd5, 0x0c, 0xe4, 0xa0, 0xff, 0x70, 0x30, 0x84, 0x23, 0xbf, 0x3f, 0x7c, 0x62, 0xb3, - 0x7c, 0x83, 0xfd, 0x00, 0x20, 0x1f, 0xd2, 0xc7, 0xc6, 0xaf, 0xe4, 0xe0, 0x88, 0xab, 0x8e, 0x3e, - 0x4c, 0xfd, 0xfd, 0xeb, 0x85, 0x78, 0x8a, 0x83, 0x00, 0xf7, 0x3c, 0xe2, 0x13, 0xf9, 0x8a, 0xbc, - 0x0e, 0x8e, 0xb8, 0x44, 0x5d, 0xf0, 0x8e, 0x84, 0x82, 0x59, 0x4c, 0xff, 0x72, 0xbc, 0xfd, 0x8b, - 0xa3, 0x75, 0xe0, 0xe8, 0x5b, 0xfa, 0x82, 0xf1, 0x84, 0x00, 0xc7, 0xdc, 0xf6, 0xe9, 0xda, 0xfa, - 0xe6, 0x04, 0xc6, 0x7f, 0x4a, 0xec, 0x8d, 0xe9, 0x96, 0x75, 0x3f, 0x8b, 0x13, 0xfc, 0x18, 0x8d, - 0xa3, 0xc9, 0xe4, 0xa3, 0x23, 0x7d, 0xb4, 0x3f, 0x1a, 0x40, 0x9b, 0xae, 0xcc, 0xdd, 0x29, 0x80, - 0x7d, 0x70, 0xdc, 0xf8, 0x56, 0x68, 0x21, 0x75, 0xdc, 0x0e, 0x69, 0x8d, 0xfe, 0x46, 0x0e, 0xae, - 0x71, 0xd6, 0x0f, 0x97, 0x90, 0x56, 0xdf, 0x9d, 0xca, 0x1f, 0x9d, 0xca, 0x70, 0x7d, 0x1e, 0x14, - 0xf4, 0x7e, 0x60, 0xb0, 0x9e, 0x0a, 0x19, 0xac, 0x15, 0x87, 0x30, 0x89, 0x96, 0x66, 0x76, 0x6d, - 0xf9, 0xa1, 0x5d, 0x1b, 0xe3, 0xc8, 0xe3, 0x45, 0xac, 0x54, 0xcc, 0x8f, 0x5f, 0x4a, 0xf7, 0xb1, - 0x22, 0x91, 0x85, 0xc1, 0xef, 0xa8, 0x10, 0xa7, 0xa3, 0xe8, 0x13, 0x9e, 0x58, 0xbd, 0x98, 0x11, - 0xab, 0x73, 0x07, 0xef, 0xc8, 0x14, 0x0e, 0x8b, 0x73, 0x80, 0x46, 0xd1, 0x42, 0x57, 0x84, 0x1f, - 0x5f, 0x11, 0xfb, 0xd3, 0xe0, 0xc4, 0xf3, 0x62, 0x56, 0xc4, 0xea, 0x71, 0x91, 0x49, 0x70, 0xf1, - 0xf8, 0x94, 0x27, 0x2d, 0xff, 0x82, 0x91, 0x96, 0xfb, 0x13, 0xa1, 0x69, 0x0a, 0x96, 0xc9, 0x21, - 0x02, 0x43, 0x17, 0x95, 0xb7, 0x4e, 0x45, 0x60, 0x10, 0x94, 0x1c, 0x11, 0xf0, 0xbe, 0x18, 0xbc, - 0xf4, 0xf4, 0x84, 0x22, 0xc1, 0x6f, 0xc7, 0xc4, 0x84, 0xe2, 0x90, 0x56, 0xa9, 0x3f, 0x10, 0xe0, - 0xc9, 0x2e, 0x21, 0x4b, 0x8a, 0x69, 0x55, 0x77, 0x65, 0x45, 0x95, 0xd7, 0x55, 0x9c, 0x84, 0x77, - 0x84, 0xff, 0x15, 0x04, 0xed, 0x22, 0x0b, 0xda, 0x0b, 0x79, 0x96, 0x6e, 0x86, 0xa2, 0x10, 0xbc, - 0x6e, 0x87, 0x19, 0x57, 0xc0, 0xdc, 0x6b, 0xe3, 0xa1, 0xbb, 0x52, 0xbf, 0x24, 0xfa, 0x2f, 0x1e, - 0x70, 0x0f, 0x30, 0xc0, 0xd5, 0x0f, 0x4a, 0x57, 0x3c, 0xcc, 0x96, 0x26, 0x30, 0x49, 0x99, 0x83, - 0x13, 0xcd, 0x56, 0x67, 0xad, 0xba, 0xb6, 0x50, 0xed, 0x54, 0x2f, 0x36, 0xea, 0x97, 0xd6, 0xe6, - 0x97, 0x5a, 0xb5, 0x0b, 0x65, 0x01, 0xfd, 0x7b, 0x01, 0x66, 0xda, 0xd8, 0x6a, 0xeb, 0x03, 0xa3, - 0x9b, 0xd4, 0xd9, 0x85, 0x49, 0x2a, 0xa3, 0xe1, 0x88, 0x68, 0x2a, 0xae, 0x23, 0x68, 0x9f, 0x83, - 0x1e, 0x75, 0xe3, 0x46, 0x5f, 0x2e, 0x61, 0x47, 0xd0, 0xe3, 0x49, 0x48, 0x7f, 0xb0, 0x3d, 0x2c, - 0x80, 0x70, 0x0e, 0x5b, 0xe8, 0x21, 0x01, 0xf2, 0xe4, 0xee, 0x67, 0x42, 0xce, 0x68, 0x79, 0xdd, - 0x9c, 0xa2, 0x77, 0x06, 0x61, 0xab, 0xb2, 0xb0, 0x8d, 0x72, 0x0b, 0x78, 0x0e, 0xd3, 0x4b, 0xaa, - 0x89, 0xcc, 0x95, 0xef, 0xf2, 0xd0, 0x5a, 0x60, 0xd0, 0x7a, 0x4e, 0x8c, 0x96, 0xd3, 0x07, 0xe9, - 0x4e, 0x38, 0xbe, 0xaa, 0xf5, 0x74, 0x09, 0xf7, 0xf4, 0x9a, 0x3e, 0xd0, 0x2c, 0x4c, 0x9c, 0x16, - 0x0d, 0xb4, 0x9e, 0x4e, 0xc8, 0xcd, 0x4b, 0xe4, 0xbf, 0x9d, 0x67, 0xe0, 0x9e, 0x4e, 0x5a, 0xcd, - 0x4b, 0xe4, 0x3f, 0x7a, 0xab, 0x00, 0x39, 0xfb, 0x5d, 0xf4, 0x4c, 0x4e, 0x58, 0xd1, 0xff, 0x88, - 0xe9, 0x56, 0xd2, 0xae, 0x3d, 0x91, 0x2d, 0xf3, 0xbd, 0x50, 0xea, 0x3a, 0xbd, 0x73, 0x1d, 0x35, - 0x9c, 0x0e, 0x69, 0x2e, 0xc0, 0x08, 0xc9, 0x7b, 0x27, 0x70, 0x20, 0x31, 0xde, 0xb9, 0xe4, 0x08, - 0xa2, 0xe3, 0xc1, 0xb8, 0x30, 0xc1, 0x24, 0x59, 0x86, 0xa3, 0xb5, 0x6a, 0x73, 0xcd, 0x9e, 0x28, - 0x97, 0x5b, 0x17, 0xeb, 0x65, 0x81, 0xa0, 0x63, 0x77, 0x26, 0x3d, 0x74, 0xec, 0xda, 0x7f, 0xec, - 0xd0, 0x19, 0x41, 0xf4, 0x61, 0xa0, 0xf3, 0x1e, 0x01, 0x72, 0xad, 0x3e, 0xd6, 0x12, 0xba, 0x83, - 0x6a, 0x19, 0x72, 0x17, 0x7b, 0xa7, 0x0e, 0x6e, 0x12, 0xfd, 0x6e, 0x4c, 0x44, 0x6d, 0x8a, 0x12, - 0x99, 0xfb, 0x3e, 0x1f, 0x03, 0x91, 0x11, 0x8d, 0xc6, 0x43, 0xe4, 0xa7, 0x27, 0x40, 0x64, 0x16, - 0x66, 0x6c, 0x34, 0x16, 0x5b, 0xab, 0xcd, 0x85, 0xb2, 0x20, 0xfe, 0x04, 0x3c, 0xb9, 0xda, 0x7c, - 0x80, 0x98, 0xba, 0x36, 0xeb, 0xf5, 0x85, 0xf6, 0xda, 0xea, 0xca, 0x39, 0xa9, 0xba, 0x50, 0x2f, - 0x03, 0x41, 0xaa, 0xbd, 0xa5, 0x5f, 0xbe, 0xb2, 0x90, 0xb2, 0x29, 0x9a, 0x3a, 0x52, 0x23, 0x1a, - 0xbd, 0x92, 0x90, 0xfa, 0x62, 0x16, 0x8e, 0x9f, 0xc3, 0xd6, 0xca, 0x60, 0x5d, 0x55, 0xba, 0x97, - 0xf0, 0xfa, 0xaa, 0xb4, 0x84, 0x9e, 0xe1, 0x83, 0x16, 0x1a, 0xa8, 0x07, 0xbd, 0x21, 0xe6, 0x15, - 0x8b, 0xa1, 0x46, 0x42, 0x70, 0xa0, 0x56, 0x8f, 0x59, 0xdf, 0xfe, 0x35, 0xce, 0x35, 0x8a, 0xe8, - 0x36, 0xd2, 0xdf, 0x17, 0xbc, 0x4d, 0x80, 0xe3, 0xf6, 0xc8, 0x9c, 0x37, 0xb0, 0xdc, 0xeb, 0x1a, - 0x83, 0x9d, 0x75, 0x33, 0xd6, 0x37, 0x92, 0x2b, 0xe7, 0x59, 0x56, 0xce, 0x3f, 0x17, 0x93, 0xd5, - 0x43, 0x24, 0xa4, 0x6c, 0x91, 0x19, 0x07, 0xa0, 0x68, 0xca, 0xd2, 0x07, 0xe8, 0xe5, 0x02, 0x1c, - 0x6b, 0x63, 0x2b, 0x04, 0x9f, 0xeb, 0x61, 0x76, 0xdd, 0x7f, 0xe2, 0x61, 0xc4, 0x66, 0xda, 0x22, - 0xaa, 0x78, 0x0e, 0x44, 0xed, 0xbf, 0x93, 0x38, 0x93, 0x18, 0x0f, 0x4f, 0xaa, 0xce, 0x24, 0x0e, - 0x13, 0x83, 0xef, 0x0a, 0x50, 0xa0, 0x47, 0xd2, 0xef, 0x4b, 0xc4, 0xc8, 0x3a, 0x46, 0xa8, 0x8d, - 0x83, 0x44, 0xc8, 0xfd, 0x68, 0x4c, 0xaf, 0x99, 0x91, 0x67, 0xd3, 0x49, 0x0d, 0xbe, 0x38, 0xfe, - 0x34, 0x0f, 0xe9, 0x8c, 0xfa, 0xbb, 0x39, 0x00, 0xa7, 0x69, 0xe2, 0x80, 0xec, 0x15, 0xdc, 0x61, - 0x3b, 0x26, 0x88, 0x8d, 0xcd, 0x9a, 0x1b, 0xe4, 0x87, 0xcd, 0x0d, 0xb8, 0x6d, 0xf5, 0xe3, 0x89, - 0x46, 0xc0, 0xd5, 0x64, 0x81, 0xcf, 0xd5, 0xe4, 0xd7, 0x62, 0xba, 0x9a, 0xf4, 0xf9, 0x17, 0x5b, - 0x9e, 0x82, 0x5d, 0x16, 0x86, 0xba, 0x1c, 0x4f, 0x93, 0x12, 0xc7, 0x41, 0x65, 0x28, 0xc1, 0xe9, - 0xcb, 0xdb, 0x7f, 0xce, 0xc1, 0x8c, 0xd3, 0x7c, 0x1b, 0x5b, 0xe8, 0x0b, 0x89, 0x4c, 0x31, 0x21, - 0x3a, 0xae, 0xa0, 0x88, 0xe6, 0x38, 0x45, 0xf4, 0x00, 0xa1, 0xd9, 0x7f, 0x10, 0x53, 0x35, 0xe3, - 0x71, 0xe1, 0x10, 0x85, 0xe6, 0x33, 0x31, 0x14, 0x3a, 0x61, 0xf4, 0x1e, 0xf2, 0x0d, 0xbe, 0x27, - 0xb2, 0x50, 0x58, 0xd5, 0x54, 0x45, 0xdb, 0x46, 0xb5, 0x04, 0x02, 0xb3, 0xc5, 0x77, 0xbf, 0x4c, - 0xda, 0x9e, 0xbe, 0xfb, 0xe5, 0x51, 0xcd, 0x4e, 0xc1, 0x4d, 0x58, 0x16, 0xf2, 0x35, 0x55, 0x37, - 0x13, 0x39, 0x5d, 0x78, 0x22, 0x13, 0x2f, 0xa6, 0x04, 0x69, 0x38, 0xc4, 0x5c, 0x33, 0x4e, 0xdc, - 0x86, 0x51, 0xf5, 0xa4, 0xcf, 0xba, 0xbf, 0x38, 0x0a, 0x33, 0x97, 0x74, 0x63, 0xdb, 0xec, 0xcb, - 0x5d, 0x8c, 0x3e, 0x9e, 0x05, 0x38, 0x87, 0xad, 0xda, 0xc0, 0x30, 0x6c, 0xe8, 0x67, 0x3c, 0x6e, - 0xb2, 0x1e, 0xa9, 0x23, 0xf7, 0xab, 0x5e, 0x6d, 0x15, 0xbf, 0xa6, 0x70, 0xff, 0xfa, 0x97, 0xdd, - 0xd2, 0x1e, 0x10, 0xc1, 0x2c, 0xce, 0x3d, 0x2a, 0x47, 0x93, 0xe9, 0x73, 0xf2, 0x43, 0x59, 0x28, - 0x9c, 0xc3, 0x56, 0x55, 0x55, 0x83, 0x7c, 0x7b, 0x0b, 0xf7, 0xaa, 0xcd, 0x74, 0xa2, 0xaa, 0xaa, - 0x21, 0x3c, 0x3b, 0x0d, 0x47, 0x03, 0x0c, 0x72, 0x67, 0x0a, 0x26, 0x8f, 0x73, 0xd5, 0x1d, 0xd3, - 0x60, 0xfa, 0x1c, 0xfb, 0xdd, 0xac, 0xb7, 0xab, 0x7f, 0xaa, 0x3f, 0x6e, 0x47, 0x44, 0x86, 0x41, - 0x6f, 0x9a, 0x80, 0x8b, 0x91, 0x7b, 0xe9, 0xf1, 0x92, 0x17, 0x97, 0x87, 0x87, 0xb4, 0x53, 0x7e, - 0x22, 0x0b, 0xe5, 0x36, 0xb6, 0x1a, 0xe6, 0x79, 0x65, 0x73, 0x4b, 0x55, 0x36, 0xb7, 0x2c, 0xdc, - 0x43, 0x17, 0x7c, 0x6e, 0x22, 0x28, 0x39, 0xd7, 0xf4, 0xbd, 0x49, 0xd0, 0x4b, 0x3b, 0xc1, 0x85, - 0x02, 0xef, 0x11, 0x9a, 0x48, 0x70, 0xa1, 0x60, 0x65, 0x3f, 0xcf, 0x7d, 0xc1, 0xd3, 0x67, 0xc6, - 0x30, 0x45, 0x21, 0xd3, 0x23, 0x9f, 0x89, 0x24, 0x77, 0xb5, 0x53, 0xb8, 0x7c, 0x90, 0x85, 0x42, - 0x9b, 0xc4, 0x95, 0x41, 0x3f, 0xe9, 0xf3, 0x78, 0x48, 0x98, 0x32, 0xfb, 0x85, 0xe9, 0x6f, 0x33, - 0xf1, 0xe5, 0xd7, 0x69, 0x27, 0x84, 0x73, 0x71, 0xa5, 0x73, 0x64, 0x65, 0x53, 0x70, 0xe0, 0x52, - 0x82, 0xc2, 0x25, 0x59, 0x55, 0xb1, 0x85, 0xbe, 0xe9, 0x0f, 0xf6, 0x1b, 0x18, 0xf1, 0x34, 0x74, - 0xdd, 0x09, 0xea, 0x42, 0xc5, 0xd3, 0x4d, 0xa3, 0xf7, 0x73, 0x47, 0x27, 0x75, 0x9a, 0x88, 0x1e, - 0xf1, 0x08, 0x4a, 0x3b, 0x1a, 0xde, 0xd1, 0x35, 0xa5, 0xeb, 0x6e, 0xd5, 0xdd, 0x34, 0xfa, 0x3d, - 0xae, 0x88, 0xa3, 0x51, 0xad, 0xc4, 0x63, 0x65, 0x7b, 0x82, 0xed, 0xe6, 0xd3, 0xe0, 0x29, 0x8b, - 0xd5, 0xc6, 0x52, 0x7d, 0x61, 0xad, 0xd3, 0x5a, 0xab, 0x49, 0xf5, 0x6a, 0xa7, 0xbe, 0xb6, 0xd4, - 0xaa, 0x55, 0x97, 0xd6, 0xa4, 0xfa, 0x4a, 0xab, 0x8c, 0xd1, 0x5f, 0x92, 0x8f, 0xe4, 0xae, 0xbe, - 0x8b, 0x8d, 0xe0, 0x36, 0x28, 0x82, 0xc3, 0x91, 0x3c, 0x79, 0x23, 0x77, 0x08, 0x0a, 0xca, 0x17, - 0xda, 0x76, 0x88, 0xc0, 0xfe, 0x27, 0xae, 0xa0, 0x12, 0x91, 0x55, 0x5d, 0x01, 0x3c, 0xfe, 0x41, - 0x16, 0x8a, 0x35, 0x5d, 0xdb, 0xc5, 0x86, 0x85, 0xee, 0x63, 0x78, 0xec, 0xf1, 0x31, 0xc3, 0xf2, - 0xd1, 0xde, 0x68, 0x62, 0xcd, 0x32, 0xf4, 0xfe, 0x9e, 0xbb, 0xd1, 0xa4, 0x49, 0xd6, 0x81, 0x0d, - 0x0f, 0x87, 0x69, 0xcb, 0xe1, 0x5f, 0x66, 0xa3, 0x1b, 0x62, 0xc8, 0x13, 0x86, 0x60, 0x7e, 0x38, - 0x0e, 0x2e, 0xa3, 0x09, 0x98, 0x82, 0xd7, 0x85, 0x27, 0x41, 0xb1, 0xda, 0x25, 0xc7, 0x90, 0xe8, - 0x3b, 0x19, 0x28, 0xd4, 0x74, 0x6d, 0x43, 0xd9, 0x14, 0x6f, 0x84, 0x63, 0x58, 0x93, 0xd7, 0x55, - 0xec, 0xda, 0x60, 0x10, 0xda, 0x4b, 0xd2, 0x50, 0xae, 0x4d, 0x14, 0xcd, 0xc1, 0xeb, 0x83, 0x4d, - 0xba, 0xca, 0x05, 0xb3, 0xc4, 0x7b, 0x01, 0x39, 0x49, 0x09, 0xab, 0x58, 0x36, 0x71, 0x6d, 0x4b, - 0xd6, 0x34, 0xac, 0xb6, 0x2f, 0x2b, 0x56, 0x77, 0x8b, 0x3a, 0x9c, 0x8d, 0x28, 0x61, 0x6f, 0xca, - 0x9c, 0xa7, 0x6d, 0x7b, 0xb6, 0x35, 0x69, 0xd4, 0x37, 0x26, 0x4f, 0x7c, 0x36, 0xe4, 0xf1, 0x83, - 0x96, 0x21, 0xcf, 0xf5, 0xa2, 0xbf, 0xfa, 0x9d, 0x52, 0xe8, 0xe1, 0xbc, 0x37, 0x5f, 0xfe, 0x4c, - 0xe4, 0xe6, 0x48, 0xbc, 0x19, 0x8e, 0xcb, 0xbb, 0xb2, 0x25, 0x1b, 0x4b, 0x9e, 0xa7, 0x07, 0xc2, - 0xf7, 0xf3, 0x57, 0x49, 0xc3, 0x0f, 0xc4, 0x9b, 0xe0, 0xb8, 0xac, 0xf6, 0xb7, 0xe4, 0x86, 0xb6, - 0xab, 0x58, 0xd8, 0x06, 0x62, 0xee, 0x04, 0xa9, 0x6a, 0x38, 0x7b, 0xbe, 0x04, 0x05, 0xe7, 0x65, - 0xf4, 0xe6, 0x1c, 0xaf, 0x9c, 0x52, 0x8c, 0xa2, 0x27, 0xe2, 0xe7, 0x40, 0x51, 0x76, 0xca, 0xed, - 0xfb, 0xfe, 0x74, 0x74, 0x19, 0xb4, 0x16, 0xc9, 0x2d, 0x26, 0xde, 0x06, 0x85, 0x2e, 0x41, 0x9c, - 0xea, 0xf4, 0x9e, 0x32, 0xba, 0x51, 0x52, 0x44, 0xa2, 0x45, 0x89, 0x8b, 0xbd, 0xf1, 0x82, 0x1d, - 0x49, 0x71, 0x3c, 0xc1, 0xfe, 0x7e, 0x66, 0x82, 0x19, 0xe7, 0x16, 0xb8, 0xa9, 0x5a, 0xab, 0xb5, - 0x56, 0x9b, 0x1d, 0x3a, 0xdf, 0x2c, 0xac, 0xcd, 0xaf, 0x76, 0xd6, 0xfc, 0x59, 0xa8, 0xdd, 0xa9, - 0x4a, 0x9d, 0xb5, 0x66, 0x6b, 0xa1, 0x5e, 0xb6, 0x91, 0xbe, 0x71, 0x4c, 0xe9, 0x7a, 0x67, 0xad, - 0x59, 0x5d, 0xae, 0x97, 0x37, 0x38, 0x6a, 0xae, 0x77, 0xd6, 0xaa, 0x17, 0xab, 0x9d, 0xaa, 0x54, - 0xde, 0x64, 0x67, 0xbe, 0x76, 0xa7, 0xb5, 0xb2, 0x26, 0xad, 0x36, 0x9b, 0x8d, 0xe6, 0x39, 0xa7, - 0xe9, 0x2d, 0xf1, 0x04, 0x1c, 0x77, 0xe8, 0xbe, 0xd8, 0xe8, 0xd4, 0xd7, 0x6a, 0x76, 0xe6, 0xcf, - 0x16, 0xd1, 0xeb, 0x72, 0xfe, 0x9a, 0x13, 0xf8, 0xe8, 0xf9, 0x3b, 0x81, 0x57, 0xe9, 0xe4, 0xf2, - 0x3f, 0x7a, 0xf1, 0xf8, 0x75, 0x81, 0x47, 0x21, 0x14, 0x5d, 0x57, 0x3c, 0x30, 0x3f, 0x92, 0x9d, - 0x00, 0xcc, 0x27, 0xc3, 0xd5, 0xcd, 0xd6, 0x1a, 0xe5, 0x7a, 0x9b, 0x9e, 0xa4, 0xda, 0xad, 0x5d, - 0xdb, 0xac, 0x3b, 0x9c, 0x95, 0xea, 0xb5, 0xd6, 0xc5, 0xba, 0xb4, 0x76, 0xa9, 0xba, 0xb4, 0x54, - 0xef, 0xac, 0x2d, 0x36, 0xa4, 0x76, 0xa7, 0xbc, 0x31, 0x6e, 0xdd, 0xd9, 0x14, 0x9f, 0x01, 0x4f, - 0xf3, 0xd3, 0x6b, 0xf5, 0x17, 0x35, 0xda, 0x9d, 0x36, 0x81, 0xb3, 0xd6, 0x92, 0xa4, 0xd5, 0x95, - 0x4e, 0x7d, 0xa1, 0xbc, 0x25, 0x9e, 0x04, 0xd1, 0xaf, 0x45, 0x5a, 0x6d, 0x3a, 0xd0, 0x29, 0x76, - 0xfb, 0xb4, 0x3d, 0xb7, 0xf9, 0x66, 0xab, 0xb3, 0xb6, 0x52, 0x97, 0x16, 0x5b, 0xd2, 0x72, 0x7d, - 0xa1, 0xfc, 0x92, 0x71, 0xe8, 0x6f, 0x8b, 0x37, 0xc2, 0xe9, 0x6a, 0xb3, 0xd5, 0x39, 0x5f, 0x97, - 0xd6, 0xdc, 0x43, 0xe1, 0x15, 0xa9, 0x55, 0xab, 0xb7, 0xdb, 0x6b, 0x8d, 0xb6, 0x5b, 0xb8, 0xac, - 0xa2, 0x4f, 0xe5, 0xbd, 0xfd, 0xf1, 0xed, 0xfe, 0xa4, 0x75, 0x0c, 0xb2, 0x8a, 0xbb, 0x2d, 0xce, - 0x2a, 0x3d, 0x66, 0x4b, 0x92, 0x1d, 0xda, 0xf4, 0xfd, 0x63, 0xec, 0xc9, 0x26, 0x6a, 0x9f, 0x3c, - 0xad, 0xc9, 0xe6, 0xb3, 0x42, 0x9c, 0xc9, 0x26, 0x81, 0xcd, 0xf8, 0x9f, 0x64, 0x53, 0xd8, 0xde, - 0xf0, 0x88, 0xd9, 0x46, 0x88, 0x98, 0x0d, 0x4d, 0x21, 0x8b, 0x8d, 0xe6, 0x82, 0x3b, 0x12, 0xd6, - 0x1a, 0xcd, 0xc5, 0x56, 0x79, 0x4b, 0xac, 0xc0, 0xcd, 0x81, 0xda, 0x6d, 0x19, 0xa4, 0x2d, 0x54, - 0x9b, 0x0b, 0x6b, 0xcb, 0xcd, 0xfa, 0x72, 0xab, 0xd9, 0xa8, 0x91, 0xfc, 0x76, 0xbd, 0xe3, 0xc8, - 0xed, 0x90, 0x54, 0xb6, 0xeb, 0x55, 0xa9, 0x76, 0x9e, 0x08, 0xf0, 0x42, 0xbd, 0xfc, 0x12, 0xf1, - 0x99, 0xf0, 0x8c, 0x00, 0x29, 0x54, 0xb8, 0x57, 0xa4, 0xfa, 0x42, 0x7d, 0xb1, 0xd1, 0xb4, 0x27, - 0xbc, 0xa5, 0x56, 0xed, 0x42, 0x3b, 0x86, 0xfc, 0xfe, 0x43, 0x16, 0x72, 0x6d, 0x4b, 0xef, 0xa3, - 0x67, 0xf9, 0xd2, 0x7b, 0x0a, 0xc0, 0xc0, 0x3b, 0xfa, 0x2e, 0xd9, 0x4f, 0xd0, 0x1d, 0x46, 0x20, - 0x07, 0xfd, 0x3e, 0xb7, 0x6a, 0xd6, 0xc3, 0xdf, 0xd2, 0xfb, 0x21, 0x33, 0xdd, 0x0f, 0xb9, 0x94, - 0xad, 0x11, 0x15, 0xc5, 0x13, 0xa3, 0xd7, 0x4c, 0xb2, 0x66, 0x21, 0x38, 0xe9, 0x21, 0xdb, 0x26, - 0x78, 0xb9, 0x0c, 0xc4, 0xe2, 0x35, 0xf0, 0xa4, 0x21, 0xcc, 0x08, 0x54, 0x1b, 0xe2, 0xd3, 0xe1, - 0xa9, 0x41, 0xa8, 0x96, 0x5b, 0x17, 0xeb, 0x9e, 0x7c, 0x2c, 0x54, 0x3b, 0xd5, 0xf2, 0x26, 0xfa, - 0xb4, 0x00, 0xc2, 0x92, 0xbe, 0x89, 0x1e, 0x15, 0x20, 0xd7, 0xc6, 0x5a, 0x8f, 0x39, 0xea, 0x9d, - 0x83, 0xe2, 0x0e, 0x36, 0x4d, 0x79, 0xd3, 0xdd, 0xfb, 0xb8, 0x49, 0xf1, 0x4e, 0xc8, 0xab, 0x78, - 0x17, 0x3b, 0x06, 0x20, 0xc7, 0xce, 0x3e, 0x83, 0xe1, 0xd4, 0x92, 0xbe, 0x59, 0xb1, 0xeb, 0xf2, - 0xc2, 0x11, 0x2f, 0xd9, 0x45, 0x25, 0xe7, 0x8d, 0xd3, 0xf7, 0x43, 0x9e, 0xa4, 0xc5, 0x19, 0xc8, - 0x2f, 0xd4, 0xe7, 0x57, 0xcf, 0x95, 0xaf, 0xb2, 0xff, 0xba, 0xfd, 0x9e, 0x81, 0xfc, 0x62, 0xb5, - 0x53, 0x5d, 0x2a, 0x67, 0x6d, 0xfe, 0x10, 0x29, 0x16, 0xec, 0xcc, 0x95, 0x6a, 0xb3, 0x51, 0x2b, - 0xe7, 0xc4, 0x23, 0x50, 0xbc, 0x54, 0x95, 0x48, 0xcf, 0xf3, 0xe8, 0xe5, 0x41, 0x31, 0xb8, 0x8b, - 0x15, 0x83, 0xeb, 0xc3, 0x68, 0x1a, 0x25, 0x02, 0x1f, 0xf3, 0x44, 0xe0, 0x1e, 0x46, 0x04, 0x9e, - 0xc5, 0x53, 0x49, 0x3c, 0xf8, 0x9b, 0x07, 0x35, 0x13, 0xc2, 0x36, 0x0f, 0x3a, 0x8d, 0xe5, 0x7a, - 0x6b, 0xb5, 0x53, 0xde, 0x40, 0x7f, 0x9d, 0x85, 0xe2, 0x45, 0x6c, 0x98, 0x8a, 0xae, 0xa1, 0xff, - 0x96, 0x75, 0x8c, 0x92, 0x03, 0xdb, 0x82, 0xaf, 0x70, 0x47, 0xab, 0xa7, 0x95, 0x10, 0x73, 0xdd, - 0xd0, 0xaf, 0x9d, 0x5d, 0xa7, 0x90, 0xfb, 0xb5, 0x43, 0x93, 0xf6, 0x93, 0xe0, 0x11, 0xf0, 0x8c, - 0x1f, 0xc6, 0xed, 0x2b, 0x5c, 0xda, 0xf8, 0xf0, 0xb6, 0xe3, 0x31, 0xb7, 0x37, 0x01, 0x73, 0x4f, - 0x40, 0xf9, 0x62, 0x5d, 0x6a, 0x37, 0x5a, 0x4d, 0x7b, 0x68, 0xd5, 0x97, 0x57, 0x3a, 0x0f, 0x94, - 0x85, 0x48, 0x96, 0xbf, 0xc3, 0x8d, 0x0b, 0xf0, 0x26, 0x01, 0x8a, 0xad, 0x8d, 0x0d, 0xe2, 0x88, - 0xae, 0x1e, 0xbe, 0xf6, 0xde, 0x0c, 0x65, 0x45, 0xeb, 0xaa, 0x83, 0x1e, 0x6e, 0xea, 0xd6, 0x8a, - 0xa2, 0x69, 0x9e, 0xda, 0x6f, 0x5f, 0x3e, 0x7a, 0x8c, 0x7b, 0x66, 0x23, 0x5e, 0xd3, 0x68, 0xeb, - 0x21, 0x80, 0xdd, 0x08, 0xc7, 0xd6, 0xf7, 0x2c, 0x6c, 0xd2, 0x52, 0xb4, 0xd9, 0x9c, 0x34, 0x94, - 0x8b, 0xfe, 0x88, 0x6b, 0x06, 0x8c, 0x68, 0x30, 0x1e, 0x4a, 0xf2, 0x64, 0x28, 0xd9, 0xb3, 0x9a, - 0xb3, 0x54, 0xd9, 0xfb, 0xf3, 0xfa, 0x42, 0x79, 0x93, 0x4c, 0x7d, 0x8d, 0x25, 0x27, 0xf7, 0x81, - 0x7a, 0x67, 0x6d, 0xa5, 0xd1, 0x6c, 0xda, 0xfb, 0x32, 0x7b, 0x73, 0x50, 0xb2, 0xe9, 0x5d, 0x52, - 0x4c, 0x0b, 0x7d, 0x2c, 0x00, 0x53, 0x8b, 0x99, 0xde, 0x74, 0x4d, 0xdd, 0x6b, 0xf4, 0xcc, 0xb9, - 0x0c, 0x51, 0xe8, 0xbb, 0xc9, 0x58, 0x80, 0xfd, 0x05, 0xb7, 0x9a, 0xdc, 0xa5, 0x67, 0x3c, 0x68, - 0x1b, 0x8a, 0x3a, 0x0c, 0x5a, 0x5e, 0x1a, 0xca, 0x1d, 0x01, 0xae, 0x30, 0x12, 0xdc, 0x4f, 0x70, - 0xa9, 0x2d, 0xc7, 0x10, 0x17, 0x0f, 0xe0, 0xf3, 0x49, 0x01, 0x8c, 0x7e, 0x31, 0x0b, 0xa5, 0xf6, - 0xd6, 0xc0, 0x22, 0x81, 0xab, 0x03, 0xd3, 0xda, 0x3f, 0x66, 0x78, 0x67, 0x7e, 0xf7, 0xed, 0x90, - 0x99, 0xff, 0xc3, 0x5c, 0x33, 0x7f, 0x48, 0x25, 0x87, 0xc3, 0x15, 0x8c, 0xbe, 0x93, 0x73, 0xf5, - 0x31, 0xe8, 0xeb, 0xb9, 0x7d, 0x53, 0xfe, 0xe7, 0x72, 0xbc, 0xe6, 0xb6, 0x4e, 0x1d, 0x11, 0x33, - 0xfe, 0x75, 0x70, 0x64, 0x4b, 0xa7, 0x31, 0xf4, 0xfd, 0x23, 0x9b, 0x40, 0x96, 0x2d, 0x85, 0xb2, - 0x13, 0xa7, 0x8f, 0xf5, 0xc9, 0x3e, 0x94, 0x6b, 0x97, 0xeb, 0x1b, 0xba, 0x2d, 0xc2, 0x6e, 0x39, - 0xe7, 0xca, 0xe0, 0x50, 0xae, 0x78, 0x0b, 0x5c, 0xbd, 0x23, 0x1b, 0xdb, 0xd8, 0xea, 0xab, 0x72, - 0x97, 0x78, 0xbb, 0xf4, 0x0c, 0x84, 0xf6, 0x3f, 0x10, 0x9f, 0x0b, 0x4f, 0x0e, 0x64, 0xba, 0x57, - 0xba, 0x1a, 0x3d, 0x62, 0xdf, 0x33, 0x23, 0x8d, 0x7e, 0x38, 0xf4, 0x56, 0xc7, 0x37, 0x44, 0x2a, - 0xee, 0x7b, 0xab, 0xc3, 0xd8, 0x24, 0xf5, 0xf0, 0xae, 0x42, 0x8e, 0x1b, 0x4a, 0xce, 0x17, 0x94, - 0x9b, 0xb6, 0xf7, 0xab, 0x9b, 0xb2, 0x85, 0x2f, 0xcb, 0x7b, 0xab, 0x86, 0x3a, 0x87, 0x1d, 0x7b, - 0x26, 0x3f, 0x07, 0x7d, 0x84, 0xcb, 0x10, 0x39, 0x14, 0x8e, 0xc3, 0x92, 0xb3, 0xaf, 0x64, 0x21, - 0xb7, 0xa2, 0x68, 0x9b, 0x41, 0x2f, 0xc8, 0x27, 0x20, 0xaf, 0x68, 0x3d, 0xfc, 0x20, 0xbd, 0x41, - 0xe3, 0x24, 0xc4, 0xb3, 0x70, 0x42, 0x1b, 0xec, 0xac, 0x63, 0xa3, 0xb5, 0x41, 0x0c, 0x19, 0xcc, - 0x8e, 0x6e, 0xef, 0x94, 0xe8, 0xd4, 0x35, 0xf2, 0x19, 0xfa, 0xdf, 0xc1, 0x31, 0xfc, 0x3c, 0x56, - 0x4e, 0xaf, 0x63, 0x18, 0x63, 0xd3, 0x10, 0x22, 0xa1, 0x1e, 0x39, 0xd9, 0x00, 0x39, 0xe8, 0xcd, - 0x1e, 0xbf, 0xef, 0x64, 0xf8, 0x7d, 0xc3, 0xb8, 0x6a, 0xd3, 0xd7, 0xab, 0xbe, 0x2b, 0x0b, 0xc5, - 0x15, 0x43, 0xef, 0x62, 0xd3, 0x44, 0x6f, 0xca, 0x42, 0xa1, 0x26, 0x6b, 0x5d, 0xac, 0xa2, 0x9f, - 0x08, 0xdd, 0x3e, 0xa0, 0xef, 0x67, 0x78, 0x3f, 0xcf, 0x69, 0xbd, 0x15, 0xa7, 0xce, 0x90, 0x19, - 0x8f, 0x4f, 0xfb, 0x1c, 0x59, 0x55, 0xfa, 0x5c, 0xfa, 0xb3, 0x2c, 0x1c, 0x59, 0x52, 0xb4, 0xed, - 0x15, 0x03, 0x13, 0x17, 0x98, 0x4f, 0xf1, 0xd9, 0x43, 0x4d, 0xcf, 0x33, 0x01, 0xd3, 0x73, 0xee, - 0x3d, 0x6e, 0xa0, 0xca, 0x10, 0x79, 0xba, 0x1b, 0x8e, 0xa8, 0x7e, 0x21, 0xaa, 0xc0, 0x40, 0x43, - 0x0a, 0x8c, 0x40, 0x35, 0x52, 0xb0, 0x38, 0xa7, 0xed, 0x49, 0x38, 0x15, 0xe9, 0x33, 0xf6, 0xfb, - 0x02, 0x80, 0xe3, 0x61, 0x97, 0xec, 0x60, 0x1f, 0xcf, 0x44, 0x30, 0x96, 0xf5, 0x64, 0x9c, 0x1d, - 0xf6, 0x64, 0x7c, 0x17, 0xe4, 0xec, 0x2e, 0x51, 0x87, 0xc9, 0xbc, 0x5e, 0x8c, 0xc9, 0x3b, 0xf6, - 0x34, 0xdf, 0x53, 0x4c, 0x79, 0x5d, 0xc5, 0x75, 0xad, 0x6b, 0xec, 0xf9, 0x7e, 0x07, 0x4a, 0xd2, - 0xfe, 0x07, 0x7e, 0x10, 0xc1, 0x3c, 0x47, 0x10, 0x41, 0xd2, 0x14, 0x13, 0x44, 0x90, 0x89, 0x7c, - 0x13, 0xb9, 0x20, 0xfa, 0x9c, 0x09, 0x11, 0x0f, 0x11, 0x72, 0x5b, 0xb2, 0xe9, 0x32, 0x83, 0xfc, - 0x47, 0x6f, 0xe3, 0x9a, 0xdc, 0x43, 0xab, 0x4e, 0x1f, 0xf3, 0x6f, 0x66, 0xe1, 0xa8, 0x1b, 0x34, - 0x9e, 0xa0, 0x7e, 0x2b, 0x73, 0xb8, 0x41, 0x3a, 0x94, 0xf1, 0x3b, 0x64, 0xe7, 0xf5, 0x7d, 0xc4, - 0xc9, 0x7f, 0xf4, 0x10, 0xf7, 0x77, 0x49, 0xb0, 0xa5, 0x10, 0x2e, 0x46, 0xca, 0x55, 0xc0, 0xbd, - 0x57, 0xd4, 0xd7, 0x48, 0x44, 0x33, 0xf1, 0x38, 0x5a, 0x3d, 0xf0, 0xbd, 0x1d, 0xf4, 0x57, 0x45, - 0x80, 0xa6, 0xbc, 0xab, 0x6c, 0x3a, 0x6e, 0x92, 0xbe, 0x2a, 0xd8, 0x93, 0x97, 0x69, 0x39, 0xe1, - 0x0e, 0x4c, 0xc6, 0x5b, 0xe2, 0x9d, 0x50, 0xa4, 0x06, 0x71, 0xb4, 0x57, 0x4f, 0x63, 0x7a, 0xe5, - 0xd7, 0xe2, 0xc8, 0xf3, 0x83, 0x96, 0xe4, 0x96, 0xb7, 0x37, 0x20, 0x1b, 0x03, 0x55, 0xed, 0xd8, - 0xef, 0x52, 0x15, 0xae, 0x9b, 0xf6, 0xbd, 0x5e, 0xd2, 0x78, 0x44, 0x24, 0x31, 0xe4, 0x23, 0x33, - 0xef, 0xfa, 0xc8, 0x44, 0xbf, 0xc3, 0x1d, 0xbe, 0x31, 0x40, 0x4f, 0xa0, 0x47, 0x21, 0xb0, 0xde, - 0x06, 0x45, 0xc7, 0xce, 0xc5, 0xbd, 0xbc, 0xff, 0x13, 0x43, 0x03, 0xd5, 0x79, 0xbd, 0xa1, 0x6d, - 0xe8, 0x92, 0x5b, 0x92, 0x33, 0x8a, 0x23, 0x17, 0x1d, 0xe9, 0x8f, 0xa4, 0x2f, 0x0b, 0x70, 0xf2, - 0x1c, 0xb6, 0xfc, 0x7e, 0x5c, 0x52, 0xac, 0x2d, 0x7b, 0x3a, 0x37, 0xd1, 0xbf, 0xe4, 0xb3, 0xff, - 0x09, 0xe0, 0x9f, 0x8d, 0x87, 0x3f, 0xfa, 0xe3, 0x20, 0x6a, 0x6d, 0x16, 0xb5, 0x7b, 0xc2, 0x6a, - 0x19, 0x4d, 0x6d, 0x08, 0x80, 0x77, 0x41, 0xc1, 0x21, 0x94, 0xae, 0x7b, 0xa7, 0x43, 0xf1, 0xf3, - 0x6a, 0x92, 0xe8, 0x1b, 0xe8, 0xa3, 0x1e, 0x8e, 0x17, 0x19, 0x1c, 0xe7, 0x0f, 0x44, 0x59, 0xea, - 0x90, 0x9e, 0xbe, 0x95, 0x58, 0x17, 0x90, 0x01, 0x76, 0x2c, 0x38, 0x8a, 0xcb, 0x57, 0x89, 0x00, - 0x85, 0x65, 0x7d, 0x17, 0x77, 0xf4, 0x72, 0xc6, 0xfe, 0x6f, 0xd3, 0xd7, 0xd1, 0xcb, 0x59, 0xf4, - 0xef, 0x8e, 0x40, 0xf1, 0xbc, 0x62, 0x5a, 0xba, 0xb1, 0x87, 0xbe, 0x94, 0x83, 0x12, 0xd5, 0x5e, - 0x99, 0xe8, 0xdd, 0x19, 0x4f, 0x17, 0xb7, 0x4f, 0x09, 0x74, 0x1d, 0x1c, 0xe9, 0xdb, 0x6b, 0xbe, - 0x3e, 0x30, 0x7d, 0x13, 0xc2, 0x60, 0x96, 0x2d, 0x36, 0xf2, 0xc0, 0xda, 0xd2, 0x0d, 0xdf, 0x98, - 0xdb, 0x4d, 0xdb, 0x1f, 0x18, 0xce, 0xff, 0xa6, 0xbc, 0x83, 0x5d, 0xff, 0x8c, 0x7e, 0x0e, 0x09, - 0x62, 0xad, 0xec, 0x38, 0x0b, 0xa4, 0x20, 0x91, 0xff, 0xe2, 0x1c, 0x14, 0x37, 0x0d, 0x7d, 0xd0, - 0xa7, 0x9f, 0x43, 0x82, 0xe4, 0x26, 0x83, 0xee, 0x40, 0x4f, 0x42, 0xa1, 0x2f, 0x6f, 0xfa, 0x26, - 0x54, 0x34, 0x25, 0x5e, 0x0f, 0xb3, 0xaa, 0x6c, 0x5a, 0xb4, 0x37, 0xde, 0xb7, 0x1f, 0x9b, 0x39, - 0x7a, 0xda, 0x41, 0x1f, 0xe3, 0x56, 0x89, 0x50, 0x2e, 0xba, 0xfa, 0xbf, 0x30, 0xb9, 0xac, 0x42, - 0x89, 0x6a, 0x1a, 0xdd, 0x99, 0xe5, 0x86, 0xe8, 0x6a, 0xe8, 0x1f, 0xc9, 0x7b, 0x8d, 0xd3, 0x78, - 0x6b, 0x0c, 0x3d, 0xe9, 0x4f, 0x30, 0xff, 0xdd, 0xbd, 0x90, 0xfb, 0xc0, 0x78, 0x88, 0xae, 0x85, - 0x99, 0xdd, 0x21, 0x78, 0xfc, 0x8c, 0x88, 0xeb, 0xb8, 0x3f, 0x2b, 0xf0, 0x2e, 0xe5, 0x2e, 0x3b, - 0x22, 0x2e, 0xe4, 0xde, 0x05, 0xe0, 0x4c, 0x00, 0x76, 0x99, 0x7d, 0xdb, 0x65, 0xf2, 0xbd, 0x47, - 0xa7, 0x0d, 0x52, 0x8b, 0x14, 0x28, 0x2d, 0xde, 0xe7, 0xeb, 0x93, 0x9d, 0x73, 0x3f, 0x4e, 0x54, - 0x83, 0x6a, 0x67, 0xb7, 0x8f, 0x39, 0xb6, 0x8f, 0x7c, 0x06, 0xf4, 0x11, 0xfd, 0x4b, 0x1f, 0xea, - 0x2f, 0x64, 0x01, 0xda, 0xd8, 0x1d, 0x4c, 0x41, 0xd3, 0xa6, 0x89, 0x00, 0x47, 0x3f, 0xcc, 0xf0, - 0xc6, 0xe6, 0xf2, 0xba, 0xed, 0xb5, 0x1e, 0x66, 0x03, 0xc0, 0x15, 0x6d, 0x6b, 0x6c, 0x75, 0xe9, - 0xf3, 0xf2, 0x95, 0x02, 0xe4, 0xc8, 0xad, 0xb5, 0x7f, 0xf0, 0x2d, 0x1e, 0xef, 0xf6, 0x19, 0x1a, - 0xb8, 0xfe, 0x93, 0xe1, 0xbb, 0xfe, 0x83, 0x1e, 0xe1, 0xfe, 0xa6, 0x24, 0x97, 0xa7, 0x22, 0xad, - 0x6f, 0x7c, 0x3c, 0x05, 0x06, 0xcf, 0x78, 0x37, 0x74, 0xf8, 0xbe, 0x2d, 0xc3, 0xa9, 0x49, 0x1f, - 0x85, 0x3f, 0xa4, 0x41, 0xce, 0x3e, 0xeb, 0xdf, 0x1c, 0xb5, 0x18, 0xa9, 0xa6, 0x77, 0xb3, 0x32, - 0x61, 0x77, 0xb3, 0xb2, 0x13, 0x5d, 0x1f, 0x14, 0xf6, 0x79, 0x2b, 0x7e, 0x8c, 0xdb, 0xe1, 0x40, - 0x7b, 0x9c, 0x09, 0xab, 0xb3, 0x8c, 0x0b, 0xde, 0x32, 0x1e, 0x0f, 0xb3, 0x4f, 0x72, 0x7d, 0x1a, - 0xb6, 0x93, 0xb1, 0x70, 0x4d, 0xfc, 0x42, 0xd5, 0x9b, 0x4f, 0x30, 0x31, 0xec, 0x1e, 0xcb, 0x42, - 0x8e, 0x9c, 0xa7, 0x04, 0x74, 0xcd, 0xbf, 0xc5, 0x7d, 0xd5, 0x2d, 0x10, 0xfb, 0x8d, 0x9c, 0x33, - 0x8c, 0x66, 0xf7, 0x0b, 0xe0, 0x88, 0x1f, 0xe1, 0x2e, 0xfa, 0x33, 0x82, 0x68, 0x13, 0x82, 0xa5, - 0x39, 0x9d, 0x12, 0x45, 0x13, 0x92, 0xfe, 0x28, 0x79, 0x87, 0x3f, 0x3a, 0x16, 0x82, 0xdf, 0x85, - 0xe0, 0x77, 0x85, 0x32, 0x30, 0xa2, 0xdf, 0x81, 0xc2, 0xe8, 0x8f, 0x82, 0x18, 0xd4, 0x58, 0x0c, - 0x9e, 0x1d, 0xd6, 0xf5, 0x48, 0xa1, 0x67, 0x89, 0xc9, 0xc6, 0x21, 0xc6, 0x37, 0xeb, 0x5e, 0x64, - 0x30, 0x38, 0x1b, 0x8b, 0x90, 0x43, 0x16, 0xfc, 0xb7, 0x1f, 0x0b, 0xc4, 0x40, 0xfd, 0x4b, 0x1a, - 0x73, 0x73, 0x83, 0x71, 0x40, 0xc0, 0x06, 0x67, 0xcc, 0x8c, 0x08, 0xce, 0x38, 0xa9, 0x37, 0xbb, - 0xef, 0x07, 0xe1, 0x6c, 0xb0, 0x70, 0xde, 0x16, 0xc6, 0x45, 0x8e, 0x40, 0x9b, 0x13, 0x92, 0xf3, - 0xb8, 0x07, 0xe8, 0x12, 0x03, 0xe8, 0x1d, 0x13, 0x90, 0x12, 0x0f, 0x56, 0x25, 0x61, 0x58, 0xc5, - 0x39, 0x38, 0x21, 0xd5, 0xab, 0x0b, 0xad, 0xe6, 0xd2, 0x03, 0xc1, 0xa7, 0xe5, 0x1c, 0x7a, 0x9b, - 0x00, 0x05, 0x89, 0x98, 0x17, 0xa1, 0x9f, 0x8a, 0x0b, 0xf3, 0x90, 0xa3, 0xcc, 0xec, 0x7e, 0xf7, - 0xcb, 0x9f, 0xe1, 0xbe, 0xcd, 0x33, 0x8a, 0x8d, 0x0e, 0x5d, 0x21, 0x3b, 0xb4, 0xef, 0x70, 0xdd, - 0xe6, 0xe1, 0xae, 0xf6, 0x8a, 0x05, 0xe8, 0x11, 0x01, 0x0a, 0xd4, 0x1b, 0x6e, 0x2f, 0x2e, 0x40, - 0x41, 0x57, 0xe7, 0x59, 0x5e, 0x57, 0xe7, 0x07, 0xc3, 0x2c, 0x32, 0x9e, 0xc8, 0xe4, 0x98, 0x25, - 0xe0, 0x6d, 0x76, 0x8a, 0x98, 0x7d, 0x4d, 0xa0, 0xfb, 0x85, 0x41, 0x5c, 0xc4, 0x16, 0xe0, 0xa9, - 0x72, 0xbf, 0x8f, 0x35, 0xcf, 0xaf, 0xaa, 0xb9, 0x68, 0xe8, 0x3b, 0x2d, 0x6b, 0x0b, 0x1b, 0xee, - 0xbe, 0x20, 0x73, 0x53, 0x49, 0x8a, 0x2e, 0xc4, 0x3a, 0x6f, 0x88, 0x74, 0x6c, 0x39, 0x8a, 0xd7, - 0x11, 0x9b, 0x94, 0x09, 0x67, 0xd2, 0x2f, 0x70, 0x79, 0xb8, 0xe4, 0xa4, 0xe5, 0x90, 0x57, 0xc8, - 0xbf, 0xbd, 0x00, 0x05, 0x87, 0x52, 0x7b, 0x5b, 0x78, 0xa4, 0xbd, 0x25, 0x1b, 0x78, 0x7e, 0x8f, - 0x44, 0x7e, 0xbf, 0x81, 0x4b, 0x11, 0x8a, 0x5e, 0x17, 0x44, 0x47, 0x84, 0x9c, 0xaa, 0x68, 0xdb, - 0xee, 0x29, 0x84, 0xfd, 0xdf, 0xff, 0x84, 0xcd, 0x8e, 0xf8, 0x84, 0xf5, 0x54, 0x0a, 0x5e, 0xbb, - 0x07, 0xfa, 0x84, 0x1d, 0x5b, 0xdd, 0x54, 0x4e, 0x3c, 0x8f, 0x57, 0x7b, 0xbd, 0x4b, 0x8a, 0xb5, - 0xd5, 0x72, 0x79, 0x74, 0x1f, 0x9f, 0x4e, 0x79, 0x0e, 0x8a, 0x7d, 0x79, 0x4f, 0xd5, 0x65, 0xef, - 0x5e, 0x3d, 0x4d, 0xb2, 0x06, 0x92, 0x91, 0x8a, 0x7e, 0xca, 0x81, 0x21, 0x0a, 0x42, 0x98, 0xca, - 0xa7, 0xb3, 0xe7, 0xaa, 0x32, 0x7d, 0xc6, 0xfe, 0x95, 0xc0, 0xc6, 0x5e, 0xf9, 0x69, 0x5e, 0x77, - 0x05, 0x13, 0xad, 0x1b, 0xff, 0x97, 0x3b, 0x42, 0x3a, 0x65, 0xcf, 0x8f, 0x49, 0x64, 0x95, 0x58, - 0xe3, 0xe8, 0x30, 0x23, 0xaa, 0x7c, 0x66, 0x7f, 0x44, 0x95, 0x7f, 0xc5, 0x8b, 0xf8, 0xd8, 0xad, - 0xdc, 0x64, 0x51, 0x77, 0x3e, 0xc0, 0xed, 0x17, 0x6e, 0x88, 0x7f, 0x09, 0x7a, 0xbc, 0xe7, 0xf3, - 0xfe, 0xc6, 0xd3, 0x7e, 0xfa, 0x10, 0xbe, 0x76, 0x7f, 0x98, 0x94, 0x46, 0x62, 0x10, 0x4e, 0x8e, - 0x46, 0x82, 0x41, 0x50, 0x26, 0x42, 0xe3, 0x90, 0xdc, 0xca, 0xbf, 0x2a, 0x07, 0x57, 0xef, 0x0f, - 0x7b, 0xc2, 0x1f, 0x12, 0x79, 0xfc, 0xa0, 0x9a, 0x34, 0xe6, 0xc7, 0x13, 0x31, 0x37, 0x78, 0x95, - 0x2b, 0x2b, 0x64, 0xc9, 0xfb, 0x63, 0xec, 0x07, 0x2b, 0x87, 0x1f, 0xa4, 0xe4, 0xcf, 0x04, 0x38, - 0x31, 0x32, 0x3c, 0xc9, 0x95, 0x20, 0x0a, 0xfc, 0x11, 0x08, 0x47, 0xf2, 0x33, 0xc1, 0x89, 0x96, - 0x2f, 0x38, 0x1d, 0x3f, 0x15, 0xe9, 0x03, 0xfb, 0x89, 0xdc, 0x30, 0xb0, 0x74, 0xd2, 0xfd, 0x50, - 0x82, 0xc0, 0x06, 0x83, 0x85, 0x08, 0x43, 0xc1, 0x42, 0xce, 0xc3, 0xd3, 0xc8, 0x9d, 0x3e, 0x63, - 0xc7, 0x51, 0x4a, 0x54, 0x55, 0xf5, 0xa2, 0xac, 0x0e, 0xb0, 0xd9, 0xd0, 0x9c, 0xf0, 0x1a, 0xee, - 0xe5, 0xee, 0x71, 0xc5, 0xd0, 0xf7, 0x0e, 0x26, 0x06, 0x09, 0x06, 0x13, 0xf9, 0xce, 0xe4, 0x62, - 0x90, 0xc0, 0x3c, 0xbf, 0x35, 0xc1, 0xf7, 0xde, 0x73, 0xe1, 0x39, 0xed, 0xd6, 0x72, 0x9d, 0xdc, - 0xe9, 0x93, 0x16, 0xda, 0x6b, 0xe7, 0xab, 0xed, 0x35, 0xa9, 0xbe, 0x54, 0xed, 0x34, 0x5a, 0xcd, - 0xb5, 0x8b, 0xd5, 0xa5, 0xd5, 0xfa, 0xda, 0xa5, 0x46, 0xe7, 0xfc, 0x5a, 0xe7, 0x7c, 0xa3, 0xbd, - 0xd6, 0x5a, 0xb1, 0xb3, 0xcb, 0x02, 0x7a, 0x75, 0x68, 0xd0, 0x11, 0x6e, 0xd7, 0xec, 0x8f, 0x71, - 0xc7, 0xe6, 0x1d, 0x62, 0x57, 0x8a, 0x21, 0x45, 0xf8, 0x82, 0xf4, 0xc6, 0xa0, 0x67, 0x0a, 0xa7, - 0x6f, 0x39, 0x28, 0xb4, 0xb1, 0x6c, 0x74, 0xb7, 0xd0, 0xaf, 0x06, 0x7c, 0x77, 0x2e, 0x42, 0x71, - 0x43, 0x51, 0x89, 0xfb, 0xf9, 0x0c, 0xe9, 0xfe, 0x2d, 0x7c, 0xf1, 0xe7, 0x17, 0xc9, 0x4b, 0x92, - 0xfb, 0xb2, 0xf8, 0x42, 0xc8, 0x9b, 0xba, 0xe1, 0x99, 0x76, 0x71, 0x46, 0xb1, 0x6f, 0xeb, 0x86, - 0x25, 0x39, 0x2f, 0x32, 0xf6, 0x6b, 0xc2, 0x90, 0xfd, 0x5a, 0x88, 0xa5, 0x1a, 0x1b, 0xcd, 0xd9, - 0xb3, 0x6b, 0xbb, 0x19, 0xca, 0xbe, 0xc2, 0xc8, 0x21, 0x74, 0xae, 0x40, 0x0e, 0x15, 0xf7, 0xe5, - 0x8b, 0x22, 0xe4, 0xb6, 0xf1, 0x9e, 0x39, 0x57, 0x24, 0xcf, 0xc9, 0x7f, 0xf4, 0x30, 0xb7, 0x97, - 0x1b, 0x57, 0x31, 0x40, 0xf8, 0x1a, 0x22, 0x62, 0xb7, 0x42, 0xd1, 0xa0, 0xd3, 0x94, 0x2b, 0x60, - 0x61, 0x07, 0x98, 0xb4, 0x1c, 0x7a, 0x27, 0x97, 0xf3, 0x9b, 0xa8, 0xc6, 0xa7, 0x10, 0xe1, 0xa4, - 0x04, 0xf9, 0x73, 0x86, 0xdc, 0xdf, 0x42, 0xbf, 0x98, 0x49, 0x5e, 0x9c, 0x3c, 0x60, 0xb3, 0xe3, - 0x80, 0x15, 0x46, 0x03, 0x8b, 0x5e, 0x93, 0x85, 0x5c, 0xd3, 0xee, 0xd4, 0xb0, 0xa5, 0x95, 0x48, - 0xed, 0x92, 0xa9, 0xf9, 0x2a, 0xb1, 0x37, 0x76, 0x7d, 0x78, 0x08, 0x01, 0x1f, 0x1e, 0x27, 0xa1, - 0xa0, 0xca, 0x7b, 0xfa, 0xc0, 0x93, 0x39, 0x27, 0x35, 0xcc, 0xce, 0xfc, 0x3e, 0x76, 0xda, 0xf3, - 0x99, 0xd2, 0xd5, 0xb5, 0xc6, 0x8e, 0xbc, 0x89, 0xe9, 0x55, 0x13, 0x3f, 0xc3, 0x7d, 0x5a, 0xdf, - 0xd1, 0x5f, 0xa2, 0xd0, 0x2b, 0x25, 0x7e, 0x86, 0x4d, 0x49, 0x4f, 0xd7, 0x30, 0xb9, 0x42, 0x52, - 0x92, 0xc8, 0x7f, 0xf1, 0x46, 0x38, 0xe6, 0x4e, 0x3d, 0x8b, 0xba, 0xb1, 0x23, 0x5b, 0x73, 0x33, - 0xce, 0x95, 0x2f, 0x36, 0x57, 0x9c, 0x83, 0xa2, 0xa9, 0x29, 0xfd, 0x3e, 0xb6, 0xe6, 0xc0, 0x51, - 0xf4, 0xd0, 0x24, 0x7a, 0x4b, 0x16, 0x72, 0xf5, 0xde, 0x26, 0x66, 0x4e, 0xd9, 0x33, 0x81, 0x53, - 0xf6, 0x93, 0x50, 0x70, 0x3c, 0x83, 0x52, 0xb6, 0xd0, 0xd4, 0x48, 0xc6, 0x3c, 0x9f, 0x32, 0x30, - 0x37, 0xe2, 0x72, 0x2f, 0x95, 0x49, 0x22, 0x18, 0x15, 0xbb, 0xc5, 0xa0, 0x55, 0x77, 0xba, 0x9c, + 0xc7, 0xec, 0x75, 0xae, 0xe9, 0xe6, 0x2b, 0x04, 0xc8, 0x35, 0xe5, 0x1d, 0x9c, 0xd0, 0x36, 0x90, + 0x1c, 0xc2, 0x09, 0xfe, 0x21, 0xdc, 0x44, 0xa0, 0x10, 0x23, 0x48, 0x9b, 0xa8, 0x43, 0x01, 0x25, + 0xac, 0xf5, 0xf4, 0x41, 0xf9, 0x52, 0x1e, 0xf2, 0x44, 0xd0, 0xd1, 0x37, 0xb2, 0xe9, 0xa2, 0xc2, + 0xef, 0x05, 0xc1, 0xe7, 0x0b, 0xa1, 0x2c, 0x02, 0x96, 0xd8, 0xab, 0x49, 0x68, 0x85, 0x53, 0x50, + 0xf7, 0x65, 0x21, 0x7f, 0x49, 0xe9, 0x59, 0x5b, 0x09, 0xed, 0xcc, 0x2e, 0xdb, 0x75, 0xd1, 0x53, + 0x5c, 0x27, 0x11, 0xc3, 0xaf, 0xcb, 0x30, 0x47, 0x08, 0x61, 0x07, 0xf2, 0xeb, 0xc2, 0x53, 0xe3, + 0x74, 0xc4, 0xf9, 0xa2, 0xd2, 0xc3, 0xfa, 0x15, 0x29, 0xce, 0x84, 0xb2, 0x24, 0xc5, 0x39, 0xb4, + 0xc2, 0xff, 0x6f, 0xc5, 0xd9, 0xe1, 0x48, 0x92, 0xe2, 0x1c, 0x5e, 0x63, 0xfa, 0x4c, 0xfe, 0xb4, + 0x00, 0xb9, 0x86, 0xa2, 0x6d, 0xa3, 0x3f, 0x10, 0x60, 0xce, 0x71, 0x73, 0xe0, 0xda, 0xcd, 0x6d, + 0x1e, 0x9c, 0xeb, 0x37, 0xc0, 0x9c, 0x15, 0xac, 0xd3, 0x35, 0xd0, 0x63, 0x32, 0xd1, 0x27, 0x83, + 0xab, 0x69, 0x93, 0x45, 0xe1, 0xce, 0x30, 0xad, 0x86, 0xa2, 0x6d, 0x97, 0x19, 0x7a, 0x13, 0x59, + 0x56, 0x3f, 0xe4, 0x41, 0xf7, 0x73, 0x0c, 0x74, 0xf7, 0x4e, 0x4a, 0x46, 0xfa, 0x08, 0x3e, 0x56, + 0xb0, 0xb9, 0xa7, 0xca, 0xc4, 0xdb, 0xc0, 0xab, 0x05, 0x28, 0xb4, 0xb1, 0x75, 0x01, 0xef, 0xa1, + 0xf6, 0xc1, 0xe1, 0xa3, 0x87, 0x0f, 0x82, 0x77, 0xf8, 0x80, 0xde, 0x9f, 0x8d, 0x37, 0x60, 0x5c, + 0xc2, 0xca, 0x0e, 0x51, 0x89, 0x60, 0x14, 0x67, 0x78, 0x45, 0xb7, 0x9f, 0x3e, 0x38, 0xef, 0x16, + 0x40, 0xa8, 0xf4, 0x7a, 0x68, 0xf7, 0xe0, 0x60, 0xdc, 0x0e, 0x33, 0x06, 0xed, 0x8d, 0x77, 0xf0, + 0x36, 0x64, 0xd3, 0x43, 0x1f, 0x4b, 0x5e, 0xc1, 0xb8, 0x97, 0x4d, 0x7c, 0x7e, 0x55, 0x7a, 0xbd, + 0x69, 0x5f, 0x36, 0x89, 0x6a, 0x3c, 0x7d, 0xa4, 0x3e, 0x20, 0x00, 0xb4, 0x7c, 0x1f, 0x4e, 0x6f, + 0x15, 0x9c, 0xa3, 0xd3, 0x65, 0x5e, 0xe0, 0x6e, 0x80, 0x39, 0xdf, 0x05, 0xd4, 0xaa, 0xa1, 0xba, + 0x53, 0x1d, 0x93, 0x89, 0x3e, 0x1f, 0x53, 0x3d, 0xe2, 0x53, 0xe4, 0x1e, 0x75, 0x1c, 0x18, 0x91, + 0xcf, 0xc6, 0xd8, 0x01, 0x44, 0x36, 0x1f, 0x0f, 0x93, 0x56, 0x7c, 0x4c, 0xc4, 0x6b, 0xe1, 0x1a, + 0xb7, 0x44, 0x6b, 0xe1, 0x81, 0x5a, 0xb5, 0xb3, 0xd6, 0x79, 0x70, 0xa5, 0xb6, 0xb6, 0x2a, 0x35, + 0x4a, 0x02, 0x7a, 0x7d, 0x11, 0x66, 0x16, 0x74, 0x7d, 0x9b, 0xb8, 0x08, 0x78, 0xa5, 0x00, 0xf9, + 0x25, 0x6c, 0x75, 0xb7, 0x12, 0x9a, 0xf6, 0x06, 0x1e, 0x80, 0xc4, 0xb0, 0x23, 0xae, 0x56, 0xcb, + 0xa5, 0xab, 0x4c, 0x68, 0x9a, 0xba, 0x56, 0x2b, 0xb2, 0xf9, 0xf4, 0x87, 0xd2, 0x4f, 0x04, 0x38, + 0x56, 0x35, 0xb0, 0x6c, 0xe1, 0x8a, 0xd6, 0x73, 0x50, 0xf9, 0xd5, 0x44, 0x5c, 0xf4, 0x1c, 0xc0, + 0xd5, 0xe1, 0x7e, 0x63, 0x9d, 0xaf, 0xc6, 0x73, 0x59, 0xe0, 0x33, 0x95, 0xed, 0x5a, 0xca, 0x77, + 0x3b, 0x62, 0x38, 0x33, 0xe0, 0xa4, 0x30, 0x7d, 0xfc, 0xbf, 0x93, 0xa3, 0x6a, 0x98, 0xaf, 0xe7, + 0xe0, 0xb8, 0x47, 0x0b, 0x35, 0xca, 0xfa, 0xdb, 0x2b, 0x4e, 0x12, 0x58, 0xf3, 0xe9, 0xfc, 0x90, + 0xf9, 0xb4, 0xb8, 0xe0, 0x98, 0x80, 0x11, 0x5f, 0x7f, 0x05, 0x8e, 0x4b, 0xd8, 0x44, 0xd3, 0x62, + 0x97, 0x96, 0xbc, 0xf7, 0xd8, 0x1b, 0x0c, 0x0d, 0x56, 0xd6, 0x46, 0x6d, 0x5b, 0x48, 0x1d, 0x43, + 0x9c, 0x4b, 0x59, 0xd0, 0x3e, 0xe0, 0x09, 0x5a, 0x8b, 0x11, 0xb4, 0xe7, 0x4e, 0x46, 0xde, 0x14, + 0x3c, 0x9c, 0xdc, 0x03, 0x33, 0x8b, 0xb2, 0x25, 0xef, 0x2a, 0xf8, 0x32, 0xfa, 0x96, 0x00, 0x70, + 0x51, 0xc1, 0x97, 0x1d, 0xa2, 0x62, 0xdc, 0xbd, 0x0f, 0x67, 0xdf, 0x7d, 0x90, 0xb3, 0xab, 0xa6, + 0x27, 0x8a, 0xb7, 0x44, 0x5f, 0xbc, 0xa7, 0x74, 0x94, 0x6d, 0x1a, 0x24, 0xf2, 0x1e, 0x6b, 0x6c, + 0xcb, 0x71, 0x3c, 0xcf, 0xd4, 0xe1, 0xf4, 0x23, 0x89, 0x85, 0x43, 0x3c, 0x09, 0x05, 0xbb, 0x5a, + 0xef, 0xe3, 0x8b, 0xa6, 0x62, 0x1d, 0xf2, 0x8f, 0xa7, 0x2d, 0x7d, 0xbc, 0x5d, 0x88, 0x9d, 0x6b, + 0x92, 0x31, 0x6c, 0xe8, 0xc3, 0x21, 0x0e, 0x61, 0xcd, 0x81, 0xa1, 0xff, 0xe8, 0x41, 0xa0, 0x77, + 0xfa, 0x97, 0xc8, 0x9e, 0x61, 0x62, 0x88, 0x47, 0xd2, 0x90, 0x3e, 0xc4, 0x6f, 0xa5, 0x10, 0x2f, + 0x62, 0x15, 0x5b, 0x98, 0xdf, 0x5f, 0x11, 0x0f, 0xc2, 0x39, 0x46, 0xf8, 0x0f, 0x84, 0x90, 0x43, + 0xde, 0xe1, 0x22, 0x34, 0x92, 0x86, 0xf4, 0x11, 0xfa, 0xa2, 0x00, 0xc7, 0xed, 0xe6, 0xdb, 0xfe, + 0x8d, 0x1e, 0x7e, 0x8f, 0x45, 0xb1, 0x61, 0x22, 0x2e, 0xc6, 0x83, 0xee, 0x36, 0xe7, 0x02, 0x8e, + 0x15, 0x3f, 0x1d, 0x84, 0x70, 0x85, 0x85, 0x70, 0x2c, 0xfb, 0x02, 0xf4, 0x27, 0x82, 0xe3, 0x87, + 0x3d, 0x1c, 0xdb, 0x0c, 0x8e, 0xf7, 0x4f, 0x4e, 0x48, 0xfa, 0x60, 0x7e, 0x55, 0x80, 0x39, 0x4a, + 0x43, 0xa5, 0x6b, 0x29, 0xbb, 0x18, 0x3d, 0x9c, 0xe2, 0xa4, 0x7a, 0x12, 0x0a, 0xfa, 0xc6, 0x86, + 0x49, 0xaf, 0x7b, 0xcd, 0x49, 0x34, 0x25, 0x9e, 0x80, 0xbc, 0xaa, 0xec, 0x28, 0x16, 0x05, 0xd8, + 0x49, 0xc4, 0xd6, 0x09, 0x0e, 0x33, 0xd5, 0xe9, 0xd0, 0xd4, 0x75, 0x82, 0x5c, 0x64, 0xa4, 0x8f, + 0xec, 0xfb, 0x89, 0x8d, 0x69, 0x57, 0x37, 0x7a, 0x74, 0xb5, 0x7c, 0x4d, 0x26, 0x91, 0xbb, 0x10, + 0x06, 0xa9, 0xd3, 0x83, 0xd6, 0x4b, 0x8b, 0x67, 0xa0, 0xe0, 0xfc, 0xa7, 0x6b, 0x66, 0xb8, 0x4d, + 0xb8, 0x53, 0x0c, 0xbd, 0x2a, 0x88, 0xef, 0x32, 0x8b, 0xef, 0x73, 0xa2, 0x18, 0x1b, 0xec, 0x56, + 0x88, 0xfe, 0xfd, 0x83, 0x1e, 0x60, 0x2b, 0x0c, 0x60, 0xf7, 0x4c, 0x58, 0xef, 0x54, 0x2e, 0x7d, + 0x51, 0xbc, 0xe8, 0xd2, 0xf7, 0xcf, 0x53, 0x85, 0x0b, 0x7d, 0xfc, 0x60, 0xdc, 0x4f, 0x70, 0x01, + 0x3c, 0x00, 0x56, 0x87, 0xb4, 0x04, 0x3e, 0xee, 0x61, 0x45, 0x3f, 0x36, 0x5e, 0x97, 0x49, 0xe4, + 0x4e, 0x05, 0x1d, 0x3f, 0x02, 0xd7, 0xf8, 0x11, 0x4f, 0x01, 0x58, 0x78, 0xa7, 0xaf, 0xca, 0x16, + 0xf6, 0x56, 0xcd, 0x40, 0x0e, 0xfa, 0x77, 0x07, 0x43, 0x38, 0xf2, 0xfb, 0xc3, 0x27, 0x36, 0xcb, + 0x37, 0xd8, 0x0f, 0x00, 0xf2, 0x21, 0x7d, 0x6c, 0xfc, 0x66, 0x0e, 0x8e, 0xb8, 0xea, 0xe8, 0xc3, + 0xd4, 0xdf, 0xbf, 0x46, 0x88, 0xa7, 0x38, 0x08, 0x70, 0xcf, 0x23, 0x3e, 0x91, 0xaf, 0xc8, 0xeb, + 0xe1, 0x88, 0x4b, 0xd4, 0x05, 0xef, 0x48, 0x28, 0x98, 0xc5, 0xf4, 0x2f, 0xc7, 0xdb, 0xbf, 0x38, + 0x5a, 0x07, 0x8e, 0xbe, 0xa5, 0x2f, 0x18, 0xdf, 0x13, 0xe0, 0x98, 0xdb, 0x3e, 0x5d, 0x5b, 0xdf, + 0x90, 0xc0, 0xf8, 0x4f, 0x89, 0xbd, 0x31, 0xdd, 0xb2, 0xee, 0x67, 0x71, 0x82, 0x1f, 0xa3, 0x71, + 0x34, 0x99, 0x7c, 0x74, 0xa4, 0x8f, 0xf6, 0x47, 0x03, 0x68, 0xd3, 0x95, 0xb9, 0x3b, 0x05, 0xb0, + 0x0f, 0x8e, 0x1b, 0xdf, 0x0a, 0x2d, 0xa4, 0x8e, 0xdb, 0x21, 0xad, 0xd1, 0xdf, 0xc8, 0xc1, 0x35, + 0xce, 0xfa, 0xe1, 0x12, 0xd2, 0xea, 0xbb, 0x53, 0xf9, 0xa3, 0x53, 0x19, 0xae, 0xcf, 0x86, 0x82, + 0xde, 0x0f, 0x0c, 0xd6, 0x53, 0x21, 0x83, 0xb5, 0xec, 0x10, 0x26, 0xd1, 0xd2, 0xcc, 0xae, 0x2d, + 0x3f, 0xb4, 0x6b, 0x63, 0x1c, 0x79, 0x3c, 0x9f, 0x95, 0x8a, 0x85, 0xf1, 0x4b, 0xe9, 0x3e, 0x56, + 0x24, 0xb2, 0x30, 0xf8, 0x1d, 0x15, 0xe2, 0x74, 0x14, 0x7d, 0xc2, 0x13, 0xab, 0x17, 0x30, 0x62, + 0x75, 0xee, 0xe0, 0x1d, 0x99, 0xc2, 0x61, 0x71, 0x0e, 0xd0, 0x28, 0x5a, 0xe8, 0x8a, 0xf0, 0xd3, + 0x2b, 0x62, 0x7f, 0x11, 0x9c, 0x78, 0x5e, 0xc0, 0x8a, 0x58, 0x2d, 0x2e, 0x32, 0x09, 0x2e, 0x1e, + 0x9f, 0xf2, 0xa4, 0xe5, 0x5f, 0x30, 0xd2, 0xf2, 0x40, 0x22, 0x34, 0x4d, 0xc1, 0x32, 0x39, 0x44, + 0x60, 0xe8, 0xa2, 0xf2, 0xe6, 0xa9, 0x08, 0x0c, 0x82, 0x19, 0x47, 0x04, 0xbc, 0x2f, 0x06, 0x2f, + 0x3d, 0x3d, 0xa1, 0x48, 0xf0, 0xdb, 0x31, 0x31, 0xa1, 0x38, 0xa4, 0x55, 0xea, 0x8f, 0x05, 0x78, + 0x82, 0x4b, 0x48, 0x43, 0x31, 0xad, 0xca, 0xae, 0xac, 0xa8, 0xf2, 0xba, 0x8a, 0x93, 0xf0, 0x8e, + 0xf0, 0xbf, 0x82, 0xa0, 0x5d, 0x64, 0x41, 0x7b, 0x1e, 0xcf, 0xd2, 0xcd, 0x50, 0x14, 0x82, 0xd7, + 0x1d, 0x30, 0xeb, 0x0a, 0x98, 0x7b, 0x6d, 0x3c, 0x74, 0x57, 0xea, 0x97, 0x44, 0xff, 0xd9, 0x03, + 0xee, 0x41, 0x06, 0xb8, 0xda, 0x41, 0xe9, 0x8a, 0x87, 0x59, 0x63, 0x02, 0x93, 0x94, 0x79, 0x38, + 0xd1, 0x6c, 0x75, 0xd6, 0x2a, 0x6b, 0x8b, 0x95, 0x4e, 0xe5, 0x62, 0xbd, 0x76, 0x69, 0x6d, 0xa1, + 0xd1, 0xaa, 0x5e, 0x28, 0x09, 0xe8, 0xdf, 0x0a, 0x30, 0xdb, 0xc6, 0x56, 0x5b, 0x1f, 0x18, 0xdd, + 0xa4, 0xce, 0x2e, 0x4c, 0x52, 0x19, 0x0d, 0x47, 0x44, 0x53, 0x71, 0x1d, 0x41, 0xfb, 0x1c, 0xf4, + 0xa8, 0x1b, 0x37, 0xfa, 0x72, 0x09, 0x3b, 0x82, 0x1e, 0x4f, 0x42, 0xfa, 0x83, 0xed, 0x1d, 0x02, + 0x08, 0xe7, 0xb0, 0x85, 0xde, 0x24, 0x40, 0x9e, 0xdc, 0xfd, 0x4c, 0xc8, 0x19, 0x2d, 0xaf, 0x9b, + 0x53, 0xf4, 0xf6, 0x20, 0x6c, 0x15, 0x16, 0xb6, 0x51, 0x6e, 0x01, 0xcf, 0x61, 0x7a, 0x49, 0x35, + 0x91, 0xb9, 0xf2, 0x9d, 0x1e, 0x5a, 0x8b, 0x0c, 0x5a, 0xcf, 0x8c, 0xd1, 0x72, 0xfa, 0x20, 0xdd, + 0x05, 0xc7, 0x57, 0xb5, 0x9e, 0x2e, 0xe1, 0x9e, 0x5e, 0xd5, 0x07, 0x9a, 0x85, 0x89, 0xd3, 0xa2, + 0x81, 0xd6, 0xd3, 0x09, 0xb9, 0x79, 0x89, 0xfc, 0xb7, 0xf3, 0x0c, 0xdc, 0xd3, 0x49, 0xab, 0x79, + 0x89, 0xfc, 0x47, 0x6f, 0x16, 0x20, 0x67, 0xbf, 0x8b, 0x9e, 0xc6, 0x09, 0x2b, 0xfa, 0xef, 0x31, + 0xdd, 0x4a, 0xda, 0xb5, 0x27, 0xb2, 0x65, 0xbe, 0x0f, 0x66, 0xba, 0x4e, 0xef, 0x5c, 0x47, 0x0d, + 0xa7, 0x43, 0x9a, 0x0b, 0x30, 0x42, 0xf2, 0xde, 0x09, 0x1c, 0x48, 0x8c, 0x77, 0x2e, 0x39, 0x82, + 0xe8, 0x78, 0x30, 0x2e, 0x4e, 0x30, 0x49, 0x96, 0xe0, 0x68, 0xb5, 0xd2, 0x5c, 0xb3, 0x27, 0xca, + 0xe5, 0xd6, 0xc5, 0x5a, 0x49, 0x20, 0xe8, 0xd8, 0x9d, 0x49, 0x0f, 0x1d, 0xbb, 0xf6, 0x9f, 0x3a, + 0x74, 0x46, 0x10, 0x7d, 0x18, 0xe8, 0xbc, 0x5b, 0x80, 0x5c, 0xab, 0x8f, 0xb5, 0x84, 0xee, 0xa0, + 0x5a, 0x86, 0xdc, 0xc5, 0xde, 0xa9, 0x83, 0x9b, 0x44, 0x7f, 0x18, 0x13, 0x51, 0x9b, 0xa2, 0x44, + 0xe6, 0xbe, 0xcf, 0xc7, 0x40, 0x64, 0x44, 0xa3, 0xf1, 0x10, 0xf9, 0xf9, 0x09, 0x10, 0x99, 0x83, + 0x59, 0x1b, 0x8d, 0xa5, 0xd6, 0x6a, 0x73, 0xb1, 0x24, 0x88, 0x4f, 0x84, 0x27, 0x54, 0x9a, 0x0f, + 0x12, 0x53, 0xd7, 0x66, 0xad, 0xb6, 0xd8, 0x5e, 0x5b, 0x5d, 0x39, 0x27, 0x55, 0x16, 0x6b, 0x25, + 0x20, 0x48, 0xb5, 0xb7, 0xf4, 0xcb, 0x57, 0x16, 0x52, 0x36, 0x45, 0x53, 0x47, 0x6a, 0x44, 0xa3, + 0x57, 0x12, 0x52, 0x5f, 0xcc, 0xc2, 0xf1, 0x73, 0xd8, 0x5a, 0x19, 0xac, 0xab, 0x4a, 0xf7, 0x12, + 0x5e, 0x5f, 0x95, 0x1a, 0xe8, 0xa9, 0x3e, 0x68, 0xa1, 0x81, 0x7a, 0xd0, 0x6b, 0x63, 0x5e, 0xb1, + 0x18, 0x6a, 0x24, 0x04, 0x07, 0x6a, 0xf5, 0x98, 0xf5, 0xed, 0x5f, 0xe3, 0x5c, 0xa3, 0x88, 0x6e, + 0x23, 0xfd, 0x7d, 0xc1, 0x5b, 0x04, 0x38, 0x6e, 0x8f, 0xcc, 0x05, 0x03, 0xcb, 0xbd, 0xae, 0x31, + 0xd8, 0x59, 0x37, 0x63, 0x7d, 0x23, 0xb9, 0x72, 0x9e, 0x65, 0xe5, 0xfc, 0x73, 0x31, 0x59, 0x3d, + 0x44, 0x42, 0xca, 0x16, 0x99, 0x71, 0x00, 0x8a, 0xa6, 0x2c, 0x7d, 0x80, 0x5e, 0x22, 0xc0, 0xb1, + 0x36, 0xb6, 0x42, 0xf0, 0xb9, 0x01, 0xe6, 0xd6, 0xfd, 0x27, 0x1e, 0x46, 0x6c, 0xa6, 0x2d, 0xa2, + 0x8a, 0xe7, 0x40, 0xd4, 0xfe, 0x3b, 0x89, 0x33, 0x89, 0xf1, 0xf0, 0xa4, 0xea, 0x4c, 0xe2, 0x30, + 0x31, 0xf8, 0xbe, 0x00, 0x05, 0x7a, 0x24, 0xfd, 0xde, 0x44, 0x8c, 0xac, 0x63, 0x84, 0xda, 0x38, + 0x48, 0x84, 0xdc, 0x8f, 0xc6, 0xf4, 0x9a, 0x19, 0x79, 0x36, 0x9d, 0xd4, 0xe0, 0x8b, 0xe3, 0x4f, + 0xf3, 0x90, 0xce, 0xa8, 0xbf, 0x9f, 0x03, 0x70, 0x9a, 0x26, 0x0e, 0xc8, 0x5e, 0xca, 0x1d, 0xb6, + 0x63, 0x82, 0xd8, 0xd8, 0xac, 0xb9, 0x41, 0x7e, 0xd8, 0xdc, 0x80, 0xdb, 0x56, 0x3f, 0x9e, 0x68, + 0x04, 0x5c, 0x4d, 0x16, 0xf8, 0x5c, 0x4d, 0x7e, 0x2d, 0xa6, 0xab, 0x49, 0x9f, 0x7f, 0xb1, 0xe5, + 0x29, 0xd8, 0x65, 0x61, 0xa8, 0xcb, 0xf1, 0x34, 0x29, 0x71, 0x1c, 0x54, 0x86, 0x12, 0x9c, 0xbe, + 0xbc, 0xfd, 0xa7, 0x1c, 0xcc, 0x3a, 0xcd, 0xb7, 0xb1, 0x85, 0xbe, 0x90, 0xc8, 0x14, 0x13, 0xa2, + 0xe3, 0x0a, 0x8a, 0x68, 0x8e, 0x53, 0x44, 0x0f, 0x10, 0x9a, 0xfd, 0x47, 0x31, 0x55, 0x33, 0x1e, + 0x17, 0x0e, 0x51, 0x68, 0x3e, 0x13, 0x43, 0xa1, 0x13, 0x46, 0xef, 0x21, 0xdf, 0xe0, 0xfb, 0x5e, + 0x16, 0x0a, 0xab, 0x9a, 0xaa, 0x68, 0xdb, 0xa8, 0x9a, 0x40, 0x60, 0xb6, 0xf8, 0xee, 0x97, 0x49, + 0xdb, 0xd3, 0x77, 0xbf, 0x3c, 0xaa, 0xd9, 0x29, 0xb8, 0x09, 0xcb, 0x42, 0xbe, 0xaa, 0xea, 0x66, + 0x22, 0xa7, 0x0b, 0xdf, 0xcb, 0xc4, 0x8b, 0x29, 0x41, 0x1a, 0x0e, 0x31, 0xd7, 0x8c, 0x13, 0xb7, + 0x61, 0x54, 0x3d, 0xe9, 0xb3, 0xee, 0xaf, 0x8f, 0xc2, 0xec, 0x25, 0xdd, 0xd8, 0x36, 0xfb, 0x72, + 0x17, 0xa3, 0x8f, 0x67, 0x01, 0xce, 0x61, 0xab, 0x3a, 0x30, 0x0c, 0x1b, 0xfa, 0x59, 0x8f, 0x9b, + 0xac, 0x47, 0xea, 0xc8, 0xfd, 0xaa, 0x57, 0x5b, 0xd9, 0xaf, 0x29, 0xdc, 0xbf, 0xfe, 0x65, 0xb7, + 0xb4, 0x07, 0x44, 0x30, 0x8b, 0x73, 0x8f, 0xca, 0xd1, 0x64, 0xfa, 0x9c, 0xfc, 0x60, 0x16, 0x0a, + 0xe7, 0xb0, 0x55, 0x51, 0xd5, 0x20, 0xdf, 0xde, 0xc8, 0xbd, 0x6a, 0x33, 0x9d, 0xa8, 0xa8, 0x6a, + 0x08, 0xcf, 0x4e, 0xc3, 0xd1, 0x00, 0x83, 0xdc, 0x99, 0x82, 0xc9, 0xe3, 0x5c, 0x75, 0xc7, 0x34, + 0x98, 0x3e, 0xc7, 0xfe, 0x30, 0xeb, 0xed, 0xea, 0x9f, 0xe4, 0x8f, 0xdb, 0x11, 0x91, 0x61, 0xd0, + 0xeb, 0x27, 0xe0, 0x62, 0xe4, 0x5e, 0x7a, 0xbc, 0xe4, 0xc5, 0xe5, 0xe1, 0x21, 0xed, 0x94, 0xbf, + 0x97, 0x85, 0x52, 0x1b, 0x5b, 0x75, 0xf3, 0xbc, 0xb2, 0xb9, 0xa5, 0x2a, 0x9b, 0x5b, 0x16, 0xee, + 0xa1, 0x0b, 0x3e, 0x37, 0x11, 0xcc, 0x38, 0xd7, 0xf4, 0xbd, 0x49, 0xd0, 0x4b, 0x3b, 0xc1, 0x85, + 0x02, 0xef, 0x11, 0x9a, 0x48, 0x70, 0xa1, 0x60, 0x65, 0xaf, 0xe0, 0xbe, 0xe0, 0xe9, 0x33, 0x63, + 0x98, 0xa2, 0x90, 0xe9, 0x91, 0xcf, 0x44, 0x92, 0xbb, 0xda, 0x29, 0x5c, 0x3e, 0xc8, 0x42, 0xa1, + 0x4d, 0xe2, 0xca, 0xa0, 0x9f, 0xf5, 0x79, 0x3c, 0x24, 0x4c, 0x99, 0xfd, 0xc2, 0xf4, 0x7f, 0x32, + 0xf1, 0xe5, 0xd7, 0x69, 0x27, 0x84, 0x73, 0x71, 0xa5, 0x73, 0x64, 0x65, 0x53, 0x70, 0xe0, 0x32, + 0x03, 0x85, 0x4b, 0xb2, 0xaa, 0x62, 0x0b, 0x7d, 0xd3, 0x1f, 0xec, 0x37, 0x32, 0xe2, 0x69, 0xe8, + 0xba, 0x13, 0xd4, 0x85, 0x8a, 0xa7, 0x9b, 0x46, 0xef, 0xe3, 0x8e, 0x4e, 0xea, 0x34, 0x11, 0x3d, + 0xe2, 0x11, 0xcc, 0xec, 0x68, 0x78, 0x47, 0xd7, 0x94, 0xae, 0xbb, 0x55, 0x77, 0xd3, 0xe8, 0x8f, + 0xb8, 0x22, 0x8e, 0x46, 0xb5, 0x12, 0x8f, 0x95, 0xed, 0x09, 0xb6, 0x9b, 0x4f, 0x86, 0x6b, 0x97, + 0x2a, 0xf5, 0x46, 0x6d, 0x71, 0xad, 0xd3, 0x5a, 0xab, 0x4a, 0xb5, 0x4a, 0xa7, 0xb6, 0xd6, 0x68, + 0x55, 0x2b, 0x8d, 0x35, 0xa9, 0xb6, 0xd2, 0x2a, 0x61, 0xf4, 0x6d, 0xf2, 0x91, 0xdc, 0xd5, 0x77, + 0xb1, 0x11, 0xdc, 0x06, 0x45, 0x70, 0x38, 0x92, 0x27, 0xaf, 0xe3, 0x0e, 0x41, 0x41, 0xf9, 0x42, + 0xdb, 0x0e, 0x11, 0xd8, 0xff, 0xc0, 0x15, 0x54, 0x22, 0xb2, 0xaa, 0x2b, 0x80, 0xc7, 0x3f, 0xca, + 0x42, 0xb1, 0xaa, 0x6b, 0xbb, 0xd8, 0xb0, 0xd0, 0xfd, 0x0c, 0x8f, 0x3d, 0x3e, 0x66, 0x58, 0x3e, + 0xda, 0x1b, 0x4d, 0xac, 0x59, 0x86, 0xde, 0xdf, 0x73, 0x37, 0x9a, 0x34, 0xc9, 0x3a, 0xb0, 0xe1, + 0xe1, 0x30, 0x6d, 0x39, 0xfc, 0xcb, 0x6c, 0x74, 0x43, 0x0c, 0x79, 0xc2, 0x10, 0xcc, 0xef, 0x88, + 0x83, 0xcb, 0x68, 0x02, 0xa6, 0x60, 0xe0, 0x70, 0x02, 0x8a, 0x95, 0x2e, 0x39, 0x86, 0x44, 0xdf, + 0xcd, 0x40, 0xa1, 0xaa, 0x6b, 0x1b, 0xca, 0xa6, 0x78, 0x13, 0x1c, 0xc3, 0x9a, 0xbc, 0xae, 0x62, + 0xd7, 0x06, 0x83, 0xd0, 0x3e, 0x23, 0x0d, 0xe5, 0xda, 0x44, 0xd1, 0x1c, 0xbc, 0x3e, 0xd8, 0xa4, + 0xab, 0x5c, 0x30, 0x4b, 0xbc, 0x0f, 0x90, 0x93, 0x94, 0xb0, 0x8a, 0x65, 0x13, 0x57, 0xb7, 0x64, + 0x4d, 0xc3, 0x6a, 0xfb, 0xb2, 0x62, 0x75, 0xb7, 0xa8, 0xc3, 0xd9, 0x88, 0x12, 0xf6, 0xa6, 0xcc, + 0x79, 0xda, 0xb6, 0x67, 0x5b, 0x93, 0x46, 0x7d, 0x63, 0xf2, 0xc4, 0x67, 0x40, 0x1e, 0x3f, 0x64, + 0x19, 0xf2, 0x7c, 0x2f, 0xfa, 0xab, 0xdf, 0x29, 0x85, 0xbe, 0x9d, 0xf7, 0xe6, 0xcb, 0x5f, 0x88, + 0xdc, 0x1c, 0x89, 0xb7, 0xc0, 0x71, 0x79, 0x57, 0xb6, 0x64, 0xa3, 0xe1, 0x79, 0x7a, 0x20, 0x7c, + 0x3f, 0x7f, 0x95, 0x34, 0xfc, 0x40, 0xbc, 0x19, 0x8e, 0xcb, 0x6a, 0x7f, 0x4b, 0xae, 0x6b, 0xbb, + 0x8a, 0x85, 0x6d, 0x20, 0xe6, 0x4f, 0x90, 0xaa, 0x86, 0xb3, 0x17, 0x66, 0xa0, 0xe0, 0xbc, 0x8c, + 0xbe, 0x9a, 0xe3, 0x95, 0x53, 0x8a, 0x51, 0xf4, 0x44, 0xfc, 0x4c, 0x28, 0xca, 0x4e, 0xb9, 0x7d, + 0xdf, 0x9f, 0x8e, 0x2e, 0x83, 0xd6, 0x22, 0xb9, 0xc5, 0xc4, 0xdb, 0xa1, 0xd0, 0x25, 0x88, 0x53, + 0x9d, 0xde, 0xb5, 0xa3, 0x1b, 0x25, 0x45, 0x24, 0x5a, 0x14, 0xbd, 0x5d, 0xe0, 0x11, 0xec, 0x48, + 0x8a, 0xe3, 0x09, 0xf6, 0x87, 0xb2, 0x13, 0xcc, 0x38, 0xb7, 0xc2, 0xcd, 0x95, 0x6a, 0xb5, 0xb5, + 0xda, 0xec, 0xd0, 0xf9, 0x66, 0x71, 0x6d, 0x61, 0xb5, 0xb3, 0xe6, 0xcf, 0x42, 0xed, 0x4e, 0x45, + 0xea, 0xac, 0x35, 0x5b, 0x8b, 0xb5, 0x92, 0x8d, 0xf4, 0x4d, 0x63, 0x4a, 0xd7, 0x3a, 0x6b, 0xcd, + 0xca, 0x72, 0xad, 0xb4, 0xc1, 0x51, 0x73, 0xad, 0xb3, 0x56, 0xb9, 0x58, 0xe9, 0x54, 0xa4, 0xd2, + 0x26, 0x3b, 0xf3, 0xb5, 0x3b, 0xad, 0x95, 0x35, 0x69, 0xb5, 0xd9, 0xac, 0x37, 0xcf, 0x39, 0x4d, + 0x6f, 0x89, 0x27, 0xe0, 0xb8, 0x43, 0xf7, 0xc5, 0x7a, 0xa7, 0xb6, 0x56, 0xb5, 0x33, 0x7f, 0xa9, + 0x28, 0x1e, 0x83, 0xd9, 0x66, 0xad, 0x43, 0x3b, 0xf7, 0xf2, 0xa2, 0x78, 0x2d, 0x9c, 0xb4, 0xd3, + 0xd5, 0x56, 0xb3, 0x59, 0xab, 0x76, 0xea, 0xad, 0xe6, 0x9a, 0x54, 0x5b, 0x5a, 0x6d, 0xd7, 0x16, + 0x4b, 0xbf, 0x5c, 0x14, 0x4b, 0x70, 0xc4, 0x7e, 0xd8, 0x5a, 0x5a, 0x6a, 0xd4, 0x9b, 0xb5, 0xd2, + 0xc3, 0x45, 0xf4, 0xea, 0x9c, 0xbf, 0x64, 0x05, 0xbe, 0x99, 0xfe, 0x4e, 0xe0, 0xd5, 0x59, 0xb9, + 0xf0, 0x45, 0xaf, 0x3d, 0xbf, 0x23, 0xf0, 0xe8, 0x93, 0xa2, 0xeb, 0x8a, 0x27, 0x0b, 0x1f, 0x99, + 0x44, 0x16, 0x9e, 0x00, 0x57, 0x37, 0x5b, 0x6b, 0x14, 0xb4, 0x36, 0x3d, 0x88, 0xb5, 0x5b, 0xbb, + 0xae, 0x59, 0x73, 0x80, 0x91, 0x6a, 0xd5, 0xd6, 0xc5, 0x9a, 0xb4, 0x76, 0xa9, 0xd2, 0x68, 0xd4, + 0x3a, 0x6b, 0x4b, 0x75, 0xa9, 0xdd, 0x29, 0x6d, 0x8c, 0x5b, 0xb6, 0x36, 0xc5, 0xa7, 0xc2, 0x93, + 0xfd, 0xf4, 0x5a, 0xed, 0xf9, 0xf5, 0x76, 0xa7, 0x4d, 0xa4, 0xa1, 0xda, 0x92, 0xa4, 0xd5, 0x95, + 0x4e, 0x6d, 0xb1, 0xb4, 0x25, 0x9e, 0x04, 0xd1, 0xaf, 0x45, 0x5a, 0x6d, 0x3a, 0xc8, 0x2b, 0x76, + 0xfb, 0xb4, 0x3d, 0xb7, 0xf9, 0x66, 0xab, 0xb3, 0xb6, 0x52, 0x93, 0x96, 0x5a, 0xd2, 0x72, 0x6d, + 0xb1, 0xf4, 0xc2, 0x71, 0xc2, 0xb3, 0x2d, 0xde, 0x04, 0xa7, 0x2b, 0xcd, 0x56, 0xe7, 0x7c, 0x4d, + 0x5a, 0x73, 0xcf, 0x94, 0x57, 0xa4, 0x56, 0xb5, 0xd6, 0x6e, 0xaf, 0xd5, 0xdb, 0x6e, 0xe1, 0x92, + 0x8a, 0x3e, 0x95, 0xf7, 0xb6, 0xd7, 0x77, 0xf8, 0x73, 0xde, 0x31, 0xc8, 0x2a, 0xee, 0xae, 0x3a, + 0xab, 0xf4, 0x98, 0x1d, 0x4d, 0x76, 0x68, 0xcf, 0xf8, 0x8f, 0xb1, 0xe7, 0xaa, 0xa8, 0x6d, 0xf6, + 0xb4, 0xe6, 0xaa, 0xcf, 0xc6, 0x9a, 0xab, 0x12, 0xd8, 0xcb, 0xff, 0x79, 0x36, 0x85, 0xdd, 0x11, + 0x8f, 0x98, 0x6d, 0x84, 0x88, 0xd9, 0xd0, 0x0c, 0xb4, 0x54, 0x6f, 0x2e, 0xba, 0x23, 0x61, 0xad, + 0xde, 0x5c, 0x6a, 0x95, 0xb6, 0xc4, 0x32, 0xdc, 0x12, 0xa8, 0xdd, 0x96, 0x41, 0xda, 0x42, 0xa5, + 0xb9, 0xb8, 0xb6, 0xdc, 0xac, 0x2d, 0xb7, 0x9a, 0xf5, 0x2a, 0xc9, 0x6f, 0xd7, 0x3a, 0x8e, 0xdc, + 0x0e, 0x49, 0x65, 0xbb, 0x56, 0x91, 0xaa, 0xe7, 0x89, 0x00, 0x2f, 0xd6, 0x4a, 0x2f, 0x14, 0x9f, + 0x06, 0x4f, 0x0d, 0x90, 0x42, 0x85, 0x7b, 0x45, 0xaa, 0x2d, 0xd6, 0x96, 0xea, 0x4d, 0x7b, 0xbe, + 0x6c, 0xb4, 0xaa, 0x17, 0xda, 0x31, 0xe4, 0xf7, 0x1f, 0xb2, 0x90, 0x6b, 0x5b, 0x7a, 0x1f, 0x3d, + 0xdd, 0x97, 0xde, 0x53, 0x00, 0x06, 0xde, 0xd1, 0x77, 0xc9, 0x76, 0x84, 0x6e, 0x50, 0x02, 0x39, + 0xe8, 0x3f, 0x72, 0x6b, 0x76, 0x3d, 0xfc, 0x2d, 0xbd, 0x1f, 0x32, 0xd3, 0xfd, 0x98, 0x4b, 0x57, + 0x1b, 0x51, 0x51, 0x3c, 0x31, 0x7a, 0x65, 0x66, 0x02, 0x31, 0x42, 0x70, 0xd2, 0x43, 0xb6, 0x4d, + 0xf0, 0x72, 0x19, 0x88, 0xc5, 0x6b, 0xe0, 0x67, 0x86, 0x30, 0x23, 0x50, 0x6d, 0x88, 0x4f, 0x81, + 0x27, 0x05, 0xa1, 0x5a, 0x6e, 0x5d, 0xac, 0x79, 0xf2, 0xb1, 0x58, 0xe9, 0x54, 0x4a, 0x9b, 0xe8, + 0xd3, 0x02, 0x08, 0x0d, 0x7d, 0x13, 0x3d, 0x2a, 0x40, 0xae, 0x8d, 0xb5, 0x1e, 0x73, 0x52, 0x3c, + 0x0f, 0xc5, 0x1d, 0x6c, 0x9a, 0xf2, 0xa6, 0xbb, 0x75, 0x72, 0x93, 0xe2, 0x5d, 0x90, 0x57, 0xf1, + 0x2e, 0x76, 0xec, 0x47, 0x8e, 0x9d, 0x7d, 0x2a, 0xc3, 0xa9, 0x86, 0xbe, 0x59, 0xb6, 0xeb, 0xf2, + 0xa2, 0x19, 0x37, 0xec, 0xa2, 0x92, 0xf3, 0xc6, 0xe9, 0x07, 0x20, 0x4f, 0xd2, 0xe2, 0x2c, 0xe4, + 0x17, 0x6b, 0x0b, 0xab, 0xe7, 0x4a, 0x57, 0xd9, 0x7f, 0xdd, 0x7e, 0xcf, 0x42, 0x7e, 0xa9, 0xd2, + 0xa9, 0x34, 0x4a, 0x59, 0x9b, 0x3f, 0x44, 0x8a, 0x05, 0x3b, 0x73, 0xa5, 0xd2, 0xac, 0x57, 0x4b, + 0x39, 0xf1, 0x08, 0x14, 0x2f, 0x55, 0x24, 0xd2, 0xf3, 0x3c, 0x7a, 0x49, 0x50, 0x0c, 0xee, 0x66, + 0xc5, 0xe0, 0x86, 0x30, 0x9a, 0x46, 0x89, 0xc0, 0xc7, 0x3c, 0x11, 0xb8, 0x97, 0x11, 0x81, 0xa7, + 0xf3, 0x54, 0x12, 0x0f, 0xfe, 0xe6, 0x41, 0xad, 0x8c, 0xb0, 0xcd, 0x83, 0x4e, 0x7d, 0xb9, 0xd6, + 0x5a, 0xed, 0x94, 0x36, 0xd0, 0xdf, 0x64, 0xa1, 0x78, 0x11, 0x1b, 0xa6, 0xa2, 0x6b, 0xe8, 0xbf, + 0x66, 0x1d, 0x9b, 0xe6, 0xc0, 0xb6, 0xe0, 0x2b, 0xdc, 0xc1, 0xee, 0x69, 0x25, 0xc4, 0xda, 0x37, + 0xf4, 0x63, 0x69, 0xd7, 0x29, 0xe4, 0x7e, 0x2c, 0xd1, 0xa4, 0xfd, 0x24, 0x78, 0x82, 0x3c, 0xeb, + 0x47, 0x81, 0xfb, 0x0a, 0x97, 0x32, 0x3f, 0xbc, 0xed, 0x78, 0xcc, 0xed, 0x4d, 0xc0, 0xdc, 0x13, + 0x50, 0xba, 0x58, 0x93, 0xda, 0xf6, 0xbe, 0xab, 0xde, 0x5e, 0xab, 0x2d, 0xaf, 0x74, 0x1e, 0x2c, + 0x09, 0x91, 0x2c, 0x7f, 0x9b, 0x1b, 0x56, 0xe0, 0xf5, 0x02, 0x14, 0x5b, 0x1b, 0x1b, 0xc4, 0x8f, + 0x5d, 0x2d, 0x7c, 0xed, 0xbd, 0x05, 0x4a, 0x8a, 0xd6, 0x55, 0x07, 0x3d, 0xdc, 0xd4, 0xad, 0x15, + 0x45, 0xd3, 0x3c, 0xad, 0xe1, 0xbe, 0x7c, 0xf4, 0x18, 0xf7, 0xcc, 0x46, 0x9c, 0xae, 0xd1, 0xd6, + 0x43, 0x00, 0xbb, 0x09, 0x8e, 0xad, 0xef, 0x59, 0xd8, 0xa4, 0xa5, 0x68, 0xb3, 0x39, 0x69, 0x28, + 0x17, 0xfd, 0x29, 0xd7, 0x0c, 0x18, 0xd1, 0x60, 0x3c, 0x94, 0xe4, 0xc9, 0x50, 0xb2, 0x67, 0x35, + 0x67, 0xa9, 0xb2, 0xb7, 0xf7, 0xb5, 0xc5, 0xd2, 0x26, 0x99, 0xfa, 0xea, 0x0d, 0x27, 0xf7, 0xc1, + 0x5a, 0x67, 0x6d, 0xa5, 0xde, 0x6c, 0xda, 0xfb, 0x32, 0x7b, 0x73, 0x30, 0x63, 0xd3, 0xdb, 0x50, + 0x4c, 0x0b, 0x7d, 0x2c, 0x00, 0x53, 0x8b, 0x99, 0xde, 0x74, 0x4d, 0xdd, 0xab, 0xf7, 0xcc, 0xf9, + 0x0c, 0x39, 0x0f, 0x70, 0x93, 0xb1, 0x00, 0xfb, 0x6b, 0x6e, 0x2d, 0xbb, 0x4b, 0xcf, 0x78, 0xd0, + 0x36, 0x14, 0x75, 0x18, 0xb4, 0xbc, 0x34, 0x94, 0x3b, 0x02, 0x5c, 0x61, 0x24, 0xb8, 0x9f, 0xe0, + 0xd2, 0x7a, 0x8e, 0x21, 0x2e, 0x1e, 0xc0, 0xe7, 0x93, 0x02, 0x18, 0xfd, 0x5a, 0x16, 0x66, 0xda, + 0x5b, 0x03, 0x8b, 0xc4, 0xbd, 0x0e, 0x4c, 0x6b, 0xff, 0x98, 0xe1, 0x9d, 0xf9, 0xdd, 0xb7, 0x43, + 0x66, 0xfe, 0x0f, 0x73, 0xcd, 0xfc, 0x21, 0x95, 0x1c, 0x0e, 0x57, 0x30, 0xfa, 0x6e, 0xce, 0x55, + 0xe7, 0xa0, 0xaf, 0xe7, 0xf6, 0x4d, 0xf9, 0x9f, 0xcb, 0xf1, 0x5a, 0xeb, 0x3a, 0x75, 0x44, 0xcc, + 0xf8, 0xd7, 0xc3, 0x91, 0x2d, 0x9d, 0x86, 0xe0, 0xf7, 0x4f, 0x7c, 0x02, 0x59, 0xb6, 0x14, 0xca, + 0x4e, 0x98, 0x3f, 0xd6, 0xa5, 0xfb, 0x50, 0xae, 0x5d, 0xae, 0x6f, 0xe8, 0xb6, 0x08, 0xbb, 0xe5, + 0x9c, 0x1b, 0x87, 0x43, 0xb9, 0xe2, 0xad, 0x70, 0xf5, 0x8e, 0x6c, 0x6c, 0x63, 0xab, 0xaf, 0xca, + 0x5d, 0xe2, 0x2c, 0xd3, 0xb3, 0x2f, 0xda, 0xff, 0x40, 0x7c, 0x16, 0x3c, 0x21, 0x90, 0xe9, 0xde, + 0x08, 0xab, 0xf7, 0x88, 0x79, 0xd0, 0xac, 0x34, 0xfa, 0xe1, 0xd0, 0x5b, 0x1d, 0xdf, 0x8e, 0xa9, + 0xb8, 0xef, 0xad, 0x0e, 0x63, 0xd2, 0xd4, 0xc3, 0xbb, 0x0a, 0x39, 0xad, 0x98, 0x71, 0xbe, 0xa0, + 0xdc, 0xb4, 0xbd, 0x5f, 0xdd, 0x94, 0x2d, 0x7c, 0x59, 0xde, 0x5b, 0x35, 0xd4, 0x79, 0xec, 0x98, + 0x43, 0xf9, 0x39, 0xe8, 0x23, 0x5c, 0x76, 0xcc, 0xa1, 0x70, 0x1c, 0x96, 0x9c, 0x7d, 0x25, 0x0b, + 0xb9, 0x15, 0x45, 0xdb, 0x0c, 0x3a, 0x51, 0x3e, 0x01, 0x79, 0x45, 0xeb, 0xe1, 0x87, 0xe8, 0x05, + 0x1c, 0x27, 0x21, 0x9e, 0x85, 0x13, 0xda, 0x60, 0x67, 0x1d, 0x1b, 0xad, 0x0d, 0x62, 0x07, 0x61, + 0x76, 0x74, 0x7b, 0xa7, 0x44, 0xa7, 0xae, 0x91, 0xcf, 0xd0, 0xff, 0x0e, 0x8e, 0xe1, 0x67, 0xb3, + 0x72, 0x7a, 0x3d, 0xc3, 0x18, 0x9b, 0x86, 0x10, 0x09, 0xf5, 0xc8, 0xc9, 0x06, 0xc8, 0x41, 0x6f, + 0xf0, 0xf8, 0x7d, 0x17, 0xc3, 0xef, 0x1b, 0xc7, 0x55, 0x9b, 0xbe, 0x5a, 0xf6, 0x9d, 0x59, 0x28, + 0xae, 0x18, 0x7a, 0x17, 0x9b, 0x26, 0x7a, 0x7d, 0x16, 0x0a, 0x55, 0x59, 0xeb, 0x62, 0x15, 0x3d, + 0x31, 0x74, 0xfb, 0x80, 0x7e, 0x98, 0xe1, 0xfd, 0x3c, 0xa7, 0xf5, 0x96, 0x9d, 0x3a, 0x43, 0x66, + 0x3c, 0x3e, 0xe5, 0x75, 0x64, 0x55, 0xe9, 0x73, 0xe9, 0x2f, 0xb3, 0x70, 0xa4, 0xa1, 0x68, 0xdb, + 0x2b, 0x06, 0x26, 0x1e, 0x34, 0xaf, 0xf5, 0xd9, 0x43, 0x2d, 0xd7, 0x33, 0x01, 0xcb, 0x75, 0xee, + 0x3d, 0x6e, 0xa0, 0xca, 0x10, 0x79, 0xba, 0x07, 0x8e, 0xa8, 0x7e, 0x21, 0xaa, 0xc0, 0x40, 0x43, + 0x0a, 0x8c, 0x40, 0x35, 0x52, 0xb0, 0x38, 0xa7, 0xe9, 0x4a, 0x38, 0x15, 0xe9, 0x33, 0xf6, 0x87, + 0x02, 0x80, 0xe3, 0xa0, 0x97, 0xec, 0x60, 0x1f, 0xcf, 0x44, 0x30, 0x96, 0x75, 0x84, 0x9c, 0x1d, + 0x76, 0x84, 0x7c, 0x37, 0xe4, 0xec, 0x2e, 0x51, 0x7f, 0xcb, 0xbc, 0x4e, 0x90, 0xc9, 0x3b, 0xf6, + 0x34, 0xdf, 0x53, 0x4c, 0x79, 0x5d, 0xc5, 0x35, 0xad, 0x6b, 0xec, 0xf9, 0x6e, 0x0b, 0x66, 0xa4, + 0xfd, 0x0f, 0xfc, 0x18, 0x84, 0x79, 0x8e, 0x18, 0x84, 0xa4, 0x29, 0x26, 0x06, 0x21, 0x13, 0x38, + 0x27, 0x72, 0x41, 0xf4, 0x39, 0x13, 0x22, 0x1e, 0x22, 0xe4, 0xb6, 0x64, 0xd3, 0x65, 0x06, 0xf9, + 0x8f, 0xde, 0xc2, 0x35, 0xb9, 0x87, 0x56, 0x9d, 0x3e, 0xe6, 0xdf, 0xcc, 0xc2, 0x51, 0x37, 0xe6, + 0x3c, 0x41, 0xfd, 0x36, 0xe6, 0x6c, 0x84, 0x74, 0x28, 0xe3, 0x77, 0xc8, 0xce, 0xeb, 0xfb, 0x88, + 0x93, 0xff, 0xe8, 0x4d, 0xdc, 0xdf, 0x25, 0xc1, 0x96, 0x42, 0xb8, 0x18, 0x29, 0x57, 0x01, 0xef, + 0x60, 0x51, 0x5f, 0x23, 0x11, 0xcd, 0xc4, 0xe3, 0x68, 0xe5, 0xc0, 0xd7, 0x7e, 0xd0, 0xff, 0x2c, + 0x02, 0x34, 0xe5, 0x5d, 0x65, 0xd3, 0xf1, 0xb2, 0xf4, 0x55, 0xc1, 0x9e, 0xbc, 0x4c, 0xcb, 0x89, + 0x96, 0x60, 0x32, 0xce, 0x16, 0xef, 0x82, 0x22, 0xb5, 0xa7, 0xa3, 0xbd, 0x7a, 0x32, 0xd3, 0x2b, + 0xbf, 0x16, 0x47, 0x9e, 0x1f, 0xb2, 0x24, 0xb7, 0xbc, 0xbd, 0x01, 0xd9, 0x18, 0xa8, 0x6a, 0xc7, + 0x7e, 0x97, 0xaa, 0x70, 0xdd, 0xb4, 0xef, 0x34, 0x93, 0x86, 0x33, 0x22, 0x89, 0x21, 0x17, 0x9b, + 0x79, 0xd7, 0xc5, 0x26, 0xfa, 0x03, 0xee, 0xe8, 0x8f, 0x01, 0x7a, 0x02, 0x3d, 0x0a, 0x81, 0xf5, + 0x76, 0x28, 0x3a, 0x66, 0x32, 0xee, 0xdd, 0xff, 0x27, 0x0e, 0x0d, 0x54, 0xe7, 0xf5, 0xba, 0xb6, + 0xa1, 0x4b, 0x6e, 0x49, 0xce, 0x20, 0x90, 0x5c, 0x74, 0xa4, 0x3f, 0x92, 0xbe, 0x2c, 0xc0, 0xc9, + 0x73, 0xd8, 0xf2, 0xfb, 0x71, 0x49, 0xb1, 0xb6, 0xec, 0xe9, 0xdc, 0x44, 0xff, 0x92, 0xcf, 0x7c, + 0x28, 0x80, 0x7f, 0x36, 0x1e, 0xfe, 0xe8, 0xcf, 0x82, 0xa8, 0xb5, 0x59, 0xd4, 0xee, 0x0d, 0xab, + 0x65, 0x34, 0xb5, 0x21, 0x00, 0xde, 0x0d, 0x05, 0x87, 0x50, 0xba, 0xee, 0x9d, 0x0e, 0xc5, 0xcf, + 0xab, 0x49, 0xa2, 0x6f, 0xa0, 0x8f, 0x7a, 0x38, 0x5e, 0x64, 0x70, 0x5c, 0x38, 0x10, 0x65, 0xa9, + 0x43, 0x7a, 0xfa, 0x36, 0x62, 0x9c, 0x40, 0x06, 0xd8, 0xb1, 0xe0, 0x28, 0x2e, 0x5d, 0x25, 0x02, + 0x14, 0x96, 0xf5, 0x5d, 0xdc, 0xd1, 0x4b, 0x19, 0xfb, 0xbf, 0x4d, 0x5f, 0x47, 0x2f, 0x65, 0xd1, + 0xbf, 0x39, 0x02, 0xc5, 0xf3, 0x8a, 0x69, 0xe9, 0xc6, 0x1e, 0xfa, 0x52, 0x0e, 0x66, 0xa8, 0xf6, + 0xca, 0x44, 0xef, 0xca, 0x78, 0xba, 0xb8, 0x7d, 0x4a, 0xa0, 0xeb, 0xe1, 0x48, 0xdf, 0x5e, 0xf3, + 0xf5, 0x81, 0xe9, 0x5b, 0x20, 0x06, 0xb3, 0x6c, 0xb1, 0x91, 0x07, 0xd6, 0x96, 0x6e, 0xf8, 0xb6, + 0xe0, 0x6e, 0xda, 0xfe, 0xc0, 0x70, 0xfe, 0x37, 0xe5, 0x1d, 0xec, 0xba, 0x77, 0xf4, 0x73, 0x48, + 0x0c, 0x6c, 0x65, 0xc7, 0x59, 0x20, 0x05, 0x89, 0xfc, 0x17, 0xe7, 0xa1, 0xb8, 0x69, 0xe8, 0x83, + 0x3e, 0xfd, 0x1c, 0x12, 0x24, 0x37, 0x19, 0xf4, 0x26, 0x7a, 0x12, 0x0a, 0x7d, 0x79, 0xd3, 0xb7, + 0xc0, 0xa2, 0x29, 0xf1, 0x06, 0x98, 0x53, 0x65, 0xd3, 0xa2, 0xbd, 0xf1, 0xbe, 0xfd, 0xd8, 0xcc, + 0xd1, 0xd3, 0x0e, 0xfa, 0x18, 0xb7, 0x4a, 0x84, 0x72, 0xd1, 0xd5, 0xff, 0x85, 0xc9, 0x65, 0x05, + 0x66, 0xa8, 0xa6, 0xd1, 0x9d, 0x59, 0x6e, 0x8c, 0xae, 0x86, 0xfe, 0x91, 0xbc, 0xd7, 0x38, 0x6d, + 0xbf, 0xc6, 0xd0, 0x93, 0xfe, 0x04, 0xf3, 0xdf, 0xdc, 0xfb, 0xbc, 0x0f, 0x8e, 0x87, 0xe8, 0x3a, + 0x98, 0xdd, 0x1d, 0x82, 0xc7, 0xcf, 0x88, 0xb8, 0xcd, 0xfb, 0x4b, 0x02, 0xef, 0x52, 0xee, 0xb2, + 0x23, 0xe2, 0x3e, 0xef, 0xdd, 0x00, 0xce, 0x04, 0x60, 0x97, 0xd9, 0xb7, 0x5d, 0x26, 0xdf, 0x7b, + 0x74, 0xda, 0x20, 0xb5, 0x48, 0x81, 0xd2, 0xe2, 0xfd, 0xbe, 0x3e, 0xd9, 0x39, 0xf7, 0xe3, 0x44, + 0x35, 0xa8, 0x76, 0x76, 0xfb, 0x98, 0x63, 0xfb, 0xc8, 0x67, 0x7f, 0x1f, 0xd1, 0xbf, 0xf4, 0xa1, + 0xfe, 0x42, 0x16, 0xa0, 0x8d, 0xdd, 0xc1, 0x14, 0xb4, 0x8c, 0x9a, 0x08, 0x70, 0xf4, 0xe3, 0x0c, + 0x6f, 0x68, 0x2f, 0xaf, 0xdb, 0x5e, 0xeb, 0x61, 0x36, 0x00, 0x5c, 0xc1, 0xba, 0xc6, 0x56, 0x97, + 0x3e, 0x2f, 0x5f, 0x26, 0x40, 0x8e, 0x5c, 0x7a, 0xfb, 0x07, 0xdf, 0x60, 0xf2, 0x1e, 0x9f, 0xa1, + 0x81, 0xdb, 0x43, 0x19, 0xbe, 0xdb, 0x43, 0xe8, 0x11, 0xee, 0x6f, 0x4a, 0x72, 0xf7, 0x2a, 0xd2, + 0x78, 0xc7, 0xc7, 0x53, 0x60, 0xf0, 0x8c, 0x77, 0xc1, 0x87, 0xef, 0xdb, 0x32, 0x9c, 0x9a, 0xf4, + 0x51, 0xf8, 0x13, 0x1a, 0x23, 0xed, 0xb3, 0xfe, 0xc5, 0x53, 0x8b, 0x91, 0x6a, 0x7a, 0xb5, 0x2b, + 0x13, 0x76, 0xb5, 0x2b, 0x3b, 0xd1, 0xed, 0x43, 0x61, 0x9f, 0xb3, 0xe3, 0xc7, 0xb8, 0xfd, 0x15, + 0xb4, 0xc7, 0x59, 0xc0, 0x3a, 0xcb, 0xb8, 0xe0, 0x2d, 0xe3, 0xf1, 0x30, 0xfb, 0x24, 0xd7, 0xa7, + 0x61, 0x3b, 0x19, 0x03, 0xd9, 0xc4, 0xef, 0x63, 0xbd, 0xe1, 0x04, 0x13, 0x02, 0xef, 0xb1, 0x2c, + 0xe4, 0xc8, 0x79, 0x4a, 0x40, 0xd7, 0xfc, 0x21, 0xee, 0x9b, 0x72, 0x81, 0xd0, 0x71, 0xe4, 0x9c, + 0x61, 0x34, 0xbb, 0x9f, 0x0b, 0x47, 0xfc, 0x00, 0x79, 0xd1, 0x9f, 0x11, 0x44, 0x9b, 0x10, 0x2c, + 0xcd, 0xe9, 0xd3, 0x28, 0x9a, 0x90, 0xf4, 0x47, 0xc9, 0xdb, 0xfc, 0xd1, 0xb1, 0x18, 0xfc, 0x2e, + 0x04, 0xbf, 0x2b, 0x94, 0x81, 0x11, 0xfd, 0x0e, 0x14, 0x46, 0x7f, 0x1a, 0xc4, 0xa0, 0xca, 0x62, + 0xf0, 0x8c, 0xb0, 0xae, 0x47, 0x0a, 0x3d, 0x4b, 0x4c, 0x36, 0x0e, 0x31, 0xbe, 0x55, 0xf8, 0x12, + 0x83, 0xc1, 0xd9, 0x58, 0x84, 0x1c, 0xb2, 0xe0, 0xbf, 0xf5, 0x58, 0x20, 0x84, 0xea, 0xb7, 0x69, + 0xc8, 0xce, 0x0d, 0xc6, 0x7f, 0x01, 0x1b, 0xdb, 0x31, 0x33, 0x22, 0xb6, 0xe3, 0xa4, 0xce, 0xf0, + 0x7e, 0x18, 0x84, 0xb3, 0xce, 0xc2, 0x79, 0x7b, 0x18, 0x17, 0x39, 0xe2, 0x74, 0x4e, 0x48, 0xce, + 0xe3, 0x1e, 0xa0, 0x0d, 0x06, 0xd0, 0x3b, 0x27, 0x20, 0x25, 0x1e, 0xac, 0x4a, 0xc2, 0xb0, 0x8a, + 0xf3, 0x70, 0x42, 0xaa, 0x55, 0x16, 0x5b, 0xcd, 0xc6, 0x83, 0xc1, 0xa7, 0xa5, 0x1c, 0x7a, 0x8b, + 0x00, 0x05, 0x89, 0x98, 0x17, 0xa1, 0x9f, 0x8b, 0x0b, 0xf3, 0x90, 0x9f, 0xcd, 0xec, 0x7e, 0xef, + 0xcd, 0x9f, 0xe1, 0xbe, 0x0c, 0x34, 0x8a, 0x8d, 0x0e, 0x5d, 0x21, 0x3b, 0xb4, 0xef, 0x72, 0x5d, + 0x06, 0xe2, 0xae, 0xf6, 0x8a, 0x05, 0xe8, 0x11, 0x01, 0x0a, 0xd4, 0x99, 0x6e, 0x2f, 0x2e, 0x40, + 0x41, 0x4f, 0xe9, 0x59, 0x5e, 0x4f, 0xe9, 0x07, 0xc3, 0x2c, 0x32, 0x1c, 0xc9, 0xe4, 0x98, 0x25, + 0xe0, 0xac, 0x76, 0x8a, 0x98, 0x7d, 0x4d, 0xa0, 0xfb, 0x85, 0x41, 0x5c, 0xc4, 0x16, 0xe1, 0x49, + 0x72, 0xbf, 0x8f, 0x35, 0xcf, 0x2d, 0xab, 0xb9, 0x64, 0xe8, 0x3b, 0x2d, 0x6b, 0x0b, 0x1b, 0xee, + 0xbe, 0x20, 0x73, 0xf3, 0x8c, 0x14, 0x5d, 0x88, 0xf5, 0xfd, 0x10, 0xe9, 0x17, 0x73, 0x14, 0xaf, + 0x23, 0x36, 0x29, 0x13, 0xce, 0xa4, 0x5f, 0xe0, 0x72, 0x90, 0xc9, 0x49, 0xcb, 0x21, 0xaf, 0x90, + 0xaf, 0x68, 0x40, 0xc1, 0xa1, 0xd4, 0xde, 0x16, 0x1e, 0x69, 0x6f, 0xc9, 0x06, 0x5e, 0xd8, 0x23, + 0x81, 0xe3, 0x6f, 0xe4, 0x52, 0x84, 0xa2, 0x57, 0x07, 0xd1, 0x11, 0x21, 0xa7, 0x2a, 0xda, 0xb6, + 0x7b, 0x0a, 0x61, 0xff, 0xf7, 0x3f, 0x61, 0xb3, 0x23, 0x3e, 0x61, 0x3d, 0x95, 0x82, 0xd7, 0xee, + 0x81, 0x3e, 0x61, 0xc7, 0x56, 0x37, 0x95, 0x13, 0xcf, 0xe3, 0x95, 0x5e, 0xef, 0x92, 0x62, 0x6d, + 0xb5, 0x5c, 0x1e, 0xdd, 0xcf, 0xa7, 0x53, 0x9e, 0x87, 0x62, 0x5f, 0xde, 0x53, 0x75, 0xd9, 0xbb, + 0x96, 0x4f, 0x93, 0xac, 0x81, 0x64, 0xa4, 0xa2, 0x9f, 0x72, 0x60, 0x88, 0x82, 0x10, 0xa6, 0xf2, + 0xe9, 0xec, 0xb9, 0xaa, 0x4c, 0x9f, 0xb1, 0xbf, 0x38, 0x14, 0xba, 0xe5, 0xe7, 0x79, 0xbd, 0x1d, + 0x4c, 0xb4, 0x6e, 0xbc, 0x4e, 0xe0, 0xd5, 0xc2, 0x50, 0xf6, 0xfc, 0x94, 0x04, 0x66, 0xf9, 0x44, + 0x9c, 0x71, 0x94, 0x54, 0x40, 0x96, 0xa5, 0x09, 0xa6, 0x2d, 0x11, 0x8e, 0x55, 0x1a, 0xf6, 0x8a, + 0xf4, 0x20, 0x35, 0x75, 0x2f, 0x01, 0xfa, 0xcc, 0xfe, 0x20, 0x2d, 0xff, 0x8a, 0x57, 0x0a, 0xc6, + 0x6e, 0xef, 0x26, 0x0b, 0xe4, 0xf3, 0x7e, 0x6e, 0x57, 0x73, 0x43, 0x3c, 0x4d, 0xd0, 0x89, 0x3e, + 0x9f, 0x43, 0x39, 0x9e, 0xf6, 0xd3, 0x1f, 0xc5, 0xaf, 0xda, 0x1f, 0x79, 0xa5, 0x9e, 0x18, 0x84, + 0x93, 0xa3, 0x91, 0x60, 0x5c, 0x95, 0x89, 0xd0, 0x38, 0x24, 0x4f, 0xf5, 0x2f, 0xcf, 0xc1, 0xd5, + 0xfb, 0x23, 0xa9, 0xf0, 0x47, 0x59, 0x1e, 0x3f, 0xa8, 0x26, 0x0d, 0x23, 0xf2, 0xbd, 0x98, 0x9b, + 0xbe, 0xf2, 0x95, 0x15, 0x05, 0xe5, 0x7d, 0x31, 0xf6, 0x88, 0xe5, 0xc3, 0x8f, 0x7b, 0xf2, 0x97, + 0x02, 0x9c, 0x18, 0x19, 0xf1, 0xe4, 0x4a, 0x10, 0x05, 0xfe, 0xa0, 0x86, 0x23, 0xf9, 0x99, 0xe0, + 0x44, 0xcb, 0x17, 0xef, 0x8e, 0x9f, 0x8a, 0xf4, 0x81, 0xfd, 0x44, 0x6e, 0x18, 0x58, 0x3a, 0xe9, + 0x7e, 0x30, 0x41, 0x60, 0x83, 0xf1, 0x47, 0x84, 0xa1, 0xf8, 0x23, 0xe7, 0xe1, 0xc9, 0xe4, 0x9e, + 0x9f, 0xb1, 0xe3, 0x28, 0x2a, 0x2a, 0xaa, 0x7a, 0x51, 0x56, 0x07, 0xd8, 0xac, 0x6b, 0x4e, 0xc4, + 0x0e, 0xf7, 0xbe, 0xf8, 0xb8, 0x62, 0xe8, 0x07, 0x07, 0x13, 0x83, 0x04, 0xe3, 0x93, 0x7c, 0x77, + 0x72, 0x31, 0x48, 0x60, 0x9e, 0xdf, 0x9a, 0x60, 0x33, 0xf5, 0x2c, 0x78, 0x66, 0xbb, 0xb5, 0x5c, + 0x23, 0xf7, 0xfc, 0xa4, 0xc5, 0xf6, 0xda, 0xf9, 0x4a, 0x7b, 0x4d, 0xaa, 0x35, 0x2a, 0xe4, 0x96, + 0xf2, 0xc5, 0x4a, 0x63, 0xb5, 0xb6, 0x76, 0xa9, 0xde, 0x39, 0xbf, 0xd6, 0x39, 0x5f, 0x6f, 0xaf, + 0xb5, 0x56, 0xec, 0xec, 0x92, 0x80, 0x1e, 0x0e, 0x8d, 0x63, 0xc2, 0xed, 0xed, 0xfd, 0x31, 0xee, + 0x70, 0xbf, 0x43, 0xec, 0x4a, 0x31, 0x4a, 0x09, 0x5f, 0xdc, 0xdf, 0x18, 0xf4, 0x4c, 0xe1, 0x44, + 0x2e, 0x07, 0x85, 0x36, 0x96, 0x8d, 0xee, 0x16, 0xfa, 0xad, 0x80, 0x3b, 0xd0, 0x25, 0x28, 0x6e, + 0x28, 0x2a, 0xf1, 0x68, 0x9f, 0x21, 0xdd, 0xbf, 0x95, 0x2f, 0xa4, 0xfd, 0x12, 0x79, 0x49, 0x72, + 0x5f, 0x16, 0x9f, 0x07, 0x79, 0x53, 0x37, 0x3c, 0x73, 0x2f, 0xce, 0xc0, 0xf8, 0x6d, 0xdd, 0xb0, + 0x24, 0xe7, 0x45, 0xc6, 0xa6, 0x4d, 0x18, 0xb2, 0x69, 0x0b, 0xb1, 0x5e, 0x63, 0x03, 0x44, 0x7b, + 0xb6, 0x6e, 0xb7, 0x40, 0xc9, 0x57, 0x22, 0x39, 0x84, 0xce, 0x17, 0xc8, 0x41, 0xe3, 0xbe, 0x7c, + 0x51, 0x84, 0xdc, 0x36, 0xde, 0x33, 0xe7, 0x8b, 0xe4, 0x39, 0xf9, 0x8f, 0xde, 0xc1, 0xed, 0x38, + 0xc7, 0x55, 0x16, 0x10, 0xbe, 0x86, 0x88, 0xd8, 0x6d, 0x50, 0x34, 0xe8, 0x34, 0xe5, 0x0a, 0x58, + 0xd8, 0xa1, 0x26, 0x2d, 0x87, 0xde, 0xce, 0xe5, 0x4f, 0x27, 0xaa, 0xf1, 0x29, 0xf8, 0x14, 0x99, + 0x81, 0xfc, 0x39, 0x43, 0xee, 0x6f, 0xa1, 0x5f, 0xcb, 0x24, 0x2f, 0x4e, 0x1e, 0xb0, 0xd9, 0x71, + 0xc0, 0x0a, 0xa3, 0x81, 0x45, 0xaf, 0xcc, 0x42, 0xae, 0x69, 0x77, 0x6a, 0xd8, 0xfa, 0x4a, 0xa4, + 0xb6, 0xca, 0xd4, 0xa4, 0x95, 0xd8, 0x20, 0xbb, 0x6e, 0x41, 0x84, 0x80, 0x5b, 0x90, 0x93, 0x50, + 0x50, 0xe5, 0x3d, 0x7d, 0xe0, 0xc9, 0x9c, 0x93, 0x1a, 0x66, 0x67, 0x7e, 0x1f, 0x3b, 0xed, 0xf9, + 0x4c, 0xe9, 0xea, 0x5a, 0x7d, 0x47, 0xde, 0xc4, 0xf4, 0xfa, 0x89, 0x9f, 0xe1, 0x3e, 0xad, 0xed, + 0xe8, 0x2f, 0x54, 0xe8, 0x35, 0x13, 0x3f, 0xc3, 0xa6, 0xa4, 0xa7, 0x6b, 0x98, 0x5c, 0x2b, 0x99, + 0x91, 0xc8, 0x7f, 0xf1, 0x26, 0x38, 0xe6, 0x4e, 0x3d, 0x4b, 0xba, 0xb1, 0x23, 0x5b, 0xf3, 0xb3, + 0xce, 0x35, 0x30, 0x36, 0x57, 0x9c, 0x87, 0xa2, 0xa9, 0x29, 0xfd, 0x3e, 0xb6, 0xe6, 0xc1, 0x51, + 0xfe, 0xd0, 0x24, 0x7a, 0x63, 0x16, 0x72, 0xb5, 0xde, 0x26, 0x66, 0x4e, 0xde, 0x33, 0x81, 0x93, + 0xf7, 0x93, 0x50, 0x70, 0x9c, 0x8d, 0x52, 0xb6, 0xd0, 0xd4, 0x48, 0xc6, 0x3c, 0x87, 0x32, 0x30, + 0x37, 0xe2, 0xc2, 0x2f, 0x95, 0x49, 0x22, 0x18, 0x65, 0xbb, 0xc5, 0xa0, 0xa5, 0x77, 0xba, 0x9c, 0x3b, 0x09, 0x85, 0x2d, 0xa5, 0xd7, 0xc3, 0x1a, 0xe5, 0x1d, 0x4d, 0x9d, 0x3e, 0x05, 0x39, 0x9b, - 0x06, 0x5b, 0xb8, 0x97, 0x14, 0x6d, 0xbb, 0x7c, 0x95, 0x78, 0xd4, 0x3f, 0xbe, 0x2b, 0x67, 0x58, - 0x3d, 0x70, 0xa4, 0xbd, 0x13, 0xd3, 0xb9, 0xd1, 0x83, 0xfd, 0xb9, 0x90, 0xd7, 0xf4, 0x9e, 0x77, - 0x34, 0x7d, 0x2a, 0xfc, 0x7d, 0x5b, 0x36, 0x25, 0xa7, 0xb0, 0xfd, 0x16, 0xee, 0x6d, 0x62, 0x93, - 0x08, 0x73, 0xe4, 0x5b, 0x36, 0x4b, 0x25, 0xa7, 0x30, 0xa7, 0x11, 0x53, 0x04, 0xd1, 0xe9, 0x4f, - 0x12, 0xff, 0xa7, 0x00, 0xc7, 0x9d, 0xf9, 0xa9, 0x3d, 0x58, 0xb7, 0xab, 0x5a, 0xc7, 0xe8, 0x0d, - 0x02, 0x73, 0x5b, 0xc8, 0x1c, 0xac, 0x7b, 0xab, 0xbe, 0x93, 0x08, 0x4e, 0x22, 0xd9, 0x44, 0xd6, - 0x24, 0x61, 0xd2, 0x35, 0x89, 0x59, 0x5f, 0x84, 0xfd, 0x76, 0xd3, 0x8e, 0xe1, 0xa4, 0xbb, 0x1a, - 0x8d, 0x58, 0x4b, 0xec, 0x31, 0x29, 0x6f, 0x58, 0xd8, 0xf0, 0x6e, 0x85, 0xb9, 0x49, 0xe2, 0x5b, - 0x16, 0x6f, 0xe8, 0x06, 0x6e, 0xf4, 0xc8, 0x78, 0x9e, 0x91, 0xbc, 0x74, 0x60, 0x98, 0x02, 0x63, - 0x0c, 0x73, 0x13, 0x1c, 0x57, 0x36, 0x35, 0xdd, 0xc0, 0x9e, 0x1b, 0xb9, 0xb9, 0xa3, 0x8e, 0xaf, - 0xa0, 0xa1, 0x6c, 0xf1, 0x16, 0xb8, 0x5a, 0xd3, 0x17, 0x70, 0x9f, 0xf2, 0xdd, 0x41, 0x75, 0xd6, - 0xb9, 0x41, 0xb1, 0xef, 0x01, 0xfa, 0xb2, 0x10, 0x53, 0x11, 0x3c, 0x04, 0x6a, 0x62, 0x4b, 0x9f, - 0xf8, 0x02, 0x38, 0xda, 0xc3, 0x7d, 0xac, 0xf5, 0xb0, 0xd6, 0x55, 0xbc, 0x11, 0x11, 0xfa, 0x1e, - 0x53, 0xd8, 0x17, 0xa7, 0x5c, 0x50, 0x9c, 0xce, 0x05, 0x42, 0xec, 0xe4, 0x87, 0x4c, 0x4f, 0x58, - 0x0b, 0xc4, 0x00, 0x4b, 0x2a, 0x34, 0xd4, 0x8e, 0x19, 0x88, 0xb5, 0x13, 0x4b, 0xaf, 0x1d, 0xcd, - 0xa1, 0x29, 0xd8, 0xbc, 0xe5, 0xe0, 0x68, 0xa3, 0x67, 0xfa, 0xe3, 0x4e, 0x1f, 0x37, 0xec, 0xf6, - 0x45, 0x44, 0xf0, 0x04, 0x5a, 0x08, 0x08, 0xf4, 0x08, 0x11, 0x3c, 0x32, 0x52, 0x04, 0xd1, 0xcb, - 0x83, 0x42, 0x55, 0x67, 0x85, 0xea, 0xcc, 0x28, 0x96, 0x05, 0xc9, 0xbd, 0x92, 0x25, 0x0a, 0xbd, - 0xc7, 0x13, 0x84, 0xf3, 0x8c, 0x20, 0x3c, 0x37, 0x66, 0xaf, 0xd2, 0x97, 0x82, 0xff, 0x98, 0x85, - 0xab, 0x1d, 0x49, 0x5c, 0xd5, 0x4c, 0x4f, 0x14, 0x9e, 0xce, 0x9a, 0xdd, 0xd9, 0x7d, 0x32, 0x3d, - 0xb3, 0x3b, 0x92, 0x42, 0xaf, 0x8a, 0xab, 0x3c, 0xdb, 0xd7, 0x4a, 0xc8, 0xe1, 0x50, 0x2c, 0xb5, - 0xd6, 0xb8, 0x4a, 0xd3, 0x67, 0xe0, 0x2f, 0x39, 0x71, 0x16, 0x97, 0xc8, 0xde, 0x0f, 0xc9, 0xbc, - 0x1a, 0x8f, 0x3b, 0xbc, 0xcd, 0xa3, 0x73, 0xfd, 0xed, 0xba, 0x50, 0xf3, 0xa8, 0x8a, 0x53, 0xb5, - 0xbb, 0xbd, 0x44, 0xef, 0xe2, 0xb6, 0x8e, 0xf7, 0x78, 0x44, 0xa9, 0x4b, 0x44, 0x31, 0xc1, 0x67, - 0x08, 0x3f, 0xa6, 0xe9, 0xf4, 0x61, 0xf9, 0xb7, 0x02, 0xcc, 0x12, 0xd7, 0xb3, 0x8b, 0xf2, 0xae, - 0x6e, 0x28, 0x16, 0x46, 0xe7, 0x78, 0xa1, 0x39, 0x05, 0xa0, 0x78, 0xaf, 0x51, 0x53, 0x81, 0x40, - 0x4e, 0x8c, 0x30, 0x30, 0x3e, 0x17, 0x7c, 0x3a, 0xa6, 0x18, 0x06, 0x86, 0xa3, 0xf9, 0x29, 0x02, - 0x51, 0x75, 0x2e, 0xf4, 0xf7, 0x62, 0x02, 0xe1, 0xbe, 0xe6, 0x03, 0xe1, 0x55, 0x34, 0x19, 0x10, - 0xee, 0xeb, 0x87, 0x04, 0x44, 0x48, 0xf3, 0xe9, 0x03, 0xf1, 0x48, 0x01, 0xca, 0x8b, 0x58, 0xb6, - 0x06, 0x06, 0xf6, 0x4c, 0x5e, 0xd0, 0xcf, 0x51, 0xe3, 0xc4, 0x3a, 0x2f, 0x26, 0xd7, 0x0e, 0xeb, - 0xc3, 0x66, 0x82, 0x6a, 0xaf, 0xd8, 0x6a, 0xf4, 0x61, 0x82, 0x2a, 0x09, 0x1d, 0xaa, 0xc4, 0x53, - 0xa3, 0x73, 0x50, 0x91, 0x3e, 0x3e, 0x6f, 0xf0, 0x6d, 0x08, 0x13, 0x42, 0xe3, 0xd3, 0x41, 0x34, - 0x56, 0x58, 0x34, 0xee, 0xe2, 0xe2, 0x43, 0x94, 0xed, 0x60, 0x4c, 0x40, 0x7c, 0x47, 0x29, 0x6d, - 0x06, 0x90, 0xfb, 0x26, 0x27, 0x64, 0x0a, 0x31, 0x66, 0xb2, 0x90, 0xef, 0xe8, 0x6d, 0xcc, 0x78, - 0x0e, 0x8e, 0x86, 0xc4, 0xff, 0x32, 0xcb, 0x32, 0x61, 0x92, 0x5f, 0x19, 0x57, 0x8b, 0x40, 0xda, - 0x0d, 0xf7, 0x5a, 0x61, 0x06, 0x02, 0xd8, 0x38, 0x89, 0x78, 0xdf, 0xfb, 0xa3, 0xaa, 0x4f, 0x9f, - 0xa1, 0x1f, 0x29, 0xb9, 0x57, 0x02, 0x88, 0x65, 0xdf, 0xd7, 0xb2, 0x50, 0xa0, 0x87, 0x45, 0xac, - 0xba, 0xdf, 0xb5, 0x4d, 0x72, 0x77, 0x9d, 0x7e, 0x06, 0x7a, 0x77, 0x4c, 0x73, 0x75, 0x62, 0xfc, - 0x96, 0xe0, 0xc9, 0xcc, 0xbb, 0x63, 0x58, 0xa8, 0x87, 0xb7, 0x3d, 0x85, 0xfb, 0x61, 0x79, 0xe7, - 0x36, 0xcd, 0x7f, 0xcd, 0x02, 0x84, 0xae, 0xbe, 0xe1, 0x7c, 0x1e, 0xbb, 0xfa, 0xbe, 0x3a, 0x88, - 0xc3, 0x05, 0x16, 0x87, 0xdb, 0xc3, 0x78, 0x61, 0xcb, 0xdc, 0xb8, 0x25, 0x18, 0x7d, 0xc0, 0xe3, - 0x70, 0x93, 0xe1, 0xf0, 0x5d, 0x13, 0xd5, 0x9a, 0x3e, 0xa7, 0x1d, 0x0e, 0x87, 0x6c, 0x34, 0xc7, - 0x71, 0x38, 0x62, 0xa3, 0x79, 0x00, 0x0e, 0x47, 0xef, 0x36, 0x27, 0xe5, 0xf0, 0xa1, 0x6d, 0x22, - 0x1f, 0xcf, 0x41, 0xa1, 0xfe, 0x60, 0x5f, 0x37, 0x2c, 0xf4, 0xd9, 0x0c, 0xe3, 0x7c, 0xa2, 0xef, - 0xfb, 0xc8, 0x27, 0xff, 0xed, 0xf9, 0xb7, 0xa7, 0x77, 0xfd, 0x2b, 0xd2, 0x34, 0x25, 0x9e, 0x85, - 0xc2, 0x86, 0xa3, 0x1b, 0x77, 0x3e, 0xb8, 0x10, 0xd3, 0x55, 0xa7, 0xf2, 0x8a, 0xa3, 0x27, 0x97, - 0x68, 0x49, 0xb1, 0x0c, 0xc2, 0xcb, 0x94, 0x3e, 0x3d, 0x3c, 0xb6, 0xff, 0x92, 0xf0, 0x1b, 0xd4, - 0x83, 0x1b, 0x36, 0x2d, 0xec, 0xb8, 0x96, 0x2a, 0x49, 0x6c, 0xa6, 0x78, 0x1a, 0x8e, 0xd2, 0x8c, - 0x45, 0x45, 0xc5, 0x4e, 0xb4, 0xb8, 0x92, 0xc4, 0xe4, 0xa1, 0x4f, 0x05, 0xc1, 0xbd, 0x83, 0x05, - 0xf7, 0xf4, 0x28, 0xda, 0x42, 0x1d, 0x8a, 0x0c, 0xfb, 0xda, 0x20, 0x6a, 0xfe, 0x41, 0xb7, 0x8b, - 0x71, 0x8f, 0x9e, 0x4c, 0xb8, 0xc9, 0x98, 0x56, 0x46, 0x0f, 0x79, 0x52, 0xf2, 0x02, 0x46, 0x4a, - 0x9e, 0x39, 0x9e, 0xbc, 0xf4, 0xef, 0xdd, 0xaf, 0x40, 0x81, 0x9e, 0x6a, 0x1c, 0x85, 0xd2, 0xb2, - 0x6c, 0x6c, 0xf7, 0xf4, 0xcb, 0x9a, 0xa3, 0xbb, 0x5f, 0xa1, 0x1a, 0x9b, 0x72, 0xc6, 0xae, 0xf1, - 0xfe, 0x76, 0xab, 0x59, 0xce, 0x8a, 0x45, 0x10, 0x16, 0x5a, 0x9d, 0xb2, 0x60, 0xff, 0x69, 0x5f, - 0x3c, 0x57, 0xce, 0x89, 0xc7, 0x00, 0xce, 0x49, 0xd5, 0x95, 0xf3, 0x6b, 0xa4, 0x44, 0x1e, 0xbd, - 0x46, 0x80, 0xe3, 0x4e, 0x67, 0x7c, 0x15, 0xd5, 0x7d, 0xd1, 0xc2, 0x36, 0x3e, 0x24, 0xcd, 0x47, - 0xb9, 0x2f, 0xb8, 0x0d, 0x35, 0x1d, 0x03, 0xef, 0x78, 0xa8, 0xf2, 0xdd, 0x72, 0x8b, 0xa6, 0x66, - 0x0a, 0x17, 0xd9, 0xb3, 0x2e, 0x18, 0xae, 0x0b, 0x35, 0x73, 0x28, 0xe0, 0xd0, 0x30, 0x18, 0xb1, - 0x59, 0xed, 0x55, 0x7c, 0x45, 0xb0, 0x3a, 0x8c, 0x9a, 0xa9, 0x5c, 0x7e, 0x2e, 0x3b, 0x34, 0x90, - 0x98, 0x03, 0xa6, 0xa5, 0x1b, 0x38, 0xe8, 0x0a, 0x3c, 0xc6, 0x2c, 0x8b, 0x1e, 0xe5, 0x56, 0x4e, - 0x0d, 0xb7, 0x98, 0x1a, 0x08, 0x7c, 0x0a, 0xab, 0x31, 0xe4, 0xa4, 0x8f, 0xc2, 0xa3, 0x59, 0x38, - 0xba, 0x2c, 0x6f, 0x7b, 0x1e, 0x03, 0xf9, 0xed, 0x5f, 0x18, 0xf7, 0x54, 0x91, 0x5f, 0x16, 0xc1, - 0xfa, 0x23, 0xef, 0x2b, 0x67, 0x3d, 0xe7, 0x71, 0x7c, 0xdf, 0x14, 0x11, 0x15, 0xa7, 0xcf, 0xb9, - 0x6f, 0x64, 0x61, 0x2e, 0x48, 0xc0, 0xfc, 0x5e, 0xe0, 0xd2, 0x31, 0xeb, 0x14, 0x7c, 0xe8, 0x8a, - 0xec, 0x0c, 0x73, 0xf5, 0xf4, 0x97, 0xb9, 0x35, 0xda, 0x61, 0xad, 0x71, 0xf2, 0x94, 0x4f, 0xc3, - 0xcd, 0xd9, 0xc8, 0x14, 0xec, 0xfb, 0xb2, 0x30, 0x5b, 0x53, 0x75, 0x6d, 0x02, 0xd1, 0xfc, 0xa7, - 0x0c, 0xaf, 0xa1, 0x0c, 0xd3, 0x00, 0x27, 0x1f, 0xf9, 0xac, 0x60, 0xa2, 0x6a, 0x9e, 0xc2, 0x75, - 0x82, 0x2c, 0x1c, 0x77, 0xb0, 0x5b, 0x18, 0xf4, 0x55, 0xa5, 0x1b, 0x8b, 0x7d, 0xaf, 0x8c, 0x79, - 0x3b, 0xde, 0x6b, 0x82, 0x93, 0x81, 0x71, 0x2e, 0xbc, 0x87, 0xd5, 0x3d, 0x85, 0x60, 0xee, 0x39, - 0x38, 0xb6, 0xaa, 0x99, 0x7d, 0x55, 0x36, 0xb7, 0xa8, 0x81, 0xda, 0xed, 0xcc, 0x51, 0xe5, 0x4b, - 0x07, 0xd8, 0xd8, 0x73, 0x8f, 0x2a, 0x49, 0x62, 0xb4, 0x79, 0x10, 0x7a, 0x54, 0xe0, 0xf5, 0x84, - 0xc9, 0xb6, 0x17, 0xc2, 0xce, 0xf3, 0x50, 0xea, 0x2b, 0x5d, 0x6b, 0x60, 0xe0, 0xfd, 0x76, 0x08, - 0x51, 0x95, 0xac, 0x38, 0x2f, 0x49, 0xde, 0xdb, 0x48, 0x86, 0x22, 0xcd, 0xdc, 0x67, 0x8d, 0x44, - 0xbd, 0x2a, 0x66, 0x7d, 0xaf, 0x8a, 0x27, 0xa1, 0x20, 0x1b, 0x96, 0x62, 0xba, 0x56, 0x70, 0x34, - 0x65, 0xcb, 0x92, 0xf3, 0x6f, 0xd5, 0x50, 0xe9, 0x71, 0xa4, 0x9f, 0x11, 0x70, 0x25, 0x11, 0xe5, - 0xb6, 0x33, 0xb2, 0xdf, 0xf1, 0xa0, 0xbe, 0x30, 0x81, 0x0d, 0xe9, 0x35, 0xf0, 0x24, 0x89, 0x44, - 0xb8, 0x68, 0x2c, 0x37, 0x3a, 0x6b, 0xf5, 0x17, 0xd5, 0xea, 0xf5, 0x85, 0xfa, 0x42, 0xb9, 0x87, - 0xbe, 0x95, 0x85, 0xb2, 0x4b, 0x9b, 0xeb, 0xb9, 0x6f, 0x68, 0x1c, 0x51, 0x66, 0xfa, 0xe3, 0xc8, - 0xcb, 0x60, 0xed, 0xf5, 0x22, 0x77, 0x25, 0xc3, 0x6d, 0xc4, 0x70, 0xe3, 0xf8, 0x29, 0xae, 0x7d, - 0xc6, 0x98, 0x06, 0x0e, 0x91, 0xc5, 0x5f, 0xcc, 0xc2, 0x6c, 0xb5, 0xdf, 0x57, 0xf7, 0xbc, 0x69, - 0x3e, 0xce, 0x41, 0x4d, 0xc0, 0x9f, 0x4a, 0x76, 0x9f, 0x3f, 0x95, 0xef, 0x71, 0x2f, 0x03, 0x0c, - 0x01, 0x21, 0xca, 0x0b, 0xbe, 0x69, 0x3f, 0xaa, 0xa6, 0xf4, 0xe7, 0xac, 0xd7, 0x3f, 0x09, 0xf2, - 0x24, 0x4c, 0x19, 0x7a, 0xaf, 0x00, 0x45, 0x55, 0xdf, 0x6c, 0x68, 0x1b, 0xfa, 0x28, 0x4b, 0xc3, - 0x2d, 0xec, 0xdd, 0xba, 0x24, 0xff, 0xc5, 0x1b, 0xe1, 0x98, 0xfd, 0xeb, 0xca, 0x07, 0x75, 0xcb, - 0x5e, 0x92, 0x86, 0x72, 0xc5, 0xd3, 0x70, 0xd4, 0xd2, 0x2d, 0x59, 0x0d, 0x5a, 0xb8, 0xe7, 0x25, - 0x26, 0xcf, 0x46, 0x8d, 0xa4, 0xdb, 0xca, 0xcb, 0x30, 0xb5, 0x80, 0xf5, 0x33, 0xc4, 0xeb, 0x61, - 0x76, 0x43, 0x31, 0x4c, 0xcb, 0x29, 0xdd, 0x71, 0xd4, 0x14, 0x79, 0x89, 0xcd, 0x74, 0xdc, 0xc9, - 0x7b, 0x19, 0x17, 0xb1, 0x41, 0x0c, 0xeb, 0x88, 0x3b, 0xf9, 0x60, 0xae, 0x4d, 0x8f, 0x2a, 0x07, - 0x2a, 0x2b, 0x39, 0xf4, 0x04, 0xf3, 0x5c, 0xa7, 0x70, 0x7e, 0x55, 0x8e, 0x99, 0x22, 0x9b, 0x69, - 0xb7, 0x68, 0x67, 0xac, 0x0c, 0x54, 0xb5, 0x8d, 0xbb, 0xd5, 0x4d, 0x9d, 0x18, 0x2b, 0xe6, 0xa5, - 0xa1, 0x5c, 0x11, 0x41, 0x69, 0xd0, 0x6f, 0x5b, 0xb2, 0x35, 0x30, 0xa9, 0x85, 0x89, 0x97, 0xb6, - 0x25, 0xb2, 0xa7, 0x5f, 0xd6, 0xe8, 0x53, 0xc7, 0x04, 0x2a, 0x90, 0x63, 0xaf, 0x0f, 0x8e, 0x10, - 0xce, 0x3a, 0xab, 0x86, 0x23, 0x59, 0x7f, 0x22, 0x00, 0x58, 0x5b, 0x06, 0x96, 0x7b, 0x23, 0xe1, - 0x7a, 0x1e, 0x9c, 0x54, 0xf5, 0x4d, 0xf3, 0x92, 0x62, 0x6d, 0xf9, 0x40, 0x9c, 0x77, 0x01, 0xcc, - 0x4b, 0x21, 0x4f, 0xc5, 0x17, 0xc2, 0x53, 0xdc, 0x27, 0x97, 0xb6, 0x74, 0x15, 0x77, 0x0c, 0x8c, - 0x87, 0xf0, 0xcd, 0x4b, 0x51, 0x45, 0xc4, 0x0a, 0xe4, 0xec, 0xc7, 0x73, 0x39, 0xb2, 0xca, 0xb0, - 0xaa, 0x2b, 0x22, 0x66, 0x15, 0x2a, 0x62, 0x12, 0x29, 0x27, 0xde, 0x01, 0xd7, 0xe8, 0x97, 0xb5, - 0x25, 0x7d, 0xf3, 0xbc, 0x6c, 0xd6, 0xe4, 0x0d, 0x2c, 0x61, 0x67, 0xf1, 0xd6, 0x0d, 0xaa, 0xb0, - 0x0a, 0x7b, 0x2c, 0x56, 0x40, 0xec, 0xca, 0x1b, 0x78, 0x89, 0x05, 0xc0, 0x91, 0x8c, 0x11, 0x4f, - 0x6c, 0xd8, 0xed, 0xdc, 0x55, 0x17, 0x08, 0xc7, 0xea, 0x92, 0xc9, 0xb3, 0x01, 0xb5, 0xd3, 0x0b, - 0x3e, 0x20, 0x8e, 0xa5, 0xdb, 0x50, 0xee, 0x3e, 0x91, 0x9e, 0x19, 0x27, 0xd2, 0x30, 0x2c, 0xd2, - 0x1e, 0xac, 0x47, 0x82, 0xb0, 0x7e, 0x35, 0x0f, 0xb9, 0xf6, 0x9e, 0xd6, 0xb5, 0xf7, 0x3b, 0xde, - 0x8c, 0x76, 0x16, 0x4e, 0x50, 0x03, 0xa0, 0x8e, 0x21, 0xef, 0x62, 0xc3, 0xc4, 0x4b, 0x64, 0xc3, - 0xe0, 0xb8, 0x25, 0x1f, 0xf9, 0xcc, 0x96, 0x5f, 0x73, 0x5b, 0xe9, 0xd7, 0x77, 0xfa, 0xd6, 0xde, - 0x92, 0x8d, 0x07, 0x0d, 0xbe, 0xcb, 0x64, 0x8a, 0xf7, 0x02, 0xb2, 0x8c, 0xbd, 0x8e, 0xee, 0xe2, - 0x27, 0xe1, 0x1d, 0xdd, 0xc2, 0x6e, 0xa7, 0x68, 0x60, 0xc2, 0xf0, 0x12, 0xe8, 0x37, 0xb8, 0xfd, - 0xef, 0x3b, 0xd0, 0xdb, 0x5d, 0x0b, 0x59, 0xa7, 0x9e, 0x0f, 0x45, 0x47, 0x9e, 0xdd, 0x0d, 0xca, - 0x53, 0x47, 0xbc, 0xef, 0x4b, 0xbc, 0xe4, 0x96, 0x66, 0x9c, 0xd5, 0x0b, 0x43, 0xce, 0xea, 0x5d, - 0x98, 0x3a, 0xb4, 0xe6, 0xe0, 0xcc, 0x43, 0xf3, 0x08, 0x0f, 0x9c, 0xbf, 0xb6, 0x48, 0xeb, 0x03, - 0xcb, 0x16, 0xb1, 0x86, 0xd6, 0x22, 0x52, 0x47, 0xa7, 0xa2, 0x88, 0x12, 0xe2, 0x3c, 0x5c, 0xcb, - 0x3e, 0x3d, 0xcf, 0xce, 0x89, 0x8e, 0x40, 0x46, 0x96, 0xd9, 0x27, 0x4e, 0xc5, 0x71, 0xe2, 0x54, - 0x1a, 0x12, 0x27, 0x4e, 0xcf, 0xcc, 0xa1, 0x28, 0xa4, 0xbf, 0xcc, 0x7c, 0x5c, 0x80, 0x82, 0xc3, - 0x72, 0xf4, 0xda, 0x0c, 0x73, 0xd9, 0x9f, 0x82, 0xea, 0x5d, 0xf6, 0x77, 0xd3, 0x53, 0x92, 0xe1, - 0x77, 0xf0, 0xbb, 0x7b, 0x26, 0xdc, 0x73, 0x3a, 0x11, 0x6a, 0xd3, 0x97, 0x53, 0xb4, 0x0d, 0x9d, - 0x1e, 0xcf, 0x8d, 0x11, 0x61, 0x52, 0x94, 0x53, 0x6d, 0x11, 0xd1, 0xf6, 0x54, 0xa2, 0x80, 0xe7, - 0xec, 0x69, 0x1e, 0xbd, 0x98, 0x09, 0x29, 0xb3, 0x4e, 0xc3, 0x5b, 0xd0, 0x88, 0x59, 0x34, 0x39, - 0x52, 0x0f, 0x76, 0x1a, 0x8e, 0x0e, 0x34, 0x59, 0xd3, 0xb5, 0xbd, 0x1d, 0xe5, 0x65, 0xde, 0x46, - 0x81, 0xc9, 0x63, 0xcd, 0xf4, 0x38, 0x26, 0x13, 0x9b, 0xa2, 0xf0, 0x68, 0xcc, 0x1b, 0x8a, 0x8a, - 0x89, 0xb9, 0xbf, 0xeb, 0x3f, 0x9a, 0xa6, 0x63, 0x8d, 0x94, 0x11, 0x4d, 0xa4, 0xcf, 0xed, 0xbf, - 0xcf, 0xc0, 0x89, 0x73, 0x58, 0xc3, 0x86, 0xd2, 0x75, 0x3a, 0xc5, 0xe5, 0x9b, 0x71, 0xd4, 0x1b, - 0xec, 0x66, 0x94, 0xcf, 0xab, 0x62, 0x78, 0x3d, 0xe9, 0x1f, 0x94, 0x14, 0x21, 0x4f, 0xc6, 0xf5, - 0xfc, 0xb5, 0x9f, 0x7f, 0xfc, 0x54, 0xe6, 0xcb, 0x8f, 0x9f, 0xca, 0x7c, 0xeb, 0xf1, 0x53, 0x99, - 0x5f, 0xf8, 0xf6, 0xa9, 0xab, 0xbe, 0xfc, 0xed, 0x53, 0x57, 0xfd, 0xf9, 0xb7, 0x4f, 0x5d, 0xf5, - 0xcf, 0xb2, 0xfd, 0xf5, 0xf5, 0x02, 0xb1, 0x73, 0xbd, 0xed, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, - 0xa0, 0xb2, 0x06, 0xf1, 0x22, 0x0e, 0x01, 0x00, + 0x06, 0x5b, 0xb8, 0x1b, 0x8a, 0xb6, 0x5d, 0xba, 0x4a, 0x3c, 0xea, 0x1f, 0xe9, 0x95, 0x32, 0xac, + 0x6e, 0x38, 0xd2, 0x06, 0x8a, 0xe9, 0xdc, 0xe8, 0xc1, 0xfe, 0x2c, 0xc8, 0x6b, 0x7a, 0xcf, 0x3b, + 0xae, 0x3e, 0x15, 0xfe, 0xbe, 0x2d, 0x9b, 0x92, 0x53, 0xd8, 0x7e, 0x0b, 0xf7, 0x36, 0xb1, 0x49, + 0x84, 0x39, 0xf2, 0x2d, 0x9b, 0xa5, 0x92, 0x53, 0x98, 0xd3, 0xb0, 0x29, 0x82, 0xe8, 0xf4, 0x27, + 0x89, 0xff, 0x5b, 0x80, 0xe3, 0xce, 0xfc, 0xd4, 0x1e, 0xac, 0xdb, 0x55, 0xad, 0x63, 0xf4, 0x5a, + 0x81, 0xb9, 0x41, 0x64, 0x0e, 0xd6, 0xbd, 0x55, 0xdf, 0x49, 0x04, 0x27, 0x91, 0x6c, 0x22, 0x6b, + 0x92, 0x30, 0xe9, 0x9a, 0xc4, 0xac, 0x2f, 0xc2, 0x7e, 0x5b, 0x6a, 0xc7, 0x98, 0xd2, 0x5d, 0x8d, + 0x46, 0xac, 0x25, 0xf6, 0x98, 0x94, 0x37, 0x2c, 0x6c, 0x78, 0x37, 0xc5, 0xdc, 0x24, 0x71, 0x57, + 0x8b, 0x37, 0x74, 0x03, 0xd7, 0x7b, 0x64, 0x3c, 0xcf, 0x4a, 0x5e, 0x3a, 0x30, 0x4c, 0x81, 0x31, + 0x90, 0xb9, 0x19, 0x8e, 0x2b, 0x9b, 0x9a, 0x6e, 0x60, 0xcf, 0x33, 0xdd, 0xfc, 0x51, 0xc7, 0xfd, + 0xd0, 0x50, 0xb6, 0x78, 0x2b, 0x5c, 0xad, 0xe9, 0x8b, 0xb8, 0x4f, 0xf9, 0xee, 0xa0, 0x3a, 0xe7, + 0xdc, 0xaa, 0xd8, 0xf7, 0x00, 0x7d, 0x59, 0x88, 0xa9, 0x1c, 0x1e, 0x02, 0x35, 0xb1, 0xa5, 0x4f, + 0x7c, 0x2e, 0x1c, 0xed, 0xe1, 0x3e, 0xd6, 0x7a, 0x58, 0xeb, 0x2a, 0xde, 0x88, 0x08, 0x7d, 0x8f, + 0x29, 0xec, 0x8b, 0x53, 0x2e, 0x28, 0x4e, 0xe7, 0x02, 0x51, 0x7b, 0xf2, 0x43, 0xe6, 0x28, 0xac, + 0x55, 0x62, 0x80, 0x25, 0x65, 0x1a, 0xbd, 0xc7, 0x0c, 0x84, 0xef, 0x89, 0xa5, 0xeb, 0x8e, 0xe6, + 0xd0, 0x14, 0xec, 0xe0, 0x72, 0x70, 0xb4, 0xde, 0x33, 0xfd, 0x71, 0xa7, 0x8f, 0x1b, 0x76, 0xfb, + 0x82, 0x2c, 0x78, 0x02, 0x2d, 0x04, 0x04, 0x7a, 0x84, 0x08, 0x1e, 0x19, 0x29, 0x82, 0xe8, 0x25, + 0x41, 0xa1, 0xaa, 0xb1, 0x42, 0x75, 0x66, 0x14, 0xcb, 0x82, 0xe4, 0x5e, 0xc9, 0x12, 0x85, 0xde, + 0xed, 0x09, 0xc2, 0x79, 0x46, 0x10, 0x9e, 0x15, 0xb3, 0x57, 0xe9, 0x4b, 0xc1, 0xbf, 0xcf, 0xc2, + 0xd5, 0x8e, 0x24, 0xae, 0x6a, 0xa6, 0x27, 0x0a, 0x4f, 0x61, 0x4d, 0xf1, 0xec, 0x3e, 0x99, 0x9e, + 0x29, 0x1e, 0x49, 0xa1, 0x97, 0xc7, 0x55, 0x9e, 0xed, 0x6b, 0x25, 0xe4, 0xc0, 0x28, 0x96, 0x5a, + 0x6b, 0x5c, 0xa5, 0xe9, 0x33, 0xf0, 0xd7, 0x9d, 0xd0, 0x8d, 0x0d, 0xb2, 0xf7, 0x43, 0x32, 0xaf, + 0xc6, 0xe3, 0x4e, 0x6f, 0xf3, 0xe8, 0x5c, 0x89, 0xbb, 0x3e, 0xd4, 0x64, 0xaa, 0xec, 0x54, 0xed, + 0x6e, 0x2f, 0xd1, 0x3b, 0xb9, 0x2d, 0xe6, 0x3d, 0x1e, 0x51, 0xea, 0x12, 0x51, 0x4c, 0xf0, 0x19, + 0xc7, 0x8f, 0x69, 0x3a, 0x7d, 0x58, 0x7e, 0x59, 0x80, 0x39, 0xe2, 0xcd, 0x76, 0x49, 0xde, 0xd5, + 0x0d, 0xc5, 0xc2, 0xe8, 0x1c, 0x2f, 0x34, 0xa7, 0x00, 0x14, 0xef, 0x35, 0x6a, 0x3e, 0x10, 0xc8, + 0x89, 0x11, 0x59, 0xc6, 0xe7, 0x82, 0x4f, 0xc7, 0x14, 0x23, 0xcb, 0x70, 0x34, 0x3f, 0x45, 0x20, + 0x2a, 0xce, 0x25, 0xff, 0x5e, 0x4c, 0x20, 0xdc, 0xd7, 0x7c, 0x20, 0xbc, 0x8a, 0x26, 0x03, 0xc2, + 0x7d, 0xfd, 0x90, 0x80, 0x08, 0x69, 0x3e, 0x7d, 0x20, 0x1e, 0x29, 0x40, 0x69, 0x09, 0xcb, 0xd6, + 0xc0, 0xc0, 0x9e, 0x19, 0x0c, 0xfa, 0x15, 0x6a, 0xb0, 0x58, 0xe3, 0xc5, 0xe4, 0xba, 0x61, 0x7d, + 0xd8, 0x6c, 0x50, 0xed, 0x15, 0x5b, 0x8d, 0x3e, 0x4c, 0x50, 0x39, 0xa1, 0x43, 0x95, 0x78, 0x6a, + 0x74, 0x0e, 0x2a, 0xd2, 0xc7, 0xe7, 0xb5, 0xbe, 0x5d, 0x61, 0x42, 0x68, 0x7c, 0x3a, 0x88, 0xc6, + 0x0a, 0x8b, 0xc6, 0xdd, 0x5c, 0x7c, 0x88, 0xb2, 0x27, 0x8c, 0x09, 0x88, 0xef, 0x3c, 0xa5, 0xcd, + 0x00, 0x72, 0xff, 0xe4, 0x84, 0x4c, 0x21, 0x6c, 0x4d, 0x16, 0xf2, 0x1d, 0xbd, 0x8d, 0x19, 0x67, + 0xc4, 0xd1, 0x90, 0xf8, 0x5f, 0x66, 0x59, 0x26, 0xf2, 0xf2, 0xcb, 0xe2, 0x6a, 0x11, 0x48, 0xbb, + 0xe1, 0x9e, 0x2c, 0xcc, 0x40, 0x4c, 0x1c, 0x27, 0x11, 0xef, 0x7b, 0x7f, 0x54, 0xf5, 0xe9, 0x33, + 0xf4, 0x23, 0x33, 0xee, 0x35, 0x01, 0x62, 0xed, 0xf7, 0xb5, 0x2c, 0x14, 0xe8, 0x61, 0x11, 0xab, + 0xee, 0x77, 0xed, 0x95, 0xdc, 0x5d, 0xa7, 0x9f, 0x81, 0xde, 0x15, 0xd3, 0x84, 0x9d, 0x18, 0xc4, + 0x25, 0x78, 0x32, 0xf3, 0xae, 0x18, 0x56, 0xeb, 0xe1, 0x6d, 0x4f, 0xe1, 0xce, 0x58, 0xde, 0xb9, + 0x61, 0xf3, 0x5f, 0xb2, 0x00, 0xa1, 0xab, 0x6f, 0x38, 0x9f, 0xc7, 0xae, 0xbe, 0x0f, 0x07, 0x71, + 0xb8, 0xc0, 0xe2, 0x70, 0x47, 0x18, 0x2f, 0x6c, 0x99, 0x1b, 0xb7, 0x04, 0xa3, 0xf7, 0x7b, 0x1c, + 0x6e, 0x32, 0x1c, 0xbe, 0x7b, 0xa2, 0x5a, 0xd3, 0xe7, 0xb4, 0xc3, 0xe1, 0x90, 0x8d, 0xe6, 0x38, + 0x0e, 0x47, 0x6c, 0x34, 0x0f, 0xc0, 0xe1, 0xe8, 0xdd, 0xe6, 0xa4, 0x1c, 0x3e, 0xb4, 0x4d, 0xe4, + 0xe3, 0x39, 0x28, 0xd4, 0x1e, 0xea, 0xeb, 0x86, 0x85, 0x3e, 0x9b, 0x61, 0x1c, 0x52, 0xf4, 0x7d, + 0xb7, 0xfb, 0xe4, 0xbf, 0x3d, 0xff, 0xf6, 0xf4, 0xae, 0x7f, 0x6d, 0x9a, 0xa6, 0xc4, 0xb3, 0x50, + 0xd8, 0x70, 0x74, 0xe3, 0xce, 0x07, 0x17, 0x62, 0xba, 0xea, 0x54, 0x5e, 0x76, 0xf4, 0xe4, 0x12, + 0x2d, 0x29, 0x96, 0x40, 0x78, 0xb1, 0xd2, 0xa7, 0x87, 0xc7, 0xf6, 0x5f, 0x12, 0xd1, 0x83, 0x7a, + 0x75, 0xc3, 0xa6, 0x85, 0x1d, 0x77, 0x53, 0x33, 0x12, 0x9b, 0x29, 0x9e, 0x86, 0xa3, 0x34, 0x63, + 0x49, 0x51, 0xb1, 0x13, 0x80, 0x6e, 0x46, 0x62, 0xf2, 0xd0, 0xa7, 0x82, 0xe0, 0xde, 0xc9, 0x82, + 0x7b, 0x7a, 0x14, 0x6d, 0xa1, 0x4e, 0x46, 0x86, 0xfd, 0x6f, 0x10, 0x35, 0xff, 0xa0, 0xdb, 0xc5, + 0xb8, 0x47, 0x4f, 0x26, 0xdc, 0x64, 0x4c, 0x2b, 0xa3, 0x37, 0x79, 0x52, 0xf2, 0x5c, 0x46, 0x4a, + 0x9e, 0x36, 0x9e, 0xbc, 0xf4, 0xef, 0xe2, 0xaf, 0x40, 0x81, 0x9e, 0x6a, 0x1c, 0x85, 0x99, 0x65, + 0xd9, 0xd8, 0xee, 0xe9, 0x97, 0x35, 0x47, 0x77, 0xbf, 0x42, 0x35, 0x36, 0xa5, 0x8c, 0x5d, 0xe3, + 0x03, 0xed, 0x56, 0xb3, 0x94, 0x15, 0x8b, 0x20, 0x2c, 0xb6, 0x3a, 0x25, 0xc1, 0xfe, 0xd3, 0xbe, + 0x78, 0xae, 0x94, 0x13, 0x8f, 0x01, 0x9c, 0x93, 0x2a, 0x2b, 0xe7, 0xd7, 0x48, 0x89, 0x3c, 0x7a, + 0xa5, 0x00, 0xc7, 0x9d, 0xce, 0xf8, 0x2a, 0xaa, 0xfb, 0xa3, 0x85, 0x6d, 0x7c, 0x94, 0x9b, 0x8f, + 0x72, 0x5f, 0x7a, 0x1b, 0x6a, 0x3a, 0x06, 0xde, 0xf1, 0x50, 0xe5, 0xbb, 0xf9, 0x16, 0x4d, 0xcd, + 0x14, 0x2e, 0xb7, 0x67, 0x5d, 0x30, 0x5c, 0xb7, 0x6a, 0xe6, 0x50, 0x0c, 0xa3, 0x61, 0x30, 0x62, + 0xb3, 0xda, 0xab, 0xf8, 0x8a, 0x60, 0x75, 0x18, 0x35, 0x53, 0xb9, 0x10, 0x5d, 0x72, 0x68, 0x20, + 0x61, 0x0c, 0x4c, 0x4b, 0x37, 0x70, 0xd0, 0x3d, 0x78, 0x8c, 0x59, 0x16, 0x3d, 0xca, 0xad, 0x9c, + 0x1a, 0x6e, 0x31, 0x35, 0x10, 0xf8, 0x14, 0x56, 0x63, 0xc8, 0x49, 0x1f, 0x85, 0x47, 0xb3, 0x70, + 0x74, 0x59, 0xde, 0xf6, 0xbc, 0x08, 0xf2, 0xdb, 0xbf, 0x30, 0x2e, 0xab, 0x22, 0xbf, 0x2c, 0x82, + 0xf5, 0x47, 0xde, 0x61, 0xce, 0x7a, 0x0e, 0xe5, 0xf8, 0xbe, 0x29, 0x22, 0x2a, 0x4e, 0x9f, 0x73, + 0xdf, 0xc8, 0xc2, 0x7c, 0x90, 0x80, 0x85, 0xbd, 0xc0, 0x45, 0x64, 0xd6, 0x51, 0xf8, 0xd0, 0xb5, + 0xd9, 0x59, 0xe6, 0x3a, 0xea, 0x6f, 0x70, 0x6b, 0xb4, 0xc3, 0x5a, 0xe3, 0xe4, 0x29, 0x9f, 0x86, + 0x9b, 0xb3, 0x91, 0x29, 0xd8, 0xf7, 0x65, 0x61, 0xae, 0xaa, 0xea, 0xda, 0x04, 0xa2, 0xf9, 0x4f, + 0x19, 0x5e, 0x43, 0x19, 0xa6, 0x01, 0x4e, 0x3e, 0xf2, 0x59, 0xc1, 0x44, 0xd5, 0x9c, 0x3e, 0xf3, + 0x3e, 0x93, 0x85, 0xe3, 0x0e, 0x76, 0x8b, 0x83, 0xbe, 0xaa, 0x74, 0x63, 0xb1, 0xef, 0x65, 0x31, + 0x6f, 0xcc, 0x7b, 0x4d, 0x70, 0x32, 0x30, 0xce, 0x25, 0xf8, 0xb0, 0xba, 0xa7, 0x10, 0x1f, 0x3e, + 0x07, 0xc7, 0x56, 0x35, 0xb3, 0xaf, 0xca, 0xe6, 0x16, 0x35, 0x50, 0xbb, 0x83, 0x39, 0xaa, 0x7c, + 0xd1, 0x00, 0x1b, 0x7b, 0xee, 0x51, 0x25, 0x49, 0x8c, 0x36, 0x0f, 0x42, 0x8f, 0x0a, 0xbc, 0xde, + 0x31, 0xd9, 0xf6, 0x42, 0xd8, 0x79, 0x1e, 0x66, 0xfa, 0x4a, 0xd7, 0x1a, 0x18, 0x78, 0xbf, 0x1d, + 0x42, 0x54, 0x25, 0x2b, 0xce, 0x4b, 0x92, 0xf7, 0x36, 0x92, 0xa1, 0x48, 0x33, 0xf7, 0x59, 0x23, + 0x51, 0x4f, 0x8b, 0x59, 0xdf, 0xd3, 0xe2, 0x49, 0x28, 0xc8, 0x86, 0xa5, 0x98, 0xae, 0x15, 0x1c, + 0x4d, 0xd9, 0xb2, 0xe4, 0xfc, 0x5b, 0x35, 0x54, 0x7a, 0x1c, 0xe9, 0x67, 0x04, 0xdc, 0x4b, 0x44, + 0xb9, 0xf2, 0x8c, 0xec, 0x77, 0x3c, 0xa8, 0x2f, 0x4c, 0x60, 0x43, 0x7a, 0x0d, 0xfc, 0x8c, 0x44, + 0xa2, 0x5e, 0xd4, 0x97, 0xeb, 0x9d, 0xb5, 0xda, 0xf3, 0xab, 0xb5, 0xda, 0x62, 0x6d, 0xb1, 0xd4, + 0x43, 0xdf, 0xca, 0x42, 0xc9, 0xa5, 0xcd, 0xf5, 0xe6, 0x37, 0x34, 0x8e, 0x28, 0x33, 0xfd, 0x71, + 0xe4, 0x65, 0xb0, 0xf6, 0x7a, 0x91, 0xbb, 0x92, 0xe1, 0x36, 0x62, 0xb8, 0x76, 0xfc, 0x14, 0xd7, + 0x3e, 0x63, 0x4c, 0x03, 0x87, 0xc8, 0xe2, 0x2f, 0x66, 0x61, 0xae, 0xd2, 0xef, 0xab, 0x7b, 0xde, + 0x34, 0x1f, 0xe7, 0xa0, 0x26, 0xe0, 0x63, 0x25, 0xbb, 0xcf, 0xc7, 0xca, 0x0f, 0xb8, 0x97, 0x01, + 0x86, 0x80, 0x10, 0xe5, 0x05, 0xdf, 0xb4, 0x1f, 0x55, 0x53, 0xfa, 0x73, 0xd6, 0x6b, 0x7e, 0x06, + 0xf2, 0x24, 0xf2, 0x19, 0x7a, 0x8f, 0x00, 0x45, 0x55, 0xdf, 0xac, 0x6b, 0x1b, 0xfa, 0x28, 0x4b, + 0xc3, 0x2d, 0xec, 0xdd, 0xc4, 0x24, 0xff, 0xc5, 0x9b, 0xe0, 0x98, 0xfd, 0xeb, 0xca, 0x07, 0x75, + 0xd5, 0x3e, 0x23, 0x0d, 0xe5, 0x8a, 0xa7, 0xe1, 0xa8, 0xa5, 0x5b, 0xb2, 0x1a, 0xb4, 0x70, 0xcf, + 0x4b, 0x4c, 0x9e, 0x8d, 0x1a, 0x49, 0xb7, 0x95, 0x17, 0x63, 0x6a, 0x01, 0xeb, 0x67, 0x88, 0x37, + 0xc0, 0xdc, 0x86, 0x62, 0x98, 0x96, 0x53, 0xba, 0xe3, 0xa8, 0x29, 0xf2, 0x12, 0x9b, 0xe9, 0xb8, + 0x98, 0xf7, 0x32, 0x2e, 0x62, 0x83, 0x18, 0xd6, 0x11, 0x17, 0xf3, 0xc1, 0x5c, 0x9b, 0x1e, 0x55, + 0x0e, 0x54, 0x36, 0xe3, 0xd0, 0x13, 0xcc, 0x73, 0x1d, 0xc5, 0xf9, 0x55, 0x39, 0x66, 0x8a, 0x6c, + 0xa6, 0xdd, 0xa2, 0x9d, 0xb1, 0x32, 0x50, 0xd5, 0x36, 0xee, 0x56, 0x36, 0x75, 0x62, 0xac, 0x98, + 0x97, 0x86, 0x72, 0x45, 0x04, 0x33, 0x83, 0x7e, 0xdb, 0x92, 0xad, 0x81, 0x49, 0x2d, 0x4c, 0xbc, + 0xb4, 0x2d, 0x91, 0x3d, 0xfd, 0xb2, 0x46, 0x9f, 0x3a, 0x26, 0x50, 0x81, 0x1c, 0x7b, 0x7d, 0x70, + 0x84, 0x70, 0xce, 0x59, 0x35, 0x1c, 0xc9, 0xfa, 0x73, 0x01, 0xc0, 0xda, 0x32, 0xb0, 0xdc, 0x1b, + 0x09, 0xd7, 0xb3, 0xe1, 0xa4, 0xaa, 0x6f, 0x9a, 0x97, 0x14, 0x6b, 0xcb, 0x07, 0xe2, 0xbc, 0x0b, + 0x60, 0x5e, 0x0a, 0x79, 0x2a, 0x3e, 0x0f, 0xae, 0x75, 0x9f, 0x5c, 0xda, 0xd2, 0x55, 0xdc, 0x31, + 0x30, 0x1e, 0xc2, 0x37, 0x2f, 0x45, 0x15, 0x11, 0xcb, 0x90, 0xb3, 0x1f, 0xcf, 0xe7, 0xc8, 0x2a, + 0xc3, 0xaa, 0xae, 0x88, 0x98, 0x95, 0xa9, 0x88, 0x49, 0xa4, 0x9c, 0x78, 0x27, 0x5c, 0xa3, 0x5f, + 0xd6, 0x1a, 0xfa, 0xe6, 0x79, 0xd9, 0xac, 0xca, 0x1b, 0x58, 0xc2, 0xce, 0xe2, 0xad, 0x1b, 0x54, + 0x61, 0x15, 0xf6, 0x58, 0x2c, 0x83, 0xd8, 0x95, 0x37, 0x70, 0x83, 0x05, 0xc0, 0x91, 0x8c, 0x11, + 0x4f, 0x6c, 0xd8, 0xed, 0xdc, 0x55, 0x17, 0x08, 0xc7, 0xea, 0x92, 0xc9, 0xb3, 0x01, 0xb5, 0xd3, + 0x8b, 0x3e, 0x20, 0x8e, 0xa5, 0xdb, 0x50, 0xee, 0x3e, 0x91, 0x9e, 0x1d, 0x27, 0xd2, 0x30, 0x2c, + 0xd2, 0x1e, 0xac, 0x47, 0x82, 0xb0, 0x7e, 0x35, 0x0f, 0xb9, 0xf6, 0x9e, 0xd6, 0xb5, 0xf7, 0x3b, + 0xde, 0x8c, 0x76, 0x16, 0x4e, 0x50, 0x03, 0xa0, 0x8e, 0x21, 0xef, 0x62, 0xc3, 0xc4, 0x0d, 0xb2, + 0x61, 0x70, 0x5c, 0x95, 0x8f, 0x7c, 0x66, 0xcb, 0xaf, 0xb9, 0xad, 0xf4, 0x6b, 0x3b, 0x7d, 0x6b, + 0xaf, 0x61, 0xe3, 0x41, 0xe3, 0xf9, 0x32, 0x99, 0xe2, 0x7d, 0x80, 0x2c, 0x63, 0xaf, 0xa3, 0xbb, + 0xf8, 0x49, 0x78, 0x47, 0xb7, 0xb0, 0xdb, 0x29, 0x1a, 0xeb, 0x30, 0xbc, 0x04, 0xfa, 0x5d, 0x6e, + 0x9f, 0xfc, 0x0e, 0xf4, 0x76, 0xd7, 0x42, 0xd6, 0xa9, 0xe7, 0x40, 0xd1, 0x91, 0x67, 0x77, 0x83, + 0xf2, 0xa4, 0x11, 0xef, 0xfb, 0x12, 0x2f, 0xb9, 0xa5, 0x19, 0x07, 0xf6, 0xc2, 0x90, 0x03, 0x7b, + 0x17, 0xa6, 0x0e, 0xad, 0x39, 0x38, 0xf3, 0xd0, 0x3c, 0xc2, 0x03, 0xe7, 0xaf, 0x2d, 0xd2, 0xfa, + 0xc0, 0xb2, 0x45, 0xac, 0xae, 0xb5, 0x88, 0xd4, 0xd1, 0xa9, 0x28, 0xa2, 0x84, 0xb8, 0x00, 0xd7, + 0xb1, 0x4f, 0xcf, 0xb3, 0x73, 0xa2, 0x23, 0x90, 0x91, 0x65, 0xf6, 0x89, 0x53, 0x71, 0x9c, 0x38, + 0xcd, 0x0c, 0x89, 0x13, 0xa7, 0xb7, 0xe6, 0x50, 0x14, 0xd2, 0x5f, 0x66, 0x3e, 0x2e, 0x40, 0xc1, + 0x61, 0x39, 0x7a, 0x55, 0x86, 0x71, 0x00, 0x40, 0x41, 0xf5, 0x1c, 0x00, 0xb8, 0xe9, 0x29, 0xc9, + 0xf0, 0xdb, 0xf8, 0x5d, 0x40, 0x13, 0xee, 0x39, 0x9d, 0x08, 0xb5, 0xe9, 0xcb, 0x29, 0xda, 0x86, + 0x4e, 0x8f, 0xe7, 0xc6, 0x88, 0x30, 0x29, 0xca, 0xa9, 0xb6, 0x88, 0x68, 0x7b, 0x2a, 0x81, 0xc5, + 0x73, 0xf6, 0x34, 0x8f, 0x5e, 0xc0, 0x84, 0x99, 0x59, 0xa7, 0x21, 0x2f, 0x68, 0x14, 0x2d, 0x9a, + 0x1c, 0xa9, 0x07, 0x3b, 0x0d, 0x47, 0x07, 0x9a, 0xac, 0xe9, 0xda, 0xde, 0x8e, 0xf2, 0x62, 0x6f, + 0xa3, 0xc0, 0xe4, 0xb1, 0x66, 0x7a, 0x1c, 0x93, 0x89, 0x4d, 0x51, 0x78, 0x80, 0xe7, 0x0d, 0x45, + 0xc5, 0xc4, 0xdc, 0xdf, 0xf5, 0x29, 0x4d, 0xd3, 0xb1, 0x46, 0xca, 0x88, 0x26, 0xd2, 0xe7, 0xf6, + 0xdf, 0x67, 0xe0, 0xc4, 0x39, 0xac, 0x61, 0x43, 0xe9, 0x3a, 0x9d, 0xe2, 0xf2, 0xd7, 0x38, 0xea, + 0x0d, 0x76, 0x33, 0xca, 0xe7, 0x69, 0x31, 0xbc, 0x9e, 0xf4, 0x0f, 0x4a, 0x8a, 0x90, 0x27, 0xe3, + 0x7a, 0xe1, 0xba, 0xcf, 0x3f, 0x7e, 0x2a, 0xf3, 0xe5, 0xc7, 0x4f, 0x65, 0xbe, 0xf5, 0xf8, 0xa9, + 0xcc, 0xaf, 0x7e, 0xe7, 0xd4, 0x55, 0x5f, 0xfe, 0xce, 0xa9, 0xab, 0xfe, 0xea, 0x3b, 0xa7, 0xae, + 0xfa, 0x67, 0xd9, 0xfe, 0xfa, 0x7a, 0x81, 0xd8, 0xb9, 0xde, 0xfe, 0xff, 0x02, 0x00, 0x00, 0xff, + 0xff, 0x97, 0x28, 0x26, 0x8f, 0x75, 0x0e, 0x01, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index 8b912dab4..c4b35b029 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -2371,6 +2371,10 @@ message Rpc { FAILED_TO_STOP_RUNNING_NODE = 104; BAD_INVITE_CODE = 900; + + NET_ERROR = 901; // means general network error + NET_CONNECTION_REFUSED = 902; // means we wasn't able to connect to the cafe server + NET_OFFLINE = 903; // client can additionally support this error code to notify user that device is offline } } } @@ -3199,6 +3203,7 @@ message Rpc { NULL = 0; UNKNOWN_ERROR = 1; BAD_INPUT = 2; + ALREADY_EXISTS = 10; } } } From 61b0d7bc1c478072685b6df7ba1b0bd84819fe1f Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Fri, 11 Feb 2022 11:02:53 +0100 Subject: [PATCH 28/49] ObjectRelationAdd: relation exists error code added --- core/object.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/object.go b/core/object.go index 3795e4b40..795d698a7 100644 --- a/core/object.go +++ b/core/object.go @@ -377,6 +377,10 @@ func (mw *Middleware) ObjectRelationAdd(req *pb.RpcObjectRelationAddRequest) *pb return response(nil, pb.RpcObjectRelationAddResponseError_BAD_INPUT, err) } + if len(relations) == 0 { + return response(nil, pb.RpcObjectRelationAddResponseError_ALREADY_EXISTS, nil) + } + return response(relations[0], pb.RpcObjectRelationAddResponseError_NULL, nil) } From 3b1119404e68b27cf49cb717d76a1d46e4dafe76 Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Fri, 11 Feb 2022 11:29:31 +0100 Subject: [PATCH 29/49] improve net error handling in checkInviteCode --- core/account.go | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/core/account.go b/core/account.go index 86874f279..fd4109668 100644 --- a/core/account.go +++ b/core/account.go @@ -62,36 +62,47 @@ func checkInviteCode(cfg *config.Config, code string, account string) (errorCode req, err := http.NewRequest("POST", cfg.CafeUrl()+"/alpha-invite", bytes.NewBuffer(jsonStr)) req.Header.Set("Content-Type", "application/json") - checkNetError := func(err error) (netOpError bool, offline bool) { + checkNetError := func(err error) (netOpError bool, dnsError bool, offline bool) { + if err == nil { + return false, false, false + } if netErr, ok := err.(*net.OpError); ok { if syscallErr, ok := netErr.Err.(*os.SyscallError); ok { if syscallErr.Err == syscall.ENETDOWN || syscallErr.Err == syscall.ENETUNREACH { - return true, true + return true, false, true } } - return true, false + if _, ok := netErr.Err.(*net.DNSError); ok { + return true, true, false + } + return true, false, false } - return false, false + return false, false, false } client := &http.Client{} resp, err := client.Do(req) if err != nil { - var netOpErr bool + var netOpErr, dnsError bool if urlErr, ok := err.(*url.Error); ok { var offline bool - if netOpErr, offline = checkNetError(urlErr.Err); offline { + if netOpErr, dnsError, offline = checkNetError(urlErr.Err); offline { + return pb.RpcAccountCreateResponseError_NET_OFFLINE, err + } + } + if dnsError { + // we can receive DNS error in case device is offline, lets check the SHOULD-BE-ALWAYS-ONLINE OpenDNS IP address on the 80 port + c, err2 := net.DialTimeout("tcp", "1.1.1.1:80", time.Second*5) + if c != nil { + _ = c.Close() + } + _, _, offline := checkNetError(err2) + if offline { return pb.RpcAccountCreateResponseError_NET_OFFLINE, err } } if netOpErr { - // additionally, check connection to the opendns ip - _, err2 := net.DialTimeout("tcp", "1.1.1.1:80", time.Second*5) - _, offline := checkNetError(err2) - if offline { - return pb.RpcAccountCreateResponseError_NET_OFFLINE, err - } return pb.RpcAccountCreateResponseError_NET_CONNECTION_REFUSED, err } From 5c1c8978bf2e90de02f7e7f72c32815559865b4c Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Sat, 12 Feb 2022 13:34:36 +0100 Subject: [PATCH 30/49] Update go-threads to latest --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index f02826673..4ca53f8dd 100644 --- a/go.mod +++ b/go.mod @@ -101,7 +101,7 @@ require ( replace github.com/JohannesKaufmann/html-to-markdown => github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1 -replace github.com/textileio/go-threads => github.com/anytypeio/go-threads v1.1.0-rc1.0.20220210000429-5fa142ad3bb1 +replace github.com/textileio/go-threads => github.com/anytypeio/go-threads v1.1.0-rc1.0.20220212122526-59f785ec84c5 replace github.com/msingleton/amplitude-go => github.com/anytypeio/amplitude-go v0.0.0-20211130222238-8d16496a9b31 diff --git a/go.sum b/go.sum index 2667d8fc5..58290d227 100644 --- a/go.sum +++ b/go.sum @@ -96,6 +96,8 @@ github.com/anytypeio/go-threads v1.1.0-rc1.0.20220209232550-ccd68d5a3c6e h1:WpP7 github.com/anytypeio/go-threads v1.1.0-rc1.0.20220209232550-ccd68d5a3c6e/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= github.com/anytypeio/go-threads v1.1.0-rc1.0.20220210000429-5fa142ad3bb1 h1:PogPTWhXWBfI/8iCu1wHeRdQXSZeRHYsZ+eXTbxkrAA= github.com/anytypeio/go-threads v1.1.0-rc1.0.20220210000429-5fa142ad3bb1/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220212122526-59f785ec84c5 h1:O3h/LQDy+FxWmw8c/gH9Hqr4pOOsVbaL+kL7778TXTg= +github.com/anytypeio/go-threads v1.1.0-rc1.0.20220212122526-59f785ec84c5/go.mod h1:O7G/oTjIZfQmB6ZoeU42IdRxWEY9D+HZuLzF6wMk4jI= github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1 h1:g/LEIEQ0ACBOKX9MhORhlmluUKvuxvrIDbGMI0cqF5A= github.com/anytypeio/html-to-markdown v0.0.0-20200617145221-2afd2a14bae1/go.mod h1:Qnhxlb4mi8T2624UtHX8EgDyYZXWbjQfLGuciFHZ+Go= github.com/anytypeio/ipfs-lite v1.1.20-0.20210428105030-fc5b3446abae h1:drp4/4ippiDtCGQHJw9AEPFlNdZI49DUW/6dkCdmChc= From 392a0a512e6c86e6efe21e8fab4ebe08842ba87a Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Mon, 14 Feb 2022 13:51:21 +0300 Subject: [PATCH 31/49] upgrade bleve --- go.mod | 2 +- go.sum | 27 +++++++++++++++++++++++++ pkg/lib/localstore/ftsearch/ftsearch.go | 4 ++-- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4ca53f8dd..b05c2e730 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/anytypeio/go-slip10 v0.0.0-20200330112030-a352ca8495e4 github.com/anytypeio/go-slip21 v0.0.0-20200218204727-e2e51e20ab51 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de - github.com/blevesearch/bleve v1.0.14 + github.com/blevesearch/bleve/v2 v2.3.0 // indirect github.com/cheggaaa/mb v1.0.3 github.com/dave/jennifer v1.4.1 github.com/dgraph-io/badger v1.6.2 diff --git a/go.sum b/go.sum index 58290d227..c28b061b6 100644 --- a/go.sum +++ b/go.sum @@ -53,6 +53,8 @@ github.com/PuerkitoBio/goquery v1.7.1 h1:oE+T06D+1T7LNrn91B4aERsRIeCLJ/oPSa6xB9F github.com/PuerkitoBio/goquery v1.7.1/go.mod h1:XY0pP4kfraEmmV1O7Uf6XyjoslwsneBbgeDjLYuN8xY= github.com/RoaringBitmap/roaring v0.4.23 h1:gpyfd12QohbqhFO4NVDUdoPOCXsyahYRQhINmlHxKeo= github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo= +github.com/RoaringBitmap/roaring v0.9.4 h1:ckvZSX5gwCRaJYBNe7syNawCU5oruY9gQmjXlp4riwo= +github.com/RoaringBitmap/roaring v0.9.4/go.mod h1:icnadbWcNyfEHlYdr+tDlOTih1Bf/h+rzPpv4sbomAA= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/Stebalien/go-bitfield v0.0.1 h1:X3kbSSPUaJK60wV2hjOPZwmpljr6VGCqdq4cBLhbQBo= @@ -124,18 +126,32 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA= +github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/blevesearch/bleve v1.0.14 h1:Q8r+fHTt35jtGXJUM0ULwM3Tzg+MRfyai4ZkWDy2xO4= github.com/blevesearch/bleve v1.0.14/go.mod h1:e/LJTr+E7EaoVdkQZTfoz7dt4KoDNvDbLb8MSKuNTLQ= +github.com/blevesearch/bleve/v2 v2.3.0 h1:5XKlSdpcjeJdE7n0FUEDeJRJwLuhPxq+k5n7h5UaJkg= +github.com/blevesearch/bleve/v2 v2.3.0/go.mod h1:egW/6gZEhM3oBvRjuHXGvGb92cKZ9867OqPZAmCG8MQ= +github.com/blevesearch/bleve_index_api v1.0.1 h1:nx9++0hnyiGOHJwQQYfsUGzpRdEVE5LsylmmngQvaFk= +github.com/blevesearch/bleve_index_api v1.0.1/go.mod h1:fiwKS0xLEm+gBRgv5mumf0dhgFr2mDgZah1pqv1c1M4= github.com/blevesearch/blevex v1.0.0/go.mod h1:2rNVqoG2BZI8t1/P1awgTKnGlx5MP9ZbtEciQaNhswc= github.com/blevesearch/cld2 v0.0.0-20200327141045-8b5f551d37f5/go.mod h1:PN0QNTLs9+j1bKy3d/GB/59wsNBFC4sWLWG3k69lWbc= github.com/blevesearch/go-porterstemmer v1.0.3 h1:GtmsqID0aZdCSNiY8SkuPJ12pD4jI+DdXTAn4YRcHCo= github.com/blevesearch/go-porterstemmer v1.0.3/go.mod h1:angGc5Ht+k2xhJdZi511LtmxuEf0OVpvUUNrwmM1P7M= github.com/blevesearch/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0= github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA= +github.com/blevesearch/mmap-go v1.0.3 h1:7QkALgFNooSq3a46AE+pWeKASAZc9SiNFJhDGF1NDx4= +github.com/blevesearch/mmap-go v1.0.3/go.mod h1:pYvKl/grLQrBxuaRYgoTssa4rVujYYeenDp++2E+yvs= +github.com/blevesearch/scorch_segment_api/v2 v2.1.0 h1:NFwteOpZEvJk5Vg0H6gD0hxupsG3JYocE4DBvsA2GZI= +github.com/blevesearch/scorch_segment_api/v2 v2.1.0/go.mod h1:uch7xyyO/Alxkuxa+CGs79vw0QY8BENSBjg6Mw5L5DE= github.com/blevesearch/segment v0.9.0 h1:5lG7yBCx98or7gK2cHMKPukPZ/31Kag7nONpoBt22Ac= github.com/blevesearch/segment v0.9.0/go.mod h1:9PfHYUdQCgHktBgvtUOF4x+pc4/l8rdH0u5spnW85UQ= github.com/blevesearch/snowballstem v0.9.0 h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD/iWeNXm8s= github.com/blevesearch/snowballstem v0.9.0/go.mod h1:PivSj3JMc8WuaFkTSRDW2SlrulNWPl4ABg1tC/hlgLs= +github.com/blevesearch/upsidedown_store_api v1.0.1 h1:1SYRwyoFLwG3sj0ed89RLtM15amfX2pXlYbFOnF8zNU= +github.com/blevesearch/upsidedown_store_api v1.0.1/go.mod h1:MQDVGpHZrpe3Uy26zJBf/a8h0FZY6xJbthIMm8myH2Q= +github.com/blevesearch/vellum v1.0.7 h1:+vn8rfyCRHxKVRgDLeR0FAXej2+6mEb5Q15aQE/XESQ= +github.com/blevesearch/vellum v1.0.7/go.mod h1:doBZpmRhwTsASB4QdUZANlJvqVAUdUyX0ZK7QJCTeBE= github.com/blevesearch/zap/v11 v11.0.14 h1:IrDAvtlzDylh6H2QCmS0OGcN9Hpf6mISJlfKjcwJs7k= github.com/blevesearch/zap/v11 v11.0.14/go.mod h1:MUEZh6VHGXv1PKx3WnCbdP404LGG2IZVa/L66pyFwnY= github.com/blevesearch/zap/v12 v12.0.14 h1:2o9iRtl1xaRjsJ1xcqTyLX414qPAwykHNV7wNVmbp3w= @@ -146,6 +162,16 @@ github.com/blevesearch/zap/v14 v14.0.5 h1:NdcT+81Nvmp2zL+NhwSvGSLh7xNgGL8QRVZ67n github.com/blevesearch/zap/v14 v14.0.5/go.mod h1:bWe8S7tRrSBTIaZ6cLRbgNH4TUDaC9LZSpRGs85AsGY= github.com/blevesearch/zap/v15 v15.0.3 h1:Ylj8Oe+mo0P25tr9iLPp33lN6d4qcztGjaIsP51UxaY= github.com/blevesearch/zap/v15 v15.0.3/go.mod h1:iuwQrImsh1WjWJ0Ue2kBqY83a0rFtJTqfa9fp1rbVVU= +github.com/blevesearch/zapx/v11 v11.3.2 h1:TDdcbaA0Yz3Y5zpTrpvyW1AeicqWTJL3g8D5g48RiHM= +github.com/blevesearch/zapx/v11 v11.3.2/go.mod h1:YzTfUm4kS3e8OmTXDHVV8OzC5MWPO/VPJZQgPNVb4Lc= +github.com/blevesearch/zapx/v12 v12.3.2 h1:XB09XMg/3ibeIJRCm2zjkaVwrtAuk6c55YRSmVlwUDk= +github.com/blevesearch/zapx/v12 v12.3.2/go.mod h1:RMl6lOZqF+sTxKvhQDJ5yK2LT3Mu7E2p/jGdjAaiRxs= +github.com/blevesearch/zapx/v13 v13.3.2 h1:mTvALh6oayreac07VRAv94FLvTHeSBM9sZ1gmVt0N2k= +github.com/blevesearch/zapx/v13 v13.3.2/go.mod h1:eppobNM35U4C22yDvTuxV9xPqo10pwfP/jugL4INWG4= +github.com/blevesearch/zapx/v14 v14.3.2 h1:oW36JVaZDzrzmBa1X5jdTIYzdhkOQnr/ie13Cb2X7MQ= +github.com/blevesearch/zapx/v14 v14.3.2/go.mod h1:zXNcVzukh0AvG57oUtT1T0ndi09H0kELNaNmekEy0jw= +github.com/blevesearch/zapx/v15 v15.3.2 h1:OZNE4CQ9hQhnB21ySC7x2/9Q35U3WtRXLAh5L2gdCXc= +github.com/blevesearch/zapx/v15 v15.3.2/go.mod h1:C+f/97ZzTzK6vt/7sVlZdzZxKu+5+j4SrGCvr9dJzaY= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= github.com/btcsuite/btcd v0.0.0-20190523000118-16327141da8c/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= @@ -201,6 +227,7 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfc github.com/corona10/goimagehash v1.0.2/go.mod h1:/l9umBhvcHQXVtQO1V6Gp1yD20STawkhRnnX0D1bvVI= github.com/couchbase/ghistogram v0.1.0/go.mod h1:s1Jhy76zqfEecpNWJfWUiKZookAFaiGOEoyzgHt9i7k= github.com/couchbase/moss v0.1.0/go.mod h1:9MaHIaRuy9pvLPUJxB8sh8OrLfyDczECVL37grCIubs= +github.com/couchbase/moss v0.2.0/go.mod h1:9MaHIaRuy9pvLPUJxB8sh8OrLfyDczECVL37grCIubs= github.com/couchbase/vellum v1.0.2 h1:BrbP0NKiyDdndMPec8Jjhy0U47CZ0Lgx3xUC2r9rZqw= github.com/couchbase/vellum v1.0.2/go.mod h1:FcwrEivFpNi24R3jLOs3n+fs5RnuQnQqCLBJ1uAg1W4= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= diff --git a/pkg/lib/localstore/ftsearch/ftsearch.go b/pkg/lib/localstore/ftsearch/ftsearch.go index 2c4bf6155..9ca50f426 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch.go +++ b/pkg/lib/localstore/ftsearch/ftsearch.go @@ -4,8 +4,8 @@ import ( "path/filepath" "strings" - "github.com/blevesearch/bleve" - "github.com/blevesearch/bleve/search/query" + "github.com/blevesearch/bleve/v2" + "github.com/blevesearch/bleve/v2/search/query" "github.com/anytypeio/go-anytype-middleware/app" "github.com/anytypeio/go-anytype-middleware/core/wallet" From 4b97ef03fcebb6b961e40b278a5b939c02fff51f Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Mon, 14 Feb 2022 15:45:35 +0300 Subject: [PATCH 32/49] ft debug logs --- core/indexer/indexer.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/indexer/indexer.go b/core/indexer/indexer.go index 76fc20426..9dfafeb2a 100644 --- a/core/indexer/indexer.go +++ b/core/indexer/indexer.go @@ -800,14 +800,17 @@ func (i *indexer) ftIndexDoc(id string, _ time.Time) (err error) { } if fts := i.store.FTSearch(); fts != nil { - if err := fts.Index(ftsearch.SearchDoc{ + ftDoc := ftsearch.SearchDoc{ Id: id, Title: pbtypes.GetString(info.State.Details(), bundle.RelationKeyName.String()), Text: info.State.SearchText(), - }); err != nil { + } + if err := fts.Index(ftDoc); err != nil { log.Errorf("can't ft index doc: %v", err) } + log.Infof("ft search indexed with title: '%s'", ftDoc.Title) } + log.With("thread", id).Infof("ft index updated for a %v", time.Since(st)) return } From 5e92c5dcb63053e708d13c5db0adeaf5404294e8 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Mon, 14 Feb 2022 16:49:12 +0300 Subject: [PATCH 33/49] ft search limit --- pkg/lib/localstore/ftsearch/ftsearch.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/lib/localstore/ftsearch/ftsearch.go b/pkg/lib/localstore/ftsearch/ftsearch.go index 9ca50f426..747a9412a 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch.go +++ b/pkg/lib/localstore/ftsearch/ftsearch.go @@ -104,6 +104,7 @@ func (f *ftSearch) Search(text string) (results []string, err error) { queries = append(queries, txtm) sr := bleve.NewSearchRequest(bleve.NewDisjunctionQuery(queries...)) + sr.Size = 100 res, err := f.index.Search(sr) if err != nil { return From 33e67c82f60e101d9e28521850a17c10e4f4ebfc Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Mon, 14 Feb 2022 17:12:04 +0300 Subject: [PATCH 34/49] index snippet + change ft interval to 10 sec --- core/indexer/indexer.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core/indexer/indexer.go b/core/indexer/indexer.go index 9dfafeb2a..8180dc997 100644 --- a/core/indexer/indexer.go +++ b/core/indexer/indexer.go @@ -49,7 +49,7 @@ const ( var log = logging.Logger("anytype-doc-indexer") var ( - ftIndexInterval = time.Minute / 3 + ftIndexInterval = 10 * time.Second ) func New() Indexer { @@ -800,15 +800,19 @@ func (i *indexer) ftIndexDoc(id string, _ time.Time) (err error) { } if fts := i.store.FTSearch(); fts != nil { + title := pbtypes.GetString(info.State.Details(), bundle.RelationKeyName.String()) + if info.State.ObjectType() == bundle.TypeKeyNote.String() || title == "" { + title = info.State.Snippet() + } ftDoc := ftsearch.SearchDoc{ Id: id, - Title: pbtypes.GetString(info.State.Details(), bundle.RelationKeyName.String()), + Title: title, Text: info.State.SearchText(), } if err := fts.Index(ftDoc); err != nil { log.Errorf("can't ft index doc: %v", err) } - log.Infof("ft search indexed with title: '%s'", ftDoc.Title) + log.Debugf("ft search indexed with title: '%s'", ftDoc.Title) } log.With("thread", id).Infof("ft index updated for a %v", time.Since(st)) From 6619651e4d481fc16284304a662df27bda163f48 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Mon, 14 Feb 2022 17:58:54 +0300 Subject: [PATCH 35/49] fulltext force reindex --- core/indexer/indexer.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/indexer/indexer.go b/core/indexer/indexer.go index 8180dc997..4d0e99b69 100644 --- a/core/indexer/indexer.go +++ b/core/indexer/indexer.go @@ -43,7 +43,7 @@ const ( ForceFilesReindexCounter int32 = 5 // reindex ipfs-file-based objects ForceBundledObjectsReindexCounter int32 = 3 // reindex objects like anytypeProfile ForceIdxRebuildCounter int32 = 12 // erases localstore indexes and reindex all type of objects (no need to increase ForceThreadsObjectsReindexCounter & ForceFilesReindexCounter) - ForceFulltextIndexCounter int32 = 2 // performs fulltext indexing for all type of objects (useful when we change fulltext config) + ForceFulltextIndexCounter int32 = 3 // performs fulltext indexing for all type of objects (useful when we change fulltext config) ) var log = logging.Logger("anytype-doc-indexer") From 3e4bb97033732ef2f0f546f3a7beb1eb321568a4 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 14 Feb 2022 20:04:35 +0300 Subject: [PATCH 36/49] change fuzzyness of search --- pkg/lib/localstore/ftsearch/ftsearch.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/lib/localstore/ftsearch/ftsearch.go b/pkg/lib/localstore/ftsearch/ftsearch.go index 747a9412a..e1e222cae 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch.go +++ b/pkg/lib/localstore/ftsearch/ftsearch.go @@ -93,13 +93,13 @@ func (f *ftSearch) Search(text string) (results []string, err error) { queries = append(queries, tss) // title match tm := bleve.NewMatchQuery(text) - tm.SetFuzziness(2) + tm.SetFuzziness(1) tm.SetField("Title") tm.SetBoost(7) queries = append(queries, tm) // text match txtm := bleve.NewMatchQuery(text) - txtm.SetFuzziness(1) + txtm.SetFuzziness(0) txtm.SetField("Text") queries = append(queries, txtm) From b13c1e37cc5b1491670bf3e698d35f3687e14515 Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Mon, 14 Feb 2022 18:26:57 +0100 Subject: [PATCH 37/49] unsplash fixes --- util/unsplash/unsplash.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/util/unsplash/unsplash.go b/util/unsplash/unsplash.go index d09df3f8d..d85706348 100644 --- a/util/unsplash/unsplash.go +++ b/util/unsplash/unsplash.go @@ -203,7 +203,14 @@ func (l *unsplashService) Download(ctx context.Context, id string) (imgPath stri return "", err } } - req, err := http.NewRequest("GET", picture.PictureFullUrl, nil) + + // we must call download endpoint according to the API guidelines + picUrl, _, err := l.client.Photos.DownloadLink(id) + if err != nil { + return "", err + } + + req, err := http.NewRequest("GET", picUrl.String(), nil) if err != nil { return "", err } From 051dfacf14f20997f9ffc9b18794e7fece893a17 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Mon, 14 Feb 2022 20:40:34 +0300 Subject: [PATCH 38/49] fix test --- pkg/lib/localstore/ftsearch/ftsearch_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/lib/localstore/ftsearch/ftsearch_test.go b/pkg/lib/localstore/ftsearch/ftsearch_test.go index f73865cad..94458f171 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch_test.go +++ b/pkg/lib/localstore/ftsearch/ftsearch_test.go @@ -122,8 +122,8 @@ func TestFtSearch_Search(t *testing.T) { []string{"6"}, }, { - "some tex", - []string{"6", "2", "4", "3", "5"}, + "some text", + []string{"4", "3", "6", "5"}, }, { "somelongidentifier", From ac1729d6048372a7f20d437b636214bc9fa43a45 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Tue, 15 Feb 2022 13:48:31 +0300 Subject: [PATCH 39/49] MatchPhrasePrefixQuery --- go.mod | 1 + pkg/lib/localstore/ftsearch/ftsearch.go | 8 +- pkg/lib/localstore/ftsearch/ftsearch_test.go | 12 ++ pkg/lib/localstore/ftsearch/phraseprefix.go | 120 +++++++++++++++++++ 4 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 pkg/lib/localstore/ftsearch/phraseprefix.go diff --git a/go.mod b/go.mod index b05c2e730..15ee66d71 100644 --- a/go.mod +++ b/go.mod @@ -11,6 +11,7 @@ require ( github.com/anytypeio/go-slip21 v0.0.0-20200218204727-e2e51e20ab51 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de github.com/blevesearch/bleve/v2 v2.3.0 // indirect + github.com/blevesearch/bleve_index_api v1.0.1 // indirect github.com/cheggaaa/mb v1.0.3 github.com/dave/jennifer v1.4.1 github.com/dgraph-io/badger v1.6.2 diff --git a/pkg/lib/localstore/ftsearch/ftsearch.go b/pkg/lib/localstore/ftsearch/ftsearch.go index e1e222cae..d8a0b3d2f 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch.go +++ b/pkg/lib/localstore/ftsearch/ftsearch.go @@ -81,11 +81,17 @@ func (f *ftSearch) Search(text string) (results []string, err error) { queries = append(queries, im) } + // title prefix phrase + tpp := NewMatchPhrasePrefixQuery(text) + tpp.SetField("Title") + tpp.SetBoost(40) + queries = append(queries, tpp) // title prefix tp := bleve.NewPrefixQuery(text) tp.SetField("Title") - tp.SetBoost(40) + tp.SetBoost(20) queries = append(queries, tp) + bleve.NewPhraseQuery() // title substr tss := bleve.NewWildcardQuery("*" + strings.ReplaceAll(text, "*", `\*`) + "*") tss.SetField("Title") diff --git a/pkg/lib/localstore/ftsearch/ftsearch_test.go b/pkg/lib/localstore/ftsearch/ftsearch_test.go index 94458f171..fd8b8d886 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch_test.go +++ b/pkg/lib/localstore/ftsearch/ftsearch_test.go @@ -96,6 +96,10 @@ func TestFtSearch_Search(t *testing.T) { Id: "eczq5t", Title: "FERRARI styling CENter with somethinglong ", }, + { + Id: "sometitle", + Title: "Some title with words", + }, } for _, d := range docs { require.NoError(t, ft.Index(d)) @@ -133,6 +137,14 @@ func TestFtSearch_Search(t *testing.T) { "FeRRa", []string{"eczq5t"}, }, + { + "Ferrari st", + []string{"eczq5t"}, + }, + { + "Some ti", + []string{"sometitle"}, + }, } for _, st := range searches { diff --git a/pkg/lib/localstore/ftsearch/phraseprefix.go b/pkg/lib/localstore/ftsearch/phraseprefix.go new file mode 100644 index 000000000..8f40fedb9 --- /dev/null +++ b/pkg/lib/localstore/ftsearch/phraseprefix.go @@ -0,0 +1,120 @@ +// source from unmerged PR https://github.com/blevesearch/bleve/pull/858 + +package ftsearch + +import ( + "fmt" + "github.com/blevesearch/bleve/v2/analysis" + "github.com/blevesearch/bleve/v2/mapping" + "github.com/blevesearch/bleve/v2/search" + "github.com/blevesearch/bleve/v2/search/query" + index "github.com/blevesearch/bleve_index_api" +) + +type MatchPhrasePrefixQuery struct { + MatchPhrasePrefix string `json:"match_phrase_prefix"` + FieldVal string `json:"field,omitempty"` + Analyzer string `json:"analyzer,omitempty"` + BoostVal *query.Boost `json:"boost,omitempty"` +} + +// NewMatchPhrasePrefixQuery creates a new Query +// for matching phrase prefix in the index. +// An Analyzer is chosen based on the field. +// Input text is analyzed using this analyzer. +// Token terms resulting from this analysis are +// used to build a search phrase. Result documents +// must match this phrase prefix. Queried field must have been indexed with +// IncludeTermVectors set to true. +func NewMatchPhrasePrefixQuery(matchPhrasePrefix string) *MatchPhrasePrefixQuery { + return &MatchPhrasePrefixQuery{ + MatchPhrasePrefix: matchPhrasePrefix, + } +} + +func (q *MatchPhrasePrefixQuery) SetBoost(b float64) { + boost := query.Boost(b) + q.BoostVal = &boost +} + +func (q *MatchPhrasePrefixQuery) Boost() float64 { + return q.BoostVal.Value() +} + +func (q *MatchPhrasePrefixQuery) SetField(f string) { + q.FieldVal = f +} + +func (q *MatchPhrasePrefixQuery) Field() string { + return q.FieldVal +} + +func (q *MatchPhrasePrefixQuery) Searcher(i index.IndexReader, m mapping.IndexMapping, options search.SearcherOptions) (search.Searcher, error) { + field := q.FieldVal + if q.FieldVal == "" { + field = m.DefaultSearchField() + } + + analyzerName := "" + if q.Analyzer != "" { + analyzerName = q.Analyzer + } else { + analyzerName = m.AnalyzerNameForPath(field) + } + analyzer := m.AnalyzerNamed(analyzerName) + if analyzer == nil { + return nil, fmt.Errorf("no analyzer named '%s' registered", q.Analyzer) + } + + tokens := analyzer.Analyze([]byte(q.MatchPhrasePrefix)) + if len(tokens) > 0 { + phrase := tokenStreamToPhrase(tokens) + if len(phrase) > 0 { + // expand tokens at last position to terms from dictionary + var terms []string + for _, prefix := range phrase[len(phrase)-1] { + fieldDict, err := i.FieldDictPrefix(field, []byte(prefix)) + if err != nil { + return nil, err + } + tfd, err := fieldDict.Next() + for err == nil && tfd != nil { + terms = append(terms, tfd.Term) + tfd, err = fieldDict.Next() + } + } + if len(terms) > 0 { + phrase[len(phrase)-1] = terms + } + } + phraseQuery := query.NewMultiPhraseQuery(phrase, field) + phraseQuery.SetBoost(q.BoostVal.Value()) + return phraseQuery.Searcher(i, m, options) + } + + noneQuery := query.NewMatchNoneQuery() + return noneQuery.Searcher(i, m, options) +} + +func tokenStreamToPhrase(tokens analysis.TokenStream) [][]string { + firstPosition := int(^uint(0) >> 1) + lastPosition := 0 + for _, token := range tokens { + if token.Position < firstPosition { + firstPosition = token.Position + } + if token.Position > lastPosition { + lastPosition = token.Position + } + } + phraseLen := lastPosition - firstPosition + 1 + if phraseLen > 0 { + rv := make([][]string, phraseLen) + for _, token := range tokens { + pos := token.Position - firstPosition + rv[pos] = append(rv[pos], string(token.Term)) + } + return rv + } + return nil +} From 7c3d2fd375765a7f46dac72213154af4bb3e868f Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Tue, 15 Feb 2022 14:26:03 +0300 Subject: [PATCH 40/49] bug: send change only for active entries --- core/subscription/sorted.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/subscription/sorted.go b/core/subscription/sorted.go index 1a533e551..bbbefa935 100644 --- a/core/subscription/sorted.go +++ b/core/subscription/sorted.go @@ -165,13 +165,13 @@ func (s *sortedSub) onChange(ctx *opCtx) { for _, e := range ctx.entries { if _, ok := s.diff.afterIdsM[e.id]; ok { e.SetSub(s.id, true) + ctx.change = append(ctx.change, opChange{ + id: e.id, + subId: s.id, + keys: s.keys, + }) + hasChanges = true } - ctx.change = append(ctx.change, opChange{ - id: e.id, - subId: s.id, - keys: s.keys, - }) - hasChanges = true } if (wasAddOrRemove || hasChanges) && s.depSub != nil { From 9249072b8f53fd05fbaa556f77ddaafb046a0d8f Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Tue, 15 Feb 2022 15:38:55 +0300 Subject: [PATCH 41/49] custom analizer + old index cleanup --- core/indexer/indexer.go | 2 +- pkg/lib/localstore/ftsearch/ftsearch.go | 82 ++++++++++--- pkg/lib/localstore/ftsearch/ftsearch_test.go | 2 +- pkg/lib/localstore/ftsearch/phraseprefix.go | 120 ------------------- 4 files changed, 65 insertions(+), 141 deletions(-) delete mode 100644 pkg/lib/localstore/ftsearch/phraseprefix.go diff --git a/core/indexer/indexer.go b/core/indexer/indexer.go index 4d0e99b69..da63e66c3 100644 --- a/core/indexer/indexer.go +++ b/core/indexer/indexer.go @@ -43,7 +43,7 @@ const ( ForceFilesReindexCounter int32 = 5 // reindex ipfs-file-based objects ForceBundledObjectsReindexCounter int32 = 3 // reindex objects like anytypeProfile ForceIdxRebuildCounter int32 = 12 // erases localstore indexes and reindex all type of objects (no need to increase ForceThreadsObjectsReindexCounter & ForceFilesReindexCounter) - ForceFulltextIndexCounter int32 = 3 // performs fulltext indexing for all type of objects (useful when we change fulltext config) + ForceFulltextIndexCounter int32 = 4 // performs fulltext indexing for all type of objects (useful when we change fulltext config) ) var log = logging.Logger("anytype-doc-indexer") diff --git a/pkg/lib/localstore/ftsearch/ftsearch.go b/pkg/lib/localstore/ftsearch/ftsearch.go index d8a0b3d2f..ae6dfadd8 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch.go +++ b/pkg/lib/localstore/ftsearch/ftsearch.go @@ -1,26 +1,34 @@ package ftsearch import ( + "github.com/blevesearch/bleve/v2/analysis/analyzer/custom" + "github.com/blevesearch/bleve/v2/analysis/token/lowercase" + "github.com/blevesearch/bleve/v2/analysis/tokenizer/single" + "os" "path/filepath" "strings" - "github.com/blevesearch/bleve/v2" - "github.com/blevesearch/bleve/v2/search/query" - "github.com/anytypeio/go-anytype-middleware/app" "github.com/anytypeio/go-anytype-middleware/core/wallet" "github.com/anytypeio/go-anytype-middleware/metrics" + + "github.com/blevesearch/bleve/v2" + "github.com/blevesearch/bleve/v2/analysis/analyzer/standard" + "github.com/blevesearch/bleve/v2/mapping" + "github.com/blevesearch/bleve/v2/search/query" ) const ( CName = "fts" ftsDir = "fts" + ftsVer = "1" ) type SearchDoc struct { - Id string - Title string - Text string + Id string + Title string + TitleNoTerms string + Text string } func New() FTSearch { @@ -37,13 +45,15 @@ type FTSearch interface { } type ftSearch struct { - path string - index bleve.Index + rootPath string + ftsPath string + index bleve.Index } func (f *ftSearch) Init(a *app.App) (err error) { repoPath := a.MustComponent(wallet.CName).(wallet.Wallet).RepoPath() - f.path = filepath.Join(repoPath, ftsDir) + f.rootPath = filepath.Join(repoPath, ftsDir) + f.ftsPath = filepath.Join(repoPath, ftsDir, ftsVer) return nil } @@ -52,10 +62,19 @@ func (f *ftSearch) Name() (name string) { } func (f *ftSearch) Run() (err error) { - f.index, err = bleve.Open(f.path) + de, e := os.ReadDir(f.rootPath) + if e == nil { + // cleanup old index versions + for _, d := range de { + if d.Name() != ftsVer { + os.RemoveAll(filepath.Join(f.rootPath, d.Name())) + } + } + } + + f.index, err = bleve.Open(f.ftsPath) if err == bleve.ErrorIndexPathDoesNotExist || err == bleve.ErrorIndexMetaMissing { - mapping := bleve.NewIndexMapping() - if f.index, err = bleve.New(f.path, mapping); err != nil { + if f.index, err = bleve.New(f.ftsPath, f.makeMapping()); err != nil { return } } else if err != nil { @@ -64,8 +83,35 @@ func (f *ftSearch) Run() (err error) { return nil } +func (f *ftSearch) makeMapping() mapping.IndexMapping { + mapping := bleve.NewIndexMapping() + + keywordMapping := bleve.NewTextFieldMapping() + keywordMapping.Analyzer = "noTerms" + + mapping.DefaultMapping.AddFieldMappingsAt("TitleNoTerms", keywordMapping) + mapping.DefaultMapping.AddFieldMappingsAt("Id", keywordMapping) + + standardMapping := bleve.NewTextFieldMapping() + standardMapping.Analyzer = standard.Name + mapping.DefaultMapping.AddFieldMappingsAt("Title", standardMapping) + mapping.DefaultMapping.AddFieldMappingsAt("Text", standardMapping) + + mapping.AddCustomAnalyzer("noTerms", + map[string]interface{}{ + "type": custom.Name, + "tokenizer": single.Name, + "token_filters": []string{ + lowercase.Name, + }, + }) + + return mapping +} + func (f *ftSearch) Index(d SearchDoc) (err error) { metrics.ObjectFTUpdatedCounter.Inc() + d.TitleNoTerms = d.Title return f.index.Index(d.Id, d) } @@ -81,20 +127,18 @@ func (f *ftSearch) Search(text string) (results []string, err error) { queries = append(queries, im) } - // title prefix phrase - tpp := NewMatchPhrasePrefixQuery(text) - tpp.SetField("Title") - tpp.SetBoost(40) - queries = append(queries, tpp) // title prefix tp := bleve.NewPrefixQuery(text) + tp.SetField("TitleNoTerms") + tp.SetBoost(40) + queries = append(queries, tp) + tp = bleve.NewPrefixQuery(text) tp.SetField("Title") tp.SetBoost(20) queries = append(queries, tp) - bleve.NewPhraseQuery() // title substr tss := bleve.NewWildcardQuery("*" + strings.ReplaceAll(text, "*", `\*`) + "*") - tss.SetField("Title") + tss.SetField("TitleNoTerms") tss.SetBoost(8) queries = append(queries, tss) // title match diff --git a/pkg/lib/localstore/ftsearch/ftsearch_test.go b/pkg/lib/localstore/ftsearch/ftsearch_test.go index fd8b8d886..a77327d97 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch_test.go +++ b/pkg/lib/localstore/ftsearch/ftsearch_test.go @@ -142,7 +142,7 @@ func TestFtSearch_Search(t *testing.T) { []string{"eczq5t"}, }, { - "Some ti", + "some ti", []string{"sometitle"}, }, } diff --git a/pkg/lib/localstore/ftsearch/phraseprefix.go b/pkg/lib/localstore/ftsearch/phraseprefix.go deleted file mode 100644 index 8f40fedb9..000000000 --- a/pkg/lib/localstore/ftsearch/phraseprefix.go +++ /dev/null @@ -1,120 +0,0 @@ -// source from unmerged PR https://github.com/blevesearch/bleve/pull/858 - -package ftsearch - -import ( - "fmt" - "github.com/blevesearch/bleve/v2/analysis" - "github.com/blevesearch/bleve/v2/mapping" - "github.com/blevesearch/bleve/v2/search" - "github.com/blevesearch/bleve/v2/search/query" - index "github.com/blevesearch/bleve_index_api" -) - -type MatchPhrasePrefixQuery struct { - MatchPhrasePrefix string `json:"match_phrase_prefix"` - FieldVal string `json:"field,omitempty"` - Analyzer string `json:"analyzer,omitempty"` - BoostVal *query.Boost `json:"boost,omitempty"` -} - -// NewMatchPhrasePrefixQuery creates a new Query -// for matching phrase prefix in the index. -// An Analyzer is chosen based on the field. -// Input text is analyzed using this analyzer. -// Token terms resulting from this analysis are -// used to build a search phrase. Result documents -// must match this phrase prefix. Queried field must have been indexed with -// IncludeTermVectors set to true. -func NewMatchPhrasePrefixQuery(matchPhrasePrefix string) *MatchPhrasePrefixQuery { - return &MatchPhrasePrefixQuery{ - MatchPhrasePrefix: matchPhrasePrefix, - } -} - -func (q *MatchPhrasePrefixQuery) SetBoost(b float64) { - boost := query.Boost(b) - q.BoostVal = &boost -} - -func (q *MatchPhrasePrefixQuery) Boost() float64 { - return q.BoostVal.Value() -} - -func (q *MatchPhrasePrefixQuery) SetField(f string) { - q.FieldVal = f -} - -func (q *MatchPhrasePrefixQuery) Field() string { - return q.FieldVal -} - -func (q *MatchPhrasePrefixQuery) Searcher(i index.IndexReader, m mapping.IndexMapping, options search.SearcherOptions) (search.Searcher, error) { - field := q.FieldVal - if q.FieldVal == "" { - field = m.DefaultSearchField() - } - - analyzerName := "" - if q.Analyzer != "" { - analyzerName = q.Analyzer - } else { - analyzerName = m.AnalyzerNameForPath(field) - } - analyzer := m.AnalyzerNamed(analyzerName) - if analyzer == nil { - return nil, fmt.Errorf("no analyzer named '%s' registered", q.Analyzer) - } - - tokens := analyzer.Analyze([]byte(q.MatchPhrasePrefix)) - if len(tokens) > 0 { - phrase := tokenStreamToPhrase(tokens) - if len(phrase) > 0 { - // expand tokens at last position to terms from dictionary - var terms []string - for _, prefix := range phrase[len(phrase)-1] { - fieldDict, err := i.FieldDictPrefix(field, []byte(prefix)) - if err != nil { - return nil, err - } - tfd, err := fieldDict.Next() - for err == nil && tfd != nil { - terms = append(terms, tfd.Term) - tfd, err = fieldDict.Next() - } - } - if len(terms) > 0 { - phrase[len(phrase)-1] = terms - } - } - phraseQuery := query.NewMultiPhraseQuery(phrase, field) - phraseQuery.SetBoost(q.BoostVal.Value()) - return phraseQuery.Searcher(i, m, options) - } - - noneQuery := query.NewMatchNoneQuery() - return noneQuery.Searcher(i, m, options) -} - -func tokenStreamToPhrase(tokens analysis.TokenStream) [][]string { - firstPosition := int(^uint(0) >> 1) - lastPosition := 0 - for _, token := range tokens { - if token.Position < firstPosition { - firstPosition = token.Position - } - if token.Position > lastPosition { - lastPosition = token.Position - } - } - phraseLen := lastPosition - firstPosition + 1 - if phraseLen > 0 { - rv := make([][]string, phraseLen) - for _, token := range tokens { - pos := token.Position - firstPosition - rv[pos] = append(rv[pos], string(token.Term)) - } - return rv - } - return nil -} From d545a40ad61f2308a19827bef5ad579b21c8ac31 Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Tue, 15 Feb 2022 16:50:12 +0100 Subject: [PATCH 42/49] fix dependentSmartIds exclude files, include hidden relations only when requesting in the context of object --- core/block/editor/smartblock/smartblock.go | 47 ++++++++++++---------- core/indexer/indexer.go | 2 +- pkg/lib/bundle/relation.gen.go | 4 +- 3 files changed, 28 insertions(+), 25 deletions(-) diff --git a/core/block/editor/smartblock/smartblock.go b/core/block/editor/smartblock/smartblock.go index cd53a0498..9f36f108f 100644 --- a/core/block/editor/smartblock/smartblock.go +++ b/core/block/editor/smartblock/smartblock.go @@ -413,7 +413,7 @@ func (sb *smartBlock) fetchMeta() (details []*pb.EventObjectDetailsSet, objectTy } recordsCh := make(chan *types.Struct, 10) sb.recordsSub = database.NewSubscription(nil, recordsCh) - sb.depIds = sb.dependentSmartIds(true, true) + sb.depIds = sb.dependentSmartIds(true, true, true) sort.Strings(sb.depIds) var records []database.Record if records, sb.closeRecordsSub, err = sb.objectStore.QueryByIdAndSubscribeForChanges(sb.depIds, sb.recordsSub); err != nil { @@ -540,7 +540,7 @@ func (sb *smartBlock) onMetaChange(details *types.Struct) { } // dependentSmartIds returns list of dependent objects in this order: Simple blocks(Link, mentions in Text), Relations. Both of them are returned in the order of original blocks/relations -func (sb *smartBlock) dependentSmartIds(includeObjTypes bool, includeCreatorModifier bool) (ids []string) { +func (sb *smartBlock) dependentSmartIds(includeObjTypes bool, includeCreatorModifier bool, includeHidden bool) (ids []string) { ids = sb.Doc.(*state.State).DepSmartIds() if sb.Type() != model.SmartBlockType_Breadcrumbs { @@ -558,7 +558,8 @@ func (sb *smartBlock) dependentSmartIds(includeObjTypes bool, includeCreatorModi for _, rel := range sb.RelationsState(sb.Doc.(*state.State), false) { // do not index local dates such as lastOpened/lastModified - if rel.Format == model.RelationFormat_date && (slice.FindPos(bundle.LocalRelationsKeys, rel.Key) == 0) && (slice.FindPos(bundle.DerivedRelationsKeys, rel.Key) == 0) { + if rel.Format == model.RelationFormat_date && + (slice.FindPos(bundle.LocalRelationsKeys, rel.Key) == 0) && (slice.FindPos(bundle.DerivedRelationsKeys, rel.Key) == 0) { relInt := pbtypes.GetInt64(details, rel.Key) if relInt > 0 { t := time.Unix(relInt, 0) @@ -568,6 +569,24 @@ func (sb *smartBlock) dependentSmartIds(includeObjTypes bool, includeCreatorModi continue } + if rel.Key == bundle.RelationKeyCreator.String() || rel.Key == bundle.RelationKeyLastModifiedBy.String() { + if includeCreatorModifier { + v := pbtypes.GetString(details, rel.Key) + ids = append(ids, v) + } + continue + } + + if rel.Hidden && !includeHidden { + continue + } + + if rel.Key == bundle.RelationKeyId.String() || + rel.Key == bundle.RelationKeyType.String() || // always skip type because it was proceed above + rel.Key == bundle.RelationKeyFeaturedRelations.String() { + continue + } + if rel.Key == bundle.RelationKeyCoverId.String() { v := pbtypes.GetString(details, rel.Key) _, err := cid.Decode(v) @@ -582,17 +601,6 @@ func (sb *smartBlock) dependentSmartIds(includeObjTypes bool, includeCreatorModi continue } - if rel.Hidden { - continue - } - - if rel.Key == bundle.RelationKeyId.String() || - rel.Key == bundle.RelationKeyType.String() || - rel.Key == bundle.RelationKeyFeaturedRelations.String() || - !includeCreatorModifier && (rel.Key == bundle.RelationKeyCreator.String() || rel.Key == bundle.RelationKeyLastModifiedBy.String()) { - continue - } - // add all object relation values as dependents for _, targetId := range pbtypes.GetStringList(details, rel.Key) { if targetId != "" { @@ -741,7 +749,7 @@ func (sb *smartBlock) ResetToVersion(s *state.State) (err error) { } func (sb *smartBlock) CheckSubscriptions() (changed bool) { - depIds := sb.dependentSmartIds(true, true) + depIds := sb.dependentSmartIds(true, true, true) sort.Strings(depIds) if !slice.SortedEquals(sb.depIds, depIds) { sb.depIds = depIds @@ -1661,18 +1669,13 @@ func (sb *smartBlock) getDocInfo(st *state.State) doc.DocInfo { } } - links := sb.dependentSmartIds(false, false) - for _, fileHash := range fileHashes { - if slice.FindPos(links, fileHash) == -1 { - links = append(links, fileHash) - } - } + // we don't want any hidden or internal relations here. We want to capture the meaningful outgoing links only + links := sb.dependentSmartIds(false, false, false) links = slice.Remove(links, sb.Id()) // so links will have this order // 1. Simple blocks: links, mentions in the text // 2. Relations(format==Object) - // 3. Files return doc.DocInfo{ Id: sb.Id(), Links: links, diff --git a/core/indexer/indexer.go b/core/indexer/indexer.go index 4d0e99b69..ad7a06796 100644 --- a/core/indexer/indexer.go +++ b/core/indexer/indexer.go @@ -39,7 +39,7 @@ const ( CName = "indexer" // increasing counters below will trigger existing account to reindex their data - ForceThreadsObjectsReindexCounter int32 = 4 // reindex thread-based objects + ForceThreadsObjectsReindexCounter int32 = 5 // reindex thread-based objects ForceFilesReindexCounter int32 = 5 // reindex ipfs-file-based objects ForceBundledObjectsReindexCounter int32 = 3 // reindex objects like anytypeProfile ForceIdxRebuildCounter int32 = 12 // erases localstore indexes and reindex all type of objects (no need to increase ForceThreadsObjectsReindexCounter & ForceFilesReindexCounter) diff --git a/pkg/lib/bundle/relation.gen.go b/pkg/lib/bundle/relation.gen.go index 91e5b142e..e576b1085 100644 --- a/pkg/lib/bundle/relation.gen.go +++ b/pkg/lib/bundle/relation.gen.go @@ -6,7 +6,7 @@ package bundle import "github.com/anytypeio/go-anytype-middleware/pkg/lib/pb/model" -const RelationChecksum = "1d97526495f8cb6ac369ef725a5c9e39058fc0c65c5cae464a96c9d206e81d60" +const RelationChecksum = "2e7a4c8295b7aea78b9a072ae48d59dc44fac5ad86df13244ca8da527ad5fcd3" type RelationKey string @@ -1224,7 +1224,7 @@ var ( }, RelationKeyLinks: { - DataSource: model.Relation_local, + DataSource: model.Relation_derived, Description: "", Format: model.RelationFormat_object, Hidden: true, From 9355c4c78f47cd2f5bdca403631164627b2154e5 Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Tue, 15 Feb 2022 18:51:11 +0100 Subject: [PATCH 43/49] injectDefaultFilters remove break --- pkg/lib/database/database.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/lib/database/database.go b/pkg/lib/database/database.go index d0480dbca..343a33152 100644 --- a/pkg/lib/database/database.go +++ b/pkg/lib/database/database.go @@ -115,7 +115,6 @@ func injectDefaultFilters(filters []*model.BlockContentDataviewFilter) []*model. if filter.RelationKey == bundle.RelationKeyIsDeleted.String() { hasDeletedFilter = true - break } } From 300c4fc5b2b03f6a172577ceb51046355f63f351 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Wed, 16 Feb 2022 13:10:22 +0300 Subject: [PATCH 44/49] force ft index for ObjectSearch call --- core/indexer/indexer.go | 21 ++++++++++++++++++--- core/object.go | 5 ++++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/core/indexer/indexer.go b/core/indexer/indexer.go index 2fe1b3d74..a1b7cbe4a 100644 --- a/core/indexer/indexer.go +++ b/core/indexer/indexer.go @@ -49,7 +49,8 @@ const ( var log = logging.Logger("anytype-doc-indexer") var ( - ftIndexInterval = 10 * time.Second + ftIndexInterval = time.Minute + ftIndexForceMinInterval = time.Second * 10 ) func New() Indexer { @@ -57,6 +58,7 @@ func New() Indexer { } type Indexer interface { + ForceFTIndex() app.ComponentRunnable } @@ -96,6 +98,7 @@ type indexer struct { archivedMap map[string]struct{} favoriteMap map[string]struct{} newAccount bool + forceFt chan struct{} } func (i *indexer) Init(a *app.App) (err error) { @@ -112,7 +115,7 @@ func (i *indexer) Init(a *app.App) (err error) { i.quit = make(chan struct{}) i.archivedMap = make(map[string]struct{}, 100) i.favoriteMap = make(map[string]struct{}, 100) - + i.forceFt = make(chan struct{}) return } @@ -165,6 +168,13 @@ func (i *indexer) Run() (err error) { return } +func (i *indexer) ForceFTIndex() { + select { + case i.forceFt <- struct{}{}: + default: + } +} + func (i *indexer) migrateRemoveNonindexableObjects() { ids, err := i.getIdsForTypes( smartblock.SmartblockTypeMarketplaceType, smartblock.SmartblockTypeMarketplaceRelation, @@ -728,7 +738,7 @@ func (i *indexer) index(ctx context.Context, info doc.DocInfo) error { func (i *indexer) ftLoop() { ticker := time.NewTicker(ftIndexInterval) i.ftIndex() - + var lastForceIndex time.Time i.mu.Lock() quit := i.quit i.mu.Unlock() @@ -738,6 +748,11 @@ func (i *indexer) ftLoop() { return case <-ticker.C: i.ftIndex() + case <-i.forceFt: + if time.Since(lastForceIndex) > ftIndexForceMinInterval { + i.ftIndex() + lastForceIndex = time.Now() + } } } } diff --git a/core/object.go b/core/object.go index 795d698a7..c7b59245d 100644 --- a/core/object.go +++ b/core/object.go @@ -2,6 +2,7 @@ package core import ( "fmt" + "github.com/anytypeio/go-anytype-middleware/core/indexer" "strings" "time" @@ -110,7 +111,9 @@ func (mw *Middleware) ObjectSearch(req *pb.RpcObjectSearchRequest) *pb.RpcObject } at := mw.app.MustComponent(core.CName).(core.Service) - + if req.FullText != "" { + mw.app.MustComponent(indexer.CName).(indexer.Indexer).ForceFTIndex() + } records, _, err := at.ObjectStore().Query(nil, database.Query{ Filters: req.Filters, Sorts: req.Sorts, From 20390c141a0532fb76c408859456549475b376a7 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Wed, 16 Feb 2022 16:50:30 +0300 Subject: [PATCH 45/49] query by terms --- pkg/lib/localstore/ftsearch/ftsearch.go | 88 +++++++++++++------- pkg/lib/localstore/ftsearch/ftsearch_test.go | 18 +++- 2 files changed, 73 insertions(+), 33 deletions(-) diff --git a/pkg/lib/localstore/ftsearch/ftsearch.go b/pkg/lib/localstore/ftsearch/ftsearch.go index ae6dfadd8..a1fd63d21 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch.go +++ b/pkg/lib/localstore/ftsearch/ftsearch.go @@ -1,6 +1,9 @@ package ftsearch import ( + "github.com/anytypeio/go-anytype-middleware/app" + "github.com/anytypeio/go-anytype-middleware/core/wallet" + "github.com/anytypeio/go-anytype-middleware/metrics" "github.com/blevesearch/bleve/v2/analysis/analyzer/custom" "github.com/blevesearch/bleve/v2/analysis/token/lowercase" "github.com/blevesearch/bleve/v2/analysis/tokenizer/single" @@ -8,10 +11,6 @@ import ( "path/filepath" "strings" - "github.com/anytypeio/go-anytype-middleware/app" - "github.com/anytypeio/go-anytype-middleware/core/wallet" - "github.com/anytypeio/go-anytype-middleware/metrics" - "github.com/blevesearch/bleve/v2" "github.com/blevesearch/bleve/v2/analysis/analyzer/standard" "github.com/blevesearch/bleve/v2/mapping" @@ -117,45 +116,74 @@ func (f *ftSearch) Index(d SearchDoc) (err error) { func (f *ftSearch) Search(text string) (results []string, err error) { text = strings.ToLower(strings.TrimSpace(text)) - var queries = make([]query.Query, 0, 4) - - // id match - if len(text) > 10 { - im := bleve.NewMatchQuery(text) - im.SetField("Id") - im.SetBoost(30) - queries = append(queries, im) + terms := append([]string{text}, strings.Split(text, " ")...) + termsFiltered := terms[:0] + for _, t := range terms { + t = strings.TrimSpace(t) + if t != "" { + termsFiltered = append(termsFiltered, t) + } } + terms = termsFiltered + var exactQueries = make([]query.Query, 0, 4) + // id match + if len(text) > 5 { + im := bleve.NewDocIDQuery([]string{text}) + im.SetBoost(30) + exactQueries = append(exactQueries, im) + } // title prefix tp := bleve.NewPrefixQuery(text) tp.SetField("TitleNoTerms") tp.SetBoost(40) - queries = append(queries, tp) - tp = bleve.NewPrefixQuery(text) - tp.SetField("Title") - tp.SetBoost(20) - queries = append(queries, tp) + exactQueries = append(exactQueries, tp) + // title substr tss := bleve.NewWildcardQuery("*" + strings.ReplaceAll(text, "*", `\*`) + "*") tss.SetField("TitleNoTerms") tss.SetBoost(8) - queries = append(queries, tss) - // title match - tm := bleve.NewMatchQuery(text) - tm.SetFuzziness(1) - tm.SetField("Title") - tm.SetBoost(7) - queries = append(queries, tm) - // text match - txtm := bleve.NewMatchQuery(text) - txtm.SetFuzziness(0) - txtm.SetField("Text") - queries = append(queries, txtm) + exactQueries = append(exactQueries, tss) - sr := bleve.NewSearchRequest(bleve.NewDisjunctionQuery(queries...)) + var notExactQueriesGroup = make([]query.Query, 0, 5) + for i, t := range terms { + // fulltext queries + var notExactQueries = make([]query.Query, 0, 3) + tp = bleve.NewPrefixQuery(t) + tp.SetField("Title") + if i == 0 { + tp.SetBoost(8) + } + notExactQueries = append(notExactQueries, tp) + + // title match + tm := bleve.NewMatchQuery(t) + tm.SetFuzziness(1) + tm.SetField("Title") + if i == 0 { + tm.SetBoost(7) + } + notExactQueries = append(notExactQueries, tm) + + // text match + txtm := bleve.NewMatchQuery(t) + txtm.SetFuzziness(0) + txtm.SetField("Text") + if i == 0 { + txtm.SetBoost(2) + } + notExactQueries = append(notExactQueries, txtm) + notExactQueriesGroup = append(notExactQueriesGroup, bleve.NewDisjunctionQuery(notExactQueries...)) + } + + //exactQueries = []query.Query{bleve.NewDisjunctionQuery(notExactQueriesGroup...)} + exactQueries = append(exactQueries, bleve.NewConjunctionQuery(notExactQueriesGroup...)) + + sr := bleve.NewSearchRequest(bleve.NewDisjunctionQuery(exactQueries...)) sr.Size = 100 + sr.Explain = true res, err := f.index.Search(sr) + //fmt.Println(res.String()) if err != nil { return } diff --git a/pkg/lib/localstore/ftsearch/ftsearch_test.go b/pkg/lib/localstore/ftsearch/ftsearch_test.go index a77327d97..d91924c73 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch_test.go +++ b/pkg/lib/localstore/ftsearch/ftsearch_test.go @@ -129,6 +129,18 @@ func TestFtSearch_Search(t *testing.T) { "some text", []string{"4", "3", "6", "5"}, }, + { + "some", + []string{"4", "3", "6", "5"}, + }, + { + "text", + []string{"4", "3", "6", "5"}, + }, + { + "some text qwertydslkj lkj", + nil, + }, { "somelongidentifier", []string{"somelongidentifier"}, @@ -147,10 +159,10 @@ func TestFtSearch_Search(t *testing.T) { }, } - for _, st := range searches { + for _, st := range searches[4:8] { ids, err := ft.Search(st.Query) require.NoError(t, err) - assert.Equal(t, st.Result, ids, st.Query) - t.Logf("%s:\t%v\t%v", st.Query, ids, st.Result) + ok := assert.ObjectsAreEqual(st.Result, ids) + t.Logf("%s:\t%v\t%v - %v", st.Query, ids, st.Result, ok) } } From 01ab9b2e57868f37185e2576fead08e70f6cf366 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Wed, 16 Feb 2022 17:06:48 +0300 Subject: [PATCH 46/49] en stop words check --- pkg/lib/localstore/ftsearch/ftsearch.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pkg/lib/localstore/ftsearch/ftsearch.go b/pkg/lib/localstore/ftsearch/ftsearch.go index a1fd63d21..70dddfb40 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch.go +++ b/pkg/lib/localstore/ftsearch/ftsearch.go @@ -5,6 +5,7 @@ import ( "github.com/anytypeio/go-anytype-middleware/core/wallet" "github.com/anytypeio/go-anytype-middleware/metrics" "github.com/blevesearch/bleve/v2/analysis/analyzer/custom" + "github.com/blevesearch/bleve/v2/analysis/lang/en" "github.com/blevesearch/bleve/v2/analysis/token/lowercase" "github.com/blevesearch/bleve/v2/analysis/tokenizer/single" "os" @@ -44,15 +45,17 @@ type FTSearch interface { } type ftSearch struct { - rootPath string - ftsPath string - index bleve.Index + rootPath string + ftsPath string + index bleve.Index + enStopWordsMap map[string]bool } func (f *ftSearch) Init(a *app.App) (err error) { repoPath := a.MustComponent(wallet.CName).(wallet.Wallet).RepoPath() f.rootPath = filepath.Join(repoPath, ftsDir) f.ftsPath = filepath.Join(repoPath, ftsDir, ftsVer) + f.enStopWordsMap, _ = en.TokenMapConstructor(nil, nil) return nil } @@ -104,7 +107,6 @@ func (f *ftSearch) makeMapping() mapping.IndexMapping { lowercase.Name, }, }) - return mapping } @@ -118,9 +120,10 @@ func (f *ftSearch) Search(text string) (results []string, err error) { text = strings.ToLower(strings.TrimSpace(text)) terms := append([]string{text}, strings.Split(text, " ")...) termsFiltered := terms[:0] + for _, t := range terms { t = strings.TrimSpace(t) - if t != "" { + if t != "" && !f.enStopWordsMap[t] { termsFiltered = append(termsFiltered, t) } } From 8becf23b9096f331a32be73e4264799e96a9915c Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Wed, 16 Feb 2022 18:04:49 +0300 Subject: [PATCH 47/49] remove test --- pkg/lib/localstore/ftsearch/ftsearch_test.go | 114 ------------------- 1 file changed, 114 deletions(-) diff --git a/pkg/lib/localstore/ftsearch/ftsearch_test.go b/pkg/lib/localstore/ftsearch/ftsearch_test.go index d91924c73..d2fbccf3f 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch_test.go +++ b/pkg/lib/localstore/ftsearch/ftsearch_test.go @@ -52,117 +52,3 @@ func TestNewFTSearch(t *testing.T) { assert.Len(t, res, 1) ft.Close() } - -func TestFtSearch_Search(t *testing.T) { - tmpDir, _ := ioutil.TempDir("", "") - fixture := newFixture(tmpDir, t) - ft := fixture.ft - defer ft.Close() - var docs = [...]SearchDoc{ - { - Id: "1", - Title: "First one", - Text: "one two two", - }, - { - Id: "2", - Title: "Second two", - Text: "one two three", - }, - { - Id: "3", - Title: "Third three", - Text: "some text with 3", - }, - { - Id: "4", - Title: "Fours four", - Text: "some text with four and some text five", - }, - { - Id: "5", - Title: "Fives five", - Text: "some text with five and one and two ans rs", - }, - { - Id: "6", - Title: "Rs six some", - Text: "some text with six", - }, - { - Id: "somelongidentifier", - }, - { - Id: "eczq5t", - Title: "FERRARI styling CENter with somethinglong ", - }, - { - Id: "sometitle", - Title: "Some title with words", - }, - } - for _, d := range docs { - require.NoError(t, ft.Index(d)) - } - - searches := [...]struct { - Query string - Result []string - }{ - { - "one", - []string{"1", "2", "5"}, - }, - { - "rs", - []string{"6", "1", "4", "5"}, - }, - { - "two", - []string{"2", "1", "5"}, - }, - { - "six", - []string{"6"}, - }, - { - "some text", - []string{"4", "3", "6", "5"}, - }, - { - "some", - []string{"4", "3", "6", "5"}, - }, - { - "text", - []string{"4", "3", "6", "5"}, - }, - { - "some text qwertydslkj lkj", - nil, - }, - { - "somelongidentifier", - []string{"somelongidentifier"}, - }, - { - "FeRRa", - []string{"eczq5t"}, - }, - { - "Ferrari st", - []string{"eczq5t"}, - }, - { - "some ti", - []string{"sometitle"}, - }, - } - - for _, st := range searches[4:8] { - ids, err := ft.Search(st.Query) - require.NoError(t, err) - ok := assert.ObjectsAreEqual(st.Result, ids) - t.Logf("%s:\t%v\t%v - %v", st.Query, ids, st.Result, ok) - } -} From 01512f95d12d4f4a778a8d182de6f633aed907e7 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Thu, 17 Feb 2022 16:27:08 +0300 Subject: [PATCH 48/49] safe cleanup for old indexes --- pkg/lib/localstore/ftsearch/ftsearch.go | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/pkg/lib/localstore/ftsearch/ftsearch.go b/pkg/lib/localstore/ftsearch/ftsearch.go index 70dddfb40..acc9b3a1e 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch.go +++ b/pkg/lib/localstore/ftsearch/ftsearch.go @@ -64,21 +64,23 @@ func (f *ftSearch) Name() (name string) { } func (f *ftSearch) Run() (err error) { - de, e := os.ReadDir(f.rootPath) - if e == nil { - // cleanup old index versions - for _, d := range de { - if d.Name() != ftsVer { - os.RemoveAll(filepath.Join(f.rootPath, d.Name())) - } - } - } - f.index, err = bleve.Open(f.ftsPath) if err == bleve.ErrorIndexPathDoesNotExist || err == bleve.ErrorIndexMetaMissing { if f.index, err = bleve.New(f.ftsPath, f.makeMapping()); err != nil { return } + // cleanup old indexes + if strings.HasSuffix(f.rootPath, ftsDir) { + de, e := os.ReadDir(f.rootPath) + if e == nil { + // cleanup old index versions + for _, d := range de { + if d.Name() != ftsVer { + os.RemoveAll(filepath.Join(f.rootPath, d.Name())) + } + } + } + } } else if err != nil { return } From de3a7975aa3c0bf0b9bab8c825c65ee209c12f1d Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Thu, 17 Feb 2022 17:20:14 +0300 Subject: [PATCH 49/49] reindex counters --- core/indexer/indexer.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/indexer/indexer.go b/core/indexer/indexer.go index a1b7cbe4a..0a7d98875 100644 --- a/core/indexer/indexer.go +++ b/core/indexer/indexer.go @@ -39,11 +39,11 @@ const ( CName = "indexer" // increasing counters below will trigger existing account to reindex their data - ForceThreadsObjectsReindexCounter int32 = 5 // reindex thread-based objects + ForceThreadsObjectsReindexCounter int32 = 6 // reindex thread-based objects ForceFilesReindexCounter int32 = 5 // reindex ipfs-file-based objects ForceBundledObjectsReindexCounter int32 = 3 // reindex objects like anytypeProfile ForceIdxRebuildCounter int32 = 12 // erases localstore indexes and reindex all type of objects (no need to increase ForceThreadsObjectsReindexCounter & ForceFilesReindexCounter) - ForceFulltextIndexCounter int32 = 4 // performs fulltext indexing for all type of objects (useful when we change fulltext config) + ForceFulltextIndexCounter int32 = 3 // performs fulltext indexing for all type of objects (useful when we change fulltext config) ) var log = logging.Logger("anytype-doc-indexer")