diff --git a/CHANGELOG.md b/CHANGELOG.md index d87cbd427a67..394aec26e92f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,6 +62,7 @@ older clients. * (client/keys) [\#5889](https://github.com/cosmos/cosmos-sdk/pull/5889) Remove `keys update` command. * (x/evidence) [\#5952](https://github.com/cosmos/cosmos-sdk/pull/5952) Remove CLI and REST handlers for querying `x/evidence` parameters. * (server) [\#5982](https://github.com/cosmos/cosmos-sdk/pull/5982) `--pruning` now must be set to `custom` if you want to customise the granular options. +* (x/gov) [\#7000](https://github.com/cosmos/cosmos-sdk/pull/7000) `ProposalStatus` is now JSON serialized using its protobuf name, so expect names like `PROPOSAL_STATUS_DEPOSIT_PERIOD` as opposed to `DepositPeriod`. ### API Breaking Changes @@ -153,6 +154,8 @@ be used to retrieve the actual proposal `Content`. Also the `NewMsgSubmitProposa * (crypto) [\#6780](https://github.com/cosmos/cosmos-sdk/issues/6780) Move ledger code to its own package. * (modules) [\#6834](https://github.com/cosmos/cosmos-sdk/issues/6834) Add `RegisterInterfaces` method to `AppModuleBasic` to support registration of protobuf interface types. * (modules) [\#6734](https://github.com/cosmos/cosmos-sdk/issues/6834) Add `TxEncodingConfig` parameter to `AppModuleBasic.ValidateGenesis` command to support JSON tx decoding in `genutil`. +* (genesis) [\#7000](https://github.com/cosmos/cosmos-sdk/pull/7000) The root `GenesisState` is now decoded using `encoding/json` instead of amino so `int64` and `uint64` types are now encoded as integers as opposed to strings. + ### Features diff --git a/go.sum b/go.sum index b7c6a06b91b4..9b4de11cec1b 100644 --- a/go.sum +++ b/go.sum @@ -41,8 +41,6 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC 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-metrics v0.3.3 h1:a9F4rlj7EWWrbj7BYw8J8+x+ZZkJeqzNyRk8hdPF+ro= -github.com/armon/go-metrics v0.3.3/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-metrics v0.3.4 h1:Xqf+7f2Vhl9tsqDYmXhnXInUdcrtgpRNpIA15/uldSc= github.com/armon/go-metrics v0.3.4/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= diff --git a/proto/cosmos/gov/v1beta1/gov.proto b/proto/cosmos/gov/v1beta1/gov.proto index c6c42d30c5cf..baa2e643363c 100644 --- a/proto/cosmos/gov/v1beta1/gov.proto +++ b/proto/cosmos/gov/v1beta1/gov.proto @@ -79,8 +79,6 @@ message Proposal { // ProposalStatus is a type alias that represents a proposal status as a byte enum ProposalStatus { - option (gogoproto.enum_stringer) = false; - option (gogoproto.goproto_enum_stringer) = false; option (gogoproto.goproto_enum_prefix) = false; // PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. diff --git a/server/export.go b/server/export.go index 5be74127d789..fed418b97a69 100644 --- a/server/export.go +++ b/server/export.go @@ -3,6 +3,7 @@ package server // DONTCOVER import ( + "encoding/json" "fmt" "io/ioutil" "os" @@ -10,9 +11,7 @@ import ( "github.com/spf13/cobra" tmtypes "github.com/tendermint/tendermint/types" - "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/server/types" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -29,9 +28,6 @@ func ExportCmd(appExporter types.AppExporter, defaultNodeHome string) *cobra.Com Use: "export", Short: "Export state to JSON", RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.GetClientContextFromCmd(cmd) - cdc := clientCtx.JSONMarshaler - serverCtx := GetServerContextFromCmd(cmd) config := serverCtx.Config @@ -94,7 +90,10 @@ func ExportCmd(appExporter types.AppExporter, defaultNodeHome string) *cobra.Com }, } - encoded, err := codec.MarshalJSONIndent(cdc, doc) + // NOTE: for now we're just using standard JSON marshaling for the root GenesisDoc. + // These types are in Tendermint, don't support proto and as far as we know, don't need it. + // All of the protobuf/amino state is inside AppState + encoded, err := json.MarshalIndent(doc, "", " ") if err != nil { return err } diff --git a/server/export_test.go b/server/export_test.go index 7b1df33fec80..585807812655 100644 --- a/server/export_test.go +++ b/server/export_test.go @@ -19,7 +19,6 @@ import ( "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/simapp" "github.com/cosmos/cosmos-sdk/testutil" "github.com/cosmos/cosmos-sdk/types/errors" @@ -36,14 +35,14 @@ func TestExportCmd_ConsensusParams(t *testing.T) { } db := dbm.NewMemDB() - app := simapp.NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, tempDir, 0) + app := simapp.NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, tempDir, 0, simapp.MakeEncodingConfig()) serverCtx := NewDefaultContext() serverCtx.Config.RootDir = tempDir - clientCtx := client.Context{}.WithJSONMarshaler(app.LegacyAmino()) + clientCtx := client.Context{}.WithJSONMarshaler(app.AppCodec()) - genDoc := newDefaultGenesisDoc(app.LegacyAmino()) + genDoc := newDefaultGenesisDoc() err = saveGenesisFile(genDoc, serverCtx.Config.GenesisFile()) app.InitChain( @@ -71,7 +70,7 @@ func TestExportCmd_ConsensusParams(t *testing.T) { require.NoError(t, cmd.ExecuteContext(ctx)) var exportedGenDoc tmtypes.GenesisDoc - err = app.LegacyAmino().UnmarshalJSON(output.Bytes(), &exportedGenDoc) + err = json.Unmarshal(output.Bytes(), &exportedGenDoc) if err != nil { t.Fatalf("error unmarshaling exported genesis doc: %s", err) } @@ -90,10 +89,10 @@ func createConfigFolder(dir string) error { return os.Mkdir(path.Join(dir, "config"), 0700) } -func newDefaultGenesisDoc(cdc *codec.LegacyAmino) *tmtypes.GenesisDoc { +func newDefaultGenesisDoc() *tmtypes.GenesisDoc { genesisState := simapp.NewDefaultGenesisState() - stateBytes, err := codec.MarshalJSONIndent(cdc, genesisState) + stateBytes, err := json.MarshalIndent(genesisState, "", " ") if err != nil { panic(err) } diff --git a/simapp/app.go b/simapp/app.go index 72894458f824..c8f81ea62f8f 100644 --- a/simapp/app.go +++ b/simapp/app.go @@ -4,8 +4,6 @@ import ( "io" "os" - "github.com/cosmos/cosmos-sdk/codec/types" - abci "github.com/tendermint/tendermint/abci/types" "github.com/tendermint/tendermint/libs/log" tmos "github.com/tendermint/tendermint/libs/os" @@ -14,7 +12,9 @@ import ( "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client/rpc" "github.com/cosmos/cosmos-sdk/codec" + "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/server/api" + simappparams "github.com/cosmos/cosmos-sdk/simapp/params" "github.com/cosmos/cosmos-sdk/std" "github.com/cosmos/cosmos-sdk/testutil/testdata" sdk "github.com/cosmos/cosmos-sdk/types" @@ -169,11 +169,10 @@ type SimApp struct { // NewSimApp returns a reference to an initialized SimApp. func NewSimApp( logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, skipUpgradeHeights map[int64]bool, - homePath string, invCheckPeriod uint, baseAppOptions ...func(*baseapp.BaseApp), + homePath string, invCheckPeriod uint, encodingConfig simappparams.EncodingConfig, baseAppOptions ...func(*baseapp.BaseApp), ) *SimApp { // TODO: Remove cdc in favor of appCodec once all modules are migrated. - encodingConfig := MakeEncodingConfig() appCodec := encodingConfig.Marshaler cdc := encodingConfig.Amino interfaceRegistry := encodingConfig.InterfaceRegistry @@ -417,7 +416,7 @@ func (app *SimApp) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.Re func (app *SimApp) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { var genesisState GenesisState app.cdc.MustUnmarshalJSON(req.AppStateBytes, &genesisState) - return app.mm.InitGenesis(ctx, app.cdc, genesisState) + return app.mm.InitGenesis(ctx, app.appCodec, genesisState) } // LoadHeight loads a particular height diff --git a/simapp/app_test.go b/simapp/app_test.go index 7481c5e36311..6d593f176fd1 100644 --- a/simapp/app_test.go +++ b/simapp/app_test.go @@ -15,7 +15,7 @@ import ( func TestSimAppExport(t *testing.T) { db := dbm.NewMemDB() - app := NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0) + app := NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0, MakeEncodingConfig()) genesisState := NewDefaultGenesisState() stateBytes, err := codec.MarshalJSONIndent(app.LegacyAmino(), genesisState) @@ -31,7 +31,7 @@ func TestSimAppExport(t *testing.T) { app.Commit() // Making a new app object with the db, so that initchain hasn't been called - app2 := NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0) + app2 := NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0, MakeEncodingConfig()) _, _, _, err = app2.ExportAppStateAndValidators(false, []string{}) require.NoError(t, err, "ExportAppStateAndValidators should not have an error") } @@ -39,7 +39,7 @@ func TestSimAppExport(t *testing.T) { // ensure that blocked addresses are properly set in bank keeper func TestBlockedAddrs(t *testing.T) { db := dbm.NewMemDB() - app := NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0) + app := NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0, MakeEncodingConfig()) for acc := range maccPerms { require.Equal(t, !allowedReceivingModAcc[acc], app.BankKeeper.BlockedAddr(app.AccountKeeper.GetModuleAddress(acc))) diff --git a/simapp/export.go b/simapp/export.go index 363bc13954a5..673130658534 100644 --- a/simapp/export.go +++ b/simapp/export.go @@ -7,7 +7,6 @@ import ( abci "github.com/tendermint/tendermint/abci/types" tmtypes "github.com/tendermint/tendermint/types" - "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" "github.com/cosmos/cosmos-sdk/x/staking" @@ -28,8 +27,8 @@ func (app *SimApp) ExportAppStateAndValidators( app.prepForZeroHeightGenesis(ctx, jailWhiteList) } - genState := app.mm.ExportGenesis(ctx, app.cdc) - appState, err = codec.MarshalJSONIndent(app.cdc, genState) + genState := app.mm.ExportGenesis(ctx, app.appCodec) + appState, err = json.MarshalIndent(genState, "", " ") if err != nil { return nil, nil, nil, err } diff --git a/simapp/genesis.go b/simapp/genesis.go index d3ff8cda93a4..5a8f18b1aae4 100644 --- a/simapp/genesis.go +++ b/simapp/genesis.go @@ -2,8 +2,6 @@ package simapp import ( "encoding/json" - - "github.com/cosmos/cosmos-sdk/std" ) // The genesis state of the blockchain is represented here as a map of raw json @@ -17,6 +15,6 @@ type GenesisState map[string]json.RawMessage // NewDefaultGenesisState generates the default state for the application. func NewDefaultGenesisState() GenesisState { - cdc := std.MakeCodec(ModuleBasics) - return ModuleBasics.DefaultGenesis(cdc) + encCfg := MakeEncodingConfig() + return ModuleBasics.DefaultGenesis(encCfg.Marshaler) } diff --git a/simapp/sim_bench_test.go b/simapp/sim_bench_test.go index d60dc5265ddf..902e6184b850 100644 --- a/simapp/sim_bench_test.go +++ b/simapp/sim_bench_test.go @@ -26,7 +26,7 @@ func BenchmarkFullAppSimulation(b *testing.B) { } }() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, interBlockCacheOpt()) + app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), interBlockCacheOpt()) // run randomized simulation _, simParams, simErr := simulation.SimulateFromSeed( @@ -65,7 +65,7 @@ func BenchmarkInvariants(b *testing.B) { } }() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, interBlockCacheOpt()) + app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), interBlockCacheOpt()) // run randomized simulation _, simParams, simErr := simulation.SimulateFromSeed( diff --git a/simapp/sim_test.go b/simapp/sim_test.go index 7d84072f8a12..217446baaaa3 100644 --- a/simapp/sim_test.go +++ b/simapp/sim_test.go @@ -67,7 +67,7 @@ func TestFullAppSimulation(t *testing.T) { require.NoError(t, os.RemoveAll(dir)) }() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, fauxMerkleModeOpt) + app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), fauxMerkleModeOpt) require.Equal(t, "SimApp", app.Name()) // run randomized simulation @@ -99,7 +99,7 @@ func TestAppImportExport(t *testing.T) { require.NoError(t, os.RemoveAll(dir)) }() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, fauxMerkleModeOpt) + app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), fauxMerkleModeOpt) require.Equal(t, "SimApp", app.Name()) // Run randomized simulation @@ -133,7 +133,7 @@ func TestAppImportExport(t *testing.T) { require.NoError(t, os.RemoveAll(newDir)) }() - newApp := NewSimApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, fauxMerkleModeOpt) + newApp := NewSimApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), fauxMerkleModeOpt) require.Equal(t, "SimApp", newApp.Name()) var genesisState GenesisState @@ -190,7 +190,7 @@ func TestAppSimulationAfterImport(t *testing.T) { require.NoError(t, os.RemoveAll(dir)) }() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, fauxMerkleModeOpt) + app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), fauxMerkleModeOpt) require.Equal(t, "SimApp", app.Name()) // Run randomized simulation @@ -229,7 +229,7 @@ func TestAppSimulationAfterImport(t *testing.T) { require.NoError(t, os.RemoveAll(newDir)) }() - newApp := NewSimApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, fauxMerkleModeOpt) + newApp := NewSimApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), fauxMerkleModeOpt) require.Equal(t, "SimApp", newApp.Name()) newApp.InitChain(abci.RequestInitChain{ @@ -274,7 +274,7 @@ func TestAppStateDeterminism(t *testing.T) { } db := dbm.NewMemDB() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, interBlockCacheOpt()) + app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), interBlockCacheOpt()) fmt.Printf( "running non-determinism simulation; seed %d: %d/%d, attempt: %d/%d\n", diff --git a/simapp/simd/cmd/root.go b/simapp/simd/cmd/root.go index 22d45cb389d3..1257648040ff 100644 --- a/simapp/simd/cmd/root.go +++ b/simapp/simd/cmd/root.go @@ -6,6 +6,8 @@ import ( "io" "os" + "github.com/cosmos/cosmos-sdk/codec" + "github.com/spf13/cast" "github.com/spf13/cobra" abci "github.com/tendermint/tendermint/abci/types" @@ -77,12 +79,12 @@ func init() { authclient.Codec = encodingConfig.Marshaler rootCmd.AddCommand( - genutilcli.InitCmd(simapp.ModuleBasics, simapp.DefaultNodeHome), - genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, simapp.DefaultNodeHome), + withProtoJSON(genutilcli.InitCmd(simapp.ModuleBasics, simapp.DefaultNodeHome)), + withProtoJSON(genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, simapp.DefaultNodeHome)), genutilcli.MigrateGenesisCmd(), - genutilcli.GenTxCmd(simapp.ModuleBasics, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, simapp.DefaultNodeHome), - genutilcli.ValidateGenesisCmd(simapp.ModuleBasics, encodingConfig.TxConfig), - AddGenesisAccountCmd(simapp.DefaultNodeHome), + withProtoJSON(genutilcli.GenTxCmd(simapp.ModuleBasics, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, simapp.DefaultNodeHome)), + withProtoJSON(genutilcli.ValidateGenesisCmd(simapp.ModuleBasics, encodingConfig.TxConfig)), + withProtoJSON(AddGenesisAccountCmd(simapp.DefaultNodeHome)), tmcli.NewCompletionCmd(rootCmd, true), testnetCmd(simapp.ModuleBasics, banktypes.GenesisBalancesIterator{}), debug.Cmd(), @@ -171,6 +173,7 @@ func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts serverty logger, db, traceStore, true, skipUpgradeHeights, cast.ToString(appOpts.Get(flags.FlagHome)), cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)), + encodingConfig, baseapp.SetPruning(pruningOpts), baseapp.SetMinGasPrices(cast.ToString(appOpts.Get(server.FlagMinGasPrices))), baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(server.FlagHaltHeight))), @@ -184,16 +187,42 @@ func exportAppStateAndTMValidators( logger log.Logger, db dbm.DB, traceStore io.Writer, height int64, forZeroHeight bool, jailWhiteList []string, ) (json.RawMessage, []tmtypes.GenesisValidator, *abci.ConsensusParams, error) { + encCfg := simapp.MakeEncodingConfig() + encCfg.Marshaler = codec.NewProtoCodec(encCfg.InterfaceRegistry) var simApp *simapp.SimApp if height != -1 { - simApp = simapp.NewSimApp(logger, db, traceStore, false, map[int64]bool{}, "", uint(1)) + simApp = simapp.NewSimApp(logger, db, traceStore, false, map[int64]bool{}, "", uint(1), encCfg) if err := simApp.LoadHeight(height); err != nil { return nil, nil, nil, err } } else { - simApp = simapp.NewSimApp(logger, db, traceStore, true, map[int64]bool{}, "", uint(1)) + simApp = simapp.NewSimApp(logger, db, traceStore, true, map[int64]bool{}, "", uint(1), encCfg) } return simApp.ExportAppStateAndValidators(forZeroHeight, jailWhiteList) } + +// This is a temporary command middleware to enable proto JSON marshaling for testing. +// Once proto JSON works everywhere we can remove this and set ProtoCodec as default +func withProtoJSON(command *cobra.Command) *cobra.Command { + existing := command.PersistentPreRunE + if existing != nil { + command.PersistentPreRunE = func(cmd *cobra.Command, args []string) error { + err := existing(cmd, args) + if err != nil { + return err + } + return setProtoJSON(cmd, args) + } + } else { + command.PersistentPreRunE = setProtoJSON + } + return command +} + +func setProtoJSON(cmd *cobra.Command, _ []string) error { + clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx = clientCtx.WithJSONMarshaler(codec.NewProtoCodec(clientCtx.InterfaceRegistry)) + return client.SetCmdClientContext(cmd, clientCtx) +} diff --git a/simapp/test_helpers.go b/simapp/test_helpers.go index 2f12ccaafc49..0ec48a9bef5e 100644 --- a/simapp/test_helpers.go +++ b/simapp/test_helpers.go @@ -3,6 +3,7 @@ package simapp import ( "bytes" "encoding/hex" + "encoding/json" "fmt" "strconv" "testing" @@ -48,7 +49,7 @@ var DefaultConsensusParams = &abci.ConsensusParams{ // Setup initializes a new SimApp. A Nop logger is set in SimApp. func Setup(isCheckTx bool) *SimApp { db := dbm.NewMemDB() - app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 5) + app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 5, MakeEncodingConfig()) if !isCheckTx { // init chain must be called to stop deliverState from being nil genesisState := NewDefaultGenesisState() @@ -76,7 +77,7 @@ func Setup(isCheckTx bool) *SimApp { // account. A Nop logger is set in SimApp. func SetupWithGenesisValSet(t *testing.T, valSet *tmtypes.ValidatorSet, genAccs []authtypes.GenesisAccount, balances ...banktypes.Balance) *SimApp { db := dbm.NewMemDB() - app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 5) + app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 5, MakeEncodingConfig()) genesisState := NewDefaultGenesisState() @@ -150,13 +151,13 @@ func SetupWithGenesisValSet(t *testing.T, valSet *tmtypes.ValidatorSet, genAccs // accounts and possible balances. func SetupWithGenesisAccounts(genAccs []authtypes.GenesisAccount, balances ...banktypes.Balance) *SimApp { db := dbm.NewMemDB() - app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0) + app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0, MakeEncodingConfig()) // initialize the chain with the passed in genesis accounts genesisState := NewDefaultGenesisState() authGenesis := authtypes.NewGenesisState(authtypes.DefaultParams(), genAccs) - genesisState[authtypes.ModuleName] = app.LegacyAmino().MustMarshalJSON(authGenesis) + genesisState[authtypes.ModuleName] = app.AppCodec().MustMarshalJSON(authGenesis) totalSupply := sdk.NewCoins() for _, b := range balances { @@ -164,9 +165,9 @@ func SetupWithGenesisAccounts(genAccs []authtypes.GenesisAccount, balances ...ba } bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{}) - genesisState[banktypes.ModuleName] = app.LegacyAmino().MustMarshalJSON(bankGenesis) + genesisState[banktypes.ModuleName] = app.AppCodec().MustMarshalJSON(bankGenesis) - stateBytes, err := codec.MarshalJSONIndent(app.LegacyAmino(), genesisState) + stateBytes, err := json.MarshalIndent(genesisState, "", " ") if err != nil { panic(err) } diff --git a/testutil/network/network.go b/testutil/network/network.go index 71a7bc7d5059..67c68e462bca 100644 --- a/testutil/network/network.go +++ b/testutil/network/network.go @@ -53,6 +53,7 @@ type AppConstructor = func(val Validator) servertypes.Application func NewSimApp(val Validator) servertypes.Application { return simapp.NewSimApp( val.Ctx.Logger, dbm.NewMemDB(), nil, true, make(map[int64]bool), val.Ctx.Config.RootDir, 0, + simapp.MakeEncodingConfig(), baseapp.SetPruning(storetypes.NewPruningOptionsFromString(val.AppConfig.Pruning)), baseapp.SetMinGasPrices(val.AppConfig.MinGasPrices), ) diff --git a/testutil/network/util.go b/testutil/network/util.go index 59ec3dca4394..952f7a8d0d55 100644 --- a/testutil/network/util.go +++ b/testutil/network/util.go @@ -1,6 +1,7 @@ package network import ( + "encoding/json" "path/filepath" "time" @@ -13,7 +14,6 @@ import ( "github.com/tendermint/tendermint/types" tmtime "github.com/tendermint/tendermint/types/time" - "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/server/api" servergrpc "github.com/cosmos/cosmos-sdk/server/grpc" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -142,16 +142,16 @@ func initGenFiles(cfg Config, genAccounts []authtypes.GenesisAccount, genBalance } authGenState.Accounts = accounts - cfg.GenesisState[authtypes.ModuleName] = cfg.Codec.MustMarshalJSON(authGenState) + cfg.GenesisState[authtypes.ModuleName] = cfg.Codec.MustMarshalJSON(&authGenState) // set the balances in the genesis state var bankGenState banktypes.GenesisState cfg.Codec.MustUnmarshalJSON(cfg.GenesisState[banktypes.ModuleName], &bankGenState) bankGenState.Balances = genBalances - cfg.GenesisState[banktypes.ModuleName] = cfg.Codec.MustMarshalJSON(bankGenState) + cfg.GenesisState[banktypes.ModuleName] = cfg.Codec.MustMarshalJSON(&bankGenState) - appGenStateJSON, err := codec.MarshalJSONIndent(cfg.Codec, cfg.GenesisState) + appGenStateJSON, err := json.MarshalIndent(cfg.GenesisState, "", " ") if err != nil { return err } diff --git a/x/auth/genesis.go b/x/auth/genesis.go index a0a2a96001d7..851b588083d4 100644 --- a/x/auth/genesis.go +++ b/x/auth/genesis.go @@ -28,7 +28,7 @@ func InitGenesis(ctx sdk.Context, ak keeper.AccountKeeper, data types.GenesisSta } // ExportGenesis returns a GenesisState for a given context and keeper -func ExportGenesis(ctx sdk.Context, ak keeper.AccountKeeper) types.GenesisState { +func ExportGenesis(ctx sdk.Context, ak keeper.AccountKeeper) *types.GenesisState { params := ak.GetParams(ctx) var genAccounts types.GenesisAccounts diff --git a/x/auth/types/codec.go b/x/auth/types/codec.go index 7b51fd94a2e8..f309c9c78909 100644 --- a/x/auth/types/codec.go +++ b/x/auth/types/codec.go @@ -26,6 +26,13 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &BaseAccount{}, &ModuleAccount{}, ) + + registry.RegisterInterface( + "cosmos.auth.GenesisAccount", + (*GenesisAccount)(nil), + &BaseAccount{}, + &ModuleAccount{}, + ) } // RegisterKeyTypeCodec registers an external concrete type defined in @@ -37,7 +44,7 @@ func RegisterKeyTypeCodec(o interface{}, name string) { var ( amino = codec.New() - ModuleCdc = codec.NewHybridCodec(amino, types.NewInterfaceRegistry()) + ModuleCdc = codec.NewAminoCodec(amino) ) func init() { diff --git a/x/auth/types/common_test.go b/x/auth/types/common_test.go index 4f361059ad3c..5c6ff0fb6488 100644 --- a/x/auth/types/common_test.go +++ b/x/auth/types/common_test.go @@ -5,6 +5,6 @@ import ( ) var ( - app = simapp.Setup(false) - appCodec, _ = simapp.MakeCodecs() + app = simapp.Setup(false) + appCodec, legacyAmino = simapp.MakeCodecs() ) diff --git a/x/auth/types/genesis.go b/x/auth/types/genesis.go index 51e7871500c2..9dc9e3323b11 100644 --- a/x/auth/types/genesis.go +++ b/x/auth/types/genesis.go @@ -14,12 +14,12 @@ import ( var _ types.UnpackInterfacesMessage = GenesisState{} // NewGenesisState - Create a new genesis state -func NewGenesisState(params Params, accounts GenesisAccounts) GenesisState { +func NewGenesisState(params Params, accounts GenesisAccounts) *GenesisState { genAccounts, err := PackAccounts(accounts) if err != nil { panic(err) } - return GenesisState{ + return &GenesisState{ Params: params, Accounts: genAccounts, } @@ -38,7 +38,7 @@ func (g GenesisState) UnpackInterfaces(unpacker types.AnyUnpacker) error { } // DefaultGenesisState - Return a default genesis state -func DefaultGenesisState() GenesisState { +func DefaultGenesisState() *GenesisState { return NewGenesisState(DefaultParams(), GenesisAccounts{}) } diff --git a/x/auth/vesting/types/codec.go b/x/auth/vesting/types/codec.go index 6f22a9f4bc96..4edd9acdebd1 100644 --- a/x/auth/vesting/types/codec.go +++ b/x/auth/vesting/types/codec.go @@ -27,12 +27,20 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &DelayedVestingAccount{}, &PeriodicVestingAccount{}, ) + registry.RegisterImplementations( (*authtypes.AccountI)(nil), &DelayedVestingAccount{}, &ContinuousVestingAccount{}, &PeriodicVestingAccount{}, ) + + registry.RegisterImplementations( + (*authtypes.GenesisAccount)(nil), + &DelayedVestingAccount{}, + &ContinuousVestingAccount{}, + &PeriodicVestingAccount{}, + ) } var amino = codec.New() diff --git a/x/bank/keeper/genesis.go b/x/bank/keeper/genesis.go index 185084f62088..35dea7068bf0 100644 --- a/x/bank/keeper/genesis.go +++ b/x/bank/keeper/genesis.go @@ -34,7 +34,7 @@ func (k BaseKeeper) InitGenesis(ctx sdk.Context, genState types.GenesisState) { } // ExportGenesis returns the bank module's genesis state. -func (k BaseKeeper) ExportGenesis(ctx sdk.Context) types.GenesisState { +func (k BaseKeeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { return types.NewGenesisState( k.GetParams(ctx), k.GetAccountsBalances(ctx), diff --git a/x/bank/keeper/keeper.go b/x/bank/keeper/keeper.go index 0856df181b92..9a1dc2fcc493 100644 --- a/x/bank/keeper/keeper.go +++ b/x/bank/keeper/keeper.go @@ -23,7 +23,7 @@ type Keeper interface { SendKeeper InitGenesis(sdk.Context, types.GenesisState) - ExportGenesis(sdk.Context) types.GenesisState + ExportGenesis(sdk.Context) *types.GenesisState GetSupply(ctx sdk.Context) exported.SupplyI SetSupply(ctx sdk.Context, supply exported.SupplyI) diff --git a/x/bank/types/genesis.go b/x/bank/types/genesis.go index b81948c54cb3..cc70b8c572b3 100644 --- a/x/bank/types/genesis.go +++ b/x/bank/types/genesis.go @@ -46,8 +46,8 @@ func ValidateGenesis(data GenesisState) error { } // NewGenesisState creates a new genesis state. -func NewGenesisState(params Params, balances []Balance, supply sdk.Coins, denomMetaData []Metadata) GenesisState { - return GenesisState{ +func NewGenesisState(params Params, balances []Balance, supply sdk.Coins, denomMetaData []Metadata) *GenesisState { + return &GenesisState{ Params: params, Balances: balances, Supply: supply, @@ -56,20 +56,20 @@ func NewGenesisState(params Params, balances []Balance, supply sdk.Coins, denomM } // DefaultGenesisState returns a default bank module genesis state. -func DefaultGenesisState() GenesisState { +func DefaultGenesisState() *GenesisState { return NewGenesisState(DefaultParams(), []Balance{}, DefaultSupply().GetTotal(), []Metadata{}) } // GetGenesisStateFromAppState returns x/bank GenesisState given raw application // genesis state. -func GetGenesisStateFromAppState(cdc codec.JSONMarshaler, appState map[string]json.RawMessage) GenesisState { +func GetGenesisStateFromAppState(cdc codec.JSONMarshaler, appState map[string]json.RawMessage) *GenesisState { var genesisState GenesisState if appState[ModuleName] != nil { cdc.MustUnmarshalJSON(appState[ModuleName], &genesisState) } - return genesisState + return &genesisState } // GenesisAccountIterator implements genesis account iteration. diff --git a/x/capability/genesis.go b/x/capability/genesis.go index 3122a2a55d0c..d733efa86b58 100644 --- a/x/capability/genesis.go +++ b/x/capability/genesis.go @@ -19,7 +19,7 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, genState types.GenesisState) } // ExportGenesis returns the capability module's exported genesis. -func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { +func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { index := k.GetLatestIndex(ctx) owners := []types.GenesisOwners{} @@ -36,7 +36,7 @@ func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { owners = append(owners, genOwner) } - return types.GenesisState{ + return &types.GenesisState{ Index: index, Owners: owners, } diff --git a/x/capability/types/genesis.go b/x/capability/types/genesis.go index 609de701b81b..95a734826b80 100644 --- a/x/capability/types/genesis.go +++ b/x/capability/types/genesis.go @@ -9,8 +9,8 @@ import ( const DefaultIndex uint64 = 1 // DefaultGenesis returns the default Capability genesis state -func DefaultGenesis() GenesisState { - return GenesisState{ +func DefaultGenesis() *GenesisState { + return &GenesisState{ Index: DefaultIndex, Owners: []GenesisOwners{}, } diff --git a/x/capability/types/genesis_test.go b/x/capability/types/genesis_test.go index 5741de1ac2cf..0820ba4a3669 100644 --- a/x/capability/types/genesis_test.go +++ b/x/capability/types/genesis_test.go @@ -120,7 +120,7 @@ func TestValidateGenesis(t *testing.T) { for _, tc := range testCases { tc := tc genState := DefaultGenesis() - tc.malleate(&genState) + tc.malleate(genState) err := genState.Validate() if tc.expPass { require.NoError(t, err, tc.name) diff --git a/x/crisis/handler_test.go b/x/crisis/handler_test.go index bd2752704e02..969788468344 100644 --- a/x/crisis/handler_test.go +++ b/x/crisis/handler_test.go @@ -28,7 +28,7 @@ var ( func createTestApp() (*simapp.SimApp, sdk.Context, []sdk.AccAddress) { db := dbm.NewMemDB() - app := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, simapp.DefaultNodeHome, 1) + app := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, simapp.DefaultNodeHome, 1, simapp.MakeEncodingConfig()) ctx := app.NewContext(true, abci.Header{}) constantFee := sdk.NewInt64Coin(sdk.DefaultBondDenom, 10) diff --git a/x/crisis/keeper/genesis.go b/x/crisis/keeper/genesis.go index 2426217ed285..8420201d4e96 100644 --- a/x/crisis/keeper/genesis.go +++ b/x/crisis/keeper/genesis.go @@ -6,12 +6,12 @@ import ( ) // new crisis genesis -func (k Keeper) InitGenesis(ctx sdk.Context, data types.GenesisState) { +func (k Keeper) InitGenesis(ctx sdk.Context, data *types.GenesisState) { k.SetConstantFee(ctx, data.ConstantFee) } // ExportGenesis returns a GenesisState for a given context and keeper. -func (k Keeper) ExportGenesis(ctx sdk.Context) types.GenesisState { +func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { constantFee := k.GetConstantFee(ctx) return types.NewGenesisState(constantFee) } diff --git a/x/crisis/module.go b/x/crisis/module.go index fc48a078fe07..97f6a10d6767 100644 --- a/x/crisis/module.go +++ b/x/crisis/module.go @@ -50,7 +50,7 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONMarshaler, config client.TxE return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } - return types.ValidateGenesis(data) + return types.ValidateGenesis(&data) } // RegisterRESTRoutes registers no REST routes for the crisis module. @@ -118,7 +118,7 @@ func (am AppModule) RegisterQueryService(grpc.Server) {} func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, data json.RawMessage) []abci.ValidatorUpdate { var genesisState types.GenesisState cdc.MustUnmarshalJSON(data, &genesisState) - am.keeper.InitGenesis(ctx, genesisState) + am.keeper.InitGenesis(ctx, &genesisState) am.keeper.AssertInvariants(ctx) return []abci.ValidatorUpdate{} } diff --git a/x/crisis/types/genesis.go b/x/crisis/types/genesis.go index 3de8ab6ff817..f53099130277 100644 --- a/x/crisis/types/genesis.go +++ b/x/crisis/types/genesis.go @@ -7,21 +7,21 @@ import ( ) // NewGenesisState creates a new GenesisState object -func NewGenesisState(constantFee sdk.Coin) GenesisState { - return GenesisState{ +func NewGenesisState(constantFee sdk.Coin) *GenesisState { + return &GenesisState{ ConstantFee: constantFee, } } // DefaultGenesisState creates a default GenesisState object -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ ConstantFee: sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1000)), } } // ValidateGenesis - validate crisis genesis data -func ValidateGenesis(data GenesisState) error { +func ValidateGenesis(data *GenesisState) error { if !data.ConstantFee.IsPositive() { return fmt.Errorf("constant fee must be positive: %s", data.ConstantFee) } diff --git a/x/distribution/keeper/genesis.go b/x/distribution/keeper/genesis.go index 8b8e19ff0a71..54c70c9f66c5 100644 --- a/x/distribution/keeper/genesis.go +++ b/x/distribution/keeper/genesis.go @@ -60,7 +60,7 @@ func (k Keeper) InitGenesis(ctx sdk.Context, data types.GenesisState) { } // ExportGenesis returns a GenesisState for a given context and keeper. -func (k Keeper) ExportGenesis(ctx sdk.Context) types.GenesisState { +func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { feePool := k.GetFeePool(ctx) params := k.GetParams(ctx) diff --git a/x/distribution/module.go b/x/distribution/module.go index 196c2ae2d8df..ca20c9e0ba9e 100644 --- a/x/distribution/module.go +++ b/x/distribution/module.go @@ -59,7 +59,7 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONMarshaler, config sdkclient. return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } - return types.ValidateGenesis(data) + return types.ValidateGenesis(&data) } // RegisterRESTRoutes registers the REST routes for the distribution module. diff --git a/x/distribution/types/genesis.go b/x/distribution/types/genesis.go index 3caaa9a91b00..b7e6aaa62862 100644 --- a/x/distribution/types/genesis.go +++ b/x/distribution/types/genesis.go @@ -8,9 +8,9 @@ func NewGenesisState( params Params, fp FeePool, dwis []DelegatorWithdrawInfo, pp sdk.ConsAddress, r []ValidatorOutstandingRewardsRecord, acc []ValidatorAccumulatedCommissionRecord, historical []ValidatorHistoricalRewardsRecord, cur []ValidatorCurrentRewardsRecord, dels []DelegatorStartingInfoRecord, slashes []ValidatorSlashEventRecord, -) GenesisState { +) *GenesisState { - return GenesisState{ + return &GenesisState{ Params: params, FeePool: fp, DelegatorWithdrawInfos: dwis, @@ -25,8 +25,8 @@ func NewGenesisState( } // get raw genesis raw message for testing -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ FeePool: InitialFeePool(), Params: DefaultParams(), DelegatorWithdrawInfos: []DelegatorWithdrawInfo{}, @@ -41,7 +41,7 @@ func DefaultGenesisState() GenesisState { } // ValidateGenesis validates the genesis state of distribution genesis input -func ValidateGenesis(gs GenesisState) error { +func ValidateGenesis(gs *GenesisState) error { if err := gs.Params.ValidateBasic(); err != nil { return err } diff --git a/x/evidence/genesis.go b/x/evidence/genesis.go index 6ca5d4315812..2be3fee88276 100644 --- a/x/evidence/genesis.go +++ b/x/evidence/genesis.go @@ -14,7 +14,7 @@ import ( // InitGenesis initializes the evidence module's state from a provided genesis // state. -func InitGenesis(ctx sdk.Context, k keeper.Keeper, gs types.GenesisState) { +func InitGenesis(ctx sdk.Context, k keeper.Keeper, gs *types.GenesisState) { if err := gs.Validate(); err != nil { panic(fmt.Sprintf("failed to validate %s genesis state: %s", types.ModuleName, err)) } @@ -33,7 +33,7 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, gs types.GenesisState) { } // ExportGenesis returns the evidence module's exported genesis. -func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { +func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { e := k.GetAllEvidence(ctx) evidence := make([]*codectypes.Any, len(e)) for i, evi := range e { @@ -47,7 +47,7 @@ func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { } evidence[i] = any } - return types.GenesisState{ + return &types.GenesisState{ Evidence: evidence, } } diff --git a/x/evidence/genesis_test.go b/x/evidence/genesis_test.go index 866da26f9a59..28da9c49bc59 100644 --- a/x/evidence/genesis_test.go +++ b/x/evidence/genesis_test.go @@ -34,7 +34,7 @@ func (suite *GenesisTestSuite) SetupTest() { func (suite *GenesisTestSuite) TestInitGenesis() { var ( - genesisState types.GenesisState + genesisState *types.GenesisState testEvidence []exported.Evidence pk = ed25519.GenPrivKey() ) diff --git a/x/evidence/module.go b/x/evidence/module.go index b3aebb1f64e3..9867b692bc43 100644 --- a/x/evidence/module.go +++ b/x/evidence/module.go @@ -160,7 +160,7 @@ func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, bz jso panic(fmt.Sprintf("failed to unmarshal %s genesis state: %s", types.ModuleName, err)) } - InitGenesis(ctx, am.keeper, gs) + InitGenesis(ctx, am.keeper, &gs) return []abci.ValidatorUpdate{} } diff --git a/x/evidence/types/genesis.go b/x/evidence/types/genesis.go index 4ccd924c4b4e..b274ea20714f 100644 --- a/x/evidence/types/genesis.go +++ b/x/evidence/types/genesis.go @@ -12,7 +12,7 @@ import ( var _ types.UnpackInterfacesMessage = GenesisState{} // NewGenesisState creates a new genesis state for the evidence module. -func NewGenesisState(e []exported.Evidence) GenesisState { +func NewGenesisState(e []exported.Evidence) *GenesisState { evidence := make([]*types.Any, len(e)) for i, evi := range e { msg, ok := evi.(proto.Message) @@ -25,14 +25,14 @@ func NewGenesisState(e []exported.Evidence) GenesisState { } evidence[i] = any } - return GenesisState{ + return &GenesisState{ Evidence: evidence, } } // DefaultGenesisState returns the evidence module's default genesis state. -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ Evidence: []*types.Any{}, } } diff --git a/x/evidence/types/genesis_test.go b/x/evidence/types/genesis_test.go index 4aed3366eb31..b8b8ee0e1a16 100644 --- a/x/evidence/types/genesis_test.go +++ b/x/evidence/types/genesis_test.go @@ -59,7 +59,7 @@ func TestNewGenesisState(t *testing.T) { func TestGenesisStateValidate(t *testing.T) { var ( - genesisState types.GenesisState + genesisState *types.GenesisState testEvidence []exported.Evidence pk = ed25519.GenPrivKey() ) @@ -104,7 +104,7 @@ func TestGenesisStateValidate(t *testing.T) { { "expected evidence", func() { - genesisState = types.GenesisState{ + genesisState = &types.GenesisState{ Evidence: []*codectypes.Any{{}}, } }, diff --git a/x/genutil/client/cli/gentx.go b/x/genutil/client/cli/gentx.go index f99303cc29c9..b151290e5dfd 100644 --- a/x/genutil/client/cli/gentx.go +++ b/x/genutil/client/cli/gentx.go @@ -88,7 +88,7 @@ $ %s gentx my-key-name --home=/path/to/home/dir --keyring-backend=os --chain-id= } var genesisState map[string]json.RawMessage - if err = cdc.UnmarshalJSON(genDoc.AppState, &genesisState); err != nil { + if err = json.Unmarshal(genDoc.AppState, &genesisState); err != nil { return errors.Wrap(err, "failed to unmarshal genesis state") } diff --git a/x/genutil/client/rest/query.go b/x/genutil/client/rest/query.go index a53de65fdb4f..e66071a871e5 100644 --- a/x/genutil/client/rest/query.go +++ b/x/genutil/client/rest/query.go @@ -22,7 +22,7 @@ func QueryGenesisTxs(clientCtx client.Context, w http.ResponseWriter) { return } - appState, err := types.GenesisStateFromGenDoc(clientCtx.LegacyAmino, *resultGenesis.Genesis) + appState, err := types.GenesisStateFromGenDoc(*resultGenesis.Genesis) if err != nil { rest.WriteErrorResponse( w, http.StatusInternalServerError, diff --git a/x/genutil/collect.go b/x/genutil/collect.go index d1d69c8d9902..24def89162c6 100644 --- a/x/genutil/collect.go +++ b/x/genutil/collect.go @@ -45,7 +45,7 @@ func GenAppStateFromConfig(cdc codec.JSONMarshaler, txEncodingConfig client.TxEn } // create the app state - appGenesisState, err := types.GenesisStateFromGenDoc(cdc, genDoc) + appGenesisState, err := types.GenesisStateFromGenDoc(genDoc) if err != nil { return appState, err } @@ -55,7 +55,7 @@ func GenAppStateFromConfig(cdc codec.JSONMarshaler, txEncodingConfig client.TxEn return appState, err } - appState, err = codec.MarshalJSONIndent(cdc, appGenesisState) + appState, err = json.MarshalIndent(appGenesisState, "", " ") if err != nil { return appState, err } @@ -81,7 +81,7 @@ func CollectTxs(cdc codec.JSONMarshaler, txJSONDecoder sdk.TxDecoder, moniker, g // prepare a map of all balances in genesis state to then validate // against the validators addresses var appState map[string]json.RawMessage - if err := cdc.UnmarshalJSON(genDoc.AppState, &appState); err != nil { + if err := json.Unmarshal(genDoc.AppState, &appState); err != nil { return appGenTxs, persistentPeers, err } diff --git a/x/genutil/module.go b/x/genutil/module.go index c4a2b073b444..4be57bf7ff64 100644 --- a/x/genutil/module.go +++ b/x/genutil/module.go @@ -49,7 +49,7 @@ func (b AppModuleBasic) ValidateGenesis(cdc codec.JSONMarshaler, txEncodingConfi return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } - return types.ValidateGenesis(data, txEncodingConfig.TxJSONDecoder()) + return types.ValidateGenesis(&data, txEncodingConfig.TxJSONDecoder()) } // RegisterRESTRoutes registers the REST routes for the genutil module. diff --git a/x/genutil/types/genesis_state.go b/x/genutil/types/genesis_state.go index 971b6dbe0581..a7915b717ff1 100644 --- a/x/genutil/types/genesis_state.go +++ b/x/genutil/types/genesis_state.go @@ -14,26 +14,26 @@ import ( ) // NewGenesisState creates a new GenesisState object -func NewGenesisState(genTxs []json.RawMessage) GenesisState { +func NewGenesisState(genTxs []json.RawMessage) *GenesisState { // Ensure genTxs is never nil, https://github.com/cosmos/cosmos-sdk/issues/5086 if len(genTxs) == 0 { genTxs = make([]json.RawMessage, 0) } - return GenesisState{ + return &GenesisState{ GenTxs: genTxs, } } // DefaultGenesisState returns the genutil module's default genesis state. -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ GenTxs: []json.RawMessage{}, } } // NewGenesisStateFromTx creates a new GenesisState object // from auth transactions -func NewGenesisStateFromTx(txJSONEncoder sdk.TxEncoder, genTxs []sdk.Tx) GenesisState { +func NewGenesisStateFromTx(txJSONEncoder sdk.TxEncoder, genTxs []sdk.Tx) *GenesisState { genTxsBz := make([]json.RawMessage, len(genTxs)) for i, genTx := range genTxs { var err error @@ -46,17 +46,17 @@ func NewGenesisStateFromTx(txJSONEncoder sdk.TxEncoder, genTxs []sdk.Tx) Genesis } // GetGenesisStateFromAppState gets the genutil genesis state from the expected app state -func GetGenesisStateFromAppState(cdc codec.JSONMarshaler, appState map[string]json.RawMessage) GenesisState { +func GetGenesisStateFromAppState(cdc codec.JSONMarshaler, appState map[string]json.RawMessage) *GenesisState { var genesisState GenesisState if appState[ModuleName] != nil { cdc.MustUnmarshalJSON(appState[ModuleName], &genesisState) } - return genesisState + return &genesisState } // SetGenesisStateInAppState sets the genutil genesis state within the expected app state func SetGenesisStateInAppState( - cdc codec.JSONMarshaler, appState map[string]json.RawMessage, genesisState GenesisState, + cdc codec.JSONMarshaler, appState map[string]json.RawMessage, genesisState *GenesisState, ) map[string]json.RawMessage { genesisStateBz := cdc.MustMarshalJSON(genesisState) @@ -68,10 +68,9 @@ func SetGenesisStateInAppState( // for the application. // // NOTE: The pubkey input is this machines pubkey. -func GenesisStateFromGenDoc(cdc codec.JSONMarshaler, genDoc tmtypes.GenesisDoc, -) (genesisState map[string]json.RawMessage, err error) { +func GenesisStateFromGenDoc(genDoc tmtypes.GenesisDoc) (genesisState map[string]json.RawMessage, err error) { - if err = cdc.UnmarshalJSON(genDoc.AppState, &genesisState); err != nil { + if err = json.Unmarshal(genDoc.AppState, &genesisState); err != nil { return genesisState, err } return genesisState, nil @@ -92,12 +91,12 @@ func GenesisStateFromGenFile(cdc codec.JSONMarshaler, genFile string) (genesisSt return genesisState, genDoc, err } - genesisState, err = GenesisStateFromGenDoc(cdc, *genDoc) + genesisState, err = GenesisStateFromGenDoc(*genDoc) return genesisState, genDoc, err } // ValidateGenesis validates GenTx transactions -func ValidateGenesis(genesisState GenesisState, txJSONDecoder sdk.TxDecoder) error { +func ValidateGenesis(genesisState *GenesisState, txJSONDecoder sdk.TxDecoder) error { for i, genTx := range genesisState.GenTxs { var tx sdk.Tx tx, err := txJSONDecoder(genTx) diff --git a/x/gov/client/utils/utils.go b/x/gov/client/utils/utils.go index b5640a39bcd7..50982cd1f7bd 100644 --- a/x/gov/client/utils/utils.go +++ b/x/gov/client/utils/utils.go @@ -44,6 +44,7 @@ func NormalizeProposalStatus(status string) string { return "Passed" case "Rejected", "rejected": return "Rejected" + default: + return status } - return "" } diff --git a/x/gov/genesis.go b/x/gov/genesis.go index bf2ff27e5d5f..ee544f4688cc 100644 --- a/x/gov/genesis.go +++ b/x/gov/genesis.go @@ -9,7 +9,7 @@ import ( ) // InitGenesis - store genesis parameters -func InitGenesis(ctx sdk.Context, ak types.AccountKeeper, bk types.BankKeeper, k keeper.Keeper, data types.GenesisState) { +func InitGenesis(ctx sdk.Context, ak types.AccountKeeper, bk types.BankKeeper, k keeper.Keeper, data *types.GenesisState) { k.SetProposalID(ctx, data.StartingProposalID) k.SetDepositParams(ctx, data.DepositParams) k.SetVotingParams(ctx, data.VotingParams) @@ -52,7 +52,7 @@ func InitGenesis(ctx sdk.Context, ak types.AccountKeeper, bk types.BankKeeper, k } // ExportGenesis - output genesis parameters -func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { +func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { startingProposalID, _ := k.GetProposalID(ctx) depositParams := k.GetDepositParams(ctx) votingParams := k.GetVotingParams(ctx) @@ -69,7 +69,7 @@ func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { proposalsVotes = append(proposalsVotes, votes...) } - return types.GenesisState{ + return &types.GenesisState{ StartingProposalID: startingProposalID, Deposits: proposalsDeposits, Votes: proposalsVotes, diff --git a/x/gov/genesis_test.go b/x/gov/genesis_test.go index 5708bd3fbbd2..6e6c80e60d5c 100644 --- a/x/gov/genesis_test.go +++ b/x/gov/genesis_test.go @@ -1,6 +1,7 @@ package gov_test import ( + "encoding/json" "testing" "github.com/stretchr/testify/require" @@ -8,7 +9,6 @@ import ( "github.com/tendermint/tendermint/libs/log" dbm "github.com/tendermint/tm-db" - "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/simapp" "github.com/cosmos/cosmos-sdk/x/auth" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -61,13 +61,13 @@ func TestImportExportQueues(t *testing.T) { genesisState[banktypes.ModuleName] = app.AppCodec().MustMarshalJSON(bankGenState) genesisState[types.ModuleName] = app.AppCodec().MustMarshalJSON(govGenState) - stateBytes, err := codec.MarshalJSONIndent(app.LegacyAmino(), genesisState) + stateBytes, err := json.MarshalIndent(genesisState, "", " ") if err != nil { panic(err) } db := dbm.NewMemDB() - app2 := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, simapp.DefaultNodeHome, 0) + app2 := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, simapp.DefaultNodeHome, 0, simapp.MakeEncodingConfig()) app2.InitChain( abci.RequestInitChain{ diff --git a/x/gov/keeper/proposal_test.go b/x/gov/keeper/proposal_test.go index 4f29a6748d1f..e472d233e522 100644 --- a/x/gov/keeper/proposal_test.go +++ b/x/gov/keeper/proposal_test.go @@ -2,6 +2,7 @@ package keeper_test import ( "errors" + "fmt" "strings" "testing" "time" @@ -128,14 +129,16 @@ func TestGetProposalsFiltered(t *testing.T) { {types.NewQueryProposalsParams(1, 50, types.StatusVotingPeriod, nil, nil), 50}, } - for _, tc := range testCases { - proposals := app.GovKeeper.GetProposalsFiltered(ctx, tc.params) - require.Len(t, proposals, tc.expectedNumResults) - - for _, p := range proposals { - if len(tc.params.ProposalStatus.String()) != 0 { - require.Equal(t, tc.params.ProposalStatus, p.Status) + for i, tc := range testCases { + t.Run(fmt.Sprintf("Test Case %d", i), func(t *testing.T) { + proposals := app.GovKeeper.GetProposalsFiltered(ctx, tc.params) + require.Len(t, proposals, tc.expectedNumResults) + + for _, p := range proposals { + if types.ValidProposalStatus(tc.params.ProposalStatus) { + require.Equal(t, tc.params.ProposalStatus, p.Status) + } } - } + }) } } diff --git a/x/gov/module.go b/x/gov/module.go index a2bf1ddb631e..25bbf6048253 100644 --- a/x/gov/module.go +++ b/x/gov/module.go @@ -70,7 +70,7 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONMarshaler, config client.TxE return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } - return types.ValidateGenesis(data) + return types.ValidateGenesis(&data) } // RegisterRESTRoutes registers the REST routes for the gov module. @@ -160,7 +160,7 @@ func (am AppModule) RegisterQueryService(server grpc.Server) { func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, data json.RawMessage) []abci.ValidatorUpdate { var genesisState types.GenesisState cdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.accountKeeper, am.bankKeeper, am.keeper, genesisState) + InitGenesis(ctx, am.accountKeeper, am.bankKeeper, am.keeper, &genesisState) return []abci.ValidatorUpdate{} } diff --git a/x/gov/types/genesis.go b/x/gov/types/genesis.go index e289ee57dc47..daaabeaa2f9c 100644 --- a/x/gov/types/genesis.go +++ b/x/gov/types/genesis.go @@ -8,8 +8,8 @@ import ( ) // NewGenesisState creates a new genesis state for the governance module -func NewGenesisState(startingProposalID uint64, dp DepositParams, vp VotingParams, tp TallyParams) GenesisState { - return GenesisState{ +func NewGenesisState(startingProposalID uint64, dp DepositParams, vp VotingParams, tp TallyParams) *GenesisState { + return &GenesisState{ StartingProposalID: startingProposalID, DepositParams: dp, VotingParams: vp, @@ -18,7 +18,7 @@ func NewGenesisState(startingProposalID uint64, dp DepositParams, vp VotingParam } // DefaultGenesisState defines the default governance genesis state -func DefaultGenesisState() GenesisState { +func DefaultGenesisState() *GenesisState { return NewGenesisState( DefaultStartingProposalID, DefaultDepositParams(), @@ -43,7 +43,7 @@ func (data GenesisState) Empty() bool { } // ValidateGenesis checks if parameters are within valid ranges -func ValidateGenesis(data GenesisState) error { +func ValidateGenesis(data *GenesisState) error { threshold := data.TallyParams.Threshold if threshold.IsNegative() || threshold.GT(sdk.OneDec()) { return fmt.Errorf("governance vote threshold should be positive and less or equal to one, is %s", diff --git a/x/gov/types/gov.pb.go b/x/gov/types/gov.pb.go index 56080ffe7273..c12c65832f37 100644 --- a/x/gov/types/gov.pb.go +++ b/x/gov/types/gov.pb.go @@ -105,6 +105,10 @@ var ProposalStatus_value = map[string]int32{ "PROPOSAL_STATUS_FAILED": 5, } +func (x ProposalStatus) String() string { + return proto.EnumName(ProposalStatus_name, int32(x)) +} + func (ProposalStatus) EnumDescriptor() ([]byte, []int) { return fileDescriptor_6e82113c1a9a4b7c, []int{1} } @@ -448,94 +452,95 @@ func init() { func init() { proto.RegisterFile("cosmos/gov/v1beta1/gov.proto", fileDescriptor_6e82113c1a9a4b7c) } var fileDescriptor_6e82113c1a9a4b7c = []byte{ - // 1392 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x3f, 0x6c, 0xdb, 0xc6, - 0x17, 0x16, 0xe5, 0x7f, 0xf1, 0x49, 0xb6, 0x99, 0xb3, 0x7f, 0xb6, 0xcc, 0x5f, 0x4a, 0x32, 0x6c, - 0x50, 0x18, 0x41, 0x22, 0x27, 0x2e, 0x50, 0xa0, 0x09, 0x50, 0x44, 0xb4, 0x98, 0x44, 0x45, 0x20, - 0x09, 0x14, 0xa3, 0x20, 0xe9, 0x40, 0xd0, 0xe2, 0x45, 0x66, 0x2b, 0xf2, 0x54, 0xf1, 0xe4, 0xda, - 0xe8, 0xd2, 0xa1, 0x43, 0xa0, 0x16, 0x45, 0xc6, 0x02, 0x85, 0x80, 0x02, 0xcd, 0x50, 0x74, 0xea, - 0xd0, 0xb9, 0xb3, 0xd1, 0x29, 0x28, 0x32, 0x04, 0x1d, 0x94, 0xc6, 0x59, 0x0a, 0x0f, 0x1d, 0x3c, - 0x76, 0x2a, 0xc8, 0x3b, 0x5a, 0x94, 0x64, 0xd4, 0x11, 0xda, 0xc9, 0xe4, 0xbb, 0xf7, 0x7d, 0xef, - 0xdd, 0x77, 0xf7, 0x3d, 0x5a, 0xe0, 0x5c, 0x0d, 0xfb, 0x2e, 0xf6, 0xd7, 0xeb, 0x78, 0x67, 0x7d, - 0xe7, 0xea, 0x16, 0x22, 0xd6, 0xd5, 0xe0, 0x39, 0xdb, 0x6c, 0x61, 0x82, 0x21, 0xa4, 0xab, 0xd9, - 0x20, 0xc2, 0x56, 0x05, 0x91, 0x21, 0xb6, 0x2c, 0x1f, 0x1d, 0x43, 0x6a, 0xd8, 0xf1, 0x28, 0x46, - 0x58, 0xaa, 0xe3, 0x3a, 0x0e, 0x1f, 0xd7, 0x83, 0x27, 0x16, 0x5d, 0xa5, 0x28, 0x93, 0x2e, 0x30, - 0x5a, 0xba, 0x24, 0xd5, 0x31, 0xae, 0x37, 0xd0, 0x7a, 0xf8, 0xb6, 0xd5, 0x7e, 0xb8, 0x4e, 0x1c, - 0x17, 0xf9, 0xc4, 0x72, 0x9b, 0x11, 0x76, 0x38, 0xc1, 0xf2, 0xf6, 0xd8, 0x92, 0x38, 0xbc, 0x64, - 0xb7, 0x5b, 0x16, 0x71, 0x30, 0x6b, 0x46, 0xb9, 0x07, 0xd2, 0x06, 0xda, 0x25, 0xe5, 0x16, 0x6e, - 0x62, 0xdf, 0x6a, 0xc0, 0x25, 0x30, 0x45, 0x1c, 0xd2, 0x40, 0x19, 0x4e, 0xe6, 0xd6, 0x66, 0x75, - 0xfa, 0x02, 0x65, 0x90, 0xb2, 0x91, 0x5f, 0x6b, 0x39, 0xcd, 0x00, 0x9a, 0x49, 0x86, 0x6b, 0xf1, - 0xd0, 0xb5, 0x85, 0x3f, 0xbe, 0x95, 0xb8, 0x5f, 0x7f, 0xba, 0x3c, 0xb3, 0x89, 0x3d, 0x82, 0x3c, - 0xa2, 0x7c, 0x99, 0x04, 0x33, 0x79, 0xd4, 0xc4, 0xbe, 0x43, 0xa0, 0x06, 0x52, 0x4d, 0x56, 0xc0, - 0x74, 0xec, 0x90, 0x7a, 0x52, 0xbd, 0x70, 0xd0, 0x93, 0x40, 0x54, 0xb7, 0x90, 0x3f, 0xea, 0x49, - 0x70, 0xcf, 0x72, 0x1b, 0xd7, 0x94, 0x58, 0xaa, 0xa2, 0x83, 0xe8, 0xad, 0x60, 0xc3, 0x12, 0x98, - 0xb5, 0x29, 0x23, 0x6e, 0x85, 0x3d, 0xa4, 0xd5, 0xab, 0x7f, 0xf5, 0xa4, 0xcb, 0x75, 0x87, 0x6c, - 0xb7, 0xb7, 0xb2, 0x35, 0xec, 0x32, 0xdd, 0xd8, 0x9f, 0xcb, 0xbe, 0xfd, 0xd1, 0x3a, 0xd9, 0x6b, - 0x22, 0x3f, 0x9b, 0xab, 0xd5, 0x72, 0xb6, 0xdd, 0x42, 0xbe, 0xaf, 0xf7, 0x39, 0x60, 0x0d, 0x4c, - 0x5b, 0x2e, 0x6e, 0x7b, 0x24, 0x33, 0x21, 0x4f, 0xac, 0xa5, 0x36, 0x56, 0xb3, 0x4c, 0xf7, 0xe0, - 0xe8, 0xa2, 0xf3, 0xcc, 0x6e, 0x62, 0xc7, 0x53, 0xaf, 0xec, 0xf7, 0xa4, 0xc4, 0x0f, 0x2f, 0xa4, - 0xb5, 0xd7, 0x28, 0x16, 0x00, 0x7c, 0x9d, 0x51, 0x5f, 0x9b, 0x0c, 0x94, 0x51, 0x3e, 0x9f, 0x01, - 0x67, 0x8e, 0x45, 0x56, 0x4f, 0xd2, 0xe3, 0xfc, 0xa0, 0x1e, 0x87, 0x3d, 0x29, 0xe9, 0xd8, 0x47, - 0x3d, 0x69, 0x96, 0xaa, 0x32, 0x2c, 0xc6, 0x75, 0x30, 0x53, 0xa3, 0x52, 0x87, 0x52, 0xa4, 0x36, - 0x96, 0xb2, 0xf4, 0xa8, 0xb3, 0xd1, 0x51, 0x67, 0x73, 0xde, 0x9e, 0x9a, 0xfa, 0xa5, 0x7f, 0x26, - 0x7a, 0x84, 0x80, 0x55, 0x30, 0xed, 0x13, 0x8b, 0xb4, 0xfd, 0xcc, 0x84, 0xcc, 0xad, 0xcd, 0x6f, - 0x28, 0xd9, 0xd1, 0x7b, 0x9c, 0x8d, 0x7a, 0xa9, 0x84, 0x99, 0xaa, 0x70, 0xd4, 0x93, 0x96, 0x87, - 0x4e, 0x88, 0x92, 0x28, 0x3a, 0x63, 0x83, 0x4d, 0x00, 0x1f, 0x3a, 0x9e, 0xd5, 0x30, 0x89, 0xd5, - 0x68, 0xec, 0x99, 0x2d, 0xe4, 0xb7, 0x1b, 0x24, 0x33, 0x19, 0xf6, 0x27, 0x9d, 0x54, 0xc3, 0x08, - 0xf2, 0xf4, 0x30, 0x4d, 0x3d, 0x1f, 0x48, 0x7c, 0xd4, 0x93, 0x56, 0x69, 0x91, 0x51, 0x22, 0x45, - 0xe7, 0xc3, 0x60, 0x0c, 0x04, 0x3f, 0x00, 0x29, 0xbf, 0xbd, 0xe5, 0x3a, 0xc4, 0x0c, 0x4c, 0x91, - 0x99, 0x0a, 0x4b, 0x09, 0x23, 0x52, 0x18, 0x91, 0x63, 0x54, 0x91, 0x55, 0x61, 0x97, 0x2d, 0x06, - 0x56, 0x1e, 0xbf, 0x90, 0x38, 0x1d, 0xd0, 0x48, 0x00, 0x80, 0x0e, 0xe0, 0xd9, 0x65, 0x31, 0x91, - 0x67, 0xd3, 0x0a, 0xd3, 0xa7, 0x56, 0x78, 0x93, 0x55, 0x58, 0xa1, 0x15, 0x86, 0x19, 0x68, 0x99, - 0x79, 0x16, 0xd6, 0x3c, 0x3b, 0x2c, 0xf5, 0x88, 0x03, 0x73, 0x04, 0x13, 0xab, 0x61, 0xb2, 0x85, - 0xcc, 0xcc, 0x69, 0x57, 0xf2, 0x36, 0xab, 0xb3, 0x44, 0xeb, 0x0c, 0xa0, 0x95, 0xb1, 0xae, 0x6a, - 0x3a, 0xc4, 0x46, 0x6e, 0x6d, 0x80, 0xb3, 0x3b, 0x98, 0x38, 0x5e, 0x3d, 0x38, 0xde, 0x16, 0x13, - 0xf6, 0xcc, 0xa9, 0xdb, 0xbe, 0xc0, 0xda, 0xc9, 0xd0, 0x76, 0x46, 0x28, 0xe8, 0xbe, 0x17, 0x68, - 0xbc, 0x12, 0x84, 0xc3, 0x8d, 0x3f, 0x04, 0x2c, 0xd4, 0x97, 0x78, 0xf6, 0xd4, 0x5a, 0x0a, 0xab, - 0xb5, 0x3c, 0x50, 0x6b, 0x50, 0xe1, 0x39, 0x1a, 0x65, 0x02, 0x33, 0x1b, 0xee, 0x27, 0x41, 0x2a, - 0x7e, 0x7d, 0x6e, 0x80, 0x89, 0x3d, 0xe4, 0xd3, 0x61, 0xa7, 0x66, 0x03, 0xd6, 0xdf, 0x7a, 0xd2, - 0x5b, 0xaf, 0x21, 0x5c, 0xc1, 0x23, 0x7a, 0x00, 0x85, 0xb7, 0xc1, 0x8c, 0xb5, 0xe5, 0x13, 0xcb, - 0x61, 0x63, 0x71, 0x6c, 0x96, 0x08, 0x0e, 0xdf, 0x03, 0x49, 0x0f, 0x87, 0x86, 0x1c, 0x9f, 0x24, - 0xe9, 0x61, 0x58, 0x07, 0x69, 0x0f, 0x9b, 0x9f, 0x38, 0x64, 0xdb, 0xdc, 0x41, 0x04, 0x87, 0xb6, - 0x9b, 0x55, 0xb5, 0xf1, 0x98, 0x8e, 0x7a, 0xd2, 0x22, 0x15, 0x35, 0xce, 0xa5, 0xe8, 0xc0, 0xc3, - 0xf7, 0x1c, 0xb2, 0x5d, 0x45, 0x04, 0x33, 0x29, 0x9f, 0x71, 0x60, 0xb2, 0x8a, 0x09, 0xfa, 0xaf, - 0xa6, 0xfb, 0x2d, 0x30, 0xb5, 0x83, 0x09, 0xfa, 0x17, 0x93, 0x9d, 0xe2, 0xe1, 0x3b, 0x60, 0x1a, - 0xd3, 0xef, 0x14, 0x1d, 0x6e, 0xe2, 0x49, 0x83, 0x27, 0xe8, 0xbc, 0x14, 0x66, 0xe9, 0x2c, 0x9b, - 0x6d, 0xeb, 0xe7, 0x24, 0x98, 0x63, 0x4e, 0x28, 0x5b, 0x2d, 0xcb, 0xf5, 0xe1, 0x37, 0x1c, 0x48, - 0xb9, 0x8e, 0x77, 0x6c, 0x4c, 0xee, 0x34, 0x63, 0x9a, 0x81, 0xe4, 0x87, 0x3d, 0xe9, 0x7f, 0x31, - 0xd4, 0x25, 0xec, 0x3a, 0x04, 0xb9, 0x4d, 0xb2, 0xd7, 0x97, 0x22, 0xb6, 0x3c, 0x9e, 0x5f, 0x81, - 0xeb, 0x78, 0x91, 0x5b, 0xbf, 0xe2, 0x00, 0x74, 0xad, 0xdd, 0x88, 0xc8, 0x6c, 0xa2, 0x96, 0x83, - 0x6d, 0xf6, 0x4d, 0x58, 0x1d, 0xf1, 0x50, 0x9e, 0x7d, 0xfe, 0xe9, 0xbd, 0x38, 0xec, 0x49, 0xe7, - 0x46, 0xc1, 0x03, 0xbd, 0xb2, 0x69, 0x3c, 0x9a, 0xa5, 0x7c, 0x1d, 0xb8, 0x8c, 0x77, 0xad, 0xdd, - 0x48, 0x2e, 0x1a, 0xfe, 0x82, 0x03, 0xe9, 0x6a, 0x68, 0x3d, 0xa6, 0xdf, 0xa7, 0x80, 0x59, 0x31, - 0xea, 0x8d, 0x3b, 0xad, 0xb7, 0xeb, 0xac, 0xb7, 0x95, 0x01, 0xdc, 0x40, 0x5b, 0x4b, 0x03, 0xce, - 0x8f, 0x77, 0x94, 0xa6, 0x31, 0xd6, 0xcd, 0x93, 0xc8, 0xf0, 0xac, 0x99, 0x07, 0x60, 0xfa, 0xe3, - 0x36, 0x6e, 0xb5, 0xdd, 0xb0, 0x8b, 0xb4, 0xaa, 0x8e, 0x61, 0x8f, 0x3c, 0xaa, 0x1d, 0xf6, 0x24, - 0x9e, 0xe2, 0xfb, 0xdd, 0xe8, 0x8c, 0x11, 0xd6, 0xc0, 0x2c, 0xd9, 0x6e, 0x21, 0x7f, 0x1b, 0x37, - 0x6c, 0x76, 0x8b, 0xb5, 0xb1, 0xe9, 0x17, 0x8f, 0x29, 0x62, 0x15, 0xfa, 0xbc, 0xd0, 0x00, 0x93, - 0xa1, 0xbb, 0x27, 0x42, 0xfe, 0x1b, 0x63, 0xf3, 0xcf, 0x07, 0xe8, 0x18, 0x75, 0xc8, 0x76, 0xf1, - 0x4f, 0x0e, 0x80, 0xbe, 0x25, 0xe0, 0x25, 0xb0, 0x52, 0x2d, 0x19, 0x9a, 0x59, 0x2a, 0x1b, 0x85, - 0x52, 0xd1, 0xbc, 0x5b, 0xac, 0x94, 0xb5, 0xcd, 0xc2, 0xcd, 0x82, 0x96, 0xe7, 0x13, 0xc2, 0x42, - 0xa7, 0x2b, 0xa7, 0x68, 0xa2, 0x16, 0x50, 0x40, 0x05, 0x2c, 0xc4, 0xb3, 0xef, 0x6b, 0x15, 0x9e, - 0x13, 0xe6, 0x3a, 0x5d, 0x79, 0x96, 0x66, 0xdd, 0x47, 0x3e, 0xbc, 0x08, 0x16, 0xe3, 0x39, 0x39, - 0xb5, 0x62, 0xe4, 0x0a, 0x45, 0x3e, 0x29, 0x9c, 0xed, 0x74, 0xe5, 0x39, 0x9a, 0x97, 0x63, 0x83, - 0x50, 0x06, 0xf3, 0xf1, 0xdc, 0x62, 0x89, 0x9f, 0x10, 0xd2, 0x9d, 0xae, 0x7c, 0x86, 0xa6, 0x15, - 0x31, 0xdc, 0x00, 0x99, 0xc1, 0x0c, 0xf3, 0x5e, 0xc1, 0xb8, 0x6d, 0x56, 0x35, 0xa3, 0xc4, 0x4f, - 0x0a, 0x4b, 0x9d, 0xae, 0xcc, 0x47, 0xb9, 0xd1, 0xd4, 0x12, 0xd2, 0x8f, 0xbe, 0x13, 0x13, 0xdf, - 0x3f, 0x11, 0x13, 0x3f, 0x3e, 0x11, 0x13, 0x17, 0x9f, 0x25, 0xc1, 0xfc, 0xe0, 0x3f, 0x38, 0x30, - 0x0b, 0xfe, 0x5f, 0xd6, 0x4b, 0xe5, 0x52, 0x25, 0x77, 0xc7, 0xac, 0x18, 0x39, 0xe3, 0x6e, 0x65, - 0x68, 0xe3, 0xe1, 0x96, 0x68, 0x72, 0xd1, 0x69, 0xc0, 0xeb, 0x40, 0x1c, 0xce, 0xcf, 0x6b, 0xe5, - 0x52, 0xa5, 0x60, 0x98, 0x65, 0x4d, 0x2f, 0x94, 0xf2, 0x3c, 0x27, 0xac, 0x74, 0xba, 0xf2, 0x22, - 0x85, 0x0c, 0xb8, 0x04, 0xbe, 0x0b, 0xde, 0x18, 0x06, 0x57, 0x4b, 0x46, 0xa1, 0x78, 0x2b, 0xc2, - 0x26, 0x85, 0xe5, 0x4e, 0x57, 0x86, 0x14, 0x5b, 0x8d, 0x5d, 0x69, 0x78, 0x09, 0x2c, 0x0f, 0x43, - 0xcb, 0xb9, 0x4a, 0x45, 0xcb, 0xf3, 0x13, 0x02, 0xdf, 0xe9, 0xca, 0x69, 0x8a, 0x29, 0x5b, 0xbe, - 0x8f, 0x6c, 0x78, 0x05, 0x64, 0x86, 0xb3, 0x75, 0xed, 0x7d, 0x6d, 0xd3, 0xd0, 0xf2, 0xfc, 0xa4, - 0x00, 0x3b, 0x5d, 0x79, 0x9e, 0xe6, 0xeb, 0xe8, 0x43, 0x54, 0x23, 0xe8, 0x44, 0xfe, 0x9b, 0xb9, - 0xc2, 0x1d, 0x2d, 0xcf, 0x4f, 0xc5, 0xf9, 0x6f, 0x5a, 0x4e, 0x03, 0xd9, 0x83, 0xb2, 0xaa, 0xc5, - 0xfd, 0x97, 0x62, 0xe2, 0xf9, 0x4b, 0x31, 0xf1, 0xd9, 0x81, 0x98, 0xd8, 0x3f, 0x10, 0xb9, 0xa7, - 0x07, 0x22, 0xf7, 0xfb, 0x81, 0xc8, 0x3d, 0x7e, 0x25, 0x26, 0x9e, 0xbe, 0x12, 0x13, 0xcf, 0x5f, - 0x89, 0x89, 0x07, 0xff, 0x3c, 0xe9, 0x76, 0xc3, 0xdf, 0x5a, 0xe1, 0x9d, 0xdd, 0x9a, 0x0e, 0x87, - 0xc3, 0xdb, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x24, 0xef, 0x4e, 0x86, 0x0d, 0x00, 0x00, + // 1395 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x41, 0x6c, 0xdb, 0xd4, + 0x1b, 0x8f, 0xd3, 0xb4, 0x5d, 0x5f, 0xd2, 0xd6, 0x7b, 0xed, 0xbf, 0x4d, 0xfd, 0x1f, 0xb6, 0x67, + 0x26, 0x54, 0x4d, 0x5b, 0xba, 0x15, 0x09, 0x89, 0x4d, 0x42, 0x8b, 0x1b, 0x6f, 0x0b, 0x9a, 0x92, + 0xc8, 0xf1, 0x32, 0x6d, 0x1c, 0x2c, 0x37, 0x7e, 0x4b, 0x0d, 0xb1, 0x5f, 0x88, 0x5f, 0x4a, 0x2b, + 0x2e, 0x1c, 0x38, 0x4c, 0x01, 0xa1, 0x1d, 0x91, 0x50, 0x24, 0x24, 0x76, 0x40, 0x9c, 0x38, 0x70, + 0xe6, 0x5c, 0x21, 0x0e, 0x13, 0xe2, 0x30, 0x71, 0xc8, 0x58, 0x77, 0x41, 0x3d, 0x70, 0xe8, 0x91, + 0x13, 0xb2, 0xdf, 0x73, 0xeb, 0x24, 0x15, 0x5d, 0x04, 0xa7, 0xda, 0xdf, 0xfb, 0x7e, 0xbf, 0xef, + 0x7b, 0xbf, 0xf7, 0x7e, 0x9f, 0x1b, 0x70, 0xae, 0x8e, 0x7d, 0x17, 0xfb, 0x6b, 0x0d, 0xbc, 0xbd, + 0xb6, 0x7d, 0x75, 0x13, 0x11, 0xeb, 0x6a, 0xf0, 0x9c, 0x6b, 0xb5, 0x31, 0xc1, 0x10, 0xd2, 0xd5, + 0x5c, 0x10, 0x61, 0xab, 0x82, 0xc8, 0x10, 0x9b, 0x96, 0x8f, 0x8e, 0x20, 0x75, 0xec, 0x78, 0x14, + 0x23, 0x2c, 0x36, 0x70, 0x03, 0x87, 0x8f, 0x6b, 0xc1, 0x13, 0x8b, 0xae, 0x50, 0x94, 0x49, 0x17, + 0x18, 0x2d, 0x5d, 0x92, 0x1a, 0x18, 0x37, 0x9a, 0x68, 0x2d, 0x7c, 0xdb, 0xec, 0x3c, 0x5c, 0x23, + 0x8e, 0x8b, 0x7c, 0x62, 0xb9, 0xad, 0x08, 0x3b, 0x9c, 0x60, 0x79, 0xbb, 0x6c, 0x49, 0x1c, 0x5e, + 0xb2, 0x3b, 0x6d, 0x8b, 0x38, 0x98, 0x35, 0xa3, 0xdc, 0x03, 0x19, 0x03, 0xed, 0x90, 0x4a, 0x1b, + 0xb7, 0xb0, 0x6f, 0x35, 0xe1, 0x22, 0x98, 0x24, 0x0e, 0x69, 0xa2, 0x2c, 0x27, 0x73, 0xab, 0x33, + 0x3a, 0x7d, 0x81, 0x32, 0x48, 0xdb, 0xc8, 0xaf, 0xb7, 0x9d, 0x56, 0x00, 0xcd, 0x26, 0xc3, 0xb5, + 0x78, 0xe8, 0xda, 0xfc, 0x1f, 0x5f, 0x4b, 0xdc, 0x2f, 0x3f, 0x5c, 0x9e, 0xde, 0xc0, 0x1e, 0x41, + 0x1e, 0x51, 0x3e, 0x4f, 0x82, 0xe9, 0x02, 0x6a, 0x61, 0xdf, 0x21, 0x50, 0x03, 0xe9, 0x16, 0x2b, + 0x60, 0x3a, 0x76, 0x48, 0x9d, 0x52, 0x2f, 0xec, 0xf7, 0x25, 0x10, 0xd5, 0x2d, 0x16, 0x0e, 0xfb, + 0x12, 0xdc, 0xb5, 0xdc, 0xe6, 0x35, 0x25, 0x96, 0xaa, 0xe8, 0x20, 0x7a, 0x2b, 0xda, 0xb0, 0x0c, + 0x66, 0x6c, 0xca, 0x88, 0xdb, 0x61, 0x0f, 0x19, 0xf5, 0xea, 0x5f, 0x7d, 0xe9, 0x72, 0xc3, 0x21, + 0x5b, 0x9d, 0xcd, 0x5c, 0x1d, 0xbb, 0x4c, 0x37, 0xf6, 0xe7, 0xb2, 0x6f, 0x7f, 0xb0, 0x46, 0x76, + 0x5b, 0xc8, 0xcf, 0xe5, 0xeb, 0xf5, 0xbc, 0x6d, 0xb7, 0x91, 0xef, 0xeb, 0xc7, 0x1c, 0xb0, 0x0e, + 0xa6, 0x2c, 0x17, 0x77, 0x3c, 0x92, 0x9d, 0x90, 0x27, 0x56, 0xd3, 0xeb, 0x2b, 0x39, 0xa6, 0x7b, + 0x70, 0x74, 0xd1, 0x79, 0xe6, 0x36, 0xb0, 0xe3, 0xa9, 0x57, 0xf6, 0xfa, 0x52, 0xe2, 0xbb, 0xe7, + 0xd2, 0xea, 0x2b, 0x14, 0x0b, 0x00, 0xbe, 0xce, 0xa8, 0xaf, 0xa5, 0x02, 0x65, 0x94, 0x4f, 0xa7, + 0xc1, 0x99, 0x23, 0x91, 0xd5, 0x93, 0xf4, 0x38, 0x3f, 0xa8, 0xc7, 0x41, 0x5f, 0x4a, 0x3a, 0xf6, + 0x61, 0x5f, 0x9a, 0xa1, 0xaa, 0x0c, 0x8b, 0x71, 0x1d, 0x4c, 0xd7, 0xa9, 0xd4, 0xa1, 0x14, 0xe9, + 0xf5, 0xc5, 0x1c, 0x3d, 0xea, 0x5c, 0x74, 0xd4, 0xb9, 0xbc, 0xb7, 0xab, 0xa6, 0x7f, 0x3a, 0x3e, + 0x13, 0x3d, 0x42, 0xc0, 0x1a, 0x98, 0xf2, 0x89, 0x45, 0x3a, 0x7e, 0x76, 0x42, 0xe6, 0x56, 0xe7, + 0xd6, 0x95, 0xdc, 0xe8, 0x3d, 0xce, 0x45, 0xbd, 0x54, 0xc3, 0x4c, 0x55, 0x38, 0xec, 0x4b, 0x4b, + 0x43, 0x27, 0x44, 0x49, 0x14, 0x9d, 0xb1, 0xc1, 0x16, 0x80, 0x0f, 0x1d, 0xcf, 0x6a, 0x9a, 0xc4, + 0x6a, 0x36, 0x77, 0xcd, 0x36, 0xf2, 0x3b, 0x4d, 0x92, 0x4d, 0x85, 0xfd, 0x49, 0x27, 0xd5, 0x30, + 0x82, 0x3c, 0x3d, 0x4c, 0x53, 0xcf, 0x07, 0x12, 0x1f, 0xf6, 0xa5, 0x15, 0x5a, 0x64, 0x94, 0x48, + 0xd1, 0xf9, 0x30, 0x18, 0x03, 0xc1, 0xf7, 0x40, 0xda, 0xef, 0x6c, 0xba, 0x0e, 0x31, 0x03, 0x53, + 0x64, 0x27, 0xc3, 0x52, 0xc2, 0x88, 0x14, 0x46, 0xe4, 0x18, 0x55, 0x64, 0x55, 0xd8, 0x65, 0x8b, + 0x81, 0x95, 0xc7, 0xcf, 0x25, 0x4e, 0x07, 0x34, 0x12, 0x00, 0xa0, 0x03, 0x78, 0x76, 0x59, 0x4c, + 0xe4, 0xd9, 0xb4, 0xc2, 0xd4, 0xa9, 0x15, 0x5e, 0x67, 0x15, 0x96, 0x69, 0x85, 0x61, 0x06, 0x5a, + 0x66, 0x8e, 0x85, 0x35, 0xcf, 0x0e, 0x4b, 0x3d, 0xe2, 0xc0, 0x2c, 0xc1, 0xc4, 0x6a, 0x9a, 0x6c, + 0x21, 0x3b, 0x7d, 0xda, 0x95, 0xbc, 0xcd, 0xea, 0x2c, 0xd2, 0x3a, 0x03, 0x68, 0x65, 0xac, 0xab, + 0x9a, 0x09, 0xb1, 0x91, 0x5b, 0x9b, 0xe0, 0xec, 0x36, 0x26, 0x8e, 0xd7, 0x08, 0x8e, 0xb7, 0xcd, + 0x84, 0x3d, 0x73, 0xea, 0xb6, 0x2f, 0xb0, 0x76, 0xb2, 0xb4, 0x9d, 0x11, 0x0a, 0xba, 0xef, 0x79, + 0x1a, 0xaf, 0x06, 0xe1, 0x70, 0xe3, 0x0f, 0x01, 0x0b, 0x1d, 0x4b, 0x3c, 0x73, 0x6a, 0x2d, 0x85, + 0xd5, 0x5a, 0x1a, 0xa8, 0x35, 0xa8, 0xf0, 0x2c, 0x8d, 0x32, 0x81, 0x99, 0x0d, 0xf7, 0x92, 0x20, + 0x1d, 0xbf, 0x3e, 0x37, 0xc0, 0xc4, 0x2e, 0xf2, 0xe9, 0xb0, 0x53, 0x73, 0x01, 0xeb, 0x6f, 0x7d, + 0xe9, 0x8d, 0x57, 0x10, 0xae, 0xe8, 0x11, 0x3d, 0x80, 0xc2, 0xdb, 0x60, 0xda, 0xda, 0xf4, 0x89, + 0xe5, 0xb0, 0xb1, 0x38, 0x36, 0x4b, 0x04, 0x87, 0xef, 0x80, 0xa4, 0x87, 0x43, 0x43, 0x8e, 0x4f, + 0x92, 0xf4, 0x30, 0x6c, 0x80, 0x8c, 0x87, 0xcd, 0x8f, 0x1c, 0xb2, 0x65, 0x6e, 0x23, 0x82, 0x43, + 0xdb, 0xcd, 0xa8, 0xda, 0x78, 0x4c, 0x87, 0x7d, 0x69, 0x81, 0x8a, 0x1a, 0xe7, 0x52, 0x74, 0xe0, + 0xe1, 0x7b, 0x0e, 0xd9, 0xaa, 0x21, 0x82, 0x99, 0x94, 0xbf, 0x72, 0x20, 0x55, 0xc3, 0x04, 0xfd, + 0x57, 0xd3, 0xfd, 0x16, 0x98, 0xdc, 0xc6, 0x04, 0xfd, 0x8b, 0xc9, 0x4e, 0xf1, 0xf0, 0x2d, 0x30, + 0x85, 0xe9, 0x77, 0x8a, 0x0e, 0x37, 0xf1, 0xa4, 0xc1, 0x13, 0x74, 0x5e, 0x0e, 0xb3, 0x74, 0x96, + 0xcd, 0xb6, 0xf5, 0x63, 0x12, 0xcc, 0x32, 0x27, 0x54, 0xac, 0xb6, 0xe5, 0xfa, 0xf0, 0x2b, 0x0e, + 0xa4, 0x5d, 0xc7, 0x3b, 0x32, 0x26, 0x77, 0x9a, 0x31, 0xcd, 0x40, 0xf2, 0x83, 0xbe, 0xf4, 0xbf, + 0x18, 0xea, 0x12, 0x76, 0x1d, 0x82, 0xdc, 0x16, 0xd9, 0x3d, 0x96, 0x22, 0xb6, 0x3c, 0x9e, 0x5f, + 0x81, 0xeb, 0x78, 0x91, 0x5b, 0xbf, 0xe0, 0x00, 0x74, 0xad, 0x9d, 0x88, 0xc8, 0x6c, 0xa1, 0xb6, + 0x83, 0x6d, 0xf6, 0x4d, 0x58, 0x19, 0xf1, 0x50, 0x81, 0x7d, 0xfe, 0xe9, 0xbd, 0x38, 0xe8, 0x4b, + 0xe7, 0x46, 0xc1, 0x03, 0xbd, 0xb2, 0x69, 0x3c, 0x9a, 0xa5, 0x7c, 0x19, 0xb8, 0x8c, 0x77, 0xad, + 0x9d, 0x48, 0x2e, 0x1a, 0xfe, 0x8c, 0x03, 0x99, 0x5a, 0x68, 0x3d, 0xa6, 0xdf, 0xc7, 0x80, 0x59, + 0x31, 0xea, 0x8d, 0x3b, 0xad, 0xb7, 0xeb, 0xac, 0xb7, 0xe5, 0x01, 0xdc, 0x40, 0x5b, 0x8b, 0x03, + 0xce, 0x8f, 0x77, 0x94, 0xa1, 0x31, 0xd6, 0xcd, 0x93, 0xc8, 0xf0, 0xac, 0x99, 0x07, 0x60, 0xea, + 0xc3, 0x0e, 0x6e, 0x77, 0xdc, 0xb0, 0x8b, 0x8c, 0xaa, 0x8e, 0x61, 0x8f, 0x02, 0xaa, 0x1f, 0xf4, + 0x25, 0x9e, 0xe2, 0x8f, 0xbb, 0xd1, 0x19, 0x23, 0xac, 0x83, 0x19, 0xb2, 0xd5, 0x46, 0xfe, 0x16, + 0x6e, 0xda, 0xec, 0x16, 0x6b, 0x63, 0xd3, 0x2f, 0x1c, 0x51, 0xc4, 0x2a, 0x1c, 0xf3, 0x42, 0x03, + 0xa4, 0x42, 0x77, 0x4f, 0x84, 0xfc, 0x37, 0xc6, 0xe6, 0x9f, 0x0b, 0xd0, 0x31, 0xea, 0x90, 0xed, + 0xe2, 0x9f, 0x1c, 0x00, 0xc7, 0x96, 0x80, 0x97, 0xc0, 0x72, 0xad, 0x6c, 0x68, 0x66, 0xb9, 0x62, + 0x14, 0xcb, 0x25, 0xf3, 0x6e, 0xa9, 0x5a, 0xd1, 0x36, 0x8a, 0x37, 0x8b, 0x5a, 0x81, 0x4f, 0x08, + 0xf3, 0xdd, 0x9e, 0x9c, 0xa6, 0x89, 0x5a, 0x40, 0x01, 0x15, 0x30, 0x1f, 0xcf, 0xbe, 0xaf, 0x55, + 0x79, 0x4e, 0x98, 0xed, 0xf6, 0xe4, 0x19, 0x9a, 0x75, 0x1f, 0xf9, 0xf0, 0x22, 0x58, 0x88, 0xe7, + 0xe4, 0xd5, 0xaa, 0x91, 0x2f, 0x96, 0xf8, 0xa4, 0x70, 0xb6, 0xdb, 0x93, 0x67, 0x69, 0x5e, 0x9e, + 0x0d, 0x42, 0x19, 0xcc, 0xc5, 0x73, 0x4b, 0x65, 0x7e, 0x42, 0xc8, 0x74, 0x7b, 0xf2, 0x19, 0x9a, + 0x56, 0xc2, 0x70, 0x1d, 0x64, 0x07, 0x33, 0xcc, 0x7b, 0x45, 0xe3, 0xb6, 0x59, 0xd3, 0x8c, 0x32, + 0x9f, 0x12, 0x16, 0xbb, 0x3d, 0x99, 0x8f, 0x72, 0xa3, 0xa9, 0x25, 0x64, 0x1e, 0x7d, 0x23, 0x26, + 0xbe, 0x7d, 0x22, 0x26, 0xbe, 0x7f, 0x22, 0x26, 0x2e, 0xfe, 0x9c, 0x04, 0x73, 0x83, 0xff, 0xe0, + 0xc0, 0x1c, 0xf8, 0x7f, 0x45, 0x2f, 0x57, 0xca, 0xd5, 0xfc, 0x1d, 0xb3, 0x6a, 0xe4, 0x8d, 0xbb, + 0xd5, 0xa1, 0x8d, 0x87, 0x5b, 0xa2, 0xc9, 0x25, 0xa7, 0x09, 0xaf, 0x03, 0x71, 0x38, 0xbf, 0xa0, + 0x55, 0xca, 0xd5, 0xa2, 0x61, 0x56, 0x34, 0xbd, 0x58, 0x2e, 0xf0, 0x9c, 0xb0, 0xdc, 0xed, 0xc9, + 0x0b, 0x14, 0x32, 0xe0, 0x12, 0xf8, 0x36, 0x78, 0x6d, 0x18, 0x5c, 0x2b, 0x1b, 0xc5, 0xd2, 0xad, + 0x08, 0x9b, 0x14, 0x96, 0xba, 0x3d, 0x19, 0x52, 0x6c, 0x2d, 0x76, 0xa5, 0xe1, 0x25, 0xb0, 0x34, + 0x0c, 0xad, 0xe4, 0xab, 0x55, 0xad, 0xc0, 0x4f, 0x08, 0x7c, 0xb7, 0x27, 0x67, 0x28, 0xa6, 0x62, + 0xf9, 0x3e, 0xb2, 0xe1, 0x15, 0x90, 0x1d, 0xce, 0xd6, 0xb5, 0x77, 0xb5, 0x0d, 0x43, 0x2b, 0xf0, + 0x29, 0x01, 0x76, 0x7b, 0xf2, 0x1c, 0xcd, 0xd7, 0xd1, 0xfb, 0xa8, 0x4e, 0xd0, 0x89, 0xfc, 0x37, + 0xf3, 0xc5, 0x3b, 0x5a, 0x81, 0x9f, 0x8c, 0xf3, 0xdf, 0xb4, 0x9c, 0x26, 0xb2, 0x85, 0x54, 0x20, + 0xab, 0x5a, 0xda, 0x7b, 0x21, 0x26, 0x9e, 0xbd, 0x10, 0x13, 0x9f, 0xec, 0x8b, 0x89, 0xbd, 0x7d, + 0x91, 0x7b, 0xba, 0x2f, 0x72, 0xbf, 0xef, 0x8b, 0xdc, 0xe3, 0x97, 0x62, 0xe2, 0xe9, 0x4b, 0x31, + 0xf1, 0xec, 0xa5, 0x98, 0x78, 0xf0, 0xcf, 0x13, 0x6e, 0x27, 0xfc, 0x8d, 0x15, 0xde, 0xd5, 0xcd, + 0xa9, 0x70, 0x28, 0xbc, 0xf9, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x85, 0xd1, 0x2a, 0x7e, + 0x0d, 0x00, 0x00, } func (this *TextProposal) Equal(that interface{}) bool { diff --git a/x/gov/types/proposal.go b/x/gov/types/proposal.go index f550e881a553..e665afc55cab 100644 --- a/x/gov/types/proposal.go +++ b/x/gov/types/proposal.go @@ -1,7 +1,6 @@ package types import ( - "encoding/json" "fmt" "strings" "time" @@ -137,28 +136,11 @@ type ( // ProposalStatusFromString turns a string into a ProposalStatus func ProposalStatusFromString(str string) (ProposalStatus, error) { - switch str { - case "DepositPeriod": - return StatusDepositPeriod, nil - - case "VotingPeriod": - return StatusVotingPeriod, nil - - case "Passed": - return StatusPassed, nil - - case "Rejected": - return StatusRejected, nil - - case "Failed": - return StatusFailed, nil - - case "": - return StatusNil, nil - - default: - return ProposalStatus(0xff), fmt.Errorf("'%s' is not a valid proposal status", str) + num, ok := ProposalStatus_value[str] + if !ok { + return StatusNil, fmt.Errorf("'%s' is not a valid proposal status", str) } + return ProposalStatus(num), nil } // ValidProposalStatus returns true if the proposal status is valid and false @@ -185,51 +167,6 @@ func (status *ProposalStatus) Unmarshal(data []byte) error { return nil } -// MarshalJSON Marshals to JSON using string representation of the status -func (status ProposalStatus) MarshalJSON() ([]byte, error) { - return json.Marshal(status.String()) -} - -// UnmarshalJSON Unmarshals from JSON assuming Bech32 encoding -func (status *ProposalStatus) UnmarshalJSON(data []byte) error { - var s string - err := json.Unmarshal(data, &s) - if err != nil { - return err - } - - bz2, err := ProposalStatusFromString(s) - if err != nil { - return err - } - - *status = bz2 - return nil -} - -// String implements the Stringer interface. -func (status ProposalStatus) String() string { - switch status { - case StatusDepositPeriod: - return "DepositPeriod" - - case StatusVotingPeriod: - return "VotingPeriod" - - case StatusPassed: - return "Passed" - - case StatusRejected: - return "Rejected" - - case StatusFailed: - return "Failed" - - default: - return "" - } -} - // Format implements the fmt.Formatter interface. // nolint: errcheck func (status ProposalStatus) Format(s fmt.State, verb rune) { diff --git a/x/gov/types/proposals_test.go b/x/gov/types/proposals_test.go index 70a4b1d8cec5..7f6a2b23bfae 100644 --- a/x/gov/types/proposals_test.go +++ b/x/gov/types/proposals_test.go @@ -8,13 +8,13 @@ import ( ) func TestProposalStatus_Format(t *testing.T) { - statusDepositPeriod, _ := ProposalStatusFromString("DepositPeriod") + statusDepositPeriod, _ := ProposalStatusFromString("PROPOSAL_STATUS_DEPOSIT_PERIOD") tests := []struct { pt ProposalStatus sprintFArgs string expectedStringOutput string }{ - {statusDepositPeriod, "%s", "DepositPeriod"}, + {statusDepositPeriod, "%s", "PROPOSAL_STATUS_DEPOSIT_PERIOD"}, {statusDepositPeriod, "%v", "1"}, } for _, tt := range tests { diff --git a/x/ibc-transfer/genesis.go b/x/ibc-transfer/genesis.go index 99aaa4ea9fed..75d6a204f8af 100644 --- a/x/ibc-transfer/genesis.go +++ b/x/ibc-transfer/genesis.go @@ -31,8 +31,8 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, state types.GenesisState } // ExportGenesis exports transfer module's portID into its geneis state -func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) types.GenesisState { - return types.GenesisState{ +func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) *types.GenesisState { + return &types.GenesisState{ PortID: keeper.GetPort(ctx), } } diff --git a/x/ibc-transfer/types/genesis.go b/x/ibc-transfer/types/genesis.go index e5ac802cb86d..9665a4005ae4 100644 --- a/x/ibc-transfer/types/genesis.go +++ b/x/ibc-transfer/types/genesis.go @@ -5,8 +5,8 @@ import ( ) // DefaultGenesisState returns a GenesisState with "transfer" as the default PortID. -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ PortID: PortID, } } diff --git a/x/ibc-transfer/types/genesis_test.go b/x/ibc-transfer/types/genesis_test.go index bd687c5561d3..7e006cf0227a 100644 --- a/x/ibc-transfer/types/genesis_test.go +++ b/x/ibc-transfer/types/genesis_test.go @@ -11,7 +11,7 @@ import ( func TestValidateGenesis(t *testing.T) { testCases := []struct { name string - genState types.GenesisState + genState *types.GenesisState expPass bool }{ { @@ -21,14 +21,14 @@ func TestValidateGenesis(t *testing.T) { }, { "valid genesis", - types.GenesisState{ + &types.GenesisState{ PortID: "portidone", }, true, }, { "invalid client", - types.GenesisState{ + &types.GenesisState{ PortID: "(INVALIDPORT)", }, false, diff --git a/x/ibc/genesis.go b/x/ibc/genesis.go index a2383dde6530..d31c668f20fa 100644 --- a/x/ibc/genesis.go +++ b/x/ibc/genesis.go @@ -11,15 +11,15 @@ import ( // InitGenesis initializes the ibc state from a provided genesis // state. -func InitGenesis(ctx sdk.Context, k keeper.Keeper, createLocalhost bool, gs types.GenesisState) { +func InitGenesis(ctx sdk.Context, k keeper.Keeper, createLocalhost bool, gs *types.GenesisState) { client.InitGenesis(ctx, k.ClientKeeper, gs.ClientGenesis) connection.InitGenesis(ctx, k.ConnectionKeeper, gs.ConnectionGenesis) channel.InitGenesis(ctx, k.ChannelKeeper, gs.ChannelGenesis) } // ExportGenesis returns the ibc exported genesis. -func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { - return types.GenesisState{ +func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { + return &types.GenesisState{ ClientGenesis: client.ExportGenesis(ctx, k.ClientKeeper), ConnectionGenesis: connection.ExportGenesis(ctx, k.ConnectionKeeper), ChannelGenesis: channel.ExportGenesis(ctx, k.ChannelKeeper), diff --git a/x/ibc/genesis_test.go b/x/ibc/genesis_test.go index fe51ab8acd31..7ac9b69d1988 100644 --- a/x/ibc/genesis_test.go +++ b/x/ibc/genesis_test.go @@ -23,7 +23,7 @@ import ( func (suite *IBCTestSuite) TestValidateGenesis() { testCases := []struct { name string - genState types.GenesisState + genState *types.GenesisState expPass bool }{ { @@ -33,7 +33,7 @@ func (suite *IBCTestSuite) TestValidateGenesis() { }, { name: "valid genesis", - genState: types.GenesisState{ + genState: &types.GenesisState{ ClientGenesis: clienttypes.NewGenesisState( []clienttypes.GenesisClientState{ clienttypes.NewGenesisClientState( @@ -93,7 +93,7 @@ func (suite *IBCTestSuite) TestValidateGenesis() { }, { name: "invalid client genesis", - genState: types.GenesisState{ + genState: &types.GenesisState{ ClientGenesis: clienttypes.NewGenesisState( []clienttypes.GenesisClientState{ clienttypes.NewGenesisClientState( @@ -112,7 +112,7 @@ func (suite *IBCTestSuite) TestValidateGenesis() { }, { name: "invalid connection genesis", - genState: types.GenesisState{ + genState: &types.GenesisState{ ClientGenesis: clienttypes.DefaultGenesisState(), ConnectionGenesis: connectiontypes.NewGenesisState( []connectiontypes.IdentifiedConnection{ @@ -127,7 +127,7 @@ func (suite *IBCTestSuite) TestValidateGenesis() { }, { name: "invalid channel genesis", - genState: types.GenesisState{ + genState: &types.GenesisState{ ClientGenesis: clienttypes.DefaultGenesisState(), ConnectionGenesis: connectiontypes.DefaultGenesisState(), ChannelGenesis: channeltypes.GenesisState{ @@ -154,7 +154,7 @@ func (suite *IBCTestSuite) TestValidateGenesis() { func (suite *IBCTestSuite) TestInitGenesis() { testCases := []struct { name string - genState types.GenesisState + genState *types.GenesisState }{ { name: "default", @@ -162,7 +162,7 @@ func (suite *IBCTestSuite) TestInitGenesis() { }, { name: "valid genesis", - genState: types.GenesisState{ + genState: &types.GenesisState{ ClientGenesis: clienttypes.NewGenesisState( []clienttypes.GenesisClientState{ clienttypes.NewGenesisClientState( @@ -254,7 +254,7 @@ func (suite *HandlerTestSuite) TestExportGenesis() { tc.malleate() - var gs types.GenesisState + var gs *types.GenesisState suite.NotPanics(func() { gs = ibc.ExportGenesis(suite.chainA.GetContext(), *suite.chainA.App.IBCKeeper) }) @@ -266,8 +266,8 @@ func (suite *HandlerTestSuite) TestExportGenesis() { suite.NotPanics(func() { cdc := codec.NewProtoCodec(suite.chainA.App.InterfaceRegistry()) - genState := cdc.MustMarshalJSON(&gs) - cdc.MustUnmarshalJSON(genState, &gs) + genState := cdc.MustMarshalJSON(gs) + cdc.MustUnmarshalJSON(genState, gs) }) // init genesis based on marshal and unmarshal diff --git a/x/ibc/module.go b/x/ibc/module.go index 4858bedf04f3..3a5e2893c49d 100644 --- a/x/ibc/module.go +++ b/x/ibc/module.go @@ -137,7 +137,7 @@ func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, bz jso if err != nil { panic(fmt.Sprintf("failed to unmarshal %s genesis state: %s", host.ModuleName, err)) } - InitGenesis(ctx, *am.keeper, am.createLocalhost, gs) + InitGenesis(ctx, *am.keeper, am.createLocalhost, &gs) return []abci.ValidatorUpdate{} } diff --git a/x/ibc/types/genesis.go b/x/ibc/types/genesis.go index 4f997283ae40..9bdb25b30478 100644 --- a/x/ibc/types/genesis.go +++ b/x/ibc/types/genesis.go @@ -10,8 +10,8 @@ import ( var _ codectypes.UnpackInterfacesMessage = GenesisState{} // DefaultGenesisState returns the ibc module's default genesis state. -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ ClientGenesis: clienttypes.DefaultGenesisState(), ConnectionGenesis: connectiontypes.DefaultGenesisState(), ChannelGenesis: channeltypes.DefaultGenesisState(), @@ -25,7 +25,7 @@ func (gs GenesisState) UnpackInterfaces(unpacker codectypes.AnyUnpacker) error { // Validate performs basic genesis state validation returning an error upon any // failure. -func (gs GenesisState) Validate() error { +func (gs *GenesisState) Validate() error { if err := gs.ClientGenesis.Validate(); err != nil { return err } diff --git a/x/mint/genesis.go b/x/mint/genesis.go index c7de6127ffc6..be7ac61d5019 100644 --- a/x/mint/genesis.go +++ b/x/mint/genesis.go @@ -7,14 +7,14 @@ import ( ) // InitGenesis new mint genesis -func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, ak types.AccountKeeper, data types.GenesisState) { +func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, ak types.AccountKeeper, data *types.GenesisState) { keeper.SetMinter(ctx, data.Minter) keeper.SetParams(ctx, data.Params) ak.GetModuleAccount(ctx, types.ModuleName) } // ExportGenesis returns a GenesisState for a given context and keeper. -func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) types.GenesisState { +func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) *types.GenesisState { minter := keeper.GetMinter(ctx) params := keeper.GetParams(ctx) return types.NewGenesisState(minter, params) diff --git a/x/mint/module.go b/x/mint/module.go index 2548e32ec5fe..5cdb995e0a82 100644 --- a/x/mint/module.go +++ b/x/mint/module.go @@ -128,7 +128,7 @@ func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, data j var genesisState types.GenesisState cdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.keeper, am.authKeeper, genesisState) + InitGenesis(ctx, am.keeper, am.authKeeper, &genesisState) return []abci.ValidatorUpdate{} } diff --git a/x/mint/types/genesis.go b/x/mint/types/genesis.go index c0dc4e91ae1d..3d2f761b4a6b 100644 --- a/x/mint/types/genesis.go +++ b/x/mint/types/genesis.go @@ -1,16 +1,16 @@ package types // NewGenesisState creates a new GenesisState object -func NewGenesisState(minter Minter, params Params) GenesisState { - return GenesisState{ +func NewGenesisState(minter Minter, params Params) *GenesisState { + return &GenesisState{ Minter: minter, Params: params, } } // DefaultGenesisState creates a default GenesisState object -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ Minter: DefaultInitialMinter(), Params: DefaultParams(), } diff --git a/x/slashing/genesis.go b/x/slashing/genesis.go index 3b25bbe08c19..3c38fa431c53 100644 --- a/x/slashing/genesis.go +++ b/x/slashing/genesis.go @@ -9,7 +9,7 @@ import ( // InitGenesis initialize default parameters // and the keeper's address to pubkey map -func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, stakingKeeper types.StakingKeeper, data types.GenesisState) { +func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, stakingKeeper types.StakingKeeper, data *types.GenesisState) { stakingKeeper.IterateValidators(ctx, func(index int64, validator exported.ValidatorI) bool { keeper.AddPubkey(ctx, validator.GetConsPubKey()) @@ -41,7 +41,7 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, stakingKeeper types.Stak // ExportGenesis writes the current store values // to a genesis file, which can be imported again // with InitGenesis -func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) (data types.GenesisState) { +func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) (data *types.GenesisState) { params := keeper.GetParams(ctx) signingInfos := make([]types.SigningInfo, 0) missedBlocks := make([]types.ValidatorMissedBlocks, 0) diff --git a/x/slashing/module.go b/x/slashing/module.go index 30000161364a..01efbd78e6b8 100644 --- a/x/slashing/module.go +++ b/x/slashing/module.go @@ -141,8 +141,8 @@ func (am AppModule) RegisterQueryService(server grpc.Server) { // no validator updates. func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, data json.RawMessage) []abci.ValidatorUpdate { var genesisState types.GenesisState - types.ModuleCdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.keeper, am.stakingKeeper, genesisState) + cdc.MustUnmarshalJSON(data, &genesisState) + InitGenesis(ctx, am.keeper, am.stakingKeeper, &genesisState) return []abci.ValidatorUpdate{} } diff --git a/x/slashing/types/genesis.go b/x/slashing/types/genesis.go index 745ab2d63911..ee765c8c37e6 100644 --- a/x/slashing/types/genesis.go +++ b/x/slashing/types/genesis.go @@ -10,9 +10,9 @@ import ( // NewGenesisState creates a new GenesisState object func NewGenesisState( params Params, signingInfos []SigningInfo, missedBlocks []ValidatorMissedBlocks, -) GenesisState { +) *GenesisState { - return GenesisState{ + return &GenesisState{ Params: params, SigningInfos: signingInfos, MissedBlocks: missedBlocks, @@ -28,8 +28,8 @@ func NewMissedBlock(index int64, missed bool) MissedBlock { } // DefaultGenesisState - default GenesisState used by Cosmos Hub -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ Params: DefaultParams(), SigningInfos: []SigningInfo{}, MissedBlocks: []ValidatorMissedBlocks{}, diff --git a/x/staking/genesis.go b/x/staking/genesis.go index 753b5836f2f2..ebba834dbbd1 100644 --- a/x/staking/genesis.go +++ b/x/staking/genesis.go @@ -19,7 +19,7 @@ import ( // Returns final validator set after applying all declaration and delegations func InitGenesis( ctx sdk.Context, keeper keeper.Keeper, accountKeeper types.AccountKeeper, - bankKeeper types.BankKeeper, data types.GenesisState, + bankKeeper types.BankKeeper, data *types.GenesisState, ) (res []abci.ValidatorUpdate) { bondedTokens := sdk.ZeroInt() notBondedTokens := sdk.ZeroInt() @@ -147,7 +147,7 @@ func InitGenesis( // ExportGenesis returns a GenesisState for a given context and keeper. The // GenesisState will contain the pool, params, validators, and bonds found in // the keeper. -func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) types.GenesisState { +func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) *types.GenesisState { var unbondingDelegations []types.UnbondingDelegation keeper.IterateUnbondingDelegations(ctx, func(_ int64, ubd types.UnbondingDelegation) (stop bool) { @@ -169,7 +169,7 @@ func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) types.GenesisState { return false }) - return types.GenesisState{ + return &types.GenesisState{ Params: keeper.GetParams(ctx), LastTotalPower: keeper.GetLastTotalPower(ctx), LastValidatorPowers: lastValidatorPowers, @@ -199,7 +199,7 @@ func WriteValidators(ctx sdk.Context, keeper keeper.Keeper) (vals []tmtypes.Gene // ValidateGenesis validates the provided staking genesis state to ensure the // expected invariants holds. (i.e. params in correct bounds, no duplicate validators) -func ValidateGenesis(data types.GenesisState) error { +func ValidateGenesis(data *types.GenesisState) error { if err := validateGenesisStateValidators(data.Validators); err != nil { return err } diff --git a/x/staking/genesis_test.go b/x/staking/genesis_test.go index d67f66b9a8cc..989bf56bf00d 100644 --- a/x/staking/genesis_test.go +++ b/x/staking/genesis_test.go @@ -161,7 +161,7 @@ func TestValidateGenesis(t *testing.T) { tt := tt t.Run(tt.name, func(t *testing.T) { genesisState := types.DefaultGenesisState() - tt.mutate(&genesisState) + tt.mutate(genesisState) if tt.wantErr { assert.Error(t, staking.ValidateGenesis(genesisState)) } else { diff --git a/x/staking/module.go b/x/staking/module.go index 7be852331e81..03a5f0bbcaf7 100644 --- a/x/staking/module.go +++ b/x/staking/module.go @@ -65,7 +65,7 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONMarshaler, config client.TxE return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } - return ValidateGenesis(data) + return ValidateGenesis(&data) } // RegisterRESTRoutes registers the REST routes for the staking module. @@ -141,7 +141,7 @@ func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, data j cdc.MustUnmarshalJSON(data, &genesisState) - return InitGenesis(ctx, am.keeper, am.accountKeeper, am.bankKeeper, genesisState) + return InitGenesis(ctx, am.keeper, am.accountKeeper, am.bankKeeper, &genesisState) } // ExportGenesis returns the exported genesis state as raw bytes for the staking diff --git a/x/staking/types/genesis.go b/x/staking/types/genesis.go index 5da771368482..a296844f986f 100644 --- a/x/staking/types/genesis.go +++ b/x/staking/types/genesis.go @@ -7,8 +7,8 @@ import ( ) // NewGenesisState creates a new GenesisState instanc e -func NewGenesisState(params Params, validators []Validator, delegations []Delegation) GenesisState { - return GenesisState{ +func NewGenesisState(params Params, validators []Validator, delegations []Delegation) *GenesisState { + return &GenesisState{ Params: params, Validators: validators, Delegations: delegations, @@ -16,20 +16,20 @@ func NewGenesisState(params Params, validators []Validator, delegations []Delega } // DefaultGenesisState gets the raw genesis raw message for testing -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ Params: DefaultParams(), } } // GetGenesisStateFromAppState returns x/staking GenesisState given raw application // genesis state. -func GetGenesisStateFromAppState(cdc *codec.LegacyAmino, appState map[string]json.RawMessage) GenesisState { +func GetGenesisStateFromAppState(cdc *codec.LegacyAmino, appState map[string]json.RawMessage) *GenesisState { var genesisState GenesisState if appState[ModuleName] != nil { cdc.MustUnmarshalJSON(appState[ModuleName], &genesisState) } - return genesisState + return &genesisState } diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 7e8178d9a382..1c8b771ea443 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1264,588 +1264,590 @@ func (this *Pool) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_ func StakingDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 9290 bytes of a gzipped FileDescriptorSet + // 9316 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x7d, 0x70, 0x24, 0xc7, 0x75, 0x1f, 0x66, 0x77, 0x01, 0xec, 0xbe, 0xc5, 0xc7, 0xa2, 0x81, 0x3b, 0xee, 0x2d, 0x49, 0xe0, 0x38, 0xfc, 0x38, 0xdc, 0x91, 0xc4, 0x89, 0xc7, 0xcf, 0xdb, 0x93, 0x49, 0x63, 0x01, 0xdc, 0x1d, - 0x48, 0xe0, 0x00, 0x0e, 0x80, 0x23, 0x29, 0xd9, 0x9a, 0x0c, 0x66, 0x1b, 0x8b, 0xe1, 0xed, 0xce, - 0x2c, 0x67, 0x66, 0x71, 0x00, 0xa3, 0x3f, 0x98, 0x92, 0x1c, 0x45, 0x8a, 0x15, 0x29, 0x8e, 0x9c, - 0xd0, 0xb2, 0xa4, 0xc8, 0x72, 0x25, 0x52, 0x64, 0x27, 0xb6, 0x13, 0x45, 0x91, 0x9d, 0xaa, 0x44, - 0x95, 0x28, 0x8e, 0x52, 0x71, 0x52, 0x52, 0x95, 0x93, 0x72, 0x52, 0xa9, 0x93, 0x4d, 0xa9, 0x2a, - 0xb2, 0xc2, 0xc4, 0xce, 0x85, 0x71, 0xb9, 0xa4, 0x54, 0x39, 0xd5, 0x5f, 0xf3, 0xb5, 0xb3, 0x98, - 0x59, 0xf0, 0x48, 0x49, 0x25, 0xfe, 0x85, 0xed, 0x9e, 0xf7, 0x7e, 0xdd, 0xfd, 0xfa, 0xf5, 0x7b, - 0xaf, 0x5f, 0xf7, 0x0c, 0xe0, 0x97, 0x2f, 0xc0, 0xc9, 0x86, 0x65, 0x35, 0x9a, 0xf8, 0x6c, 0xdb, - 0xb6, 0x5c, 0x6b, 0xbb, 0xb3, 0x73, 0xb6, 0x8e, 0x1d, 0xdd, 0x36, 0xda, 0xae, 0x65, 0xcf, 0xd1, - 0x3a, 0x34, 0xce, 0x28, 0xe6, 0x04, 0x85, 0xbc, 0x0a, 0x13, 0x17, 0x8d, 0x26, 0x5e, 0xf4, 0x08, - 0x37, 0xb0, 0x8b, 0x9e, 0x80, 0xdc, 0x8e, 0xd1, 0xc4, 0x65, 0xe9, 0x64, 0x76, 0xb6, 0x78, 0xee, - 0x9e, 0xb9, 0x08, 0xd3, 0x5c, 0x98, 0x63, 0x9d, 0x54, 0x2b, 0x94, 0x43, 0xfe, 0x4e, 0x0e, 0x26, - 0x63, 0x9e, 0x22, 0x04, 0x39, 0x53, 0x6b, 0x11, 0x44, 0x69, 0xb6, 0xa0, 0xd0, 0xdf, 0xa8, 0x0c, - 0xc3, 0x6d, 0x4d, 0xbf, 0xa6, 0x35, 0x70, 0x39, 0x43, 0xab, 0x45, 0x11, 0x4d, 0x03, 0xd4, 0x71, - 0x1b, 0x9b, 0x75, 0x6c, 0xea, 0x07, 0xe5, 0xec, 0xc9, 0xec, 0x6c, 0x41, 0x09, 0xd4, 0xa0, 0xfb, - 0x61, 0xa2, 0xdd, 0xd9, 0x6e, 0x1a, 0xba, 0x1a, 0x20, 0x83, 0x93, 0xd9, 0xd9, 0x41, 0xa5, 0xc4, - 0x1e, 0x2c, 0xfa, 0xc4, 0xa7, 0x60, 0xfc, 0x3a, 0xd6, 0xae, 0x05, 0x49, 0x8b, 0x94, 0x74, 0x8c, - 0x54, 0x07, 0x08, 0x17, 0x60, 0xa4, 0x85, 0x1d, 0x47, 0x6b, 0x60, 0xd5, 0x3d, 0x68, 0xe3, 0x72, - 0x8e, 0x8e, 0xfe, 0x64, 0xd7, 0xe8, 0xa3, 0x23, 0x2f, 0x72, 0xae, 0xcd, 0x83, 0x36, 0x46, 0xf3, - 0x50, 0xc0, 0x66, 0xa7, 0xc5, 0x10, 0x06, 0x7b, 0xc8, 0x6f, 0xc9, 0xec, 0xb4, 0xa2, 0x28, 0x79, - 0xc2, 0xc6, 0x21, 0x86, 0x1d, 0x6c, 0xef, 0x19, 0x3a, 0x2e, 0x0f, 0x51, 0x80, 0x53, 0x5d, 0x00, - 0x1b, 0xec, 0x79, 0x14, 0x43, 0xf0, 0xa1, 0x05, 0x28, 0xe0, 0x7d, 0x17, 0x9b, 0x8e, 0x61, 0x99, - 0xe5, 0x61, 0x0a, 0x72, 0x6f, 0xcc, 0x2c, 0xe2, 0x66, 0x3d, 0x0a, 0xe1, 0xf3, 0xa1, 0xc7, 0x60, - 0xd8, 0x6a, 0xbb, 0x86, 0x65, 0x3a, 0xe5, 0xfc, 0x49, 0x69, 0xb6, 0x78, 0xee, 0x8e, 0x58, 0x45, - 0x58, 0x63, 0x34, 0x8a, 0x20, 0x46, 0xcb, 0x50, 0x72, 0xac, 0x8e, 0xad, 0x63, 0x55, 0xb7, 0xea, - 0x58, 0x35, 0xcc, 0x1d, 0xab, 0x5c, 0xa0, 0x00, 0x33, 0xdd, 0x03, 0xa1, 0x84, 0x0b, 0x56, 0x1d, - 0x2f, 0x9b, 0x3b, 0x96, 0x32, 0xe6, 0x84, 0xca, 0xe8, 0x38, 0x0c, 0x39, 0x07, 0xa6, 0xab, 0xed, - 0x97, 0x47, 0xa8, 0x86, 0xf0, 0x92, 0xfc, 0xdb, 0x43, 0x30, 0x9e, 0x46, 0xc5, 0x2e, 0xc0, 0xe0, - 0x0e, 0x19, 0x65, 0x39, 0xd3, 0x8f, 0x0c, 0x18, 0x4f, 0x58, 0x88, 0x43, 0x47, 0x14, 0xe2, 0x3c, - 0x14, 0x4d, 0xec, 0xb8, 0xb8, 0xce, 0x34, 0x22, 0x9b, 0x52, 0xa7, 0x80, 0x31, 0x75, 0xab, 0x54, - 0xee, 0x48, 0x2a, 0xf5, 0x3c, 0x8c, 0x7b, 0x5d, 0x52, 0x6d, 0xcd, 0x6c, 0x08, 0xdd, 0x3c, 0x9b, - 0xd4, 0x93, 0xb9, 0x25, 0xc1, 0xa7, 0x10, 0x36, 0x65, 0x0c, 0x87, 0xca, 0x68, 0x11, 0xc0, 0x32, - 0xb1, 0xb5, 0xa3, 0xd6, 0xb1, 0xde, 0x2c, 0xe7, 0x7b, 0x48, 0x69, 0x8d, 0x90, 0x74, 0x49, 0xc9, - 0x62, 0xb5, 0x7a, 0x13, 0x9d, 0xf7, 0x55, 0x6d, 0xb8, 0x87, 0xa6, 0xac, 0xb2, 0x45, 0xd6, 0xa5, - 0x6d, 0x5b, 0x30, 0x66, 0x63, 0xa2, 0xf7, 0xb8, 0xce, 0x47, 0x56, 0xa0, 0x9d, 0x98, 0x4b, 0x1c, - 0x99, 0xc2, 0xd9, 0xd8, 0xc0, 0x46, 0xed, 0x60, 0x11, 0xdd, 0x0d, 0x5e, 0x85, 0x4a, 0xd5, 0x0a, - 0xa8, 0x15, 0x1a, 0x11, 0x95, 0x57, 0xb4, 0x16, 0xae, 0xbc, 0x0c, 0x63, 0x61, 0xf1, 0xa0, 0x29, - 0x18, 0x74, 0x5c, 0xcd, 0x76, 0xa9, 0x16, 0x0e, 0x2a, 0xac, 0x80, 0x4a, 0x90, 0xc5, 0x66, 0x9d, - 0x5a, 0xb9, 0x41, 0x85, 0xfc, 0x44, 0x3f, 0xed, 0x0f, 0x38, 0x4b, 0x07, 0x7c, 0x5f, 0xf7, 0x8c, - 0x86, 0x90, 0xa3, 0xe3, 0xae, 0x3c, 0x0e, 0xa3, 0xa1, 0x01, 0xa4, 0x6d, 0x5a, 0x7e, 0x3f, 0x1c, - 0x8b, 0x85, 0x46, 0xcf, 0xc3, 0x54, 0xc7, 0x34, 0x4c, 0x17, 0xdb, 0x6d, 0x1b, 0x13, 0x8d, 0x65, - 0x4d, 0x95, 0xff, 0xfb, 0x70, 0x0f, 0x9d, 0xdb, 0x0a, 0x52, 0x33, 0x14, 0x65, 0xb2, 0xd3, 0x5d, - 0x79, 0xa6, 0x90, 0xff, 0xee, 0x70, 0xe9, 0x95, 0x57, 0x5e, 0x79, 0x25, 0x23, 0xbf, 0x3a, 0x04, - 0x53, 0x71, 0x6b, 0x26, 0x76, 0xf9, 0x1e, 0x87, 0x21, 0xb3, 0xd3, 0xda, 0xc6, 0x36, 0x15, 0xd2, - 0xa0, 0xc2, 0x4b, 0x68, 0x1e, 0x06, 0x9b, 0xda, 0x36, 0x6e, 0x96, 0x73, 0x27, 0xa5, 0xd9, 0xb1, - 0x73, 0xf7, 0xa7, 0x5a, 0x95, 0x73, 0x2b, 0x84, 0x45, 0x61, 0x9c, 0xe8, 0x49, 0xc8, 0x71, 0x13, - 0x4d, 0x10, 0xce, 0xa4, 0x43, 0x20, 0x6b, 0x49, 0xa1, 0x7c, 0xe8, 0x76, 0x28, 0x90, 0xbf, 0x4c, - 0x37, 0x86, 0x68, 0x9f, 0xf3, 0xa4, 0x82, 0xe8, 0x05, 0xaa, 0x40, 0x9e, 0x2e, 0x93, 0x3a, 0x16, - 0xae, 0xcd, 0x2b, 0x13, 0xc5, 0xaa, 0xe3, 0x1d, 0xad, 0xd3, 0x74, 0xd5, 0x3d, 0xad, 0xd9, 0xc1, - 0x54, 0xe1, 0x0b, 0xca, 0x08, 0xaf, 0xbc, 0x4a, 0xea, 0xd0, 0x0c, 0x14, 0xd9, 0xaa, 0x32, 0xcc, - 0x3a, 0xde, 0xa7, 0xd6, 0x73, 0x50, 0x61, 0x0b, 0x6d, 0x99, 0xd4, 0x90, 0xe6, 0x5f, 0x74, 0x2c, - 0x53, 0xa8, 0x26, 0x6d, 0x82, 0x54, 0xd0, 0xe6, 0x1f, 0x8f, 0x1a, 0xee, 0x3b, 0xe3, 0x87, 0x17, - 0xd5, 0x29, 0xf9, 0xcb, 0x19, 0xc8, 0x51, 0x7b, 0x31, 0x0e, 0xc5, 0xcd, 0x17, 0xd6, 0x97, 0xd4, - 0xc5, 0xb5, 0xad, 0xda, 0xca, 0x52, 0x49, 0x42, 0x63, 0x00, 0xb4, 0xe2, 0xe2, 0xca, 0xda, 0xfc, - 0x66, 0x29, 0xe3, 0x95, 0x97, 0xaf, 0x6c, 0x3e, 0xf6, 0x48, 0x29, 0xeb, 0x31, 0x6c, 0xb1, 0x8a, - 0x5c, 0x90, 0xe0, 0xe1, 0x73, 0xa5, 0x41, 0x54, 0x82, 0x11, 0x06, 0xb0, 0xfc, 0xfc, 0xd2, 0xe2, - 0x63, 0x8f, 0x94, 0x86, 0xc2, 0x35, 0x0f, 0x9f, 0x2b, 0x0d, 0xa3, 0x51, 0x28, 0xd0, 0x9a, 0xda, - 0xda, 0xda, 0x4a, 0x29, 0xef, 0x61, 0x6e, 0x6c, 0x2a, 0xcb, 0x57, 0x2e, 0x95, 0x0a, 0x1e, 0xe6, - 0x25, 0x65, 0x6d, 0x6b, 0xbd, 0x04, 0x1e, 0xc2, 0xea, 0xd2, 0xc6, 0xc6, 0xfc, 0xa5, 0xa5, 0x52, - 0xd1, 0xa3, 0xa8, 0xbd, 0xb0, 0xb9, 0xb4, 0x51, 0x1a, 0x09, 0x75, 0xeb, 0xe1, 0x73, 0xa5, 0x51, - 0xaf, 0x89, 0xa5, 0x2b, 0x5b, 0xab, 0xa5, 0x31, 0x34, 0x01, 0xa3, 0xac, 0x09, 0xd1, 0x89, 0xf1, - 0x48, 0xd5, 0x63, 0x8f, 0x94, 0x4a, 0x7e, 0x47, 0x18, 0xca, 0x44, 0xa8, 0xe2, 0xb1, 0x47, 0x4a, - 0x48, 0x5e, 0x80, 0x41, 0xaa, 0x5d, 0x08, 0xc1, 0xd8, 0xca, 0x7c, 0x6d, 0x69, 0x45, 0x5d, 0x5b, - 0xdf, 0x5c, 0x5e, 0xbb, 0x32, 0xbf, 0x52, 0x92, 0xfc, 0x3a, 0x65, 0xe9, 0xd9, 0xad, 0x65, 0x65, - 0x69, 0xb1, 0x94, 0x09, 0xd6, 0xad, 0x2f, 0xcd, 0x6f, 0x2e, 0x2d, 0x96, 0xb2, 0xb2, 0x0e, 0x53, - 0x71, 0x76, 0x32, 0x76, 0x65, 0x04, 0xa6, 0x38, 0xd3, 0x63, 0x8a, 0x29, 0x56, 0xd7, 0x14, 0x7f, - 0x3b, 0x03, 0x93, 0x31, 0xbe, 0x22, 0xb6, 0x91, 0xa7, 0x60, 0x90, 0xa9, 0x28, 0xf3, 0x9e, 0xa7, - 0x63, 0x9d, 0x0e, 0x55, 0xd8, 0x2e, 0x0f, 0x4a, 0xf9, 0x82, 0x11, 0x44, 0xb6, 0x47, 0x04, 0x41, - 0x20, 0xba, 0x6c, 0xfa, 0xcf, 0x76, 0xd9, 0x74, 0xe6, 0xf6, 0x1e, 0x4b, 0xe3, 0xf6, 0x68, 0x5d, - 0x7f, 0xb6, 0x7d, 0x30, 0xc6, 0xb6, 0x5f, 0x80, 0x89, 0x2e, 0xa0, 0xd4, 0x36, 0xf6, 0x03, 0x12, - 0x94, 0x7b, 0x09, 0x27, 0xc1, 0xd2, 0x65, 0x42, 0x96, 0xee, 0x42, 0x54, 0x82, 0x77, 0xf5, 0x9e, - 0x84, 0xae, 0xb9, 0xfe, 0xbc, 0x04, 0xc7, 0xe3, 0x23, 0xc5, 0xd8, 0x3e, 0x3c, 0x09, 0x43, 0x2d, - 0xec, 0xee, 0x5a, 0x22, 0x5a, 0xba, 0x2f, 0xc6, 0x07, 0x93, 0xc7, 0xd1, 0xc9, 0xe6, 0x5c, 0x41, - 0x27, 0x9e, 0xed, 0x15, 0xee, 0xb1, 0xde, 0x74, 0xf5, 0xf4, 0xc3, 0x19, 0x38, 0x16, 0x0b, 0x1e, - 0xdb, 0xd1, 0x3b, 0x01, 0x0c, 0xb3, 0xdd, 0x71, 0x59, 0x44, 0xc4, 0x0c, 0x6c, 0x81, 0xd6, 0x50, - 0xe3, 0x45, 0x8c, 0x67, 0xc7, 0xf5, 0x9e, 0x67, 0xe9, 0x73, 0x60, 0x55, 0x94, 0xe0, 0x09, 0xbf, - 0xa3, 0x39, 0xda, 0xd1, 0xe9, 0x1e, 0x23, 0xed, 0x52, 0xcc, 0x77, 0x41, 0x49, 0x6f, 0x1a, 0xd8, - 0x74, 0x55, 0xc7, 0xb5, 0xb1, 0xd6, 0x32, 0xcc, 0x06, 0xf5, 0x20, 0xf9, 0xea, 0xe0, 0x8e, 0xd6, - 0x74, 0xb0, 0x32, 0xce, 0x1e, 0x6f, 0x88, 0xa7, 0x84, 0x83, 0x2a, 0x90, 0x1d, 0xe0, 0x18, 0x0a, - 0x71, 0xb0, 0xc7, 0x1e, 0x87, 0xfc, 0x0b, 0x05, 0x28, 0x06, 0xe2, 0x6a, 0x74, 0x17, 0x8c, 0xbc, - 0xa8, 0xed, 0x69, 0xaa, 0xd8, 0x2b, 0x31, 0x49, 0x14, 0x49, 0xdd, 0x3a, 0xdf, 0x2f, 0xbd, 0x0b, - 0xa6, 0x28, 0x89, 0xd5, 0x71, 0xb1, 0xad, 0xea, 0x4d, 0xcd, 0x71, 0xa8, 0xd0, 0xf2, 0x94, 0x14, - 0x91, 0x67, 0x6b, 0xe4, 0xd1, 0x82, 0x78, 0x82, 0x1e, 0x85, 0x49, 0xca, 0xd1, 0xea, 0x34, 0x5d, - 0xa3, 0xdd, 0xc4, 0x2a, 0xd9, 0xbd, 0x39, 0xd4, 0x93, 0x78, 0x3d, 0x9b, 0x20, 0x14, 0xab, 0x9c, - 0x80, 0xf4, 0xc8, 0x41, 0x8b, 0x70, 0x27, 0x65, 0x6b, 0x60, 0x13, 0xdb, 0x9a, 0x8b, 0x55, 0xfc, - 0x52, 0x47, 0x6b, 0x3a, 0xaa, 0x66, 0xd6, 0xd5, 0x5d, 0xcd, 0xd9, 0x2d, 0x4f, 0x11, 0x80, 0x5a, - 0xa6, 0x2c, 0x29, 0x27, 0x08, 0xe1, 0x25, 0x4e, 0xb7, 0x44, 0xc9, 0xe6, 0xcd, 0xfa, 0x65, 0xcd, - 0xd9, 0x45, 0x55, 0x38, 0x4e, 0x51, 0x1c, 0xd7, 0x36, 0xcc, 0x86, 0xaa, 0xef, 0x62, 0xfd, 0x9a, - 0xda, 0x71, 0x77, 0x9e, 0x28, 0xdf, 0x1e, 0x6c, 0x9f, 0xf6, 0x70, 0x83, 0xd2, 0x2c, 0x10, 0x92, - 0x2d, 0x77, 0xe7, 0x09, 0xb4, 0x01, 0x23, 0x64, 0x32, 0x5a, 0xc6, 0xcb, 0x58, 0xdd, 0xb1, 0x6c, - 0xea, 0x1a, 0xc7, 0x62, 0x4c, 0x53, 0x40, 0x82, 0x73, 0x6b, 0x9c, 0x61, 0xd5, 0xaa, 0xe3, 0xea, - 0xe0, 0xc6, 0xfa, 0xd2, 0xd2, 0xa2, 0x52, 0x14, 0x28, 0x17, 0x2d, 0x9b, 0x28, 0x54, 0xc3, 0xf2, - 0x04, 0x5c, 0x64, 0x0a, 0xd5, 0xb0, 0x84, 0x78, 0x1f, 0x85, 0x49, 0x5d, 0x67, 0x63, 0x36, 0x74, - 0x95, 0xef, 0xb1, 0x9c, 0x72, 0x29, 0x24, 0x2c, 0x5d, 0xbf, 0xc4, 0x08, 0xb8, 0x8e, 0x3b, 0xe8, - 0x3c, 0x1c, 0xf3, 0x85, 0x15, 0x64, 0x9c, 0xe8, 0x1a, 0x65, 0x94, 0xf5, 0x51, 0x98, 0x6c, 0x1f, - 0x74, 0x33, 0xa2, 0x50, 0x8b, 0xed, 0x83, 0x28, 0xdb, 0xe3, 0x30, 0xd5, 0xde, 0x6d, 0x77, 0xf3, - 0x9d, 0x09, 0xf2, 0xa1, 0xf6, 0x6e, 0x3b, 0xca, 0x78, 0x2f, 0xdd, 0x70, 0xdb, 0x58, 0xd7, 0x5c, - 0x5c, 0x2f, 0xdf, 0x16, 0x24, 0x0f, 0x3c, 0x40, 0x67, 0xa1, 0xa4, 0xeb, 0x2a, 0x36, 0xb5, 0xed, - 0x26, 0x56, 0x35, 0x1b, 0x9b, 0x9a, 0x53, 0x9e, 0x09, 0x12, 0x8f, 0xe9, 0xfa, 0x12, 0x7d, 0x3a, - 0x4f, 0x1f, 0xa2, 0x33, 0x30, 0x61, 0x6d, 0xbf, 0xa8, 0x33, 0x95, 0x54, 0xdb, 0x36, 0xde, 0x31, - 0xf6, 0xcb, 0xf7, 0x50, 0xf9, 0x8e, 0x93, 0x07, 0x54, 0x21, 0xd7, 0x69, 0x35, 0x3a, 0x0d, 0x25, - 0xdd, 0xd9, 0xd5, 0xec, 0x36, 0xb5, 0xc9, 0x4e, 0x5b, 0xd3, 0x71, 0xf9, 0x5e, 0x46, 0xca, 0xea, - 0xaf, 0x88, 0x6a, 0xb2, 0x24, 0x9c, 0xeb, 0xc6, 0x8e, 0x2b, 0x10, 0x4f, 0xb1, 0x25, 0x41, 0xeb, - 0x38, 0xda, 0x2c, 0x94, 0x88, 0x28, 0x42, 0x0d, 0xcf, 0x52, 0xb2, 0xb1, 0xf6, 0x6e, 0x3b, 0xd8, - 0xee, 0xdd, 0x30, 0x4a, 0x28, 0xfd, 0x46, 0x4f, 0xb3, 0x80, 0xac, 0xbd, 0x1b, 0x68, 0xf1, 0x11, - 0x38, 0x4e, 0x88, 0x5a, 0xd8, 0xd5, 0xea, 0x9a, 0xab, 0x05, 0xa8, 0x1f, 0xa0, 0xd4, 0x44, 0xee, - 0xab, 0xfc, 0x61, 0xa8, 0x9f, 0x76, 0x67, 0xfb, 0xc0, 0xd3, 0xac, 0x07, 0x59, 0x3f, 0x49, 0x9d, - 0xd0, 0xad, 0xb7, 0x2c, 0xe8, 0x96, 0xab, 0x30, 0x12, 0x54, 0x7c, 0x54, 0x00, 0xa6, 0xfa, 0x25, - 0x89, 0x44, 0x41, 0x0b, 0x6b, 0x8b, 0x24, 0x7e, 0x79, 0xcf, 0x52, 0x29, 0x43, 0xe2, 0xa8, 0x95, - 0xe5, 0xcd, 0x25, 0x55, 0xd9, 0xba, 0xb2, 0xb9, 0xbc, 0xba, 0x54, 0xca, 0x06, 0x02, 0xf6, 0xa7, - 0x73, 0xf9, 0xfb, 0x4a, 0xa7, 0xe4, 0x6f, 0x66, 0x60, 0x2c, 0xbc, 0x03, 0x43, 0xef, 0x86, 0xdb, - 0x44, 0xba, 0xc4, 0xc1, 0xae, 0x7a, 0xdd, 0xb0, 0xe9, 0x8a, 0x6c, 0x69, 0xcc, 0x3b, 0x7a, 0x3a, - 0x31, 0xc5, 0xa9, 0x36, 0xb0, 0xfb, 0x9c, 0x61, 0x93, 0xf5, 0xd6, 0xd2, 0x5c, 0xb4, 0x02, 0x33, - 0xa6, 0xa5, 0x3a, 0xae, 0x66, 0xd6, 0x35, 0xbb, 0xae, 0xfa, 0x89, 0x2a, 0x55, 0xd3, 0x75, 0xec, - 0x38, 0x16, 0xf3, 0x84, 0x1e, 0xca, 0x1d, 0xa6, 0xb5, 0xc1, 0x89, 0x7d, 0x17, 0x31, 0xcf, 0x49, - 0x23, 0xfa, 0x9b, 0xed, 0xa5, 0xbf, 0xb7, 0x43, 0xa1, 0xa5, 0xb5, 0x55, 0x6c, 0xba, 0xf6, 0x01, - 0x8d, 0xbb, 0xf3, 0x4a, 0xbe, 0xa5, 0xb5, 0x97, 0x48, 0xf9, 0x6d, 0xd9, 0xfe, 0x3c, 0x9d, 0xcb, - 0xe7, 0x4b, 0x85, 0xa7, 0x73, 0xf9, 0x42, 0x09, 0xe4, 0xd7, 0xb2, 0x30, 0x12, 0x8c, 0xc3, 0xc9, - 0xb6, 0x46, 0xa7, 0x2e, 0x4b, 0xa2, 0x46, 0xed, 0xee, 0x43, 0xa3, 0xf6, 0xb9, 0x05, 0xe2, 0xcb, - 0xaa, 0x43, 0x2c, 0x3a, 0x56, 0x18, 0x27, 0x89, 0x23, 0x88, 0xb2, 0x61, 0x16, 0x8d, 0xe4, 0x15, - 0x5e, 0x42, 0x97, 0x60, 0xe8, 0x45, 0x87, 0x62, 0x0f, 0x51, 0xec, 0x7b, 0x0e, 0xc7, 0x7e, 0x7a, - 0x83, 0x82, 0x17, 0x9e, 0xde, 0x50, 0xaf, 0xac, 0x29, 0xab, 0xf3, 0x2b, 0x0a, 0x67, 0x47, 0x27, - 0x20, 0xd7, 0xd4, 0x5e, 0x3e, 0x08, 0x7b, 0x3d, 0x5a, 0x95, 0x76, 0x12, 0x4e, 0x40, 0xee, 0x3a, - 0xd6, 0xae, 0x85, 0x7d, 0x0d, 0xad, 0x7a, 0x0b, 0x17, 0xc3, 0x59, 0x18, 0xa4, 0xf2, 0x42, 0x00, - 0x5c, 0x62, 0xa5, 0x01, 0x94, 0x87, 0xdc, 0xc2, 0x9a, 0x42, 0x16, 0x44, 0x09, 0x46, 0x58, 0xad, - 0xba, 0xbe, 0xbc, 0xb4, 0xb0, 0x54, 0xca, 0xc8, 0x8f, 0xc2, 0x10, 0x13, 0x02, 0x59, 0x2c, 0x9e, - 0x18, 0x4a, 0x03, 0xbc, 0xc8, 0x31, 0x24, 0xf1, 0x74, 0x6b, 0xb5, 0xb6, 0xa4, 0x94, 0x32, 0xe1, - 0xa9, 0xce, 0x95, 0x06, 0x65, 0x07, 0x46, 0x82, 0x81, 0xf8, 0xdb, 0xb3, 0xc9, 0xfe, 0xaa, 0x04, - 0xc5, 0x40, 0x60, 0x4d, 0x22, 0x22, 0xad, 0xd9, 0xb4, 0xae, 0xab, 0x5a, 0xd3, 0xd0, 0x1c, 0xae, - 0x1a, 0x40, 0xab, 0xe6, 0x49, 0x4d, 0xda, 0xa9, 0x7b, 0x9b, 0x96, 0xc8, 0x60, 0x69, 0x48, 0xfe, - 0x8c, 0x04, 0xa5, 0x68, 0x64, 0x1b, 0xe9, 0xa6, 0xf4, 0xc3, 0xec, 0xa6, 0xfc, 0x29, 0x09, 0xc6, - 0xc2, 0xe1, 0x6c, 0xa4, 0x7b, 0x77, 0xfd, 0x50, 0xbb, 0xf7, 0x87, 0x19, 0x18, 0x0d, 0x05, 0xb1, - 0x69, 0x7b, 0xf7, 0x12, 0x4c, 0x18, 0x75, 0xdc, 0x6a, 0x5b, 0x2e, 0x36, 0xf5, 0x03, 0xb5, 0x89, - 0xf7, 0x70, 0xb3, 0x2c, 0x53, 0xa3, 0x71, 0xf6, 0xf0, 0x30, 0x79, 0x6e, 0xd9, 0xe7, 0x5b, 0x21, - 0x6c, 0xd5, 0xc9, 0xe5, 0xc5, 0xa5, 0xd5, 0xf5, 0xb5, 0xcd, 0xa5, 0x2b, 0x0b, 0x2f, 0xa8, 0x5b, - 0x57, 0x9e, 0xb9, 0xb2, 0xf6, 0xdc, 0x15, 0xa5, 0x64, 0x44, 0xc8, 0xde, 0xc2, 0x65, 0xbf, 0x0e, - 0xa5, 0x68, 0xa7, 0xd0, 0x6d, 0x10, 0xd7, 0xad, 0xd2, 0x00, 0x9a, 0x84, 0xf1, 0x2b, 0x6b, 0xea, - 0xc6, 0xf2, 0xe2, 0x92, 0xba, 0x74, 0xf1, 0xe2, 0xd2, 0xc2, 0xe6, 0x06, 0x4b, 0x7c, 0x78, 0xd4, - 0x9b, 0xa1, 0x05, 0x2e, 0x7f, 0x32, 0x0b, 0x93, 0x31, 0x3d, 0x41, 0xf3, 0x7c, 0xcb, 0xc2, 0x76, - 0x51, 0x0f, 0xa6, 0xe9, 0xfd, 0x1c, 0x89, 0x19, 0xd6, 0x35, 0xdb, 0xe5, 0x3b, 0x9c, 0xd3, 0x40, - 0xa4, 0x64, 0xba, 0xc6, 0x8e, 0x81, 0x6d, 0x9e, 0x27, 0x62, 0xfb, 0x98, 0x71, 0xbf, 0x9e, 0xa5, - 0x8a, 0x1e, 0x00, 0xd4, 0xb6, 0x1c, 0xc3, 0x35, 0xf6, 0xb0, 0x6a, 0x98, 0x22, 0xa9, 0x44, 0xf6, - 0x35, 0x39, 0xa5, 0x24, 0x9e, 0x2c, 0x9b, 0xae, 0x47, 0x6d, 0xe2, 0x86, 0x16, 0xa1, 0x26, 0xc6, - 0x3c, 0xab, 0x94, 0xc4, 0x13, 0x8f, 0xfa, 0x2e, 0x18, 0xa9, 0x5b, 0x1d, 0x12, 0xec, 0x31, 0x3a, - 0xe2, 0x3b, 0x24, 0xa5, 0xc8, 0xea, 0x3c, 0x12, 0x1e, 0xc6, 0xfb, 0xd9, 0xac, 0x11, 0xa5, 0xc8, - 0xea, 0x18, 0xc9, 0x29, 0x18, 0xd7, 0x1a, 0x0d, 0x9b, 0x80, 0x0b, 0x20, 0xb6, 0x31, 0x19, 0xf3, - 0xaa, 0x29, 0x61, 0xe5, 0x69, 0xc8, 0x0b, 0x39, 0x10, 0x57, 0x4d, 0x24, 0xa1, 0xb6, 0xd9, 0x6e, - 0x3b, 0x33, 0x5b, 0x50, 0xf2, 0xa6, 0x78, 0x78, 0x17, 0x8c, 0x18, 0x8e, 0xea, 0x27, 0xe7, 0x33, - 0x27, 0x33, 0xb3, 0x79, 0xa5, 0x68, 0x38, 0x5e, 0x62, 0x53, 0xfe, 0x7c, 0x06, 0xc6, 0xc2, 0x87, - 0x0b, 0x68, 0x11, 0xf2, 0x4d, 0x4b, 0xd7, 0xa8, 0x6a, 0xb1, 0x93, 0xad, 0xd9, 0x84, 0xf3, 0x88, - 0xb9, 0x15, 0x4e, 0xaf, 0x78, 0x9c, 0x95, 0xff, 0x28, 0x41, 0x5e, 0x54, 0xa3, 0xe3, 0x90, 0x6b, - 0x6b, 0xee, 0x2e, 0x85, 0x1b, 0xac, 0x65, 0x4a, 0x92, 0x42, 0xcb, 0xa4, 0xde, 0x69, 0x6b, 0x26, - 0x55, 0x01, 0x5e, 0x4f, 0xca, 0x64, 0x5e, 0x9b, 0x58, 0xab, 0xd3, 0x5d, 0x8f, 0xd5, 0x6a, 0x61, - 0xd3, 0x75, 0xc4, 0xbc, 0xf2, 0xfa, 0x05, 0x5e, 0x8d, 0xee, 0x87, 0x09, 0xd7, 0xd6, 0x8c, 0x66, - 0x88, 0x36, 0x47, 0x69, 0x4b, 0xe2, 0x81, 0x47, 0x5c, 0x85, 0x13, 0x02, 0xb7, 0x8e, 0x5d, 0x4d, - 0xdf, 0xc5, 0x75, 0x9f, 0x69, 0x88, 0x66, 0x37, 0x6e, 0xe3, 0x04, 0x8b, 0xfc, 0xb9, 0xe0, 0x95, - 0xbf, 0x29, 0xc1, 0x84, 0xd8, 0xa7, 0xd5, 0x3d, 0x61, 0xad, 0x02, 0x68, 0xa6, 0x69, 0xb9, 0x41, - 0x71, 0x75, 0xab, 0x72, 0x17, 0xdf, 0xdc, 0xbc, 0xc7, 0xa4, 0x04, 0x00, 0x2a, 0x2d, 0x00, 0xff, - 0x49, 0x4f, 0xb1, 0xcd, 0x40, 0x91, 0x9f, 0x1c, 0xd1, 0xe3, 0x47, 0xb6, 0xb3, 0x07, 0x56, 0x45, - 0x36, 0x74, 0x68, 0x0a, 0x06, 0xb7, 0x71, 0xc3, 0x30, 0x79, 0x3e, 0x98, 0x15, 0x44, 0xfe, 0x25, - 0xe7, 0xe5, 0x5f, 0x6a, 0x1f, 0x93, 0x60, 0x52, 0xb7, 0x5a, 0xd1, 0xfe, 0xd6, 0x4a, 0x91, 0xf4, - 0x82, 0x73, 0x59, 0x7a, 0xcf, 0x93, 0x0d, 0xc3, 0xdd, 0xed, 0x6c, 0xcf, 0xe9, 0x56, 0xeb, 0x6c, - 0xc3, 0x6a, 0x6a, 0x66, 0xc3, 0x3f, 0x3f, 0xa5, 0x3f, 0xf4, 0x07, 0x1b, 0xd8, 0x7c, 0xb0, 0x61, - 0x05, 0x4e, 0x53, 0x2f, 0xf8, 0x3f, 0xff, 0x5c, 0x92, 0x3e, 0x97, 0xc9, 0x5e, 0x5a, 0xaf, 0x7d, - 0x31, 0x53, 0xb9, 0xc4, 0x9a, 0x5b, 0x17, 0xe2, 0x51, 0xf0, 0x4e, 0x13, 0xeb, 0x64, 0xc8, 0xf0, - 0xbd, 0xfb, 0x61, 0xaa, 0x61, 0x35, 0x2c, 0x8a, 0x78, 0x96, 0xfc, 0xe2, 0x27, 0xb2, 0x05, 0xaf, - 0xb6, 0x92, 0x78, 0x7c, 0x5b, 0xbd, 0x02, 0x93, 0x9c, 0x58, 0xa5, 0x47, 0x42, 0x6c, 0x63, 0x83, - 0x0e, 0x4d, 0xab, 0x95, 0x7f, 0xeb, 0x3b, 0xd4, 0xa1, 0x2b, 0x13, 0x9c, 0x95, 0x3c, 0x63, 0x7b, - 0x9f, 0xaa, 0x02, 0xc7, 0x42, 0x78, 0x6c, 0xd9, 0x62, 0x3b, 0x01, 0xf1, 0xdf, 0x70, 0xc4, 0xc9, - 0x00, 0xe2, 0x06, 0x67, 0xad, 0x2e, 0xc0, 0x68, 0x3f, 0x58, 0xbf, 0xcb, 0xb1, 0x46, 0x70, 0x10, - 0xe4, 0x12, 0x8c, 0x53, 0x10, 0xbd, 0xe3, 0xb8, 0x56, 0x8b, 0xda, 0xc4, 0xc3, 0x61, 0xfe, 0xed, - 0x77, 0xd8, 0x3a, 0x1a, 0x23, 0x6c, 0x0b, 0x1e, 0x57, 0xb5, 0x0a, 0xf4, 0x14, 0xac, 0x8e, 0xf5, - 0x66, 0x02, 0xc2, 0xd7, 0x79, 0x47, 0x3c, 0xfa, 0xea, 0x55, 0x98, 0x22, 0xbf, 0xa9, 0xc9, 0x0a, - 0xf6, 0x24, 0x39, 0x07, 0x57, 0xfe, 0xe6, 0x07, 0xd8, 0x52, 0x9d, 0xf4, 0x00, 0x02, 0x7d, 0x0a, - 0xcc, 0x62, 0x03, 0xbb, 0x2e, 0xb6, 0x1d, 0x55, 0x6b, 0xc6, 0x75, 0x2f, 0x90, 0xc4, 0x28, 0xff, - 0xd2, 0xeb, 0xe1, 0x59, 0xbc, 0xc4, 0x38, 0xe7, 0x9b, 0xcd, 0xea, 0x16, 0xdc, 0x16, 0xa3, 0x15, - 0x29, 0x30, 0x3f, 0xc9, 0x31, 0xa7, 0xba, 0x34, 0x83, 0xc0, 0xae, 0x83, 0xa8, 0xf7, 0xe6, 0x32, - 0x05, 0xe6, 0x2f, 0x73, 0x4c, 0xc4, 0x79, 0xc5, 0x94, 0x12, 0xc4, 0xa7, 0x61, 0x62, 0x0f, 0xdb, - 0xdb, 0x96, 0xc3, 0x13, 0x47, 0x29, 0xe0, 0x3e, 0xc5, 0xe1, 0xc6, 0x39, 0x23, 0xcd, 0x24, 0x11, - 0xac, 0xf3, 0x90, 0xdf, 0xd1, 0x74, 0x9c, 0x02, 0xe2, 0xd3, 0x1c, 0x62, 0x98, 0xd0, 0x13, 0xd6, - 0x79, 0x18, 0x69, 0x58, 0xdc, 0x6b, 0x25, 0xb3, 0x7f, 0x86, 0xb3, 0x17, 0x05, 0x0f, 0x87, 0x68, - 0x5b, 0xed, 0x4e, 0x93, 0xb8, 0xb4, 0x64, 0x88, 0xbf, 0x2b, 0x20, 0x04, 0x0f, 0x87, 0xe8, 0x43, - 0xac, 0x9f, 0x15, 0x10, 0x4e, 0x40, 0x9e, 0x4f, 0x41, 0xd1, 0x32, 0x9b, 0x07, 0x96, 0x99, 0xa6, - 0x13, 0xbf, 0xc2, 0x11, 0x80, 0xb3, 0x10, 0x80, 0x0b, 0x50, 0x48, 0x3b, 0x11, 0x7f, 0xef, 0x75, - 0xb1, 0x3c, 0xc4, 0x0c, 0x5c, 0x82, 0x71, 0x61, 0xa0, 0x0c, 0xcb, 0x4c, 0x01, 0xf1, 0xf7, 0x39, - 0xc4, 0x58, 0x80, 0x8d, 0x0f, 0xc3, 0xc5, 0x8e, 0xdb, 0xc0, 0x69, 0x40, 0x3e, 0x2f, 0x86, 0xc1, - 0x59, 0xb8, 0x28, 0xb7, 0xb1, 0xa9, 0xef, 0xa6, 0x43, 0xf8, 0x82, 0x10, 0xa5, 0xe0, 0x21, 0x10, - 0x0b, 0x30, 0xda, 0xd2, 0x6c, 0x67, 0x57, 0x6b, 0xa6, 0x9a, 0x8e, 0x7f, 0xc0, 0x31, 0x46, 0x3c, - 0x26, 0x2e, 0x91, 0x8e, 0xd9, 0x0f, 0xcc, 0x17, 0x85, 0x44, 0x02, 0x6c, 0x7c, 0xe9, 0x39, 0x2e, - 0xcd, 0xb2, 0xf5, 0x83, 0xf6, 0x6b, 0x62, 0xe9, 0x31, 0xde, 0xd5, 0x20, 0xe2, 0x05, 0x28, 0x38, - 0xc6, 0xcb, 0xa9, 0x60, 0x7e, 0x5d, 0xcc, 0x34, 0x65, 0x20, 0xcc, 0x2f, 0xc0, 0x89, 0x58, 0x37, - 0x91, 0x02, 0xec, 0x1f, 0x72, 0xb0, 0xe3, 0x31, 0xae, 0x82, 0x9b, 0x84, 0x7e, 0x21, 0xff, 0x91, - 0x30, 0x09, 0x38, 0x82, 0xb5, 0x4e, 0xf6, 0x11, 0x8e, 0xb6, 0xd3, 0x9f, 0xd4, 0x7e, 0x43, 0x48, - 0x8d, 0xf1, 0x86, 0xa4, 0xb6, 0x09, 0xc7, 0x39, 0x62, 0x7f, 0xf3, 0xfa, 0x9b, 0xc2, 0xb0, 0x32, - 0xee, 0xad, 0xf0, 0xec, 0xbe, 0x17, 0x2a, 0x9e, 0x38, 0x45, 0xc0, 0xea, 0xa8, 0x2d, 0xad, 0x9d, - 0x02, 0xf9, 0xb7, 0x38, 0xb2, 0xb0, 0xf8, 0x5e, 0xc4, 0xeb, 0xac, 0x6a, 0x6d, 0x02, 0xfe, 0x3c, - 0x94, 0x05, 0x78, 0xc7, 0xb4, 0xb1, 0x6e, 0x35, 0x4c, 0xe3, 0x65, 0x5c, 0x4f, 0x01, 0xfd, 0x8f, - 0x23, 0x53, 0xb5, 0x15, 0x60, 0x27, 0xc8, 0xcb, 0x50, 0xf2, 0x62, 0x15, 0xd5, 0x68, 0xb5, 0x2d, - 0xdb, 0x4d, 0x40, 0xfc, 0x27, 0x62, 0xa6, 0x3c, 0xbe, 0x65, 0xca, 0x56, 0x5d, 0x82, 0x31, 0x5a, - 0x4c, 0xab, 0x92, 0x5f, 0xe2, 0x40, 0xa3, 0x3e, 0x17, 0x37, 0x1c, 0xba, 0xd5, 0x6a, 0x6b, 0x76, - 0x1a, 0xfb, 0xf7, 0x4f, 0x85, 0xe1, 0xe0, 0x2c, 0xdc, 0x70, 0xb8, 0x07, 0x6d, 0x4c, 0xbc, 0x7d, - 0x0a, 0x84, 0x2f, 0x0b, 0xc3, 0x21, 0x78, 0x38, 0x84, 0x08, 0x18, 0x52, 0x40, 0xfc, 0x33, 0x01, - 0x21, 0x78, 0x08, 0xc4, 0xb3, 0xbe, 0xa3, 0xb5, 0x71, 0xc3, 0x70, 0x5c, 0x9b, 0x85, 0xc9, 0x87, - 0x43, 0x7d, 0xe5, 0xf5, 0x70, 0x10, 0xa6, 0x04, 0x58, 0x89, 0x25, 0xe2, 0x69, 0x57, 0xba, 0x8b, - 0x4a, 0xee, 0xd8, 0x6f, 0x0b, 0x4b, 0x14, 0x60, 0x23, 0x7d, 0x0b, 0x44, 0x88, 0x44, 0xec, 0x3a, - 0xd9, 0x3b, 0xa4, 0x80, 0xfb, 0x9d, 0x48, 0xe7, 0x36, 0x04, 0x2f, 0xc1, 0x0c, 0xc4, 0x3f, 0x1d, - 0xf3, 0x1a, 0x3e, 0x48, 0xa5, 0x9d, 0xff, 0x3c, 0x12, 0xff, 0x6c, 0x31, 0x4e, 0x66, 0x43, 0xc6, - 0x23, 0xf1, 0x14, 0x4a, 0xba, 0x3f, 0x54, 0xfe, 0x2b, 0x6f, 0xf0, 0xf1, 0x86, 0xc3, 0xa9, 0xea, - 0x0a, 0x51, 0xf2, 0x70, 0xd0, 0x93, 0x0c, 0xf6, 0x81, 0x37, 0x3c, 0x3d, 0x0f, 0xc5, 0x3c, 0xd5, - 0x8b, 0x30, 0x1a, 0x0a, 0x78, 0x92, 0xa1, 0x3e, 0xc8, 0xa1, 0x46, 0x82, 0xf1, 0x4e, 0xf5, 0x51, - 0xc8, 0x91, 0xe0, 0x25, 0x99, 0xfd, 0xe7, 0x38, 0x3b, 0x25, 0xaf, 0xfe, 0x14, 0xe4, 0x45, 0xd0, - 0x92, 0xcc, 0xfa, 0x57, 0x39, 0xab, 0xc7, 0x42, 0xd8, 0x45, 0xc0, 0x92, 0xcc, 0xfe, 0x21, 0xc1, - 0x2e, 0x58, 0x08, 0x7b, 0x7a, 0x11, 0x7e, 0xf5, 0xaf, 0xe7, 0xb8, 0xd3, 0x11, 0xb2, 0xbb, 0x00, - 0xc3, 0x3c, 0x52, 0x49, 0xe6, 0xfe, 0x30, 0x6f, 0x5c, 0x70, 0x54, 0x1f, 0x87, 0xc1, 0x94, 0x02, - 0xff, 0x28, 0x67, 0x65, 0xf4, 0xd5, 0x05, 0x28, 0x06, 0xa2, 0x93, 0x64, 0xf6, 0xbf, 0xc1, 0xd9, - 0x83, 0x5c, 0xa4, 0xeb, 0x3c, 0x3a, 0x49, 0x06, 0xf8, 0x98, 0xe8, 0x3a, 0xe7, 0x20, 0x62, 0x13, - 0x81, 0x49, 0x32, 0xf7, 0xc7, 0x85, 0xd4, 0x05, 0x4b, 0xf5, 0x29, 0x28, 0x78, 0xce, 0x26, 0x99, - 0xff, 0x6f, 0x72, 0x7e, 0x9f, 0x87, 0x48, 0x20, 0xe0, 0xec, 0x92, 0x21, 0x7e, 0x41, 0x48, 0x20, - 0xc0, 0x45, 0x96, 0x51, 0x34, 0x80, 0x49, 0x46, 0xfa, 0x5b, 0x62, 0x19, 0x45, 0xe2, 0x17, 0x32, - 0x9b, 0xd4, 0xe6, 0x27, 0x43, 0x7c, 0x42, 0xcc, 0x26, 0xa5, 0x27, 0xdd, 0x88, 0x46, 0x04, 0xc9, - 0x18, 0x7f, 0x47, 0x74, 0x23, 0x12, 0x10, 0x54, 0xd7, 0x01, 0x75, 0x47, 0x03, 0xc9, 0x78, 0xaf, - 0x72, 0xbc, 0x89, 0xae, 0x60, 0xa0, 0xfa, 0x1c, 0x1c, 0x8f, 0x8f, 0x04, 0x92, 0x51, 0x7f, 0xe9, - 0x8d, 0xc8, 0xde, 0x2d, 0x18, 0x08, 0x54, 0x37, 0x7d, 0x97, 0x12, 0x8c, 0x02, 0x92, 0x61, 0x3f, - 0xf9, 0x46, 0xd8, 0x70, 0x07, 0x83, 0x80, 0xea, 0x3c, 0x80, 0xef, 0x80, 0x93, 0xb1, 0x3e, 0xc5, - 0xb1, 0x02, 0x4c, 0x64, 0x69, 0x70, 0xff, 0x9b, 0xcc, 0xff, 0x69, 0xb1, 0x34, 0x38, 0x07, 0x59, - 0x1a, 0xc2, 0xf5, 0x26, 0x73, 0x7f, 0x46, 0x2c, 0x0d, 0xc1, 0x42, 0x34, 0x3b, 0xe0, 0xdd, 0x92, - 0x11, 0x7e, 0x45, 0x68, 0x76, 0x80, 0xab, 0x7a, 0x05, 0x26, 0xba, 0x1c, 0x62, 0x32, 0xd4, 0xe7, - 0x38, 0x54, 0x29, 0xea, 0x0f, 0x83, 0xce, 0x8b, 0x3b, 0xc3, 0x64, 0xb4, 0x5f, 0x8d, 0x38, 0x2f, - 0xee, 0x0b, 0xab, 0x17, 0x20, 0x6f, 0x76, 0x9a, 0x4d, 0xb2, 0x78, 0xd0, 0xe1, 0x77, 0xfe, 0xca, - 0x7f, 0xfc, 0x03, 0x2e, 0x1d, 0xc1, 0x50, 0x7d, 0x14, 0x06, 0x71, 0x6b, 0x1b, 0xd7, 0x93, 0x38, - 0xbf, 0xf7, 0x03, 0x61, 0x30, 0x09, 0x75, 0xf5, 0x29, 0x00, 0x96, 0x1a, 0xa1, 0xc7, 0x83, 0x09, - 0xbc, 0xff, 0xe3, 0x07, 0xfc, 0x36, 0x8e, 0xcf, 0xe2, 0x03, 0xb0, 0xbb, 0x3d, 0x87, 0x03, 0xbc, - 0x1e, 0x06, 0xa0, 0x33, 0x72, 0x1e, 0x86, 0x5f, 0x74, 0x2c, 0xd3, 0xd5, 0x1a, 0x49, 0xdc, 0xff, - 0x93, 0x73, 0x0b, 0x7a, 0x22, 0xb0, 0x96, 0x65, 0x63, 0x57, 0x6b, 0x38, 0x49, 0xbc, 0xff, 0x8b, - 0xf3, 0x7a, 0x0c, 0x84, 0x59, 0xd7, 0x1c, 0x37, 0xcd, 0xb8, 0xff, 0x44, 0x30, 0x0b, 0x06, 0xd2, - 0x69, 0xf2, 0xfb, 0x1a, 0x3e, 0x48, 0xe2, 0xfd, 0x53, 0xd1, 0x69, 0x4e, 0x5f, 0xfd, 0x29, 0x28, - 0x90, 0x9f, 0xec, 0x8a, 0x5d, 0x02, 0xf3, 0xff, 0xe6, 0xcc, 0x3e, 0x07, 0x69, 0xd9, 0x71, 0xeb, - 0xae, 0x91, 0x2c, 0xec, 0x9b, 0x7c, 0xa6, 0x05, 0x7d, 0x75, 0x1e, 0x8a, 0x8e, 0x5b, 0xaf, 0x77, - 0x78, 0x7c, 0x9a, 0xc0, 0xfe, 0x7f, 0x7e, 0xe0, 0xa5, 0x2c, 0x3c, 0x1e, 0x32, 0xdb, 0xd7, 0xaf, - 0xb9, 0x6d, 0x8b, 0x1e, 0x81, 0x24, 0x21, 0xbc, 0xc1, 0x11, 0x02, 0x2c, 0xd5, 0x05, 0x18, 0x21, - 0x63, 0xb1, 0x71, 0x1b, 0xd3, 0xf3, 0xaa, 0x04, 0x88, 0xff, 0xcb, 0x05, 0x10, 0x62, 0xaa, 0xfd, - 0xec, 0xd7, 0x5f, 0x9b, 0x96, 0xbe, 0xf1, 0xda, 0xb4, 0xf4, 0x87, 0xaf, 0x4d, 0x4b, 0x1f, 0xff, - 0xf6, 0xf4, 0xc0, 0x37, 0xbe, 0x3d, 0x3d, 0xf0, 0x07, 0xdf, 0x9e, 0x1e, 0x88, 0x4f, 0x1b, 0xc3, - 0x25, 0xeb, 0x92, 0xc5, 0x12, 0xc6, 0xef, 0x91, 0x43, 0xe9, 0xe2, 0x86, 0xe5, 0x67, 0x6b, 0xbd, - 0x4d, 0x0e, 0x7c, 0x30, 0x0b, 0xd3, 0xba, 0xe5, 0xb4, 0x2c, 0xe7, 0xec, 0xb6, 0xe6, 0xe0, 0xb3, - 0x7b, 0x0f, 0x6d, 0x63, 0x57, 0x7b, 0xe8, 0xac, 0x6e, 0x19, 0x26, 0x4f, 0xfb, 0x4e, 0xb2, 0xe7, - 0x73, 0xe4, 0xf9, 0x1c, 0x7f, 0x5e, 0x89, 0xcd, 0x10, 0xcb, 0x97, 0x20, 0xb7, 0x60, 0x19, 0x26, - 0x9a, 0x82, 0xc1, 0x3a, 0x36, 0xad, 0x16, 0xbf, 0x01, 0xc6, 0x0a, 0xe8, 0x6e, 0x18, 0xd2, 0x5a, - 0x56, 0xc7, 0x74, 0x59, 0xba, 0xbc, 0x56, 0xfc, 0xfa, 0x8d, 0x99, 0x81, 0xff, 0x7a, 0x63, 0x26, - 0xbb, 0x6c, 0xba, 0x0a, 0x7f, 0x54, 0xcd, 0x7d, 0xf7, 0xb3, 0x33, 0x92, 0xfc, 0x34, 0x0c, 0x2f, - 0x62, 0xfd, 0x28, 0x58, 0x8b, 0x58, 0x8f, 0x60, 0x9d, 0x86, 0xfc, 0xb2, 0xe9, 0xb2, 0x3b, 0x7a, - 0x77, 0x42, 0xd6, 0x30, 0xd9, 0xad, 0x8f, 0x48, 0xfb, 0xa4, 0x9e, 0x90, 0x2e, 0x62, 0xdd, 0x23, - 0xad, 0x63, 0x3d, 0x4a, 0x4a, 0xe0, 0x49, 0x7d, 0x6d, 0xf1, 0x0f, 0xfe, 0x68, 0x7a, 0xe0, 0x95, - 0xd7, 0xa6, 0x07, 0x7a, 0xcd, 0x4f, 0x48, 0xfc, 0x5c, 0xc4, 0xec, 0xcf, 0x83, 0x4e, 0xfd, 0xda, - 0x59, 0xb2, 0xb4, 0x9c, 0xed, 0x21, 0x2a, 0xb7, 0x87, 0xe1, 0x77, 0x32, 0x70, 0x2f, 0xbd, 0x75, - 0x6d, 0xb7, 0x0c, 0xd3, 0x3d, 0xab, 0xdb, 0x07, 0x6d, 0xd7, 0x3a, 0xdb, 0xc2, 0xf6, 0xb5, 0x26, - 0xe6, 0x7f, 0xf8, 0x6c, 0x94, 0x7d, 0xb2, 0x39, 0x46, 0x36, 0xc7, 0x9e, 0xf7, 0x98, 0x92, 0x05, - 0x18, 0x5e, 0xb7, 0x2d, 0x6b, 0x67, 0xad, 0x8d, 0x10, 0xbf, 0x48, 0xce, 0x2f, 0x28, 0x52, 0x6b, - 0x50, 0x82, 0xec, 0x35, 0x7c, 0x40, 0x85, 0x38, 0xa2, 0x90, 0x9f, 0x84, 0xaa, 0xae, 0xb9, 0x1a, - 0x3d, 0xb7, 0x18, 0x51, 0xe8, 0x6f, 0xb9, 0x06, 0x83, 0x14, 0x04, 0x9d, 0x87, 0xac, 0xd5, 0x76, - 0xf8, 0x21, 0xcb, 0x5d, 0x73, 0xbd, 0xfa, 0x32, 0xc7, 0x9b, 0xac, 0xe5, 0x88, 0xdc, 0x14, 0xc2, - 0x53, 0x5b, 0xff, 0xf3, 0x3f, 0x9a, 0x96, 0xbe, 0xf0, 0xda, 0xb4, 0xd4, 0x53, 0x60, 0x73, 0x01, - 0x81, 0x05, 0x84, 0xd1, 0x4b, 0x2e, 0x9e, 0xf0, 0x3e, 0x92, 0x81, 0xe9, 0x00, 0x51, 0xd3, 0xd8, - 0x76, 0xce, 0x5e, 0xdb, 0x63, 0x12, 0xe6, 0x52, 0x43, 0x81, 0x9e, 0x92, 0xe7, 0x73, 0xd7, 0xf6, - 0x7a, 0xc8, 0x6b, 0x0e, 0x72, 0xeb, 0x9a, 0x61, 0x0b, 0xc1, 0x48, 0xbe, 0x60, 0xa6, 0xfc, 0x3b, - 0xc6, 0xa4, 0x8e, 0x15, 0xe4, 0x73, 0x90, 0x7f, 0x66, 0xf9, 0xb1, 0x47, 0xd2, 0xf0, 0x64, 0x39, - 0x4f, 0x4d, 0x11, 0xa2, 0xf8, 0x4a, 0x8c, 0x38, 0xbe, 0xfa, 0xed, 0x69, 0xc9, 0x13, 0xc9, 0x6c, - 0xa2, 0x48, 0xf8, 0x68, 0x3d, 0x61, 0x7c, 0x3c, 0x03, 0x33, 0xd1, 0xc3, 0x19, 0x62, 0x11, 0x1d, - 0x57, 0x6b, 0xb5, 0x7b, 0xbd, 0x5a, 0x77, 0x01, 0x0a, 0x9b, 0x82, 0x06, 0x95, 0x61, 0xd8, 0xc1, - 0xba, 0x65, 0xd6, 0x1d, 0x3a, 0x92, 0xac, 0x22, 0x8a, 0x64, 0x34, 0xa6, 0x66, 0x5a, 0x0e, 0xbf, - 0xf9, 0xcb, 0x0a, 0xb5, 0xbf, 0x2d, 0xf5, 0x67, 0xa2, 0xc6, 0xbc, 0xa6, 0xe8, 0x42, 0x5b, 0x97, - 0xde, 0x73, 0xff, 0x61, 0xe7, 0x5a, 0x74, 0x1a, 0xfd, 0x21, 0x04, 0x0e, 0xb1, 0xa6, 0xa3, 0x87, - 0x58, 0xcf, 0xe1, 0x66, 0xf3, 0x19, 0xd3, 0xba, 0x6e, 0x6e, 0x86, 0x16, 0xd7, 0xcf, 0x67, 0x60, - 0xba, 0xeb, 0xbc, 0x8a, 0x5b, 0xf9, 0x5e, 0x12, 0xa9, 0x42, 0x7e, 0x51, 0x38, 0x8f, 0x7e, 0x05, - 0xf2, 0x89, 0x3e, 0x05, 0x32, 0x2a, 0x5a, 0x12, 0xf2, 0x38, 0x93, 0x2c, 0x0f, 0xd1, 0xff, 0x23, - 0x88, 0xe3, 0x83, 0x4f, 0xc2, 0x5d, 0x01, 0x05, 0xd2, 0xb6, 0x75, 0xe3, 0x2c, 0x17, 0x72, 0x60, - 0xc5, 0x1c, 0x0b, 0xac, 0x18, 0x42, 0x32, 0x47, 0x1f, 0xc6, 0x2f, 0x9a, 0x4a, 0x3a, 0xdb, 0x55, - 0x49, 0x58, 0xa5, 0x95, 0x24, 0xc5, 0xad, 0x24, 0x4c, 0xa3, 0xfc, 0x67, 0x83, 0x30, 0xac, 0xe0, - 0x97, 0x3a, 0xd8, 0xa1, 0x6f, 0x86, 0x62, 0x7d, 0xd7, 0xe2, 0x2f, 0x1d, 0xc8, 0x73, 0xb1, 0xe3, - 0x99, 0xe3, 0xd4, 0x4b, 0xfa, 0xae, 0x75, 0x79, 0x40, 0xa1, 0x1c, 0xf4, 0x55, 0xbc, 0x66, 0xc7, - 0xd9, 0xe5, 0x77, 0xc3, 0xef, 0x3e, 0x9c, 0xf5, 0x22, 0x21, 0xbd, 0x3c, 0xa0, 0x30, 0x1e, 0xd2, - 0x2c, 0x7d, 0x8d, 0x30, 0x97, 0xa6, 0xd9, 0x65, 0x73, 0x87, 0x36, 0x4b, 0x38, 0xd0, 0x65, 0x00, - 0x07, 0xbb, 0xe2, 0x46, 0xc9, 0x20, 0xe5, 0x3f, 0x75, 0x38, 0xff, 0x06, 0x76, 0x59, 0xf4, 0x70, - 0x79, 0x40, 0x29, 0x38, 0xa2, 0x40, 0x90, 0x0c, 0xd3, 0x70, 0x55, 0x7d, 0x57, 0x33, 0x4c, 0x7a, - 0x15, 0x22, 0x11, 0x69, 0xd9, 0x34, 0xdc, 0x05, 0x42, 0x4e, 0x90, 0x0c, 0x51, 0x20, 0xa2, 0x78, - 0xa9, 0x83, 0xf9, 0x15, 0xc4, 0x44, 0x51, 0x3c, 0x4b, 0x48, 0x89, 0x28, 0x28, 0x0f, 0x7a, 0x06, - 0x8a, 0xf4, 0xd4, 0x5b, 0xdd, 0x6e, 0x5a, 0xfa, 0x35, 0xfe, 0x82, 0xcf, 0xec, 0xe1, 0x10, 0x35, - 0xc2, 0x50, 0x23, 0xf4, 0x97, 0x07, 0x14, 0xd8, 0xf6, 0x4a, 0xa8, 0x06, 0x79, 0x76, 0xfb, 0xda, - 0xdd, 0xe7, 0xaf, 0x68, 0xde, 0x7b, 0x38, 0x12, 0xbd, 0x88, 0xbd, 0xb9, 0x7f, 0x79, 0x40, 0x19, - 0xd6, 0xd9, 0x4f, 0xb4, 0x04, 0x05, 0x6c, 0xd6, 0x79, 0x77, 0x8a, 0xfc, 0x65, 0xb6, 0xc3, 0xf5, - 0xc2, 0xac, 0x8b, 0xce, 0xe4, 0x31, 0xff, 0x8d, 0x9e, 0x84, 0x21, 0xdd, 0x6a, 0xb5, 0x0c, 0x97, - 0xbe, 0xea, 0x59, 0x3c, 0x77, 0x4f, 0x42, 0x47, 0x28, 0xed, 0xe5, 0x01, 0x85, 0x73, 0x91, 0xe9, - 0xa9, 0xe3, 0xa6, 0xb1, 0x87, 0x6d, 0x32, 0x98, 0xc9, 0x34, 0xd3, 0xb3, 0xc8, 0xe8, 0xe9, 0x70, - 0x0a, 0x75, 0x51, 0xa8, 0x0d, 0x73, 0xf7, 0x22, 0x9f, 0x82, 0x62, 0x40, 0x93, 0x89, 0xc5, 0xe2, - 0x1b, 0x41, 0xee, 0xec, 0x45, 0x51, 0x1e, 0x83, 0x91, 0xa0, 0xde, 0xca, 0x2d, 0x8f, 0x91, 0xde, - 0xa5, 0x28, 0xc3, 0xf0, 0x1e, 0xb6, 0x1d, 0x76, 0x91, 0x82, 0x32, 0xf2, 0x22, 0xba, 0x1b, 0x46, - 0xa9, 0xdc, 0x54, 0xf1, 0x3c, 0x43, 0xef, 0xed, 0x8c, 0xd0, 0xca, 0xab, 0x9c, 0x68, 0x06, 0x8a, - 0xed, 0x73, 0x6d, 0x8f, 0x24, 0x4b, 0x49, 0xa0, 0x7d, 0xae, 0xcd, 0x09, 0xe4, 0x2a, 0x94, 0xa2, - 0xaa, 0x1b, 0xf4, 0x9a, 0x85, 0x18, 0xaf, 0x59, 0x10, 0x9e, 0xf6, 0x37, 0x33, 0x1e, 0xb3, 0xa7, - 0xad, 0x64, 0xb9, 0x11, 0x23, 0x41, 0xb9, 0x8b, 0xe7, 0x2a, 0x5d, 0x11, 0xb6, 0xe7, 0x6b, 0x6a, - 0x79, 0x12, 0x8a, 0x7c, 0xfc, 0x5b, 0x33, 0x92, 0x42, 0x39, 0xd0, 0x09, 0xa2, 0x50, 0x9a, 0x61, - 0xaa, 0x46, 0x5d, 0xbc, 0xd4, 0x4d, 0xcb, 0xcb, 0x75, 0xf4, 0x2c, 0x94, 0x74, 0xcb, 0x74, 0xb0, - 0xe9, 0x74, 0x1c, 0xb5, 0xad, 0xd9, 0x5a, 0xcb, 0x7f, 0xf7, 0x31, 0x7e, 0x9a, 0x16, 0x04, 0xf9, - 0x3a, 0xa5, 0x56, 0xc6, 0xf5, 0x70, 0x05, 0x5a, 0x01, 0xd8, 0xd3, 0x9a, 0x46, 0x5d, 0x73, 0x2d, - 0xdb, 0xe1, 0xef, 0x08, 0xf5, 0x02, 0xbb, 0x2a, 0x08, 0xb7, 0xda, 0x75, 0xcd, 0xc5, 0x3c, 0x88, - 0x0a, 0xf0, 0xa3, 0xfb, 0x60, 0x5c, 0x6b, 0xb7, 0x55, 0xc7, 0xd5, 0x5c, 0xac, 0x6e, 0x1f, 0xb8, - 0xd8, 0xa1, 0xf6, 0x62, 0x44, 0x19, 0xd5, 0xda, 0xed, 0x0d, 0x52, 0x5b, 0x23, 0x95, 0x72, 0xdd, - 0x9b, 0x6d, 0xba, 0x34, 0xbd, 0xd8, 0x4e, 0xf2, 0x63, 0x3b, 0x52, 0x47, 0x6f, 0xb8, 0x30, 0x19, - 0x88, 0x4b, 0x41, 0x43, 0xbb, 0xd8, 0x68, 0xec, 0xba, 0x74, 0xd8, 0x59, 0x85, 0x97, 0xc8, 0xc4, - 0xb4, 0x6d, 0x6b, 0x8f, 0x5d, 0xda, 0xca, 0x2b, 0xac, 0x20, 0xff, 0x62, 0x06, 0x26, 0xba, 0x96, - 0x2f, 0xc1, 0xa5, 0xef, 0x59, 0xf0, 0xb6, 0xc8, 0x6f, 0x74, 0x81, 0xe0, 0x6a, 0x75, 0xfe, 0xee, - 0x50, 0xf1, 0xdc, 0x9d, 0x3d, 0x24, 0x70, 0x99, 0x12, 0xf1, 0x81, 0x73, 0x16, 0xb4, 0x05, 0xa5, - 0xa6, 0xe6, 0xb8, 0x2a, 0x5b, 0x45, 0xec, 0x65, 0xed, 0xec, 0xa1, 0x96, 0x60, 0x45, 0x13, 0xab, - 0x8f, 0x28, 0x37, 0x87, 0x1b, 0x6b, 0x86, 0x6a, 0xd1, 0xf3, 0x30, 0xb5, 0x7d, 0xf0, 0xb2, 0x66, - 0xba, 0x86, 0x49, 0xef, 0x7c, 0x85, 0xe7, 0x68, 0xa6, 0x07, 0xf4, 0xd2, 0x9e, 0x51, 0xc7, 0xa6, - 0x2e, 0x26, 0x67, 0xd2, 0x83, 0xf0, 0x26, 0xcf, 0x91, 0x9f, 0x87, 0xb1, 0xb0, 0x2d, 0x42, 0x63, - 0x90, 0x71, 0xf7, 0xb9, 0x44, 0x32, 0xee, 0x3e, 0x7a, 0x8c, 0x47, 0xe4, 0x19, 0x7a, 0x69, 0xb1, - 0x97, 0xb3, 0xe0, 0xdc, 0xfe, 0x2b, 0x9d, 0xb2, 0xec, 0xad, 0x04, 0xcf, 0x30, 0x44, 0xb1, 0xe5, - 0xd3, 0x30, 0x1e, 0x31, 0x62, 0x81, 0x69, 0x95, 0x82, 0xd3, 0x2a, 0x8f, 0xc3, 0x68, 0xc8, 0x56, - 0xc9, 0xbf, 0x37, 0x04, 0x79, 0x05, 0x3b, 0x6d, 0xa2, 0xc4, 0xe8, 0x32, 0x14, 0xf0, 0xbe, 0x8e, - 0xdb, 0xae, 0xb0, 0x0a, 0x87, 0x19, 0x71, 0xc6, 0xb3, 0x24, 0xe8, 0x89, 0xb9, 0xf2, 0x98, 0xd1, - 0xf9, 0x90, 0x4b, 0xbe, 0x3b, 0x09, 0x24, 0xe8, 0x93, 0xdf, 0x1d, 0xf6, 0xc9, 0xf7, 0x24, 0xf0, - 0x46, 0x9c, 0xf2, 0xf9, 0x90, 0x53, 0x4e, 0x6a, 0x38, 0xe4, 0x95, 0x97, 0x63, 0xbc, 0x72, 0xd2, - 0xf0, 0x7b, 0xb8, 0xe5, 0xe5, 0x18, 0xb7, 0x3c, 0x9b, 0xd8, 0x97, 0x58, 0xbf, 0xfc, 0xee, 0xb0, - 0x5f, 0x4e, 0x12, 0x47, 0xc4, 0x31, 0xaf, 0xc4, 0x39, 0xe6, 0xd3, 0x09, 0x18, 0x3d, 0x3d, 0xf3, - 0x42, 0x97, 0x67, 0xbe, 0x2f, 0x01, 0x2a, 0xc6, 0x35, 0x2f, 0x87, 0x7c, 0x22, 0xa4, 0x92, 0x4d, - 0xbc, 0x53, 0x44, 0x17, 0xbb, 0xbd, 0xfc, 0xa9, 0x24, 0x55, 0x8b, 0x73, 0xf3, 0x4f, 0x45, 0xdc, - 0xfc, 0xbd, 0x49, 0xa3, 0x8a, 0xf8, 0x79, 0xdf, 0x3b, 0x9f, 0x26, 0xf6, 0x31, 0xb2, 0x32, 0x88, - 0x2d, 0xc5, 0xb6, 0x6d, 0xd9, 0x22, 0xaf, 0x41, 0x0b, 0xf2, 0x2c, 0xb1, 0xd8, 0xbe, 0xfe, 0x1f, - 0xe2, 0xc9, 0xe9, 0xa2, 0x0d, 0x68, 0xbb, 0xfc, 0x15, 0xc9, 0xe7, 0xa5, 0x96, 0x2d, 0x68, 0xed, - 0x0b, 0xdc, 0xda, 0x07, 0x1c, 0x7c, 0x26, 0xec, 0xe0, 0x67, 0xa0, 0x48, 0x7c, 0x4a, 0xc4, 0x77, - 0x6b, 0x6d, 0xe1, 0xbb, 0xd1, 0x19, 0x98, 0xa0, 0xf6, 0x97, 0x85, 0x01, 0xdc, 0x90, 0xe4, 0xa8, - 0x21, 0x19, 0x27, 0x0f, 0x98, 0x04, 0x99, 0xa3, 0x78, 0x10, 0x26, 0x03, 0xb4, 0x04, 0x97, 0xfa, - 0x02, 0xe6, 0xa4, 0x4a, 0x1e, 0xf5, 0x7c, 0xbb, 0x7d, 0x59, 0x73, 0x76, 0xe5, 0x55, 0x5f, 0x40, - 0x7e, 0x5c, 0x80, 0x20, 0xa7, 0x5b, 0x75, 0x36, 0xee, 0x51, 0x85, 0xfe, 0x26, 0xb1, 0x42, 0xd3, - 0x6a, 0xf0, 0x8b, 0xa8, 0xe4, 0x27, 0xa1, 0xf2, 0x96, 0x76, 0x81, 0xad, 0x59, 0xf9, 0x4b, 0x92, - 0x8f, 0xe7, 0x87, 0x0a, 0x71, 0x5e, 0x5d, 0xba, 0x95, 0x5e, 0x3d, 0xf3, 0xe6, 0xbc, 0xba, 0xfc, - 0x86, 0xe4, 0x4f, 0xa9, 0xe7, 0xaf, 0x8f, 0x26, 0x02, 0xa2, 0x5d, 0xec, 0x85, 0x7c, 0x76, 0x61, - 0x9a, 0x15, 0x44, 0xa8, 0x35, 0x14, 0x93, 0xa0, 0x18, 0x0e, 0x24, 0x35, 0xd0, 0xa3, 0xd4, 0xcf, - 0x5b, 0x3b, 0xdc, 0x34, 0xcc, 0x24, 0x24, 0x7a, 0x14, 0x46, 0x1d, 0xf0, 0x2f, 0x85, 0x50, 0xd8, - 0x70, 0x07, 0x14, 0x48, 0xd7, 0xd9, 0x5b, 0x68, 0xc0, 0xb3, 0xbc, 0xa2, 0x42, 0xae, 0x03, 0xea, - 0xb6, 0x31, 0xe8, 0x0a, 0x0c, 0xe1, 0x3d, 0x7a, 0x29, 0x98, 0x25, 0x9b, 0xee, 0xe8, 0xe9, 0x88, - 0xb1, 0xe9, 0xd6, 0xca, 0x44, 0x98, 0xdf, 0xbb, 0x31, 0x53, 0x62, 0x3c, 0x0f, 0x58, 0x2d, 0xc3, - 0xc5, 0xad, 0xb6, 0x7b, 0xa0, 0x70, 0x14, 0xf9, 0x43, 0x19, 0xe2, 0x0f, 0x43, 0xf6, 0x27, 0x56, - 0xbc, 0x62, 0xd1, 0x64, 0x02, 0x21, 0x52, 0x3a, 0x91, 0xdf, 0x09, 0xd0, 0xd0, 0x1c, 0xf5, 0xba, - 0x66, 0xba, 0xb8, 0xce, 0xe5, 0x5e, 0x68, 0x68, 0xce, 0x73, 0xb4, 0x82, 0xc4, 0x9b, 0xe4, 0x71, - 0xc7, 0xc1, 0x75, 0x3a, 0x01, 0x59, 0x65, 0xb8, 0xa1, 0x39, 0x5b, 0x0e, 0xae, 0x07, 0xc6, 0x3a, - 0x7c, 0x2b, 0xc6, 0x1a, 0x96, 0x77, 0x3e, 0x2a, 0xef, 0x0f, 0x67, 0xfc, 0xd5, 0xe1, 0x87, 0x0f, - 0x3f, 0x99, 0xb2, 0xf8, 0x34, 0xdd, 0x53, 0x84, 0x9d, 0x00, 0x7a, 0x01, 0x26, 0xbc, 0x55, 0xa9, - 0x76, 0xe8, 0x6a, 0x15, 0x5a, 0xd8, 0xdf, 0xe2, 0x2e, 0xed, 0x85, 0xab, 0x1d, 0xf4, 0x3e, 0xb8, - 0x2d, 0x62, 0x83, 0xbc, 0x06, 0x32, 0x7d, 0x99, 0xa2, 0x63, 0x61, 0x53, 0x24, 0xf0, 0x7d, 0xe9, - 0x65, 0x6f, 0xc9, 0xaa, 0xb9, 0x87, 0x84, 0xb0, 0x41, 0xf7, 0x16, 0xa7, 0x13, 0xf2, 0xef, 0x4b, - 0x30, 0x1e, 0xe9, 0x20, 0x7a, 0x02, 0x06, 0x99, 0x07, 0x96, 0x0e, 0x4d, 0x84, 0x50, 0x89, 0xf3, - 0x31, 0x31, 0x06, 0x34, 0x0f, 0x79, 0xcc, 0xa3, 0x6b, 0x2e, 0x94, 0x7b, 0x13, 0x82, 0x70, 0xce, - 0xef, 0xb1, 0xa1, 0x45, 0x28, 0x78, 0xa2, 0x4f, 0xd8, 0xb9, 0x79, 0x33, 0xc7, 0x41, 0x7c, 0x46, - 0x79, 0x01, 0x8a, 0x81, 0xee, 0xb1, 0x57, 0x32, 0xf7, 0xf9, 0x76, 0x8b, 0x05, 0xd0, 0xf9, 0x96, - 0xb6, 0x4f, 0x77, 0x5a, 0xe8, 0x36, 0x18, 0x26, 0x0f, 0x1b, 0xfc, 0x9d, 0xb5, 0xac, 0x32, 0xd4, - 0xd2, 0xf6, 0x2f, 0x69, 0x8e, 0xfc, 0xf3, 0x12, 0x8c, 0x85, 0xfb, 0x89, 0xee, 0x07, 0x44, 0x68, - 0xb5, 0x06, 0x56, 0xcd, 0x4e, 0x8b, 0xf9, 0x48, 0x81, 0x38, 0xde, 0xd2, 0xf6, 0xe7, 0x1b, 0xf8, - 0x4a, 0xa7, 0x45, 0x9b, 0x76, 0xd0, 0x2a, 0x94, 0x04, 0xb1, 0x48, 0x76, 0x71, 0xa9, 0x9c, 0xe8, - 0xfe, 0x6c, 0x10, 0x27, 0x60, 0x7b, 0xdd, 0x57, 0xc9, 0x5e, 0x77, 0x8c, 0xe1, 0x89, 0x27, 0xf2, - 0xa3, 0x30, 0x1e, 0x19, 0x31, 0x92, 0x61, 0xb4, 0xdd, 0xd9, 0x56, 0xaf, 0xe1, 0x03, 0xfa, 0x15, - 0x02, 0xa6, 0xea, 0x05, 0xa5, 0xd8, 0xee, 0x6c, 0x3f, 0x83, 0x0f, 0x68, 0xee, 0x50, 0xd6, 0x61, - 0x2c, 0xbc, 0x99, 0x22, 0x8e, 0xc3, 0xb6, 0x3a, 0x66, 0x5d, 0x7c, 0x5f, 0x82, 0x16, 0xd0, 0x05, - 0x18, 0xdc, 0xb3, 0x98, 0x36, 0x1f, 0xb6, 0x7b, 0xba, 0x6a, 0xb9, 0x38, 0xb0, 0x25, 0x63, 0x3c, - 0xb2, 0x03, 0x83, 0x54, 0x2f, 0x63, 0x0f, 0x2a, 0xae, 0x02, 0x68, 0xae, 0x6b, 0x1b, 0xdb, 0x1d, - 0x1f, 0xbe, 0x3c, 0xd7, 0x9d, 0xd6, 0x9f, 0x5b, 0xd7, 0x0c, 0xbb, 0x76, 0x07, 0xd7, 0xec, 0x29, - 0x9f, 0x27, 0xa0, 0xdd, 0x01, 0x24, 0xf9, 0xf5, 0x1c, 0x0c, 0xb1, 0xed, 0x26, 0x7a, 0x32, 0x9c, - 0xfc, 0x28, 0x9e, 0x9b, 0xee, 0xd5, 0x7d, 0x46, 0xc5, 0x7b, 0xef, 0x45, 0x50, 0xf7, 0x45, 0x33, - 0x0a, 0xb5, 0xe2, 0x6b, 0x37, 0x66, 0x86, 0x69, 0xf4, 0xb1, 0xbc, 0xe8, 0xa7, 0x17, 0x7a, 0xed, - 0xae, 0x45, 0x2e, 0x23, 0xd7, 0x77, 0x2e, 0xe3, 0x32, 0x8c, 0x06, 0xc2, 0x2d, 0xa3, 0xce, 0xf7, - 0x29, 0xd3, 0x87, 0x2d, 0xba, 0xe5, 0x45, 0xde, 0xff, 0xa2, 0x17, 0x8e, 0x2d, 0xd7, 0xd1, 0x6c, - 0x78, 0x93, 0x4d, 0xa3, 0x36, 0x16, 0x2e, 0x04, 0xf6, 0xcd, 0xf4, 0xd3, 0x08, 0xb7, 0x43, 0x81, - 0xbe, 0x5f, 0x4e, 0x49, 0x58, 0xf4, 0x90, 0x27, 0x15, 0xf4, 0xe1, 0x29, 0x18, 0xf7, 0x03, 0x1b, - 0x46, 0x92, 0x67, 0x28, 0x7e, 0x35, 0x25, 0x7c, 0x17, 0x4c, 0x99, 0x78, 0xdf, 0x55, 0xa3, 0xd4, - 0x05, 0x4a, 0x8d, 0xc8, 0xb3, 0xab, 0x61, 0x8e, 0x7b, 0x61, 0xcc, 0x37, 0xa1, 0x94, 0x16, 0x58, - 0xea, 0xc3, 0xab, 0xa5, 0x64, 0x27, 0x20, 0xef, 0x85, 0x9d, 0x45, 0x4a, 0x30, 0xac, 0xb1, 0x68, - 0xd3, 0x0b, 0x64, 0x6d, 0xec, 0x74, 0x9a, 0x2e, 0x07, 0x19, 0xa1, 0x34, 0x34, 0x90, 0x55, 0x58, - 0x3d, 0xa5, 0xbd, 0x1b, 0x46, 0x85, 0x55, 0x61, 0x74, 0xa3, 0x94, 0x6e, 0x44, 0x54, 0x52, 0xa2, - 0xd3, 0x50, 0x6a, 0xdb, 0x56, 0xdb, 0x72, 0xb0, 0xad, 0x6a, 0xf5, 0xba, 0x8d, 0x1d, 0xa7, 0x3c, - 0xc6, 0xf0, 0x44, 0xfd, 0x3c, 0xab, 0x96, 0x1f, 0x82, 0x61, 0x11, 0x4f, 0x4f, 0xc1, 0x60, 0xcd, - 0xb3, 0x90, 0x39, 0x85, 0x15, 0x88, 0x7f, 0x9d, 0x6f, 0xb7, 0x79, 0x76, 0x8d, 0xfc, 0x94, 0x9b, - 0x30, 0xcc, 0x27, 0x2c, 0x36, 0xa7, 0xb2, 0x0a, 0x23, 0x6d, 0xcd, 0x26, 0xc3, 0x08, 0x66, 0x56, - 0x7a, 0xed, 0x08, 0xd7, 0x35, 0xdb, 0xdd, 0xc0, 0x6e, 0x28, 0xc1, 0x52, 0xa4, 0xfc, 0xac, 0x4a, - 0x3e, 0x0f, 0xa3, 0x21, 0x1a, 0xd2, 0x4d, 0xd7, 0x72, 0xb5, 0xa6, 0x58, 0xe8, 0xb4, 0xe0, 0xf5, - 0x24, 0xe3, 0xf7, 0x44, 0xbe, 0x00, 0x05, 0x6f, 0xae, 0xc8, 0x46, 0x43, 0x88, 0x42, 0xe2, 0xe2, - 0x67, 0x45, 0x9a, 0x44, 0xb2, 0xae, 0xf3, 0x2f, 0x65, 0x65, 0x15, 0x56, 0x90, 0x71, 0xc0, 0x30, - 0x31, 0x6f, 0x86, 0xde, 0x0d, 0xc3, 0xdc, 0x30, 0xf1, 0xf5, 0xd8, 0x2b, 0x5d, 0xb4, 0x4e, 0x2d, - 0x95, 0x48, 0x17, 0x31, 0xbb, 0xe5, 0x37, 0x93, 0x09, 0x36, 0xf3, 0x7e, 0xc8, 0x0b, 0xe3, 0x13, - 0xf6, 0x12, 0xac, 0x85, 0x93, 0x49, 0x5e, 0x82, 0x37, 0xe2, 0x33, 0x12, 0x6d, 0x72, 0x8c, 0x86, - 0x89, 0xeb, 0xaa, 0xbf, 0x04, 0xf9, 0x7b, 0xcb, 0xe3, 0xec, 0xc1, 0x8a, 0x58, 0x5f, 0xf2, 0xbb, - 0x60, 0x88, 0xf5, 0x35, 0xd6, 0xc4, 0xc5, 0xb9, 0xd6, 0xef, 0x48, 0x90, 0x17, 0xee, 0x23, 0x96, - 0x29, 0x34, 0x88, 0xcc, 0x51, 0x07, 0x71, 0xeb, 0x4d, 0xd2, 0x03, 0x80, 0xa8, 0xa6, 0xa8, 0x7b, - 0x96, 0x6b, 0x98, 0x0d, 0x95, 0xcd, 0x05, 0x7f, 0x7d, 0x93, 0x3e, 0xb9, 0x4a, 0x1f, 0xac, 0x93, - 0xfa, 0x33, 0x77, 0x43, 0x31, 0x90, 0xe5, 0x42, 0xc3, 0x90, 0xbd, 0x82, 0xaf, 0x97, 0x06, 0x50, - 0x11, 0x86, 0x15, 0x4c, 0x73, 0x04, 0x25, 0xe9, 0xdc, 0xeb, 0xc3, 0x30, 0x3e, 0x5f, 0x5b, 0x58, - 0x9e, 0x6f, 0xb7, 0x9b, 0x06, 0x7f, 0xad, 0x71, 0x0d, 0x72, 0x74, 0x9f, 0x9c, 0xe2, 0x7c, 0xa7, - 0x92, 0x26, 0xe1, 0x84, 0x14, 0x18, 0xa4, 0xdb, 0x69, 0x94, 0xe6, 0xd8, 0xa7, 0x92, 0x2a, 0x0f, - 0x45, 0x3a, 0x49, 0x15, 0x2e, 0xc5, 0x69, 0x50, 0x25, 0x4d, 0x72, 0x0a, 0xbd, 0x0f, 0x0a, 0xfe, - 0x3e, 0x39, 0xed, 0x19, 0x51, 0x25, 0x75, 0xda, 0x8a, 0xe0, 0xfb, 0x3b, 0x83, 0xb4, 0x47, 0x13, - 0x95, 0xd4, 0xf9, 0x1a, 0xf4, 0x3c, 0x0c, 0x8b, 0x3d, 0x58, 0xba, 0x53, 0x9c, 0x4a, 0xca, 0x94, - 0x12, 0x99, 0x3e, 0xb6, 0x75, 0x4e, 0x73, 0x54, 0x55, 0x49, 0x95, 0x37, 0x43, 0x5b, 0x30, 0xc4, - 0x83, 0xdf, 0x54, 0x27, 0x3d, 0x95, 0x74, 0x89, 0x22, 0x22, 0x64, 0x3f, 0x39, 0x91, 0xf6, 0x78, - 0xae, 0x92, 0x3a, 0x61, 0x88, 0x34, 0x80, 0xc0, 0x7e, 0x3a, 0xf5, 0xb9, 0x5b, 0x25, 0x7d, 0x22, - 0x10, 0xbd, 0x17, 0xf2, 0xde, 0xae, 0x29, 0xe5, 0x49, 0x5a, 0x25, 0x6d, 0x2e, 0xae, 0xb6, 0x95, - 0xfa, 0x96, 0xc4, 0xfd, 0x89, 0xb7, 0x24, 0xfc, 0x43, 0x6e, 0xef, 0x18, 0xfc, 0x17, 0x1f, 0x82, - 0x7b, 0xf8, 0xb5, 0x1c, 0xc7, 0xd5, 0xae, 0x19, 0x66, 0xc3, 0xbb, 0xfc, 0xc4, 0xcb, 0xfc, 0x24, - 0xfc, 0x38, 0xbf, 0xff, 0x24, 0x6a, 0x0f, 0xbd, 0x02, 0x55, 0x49, 0x3e, 0x5a, 0x7f, 0xd3, 0xc7, - 0xdc, 0x95, 0x84, 0x1b, 0x5b, 0xf2, 0x27, 0x24, 0x18, 0xbb, 0x6c, 0x38, 0xae, 0x65, 0x1b, 0xba, - 0xd6, 0xa4, 0x16, 0xc3, 0x3f, 0x79, 0x91, 0xfa, 0x3f, 0x79, 0x79, 0x0a, 0x86, 0xf6, 0xb4, 0xa6, - 0x83, 0x5d, 0x1e, 0x77, 0xdf, 0x35, 0x17, 0x2f, 0x92, 0x2e, 0x0f, 0xc3, 0xd9, 0xf8, 0x45, 0xac, - 0xdf, 0xc8, 0x90, 0x6d, 0x62, 0xab, 0x65, 0x38, 0xec, 0x83, 0x9e, 0x64, 0xdf, 0x54, 0x83, 0x9c, - 0xad, 0xb9, 0xdc, 0xa5, 0xd5, 0xe6, 0xf8, 0x35, 0xab, 0xfb, 0x92, 0xaf, 0x4e, 0xcd, 0x2d, 0x62, - 0x5d, 0xa1, 0xbc, 0xe8, 0x67, 0x80, 0xec, 0xc3, 0x54, 0x8a, 0xc3, 0xe2, 0xee, 0xf9, 0xfe, 0x70, - 0x6e, 0xde, 0x98, 0x19, 0x3f, 0xd0, 0x5a, 0xcd, 0xaa, 0x2c, 0x70, 0x64, 0x85, 0x6c, 0xe7, 0x48, - 0x17, 0x51, 0x1b, 0xc8, 0x9e, 0x4c, 0xd5, 0x77, 0x35, 0xb3, 0x81, 0x59, 0x23, 0x34, 0xf9, 0x51, - 0xbb, 0xdc, 0x77, 0x23, 0xc7, 0xfd, 0x46, 0x02, 0x70, 0xb2, 0x32, 0xda, 0xd2, 0xf6, 0x17, 0x68, - 0x05, 0x69, 0xb1, 0x9a, 0x7f, 0xf5, 0xb3, 0x33, 0x03, 0x54, 0x62, 0xdf, 0x94, 0x00, 0x7c, 0x89, - 0xa1, 0x9f, 0x81, 0x92, 0xee, 0x95, 0x28, 0xaf, 0xc8, 0x60, 0x9e, 0xea, 0x35, 0x23, 0x11, 0x79, - 0x33, 0x37, 0xfd, 0x8d, 0x1b, 0x33, 0x92, 0x32, 0xae, 0x47, 0xa6, 0xe2, 0xbd, 0x50, 0x64, 0xb9, - 0x08, 0x95, 0xba, 0xfc, 0x4c, 0xa2, 0xcb, 0x9f, 0x26, 0x58, 0x37, 0x6f, 0xcc, 0x20, 0x36, 0xac, - 0x00, 0xb3, 0x4c, 0x03, 0x01, 0x60, 0x35, 0x84, 0x21, 0x30, 0xa6, 0x7f, 0x27, 0x41, 0x71, 0x31, - 0xf0, 0xde, 0x42, 0x19, 0x86, 0x5b, 0x96, 0x69, 0x5c, 0xc3, 0xb6, 0x97, 0xe1, 0x66, 0x45, 0x54, - 0x81, 0x3c, 0xfb, 0x84, 0x84, 0x7b, 0x20, 0xbe, 0x4d, 0x2a, 0xca, 0x84, 0xeb, 0x3a, 0xde, 0x76, - 0x0c, 0x31, 0x1b, 0x8a, 0x28, 0xa2, 0x8b, 0x50, 0x72, 0xb0, 0xde, 0xb1, 0x0d, 0xf7, 0x40, 0xd5, - 0x2d, 0xd3, 0xd5, 0x74, 0x96, 0xa5, 0x2e, 0xd4, 0x6e, 0xbf, 0x79, 0x63, 0xe6, 0x36, 0xd6, 0xd7, - 0x28, 0x85, 0xac, 0x8c, 0x8b, 0xaa, 0x05, 0x56, 0x43, 0x5a, 0xa8, 0x63, 0x57, 0x33, 0x9a, 0xec, - 0x6c, 0xb5, 0xa0, 0x88, 0x62, 0x60, 0x2c, 0xff, 0x62, 0x38, 0x18, 0xf2, 0x5e, 0x87, 0x92, 0xd5, - 0xc6, 0x36, 0x4d, 0x1b, 0x85, 0x62, 0xdf, 0xda, 0x8a, 0xdf, 0x72, 0x94, 0x42, 0xfe, 0xfe, 0x8d, - 0x99, 0x07, 0x53, 0x68, 0xd0, 0x55, 0xad, 0xc9, 0xf7, 0x10, 0xca, 0xb8, 0xc0, 0xe0, 0x15, 0x64, - 0xc8, 0x81, 0xac, 0x52, 0x67, 0x5b, 0xdc, 0xe8, 0x0b, 0x0d, 0x39, 0x4a, 0x21, 0x07, 0xd3, 0xd9, - 0xb4, 0x86, 0x44, 0x81, 0x2f, 0x6a, 0x46, 0x53, 0x7c, 0x57, 0x47, 0xe1, 0x25, 0xb4, 0x0c, 0x43, - 0x8e, 0xab, 0xb9, 0x1d, 0xf6, 0x55, 0x87, 0xc1, 0xda, 0x43, 0x29, 0xfb, 0x5c, 0xb3, 0xcc, 0xfa, - 0x06, 0x65, 0x54, 0x38, 0x00, 0xba, 0x08, 0x43, 0xae, 0x75, 0x0d, 0x9b, 0x5c, 0xa8, 0x7d, 0xad, - 0x78, 0x7a, 0x4d, 0x94, 0x71, 0x23, 0x17, 0x4a, 0x75, 0xdc, 0xc4, 0x0d, 0x2a, 0x4a, 0x67, 0x57, - 0xb3, 0xb1, 0xc3, 0xbe, 0x6d, 0x5b, 0x5b, 0xee, 0x7b, 0x59, 0x72, 0x01, 0x45, 0xf1, 0x64, 0x65, - 0xdc, 0xab, 0xda, 0xa0, 0x35, 0xe8, 0x99, 0xd0, 0x2b, 0x37, 0xde, 0xa5, 0x98, 0x1e, 0x6b, 0x2f, - 0xa0, 0xe5, 0x62, 0xa7, 0x15, 0x7c, 0x61, 0xe7, 0x22, 0x94, 0x3a, 0xe6, 0xb6, 0x65, 0xd2, 0x6f, - 0x61, 0xf0, 0xe8, 0x9b, 0x6c, 0x92, 0xb3, 0xc1, 0x59, 0x8b, 0x52, 0xc8, 0xca, 0xb8, 0x57, 0xc5, - 0xcf, 0x5a, 0xea, 0x30, 0xe6, 0x53, 0xd1, 0xa5, 0x5b, 0x48, 0x5c, 0xba, 0x77, 0xf1, 0xa5, 0x7b, - 0x2c, 0xda, 0x8a, 0xbf, 0x7a, 0x47, 0xbd, 0xca, 0x4d, 0x96, 0x62, 0x00, 0xdf, 0x60, 0xf0, 0x03, - 0x3a, 0x39, 0xd9, 0xea, 0x88, 0x63, 0x0e, 0x9f, 0x17, 0xbd, 0x1f, 0x26, 0x5b, 0x86, 0xa9, 0x3a, - 0xb8, 0xb9, 0xa3, 0x72, 0x01, 0x13, 0x48, 0xfa, 0x2d, 0xc3, 0xda, 0x4a, 0x7f, 0xfa, 0x70, 0xf3, - 0xc6, 0x4c, 0x85, 0x1b, 0xd5, 0x6e, 0x48, 0x59, 0x99, 0x68, 0x19, 0xe6, 0x06, 0x6e, 0xee, 0x2c, - 0x7a, 0x75, 0xd5, 0x91, 0xbf, 0xf6, 0xd9, 0x99, 0x01, 0x6f, 0x01, 0x1b, 0x30, 0xe2, 0x2f, 0x2c, - 0xec, 0xa0, 0x35, 0x28, 0x68, 0xa2, 0x40, 0xf3, 0x60, 0x23, 0xa9, 0x95, 0x3d, 0xb0, 0x40, 0x7d, - 0x0c, 0x66, 0x2b, 0x5e, 0xf9, 0x6f, 0x27, 0x25, 0xf9, 0x23, 0x19, 0x18, 0x5a, 0xbc, 0x4a, 0xef, - 0x89, 0xbe, 0x0c, 0x13, 0xbe, 0xb2, 0x85, 0x2d, 0xc5, 0xea, 0xcd, 0x1b, 0x33, 0xe5, 0xa8, 0x3e, - 0xf6, 0x69, 0x2a, 0xe6, 0x75, 0x5d, 0xf4, 0xc4, 0x5f, 0x24, 0xc2, 0x56, 0xbc, 0x1c, 0x4c, 0x6e, - 0x8b, 0xb6, 0x33, 0xd1, 0xb6, 0xbb, 0x48, 0x8e, 0x60, 0xa6, 0xfc, 0xec, 0x37, 0xaf, 0x09, 0x18, - 0xce, 0x25, 0x18, 0x66, 0xb2, 0x70, 0x50, 0x15, 0x06, 0xdb, 0xe4, 0x07, 0xcf, 0xb0, 0x4f, 0xf7, - 0x5c, 0x4d, 0x94, 0x5e, 0x64, 0x0c, 0x29, 0x8b, 0xfc, 0xb9, 0x2c, 0xc0, 0xe2, 0xd5, 0xab, 0x9b, - 0xb6, 0xd1, 0x6e, 0x62, 0xf7, 0x87, 0x2a, 0xd7, 0x9f, 0x93, 0xe0, 0x98, 0x2f, 0x35, 0xc7, 0xd6, - 0x23, 0xc2, 0x7d, 0xf6, 0xe6, 0x8d, 0x99, 0x3b, 0xa2, 0xc2, 0x0d, 0x90, 0x1d, 0x41, 0xc0, 0x93, - 0x1e, 0xd0, 0x86, 0xad, 0xc7, 0xf7, 0xa3, 0xee, 0xb8, 0x5e, 0x3f, 0xb2, 0xbd, 0xfb, 0x11, 0x20, - 0x7b, 0x53, 0xfd, 0x58, 0x74, 0xdc, 0xee, 0xb9, 0xde, 0x80, 0xa2, 0x3f, 0x47, 0x0e, 0x5a, 0x84, - 0xbc, 0xcb, 0x7f, 0xf3, 0x29, 0x97, 0x7b, 0x4f, 0xb9, 0x60, 0xe3, 0xd3, 0xee, 0x71, 0xca, 0xff, - 0x39, 0x03, 0xe0, 0xaf, 0xea, 0x9f, 0xd4, 0x15, 0x45, 0xdc, 0x29, 0x77, 0x7e, 0xd9, 0x23, 0x05, - 0xd0, 0x9c, 0x3b, 0x30, 0x5b, 0x7f, 0x9c, 0x81, 0xc9, 0x2d, 0x61, 0xf9, 0xdf, 0x91, 0x30, 0x5a, - 0x87, 0x61, 0x6c, 0xba, 0xb6, 0x81, 0xc5, 0x91, 0xda, 0xbb, 0x7a, 0x69, 0x6b, 0x8c, 0xd4, 0xe8, - 0xe7, 0x3a, 0xc5, 0x31, 0x01, 0x87, 0x09, 0xc8, 0xfa, 0x63, 0x59, 0x28, 0xf7, 0xe2, 0x42, 0x0b, - 0x30, 0xae, 0xdb, 0x98, 0x56, 0xa8, 0xc1, 0x5b, 0x5b, 0xb5, 0x8a, 0xbf, 0x93, 0x88, 0x10, 0xc8, - 0xca, 0x98, 0xa8, 0xe1, 0xb1, 0x41, 0x03, 0x48, 0x98, 0x4f, 0x96, 0x0c, 0xa1, 0x4a, 0x19, 0xd7, - 0xcb, 0x3c, 0x38, 0x10, 0x8d, 0x84, 0x01, 0x58, 0x74, 0x30, 0xe6, 0xd7, 0xd2, 0xf0, 0xe0, 0x25, - 0x18, 0x37, 0x4c, 0xc3, 0x35, 0xb4, 0xa6, 0xba, 0xad, 0x35, 0x35, 0x53, 0x3f, 0xca, 0x2e, 0x89, - 0x39, 0x74, 0xde, 0x6c, 0x04, 0x4e, 0x56, 0xc6, 0x78, 0x4d, 0x8d, 0x55, 0xa0, 0xcb, 0x30, 0x2c, - 0x9a, 0xca, 0x1d, 0x29, 0x96, 0x14, 0xec, 0x81, 0x19, 0xf9, 0x68, 0x16, 0x26, 0x14, 0x5c, 0x7f, - 0x67, 0x2a, 0xfa, 0x9b, 0x8a, 0x55, 0x00, 0x66, 0x48, 0x88, 0x27, 0x39, 0xc2, 0x6c, 0x10, 0x53, - 0x54, 0x60, 0x08, 0x8b, 0x8e, 0x1b, 0x98, 0x8f, 0x3f, 0xc9, 0xc2, 0x48, 0x70, 0x3e, 0xde, 0x71, - 0xf1, 0x3f, 0x3a, 0x2e, 0x1e, 0x2d, 0xfb, 0xa6, 0x31, 0xc7, 0xff, 0xed, 0x42, 0x0f, 0xd3, 0xd8, - 0xb5, 0xa4, 0x7a, 0xdb, 0xc4, 0x3f, 0xcb, 0xc0, 0x10, 0x3f, 0x98, 0xd6, 0xbb, 0x36, 0x36, 0x52, - 0xd2, 0xc1, 0xf7, 0xe1, 0xfb, 0x9a, 0x57, 0x63, 0xf6, 0x35, 0x3f, 0x0d, 0x63, 0x2d, 0x6d, 0x5f, - 0x0d, 0x5d, 0xe3, 0x92, 0x66, 0x47, 0x6b, 0x27, 0x7c, 0x94, 0xf0, 0x73, 0x96, 0xae, 0xf1, 0x0f, - 0x25, 0xd1, 0xe3, 0x50, 0x24, 0x14, 0xbe, 0x97, 0x20, 0xec, 0xc7, 0xfd, 0xbc, 0x48, 0xe0, 0xa1, - 0xac, 0x40, 0x4b, 0xdb, 0x5f, 0x62, 0x05, 0xb4, 0x02, 0x68, 0xd7, 0xcb, 0xd2, 0xa9, 0xbe, 0x28, - 0x09, 0xff, 0x9d, 0x37, 0x6f, 0xcc, 0x9c, 0x60, 0xfc, 0xdd, 0x34, 0xb2, 0x32, 0xe1, 0x57, 0x0a, - 0xb4, 0x47, 0x00, 0xc8, 0xb8, 0x54, 0xf6, 0xb2, 0x24, 0xdb, 0x5d, 0x1f, 0xbb, 0x79, 0x63, 0x66, - 0x82, 0xa1, 0xf8, 0xcf, 0x64, 0xa5, 0x40, 0x0a, 0x8b, 0xe4, 0x77, 0x40, 0xf0, 0xbf, 0x2a, 0x01, - 0xf2, 0x7d, 0x50, 0xe0, 0xf6, 0x2f, 0x04, 0x36, 0x69, 0xd2, 0xe1, 0xfb, 0x3e, 0x9f, 0x5f, 0xec, - 0xfb, 0x02, 0x4b, 0xf7, 0xbc, 0x6f, 0xaf, 0xc5, 0x05, 0x86, 0x98, 0x37, 0x4b, 0xe7, 0x16, 0x2c, - 0xc3, 0x3b, 0x59, 0xef, 0x36, 0xd0, 0xff, 0x5e, 0x82, 0x13, 0x5d, 0xda, 0xe4, 0x75, 0xf6, 0x7d, - 0x80, 0xec, 0xc0, 0x43, 0xfe, 0xf9, 0x6c, 0x89, 0xdf, 0x6f, 0xed, 0x53, 0x39, 0x27, 0xec, 0x2e, - 0x47, 0x70, 0xeb, 0x5c, 0x0e, 0xcb, 0x88, 0xfe, 0x4b, 0x09, 0xa6, 0x82, 0xcd, 0x7b, 0x03, 0xb9, - 0x02, 0x23, 0xc1, 0xd6, 0xf9, 0x10, 0xee, 0x49, 0x33, 0x04, 0xde, 0xfb, 0x10, 0x3f, 0x7a, 0xd6, - 0x5f, 0xaa, 0x2c, 0x85, 0xfb, 0x50, 0x6a, 0x69, 0x78, 0x69, 0xff, 0xc8, 0x92, 0x65, 0x23, 0xf8, - 0x0b, 0x09, 0x72, 0xeb, 0x96, 0xd5, 0x44, 0x16, 0x4c, 0x98, 0x96, 0xab, 0x12, 0xcd, 0xc2, 0x75, - 0x95, 0xe7, 0x78, 0x58, 0x56, 0x77, 0xa1, 0x3f, 0x21, 0x7d, 0xef, 0xc6, 0x4c, 0x37, 0x94, 0x32, - 0x6e, 0x5a, 0x6e, 0x8d, 0xd6, 0x6c, 0xb2, 0x0c, 0xd0, 0xfb, 0x61, 0x34, 0xdc, 0x18, 0xcb, 0x78, - 0x3d, 0xd7, 0x77, 0x63, 0x61, 0x98, 0x9b, 0x37, 0x66, 0xa6, 0xfc, 0x15, 0xe3, 0x55, 0xcb, 0xca, - 0xc8, 0x76, 0xa0, 0xf5, 0x6a, 0x9e, 0x8c, 0xfe, 0x4f, 0x3f, 0x3b, 0x23, 0xd5, 0x2e, 0xf6, 0x7c, - 0x9f, 0xf5, 0x81, 0x43, 0xbb, 0xb0, 0xef, 0x1d, 0x3b, 0x84, 0xcf, 0x25, 0x5e, 0x9d, 0x84, 0x99, - 0x1e, 0xe7, 0x12, 0xee, 0xfe, 0x91, 0x8e, 0x24, 0x12, 0x8e, 0x0b, 0x2a, 0xa9, 0x8e, 0x41, 0xe4, - 0x1f, 0xe4, 0x00, 0xad, 0x3a, 0x8d, 0x05, 0x12, 0xd5, 0xf8, 0x6f, 0x39, 0x44, 0x53, 0x62, 0xd2, - 0x9b, 0x4a, 0x89, 0xad, 0x86, 0x92, 0x4c, 0x99, 0xfe, 0x52, 0xdb, 0xa9, 0x33, 0x4d, 0xd9, 0xb7, - 0x25, 0xd3, 0x14, 0x1f, 0xaa, 0xe4, 0x7e, 0x88, 0x3b, 0xa6, 0xc1, 0xb7, 0x67, 0xc7, 0x74, 0x1c, - 0x86, 0x78, 0x0e, 0x9a, 0xfd, 0xb3, 0x31, 0x5e, 0x42, 0x8f, 0x06, 0xaf, 0x1a, 0xa7, 0xb0, 0xfe, - 0x8c, 0x9a, 0xdb, 0x99, 0xaf, 0x66, 0xa1, 0xb4, 0xea, 0x34, 0x96, 0xea, 0x86, 0xfb, 0x16, 0xe9, - 0x5e, 0xbb, 0xf7, 0x26, 0x73, 0xe1, 0xe6, 0x8d, 0x99, 0x31, 0x26, 0xb2, 0x5b, 0x29, 0xa8, 0x16, - 0x8c, 0x47, 0x8e, 0x73, 0xb8, 0x6a, 0x2e, 0x1e, 0xe5, 0x54, 0x29, 0x02, 0x25, 0xd3, 0x7d, 0x41, - 0x60, 0x81, 0xa0, 0xfd, 0xf8, 0xd5, 0xc0, 0x1c, 0xd9, 0xe5, 0xb7, 0x32, 0xe7, 0xca, 0xa6, 0xf0, - 0x6b, 0x19, 0x28, 0xae, 0x3a, 0x62, 0x9f, 0x8b, 0x7f, 0x62, 0x33, 0x0a, 0x8f, 0x7b, 0x9f, 0xae, - 0xc8, 0xa6, 0x5b, 0x08, 0xe1, 0xcf, 0x59, 0x7c, 0x2b, 0x4b, 0xed, 0x30, 0x3d, 0x85, 0xf7, 0x9c, - 0x35, 0x7e, 0x67, 0x63, 0xf4, 0x23, 0xb4, 0x31, 0xf2, 0x67, 0x38, 0x77, 0x94, 0x19, 0xfe, 0xdd, - 0x0c, 0x8c, 0xae, 0x3a, 0x8d, 0x2d, 0xb3, 0xfe, 0xce, 0x52, 0x79, 0x33, 0x4b, 0xe5, 0x96, 0x87, - 0x66, 0x5f, 0xcb, 0xc0, 0x99, 0x60, 0x2c, 0x45, 0xdf, 0xa6, 0xf3, 0xc2, 0xa5, 0xb6, 0xd6, 0x30, - 0xcc, 0xe0, 0x47, 0x25, 0x4e, 0x04, 0x3b, 0x4b, 0x69, 0x45, 0x97, 0x65, 0x13, 0x8a, 0xeb, 0x5a, - 0x03, 0x8b, 0x6f, 0x15, 0x74, 0x7f, 0x38, 0xe4, 0x38, 0x0c, 0x59, 0x3b, 0x3b, 0xec, 0xca, 0x85, - 0x34, 0x9b, 0x53, 0x78, 0x09, 0x4d, 0xc1, 0x60, 0xd3, 0x68, 0x19, 0x2e, 0x7f, 0x3f, 0x8b, 0x15, - 0xd0, 0x0c, 0x14, 0x75, 0x32, 0x6e, 0x95, 0xdd, 0xd4, 0xcc, 0x89, 0xaf, 0x87, 0x76, 0x4c, 0x77, - 0x93, 0xd4, 0xc8, 0x4f, 0xc1, 0x08, 0x6b, 0x8f, 0xef, 0x2f, 0x4e, 0x40, 0x9e, 0x5e, 0xbb, 0xf5, - 0x5b, 0x1d, 0x26, 0x65, 0x7e, 0x6f, 0x92, 0xa1, 0xb0, 0x86, 0x59, 0xa1, 0x56, 0xeb, 0x29, 0xca, - 0xd9, 0xe4, 0x49, 0x66, 0x82, 0xf2, 0xc4, 0xf8, 0xaf, 0x1e, 0x06, 0xb9, 0x47, 0xc8, 0xc9, 0xa4, - 0x74, 0x78, 0x90, 0xdb, 0xc7, 0x14, 0xf4, 0x08, 0x88, 0xd3, 0x05, 0xbc, 0xfb, 0x70, 0x9c, 0xde, - 0xff, 0xf2, 0xb7, 0xfa, 0x62, 0xba, 0x8e, 0x7b, 0xe7, 0xe1, 0x12, 0xff, 0x5f, 0xcf, 0xe2, 0x70, - 0x1b, 0xfc, 0x1e, 0x78, 0x2f, 0x74, 0xf4, 0xd4, 0x82, 0xb9, 0x80, 0x0a, 0x28, 0x01, 0x4e, 0xf9, - 0xd7, 0x24, 0xb8, 0xad, 0xab, 0x69, 0x3e, 0x73, 0x97, 0x42, 0xaf, 0x9c, 0x49, 0xfd, 0xdd, 0xc7, - 0x09, 0xbe, 0x43, 0x7e, 0x29, 0xa6, 0xb3, 0xa7, 0x12, 0x3b, 0xcb, 0x7a, 0x11, 0xea, 0xed, 0x4b, - 0x70, 0x2c, 0xdc, 0x59, 0x21, 0xa6, 0xe7, 0x61, 0x2c, 0x6c, 0x16, 0xb8, 0xc9, 0x3a, 0xc2, 0x89, - 0xea, 0x68, 0xc8, 0x34, 0xc8, 0x6a, 0x74, 0x6a, 0x3c, 0xf1, 0x2c, 0x75, 0xdf, 0xe9, 0x4d, 0x2d, - 0x9d, 0xc0, 0xab, 0x1f, 0x5f, 0x93, 0xe0, 0x64, 0xb8, 0x05, 0x3f, 0x9c, 0x71, 0xde, 0xf2, 0xf1, - 0xdd, 0x32, 0x45, 0xfa, 0xae, 0x04, 0x77, 0x1d, 0x32, 0x0c, 0x2e, 0xb3, 0x97, 0x61, 0x2a, 0x90, - 0x33, 0xb1, 0x79, 0xb5, 0x50, 0xae, 0x33, 0xc9, 0xc9, 0x1e, 0x2f, 0x45, 0x70, 0x3b, 0x91, 0xe3, - 0x17, 0xbf, 0x35, 0x33, 0xd9, 0xfd, 0xcc, 0x51, 0x26, 0xbb, 0xf3, 0x1c, 0xb7, 0x50, 0x0b, 0xff, - 0x83, 0x04, 0xa7, 0xc3, 0x43, 0x8d, 0x39, 0x59, 0xf9, 0x31, 0x9a, 0xba, 0xff, 0x22, 0xc1, 0x99, - 0x34, 0xe3, 0xe1, 0x73, 0xb8, 0x0d, 0x93, 0x7e, 0xb2, 0x33, 0x3a, 0x85, 0xf7, 0xf7, 0x71, 0x64, - 0xc5, 0xd7, 0x02, 0xf2, 0xd0, 0xde, 0x82, 0xb9, 0xfa, 0x3d, 0x89, 0xaf, 0xdf, 0xa0, 0x9a, 0x78, - 0x13, 0x13, 0x0e, 0x63, 0xfa, 0x9c, 0x98, 0x40, 0x28, 0x33, 0x1a, 0x0a, 0x65, 0x62, 0xa6, 0x3c, - 0x73, 0x8b, 0xac, 0xd1, 0x1e, 0xb7, 0xd6, 0x31, 0xd9, 0xd3, 0xf7, 0xc2, 0x64, 0xcc, 0xd2, 0xe2, - 0x86, 0xa9, 0x8f, 0x95, 0xa5, 0xa0, 0xee, 0xc5, 0x23, 0xff, 0x27, 0x09, 0x66, 0x68, 0xc3, 0x31, - 0xd3, 0xf8, 0xe3, 0x2c, 0xcf, 0x16, 0xb7, 0xbd, 0xb1, 0xc3, 0xe2, 0x82, 0x5d, 0x86, 0x21, 0xa6, - 0xa1, 0x5c, 0x96, 0x47, 0x50, 0x71, 0x0e, 0xe0, 0xdb, 0xfa, 0x45, 0x31, 0xbe, 0x78, 0x83, 0xf1, - 0x16, 0xc9, 0xf1, 0x56, 0x19, 0x8c, 0x6f, 0x0a, 0x5b, 0x1f, 0x3f, 0x0c, 0x2e, 0x37, 0xfd, 0x96, - 0xd9, 0x7a, 0xfe, 0xe1, 0x93, 0xb7, 0xc7, 0xa8, 0x7b, 0x63, 0x4a, 0x30, 0xea, 0x3f, 0xe2, 0x73, - 0xe4, 0x19, 0xf5, 0x84, 0xf1, 0xfc, 0x38, 0x1a, 0xf5, 0xbf, 0xc8, 0xc0, 0x09, 0x3a, 0xb6, 0xe0, - 0x09, 0xc2, 0xdb, 0x30, 0x37, 0x2a, 0x20, 0xc7, 0xd6, 0xd5, 0x5b, 0x65, 0x8b, 0x4a, 0x8e, 0xad, - 0x5f, 0x0d, 0x79, 0x74, 0x15, 0x50, 0xdd, 0x71, 0xa3, 0x0d, 0x64, 0x8f, 0xdc, 0x40, 0xdd, 0x71, - 0xaf, 0x1e, 0x12, 0x32, 0xe4, 0x8e, 0xac, 0x5d, 0xdf, 0x90, 0xa0, 0x12, 0x37, 0x03, 0x5c, 0x9b, - 0x0c, 0x38, 0x1e, 0x3a, 0x1c, 0x8b, 0x2a, 0xd4, 0x03, 0x69, 0x8e, 0x84, 0x22, 0xcb, 0xff, 0x98, - 0x8d, 0xdf, 0x52, 0x03, 0xf0, 0xaf, 0x85, 0x8b, 0xf3, 0x16, 0x4c, 0xf7, 0x6e, 0xec, 0x47, 0x7f, - 0xd9, 0x7f, 0xa9, 0xcb, 0xc3, 0xfc, 0x58, 0x6c, 0xec, 0x7e, 0x5f, 0x82, 0xe9, 0x1e, 0xdd, 0xfe, - 0x71, 0x0e, 0x2f, 0x76, 0x7b, 0xaa, 0xd4, 0xad, 0xde, 0x45, 0x3e, 0xc2, 0xd7, 0x63, 0xf8, 0x5d, - 0x9c, 0x40, 0x16, 0x21, 0xf6, 0x6b, 0x5c, 0x2f, 0xc0, 0xed, 0xb1, 0x5c, 0xbc, 0x6f, 0x55, 0xc8, - 0xed, 0x1a, 0x8e, 0xeb, 0x7d, 0xba, 0xa6, 0x47, 0xb7, 0x22, 0xdc, 0x94, 0x47, 0x46, 0x50, 0xa2, - 0xd0, 0xeb, 0x96, 0xd5, 0xe4, 0xdd, 0x90, 0x9f, 0x81, 0x89, 0x40, 0x1d, 0x6f, 0xe4, 0x31, 0xc8, - 0xb5, 0x2d, 0xab, 0xc9, 0x1b, 0xb9, 0xa3, 0x57, 0x23, 0x84, 0x87, 0x0f, 0x9b, 0xd2, 0xcb, 0x53, - 0x80, 0x18, 0x18, 0xfb, 0x98, 0x02, 0x6f, 0x62, 0x03, 0x26, 0x43, 0xb5, 0xbc, 0x91, 0x77, 0xc3, - 0x50, 0xe8, 0x33, 0x3c, 0x3d, 0xaf, 0xfe, 0x32, 0x3e, 0xef, 0xfd, 0x5e, 0x5a, 0x3a, 0xf7, 0xeb, - 0x63, 0xe2, 0x55, 0x3f, 0x0b, 0x20, 0x70, 0x1d, 0x63, 0xae, 0x17, 0x4a, 0x7c, 0x32, 0xa7, 0x72, - 0x36, 0x35, 0x3d, 0x0f, 0xbb, 0x07, 0x50, 0x33, 0xf8, 0xd6, 0xc7, 0x83, 0xe9, 0xf8, 0x45, 0x73, - 0x73, 0x69, 0xc9, 0xbd, 0xd6, 0x3e, 0x2a, 0xc1, 0x54, 0xdc, 0xfe, 0x1d, 0x3d, 0x91, 0x0e, 0xaa, - 0x3b, 0x52, 0xaa, 0x9c, 0x3f, 0x02, 0xa7, 0xd7, 0x9f, 0x2f, 0x48, 0x70, 0xe7, 0xa1, 0x9b, 0x52, - 0x34, 0x9f, 0x0e, 0xfe, 0x90, 0x58, 0xae, 0x52, 0x7b, 0x33, 0x10, 0x5e, 0x57, 0xad, 0xd0, 0x25, - 0xe1, 0xc3, 0x45, 0xdf, 0xb5, 0x77, 0x4a, 0xd0, 0x8c, 0xee, 0x90, 0x58, 0x1e, 0x40, 0x1f, 0x91, - 0xe2, 0x6f, 0xcf, 0x3e, 0x7e, 0x28, 0x54, 0xef, 0xfd, 0x5b, 0xe5, 0x89, 0xfe, 0x19, 0x43, 0x8a, - 0x13, 0xb7, 0x19, 0x48, 0x50, 0x9c, 0x43, 0xb6, 0x41, 0x09, 0x8a, 0x73, 0xd8, 0xce, 0x83, 0x2b, - 0xce, 0xa1, 0x81, 0x6f, 0x82, 0xe2, 0xa4, 0xd9, 0x04, 0x24, 0x28, 0x4e, 0xaa, 0xb8, 0x5b, 0x1e, - 0x40, 0xfb, 0x30, 0x1a, 0x0a, 0xa2, 0xd0, 0x43, 0x87, 0xc2, 0xc6, 0x85, 0xbc, 0x95, 0x73, 0xfd, - 0xb0, 0x84, 0x34, 0x28, 0x26, 0x4c, 0x48, 0xd0, 0xa0, 0xde, 0xe1, 0x51, 0xe5, 0x89, 0xfe, 0x19, - 0xbd, 0xce, 0x7c, 0xc8, 0xbf, 0x13, 0x16, 0xa0, 0x40, 0x8f, 0xf5, 0x09, 0x29, 0xba, 0xf2, 0x78, - 0xdf, 0x7c, 0x5e, 0x4f, 0xfe, 0x72, 0xd7, 0x1b, 0xad, 0x87, 0x8b, 0x37, 0xd6, 0xe5, 0x56, 0x1e, - 0xee, 0x8b, 0xc7, 0x6b, 0xfc, 0x67, 0xf9, 0x1d, 0xa7, 0xd9, 0x43, 0xd9, 0x03, 0x4e, 0xb5, 0x72, - 0x3a, 0x05, 0xa5, 0x07, 0xaf, 0x7b, 0x37, 0x1e, 0xcf, 0x1c, 0xce, 0x16, 0x74, 0xaa, 0x95, 0xfb, - 0x53, 0xd1, 0x8a, 0x46, 0x6e, 0xf9, 0x59, 0xd8, 0xff, 0xcb, 0xf7, 0x7c, 0x7d, 0xba, 0x81, 0x4d, - 0xec, 0x18, 0xce, 0x91, 0xee, 0x2a, 0xa5, 0x3b, 0x9a, 0xf9, 0xf2, 0x10, 0x8c, 0x5c, 0x62, 0xad, - 0xd0, 0xaf, 0xdd, 0xa2, 0x8b, 0x7d, 0x86, 0x12, 0x63, 0x24, 0x94, 0xf8, 0xfe, 0x8d, 0x19, 0x2e, - 0x78, 0x11, 0x54, 0x20, 0x87, 0x7f, 0xfe, 0x86, 0x7d, 0xba, 0xc2, 0xff, 0x7e, 0xc8, 0x48, 0x5f, - 0xaf, 0x15, 0xb2, 0x4b, 0x12, 0xfc, 0x0d, 0xbe, 0x28, 0x9e, 0xcc, 0xbe, 0xa4, 0x43, 0xcf, 0xe5, - 0xe8, 0xc7, 0x2f, 0xd0, 0x27, 0x25, 0x38, 0x46, 0xa9, 0xfc, 0x80, 0x97, 0x52, 0x8a, 0x37, 0x0e, - 0x7a, 0x6a, 0xc5, 0x8a, 0x16, 0xd8, 0x4a, 0x52, 0xac, 0x5a, 0x95, 0x5f, 0x80, 0xbd, 0x23, 0xd0, - 0x78, 0x14, 0x56, 0xfe, 0xfe, 0x8d, 0x19, 0xd4, 0xcd, 0xab, 0xd0, 0x4f, 0x36, 0x86, 0xeb, 0x1c, - 0xb4, 0x19, 0xf3, 0xe1, 0xe2, 0x14, 0xb1, 0xf0, 0x04, 0x17, 0xb0, 0x1f, 0x28, 0x85, 0xf6, 0x28, - 0xcf, 0x43, 0x31, 0x60, 0xfe, 0xca, 0x83, 0x09, 0xef, 0x01, 0xf9, 0x89, 0x0c, 0xc4, 0x71, 0x03, - 0x7e, 0x5d, 0x09, 0x42, 0xa1, 0x4f, 0x4b, 0x70, 0xcc, 0x4f, 0x9a, 0x04, 0x1b, 0x19, 0xea, 0x3f, - 0x6d, 0x72, 0x21, 0x2c, 0xcd, 0x58, 0x5c, 0x22, 0xcd, 0x38, 0x9f, 0xaf, 0x4c, 0x75, 0xe2, 0x5c, - 0xdc, 0x5f, 0x82, 0xd1, 0xe0, 0x9e, 0x59, 0x7c, 0xe6, 0x2e, 0xdd, 0xd5, 0xce, 0x29, 0x3e, 0xfa, - 0xd0, 0x9d, 0x78, 0x25, 0x0c, 0x88, 0x2a, 0x90, 0xc7, 0xfb, 0x6d, 0xcb, 0x76, 0x71, 0x9d, 0xbe, - 0x4f, 0x9a, 0x57, 0xbc, 0xb2, 0x7c, 0x1d, 0x62, 0x26, 0x1e, 0x3d, 0x13, 0xf9, 0x56, 0xcf, 0x51, - 0x36, 0x59, 0xdd, 0x9f, 0xf7, 0x09, 0x7e, 0x77, 0xe7, 0x56, 0x9b, 0x9f, 0xff, 0x1f, 0x00, 0x00, - 0xff, 0xff, 0xb0, 0x25, 0x40, 0x0c, 0x43, 0x9a, 0x00, 0x00, + 0x48, 0xe0, 0x00, 0x0e, 0x80, 0x23, 0x29, 0x59, 0x9a, 0x0c, 0x66, 0x1b, 0x8b, 0xe1, 0xed, 0xce, + 0x2c, 0x67, 0x66, 0x71, 0x00, 0xa3, 0x3f, 0x98, 0x92, 0x1c, 0x45, 0x8a, 0x15, 0xc9, 0x89, 0x9c, + 0xc8, 0x8a, 0xa4, 0xc8, 0x72, 0x25, 0x52, 0x64, 0x27, 0xb6, 0x13, 0x45, 0x91, 0x9d, 0xaa, 0x44, + 0x89, 0x15, 0x47, 0xa9, 0x38, 0x29, 0xa9, 0xca, 0x49, 0x39, 0xa9, 0xd4, 0xc9, 0xa6, 0x54, 0x15, + 0x59, 0x61, 0x62, 0xe7, 0xc2, 0xb8, 0x5c, 0x52, 0xaa, 0xec, 0xea, 0xaf, 0xf9, 0xda, 0x59, 0xcc, + 0x2c, 0x78, 0xa4, 0xa4, 0x12, 0xff, 0xc2, 0x76, 0xcf, 0x7b, 0xbf, 0xee, 0x7e, 0xfd, 0xfa, 0xbd, + 0xd7, 0xaf, 0x7b, 0x06, 0xf0, 0xdb, 0x17, 0xe0, 0x64, 0xc3, 0xb2, 0x1a, 0x4d, 0x7c, 0xb6, 0x6d, + 0x5b, 0xae, 0xb5, 0xdd, 0xd9, 0x39, 0x5b, 0xc7, 0x8e, 0x6e, 0x1b, 0x6d, 0xd7, 0xb2, 0xe7, 0x68, + 0x1d, 0x1a, 0x67, 0x14, 0x73, 0x82, 0x42, 0x5e, 0x85, 0x89, 0x8b, 0x46, 0x13, 0x2f, 0x7a, 0x84, + 0x1b, 0xd8, 0x45, 0x4f, 0x40, 0x6e, 0xc7, 0x68, 0xe2, 0xb2, 0x74, 0x32, 0x3b, 0x5b, 0x3c, 0x77, + 0xcf, 0x5c, 0x84, 0x69, 0x2e, 0xcc, 0xb1, 0x4e, 0xaa, 0x15, 0xca, 0x21, 0x7f, 0x27, 0x07, 0x93, + 0x31, 0x4f, 0x11, 0x82, 0x9c, 0xa9, 0xb5, 0x08, 0xa2, 0x34, 0x5b, 0x50, 0xe8, 0x6f, 0x54, 0x86, + 0xe1, 0xb6, 0xa6, 0x5f, 0xd3, 0x1a, 0xb8, 0x9c, 0xa1, 0xd5, 0xa2, 0x88, 0xa6, 0x01, 0xea, 0xb8, + 0x8d, 0xcd, 0x3a, 0x36, 0xf5, 0x83, 0x72, 0xf6, 0x64, 0x76, 0xb6, 0xa0, 0x04, 0x6a, 0xd0, 0xfd, + 0x30, 0xd1, 0xee, 0x6c, 0x37, 0x0d, 0x5d, 0x0d, 0x90, 0xc1, 0xc9, 0xec, 0xec, 0xa0, 0x52, 0x62, + 0x0f, 0x16, 0x7d, 0xe2, 0x53, 0x30, 0x7e, 0x1d, 0x6b, 0xd7, 0x82, 0xa4, 0x45, 0x4a, 0x3a, 0x46, + 0xaa, 0x03, 0x84, 0x0b, 0x30, 0xd2, 0xc2, 0x8e, 0xa3, 0x35, 0xb0, 0xea, 0x1e, 0xb4, 0x71, 0x39, + 0x47, 0x47, 0x7f, 0xb2, 0x6b, 0xf4, 0xd1, 0x91, 0x17, 0x39, 0xd7, 0xe6, 0x41, 0x1b, 0xa3, 0x79, + 0x28, 0x60, 0xb3, 0xd3, 0x62, 0x08, 0x83, 0x3d, 0xe4, 0xb7, 0x64, 0x76, 0x5a, 0x51, 0x94, 0x3c, + 0x61, 0xe3, 0x10, 0xc3, 0x0e, 0xb6, 0xf7, 0x0c, 0x1d, 0x97, 0x87, 0x28, 0xc0, 0xa9, 0x2e, 0x80, + 0x0d, 0xf6, 0x3c, 0x8a, 0x21, 0xf8, 0xd0, 0x02, 0x14, 0xf0, 0xbe, 0x8b, 0x4d, 0xc7, 0xb0, 0xcc, + 0xf2, 0x30, 0x05, 0xb9, 0x37, 0x66, 0x16, 0x71, 0xb3, 0x1e, 0x85, 0xf0, 0xf9, 0xd0, 0x63, 0x30, + 0x6c, 0xb5, 0x5d, 0xc3, 0x32, 0x9d, 0x72, 0xfe, 0xa4, 0x34, 0x5b, 0x3c, 0x77, 0x47, 0xac, 0x22, + 0xac, 0x31, 0x1a, 0x45, 0x10, 0xa3, 0x65, 0x28, 0x39, 0x56, 0xc7, 0xd6, 0xb1, 0xaa, 0x5b, 0x75, + 0xac, 0x1a, 0xe6, 0x8e, 0x55, 0x2e, 0x50, 0x80, 0x99, 0xee, 0x81, 0x50, 0xc2, 0x05, 0xab, 0x8e, + 0x97, 0xcd, 0x1d, 0x4b, 0x19, 0x73, 0x42, 0x65, 0x74, 0x1c, 0x86, 0x9c, 0x03, 0xd3, 0xd5, 0xf6, + 0xcb, 0x23, 0x54, 0x43, 0x78, 0x49, 0xfe, 0xcd, 0x21, 0x18, 0x4f, 0xa3, 0x62, 0x17, 0x60, 0x70, + 0x87, 0x8c, 0xb2, 0x9c, 0xe9, 0x47, 0x06, 0x8c, 0x27, 0x2c, 0xc4, 0xa1, 0x23, 0x0a, 0x71, 0x1e, + 0x8a, 0x26, 0x76, 0x5c, 0x5c, 0x67, 0x1a, 0x91, 0x4d, 0xa9, 0x53, 0xc0, 0x98, 0xba, 0x55, 0x2a, + 0x77, 0x24, 0x95, 0x7a, 0x1e, 0xc6, 0xbd, 0x2e, 0xa9, 0xb6, 0x66, 0x36, 0x84, 0x6e, 0x9e, 0x4d, + 0xea, 0xc9, 0xdc, 0x92, 0xe0, 0x53, 0x08, 0x9b, 0x32, 0x86, 0x43, 0x65, 0xb4, 0x08, 0x60, 0x99, + 0xd8, 0xda, 0x51, 0xeb, 0x58, 0x6f, 0x96, 0xf3, 0x3d, 0xa4, 0xb4, 0x46, 0x48, 0xba, 0xa4, 0x64, + 0xb1, 0x5a, 0xbd, 0x89, 0xce, 0xfb, 0xaa, 0x36, 0xdc, 0x43, 0x53, 0x56, 0xd9, 0x22, 0xeb, 0xd2, + 0xb6, 0x2d, 0x18, 0xb3, 0x31, 0xd1, 0x7b, 0x5c, 0xe7, 0x23, 0x2b, 0xd0, 0x4e, 0xcc, 0x25, 0x8e, + 0x4c, 0xe1, 0x6c, 0x6c, 0x60, 0xa3, 0x76, 0xb0, 0x88, 0xee, 0x06, 0xaf, 0x42, 0xa5, 0x6a, 0x05, + 0xd4, 0x0a, 0x8d, 0x88, 0xca, 0x2b, 0x5a, 0x0b, 0x57, 0x5e, 0x86, 0xb1, 0xb0, 0x78, 0xd0, 0x14, + 0x0c, 0x3a, 0xae, 0x66, 0xbb, 0x54, 0x0b, 0x07, 0x15, 0x56, 0x40, 0x25, 0xc8, 0x62, 0xb3, 0x4e, + 0xad, 0xdc, 0xa0, 0x42, 0x7e, 0xa2, 0x9f, 0xf6, 0x07, 0x9c, 0xa5, 0x03, 0xbe, 0xaf, 0x7b, 0x46, + 0x43, 0xc8, 0xd1, 0x71, 0x57, 0x1e, 0x87, 0xd1, 0xd0, 0x00, 0xd2, 0x36, 0x2d, 0xbf, 0x0f, 0x8e, + 0xc5, 0x42, 0xa3, 0xe7, 0x61, 0xaa, 0x63, 0x1a, 0xa6, 0x8b, 0xed, 0xb6, 0x8d, 0x89, 0xc6, 0xb2, + 0xa6, 0xca, 0xff, 0x63, 0xb8, 0x87, 0xce, 0x6d, 0x05, 0xa9, 0x19, 0x8a, 0x32, 0xd9, 0xe9, 0xae, + 0x3c, 0x53, 0xc8, 0x7f, 0x77, 0xb8, 0xf4, 0xca, 0x2b, 0xaf, 0xbc, 0x92, 0x91, 0xff, 0xf5, 0x10, + 0x4c, 0xc5, 0xad, 0x99, 0xd8, 0xe5, 0x7b, 0x1c, 0x86, 0xcc, 0x4e, 0x6b, 0x1b, 0xdb, 0x54, 0x48, + 0x83, 0x0a, 0x2f, 0xa1, 0x79, 0x18, 0x6c, 0x6a, 0xdb, 0xb8, 0x59, 0xce, 0x9d, 0x94, 0x66, 0xc7, + 0xce, 0xdd, 0x9f, 0x6a, 0x55, 0xce, 0xad, 0x10, 0x16, 0x85, 0x71, 0xa2, 0x27, 0x21, 0xc7, 0x4d, + 0x34, 0x41, 0x38, 0x93, 0x0e, 0x81, 0xac, 0x25, 0x85, 0xf2, 0xa1, 0xdb, 0xa1, 0x40, 0xfe, 0x32, + 0xdd, 0x18, 0xa2, 0x7d, 0xce, 0x93, 0x0a, 0xa2, 0x17, 0xa8, 0x02, 0x79, 0xba, 0x4c, 0xea, 0x58, + 0xb8, 0x36, 0xaf, 0x4c, 0x14, 0xab, 0x8e, 0x77, 0xb4, 0x4e, 0xd3, 0x55, 0xf7, 0xb4, 0x66, 0x07, + 0x53, 0x85, 0x2f, 0x28, 0x23, 0xbc, 0xf2, 0x2a, 0xa9, 0x43, 0x33, 0x50, 0x64, 0xab, 0xca, 0x30, + 0xeb, 0x78, 0x9f, 0x5a, 0xcf, 0x41, 0x85, 0x2d, 0xb4, 0x65, 0x52, 0x43, 0x9a, 0x7f, 0xd1, 0xb1, + 0x4c, 0xa1, 0x9a, 0xb4, 0x09, 0x52, 0x41, 0x9b, 0x7f, 0x3c, 0x6a, 0xb8, 0xef, 0x8c, 0x1f, 0x5e, + 0xd7, 0x5a, 0x3a, 0x05, 0xe3, 0x94, 0xe2, 0x61, 0x3e, 0xf5, 0x5a, 0xb3, 0x3c, 0x71, 0x52, 0x9a, + 0xcd, 0x2b, 0x63, 0xac, 0x7a, 0x8d, 0xd7, 0xca, 0x5f, 0xce, 0x40, 0x8e, 0x1a, 0x96, 0x71, 0x28, + 0x6e, 0xbe, 0xb0, 0xbe, 0xa4, 0x2e, 0xae, 0x6d, 0xd5, 0x56, 0x96, 0x4a, 0x12, 0x1a, 0x03, 0xa0, + 0x15, 0x17, 0x57, 0xd6, 0xe6, 0x37, 0x4b, 0x19, 0xaf, 0xbc, 0x7c, 0x65, 0xf3, 0xb1, 0x47, 0x4a, + 0x59, 0x8f, 0x61, 0x8b, 0x55, 0xe4, 0x82, 0x04, 0x0f, 0x9f, 0x2b, 0x0d, 0xa2, 0x12, 0x8c, 0x30, + 0x80, 0xe5, 0xe7, 0x97, 0x16, 0x1f, 0x7b, 0xa4, 0x34, 0x14, 0xae, 0x79, 0xf8, 0x5c, 0x69, 0x18, + 0x8d, 0x42, 0x81, 0xd6, 0xd4, 0xd6, 0xd6, 0x56, 0x4a, 0x79, 0x0f, 0x73, 0x63, 0x53, 0x59, 0xbe, + 0x72, 0xa9, 0x54, 0xf0, 0x30, 0x2f, 0x29, 0x6b, 0x5b, 0xeb, 0x25, 0xf0, 0x10, 0x56, 0x97, 0x36, + 0x36, 0xe6, 0x2f, 0x2d, 0x95, 0x8a, 0x1e, 0x45, 0xed, 0x85, 0xcd, 0xa5, 0x8d, 0xd2, 0x48, 0xa8, + 0x5b, 0x0f, 0x9f, 0x2b, 0x8d, 0x7a, 0x4d, 0x2c, 0x5d, 0xd9, 0x5a, 0x2d, 0x8d, 0xa1, 0x09, 0x18, + 0x65, 0x4d, 0x88, 0x4e, 0x8c, 0x47, 0xaa, 0x1e, 0x7b, 0xa4, 0x54, 0xf2, 0x3b, 0xc2, 0x50, 0x26, + 0x42, 0x15, 0x8f, 0x3d, 0x52, 0x42, 0xf2, 0x02, 0x0c, 0x52, 0x35, 0x44, 0x08, 0xc6, 0x56, 0xe6, + 0x6b, 0x4b, 0x2b, 0xea, 0xda, 0xfa, 0xe6, 0xf2, 0xda, 0x95, 0xf9, 0x95, 0x92, 0xe4, 0xd7, 0x29, + 0x4b, 0xcf, 0x6e, 0x2d, 0x2b, 0x4b, 0x8b, 0xa5, 0x4c, 0xb0, 0x6e, 0x7d, 0x69, 0x7e, 0x73, 0x69, + 0xb1, 0x94, 0x95, 0x75, 0x98, 0x8a, 0x33, 0xa8, 0xb1, 0x4b, 0x28, 0xa0, 0x0b, 0x99, 0x1e, 0xba, + 0x40, 0xb1, 0xa2, 0xba, 0x20, 0x7f, 0x3b, 0x03, 0x93, 0x31, 0x4e, 0x25, 0xb6, 0x91, 0xa7, 0x60, + 0x90, 0xe9, 0x32, 0x73, 0xb3, 0xa7, 0x63, 0xbd, 0x13, 0xd5, 0xec, 0x2e, 0x57, 0x4b, 0xf9, 0x82, + 0xa1, 0x46, 0xb6, 0x47, 0xa8, 0x41, 0x20, 0xba, 0x14, 0xf6, 0x3d, 0x5d, 0xc6, 0x9f, 0xf9, 0xc7, + 0xc7, 0xd2, 0xf8, 0x47, 0x5a, 0xd7, 0x9f, 0x13, 0x18, 0x8c, 0x71, 0x02, 0x17, 0x60, 0xa2, 0x0b, + 0x28, 0xb5, 0x31, 0x7e, 0xbf, 0x04, 0xe5, 0x5e, 0xc2, 0x49, 0x30, 0x89, 0x99, 0x90, 0x49, 0xbc, + 0x10, 0x95, 0xe0, 0x5d, 0xbd, 0x27, 0xa1, 0x6b, 0xae, 0x3f, 0x2f, 0xc1, 0xf1, 0xf8, 0x90, 0x32, + 0xb6, 0x0f, 0x4f, 0xc2, 0x50, 0x0b, 0xbb, 0xbb, 0x96, 0x08, 0xab, 0xee, 0x8b, 0x71, 0xd6, 0xe4, + 0x71, 0x74, 0xb2, 0x39, 0x57, 0xd0, 0xdb, 0x67, 0x7b, 0xc5, 0x85, 0xac, 0x37, 0x5d, 0x3d, 0xfd, + 0x50, 0x06, 0x8e, 0xc5, 0x82, 0xc7, 0x76, 0xf4, 0x4e, 0x00, 0xc3, 0x6c, 0x77, 0x5c, 0x16, 0x3a, + 0x31, 0x4b, 0x5c, 0xa0, 0x35, 0xd4, 0x78, 0x11, 0x2b, 0xdb, 0x71, 0xbd, 0xe7, 0x59, 0xfa, 0x1c, + 0x58, 0x15, 0x25, 0x78, 0xc2, 0xef, 0x68, 0x8e, 0x76, 0x74, 0xba, 0xc7, 0x48, 0xbb, 0x14, 0xf3, + 0x1d, 0x50, 0xd2, 0x9b, 0x06, 0x36, 0x5d, 0xd5, 0x71, 0x6d, 0xac, 0xb5, 0x0c, 0xb3, 0x41, 0x5d, + 0x4d, 0xbe, 0x3a, 0xb8, 0xa3, 0x35, 0x1d, 0xac, 0x8c, 0xb3, 0xc7, 0x1b, 0xe2, 0x29, 0xe1, 0xa0, + 0x0a, 0x64, 0x07, 0x38, 0x86, 0x42, 0x1c, 0xec, 0xb1, 0xc7, 0x21, 0xff, 0x7c, 0x01, 0x8a, 0x81, + 0x00, 0x1c, 0xdd, 0x05, 0x23, 0x2f, 0x6a, 0x7b, 0x9a, 0x2a, 0x36, 0x55, 0x4c, 0x12, 0x45, 0x52, + 0xb7, 0xce, 0x37, 0x56, 0xef, 0x80, 0x29, 0x4a, 0x62, 0x75, 0x5c, 0x6c, 0xab, 0x7a, 0x53, 0x73, + 0x1c, 0x2a, 0xb4, 0x3c, 0x25, 0x45, 0xe4, 0xd9, 0x1a, 0x79, 0xb4, 0x20, 0x9e, 0xa0, 0x47, 0x61, + 0x92, 0x72, 0xb4, 0x3a, 0x4d, 0xd7, 0x68, 0x37, 0xb1, 0x4a, 0xb6, 0x79, 0x0e, 0x75, 0x39, 0x5e, + 0xcf, 0x26, 0x08, 0xc5, 0x2a, 0x27, 0x20, 0x3d, 0x72, 0xd0, 0x22, 0xdc, 0x49, 0xd9, 0x1a, 0xd8, + 0xc4, 0xb6, 0xe6, 0x62, 0x15, 0xbf, 0xd4, 0xd1, 0x9a, 0x8e, 0xaa, 0x99, 0x75, 0x75, 0x57, 0x73, + 0x76, 0xcb, 0x53, 0x04, 0xa0, 0x96, 0x29, 0x4b, 0xca, 0x09, 0x42, 0x78, 0x89, 0xd3, 0x2d, 0x51, + 0xb2, 0x79, 0xb3, 0x7e, 0x59, 0x73, 0x76, 0x51, 0x15, 0x8e, 0x53, 0x14, 0xc7, 0xb5, 0x0d, 0xb3, + 0xa1, 0xea, 0xbb, 0x58, 0xbf, 0xa6, 0x76, 0xdc, 0x9d, 0x27, 0xca, 0xb7, 0x07, 0xdb, 0xa7, 0x3d, + 0xdc, 0xa0, 0x34, 0x0b, 0x84, 0x64, 0xcb, 0xdd, 0x79, 0x02, 0x6d, 0xc0, 0x08, 0x99, 0x8c, 0x96, + 0xf1, 0x32, 0x56, 0x77, 0x2c, 0x9b, 0xfa, 0xd0, 0xb1, 0x18, 0xd3, 0x14, 0x90, 0xe0, 0xdc, 0x1a, + 0x67, 0x58, 0xb5, 0xea, 0xb8, 0x3a, 0xb8, 0xb1, 0xbe, 0xb4, 0xb4, 0xa8, 0x14, 0x05, 0xca, 0x45, + 0xcb, 0x26, 0x0a, 0xd5, 0xb0, 0x3c, 0x01, 0x17, 0x99, 0x42, 0x35, 0x2c, 0x21, 0xde, 0x47, 0x61, + 0x52, 0xd7, 0xd9, 0x98, 0x0d, 0x5d, 0xe5, 0x9b, 0x31, 0xa7, 0x5c, 0x0a, 0x09, 0x4b, 0xd7, 0x2f, + 0x31, 0x02, 0xae, 0xe3, 0x0e, 0x3a, 0x0f, 0xc7, 0x7c, 0x61, 0x05, 0x19, 0x27, 0xba, 0x46, 0x19, + 0x65, 0x7d, 0x14, 0x26, 0xdb, 0x07, 0xdd, 0x8c, 0x28, 0xd4, 0x62, 0xfb, 0x20, 0xca, 0xf6, 0x38, + 0x4c, 0xb5, 0x77, 0xdb, 0xdd, 0x7c, 0x67, 0x82, 0x7c, 0xa8, 0xbd, 0xdb, 0x8e, 0x32, 0xde, 0x4b, + 0x77, 0xe6, 0x36, 0xd6, 0x35, 0x17, 0xd7, 0xcb, 0xb7, 0x05, 0xc9, 0x03, 0x0f, 0xd0, 0x1c, 0x94, + 0x74, 0x5d, 0xc5, 0xa6, 0xb6, 0xdd, 0xc4, 0xaa, 0x66, 0x63, 0x53, 0x73, 0xca, 0x33, 0x94, 0x38, + 0xe7, 0xda, 0x1d, 0xac, 0x8c, 0xe9, 0xfa, 0x12, 0x7d, 0x38, 0x4f, 0x9f, 0xa1, 0x33, 0x30, 0x61, + 0x6d, 0xbf, 0xa8, 0x33, 0x8d, 0x54, 0xdb, 0x36, 0xde, 0x31, 0xf6, 0xcb, 0xf7, 0x50, 0xf1, 0x8e, + 0x93, 0x07, 0x54, 0x1f, 0xd7, 0x69, 0x35, 0x3a, 0x0d, 0x25, 0xdd, 0xd9, 0xd5, 0xec, 0x36, 0x35, + 0xc9, 0x4e, 0x5b, 0xd3, 0x71, 0xf9, 0x5e, 0x46, 0xca, 0xea, 0xaf, 0x88, 0x6a, 0xb2, 0x22, 0x9c, + 0xeb, 0xc6, 0x8e, 0x2b, 0x10, 0x4f, 0xb1, 0x15, 0x41, 0xeb, 0x38, 0xda, 0x2c, 0x94, 0x88, 0x24, + 0x42, 0x0d, 0xcf, 0x52, 0xb2, 0xb1, 0xf6, 0x6e, 0x3b, 0xd8, 0xee, 0xdd, 0x30, 0x4a, 0x28, 0xfd, + 0x46, 0x4f, 0xb3, 0xc0, 0xad, 0xbd, 0x1b, 0x68, 0xf1, 0x11, 0x38, 0x4e, 0x88, 0x5a, 0xd8, 0xd5, + 0xea, 0x9a, 0xab, 0x05, 0xa8, 0x1f, 0xa0, 0xd4, 0x44, 0xec, 0xab, 0xfc, 0x61, 0xa8, 0x9f, 0x76, + 0x67, 0xfb, 0xc0, 0x53, 0xac, 0x07, 0x59, 0x3f, 0x49, 0x9d, 0x50, 0xad, 0x37, 0x2d, 0x38, 0x97, + 0xab, 0x30, 0x12, 0xd4, 0x7b, 0x54, 0x00, 0xa6, 0xf9, 0x25, 0x89, 0x04, 0x41, 0x0b, 0x6b, 0x8b, + 0x24, 0x7c, 0x79, 0xd7, 0x52, 0x29, 0x43, 0xc2, 0xa8, 0x95, 0xe5, 0xcd, 0x25, 0x55, 0xd9, 0xba, + 0xb2, 0xb9, 0xbc, 0xba, 0x54, 0xca, 0x06, 0x02, 0xfb, 0xa7, 0x73, 0xf9, 0xfb, 0x4a, 0xa7, 0xe4, + 0x6f, 0x66, 0x60, 0x2c, 0xbc, 0x53, 0x43, 0xef, 0x84, 0xdb, 0x44, 0x5a, 0xc5, 0xc1, 0xae, 0x7a, + 0xdd, 0xb0, 0xe9, 0x82, 0x6c, 0x69, 0xcc, 0x39, 0x7a, 0xfa, 0x33, 0xc5, 0xa9, 0x36, 0xb0, 0xfb, + 0x9c, 0x61, 0x93, 0xe5, 0xd6, 0xd2, 0x5c, 0xb4, 0x02, 0x33, 0xa6, 0xa5, 0x3a, 0xae, 0x66, 0xd6, + 0x35, 0xbb, 0xae, 0xfa, 0x09, 0x2d, 0x55, 0xd3, 0x75, 0xec, 0x38, 0x16, 0x73, 0x84, 0x1e, 0xca, + 0x1d, 0xa6, 0xb5, 0xc1, 0x89, 0x7d, 0x0f, 0x31, 0xcf, 0x49, 0x23, 0xea, 0x9b, 0xed, 0xa5, 0xbe, + 0xb7, 0x43, 0xa1, 0xa5, 0xb5, 0x55, 0x6c, 0xba, 0xf6, 0x01, 0x8d, 0xcf, 0xf3, 0x4a, 0xbe, 0xa5, + 0xb5, 0x97, 0x48, 0xf9, 0x2d, 0xd9, 0x26, 0x3d, 0x9d, 0xcb, 0xe7, 0x4b, 0x85, 0xa7, 0x73, 0xf9, + 0x42, 0x09, 0xe4, 0x57, 0xb3, 0x30, 0x12, 0x8c, 0xd7, 0xc9, 0xf6, 0x47, 0xa7, 0x1e, 0x4b, 0xa2, + 0x36, 0xed, 0xee, 0x43, 0xa3, 0xfb, 0xb9, 0x05, 0xe2, 0xca, 0xaa, 0x43, 0x2c, 0x38, 0x56, 0x18, + 0x27, 0x09, 0x23, 0x88, 0xb2, 0x61, 0x16, 0x8c, 0xe4, 0x15, 0x5e, 0x42, 0x97, 0x60, 0xe8, 0x45, + 0x87, 0x62, 0x0f, 0x51, 0xec, 0x7b, 0x0e, 0xc7, 0x7e, 0x7a, 0x83, 0x82, 0x17, 0x9e, 0xde, 0x50, + 0xaf, 0xac, 0x29, 0xab, 0xf3, 0x2b, 0x0a, 0x67, 0x47, 0x27, 0x20, 0xd7, 0xd4, 0x5e, 0x3e, 0x08, + 0x3b, 0x3d, 0x5a, 0x95, 0x76, 0x12, 0x4e, 0x40, 0xee, 0x3a, 0xd6, 0xae, 0x85, 0x5d, 0x0d, 0xad, + 0x7a, 0x13, 0x17, 0xc3, 0x59, 0x18, 0xa4, 0xf2, 0x42, 0x00, 0x5c, 0x62, 0xa5, 0x01, 0x94, 0x87, + 0xdc, 0xc2, 0x9a, 0x42, 0x16, 0x44, 0x09, 0x46, 0x58, 0xad, 0xba, 0xbe, 0xbc, 0xb4, 0xb0, 0x54, + 0xca, 0xc8, 0x8f, 0xc2, 0x10, 0x13, 0x02, 0x59, 0x2c, 0x9e, 0x18, 0x4a, 0x03, 0xbc, 0xc8, 0x31, + 0x24, 0xf1, 0x74, 0x6b, 0xb5, 0xb6, 0xa4, 0x94, 0x32, 0xe1, 0xa9, 0xce, 0x95, 0x06, 0x65, 0x07, + 0x46, 0x82, 0x71, 0xf8, 0x5b, 0xb3, 0x19, 0xff, 0xaa, 0x04, 0xc5, 0x40, 0x5c, 0x4d, 0x02, 0x22, + 0xad, 0xd9, 0xb4, 0xae, 0xab, 0x5a, 0xd3, 0xd0, 0x1c, 0xae, 0x1a, 0x40, 0xab, 0xe6, 0x49, 0x4d, + 0xda, 0xa9, 0x7b, 0x8b, 0x96, 0xc8, 0x60, 0x69, 0x48, 0xfe, 0x8c, 0x04, 0xa5, 0x68, 0x60, 0x1b, + 0xe9, 0xa6, 0xf4, 0xc3, 0xec, 0xa6, 0xfc, 0x29, 0x09, 0xc6, 0xc2, 0xd1, 0x6c, 0xa4, 0x7b, 0x77, + 0xfd, 0x50, 0xbb, 0xf7, 0x07, 0x19, 0x18, 0x0d, 0xc5, 0xb0, 0x69, 0x7b, 0xf7, 0x12, 0x4c, 0x18, + 0x75, 0xdc, 0x6a, 0x5b, 0x2e, 0x36, 0xf5, 0x03, 0xb5, 0x89, 0xf7, 0x70, 0xb3, 0x2c, 0x53, 0xa3, + 0x71, 0xf6, 0xf0, 0x28, 0x79, 0x6e, 0xd9, 0xe7, 0x5b, 0x21, 0x6c, 0xd5, 0xc9, 0xe5, 0xc5, 0xa5, + 0xd5, 0xf5, 0xb5, 0xcd, 0xa5, 0x2b, 0x0b, 0x2f, 0xa8, 0x5b, 0x57, 0x9e, 0xb9, 0xb2, 0xf6, 0xdc, + 0x15, 0xa5, 0x64, 0x44, 0xc8, 0xde, 0xc4, 0x65, 0xbf, 0x0e, 0xa5, 0x68, 0xa7, 0xd0, 0x6d, 0x10, + 0xd7, 0xad, 0xd2, 0x00, 0x9a, 0x84, 0xf1, 0x2b, 0x6b, 0xea, 0xc6, 0xf2, 0xe2, 0x92, 0xba, 0x74, + 0xf1, 0xe2, 0xd2, 0xc2, 0xe6, 0x06, 0xcb, 0x7b, 0x78, 0xd4, 0x9b, 0xa1, 0x05, 0x2e, 0x7f, 0x32, + 0x0b, 0x93, 0x31, 0x3d, 0x41, 0xf3, 0x7c, 0xc7, 0xc2, 0x36, 0x51, 0x0f, 0xa6, 0xe9, 0xfd, 0x1c, + 0x89, 0x19, 0xd6, 0x35, 0xdb, 0xe5, 0x1b, 0x9c, 0xd3, 0x40, 0xa4, 0x64, 0xba, 0xc6, 0x8e, 0x81, + 0x6d, 0x9e, 0x4f, 0x62, 0xdb, 0x98, 0x71, 0xbf, 0x9e, 0xa5, 0x94, 0x1e, 0x00, 0xd4, 0xb6, 0x1c, + 0xc3, 0x35, 0xf6, 0xb0, 0x6a, 0x98, 0x22, 0xf9, 0x44, 0xb6, 0x35, 0x39, 0xa5, 0x24, 0x9e, 0x2c, + 0x9b, 0xae, 0x47, 0x6d, 0xe2, 0x86, 0x16, 0xa1, 0x26, 0xc6, 0x3c, 0xab, 0x94, 0xc4, 0x13, 0x8f, + 0xfa, 0x2e, 0x18, 0xa9, 0x5b, 0x1d, 0x12, 0xeb, 0x31, 0x3a, 0xe2, 0x3b, 0x24, 0xa5, 0xc8, 0xea, + 0x3c, 0x12, 0x1e, 0xc5, 0xfb, 0x59, 0xaf, 0x11, 0xa5, 0xc8, 0xea, 0x18, 0xc9, 0x29, 0x18, 0xd7, + 0x1a, 0x0d, 0x9b, 0x80, 0x0b, 0x20, 0xb6, 0x2f, 0x19, 0xf3, 0xaa, 0x29, 0x61, 0xe5, 0x69, 0xc8, + 0x0b, 0x39, 0x10, 0x57, 0x4d, 0x24, 0xa1, 0xb6, 0xd9, 0x66, 0x3b, 0x33, 0x5b, 0x50, 0xf2, 0xa6, + 0x78, 0x78, 0x17, 0x8c, 0x18, 0x8e, 0xea, 0x27, 0xf1, 0x33, 0x27, 0x33, 0xb3, 0x79, 0xa5, 0x68, + 0x38, 0x5e, 0x02, 0x54, 0xfe, 0x7c, 0x06, 0xc6, 0xc2, 0x87, 0x10, 0x68, 0x11, 0xf2, 0x4d, 0x4b, + 0xd7, 0xa8, 0x6a, 0xb1, 0x13, 0xb0, 0xd9, 0x84, 0x73, 0x8b, 0xb9, 0x15, 0x4e, 0xaf, 0x78, 0x9c, + 0x95, 0xff, 0x24, 0x41, 0x5e, 0x54, 0xa3, 0xe3, 0x90, 0x6b, 0x6b, 0xee, 0x2e, 0x85, 0x1b, 0xac, + 0x65, 0x4a, 0x92, 0x42, 0xcb, 0xa4, 0xde, 0x69, 0x6b, 0x26, 0x55, 0x01, 0x5e, 0x4f, 0xca, 0x64, + 0x5e, 0x9b, 0x58, 0xab, 0xd3, 0x4d, 0x8f, 0xd5, 0x6a, 0x61, 0xd3, 0x75, 0xc4, 0xbc, 0xf2, 0xfa, + 0x05, 0x5e, 0x8d, 0xee, 0x87, 0x09, 0xd7, 0xd6, 0x8c, 0x66, 0x88, 0x36, 0x47, 0x69, 0x4b, 0xe2, + 0x81, 0x47, 0x5c, 0x85, 0x13, 0x02, 0xb7, 0x8e, 0x5d, 0x4d, 0xdf, 0xc5, 0x75, 0x9f, 0x69, 0x88, + 0x26, 0x37, 0x6e, 0xe3, 0x04, 0x8b, 0xfc, 0xb9, 0xe0, 0x95, 0xbf, 0x29, 0xc1, 0x84, 0xd8, 0xa6, + 0xd5, 0x3d, 0x61, 0xad, 0x02, 0x68, 0xa6, 0x69, 0xb9, 0x41, 0x71, 0x75, 0xab, 0x72, 0x17, 0xdf, + 0xdc, 0xbc, 0xc7, 0xa4, 0x04, 0x00, 0x2a, 0x2d, 0x00, 0xff, 0x49, 0x4f, 0xb1, 0xcd, 0x40, 0x91, + 0x9f, 0x30, 0xd1, 0x63, 0x4a, 0xb6, 0xb1, 0x07, 0x56, 0x45, 0xf6, 0x73, 0x68, 0x0a, 0x06, 0xb7, + 0x71, 0xc3, 0x30, 0x79, 0xde, 0x98, 0x15, 0x44, 0xfa, 0x25, 0xe7, 0xa5, 0x5f, 0x6a, 0x1f, 0x95, + 0x60, 0x52, 0xb7, 0x5a, 0xd1, 0xfe, 0xd6, 0x4a, 0x91, 0xec, 0x82, 0x73, 0x59, 0x7a, 0xd7, 0x93, + 0x0d, 0xc3, 0xdd, 0xed, 0x6c, 0xcf, 0xe9, 0x56, 0xeb, 0x6c, 0xc3, 0x6a, 0x6a, 0x66, 0xc3, 0x3f, + 0x67, 0xa5, 0x3f, 0xf4, 0x07, 0x1b, 0xd8, 0x7c, 0xb0, 0x61, 0x05, 0x4e, 0x5d, 0x2f, 0xf8, 0x3f, + 0xff, 0x4c, 0x92, 0x3e, 0x97, 0xc9, 0x5e, 0x5a, 0xaf, 0x7d, 0x31, 0x53, 0xb9, 0xc4, 0x9a, 0x5b, + 0x17, 0xe2, 0x51, 0xf0, 0x4e, 0x13, 0xeb, 0x64, 0xc8, 0xf0, 0xbd, 0xfb, 0x61, 0xaa, 0x61, 0x35, + 0x2c, 0x8a, 0x78, 0x96, 0xfc, 0xe2, 0x27, 0xb7, 0x05, 0xaf, 0xb6, 0x92, 0x78, 0xcc, 0x5b, 0xbd, + 0x02, 0x93, 0x9c, 0x58, 0xa5, 0x47, 0x47, 0x6c, 0x63, 0x83, 0x0e, 0xcd, 0xaa, 0x95, 0x7f, 0xe3, + 0x3b, 0xd4, 0xa1, 0x2b, 0x13, 0x9c, 0x95, 0x3c, 0x63, 0x7b, 0x9f, 0xaa, 0x02, 0xc7, 0x42, 0x78, + 0x6c, 0xd9, 0x62, 0x3b, 0x01, 0xf1, 0xdf, 0x72, 0xc4, 0xc9, 0x00, 0xe2, 0x06, 0x67, 0xad, 0x2e, + 0xc0, 0x68, 0x3f, 0x58, 0xbf, 0xc3, 0xb1, 0x46, 0x70, 0x10, 0xe4, 0x12, 0x8c, 0x53, 0x10, 0xbd, + 0xe3, 0xb8, 0x56, 0x8b, 0xda, 0xc4, 0xc3, 0x61, 0xfe, 0xdd, 0x77, 0xd8, 0x3a, 0x1a, 0x23, 0x6c, + 0x0b, 0x1e, 0x57, 0xb5, 0x0a, 0xf4, 0xb4, 0xac, 0x8e, 0xf5, 0x66, 0x02, 0xc2, 0xd7, 0x79, 0x47, + 0x3c, 0xfa, 0xea, 0x55, 0x98, 0x22, 0xbf, 0xa9, 0xc9, 0x0a, 0xf6, 0x24, 0x39, 0x05, 0x57, 0xfe, + 0xe6, 0xfb, 0xd9, 0x52, 0x9d, 0xf4, 0x00, 0x02, 0x7d, 0x0a, 0xcc, 0x62, 0x03, 0xbb, 0x2e, 0xb6, + 0x1d, 0x55, 0x6b, 0xc6, 0x75, 0x2f, 0x90, 0xc3, 0x28, 0xff, 0xe2, 0x6b, 0xe1, 0x59, 0xbc, 0xc4, + 0x38, 0xe7, 0x9b, 0xcd, 0xea, 0x16, 0xdc, 0x16, 0xa3, 0x15, 0x29, 0x30, 0x3f, 0xc9, 0x31, 0xa7, + 0xba, 0x34, 0x83, 0xc0, 0xae, 0x83, 0xa8, 0xf7, 0xe6, 0x32, 0x05, 0xe6, 0xdf, 0xe5, 0x98, 0x88, + 0xf3, 0x8a, 0x29, 0x25, 0x88, 0x4f, 0xc3, 0xc4, 0x1e, 0xb6, 0xb7, 0x2d, 0x87, 0xe7, 0x8d, 0x52, + 0xc0, 0x7d, 0x8a, 0xc3, 0x8d, 0x73, 0x46, 0x9a, 0x48, 0x22, 0x58, 0xe7, 0x21, 0xbf, 0xa3, 0xe9, + 0x38, 0x05, 0xc4, 0xa7, 0x39, 0xc4, 0x30, 0xa1, 0x27, 0xac, 0xf3, 0x30, 0xd2, 0xb0, 0xb8, 0xd7, + 0x4a, 0x66, 0xff, 0x0c, 0x67, 0x2f, 0x0a, 0x1e, 0x0e, 0xd1, 0xb6, 0xda, 0x9d, 0x26, 0x71, 0x69, + 0xc9, 0x10, 0x7f, 0x4f, 0x40, 0x08, 0x1e, 0x0e, 0xd1, 0x87, 0x58, 0x3f, 0x2b, 0x20, 0x9c, 0x80, + 0x3c, 0x9f, 0x82, 0xa2, 0x65, 0x36, 0x0f, 0x2c, 0x33, 0x4d, 0x27, 0x7e, 0x89, 0x23, 0x00, 0x67, + 0x21, 0x00, 0x17, 0xa0, 0x90, 0x76, 0x22, 0xfe, 0xfe, 0x6b, 0x62, 0x79, 0x88, 0x19, 0xb8, 0x04, + 0xe3, 0xc2, 0x40, 0x19, 0x96, 0x99, 0x02, 0xe2, 0x1f, 0x70, 0x88, 0xb1, 0x00, 0x1b, 0x1f, 0x86, + 0x8b, 0x1d, 0xb7, 0x81, 0xd3, 0x80, 0x7c, 0x5e, 0x0c, 0x83, 0xb3, 0x70, 0x51, 0x6e, 0x63, 0x53, + 0xdf, 0x4d, 0x87, 0xf0, 0x05, 0x21, 0x4a, 0xc1, 0x43, 0x20, 0x16, 0x60, 0xb4, 0xa5, 0xd9, 0xce, + 0xae, 0xd6, 0x4c, 0x35, 0x1d, 0xff, 0x90, 0x63, 0x8c, 0x78, 0x4c, 0x5c, 0x22, 0x1d, 0xb3, 0x1f, + 0x98, 0x2f, 0x0a, 0x89, 0x04, 0xd8, 0xf8, 0xd2, 0x73, 0x5c, 0x9a, 0x64, 0xeb, 0x07, 0xed, 0x57, + 0xc4, 0xd2, 0x63, 0xbc, 0xab, 0x41, 0xc4, 0x0b, 0x50, 0x70, 0x8c, 0x97, 0x53, 0xc1, 0xfc, 0xaa, + 0x98, 0x69, 0xca, 0x40, 0x98, 0x5f, 0x80, 0x13, 0xb1, 0x6e, 0x22, 0x05, 0xd8, 0x3f, 0xe2, 0x60, + 0xc7, 0x63, 0x5c, 0x05, 0x37, 0x09, 0xfd, 0x42, 0xfe, 0x63, 0x61, 0x12, 0x70, 0x04, 0x6b, 0x9d, + 0xec, 0x23, 0x1c, 0x6d, 0xa7, 0x3f, 0xa9, 0xfd, 0x9a, 0x90, 0x1a, 0xe3, 0x0d, 0x49, 0x6d, 0x13, + 0x8e, 0x73, 0xc4, 0xfe, 0xe6, 0xf5, 0xd7, 0x85, 0x61, 0x65, 0xdc, 0x5b, 0xe1, 0xd9, 0x7d, 0x37, + 0x54, 0x3c, 0x71, 0x8a, 0x80, 0xd5, 0x51, 0x5b, 0x5a, 0x3b, 0x05, 0xf2, 0x6f, 0x70, 0x64, 0x61, + 0xf1, 0xbd, 0x88, 0xd7, 0x59, 0xd5, 0xda, 0x04, 0xfc, 0x79, 0x28, 0x0b, 0xf0, 0x8e, 0x69, 0x63, + 0xdd, 0x6a, 0x98, 0xc6, 0xcb, 0xb8, 0x9e, 0x02, 0xfa, 0x9f, 0x44, 0xa6, 0x6a, 0x2b, 0xc0, 0x4e, + 0x90, 0x97, 0xa1, 0xe4, 0xc5, 0x2a, 0xaa, 0xd1, 0x6a, 0x5b, 0xb6, 0x9b, 0x80, 0xf8, 0x4f, 0xc5, + 0x4c, 0x79, 0x7c, 0xcb, 0x94, 0xad, 0xba, 0x04, 0xec, 0xe4, 0x39, 0xad, 0x4a, 0x7e, 0x89, 0x03, + 0x8d, 0xfa, 0x5c, 0xdc, 0x70, 0xe8, 0x56, 0xab, 0xad, 0xd9, 0x69, 0xec, 0xdf, 0x3f, 0x13, 0x86, + 0x83, 0xb3, 0x70, 0xc3, 0xe1, 0x1e, 0xb4, 0x31, 0xf1, 0xf6, 0x29, 0x10, 0xbe, 0x2c, 0x0c, 0x87, + 0xe0, 0xe1, 0x10, 0x22, 0x60, 0x48, 0x01, 0xf1, 0xcf, 0x05, 0x84, 0xe0, 0x21, 0x10, 0xcf, 0xfa, + 0x8e, 0xd6, 0xc6, 0x0d, 0xc3, 0x71, 0x6d, 0x16, 0x26, 0x1f, 0x0e, 0xf5, 0x95, 0xd7, 0xc2, 0x41, + 0x98, 0x12, 0x60, 0x25, 0x96, 0x88, 0xa7, 0x5d, 0xe9, 0x2e, 0x2a, 0xb9, 0x63, 0xbf, 0x29, 0x2c, + 0x51, 0x80, 0x8d, 0xf4, 0x2d, 0x10, 0x21, 0x12, 0xb1, 0xeb, 0x64, 0xef, 0x90, 0x02, 0xee, 0xb7, + 0x22, 0x9d, 0xdb, 0x10, 0xbc, 0x04, 0x33, 0x10, 0xff, 0x74, 0xcc, 0x6b, 0xf8, 0x20, 0x95, 0x76, + 0xfe, 0x8b, 0x48, 0xfc, 0xb3, 0xc5, 0x38, 0x99, 0x0d, 0x19, 0x8f, 0xc4, 0x53, 0x28, 0xe9, 0x9e, + 0x51, 0xf9, 0xaf, 0xbc, 0xce, 0xc7, 0x1b, 0x0e, 0xa7, 0xaa, 0x2b, 0x44, 0xc9, 0xc3, 0x41, 0x4f, + 0x32, 0xd8, 0xfb, 0x5f, 0xf7, 0xf4, 0x3c, 0x14, 0xf3, 0x54, 0x2f, 0xc2, 0x68, 0x28, 0xe0, 0x49, + 0x86, 0xfa, 0x00, 0x87, 0x1a, 0x09, 0xc6, 0x3b, 0xd5, 0x47, 0x21, 0x47, 0x82, 0x97, 0x64, 0xf6, + 0x9f, 0xe5, 0xec, 0x94, 0xbc, 0xfa, 0x53, 0x90, 0x17, 0x41, 0x4b, 0x32, 0xeb, 0x5f, 0xe5, 0xac, + 0x1e, 0x0b, 0x61, 0x17, 0x01, 0x4b, 0x32, 0xfb, 0x07, 0x05, 0xbb, 0x60, 0x21, 0xec, 0xe9, 0x45, + 0xf8, 0xd5, 0xbf, 0x9e, 0xe3, 0x4e, 0x47, 0xc8, 0xee, 0x02, 0x0c, 0xf3, 0x48, 0x25, 0x99, 0xfb, + 0x43, 0xbc, 0x71, 0xc1, 0x51, 0x7d, 0x1c, 0x06, 0x53, 0x0a, 0xfc, 0x23, 0x9c, 0x95, 0xd1, 0x57, + 0x17, 0xa0, 0x18, 0x88, 0x4e, 0x92, 0xd9, 0xff, 0x06, 0x67, 0x0f, 0x72, 0x91, 0xae, 0xf3, 0xe8, + 0x24, 0x19, 0xe0, 0xa3, 0xa2, 0xeb, 0x9c, 0x83, 0x88, 0x4d, 0x04, 0x26, 0xc9, 0xdc, 0x1f, 0x13, + 0x52, 0x17, 0x2c, 0xd5, 0xa7, 0xa0, 0xe0, 0x39, 0x9b, 0x64, 0xfe, 0x9f, 0xe7, 0xfc, 0x3e, 0x0f, + 0x91, 0x40, 0xc0, 0xd9, 0x25, 0x43, 0xfc, 0x4d, 0x21, 0x81, 0x00, 0x17, 0x59, 0x46, 0xd1, 0x00, + 0x26, 0x19, 0xe9, 0x6f, 0x89, 0x65, 0x14, 0x89, 0x5f, 0xc8, 0x6c, 0x52, 0x9b, 0x9f, 0x0c, 0xf1, + 0x71, 0x31, 0x9b, 0x94, 0x9e, 0x74, 0x23, 0x1a, 0x11, 0x24, 0x63, 0xfc, 0x1d, 0xd1, 0x8d, 0x48, + 0x40, 0x50, 0x5d, 0x07, 0xd4, 0x1d, 0x0d, 0x24, 0xe3, 0x7d, 0x82, 0xe3, 0x4d, 0x74, 0x05, 0x03, + 0xd5, 0xe7, 0xe0, 0x78, 0x7c, 0x24, 0x90, 0x8c, 0xfa, 0x8b, 0xaf, 0x47, 0xf6, 0x6e, 0xc1, 0x40, + 0xa0, 0xba, 0xe9, 0xbb, 0x94, 0x60, 0x14, 0x90, 0x0c, 0xfb, 0xc9, 0xd7, 0xc3, 0x86, 0x3b, 0x18, + 0x04, 0x54, 0xe7, 0x01, 0x7c, 0x07, 0x9c, 0x8c, 0xf5, 0x29, 0x8e, 0x15, 0x60, 0x22, 0x4b, 0x83, + 0xfb, 0xdf, 0x64, 0xfe, 0x4f, 0x8b, 0xa5, 0xc1, 0x39, 0xc8, 0xd2, 0x10, 0xae, 0x37, 0x99, 0xfb, + 0x33, 0x62, 0x69, 0x08, 0x16, 0xa2, 0xd9, 0x01, 0xef, 0x96, 0x8c, 0xf0, 0x4b, 0x42, 0xb3, 0x03, + 0x5c, 0xd5, 0x2b, 0x30, 0xd1, 0xe5, 0x10, 0x93, 0xa1, 0x3e, 0xc7, 0xa1, 0x4a, 0x51, 0x7f, 0x18, + 0x74, 0x5e, 0xdc, 0x19, 0x26, 0xa3, 0xfd, 0x72, 0xc4, 0x79, 0x71, 0x5f, 0x58, 0xbd, 0x00, 0x79, + 0xb3, 0xd3, 0x6c, 0x92, 0xc5, 0x83, 0x0e, 0xbf, 0x1b, 0x58, 0xfe, 0xa3, 0x1f, 0x70, 0xe9, 0x08, + 0x86, 0xea, 0xa3, 0x30, 0x88, 0x5b, 0xdb, 0xb8, 0x9e, 0xc4, 0xf9, 0xbd, 0x1f, 0x08, 0x83, 0x49, + 0xa8, 0xab, 0x4f, 0x01, 0xb0, 0xd4, 0x08, 0x3d, 0x1e, 0x4c, 0xe0, 0xfd, 0x9f, 0x3f, 0xe0, 0x97, + 0x71, 0x7c, 0x16, 0x1f, 0x80, 0x5d, 0xed, 0x39, 0x1c, 0xe0, 0xb5, 0x30, 0x00, 0x9d, 0x91, 0xf3, + 0x30, 0xfc, 0xa2, 0x63, 0x99, 0xae, 0xd6, 0x48, 0xe2, 0xfe, 0x5f, 0x9c, 0x5b, 0xd0, 0x13, 0x81, + 0xb5, 0x2c, 0x1b, 0xbb, 0x5a, 0xc3, 0x49, 0xe2, 0xfd, 0xdf, 0x9c, 0xd7, 0x63, 0x20, 0xcc, 0xba, + 0xe6, 0xb8, 0x69, 0xc6, 0xfd, 0xc7, 0x82, 0x59, 0x30, 0x90, 0x4e, 0x93, 0xdf, 0xd7, 0xf0, 0x41, + 0x12, 0xef, 0x9f, 0x88, 0x4e, 0x73, 0xfa, 0xea, 0x4f, 0x41, 0x81, 0xfc, 0x64, 0x37, 0xec, 0x12, + 0x98, 0xff, 0x0f, 0x67, 0xf6, 0x39, 0x48, 0xcb, 0x8e, 0x5b, 0x77, 0x8d, 0x64, 0x61, 0xdf, 0xe4, + 0x33, 0x2d, 0xe8, 0xab, 0xf3, 0x50, 0x74, 0xdc, 0x7a, 0xbd, 0xc3, 0xe3, 0xd3, 0x04, 0xf6, 0xff, + 0xfb, 0x03, 0x2f, 0x65, 0xe1, 0xf1, 0x90, 0xd9, 0xbe, 0x7e, 0xcd, 0x6d, 0x5b, 0xf4, 0x08, 0x24, + 0x09, 0xe1, 0x75, 0x8e, 0x10, 0x60, 0xa9, 0x2e, 0xc0, 0x08, 0x19, 0x8b, 0x8d, 0xdb, 0x98, 0x9e, + 0x57, 0x25, 0x40, 0xfc, 0x3f, 0x2e, 0x80, 0x10, 0x53, 0xed, 0x3d, 0x5f, 0x7f, 0x75, 0x5a, 0xfa, + 0xc6, 0xab, 0xd3, 0xd2, 0x1f, 0xbc, 0x3a, 0x2d, 0x7d, 0xec, 0xdb, 0xd3, 0x03, 0xdf, 0xf8, 0xf6, + 0xf4, 0xc0, 0xef, 0x7f, 0x7b, 0x7a, 0x20, 0x3e, 0x6d, 0x0c, 0x97, 0xac, 0x4b, 0x16, 0x4b, 0x18, + 0xbf, 0x4b, 0x0e, 0xa5, 0x8b, 0x1b, 0x96, 0x9f, 0xad, 0xf5, 0x36, 0x39, 0xf0, 0x81, 0x2c, 0x4c, + 0xeb, 0x96, 0xd3, 0xb2, 0x9c, 0xb3, 0xdb, 0x9a, 0x83, 0xcf, 0xee, 0x3d, 0xb4, 0x8d, 0x5d, 0xed, + 0xa1, 0xb3, 0xba, 0x65, 0x98, 0x3c, 0xed, 0x3b, 0xc9, 0x9e, 0xcf, 0x91, 0xe7, 0x73, 0xfc, 0x79, + 0x25, 0x36, 0x43, 0x2c, 0x5f, 0x82, 0xdc, 0x82, 0x65, 0x98, 0x68, 0x0a, 0x06, 0xeb, 0xd8, 0xb4, + 0x5a, 0xfc, 0x02, 0x18, 0x2b, 0xa0, 0xbb, 0x61, 0x48, 0x6b, 0x59, 0x1d, 0xd3, 0x65, 0xe9, 0xf2, + 0x5a, 0xf1, 0xeb, 0x37, 0x66, 0x06, 0xfe, 0xdb, 0x8d, 0x99, 0xec, 0xb2, 0xe9, 0x2a, 0xfc, 0x51, + 0x35, 0xf7, 0xdd, 0xcf, 0xce, 0x48, 0xf2, 0xd3, 0x30, 0xbc, 0x88, 0xf5, 0xa3, 0x60, 0x2d, 0x62, + 0x3d, 0x82, 0x75, 0x1a, 0xf2, 0xcb, 0xa6, 0xcb, 0xae, 0xe8, 0xdd, 0x09, 0x59, 0xc3, 0x64, 0xb7, + 0x3e, 0x22, 0xed, 0x93, 0x7a, 0x42, 0xba, 0x88, 0x75, 0x8f, 0xb4, 0x8e, 0xf5, 0x28, 0x29, 0x81, + 0x27, 0xf5, 0xb5, 0xc5, 0xdf, 0xff, 0xc3, 0xe9, 0x81, 0x57, 0x5e, 0x9d, 0x1e, 0xe8, 0x35, 0x3f, + 0x21, 0xf1, 0x73, 0x11, 0xb3, 0x3f, 0x0f, 0x3a, 0xf5, 0x6b, 0x67, 0xc9, 0xd2, 0x72, 0xb6, 0x87, + 0xd8, 0xad, 0x66, 0xf8, 0xad, 0x0c, 0xdc, 0x4b, 0x6f, 0x67, 0xdb, 0x2d, 0xc3, 0x74, 0xcf, 0xea, + 0xf6, 0x41, 0xdb, 0xb5, 0xce, 0xb6, 0xb0, 0x7d, 0xad, 0x89, 0xf9, 0x1f, 0x3e, 0x1b, 0x65, 0x9f, + 0x6c, 0x8e, 0x91, 0xcd, 0xb1, 0xe7, 0x3d, 0xa6, 0x64, 0x01, 0x86, 0xd7, 0x6d, 0xcb, 0xda, 0x59, + 0x6b, 0x23, 0xc4, 0x2f, 0x9c, 0xf3, 0xfb, 0x89, 0xd4, 0x1a, 0x94, 0x20, 0x7b, 0x0d, 0x1f, 0x50, + 0x21, 0x8e, 0x28, 0xe4, 0x27, 0xa1, 0xaa, 0x6b, 0xae, 0x46, 0xcf, 0x2d, 0x46, 0x14, 0xfa, 0x5b, + 0xae, 0xc1, 0x20, 0x05, 0x41, 0xe7, 0x21, 0x6b, 0xb5, 0x1d, 0x7e, 0xc8, 0x72, 0xd7, 0x5c, 0xaf, + 0xbe, 0xcc, 0xf1, 0x26, 0x6b, 0x39, 0x22, 0x37, 0x85, 0xf0, 0xd4, 0xd6, 0xff, 0xec, 0x0f, 0xa7, + 0xa5, 0x2f, 0xbc, 0x3a, 0x2d, 0xf5, 0x14, 0xd8, 0x5c, 0x40, 0x60, 0x01, 0x61, 0xf4, 0x92, 0x8b, + 0x27, 0xbc, 0x0f, 0x67, 0x60, 0x3a, 0x40, 0xd4, 0x34, 0xb6, 0x9d, 0xb3, 0xd7, 0xf6, 0x98, 0x84, + 0xb9, 0xd4, 0x50, 0xa0, 0xa7, 0xe4, 0xf9, 0xdc, 0xb5, 0xbd, 0x1e, 0xf2, 0x9a, 0x83, 0xdc, 0xba, + 0x66, 0xd8, 0x42, 0x30, 0x92, 0x2f, 0x98, 0x29, 0xff, 0x8a, 0x31, 0xa9, 0x63, 0x05, 0xf9, 0x1c, + 0xe4, 0x9f, 0x59, 0x7e, 0xec, 0x91, 0x34, 0x3c, 0x59, 0xce, 0x53, 0x53, 0x84, 0x28, 0xbe, 0x12, + 0x23, 0x8e, 0xaf, 0x7e, 0x7b, 0x5a, 0xf2, 0x44, 0x32, 0x9b, 0x28, 0x12, 0x3e, 0x5a, 0x4f, 0x18, + 0x1f, 0xcb, 0xc0, 0x4c, 0xf4, 0x70, 0x86, 0x58, 0x44, 0xc7, 0xd5, 0x5a, 0xed, 0x5e, 0xaf, 0xe0, + 0x5d, 0x80, 0xc2, 0xa6, 0xa0, 0x41, 0x65, 0x18, 0x76, 0xb0, 0x6e, 0x99, 0x75, 0x87, 0x8e, 0x24, + 0xab, 0x88, 0x22, 0x19, 0x8d, 0xa9, 0x99, 0x96, 0xc3, 0x2f, 0xfe, 0xb2, 0x42, 0xed, 0x6f, 0x4b, + 0xfd, 0x99, 0xa8, 0x31, 0xaf, 0x29, 0xba, 0xd0, 0xd6, 0xa5, 0x77, 0xdd, 0x7f, 0xd8, 0xb9, 0x16, + 0x9d, 0x46, 0x7f, 0x08, 0x81, 0x43, 0xac, 0xe9, 0xe8, 0x21, 0xd6, 0x73, 0xb8, 0xd9, 0x7c, 0xc6, + 0xb4, 0xae, 0x9b, 0x9b, 0xa1, 0xc5, 0xf5, 0x73, 0x19, 0x98, 0xee, 0x3a, 0xaf, 0xe2, 0x56, 0xbe, + 0x97, 0x44, 0xaa, 0x90, 0x5f, 0x14, 0xce, 0xa3, 0x5f, 0x81, 0x7c, 0xbc, 0x4f, 0x81, 0x8c, 0x8a, + 0x96, 0x84, 0x3c, 0xce, 0x24, 0xcb, 0x43, 0xf4, 0xff, 0x08, 0xe2, 0xf8, 0xc0, 0x93, 0x70, 0x57, + 0x40, 0x81, 0xb4, 0x6d, 0xdd, 0x38, 0xcb, 0x85, 0x1c, 0x58, 0x31, 0xc7, 0x02, 0x2b, 0x86, 0x90, + 0xcc, 0xd1, 0x87, 0xf1, 0x8b, 0xa6, 0x92, 0xce, 0x76, 0x55, 0x12, 0x56, 0x69, 0x25, 0x49, 0x71, + 0x2b, 0x09, 0xd3, 0x28, 0xff, 0xe9, 0x20, 0x0c, 0x2b, 0xf8, 0xa5, 0x0e, 0x76, 0xe8, 0x1b, 0xa4, + 0x58, 0xdf, 0xb5, 0xf8, 0x3b, 0x07, 0xf2, 0x5c, 0xec, 0x78, 0xe6, 0x38, 0xf5, 0x92, 0xbe, 0x6b, + 0x5d, 0x1e, 0x50, 0x28, 0x07, 0x7d, 0x65, 0xaf, 0xd9, 0x71, 0x76, 0xf9, 0xd5, 0xf0, 0xbb, 0x0f, + 0x67, 0xbd, 0x48, 0x48, 0x2f, 0x0f, 0x28, 0x8c, 0x87, 0x34, 0x4b, 0x5f, 0x37, 0xcc, 0xa5, 0x69, + 0x76, 0xd9, 0xdc, 0xa1, 0xcd, 0x12, 0x0e, 0x74, 0x19, 0xc0, 0xc1, 0xae, 0xb8, 0x51, 0x32, 0x48, + 0xf9, 0x4f, 0x1d, 0xce, 0xbf, 0x81, 0x5d, 0x16, 0x3d, 0x5c, 0x1e, 0x50, 0x0a, 0x8e, 0x28, 0x10, + 0x24, 0xc3, 0x34, 0x5c, 0x55, 0xdf, 0xd5, 0x0c, 0x93, 0x5e, 0x85, 0x48, 0x44, 0x5a, 0x36, 0x0d, + 0x77, 0x81, 0x90, 0x13, 0x24, 0x43, 0x14, 0x88, 0x28, 0x5e, 0xea, 0x60, 0x7e, 0x05, 0x31, 0x51, + 0x14, 0xcf, 0x12, 0x52, 0x22, 0x0a, 0xca, 0x83, 0x9e, 0x81, 0x22, 0x3d, 0xf5, 0x56, 0xb7, 0x9b, + 0x96, 0x7e, 0x8d, 0xbf, 0x08, 0x34, 0x7b, 0x38, 0x44, 0x8d, 0x30, 0xd4, 0x08, 0xfd, 0xe5, 0x01, + 0x05, 0xb6, 0xbd, 0x12, 0xaa, 0x41, 0x9e, 0x5d, 0xbe, 0x76, 0xf7, 0xf9, 0xab, 0x9c, 0xf7, 0x1e, + 0x8e, 0x44, 0xef, 0x61, 0x6f, 0xee, 0x5f, 0x1e, 0x50, 0x86, 0x75, 0xf6, 0x13, 0x2d, 0x41, 0x01, + 0x9b, 0x75, 0xde, 0x9d, 0x22, 0x7f, 0xe9, 0xed, 0x70, 0xbd, 0x30, 0xeb, 0xa2, 0x33, 0x79, 0xcc, + 0x7f, 0xa3, 0x27, 0x61, 0x48, 0xb7, 0x5a, 0x2d, 0xc3, 0xa5, 0xaf, 0x84, 0x16, 0xcf, 0xdd, 0x93, + 0xd0, 0x11, 0x4a, 0x7b, 0x79, 0x40, 0xe1, 0x5c, 0x64, 0x7a, 0xea, 0xb8, 0x69, 0xec, 0x61, 0x9b, + 0x0c, 0x66, 0x32, 0xcd, 0xf4, 0x2c, 0x32, 0x7a, 0x3a, 0x9c, 0x42, 0x5d, 0x14, 0x6a, 0xc3, 0xdc, + 0xbd, 0xc8, 0xa7, 0xa0, 0x18, 0xd0, 0x64, 0x62, 0xb1, 0xf8, 0x46, 0x90, 0x3b, 0x7b, 0x51, 0x94, + 0xc7, 0x60, 0x24, 0xa8, 0xb7, 0x72, 0xcb, 0x63, 0xa4, 0x77, 0x29, 0xca, 0x30, 0xbc, 0x87, 0x6d, + 0x87, 0x5d, 0xa4, 0xa0, 0x8c, 0xbc, 0x88, 0xee, 0x86, 0x51, 0x2a, 0x37, 0x55, 0x3c, 0xcf, 0xd0, + 0x7b, 0x3b, 0x23, 0xb4, 0xf2, 0x2a, 0x27, 0x9a, 0x81, 0x62, 0xfb, 0x5c, 0xdb, 0x23, 0xc9, 0x52, + 0x12, 0x68, 0x9f, 0x6b, 0x73, 0x02, 0xb9, 0x0a, 0xa5, 0xa8, 0xea, 0x06, 0xbd, 0x66, 0x21, 0xc6, + 0x6b, 0x16, 0x84, 0xa7, 0xfd, 0xf5, 0x8c, 0xc7, 0xec, 0x69, 0x2b, 0x59, 0x6e, 0xc4, 0x48, 0x50, + 0xee, 0xe2, 0xb9, 0x4a, 0x57, 0x84, 0xed, 0xf9, 0x9a, 0x5a, 0x9e, 0x84, 0x22, 0x1f, 0xfb, 0xd6, + 0x8c, 0xa4, 0x50, 0x0e, 0x74, 0x82, 0x28, 0x94, 0x66, 0x98, 0xaa, 0x51, 0x17, 0x2f, 0x7f, 0xd3, + 0xf2, 0x72, 0x1d, 0x3d, 0x0b, 0x25, 0xdd, 0x32, 0x1d, 0x6c, 0x3a, 0x1d, 0x47, 0x6d, 0x6b, 0xb6, + 0xd6, 0xf2, 0xdf, 0x91, 0x8c, 0x9f, 0xa6, 0x05, 0x41, 0xbe, 0x4e, 0xa9, 0x95, 0x71, 0x3d, 0x5c, + 0x81, 0x56, 0x00, 0xf6, 0xb4, 0xa6, 0x51, 0xd7, 0x5c, 0xcb, 0x76, 0xf8, 0x2b, 0x42, 0xbd, 0xc0, + 0xae, 0x0a, 0xc2, 0xad, 0x76, 0x5d, 0x73, 0x31, 0x0f, 0xa2, 0x02, 0xfc, 0xe8, 0x3e, 0x18, 0xd7, + 0xda, 0x6d, 0xd5, 0x71, 0x35, 0x17, 0xab, 0xdb, 0x07, 0x2e, 0x76, 0xa8, 0xbd, 0x18, 0x51, 0x46, + 0xb5, 0x76, 0x7b, 0x83, 0xd4, 0xd6, 0x48, 0xa5, 0x5c, 0xf7, 0x66, 0x9b, 0x2e, 0x4d, 0x2f, 0xb6, + 0x93, 0xfc, 0xd8, 0x8e, 0xd4, 0xd1, 0x1b, 0x2e, 0x4c, 0x06, 0xe2, 0x52, 0xd0, 0xd0, 0x2e, 0x36, + 0x1a, 0xbb, 0x2e, 0x1d, 0x76, 0x56, 0xe1, 0x25, 0x32, 0x31, 0x6d, 0xdb, 0xda, 0x63, 0x97, 0xb6, + 0xf2, 0x0a, 0x2b, 0xc8, 0xbf, 0x90, 0x81, 0x89, 0xae, 0xe5, 0x4b, 0x70, 0xe9, 0x6b, 0x16, 0xbc, + 0x2d, 0xf2, 0x1b, 0x5d, 0x20, 0xb8, 0x5a, 0x9d, 0xbf, 0x3a, 0x54, 0x3c, 0x77, 0x67, 0x0f, 0x09, + 0x5c, 0xa6, 0x44, 0x7c, 0xe0, 0x9c, 0x05, 0x6d, 0x41, 0xa9, 0xa9, 0x39, 0xae, 0xca, 0x56, 0x11, + 0x7b, 0xa9, 0x3b, 0x7b, 0xa8, 0x25, 0x58, 0xd1, 0xc4, 0xea, 0x23, 0xca, 0xcd, 0xe1, 0xc6, 0x9a, + 0xa1, 0x5a, 0xf4, 0x3c, 0x4c, 0x6d, 0x1f, 0xbc, 0xac, 0x99, 0xae, 0x61, 0xd2, 0x3b, 0x5f, 0xe1, + 0x39, 0x9a, 0xe9, 0x01, 0xbd, 0xb4, 0x67, 0xd4, 0xb1, 0xa9, 0x8b, 0xc9, 0x99, 0xf4, 0x20, 0xbc, + 0xc9, 0x73, 0xe4, 0xe7, 0x61, 0x2c, 0x6c, 0x8b, 0xd0, 0x18, 0x64, 0xdc, 0x7d, 0x2e, 0x91, 0x8c, + 0xbb, 0x8f, 0x1e, 0xe3, 0x11, 0x79, 0x86, 0x5e, 0x5a, 0xec, 0xe5, 0x2c, 0x38, 0xb7, 0xff, 0xea, + 0xa7, 0x2c, 0x7b, 0x2b, 0xc1, 0x33, 0x0c, 0x51, 0x6c, 0xf9, 0x34, 0x8c, 0x47, 0x8c, 0x58, 0x60, + 0x5a, 0xa5, 0xe0, 0xb4, 0xca, 0xe3, 0x30, 0x1a, 0xb2, 0x55, 0xf2, 0xef, 0x0e, 0x41, 0x5e, 0xc1, + 0x4e, 0x9b, 0x28, 0x31, 0xba, 0x0c, 0x05, 0xbc, 0xaf, 0xe3, 0xb6, 0x2b, 0xac, 0xc2, 0x61, 0x46, + 0x9c, 0xf1, 0x2c, 0x09, 0x7a, 0x62, 0xae, 0x3c, 0x66, 0x74, 0x3e, 0xe4, 0x92, 0xef, 0x4e, 0x02, + 0x09, 0xfa, 0xe4, 0x77, 0x86, 0x7d, 0xf2, 0x3d, 0x09, 0xbc, 0x11, 0xa7, 0x7c, 0x3e, 0xe4, 0x94, + 0x93, 0x1a, 0x0e, 0x79, 0xe5, 0xe5, 0x18, 0xaf, 0x9c, 0x34, 0xfc, 0x1e, 0x6e, 0x79, 0x39, 0xc6, + 0x2d, 0xcf, 0x26, 0xf6, 0x25, 0xd6, 0x2f, 0xbf, 0x33, 0xec, 0x97, 0x93, 0xc4, 0x11, 0x71, 0xcc, + 0x2b, 0x71, 0x8e, 0xf9, 0x74, 0x02, 0x46, 0x4f, 0xcf, 0xbc, 0xd0, 0xe5, 0x99, 0xef, 0x4b, 0x80, + 0x8a, 0x71, 0xcd, 0xcb, 0x21, 0x9f, 0x08, 0xa9, 0x64, 0x13, 0xef, 0x14, 0xd1, 0xc5, 0x6e, 0x2f, + 0x7f, 0x2a, 0x49, 0xd5, 0xe2, 0xdc, 0xfc, 0x53, 0x11, 0x37, 0x7f, 0x6f, 0xd2, 0xa8, 0x22, 0x7e, + 0xde, 0xf7, 0xce, 0xa7, 0x89, 0x7d, 0x8c, 0xac, 0x0c, 0x62, 0x4b, 0xb1, 0x6d, 0x5b, 0xb6, 0xc8, + 0x6b, 0xd0, 0x82, 0x3c, 0x4b, 0x2c, 0xb6, 0xaf, 0xff, 0x87, 0x78, 0x72, 0xba, 0x68, 0x03, 0xda, + 0x2e, 0x7f, 0x45, 0xf2, 0x79, 0xa9, 0x65, 0x0b, 0x5a, 0xfb, 0x02, 0xb7, 0xf6, 0x01, 0x07, 0x9f, + 0x09, 0x3b, 0xf8, 0x19, 0x28, 0x12, 0x9f, 0x12, 0xf1, 0xdd, 0x5a, 0x5b, 0xf8, 0x6e, 0x74, 0x06, + 0x26, 0xa8, 0xfd, 0x65, 0x61, 0x00, 0x37, 0x24, 0x39, 0x6a, 0x48, 0xc6, 0xc9, 0x03, 0x26, 0x41, + 0xe6, 0x28, 0x1e, 0x84, 0xc9, 0x00, 0x2d, 0xc1, 0xa5, 0xbe, 0x80, 0x39, 0xa9, 0x92, 0x47, 0x3d, + 0xdf, 0x6e, 0x5f, 0xd6, 0x9c, 0x5d, 0x79, 0xd5, 0x17, 0x90, 0x1f, 0x17, 0x20, 0xc8, 0xe9, 0x56, + 0x9d, 0x8d, 0x7b, 0x54, 0xa1, 0xbf, 0x49, 0xac, 0xd0, 0xb4, 0x1a, 0xfc, 0x22, 0x2a, 0xf9, 0x49, + 0xa8, 0xbc, 0xa5, 0x5d, 0x60, 0x6b, 0x56, 0xfe, 0x92, 0xe4, 0xe3, 0xf9, 0xa1, 0x42, 0x9c, 0x57, + 0x97, 0x6e, 0xa5, 0x57, 0xcf, 0xbc, 0x31, 0xaf, 0x2e, 0xbf, 0x2e, 0xf9, 0x53, 0xea, 0xf9, 0xeb, + 0xa3, 0x89, 0x80, 0x68, 0x17, 0x7b, 0x71, 0x9f, 0x5d, 0x98, 0x66, 0x05, 0x11, 0x6a, 0x0d, 0xc5, + 0x24, 0x28, 0x86, 0x03, 0x49, 0x0d, 0xf4, 0x28, 0xf5, 0xf3, 0xd6, 0x0e, 0x37, 0x0d, 0x33, 0x09, + 0x89, 0x1e, 0x85, 0x51, 0x07, 0xfc, 0x4b, 0x21, 0x14, 0x36, 0xdc, 0x01, 0x05, 0xd2, 0x75, 0xf6, + 0x16, 0x1a, 0xf0, 0x2c, 0xaf, 0xa8, 0x90, 0xeb, 0x80, 0xba, 0x6d, 0x0c, 0xba, 0x02, 0x43, 0x78, + 0x8f, 0x5e, 0x0a, 0x66, 0xc9, 0xa6, 0x3b, 0x7a, 0x3a, 0x62, 0x6c, 0xba, 0xb5, 0x32, 0x11, 0xe6, + 0xf7, 0x6e, 0xcc, 0x94, 0x18, 0xcf, 0x03, 0x56, 0xcb, 0x70, 0x71, 0xab, 0xed, 0x1e, 0x28, 0x1c, + 0x45, 0xfe, 0x60, 0x86, 0xf8, 0xc3, 0x90, 0xfd, 0x89, 0x15, 0xaf, 0x58, 0x34, 0x99, 0x40, 0x88, + 0x94, 0x4e, 0xe4, 0x77, 0x02, 0x34, 0x34, 0x47, 0xbd, 0xae, 0x99, 0x2e, 0xae, 0x73, 0xb9, 0x17, + 0x1a, 0x9a, 0xf3, 0x1c, 0xad, 0x20, 0xf1, 0x26, 0x79, 0xdc, 0x71, 0x70, 0x9d, 0x4e, 0x40, 0x56, + 0x19, 0x6e, 0x68, 0xce, 0x96, 0x83, 0xeb, 0x81, 0xb1, 0x0e, 0xdf, 0x8a, 0xb1, 0x86, 0xe5, 0x9d, + 0x8f, 0xca, 0xfb, 0x43, 0x19, 0x7f, 0x75, 0xf8, 0xe1, 0xc3, 0x4f, 0xa6, 0x2c, 0x3e, 0x4d, 0xf7, + 0x14, 0x61, 0x27, 0x80, 0x5e, 0x80, 0x09, 0x6f, 0x55, 0xaa, 0x1d, 0xba, 0x5a, 0x85, 0x16, 0xf6, + 0xb7, 0xb8, 0x4b, 0x7b, 0xe1, 0x6a, 0x07, 0xbd, 0x17, 0x6e, 0x8b, 0xd8, 0x20, 0xaf, 0x81, 0x4c, + 0x5f, 0xa6, 0xe8, 0x58, 0xd8, 0x14, 0x09, 0x7c, 0x5f, 0x7a, 0xd9, 0x5b, 0xb2, 0x6a, 0xee, 0x21, + 0x21, 0x6c, 0xd0, 0xbd, 0xc5, 0xe9, 0x84, 0xfc, 0x7b, 0x12, 0x8c, 0x47, 0x3a, 0x88, 0x9e, 0x80, + 0x41, 0xe6, 0x81, 0xa5, 0x43, 0x13, 0x21, 0x54, 0xe2, 0x7c, 0x4c, 0x8c, 0x01, 0xcd, 0x43, 0x1e, + 0xf3, 0xe8, 0x9a, 0x0b, 0xe5, 0xde, 0x84, 0x20, 0x9c, 0xf3, 0x7b, 0x6c, 0x68, 0x11, 0x0a, 0x9e, + 0xe8, 0x13, 0x76, 0x6e, 0xde, 0xcc, 0x71, 0x10, 0x9f, 0x51, 0x5e, 0x80, 0x62, 0xa0, 0x7b, 0xec, + 0x95, 0xcc, 0x7d, 0xbe, 0xdd, 0x62, 0x01, 0x74, 0xbe, 0xa5, 0xed, 0xd3, 0x9d, 0x16, 0xba, 0x0d, + 0x86, 0xc9, 0xc3, 0x06, 0x7f, 0x67, 0x2d, 0xab, 0x0c, 0xb5, 0xb4, 0xfd, 0x4b, 0x9a, 0x23, 0xff, + 0x9c, 0x04, 0x63, 0xe1, 0x7e, 0xa2, 0xfb, 0x01, 0x11, 0x5a, 0xad, 0x81, 0x55, 0xb3, 0xd3, 0x62, + 0x3e, 0x52, 0x20, 0x8e, 0xb7, 0xb4, 0xfd, 0xf9, 0x06, 0xbe, 0xd2, 0x69, 0xd1, 0xa6, 0x1d, 0xb4, + 0x0a, 0x25, 0x41, 0x2c, 0x92, 0x5d, 0x5c, 0x2a, 0x27, 0xba, 0x3f, 0x2f, 0xc4, 0x09, 0xd8, 0x5e, + 0xf7, 0x13, 0x64, 0xaf, 0x3b, 0xc6, 0xf0, 0xc4, 0x13, 0xf9, 0x51, 0x18, 0x8f, 0x8c, 0x18, 0xc9, + 0x30, 0xda, 0xee, 0x6c, 0xab, 0xd7, 0xf0, 0x01, 0xfd, 0x08, 0x01, 0x53, 0xf5, 0x82, 0x52, 0x6c, + 0x77, 0xb6, 0x9f, 0xc1, 0x07, 0x34, 0x77, 0x28, 0xeb, 0x30, 0x16, 0xde, 0x4c, 0x11, 0xc7, 0x61, + 0x5b, 0x1d, 0xb3, 0x2e, 0x3e, 0x2f, 0x41, 0x0b, 0xe8, 0x02, 0x0c, 0xee, 0x59, 0x4c, 0x9b, 0x0f, + 0xdb, 0x3d, 0x5d, 0xb5, 0x5c, 0x1c, 0xd8, 0x92, 0x31, 0x1e, 0xd9, 0x81, 0x41, 0xaa, 0x97, 0xb1, + 0x07, 0x15, 0x57, 0x01, 0x34, 0xd7, 0xb5, 0x8d, 0xed, 0x8e, 0x0f, 0x5f, 0x9e, 0xeb, 0x4e, 0xeb, + 0xcf, 0xad, 0x6b, 0x86, 0x5d, 0xbb, 0x83, 0x6b, 0xf6, 0x94, 0xcf, 0x13, 0xd0, 0xee, 0x00, 0x92, + 0xfc, 0x5a, 0x0e, 0x86, 0xd8, 0x76, 0x13, 0x3d, 0x19, 0x4e, 0x7e, 0x14, 0xcf, 0x4d, 0xf7, 0xea, + 0x3e, 0xa3, 0xe2, 0xbd, 0xf7, 0x22, 0xa8, 0xfb, 0xa2, 0x19, 0x85, 0x5a, 0xf1, 0xd5, 0x1b, 0x33, + 0xc3, 0x34, 0xfa, 0x58, 0x5e, 0xf4, 0xd3, 0x0b, 0xbd, 0x76, 0xd7, 0x22, 0x97, 0x91, 0xeb, 0x3b, + 0x97, 0x71, 0x19, 0x46, 0x03, 0xe1, 0x96, 0x51, 0xe7, 0xfb, 0x94, 0xe9, 0xc3, 0x16, 0xdd, 0xf2, + 0x22, 0xef, 0x7f, 0xd1, 0x0b, 0xc7, 0x96, 0xeb, 0x68, 0x36, 0xbc, 0xc9, 0xa6, 0x51, 0x1b, 0x0b, + 0x17, 0x02, 0xfb, 0x66, 0xfa, 0x65, 0x84, 0xdb, 0xa1, 0x40, 0xdf, 0x2f, 0xa7, 0x24, 0x2c, 0x7a, + 0xc8, 0x93, 0x0a, 0xfa, 0xf0, 0x14, 0x8c, 0xfb, 0x81, 0x0d, 0x23, 0xc9, 0x33, 0x14, 0xbf, 0x9a, + 0x12, 0xbe, 0x03, 0xa6, 0x4c, 0xbc, 0xef, 0xaa, 0x51, 0xea, 0x02, 0xa5, 0x46, 0xe4, 0xd9, 0xd5, + 0x30, 0xc7, 0xbd, 0x30, 0xe6, 0x9b, 0x50, 0x4a, 0x0b, 0x2c, 0xf5, 0xe1, 0xd5, 0x52, 0xb2, 0x13, + 0x90, 0xf7, 0xc2, 0xce, 0x22, 0x25, 0x18, 0xd6, 0x58, 0xb4, 0xe9, 0x05, 0xb2, 0x36, 0x76, 0x3a, + 0x4d, 0x97, 0x83, 0x8c, 0x50, 0x1a, 0x1a, 0xc8, 0x2a, 0xac, 0x9e, 0xd2, 0xde, 0x0d, 0xa3, 0xc2, + 0xaa, 0x30, 0xba, 0x51, 0x4a, 0x37, 0x22, 0x2a, 0x29, 0xd1, 0x69, 0x28, 0xb5, 0x6d, 0xab, 0x6d, + 0x39, 0xd8, 0x56, 0xb5, 0x7a, 0xdd, 0xc6, 0x8e, 0x53, 0x1e, 0x63, 0x78, 0xa2, 0x7e, 0x9e, 0x55, + 0xcb, 0x0f, 0xc1, 0xb0, 0x88, 0xa7, 0xa7, 0x60, 0xb0, 0xe6, 0x59, 0xc8, 0x9c, 0xc2, 0x0a, 0xc4, + 0xbf, 0xce, 0xb7, 0xdb, 0x3c, 0xbb, 0x46, 0x7e, 0xca, 0x4d, 0x18, 0xe6, 0x13, 0x16, 0x9b, 0x53, + 0x59, 0x85, 0x91, 0xb6, 0x66, 0x93, 0x61, 0x04, 0x33, 0x2b, 0xbd, 0x76, 0x84, 0xeb, 0x9a, 0xed, + 0x6e, 0x60, 0x37, 0x94, 0x60, 0x29, 0x52, 0x7e, 0x56, 0x25, 0x9f, 0x87, 0xd1, 0x10, 0x0d, 0xe9, + 0xa6, 0x6b, 0xb9, 0x5a, 0x53, 0x2c, 0x74, 0x5a, 0xf0, 0x7a, 0x92, 0xf1, 0x7b, 0x22, 0x5f, 0x80, + 0x82, 0x37, 0x57, 0x64, 0xa3, 0x21, 0x44, 0x21, 0x71, 0xf1, 0xb3, 0x22, 0x4d, 0x22, 0x59, 0xd7, + 0xf9, 0x17, 0xb5, 0xb2, 0x0a, 0x2b, 0xc8, 0x38, 0x60, 0x98, 0x98, 0x37, 0x43, 0xef, 0x84, 0x61, + 0x6e, 0x98, 0xf8, 0x7a, 0xec, 0x95, 0x2e, 0x5a, 0xa7, 0x96, 0x4a, 0xa4, 0x8b, 0x98, 0xdd, 0xf2, + 0x9b, 0xc9, 0x04, 0x9b, 0x79, 0x1f, 0xe4, 0x85, 0xf1, 0x09, 0x7b, 0x09, 0xd6, 0xc2, 0xc9, 0x24, + 0x2f, 0xc1, 0x1b, 0xf1, 0x19, 0x89, 0x36, 0x39, 0x46, 0xc3, 0xc4, 0x75, 0xd5, 0x5f, 0x82, 0xfc, + 0xbd, 0xe5, 0x71, 0xf6, 0x60, 0x45, 0xac, 0x2f, 0xf9, 0x1d, 0x30, 0xc4, 0xfa, 0x1a, 0x6b, 0xe2, + 0xe2, 0x5c, 0xeb, 0x77, 0x24, 0xc8, 0x0b, 0xf7, 0x11, 0xcb, 0x14, 0x1a, 0x44, 0xe6, 0xa8, 0x83, + 0xb8, 0xf5, 0x26, 0xe9, 0x01, 0x40, 0x54, 0x53, 0xd4, 0x3d, 0xcb, 0x35, 0xcc, 0x86, 0xca, 0xe6, + 0x82, 0xbf, 0xbe, 0x49, 0x9f, 0x5c, 0xa5, 0x0f, 0xd6, 0x49, 0xfd, 0x99, 0xbb, 0xa1, 0x18, 0xc8, + 0x72, 0xa1, 0x61, 0xc8, 0x5e, 0xc1, 0xd7, 0x4b, 0x03, 0xa8, 0x08, 0xc3, 0x0a, 0xa6, 0x39, 0x82, + 0x92, 0x74, 0xee, 0xb5, 0x61, 0x18, 0x9f, 0xaf, 0x2d, 0x2c, 0xcf, 0xb7, 0xdb, 0x4d, 0x83, 0xbf, + 0xd6, 0xb8, 0x06, 0x39, 0xba, 0x4f, 0x4e, 0x71, 0xbe, 0x53, 0x49, 0x93, 0x70, 0x42, 0x0a, 0x0c, + 0xd2, 0xed, 0x34, 0x4a, 0x73, 0xec, 0x53, 0x49, 0x95, 0x87, 0x22, 0x9d, 0xa4, 0x0a, 0x97, 0xe2, + 0x34, 0xa8, 0x92, 0x26, 0x39, 0x85, 0xde, 0x0b, 0x05, 0x7f, 0x9f, 0x9c, 0xf6, 0x8c, 0xa8, 0x92, + 0x3a, 0x6d, 0x45, 0xf0, 0xfd, 0x9d, 0x41, 0xda, 0xa3, 0x89, 0x4a, 0xea, 0x7c, 0x0d, 0x7a, 0x1e, + 0x86, 0xc5, 0x1e, 0x2c, 0xdd, 0x29, 0x4e, 0x25, 0x65, 0x4a, 0x89, 0x4c, 0x1f, 0xdb, 0x3a, 0xa7, + 0x39, 0xaa, 0xaa, 0xa4, 0xca, 0x9b, 0xa1, 0x2d, 0x18, 0xe2, 0xc1, 0x6f, 0xaa, 0x93, 0x9e, 0x4a, + 0xba, 0x44, 0x11, 0x11, 0xb2, 0x9f, 0x9c, 0x48, 0x7b, 0x3c, 0x57, 0x49, 0x9d, 0x30, 0x44, 0x1a, + 0x40, 0x60, 0x3f, 0x9d, 0xfa, 0xdc, 0xad, 0x92, 0x3e, 0x11, 0x88, 0xde, 0x0d, 0x79, 0x6f, 0xd7, + 0x94, 0xf2, 0x24, 0xad, 0x92, 0x36, 0x17, 0x57, 0xdb, 0x4a, 0x7d, 0x4b, 0xe2, 0xfe, 0xc4, 0x5b, + 0x12, 0xfe, 0x21, 0xb7, 0x77, 0x0c, 0xfe, 0x0b, 0x0f, 0xc1, 0x3d, 0xfc, 0x5a, 0x8e, 0xe3, 0x6a, + 0xd7, 0x0c, 0xb3, 0xe1, 0x5d, 0x7e, 0xe2, 0x65, 0x7e, 0x12, 0x7e, 0x9c, 0xdf, 0x7f, 0x12, 0xb5, + 0x87, 0x5e, 0x81, 0xaa, 0x24, 0x1f, 0xad, 0xbf, 0xe1, 0x63, 0xee, 0x4a, 0xc2, 0x8d, 0x2d, 0xf9, + 0xe3, 0x12, 0x8c, 0x5d, 0x36, 0x1c, 0xd7, 0xb2, 0x0d, 0x5d, 0x6b, 0x52, 0x8b, 0xe1, 0x9f, 0xbc, + 0x48, 0xfd, 0x9f, 0xbc, 0x3c, 0x05, 0x43, 0x7b, 0x5a, 0xd3, 0xc1, 0x2e, 0x8f, 0xbb, 0xef, 0x9a, + 0x8b, 0x17, 0x49, 0x97, 0x87, 0xe1, 0x6c, 0xfc, 0x22, 0xd6, 0xaf, 0x65, 0xc8, 0x36, 0xb1, 0xd5, + 0x32, 0x1c, 0xf6, 0xe1, 0x4f, 0xb2, 0x6f, 0xaa, 0x41, 0xce, 0xd6, 0x5c, 0xee, 0xd2, 0x6a, 0x73, + 0xfc, 0x9a, 0xd5, 0x7d, 0xc9, 0x57, 0xa7, 0xe6, 0x16, 0xb1, 0xae, 0x50, 0x5e, 0xf4, 0x33, 0x40, + 0xf6, 0x61, 0x2a, 0xc5, 0x61, 0x71, 0xf7, 0x7c, 0x7f, 0x38, 0x37, 0x6f, 0xcc, 0x8c, 0x1f, 0x68, + 0xad, 0x66, 0x55, 0x16, 0x38, 0xb2, 0x42, 0xb6, 0x73, 0xa4, 0x8b, 0xa8, 0x0d, 0x64, 0x4f, 0xa6, + 0xea, 0xbb, 0x9a, 0xd9, 0xc0, 0xac, 0x11, 0x9a, 0xfc, 0xa8, 0x5d, 0xee, 0xbb, 0x91, 0xe3, 0x7e, + 0x23, 0x01, 0x38, 0x59, 0x19, 0x6d, 0x69, 0xfb, 0x0b, 0xb4, 0x82, 0xb4, 0x58, 0xcd, 0x7f, 0xe2, + 0xb3, 0x33, 0x03, 0x54, 0x62, 0xdf, 0x94, 0x00, 0x7c, 0x89, 0xa1, 0x9f, 0x81, 0x92, 0xee, 0x95, + 0x28, 0xaf, 0xc8, 0x60, 0x9e, 0xea, 0x35, 0x23, 0x11, 0x79, 0x33, 0x37, 0xfd, 0x8d, 0x1b, 0x33, + 0x92, 0x32, 0xae, 0x47, 0xa6, 0xe2, 0xdd, 0x50, 0x64, 0xb9, 0x08, 0x95, 0xba, 0xfc, 0x4c, 0xa2, + 0xcb, 0x9f, 0x26, 0x58, 0x37, 0x6f, 0xcc, 0x20, 0x36, 0xac, 0x00, 0xb3, 0x4c, 0x03, 0x01, 0x60, + 0x35, 0x84, 0x21, 0x30, 0xa6, 0x7f, 0x2f, 0x41, 0x71, 0x31, 0xf0, 0xde, 0x42, 0x19, 0x86, 0x5b, + 0x96, 0x69, 0x5c, 0xc3, 0xb6, 0x97, 0xe1, 0x66, 0x45, 0x54, 0x81, 0x3c, 0xfb, 0x84, 0x84, 0x7b, + 0x20, 0xbe, 0x61, 0x2a, 0xca, 0x84, 0xeb, 0x3a, 0xde, 0x76, 0x0c, 0x31, 0x1b, 0x8a, 0x28, 0xa2, + 0x8b, 0x50, 0x72, 0xb0, 0xde, 0xb1, 0x0d, 0xf7, 0x40, 0xd5, 0x2d, 0xd3, 0xd5, 0x74, 0x96, 0xa5, + 0x2e, 0xd4, 0x6e, 0xbf, 0x79, 0x63, 0xe6, 0x36, 0xd6, 0xd7, 0x28, 0x85, 0xac, 0x8c, 0x8b, 0xaa, + 0x05, 0x56, 0x43, 0x5a, 0xa8, 0x63, 0x57, 0x33, 0x9a, 0xec, 0x6c, 0xb5, 0xa0, 0x88, 0x62, 0x60, + 0x2c, 0xff, 0x72, 0x38, 0x18, 0xf2, 0x5e, 0x87, 0x92, 0xd5, 0xc6, 0x36, 0x4d, 0x1b, 0x85, 0x62, + 0xdf, 0xda, 0x8a, 0xdf, 0x72, 0x94, 0x42, 0xfe, 0xfe, 0x8d, 0x99, 0x07, 0x53, 0x68, 0xd0, 0x55, + 0xad, 0xc9, 0xf7, 0x10, 0xca, 0xb8, 0xc0, 0xe0, 0x15, 0x64, 0xc8, 0x81, 0xac, 0x52, 0x67, 0x5b, + 0xdc, 0xe8, 0x0b, 0x0d, 0x39, 0x4a, 0x21, 0x07, 0xd3, 0xd9, 0xb4, 0x86, 0x44, 0x81, 0x2f, 0x6a, + 0x46, 0x53, 0x7c, 0x57, 0x47, 0xe1, 0x25, 0xb4, 0x0c, 0x43, 0x8e, 0xab, 0xb9, 0x1d, 0xf6, 0x55, + 0x87, 0xc1, 0xda, 0x43, 0x29, 0xfb, 0x5c, 0xb3, 0xcc, 0xfa, 0x06, 0x65, 0x54, 0x38, 0x00, 0xba, + 0x08, 0x43, 0xae, 0x75, 0x0d, 0x9b, 0x5c, 0xa8, 0x7d, 0xad, 0x78, 0x7a, 0x4d, 0x94, 0x71, 0x23, + 0x17, 0x4a, 0x75, 0xdc, 0xc4, 0x0d, 0x2a, 0x4a, 0x67, 0x57, 0xb3, 0xb1, 0xc3, 0xbe, 0x81, 0x5b, + 0x5b, 0xee, 0x7b, 0x59, 0x72, 0x01, 0x45, 0xf1, 0x64, 0x65, 0xdc, 0xab, 0xda, 0xa0, 0x35, 0xe8, + 0x99, 0xd0, 0x2b, 0x37, 0xde, 0xa5, 0x98, 0x1e, 0x6b, 0x2f, 0xa0, 0xe5, 0x62, 0xa7, 0x15, 0x7c, + 0x61, 0xe7, 0x22, 0x94, 0x3a, 0xe6, 0xb6, 0x65, 0xd2, 0x6f, 0x61, 0xf0, 0xe8, 0x9b, 0x6c, 0x92, + 0xb3, 0xc1, 0x59, 0x8b, 0x52, 0xc8, 0xca, 0xb8, 0x57, 0xc5, 0xcf, 0x5a, 0xea, 0x30, 0xe6, 0x53, + 0xd1, 0xa5, 0x5b, 0x48, 0x5c, 0xba, 0x77, 0xf1, 0xa5, 0x7b, 0x2c, 0xda, 0x8a, 0xbf, 0x7a, 0x47, + 0xbd, 0xca, 0x4d, 0x96, 0x62, 0x00, 0xdf, 0x60, 0xf0, 0x03, 0x3a, 0x39, 0xd9, 0xea, 0x88, 0x63, + 0x0e, 0x9f, 0x17, 0xbd, 0x0f, 0x26, 0x5b, 0x86, 0xa9, 0x3a, 0xb8, 0xb9, 0xa3, 0x72, 0x01, 0x13, + 0x48, 0xfa, 0x29, 0xc3, 0xda, 0x4a, 0x7f, 0xfa, 0x70, 0xf3, 0xc6, 0x4c, 0x85, 0x1b, 0xd5, 0x6e, + 0x48, 0x59, 0x99, 0x68, 0x19, 0xe6, 0x06, 0x6e, 0xee, 0x2c, 0x7a, 0x75, 0xd5, 0x91, 0xbf, 0xf6, + 0xd9, 0x99, 0x01, 0x6f, 0x01, 0x1b, 0x30, 0xe2, 0x2f, 0x2c, 0xec, 0xa0, 0x35, 0x28, 0x68, 0xa2, + 0x40, 0xf3, 0x60, 0x23, 0xa9, 0x95, 0x3d, 0xb0, 0x40, 0x7d, 0x0c, 0x66, 0x2b, 0x5e, 0xf9, 0xef, + 0x27, 0x25, 0xf9, 0xc3, 0x19, 0x18, 0x5a, 0xbc, 0x4a, 0xef, 0x89, 0xbe, 0x0c, 0x13, 0xbe, 0xb2, + 0x85, 0x2d, 0xc5, 0xea, 0xcd, 0x1b, 0x33, 0xe5, 0xa8, 0x3e, 0xf6, 0x69, 0x2a, 0xe6, 0x75, 0x5d, + 0xf4, 0xc4, 0x5f, 0x24, 0xc2, 0x56, 0xbc, 0x1c, 0x4c, 0x6e, 0x8b, 0xb6, 0x33, 0xd1, 0xb6, 0xbb, + 0x48, 0x8e, 0x60, 0xa6, 0xfc, 0xec, 0x37, 0xaf, 0x09, 0x18, 0xce, 0x25, 0x18, 0x66, 0xb2, 0x70, + 0x50, 0x15, 0x06, 0xdb, 0xe4, 0x07, 0xcf, 0xb0, 0x4f, 0xf7, 0x5c, 0x4d, 0x94, 0x5e, 0x64, 0x0c, + 0x29, 0x8b, 0xfc, 0xb9, 0x2c, 0xc0, 0xe2, 0xd5, 0xab, 0x9b, 0xb6, 0xd1, 0x6e, 0x62, 0xf7, 0x87, + 0x2a, 0xd7, 0x9f, 0x95, 0xe0, 0x98, 0x2f, 0x35, 0xc7, 0xd6, 0x23, 0xc2, 0x7d, 0xf6, 0xe6, 0x8d, + 0x99, 0x3b, 0xa2, 0xc2, 0x0d, 0x90, 0x1d, 0x41, 0xc0, 0x93, 0x1e, 0xd0, 0x86, 0xad, 0xc7, 0xf7, + 0xa3, 0xee, 0xb8, 0x5e, 0x3f, 0xb2, 0xbd, 0xfb, 0x11, 0x20, 0x7b, 0x43, 0xfd, 0x58, 0x74, 0xdc, + 0xee, 0xb9, 0xde, 0x80, 0xa2, 0x3f, 0x47, 0x0e, 0x5a, 0x84, 0xbc, 0xcb, 0x7f, 0xf3, 0x29, 0x97, + 0x7b, 0x4f, 0xb9, 0x60, 0xe3, 0xd3, 0xee, 0x71, 0xca, 0xff, 0x25, 0x03, 0xe0, 0xaf, 0xea, 0x9f, + 0xd4, 0x15, 0x45, 0xdc, 0x29, 0x77, 0x7e, 0xd9, 0x23, 0x05, 0xd0, 0x9c, 0x3b, 0x30, 0x5b, 0x7f, + 0x94, 0x81, 0xc9, 0x2d, 0x61, 0xf9, 0xdf, 0x96, 0x30, 0x5a, 0x87, 0x61, 0x6c, 0xba, 0xb6, 0x81, + 0xc5, 0x91, 0xda, 0x3b, 0x7a, 0x69, 0x6b, 0x8c, 0xd4, 0xe8, 0xe7, 0x3a, 0xc5, 0x31, 0x01, 0x87, + 0x09, 0xc8, 0xfa, 0xa3, 0x59, 0x28, 0xf7, 0xe2, 0x42, 0x0b, 0x30, 0xae, 0xdb, 0x98, 0x56, 0xa8, + 0xc1, 0x5b, 0x5b, 0xb5, 0x8a, 0xbf, 0x93, 0x88, 0x10, 0xc8, 0xca, 0x98, 0xa8, 0xe1, 0xb1, 0x41, + 0x03, 0x48, 0x98, 0x4f, 0x96, 0x0c, 0xa1, 0x4a, 0x19, 0xd7, 0xcb, 0x3c, 0x38, 0x10, 0x8d, 0x84, + 0x01, 0x58, 0x74, 0x30, 0xe6, 0xd7, 0xd2, 0xf0, 0xe0, 0x25, 0x18, 0x37, 0x4c, 0xc3, 0x35, 0xb4, + 0xa6, 0xba, 0xad, 0x35, 0x35, 0x53, 0x3f, 0xca, 0x2e, 0x89, 0x39, 0x74, 0xde, 0x6c, 0x04, 0x4e, + 0x56, 0xc6, 0x78, 0x4d, 0x8d, 0x55, 0xa0, 0xcb, 0x30, 0x2c, 0x9a, 0xca, 0x1d, 0x29, 0x96, 0x14, + 0xec, 0x81, 0x19, 0xf9, 0x48, 0x16, 0x26, 0x14, 0x5c, 0x7f, 0x7b, 0x2a, 0xfa, 0x9b, 0x8a, 0x55, + 0x00, 0x66, 0x48, 0x88, 0x27, 0x39, 0xc2, 0x6c, 0x10, 0x53, 0x54, 0x60, 0x08, 0x8b, 0x8e, 0x1b, + 0x98, 0x8f, 0x3f, 0xce, 0xc2, 0x48, 0x70, 0x3e, 0xde, 0x76, 0xf1, 0x3f, 0x3a, 0x2e, 0x1e, 0x2d, + 0xfb, 0xa6, 0x31, 0xc7, 0xff, 0xeb, 0x42, 0x0f, 0xd3, 0xd8, 0xb5, 0xa4, 0x7a, 0xdb, 0xc4, 0x3f, + 0xcd, 0xc0, 0x10, 0x3f, 0x98, 0xd6, 0xbb, 0x36, 0x36, 0x52, 0xd2, 0xc1, 0xf7, 0xe1, 0xfb, 0x9a, + 0x4f, 0xc4, 0xec, 0x6b, 0x7e, 0x1a, 0xc6, 0x5a, 0xda, 0xbe, 0x1a, 0xba, 0xc6, 0x25, 0xcd, 0x8e, + 0xd6, 0x4e, 0xf8, 0x28, 0xe1, 0xe7, 0x2c, 0x5d, 0xe3, 0x1f, 0x4a, 0xa2, 0xc7, 0xa1, 0x48, 0x28, + 0x7c, 0x2f, 0x41, 0xd8, 0x8f, 0xfb, 0x79, 0x91, 0xc0, 0x43, 0x59, 0x81, 0x96, 0xb6, 0xbf, 0xc4, + 0x0a, 0x68, 0x05, 0xd0, 0xae, 0x97, 0xa5, 0x53, 0x7d, 0x51, 0x12, 0xfe, 0x3b, 0x6f, 0xde, 0x98, + 0x39, 0xc1, 0xf8, 0xbb, 0x69, 0x64, 0x65, 0xc2, 0xaf, 0x14, 0x68, 0x8f, 0x00, 0x90, 0x71, 0xa9, + 0xec, 0x65, 0x49, 0xb6, 0xbb, 0x3e, 0x76, 0xf3, 0xc6, 0xcc, 0x04, 0x43, 0xf1, 0x9f, 0xc9, 0x4a, + 0x81, 0x14, 0x16, 0xc9, 0xef, 0x80, 0xe0, 0x7f, 0x59, 0x02, 0xe4, 0xfb, 0xa0, 0xc0, 0xed, 0x5f, + 0x08, 0x6c, 0xd2, 0xa4, 0xc3, 0xf7, 0x7d, 0x3e, 0xbf, 0xd8, 0xf7, 0x05, 0x96, 0xee, 0x79, 0xdf, + 0x5e, 0x8b, 0x0b, 0x0c, 0x31, 0x6f, 0x96, 0xce, 0x2d, 0x58, 0x86, 0x77, 0xb2, 0xde, 0x6d, 0xa0, + 0xff, 0x83, 0x04, 0x27, 0xba, 0xb4, 0xc9, 0xeb, 0xec, 0x7b, 0x01, 0xd9, 0x81, 0x87, 0xfc, 0xf3, + 0xd9, 0x12, 0xbf, 0xdf, 0xda, 0xa7, 0x72, 0x4e, 0xd8, 0x5d, 0x8e, 0xe0, 0xd6, 0xb9, 0x1c, 0x96, + 0x11, 0xfd, 0x57, 0x12, 0x4c, 0x05, 0x9b, 0xf7, 0x06, 0x72, 0x05, 0x46, 0x82, 0xad, 0xf3, 0x21, + 0xdc, 0x93, 0x66, 0x08, 0xbc, 0xf7, 0x21, 0x7e, 0xf4, 0xac, 0xbf, 0x54, 0x59, 0x0a, 0xf7, 0xa1, + 0xd4, 0xd2, 0xf0, 0xd2, 0xfe, 0x91, 0x25, 0xcb, 0x46, 0xf0, 0xe7, 0x12, 0xe4, 0xd6, 0x2d, 0xab, + 0x89, 0x2c, 0x98, 0x30, 0x2d, 0x57, 0x25, 0x9a, 0x85, 0xeb, 0x2a, 0xcf, 0xf1, 0xb0, 0xac, 0xee, + 0x42, 0x7f, 0x42, 0xfa, 0xde, 0x8d, 0x99, 0x6e, 0x28, 0x65, 0xdc, 0xb4, 0xdc, 0x1a, 0xad, 0xd9, + 0x64, 0x19, 0xa0, 0xf7, 0xc1, 0x68, 0xb8, 0x31, 0x96, 0xf1, 0x7a, 0xae, 0xef, 0xc6, 0xc2, 0x30, + 0x37, 0x6f, 0xcc, 0x4c, 0xf9, 0x2b, 0xc6, 0xab, 0x96, 0x95, 0x91, 0xed, 0x40, 0xeb, 0xd5, 0x3c, + 0x19, 0xfd, 0x9f, 0x7c, 0x76, 0x46, 0xaa, 0x5d, 0xec, 0xf9, 0x3e, 0xeb, 0x03, 0x87, 0x76, 0x61, + 0xdf, 0x3b, 0x76, 0x08, 0x9f, 0x4b, 0x7c, 0x62, 0x12, 0x66, 0x7a, 0x9c, 0x4b, 0xb8, 0xfb, 0x47, + 0x3a, 0x92, 0x48, 0x38, 0x2e, 0xa8, 0xa4, 0x3a, 0x06, 0x91, 0x7f, 0x90, 0x03, 0xb4, 0xea, 0x34, + 0x16, 0x48, 0x54, 0xe3, 0xbf, 0xe5, 0x10, 0x4d, 0x89, 0x49, 0x6f, 0x28, 0x25, 0xb6, 0x1a, 0x4a, + 0x32, 0x65, 0xfa, 0x4b, 0x6d, 0xa7, 0xce, 0x34, 0x65, 0xdf, 0x92, 0x4c, 0x53, 0x7c, 0xa8, 0x92, + 0xfb, 0x21, 0xee, 0x98, 0x06, 0xdf, 0x9a, 0x1d, 0xd3, 0x71, 0x18, 0xe2, 0x39, 0x68, 0xf6, 0x4f, + 0xc9, 0x78, 0x09, 0x3d, 0x1a, 0xbc, 0x6a, 0x9c, 0xc2, 0xfa, 0x33, 0x6a, 0x6e, 0x67, 0xbe, 0x9a, + 0x85, 0xd2, 0xaa, 0xd3, 0x58, 0xaa, 0x1b, 0xee, 0x9b, 0xa4, 0x7b, 0xed, 0xde, 0x9b, 0xcc, 0x85, + 0x9b, 0x37, 0x66, 0xc6, 0x98, 0xc8, 0x6e, 0xa5, 0xa0, 0x5a, 0x30, 0x1e, 0x39, 0xce, 0xe1, 0xaa, + 0xb9, 0x78, 0x94, 0x53, 0xa5, 0x08, 0x94, 0x4c, 0xf7, 0x05, 0x81, 0x05, 0x82, 0xf6, 0xe3, 0x57, + 0x03, 0x73, 0x64, 0x97, 0xdf, 0xcc, 0x9c, 0x2b, 0x9b, 0xc2, 0xaf, 0x65, 0xa0, 0xb8, 0xea, 0x88, + 0x7d, 0x2e, 0xfe, 0x89, 0xcd, 0x28, 0x3c, 0xee, 0x7d, 0xba, 0x22, 0x9b, 0x6e, 0x21, 0x84, 0x3f, + 0x67, 0xf1, 0xad, 0x2c, 0xb5, 0xc3, 0xf4, 0x14, 0xde, 0x73, 0xd6, 0xf8, 0xed, 0x8d, 0xd1, 0x8f, + 0xd0, 0xc6, 0xc8, 0x9f, 0xe1, 0xdc, 0x51, 0x66, 0xf8, 0x77, 0x32, 0x30, 0xba, 0xea, 0x34, 0xb6, + 0xcc, 0xfa, 0xdb, 0x4b, 0xe5, 0x8d, 0x2c, 0x95, 0x5b, 0x1e, 0x9a, 0x7d, 0x2d, 0x03, 0x67, 0x82, + 0xb1, 0x14, 0x7d, 0x9b, 0xce, 0x0b, 0x97, 0xda, 0x5a, 0xc3, 0x30, 0x83, 0x1f, 0x95, 0x38, 0x11, + 0xec, 0x2c, 0xa5, 0x15, 0x5d, 0x96, 0x4d, 0x28, 0xae, 0x6b, 0x0d, 0x2c, 0xbe, 0x55, 0xd0, 0xfd, + 0xe1, 0x90, 0xe3, 0x30, 0x64, 0xed, 0xec, 0xb0, 0x2b, 0x17, 0xd2, 0x6c, 0x4e, 0xe1, 0x25, 0x34, + 0x05, 0x83, 0x4d, 0xa3, 0x65, 0xb8, 0xfc, 0xfd, 0x2c, 0x56, 0x40, 0x33, 0x50, 0xd4, 0xc9, 0xb8, + 0x55, 0x76, 0x53, 0x33, 0x27, 0xbe, 0x1e, 0xda, 0x31, 0xdd, 0x4d, 0x52, 0x23, 0x3f, 0x05, 0x23, + 0xac, 0x3d, 0xbe, 0xbf, 0x38, 0x01, 0x79, 0x7a, 0xed, 0xd6, 0x6f, 0x75, 0x98, 0x94, 0xf9, 0xbd, + 0x49, 0x86, 0xc2, 0x1a, 0x66, 0x85, 0x5a, 0xad, 0xa7, 0x28, 0x67, 0x93, 0x27, 0x99, 0x09, 0xca, + 0x13, 0xe3, 0xbf, 0x79, 0x18, 0xe4, 0x1e, 0x21, 0x27, 0x93, 0xd2, 0xe1, 0x41, 0x6e, 0x1f, 0x53, + 0xd0, 0x23, 0x20, 0x4e, 0x17, 0xf0, 0xee, 0xc3, 0x71, 0x7a, 0xff, 0xcb, 0xdf, 0xea, 0x8b, 0xe9, + 0x3a, 0xee, 0x9d, 0x87, 0x4b, 0xfc, 0x7f, 0x42, 0x8b, 0xc3, 0x6d, 0xf0, 0x7b, 0xe0, 0xbd, 0xd0, + 0xd1, 0x53, 0x0b, 0xe6, 0x02, 0x2a, 0xa0, 0x04, 0x38, 0xe5, 0x5f, 0x91, 0xe0, 0xb6, 0xae, 0xa6, + 0xf9, 0xcc, 0x5d, 0x0a, 0xbd, 0x72, 0x26, 0xf5, 0x77, 0x1f, 0x27, 0xf8, 0x0e, 0xf9, 0xa5, 0x98, + 0xce, 0x9e, 0x4a, 0xec, 0x2c, 0xeb, 0x45, 0xa8, 0xb7, 0x2f, 0xc1, 0xb1, 0x70, 0x67, 0x85, 0x98, + 0x9e, 0x87, 0xb1, 0xb0, 0x59, 0xe0, 0x26, 0xeb, 0x08, 0x27, 0xaa, 0xa3, 0x21, 0xd3, 0x20, 0xab, + 0xd1, 0xa9, 0xf1, 0xc4, 0xb3, 0xd4, 0x7d, 0xa7, 0x37, 0xb5, 0x74, 0x02, 0xaf, 0x7e, 0x7c, 0x4d, + 0x82, 0x93, 0xe1, 0x16, 0xfc, 0x70, 0xc6, 0x79, 0xd3, 0xc7, 0x77, 0xcb, 0x14, 0xe9, 0xbb, 0x12, + 0xdc, 0x75, 0xc8, 0x30, 0xb8, 0xcc, 0x5e, 0x86, 0xa9, 0x40, 0xce, 0xc4, 0xe6, 0xd5, 0x42, 0xb9, + 0xce, 0x24, 0x27, 0x7b, 0xbc, 0x14, 0xc1, 0xed, 0x44, 0x8e, 0x5f, 0xfc, 0xd6, 0xcc, 0x64, 0xf7, + 0x33, 0x47, 0x99, 0xec, 0xce, 0x73, 0xdc, 0x42, 0x2d, 0xfc, 0x8f, 0x12, 0x9c, 0x0e, 0x0f, 0x35, + 0xe6, 0x64, 0xe5, 0xc7, 0x68, 0xea, 0xfe, 0xab, 0x04, 0x67, 0xd2, 0x8c, 0x87, 0xcf, 0xe1, 0x36, + 0x4c, 0xfa, 0xc9, 0xce, 0xe8, 0x14, 0xde, 0xdf, 0xc7, 0x91, 0x15, 0x5f, 0x0b, 0xc8, 0x43, 0x7b, + 0x13, 0xe6, 0xea, 0x77, 0x25, 0xbe, 0x7e, 0x83, 0x6a, 0xe2, 0x4d, 0x4c, 0x38, 0x8c, 0xe9, 0x73, + 0x62, 0x02, 0xa1, 0xcc, 0x68, 0x28, 0x94, 0x89, 0x99, 0xf2, 0xcc, 0x2d, 0xb2, 0x46, 0x7b, 0xdc, + 0x5a, 0xc7, 0x64, 0x4f, 0xdf, 0x0d, 0x93, 0x31, 0x4b, 0x8b, 0x1b, 0xa6, 0x3e, 0x56, 0x96, 0x82, + 0xba, 0x17, 0x8f, 0xfc, 0x9f, 0x25, 0x98, 0xa1, 0x0d, 0xc7, 0x4c, 0xe3, 0x8f, 0xb3, 0x3c, 0x5b, + 0xdc, 0xf6, 0xc6, 0x0e, 0x8b, 0x0b, 0x76, 0x19, 0x86, 0x98, 0x86, 0x72, 0x59, 0x1e, 0x41, 0xc5, + 0x39, 0x80, 0x6f, 0xeb, 0x17, 0xc5, 0xf8, 0xe2, 0x0d, 0xc6, 0x9b, 0x24, 0xc7, 0x5b, 0x65, 0x30, + 0xbe, 0x29, 0x6c, 0x7d, 0xfc, 0x30, 0xb8, 0xdc, 0xf4, 0x5b, 0x66, 0xeb, 0xf9, 0x87, 0x4f, 0xde, + 0x1a, 0xa3, 0xee, 0x8d, 0x29, 0xc1, 0xa8, 0xff, 0x88, 0xcf, 0x91, 0x67, 0xd4, 0x13, 0xc6, 0xf3, + 0xe3, 0x68, 0xd4, 0xff, 0x3c, 0x03, 0x27, 0xe8, 0xd8, 0x82, 0x27, 0x08, 0x6f, 0xc1, 0xdc, 0xa8, + 0x80, 0x1c, 0x5b, 0x57, 0x6f, 0x95, 0x2d, 0x2a, 0x39, 0xb6, 0x7e, 0x35, 0xe4, 0xd1, 0x55, 0x40, + 0x75, 0xc7, 0x8d, 0x36, 0x90, 0x3d, 0x72, 0x03, 0x75, 0xc7, 0xbd, 0x7a, 0x48, 0xc8, 0x90, 0x3b, + 0xb2, 0x76, 0x7d, 0x43, 0x82, 0x4a, 0xdc, 0x0c, 0x70, 0x6d, 0x32, 0xe0, 0x78, 0xe8, 0x70, 0x2c, + 0xaa, 0x50, 0x0f, 0xa4, 0x39, 0x12, 0x8a, 0x2c, 0xff, 0x63, 0x36, 0x7e, 0x53, 0x0d, 0xc0, 0x6f, + 0x0b, 0x17, 0xe7, 0x2d, 0x98, 0xee, 0xdd, 0xd8, 0x8f, 0xfe, 0xb2, 0xff, 0x52, 0x97, 0x87, 0xf9, + 0xb1, 0xd8, 0xd8, 0xfd, 0x9e, 0x04, 0xd3, 0x3d, 0xba, 0xfd, 0xe3, 0x1c, 0x5e, 0xec, 0xf6, 0x54, + 0xa9, 0x5b, 0xbd, 0x8b, 0x7c, 0x84, 0xaf, 0xc7, 0xf0, 0xbb, 0x38, 0x81, 0x2c, 0x42, 0xec, 0xd7, + 0xb8, 0x5e, 0x80, 0xdb, 0x63, 0xb9, 0x78, 0xdf, 0xaa, 0x90, 0xdb, 0x35, 0x1c, 0xd7, 0xfb, 0x74, + 0x4d, 0x8f, 0x6e, 0x45, 0xb8, 0x29, 0x8f, 0x8c, 0xa0, 0x44, 0xa1, 0xd7, 0x2d, 0xab, 0xc9, 0xbb, + 0x21, 0x3f, 0x03, 0x13, 0x81, 0x3a, 0xde, 0xc8, 0x63, 0x90, 0x6b, 0x5b, 0x56, 0x93, 0x37, 0x72, + 0x47, 0xaf, 0x46, 0x08, 0x0f, 0x1f, 0x36, 0xa5, 0x97, 0xa7, 0x00, 0x31, 0x30, 0xf6, 0x31, 0x05, + 0xde, 0xc4, 0x06, 0x4c, 0x86, 0x6a, 0x79, 0x23, 0xef, 0x84, 0xa1, 0xd0, 0x67, 0x78, 0x7a, 0x5e, + 0xfd, 0x65, 0x7c, 0xde, 0xfb, 0xbd, 0xb4, 0x74, 0xee, 0x57, 0xc7, 0xc4, 0xab, 0x7e, 0x16, 0x40, + 0xe0, 0x3a, 0xc6, 0x5c, 0x2f, 0x94, 0xf8, 0x64, 0x4e, 0xe5, 0x6c, 0x6a, 0x7a, 0x1e, 0x76, 0x0f, + 0xa0, 0x66, 0xf0, 0xad, 0x8f, 0x07, 0xd3, 0xf1, 0x8b, 0xe6, 0xe6, 0xd2, 0x92, 0x7b, 0xad, 0x7d, + 0x44, 0x82, 0xa9, 0xb8, 0xfd, 0x3b, 0x7a, 0x22, 0x1d, 0x54, 0x77, 0xa4, 0x54, 0x39, 0x7f, 0x04, + 0x4e, 0xaf, 0x3f, 0x5f, 0x90, 0xe0, 0xce, 0x43, 0x37, 0xa5, 0x68, 0x3e, 0x1d, 0xfc, 0x21, 0xb1, + 0x5c, 0xa5, 0xf6, 0x46, 0x20, 0xbc, 0xae, 0x5a, 0xa1, 0x4b, 0xc2, 0x87, 0x8b, 0xbe, 0x6b, 0xef, + 0x94, 0xa0, 0x19, 0xdd, 0x21, 0xb1, 0x3c, 0x80, 0x3e, 0x2c, 0xc5, 0xdf, 0x9e, 0x7d, 0xfc, 0x50, + 0xa8, 0xde, 0xfb, 0xb7, 0xca, 0x13, 0xfd, 0x33, 0x86, 0x14, 0x27, 0x6e, 0x33, 0x90, 0xa0, 0x38, + 0x87, 0x6c, 0x83, 0x12, 0x14, 0xe7, 0xb0, 0x9d, 0x07, 0x57, 0x9c, 0x43, 0x03, 0xdf, 0x04, 0xc5, + 0x49, 0xb3, 0x09, 0x48, 0x50, 0x9c, 0x54, 0x71, 0xb7, 0x3c, 0x80, 0xf6, 0x61, 0x34, 0x14, 0x44, + 0xa1, 0x87, 0x0e, 0x85, 0x8d, 0x0b, 0x79, 0x2b, 0xe7, 0xfa, 0x61, 0x09, 0x69, 0x50, 0x4c, 0x98, + 0x90, 0xa0, 0x41, 0xbd, 0xc3, 0xa3, 0xca, 0x13, 0xfd, 0x33, 0x7a, 0x9d, 0xf9, 0xa0, 0x7f, 0x27, + 0x2c, 0x40, 0x81, 0x1e, 0xeb, 0x13, 0x52, 0x74, 0xe5, 0xf1, 0xbe, 0xf9, 0xbc, 0x9e, 0xfc, 0xe5, + 0xae, 0x37, 0x5a, 0x0f, 0x17, 0x6f, 0xac, 0xcb, 0xad, 0x3c, 0xdc, 0x17, 0x8f, 0xd7, 0xf8, 0x7b, + 0xf8, 0x1d, 0xa7, 0xd9, 0x43, 0xd9, 0x03, 0x4e, 0xb5, 0x72, 0x3a, 0x05, 0xa5, 0x07, 0xaf, 0x7b, + 0x37, 0x1e, 0xcf, 0x1c, 0xce, 0x16, 0x74, 0xaa, 0x95, 0xfb, 0x53, 0xd1, 0x8a, 0x46, 0x6e, 0xf9, + 0x59, 0xd8, 0xff, 0xcf, 0xf7, 0x7c, 0x7d, 0xba, 0x81, 0x4d, 0xec, 0x18, 0xce, 0x91, 0xee, 0x2a, + 0xa5, 0x3b, 0x9a, 0xf9, 0xf2, 0x10, 0x8c, 0x5c, 0x62, 0xad, 0xd0, 0xaf, 0xdd, 0xa2, 0x8b, 0x7d, + 0x86, 0x12, 0x63, 0x24, 0x94, 0xf8, 0xfe, 0x8d, 0x19, 0x2e, 0x78, 0x11, 0x54, 0x20, 0x87, 0x7f, + 0xfe, 0x86, 0x7d, 0xba, 0xc2, 0xff, 0x7e, 0xc8, 0x48, 0x5f, 0xaf, 0x15, 0xb2, 0x4b, 0x12, 0xfc, + 0x0d, 0xbe, 0x28, 0x9e, 0xcc, 0xbe, 0xa4, 0x43, 0xcf, 0xe5, 0xe8, 0xc7, 0x2f, 0xd0, 0x27, 0x25, + 0x38, 0x46, 0xa9, 0xfc, 0x80, 0x97, 0x52, 0x8a, 0x37, 0x0e, 0x7a, 0x6a, 0xc5, 0x8a, 0x16, 0xd8, + 0x4a, 0x52, 0xac, 0x5a, 0x95, 0x5f, 0x80, 0xbd, 0x23, 0xd0, 0x78, 0x14, 0x56, 0xfe, 0xfe, 0x8d, + 0x19, 0xd4, 0xcd, 0xab, 0xd0, 0x4f, 0x36, 0x86, 0xeb, 0x1c, 0xb4, 0x19, 0xf3, 0xe1, 0xe2, 0x14, + 0xb1, 0xf0, 0x04, 0x17, 0xb0, 0x1f, 0x28, 0x85, 0xf6, 0x28, 0xcf, 0x43, 0x31, 0x60, 0xfe, 0xca, + 0x83, 0x09, 0xef, 0x01, 0xf9, 0x89, 0x0c, 0xc4, 0x71, 0x03, 0x7e, 0x5d, 0x09, 0x42, 0xa1, 0x4f, + 0x4b, 0x70, 0xcc, 0x4f, 0x9a, 0x04, 0x1b, 0x19, 0xea, 0x3f, 0x6d, 0x72, 0x21, 0x2c, 0xcd, 0x58, + 0x5c, 0x22, 0xcd, 0x38, 0x9f, 0xaf, 0x4c, 0x75, 0xe2, 0x5c, 0xdc, 0x5f, 0x82, 0xd1, 0xe0, 0x9e, + 0x59, 0x7c, 0xe6, 0x2e, 0xdd, 0xd5, 0xce, 0x29, 0x3e, 0xfa, 0xd0, 0x9d, 0x78, 0x25, 0x0c, 0x88, + 0x2a, 0x90, 0xc7, 0xfb, 0x6d, 0xcb, 0x76, 0x71, 0x9d, 0xbe, 0x4f, 0x9a, 0x57, 0xbc, 0xb2, 0x7c, + 0x1d, 0x62, 0x26, 0x1e, 0x3d, 0x13, 0xf9, 0x56, 0xcf, 0x51, 0x36, 0x59, 0xdd, 0x9f, 0xf7, 0x09, + 0x7e, 0x77, 0xe7, 0x56, 0x9b, 0x9f, 0xbf, 0x08, 0x00, 0x00, 0xff, 0xff, 0x83, 0x8c, 0x87, 0xe7, + 0x6b, 0x9a, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) diff --git a/x/upgrade/abci_test.go b/x/upgrade/abci_test.go index 98c66890a744..bbc4cbe23cdd 100644 --- a/x/upgrade/abci_test.go +++ b/x/upgrade/abci_test.go @@ -38,7 +38,7 @@ var s TestSuite func setupTest(height int64, skip map[int64]bool) TestSuite { db := dbm.NewMemDB() - app := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, skip, simapp.DefaultNodeHome, 0) + app := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, skip, simapp.DefaultNodeHome, 0, simapp.MakeEncodingConfig()) genesisState := simapp.NewDefaultGenesisState() stateBytes, err := codec.MarshalJSONIndent(app.LegacyAmino(), genesisState) if err != nil {