diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a621353f6..cb827d789 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: - name: Setup go uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.22' - run: go build ./... tidy: @@ -34,7 +34,7 @@ jobs: - name: Setup go uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.22' - run: | go mod tidy CHANGES_IN_REPO=$(git status --porcelain) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 04a790f94..239a272b6 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -26,7 +26,7 @@ jobs: uses: actions/checkout@v4 - uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.22' # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v2 diff --git a/.github/workflows/interchaintest.yml b/.github/workflows/interchaintest.yml index 22731c0d5..214cd0a8a 100644 --- a/.github/workflows/interchaintest.yml +++ b/.github/workflows/interchaintest.yml @@ -38,10 +38,10 @@ jobs: runs-on: ubuntu-latest needs: build-and-push-image steps: - - name: Set up Go 1.20 + - name: Set up Go 1.22 uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.22' - name: checkout code uses: actions/checkout@v4 @@ -54,10 +54,10 @@ jobs: runs-on: ubuntu-latest needs: build-and-push-image steps: - - name: Set up Go 1.20 + - name: Set up Go 1.22 uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.22' - name: checkout code uses: actions/checkout@v4 @@ -70,10 +70,10 @@ jobs: runs-on: ubuntu-latest needs: build-and-push-image steps: - - name: Set up Go 1.20 + - name: Set up Go 1.22 uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.22' - name: checkout code uses: actions/checkout@v4 @@ -86,10 +86,10 @@ jobs: runs-on: ubuntu-latest needs: build-and-push-image steps: - - name: Set up Go 1.20 + - name: Set up Go 1.22 uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.22' - name: checkout code uses: actions/checkout@v4 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 0c27618f5..5390ff5a9 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -17,7 +17,7 @@ jobs: steps: - uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.22' - uses: actions/checkout@v4 - name: golangci-lint uses: golangci/golangci-lint-action@v3 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 55a2a0b76..aaf15dd1e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,7 +14,7 @@ jobs: - name: Install Go uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.22' - name: Checkout code uses: actions/checkout@v4 - name: Test diff --git a/.gitignore b/.gitignore index 58aecea72..c9fa1c668 100644 --- a/.gitignore +++ b/.gitignore @@ -54,4 +54,7 @@ _build/ mytestnet/ screenlog.0 -.idea \ No newline at end of file +.idea + + +node_modules \ No newline at end of file diff --git a/.golangci.yml b/.golangci.yml index c0844c760..dac2a5486 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -40,8 +40,7 @@ issues: - text: "ST1016:" linters: - stylecheck - - path: "migrations" - text: "SA1019:" + - text: "SA1019:" linters: - staticcheck - text: "leading space" diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 000000000..13566b81b --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/composable-cosmos.iml b/.idea/composable-cosmos.iml new file mode 100644 index 000000000..5e764c4f0 --- /dev/null +++ b/.idea/composable-cosmos.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 000000000..612c5a16e --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..861478f5b --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index cf3357ca3..72627c703 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG GO_VERSION="1.20" +ARG GO_VERSION="1.22" ARG RUNNER_IMAGE="gcr.io/distroless/static-debian11" # -------------------------------------------------------- diff --git a/Makefile b/Makefile index 8d71579a0..e5ec23302 100644 --- a/Makefile +++ b/Makefile @@ -104,7 +104,7 @@ lint: ### Proto ### ############################################################################### -protoVer=0.12.1 +protoVer=0.14.0 protoImageName=ghcr.io/cosmos/proto-builder:$(protoVer) containerProtoGen=proto-gen-$(protoVer) containerProtoFmt=proto-fmt-$(protoVer) @@ -113,8 +113,7 @@ proto-all: proto-format proto-gen proto-gen: @echo "Generating Protobuf files" - @if docker ps -a --format '{{.Names}}' | grep -Eq "^${containerProtoGen}$$"; then docker start -a $(containerProtoGen); else docker run --name $(containerProtoGen) -v $(CURDIR):/workspace --workdir /workspace $(protoImageName) \ - sh ./scripts/protocgen.sh; fi + @$(protoImage) sh ./scripts/protocgen.sh proto-format: @echo "Formatting Protobuf files" @@ -168,11 +167,66 @@ test-upgrade: clean-testing-data clean-testing-data: @echo "Killing binary and removing previous data" - -@pkill centaurid 2>/dev/null + echo "stopping picachain..." -@pkill picad 2>/dev/null - -@pkill rly 2>/dev/null -@rm -rf ./mytestnet + echo "stopping parachain..." + -@killall parachain-node + -@killall polkadot + + netstat -ltup | grep LISTEN + .PHONY: ictest-start-cosmos ictest-start-polkadot ictest-ibc ictest-push-wasm ictest-all -include contrib/make/release.mk \ No newline at end of file +include contrib/make/release.mk + + +test-upgrade: clean-testing-data + @echo "Starting upgrade test" + ./scripts/tweak-test-upgrade.sh + + + +## Scripts for testing sdk 50 +init-deps: + @echo "Installing dependencies" + bash ./scripts/upgrade/init-deps.sh + +localnet-pica: + @echo "Starting test" + rm -rf screenlog.0 + -@pkill picad 2>/dev/null + bash ./scripts/run-node.sh picad + bash ./scripts/50/store-wasm-code.sh + +localnet-parachain: + @echo "Starting localnet" + bash ./scripts/upgrade/setup-polkadot-node.sh + +relayer-create-clients: + @echo "Starting relayer" + bash ./scripts/relayer_hyperspace/create-clients.sh + +pica-upgrade: + @echo "Starting upgrade" + bash ./scripts/upgrade/upgrade. + +relayer-test-cleanup: + @echo "Cleaning up" + ./scripts/relayer_hyperspace/cleanup.sh +############################################################################### +### Integration Tests ### +############################################################################### + +integration-test-all: init-test-framework \ + test-ibc-hooks + +init-test-framework: clean-testing-data install + @echo "Initializing both blockchains..." + ./scripts/tests/init-test-framework.sh + ./scripts/relayer/relayer-init.sh + +test-ibc-hooks: + @echo "Testing ibc-hooks..." + ./scripts/tests/ibc-hooks/increment.sh diff --git a/app/ante/ante.go b/app/ante/ante.go index 360fa00fe..5508563b2 100644 --- a/app/ante/ante.go +++ b/app/ante/ante.go @@ -1,14 +1,16 @@ package ante import ( - ibcante "github.com/cosmos/ibc-go/v7/modules/core/ante" - ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" + circuitante "cosmossdk.io/x/circuit/ante" + circuitkeeper "cosmossdk.io/x/circuit/keeper" + ibcante "github.com/cosmos/ibc-go/v8/modules/core/ante" + ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper" + "cosmossdk.io/x/tx/signing" "github.com/cosmos/cosmos-sdk/codec" servertypes "github.com/cosmos/cosmos-sdk/server/types" sdk "github.com/cosmos/cosmos-sdk/types" ante "github.com/cosmos/cosmos-sdk/x/auth/ante" - "github.com/cosmos/cosmos-sdk/x/auth/signing" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" tfmwKeeper "github.com/notional-labs/composable/v6/x/transfermiddleware/keeper" txBoundaryAnte "github.com/notional-labs/composable/v6/x/tx-boundary/ante" @@ -24,10 +26,11 @@ func NewAnteHandler( feegrantKeeper ante.FeegrantKeeper, txFeeChecker ante.TxFeeChecker, sigGasConsumer ante.SignatureVerificationGasConsumer, - signModeHandler signing.SignModeHandler, + signModeHandler *signing.HandlerMap, channelKeeper *ibckeeper.Keeper, tfmwKeeper tfmwKeeper.Keeper, txBoundaryKeeper txBoundaryKeeper.Keeper, + ck *circuitkeeper.Keeper, codec codec.BinaryCodec, ) sdk.AnteHandler { return sdk.ChainAnteDecorators( @@ -35,6 +38,7 @@ func NewAnteHandler( ante.NewValidateBasicDecorator(), ante.NewConsumeGasForTxSizeDecorator(ak), ante.NewDeductFeeDecorator(ak, bk, feegrantKeeper, txFeeChecker), + circuitante.NewCircuitBreakerDecorator(ck), ante.NewTxTimeoutHeightDecorator(), ante.NewValidateMemoDecorator(ak), ante.NewConsumeGasForTxSizeDecorator(ak), diff --git a/app/ante/ibc_ante.go b/app/ante/ibc_ante.go index bab820df4..e24641ab2 100644 --- a/app/ante/ibc_ante.go +++ b/app/ante/ibc_ante.go @@ -8,7 +8,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/authz" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" tfmwKeeper "github.com/notional-labs/composable/v6/x/transfermiddleware/keeper" ) diff --git a/app/app.go b/app/app.go index f3f036fb6..5739e0075 100644 --- a/app/app.go +++ b/app/app.go @@ -5,25 +5,36 @@ import ( "io" "os" "path/filepath" - "strings" - "github.com/notional-labs/composable/v6/app/upgrades/v6_6_4" + "cosmossdk.io/client/v2/autocli" + "cosmossdk.io/core/appmodule" + + tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + runtimeservices "github.com/cosmos/cosmos-sdk/runtime/services" + authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec" + + "cosmossdk.io/x/circuit" + circuittypes "cosmossdk.io/x/circuit/types" nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node" + "github.com/cosmos/cosmos-sdk/std" authante "github.com/cosmos/cosmos-sdk/x/auth/ante" authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation" "github.com/cosmos/cosmos-sdk/x/authz" "github.com/cosmos/cosmos-sdk/x/consensus" - tendermint "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" - wasm08 "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm" - wasm08keeper "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/keeper" + "github.com/cosmos/gogoproto/proto" + wasm08 "github.com/cosmos/ibc-go/modules/light-clients/08-wasm" + wasm08keeper "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/keeper" + ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" + tendermint "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint" - wasm08types "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/types" + wasm08types "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/grpc/tmservice" + "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice" "github.com/cosmos/cosmos-sdk/codec" + "github.com/cosmos/cosmos-sdk/codec/address" "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/server/api" "github.com/cosmos/cosmos-sdk/server/config" @@ -38,36 +49,36 @@ import ( "github.com/cosmos/cosmos-sdk/x/bank" "github.com/notional-labs/composable/v6/app/keepers" + "github.com/notional-labs/composable/v6/app/upgrades/v7_0_1" // bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" - + "cosmossdk.io/x/evidence" + evidencetypes "cosmossdk.io/x/evidence/types" + "cosmossdk.io/x/feegrant" + feegrantmodule "cosmossdk.io/x/feegrant/module" + "cosmossdk.io/x/tx/signing" authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/cosmos/cosmos-sdk/x/capability" - capabilitykeeper "github.com/cosmos/cosmos-sdk/x/capability/keeper" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" "github.com/cosmos/cosmos-sdk/x/crisis" crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" distr "github.com/cosmos/cosmos-sdk/x/distribution" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - "github.com/cosmos/cosmos-sdk/x/evidence" - evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" - "github.com/cosmos/cosmos-sdk/x/feegrant" - feegrantmodule "github.com/cosmos/cosmos-sdk/x/feegrant/module" "github.com/cosmos/cosmos-sdk/x/genutil" genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" "github.com/cosmos/cosmos-sdk/x/gov" govclient "github.com/cosmos/cosmos-sdk/x/gov/client" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + "github.com/cosmos/ibc-go/modules/capability" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" "github.com/cosmos/cosmos-sdk/x/group" groupmodule "github.com/cosmos/cosmos-sdk/x/group/module" - dbm "github.com/cometbft/cometbft-db" + "cosmossdk.io/log" abci "github.com/cometbft/cometbft/abci/types" tmjson "github.com/cometbft/cometbft/libs/json" - "github.com/cometbft/cometbft/libs/log" tmos "github.com/cometbft/cometbft/libs/os" + dbm "github.com/cosmos/cosmos-db" "github.com/cosmos/cosmos-sdk/x/params" paramsclient "github.com/cosmos/cosmos-sdk/x/params/client" paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" @@ -75,30 +86,22 @@ import ( slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" "github.com/cosmos/cosmos-sdk/x/staking" + "cosmossdk.io/x/upgrade" + upgradetypes "cosmossdk.io/x/upgrade/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/cosmos/cosmos-sdk/x/upgrade" - upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - ica "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts" - icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types" - "github.com/cosmos/ibc-go/v7/modules/apps/transfer" - ibctransferkeeper "github.com/cosmos/ibc-go/v7/modules/apps/transfer/keeper" - ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - ibc "github.com/cosmos/ibc-go/v7/modules/core" - ibcclientclient "github.com/cosmos/ibc-go/v7/modules/core/02-client/client" - ibchost "github.com/cosmos/ibc-go/v7/modules/core/exported" - ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" + icq "github.com/cosmos/ibc-apps/modules/async-icq/v8" + icqtypes "github.com/cosmos/ibc-apps/modules/async-icq/v8/types" + ica "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts" + icatypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/types" + "github.com/cosmos/ibc-go/v8/modules/apps/transfer" + ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + ibc "github.com/cosmos/ibc-go/v8/modules/core" customibctransfer "github.com/notional-labs/composable/v6/custom/ibc-transfer" customstaking "github.com/notional-labs/composable/v6/custom/staking" "github.com/spf13/cast" - icq "github.com/strangelove-ventures/async-icq/v7" - icqtypes "github.com/strangelove-ventures/async-icq/v7/types" - router "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward" - routertypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types" - alliancemodule "github.com/terra-money/alliance/x/alliance" - alliancemoduleclient "github.com/terra-money/alliance/x/alliance/client" - alliancemoduletypes "github.com/terra-money/alliance/x/alliance/types" + pfm "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward" + pfmtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/types" custombankmodule "github.com/notional-labs/composable/v6/custom/bank" @@ -119,8 +122,6 @@ import ( "github.com/notional-labs/composable/v6/x/mint" minttypes "github.com/notional-labs/composable/v6/x/mint/types" - ibctestingtypes "github.com/cosmos/ibc-go/v7/testing/types" - ibc_hooks "github.com/notional-labs/composable/v6/x/ibc-hooks" ibchookstypes "github.com/notional-labs/composable/v6/x/ibc-hooks/types" @@ -148,27 +149,10 @@ var ( // https://github.com/CosmWasm/wasmd/blob/02a54d33ff2c064f3539ae12d75d027d9c665f05/x/wasm/internal/types/proposal.go#L28-L34 EnableSpecificProposals = "" - Upgrades = []upgrades.Upgrade{v6_6_4.Upgrade} + Upgrades = []upgrades.Upgrade{v7_0_1.Upgrade} Forks = []upgrades.Fork{} ) -// GetEnabledProposals parses the ProposalsEnabled / EnableSpecificProposals values to -// produce a list of enabled proposals to pass into wasmd app. -func GetEnabledProposals() []wasm.ProposalType { - if EnableSpecificProposals == "" { - if ProposalsEnabled == "true" { - return wasm.EnableAllProposals - } - return wasm.DisableAllProposals - } - chunks := strings.Split(EnableSpecificProposals, ",") - proposals, err := wasm.ConvertToProposals(chunks) - if err != nil { - panic(err) - } - return proposals -} - // this line is used by starport scaffolding # stargate/wasm/app/enabledProposals func getGovProposalHandlers() []govclient.ProposalHandler { @@ -177,13 +161,6 @@ func getGovProposalHandlers() []govclient.ProposalHandler { govProposalHandlers = append(govProposalHandlers, paramsclient.ProposalHandler, - upgradeclient.LegacyProposalHandler, - upgradeclient.LegacyCancelProposalHandler, - ibcclientclient.UpdateClientProposalHandler, - ibcclientclient.UpgradeProposalHandler, - alliancemoduleclient.CreateAllianceProposalHandler, - alliancemoduleclient.UpdateAllianceProposalHandler, - alliancemoduleclient.DeleteAllianceProposalHandler, // this line is used by starport scaffolding # stargate/app/govProposalHandler ) @@ -219,18 +196,18 @@ var ( vesting.AppModuleBasic{}, tendermint.AppModuleBasic{}, mint.AppModuleBasic{}, - wasm08.AppModuleBasic{}, wasm.AppModuleBasic{}, - router.AppModuleBasic{}, + pfm.AppModuleBasic{}, ica.AppModuleBasic{}, ibc_hooks.AppModuleBasic{}, transfermiddleware.AppModuleBasic{}, txBoundary.AppModuleBasic{}, ratelimitmodule.AppModuleBasic{}, consensus.AppModuleBasic{}, - alliancemodule.AppModuleBasic{}, stakingmiddleware.AppModuleBasic{}, ibctransfermiddleware.AppModuleBasic{}, + circuit.AppModuleBasic{}, + wasm08.AppModuleBasic{}, // this line is used by starport scaffolding # stargate/app/moduleBasic ) @@ -239,15 +216,13 @@ var ( authtypes.FeeCollectorName: nil, distrtypes.ModuleName: nil, // mint module needs burn access to remove excess validator tokens (it overallocates, then burns) - minttypes.ModuleName: {authtypes.Minter}, - stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking}, - stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking}, - govtypes.ModuleName: {authtypes.Burner}, - transfermiddlewaretypes.ModuleName: {authtypes.Minter, authtypes.Burner}, - ibctransfertypes.ModuleName: {authtypes.Minter, authtypes.Burner}, - alliancemoduletypes.ModuleName: {authtypes.Minter, authtypes.Burner}, - alliancemoduletypes.RewardsPoolName: nil, - icatypes.ModuleName: nil, + minttypes.ModuleName: {authtypes.Minter}, + stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking}, + stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking}, + govtypes.ModuleName: {authtypes.Burner}, + transfermiddlewaretypes.ModuleName: {authtypes.Minter, authtypes.Burner}, + ibctransfertypes.ModuleName: {authtypes.Minter, authtypes.Burner}, + icatypes.ModuleName: nil, // this line is used by starport scaffolding # stargate/app/maccPerms } ) @@ -275,12 +250,13 @@ type ComposableApp struct { cdc *codec.LegacyAmino appCodec codec.Codec interfaceRegistry types.InterfaceRegistry + txConfig client.TxConfig + invCheckPeriod uint - invCheckPeriod uint - - mm *module.Manager - sm *module.SimulationManager - configurator module.Configurator + mm *module.Manager + basicModuleManger module.BasicManager + sm *module.SimulationManager + configurator module.Configurator } // RUN GOSEC @@ -290,36 +266,52 @@ func NewComposableApp( db dbm.DB, traceStore io.Writer, loadLatest bool, - enabledProposals []wasm.ProposalType, skipUpgradeHeights map[int64]bool, homePath string, invCheckPeriod uint, - encodingConfig EncodingConfig, appOpts servertypes.AppOptions, - wasmOpts []wasm.Option, baseAppOptions ...func(*baseapp.BaseApp), ) *ComposableApp { - appCodec := encodingConfig.Marshaler - cdc := encodingConfig.Amino - interfaceRegistry := encodingConfig.InterfaceRegistry + interfaceRegistry, err := types.NewInterfaceRegistryWithOptions(types.InterfaceRegistryOptions{ + ProtoFiles: proto.HybridResolver, + SigningOptions: signing.Options{ + AddressCodec: address.Bech32Codec{ + Bech32Prefix: sdk.GetConfig().GetBech32AccountAddrPrefix(), + }, + ValidatorAddressCodec: address.Bech32Codec{ + Bech32Prefix: sdk.GetConfig().GetBech32ValidatorAddrPrefix(), + }, + }, + }) + if err != nil { + panic(err) + } + + appCodec := codec.NewProtoCodec(interfaceRegistry) + legacyAmino := codec.NewLegacyAmino() + txConfig := authtx.NewTxConfig(appCodec, authtx.DefaultSignModes) - bApp := baseapp.NewBaseApp(Name, logger, db, encodingConfig.TxConfig.TxDecoder(), baseAppOptions...) + std.RegisterLegacyAminoCodec(legacyAmino) + std.RegisterInterfaces(interfaceRegistry) + + bApp := baseapp.NewBaseApp(Name, logger, db, txConfig.TxDecoder(), baseAppOptions...) bApp.SetCommitMultiStoreTracer(traceStore) bApp.SetInterfaceRegistry(interfaceRegistry) - bApp.SetTxEncoder(encodingConfig.TxConfig.TxEncoder()) + bApp.SetTxEncoder(txConfig.TxEncoder()) app := &ComposableApp{ BaseApp: bApp, AppKeepers: keepers.AppKeepers{}, - cdc: cdc, + cdc: legacyAmino, appCodec: appCodec, interfaceRegistry: interfaceRegistry, invCheckPeriod: invCheckPeriod, + txConfig: txConfig, } app.InitSpecialKeepers( appCodec, - cdc, + legacyAmino, bApp, invCheckPeriod, skipUpgradeHeights, @@ -327,25 +319,24 @@ func NewComposableApp( ) app.setupUpgradeStoreLoaders() app.InitNormalKeepers( + logger, appCodec, - cdc, + legacyAmino, bApp, maccPerms, invCheckPeriod, skipUpgradeHeights, homePath, appOpts, - wasmOpts, - enabledProposals, ) // transferModule := transfer.NewAppModule(app.TransferKeeper) transferModule := customibctransfer.NewAppModule(appCodec, app.TransferKeeper, app.BankKeeper) - routerModule := router.NewAppModule(app.RouterKeeper) + pfmModule := pfm.NewAppModule(app.PfmKeeper, app.GetSubspace(pfmtypes.ModuleName)) transfermiddlewareModule := transfermiddleware.NewAppModule(&app.TransferMiddlewareKeeper) txBoundaryModule := txBoundary.NewAppModule(appCodec, app.TxBoundaryKeepper) ratelimitModule := ratelimitmodule.NewAppModule(&app.RatelimitKeeper) - icqModule := icq.NewAppModule(app.ICQKeeper) + icqModule := icq.NewAppModule(app.ICQKeeper, app.GetSubspace(icqtypes.ModuleName)) ibcHooksModule := ibc_hooks.NewAppModule() icaModule := ica.NewAppModule(nil, &app.ICAHostKeeper) // Only ICA Host /**** Module Options ****/ @@ -359,9 +350,10 @@ func NewComposableApp( app.mm = module.NewManager( genutil.NewAppModule( - app.AccountKeeper, app.StakingKeeper, app.BaseApp.DeliverTx, - encodingConfig.TxConfig, + app.AccountKeeper, app.StakingKeeper, app, + txConfig, ), + auth.NewAppModule(appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)), vesting.NewAppModule(app.AccountKeeper, app.BankKeeper), custombankmodule.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper, app.GetSubspace(banktypes.ModuleName)), @@ -371,13 +363,13 @@ func NewComposableApp( crisis.NewAppModule(app.CrisisKeeper, skipGenesisInvariants, app.GetSubspace(crisistypes.ModuleName)), gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)), mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil), - slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName)), + slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName), app.interfaceRegistry), distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)), customstaking.NewAppModule(appCodec, *app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)), stakingmiddleware.NewAppModule(appCodec, app.StakingMiddlewareKeeper), ibctransfermiddleware.NewAppModule(appCodec, app.IbcTransferMiddlewareKeeper), authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - upgrade.NewAppModule(app.UpgradeKeeper), + upgrade.NewAppModule(app.UpgradeKeeper, app.AccountKeeper.AddressCodec()), evidence.NewAppModule(app.EvidenceKeeper), ibc.NewAppModule(app.IBCKeeper), params.NewAppModule(app.ParamsKeeper), @@ -387,15 +379,23 @@ func NewComposableApp( consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper), wasm08.NewAppModule(app.Wasm08Keeper), wasm.NewAppModule(appCodec, &app.WasmKeeper, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.MsgServiceRouter(), app.GetSubspace(wasmtypes.ModuleName)), - routerModule, + pfmModule, transfermiddlewareModule, txBoundaryModule, icaModule, ratelimitModule, - alliancemodule.NewAppModule(appCodec, app.AllianceKeeper, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), + circuit.NewAppModule(appCodec, app.CircuitKeeper), // this line is used by starport scaffolding # stargate/app/appModule ) + app.basicModuleManger = ModuleBasics + app.basicModuleManger.RegisterLegacyAminoCodec(legacyAmino) + app.basicModuleManger.RegisterInterfaces(interfaceRegistry) + + app.mm.SetOrderPreBlockers( + upgradetypes.ModuleName, + ) + // During begin block slashing happens after distr.BeginBlocker so that // there is nothing left over in the validator fee pool, so as to keep the // CanWithdrawInvariant invariant. @@ -409,9 +409,9 @@ func NewComposableApp( evidencetypes.ModuleName, stakingtypes.ModuleName, vestingtypes.ModuleName, - ibchost.ModuleName, + ibcexported.ModuleName, ibctransfertypes.ModuleName, - routertypes.ModuleName, + pfmtypes.ModuleName, transfermiddlewaretypes.ModuleName, txBoundaryTypes.ModuleName, ratelimitmoduletypes.ModuleName, @@ -427,12 +427,12 @@ func NewComposableApp( group.ModuleName, paramstypes.ModuleName, consensusparamtypes.ModuleName, - wasm08types.ModuleName, + circuittypes.ModuleName, icatypes.ModuleName, - wasm.ModuleName, - alliancemoduletypes.ModuleName, + wasmtypes.ModuleName, stakingmiddlewaretypes.ModuleName, ibctransfermiddlewaretypes.ModuleName, + wasm08types.ModuleName, // this line is used by starport scaffolding # stargate/app/beginBlockers ) @@ -447,6 +447,7 @@ func NewComposableApp( distrtypes.ModuleName, slashingtypes.ModuleName, vestingtypes.ModuleName, + ibcexported.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, @@ -454,8 +455,7 @@ func NewComposableApp( group.ModuleName, paramstypes.ModuleName, upgradetypes.ModuleName, - ibchost.ModuleName, - routertypes.ModuleName, + pfmtypes.ModuleName, transfermiddlewaretypes.ModuleName, txBoundaryTypes.ModuleName, ratelimitmoduletypes.ModuleName, @@ -463,12 +463,12 @@ func NewComposableApp( ibctransfertypes.ModuleName, icqtypes.ModuleName, consensusparamtypes.ModuleName, - wasm08types.ModuleName, + circuittypes.ModuleName, icatypes.ModuleName, - wasm.ModuleName, - alliancemoduletypes.ModuleName, + wasmtypes.ModuleName, stakingmiddlewaretypes.ModuleName, ibctransfermiddlewaretypes.ModuleName, + wasm08types.ModuleName, ) // NOTE: The genutils module must occur after staking so that pools are @@ -487,7 +487,7 @@ func NewComposableApp( govtypes.ModuleName, minttypes.ModuleName, crisistypes.ModuleName, - ibchost.ModuleName, + ibcexported.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, @@ -495,7 +495,7 @@ func NewComposableApp( upgradetypes.ModuleName, ibctransfertypes.ModuleName, icqtypes.ModuleName, - routertypes.ModuleName, + pfmtypes.ModuleName, transfermiddlewaretypes.ModuleName, txBoundaryTypes.ModuleName, ratelimitmoduletypes.ModuleName, @@ -503,18 +503,22 @@ func NewComposableApp( feegrant.ModuleName, group.ModuleName, consensusparamtypes.ModuleName, - wasm08types.ModuleName, + circuittypes.ModuleName, icatypes.ModuleName, - wasm.ModuleName, - alliancemoduletypes.ModuleName, + wasmtypes.ModuleName, stakingmiddlewaretypes.ModuleName, ibctransfermiddlewaretypes.ModuleName, + wasm08types.ModuleName, // this line is used by starport scaffolding # stargate/app/initGenesis ) app.mm.RegisterInvariants(app.CrisisKeeper) app.configurator = module.NewConfigurator(app.appCodec, app.MsgServiceRouter(), app.GRPCQueryRouter()) - app.mm.RegisterServices(app.configurator) + + err = app.mm.RegisterServices(app.configurator) + if err != nil { + panic(err) + } app.setupUpgradeHandlers() @@ -550,6 +554,7 @@ func NewComposableApp( // initialize BaseApp app.SetInitChainer(app.InitChainer) + app.SetPreBlocker(app.PreBlocker) app.SetBeginBlocker(app.BeginBlocker) app.SetAnteHandler(ante.NewAnteHandler( @@ -559,10 +564,11 @@ func NewComposableApp( app.FeeGrantKeeper, nil, authante.DefaultSigVerificationGasConsumer, - encodingConfig.TxConfig.SignModeHandler(), + txConfig.SignModeHandler(), app.IBCKeeper, app.TransferMiddlewareKeeper, app.TxBoundaryKeepper, + &app.CircuitKeeper, appCodec, )) app.SetEndBlocker(app.EndBlocker) @@ -581,6 +587,15 @@ func NewComposableApp( if err := app.LoadLatestVersion(); err != nil { tmos.Exit(err.Error()) } + ctx := app.BaseApp.NewUncachedContext(true, tmproto.Header{}) + // Initialize pinned codes in wasmvm as they are not persisted there + if err := app.WasmKeeper.InitializePinnedCodes(ctx); err != nil { + tmos.Exit(fmt.Sprintf("failed initialize pinned codes %s", err)) + } + + // if err := wasm08keeper.InitializePinnedCodes(ctx); err != nil { + // tmos.Exit(fmt.Sprintf("failed initialize pinned codes %s", err)) + //} } return app @@ -589,48 +604,28 @@ func NewComposableApp( // Name returns the name of the App func (app *ComposableApp) Name() string { return app.BaseApp.Name() } -// GetBaseApp returns the base app of the application -func (app *ComposableApp) GetBaseApp() *baseapp.BaseApp { return app.BaseApp } - -// GetStakingKeeper implements the TestingApp interface. -func (app *ComposableApp) GetStakingKeeper() ibctestingtypes.StakingKeeper { - return app.StakingKeeper -} - -// GetIBCKeeper implements the TestingApp interface. -func (app *ComposableApp) GetTransferKeeper() *ibctransferkeeper.Keeper { - return &app.TransferKeeper.Keeper -} - -// GetIBCKeeper implements the TestingApp interface. -func (app *ComposableApp) GetIBCKeeper() *ibckeeper.Keeper { - return app.IBCKeeper -} - -// GetScopedIBCKeeper implements the TestingApp interface. -func (app *ComposableApp) GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper { - return app.ScopedIBCKeeper +// BeginBlocker application updates every begin block +func (app *ComposableApp) BeginBlocker(ctx sdk.Context) (sdk.BeginBlock, error) { + BeginBlockForks(ctx, app) + return app.mm.BeginBlock(ctx) } -// GetTxConfig implements the TestingApp interface. -func (app *ComposableApp) GetTxConfig() client.TxConfig { - cfg := MakeEncodingConfig() - return cfg.TxConfig +// EndBlocker application updates every end block +func (app *ComposableApp) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error) { + return app.mm.EndBlock(ctx) } -// BeginBlocker application updates every begin block -func (app *ComposableApp) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock { - BeginBlockForks(ctx, app) - return app.mm.BeginBlock(ctx, req) +func (app *ComposableApp) PreBlocker(ctx sdk.Context, _ *abci.RequestFinalizeBlock) (*sdk.ResponsePreBlock, error) { + return app.mm.PreBlock(ctx) } -// EndBlocker application updates every end block -func (app *ComposableApp) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock { - return app.mm.EndBlock(ctx, req) +// TxConfig returns MigalooApp's TxConfig +func (app *ComposableApp) TxConfig() client.TxConfig { + return app.txConfig } // InitChainer application update at chain initialization -func (app *ComposableApp) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { +func (app *ComposableApp) InitChainer(ctx sdk.Context, req *abci.RequestInitChain) (*abci.ResponseInitChain, error) { var genesisState GenesisState if err := tmjson.Unmarshal(req.AppStateBytes, &genesisState); err != nil { panic(err) @@ -683,7 +678,7 @@ func (app *ComposableApp) RegisterAPIRoutes(apiSvr *api.Server, _ config.APIConf // Register new tx routes from grpc-gateway. authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) // Register new tendermint queries routes from grpc-gateway. - tmservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) + cmtservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) nodeservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) @@ -697,12 +692,12 @@ func (app *ComposableApp) RegisterTxService(clientCtx client.Context) { // RegisterTendermintService implements the Application.RegisterTendermintService method. func (app *ComposableApp) RegisterTendermintService(clientCtx client.Context) { - tmservice.RegisterTendermintService(clientCtx, app.BaseApp.GRPCQueryRouter(), app.interfaceRegistry, app.Query) + cmtservice.RegisterTendermintService(clientCtx, app.BaseApp.GRPCQueryRouter(), app.interfaceRegistry, app.Query) } // RegisterNodeService registers the node gRPC Query service. -func (app *ComposableApp) RegisterNodeService(clientCtx client.Context) { - nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter()) +func (app *ComposableApp) RegisterNodeService(clientCtx client.Context, cfg config.Config) { + nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter(), cfg) } // GetMaccPerms returns a copy of the module account permissions @@ -764,3 +759,24 @@ func (app *ComposableApp) setupUpgradeHandlers() { ) } } + +// AutoCliOpts returns the autocli options for the app. +func (app *ComposableApp) AutoCliOpts() autocli.AppOptions { + modules := make(map[string]appmodule.AppModule, 0) + for _, m := range app.mm.Modules { + if moduleWithName, ok := m.(module.HasName); ok { + moduleName := moduleWithName.Name() + if appModule, ok := moduleWithName.(appmodule.AppModule); ok { + modules[moduleName] = appModule + } + } + } + + return autocli.AppOptions{ + Modules: modules, + ModuleOptions: runtimeservices.ExtractAutoCLIOptions(app.mm.Modules), + AddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()), + ValidatorAddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()), + ConsensusAddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ConsensusAddrPrefix()), + } +} diff --git a/app/encoding.go b/app/encoding.go index 60535a84c..e53fde4ee 100644 --- a/app/encoding.go +++ b/app/encoding.go @@ -1,11 +1,15 @@ package app import ( + "cosmossdk.io/x/tx/signing" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" + "github.com/cosmos/cosmos-sdk/codec/address" "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/std" + sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/auth/tx" + "github.com/cosmos/gogoproto/proto" ) // This data structure (EncodingConfig) is heavily inspired by Quicksilver. https://github.com/ingenuity-build/quicksilver/blob/main/app/encoding.go @@ -19,7 +23,21 @@ type EncodingConfig struct { // MakeEncodingConfig creates an EncodingConfig for an amino based test configuration. func MakeEncodingConfig() EncodingConfig { amino := codec.NewLegacyAmino() - interfaceRegistry := types.NewInterfaceRegistry() + interfaceRegistry, err := types.NewInterfaceRegistryWithOptions(types.InterfaceRegistryOptions{ + ProtoFiles: proto.HybridResolver, + SigningOptions: signing.Options{ + AddressCodec: address.Bech32Codec{ + Bech32Prefix: sdk.GetConfig().GetBech32AccountAddrPrefix(), + }, + ValidatorAddressCodec: address.Bech32Codec{ + Bech32Prefix: sdk.GetConfig().GetBech32ValidatorAddrPrefix(), + }, + }, + }) + if err != nil { + panic(err) + } + marshaler := codec.NewProtoCodec(interfaceRegistry) txCfg := tx.NewTxConfig(marshaler, tx.DefaultSignModes) diff --git a/app/export.go b/app/export.go index a33330220..5229486a3 100644 --- a/app/export.go +++ b/app/export.go @@ -4,8 +4,7 @@ import ( "encoding/json" "log" - tmproto "github.com/cometbft/cometbft/proto/tendermint/types" - + storetypes "cosmossdk.io/store/types" servertypes "github.com/cosmos/cosmos-sdk/server/types" sdk "github.com/cosmos/cosmos-sdk/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" @@ -19,7 +18,7 @@ func (app *ComposableApp) ExportAppStateAndValidators( forZeroHeight bool, jailAllowedAddrs []string, ) (servertypes.ExportedApp, error) { // as if they could withdraw from the start of the next block - ctx := app.NewContext(true, tmproto.Header{Height: app.LastBlockHeight()}) + ctx := app.NewContext(true) // We export at last height + 1, because that's the height at which // Tendermint will start InitChain. @@ -29,7 +28,11 @@ func (app *ComposableApp) ExportAppStateAndValidators( app.prepForZeroHeightGenesis(ctx, jailAllowedAddrs) } - genState := app.mm.ExportGenesis(ctx, app.appCodec) + genState, err := app.mm.ExportGenesis(ctx, app.appCodec) + if err != nil { + return servertypes.ExportedApp{}, err + } + appState, err := json.MarshalIndent(genState, "", " ") if err != nil { return servertypes.ExportedApp{}, err @@ -76,12 +79,17 @@ func (app *ComposableApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedA // withdraw all validator commission app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) { - accumCommission := app.DistrKeeper.GetValidatorAccumulatedCommission(ctx, val.GetOperator()) + valAddr, err := sdk.ValAddressFromBech32(val.GetOperator()) + if err != nil { + panic(err) + } + + accumCommission, _ := app.DistrKeeper.GetValidatorAccumulatedCommission(ctx, valAddr) if accumCommission.Commission.IsZero() { return false } - _, err := app.DistrKeeper.WithdrawValidatorCommission(ctx, val.GetOperator()) + _, err = app.DistrKeeper.WithdrawValidatorCommission(ctx, valAddr) if err != nil { panic(err) } @@ -90,7 +98,10 @@ func (app *ComposableApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedA }) // withdraw all delegator rewards - dels := app.StakingKeeper.GetAllDelegations(ctx) + dels, err := app.StakingKeeper.GetAllDelegations(ctx) + if err != nil { + panic(err) + } for _, delegation := range dels { valAddr, err := sdk.ValAddressFromBech32(delegation.ValidatorAddress) if err != nil { @@ -117,12 +128,25 @@ func (app *ComposableApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedA // reinitialize all validators app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) { // donate any unwithdrawn outstanding reward fraction tokens to the community pool - scraps := app.DistrKeeper.GetValidatorOutstandingRewardsCoins(ctx, val.GetOperator()) - feePool := app.DistrKeeper.GetFeePool(ctx) + valAddr, err := sdk.ValAddressFromBech32(val.GetOperator()) + if err != nil { + panic(err) + } + + scraps, _ := app.DistrKeeper.GetValidatorOutstandingRewardsCoins(ctx, valAddr) + + feePool, err := app.DistrKeeper.FeePool.Get(ctx) + if err != nil { + panic(err) + } + feePool.CommunityPool = feePool.CommunityPool.Add(scraps...) - app.DistrKeeper.SetFeePool(ctx, feePool) + err = app.DistrKeeper.FeePool.Set(ctx, feePool) + if err != nil { + panic(err) + } - err := app.DistrKeeper.Hooks().AfterValidatorCreated(ctx, val.GetOperator()) + err = app.DistrKeeper.Hooks().AfterValidatorCreated(ctx, valAddr) if err != nil { panic(err) } @@ -175,15 +199,15 @@ func (app *ComposableApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedA // Iterate through validators by power descending, reset bond heights, and // update bond intra-tx counters. store := ctx.KVStore(app.GetKey(stakingtypes.StoreKey)) - iter := sdk.KVStoreReversePrefixIterator(store, stakingtypes.ValidatorsKey) + iter := storetypes.KVStoreReversePrefixIterator(store, stakingtypes.ValidatorsKey) counter := int16(0) for ; iter.Valid(); iter.Next() { addr := sdk.ValAddress(stakingtypes.AddressFromValidatorsKey(iter.Key())) - validator, found := app.StakingKeeper.GetValidator(ctx, addr) - if !found { - panic("expected validator, not found") + validator, err := app.StakingKeeper.GetValidator(ctx, addr) + if err != nil { + panic(err) } validator.UnbondingHeight = 0 @@ -197,7 +221,7 @@ func (app *ComposableApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedA iter.Close() - _, err := app.StakingKeeper.ApplyAndReturnValidatorSetUpdates(ctx) + _, err = app.StakingKeeper.ApplyAndReturnValidatorSetUpdates(ctx) if err != nil { log.Fatal(err) } diff --git a/app/helpers/test_helpers.go b/app/helpers/test_helpers.go index 1646262fa..c13bdab9d 100644 --- a/app/helpers/test_helpers.go +++ b/app/helpers/test_helpers.go @@ -2,19 +2,15 @@ package helpers import ( "encoding/json" - "fmt" "testing" "time" + "cosmossdk.io/log" "cosmossdk.io/math" - "github.com/CosmWasm/wasmd/x/wasm" - wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" - dbm "github.com/cometbft/cometbft-db" abci "github.com/cometbft/cometbft/abci/types" - "github.com/cometbft/cometbft/libs/log" - tmrand "github.com/cometbft/cometbft/libs/rand" tmproto "github.com/cometbft/cometbft/proto/tendermint/types" tmtypes "github.com/cometbft/cometbft/types" + dbm "github.com/cosmos/cosmos-db" "github.com/cosmos/cosmos-sdk/baseapp" codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" @@ -24,7 +20,7 @@ import ( authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/cosmos/ibc-go/v7/testing/mock" + "github.com/cosmos/ibc-go/v8/testing/mock" "github.com/stretchr/testify/require" composable "github.com/notional-labs/composable/v6/app" @@ -59,49 +55,21 @@ type EmptyAppOptions struct{} func (EmptyAppOptions) Get(_ string) interface{} { return nil } func NewContextForApp(app composable.ComposableApp) sdk.Context { - ctx := app.BaseApp.NewContext(false, tmproto.Header{ - ChainID: fmt.Sprintf("test-chain-%s", tmrand.Str(4)), - Height: 1, - }) + ctx := app.BaseApp.NewContext(false) return ctx } -func Setup(t *testing.T, isCheckTx bool, invCheckPeriod uint) *composable.ComposableApp { - t.Helper() - app, genesisState := setup(!isCheckTx, invCheckPeriod) - if !isCheckTx { - // InitChain must be called to stop deliverState from being nil - stateBytes, err := json.MarshalIndent(genesisState, "", " ") - require.NoError(t, err) - - // Initialize the chain - app.InitChain( - abci.RequestInitChain{ - Validators: []abci.ValidatorUpdate{}, - ConsensusParams: DefaultConsensusParams, - AppStateBytes: stateBytes, - }, - ) - } - - return app -} - -func setup(withGenesis bool, invCheckPeriod uint, opts ...wasm.Option) (*composable.ComposableApp, composable.GenesisState) { +func setup(withGenesis bool, invCheckPeriod uint) (*composable.ComposableApp, composable.GenesisState) { db := dbm.NewMemDB() - encCdc := composable.MakeEncodingConfig() app := composable.NewComposableApp( log.NewNopLogger(), db, nil, true, - wasmtypes.EnableAllProposals, map[int64]bool{}, composable.DefaultNodeHome, invCheckPeriod, - encCdc, EmptyAppOptions{}, - opts, ) if withGenesis { return app, composable.NewDefaultGenesisState() @@ -124,29 +92,27 @@ func SetupWithGenesisValSet(t *testing.T, valSet *tmtypes.ValidatorSet, genAccs baseapp.SetChainID(chainID)(app.GetBaseApp()) // init chain will set the validator set and initialize the genesis accounts - app.InitChain( - abci.RequestInitChain{ + _, err = app.InitChain( + &abci.RequestInitChain{ ChainId: chainID, Validators: []abci.ValidatorUpdate{}, ConsensusParams: DefaultConsensusParams, + InitialHeight: app.LastBlockHeight() + 1, AppStateBytes: stateBytes, }, ) + if err != nil { + panic(err) + } - // commit genesis changes - // app.BaseApp.Set - app.Commit() - app.BeginBlock( - abci.RequestBeginBlock{ - Header: tmproto.Header{ - ChainID: chainID, - Height: app.LastBlockHeight() + 1, - AppHash: app.LastCommitID().Hash, - ValidatorsHash: valSet.Hash(), - NextValidatorsHash: valSet.Hash(), - }, - }, - ) + _, err = app.FinalizeBlock(&abci.RequestFinalizeBlock{ + Height: app.LastBlockHeight() + 1, + Hash: app.LastCommitID().Hash, + NextValidatorsHash: valSet.Hash(), + }) + if err != nil { + panic(err) + } return app } @@ -165,7 +131,7 @@ func SetupComposableAppWithValSet(t *testing.T) *composable.ComposableApp { // generate genesis account senderPrivKey := secp256k1.GenPrivKey() acc := authtypes.NewBaseAccount(senderPrivKey.PubKey().Address().Bytes(), senderPrivKey.PubKey(), 0, 0) - amount, ok := sdk.NewIntFromString("10000000000000000000") + amount, ok := math.NewIntFromString("10000000000000000000") require.True(t, ok) balance := banktypes.Balance{ @@ -191,7 +157,7 @@ func SetupComposableAppWithValSetWithGenAccout(t *testing.T) (*composable.Compos // generate genesis account senderPrivKey := secp256k1.GenPrivKey() acc := authtypes.NewBaseAccount(senderPrivKey.PubKey().Address().Bytes(), senderPrivKey.PubKey(), 0, 0) - amount, ok := sdk.NewIntFromString("10000000000000000000") + amount, ok := math.NewIntFromString("10000000000000000000") require.True(t, ok) balance := banktypes.Balance{ @@ -201,6 +167,7 @@ func SetupComposableAppWithValSetWithGenAccout(t *testing.T) (*composable.Compos validators := make([]stakingtypes.Validator, 0, len(valSet.Validators)) for _, val := range valSet.Validators { + //lint:ignore SA1019 pk, _ := cryptocodec.FromTmPubKeyInterface(val.PubKey) pkAny, _ := codectypes.NewAnyWithValue(pk) diff --git a/app/ibctesting/chain.go b/app/ibctesting/chain.go index c2082b7b6..36357591d 100644 --- a/app/ibctesting/chain.go +++ b/app/ibctesting/chain.go @@ -1,21 +1,32 @@ package ibctesting import ( - "bytes" - "crypto/sha256" + "context" "fmt" - "os" "testing" "time" - ratelimitmodulekeeper "github.com/notional-labs/composable/v6/x/ratelimit/keeper" + wasm08 "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/keeper" "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" + storetypes "cosmossdk.io/store/types" + + servertypes "github.com/cosmos/cosmos-sdk/server/types" + stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" + "github.com/cosmos/cosmos-sdk/x/staking/testutil" + packetforwardkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/keeper" + capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper" + customibctransferkeeper "github.com/notional-labs/composable/v6/custom/ibc-transfer/keeper" + transfermiddlewarekeeper "github.com/notional-labs/composable/v6/x/transfermiddleware/keeper" + + ratelimitmodulekeeper "github.com/notional-labs/composable/v6/x/ratelimit/keeper" + + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" abci "github.com/cometbft/cometbft/abci/types" "github.com/cometbft/cometbft/crypto/tmhash" tmproto "github.com/cometbft/cometbft/proto/tendermint/types" - tmprotoversion "github.com/cometbft/cometbft/proto/tendermint/version" - tmtypes "github.com/cometbft/cometbft/types" + cmttypes "github.com/cometbft/cometbft/types" tmversion "github.com/cometbft/cometbft/version" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" @@ -24,41 +35,62 @@ import ( cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" - bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" - govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" - v1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" - "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - - "github.com/CosmWasm/wasmd/x/wasm" - wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" - wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - capabilitykeeper "github.com/cosmos/cosmos-sdk/x/capability/keeper" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" + govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - teststaking "github.com/cosmos/cosmos-sdk/x/staking/testutil" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types" - host "github.com/cosmos/ibc-go/v7/modules/core/24-host" - "github.com/cosmos/ibc-go/v7/modules/core/exported" - ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" - "github.com/cosmos/ibc-go/v7/modules/core/types" - ibctmtypes "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" - wasm08 "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/keeper" - ibctesting "github.com/cosmos/ibc-go/v7/testing" - "github.com/cosmos/ibc-go/v7/testing/mock" - ibctestingtypes "github.com/cosmos/ibc-go/v7/testing/types" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + commitmenttypes "github.com/cosmos/ibc-go/v8/modules/core/23-commitment/types" + host "github.com/cosmos/ibc-go/v8/modules/core/24-host" + "github.com/cosmos/ibc-go/v8/modules/core/exported" + ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper" + "github.com/cosmos/ibc-go/v8/modules/core/types" + ibctmtypes "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint" + ibctesting "github.com/cosmos/ibc-go/v8/testing" "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" - composable "github.com/notional-labs/composable/v6/app" - "github.com/notional-labs/composable/v6/app/ibctesting/simapp" - routerKeeper "github.com/notional-labs/composable/v6/x/transfermiddleware/keeper" + cmtprotoversion "github.com/cometbft/cometbft/proto/tendermint/version" + "github.com/notional-labs/composable/v6/app" ) +var MaxAccounts = 10 + +type SenderAccount struct { + SenderPrivKey cryptotypes.PrivKey + SenderAccount sdk.AccountI +} + +// ChainApp Abstract chain app definition used for testing +type ChainApp interface { + servertypes.ABCI + AppCodec() codec.Codec + GetContextForFinalizeBlock(txBytes []byte) sdk.Context + NewContextLegacy(isCheckTx bool, header tmproto.Header) sdk.Context + NewUncachedContext(isCheckTx bool, header tmproto.Header) sdk.Context + LastBlockHeight() int64 + LastCommitID() storetypes.CommitID + GetBaseApp() *baseapp.BaseApp + + TxConfig() client.TxConfig + GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper + GetIBCKeeper() *ibckeeper.Keeper + GetBankKeeper() bankkeeper.Keeper + GetStakingKeeper() *stakingkeeper.Keeper + GetGovKeeper() *govkeeper.Keeper + GetAccountKeeper() authkeeper.AccountKeeper + GetWasmKeeper() wasmkeeper.Keeper + GetWasm08Keeper() wasm08.Keeper + GetPfmKeeper() packetforwardkeeper.Keeper + GetRateLimitKeeper() ratelimitmodulekeeper.Keeper + GetTransferMiddlewareKeeper() transfermiddlewarekeeper.Keeper + GetTransferKeeper() customibctransferkeeper.Keeper +} + // TestChain is a testing struct that wraps a simapp with the last TM Header, the current ABCI // header and the validators of the TestChain. It also contains a field called ChainID. This // is the clientID that *other* chains use to refer to this TestChain. The SenderAccount @@ -68,7 +100,7 @@ type TestChain struct { t *testing.T Coordinator *Coordinator - App ibctesting.TestingApp + App ChainApp ChainID string LastHeader *ibctmtypes.Header // header for last block height committed CurrentHeader tmproto.Header // header for current block height @@ -76,15 +108,19 @@ type TestChain struct { TxConfig client.TxConfig Codec codec.BinaryCodec - Vals *tmtypes.ValidatorSet - Signers []tmtypes.PrivValidator + Vals *cmttypes.ValidatorSet + NextVals *cmttypes.ValidatorSet + Signers map[string]cmttypes.PrivValidator - senderPrivKey cryptotypes.PrivKey - SenderAccount authtypes.AccountI + SenderPrivKey cryptotypes.PrivKey + SenderAccount sdk.AccountI + SenderAccounts []SenderAccount PendingSendPackets []channeltypes.Packet PendingAckPackets []PacketAck + DefaultMsgFees sdk.Coins + // Use wasm client if true UseWasmClient bool } @@ -94,6 +130,9 @@ type PacketAck struct { Ack []byte } +// ChainAppFactory abstract factory method that usually implemented by app.SetupWithGenesisValSet +type ChainAppFactory func(t *testing.T, valSet *cmttypes.ValidatorSet, genAccs []authtypes.GenesisAccount, chainID string, balances ...banktypes.Balance) ChainApp + // NewTestChain initializes a new TestChain instance with a single validator set using a // generated private key. It also creates a sender account to be used for delivering transactions. // @@ -102,30 +141,59 @@ type PacketAck struct { // // Time management is handled by the Coordinator in order to ensure synchrony between chains. // Each update of any chain increments the block header time for all chains by 5 seconds. -func NewTestChain(t *testing.T, coord *Coordinator, chainID string) *TestChain { +func NewTestChain(t *testing.T, coord *Coordinator, appFactory ChainAppFactory, chainID string) *TestChain { t.Helper() - // generate validator private/public key - privVal := mock.NewPV() - pubKey, err := privVal.GetPubKey() - require.NoError(t, err) - - // create validator set with single validator - validator := tmtypes.NewValidator(pubKey, 1) - valSet := tmtypes.NewValidatorSet([]*tmtypes.Validator{validator}) - signers := []tmtypes.PrivValidator{privVal} - - // generate genesis account - senderPrivKey := secp256k1.GenPrivKey() - acc := authtypes.NewBaseAccount(senderPrivKey.PubKey().Address().Bytes(), senderPrivKey.PubKey(), 0, 0) - amount, ok := sdk.NewIntFromString("10000000000000000000000") - require.True(t, ok) - - balance := banktypes.Balance{ - Address: acc.GetAddress().String(), - Coins: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, amount)), + genAccs := []authtypes.GenesisAccount{} + genBals := []banktypes.Balance{} + senderAccs := []SenderAccount{} + + // generate validators private/public key + var ( + validatorsPerChain = 4 + validators []*cmttypes.Validator + signersByAddress = make(map[string]cmttypes.PrivValidator, validatorsPerChain) + ) + + for i := 0; i < validatorsPerChain; i++ { + _, privVal := cmttypes.RandValidator(false, 100) + pubKey, err := privVal.GetPubKey() + require.NoError(t, err) + validators = append(validators, cmttypes.NewValidator(pubKey, 1)) + signersByAddress[pubKey.Address().String()] = privVal } - app := NewTestingAppDecorator(t, composable.SetupWithGenesisValSet(t, coord.CurrentTime.UTC(), valSet, []authtypes.GenesisAccount{acc}, balance)) + // construct validator set; + // Note that the validators are sorted by voting power + // or, if equal, by address lexical order + valSet := cmttypes.NewValidatorSet(validators) + + // generate genesis accounts + for i := 0; i < MaxAccounts; i++ { + senderPrivKey := secp256k1.GenPrivKey() + acc := authtypes.NewBaseAccount(senderPrivKey.PubKey().Address().Bytes(), senderPrivKey.PubKey(), uint64(i), 0) + amount, ok := sdkmath.NewIntFromString("10000000000000000000") + require.True(t, ok) + + // add sender account + balance := banktypes.Balance{ + Address: acc.GetAddress().String(), + Coins: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, amount)), + } + + genAccs = append(genAccs, acc) + genBals = append(genBals, balance) + + senderAcc := SenderAccount{ + SenderAccount: acc, + SenderPrivKey: senderPrivKey, + } + + senderAccs = append(senderAccs, senderAcc) + } + + app := appFactory(t, valSet, genAccs, chainID, genBals...) + + // app := NewTestingAppDecorator(t, app.SetupWithGenesisValSet(t, valSet, []authtypes.GenesisAccount{acc}, "", nil, balance)) // create current header and call begin block header := tmproto.Header{ @@ -134,21 +202,24 @@ func NewTestChain(t *testing.T, coord *Coordinator, chainID string) *TestChain { Time: coord.CurrentTime.UTC(), } - txConfig := app.GetTxConfig() + txConfig := app.TxConfig() // create an account to send transactions from chain := &TestChain{ - t: t, - Coordinator: coord, - ChainID: chainID, - App: app, - CurrentHeader: header, - QueryServer: app.GetIBCKeeper(), - TxConfig: txConfig, - Codec: app.AppCodec(), - Vals: valSet, - Signers: signers, - senderPrivKey: senderPrivKey, - SenderAccount: acc, + t: t, + Coordinator: coord, + ChainID: chainID, + App: app, + CurrentHeader: header, + QueryServer: app.GetIBCKeeper(), + TxConfig: txConfig, + Codec: app.AppCodec(), + Vals: valSet, + NextVals: valSet, + Signers: signersByAddress, + SenderPrivKey: senderAccs[0].SenderPrivKey, + SenderAccount: senderAccs[0].SenderAccount, + SenderAccounts: senderAccs, + DefaultMsgFees: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.ZeroInt())), } baseapp.SetChainID(chain.ChainID)(chain.App.GetBaseApp()) @@ -165,17 +236,7 @@ func (chain *TestChain) SetWasm(wasm bool) *TestChain { // GetContext returns the current context for the application. func (chain *TestChain) GetContext() sdk.Context { - return chain.App.GetBaseApp().NewContext(false, chain.CurrentHeader) -} - -// GetSimApp returns the SimApp to allow usage ofnon-interface fields. -// CONTRACT: This function should not be called by third parties implementing -// their own SimApp. -func (chain *TestChain) GetSimApp() *simapp.SimApp { - app, ok := chain.App.(*simapp.SimApp) - require.True(chain.t, ok) - - return app + return chain.App.GetBaseApp().NewUncachedContext(false, chain.CurrentHeader) } // QueryProof performs an abci query with the given key and returns the proto encoded merkle proof @@ -187,12 +248,19 @@ func (chain *TestChain) QueryProof(key []byte) ([]byte, clienttypes.Height) { // QueryProof performs an abci query with the given key and returns the proto encoded merkle proof // for the query and the height at which the proof will succeed on a tendermint verifier. func (chain *TestChain) QueryProofAtHeight(key []byte, height int64) ([]byte, clienttypes.Height) { - res := chain.App.Query(abci.RequestQuery{ - Path: fmt.Sprintf("store/%s/key", exported.StoreKey), + return chain.QueryProofForStore(exported.StoreKey, key, height) +} + +// QueryProofForStore performs an abci query with the given key and returns the proto encoded merkle proof +// for the query and the height at which the proof will succeed on a tendermint verifier. +func (chain *TestChain) QueryProofForStore(storeKey string, key []byte, height int64) ([]byte, clienttypes.Height) { + res, err := chain.App.Query(context.TODO(), &abci.RequestQuery{ + Path: fmt.Sprintf("store/%s/key", storeKey), Height: height - 1, Data: key, Prove: true, }) + require.NoError(chain.t, err) merkleProof, err := commitmenttypes.ConvertProofs(res.ProofOps) require.NoError(chain.t, err) @@ -211,12 +279,13 @@ func (chain *TestChain) QueryProofAtHeight(key []byte, height int64) ([]byte, cl // QueryUpgradeProof performs an abci query with the given key and returns the proto encoded merkle proof // for the query and the height at which the proof will succeed on a tendermint verifier. func (chain *TestChain) QueryUpgradeProof(key []byte, height uint64) ([]byte, clienttypes.Height) { - res := chain.App.Query(abci.RequestQuery{ + res, err := chain.App.Query(context.TODO(), &abci.RequestQuery{ Path: "store/upgrade/key", Height: int64(height - 1), Data: key, Prove: true, }) + require.NoError(chain.t, err) merkleProof, err := commitmenttypes.ConvertProofs(res.ProofOps) require.NoError(chain.t, err) @@ -249,9 +318,27 @@ func (chain *TestChain) QueryConsensusStateProof(clientID string) ([]byte, clien // // CONTRACT: this function must only be called after app.Commit() occurs func (chain *TestChain) NextBlock() { + res, err := chain.App.FinalizeBlock(&abci.RequestFinalizeBlock{ + Height: chain.CurrentHeader.Height, + Time: chain.CurrentHeader.GetTime(), // todo (Alex): is this the correct time + NextValidatorsHash: chain.NextVals.Hash(), + }) + require.NoError(chain.t, err) + chain.commitBlock(res) +} + +func (chain *TestChain) commitBlock(res *abci.ResponseFinalizeBlock) { + _, err := chain.App.Commit() + require.NoError(chain.t, err) + // set the last header to the current header // use nil trusted fields - chain.LastHeader = chain.CurrentTMClientHeader() + chain.LastHeader = chain.CurrentCmtClientHeader() + + // val set changes returned from previous block get applied to the next validators + // of this block. See tendermint spec for details. + chain.Vals = chain.NextVals + chain.NextVals = ibctesting.ApplyValSetChanges(chain.t, chain.Vals, res.ValidatorUpdates) // increment the current header chain.CurrentHeader = tmproto.Header{ @@ -262,10 +349,102 @@ func (chain *TestChain) NextBlock() { // chains. Time: chain.CurrentHeader.Time, ValidatorsHash: chain.Vals.Hash(), - NextValidatorsHash: chain.Vals.Hash(), + NextValidatorsHash: chain.NextVals.Hash(), + ProposerAddress: chain.CurrentHeader.ProposerAddress, } +} - chain.App.BeginBlock(abci.RequestBeginBlock{Header: chain.CurrentHeader}) +// CurrentCmtClientHeader creates a CMT header using the current header parameters +// on the chain. The trusted fields in the header are set to nil. +func (chain *TestChain) CurrentCmtClientHeader() *ibctmtypes.Header { + return chain.CreateCmtClientHeader( + chain.ChainID, + chain.CurrentHeader.Height, + clienttypes.Height{}, + chain.CurrentHeader.Time, + chain.Vals, + chain.NextVals, + nil, + chain.Signers, + ) +} + +// CreateCmtClientHeader creates a CMT header to update the CMT client. Args are passed in to allow +// caller flexibility to use params that differ from the chain. +func (chain *TestChain) CreateCmtClientHeader(chainID string, blockHeight int64, trustedHeight clienttypes.Height, timestamp time.Time, cmtValSet, nextVals, cmtTrustedVals *cmttypes.ValidatorSet, signers map[string]cmttypes.PrivValidator) *ibctmtypes.Header { + var ( + valSet *tmproto.ValidatorSet + trustedVals *tmproto.ValidatorSet + ) + require.NotNil(chain.t, cmtValSet) + + vsetHash := cmtValSet.Hash() + nextValHash := nextVals.Hash() + + cmtHeader := cmttypes.Header{ + Version: cmtprotoversion.Consensus{Block: tmversion.BlockProtocol, App: 2}, + ChainID: chainID, + Height: blockHeight, + Time: timestamp, + LastBlockID: MakeBlockID(make([]byte, tmhash.Size), 10_000, make([]byte, tmhash.Size)), + LastCommitHash: chain.App.LastCommitID().Hash, + DataHash: tmhash.Sum([]byte("data_hash")), + ValidatorsHash: vsetHash, + NextValidatorsHash: nextValHash, + ConsensusHash: tmhash.Sum([]byte("consensus_hash")), + AppHash: chain.CurrentHeader.AppHash, + LastResultsHash: tmhash.Sum([]byte("last_results_hash")), + EvidenceHash: tmhash.Sum([]byte("evidence_hash")), + ProposerAddress: cmtValSet.Proposer.Address, //nolint:staticcheck // SA5011: possible nil pointer dereference + } + + hhash := cmtHeader.Hash() + blockID := MakeBlockID(hhash, 3, tmhash.Sum([]byte("part_set"))) + voteSet := cmttypes.NewExtendedVoteSet(chainID, blockHeight, 1, tmproto.PrecommitType, cmtValSet) + // MakeCommit expects a signer array in the same order as the validator array. + // Thus we iterate over the ordered validator set and construct a signer array + // from the signer map in the same order. + signerArr := make([]cmttypes.PrivValidator, len(cmtValSet.Validators)) //nolint:staticcheck + for i, v := range cmtValSet.Validators { //nolint:staticcheck + signerArr[i] = signers[v.Address.String()] + } + extCommit, err := cmttypes.MakeExtCommit(blockID, blockHeight, 1, voteSet, signerArr, timestamp, true) + require.NoError(chain.t, err) + + signedHeader := &tmproto.SignedHeader{ + Header: cmtHeader.ToProto(), + Commit: extCommit.ToCommit().ToProto(), + } + + if cmtValSet != nil { //nolint:staticcheck + valSet, err = cmtValSet.ToProto() + require.NoError(chain.t, err) + } + + if cmtTrustedVals != nil { + trustedVals, err = cmtTrustedVals.ToProto() + require.NoError(chain.t, err) + } + + // The trusted fields may be nil. They may be filled before relaying messages to a client. + // The relayer is responsible for querying client and injecting appropriate trusted fields. + return &ibctmtypes.Header{ + SignedHeader: signedHeader, + ValidatorSet: valSet, + TrustedHeight: trustedHeight, + TrustedValidators: trustedVals, + } +} + +// MakeBlockID copied unimported test functions from cmttypes to use them here +func MakeBlockID(hash []byte, partSetSize uint32, partSetHash []byte) cmttypes.BlockID { + return cmttypes.BlockID{ + Hash: hash, + PartSetHeader: cmttypes.PartSetHeader{ + Total: partSetSize, + Hash: partSetHash, + }, + } } // sendMsgs delivers a transaction through the application without returning the result. @@ -277,56 +456,74 @@ func (chain *TestChain) sendMsgs(msgs ...sdk.Msg) error { // SendMsgs delivers a transaction through the application. It updates the senders sequence // number and updates the TestChain's headers. It returns the result and error if one // occurred. -func (chain *TestChain) SendMsgs(msgs ...sdk.Msg) (*sdk.Result, error) { +func (chain *TestChain) SendMsgs(msgs ...sdk.Msg) (*abci.ExecTxResult, error) { + rsp, gotErr := chain.sendWithSigner(chain.SenderPrivKey, chain.SenderAccount, msgs...) + + return rsp, gotErr +} + +// SendNonDefaultSenderMsgs is the same as SendMsgs but with a custom signer/account +func (chain *TestChain) SendNonDefaultSenderMsgs(senderPrivKey cryptotypes.PrivKey, msgs ...sdk.Msg) (*abci.ExecTxResult, error) { + require.NotEqual(chain.t, chain.SenderPrivKey, senderPrivKey, "use SendMsgs method") + + addr := sdk.AccAddress(senderPrivKey.PubKey().Address().Bytes()) + account := chain.App.GetAccountKeeper().GetAccount(chain.GetContext(), addr) + require.NotNil(chain.t, account) + return chain.sendWithSigner(senderPrivKey, account, msgs...) +} + +// sendWithSigner is a generic helper to send messages +func (chain *TestChain) sendWithSigner( + senderPrivKey cryptotypes.PrivKey, + senderAccount sdk.AccountI, + msgs ...sdk.Msg, +) (*abci.ExecTxResult, error) { // ensure the chain has the latest time chain.Coordinator.UpdateTimeForChain(chain) - _, r, err := composable.SignAndDeliver( + // increment acc sequence regardless of success or failure tx execution + defer func() { + err := chain.SenderAccount.SetSequence(chain.SenderAccount.GetSequence() + 1) + if err != nil { + panic(err) + } + }() + + blockResp, gotErr := app.SignAndDeliver( chain.t, chain.TxConfig, chain.App.GetBaseApp(), - chain.GetContext().BlockHeader(), msgs, chain.ChainID, - []uint64{chain.SenderAccount.GetAccountNumber()}, - []uint64{chain.SenderAccount.GetSequence()}, - true, true, chain.senderPrivKey, + []uint64{senderAccount.GetAccountNumber()}, + []uint64{senderAccount.GetSequence()}, + true, + chain.CurrentHeader.GetTime(), + chain.NextVals.Hash(), + senderPrivKey, ) - if err != nil { - return nil, err + if gotErr != nil { + return nil, gotErr } + chain.commitBlock(blockResp) - // SignAndDeliver calls app.Commit() - chain.NextBlock() + require.Len(chain.t, blockResp.TxResults, 1) + txResult := blockResp.TxResults[0] - // increment sequence for successful transaction execution - err = chain.SenderAccount.SetSequence(chain.SenderAccount.GetSequence() + 1) - if err != nil { - return nil, err + if txResult.Code != 0 { + return txResult, fmt.Errorf("%s/%d: %q", txResult.Codespace, txResult.Code, txResult.Log) } chain.Coordinator.IncrementTime() - - chain.captureIBCEvents(r) - - return r, nil + chain.CaptureIBCEvents(txResult) + return txResult, nil } -func (chain *TestChain) SendMsgsWithExpPass(expPass bool, msgs ...sdk.Msg) (*sdk.Result, error) { +func (chain *TestChain) SendMsgsWithExpPass(expPass bool, msgs ...sdk.Msg) (*abci.ExecTxResult, error) { // ensure the chain has the latest time chain.Coordinator.UpdateTimeForChain(chain) - _, r, err := composable.SignAndDeliver( - chain.t, - chain.TxConfig, - chain.App.GetBaseApp(), - chain.GetContext().BlockHeader(), - msgs, - chain.ChainID, - []uint64{chain.SenderAccount.GetAccountNumber()}, - []uint64{chain.SenderAccount.GetSequence()}, - true, expPass, chain.senderPrivKey, - ) + blockResp, err := app.SignAndDeliverWithoutCommit(chain.t, chain.TxConfig, chain.App.GetBaseApp(), msgs, chain.ChainID, []uint64{chain.SenderAccount.GetAccountNumber()}, []uint64{chain.SenderAccount.GetSequence()}, chain.CurrentHeader.GetTime(), chain.SenderPrivKey) if err != nil { return nil, err } @@ -342,13 +539,17 @@ func (chain *TestChain) SendMsgsWithExpPass(expPass bool, msgs ...sdk.Msg) (*sdk chain.Coordinator.IncrementTime() - chain.captureIBCEvents(r) + txResult := blockResp.TxResults[0] + if txResult.Code != 0 { + return txResult, fmt.Errorf("%s/%d: %q", txResult.Codespace, txResult.Code, txResult.Log) + } + chain.CaptureIBCEvents(txResult) - return r, nil + return txResult, nil } -func (chain *TestChain) captureIBCEvents(r *sdk.Result) { - toSend := getSendPackets(r.Events) +func (chain *TestChain) CaptureIBCEvents(r *abci.ExecTxResult) { + toSend := GetSendPackets(r.Events) if len(toSend) > 0 { // Keep a queue on the chain that we can relay in tests chain.PendingSendPackets = append(chain.PendingSendPackets, toSend...) @@ -377,19 +578,28 @@ func (chain *TestChain) GetConsensusState(clientID string, height exported.Heigh // GetValsAtHeight will return the validator set of the chain at a given height. It will return // a success boolean depending on if the validator set exists or not at that height. -func (chain *TestChain) GetValsAtHeight(height int64) (*tmtypes.ValidatorSet, bool) { - histInfo, ok := chain.App.GetStakingKeeper().GetHistoricalInfo(chain.GetContext(), height) - if !ok { +func (chain *TestChain) GetValsAtHeight(height int64) (*cmttypes.ValidatorSet, bool) { + // if the current uncommitted header equals the requested height, then we can return + // the current validator set as this validator set will be stored in the historical info + // when the block height is executed + if height == chain.CurrentHeader.Height { + return chain.Vals, true + } + + histInfo, err := chain.App.GetStakingKeeper().GetHistoricalInfo(chain.GetContext(), height) + if err != nil { return nil, false } - valSet := stakingtypes.Validators(histInfo.Valset) + valSet := stakingtypes.Validators{ + Validators: histInfo.Valset, + } - tmValidators, err := teststaking.ToTmValidators(valSet, sdk.DefaultPowerReduction) + cmtValidators, err := testutil.ToCmtValidators(valSet, sdk.DefaultPowerReduction) if err != nil { panic(err) } - return tmtypes.NewValidatorSet(tmValidators), true + return cmttypes.NewValidatorSet(cmtValidators), true } // GetAcknowledgement retrieves an acknowledgement for the provided packet. If the @@ -421,7 +631,7 @@ func (chain *TestChain) ConstructUpdateTMClientHeaderWithTrustedHeight(counterpa trustedHeight = chain.GetClientState(clientID).GetLatestHeight().(clienttypes.Height) } var ( - tmTrustedVals *tmtypes.ValidatorSet + tmTrustedVals *cmttypes.ValidatorSet ok bool ) // Once we get TrustedHeight from client, we must query the validators from the counterparty chain @@ -458,104 +668,6 @@ func (chain *TestChain) ExpireClient(amount time.Duration) { chain.Coordinator.IncrementTimeBy(amount) } -// CurrentTMClientHeader creates a TM header using the current header parameters -// on the chain. The trusted fields in the header are set to nil. -func (chain *TestChain) CurrentTMClientHeader() *ibctmtypes.Header { - return chain.CreateTMClientHeader(chain.ChainID, chain.CurrentHeader.Height, clienttypes.Height{}, chain.CurrentHeader.Time, chain.Vals, nil, chain.Signers) -} - -// CreateTMClientHeader creates a TM header to update the TM client. Args are passed in to allow -// caller flexibility to use params that differ from the chain. -func (chain *TestChain) CreateTMClientHeader(chainID string, blockHeight int64, trustedHeight clienttypes.Height, timestamp time.Time, tmValSet, tmTrustedVals *tmtypes.ValidatorSet, signers []tmtypes.PrivValidator) *ibctmtypes.Header { - var ( - valSet *tmproto.ValidatorSet - trustedVals *tmproto.ValidatorSet - ) - require.NotNil(chain.t, tmValSet) - - vsetHash := tmValSet.Hash() - - tmHeader := tmtypes.Header{ - Version: tmprotoversion.Consensus{Block: tmversion.BlockProtocol, App: 2}, - ChainID: chainID, - Height: blockHeight, - Time: timestamp, - LastBlockID: MakeBlockID(make([]byte, tmhash.Size), 10_000, make([]byte, tmhash.Size)), - LastCommitHash: chain.App.LastCommitID().Hash, - DataHash: tmhash.Sum([]byte("data_hash")), - ValidatorsHash: vsetHash, - NextValidatorsHash: vsetHash, - ConsensusHash: tmhash.Sum([]byte("consensus_hash")), - AppHash: chain.CurrentHeader.AppHash, - LastResultsHash: tmhash.Sum([]byte("last_results_hash")), - EvidenceHash: tmhash.Sum([]byte("evidence_hash")), - ProposerAddress: tmValSet.Proposer.Address, - } - hhash := tmHeader.Hash() - blockID := MakeBlockID(hhash, 3, tmhash.Sum([]byte("part_set"))) - voteSet := tmtypes.NewVoteSet(chainID, blockHeight, 1, tmproto.PrecommitType, tmValSet) - - commit, err := tmtypes.MakeCommit(blockID, blockHeight, 1, voteSet, signers, timestamp) - require.NoError(chain.t, err) - - signedHeader := &tmproto.SignedHeader{ - Header: tmHeader.ToProto(), - Commit: commit.ToProto(), - } - - valSet, err = tmValSet.ToProto() - if err != nil { - panic(err) - } - - if tmTrustedVals != nil { - trustedVals, err = tmTrustedVals.ToProto() - if err != nil { - panic(err) - } - } - - // The trusted fields may be nil. They may be filled before relaying messages to a client. - // The relayer is responsible for querying client and injecting appropriate trusted fields. - return &ibctmtypes.Header{ - SignedHeader: signedHeader, - ValidatorSet: valSet, - TrustedHeight: trustedHeight, - TrustedValidators: trustedVals, - } -} - -// MakeBlockID copied unimported test functions from tmtypes to use them here -func MakeBlockID(hash []byte, partSetSize uint32, partSetHash []byte) tmtypes.BlockID { - return tmtypes.BlockID{ - Hash: hash, - PartSetHeader: tmtypes.PartSetHeader{ - Total: partSetSize, - Hash: partSetHash, - }, - } -} - -// CreateSortedSignerArray takes two PrivValidators, and the corresponding Validator structs -// (including voting power). It returns a signer array of PrivValidators that matches the -// sorting of ValidatorSet. -// The sorting is first by .VotingPower (descending), with secondary index of .Address (ascending). -func CreateSortedSignerArray(altPrivVal, suitePrivVal tmtypes.PrivValidator, - altVal, suiteVal *tmtypes.Validator, -) []tmtypes.PrivValidator { - switch { - case altVal.VotingPower > suiteVal.VotingPower: - return []tmtypes.PrivValidator{altPrivVal, suitePrivVal} - case altVal.VotingPower < suiteVal.VotingPower: - return []tmtypes.PrivValidator{suitePrivVal, altPrivVal} - default: - if bytes.Compare(altVal.Address, suiteVal.Address) == -1 { - return []tmtypes.PrivValidator{altPrivVal, suitePrivVal} - } - return []tmtypes.PrivValidator{suitePrivVal, altPrivVal} - } -} - // CreatePortCapability binds and claims a capability for the given portID if it does not // already exist. This function will fail testing on any resulting error. // NOTE: only creation of a capbility for a transfer or mock port is supported @@ -615,149 +727,66 @@ func (chain *TestChain) GetChannelCapability(portID, channelID string) *capabili return capability } -func (chain *TestChain) TransferMiddleware() routerKeeper.Keeper { - return chain.GetTestSupport().TransferMiddleware() +func (chain *TestChain) TransferMiddleware() transfermiddlewarekeeper.Keeper { + return chain.App.GetTransferMiddlewareKeeper() } func (chain *TestChain) RateLimit() ratelimitmodulekeeper.Keeper { - return chain.GetTestSupport().RateLimit() + return chain.App.GetRateLimitKeeper() +} + +func (chain *TestChain) TransferKeeper() customibctransferkeeper.Keeper { + return chain.App.GetTransferKeeper() } func (chain *TestChain) Balance(acc sdk.AccAddress, denom string) sdk.Coin { - return chain.GetTestSupport().BankKeeper().GetBalance(chain.GetContext(), acc, denom) + return chain.App.GetBankKeeper().GetBalance(chain.GetContext(), acc, denom) } func (chain *TestChain) AllBalances(acc sdk.AccAddress) sdk.Coins { - return chain.GetTestSupport().BankKeeper().GetAllBalances(chain.GetContext(), acc) + return chain.App.GetBankKeeper().GetAllBalances(chain.GetContext(), acc) } func (chain *TestChain) GetBankKeeper() bankkeeper.Keeper { - return chain.GetTestSupport().BankKeeper() + return chain.App.GetBankKeeper() } -func (chain TestChain) GetTestSupport() *composable.TestSupport { - return chain.App.(*TestingAppDecorator).TestSupport() +func (chain TestChain) Wasm08Keeper() wasm08.Keeper { + return chain.App.GetWasm08Keeper() } func (chain *TestChain) QueryContract(suite *suite.Suite, contract sdk.AccAddress, key []byte) string { - wasmKeeper := chain.GetTestSupport().WasmdKeeper() + wasmKeeper := chain.App.GetWasmKeeper() state, err := wasmKeeper.QuerySmart(chain.GetContext(), contract, key) suite.Require().NoError(err) return string(state) } -func (chain *TestChain) StoreContractCode(suite *suite.Suite, path string) { - govModuleAddress := chain.GetTestSupport().AccountKeeper().GetModuleAddress(govtypes.ModuleName) - wasmCode, err := os.ReadFile(path) - suite.Require().NoError(err) - - src := wasmtypes.StoreCodeProposalFixture(func(p *wasmtypes.StoreCodeProposal) { //nolint: staticcheck - p.RunAs = govModuleAddress.String() - p.WASMByteCode = wasmCode - checksum := sha256.Sum256(wasmCode) - p.CodeHash = checksum[:] - }) - - govKeeper := chain.GetTestSupport().GovKeeper() - // when - mustSubmitAndExecuteLegacyProposal(suite.T(), chain.GetContext(), src, chain.SenderAccount.GetAddress().String(), &govKeeper, govModuleAddress.String()) - suite.Require().NoError(err) -} +// +// func (chain *TestChain) StoreContractCode(suite *suite.Suite, path string) { +// govModuleAddress := chain.App.GetAccountKeeper().GetModuleAddress(govtypes.ModuleName) +// wasmCode, err := os.ReadFile(path) +// suite.Require().NoError(err) +// +// src := wasmtypes.New(func(p *wasmtypes.StoreCodeProposal) { //nolint: staticcheck +// p.RunAs = govModuleAddress.String() +// p.WASMByteCode = wasmCode +// checksum := sha256.Sum256(wasmCode) +// p.CodeHash = checksum[:] +// }) +// +// govKeeper := chain.App.GetGovKeeper() +// // when +// mustSubmitAndExecuteLegacyProposal(suite.T(), chain.GetContext(), src, chain.SenderAccount.GetAddress().String(), govKeeper, govModuleAddress.String()) +// suite.Require().NoError(err) +//} func (chain *TestChain) InstantiateContract(suite *suite.Suite, msg string, codeID uint64) sdk.AccAddress { - wasmKeeper := chain.GetTestSupport().WasmdKeeper() - govModuleAddress := chain.GetTestSupport().AccountKeeper().GetModuleAddress(govtypes.ModuleName) + wasmKeeper := chain.App.GetWasmKeeper() + govModuleAddress := chain.App.GetAccountKeeper().GetModuleAddress(govtypes.ModuleName) contractKeeper := wasmkeeper.NewDefaultPermissionKeeper(wasmKeeper) addr, _, err := contractKeeper.Instantiate(chain.GetContext(), codeID, govModuleAddress, govModuleAddress, []byte(msg), "contract", nil) suite.Require().NoError(err) return addr } - -func mustSubmitAndExecuteLegacyProposal(t *testing.T, ctx sdk.Context, content v1beta1.Content, myActorAddress string, govKeeper *govkeeper.Keeper, authority string) { - t.Helper() - msgServer := govkeeper.NewMsgServerImpl(govKeeper) - // ignore all submit events - contentMsg, err := submitLegacyProposal(t, ctx.WithEventManager(sdk.NewEventManager()), content, myActorAddress, authority, msgServer) - require.NoError(t, err) - - _, err = msgServer.ExecLegacyContent(sdk.WrapSDKContext(ctx), v1.NewMsgExecLegacyContent(contentMsg.Content, authority)) - require.NoError(t, err) -} - -// does not fail on submit proposal -func submitLegacyProposal(t *testing.T, ctx sdk.Context, content v1beta1.Content, myActorAddress, govAuthority string, msgServer v1.MsgServer) (*v1.MsgExecLegacyContent, error) { - t.Helper() - contentMsg, err := v1.NewLegacyContent(content, govAuthority) - require.NoError(t, err) - - proposal, err := v1.NewMsgSubmitProposal( - []sdk.Msg{contentMsg}, - sdk.Coins{}, - myActorAddress, - "", - "my title", - "my description", - ) - require.NoError(t, err) - - // when stored - _, err = msgServer.SubmitProposal(sdk.WrapSDKContext(ctx), proposal) - return contentMsg, err -} - -var _ ibctesting.TestingApp = TestingAppDecorator{} - -type TestingAppDecorator struct { - *composable.ComposableApp - t *testing.T -} - -func NewTestingAppDecorator(t *testing.T, composable *composable.ComposableApp) *TestingAppDecorator { - t.Helper() - return &TestingAppDecorator{ComposableApp: composable, t: t} -} - -func (a TestingAppDecorator) GetBaseApp() *baseapp.BaseApp { - return a.TestSupport().GetBaseApp() -} - -func (a TestingAppDecorator) GetStakingKeeper() ibctestingtypes.StakingKeeper { - return a.TestSupport().StakingKeeper() -} - -func (a TestingAppDecorator) GetAccountKeeper() authkeeper.AccountKeeper { - return a.TestSupport().AccountKeeper() -} - -func (a TestingAppDecorator) GetGovKeeper() govkeeper.Keeper { - return a.TestSupport().GovKeeper() -} - -func (a TestingAppDecorator) GetBankKeeper() bankkeeper.Keeper { - return a.TestSupport().BankKeeper() -} - -func (a TestingAppDecorator) GetIBCKeeper() *ibckeeper.Keeper { - return a.TestSupport().IBCKeeper() -} - -func (a TestingAppDecorator) GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper { - return a.TestSupport().ScopeIBCKeeper() -} - -func (a TestingAppDecorator) GetTxConfig() client.TxConfig { - return a.TestSupport().GetTxConfig() -} - -func (a TestingAppDecorator) TestSupport() *composable.TestSupport { - return composable.NewTestSupport(a.t, a.ComposableApp) -} - -func (a TestingAppDecorator) GetWasmdKeeper() wasm.Keeper { - return a.TestSupport().WasmdKeeper() -} - -func (a TestingAppDecorator) GetWasmKeeper() wasm08.Keeper { - return a.TestSupport().Wasm08Keeper() -} diff --git a/app/ibctesting/chain_test.go b/app/ibctesting/chain_test.go new file mode 100644 index 000000000..6716cc885 --- /dev/null +++ b/app/ibctesting/chain_test.go @@ -0,0 +1,54 @@ +package ibctesting_test + +import ( + "testing" + + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + "github.com/notional-labs/composable/v6/app/ibctesting" + + "github.com/stretchr/testify/require" + + sdkmath "cosmossdk.io/math" + + "github.com/cosmos/cosmos-sdk/x/staking/types" +) + +func NewTransferPath(chainA, chainB *ibctesting.TestChain) *ibctesting.Path { + path := ibctesting.NewPath(chainA, chainB) + path.EndpointA.ChannelConfig.PortID = ibctesting.TransferPort + path.EndpointB.ChannelConfig.PortID = ibctesting.TransferPort + path.EndpointA.ChannelConfig.Version = transfertypes.Version + path.EndpointB.ChannelConfig.Version = transfertypes.Version + + return path +} + +func TestChangeValSet(t *testing.T) { + coord := ibctesting.NewCoordinator(t, 2) + chainA := coord.GetChain(ibctesting.GetChainID(1)) + chainB := coord.GetChain(ibctesting.GetChainID(2)) + + path := NewTransferPath(chainA, chainB) + coord.Setup(path) + + amount, ok := sdkmath.NewIntFromString("10000000000000000000") + require.True(t, ok) + amount2, ok := sdkmath.NewIntFromString("30000000000000000000") + require.True(t, ok) + + val, err := chainA.App.GetStakingKeeper().GetValidators(chainA.GetContext(), 4) + require.NoError(t, err) + + chainA.App.GetStakingKeeper().Delegate(chainA.GetContext(), chainA.SenderAccounts[1].SenderAccount.GetAddress(), //nolint:errcheck // ignore error for test + amount, types.Unbonded, val[1], true) + chainA.App.GetStakingKeeper().Delegate(chainA.GetContext(), chainA.SenderAccounts[3].SenderAccount.GetAddress(), //nolint:errcheck // ignore error for test + amount2, types.Unbonded, val[3], true) + + coord.CommitBlock(chainA) + + // verify that update clients works even after validator update goes into effect + err = path.EndpointB.UpdateClient() + require.NoError(t, err) + err = path.EndpointB.UpdateClient() + require.Error(t, err) +} diff --git a/app/ibctesting/config.go b/app/ibctesting/config.go index 4967160ca..4c1cba800 100644 --- a/app/ibctesting/config.go +++ b/app/ibctesting/config.go @@ -3,11 +3,11 @@ package ibctesting import ( "time" - connectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - "github.com/cosmos/ibc-go/v7/modules/core/exported" - ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" - "github.com/cosmos/ibc-go/v7/testing/mock" + connectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + "github.com/cosmos/ibc-go/v8/modules/core/exported" + ibctm "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint" + "github.com/cosmos/ibc-go/v8/testing/mock" ) type ClientConfig interface { @@ -19,23 +19,18 @@ type TendermintConfig struct { TrustingPeriod time.Duration UnbondingPeriod time.Duration MaxClockDrift time.Duration - IsWasmClient bool } -func NewTendermintConfig(isWasmClient bool) *TendermintConfig { +func NewTendermintConfig() *TendermintConfig { return &TendermintConfig{ TrustLevel: DefaultTrustLevel, TrustingPeriod: TrustingPeriod, UnbondingPeriod: UnbondingPeriod, MaxClockDrift: MaxClockDrift, - IsWasmClient: isWasmClient, } } -func (tmcfg *TendermintConfig) GetClientType() string { - if tmcfg.IsWasmClient { - return exported.Wasm - } +func (*TendermintConfig) GetClientType() string { return exported.Tendermint } @@ -52,9 +47,10 @@ func NewConnectionConfig() *ConnectionConfig { } type ChannelConfig struct { - PortID string - Version string - Order channeltypes.Order + PortID string + Version string + Order channeltypes.Order + ProposedUpgrade channeltypes.Upgrade } func NewChannelConfig() *ChannelConfig { diff --git a/app/ibctesting/coordinator.go b/app/ibctesting/coordinator.go index 4e6bebb29..fc91cad95 100644 --- a/app/ibctesting/coordinator.go +++ b/app/ibctesting/coordinator.go @@ -6,10 +6,9 @@ import ( "testing" "time" - abci "github.com/cometbft/cometbft/abci/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - host "github.com/cosmos/ibc-go/v7/modules/core/24-host" - ibctesting "github.com/cosmos/ibc-go/v7/testing" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + host "github.com/cosmos/ibc-go/v8/modules/core/24-host" + ibctesting "github.com/cosmos/ibc-go/v8/testing" "github.com/stretchr/testify/require" ) @@ -39,9 +38,9 @@ func NewCoordinator(t *testing.T, n int) *Coordinator { CurrentTime: globalStartTime, } - for i := 0; i < n; i++ { + for i := 1; i <= n; i++ { chainID := GetChainID(i) - chains[chainID] = NewTestChain(t, coord, chainID) + chains[chainID] = NewTestChain(t, coord, DefaultComposableAppFactory, chainID) } coord.Chains = chains @@ -73,7 +72,6 @@ func (coord *Coordinator) UpdateTime() { // UpdateTimeForChain updates the clock for a specific chain. func (coord *Coordinator) UpdateTimeForChain(chain *TestChain) { chain.CurrentHeader.Time = coord.CurrentTime.UTC() - chain.App.BeginBlock(abci.RequestBeginBlock{Header: chain.CurrentHeader}) } // Setup constructs a TM client, connection, and channel on both chains provided. It will @@ -187,7 +185,6 @@ func GetChainID(index int) string { // CONTRACT: the passed in list of indexes must not contain duplicates func (coord *Coordinator) CommitBlock(chains ...*TestChain) { for _, chain := range chains { - chain.App.Commit() chain.NextBlock() } coord.IncrementTime() @@ -196,8 +193,6 @@ func (coord *Coordinator) CommitBlock(chains ...*TestChain) { // CommitNBlocks commits n blocks to state and updates the block height by 1 for each commit. func (coord *Coordinator) CommitNBlocks(chain *TestChain, n uint64) { for i := uint64(0); i < n; i++ { - chain.App.BeginBlock(abci.RequestBeginBlock{Header: chain.CurrentHeader}) - chain.App.Commit() chain.NextBlock() coord.IncrementTime() } diff --git a/app/ibctesting/endpoint.go b/app/ibctesting/endpoint.go index 633dc7b2a..54a20bd04 100644 --- a/app/ibctesting/endpoint.go +++ b/app/ibctesting/endpoint.go @@ -2,18 +2,20 @@ package ibctesting import ( "fmt" - + "strings" + + abci "github.com/cometbft/cometbft/abci/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + connectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + commitmenttypes "github.com/cosmos/ibc-go/v8/modules/core/23-commitment/types" + host "github.com/cosmos/ibc-go/v8/modules/core/24-host" + "github.com/cosmos/ibc-go/v8/modules/core/exported" + ibctm "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint" + ibctesting "github.com/cosmos/ibc-go/v8/testing" "github.com/stretchr/testify/require" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - connectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types" - host "github.com/cosmos/ibc-go/v7/modules/core/24-host" - "github.com/cosmos/ibc-go/v7/modules/core/exported" - ibctmtypes "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" - wasmtypes "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/types" - ibctesting "github.com/cosmos/ibc-go/v7/testing" + "github.com/cosmos/cosmos-sdk/baseapp" ) // Endpoint is a which represents a channel endpoint and its associated @@ -32,6 +34,31 @@ type Endpoint struct { ChannelConfig *ibctesting.ChannelConfig } +// NewEndpoint constructs a new endpoint without the counterparty. +// CONTRACT: the counterparty endpoint must be set by the caller. +func NewEndpoint( + chain *TestChain, clientConfig ibctesting.ClientConfig, + connectionConfig *ibctesting.ConnectionConfig, channelConfig *ibctesting.ChannelConfig, +) *Endpoint { + return &Endpoint{ + Chain: chain, + ClientConfig: clientConfig, + ConnectionConfig: connectionConfig, + ChannelConfig: channelConfig, + } +} + +// NewDefaultEndpoint constructs a new endpoint using default values. +// CONTRACT: the counterparty endpoitn must be set by the caller. +func NewDefaultEndpoint(chain *TestChain) *Endpoint { + return &Endpoint{ + Chain: chain, + ClientConfig: ibctesting.NewTendermintConfig(), + ConnectionConfig: ibctesting.NewConnectionConfig(), + ChannelConfig: ibctesting.NewChannelConfig(), + } +} + // QueryProof queries proof associated with this endpoint using the lastest client state // height on the counterparty chain. func (endpoint *Endpoint) QueryProof(key []byte) ([]byte, clienttypes.Height) { @@ -43,7 +70,7 @@ func (endpoint *Endpoint) QueryProof(key []byte) ([]byte, clienttypes.Height) { } // QueryProofAtHeight queries proof associated with this endpoint using the proof height -// providied +// provided func (endpoint *Endpoint) QueryProofAtHeight(key []byte, height uint64) ([]byte, clienttypes.Height) { // query proof on the counterparty using the latest height of the IBC client return endpoint.Chain.QueryProofAtHeight(key, int64(height)) @@ -67,39 +94,16 @@ func (endpoint *Endpoint) CreateClient() (err error) { require.True(endpoint.Chain.t, ok) height := endpoint.Counterparty.Chain.LastHeader.GetHeight().(clienttypes.Height) - clientState = ibctmtypes.NewClientState( + clientState = ibctm.NewClientState( endpoint.Counterparty.Chain.ChainID, tmConfig.TrustLevel, tmConfig.TrustingPeriod, tmConfig.UnbondingPeriod, tmConfig.MaxClockDrift, - height, commitmenttypes.GetSDKSpecs(), ibctesting.UpgradePath, - ) + height, commitmenttypes.GetSDKSpecs(), ibctesting.UpgradePath) consensusState = endpoint.Counterparty.Chain.LastHeader.ConsensusState() case exported.Solomachine: // TODO // solo := NewSolomachine(chain.t, endpoint.Chain.Codec, clientID, "", 1) // clientState = solo.ClientState() // consensusState = solo.ConsensusState() - case exported.Wasm: - tmConfig, ok := endpoint.ClientConfig.(*ibctesting.TendermintConfig) - require.True(endpoint.Chain.t, ok) - height := endpoint.Counterparty.Chain.LastHeader.GetHeight().(clienttypes.Height) - tmClientState := ibctmtypes.NewClientState( - endpoint.Counterparty.Chain.ChainID, tmConfig.TrustLevel, tmConfig.TrustingPeriod, tmConfig.UnbondingPeriod, tmConfig.MaxClockDrift, - height, commitmenttypes.GetSDKSpecs(), UpgradePath) - tmConsensusState := endpoint.Counterparty.Chain.LastHeader.ConsensusState() - wasmClientState, err := endpoint.Chain.Codec.MarshalInterface(tmClientState) - if err != nil { - return err - } - clientState = wasmtypes.NewClientState(wasmClientState, endpoint.Chain.Coordinator.CodeID, height) - - wasmConsensusState, err := endpoint.Chain.Codec.MarshalInterface(tmConsensusState) - if err != nil { - return err - } - consensusState = &wasmtypes.ConsensusState{ - Data: wasmConsensusState, - Timestamp: tmConsensusState.GetTimestamp(), - } default: err = fmt.Errorf("client type %s is not supported", endpoint.ClientConfig.GetClientType()) } @@ -118,7 +122,7 @@ func (endpoint *Endpoint) CreateClient() (err error) { return err } - endpoint.ClientID, err = ibctesting.ParseClientIDFromEvents(res.GetEvents()) + endpoint.ClientID, err = ParseClientIDFromEvents(res.GetEvents()) require.NoError(endpoint.Chain.t, err) return nil @@ -134,8 +138,7 @@ func (endpoint *Endpoint) UpdateClient() (err error) { switch endpoint.ClientConfig.GetClientType() { case exported.Tendermint: header, err = endpoint.Chain.ConstructUpdateTMClientHeader(endpoint.Counterparty.Chain, endpoint.ClientID) - case exported.Wasm: - header, err = endpoint.Chain.ConstructUpdateWasmClientHeader(endpoint.Counterparty.Chain, endpoint.ClientID) + default: err = fmt.Errorf("client type %s is not supported", endpoint.ClientConfig.GetClientType()) } @@ -153,6 +156,56 @@ func (endpoint *Endpoint) UpdateClient() (err error) { return endpoint.Chain.sendMsgs(msg) } +// UpgradeChain will upgrade a chain's chainID to the next revision number. +// It will also update the counterparty client. +// TODO: implement actual upgrade chain functionality via scheduling an upgrade +// and upgrading the client via MsgUpgradeClient +// see reference https://github.com/cosmos/ibc-go/pull/1169 +func (endpoint *Endpoint) UpgradeChain() error { + if strings.TrimSpace(endpoint.Counterparty.ClientID) == "" { + return fmt.Errorf("cannot upgrade chain if there is no counterparty client") + } + + clientState := endpoint.Counterparty.GetClientState().(*ibctm.ClientState) + + // increment revision number in chainID + + oldChainID := clientState.ChainId + if !clienttypes.IsRevisionFormat(oldChainID) { + return fmt.Errorf("cannot upgrade chain which is not of revision format: %s", oldChainID) + } + + revisionNumber := clienttypes.ParseChainID(oldChainID) + newChainID, err := clienttypes.SetRevisionNumber(oldChainID, revisionNumber+1) + if err != nil { + return err + } + + // update chain + baseapp.SetChainID(newChainID)(endpoint.Chain.App.GetBaseApp()) + endpoint.Chain.ChainID = newChainID + endpoint.Chain.CurrentHeader.ChainID = newChainID + endpoint.Chain.Coordinator.CommitBlock(endpoint.Chain) + + // update counterparty client manually + clientState.ChainId = newChainID + clientState.LatestHeight = clienttypes.NewHeight(revisionNumber+1, clientState.LatestHeight.GetRevisionHeight()+1) + endpoint.Counterparty.SetClientState(clientState) + + consensusState := &ibctm.ConsensusState{ + Timestamp: endpoint.Chain.LastHeader.GetTime(), + Root: commitmenttypes.NewMerkleRoot(endpoint.Chain.LastHeader.Header.GetAppHash()), + NextValidatorsHash: endpoint.Chain.LastHeader.Header.NextValidatorsHash, + } + endpoint.Counterparty.SetConsensusState(consensusState, clientState.GetLatestHeight()) + + // ensure the next update isn't identical to the one set in state + endpoint.Chain.Coordinator.IncrementTime() + endpoint.Chain.Coordinator.CommitBlock(endpoint.Chain) + + return endpoint.Counterparty.UpdateClient() +} + // ConnOpenInit will construct and execute a MsgConnectionOpenInit on the associated endpoint. func (endpoint *Endpoint) ConnOpenInit() error { msg := connectiontypes.NewMsgConnectionOpenInit( @@ -166,7 +219,7 @@ func (endpoint *Endpoint) ConnOpenInit() error { return err } - endpoint.ConnectionID, err = ibctesting.ParseConnectionIDFromEvents(res.GetEvents()) + endpoint.ConnectionID, err = ParseConnectionIDFromEvents(res.GetEvents()) require.NoError(endpoint.Chain.t, err) return nil @@ -174,9 +227,8 @@ func (endpoint *Endpoint) ConnOpenInit() error { // ConnOpenTry will construct and execute a MsgConnectionOpenTry on the associated endpoint. func (endpoint *Endpoint) ConnOpenTry() error { - if err := endpoint.UpdateClient(); err != nil { - return err - } + err := endpoint.UpdateClient() + require.NoError(endpoint.Chain.t, err) counterpartyClient, proofClient, proofConsensus, consensusHeight, proofInit, proofHeight := endpoint.QueryConnectionHandshakeProof() @@ -193,7 +245,7 @@ func (endpoint *Endpoint) ConnOpenTry() error { } if endpoint.ConnectionID == "" { - endpoint.ConnectionID, err = ibctesting.ParseConnectionIDFromEvents(res.GetEvents()) + endpoint.ConnectionID, err = ParseConnectionIDFromEvents(res.GetEvents()) require.NoError(endpoint.Chain.t, err) } @@ -202,9 +254,8 @@ func (endpoint *Endpoint) ConnOpenTry() error { // ConnOpenAck will construct and execute a MsgConnectionOpenAck on the associated endpoint. func (endpoint *Endpoint) ConnOpenAck() error { - if err := endpoint.UpdateClient(); err != nil { - return err - } + err := endpoint.UpdateClient() + require.NoError(endpoint.Chain.t, err) counterpartyClient, proofClient, proofConsensus, consensusHeight, proofTry, proofHeight := endpoint.QueryConnectionHandshakeProof() @@ -220,9 +271,8 @@ func (endpoint *Endpoint) ConnOpenAck() error { // ConnOpenConfirm will construct and execute a MsgConnectionOpenConfirm on the associated endpoint. func (endpoint *Endpoint) ConnOpenConfirm() error { - if err := endpoint.UpdateClient(); err != nil { - return err - } + err := endpoint.UpdateClient() + require.NoError(endpoint.Chain.t, err) connectionKey := host.ConnectionKey(endpoint.Counterparty.ConnectionID) proof, height := endpoint.Counterparty.Chain.QueryProof(connectionKey) @@ -277,17 +327,20 @@ func (endpoint *Endpoint) ChanOpenInit() error { return err } - endpoint.ChannelID, err = ibctesting.ParseChannelIDFromEvents(res.GetEvents()) + endpoint.ChannelID, err = ParseChannelIDFromEvents(res.GetEvents()) require.NoError(endpoint.Chain.t, err) + // update version to selected app version + // NOTE: this update must be performed after SendMsgs() + endpoint.ChannelConfig.Version = endpoint.GetChannel().Version + return nil } // ChanOpenTry will construct and execute a MsgChannelOpenTry on the associated endpoint. func (endpoint *Endpoint) ChanOpenTry() error { - if err := endpoint.UpdateClient(); err != nil { - return err - } + err := endpoint.UpdateClient() + require.NoError(endpoint.Chain.t, err) channelKey := host.ChannelKey(endpoint.Counterparty.ChannelConfig.PortID, endpoint.Counterparty.ChannelID) proof, height := endpoint.Counterparty.Chain.QueryProof(channelKey) @@ -305,18 +358,21 @@ func (endpoint *Endpoint) ChanOpenTry() error { } if endpoint.ChannelID == "" { - endpoint.ChannelID, err = ibctesting.ParseChannelIDFromEvents(res.GetEvents()) + endpoint.ChannelID, err = ParseChannelIDFromEvents(res.GetEvents()) require.NoError(endpoint.Chain.t, err) } + // update version to selected app version + // NOTE: this update must be performed after the endpoint channelID is set + endpoint.ChannelConfig.Version = endpoint.GetChannel().Version + return nil } // ChanOpenAck will construct and execute a MsgChannelOpenAck on the associated endpoint. func (endpoint *Endpoint) ChanOpenAck() error { - if err := endpoint.UpdateClient(); err != nil { - return err - } + err := endpoint.UpdateClient() + require.NoError(endpoint.Chain.t, err) channelKey := host.ChannelKey(endpoint.Counterparty.ChannelConfig.PortID, endpoint.Counterparty.ChannelID) proof, height := endpoint.Counterparty.Chain.QueryProof(channelKey) @@ -327,14 +383,18 @@ func (endpoint *Endpoint) ChanOpenAck() error { proof, height, endpoint.Chain.SenderAccount.GetAddress().String(), ) - return endpoint.Chain.sendMsgs(msg) + if err := endpoint.Chain.sendMsgs(msg); err != nil { + return err + } + + endpoint.ChannelConfig.Version = endpoint.GetChannel().Version + return nil } // ChanOpenConfirm will construct and execute a MsgChannelOpenConfirm on the associated endpoint. func (endpoint *Endpoint) ChanOpenConfirm() error { - if err := endpoint.UpdateClient(); err != nil { - return err - } + err := endpoint.UpdateClient() + require.NoError(endpoint.Chain.t, err) channelKey := host.ChannelKey(endpoint.Counterparty.ChannelConfig.PortID, endpoint.Counterparty.ChannelID) proof, height := endpoint.Counterparty.Chain.QueryProof(channelKey) @@ -371,9 +431,48 @@ func (endpoint *Endpoint) ChanCloseConfirm() error { return endpoint.Chain.sendMsgs(msg) } +// SendPacket sends a packet through the channel keeper using the associated endpoint +// The counterparty client is updated so proofs can be sent to the counterparty chain. +// The packet sequence generated for the packet to be sent is returned. An error +// is returned if one occurs. +func (endpoint *Endpoint) SendPacket( + timeoutHeight clienttypes.Height, + timeoutTimestamp uint64, + data []byte, +) (uint64, error) { + channelCap := endpoint.Chain.GetChannelCapability(endpoint.ChannelConfig.PortID, endpoint.ChannelID) + + // no need to send message, acting as a module + sequence, err := endpoint.Chain.App.GetIBCKeeper().ChannelKeeper.SendPacket(endpoint.Chain.GetContext(), channelCap, endpoint.ChannelConfig.PortID, endpoint.ChannelID, timeoutHeight, timeoutTimestamp, data) + if err != nil { + return 0, err + } + + // commit changes since no message was sent + endpoint.Chain.Coordinator.CommitBlock(endpoint.Chain) + + err = endpoint.Counterparty.UpdateClient() + if err != nil { + return 0, err + } + + return sequence, nil +} + // RecvPacket receives a packet on the associated endpoint. // The counterparty client is updated. func (endpoint *Endpoint) RecvPacket(packet channeltypes.Packet) error { + _, err := endpoint.RecvPacketWithResult(packet) + if err != nil { + return err + } + + return nil +} + +// RecvPacketWithResult receives a packet on the associated endpoint and the result +// of the transaction is returned. The counterparty client is updated. +func (endpoint *Endpoint) RecvPacketWithResult(packet channeltypes.Packet) (*abci.ExecTxResult, error) { // get proof of packet commitment on source packetKey := host.PacketCommitmentKey(packet.GetSourcePort(), packet.GetSourceChannel(), packet.GetSequence()) proof, proofHeight := endpoint.Counterparty.Chain.QueryProof(packetKey) @@ -381,10 +480,32 @@ func (endpoint *Endpoint) RecvPacket(packet channeltypes.Packet) error { recvMsg := channeltypes.NewMsgRecvPacket(packet, proof, proofHeight, endpoint.Chain.SenderAccount.GetAddress().String()) // receive on counterparty and update source client - if err := endpoint.Chain.sendMsgs(recvMsg); err != nil { + res, err := endpoint.Chain.SendMsgs(recvMsg) + if err != nil { + return nil, err + } + + if err := endpoint.Counterparty.UpdateClient(); err != nil { + return nil, err + } + + return res, nil +} + +// WriteAcknowledgement writes an acknowledgement on the channel associated with the endpoint. +// The counterparty client is updated. +func (endpoint *Endpoint) WriteAcknowledgement(ack exported.Acknowledgement, packet exported.PacketI) error { + channelCap := endpoint.Chain.GetChannelCapability(packet.GetDestPort(), packet.GetDestChannel()) + + // no need to send message, acting as a handler + err := endpoint.Chain.App.GetIBCKeeper().ChannelKeeper.WriteAcknowledgement(endpoint.Chain.GetContext(), channelCap, packet, ack) + if err != nil { return err } + // commit changes since no message was sent + endpoint.Chain.Coordinator.CommitBlock(endpoint.Chain) + return endpoint.Counterparty.UpdateClient() } @@ -424,3 +545,110 @@ func (endpoint *Endpoint) TimeoutPacket(packet channeltypes.Packet) error { return endpoint.Chain.sendMsgs(timeoutMsg) } + +// TimeoutOnClose sends a MsgTimeoutOnClose to the channel associated with the endpoint. +func (endpoint *Endpoint) TimeoutOnClose(packet channeltypes.Packet) error { + // get proof for timeout based on channel order + var packetKey []byte + + switch endpoint.ChannelConfig.Order { + case channeltypes.ORDERED: + packetKey = host.NextSequenceRecvKey(packet.GetDestPort(), packet.GetDestChannel()) + case channeltypes.UNORDERED: + packetKey = host.PacketReceiptKey(packet.GetDestPort(), packet.GetDestChannel(), packet.GetSequence()) + default: + return fmt.Errorf("unsupported order type %s", endpoint.ChannelConfig.Order) + } + + proof, proofHeight := endpoint.Counterparty.QueryProof(packetKey) + + channelKey := host.ChannelKey(packet.GetDestPort(), packet.GetDestChannel()) + proofClosed, _ := endpoint.Counterparty.QueryProof(channelKey) + + nextSeqRecv, found := endpoint.Counterparty.Chain.App.GetIBCKeeper().ChannelKeeper.GetNextSequenceRecv(endpoint.Counterparty.Chain.GetContext(), endpoint.ChannelConfig.PortID, endpoint.ChannelID) + require.True(endpoint.Chain.t, found) + + timeoutOnCloseMsg := channeltypes.NewMsgTimeoutOnClose( + packet, nextSeqRecv, + proof, proofClosed, proofHeight, endpoint.Chain.SenderAccount.GetAddress().String(), + ) + + return endpoint.Chain.sendMsgs(timeoutOnCloseMsg) +} + +// SetChannelClosed sets a channel state to CLOSED. +func (endpoint *Endpoint) SetChannelClosed() error { + channel := endpoint.GetChannel() + + channel.State = channeltypes.CLOSED + endpoint.Chain.App.GetIBCKeeper().ChannelKeeper.SetChannel(endpoint.Chain.GetContext(), endpoint.ChannelConfig.PortID, endpoint.ChannelID, channel) + + endpoint.Chain.Coordinator.CommitBlock(endpoint.Chain) + + return endpoint.Counterparty.UpdateClient() +} + +// GetClientState retrieves the Client State for this endpoint. The +// client state is expected to exist otherwise testing will fail. +func (endpoint *Endpoint) GetClientState() exported.ClientState { + return endpoint.Chain.GetClientState(endpoint.ClientID) +} + +// SetClientState sets the client state for this endpoint. +func (endpoint *Endpoint) SetClientState(clientState exported.ClientState) { + endpoint.Chain.App.GetIBCKeeper().ClientKeeper.SetClientState(endpoint.Chain.GetContext(), endpoint.ClientID, clientState) +} + +// GetConsensusState retrieves the Consensus State for this endpoint at the provided height. +// The consensus state is expected to exist otherwise testing will fail. +func (endpoint *Endpoint) GetConsensusState(height exported.Height) exported.ConsensusState { + consensusState, found := endpoint.Chain.GetConsensusState(endpoint.ClientID, height) + require.True(endpoint.Chain.t, found) + + return consensusState +} + +// SetConsensusState sets the consensus state for this endpoint. +func (endpoint *Endpoint) SetConsensusState(consensusState exported.ConsensusState, height exported.Height) { + endpoint.Chain.App.GetIBCKeeper().ClientKeeper.SetClientConsensusState(endpoint.Chain.GetContext(), endpoint.ClientID, height, consensusState) +} + +// GetConnection retrieves an IBC Connection for the endpoint. The +// connection is expected to exist otherwise testing will fail. +func (endpoint *Endpoint) GetConnection() connectiontypes.ConnectionEnd { + connection, found := endpoint.Chain.App.GetIBCKeeper().ConnectionKeeper.GetConnection(endpoint.Chain.GetContext(), endpoint.ConnectionID) + require.True(endpoint.Chain.t, found) + + return connection +} + +// SetConnection sets the connection for this endpoint. +func (endpoint *Endpoint) SetConnection(connection connectiontypes.ConnectionEnd) { + endpoint.Chain.App.GetIBCKeeper().ConnectionKeeper.SetConnection(endpoint.Chain.GetContext(), endpoint.ConnectionID, connection) +} + +// GetChannel retrieves an IBC Channel for the endpoint. The channel +// is expected to exist otherwise testing will fail. +func (endpoint *Endpoint) GetChannel() channeltypes.Channel { + channel, found := endpoint.Chain.App.GetIBCKeeper().ChannelKeeper.GetChannel(endpoint.Chain.GetContext(), endpoint.ChannelConfig.PortID, endpoint.ChannelID) + require.True(endpoint.Chain.t, found) + + return channel +} + +// SetChannel sets the channel for this endpoint. +func (endpoint *Endpoint) SetChannel(channel channeltypes.Channel) { + endpoint.Chain.App.GetIBCKeeper().ChannelKeeper.SetChannel(endpoint.Chain.GetContext(), endpoint.ChannelConfig.PortID, endpoint.ChannelID, channel) +} + +// QueryClientStateProof performs and abci query for a client stat associated +// with this endpoint and returns the ClientState along with the proof. +func (endpoint *Endpoint) QueryClientStateProof() (exported.ClientState, []byte) { + // retrieve client state to provide proof for + clientState := endpoint.GetClientState() + + clientKey := host.FullClientStateKey(endpoint.ClientID) + proofClient, _ := endpoint.QueryProof(clientKey) + + return clientState, proofClient +} diff --git a/app/ibctesting/event_utils.go b/app/ibctesting/event_utils.go index 8b6ed2981..5432ac9a4 100644 --- a/app/ibctesting/event_utils.go +++ b/app/ibctesting/event_utils.go @@ -1,27 +1,19 @@ package ibctesting import ( + "encoding/hex" "fmt" "strconv" "strings" + connectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types" + abci "github.com/cometbft/cometbft/abci/types" sdk "github.com/cosmos/cosmos-sdk/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" ) -func getSendPackets(evts []abci.Event) []channeltypes.Packet { - var res []channeltypes.Packet - for _, evt := range evts { - if evt.Type == "send_packet" { - packet := parsePacketFromEvent(evt) - res = append(res, packet) - } - } - return res -} - func getAckPackets(evts []abci.Event) []PacketAck { var res []PacketAck for _, evt := range evts { @@ -66,7 +58,7 @@ func ParsePacketFromEvents(events sdk.Events) (channeltypes.Packet, error) { packet := channeltypes.Packet{} for _, attr := range ev.Attributes { switch attr.Key { - case channeltypes.AttributeKeyData: //nolint: staticcheck + case channeltypes.AttributeKeyData: packet.Data = []byte(attr.Value) case channeltypes.AttributeKeySequence: @@ -149,3 +141,112 @@ func parseTimeoutHeight(raw string) clienttypes.Height { RevisionHeight: toUint64(chunks[1]), } } + +// ParseAckFromEvents parses events emitted from a MsgRecvPacket and returns the +// acknowledgement. +func ParseAckFromEvents(events []abci.Event) ([]byte, error) { + for _, ev := range events { + if ev.Type == channeltypes.EventTypeWriteAck { + for _, attr := range ev.Attributes { + if attr.Key == channeltypes.AttributeKeyAckHex { + bz, err := hex.DecodeString(attr.Value) + if err != nil { + panic(err) + } + return bz, nil + } + } + } + } + return nil, fmt.Errorf("acknowledgement event attribute not found") +} + +// ParseClientIDFromEvents parses events emitted from a MsgCreateClient and returns the +// client identifier. +func ParseClientIDFromEvents(events []abci.Event) (string, error) { + for _, ev := range events { + if ev.Type == clienttypes.EventTypeCreateClient { + for _, attr := range ev.Attributes { + if attr.Key == clienttypes.AttributeKeyClientID { + return attr.Value, nil + } + } + } + } + return "", fmt.Errorf("client identifier event attribute not found") +} + +// ParseConnectionIDFromEvents parses events emitted from a MsgConnectionOpenInit or +// MsgConnectionOpenTry and returns the connection identifier. +func ParseConnectionIDFromEvents(events []abci.Event) (string, error) { + for _, ev := range events { + if ev.Type == connectiontypes.EventTypeConnectionOpenInit || + ev.Type == connectiontypes.EventTypeConnectionOpenTry { + for _, attr := range ev.Attributes { + if attr.Key == connectiontypes.AttributeKeyConnectionID { + return attr.Value, nil + } + } + } + } + return "", fmt.Errorf("connection identifier event attribute not found") +} + +func GetSendPackets(evts []abci.Event) []channeltypes.Packet { + var res []channeltypes.Packet + for _, evt := range evts { + if evt.Type == channeltypes.EventTypeSendPacket { + packet := ParsePacketFromEvent(evt) + res = append(res, packet) + } + } + return res +} + +// Used for various debug statements above when needed... do not remove +// func showEvent(evt abci.Event) { +// fmt.Printf("evt.Type: %s\n", evt.Type) +// for _, attr := range evt.Attributes { +// fmt.Printf(" %s = %s\n", string(attr.Key), string(attr.Value)) +// } +//} + +func ParsePacketFromEvent(evt abci.Event) channeltypes.Packet { + return channeltypes.Packet{ + Sequence: getUintField(evt, channeltypes.AttributeKeySequence), + SourcePort: getField(evt, channeltypes.AttributeKeySrcPort), + SourceChannel: getField(evt, channeltypes.AttributeKeySrcChannel), + DestinationPort: getField(evt, channeltypes.AttributeKeyDstPort), + DestinationChannel: getField(evt, channeltypes.AttributeKeyDstChannel), + Data: getHexField(evt, channeltypes.AttributeKeyDataHex), + TimeoutHeight: parseTimeoutHeight(getField(evt, channeltypes.AttributeKeyTimeoutHeight)), + TimeoutTimestamp: getUintField(evt, channeltypes.AttributeKeyTimeoutTimestamp), + } +} + +func getHexField(evt abci.Event, key string) []byte { + got := getField(evt, key) + if got == "" { + return nil + } + bz, err := hex.DecodeString(got) + if err != nil { + panic(err) + } + return bz +} + +// ParseChannelIDFromEvents parses events emitted from a MsgChannelOpenInit or +// MsgChannelOpenTry and returns the channel identifier. +func ParseChannelIDFromEvents(events []abci.Event) (string, error) { + for _, ev := range events { + if ev.Type == channeltypes.EventTypeChannelOpenInit || ev.Type == channeltypes.EventTypeChannelOpenTry { + for _, attr := range ev.Attributes { + if attr.Key == channeltypes.AttributeKeyChannelID { + return attr.Value, nil + } + } + } + } + return "", fmt.Errorf("channel identifier event attribute not found") +} diff --git a/app/ibctesting/helper.go b/app/ibctesting/helper.go new file mode 100644 index 000000000..f875b9a0e --- /dev/null +++ b/app/ibctesting/helper.go @@ -0,0 +1,16 @@ +package ibctesting + +import ( + "testing" + + tmtypes "github.com/cometbft/cometbft/types" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/notional-labs/composable/v6/app" +) + +// DefaultComposableAppFactory instantiates and sets up the default Composable App +func DefaultComposableAppFactory(t *testing.T, valSet *tmtypes.ValidatorSet, genAccs []authtypes.GenesisAccount, chainID string, balances ...banktypes.Balance) ChainApp { + t.Helper() + return app.SetupWithGenesisValSet(t, valSet, genAccs, chainID, balances...) +} diff --git a/app/ibctesting/path.go b/app/ibctesting/path.go index 1d1eb3324..0bc494305 100644 --- a/app/ibctesting/path.go +++ b/app/ibctesting/path.go @@ -1,7 +1,12 @@ package ibctesting import ( - ibctesting "github.com/cosmos/ibc-go/v7/testing" + "bytes" + "fmt" + + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + + sdk "github.com/cosmos/cosmos-sdk/types" ) // Path contains two endpoints representing two chains connected over IBC @@ -26,13 +31,79 @@ func NewPath(chainA, chainB *TestChain) *Path { } } -// NewDefaultEndpoint constructs a new endpoint using default values. -// CONTRACT: the counterparty endpoitn must be set by the caller. -func NewDefaultEndpoint(chain *TestChain) *Endpoint { - return &Endpoint{ - Chain: chain, - ClientConfig: ibctesting.NewTendermintConfig(chain.UseWasmClient), - ConnectionConfig: ibctesting.NewConnectionConfig(), - ChannelConfig: ibctesting.NewChannelConfig(), +// SetChannelOrdered sets the channel order for both endpoints to ORDERED. +func (path *Path) SetChannelOrdered() { + path.EndpointA.ChannelConfig.Order = channeltypes.ORDERED + path.EndpointB.ChannelConfig.Order = channeltypes.ORDERED +} + +// RelayPacket attempts to relay the packet first on EndpointA and then on EndpointB +// if EndpointA does not contain a packet commitment for that packet. An error is returned +// if a relay step fails or the packet commitment does not exist on either endpoint. +func (path *Path) RelayPacket(packet channeltypes.Packet, _ []byte) error { + pc := path.EndpointA.Chain.App.GetIBCKeeper().ChannelKeeper.GetPacketCommitment(path.EndpointA.Chain.GetContext(), packet.GetSourcePort(), packet.GetSourceChannel(), packet.GetSequence()) + if bytes.Equal(pc, channeltypes.CommitPacket(path.EndpointA.Chain.App.AppCodec(), packet)) { + + // packet found, relay from A to B + if err := path.EndpointB.UpdateClient(); err != nil { + return err + } + + res, err := path.EndpointB.RecvPacketWithResult(packet) + if err != nil { + return err + } + + ack, err := ParseAckFromEvents(res.GetEvents()) + if err != nil { + return err + } + + err = path.EndpointA.AcknowledgePacket(packet, ack) + + return err + } + + pc = path.EndpointB.Chain.App.GetIBCKeeper().ChannelKeeper.GetPacketCommitment(path.EndpointB.Chain.GetContext(), packet.GetSourcePort(), packet.GetSourceChannel(), packet.GetSequence()) + if bytes.Equal(pc, channeltypes.CommitPacket(path.EndpointB.Chain.App.AppCodec(), packet)) { + + // packet found, relay B to A + if err := path.EndpointA.UpdateClient(); err != nil { + return err + } + + res, err := path.EndpointA.RecvPacketWithResult(packet) + if err != nil { + return err + } + + ack, err := ParseAckFromEvents(res.GetEvents()) + if err != nil { + return err + } + + err = path.EndpointB.AcknowledgePacket(packet, ack) + return err + } + + return fmt.Errorf("packet commitment does not exist on either endpoint for provided packet") +} + +// SendMsg delivers the provided messages to the chain. The counterparty +// client is updated with the new source consensus state. +func (path *Path) SendMsg(msgs ...sdk.Msg) error { + if err := path.EndpointA.Chain.sendMsgs(msgs...); err != nil { + return err + } + if err := path.EndpointA.UpdateClient(); err != nil { + return err + } + return path.EndpointB.UpdateClient() +} + +func (path *Path) Invert() *Path { + return &Path{ + EndpointA: path.EndpointB, + EndpointB: path.EndpointA, } } diff --git a/app/ibctesting/simapp/README.md b/app/ibctesting/simapp/README.md deleted file mode 100644 index fc449f7f2..000000000 --- a/app/ibctesting/simapp/README.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -order: false ---- - -# simapp - -simapp is an application built using the Cosmos SDK for testing and educational purposes. - -## Running testnets with `simd` - -If you want to spin up a quick testnet with your friends, you can follow these steps. -Unless otherwise noted, every step must be done by everyone who wants to participate -in this testnet. - -1. `$ make build`. This will build the `simd` binary and install it in your Cosmos SDK repo, - inside a new `build` directory. The following instructions are run from inside - that directory. -2. If you've run `simd` before, you may need to reset your database before starting a new - testnet: `$ ./simd unsafe-reset-all` -3. `$ ./simd init [moniker]`. This will initialize a new working directory, by default at - `~/.simapp`. You need a provide a "moniker," but it doesn't matter what it is. -4. `$ ./simd keys add [key_name]`. This will create a new key, with a name of your choosing. - Save the output of this command somewhere; you'll need the address generated here later. -5. `$ ./simd add-genesis-account $(simd keys show [key_name] -a) [amount]`, where `key_name` - is the same key name as before; and `amount` is something like `10000000000000000000000000stake`. -6. `$ ./simd gentx [key_name] [amount] --chain-id [chain-id]`. This will create the - genesis transaction for your new chain. -7. Now, one person needs to create the genesis file `genesis.json` using the genesis transactions - from every participant, by gathering all the genesis transactions under `config/gentx` and then - calling `./simd collect-gentxs`. This will create a new `genesis.json` file that includes data - from all the validators (we sometimes call it the "super genesis file" to distinguish it from - single-validator genesis files). -8. Once you've received the super genesis file, overwrite your original `genesis.json` file with - the new super `genesis.json`. -9. Modify your `config/config.toml` (in the simapp working directory) to include the other participants as - persistent peers: - - ``` - # Comma separated list of nodes to keep persistent connections to - persistent_peers = "[validator address]@[ip address]:[port],[validator address]@[ip address]:[port]" - ``` - - You can find `validator address` by running `./simd tendermint show-node-id`. (It will be hex-encoded.) - By default, `port` is 26656. -10. Now you can start your nodes: `$ ./simd start`. - -Now you have a small testnet that you can use to try out changes to the Cosmos SDK or Tendermint! - -NOTE: Sometimes creating the network through the `collect-gentxs` will fail, and validators will start -in a funny state (and then panic). If this happens, you can try to create and start the network first -with a single validator and then add additional validators using a `create-validator` transaction. \ No newline at end of file diff --git a/app/ibctesting/simapp/ante_handler.go b/app/ibctesting/simapp/ante_handler.go deleted file mode 100644 index 44569e2e3..000000000 --- a/app/ibctesting/simapp/ante_handler.go +++ /dev/null @@ -1,49 +0,0 @@ -package simapp - -import ( - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/cosmos/cosmos-sdk/x/auth/ante" - - ibcante "github.com/cosmos/ibc-go/v7/modules/core/ante" - "github.com/cosmos/ibc-go/v7/modules/core/keeper" -) - -// HandlerOptions extend the SDK's AnteHandler options by requiring the IBC keeper. -type HandlerOptions struct { - ante.HandlerOptions - - IBCKeeper *keeper.Keeper -} - -// NewAnteHandler creates a new ante handler -func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error) { - if options.AccountKeeper == nil { - return nil, errors.Wrap(sdkerrors.ErrLogic, "account keeper is required for AnteHandler") - } - if options.BankKeeper == nil { - return nil, errors.Wrap(sdkerrors.ErrLogic, "bank keeper is required for AnteHandler") - } - if options.SignModeHandler == nil { - return nil, errors.Wrap(sdkerrors.ErrLogic, "sign mode handler is required for AnteHandler") - } - - anteDecorators := []sdk.AnteDecorator{ - ante.NewSetUpContextDecorator(), // outermost AnteDecorator. SetUpContext must be called first - ante.NewExtensionOptionsDecorator(options.ExtensionOptionChecker), - ante.NewValidateBasicDecorator(), - ante.NewTxTimeoutHeightDecorator(), - ante.NewValidateMemoDecorator(options.AccountKeeper), - ante.NewConsumeGasForTxSizeDecorator(options.AccountKeeper), - ante.NewDeductFeeDecorator(options.AccountKeeper, options.BankKeeper, options.FeegrantKeeper, options.TxFeeChecker), - ante.NewSetPubKeyDecorator(options.AccountKeeper), // SetPubKeyDecorator must be called before all signature verification decorators - ante.NewValidateSigCountDecorator(options.AccountKeeper), - ante.NewSigGasConsumeDecorator(options.AccountKeeper, options.SigGasConsumer), - ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler), - ante.NewIncrementSequenceDecorator(options.AccountKeeper), - ibcante.NewRedundantRelayDecorator(options.IBCKeeper), - } - - return sdk.ChainAnteDecorators(anteDecorators...), nil -} diff --git a/app/ibctesting/simapp/app.go b/app/ibctesting/simapp/app.go deleted file mode 100644 index 3a53b9e56..000000000 --- a/app/ibctesting/simapp/app.go +++ /dev/null @@ -1,1021 +0,0 @@ -package simapp - -import ( - "encoding/json" - "fmt" - "io" - "net/http" - "os" - "path/filepath" - - autocliv1 "cosmossdk.io/api/cosmos/autocli/v1" - reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1" - dbm "github.com/cometbft/cometbft-db" - abci "github.com/cometbft/cometbft/abci/types" - "github.com/cometbft/cometbft/libs/log" - tmos "github.com/cometbft/cometbft/libs/os" - "github.com/cosmos/cosmos-sdk/baseapp" - "github.com/cosmos/cosmos-sdk/client" - _ "github.com/cosmos/cosmos-sdk/client/docs/statik" // this is used for serving docs - nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node" - "github.com/cosmos/cosmos-sdk/client/grpc/tmservice" - "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/codec/types" - runtimeservices "github.com/cosmos/cosmos-sdk/runtime/services" - "github.com/cosmos/cosmos-sdk/server/api" - "github.com/cosmos/cosmos-sdk/server/config" - servertypes "github.com/cosmos/cosmos-sdk/server/types" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - "github.com/cosmos/cosmos-sdk/testutil/testdata" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - "github.com/cosmos/cosmos-sdk/version" - "github.com/cosmos/cosmos-sdk/x/auth" - "github.com/cosmos/cosmos-sdk/x/auth/ante" - authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" - authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation" - authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/cosmos/cosmos-sdk/x/auth/vesting" - vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" - authz "github.com/cosmos/cosmos-sdk/x/authz" - authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper" - authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" - "github.com/cosmos/cosmos-sdk/x/bank" - bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/cosmos/cosmos-sdk/x/capability" - capabilitykeeper "github.com/cosmos/cosmos-sdk/x/capability/keeper" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" - "github.com/cosmos/cosmos-sdk/x/consensus" - consensusparamkeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper" - consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types" - "github.com/cosmos/cosmos-sdk/x/crisis" - crisiskeeper "github.com/cosmos/cosmos-sdk/x/crisis/keeper" - crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" - distr "github.com/cosmos/cosmos-sdk/x/distribution" - distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper" - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - "github.com/cosmos/cosmos-sdk/x/evidence" - evidencekeeper "github.com/cosmos/cosmos-sdk/x/evidence/keeper" - evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" - "github.com/cosmos/cosmos-sdk/x/feegrant" - feegrantkeeper "github.com/cosmos/cosmos-sdk/x/feegrant/keeper" - feegrantmodule "github.com/cosmos/cosmos-sdk/x/feegrant/module" - "github.com/cosmos/cosmos-sdk/x/genutil" - genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" - "github.com/cosmos/cosmos-sdk/x/gov" - govclient "github.com/cosmos/cosmos-sdk/x/gov/client" - govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - "github.com/cosmos/cosmos-sdk/x/group" - groupkeeper "github.com/cosmos/cosmos-sdk/x/group/keeper" - groupmodule "github.com/cosmos/cosmos-sdk/x/group/module" - "github.com/cosmos/cosmos-sdk/x/params" - paramsclient "github.com/cosmos/cosmos-sdk/x/params/client" - paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper" - paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" - paramproposal "github.com/cosmos/cosmos-sdk/x/params/types/proposal" - "github.com/cosmos/cosmos-sdk/x/slashing" - slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - "github.com/cosmos/cosmos-sdk/x/staking" - stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/cosmos/cosmos-sdk/x/upgrade" - upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client" - upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - "github.com/gorilla/mux" - - // TODO: mint module not complete yet, - "github.com/notional-labs/composable/v6/x/mint" - mintkeeper "github.com/notional-labs/composable/v6/x/mint/keeper" - minttypes "github.com/notional-labs/composable/v6/x/mint/types" - - "github.com/rakyll/statik/fs" - "github.com/spf13/cast" - - ica "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts" - icacontroller "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller" - icacontrollerkeeper "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/keeper" - icacontrollertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types" - icahost "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host" - icahostkeeper "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/keeper" - icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types" - icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types" - ibcfee "github.com/cosmos/ibc-go/v7/modules/apps/29-fee" - ibcfeekeeper "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/keeper" - ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" - transfer "github.com/cosmos/ibc-go/v7/modules/apps/transfer" - ibctransferkeeper "github.com/cosmos/ibc-go/v7/modules/apps/transfer/keeper" - ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - ibc "github.com/cosmos/ibc-go/v7/modules/core" - ibcclient "github.com/cosmos/ibc-go/v7/modules/core/02-client" - ibcclientclient "github.com/cosmos/ibc-go/v7/modules/core/02-client/client" - ibcclienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" - ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" - ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" - solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine" - ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" - wasm08 "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/keeper" - ibcmock "github.com/cosmos/ibc-go/v7/testing/mock" - ibctestingtypes "github.com/cosmos/ibc-go/v7/testing/types" - - simappparams "github.com/notional-labs/composable/v6/app/ibctesting/simapp/params" - simappupgrades "github.com/notional-labs/composable/v6/app/ibctesting/simapp/upgrades" - v6 "github.com/notional-labs/composable/v6/app/ibctesting/simapp/upgrades/v6" - v7 "github.com/notional-labs/composable/v6/app/ibctesting/simapp/upgrades/v7" - ibctransfermiddleware "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/keeper" - ibctransfermiddlewaretypes "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/types" - transfermiddleware "github.com/notional-labs/composable/v6/x/transfermiddleware" - transfermiddlewarekeeper "github.com/notional-labs/composable/v6/x/transfermiddleware/keeper" - transfermiddlewaretypes "github.com/notional-labs/composable/v6/x/transfermiddleware/types" -) - -const appName = "SimApp" - -// IBC application testing ports -const ( - MockFeePort string = ibcmock.ModuleName + ibcfeetypes.ModuleName -) - -var ( - // DefaultNodeHome default home directories for the application daemon - DefaultNodeHome string - - // ModuleBasics defines the module BasicManager is in charge of setting up basic, - // non-dependant module elements, such as codec registration - // and genesis verification. - ModuleBasics = module.NewBasicManager( - auth.AppModuleBasic{}, - genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator), - bank.AppModuleBasic{}, - capability.AppModuleBasic{}, - staking.AppModuleBasic{}, - mint.AppModuleBasic{}, - distr.AppModuleBasic{}, - gov.NewAppModuleBasic( - []govclient.ProposalHandler{ - paramsclient.ProposalHandler, - upgradeclient.LegacyProposalHandler, - upgradeclient.LegacyCancelProposalHandler, - ibcclientclient.UpdateClientProposalHandler, - ibcclientclient.UpgradeProposalHandler, - }, - ), - groupmodule.AppModuleBasic{}, - params.AppModuleBasic{}, - crisis.AppModuleBasic{}, - slashing.AppModuleBasic{}, - ibc.AppModuleBasic{}, - ibctm.AppModuleBasic{}, - solomachine.AppModuleBasic{}, - feegrantmodule.AppModuleBasic{}, - upgrade.AppModuleBasic{}, - evidence.AppModuleBasic{}, - transfer.AppModuleBasic{}, - ibcmock.AppModuleBasic{}, - ica.AppModuleBasic{}, - authzmodule.AppModuleBasic{}, - vesting.AppModuleBasic{}, - ibcfee.AppModuleBasic{}, - consensus.AppModuleBasic{}, - ) - - // module account permissions - maccPerms = map[string][]string{ - authtypes.FeeCollectorName: nil, - distrtypes.ModuleName: nil, - minttypes.ModuleName: {authtypes.Minter}, - stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking}, - stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking}, - govtypes.ModuleName: {authtypes.Burner}, - ibctransfertypes.ModuleName: {authtypes.Minter, authtypes.Burner}, - ibcfeetypes.ModuleName: nil, - icatypes.ModuleName: nil, - ibcmock.ModuleName: nil, - } -) - -var ( - _ App = (*SimApp)(nil) - _ servertypes.Application = (*SimApp)(nil) -) - -// SimApp extends an ABCI application, but with most of its parameters exported. -// They are exported for convenience in creating helper functions, as object -// capabilities aren't needed for testing. -type SimApp struct { - *baseapp.BaseApp - legacyAmino *codec.LegacyAmino - appCodec codec.Codec - interfaceRegistry types.InterfaceRegistry - txConfig client.TxConfig - - invCheckPeriod uint - - // keys to access the substores - keys map[string]*storetypes.KVStoreKey - tkeys map[string]*storetypes.TransientStoreKey - memKeys map[string]*storetypes.MemoryStoreKey - - // keepers - AccountKeeper authkeeper.AccountKeeper - BankKeeper bankkeeper.Keeper - CapabilityKeeper *capabilitykeeper.Keeper - StakingKeeper *stakingkeeper.Keeper - SlashingKeeper slashingkeeper.Keeper - MintKeeper mintkeeper.Keeper - DistrKeeper distrkeeper.Keeper - GovKeeper govkeeper.Keeper - GroupKeeper groupkeeper.Keeper - CrisisKeeper *crisiskeeper.Keeper - UpgradeKeeper *upgradekeeper.Keeper - ParamsKeeper paramskeeper.Keeper - Wasm08Keeper wasm08.Keeper - AuthzKeeper authzkeeper.Keeper - IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly - IBCFeeKeeper ibcfeekeeper.Keeper - ICAControllerKeeper icacontrollerkeeper.Keeper - ICAHostKeeper icahostkeeper.Keeper - EvidenceKeeper evidencekeeper.Keeper - TransferKeeper ibctransferkeeper.Keeper - FeeGrantKeeper feegrantkeeper.Keeper - ConsensusParamsKeeper consensusparamkeeper.Keeper - - // make scoped keepers public for test purposes - ScopedIBCKeeper capabilitykeeper.ScopedKeeper - ScopedTransferKeeper capabilitykeeper.ScopedKeeper - ScopedFeeMockKeeper capabilitykeeper.ScopedKeeper - ScopedICAControllerKeeper capabilitykeeper.ScopedKeeper - ScopedICAHostKeeper capabilitykeeper.ScopedKeeper - ScopedIBCMockKeeper capabilitykeeper.ScopedKeeper - ScopedICAMockKeeper capabilitykeeper.ScopedKeeper - - // make IBC modules public for test purposes - // these modules are never directly routed to by the IBC Router - ICAAuthModule ibcmock.IBCModule - FeeMockModule ibcmock.IBCModule - - TransferMiddlewarekeeper transfermiddlewarekeeper.Keeper - IbcTransferMiddlewareKeeper ibctransfermiddleware.Keeper - - // the module manager - mm *module.Manager - - // simulation manager - sm *module.SimulationManager - - // the configurator - configurator module.Configurator -} - -func init() { - userHomeDir, err := os.UserHomeDir() - if err != nil { - panic(err) - } - - DefaultNodeHome = filepath.Join(userHomeDir, ".simapp") -} - -// 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, encodingConfig simappparams.EncodingConfig, - appOpts servertypes.AppOptions, baseAppOptions ...func(*baseapp.BaseApp), -) *SimApp { - appCodec := encodingConfig.Marshaler - legacyAmino := encodingConfig.Amino - interfaceRegistry := encodingConfig.InterfaceRegistry - - bApp := baseapp.NewBaseApp(appName, logger, db, encodingConfig.TxConfig.TxDecoder(), baseAppOptions...) - bApp.SetCommitMultiStoreTracer(traceStore) - bApp.SetVersion(version.Version) - bApp.SetInterfaceRegistry(interfaceRegistry) - - keys := sdk.NewKVStoreKeys( - authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey, crisistypes.StoreKey, - minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey, - govtypes.StoreKey, group.StoreKey, paramstypes.StoreKey, ibcexported.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey, - evidencetypes.StoreKey, ibctransfertypes.StoreKey, icacontrollertypes.StoreKey, icahosttypes.StoreKey, capabilitytypes.StoreKey, - authzkeeper.StoreKey, ibcfeetypes.StoreKey, consensusparamtypes.StoreKey, - ) - tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey) - memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey) - - app := &SimApp{ - BaseApp: bApp, - legacyAmino: legacyAmino, - appCodec: appCodec, - interfaceRegistry: interfaceRegistry, - invCheckPeriod: invCheckPeriod, - keys: keys, - tkeys: tkeys, - memKeys: memKeys, - txConfig: encodingConfig.TxConfig, - } - - app.ParamsKeeper = initParamsKeeper(appCodec, legacyAmino, keys[paramstypes.StoreKey], tkeys[paramstypes.TStoreKey]) - - // set the BaseApp's parameter store - app.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper(appCodec, keys[consensusparamtypes.StoreKey], authtypes.NewModuleAddress(govtypes.ModuleName).String()) - bApp.SetParamStore(&app.ConsensusParamsKeeper) - - // add capability keeper and ScopeToModule for ibc module - app.CapabilityKeeper = capabilitykeeper.NewKeeper(appCodec, keys[capabilitytypes.StoreKey], memKeys[capabilitytypes.MemStoreKey]) - scopedIBCKeeper := app.CapabilityKeeper.ScopeToModule(ibcexported.ModuleName) - scopedTransferKeeper := app.CapabilityKeeper.ScopeToModule(ibctransfertypes.ModuleName) - scopedICAControllerKeeper := app.CapabilityKeeper.ScopeToModule(icacontrollertypes.SubModuleName) - scopedICAHostKeeper := app.CapabilityKeeper.ScopeToModule(icahosttypes.SubModuleName) - - // NOTE: the IBC mock keeper and application module is used only for testing core IBC. Do - // not replicate if you do not need to test core IBC or light clients. - scopedIBCMockKeeper := app.CapabilityKeeper.ScopeToModule(ibcmock.ModuleName) - scopedFeeMockKeeper := app.CapabilityKeeper.ScopeToModule(MockFeePort) - scopedICAMockKeeper := app.CapabilityKeeper.ScopeToModule(ibcmock.ModuleName + icacontrollertypes.SubModuleName) - - // seal capability keeper after scoping modules - app.CapabilityKeeper.Seal() - - // SDK module keepers - - app.AccountKeeper = authkeeper.NewAccountKeeper(appCodec, keys[authtypes.StoreKey], authtypes.ProtoBaseAccount, maccPerms, sdk.GetConfig().GetBech32AccountAddrPrefix(), authtypes.NewModuleAddress(govtypes.ModuleName).String()) - - app.BankKeeper = bankkeeper.NewBaseKeeper( - appCodec, - keys[banktypes.StoreKey], - app.AccountKeeper, - BlockedAddresses(), - authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - // register the staking hooks - // NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks - app.StakingKeeper = stakingkeeper.NewKeeper( - appCodec, keys[stakingtypes.StoreKey], app.AccountKeeper, app.BankKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - app.MintKeeper = mintkeeper.NewKeeper( - appCodec, keys[minttypes.StoreKey], app.StakingKeeper, - app.AccountKeeper, app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - app.DistrKeeper = distrkeeper.NewKeeper(appCodec, keys[distrtypes.StoreKey], app.AccountKeeper, app.BankKeeper, app.StakingKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String()) - - app.SlashingKeeper = slashingkeeper.NewKeeper( - appCodec, legacyAmino, keys[slashingtypes.StoreKey], app.StakingKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - // register the staking hooks - // NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks - app.StakingKeeper.SetHooks( - stakingtypes.NewMultiStakingHooks(app.DistrKeeper.Hooks(), app.SlashingKeeper.Hooks()), - ) - - app.CrisisKeeper = crisiskeeper.NewKeeper(appCodec, keys[crisistypes.StoreKey], invCheckPeriod, - app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String()) - - app.FeeGrantKeeper = feegrantkeeper.NewKeeper(appCodec, keys[feegrant.StoreKey], app.AccountKeeper) - app.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, keys[upgradetypes.StoreKey], appCodec, homePath, app.BaseApp, authtypes.NewModuleAddress(govtypes.ModuleName).String()) - app.IbcTransferMiddlewareKeeper = ibctransfermiddleware.NewKeeper(appCodec, keys[ibctransfermiddlewaretypes.StoreKey], authtypes.NewModuleAddress(govtypes.ModuleName).String(), - []string{ - "pica1ay9y5uns9khw2kzaqr3r33v2pkuptfnnunlt5x", - "pica14lz7gaw92valqjearnye4shex7zg2p05yfguqm", - "pica1r2zlh2xn85v8ljmwymnfrnsmdzjl7k6w9f2ja8", - "pica10556m38z4x6pqalr9rl5ytf3cff8q46nf36090", - }) - app.TransferMiddlewarekeeper = transfermiddlewarekeeper.NewKeeper( - keys[transfermiddlewaretypes.StoreKey], - app.GetSubspace(transfermiddlewaretypes.ModuleName), - appCodec, - app.IBCKeeper.ChannelKeeper, - app.TransferKeeper, - app.BankKeeper, - &app.IbcTransferMiddlewareKeeper, - authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - app.AuthzKeeper = authzkeeper.NewKeeper(keys[authzkeeper.StoreKey], appCodec, app.MsgServiceRouter(), app.AccountKeeper) - - // IBC Keepers - - app.IBCKeeper = ibckeeper.NewKeeper( - appCodec, keys[ibcexported.StoreKey], app.GetSubspace(ibcexported.ModuleName), app.StakingKeeper, app.UpgradeKeeper, scopedIBCKeeper, - ) - - // register the proposal types - govRouter := govv1beta1.NewRouter() - govRouter.AddRoute(govtypes.RouterKey, govv1beta1.ProposalHandler). - AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)). - AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)). - AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)) - - govConfig := govtypes.DefaultConfig() - /* - Example of setting gov params: - govConfig.MaxMetadataLen = 10000 - */ - govKeeper := govkeeper.NewKeeper( - appCodec, keys[govtypes.StoreKey], app.AccountKeeper, app.BankKeeper, - app.StakingKeeper, app.MsgServiceRouter(), govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String(), - ) - - // Set legacy router for backwards compatibility with gov v1beta1 - govKeeper.SetLegacyRouter(govRouter) - - app.GovKeeper = *govKeeper.SetHooks( - govtypes.NewMultiGovHooks( - // register the governance hooks - ), - ) - - groupConfig := group.DefaultConfig() - /* - Example of setting group params: - groupConfig.MaxMetadataLen = 1000 - */ - app.GroupKeeper = groupkeeper.NewKeeper(keys[group.StoreKey], appCodec, app.MsgServiceRouter(), app.AccountKeeper, groupConfig) - - // IBC Fee Module keeper - app.IBCFeeKeeper = ibcfeekeeper.NewKeeper( - appCodec, keys[ibcfeetypes.StoreKey], - app.IBCKeeper.ChannelKeeper, // may be replaced with IBC middleware - app.IBCKeeper.ChannelKeeper, - &app.IBCKeeper.PortKeeper, app.AccountKeeper, app.BankKeeper, - ) - - // ICA Controller keeper - app.ICAControllerKeeper = icacontrollerkeeper.NewKeeper( - appCodec, keys[icacontrollertypes.StoreKey], app.GetSubspace(icacontrollertypes.SubModuleName), - app.IBCFeeKeeper, // use ics29 fee as ics4Wrapper in middleware stack - app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, - scopedICAControllerKeeper, app.MsgServiceRouter(), - ) - - // ICA Host keeper - app.ICAHostKeeper = icahostkeeper.NewKeeper( - appCodec, keys[icahosttypes.StoreKey], app.GetSubspace(icahosttypes.SubModuleName), - app.IBCFeeKeeper, // use ics29 fee as ics4Wrapper in middleware stack - app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, - app.AccountKeeper, scopedICAHostKeeper, app.MsgServiceRouter(), - ) - - // Create IBC Router - ibcRouter := porttypes.NewRouter() - - // Middleware Stacks - - // Create Transfer Keeper and pass IBCFeeKeeper as expected Channel and PortKeeper - // since fee middleware will wrap the IBCKeeper for underlying application. - app.TransferKeeper = ibctransferkeeper.NewKeeper( - appCodec, keys[ibctransfertypes.StoreKey], app.GetSubspace(ibctransfertypes.ModuleName), - app.IBCFeeKeeper, // ISC4 Wrapper: fee IBC middleware - app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, - app.AccountKeeper, app.BankKeeper, scopedTransferKeeper, - ) - - // Mock Module Stack - - // Mock Module setup for testing IBC and also acts as the interchain accounts authentication module - // NOTE: the IBC mock keeper and application module is used only for testing core IBC. Do - // not replicate if you do not need to test core IBC or light clients. - mockModule := ibcmock.NewAppModule(&app.IBCKeeper.PortKeeper) - - // The mock module is used for testing IBC - mockIBCModule := ibcmock.NewIBCModule(&mockModule, ibcmock.NewIBCApp(ibcmock.ModuleName, scopedIBCMockKeeper)) - ibcRouter.AddRoute(ibcmock.ModuleName, mockIBCModule) - - // Create Transfer Stack - // SendPacket, since it is originating from the application to core IBC: - // transferKeeper.SendPacket -> fee.SendPacket -> channel.SendPacket - - // RecvPacket, message that originates from core IBC and goes down to app, the flow is the other way - // channel.RecvPacket -> fee.OnRecvPacket -> transfer.OnRecvPacket - - // transfer stack contains (from top to bottom): - // - IBC Fee Middleware - // - Transfer - - // create IBC module from bottom to top of stack - var transferStack porttypes.IBCModule - transferStack = transfer.NewIBCModule(app.TransferKeeper) - transferStack = ibcfee.NewIBCMiddleware(transferStack, app.IBCFeeKeeper) - - transfermiddlewareModule := transfermiddleware.NewAppModule(&app.TransferMiddlewarekeeper) - - transfermiddlewareStack := transfermiddleware.NewIBCMiddleware( - transferStack, - app.TransferMiddlewarekeeper, - ) - // Add transfer stack to IBC Router - ibcRouter.AddRoute(ibctransfertypes.ModuleName, transfermiddlewareStack) - - // Create Interchain Accounts Stack - // SendPacket, since it is originating from the application to core IBC: - // icaAuthModuleKeeper.SendTx -> icaController.SendPacket -> fee.SendPacket -> channel.SendPacket - - // initialize ICA module with mock module as the authentication module on the controller side - var icaControllerStack porttypes.IBCModule - icaControllerStack = ibcmock.NewIBCModule(&mockModule, ibcmock.NewIBCApp("", scopedICAMockKeeper)) - app.ICAAuthModule = icaControllerStack.(ibcmock.IBCModule) - icaControllerStack = icacontroller.NewIBCMiddleware(icaControllerStack, app.ICAControllerKeeper) - icaControllerStack = ibcfee.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper) - - // RecvPacket, message that originates from core IBC and goes down to app, the flow is: - // channel.RecvPacket -> fee.OnRecvPacket -> icaHost.OnRecvPacket - - var icaHostStack porttypes.IBCModule - icaHostStack = icahost.NewIBCModule(app.ICAHostKeeper) - icaHostStack = ibcfee.NewIBCMiddleware(icaHostStack, app.IBCFeeKeeper) - - // Add host, controller & ica auth modules to IBC router - ibcRouter. - // the ICA Controller middleware needs to be explicitly added to the IBC Router because the - // ICA controller module owns the port capability for ICA. The ICA authentication module - // owns the channel capability. - AddRoute(icacontrollertypes.SubModuleName, icaControllerStack). - AddRoute(icahosttypes.SubModuleName, icaHostStack). - AddRoute(ibcmock.ModuleName+icacontrollertypes.SubModuleName, icaControllerStack) // ica with mock auth module stack route to ica (top level of middleware stack) - - // Create Mock IBC Fee module stack for testing - // SendPacket, since it is originating from the application to core IBC: - // mockModule.SendPacket -> fee.SendPacket -> channel.SendPacket - - // OnRecvPacket, message that originates from core IBC and goes down to app, the flow is the otherway - // channel.RecvPacket -> fee.OnRecvPacket -> mockModule.OnRecvPacket - - // OnAcknowledgementPacket as this is where fee's are paid out - // mockModule.OnAcknowledgementPacket -> fee.OnAcknowledgementPacket -> channel.OnAcknowledgementPacket - - // create fee wrapped mock module - feeMockModule := ibcmock.NewIBCModule(&mockModule, ibcmock.NewIBCApp(MockFeePort, scopedFeeMockKeeper)) - app.FeeMockModule = feeMockModule - feeWithMockModule := ibcfee.NewIBCMiddleware(feeMockModule, app.IBCFeeKeeper) - ibcRouter.AddRoute(MockFeePort, feeWithMockModule) - - // Seal the IBC Router - app.IBCKeeper.SetRouter(ibcRouter) - - // create evidence keeper with router - evidenceKeeper := evidencekeeper.NewKeeper( - appCodec, keys[evidencetypes.StoreKey], app.StakingKeeper, app.SlashingKeeper, - ) - // If evidence needs to be handled for the app, set routes in router here and seal - app.EvidenceKeeper = *evidenceKeeper - - /**** Module Options ****/ - - // NOTE: we may consider parsing `appOpts` inside module constructors. For the moment - // we prefer to be more strict in what arguments the modules expect. - skipGenesisInvariants := cast.ToBool(appOpts.Get(crisis.FlagSkipGenesisInvariants)) - - // NOTE: Any module instantiated in the module manager that is later modified - // must be passed by reference here. - app.mm = module.NewManager( - // SDK app modules - genutil.NewAppModule( - app.AccountKeeper, app.StakingKeeper, app.BaseApp.DeliverTx, - encodingConfig.TxConfig, - ), - auth.NewAppModule(appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)), - vesting.NewAppModule(app.AccountKeeper, app.BankKeeper), - bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper, app.GetSubspace(banktypes.ModuleName)), - capability.NewAppModule(appCodec, *app.CapabilityKeeper, false), - crisis.NewAppModule(app.CrisisKeeper, skipGenesisInvariants, app.GetSubspace(crisistypes.ModuleName)), - feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry), - gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)), - mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil), - slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName)), - distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)), - staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)), - upgrade.NewAppModule(app.UpgradeKeeper), - evidence.NewAppModule(app.EvidenceKeeper), - params.NewAppModule(app.ParamsKeeper), - authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper), - - // IBC modules - ibc.NewAppModule(app.IBCKeeper), - transfer.NewAppModule(app.TransferKeeper), - ibcfee.NewAppModule(app.IBCFeeKeeper), - ica.NewAppModule(&app.ICAControllerKeeper, &app.ICAHostKeeper), - mockModule, - transfermiddlewareModule, - ) - - // During begin block slashing happens after distr.BeginBlocker so that - // there is nothing left over in the validator fee pool, so as to keep the - // CanWithdrawInvariant invariant. - // NOTE: staking module is required if HistoricalEntries param > 0 - // NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC) - app.mm.SetOrderBeginBlockers( - upgradetypes.ModuleName, capabilitytypes.ModuleName, minttypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName, - evidencetypes.ModuleName, stakingtypes.ModuleName, ibcexported.ModuleName, ibctransfertypes.ModuleName, authtypes.ModuleName, - banktypes.ModuleName, govtypes.ModuleName, crisistypes.ModuleName, genutiltypes.ModuleName, authz.ModuleName, feegrant.ModuleName, - paramstypes.ModuleName, vestingtypes.ModuleName, icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, group.ModuleName, consensusparamtypes.ModuleName, - ) - app.mm.SetOrderEndBlockers( - crisistypes.ModuleName, govtypes.ModuleName, stakingtypes.ModuleName, ibcexported.ModuleName, ibctransfertypes.ModuleName, - capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName, - minttypes.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, feegrant.ModuleName, paramstypes.ModuleName, - upgradetypes.ModuleName, vestingtypes.ModuleName, icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, group.ModuleName, consensusparamtypes.ModuleName, - ) - - // NOTE: The genutils module must occur after staking so that pools are - // properly initialized with tokens from genesis accounts. - // NOTE: Capability module must occur first so that it can initialize any capabilities - // so that other modules that want to create or claim capabilities afterwards in InitChain - // can do so safely. - app.mm.SetOrderInitGenesis( - capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, distrtypes.ModuleName, stakingtypes.ModuleName, - slashingtypes.ModuleName, govtypes.ModuleName, minttypes.ModuleName, crisistypes.ModuleName, - ibcexported.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, ibctransfertypes.ModuleName, - icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, feegrant.ModuleName, paramstypes.ModuleName, upgradetypes.ModuleName, - vestingtypes.ModuleName, group.ModuleName, consensusparamtypes.ModuleName, - ) - - app.mm.RegisterInvariants(app.CrisisKeeper) - app.configurator = module.NewConfigurator(app.appCodec, app.MsgServiceRouter(), app.GRPCQueryRouter()) - app.mm.RegisterServices(app.configurator) - - autocliv1.RegisterQueryServer(app.GRPCQueryRouter(), runtimeservices.NewAutoCLIQueryService(app.mm.Modules)) - - reflectionSvc, err := runtimeservices.NewReflectionService() - if err != nil { - panic(err) - } - reflectionv1.RegisterReflectionServiceServer(app.GRPCQueryRouter(), reflectionSvc) - - // add test gRPC service for testing gRPC queries in isolation - testdata.RegisterQueryServer(app.GRPCQueryRouter(), testdata.QueryImpl{}) - - // create the simulation manager and define the order of the modules for deterministic simulations - // - // NOTE: this is not required apps that don't use the simulator for fuzz testing - // transactions - app.sm = module.NewSimulationManager( - auth.NewAppModule(appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)), - bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper, app.GetSubspace(banktypes.ModuleName)), - capability.NewAppModule(appCodec, *app.CapabilityKeeper, false), - feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry), - gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)), - staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)), - distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)), - slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName)), - params.NewAppModule(app.ParamsKeeper), - evidence.NewAppModule(app.EvidenceKeeper), - authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - ibc.NewAppModule(app.IBCKeeper), - transfer.NewAppModule(app.TransferKeeper), - ica.NewAppModule(&app.ICAControllerKeeper, &app.ICAHostKeeper), - ) - - app.sm.RegisterStoreDecoders() - - // initialize stores - app.MountKVStores(keys) - app.MountTransientStores(tkeys) - app.MountMemoryStores(memKeys) - - // initialize BaseApp - app.SetInitChainer(app.InitChainer) - app.SetBeginBlocker(app.BeginBlocker) - anteHandler, err := NewAnteHandler( - HandlerOptions{ - HandlerOptions: ante.HandlerOptions{ - AccountKeeper: app.AccountKeeper, - BankKeeper: app.BankKeeper, - SignModeHandler: encodingConfig.TxConfig.SignModeHandler(), - FeegrantKeeper: app.FeeGrantKeeper, - SigGasConsumer: ante.DefaultSigVerificationGasConsumer, - }, - IBCKeeper: app.IBCKeeper, - }, - ) - if err != nil { - panic(err) - } - - app.SetAnteHandler(anteHandler) - - app.SetEndBlocker(app.EndBlocker) - - app.setupUpgradeHandlers() - app.setupUpgradeStoreLoaders() - - if loadLatest { - if err := app.LoadLatestVersion(); err != nil { - tmos.Exit(err.Error()) - } - } - - app.ScopedIBCKeeper = scopedIBCKeeper - app.ScopedTransferKeeper = scopedTransferKeeper - app.ScopedICAControllerKeeper = scopedICAControllerKeeper - app.ScopedICAHostKeeper = scopedICAHostKeeper - - // NOTE: the IBC mock keeper and application module is used only for testing core IBC. Do - // note replicate if you do not need to test core IBC or light clients. - app.ScopedIBCMockKeeper = scopedIBCMockKeeper - app.ScopedICAMockKeeper = scopedICAMockKeeper - app.ScopedFeeMockKeeper = scopedFeeMockKeeper - - return app -} - -// Name returns the name of the App -func (app *SimApp) Name() string { return app.BaseApp.Name() } - -// BeginBlocker application updates every begin block -func (app *SimApp) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock { - return app.mm.BeginBlock(ctx, req) -} - -// EndBlocker application updates every end block -func (app *SimApp) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock { - return app.mm.EndBlock(ctx, req) -} - -// InitChainer application update at chain initialization -func (app *SimApp) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { - var genesisState GenesisState - if err := json.Unmarshal(req.AppStateBytes, &genesisState); err != nil { - panic(err) - } - app.UpgradeKeeper.SetModuleVersionMap(ctx, app.mm.GetVersionMap()) - return app.mm.InitGenesis(ctx, app.appCodec, genesisState) -} - -// LoadHeight loads a particular height -func (app *SimApp) LoadHeight(height int64) error { - return app.LoadVersion(height) -} - -// ModuleAccountAddrs returns all the app's module account addresses. -func (app *SimApp) ModuleAccountAddrs() map[string]bool { - modAccAddrs := make(map[string]bool) - for acc := range maccPerms { - // do not add the following modules to blocked addresses - // this is only used for testing - if acc == ibcmock.ModuleName { - continue - } - - modAccAddrs[authtypes.NewModuleAddress(acc).String()] = true - } - - return modAccAddrs -} - -// GetModuleManager returns the app module manager -// NOTE: used for testing purposes -func (app *SimApp) GetModuleManager() *module.Manager { - return app.mm -} - -// LegacyAmino returns SimApp's amino codec. -// -// NOTE: This is solely to be used for testing purposes as it may be desirable -// for modules to register their own custom testing types. -func (app *SimApp) LegacyAmino() *codec.LegacyAmino { - return app.legacyAmino -} - -// AppCodec returns SimApp's app codec. -// -// NOTE: This is solely to be used for testing purposes as it may be desirable -// for modules to register their own custom testing types. -func (app *SimApp) AppCodec() codec.Codec { - return app.appCodec -} - -// InterfaceRegistry returns SimApp's InterfaceRegistry -func (app *SimApp) InterfaceRegistry() types.InterfaceRegistry { - return app.interfaceRegistry -} - -// GetKey returns the KVStoreKey for the provided store key. -// -// NOTE: This is solely to be used for testing purposes. -func (app *SimApp) GetKey(storeKey string) *storetypes.KVStoreKey { - return app.keys[storeKey] -} - -// GetTKey returns the TransientStoreKey for the provided store key. -// -// NOTE: This is solely to be used for testing purposes. -func (app *SimApp) GetTKey(storeKey string) *storetypes.TransientStoreKey { - return app.tkeys[storeKey] -} - -// GetMemKey returns the MemStoreKey for the provided mem key. -// -// NOTE: This is solely used for testing purposes. -func (app *SimApp) GetMemKey(storeKey string) *storetypes.MemoryStoreKey { - return app.memKeys[storeKey] -} - -// GetSubspace returns a param subspace for a given module name. -// -// NOTE: This is solely to be used for testing purposes. -func (app *SimApp) GetSubspace(moduleName string) paramstypes.Subspace { - subspace, _ := app.ParamsKeeper.GetSubspace(moduleName) - return subspace -} - -// TestingApp functions - -// GetBaseApp implements the TestingApp interface. -func (app *SimApp) GetBaseApp() *baseapp.BaseApp { - return app.BaseApp -} - -// GetStakingKeeper implements the TestingApp interface. -func (app *SimApp) GetStakingKeeper() ibctestingtypes.StakingKeeper { - return app.StakingKeeper -} - -// GetStakingKeeper implements the TestingApp interface. -func (app *SimApp) GetWasmKeeper() wasm08.Keeper { - return app.Wasm08Keeper -} - -// GetIBCKeeper implements the TestingApp interface. -func (app *SimApp) GetIBCKeeper() *ibckeeper.Keeper { - return app.IBCKeeper -} - -// GetScopedIBCKeeper implements the TestingApp interface. -func (app *SimApp) GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper { - return app.ScopedIBCKeeper -} - -// GetTxConfig implements the TestingApp interface. -func (app *SimApp) GetTxConfig() client.TxConfig { - return app.txConfig -} - -// SimulationManager implements the SimulationApp interface -func (app *SimApp) SimulationManager() *module.SimulationManager { - return app.sm -} - -// RegisterAPIRoutes registers all application module routes with the provided -// API server. -func (app *SimApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig) { - clientCtx := apiSvr.ClientCtx - // Register new tx routes from grpc-gateway. - authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) - // Register new tendermint queries routes from grpc-gateway. - tmservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) - - // Register legacy and grpc-gateway routes for all modules. - ModuleBasics.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) - - // Register nodeservice grpc-gateway routes. - nodeservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) - - // register swagger API from root so that other applications can override easily - if apiConfig.Swagger { - RegisterSwaggerAPI(clientCtx, apiSvr.Router) - } -} - -// RegisterTxService implements the Application.RegisterTxService method. -func (app *SimApp) RegisterTxService(clientCtx client.Context) { - authtx.RegisterTxService(app.BaseApp.GRPCQueryRouter(), clientCtx, app.BaseApp.Simulate, app.interfaceRegistry) -} - -// RegisterTendermintService implements the Application.RegisterTendermintService method. -func (app *SimApp) RegisterTendermintService(clientCtx client.Context) { - tmservice.RegisterTendermintService( - clientCtx, - app.BaseApp.GRPCQueryRouter(), - app.interfaceRegistry, - app.Query, - ) -} - -func (app *SimApp) RegisterNodeService(clientCtx client.Context) { - nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter()) -} - -// RegisterSwaggerAPI registers swagger route with API Server -func RegisterSwaggerAPI(_ client.Context, rtr *mux.Router) { - statikFS, err := fs.New() - if err != nil { - panic(err) - } - - staticServer := http.FileServer(statikFS) - rtr.PathPrefix("/swagger/").Handler(http.StripPrefix("/swagger/", staticServer)) -} - -// GetMaccPerms returns a copy of the module account permissions -func GetMaccPerms() map[string][]string { - dupMaccPerms := make(map[string][]string) - for k, v := range maccPerms { - dupMaccPerms[k] = v - } - return dupMaccPerms -} - -// ModuleAccountAddrsLegacy returns all the app's module account addresses. -func ModuleAccountAddrsLegacy() map[string]bool { - modAccAddrs := make(map[string]bool) - for acc := range GetMaccPerms() { - modAccAddrs[authtypes.NewModuleAddress(acc).String()] = true - } - - return modAccAddrs -} - -func BlockedAddresses() map[string]bool { - modAccAddrs := ModuleAccountAddrsLegacy() - - // allow the following addresses to receive funds - delete(modAccAddrs, authtypes.NewModuleAddress(govtypes.ModuleName).String()) - delete(modAccAddrs, authtypes.NewModuleAddress(ibcmock.ModuleName).String()) - - return modAccAddrs -} - -// initParamsKeeper init params keeper and its subspaces -func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey storetypes.StoreKey) paramskeeper.Keeper { - paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey) - - paramsKeeper.Subspace(authtypes.ModuleName) - paramsKeeper.Subspace(banktypes.ModuleName) - paramsKeeper.Subspace(stakingtypes.ModuleName).WithKeyTable(stakingtypes.ParamKeyTable()) - paramsKeeper.Subspace(minttypes.ModuleName).WithKeyTable(minttypes.ParamKeyTable()) - paramsKeeper.Subspace(distrtypes.ModuleName) - paramsKeeper.Subspace(slashingtypes.ModuleName) - paramsKeeper.Subspace(govtypes.ModuleName) - paramsKeeper.Subspace(crisistypes.ModuleName) - paramsKeeper.Subspace(ibctransfertypes.ModuleName) - paramsKeeper.Subspace(ibcexported.ModuleName) - paramsKeeper.Subspace(icacontrollertypes.SubModuleName) - paramsKeeper.Subspace(icahosttypes.SubModuleName) - - return paramsKeeper -} - -// setupUpgradeHandlers sets all necessary upgrade handlers for testing purposes -func (app *SimApp) setupUpgradeHandlers() { - app.UpgradeKeeper.SetUpgradeHandler( - simappupgrades.DefaultUpgradeName, - simappupgrades.CreateDefaultUpgradeHandler(app.mm, app.configurator), - ) - - // NOTE: The moduleName arg of v6.CreateUpgradeHandler refers to the auth module ScopedKeeper name to which the channel capability should be migrated from. - // This should be the same string value provided upon instantiation of the ScopedKeeper with app.CapabilityKeeper.ScopeToModule() - // TODO: update git tag in link below - // See: https://github.com/cosmos/ibc-go/blob/v5.0.0-rc2/testing/simapp/app.go#L304 - app.UpgradeKeeper.SetUpgradeHandler( - v6.UpgradeName, - v6.CreateUpgradeHandler( - app.mm, - app.configurator, - app.appCodec, - app.keys[capabilitytypes.ModuleName], - app.CapabilityKeeper, - ibcmock.ModuleName+icacontrollertypes.SubModuleName, - ), - ) - - app.UpgradeKeeper.SetUpgradeHandler( - v7.UpgradeName, - v7.CreateUpgradeHandler( - app.mm, - app.configurator, - app.appCodec, - app.IBCKeeper.ClientKeeper, - app.ConsensusParamsKeeper, - app.ParamsKeeper, - ), - ) -} - -// setupUpgradeStoreLoaders sets all necessary store loaders required by upgrades. -func (app *SimApp) setupUpgradeStoreLoaders() { - upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk() - if err != nil { - tmos.Exit(fmt.Sprintf("failed to read upgrade info from disk %s", err)) - } - - if upgradeInfo.Name == v7.UpgradeName && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) { - storeUpgrades := storetypes.StoreUpgrades{ - Added: []string{ - consensusparamtypes.StoreKey, - crisistypes.StoreKey, - }, - } - - // configure store loader that checks if version == upgradeHeight and applies store upgrades - app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades)) - } -} diff --git a/app/ibctesting/simapp/config.go b/app/ibctesting/simapp/config.go deleted file mode 100644 index 98df982bd..000000000 --- a/app/ibctesting/simapp/config.go +++ /dev/null @@ -1,75 +0,0 @@ -package simapp - -import ( - "flag" - - "github.com/cosmos/cosmos-sdk/types/simulation" -) - -// List of available flags for the simulator -var ( - FlagGenesisFileValue string - FlagParamsFileValue string - FlagExportParamsPathValue string - FlagExportParamsHeightValue int - FlagExportStatePathValue string - FlagExportStatsPathValue string - FlagSeedValue int64 - FlagInitialBlockHeightValue int - FlagNumBlocksValue int - FlagBlockSizeValue int - FlagLeanValue bool - FlagCommitValue bool - FlagOnOperationValue bool // TODO: Remove in favor of binary search for invariant violation - FlagAllInvariantsValue bool - - FlagEnabledValue bool - FlagVerboseValue bool - FlagPeriodValue uint - FlagGenesisTimeValue int64 -) - -// GetSimulatorFlags gets the values of all the available simulation flags -func GetSimulatorFlags() { - // config fields - flag.StringVar(&FlagGenesisFileValue, "Genesis", "", "custom simulation genesis file; cannot be used with params file") - flag.StringVar(&FlagParamsFileValue, "Params", "", "custom simulation params file which overrides any random params; cannot be used with genesis") - flag.StringVar(&FlagExportParamsPathValue, "ExportParamsPath", "", "custom file path to save the exported params JSON") - flag.IntVar(&FlagExportParamsHeightValue, "ExportParamsHeight", 0, "height to which export the randomly generated params") - flag.StringVar(&FlagExportStatePathValue, "ExportStatePath", "", "custom file path to save the exported app state JSON") - flag.StringVar(&FlagExportStatsPathValue, "ExportStatsPath", "", "custom file path to save the exported simulation statistics JSON") - flag.Int64Var(&FlagSeedValue, "Seed", 42, "simulation random seed") - flag.IntVar(&FlagInitialBlockHeightValue, "InitialBlockHeight", 1, "initial block to start the simulation") - flag.IntVar(&FlagNumBlocksValue, "NumBlocks", 500, "number of new blocks to simulate from the initial block height") - flag.IntVar(&FlagBlockSizeValue, "BlockSize", 200, "operations per block") - flag.BoolVar(&FlagLeanValue, "Lean", false, "lean simulation log output") - flag.BoolVar(&FlagCommitValue, "Commit", false, "have the simulation commit") - flag.BoolVar(&FlagOnOperationValue, "SimulateEveryOperation", false, "run slow invariants every operation") - flag.BoolVar(&FlagAllInvariantsValue, "PrintAllInvariants", false, "print all invariants if a broken invariant is found") - - // simulation flags - flag.BoolVar(&FlagEnabledValue, "Enabled", false, "enable the simulation") - flag.BoolVar(&FlagVerboseValue, "Verbose", false, "verbose log output") - flag.UintVar(&FlagPeriodValue, "Period", 0, "run slow invariants only once every period assertions") - flag.Int64Var(&FlagGenesisTimeValue, "GenesisTime", 0, "override genesis UNIX time instead of using a random UNIX time") -} - -// NewConfigFromFlags creates a simulation from the retrieved values of the flags. -func NewConfigFromFlags() simulation.Config { - return simulation.Config{ - GenesisFile: FlagGenesisFileValue, - ParamsFile: FlagParamsFileValue, - ExportParamsPath: FlagExportParamsPathValue, - ExportParamsHeight: FlagExportParamsHeightValue, - ExportStatePath: FlagExportStatePathValue, - ExportStatsPath: FlagExportStatsPathValue, - Seed: FlagSeedValue, - InitialBlockHeight: FlagInitialBlockHeightValue, - NumBlocks: FlagNumBlocksValue, - BlockSize: FlagBlockSizeValue, - Lean: FlagLeanValue, - Commit: FlagCommitValue, - OnOperation: FlagOnOperationValue, - AllInvariants: FlagAllInvariantsValue, - } -} diff --git a/app/ibctesting/simapp/encoding.go b/app/ibctesting/simapp/encoding.go deleted file mode 100644 index 53ee98f0e..000000000 --- a/app/ibctesting/simapp/encoding.go +++ /dev/null @@ -1,20 +0,0 @@ -package simapp - -import ( - "github.com/cosmos/cosmos-sdk/std" - - simappparams "github.com/notional-labs/composable/v6/app/ibctesting/simapp/params" -) - -// MakeTestEncodingConfig creates an EncodingConfig for testing. This function -// should be used only in tests or when creating a new app instance (NewApp*()). -// App user shouldn't create new codecs - use the app.AppCodec instead. -// [DEPRECATED] -func MakeTestEncodingConfig() simappparams.EncodingConfig { - encodingConfig := simappparams.MakeTestEncodingConfig() - std.RegisterLegacyAminoCodec(encodingConfig.Amino) - std.RegisterInterfaces(encodingConfig.InterfaceRegistry) - ModuleBasics.RegisterLegacyAminoCodec(encodingConfig.Amino) - ModuleBasics.RegisterInterfaces(encodingConfig.InterfaceRegistry) - return encodingConfig -} diff --git a/app/ibctesting/simapp/export.go b/app/ibctesting/simapp/export.go deleted file mode 100644 index 8515cc0f4..000000000 --- a/app/ibctesting/simapp/export.go +++ /dev/null @@ -1,198 +0,0 @@ -package simapp - -import ( - "encoding/json" - "log" - - tmproto "github.com/cometbft/cometbft/proto/tendermint/types" - servertypes "github.com/cosmos/cosmos-sdk/server/types" - sdk "github.com/cosmos/cosmos-sdk/types" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - "github.com/cosmos/cosmos-sdk/x/staking" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" -) - -// ExportAppStateAndValidators exports the state of the application for a genesis -// file. -func (app *SimApp) ExportAppStateAndValidators( - forZeroHeight bool, jailAllowedAddrs []string, -) (servertypes.ExportedApp, error) { - // as if they could withdraw from the start of the next block - ctx := app.NewContext(true, tmproto.Header{Height: app.LastBlockHeight()}) - - // We export at last height + 1, because that's the height at which - // Tendermint will start InitChain. - height := app.LastBlockHeight() + 1 - if forZeroHeight { - height = 0 - app.prepForZeroHeightGenesis(ctx, jailAllowedAddrs) - } - - genState := app.mm.ExportGenesis(ctx, app.appCodec) - appState, err := json.MarshalIndent(genState, "", " ") - if err != nil { - return servertypes.ExportedApp{}, err - } - - validators, err := staking.WriteValidators(ctx, app.StakingKeeper) - return servertypes.ExportedApp{ - AppState: appState, - Validators: validators, - Height: height, - ConsensusParams: app.BaseApp.GetConsensusParams(ctx), - }, err -} - -// prepare for fresh start at zero height -// NOTE zero height genesis is a temporary feature which will be deprecated -// in favour of export at a block height -func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []string) { - applyAllowedAddrs := false - - // check if there is a allowed address list - if len(jailAllowedAddrs) > 0 { - applyAllowedAddrs = true - } - - allowedAddrsMap := make(map[string]bool) - - for _, addr := range jailAllowedAddrs { - _, err := sdk.ValAddressFromBech32(addr) - if err != nil { - log.Fatal(err) - } - allowedAddrsMap[addr] = true - } - - /* Just to be safe, assert the invariants on current state. */ - app.CrisisKeeper.AssertInvariants(ctx) - - /* Handle fee distribution state. */ - - // withdraw all validator commission - app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) { - _, _ = app.DistrKeeper.WithdrawValidatorCommission(ctx, val.GetOperator()) - return false - }) - - // withdraw all delegator rewards - dels := app.StakingKeeper.GetAllDelegations(ctx) - for _, delegation := range dels { - valAddr, err := sdk.ValAddressFromBech32(delegation.ValidatorAddress) - if err != nil { - panic(err) - } - - delAddr, err := sdk.AccAddressFromBech32(delegation.DelegatorAddress) - if err != nil { - panic(err) - } - _, _ = app.DistrKeeper.WithdrawDelegationRewards(ctx, delAddr, valAddr) - } - - // clear validator slash events - app.DistrKeeper.DeleteAllValidatorSlashEvents(ctx) - - // clear validator historical rewards - app.DistrKeeper.DeleteAllValidatorHistoricalRewards(ctx) - - // set context height to zero - height := ctx.BlockHeight() - ctx = ctx.WithBlockHeight(0) - - // reinitialize all validators - app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) { - // donate any unwithdrawn outstanding reward fraction tokens to the community pool - scraps := app.DistrKeeper.GetValidatorOutstandingRewardsCoins(ctx, val.GetOperator()) - feePool := app.DistrKeeper.GetFeePool(ctx) - feePool.CommunityPool = feePool.CommunityPool.Add(scraps...) - app.DistrKeeper.SetFeePool(ctx, feePool) - - err := app.DistrKeeper.Hooks().AfterValidatorCreated(ctx, val.GetOperator()) - return err != nil - }) - - // reinitialize all delegations - for _, del := range dels { - valAddr, err := sdk.ValAddressFromBech32(del.ValidatorAddress) - if err != nil { - panic(err) - } - delAddr, err := sdk.AccAddressFromBech32(del.DelegatorAddress) - if err != nil { - panic(err) - } - err = app.DistrKeeper.Hooks().BeforeDelegationCreated(ctx, delAddr, valAddr) - if err != nil { - panic(err) - } - err = app.DistrKeeper.Hooks().AfterDelegationModified(ctx, delAddr, valAddr) - if err != nil { - panic(err) - } - } - - // reset context height - ctx = ctx.WithBlockHeight(height) - - /* Handle staking state. */ - - // iterate through redelegations, reset creation height - app.StakingKeeper.IterateRedelegations(ctx, func(_ int64, red stakingtypes.Redelegation) (stop bool) { - for i := range red.Entries { - red.Entries[i].CreationHeight = 0 - } - app.StakingKeeper.SetRedelegation(ctx, red) - return false - }) - - // iterate through unbonding delegations, reset creation height - app.StakingKeeper.IterateUnbondingDelegations(ctx, func(_ int64, ubd stakingtypes.UnbondingDelegation) (stop bool) { - for i := range ubd.Entries { - ubd.Entries[i].CreationHeight = 0 - } - app.StakingKeeper.SetUnbondingDelegation(ctx, ubd) - return false - }) - - // Iterate through validators by power descending, reset bond heights, and - // update bond intra-tx counters. - store := ctx.KVStore(app.keys[stakingtypes.StoreKey]) - iter := sdk.KVStoreReversePrefixIterator(store, stakingtypes.ValidatorsKey) - counter := int16(0) - - for ; iter.Valid(); iter.Next() { - addr := sdk.ValAddress(stakingtypes.AddressFromValidatorsKey(iter.Key())) - validator, found := app.StakingKeeper.GetValidator(ctx, addr) - if !found { - panic("expected validator, not found") - } - - validator.UnbondingHeight = 0 - if applyAllowedAddrs && !allowedAddrsMap[addr.String()] { - validator.Jailed = true - } - - app.StakingKeeper.SetValidator(ctx, validator) - counter++ - } - - iter.Close() - - _, err := app.StakingKeeper.ApplyAndReturnValidatorSetUpdates(ctx) - if err != nil { - log.Fatal(err) - } - - /* Handle slashing state. */ - - // reset start height on signing infos - app.SlashingKeeper.IterateValidatorSigningInfos( - ctx, - func(addr sdk.ConsAddress, info slashingtypes.ValidatorSigningInfo) (stop bool) { - info.StartHeight = 0 - app.SlashingKeeper.SetValidatorSigningInfo(ctx, addr, info) - return false - }, - ) -} diff --git a/app/ibctesting/simapp/genesis.go b/app/ibctesting/simapp/genesis.go deleted file mode 100644 index 772e452d4..000000000 --- a/app/ibctesting/simapp/genesis.go +++ /dev/null @@ -1,21 +0,0 @@ -package simapp - -import ( - "encoding/json" - - "github.com/cosmos/cosmos-sdk/codec" -) - -// The genesis state of the blockchain is represented here as a map of raw json -// messages key'd by a identifier string. -// The identifier is used to determine which module genesis information belongs -// to so it may be appropriately routed during init chain. -// Within this application default genesis information is retrieved from -// the ModuleBasicManager which populates json from each BasicModule -// object provided to it during init. -type GenesisState map[string]json.RawMessage - -// NewDefaultGenesisState generates the default state for the application. -func NewDefaultGenesisState(cdc codec.JSONCodec) GenesisState { - return ModuleBasics.DefaultGenesis(cdc) -} diff --git a/app/ibctesting/simapp/genesis_account.go b/app/ibctesting/simapp/genesis_account.go deleted file mode 100644 index 5c9c7f9a0..000000000 --- a/app/ibctesting/simapp/genesis_account.go +++ /dev/null @@ -1,47 +0,0 @@ -package simapp - -import ( - "errors" - - sdk "github.com/cosmos/cosmos-sdk/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" -) - -var _ authtypes.GenesisAccount = (*SimGenesisAccount)(nil) - -// SimGenesisAccount defines a type that implements the GenesisAccount interface -// to be used for simulation accounts in the genesis state. -type SimGenesisAccount struct { - *authtypes.BaseAccount - - // vesting account fields - OriginalVesting sdk.Coins `json:"original_vesting" yaml:"original_vesting"` // total vesting coins upon initialization - DelegatedFree sdk.Coins `json:"delegated_free" yaml:"delegated_free"` // delegated vested coins at time of delegation - DelegatedVesting sdk.Coins `json:"delegated_vesting" yaml:"delegated_vesting"` // delegated vesting coins at time of delegation - StartTime int64 `json:"start_time" yaml:"start_time"` // vesting start time (UNIX Epoch time) - EndTime int64 `json:"end_time" yaml:"end_time"` // vesting end time (UNIX Epoch time) - - // module account fields - ModuleName string `json:"module_name" yaml:"module_name"` // name of the module account - ModulePermissions []string `json:"module_permissions" yaml:"module_permissions"` // permissions of module account -} - -// Validate checks for errors on the vesting and module account parameters -func (sga SimGenesisAccount) Validate() error { - if !sga.OriginalVesting.IsZero() { - if sga.StartTime >= sga.EndTime { - return errors.New("vesting start-time cannot be before end-time") - } - } - - if sga.ModuleName != "" { - ma := authtypes.ModuleAccount{ - BaseAccount: sga.BaseAccount, Name: sga.ModuleName, Permissions: sga.ModulePermissions, - } - if err := ma.Validate(); err != nil { - return err - } - } - - return sga.BaseAccount.Validate() -} diff --git a/app/ibctesting/simapp/genesis_account_test.go b/app/ibctesting/simapp/genesis_account_test.go deleted file mode 100644 index be7675536..000000000 --- a/app/ibctesting/simapp/genesis_account_test.go +++ /dev/null @@ -1,88 +0,0 @@ -package simapp_test - -import ( - "testing" - "time" - - "github.com/cometbft/cometbft/crypto" - "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" - sdk "github.com/cosmos/cosmos-sdk/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/stretchr/testify/require" - - "github.com/cosmos/ibc-go/v7/testing/simapp" -) - -func TestSimGenesisAccountValidate(t *testing.T) { - pubkey := secp256k1.GenPrivKey().PubKey() - addr := sdk.AccAddress(pubkey.Address()) - - vestingStart := time.Now().UTC() - - coins := sdk.NewCoins(sdk.NewInt64Coin("test", 1000)) - baseAcc := authtypes.NewBaseAccount(addr, pubkey, 0, 0) - - testCases := []struct { - name string - sga simapp.SimGenesisAccount - wantErr bool - }{ - { - "valid basic account", - simapp.SimGenesisAccount{ - BaseAccount: baseAcc, - }, - false, - }, - { - "invalid basic account with mismatching address/pubkey", - simapp.SimGenesisAccount{ - BaseAccount: authtypes.NewBaseAccount(addr, secp256k1.GenPrivKey().PubKey(), 0, 0), - }, - true, - }, - { - "valid basic account with module name", - simapp.SimGenesisAccount{ - BaseAccount: authtypes.NewBaseAccount(sdk.AccAddress(crypto.AddressHash([]byte("testmod"))), nil, 0, 0), - ModuleName: "testmod", - }, - false, - }, - { - "valid basic account with invalid module name/pubkey pair", - simapp.SimGenesisAccount{ - BaseAccount: baseAcc, - ModuleName: "testmod", - }, - true, - }, - { - "valid basic account with valid vesting attributes", - simapp.SimGenesisAccount{ - BaseAccount: baseAcc, - OriginalVesting: coins, - StartTime: vestingStart.Unix(), - EndTime: vestingStart.Add(1 * time.Hour).Unix(), - }, - false, - }, - { - "valid basic account with invalid vesting end time", - simapp.SimGenesisAccount{ - BaseAccount: baseAcc, - OriginalVesting: coins, - StartTime: vestingStart.Add(2 * time.Hour).Unix(), - EndTime: vestingStart.Add(1 * time.Hour).Unix(), - }, - true, - }, - } - - for _, tc := range testCases { - tc := tc - t.Run(tc.name, func(t *testing.T) { - require.Equal(t, tc.wantErr, tc.sga.Validate() != nil) - }) - } -} diff --git a/app/ibctesting/simapp/params/amino.go b/app/ibctesting/simapp/params/amino.go deleted file mode 100644 index d603987dd..000000000 --- a/app/ibctesting/simapp/params/amino.go +++ /dev/null @@ -1,27 +0,0 @@ -//go:build test_amino -// +build test_amino - -package params - -import ( - "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/codec/types" - "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" -) - -// MakeTestEncodingConfig creates an EncodingConfig for an amino based test configuration. -// This function should be used only internally (in the SDK). -// App user should'nt create new codecs - use the app.AppCodec instead. -// [DEPRECATED] -func MakeTestEncodingConfig() EncodingConfig { - cdc := codec.NewLegacyAmino() - interfaceRegistry := types.NewInterfaceRegistry() - marshaler := codec.NewAminoCodec(cdc) - - return EncodingConfig{ - InterfaceRegistry: interfaceRegistry, - Marshaler: marshaler, - TxConfig: legacytx.StdTxConfig{Cdc: cdc}, - Amino: cdc, - } -} diff --git a/app/ibctesting/simapp/params/doc.go b/app/ibctesting/simapp/params/doc.go deleted file mode 100644 index 1c721342a..000000000 --- a/app/ibctesting/simapp/params/doc.go +++ /dev/null @@ -1,19 +0,0 @@ -/* -Package params defines the simulation parameters in the simapp. - -It contains the default weights used for each transaction used on the module's -simulation. These weights define the chance for a transaction to be simulated at -any gived operation. - -You can repace the default values for the weights by providing a params.json -file with the weights defined for each of the transaction operations: - - { - "op_weight_msg_send": 60, - "op_weight_msg_delegate": 100, - } - -In the example above, the `MsgSend` has 60% chance to be simulated, while the -`MsgDelegate` will always be simulated. -*/ -package params diff --git a/app/ibctesting/simapp/params/encoding.go b/app/ibctesting/simapp/params/encoding.go deleted file mode 100644 index 3d634abf1..000000000 --- a/app/ibctesting/simapp/params/encoding.go +++ /dev/null @@ -1,16 +0,0 @@ -package params - -import ( - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/codec/types" -) - -// EncodingConfig specifies the concrete encoding types to use for a given app. -// This is provided for compatibility between protobuf and amino implementations. -type EncodingConfig struct { - InterfaceRegistry types.InterfaceRegistry - Marshaler codec.Codec - TxConfig client.TxConfig - Amino *codec.LegacyAmino -} diff --git a/app/ibctesting/simapp/params/params.go b/app/ibctesting/simapp/params/params.go deleted file mode 100644 index b6aa5fb55..000000000 --- a/app/ibctesting/simapp/params/params.go +++ /dev/null @@ -1,7 +0,0 @@ -package params - -// Simulation parameter constants -const ( - StakePerAccount = "stake_per_account" - InitiallyBondedValidators = "initially_bonded_validators" -) diff --git a/app/ibctesting/simapp/params/proto.go b/app/ibctesting/simapp/params/proto.go deleted file mode 100644 index a752d1079..000000000 --- a/app/ibctesting/simapp/params/proto.go +++ /dev/null @@ -1,27 +0,0 @@ -//go:build !test_amino -// +build !test_amino - -package params - -import ( - "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/codec/types" - "github.com/cosmos/cosmos-sdk/x/auth/tx" -) - -// MakeTestEncodingConfig creates an EncodingConfig for a non-amino based test configuration. -// This function should be used only internally (in the SDK). -// App user should'nt create new codecs - use the app.AppCodec instead. -// [DEPRECATED] -func MakeTestEncodingConfig() EncodingConfig { - cdc := codec.NewLegacyAmino() - interfaceRegistry := types.NewInterfaceRegistry() - marshaler := codec.NewProtoCodec(interfaceRegistry) - - return EncodingConfig{ - InterfaceRegistry: interfaceRegistry, - Marshaler: marshaler, - TxConfig: tx.NewTxConfig(marshaler, tx.DefaultSignModes), - Amino: cdc, - } -} diff --git a/app/ibctesting/simapp/params/weights.go b/app/ibctesting/simapp/params/weights.go deleted file mode 100644 index 81400a2fc..000000000 --- a/app/ibctesting/simapp/params/weights.go +++ /dev/null @@ -1,28 +0,0 @@ -package params - -// Default simulation operation weights for messages and gov proposals -const ( - DefaultWeightMsgSend int = 100 - DefaultWeightMsgMultiSend int = 10 - DefaultWeightMsgSetWithdrawAddress int = 50 - DefaultWeightMsgWithdrawDelegationReward int = 50 - DefaultWeightMsgWithdrawValidatorCommission int = 50 - DefaultWeightMsgFundCommunityPool int = 50 - DefaultWeightMsgDeposit int = 100 - DefaultWeightMsgVote int = 67 - DefaultWeightMsgVoteWeighted int = 33 - DefaultWeightMsgUnjail int = 100 - DefaultWeightMsgCreateValidator int = 100 - DefaultWeightMsgEditValidator int = 5 - DefaultWeightMsgDelegate int = 100 - DefaultWeightMsgUndelegate int = 100 - DefaultWeightMsgBeginRedelegate int = 100 - - DefaultWeightCommunitySpendProposal int = 5 - DefaultWeightTextProposal int = 5 - DefaultWeightParamChangeProposal int = 5 - - // feegrant - DefaultWeightGrantFeeAllowance int = 100 - DefaultWeightRevokeFeeAllowance int = 100 -) diff --git a/app/ibctesting/simapp/sim_bench_test.go b/app/ibctesting/simapp/sim_bench_test.go deleted file mode 100644 index d3689d353..000000000 --- a/app/ibctesting/simapp/sim_bench_test.go +++ /dev/null @@ -1,122 +0,0 @@ -package simapp - -import ( - "fmt" - "os" - "testing" - - tmproto "github.com/cometbft/cometbft/proto/tendermint/types" - simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" - simtypes "github.com/cosmos/cosmos-sdk/types/simulation" - "github.com/cosmos/cosmos-sdk/x/simulation" -) - -// Profile with: -// /usr/local/go/bin/go test -benchmem -run=^$ github.com/cosmos/ibc-go/v7/testing/simapp -bench ^BenchmarkFullAppSimulation$ -Commit=true -cpuprofile cpu.out -func BenchmarkFullAppSimulation(b *testing.B) { - b.ReportAllocs() - config, db, dir, logger, _, err := SetupSimulation("goleveldb-app-sim", "Simulation") - if err != nil { - b.Fatalf("simulation setup failed: %s", err.Error()) - } - - defer func() { - db.Close() - err = os.RemoveAll(dir) - if err != nil { - b.Fatal(err) - } - }() - - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeTestEncodingConfig(), simtestutil.EmptyAppOptions{}, interBlockCacheOpt()) - - // run randomized simulation - _, simParams, simErr := simulation.SimulateFromSeed( - b, - os.Stdout, - app.BaseApp, - AppStateFn(app.AppCodec(), app.SimulationManager()), - simtypes.RandomAccounts, // Replace with own random account function if using keys other than secp256k1 - SimulationOperations(app, app.AppCodec(), config), - app.ModuleAccountAddrs(), - config, - app.AppCodec(), - ) - - // export state and simParams before the simulation error is checked - if err = CheckExportSimulation(app, config, simParams); err != nil { - b.Fatal(err) - } - - if simErr != nil { - b.Fatal(simErr) - } - - if config.Commit { - PrintStats(db) - } -} - -func BenchmarkInvariants(b *testing.B) { - b.ReportAllocs() - config, db, dir, logger, _, err := SetupSimulation("leveldb-app-invariant-bench", "Simulation") - if err != nil { - b.Fatalf("simulation setup failed: %s", err.Error()) - } - - config.AllInvariants = false - - defer func() { - db.Close() - err = os.RemoveAll(dir) - if err != nil { - b.Fatal(err) - } - }() - - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeTestEncodingConfig(), simtestutil.EmptyAppOptions{}, interBlockCacheOpt()) - - // run randomized simulation - _, simParams, simErr := simulation.SimulateFromSeed( - b, - os.Stdout, - app.BaseApp, - AppStateFn(app.AppCodec(), app.SimulationManager()), - simtypes.RandomAccounts, // Replace with own random account function if using keys other than secp256k1 - SimulationOperations(app, app.AppCodec(), config), - app.ModuleAccountAddrs(), - config, - app.AppCodec(), - ) - - // export state and simParams before the simulation error is checked - if err = CheckExportSimulation(app, config, simParams); err != nil { - b.Fatal(err) - } - - if simErr != nil { - b.Fatal(simErr) - } - - if config.Commit { - PrintStats(db) - } - - ctx := app.NewContext(true, tmproto.Header{Height: app.LastBlockHeight() + 1}) - - // 3. Benchmark each invariant separately - // - // NOTE: We use the crisis keeper as it has all the invariants registered with - // their respective metadata which makes it useful for testing/benchmarking. - for _, cr := range app.CrisisKeeper.Routes() { - cr := cr - b.Run(fmt.Sprintf("%s/%s", cr.ModuleName, cr.Route), func(b *testing.B) { - if res, stop := cr.Invar(ctx); stop { - b.Fatalf( - "broken invariant at block %d of %d\n%s", - ctx.BlockHeight()-1, config.NumBlocks, res, - ) - } - }) - } -} diff --git a/app/ibctesting/simapp/sim_test.go b/app/ibctesting/simapp/sim_test.go deleted file mode 100644 index 32d602b0c..000000000 --- a/app/ibctesting/simapp/sim_test.go +++ /dev/null @@ -1,343 +0,0 @@ -package simapp - -import ( - "encoding/json" - "fmt" - "math/rand" - "os" - "testing" - - dbm "github.com/cometbft/cometbft-db" - abci "github.com/cometbft/cometbft/abci/types" - "github.com/cometbft/cometbft/libs/log" - tmproto "github.com/cometbft/cometbft/proto/tendermint/types" - "github.com/cosmos/cosmos-sdk/baseapp" - "github.com/cosmos/cosmos-sdk/store" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" - sdk "github.com/cosmos/cosmos-sdk/types" - simtypes "github.com/cosmos/cosmos-sdk/types/simulation" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - "github.com/cosmos/cosmos-sdk/x/simulation" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/stretchr/testify/require" - - minttypes "github.com/notional-labs/composable/v6/x/mint/types" - - ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" -) - -// Get flags every time the simulator is run -func init() { - GetSimulatorFlags() -} - -type StoreKeysPrefixes struct { - A storetypes.StoreKey - B storetypes.StoreKey - Prefixes [][]byte -} - -// fauxMerkleModeOpt returns a BaseApp option to use a dbStoreAdapter instead of -// an IAVLStore for faster simulation speed. -func fauxMerkleModeOpt(bapp *baseapp.BaseApp) { - bapp.SetFauxMerkleMode() -} - -// interBlockCacheOpt returns a BaseApp option function that sets the persistent -// inter-block write-through cache. -func interBlockCacheOpt() func(*baseapp.BaseApp) { - return baseapp.SetInterBlockCache(store.NewCommitKVStoreCacheManager()) -} - -func TestFullAppSimulation(t *testing.T) { - config, db, dir, logger, skip, err := SetupSimulation("leveldb-app-sim", "Simulation") - if skip { - t.Skip("skipping application simulation") - } - require.NoError(t, err, "simulation setup failed") - - defer func() { - db.Close() - require.NoError(t, os.RemoveAll(dir)) - }() - - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeTestEncodingConfig(), simtestutil.EmptyAppOptions{}, fauxMerkleModeOpt) - require.Equal(t, "SimApp", app.Name()) - - // run randomized simulation - _, simParams, simErr := simulation.SimulateFromSeed( - t, - os.Stdout, - app.BaseApp, - AppStateFn(app.AppCodec(), app.SimulationManager()), - simtypes.RandomAccounts, // Replace with own random account function if using keys other than secp256k1 - SimulationOperations(app, app.AppCodec(), config), - app.ModuleAccountAddrs(), - config, - app.AppCodec(), - ) - - // export state and simParams before the simulation error is checked - err = CheckExportSimulation(app, config, simParams) - require.NoError(t, err) - require.NoError(t, simErr) - - if config.Commit { - PrintStats(db) - } -} - -func TestAppImportExport(t *testing.T) { - config, db, dir, logger, skip, err := SetupSimulation("leveldb-app-sim", "Simulation") - if skip { - t.Skip("skipping application import/export simulation") - } - require.NoError(t, err, "simulation setup failed") - - defer func() { - db.Close() - require.NoError(t, os.RemoveAll(dir)) - }() - - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeTestEncodingConfig(), simtestutil.EmptyAppOptions{}, fauxMerkleModeOpt) - require.Equal(t, "SimApp", app.Name()) - - // Run randomized simulation - _, simParams, simErr := simulation.SimulateFromSeed( - t, - os.Stdout, - app.BaseApp, - AppStateFn(app.AppCodec(), app.SimulationManager()), - simtypes.RandomAccounts, // Replace with own random account function if using keys other than secp256k1 - SimulationOperations(app, app.AppCodec(), config), - app.ModuleAccountAddrs(), - config, - app.AppCodec(), - ) - - // export state and simParams before the simulation error is checked - err = CheckExportSimulation(app, config, simParams) - require.NoError(t, err) - require.NoError(t, simErr) - - if config.Commit { - PrintStats(db) - } - - fmt.Printf("exporting genesis...\n") - - exported, err := app.ExportAppStateAndValidators(false, []string{}) - require.NoError(t, err) - - fmt.Printf("importing genesis...\n") - - _, newDB, newDir, _, _, err := SetupSimulation("leveldb-app-sim-2", "Simulation-2") - require.NoError(t, err, "simulation setup failed") - - defer func() { - newDB.Close() - require.NoError(t, os.RemoveAll(newDir)) - }() - - newApp := NewSimApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeTestEncodingConfig(), simtestutil.EmptyAppOptions{}, fauxMerkleModeOpt) - require.Equal(t, "SimApp", newApp.Name()) - - var genesisState GenesisState - err = json.Unmarshal(exported.AppState, &genesisState) - require.NoError(t, err) - - ctxA := app.NewContext(true, tmproto.Header{Height: app.LastBlockHeight()}) - ctxB := newApp.NewContext(true, tmproto.Header{Height: app.LastBlockHeight()}) - newApp.mm.InitGenesis(ctxB, app.AppCodec(), genesisState) - newApp.StoreConsensusParams(ctxB, exported.ConsensusParams) - - fmt.Printf("comparing stores...\n") - - storeKeysPrefixes := []StoreKeysPrefixes{ - {app.keys[authtypes.StoreKey], newApp.keys[authtypes.StoreKey], [][]byte{}}, - { - app.keys[stakingtypes.StoreKey], newApp.keys[stakingtypes.StoreKey], - [][]byte{ - stakingtypes.UnbondingQueueKey, stakingtypes.RedelegationQueueKey, stakingtypes.ValidatorQueueKey, - stakingtypes.HistoricalInfoKey, - }, - }, // ordering may change but it doesn't matter - {app.keys[slashingtypes.StoreKey], newApp.keys[slashingtypes.StoreKey], [][]byte{}}, - {app.keys[minttypes.StoreKey], newApp.keys[minttypes.StoreKey], [][]byte{}}, - {app.keys[distrtypes.StoreKey], newApp.keys[distrtypes.StoreKey], [][]byte{}}, - {app.keys[banktypes.StoreKey], newApp.keys[banktypes.StoreKey], [][]byte{banktypes.BalancesPrefix}}, - {app.keys[paramtypes.StoreKey], newApp.keys[paramtypes.StoreKey], [][]byte{}}, - {app.keys[govtypes.StoreKey], newApp.keys[govtypes.StoreKey], [][]byte{}}, - {app.keys[evidencetypes.StoreKey], newApp.keys[evidencetypes.StoreKey], [][]byte{}}, - {app.keys[capabilitytypes.StoreKey], newApp.keys[capabilitytypes.StoreKey], [][]byte{}}, - {app.keys[ibcexported.StoreKey], newApp.keys[ibcexported.StoreKey], [][]byte{}}, - {app.keys[ibctransfertypes.StoreKey], newApp.keys[ibctransfertypes.StoreKey], [][]byte{}}, - {app.keys[authzkeeper.StoreKey], newApp.keys[authzkeeper.StoreKey], [][]byte{}}, - } - - for _, skp := range storeKeysPrefixes { - storeA := ctxA.KVStore(skp.A) - storeB := ctxB.KVStore(skp.B) - - failedKVAs, failedKVBs := sdk.DiffKVStores(storeA, storeB, skp.Prefixes) - require.Equal(t, len(failedKVAs), len(failedKVBs), "unequal sets of key-values to compare") - - fmt.Printf("compared %d different key/value pairs between %s and %s\n", len(failedKVAs), skp.A, skp.B) - require.Equal(t, len(failedKVAs), 0, GetSimulationLog(skp.A.Name(), app.SimulationManager().StoreDecoders, failedKVAs, failedKVBs)) - } -} - -func TestAppSimulationAfterImport(t *testing.T) { - config, db, dir, logger, skip, err := SetupSimulation("leveldb-app-sim", "Simulation") - if skip { - t.Skip("skipping application simulation after import") - } - require.NoError(t, err, "simulation setup failed") - - defer func() { - db.Close() - require.NoError(t, os.RemoveAll(dir)) - }() - - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeTestEncodingConfig(), simtestutil.EmptyAppOptions{}, fauxMerkleModeOpt) - require.Equal(t, "SimApp", app.Name()) - - // Run randomized simulation - stopEarly, simParams, simErr := simulation.SimulateFromSeed( - t, - os.Stdout, - app.BaseApp, - AppStateFn(app.AppCodec(), app.SimulationManager()), - simtypes.RandomAccounts, // Replace with own random account function if using keys other than secp256k1 - SimulationOperations(app, app.AppCodec(), config), - app.ModuleAccountAddrs(), - config, - app.AppCodec(), - ) - - // export state and simParams before the simulation error is checked - err = CheckExportSimulation(app, config, simParams) - require.NoError(t, err) - require.NoError(t, simErr) - - if config.Commit { - PrintStats(db) - } - - if stopEarly { - fmt.Println("can't export or import a zero-validator genesis, exiting test...") - return - } - - fmt.Printf("exporting genesis...\n") - - exported, err := app.ExportAppStateAndValidators(true, []string{}) - require.NoError(t, err) - - fmt.Printf("importing genesis...\n") - - _, newDB, newDir, _, _, err := SetupSimulation("leveldb-app-sim-2", "Simulation-2") - require.NoError(t, err, "simulation setup failed") - - defer func() { - newDB.Close() - require.NoError(t, os.RemoveAll(newDir)) - }() - - newApp := NewSimApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeTestEncodingConfig(), simtestutil.EmptyAppOptions{}, fauxMerkleModeOpt) - require.Equal(t, "SimApp", newApp.Name()) - - newApp.InitChain(abci.RequestInitChain{ - AppStateBytes: exported.AppState, - }) - - _, _, err = simulation.SimulateFromSeed( - t, - os.Stdout, - newApp.GetBaseApp(), - AppStateFn(app.AppCodec(), app.SimulationManager()), - simtypes.RandomAccounts, // Replace with own random account function if using keys other than secp256k1 - SimulationOperations(newApp, newApp.AppCodec(), config), - app.ModuleAccountAddrs(), - config, - app.AppCodec(), - ) - require.NoError(t, err) -} - -// TODO: Make another test for the fuzzer itself, which just has noOp txs -// and doesn't depend on the application. -func TestAppStateDeterminism(t *testing.T) { - if !FlagEnabledValue { - t.Skip("skipping application simulation") - } - - config := NewConfigFromFlags() - config.InitialBlockHeight = 1 - config.ExportParamsPath = "" - config.OnOperation = false - config.AllInvariants = false - config.ChainID = "simulation-app" - - numSeeds := 3 - numTimesToRunPerSeed := 5 - appHashList := make([]json.RawMessage, numTimesToRunPerSeed) - - for i := 0; i < numSeeds; i++ { - config.Seed = rand.Int63() - - for j := 0; j < numTimesToRunPerSeed; j++ { - var logger log.Logger - if FlagVerboseValue { - logger = log.TestingLogger() - } else { - logger = log.NewNopLogger() - } - - db := dbm.NewMemDB() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeTestEncodingConfig(), simtestutil.EmptyAppOptions{}, interBlockCacheOpt()) - - fmt.Printf( - "running non-determinism simulation; seed %d: %d/%d, attempt: %d/%d\n", - config.Seed, i+1, numSeeds, j+1, numTimesToRunPerSeed, - ) - - _, _, err := simulation.SimulateFromSeed( - t, - os.Stdout, - app.BaseApp, - AppStateFn(app.AppCodec(), app.SimulationManager()), - simtypes.RandomAccounts, // Replace with own random account function if using keys other than secp256k1 - SimulationOperations(app, app.AppCodec(), config), - app.ModuleAccountAddrs(), - config, - app.AppCodec(), - ) - require.NoError(t, err) - - if config.Commit { - PrintStats(db) - } - - appHash := app.LastCommitID().Hash - appHashList[j] = appHash - - if j != 0 { - require.Equal( - t, string(appHashList[0]), string(appHashList[j]), - "non-determinism in seed %d: %d/%d, attempt: %d/%d\n", config.Seed, i+1, numSeeds, j+1, numTimesToRunPerSeed, - ) - } - } - } -} diff --git a/app/ibctesting/simapp/simd/cmd/cmd_test.go b/app/ibctesting/simapp/simd/cmd/cmd_test.go deleted file mode 100644 index 5f23fbea1..000000000 --- a/app/ibctesting/simapp/simd/cmd/cmd_test.go +++ /dev/null @@ -1,12 +0,0 @@ -package cmd_test - -// func TestInitCmd(t *testing.T) { -// rootCmd, _ := cmd.NewRootCmd() -// rootCmd.SetArgs([]string{ -// "init", // Test the init cmd -// "simapp-test", // Moniker -// fmt.Sprintf("--%s=%s", cli.FlagOverwrite, "true"), // Overwrite genesis.json, in case it already exists -// }) - -// require.NoError(t, svrcmd.Execute(rootCmd, "simd", simapp.DefaultNodeHome)) -// } diff --git a/app/ibctesting/simapp/simd/cmd/genaccounts.go b/app/ibctesting/simapp/simd/cmd/genaccounts.go deleted file mode 100644 index 0b25662d0..000000000 --- a/app/ibctesting/simapp/simd/cmd/genaccounts.go +++ /dev/null @@ -1,184 +0,0 @@ -package cmd - -import ( - "bufio" - "encoding/json" - "errors" - "fmt" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/crypto/keyring" - "github.com/cosmos/cosmos-sdk/server" - sdk "github.com/cosmos/cosmos-sdk/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - authvesting "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/cosmos/cosmos-sdk/x/genutil" - genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" - "github.com/spf13/cobra" -) - -const ( - flagVestingStart = "vesting-start-time" - flagVestingEnd = "vesting-end-time" - flagVestingAmt = "vesting-amount" -) - -// AddGenesisAccountCmd returns add-genesis-account cobra Command. -func AddGenesisAccountCmd(defaultNodeHome string) *cobra.Command { - cmd := &cobra.Command{ - Use: "add-genesis-account [address_or_key_name] [coin][,[coin]]", - Short: "Add a genesis account to genesis.json", - Long: `Add a genesis account to genesis.json. The provided account must specify -the account address or key name and a list of initial coins. If a key name is given, -the address will be looked up in the local Keybase. The list of initial tokens must -contain valid denominations. Accounts may optionally be supplied with vesting parameters. -`, - Args: cobra.ExactArgs(2), - RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.GetClientContextFromCmd(cmd) - serverCtx := server.GetServerContextFromCmd(cmd) - config := serverCtx.Config - - config.SetRoot(clientCtx.HomeDir) - - var kr keyring.Keyring - addr, err := sdk.AccAddressFromBech32(args[0]) - if err != nil { - inBuf := bufio.NewReader(cmd.InOrStdin()) - keyringBackend, _ := cmd.Flags().GetString(flags.FlagKeyringBackend) - - if keyringBackend != "" && clientCtx.Keyring == nil { - var err error - kr, err = keyring.New(sdk.KeyringServiceName(), keyringBackend, clientCtx.HomeDir, inBuf, clientCtx.Codec) - if err != nil { - return err - } - } else { - kr = clientCtx.Keyring - } - - k, err := kr.Key(args[0]) - if err != nil { - return fmt.Errorf("failed to get address from Keyring: %w", err) - } - - addr, err = k.GetAddress() - if err != nil { - return err - } - } - - coins, err := sdk.ParseCoinsNormalized(args[1]) - if err != nil { - return fmt.Errorf("failed to parse coins: %w", err) - } - - vestingStart, _ := cmd.Flags().GetInt64(flagVestingStart) - vestingEnd, _ := cmd.Flags().GetInt64(flagVestingEnd) - vestingAmtStr, _ := cmd.Flags().GetString(flagVestingAmt) - - vestingAmt, err := sdk.ParseCoinsNormalized(vestingAmtStr) - if err != nil { - return fmt.Errorf("failed to parse vesting amount: %w", err) - } - - // create concrete account type based on input parameters - var genAccount authtypes.GenesisAccount - - balances := banktypes.Balance{Address: addr.String(), Coins: coins.Sort()} - baseAccount := authtypes.NewBaseAccount(addr, nil, 0, 0) - - if !vestingAmt.IsZero() { - baseVestingAccount := authvesting.NewBaseVestingAccount(baseAccount, vestingAmt.Sort(), vestingEnd) - - if (balances.Coins.IsZero() && !baseVestingAccount.OriginalVesting.IsZero()) || - baseVestingAccount.OriginalVesting.IsAnyGT(balances.Coins) { - return errors.New("vesting amount cannot be greater than total amount") - } - - switch { - case vestingStart != 0 && vestingEnd != 0: - genAccount = authvesting.NewContinuousVestingAccountRaw(baseVestingAccount, vestingStart) - - case vestingEnd != 0: - genAccount = authvesting.NewDelayedVestingAccountRaw(baseVestingAccount) - - default: - return errors.New("invalid vesting parameters; must supply start and end time or end time") - } - } else { - genAccount = baseAccount - } - - if err := genAccount.Validate(); err != nil { - return fmt.Errorf("failed to validate new genesis account: %w", err) - } - - genFile := config.GenesisFile() - appState, genDoc, err := genutiltypes.GenesisStateFromGenFile(genFile) - if err != nil { - return fmt.Errorf("failed to unmarshal genesis state: %w", err) - } - - authGenState := authtypes.GetGenesisStateFromAppState(clientCtx.Codec, appState) - - accs, err := authtypes.UnpackAccounts(authGenState.Accounts) - if err != nil { - return fmt.Errorf("failed to get accounts from any: %w", err) - } - - if accs.Contains(addr) { - return fmt.Errorf("cannot add account at existing address %s", addr) - } - - // Add the new account to the set of genesis accounts and sanitize the - // accounts afterwards. - accs = append(accs, genAccount) - accs = authtypes.SanitizeGenesisAccounts(accs) - - genAccs, err := authtypes.PackAccounts(accs) - if err != nil { - return fmt.Errorf("failed to convert accounts into any's: %w", err) - } - authGenState.Accounts = genAccs - - authGenStateBz, err := clientCtx.Codec.MarshalJSON(&authGenState) - if err != nil { - return fmt.Errorf("failed to marshal auth genesis state: %w", err) - } - - appState[authtypes.ModuleName] = authGenStateBz - - bankGenState := banktypes.GetGenesisStateFromAppState(clientCtx.Codec, appState) - bankGenState.Balances = append(bankGenState.Balances, balances) - bankGenState.Balances = banktypes.SanitizeGenesisBalances(bankGenState.Balances) - bankGenState.Supply = bankGenState.Supply.Add(balances.Coins...) - - bankGenStateBz, err := clientCtx.Codec.MarshalJSON(bankGenState) - if err != nil { - return fmt.Errorf("failed to marshal bank genesis state: %w", err) - } - - appState[banktypes.ModuleName] = bankGenStateBz - - appStateJSON, err := json.Marshal(appState) - if err != nil { - return fmt.Errorf("failed to marshal application genesis state: %w", err) - } - - genDoc.AppState = appStateJSON - return genutil.ExportGenesisFile(genDoc, genFile) - }, - } - - cmd.Flags().String(flags.FlagHome, defaultNodeHome, "The application home directory") - cmd.Flags().String(flags.FlagKeyringBackend, flags.DefaultKeyringBackend, "Select keyring's backend (os|file|kwallet|pass|test)") - cmd.Flags().String(flagVestingAmt, "", "amount of coins for vesting accounts") - cmd.Flags().Int64(flagVestingStart, 0, "schedule start time (unix epoch) for vesting accounts") - cmd.Flags().Int64(flagVestingEnd, 0, "schedule end time (unix epoch) for vesting accounts") - flags.AddQueryFlagsToCmd(cmd) - - return cmd -} diff --git a/app/ibctesting/simapp/simd/cmd/genaccounts_test.go b/app/ibctesting/simapp/simd/cmd/genaccounts_test.go deleted file mode 100644 index 97b549c90..000000000 --- a/app/ibctesting/simapp/simd/cmd/genaccounts_test.go +++ /dev/null @@ -1,86 +0,0 @@ -package cmd_test - -import ( - "context" - "fmt" - "testing" - - "github.com/cometbft/cometbft/libs/log" - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/server" - "github.com/cosmos/cosmos-sdk/testutil/testdata" - "github.com/cosmos/cosmos-sdk/types/module" - "github.com/cosmos/cosmos-sdk/x/genutil" - genutiltest "github.com/cosmos/cosmos-sdk/x/genutil/client/testutil" - "github.com/spf13/viper" - "github.com/stretchr/testify/require" - - "github.com/cosmos/ibc-go/v7/testing/simapp" - simcmd "github.com/cosmos/ibc-go/v7/testing/simapp/simd/cmd" -) - -var testMbm = module.NewBasicManager(genutil.AppModuleBasic{}) - -func TestAddGenesisAccountCmd(t *testing.T) { - _, _, addr1 := testdata.KeyTestPubAddr() - tests := []struct { - name string - addr string - denom string - expectErr bool - }{ - { - name: "invalid address", - addr: "", - denom: "1000atom", - expectErr: true, - }, - { - name: "valid address", - addr: addr1.String(), - denom: "1000atom", - expectErr: false, - }, - { - name: "multiple denoms", - addr: addr1.String(), - denom: "1000atom, 2000stake", - expectErr: false, - }, - } - - for _, tc := range tests { - tc := tc - t.Run(tc.name, func(t *testing.T) { - home := t.TempDir() - logger := log.NewNopLogger() - cfg, err := genutiltest.CreateDefaultTendermintConfig(home) - require.NoError(t, err) - - appCodec := simapp.MakeTestEncodingConfig().Marshaler - err = genutiltest.ExecInitCmd(testMbm, home, appCodec) - require.NoError(t, err) - - serverCtx := server.NewContext(viper.New(), cfg, logger) - clientCtx := client.Context{}.WithCodec(appCodec).WithHomeDir(home) - - ctx := context.Background() - ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx) - ctx = context.WithValue(ctx, server.ServerContextKey, serverCtx) - - cmd := simcmd.AddGenesisAccountCmd(home) - cmd.SetArgs([]string{ - tc.addr, - tc.denom, - fmt.Sprintf("--%s=home", flags.FlagHome), - }) - - if tc.expectErr { - require.Error(t, cmd.ExecuteContext(ctx)) - } else { - require.NoError(t, cmd.ExecuteContext(ctx)) - } - }) - } -} diff --git a/app/ibctesting/simapp/simd/cmd/root.go b/app/ibctesting/simapp/simd/cmd/root.go deleted file mode 100644 index 8eaeafdec..000000000 --- a/app/ibctesting/simapp/simd/cmd/root.go +++ /dev/null @@ -1,324 +0,0 @@ -package cmd - -import ( - "errors" - "io" - "os" - "path/filepath" - - sdkcmd "cosmossdk.io/simapp/simd/cmd" - rosettaCmd "cosmossdk.io/tools/rosetta/cmd" - dbm "github.com/cometbft/cometbft-db" - tmcfg "github.com/cometbft/cometbft/config" - tmcli "github.com/cometbft/cometbft/libs/cli" - "github.com/cometbft/cometbft/libs/log" - "github.com/cosmos/cosmos-sdk/baseapp" - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/config" - "github.com/cosmos/cosmos-sdk/client/debug" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/client/keys" - "github.com/cosmos/cosmos-sdk/client/rpc" - "github.com/cosmos/cosmos-sdk/server" - serverconfig "github.com/cosmos/cosmos-sdk/server/config" - servertypes "github.com/cosmos/cosmos-sdk/server/types" - "github.com/cosmos/cosmos-sdk/snapshots" - snapshottypes "github.com/cosmos/cosmos-sdk/snapshots/types" - "github.com/cosmos/cosmos-sdk/store" - sdk "github.com/cosmos/cosmos-sdk/types" - authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli" - "github.com/cosmos/cosmos-sdk/x/auth/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/cosmos/cosmos-sdk/x/crisis" - "github.com/cosmos/cosmos-sdk/x/genutil" - genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli" - genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" - "github.com/spf13/cast" - "github.com/spf13/cobra" - - "github.com/cosmos/ibc-go/v7/testing/simapp" - "github.com/cosmos/ibc-go/v7/testing/simapp/params" -) - -// NewRootCmd creates a new root command for simd. It is called once in the -// main function. -func NewRootCmd() (*cobra.Command, params.EncodingConfig) { - encodingConfig := simapp.MakeTestEncodingConfig() - initClientCtx := client.Context{}. - WithCodec(encodingConfig.Marshaler). - WithInterfaceRegistry(encodingConfig.InterfaceRegistry). - WithTxConfig(encodingConfig.TxConfig). - WithLegacyAmino(encodingConfig.Amino). - WithInput(os.Stdin). - WithAccountRetriever(types.AccountRetriever{}). - WithHomeDir(simapp.DefaultNodeHome). - WithViper("") // In simapp, we don't use any prefix for env variables. - - rootCmd := &cobra.Command{ - Use: "simd", - Short: "simulation app", - PersistentPreRunE: func(cmd *cobra.Command, _ []string) error { - // set the default command outputs - cmd.SetOut(cmd.OutOrStdout()) - cmd.SetErr(cmd.ErrOrStderr()) - - initClientCtx, err := client.ReadPersistentCommandFlags(initClientCtx, cmd.Flags()) - if err != nil { - return err - } - - initClientCtx, err = config.ReadFromClientConfig(initClientCtx) - if err != nil { - return err - } - - if err := client.SetCmdClientContextHandler(initClientCtx, cmd); err != nil { - return err - } - - customAppTemplate, customAppConfig := initAppConfig() - customTMConfig := initTendermintConfig() - - return server.InterceptConfigsPreRunHandler(cmd, customAppTemplate, customAppConfig, customTMConfig) - }, - } - - initRootCmd(rootCmd, encodingConfig) - - return rootCmd, encodingConfig -} - -// initTendermintConfig helps to override default Tendermint Config values. -// return tmcfg.DefaultConfig if no custom configuration is required for the application. -func initTendermintConfig() *tmcfg.Config { - cfg := tmcfg.DefaultConfig() - - // these values put a higher strain on node memory - // cfg.P2P.MaxNumInboundPeers = 100 - // cfg.P2P.MaxNumOutboundPeers = 40 - - return cfg -} - -// initAppConfig helps to override default appConfig template and configs. -// return "", nil if no custom configuration is required for the application. -func initAppConfig() (string, interface{}) { - // The following code snippet is just for reference. - - // WASMConfig defines configuration for the wasm module. - type WASMConfig struct { - // This is the maximum sdk gas (wasm and storage) that we allow for any x/wasm "smart" queries - QueryGasLimit uint64 `mapstructure:"query_gas_limit"` - - // Address defines the gRPC-web server to listen on - LruSize uint64 `mapstructure:"lru_size"` - } - - type CustomAppConfig struct { - serverconfig.Config - - WASM WASMConfig `mapstructure:"wasm"` - } - - // Optionally allow the chain developer to overwrite the SDK's default - // server config. - srvCfg := serverconfig.DefaultConfig() - // The SDK's default minimum gas price is set to "" (empty value) inside - // app.toml. If left empty by validators, the node will halt on startup. - // However, the chain developer can set a default app.toml value for their - // validators here. - // - // In summary: - // - if you leave srvCfg.MinGasPrices = "", all validators MUST tweak their - // own app.toml config, - // - if you set srvCfg.MinGasPrices non-empty, validators CAN tweak their - // own app.toml to override, or use this default value. - // - // In simapp, we set the min gas prices to 0. - srvCfg.MinGasPrices = "0stake" - - customAppConfig := CustomAppConfig{ - Config: *srvCfg, - WASM: WASMConfig{ - LruSize: 1, - QueryGasLimit: 300000, - }, - } - - customAppTemplate := serverconfig.DefaultConfigTemplate + ` -[wasm] -# This is the maximum sdk gas (wasm and storage) that we allow for any x/wasm "smart" queries -query_gas_limit = 300000 -# This is the number of wasm vm instances we keep cached in memory for speed-up -# Warning: this is currently unstable and may lead to crashes, best to keep for 0 unless testing locally -lru_size = 0` - - return customAppTemplate, customAppConfig -} - -func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig) { - cfg := sdk.GetConfig() - cfg.Seal() - gentxModule := simapp.ModuleBasics[genutiltypes.ModuleName].(genutil.AppModuleBasic) - - rootCmd.AddCommand( - genutilcli.InitCmd(simapp.ModuleBasics, simapp.DefaultNodeHome), - genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, simapp.DefaultNodeHome, gentxModule.GenTxValidator), - genutilcli.MigrateGenesisCmd(), - genutilcli.GenTxCmd(simapp.ModuleBasics, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, simapp.DefaultNodeHome), - genutilcli.ValidateGenesisCmd(simapp.ModuleBasics), - AddGenesisAccountCmd(simapp.DefaultNodeHome), - tmcli.NewCompletionCmd(rootCmd, true), - sdkcmd.NewTestnetCmd(simapp.ModuleBasics, banktypes.GenesisBalancesIterator{}), - debug.Cmd(), - config.Cmd(), - ) - - a := appCreator{encodingConfig} - server.AddCommands(rootCmd, simapp.DefaultNodeHome, a.newApp, a.appExport, addModuleInitFlags) - - // add keybase, auxiliary RPC, query, and tx child commands - rootCmd.AddCommand( - rpc.StatusCommand(), - queryCommand(), - txCommand(), - keys.Commands(simapp.DefaultNodeHome), - ) - - // add rosetta - rootCmd.AddCommand(rosettaCmd.RosettaCommand(encodingConfig.InterfaceRegistry, encodingConfig.Marshaler)) -} - -func addModuleInitFlags(startCmd *cobra.Command) { - crisis.AddModuleInitFlags(startCmd) -} - -func queryCommand() *cobra.Command { - cmd := &cobra.Command{ - Use: "query", - Aliases: []string{"q"}, - Short: "Querying subcommands", - DisableFlagParsing: true, - SuggestionsMinimumDistance: 2, - RunE: client.ValidateCmd, - } - - cmd.AddCommand( - authcmd.GetAccountCmd(), - rpc.ValidatorCommand(), - rpc.BlockCommand(), - authcmd.QueryTxsByEventsCmd(), - authcmd.QueryTxCmd(), - ) - - simapp.ModuleBasics.AddQueryCommands(cmd) - cmd.PersistentFlags().String(flags.FlagChainID, "", "The network chain ID") - - return cmd -} - -func txCommand() *cobra.Command { - cmd := &cobra.Command{ - Use: "tx", - Short: "Transactions subcommands", - DisableFlagParsing: true, - SuggestionsMinimumDistance: 2, - RunE: client.ValidateCmd, - } - - cmd.AddCommand( - authcmd.GetSignCommand(), - authcmd.GetSignBatchCommand(), - authcmd.GetMultiSignCommand(), - authcmd.GetMultiSignBatchCmd(), - authcmd.GetValidateSignaturesCommand(), - authcmd.GetBroadcastCommand(), - authcmd.GetEncodeCommand(), - authcmd.GetDecodeCommand(), - ) - - simapp.ModuleBasics.AddTxCommands(cmd) - cmd.PersistentFlags().String(flags.FlagChainID, "", "The network chain ID") - - return cmd -} - -type appCreator struct { - encCfg params.EncodingConfig -} - -// newApp is an appCreator -func (a appCreator) newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts servertypes.AppOptions) servertypes.Application { - var cache sdk.MultiStorePersistentCache - - if cast.ToBool(appOpts.Get(server.FlagInterBlockCache)) { - cache = store.NewCommitKVStoreCacheManager() - } - - skipUpgradeHeights := make(map[int64]bool) - for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) { - skipUpgradeHeights[int64(h)] = true - } - - pruningOpts, err := server.GetPruningOptionsFromFlags(appOpts) - if err != nil { - panic(err) - } - - snapshotDir := filepath.Join(cast.ToString(appOpts.Get(flags.FlagHome)), "data", "snapshots") - snapshotDB, err := dbm.NewDB("metadata", server.GetAppDBBackend(appOpts), snapshotDir) - if err != nil { - panic(err) - } - snapshotStore, err := snapshots.NewStore(snapshotDB, snapshotDir) - if err != nil { - panic(err) - } - - snapshotOptions := snapshottypes.NewSnapshotOptions( - cast.ToUint64(appOpts.Get(server.FlagStateSyncSnapshotInterval)), - cast.ToUint32(appOpts.Get(server.FlagStateSyncSnapshotKeepRecent)), - ) - - return simapp.NewSimApp( - logger, db, traceStore, true, skipUpgradeHeights, - cast.ToString(appOpts.Get(flags.FlagHome)), - cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)), - a.encCfg, - appOpts, - baseapp.SetPruning(pruningOpts), - baseapp.SetMinGasPrices(cast.ToString(appOpts.Get(server.FlagMinGasPrices))), - baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(server.FlagHaltHeight))), - baseapp.SetHaltTime(cast.ToUint64(appOpts.Get(server.FlagHaltTime))), - baseapp.SetMinRetainBlocks(cast.ToUint64(appOpts.Get(server.FlagMinRetainBlocks))), - baseapp.SetInterBlockCache(cache), - baseapp.SetTrace(cast.ToBool(appOpts.Get(server.FlagTrace))), - baseapp.SetIndexEvents(cast.ToStringSlice(appOpts.Get(server.FlagIndexEvents))), - baseapp.SetSnapshot(snapshotStore, snapshotOptions), - ) -} - -// appExport creates a new simapp (optionally at a given height) -// and exports state. -func (a appCreator) appExport( - logger log.Logger, db dbm.DB, traceStore io.Writer, height int64, forZeroHeight bool, jailAllowedAddrs []string, - appOpts servertypes.AppOptions, _ []string, -) (servertypes.ExportedApp, error) { - var simApp *simapp.SimApp - homePath, ok := appOpts.Get(flags.FlagHome).(string) - if !ok || homePath == "" { - return servertypes.ExportedApp{}, errors.New("application home not set") - } - - if height != -1 { - simApp = simapp.NewSimApp(logger, db, traceStore, false, map[int64]bool{}, homePath, uint(1), a.encCfg, appOpts) - - if err := simApp.LoadHeight(height); err != nil { - return servertypes.ExportedApp{}, err - } - } else { - simApp = simapp.NewSimApp(logger, db, traceStore, true, map[int64]bool{}, homePath, uint(1), a.encCfg, appOpts) - } - - return simApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs) -} diff --git a/app/ibctesting/simapp/simd/main.go b/app/ibctesting/simapp/simd/main.go deleted file mode 100644 index 07b2ab968..000000000 --- a/app/ibctesting/simapp/simd/main.go +++ /dev/null @@ -1,25 +0,0 @@ -package main - -import ( - "os" - - "github.com/cosmos/cosmos-sdk/server" - svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" - - "github.com/cosmos/ibc-go/v7/testing/simapp" - "github.com/cosmos/ibc-go/v7/testing/simapp/simd/cmd" -) - -func main() { - rootCmd, _ := cmd.NewRootCmd() - - if err := svrcmd.Execute(rootCmd, "simd", simapp.DefaultNodeHome); err != nil { - switch e := err.(type) { - case server.ErrorCode: - os.Exit(e.Code) - - default: - os.Exit(1) - } - } -} diff --git a/app/ibctesting/simapp/state.go b/app/ibctesting/simapp/state.go deleted file mode 100644 index 29fa19550..000000000 --- a/app/ibctesting/simapp/state.go +++ /dev/null @@ -1,233 +0,0 @@ -package simapp - -import ( - "encoding/json" - "fmt" - "io" - "math/rand" - "os" - "time" - - "cosmossdk.io/math" - tmjson "github.com/cometbft/cometbft/libs/json" - tmtypes "github.com/cometbft/cometbft/types" - "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - simtypes "github.com/cosmos/cosmos-sdk/types/simulation" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - - simappparams "github.com/cosmos/ibc-go/v7/testing/simapp/params" -) - -// AppStateFn returns the initial application state using a genesis or the simulation parameters. -// It panics if the user provides files for both of them. -// If a file is not given for the genesis or the sim params, it creates a randomized one. -func AppStateFn(cdc codec.JSONCodec, simManager *module.SimulationManager) simtypes.AppStateFn { - return func(r *rand.Rand, accs []simtypes.Account, config simtypes.Config, - ) (appState json.RawMessage, simAccs []simtypes.Account, chainID string, genesisTimestamp time.Time) { - if FlagGenesisTimeValue == 0 { - genesisTimestamp = simtypes.RandTimestamp(r) - } else { - genesisTimestamp = time.Unix(FlagGenesisTimeValue, 0) - } - - chainID = config.ChainID - switch { - case config.ParamsFile != "" && config.GenesisFile != "": - panic("cannot provide both a genesis file and a params file") - - case config.GenesisFile != "": - // override the default chain-id from simapp to set it later to the config - genesisDoc, accounts := AppStateFromGenesisFileFn(r, cdc, config.GenesisFile) - - if FlagGenesisTimeValue == 0 { - // use genesis timestamp if no custom timestamp is provided (i.e no random timestamp) - genesisTimestamp = genesisDoc.GenesisTime - } - - appState = genesisDoc.AppState - chainID = genesisDoc.ChainID - simAccs = accounts - - case config.ParamsFile != "": - appParams := make(simtypes.AppParams) - bz, err := os.ReadFile(config.ParamsFile) - if err != nil { - panic(err) - } - - err = json.Unmarshal(bz, &appParams) - if err != nil { - panic(err) - } - appState, simAccs = AppStateRandomizedFn(simManager, r, cdc, accs, genesisTimestamp, appParams) - - default: - appParams := make(simtypes.AppParams) - appState, simAccs = AppStateRandomizedFn(simManager, r, cdc, accs, genesisTimestamp, appParams) - } - - rawState := make(map[string]json.RawMessage) - err := json.Unmarshal(appState, &rawState) - if err != nil { - panic(err) - } - - stakingStateBz, ok := rawState[stakingtypes.ModuleName] - if !ok { - panic("staking genesis state is missing") - } - - stakingState := new(stakingtypes.GenesisState) - err = cdc.UnmarshalJSON(stakingStateBz, stakingState) - if err != nil { - panic(err) - } - // compute not bonded balance - notBondedTokens := sdk.ZeroInt() - for _, val := range stakingState.Validators { - if val.Status != stakingtypes.Unbonded { - continue - } - notBondedTokens = notBondedTokens.Add(val.GetTokens()) - } - notBondedCoins := sdk.NewCoin(stakingState.Params.BondDenom, notBondedTokens) - // edit bank state to make it have the not bonded pool tokens - bankStateBz, ok := rawState[banktypes.ModuleName] - // TODO(fdymylja/jonathan): should we panic in this case - if !ok { - panic("bank genesis state is missing") - } - bankState := new(banktypes.GenesisState) - err = cdc.UnmarshalJSON(bankStateBz, bankState) - if err != nil { - panic(err) - } - - bankState.Balances = append(bankState.Balances, banktypes.Balance{ - Address: authtypes.NewModuleAddress(stakingtypes.NotBondedPoolName).String(), - Coins: sdk.NewCoins(notBondedCoins), - }) - - // change appState back - rawState[stakingtypes.ModuleName] = cdc.MustMarshalJSON(stakingState) - rawState[banktypes.ModuleName] = cdc.MustMarshalJSON(bankState) - - // replace appstate - appState, err = json.Marshal(rawState) - if err != nil { - panic(err) - } - return appState, simAccs, chainID, genesisTimestamp - } -} - -// AppStateRandomizedFn creates calls each module's GenesisState generator function -// and creates the simulation params -func AppStateRandomizedFn( - simManager *module.SimulationManager, r *rand.Rand, cdc codec.JSONCodec, - accs []simtypes.Account, genesisTimestamp time.Time, appParams simtypes.AppParams, -) (json.RawMessage, []simtypes.Account) { - numAccs := int64(len(accs)) - genesisState := NewDefaultGenesisState(cdc) - - // generate a random amount of initial stake coins and a random initial - // number of bonded accounts - var initialStake, numInitiallyBonded int64 - appParams.GetOrGenerate( - cdc, simappparams.StakePerAccount, &initialStake, r, - func(r *rand.Rand) { initialStake = r.Int63n(1e12) }, - ) - appParams.GetOrGenerate( - cdc, simappparams.InitiallyBondedValidators, &numInitiallyBonded, r, - func(r *rand.Rand) { numInitiallyBonded = int64(r.Intn(300)) }, - ) - - if numInitiallyBonded > numAccs { - numInitiallyBonded = numAccs - } - - fmt.Printf( - `Selected randomly generated parameters for simulated genesis: -{ - stake_per_account: "%d", - initially_bonded_validators: "%d" -} -`, initialStake, numInitiallyBonded, - ) - - simState := &module.SimulationState{ - AppParams: appParams, - Cdc: cdc, - Rand: r, - GenState: genesisState, - Accounts: accs, - InitialStake: math.NewInt(initialStake), - NumBonded: numInitiallyBonded, - GenTimestamp: genesisTimestamp, - } - - simManager.GenerateGenesisStates(simState) - - appState, err := json.Marshal(genesisState) - if err != nil { - panic(err) - } - - return appState, accs -} - -// AppStateFromGenesisFileFn util function to generate the genesis AppState -// from a genesis.json file. -func AppStateFromGenesisFileFn(r io.Reader, cdc codec.JSONCodec, genesisFile string) (tmtypes.GenesisDoc, []simtypes.Account) { - bytes, err := os.ReadFile(genesisFile) - if err != nil { - panic(err) - } - - var genesis tmtypes.GenesisDoc - // NOTE: Tendermint uses a custom JSON decoder for GenesisDoc - err = tmjson.Unmarshal(bytes, &genesis) - if err != nil { - panic(err) - } - - var appState GenesisState - err = json.Unmarshal(genesis.AppState, &appState) - if err != nil { - panic(err) - } - - var authGenesis authtypes.GenesisState - if appState[authtypes.ModuleName] != nil { - cdc.MustUnmarshalJSON(appState[authtypes.ModuleName], &authGenesis) - } - - newAccs := make([]simtypes.Account, len(authGenesis.Accounts)) - for i, acc := range authGenesis.Accounts { - // Pick a random private key, since we don't know the actual key - // This should be fine as it's only used for mock Tendermint validators - // and these keys are never actually used to sign by mock Tendermint. - privkeySeed := make([]byte, 15) - if _, err := r.Read(privkeySeed); err != nil { - panic(err) - } - - privKey := secp256k1.GenPrivKeyFromSecret(privkeySeed) - - a, ok := acc.GetCachedValue().(authtypes.AccountI) - if !ok { - panic("expected account") - } - - // create simulator accounts - simAcc := simtypes.Account{PrivKey: privKey, PubKey: privKey.PubKey(), Address: a.GetAddress()} - newAccs[i] = simAcc - } - - return genesis, newAccs -} diff --git a/app/ibctesting/simapp/test_helpers.go b/app/ibctesting/simapp/test_helpers.go deleted file mode 100644 index 332fbee01..000000000 --- a/app/ibctesting/simapp/test_helpers.go +++ /dev/null @@ -1,241 +0,0 @@ -package simapp - -import ( - "encoding/json" - "math/rand" - "testing" - "time" - - dbm "github.com/cometbft/cometbft-db" - abci "github.com/cometbft/cometbft/abci/types" - "github.com/cometbft/cometbft/libs/log" - tmproto "github.com/cometbft/cometbft/proto/tendermint/types" - tmtypes "github.com/cometbft/cometbft/types" - bam "github.com/cosmos/cosmos-sdk/baseapp" - "github.com/cosmos/cosmos-sdk/client" - codectypes "github.com/cosmos/cosmos-sdk/codec/types" - cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" - "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" - cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" - simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" - sdk "github.com/cosmos/cosmos-sdk/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/stretchr/testify/require" - - "github.com/cosmos/ibc-go/v7/testing/mock" -) - -// DefaultConsensusParams defines the default Tendermint consensus params used in -// SimApp testing. -var DefaultConsensusParams = &tmproto.ConsensusParams{ - Block: &tmproto.BlockParams{ - MaxBytes: 200000, - MaxGas: 2000000, - }, - Evidence: &tmproto.EvidenceParams{ - MaxAgeNumBlocks: 302400, - MaxAgeDuration: 504 * time.Hour, // 3 weeks is the max duration - MaxBytes: 10000, - }, - Validator: &tmproto.ValidatorParams{ - PubKeyTypes: []string{ - tmtypes.ABCIPubKeyTypeEd25519, - }, - }, -} - -func setup(withGenesis bool, invCheckPeriod uint) (*SimApp, GenesisState) { - db := dbm.NewMemDB() - encCdc := MakeTestEncodingConfig() - app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, invCheckPeriod, encCdc, simtestutil.EmptyAppOptions{}) - if withGenesis { - return app, NewDefaultGenesisState(encCdc.Marshaler) - } - return app, GenesisState{} -} - -// Setup initializes a new SimApp. A Nop logger is set in SimApp. -func Setup(_ bool) *SimApp { - privVal := mock.NewPV() - pubKey, _ := privVal.GetPubKey() - - // create validator set with single validator - validator := tmtypes.NewValidator(pubKey, 1) - valSet := tmtypes.NewValidatorSet([]*tmtypes.Validator{validator}) - - // generate genesis account - senderPrivKey := secp256k1.GenPrivKey() - acc := authtypes.NewBaseAccount(senderPrivKey.PubKey().Address().Bytes(), senderPrivKey.PubKey(), 0, 0) - balance := banktypes.Balance{ - Address: acc.GetAddress().String(), - Coins: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(100000000000000))), - } - - app := SetupWithGenesisValSet(valSet, []authtypes.GenesisAccount{acc}, balance) - - return app -} - -// SetupWithGenesisValSet initializes a new SimApp with a validator set and genesis accounts -// that also act as delegators. For simplicity, each validator is bonded with a delegation -// of one consensus engine unit in the default token of the simapp from first genesis -// account. A Nop logger is set in SimApp. -func SetupWithGenesisValSet(valSet *tmtypes.ValidatorSet, genAccs []authtypes.GenesisAccount, balances ...banktypes.Balance) *SimApp { - app, genesisState := setup(true, 5) - genesisState = genesisStateWithValSet(app, genesisState, valSet, genAccs, balances...) - - stateBytes, _ := json.MarshalIndent(genesisState, "", " ") - - // init chain will set the validator set and initialize the genesis accounts - app.InitChain( - abci.RequestInitChain{ - Validators: []abci.ValidatorUpdate{}, - ConsensusParams: DefaultConsensusParams, - AppStateBytes: stateBytes, - }, - ) - - // commit genesis changes - app.Commit() - app.BeginBlock(abci.RequestBeginBlock{Header: tmproto.Header{ - Height: app.LastBlockHeight() + 1, - AppHash: app.LastCommitID().Hash, - ValidatorsHash: valSet.Hash(), - NextValidatorsHash: valSet.Hash(), - }}) - - return app -} - -func genesisStateWithValSet(app *SimApp, genesisState GenesisState, - valSet *tmtypes.ValidatorSet, genAccs []authtypes.GenesisAccount, - balances ...banktypes.Balance, -) GenesisState { - // set genesis accounts - authGenesis := authtypes.NewGenesisState(authtypes.DefaultParams(), genAccs) - genesisState[authtypes.ModuleName] = app.AppCodec().MustMarshalJSON(authGenesis) - - validators := make([]stakingtypes.Validator, 0, len(valSet.Validators)) - delegations := make([]stakingtypes.Delegation, 0, len(valSet.Validators)) - - bondAmt := sdk.DefaultPowerReduction - - for _, val := range valSet.Validators { - pk, _ := cryptocodec.FromTmPubKeyInterface(val.PubKey) - pkAny, _ := codectypes.NewAnyWithValue(pk) - validator := stakingtypes.Validator{ - OperatorAddress: sdk.ValAddress(val.Address).String(), - ConsensusPubkey: pkAny, - Jailed: false, - Status: stakingtypes.Bonded, - Tokens: bondAmt, - DelegatorShares: sdk.OneDec(), - Description: stakingtypes.Description{}, - UnbondingHeight: int64(0), - UnbondingTime: time.Unix(0, 0).UTC(), - Commission: stakingtypes.NewCommission(sdk.ZeroDec(), sdk.ZeroDec(), sdk.ZeroDec()), - MinSelfDelegation: sdk.ZeroInt(), - } - validators = append(validators, validator) - delegations = append(delegations, stakingtypes.NewDelegation(genAccs[0].GetAddress(), val.Address.Bytes(), sdk.OneDec())) - - } - // set validators and delegations - stakingGenesis := stakingtypes.NewGenesisState(stakingtypes.DefaultParams(), validators, delegations) - genesisState[stakingtypes.ModuleName] = app.AppCodec().MustMarshalJSON(stakingGenesis) - - totalSupply := sdk.NewCoins() - for _, b := range balances { - // add genesis acc tokens to total supply - totalSupply = totalSupply.Add(b.Coins...) - } - - for range delegations { - // add delegated tokens to total supply - totalSupply = totalSupply.Add(sdk.NewCoin(sdk.DefaultBondDenom, bondAmt)) - } - - // add bonded amount to bonded pool module account - balances = append(balances, banktypes.Balance{ - Address: authtypes.NewModuleAddress(stakingtypes.BondedPoolName).String(), - Coins: sdk.Coins{sdk.NewCoin(sdk.DefaultBondDenom, bondAmt)}, - }) - - // update total supply - bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{}, []banktypes.SendEnabled{}) - genesisState[banktypes.ModuleName] = app.AppCodec().MustMarshalJSON(bankGenesis) - - return genesisState -} - -// SetupWithGenesisAccounts initializes a new SimApp with the provided genesis -// accounts and possible balances. -func SetupWithGenesisAccounts(genAccs []authtypes.GenesisAccount, balances ...banktypes.Balance) *SimApp { - app, genesisState := setup(true, 0) - authGenesis := authtypes.NewGenesisState(authtypes.DefaultParams(), genAccs) - genesisState[authtypes.ModuleName] = app.AppCodec().MustMarshalJSON(authGenesis) - - totalSupply := sdk.NewCoins() - for _, b := range balances { - totalSupply = totalSupply.Add(b.Coins...) - } - - bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{}, []banktypes.SendEnabled{}) - genesisState[banktypes.ModuleName] = app.AppCodec().MustMarshalJSON(bankGenesis) - - stateBytes, err := json.MarshalIndent(genesisState, "", " ") - if err != nil { - panic(err) - } - - app.InitChain( - abci.RequestInitChain{ - Validators: []abci.ValidatorUpdate{}, - ConsensusParams: DefaultConsensusParams, - AppStateBytes: stateBytes, - }, - ) - - app.Commit() - app.BeginBlock(abci.RequestBeginBlock{Header: tmproto.Header{Height: app.LastBlockHeight() + 1}}) - - return app -} - -// SignAndDeliver signs and delivers a transaction. No simulation occurs as the -// ibc testing package causes checkState and deliverState to diverge in block time. -// -// CONTRACT: BeginBlock must be called before this function. -func SignAndDeliver( - t *testing.T, txCfg client.TxConfig, app *bam.BaseApp, _ tmproto.Header, msgs []sdk.Msg, - chainID string, accNums, accSeqs []uint64, _, expPass bool, priv ...cryptotypes.PrivKey, -) (sdk.GasInfo, *sdk.Result, error) { - t.Helper() - tx, err := simtestutil.GenSignedMockTx( - rand.New(rand.NewSource(time.Now().UnixNano())), - txCfg, - msgs, - sdk.Coins{sdk.NewInt64Coin(sdk.DefaultBondDenom, 0)}, - simtestutil.DefaultGenTxGas, - chainID, - accNums, - accSeqs, - priv..., - ) - require.NoError(t, err) - - // Simulate a sending a transaction - gInfo, res, err := app.SimDeliver(txCfg.TxEncoder(), tx) - - if expPass { - require.NoError(t, err) - require.NotNil(t, res) - } else { - require.Error(t, err) - require.Nil(t, res) - } - - return gInfo, res, err -} diff --git a/app/ibctesting/simapp/types.go b/app/ibctesting/simapp/types.go deleted file mode 100644 index ae07721f2..000000000 --- a/app/ibctesting/simapp/types.go +++ /dev/null @@ -1,43 +0,0 @@ -package simapp - -import ( - abci "github.com/cometbft/cometbft/abci/types" - "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/server/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" -) - -// App implements the common methods for a Cosmos SDK-based application -// specific blockchain. -type App interface { - // The assigned name of the app. - Name() string - - // The application types codec. - // NOTE: This shoult be sealed before being returned. - LegacyAmino() *codec.LegacyAmino - - // Application updates every begin block. - BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock - - // Application updates every end block. - EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock - - // Application update at chain (i.e app) initialization. - InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain - - // Loads the app at a given height. - LoadHeight(height int64) error - - // Exports the state of the application for a genesis file. - ExportAppStateAndValidators( - forZeroHeight bool, jailAllowedAddrs []string, - ) (types.ExportedApp, error) - - // All the registered module account addreses. - ModuleAccountAddrs() map[string]bool - - // Helper for the simulation framework. - SimulationManager() *module.SimulationManager -} diff --git a/app/ibctesting/simapp/upgrades/upgrades.go b/app/ibctesting/simapp/upgrades/upgrades.go deleted file mode 100644 index adc81349b..000000000 --- a/app/ibctesting/simapp/upgrades/upgrades.go +++ /dev/null @@ -1,23 +0,0 @@ -package upgrades - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" -) - -const ( - // DefaultUpgradeName is the default upgrade name used for upgrade tests which do not require special handling. - DefaultUpgradeName = "normal upgrade" -) - -// CreateDefaultUpgradeHandler creates an upgrade handler which can be used for regular upgrade tests -// that do not require special logic -func CreateDefaultUpgradeHandler( - mm *module.Manager, - configurator module.Configurator, -) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - return mm.RunMigrations(ctx, configurator, vm) - } -} diff --git a/app/ibctesting/simapp/upgrades/v6/upgrades.go b/app/ibctesting/simapp/upgrades/v6/upgrades.go deleted file mode 100644 index 953bccf37..000000000 --- a/app/ibctesting/simapp/upgrades/v6/upgrades.go +++ /dev/null @@ -1,36 +0,0 @@ -package v6 - -import ( - "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - capabilitykeeper "github.com/cosmos/cosmos-sdk/x/capability/keeper" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - - v6 "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/migrations/v6" -) - -const ( - // UpgradeName defines the on-chain upgrade name for the SimApp v6 upgrade. - UpgradeName = "v6" -) - -// CreateUpgradeHandler creates an upgrade handler for the v6 SimApp upgrade. -// NOTE: The v6.MigrateICS27ChannelCapabiliity function can be omitted if chains do not yet implement an ICS27 controller module -func CreateUpgradeHandler( - mm *module.Manager, - configurator module.Configurator, - cdc codec.BinaryCodec, - capabilityStoreKey *storetypes.KVStoreKey, - capabilityKeeper *capabilitykeeper.Keeper, - moduleName string, -) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - if err := v6.MigrateICS27ChannelCapability(ctx, cdc, capabilityStoreKey, capabilityKeeper, moduleName); err != nil { - return nil, err - } - - return mm.RunMigrations(ctx, configurator, vm) - } -} diff --git a/app/ibctesting/simapp/upgrades/v7/upgrades.go b/app/ibctesting/simapp/upgrades/v7/upgrades.go deleted file mode 100644 index 4621c0633..000000000 --- a/app/ibctesting/simapp/upgrades/v7/upgrades.go +++ /dev/null @@ -1,42 +0,0 @@ -package v7 - -import ( - "github.com/cosmos/cosmos-sdk/baseapp" - "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - consensusparamskeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper" - paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper" - paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - - clientkeeper "github.com/cosmos/ibc-go/v7/modules/core/02-client/keeper" - ibctmmigrations "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint/migrations" -) - -const ( - // UpgradeName defines the on-chain upgrade name for the SimApp v7 upgrade. - UpgradeName = "v7" -) - -// CreateUpgradeHandler creates an upgrade handler for the v7 SimApp upgrade. -func CreateUpgradeHandler( - mm *module.Manager, - configurator module.Configurator, - cdc codec.BinaryCodec, - clientKeeper clientkeeper.Keeper, - consensusParamsKeeper consensusparamskeeper.Keeper, - paramsKeeper paramskeeper.Keeper, -) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - // OPTIONAL: prune expired tendermint consensus states to save storage space - if _, err := ibctmmigrations.PruneExpiredConsensusStates(ctx, cdc, clientKeeper); err != nil { - return nil, err - } - - legacyBaseAppSubspace := paramsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(paramstypes.ConsensusParamsKeyTable()) - baseapp.MigrateParams(ctx, legacyBaseAppSubspace, &consensusParamsKeeper) - - return mm.RunMigrations(ctx, configurator, vm) - } -} diff --git a/app/ibctesting/simapp/utils.go b/app/ibctesting/simapp/utils.go deleted file mode 100644 index 70b354e17..000000000 --- a/app/ibctesting/simapp/utils.go +++ /dev/null @@ -1,129 +0,0 @@ -package simapp - -import ( - "encoding/json" - "fmt" - "os" - - dbm "github.com/cometbft/cometbft-db" - "github.com/cometbft/cometbft/libs/log" - "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/kv" - "github.com/cosmos/cosmos-sdk/types/module" - simtypes "github.com/cosmos/cosmos-sdk/types/simulation" -) - -// SetupSimulation creates the config, db (levelDB), temporary directory and logger for -// the simulation tests. If `FlagEnabledValue` is false it skips the current test. -// Returns error on an invalid db intantiation or temp dir creation. -func SetupSimulation(dirPrefix, dbName string) (simtypes.Config, dbm.DB, string, log.Logger, bool, error) { - if !FlagEnabledValue { - return simtypes.Config{}, nil, "", nil, true, nil - } - - config := NewConfigFromFlags() - config.ChainID = "simulation-app" - - var logger log.Logger - if FlagVerboseValue { - logger = log.TestingLogger() - } else { - logger = log.NewNopLogger() - } - - dir, err := os.MkdirTemp("", dirPrefix) - if err != nil { - return simtypes.Config{}, nil, "", nil, false, err - } - - db, err := dbm.NewDB(dbName, dbm.BackendType(config.DBBackend), dir) - if err != nil { - return simtypes.Config{}, nil, "", nil, false, err - } - - return config, db, dir, logger, false, nil -} - -// SimulationOperations retrieves the simulation params from the provided file path -// and returns all the modules weighted operations -func SimulationOperations(app App, cdc codec.JSONCodec, config simtypes.Config) []simtypes.WeightedOperation { - simState := module.SimulationState{ - AppParams: make(simtypes.AppParams), - Cdc: cdc, - } - - if config.ParamsFile != "" { - bz, err := os.ReadFile(config.ParamsFile) - if err != nil { - panic(err) - } - - err = json.Unmarshal(bz, &simState.AppParams) - if err != nil { - panic(err) - } - } - - //nolint: staticcheck // SA1019: app.SimulationManager().GetProposalContents is deprecated: Use GetProposalMsgs instead. GetProposalContents returns each module's proposal content generator function with their default operation weight and key. - simState.LegacyProposalContents = app.SimulationManager().GetProposalContents(simState) - return app.SimulationManager().WeightedOperations(simState) -} - -// CheckExportSimulation exports the app state and simulation parameters to JSON -// if the export paths are defined. -func CheckExportSimulation( - app App, config simtypes.Config, params simtypes.Params, -) error { - if config.ExportStatePath != "" { - fmt.Println("exporting app state...") - exported, err := app.ExportAppStateAndValidators(false, nil) - if err != nil { - return err - } - - if err := os.WriteFile(config.ExportStatePath, []byte(exported.AppState), 0o600); err != nil { - return err - } - } - - if config.ExportParamsPath != "" { - fmt.Println("exporting simulation params...") - paramsBz, err := json.MarshalIndent(params, "", " ") - if err != nil { - return err - } - - if err := os.WriteFile(config.ExportParamsPath, paramsBz, 0o600); err != nil { - return err - } - } - return nil -} - -// PrintStats prints the corresponding statistics from the app DB. -func PrintStats(db dbm.DB) { - fmt.Println("\nLevelDB Stats") - fmt.Println(db.Stats()["leveldb.stats"]) - fmt.Println("LevelDB cached block size", db.Stats()["leveldb.cachedblock"]) -} - -// GetSimulationLog unmarshals the KVPair's Value to the corresponding type based on the -// each's module store key and the prefix bytes of the KVPair's key. -func GetSimulationLog(storeName string, sdr sdk.StoreDecoderRegistry, kvAs, kvBs []kv.Pair) (log string) { - for i := 0; i < len(kvAs); i++ { - if len(kvAs[i].Value) == 0 && len(kvBs[i].Value) == 0 { - // skip if the value doesn't have any bytes - continue - } - - decoder, ok := sdr[storeName] - if ok { - log += decoder(kvAs[i], kvBs[i]) - } else { - log += fmt.Sprintf("store A %X => %X\nstore B %X => %X\n", kvAs[i].Key, kvAs[i].Value, kvBs[i].Key, kvBs[i].Value) - } - } - - return log -} diff --git a/app/ibctesting/simapp/utils_test.go b/app/ibctesting/simapp/utils_test.go deleted file mode 100644 index 7389c3a23..000000000 --- a/app/ibctesting/simapp/utils_test.go +++ /dev/null @@ -1,59 +0,0 @@ -package simapp - -import ( - "fmt" - "testing" - - "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/std" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/kv" - "github.com/cosmos/cosmos-sdk/types/module" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/stretchr/testify/require" -) - -func makeCodec(bm module.BasicManager) *codec.LegacyAmino { - cdc := codec.NewLegacyAmino() - - bm.RegisterLegacyAminoCodec(cdc) - std.RegisterLegacyAminoCodec(cdc) - - return cdc -} - -func TestGetSimulationLog(t *testing.T) { - cdc := makeCodec(ModuleBasics) - - decoders := make(sdk.StoreDecoderRegistry) - decoders[authtypes.StoreKey] = func(kvAs, kvBs kv.Pair) string { return "10" } - - tests := []struct { - store string - kvPairs []kv.Pair - expectedLog string - }{ - { - "Empty", - []kv.Pair{{}}, - "", - }, - { - authtypes.StoreKey, - []kv.Pair{{Key: authtypes.GlobalAccountNumberKey, Value: cdc.MustMarshal(uint64(10))}}, - "10", - }, - { - "OtherStore", - []kv.Pair{{Key: []byte("key"), Value: []byte("value")}}, - fmt.Sprintf("store A %X => %X\nstore B %X => %X\n", []byte("key"), []byte("value"), []byte("key"), []byte("value")), - }, - } - - for _, tt := range tests { - tt := tt - t.Run(tt.store, func(t *testing.T) { - require.Equal(t, tt.expectedLog, GetSimulationLog(tt.store, decoders, tt.kvPairs, tt.kvPairs), tt.store) - }) - } -} diff --git a/app/ibctesting/value.go b/app/ibctesting/value.go index ed2efd189..acd77b071 100644 --- a/app/ibctesting/value.go +++ b/app/ibctesting/value.go @@ -7,13 +7,15 @@ package ibctesting import ( "time" + sdkmath "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" - ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - connectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types" - ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" - "github.com/cosmos/ibc-go/v7/testing/mock" - "github.com/cosmos/ibc-go/v7/testing/simapp" + ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + connectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types" + ibctm "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint" + "github.com/cosmos/ibc-go/v8/testing/mock" + "github.com/cosmos/ibc-go/v8/testing/simapp" ) const ( @@ -48,12 +50,12 @@ var ( // DefaultTrustLevel sets params variables used to create a TM client DefaultTrustLevel = ibctm.DefaultTrustLevel - TestCoin = sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(100)) + TestCoin = sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(100)) TestCoins = sdk.NewCoins(TestCoin) UpgradePath = []string{"upgrade", "upgradedIBCState"} - ConnectionVersion = connectiontypes.ExportedVersionsToProto(connectiontypes.GetCompatibleVersions())[0] + ConnectionVersion = connectiontypes.GetCompatibleVersions()[0] MockAcknowledgement = mock.MockAcknowledgement.Acknowledgement() MockPacketData = mock.MockPacketData diff --git a/app/ibctesting/wasm.go b/app/ibctesting/wasm.go index 55e567049..dda99a1ff 100644 --- a/app/ibctesting/wasm.go +++ b/app/ibctesting/wasm.go @@ -1,25 +1,19 @@ package ibctesting import ( - "fmt" - "time" - - "github.com/stretchr/testify/require" - - tmtypes "github.com/cometbft/cometbft/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - wasmtypes "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/types" + wasmtypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" ) // ConstructUpdateWasmClientHeader will construct a valid 08-wasm Header with a zero height // to update the light client on the source chain. -func (chain *TestChain) ConstructUpdateWasmClientHeader(counterparty *TestChain, clientID string) (*wasmtypes.Header, error) { +func (chain *TestChain) ConstructUpdateWasmClientHeader(counterparty *TestChain, clientID string) (*wasmtypes.ClientMessage, error) { return chain.ConstructUpdateWasmClientHeaderWithTrustedHeight(counterparty, clientID, clienttypes.ZeroHeight()) } // ConstructUpdateWasmClientHeaderWithTrustedHeight will construct a valid 08-wasm Header // to update the light client on the source chain. -func (chain *TestChain) ConstructUpdateWasmClientHeaderWithTrustedHeight(counterparty *TestChain, clientID string, trustedHeight clienttypes.Height) (*wasmtypes.Header, error) { +func (chain *TestChain) ConstructUpdateWasmClientHeaderWithTrustedHeight(counterparty *TestChain, clientID string, trustedHeight clienttypes.Height) (*wasmtypes.ClientMessage, error) { tmHeader, err := chain.ConstructUpdateTMClientHeaderWithTrustedHeight(counterparty, clientID, trustedHeight) if err != nil { return nil, err @@ -30,26 +24,21 @@ func (chain *TestChain) ConstructUpdateWasmClientHeaderWithTrustedHeight(counter return nil, err } - height, ok := tmHeader.GetHeight().(clienttypes.Height) - if !ok { - return nil, fmt.Errorf("error casting exported height to clienttypes height") - } - wasmHeader := wasmtypes.Header{ - Data: tmWasmHeaderData, - Height: height, + wasmHeader := wasmtypes.ClientMessage{ + Data: tmWasmHeaderData, } return &wasmHeader, nil } -func (chain *TestChain) CreateWasmClientHeader(chainID string, blockHeight int64, trustedHeight clienttypes.Height, timestamp time.Time, tmValSet, _, tmTrustedVals *tmtypes.ValidatorSet, signers []tmtypes.PrivValidator) *wasmtypes.Header { - tmHeader := chain.CreateTMClientHeader(chainID, blockHeight, trustedHeight, timestamp, tmValSet, tmTrustedVals, signers) - tmWasmHeaderData, err := chain.Codec.MarshalInterface(tmHeader) - require.NoError(chain.t, err) - height, ok := tmHeader.GetHeight().(clienttypes.Height) - require.True(chain.t, ok) - return &wasmtypes.Header{ - Data: tmWasmHeaderData, - Height: height, - } -} +// func (chain *TestChain) CreateWasmClientHeader(chainID string, blockHeight int64, trustedHeight clienttypes.Height, timestamp time.Time, tmValSet, _, tmTrustedVals *tmtypes.ValidatorSet, signers []tmtypes.PrivValidator) *wasmtypes.Header { +// tmHeader := chain.CreateTMClientHeader(chainID, blockHeight, trustedHeight, timestamp, tmValSet, tmTrustedVals, signers) +// tmWasmHeaderData, err := chain.Codec.MarshalInterface(tmHeader) +// require.NoError(chain.t, err) +// height, ok := tmHeader.GetHeight().(clienttypes.Height) +// require.True(chain.t, ok) +// return &wasmtypes.Header{ +// Data: tmWasmHeaderData, +// Height: height, +// } +//} diff --git a/app/keepers/keepers.go b/app/keepers/keepers.go index 588fea85f..7d5628563 100644 --- a/app/keepers/keepers.go +++ b/app/keepers/keepers.go @@ -2,20 +2,33 @@ package keepers import ( "fmt" + "math" "path/filepath" "strings" + "github.com/cosmos/cosmos-sdk/x/params" + + circuitkeeper "cosmossdk.io/x/circuit/keeper" + circuittypes "cosmossdk.io/x/circuit/types" + icacontrollertypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types" + ibcconnectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types" + + "cosmossdk.io/log" + "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/codec" + "github.com/cosmos/cosmos-sdk/runtime" sdk "github.com/cosmos/cosmos-sdk/types" - porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" + porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" + ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" + authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec" authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - capabilitykeeper "github.com/cosmos/cosmos-sdk/x/capability/keeper" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" + capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" crisiskeeper "github.com/cosmos/cosmos-sdk/x/crisis/keeper" crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" @@ -23,11 +36,11 @@ import ( distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - evidencekeeper "github.com/cosmos/cosmos-sdk/x/evidence/keeper" - evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" + evidencekeeper "cosmossdk.io/x/evidence/keeper" + evidencetypes "cosmossdk.io/x/evidence/types" - "github.com/cosmos/cosmos-sdk/x/feegrant" - feegrantkeeper "github.com/cosmos/cosmos-sdk/x/feegrant/keeper" + "cosmossdk.io/x/feegrant" + feegrantkeeper "cosmossdk.io/x/feegrant/keeper" govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" @@ -37,7 +50,6 @@ import ( "github.com/cosmos/cosmos-sdk/x/group" groupkeeper "github.com/cosmos/cosmos-sdk/x/group/keeper" - "github.com/cosmos/cosmos-sdk/x/params" paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper" paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" paramproposal "github.com/cosmos/cosmos-sdk/x/params/types/proposal" @@ -48,35 +60,28 @@ import ( stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" customstaking "github.com/notional-labs/composable/v6/custom/staking/keeper" - "github.com/cosmos/cosmos-sdk/x/upgrade" - upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + upgradekeeper "cosmossdk.io/x/upgrade/keeper" + upgradetypes "cosmossdk.io/x/upgrade/types" authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper" - icahost "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host" - icahostkeeper "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/keeper" - icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types" - "github.com/cosmos/ibc-go/v7/modules/apps/transfer" - - ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - ibcclient "github.com/cosmos/ibc-go/v7/modules/core/02-client" - ibcclienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - ibchost "github.com/cosmos/ibc-go/v7/modules/core/exported" - ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" + icahost "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host" + icahostkeeper "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/keeper" + icahosttypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types" + "github.com/cosmos/ibc-go/v8/modules/apps/transfer" + + icq "github.com/cosmos/ibc-apps/modules/async-icq/v8" + icqkeeper "github.com/cosmos/ibc-apps/modules/async-icq/v8/keeper" + icqtypes "github.com/cosmos/ibc-apps/modules/async-icq/v8/types" + ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper" customibctransferkeeper "github.com/notional-labs/composable/v6/custom/ibc-transfer/keeper" - icq "github.com/strangelove-ventures/async-icq/v7" - icqkeeper "github.com/strangelove-ventures/async-icq/v7/keeper" - icqtypes "github.com/strangelove-ventures/async-icq/v7/types" custombankkeeper "github.com/notional-labs/composable/v6/custom/bank/keeper" - router "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward" - routerkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/keeper" - routertypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types" - - alliancemodule "github.com/terra-money/alliance/x/alliance" - alliancemodulekeeper "github.com/terra-money/alliance/x/alliance/keeper" - alliancemoduletypes "github.com/terra-money/alliance/x/alliance/types" + pfm "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward" + pfmkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/keeper" + pfmtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/types" transfermiddleware "github.com/notional-labs/composable/v6/x/transfermiddleware" transfermiddlewarekeeper "github.com/notional-labs/composable/v6/x/transfermiddleware/keeper" @@ -95,12 +100,15 @@ import ( mintkeeper "github.com/notional-labs/composable/v6/x/mint/keeper" minttypes "github.com/notional-labs/composable/v6/x/mint/types" + storetypes "cosmossdk.io/store/types" "github.com/CosmWasm/wasmd/x/wasm" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" servertypes "github.com/cosmos/cosmos-sdk/server/types" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - wasm08Keeper "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/keeper" - wasm08types "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/types" + wasm08Keeper "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/keeper" + wasm08types "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" + + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" + wasmvm "github.com/CosmWasm/wasmvm" ibc_hooks "github.com/notional-labs/composable/v6/x/ibc-hooks" ibchookskeeper "github.com/notional-labs/composable/v6/x/ibc-hooks/keeper" @@ -113,7 +121,8 @@ import ( ) const ( - authorityAddress = "pica10556m38z4x6pqalr9rl5ytf3cff8q46nf36090" // convert from: centauri10556m38z4x6pqalr9rl5ytf3cff8q46nk85k9m + AccountAddressPrefix = "pica" + authorityAddress = "pica10556m38z4x6pqalr9rl5ytf3cff8q46nf36090" // convert from: centauri10556m38z4x6pqalr9rl5ytf3cff8q46nk85k9m ) type AppKeepers struct { @@ -143,7 +152,7 @@ type AppKeepers struct { AuthzKeeper authzkeeper.Keeper GroupKeeper groupkeeper.Keeper Wasm08Keeper wasm08Keeper.Keeper // TODO: use this name ? - WasmKeeper wasm.Keeper + WasmKeeper wasmkeeper.Keeper IBCHooksKeeper *ibchookskeeper.Keeper Ics20WasmHooks *ibc_hooks.WasmHooks HooksICS4Wrapper ibc_hooks.ICS4Middleware @@ -157,15 +166,17 @@ type AppKeepers struct { // this line is used by starport scaffolding # stargate/app/keeperDeclaration TransferMiddlewareKeeper transfermiddlewarekeeper.Keeper TxBoundaryKeepper txBoundaryKeeper.Keeper - RouterKeeper *routerkeeper.Keeper + PfmKeeper *pfmkeeper.Keeper RatelimitKeeper ratelimitmodulekeeper.Keeper - AllianceKeeper alliancemodulekeeper.Keeper StakingMiddlewareKeeper stakingmiddleware.Keeper IbcTransferMiddlewareKeeper ibctransfermiddleware.Keeper + + CircuitKeeper circuitkeeper.Keeper } // InitNormalKeepers initializes all 'normal' keepers. func (appKeepers *AppKeepers) InitNormalKeepers( + logger log.Logger, appCodec codec.Codec, cdc *codec.LegacyAmino, bApp *baseapp.BaseApp, @@ -174,28 +185,32 @@ func (appKeepers *AppKeepers) InitNormalKeepers( skipUpgradeHeights map[int64]bool, homePath string, appOpts servertypes.AppOptions, - wasmOpts []wasm.Option, - enabledProposals []wasm.ProposalType, ) { + govModAddress := authtypes.NewModuleAddress(govtypes.ModuleName).String() // add keepers appKeepers.AccountKeeper = authkeeper.NewAccountKeeper( - appCodec, appKeepers.keys[authtypes.StoreKey], authtypes.ProtoBaseAccount, maccPerms, - sdk.GetConfig().GetBech32AccountAddrPrefix(), authtypes.NewModuleAddress(govtypes.ModuleName).String(), + appCodec, runtime.NewKVStoreService(appKeepers.keys[authtypes.StoreKey]), authtypes.ProtoBaseAccount, maccPerms, authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()), AccountAddressPrefix, govModAddress, ) appKeepers.BankKeeper = custombankkeeper.NewBaseKeeper( - appCodec, appKeepers.keys[banktypes.StoreKey], appKeepers.AccountKeeper, appKeepers.BlacklistedModuleAccountAddrs(maccPerms), &appKeepers.TransferMiddlewareKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), + logger, + appCodec, + runtime.NewKVStoreService(appKeepers.keys[banktypes.StoreKey]), + appKeepers.AccountKeeper, + appKeepers.BlacklistedModuleAccountAddrs(maccPerms), + &appKeepers.TransferMiddlewareKeeper, + govModAddress, ) appKeepers.AuthzKeeper = authzkeeper.NewKeeper( - appKeepers.keys[authzkeeper.StoreKey], + runtime.NewKVStoreService(appKeepers.keys[authzkeeper.StoreKey]), appCodec, bApp.MsgServiceRouter(), appKeepers.AccountKeeper, ) - appKeepers.StakingMiddlewareKeeper = stakingmiddleware.NewKeeper(appCodec, appKeepers.keys[stakingmiddlewaretypes.StoreKey], authtypes.NewModuleAddress(govtypes.ModuleName).String()) - appKeepers.IbcTransferMiddlewareKeeper = ibctransfermiddleware.NewKeeper(appCodec, appKeepers.keys[ibctransfermiddlewaretypes.StoreKey], authtypes.NewModuleAddress(govtypes.ModuleName).String(), + appKeepers.StakingMiddlewareKeeper = stakingmiddleware.NewKeeper(appCodec, appKeepers.keys[stakingmiddlewaretypes.StoreKey], govModAddress) + appKeepers.IbcTransferMiddlewareKeeper = ibctransfermiddleware.NewKeeper(appCodec, appKeepers.keys[ibctransfermiddlewaretypes.StoreKey], govModAddress, []string{ "pica1ay9y5uns9khw2kzaqr3r33v2pkuptfnnunlt5x", "pica14lz7gaw92valqjearnye4shex7zg2p05yfguqm", @@ -204,25 +219,40 @@ func (appKeepers *AppKeepers) InitNormalKeepers( }) appKeepers.StakingKeeper = customstaking.NewKeeper( - appCodec, appKeepers.keys[stakingtypes.StoreKey], appKeepers.AccountKeeper, appKeepers.BankKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), &appKeepers.StakingMiddlewareKeeper, + appCodec, + runtime.NewKVStoreService(appKeepers.keys[stakingtypes.StoreKey]), + appKeepers.AccountKeeper, + appKeepers.BankKeeper, + govModAddress, + &appKeepers.StakingMiddlewareKeeper, + authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()), + authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ConsensusAddrPrefix()), ) appKeepers.MintKeeper = mintkeeper.NewKeeper( appCodec, appKeepers.keys[minttypes.StoreKey], appKeepers.StakingKeeper, - appKeepers.AccountKeeper, appKeepers.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String(), + appKeepers.AccountKeeper, appKeepers.BankKeeper, authtypes.FeeCollectorName, govModAddress, ) appKeepers.DistrKeeper = distrkeeper.NewKeeper( - appCodec, appKeepers.keys[distrtypes.StoreKey], appKeepers.AccountKeeper, appKeepers.BankKeeper, - appKeepers.StakingKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String(), + appCodec, runtime.NewKVStoreService(appKeepers.keys[distrtypes.StoreKey]), appKeepers.AccountKeeper, appKeepers.BankKeeper, + appKeepers.StakingKeeper, authtypes.FeeCollectorName, govModAddress, ) appKeepers.StakingKeeper.RegisterKeepers(appKeepers.DistrKeeper, appKeepers.MintKeeper) appKeepers.SlashingKeeper = slashingkeeper.NewKeeper( - appCodec, cdc, appKeepers.keys[slashingtypes.StoreKey], appKeepers.StakingKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), + appCodec, cdc, runtime.NewKVStoreService(appKeepers.keys[slashingtypes.StoreKey]), appKeepers.StakingKeeper, govModAddress, + ) + + appKeepers.CircuitKeeper = circuitkeeper.NewKeeper( + appCodec, + runtime.NewKVStoreService(appKeepers.keys[circuittypes.StoreKey]), + authtypes.NewModuleAddress(govtypes.ModuleName).String(), + appKeepers.AccountKeeper.AddressCodec(), ) + bApp.SetCircuitBreaker(&appKeepers.CircuitKeeper) - appKeepers.CrisisKeeper = crisiskeeper.NewKeeper(appCodec, appKeepers.keys[crisistypes.StoreKey], - invCheckPeriod, appKeepers.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String(), + appKeepers.CrisisKeeper = crisiskeeper.NewKeeper(appCodec, runtime.NewKVStoreService(appKeepers.keys[crisistypes.StoreKey]), + invCheckPeriod, appKeepers.BankKeeper, authtypes.FeeCollectorName, govModAddress, appKeepers.AccountKeeper.AddressCodec(), ) groupConfig := group.DefaultConfig() @@ -238,51 +268,38 @@ func (appKeepers *AppKeepers) InitNormalKeepers( groupConfig, ) - appKeepers.FeeGrantKeeper = feegrantkeeper.NewKeeper(appCodec, appKeepers.keys[feegrant.StoreKey], appKeepers.AccountKeeper) - appKeepers.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, appKeepers.keys[upgradetypes.StoreKey], appCodec, homePath, bApp, authtypes.NewModuleAddress(govtypes.ModuleName).String()) + appKeepers.FeeGrantKeeper = feegrantkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(appKeepers.keys[feegrant.StoreKey]), appKeepers.AccountKeeper) + appKeepers.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, runtime.NewKVStoreService(appKeepers.keys[upgradetypes.StoreKey]), appCodec, homePath, bApp, govModAddress) - appKeepers.AllianceKeeper = alliancemodulekeeper.NewKeeper( - appCodec, - appKeepers.keys[alliancemoduletypes.StoreKey], - appKeepers.GetSubspace(alliancemoduletypes.ModuleName), - appKeepers.AccountKeeper, - appKeepers.BankKeeper, - appKeepers.StakingKeeper, - appKeepers.DistrKeeper, - ) - - appKeepers.BankKeeper.RegisterKeepers(appKeepers.AllianceKeeper, appKeepers.StakingKeeper) + appKeepers.BankKeeper.RegisterKeepers(appKeepers.AccountKeeper, appKeepers.StakingKeeper) // register the staking hooks // NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks appKeepers.StakingKeeper.SetHooks( - stakingtypes.NewMultiStakingHooks(appKeepers.DistrKeeper.Hooks(), appKeepers.SlashingKeeper.Hooks(), appKeepers.AllianceKeeper.StakingHooks()), + stakingtypes.NewMultiStakingHooks(appKeepers.DistrKeeper.Hooks(), appKeepers.SlashingKeeper.Hooks()), ) // ... other modules keepers // Create IBC Keeper appKeepers.IBCKeeper = ibckeeper.NewKeeper( - appCodec, appKeepers.keys[ibchost.StoreKey], appKeepers.GetSubspace(ibchost.ModuleName), appKeepers.StakingKeeper, appKeepers.UpgradeKeeper, appKeepers.ScopedIBCKeeper, + appCodec, + appKeepers.keys[ibcexported.StoreKey], + appKeepers.GetSubspace(ibcexported.ModuleName), + appKeepers.StakingKeeper, + appKeepers.UpgradeKeeper, + appKeepers.ScopedIBCKeeper, + govModAddress, ) - - appKeepers.Wasm08Keeper = wasm08Keeper.NewKeeper(appCodec, appKeepers.keys[wasm08types.StoreKey], authorityAddress, homePath, &appKeepers.IBCKeeper.ClientKeeper) - // ICA Host keeper appKeepers.ICAHostKeeper = icahostkeeper.NewKeeper( appCodec, appKeepers.keys[icahosttypes.StoreKey], appKeepers.GetSubspace(icahosttypes.SubModuleName), appKeepers.IBCKeeper.ChannelKeeper, - appKeepers.IBCKeeper.ChannelKeeper, &appKeepers.IBCKeeper.PortKeeper, - appKeepers.AccountKeeper, appKeepers.ScopedICAHostKeeper, bApp.MsgServiceRouter(), + appKeepers.IBCKeeper.ChannelKeeper, appKeepers.IBCKeeper.PortKeeper, + appKeepers.AccountKeeper, appKeepers.ScopedICAHostKeeper, bApp.MsgServiceRouter(), govModAddress, ) icaHostStack := icahost.NewIBCModule(appKeepers.ICAHostKeeper) - // Create Transfer Keepers - // * SendPacket. Originates from the transferKeeper and goes up the stack: - // transferKeeper.SendPacket -> transfermiddleware.SendPacket -> ibc_rate_limit.SendPacket -> ibc_hooks.SendPacket -> channel.SendPacket - // * RecvPacket, message that originates from core IBC and goes down to app, the flow is the other way - // channel.RecvPacket -> ibc_hooks.OnRecvPacket -> ibc_rate_limit.OnRecvPacket -> forward.OnRecvPacket -> transfermiddleware_OnRecvPacket -> transfer.OnRecvPacket - // hooksKeeper := ibchookskeeper.NewKeeper( appKeepers.keys[ibchookstypes.StoreKey], ) @@ -304,25 +321,25 @@ func (appKeepers *AppKeepers) InitNormalKeepers( &appKeepers.TransferKeeper, appKeepers.BankKeeper, &appKeepers.IbcTransferMiddlewareKeeper, - authorityAddress, + govModAddress, ) appKeepers.TxBoundaryKeepper = txBoundaryKeeper.NewKeeper( appCodec, appKeepers.keys[txBoundaryTypes.StoreKey], - authorityAddress, + govModAddress, ) - appKeepers.RouterKeeper = routerkeeper.NewKeeper( + appKeepers.PfmKeeper = pfmkeeper.NewKeeper( appCodec, - appKeepers.keys[routertypes.StoreKey], - appKeepers.GetSubspace(routertypes.ModuleName), + appKeepers.keys[pfmtypes.StoreKey], appKeepers.TransferKeeper, appKeepers.IBCKeeper.ChannelKeeper, &appKeepers.DistrKeeper, appKeepers.BankKeeper, - appKeepers.TransferMiddlewareKeeper, appKeepers.IBCKeeper.ChannelKeeper, + appKeepers.TransferMiddlewareKeeper, + govModAddress, ) appKeepers.TransferKeeper = customibctransferkeeper.NewKeeper( @@ -330,15 +347,15 @@ func (appKeepers *AppKeepers) InitNormalKeepers( appKeepers.GetSubspace(ibctransfertypes.ModuleName), &appKeepers.TransferMiddlewareKeeper, // ICS4Wrapper appKeepers.IBCKeeper.ChannelKeeper, - &appKeepers.IBCKeeper.PortKeeper, + appKeepers.IBCKeeper.PortKeeper, appKeepers.AccountKeeper, appKeepers.BankKeeper, appKeepers.ScopedTransferKeeper, &appKeepers.IbcTransferMiddlewareKeeper, &appKeepers.BankKeeper, + govModAddress, ) - - appKeepers.RouterKeeper.SetTransferKeeper(appKeepers.TransferKeeper) + appKeepers.PfmKeeper.SetTransferKeeper(appKeepers.TransferKeeper) appKeepers.RatelimitKeeper = *ratelimitmodulekeeper.NewKeeper( appCodec, @@ -349,39 +366,51 @@ func (appKeepers *AppKeepers) InitNormalKeepers( // TODO: Implement ICS4Wrapper in Records and pass records keeper here &appKeepers.HooksICS4Wrapper, // ICS4Wrapper appKeepers.TransferMiddlewareKeeper, - authtypes.NewModuleAddress(govtypes.ModuleName).String(), + govModAddress, ) - transferIBCModule := transfer.NewIBCModule(appKeepers.TransferKeeper.Keeper) scopedICQKeeper := appKeepers.CapabilityKeeper.ScopeToModule(icqtypes.ModuleName) appKeepers.ICQKeeper = icqkeeper.NewKeeper( - appCodec, appKeepers.keys[icqtypes.StoreKey], appKeepers.GetSubspace(icqtypes.ModuleName), - appKeepers.IBCKeeper.ChannelKeeper, appKeepers.IBCKeeper.ChannelKeeper, &appKeepers.IBCKeeper.PortKeeper, - scopedICQKeeper, bApp, + appCodec, + appKeepers.keys[icqtypes.StoreKey], + appKeepers.IBCKeeper.ChannelKeeper, + appKeepers.IBCKeeper.ChannelKeeper, + appKeepers.IBCKeeper.PortKeeper, + scopedICQKeeper, bApp.GRPCQueryRouter(), govModAddress, ) icqIBCModule := icq.NewIBCModule(appKeepers.ICQKeeper) + + // Create Transfer Keepers + // * SendPacket. Originates from the transferKeeper and goes up the stack: + // transferKeeper.SendPacket -> transfermiddleware.SendPacket -> ibc_rate_limit.SendPacket -> ibc_hooks.SendPacket -> channel.SendPacket + // * RecvPacket, message that originates from core IBC and goes down to app, the flow is the other way + // channel.RecvPacket -> ibc_hooks.OnRecvPacket -> ibc_rate_limit.OnRecvPacket -> forward.OnRecvPacket -> transfermiddleware_OnRecvPacket -> transfer.OnRecvPacket + // + + transferIBCModule := transfer.NewIBCModule(appKeepers.TransferKeeper.Keeper) + transfermiddlewareStack := transfermiddleware.NewIBCMiddleware( transferIBCModule, appKeepers.TransferMiddlewareKeeper, ) - ibcMiddlewareStack := router.NewIBCMiddleware( + ibcMiddlewareStack := pfm.NewIBCMiddleware( transfermiddlewareStack, - appKeepers.RouterKeeper, + appKeepers.PfmKeeper, 0, - routerkeeper.DefaultForwardTransferPacketTimeoutTimestamp, - routerkeeper.DefaultRefundTransferPacketTimeoutTimestamp, + pfmkeeper.DefaultForwardTransferPacketTimeoutTimestamp, + pfmkeeper.DefaultRefundTransferPacketTimeoutTimestamp, ) ratelimitMiddlewareStack := ratelimitmodule.NewIBCMiddleware(appKeepers.RatelimitKeeper, ibcMiddlewareStack) hooksTransferMiddleware := ibc_hooks.NewIBCMiddleware(ratelimitMiddlewareStack, &appKeepers.HooksICS4Wrapper) // Create evidence Keeper for to register the IBC light client misbehaviour evidence route evidenceKeeper := evidencekeeper.NewKeeper( - appCodec, appKeepers.keys[evidencetypes.StoreKey], appKeepers.StakingKeeper, appKeepers.SlashingKeeper, + appCodec, runtime.NewKVStoreService(appKeepers.keys[evidencetypes.StoreKey]), appKeepers.StakingKeeper, appKeepers.SlashingKeeper, appKeepers.AccountKeeper.AddressCodec(), runtime.ProvideCometInfoService(), ) - // If evidence needs to be handled for the app, set routes in router here and seal + // If evidence needs to be handled for the app, set routes in pfm here and seal appKeepers.EvidenceKeeper = *evidenceKeeper wasmDir := filepath.Join(homePath, "wasm") @@ -396,16 +425,32 @@ func (appKeepers *AppKeepers) InitNormalKeepers( // The last arguments can contain custom message handlers, and custom query handlers, // if we want to allow any custom callbacks availableCapabilities := strings.Join(AllCapabilities(), ",") - appKeepers.WasmKeeper = wasm.NewKeeper( + + wasmer, err := wasmvm.NewVM( + wasmDir, + strings.Join(AllCapabilities(), ","), + 32, // default of 32 + false, + 0, + ) + if err != nil { + panic(err) + } + + wasmOpts := []wasmkeeper.Option{ + wasmkeeper.WithWasmEngine(wasmer), + } + + appKeepers.WasmKeeper = wasmkeeper.NewKeeper( appCodec, - appKeepers.keys[wasmtypes.StoreKey], + runtime.NewKVStoreService(appKeepers.keys[wasmtypes.StoreKey]), appKeepers.AccountKeeper, appKeepers.BankKeeper, appKeepers.StakingKeeper, distrkeeper.NewQuerier(appKeepers.DistrKeeper), appKeepers.IBCKeeper.ChannelKeeper, // ISC4 Wrapper: fee IBC middleware appKeepers.IBCKeeper.ChannelKeeper, - &appKeepers.IBCKeeper.PortKeeper, + appKeepers.IBCKeeper.PortKeeper, appKeepers.ScopedWasmKeeper, appKeepers.TransferKeeper, bApp.MsgServiceRouter(), @@ -413,29 +458,45 @@ func (appKeepers *AppKeepers) InitNormalKeepers( wasmDir, wasmConfig, availableCapabilities, - authtypes.NewModuleAddress(govtypes.ModuleName).String(), + govModAddress, wasmOpts..., ) - appKeepers.Ics20WasmHooks.ContractKeeper = &appKeepers.WasmKeeper + wasmDataDir := filepath.Join(homePath, "wasm_client_data") + wasmSupportedFeatures := strings.Join([]string{"storage", "iterator"}, ",") + wasmMemoryLimitMb := uint32(math.Pow(2, 12)) + wasmPrintDebug := true + wasmCacheSizeMb := uint32(math.Pow(2, 8)) + + vm, err := wasmvm.NewVM(wasmDataDir, wasmSupportedFeatures, wasmMemoryLimitMb, wasmPrintDebug, wasmCacheSizeMb) + if err != nil { + panic(err) + } + + // use same VM for wasm + appKeepers.Wasm08Keeper = wasm08Keeper.NewKeeperWithVM( + appCodec, + runtime.NewKVStoreService(appKeepers.keys[wasm08types.StoreKey]), + &appKeepers.IBCKeeper.ClientKeeper, + authorityAddress, + vm, + bApp.GRPCQueryRouter(), + ) + // Register Gov (must be registered after stakeibc) govRouter := govtypesv1beta1.NewRouter() + // Register the proposal types + // Deprecated: Avoid adding new handlers, instead use the new proposal flow + // by granting the governance module the right to execute the message. + // See: https://docs.cosmos.network/main/modules/gov#proposal-messages govRouter.AddRoute(govtypes.RouterKey, govtypesv1beta1.ProposalHandler). - AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(appKeepers.ParamsKeeper)). - // AddRoute(distrtypes.RouterKey, distr.NewCommunityPoolSpendProposalHandler(appKeepers.DistrKeeper)). - AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(appKeepers.UpgradeKeeper)). - AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(appKeepers.IBCKeeper.ClientKeeper)). - AddRoute(alliancemoduletypes.RouterKey, alliancemodule.NewAllianceProposalHandler(appKeepers.AllianceKeeper)) - - // The gov proposal types can be individually enabled - if len(enabledProposals) != 0 { - govRouter.AddRoute(wasm.RouterKey, wasm.NewWasmProposalHandler(appKeepers.WasmKeeper, enabledProposals)) - } + AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(appKeepers.ParamsKeeper)) govKeeper := *govkeeper.NewKeeper( - appCodec, appKeepers.keys[govtypes.StoreKey], appKeepers.AccountKeeper, appKeepers.BankKeeper, - appKeepers.StakingKeeper, bApp.MsgServiceRouter(), govtypes.DefaultConfig(), authtypes.NewModuleAddress(govtypes.ModuleName).String(), + appCodec, runtime.NewKVStoreService(appKeepers.keys[govtypes.StoreKey]), appKeepers.AccountKeeper, appKeepers.BankKeeper, + appKeepers.StakingKeeper, appKeepers.DistrKeeper, bApp.MsgServiceRouter(), govtypes.DefaultConfig(), + govModAddress, ) govKeeper.SetLegacyRouter(govRouter) @@ -449,10 +510,10 @@ func (appKeepers *AppKeepers) InitNormalKeepers( ibcRouter := porttypes.NewRouter() ibcRouter.AddRoute(ibctransfertypes.ModuleName, hooksTransferMiddleware) ibcRouter.AddRoute(icqtypes.ModuleName, icqIBCModule) - ibcRouter.AddRoute(wasm.ModuleName, wasm.NewIBCHandler(appKeepers.WasmKeeper, appKeepers.IBCKeeper.ChannelKeeper, appKeepers.IBCKeeper.ChannelKeeper)) + ibcRouter.AddRoute(wasmtypes.ModuleName, wasm.NewIBCHandler(appKeepers.WasmKeeper, appKeepers.IBCKeeper.ChannelKeeper, appKeepers.IBCKeeper.ChannelKeeper)) ibcRouter.AddRoute(icahosttypes.SubModuleName, icaHostStack) - // this line is used by starport scaffolding # ibc/app/router + // this line is used by starport scaffolding # ibc/app/pfm appKeepers.IBCKeeper.SetRouter(ibcRouter) } @@ -465,44 +526,53 @@ func (appKeepers *AppKeepers) InitSpecialKeepers( skipUpgradeHeights map[int64]bool, homePath string, ) { + govModAddress := authtypes.NewModuleAddress(govtypes.ModuleName).String() + appKeepers.GenerateKeys() appKeepers.ParamsKeeper = appKeepers.initParamsKeeper(appCodec, cdc, appKeepers.keys[paramstypes.StoreKey], appKeepers.tkeys[paramstypes.TStoreKey]) appKeepers.CapabilityKeeper = capabilitykeeper.NewKeeper(appCodec, appKeepers.keys[capabilitytypes.StoreKey], appKeepers.memKeys[capabilitytypes.MemStoreKey]) // set the BaseApp's parameter store - appKeepers.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper(appCodec, appKeepers.keys[consensusparamtypes.StoreKey], authtypes.NewModuleAddress(govtypes.ModuleName).String()) - bApp.SetParamStore(&appKeepers.ConsensusParamsKeeper) + appKeepers.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(appKeepers.keys[consensusparamtypes.StoreKey]), govModAddress, runtime.EventService{}) + bApp.SetParamStore(&appKeepers.ConsensusParamsKeeper.ParamsStore) // grant capabilities for the ibc and ibc-transfer modules - appKeepers.ScopedIBCKeeper = appKeepers.CapabilityKeeper.ScopeToModule(ibchost.ModuleName) + appKeepers.ScopedIBCKeeper = appKeepers.CapabilityKeeper.ScopeToModule(ibcexported.ModuleName) appKeepers.ScopedTransferKeeper = appKeepers.CapabilityKeeper.ScopeToModule(ibctransfertypes.ModuleName) - appKeepers.ScopedWasmKeeper = appKeepers.CapabilityKeeper.ScopeToModule(wasm.ModuleName) + appKeepers.ScopedWasmKeeper = appKeepers.CapabilityKeeper.ScopeToModule(wasmtypes.ModuleName) appKeepers.ScopedICAHostKeeper = appKeepers.CapabilityKeeper.ScopeToModule(icahosttypes.SubModuleName) appKeepers.ScopedRateLimitKeeper = appKeepers.CapabilityKeeper.ScopeToModule(ratelimitmoduletypes.ModuleName) - appKeepers.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, appKeepers.keys[upgradetypes.StoreKey], appCodec, homePath, bApp, authtypes.NewModuleAddress(govtypes.ModuleName).String()) + appKeepers.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, runtime.NewKVStoreService(appKeepers.keys[upgradetypes.StoreKey]), appCodec, homePath, bApp, authtypes.NewModuleAddress(govtypes.ModuleName).String()) } // initParamsKeeper init params keeper and its subspaces func (appKeepers *AppKeepers) initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey storetypes.StoreKey) paramskeeper.Keeper { paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey) + // register the IBC key tables for legacy param subspaces + + // register the key tables for legacy param subspaces + keyTable := ibcclienttypes.ParamKeyTable() + keyTable.RegisterParamSet(&ibcconnectiontypes.Params{}) + paramsKeeper.Subspace(ibcexported.ModuleName).WithKeyTable(keyTable) + paramsKeeper.Subspace(ibctransfertypes.ModuleName).WithKeyTable(ibctransfertypes.ParamKeyTable()) + paramsKeeper.Subspace(icacontrollertypes.SubModuleName).WithKeyTable(icacontrollertypes.ParamKeyTable()) + paramsKeeper.Subspace(icahosttypes.SubModuleName).WithKeyTable(icahosttypes.ParamKeyTable()) + paramsKeeper.Subspace(authtypes.ModuleName) paramsKeeper.Subspace(banktypes.ModuleName) paramsKeeper.Subspace(stakingtypes.ModuleName) paramsKeeper.Subspace(distrtypes.ModuleName) paramsKeeper.Subspace(slashingtypes.ModuleName) - paramsKeeper.Subspace(routertypes.ModuleName).WithKeyTable(routertypes.ParamKeyTable()) // TODO: - paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govtypesv1.ParamKeyTable()) //nolint:staticcheck + paramsKeeper.Subspace(pfmtypes.ModuleName).WithKeyTable(pfmtypes.ParamKeyTable()) // TODO: + paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govtypesv1.ParamKeyTable()) paramsKeeper.Subspace(minttypes.ModuleName).WithKeyTable(minttypes.ParamKeyTable()) paramsKeeper.Subspace(crisistypes.ModuleName) - paramsKeeper.Subspace(ibctransfertypes.ModuleName) paramsKeeper.Subspace(ratelimitmoduletypes.ModuleName) - paramsKeeper.Subspace(icqtypes.ModuleName) - paramsKeeper.Subspace(ibchost.ModuleName) - paramsKeeper.Subspace(icahosttypes.SubModuleName) - paramsKeeper.Subspace(alliancemoduletypes.ModuleName) - paramsKeeper.Subspace(wasm.ModuleName) + paramsKeeper.Subspace(icqtypes.ModuleName).WithKeyTable(icqtypes.ParamKeyTable()) + paramsKeeper.Subspace(wasm08types.ModuleName) + paramsKeeper.Subspace(wasmtypes.ModuleName) paramsKeeper.Subspace(transfermiddlewaretypes.ModuleName) paramsKeeper.Subspace(stakingmiddlewaretypes.ModuleName) paramsKeeper.Subspace(ibctransfermiddlewaretypes.ModuleName) diff --git a/app/keepers/keys.go b/app/keepers/keys.go index 606b8f21d..353b7d6b3 100644 --- a/app/keepers/keys.go +++ b/app/keepers/keys.go @@ -1,33 +1,31 @@ package keepers import ( - sdk "github.com/cosmos/cosmos-sdk/types" + circuittypes "cosmossdk.io/x/circuit/types" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper" - + ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" // bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" + evidencetypes "cosmossdk.io/x/evidence/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - "github.com/cosmos/cosmos-sdk/x/feegrant" + "cosmossdk.io/x/feegrant" "github.com/cosmos/cosmos-sdk/x/group" + upgradetypes "cosmossdk.io/x/upgrade/types" paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types" - ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - ibchost "github.com/cosmos/ibc-go/v7/modules/core/exported" - icqtypes "github.com/strangelove-ventures/async-icq/v7/types" - - routertypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types" - alliancemoduletypes "github.com/terra-money/alliance/x/alliance/types" + routertypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/types" + icqtypes "github.com/cosmos/ibc-apps/modules/async-icq/v8/types" + icahosttypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types" + ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" ibchookstypes "github.com/notional-labs/composable/v6/x/ibc-hooks/types" ratelimitmoduletypes "github.com/notional-labs/composable/v6/x/ratelimit/types" @@ -36,12 +34,11 @@ import ( consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types" - storetypes "github.com/cosmos/cosmos-sdk/store/types" + storetypes "cosmossdk.io/store/types" minttypes "github.com/notional-labs/composable/v6/x/mint/types" - "github.com/CosmWasm/wasmd/x/wasm" - wasm08types "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/types" + wasm08types "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" // customstakingtypes "github.com/notional-labs/composable/v6/custom/staking/types" stakingmiddleware "github.com/notional-labs/composable/v6/x/stakingmiddleware/types" @@ -53,19 +50,27 @@ import ( func (appKeepers *AppKeepers) GenerateKeys() { // Define what keys will be used in the cosmos-sdk key/value store. // Cosmos-SDK modules each have a "key" that allows the application to reference what they've stored on the chain. - appKeepers.keys = sdk.NewKVStoreKeys( + appKeepers.keys = storetypes.NewKVStoreKeys( authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey, - govtypes.StoreKey, paramstypes.StoreKey, ibchost.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey, - evidencetypes.StoreKey, ibctransfertypes.StoreKey, icqtypes.StoreKey, capabilitytypes.StoreKey, consensusparamtypes.StoreKey, wasm08types.StoreKey, + govtypes.StoreKey, paramstypes.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey, + evidencetypes.StoreKey, + circuittypes.StoreKey, + ibctransfertypes.StoreKey, + icqtypes.StoreKey, capabilitytypes.StoreKey, + consensusparamtypes.StoreKey, wasm08types.StoreKey, authzkeeper.StoreKey, stakingmiddleware.StoreKey, ibctransfermiddleware.StoreKey, - crisistypes.StoreKey, routertypes.StoreKey, transfermiddlewaretypes.StoreKey, group.StoreKey, minttypes.StoreKey, alliancemoduletypes.StoreKey, wasm.StoreKey, ibchookstypes.StoreKey, icahosttypes.StoreKey, ratelimitmoduletypes.StoreKey, txBoundaryTypes.StoreKey, + crisistypes.StoreKey, routertypes.StoreKey, transfermiddlewaretypes.StoreKey, + group.StoreKey, minttypes.StoreKey, wasmtypes.StoreKey, + ibcexported.StoreKey, + ibchookstypes.StoreKey, icahosttypes.StoreKey, + ratelimitmoduletypes.StoreKey, txBoundaryTypes.StoreKey, ) // Define transient store keys - appKeepers.tkeys = sdk.NewTransientStoreKeys(paramstypes.TStoreKey) + appKeepers.tkeys = storetypes.NewTransientStoreKeys(paramstypes.TStoreKey) // MemKeys are for information that is stored only in RAM. - appKeepers.memKeys = sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey) + appKeepers.memKeys = storetypes.NewMemoryStoreKeys(capabilitytypes.MemStoreKey) } // GetKVStoreKey gets KV Store keys. diff --git a/app/keepers/wasm.go b/app/keepers/wasm.go index 50bc15654..168c3e6f6 100644 --- a/app/keepers/wasm.go +++ b/app/keepers/wasm.go @@ -10,5 +10,8 @@ func AllCapabilities() []string { "stargate", "cosmwasm_1_1", "cosmwasm_1_2", + "cosmwasm_1_3", + "cosmwasm_1_4", + "cosmwasm_2_0", } } diff --git a/app/test_access.go b/app/test_access.go index a97c63b34..5e5d9883a 100644 --- a/app/test_access.go +++ b/app/test_access.go @@ -3,18 +3,17 @@ package app import ( "testing" - "github.com/CosmWasm/wasmd/x/wasm" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" - capabilitykeeper "github.com/cosmos/cosmos-sdk/x/capability/keeper" govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" - ibctransferkeeper "github.com/cosmos/ibc-go/v7/modules/apps/transfer/keeper" - ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" - wasm08 "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/keeper" + capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper" + wasm08 "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/keeper" + ibctransferkeeper "github.com/cosmos/ibc-go/v8/modules/apps/transfer/keeper" + ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper" ratelimitkeeper "github.com/notional-labs/composable/v6/x/ratelimit/keeper" tfmdKeeper "github.com/notional-labs/composable/v6/x/transfermiddleware/keeper" @@ -70,10 +69,6 @@ func (s TestSupport) Wasm08Keeper() wasm08.Keeper { return s.app.Wasm08Keeper } -func (s TestSupport) WasmdKeeper() wasm.Keeper { - return s.app.WasmKeeper -} - func (s TestSupport) GetBaseApp() *baseapp.BaseApp { return s.app.BaseApp } diff --git a/app/test_helpers.go b/app/test_helpers.go index 78823300f..2b47c09c8 100644 --- a/app/test_helpers.go +++ b/app/test_helpers.go @@ -1,201 +1,62 @@ package app import ( + "bytes" + "encoding/hex" "encoding/json" + "fmt" "math/rand" - "path/filepath" + "strconv" "testing" "time" - "github.com/CosmWasm/wasmd/x/wasm" - "github.com/cosmos/cosmos-sdk/snapshots" - "github.com/cosmos/cosmos-sdk/snapshots/types" + distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" - dbm "github.com/cometbft/cometbft-db" + slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" + + "cosmossdk.io/errors" + "cosmossdk.io/log" + sdkmath "cosmossdk.io/math" abci "github.com/cometbft/cometbft/abci/types" - "github.com/cometbft/cometbft/libs/log" tmproto "github.com/cometbft/cometbft/proto/tendermint/types" - tmtypes "github.com/cometbft/cometbft/types" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" - codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" - "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" helpers "github.com/cosmos/cosmos-sdk/testutil/sims" sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/stretchr/testify/require" + + tmtypes "github.com/cometbft/cometbft/types" + dbm "github.com/cosmos/cosmos-db" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" - banktestutil "github.com/cosmos/cosmos-sdk/x/bank/testutil" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - stakinghelper "github.com/cosmos/cosmos-sdk/x/staking/testutil" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - "github.com/notional-labs/composable/v6/bech32-migration/utils" - typesconfig "github.com/notional-labs/composable/v6/cmd/picad/config" + minttypes "github.com/notional-labs/composable/v6/x/mint/types" - "github.com/stretchr/testify/require" - "github.com/stretchr/testify/suite" ) -// DefaultConsensusParams defines the default Tendermint consensus params used in -// FeeAbs testing. -var DefaultConsensusParams = &tmproto.ConsensusParams{ - Block: &tmproto.BlockParams{ - MaxBytes: 8000000, - MaxGas: 1234000000, - }, - Evidence: &tmproto.EvidenceParams{ - MaxAgeNumBlocks: 302400, - MaxAgeDuration: 504 * time.Hour, // 3 weeks is the max duration - MaxBytes: 10000, - }, - Validator: &tmproto.ValidatorParams{ - PubKeyTypes: []string{ - tmtypes.ABCIPubKeyTypeEd25519, - }, - }, -} - +// SimAppChainID hardcoded chainID for simulation const ( SimAppChainID = "" ) +const DefaultGas = 1200000 -type KeeperTestHelper struct { - suite.Suite - - App *ComposableApp - Ctx sdk.Context // ctx is deliver ctx - QueryHelper *baseapp.QueryServiceTestHelper - TestAccs []sdk.AccAddress - StakingHelper *stakinghelper.Helper -} - -func (s *KeeperTestHelper) Setup(_ *testing.T) { - t := s.T() - s.App = SetupApp(t) - s.Ctx = s.App.BaseApp.NewContext(false, tmproto.Header{Height: 1, ChainID: "", Time: time.Now().UTC()}) - s.QueryHelper = &baseapp.QueryServiceTestHelper{ - GRPCQueryRouter: s.App.GRPCQueryRouter(), - Ctx: s.Ctx, - } - s.TestAccs = createRandomAccounts(10) - - s.StakingHelper = stakinghelper.NewHelper(s.Suite.T(), s.Ctx, &s.App.StakingKeeper.Keeper) - s.StakingHelper.Denom = "stake" -} - -func (s *KeeperTestHelper) ConfirmUpgradeSucceeded(upgradeName string, upgradeHeight int64) { - s.Ctx = s.Ctx.WithBlockHeight(upgradeHeight - 1) - plan := upgradetypes.Plan{Name: upgradeName, Height: upgradeHeight} - err := s.App.UpgradeKeeper.ScheduleUpgrade(s.Ctx, plan) - s.Require().NoError(err) - _, exists := s.App.UpgradeKeeper.GetUpgradePlan(s.Ctx) - s.Require().True(exists) - - // NEW PREFIX: pica - sdk.GetConfig().SetBech32PrefixForAccount(utils.NewBech32PrefixAccAddr, utils.NewBech32PrefixAccPub) - sdk.GetConfig().SetBech32PrefixForValidator(utils.NewBech32PrefixValAddr, utils.NewBech32PrefixValPub) - sdk.GetConfig().SetBech32PrefixForConsensusNode(utils.NewBech32PrefixConsAddr, utils.NewBech32PrefixConsPub) - - s.Ctx = s.Ctx.WithBlockHeight(upgradeHeight) - s.Require().NotPanics(func() { - beginBlockRequest := abci.RequestBeginBlock{} - s.App.BeginBlocker(s.Ctx, beginBlockRequest) - }) -} - -// SetupValidator sets up a validator and returns the ValAddress. -func (s *KeeperTestHelper) SetupValidator(bondStatus stakingtypes.BondStatus) sdk.ValAddress { - valPriv := secp256k1.GenPrivKey() - valPub := valPriv.PubKey() - valAddr := sdk.ValAddress(valPub.Address()) - bondDenom := "stake" - selfBond := sdk.NewCoins(sdk.Coin{Amount: sdk.NewInt(100), Denom: bondDenom}) - - s.FundAcc(sdk.AccAddress(valAddr), selfBond) - - msg := s.StakingHelper.CreateValidatorMsg(valAddr, valPub, selfBond[0].Amount) - res, err := s.StakingHelper.CreateValidatorWithMsg(s.Ctx, msg) - s.Require().NoError(err) - s.Require().NotNil(res) - - val, found := s.App.StakingKeeper.GetValidator(s.Ctx, valAddr) - s.Require().True(found) - - val = val.UpdateStatus(bondStatus) - s.App.StakingKeeper.SetValidator(s.Ctx, val) - - consAddr, err := val.GetConsAddr() - s.Suite.Require().NoError(err) - - signingInfo := slashingtypes.NewValidatorSigningInfo( - consAddr, - s.Ctx.BlockHeight(), - 0, - time.Unix(0, 0), - false, - 0, - ) - s.App.SlashingKeeper.SetValidatorSigningInfo(s.Ctx, consAddr, signingInfo) - - return valAddr -} - -func (s *KeeperTestHelper) FundAcc(acc sdk.AccAddress, amounts sdk.Coins) { - err := banktestutil.FundAccount(s.App.BankKeeper, s.Ctx, acc, amounts) - s.Require().NoError(err) -} - -func SetupApp(t *testing.T) *ComposableApp { - t.Helper() - - privVal := NewPV() - pubKey, err := privVal.GetPubKey() - require.NoError(t, err) - // create validator set with single validator - validator := tmtypes.NewValidator(pubKey, 1) - valSet := tmtypes.NewValidatorSet([]*tmtypes.Validator{validator}) - - // generate genesis account - senderPrivKey := secp256k1.GenPrivKey() - acc := authtypes.NewBaseAccount(senderPrivKey.PubKey().Address().Bytes(), senderPrivKey.PubKey(), 0, 0) - balance := banktypes.Balance{ - Address: acc.GetAddress().String(), - Coins: sdk.NewCoins(sdk.NewCoin(typesconfig.BaseCoinUnit, sdk.NewInt(100000000000000000))), - } - - app := SetupWithGenesisValSet(t, time.Now(), valSet, []authtypes.GenesisAccount{acc}, balance) - - return app -} - -func setup(tb testing.TB, withGenesis bool, invCheckPeriod uint) (*ComposableApp, GenesisState) { - tb.Helper() - nodeHome := tb.TempDir() - snapshotDir := filepath.Join(nodeHome, "data", "snapshots") - snapshotDB, err := dbm.NewDB("metadata", dbm.MemDBBackend, snapshotDir) - require.NoError(tb, err) - snapshotStore, err := snapshots.NewStore(snapshotDB, snapshotDir) - require.NoError(tb, err) - baseAppOpts := []func(*baseapp.BaseApp){baseapp.SetSnapshot(snapshotStore, types.SnapshotOptions{ - KeepRecent: 2, - })} - var wasmOpts []wasm.Option +func setup(withGenesis bool, chainID string) (*ComposableApp, GenesisState) { db := dbm.NewMemDB() app := NewComposableApp( log.NewNopLogger(), db, nil, true, - wasmtypes.EnableAllProposals, map[int64]bool{}, - nodeHome, - invCheckPeriod, - MakeEncodingConfig(), + DefaultNodeHome, + 5, EmptyBaseAppOptions{}, - wasmOpts, baseAppOpts...) + baseapp.SetChainID(chainID), + ) if withGenesis { return app, NewDefaultGenesisState() } @@ -208,13 +69,13 @@ func setup(tb testing.TB, withGenesis bool, invCheckPeriod uint) (*ComposableApp // account. A Nop logger is set in FeeAbs. func SetupWithGenesisValSet( t *testing.T, - ctxTime time.Time, valSet *tmtypes.ValidatorSet, genAccs []authtypes.GenesisAccount, + chainID string, balances ...banktypes.Balance, ) *ComposableApp { t.Helper() - app, genesisState := setup(t, true, 5) + app, genesisState := setup(true, chainID) // set genesis accounts authGenesis := authtypes.NewGenesisState(authtypes.DefaultParams(), genAccs) genesisState[authtypes.ModuleName] = app.appCodec.MustMarshalJSON(authGenesis) @@ -222,10 +83,10 @@ func SetupWithGenesisValSet( validators := make([]stakingtypes.Validator, 0, len(valSet.Validators)) delegations := make([]stakingtypes.Delegation, 0, len(valSet.Validators)) - bondAmt := sdk.NewInt(1000000000000) + bondAmt := sdk.DefaultPowerReduction for _, val := range valSet.Validators { - pk, err := cryptocodec.FromTmPubKeyInterface(val.PubKey) + pk, err := cryptocodec.FromCmtPubKeyInterface(val.PubKey) require.NoError(t, err) pkAny, err := codectypes.NewAnyWithValue(pk) require.NoError(t, err) @@ -235,66 +96,101 @@ func SetupWithGenesisValSet( Jailed: false, Status: stakingtypes.Bonded, Tokens: bondAmt, - DelegatorShares: sdk.OneDec(), + DelegatorShares: sdkmath.LegacyOneDec(), Description: stakingtypes.Description{}, UnbondingHeight: int64(0), UnbondingTime: time.Unix(0, 0).UTC(), - Commission: stakingtypes.NewCommission(sdk.ZeroDec(), sdk.ZeroDec(), sdk.ZeroDec()), - MinSelfDelegation: sdk.ZeroInt(), + Commission: stakingtypes.NewCommission(sdkmath.LegacyZeroDec(), sdkmath.LegacyZeroDec(), sdkmath.LegacyZeroDec()), + MinSelfDelegation: sdkmath.ZeroInt(), } validators = append(validators, validator) - delegations = append(delegations, stakingtypes.NewDelegation(genAccs[0].GetAddress(), val.Address.Bytes(), sdk.OneDec())) + delegations = append(delegations, stakingtypes.NewDelegation(genAccs[0].GetAddress().String(), sdk.ValAddress(val.Address).String(), sdkmath.LegacyOneDec())) } // set validators and delegations - stakingGenesis := stakingtypes.NewGenesisState(stakingtypes.DefaultParams(), validators, delegations) - genesisState[stakingtypes.ModuleName] = app.appCodec.MustMarshalJSON(stakingGenesis) + defaultStParams := stakingtypes.DefaultParams() + stParams := stakingtypes.NewParams( + defaultStParams.UnbondingTime, + defaultStParams.MaxValidators, + defaultStParams.MaxEntries, + defaultStParams.HistoricalEntries, + sdk.DefaultBondDenom, + defaultStParams.MinCommissionRate, + ) - totalSupply := sdk.NewCoins() - for _, b := range balances { - // add genesis acc tokens and delegated tokens to total supply - totalSupply = totalSupply.Add(b.Coins.Add(sdk.NewCoin(sdk.DefaultBondDenom, bondAmt))...) + // set validators and delegations + stakingGenesis := stakingtypes.NewGenesisState(stParams, validators, delegations) + genesisState[stakingtypes.ModuleName] = app.AppCodec().MustMarshalJSON(stakingGenesis) + + signingInfos := make([]slashingtypes.SigningInfo, len(valSet.Validators)) + for i, val := range valSet.Validators { + signingInfos[i] = slashingtypes.SigningInfo{ + Address: sdk.ConsAddress(val.Address).String(), + ValidatorSigningInfo: slashingtypes.ValidatorSigningInfo{}, + } } + slashingGenesis := slashingtypes.NewGenesisState(slashingtypes.DefaultParams(), signingInfos, nil) + genesisState[slashingtypes.ModuleName] = app.AppCodec().MustMarshalJSON(slashingGenesis) // add bonded amount to bonded pool module account balances = append(balances, banktypes.Balance{ Address: authtypes.NewModuleAddress(stakingtypes.BondedPoolName).String(), - Coins: sdk.Coins{sdk.NewCoin(sdk.DefaultBondDenom, bondAmt)}, + Coins: sdk.Coins{sdk.NewCoin(sdk.DefaultBondDenom, bondAmt.MulRaw(int64(len(valSet.Validators))))}, + }) + + balances = append(balances, banktypes.Balance{ + Address: authtypes.NewModuleAddress(distrtypes.ModuleName).String(), + Coins: sdk.Coins{sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(1000000))}, }) + totalSupply := sdk.NewCoins() + for _, b := range balances { + // add genesis acc tokens and delegated tokens to total supply + totalSupply = totalSupply.Add(b.Coins...) + } + fmt.Println("totalSupply", totalSupply) + // update total supply bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{}, []banktypes.SendEnabled{}) genesisState[banktypes.ModuleName] = app.appCodec.MustMarshalJSON(bankGenesis) + defaultDistrGenesis := distrtypes.DefaultGenesisState() + defaultDistrGenesis.FeePool.CommunityPool = append(defaultDistrGenesis.FeePool.CommunityPool, sdk.NewDecCoin(sdk.DefaultBondDenom, sdkmath.NewInt(1000000))) + genesisState[distrtypes.ModuleName] = app.appCodec.MustMarshalJSON(defaultDistrGenesis) + stateBytes, err := json.MarshalIndent(genesisState, "", " ") require.NoError(t, err) + consensusParams := helpers.DefaultConsensusParams + consensusParams.Block.MaxGas = 100 * helpers.DefaultGenTxGas + + if chainID == "" { + chainID = SimAppChainID + } + // init chain will set the validator set and initialize the genesis accounts - app.InitChain( - abci.RequestInitChain{ - Time: ctxTime, + _, err = app.InitChain( + &abci.RequestInitChain{ + ChainId: chainID, Validators: []abci.ValidatorUpdate{}, - ConsensusParams: DefaultConsensusParams, + ConsensusParams: consensusParams, + InitialHeight: app.LastBlockHeight() + 1, AppStateBytes: stateBytes, }, ) + if err != nil { + panic(err) + } - // commit genesis changes - app.Commit() - app.BeginBlock(abci.RequestBeginBlock{Header: tmproto.Header{ + _, err = app.FinalizeBlock(&abci.RequestFinalizeBlock{ Height: app.LastBlockHeight() + 1, - AppHash: app.LastCommitID().Hash, - ValidatorsHash: valSet.Hash(), + Hash: app.LastCommitID().Hash, NextValidatorsHash: valSet.Hash(), - }}) - - return app -} + }) + if err != nil { + panic(err) + } -// SetupWithEmptyStore setup a wasmd app instance with empty DB -func SetupWithEmptyStore(tb testing.TB) *ComposableApp { - tb.Helper() - app, _ := setup(tb, false, 0) return app } @@ -311,13 +207,136 @@ func createRandomAccounts(accNum int) []sdk.AccAddress { return testAddrs } -const DefaultGas = 1200000 +// createIncrementalAccounts is a strategy used by addTestAddrs() in order to generated addresses in ascending order. +func createIncrementalAccounts(accNum int) []sdk.AccAddress { + addresses := make([]sdk.AccAddress, 0, accNum) + var buffer bytes.Buffer -// SignAndDeliver signs and delivers a transaction. No simulation occurs as the -// ibc testing package causes checkState and deliverState to diverge in block time. -func SignAndDeliver( + // start at 100 so we can make up to 999 test addresses with valid test addresses + for i := 100; i < (accNum + 100); i++ { + numString := strconv.Itoa(i) + buffer.WriteString("A58856F0FD53BF058B4909A21AEC019107BA6") // base address string + + buffer.WriteString(numString) // adding on final two digits to make addresses unique + res, err := sdk.AccAddressFromHexUnsafe(buffer.String()) + if err != nil { + panic(err) + } + bech := res.String() + addr, err := TestAddr(buffer.String(), bech) + if err != nil { + panic(err) + } + + addresses = append(addresses, addr) + buffer.Reset() + } + + return addresses +} + +// AddTestAddrsFromPubKeys adds the addresses into the WasmApp providing only the public keys. +func AddTestAddrsFromPubKeys(app *ComposableApp, ctx sdk.Context, pubKeys []cryptotypes.PubKey, accAmt sdkmath.Int) { + denom, err := app.StakingKeeper.BondDenom(ctx) + if err != nil { + panic(err) + } + + initCoins := sdk.NewCoins(sdk.NewCoin(denom, accAmt)) + + for _, pk := range pubKeys { + initAccountWithCoins(app, ctx, sdk.AccAddress(pk.Address()), initCoins) + } +} + +// AddTestAddrs constructs and returns accNum amount of accounts with an +// initial balance of accAmt in random order +func AddTestAddrs(app *ComposableApp, ctx sdk.Context, accNum int, accAmt sdkmath.Int) []sdk.AccAddress { + return addTestAddrs(app, ctx, accNum, accAmt, createRandomAccounts) +} + +// AddTestAddrs constructs and returns accNum amount of accounts with an +// initial balance of accAmt in random order +func AddTestAddrsIncremental(app *ComposableApp, ctx sdk.Context, accNum int, accAmt sdkmath.Int) []sdk.AccAddress { + return addTestAddrs(app, ctx, accNum, accAmt, createIncrementalAccounts) +} + +func addTestAddrs(app *ComposableApp, ctx sdk.Context, accNum int, accAmt sdkmath.Int, strategy GenerateAccountStrategy) []sdk.AccAddress { + testAddrs := strategy(accNum) + + denom, err := app.StakingKeeper.BondDenom(ctx) + if err != nil { + panic(err) + } + + initCoins := sdk.NewCoins(sdk.NewCoin(denom, accAmt)) + + // fill all the addresses with some coins, set the loose pool tokens simultaneously + for _, addr := range testAddrs { + initAccountWithCoins(app, ctx, addr, initCoins) + } + + return testAddrs +} + +func initAccountWithCoins(app *ComposableApp, ctx sdk.Context, addr sdk.AccAddress, coins sdk.Coins) { + err := app.BankKeeper.MintCoins(ctx, minttypes.ModuleName, coins) + if err != nil { + panic(err) + } + + err = app.BankKeeper.SendCoinsFromModuleToAccount(ctx, minttypes.ModuleName, addr, coins) + if err != nil { + panic(err) + } +} + +// ConvertAddrsToValAddrs converts the provided addresses to ValAddress. +func ConvertAddrsToValAddrs(addrs []sdk.AccAddress) []sdk.ValAddress { + valAddrs := make([]sdk.ValAddress, len(addrs)) + + for i, addr := range addrs { + valAddrs[i] = sdk.ValAddress(addr) + } + + return valAddrs +} + +func TestAddr(addr, bech string) (sdk.AccAddress, error) { + res, err := sdk.AccAddressFromHexUnsafe(addr) + if err != nil { + return nil, err + } + bechexpected := res.String() + if bech != bechexpected { + return nil, fmt.Errorf("bech encoding doesn't match reference") + } + + bechres, err := sdk.AccAddressFromBech32(bech) + if err != nil { + return nil, err + } + if !bytes.Equal(bechres, res) { + return nil, err + } + + return res, nil +} + +// CheckBalance checks the balance of an account. +func CheckBalance(t *testing.T, app *ComposableApp, addr sdk.AccAddress, balances sdk.Coins) { + t.Helper() + ctxCheck := app.BaseApp.NewContext(true) + require.True(t, balances.Equal(app.BankKeeper.GetAllBalances(ctxCheck, addr))) +} + +// SignCheckDeliver checks a generated signed transaction and simulates a +// block commitment with the given transaction. A test assertion is made using +// the parameter 'expPass' against the result. A corresponding result is +// returned. +func SignCheckDeliver( t *testing.T, txCfg client.TxConfig, app *baseapp.BaseApp, header tmproto.Header, msgs []sdk.Msg, - chainID string, accNums, accSeqs []uint64, _, expPass bool, priv ...cryptotypes.PrivKey, + chainID string, accNums, accSeqs []uint64, expSimPass, expPass bool, priv ...cryptotypes.PrivKey, ) (sdk.GasInfo, *sdk.Result, error) { t.Helper() tx, err := helpers.GenSignedMockTx( @@ -332,9 +351,22 @@ func SignAndDeliver( priv..., ) require.NoError(t, err) + txBytes, err := txCfg.TxEncoder()(tx) + require.Nil(t, err) + + // Must simulate now as CheckTx doesn't run Msgs anymore + _, res, err := app.Simulate(txBytes) + + if expSimPass { + require.NoError(t, err) + require.NotNil(t, res) + } else { + require.Error(t, err) + require.Nil(t, res) + } // Simulate a sending a transaction and committing a block - app.BeginBlock(abci.RequestBeginBlock{Header: header}) + // app.BeginBlock(abci.RequestFinalizeBlock{Header: header}) gInfo, res, err := app.SimDeliver(txCfg.TxEncoder(), tx) if expPass { @@ -345,12 +377,103 @@ func SignAndDeliver( require.Nil(t, res) } - app.EndBlock(abci.RequestEndBlock{}) + // app.EndBlock(abci.RequestEndBlock{}) TODO: Check begin and end block app.Commit() return gInfo, res, err } +func SignAndDeliver( + tb testing.TB, txCfg client.TxConfig, app *baseapp.BaseApp, msgs []sdk.Msg, + chainID string, accNums, accSeqs []uint64, expPass bool, blockTime time.Time, nextValHash []byte, priv ...cryptotypes.PrivKey, +) (*abci.ResponseFinalizeBlock, error) { + tb.Helper() + tx, err := helpers.GenSignedMockTx( + rand.New(rand.NewSource(time.Now().UnixNano())), + txCfg, + msgs, + sdk.Coins{sdk.NewInt64Coin(sdk.DefaultBondDenom, 0)}, + helpers.DefaultGenTxGas, + chainID, + accNums, + accSeqs, + priv..., + ) + require.NoError(tb, err) + + txBytes, err := txCfg.TxEncoder()(tx) + require.NoError(tb, err) + + return app.FinalizeBlock(&abci.RequestFinalizeBlock{ + Height: app.LastBlockHeight() + 1, + Time: blockTime, + NextValidatorsHash: nextValHash, + Txs: [][]byte{txBytes}, + }) +} + +// GenSequenceOfTxs generates a set of signed transactions of messages, such +// that they differ only by having the sequence numbers incremented between +// every transaction. +func GenSequenceOfTxs(txGen client.TxConfig, msgs []sdk.Msg, accNums, initSeqNums []uint64, numToGenerate int, priv ...cryptotypes.PrivKey) ([]sdk.Tx, error) { + txs := make([]sdk.Tx, numToGenerate) + var err error + for i := 0; i < numToGenerate; i++ { + txs[i], err = helpers.GenSignedMockTx( + rand.New(rand.NewSource(time.Now().UnixNano())), + txGen, + msgs, + sdk.Coins{sdk.NewInt64Coin(sdk.DefaultBondDenom, 0)}, + helpers.DefaultGenTxGas, + "", + accNums, + initSeqNums, + priv..., + ) + if err != nil { + break + } + incrementAllSequenceNumbers(initSeqNums) + } + + return txs, err +} + +func incrementAllSequenceNumbers(initSeqNums []uint64) { + for i := 0; i < len(initSeqNums); i++ { + initSeqNums[i]++ + } +} + +// CreateTestPubKeys returns a total of numPubKeys public keys in ascending order. +func CreateTestPubKeys(numPubKeys int) []cryptotypes.PubKey { + publicKeys := make([]cryptotypes.PubKey, 0, numPubKeys) + var buffer bytes.Buffer + + // start at 10 to avoid changing 1 to 01, 2 to 02, etc + for i := 100; i < (numPubKeys + 100); i++ { + numString := strconv.Itoa(i) + buffer.WriteString("0B485CFC0EECC619440448436F8FC9DF40566F2369E72400281454CB552AF") // base pubkey string + buffer.WriteString(numString) // adding on final two digits to make pubkeys unique + publicKeys = append(publicKeys, NewPubKeyFromHex(buffer.String())) + buffer.Reset() + } + + return publicKeys +} + +// NewPubKeyFromHex returns a PubKey from a hex string. +func NewPubKeyFromHex(pk string) (res cryptotypes.PubKey) { + pkBytes, err := hex.DecodeString(pk) + if err != nil { + panic(err) + } + if len(pkBytes) != ed25519.PubKeySize { + panic(errors.Wrap(sdkerrors.ErrInvalidPubKey, "invalid pubkey size")) + } + return &ed25519.PubKey{Key: pkBytes} +} + // EmptyBaseAppOptions is a stub implementing AppOptions type EmptyBaseAppOptions struct{} @@ -372,3 +495,43 @@ func FundAccount(bankKeeper bankkeeper.Keeper, ctx sdk.Context, addr sdk.AccAddr return bankKeeper.SendCoinsFromModuleToAccount(ctx, minttypes.ModuleName, addr, amounts) } + +// FundModuleAccount is a utility function that funds a module account by +// minting and sending the coins to the address. This should be used for testing +// purposes only! +// +// Instead of using the mint module account, which has the +// permission of minting, create a "faucet" account. (@fdymylja) +func FundModuleAccount(bankKeeper bankkeeper.Keeper, ctx sdk.Context, recipientMod string, amounts sdk.Coins) error { + if err := bankKeeper.MintCoins(ctx, minttypes.ModuleName, amounts); err != nil { + return err + } + + return bankKeeper.SendCoinsFromModuleToModule(ctx, minttypes.ModuleName, recipientMod, amounts) +} + +// SignAndDeliverWithoutCommit signs and delivers a transaction. No commit +func SignAndDeliverWithoutCommit(t *testing.T, txCfg client.TxConfig, app *baseapp.BaseApp, msgs []sdk.Msg, chainID string, accNums, accSeqs []uint64, blockTime time.Time, priv ...cryptotypes.PrivKey) (*abci.ResponseFinalizeBlock, error) { + t.Helper() // Mark the function as a test helper + tx, err := helpers.GenSignedMockTx( + rand.New(rand.NewSource(time.Now().UnixNano())), + txCfg, + msgs, + sdk.Coins{sdk.NewInt64Coin(sdk.DefaultBondDenom, 0)}, + 2*DefaultGas, + chainID, + accNums, + accSeqs, + priv..., + ) + require.NoError(t, err) + + bz, err := txCfg.TxEncoder()(tx) + require.NoError(t, err) + + return app.FinalizeBlock(&abci.RequestFinalizeBlock{ + Height: app.LastBlockHeight() + 1, + Time: blockTime, + Txs: [][]byte{bz}, + }) +} diff --git a/app/test_support.go b/app/test_support.go new file mode 100644 index 000000000..1f9f0218b --- /dev/null +++ b/app/test_support.go @@ -0,0 +1,77 @@ +package app + +import ( + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" + "github.com/cosmos/cosmos-sdk/baseapp" + "github.com/cosmos/cosmos-sdk/client" + authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" + bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" + govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" + stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" + packetforwardkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8/packetforward/keeper" + capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper" + wasm08keeper "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/keeper" + ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper" + customibctransferkeeper "github.com/notional-labs/composable/v6/custom/ibc-transfer/keeper" + ratelimitmodulekeeper "github.com/notional-labs/composable/v6/x/ratelimit/keeper" + transfermiddlewarekeeper "github.com/notional-labs/composable/v6/x/transfermiddleware/keeper" +) + +func (app *ComposableApp) GetStakingKeeper() *stakingkeeper.Keeper { + return &app.StakingKeeper.Keeper +} + +func (app *ComposableApp) GetIBCKeeper() *ibckeeper.Keeper { + return app.IBCKeeper +} + +func (app *ComposableApp) GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper { + return app.ScopedIBCKeeper +} + +func (app *ComposableApp) GetBaseApp() *baseapp.BaseApp { + return app.BaseApp +} + +func (app *ComposableApp) GetBankKeeper() bankkeeper.Keeper { + return app.BankKeeper +} + +func (app *ComposableApp) GetAccountKeeper() authkeeper.AccountKeeper { + return app.AccountKeeper +} + +func (app *ComposableApp) GetWasmKeeper() wasmkeeper.Keeper { + return app.WasmKeeper +} + +func (app *ComposableApp) GetWasm08Keeper() wasm08keeper.Keeper { + return app.Wasm08Keeper +} + +func (app *ComposableApp) GetPfmKeeper() packetforwardkeeper.Keeper { + return *app.PfmKeeper +} + +func (app *ComposableApp) GetRateLimitKeeper() ratelimitmodulekeeper.Keeper { + return app.RatelimitKeeper +} + +// GetTransferKeeper implements the TestingApp interface. +func (app *ComposableApp) GetTransferKeeper() customibctransferkeeper.Keeper { + return app.TransferKeeper +} + +func (app *ComposableApp) GetTransferMiddlewareKeeper() transfermiddlewarekeeper.Keeper { + return app.TransferMiddlewareKeeper +} + +func (app *ComposableApp) GetGovKeeper() *govkeeper.Keeper { + return &app.GovKeeper +} + +// GetTxConfig implements the TestingApp interface. +func (app *ComposableApp) GetTxConfig() client.TxConfig { + cfg := MakeEncodingConfig() + return cfg.TxConfig +} diff --git a/app/upgrades/types.go b/app/upgrades/types.go index 10551b005..c2abaf1a1 100644 --- a/app/upgrades/types.go +++ b/app/upgrades/types.go @@ -1,12 +1,12 @@ package upgrades import ( + store "cosmossdk.io/store/types" + upgradetypes "cosmossdk.io/x/upgrade/types" types "github.com/cometbft/cometbft/proto/tendermint/types" "github.com/cosmos/cosmos-sdk/codec" - store "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" "github.com/notional-labs/composable/v6/app/keepers" ) @@ -14,8 +14,8 @@ import ( // BaseAppParamManager defines an interrace that BaseApp is expected to fullfil // that allows upgrade handlers to modify BaseApp parameters. type BaseAppParamManager interface { - GetConsensusParams(ctx sdk.Context) *types.ConsensusParams - StoreConsensusParams(ctx sdk.Context, cp *types.ConsensusParams) + GetConsensusParams(ctx sdk.Context) types.ConsensusParams + StoreConsensusParams(ctx sdk.Context, cp types.ConsensusParams) error } // Upgrade defines a struct containing necessary fields that a SoftwareUpgradeProposal diff --git a/app/upgrades/v6_5_0/constants.go b/app/upgrades/v6_5_0/constants.go deleted file mode 100644 index cfbba664c..000000000 --- a/app/upgrades/v6_5_0/constants.go +++ /dev/null @@ -1,21 +0,0 @@ -package v6_5_0 - -import ( - store "github.com/cosmos/cosmos-sdk/store/types" - "github.com/notional-labs/composable/v6/app/upgrades" - ibctransfermiddleware "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/types" -) - -const ( - // UpgradeName defines the on-chain upgrade name for the composable upgrade. - UpgradeName = "v6_5_0" -) - -var Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateUpgradeHandler, - StoreUpgrades: store.StoreUpgrades{ - Added: []string{ibctransfermiddleware.StoreKey}, - Deleted: []string{}, - }, -} diff --git a/app/upgrades/v6_5_0/upgrade.go b/app/upgrades/v6_5_0/upgrade.go deleted file mode 100644 index 18cf2ad54..000000000 --- a/app/upgrades/v6_5_0/upgrade.go +++ /dev/null @@ -1,46 +0,0 @@ -package v6_5_0 - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - - "github.com/cosmos/cosmos-sdk/codec" - "github.com/notional-labs/composable/v6/app/keepers" - "github.com/notional-labs/composable/v6/app/upgrades" - ibctransfermiddleware "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/types" -) - -func CreateUpgradeHandler( - mm *module.Manager, - configurator module.Configurator, - _ upgrades.BaseAppParamManager, - _ codec.Codec, - keepers *keepers.AppKeepers, -) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - custommiddlewareparams := ibctransfermiddleware.DefaultGenesisState() - keepers.IbcTransferMiddlewareKeeper.SetParams(ctx, custommiddlewareparams.Params) - - // remove broken proposals - // BrokenProposals := [3]uint64{2, 6, 11} - // for _, proposal_id := range BrokenProposals { - // _, ok := keepers.GovKeeper.GetProposal(ctx, proposal_id) - // if ok { - // keepers.GovKeeper.DeleteProposal(ctx, proposal_id) - // } - // } - - // burn extra ppica in escrow account - // this ppica is unused because it is a native token stored in escrow account - // it was unnecessarily minted to match pica escrowed on picasso to ppica minted - // in genesis, to make initial native ppica transferrable to picasso - amount, ok := sdk.NewIntFromString("1066669217167120000000") - if ok { - coins := sdk.Coins{sdk.NewCoin("ppica", amount)} - keepers.BankKeeper.SendCoinsFromAccountToModule(ctx, sdk.MustAccAddressFromBech32("centauri12k2pyuylm9t7ugdvz67h9pg4gmmvhn5vmvgw48"), "gov", coins) - keepers.BankKeeper.BurnCoins(ctx, "gov", coins) - } - return mm.RunMigrations(ctx, configurator, vm) - } -} diff --git a/app/upgrades/v6_5_1/constants.go b/app/upgrades/v6_5_1/constants.go deleted file mode 100644 index 4c7f2b5e3..000000000 --- a/app/upgrades/v6_5_1/constants.go +++ /dev/null @@ -1,20 +0,0 @@ -package v6_5_1 - -import ( - store "github.com/cosmos/cosmos-sdk/store/types" - "github.com/notional-labs/composable/v6/app/upgrades" -) - -const ( - // UpgradeName defines the on-chain upgrade name for the composable upgrade. - UpgradeName = "v6_5_1" -) - -var Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateUpgradeHandler, - StoreUpgrades: store.StoreUpgrades{ - Added: []string{}, - Deleted: []string{}, - }, -} diff --git a/app/upgrades/v6_5_1/upgrade.go b/app/upgrades/v6_5_1/upgrade.go deleted file mode 100644 index 3d8fd257a..000000000 --- a/app/upgrades/v6_5_1/upgrade.go +++ /dev/null @@ -1,23 +0,0 @@ -package v6_5_1 - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - - "github.com/cosmos/cosmos-sdk/codec" - "github.com/notional-labs/composable/v6/app/keepers" - "github.com/notional-labs/composable/v6/app/upgrades" -) - -func CreateUpgradeHandler( - mm *module.Manager, - configurator module.Configurator, - _ upgrades.BaseAppParamManager, - _ codec.Codec, - keepers *keepers.AppKeepers, -) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - return mm.RunMigrations(ctx, configurator, vm) - } -} diff --git a/app/upgrades/v6_5_2/constants.go b/app/upgrades/v6_5_2/constants.go deleted file mode 100644 index 288c89287..000000000 --- a/app/upgrades/v6_5_2/constants.go +++ /dev/null @@ -1,20 +0,0 @@ -package v6_5_2 - -import ( - store "github.com/cosmos/cosmos-sdk/store/types" - "github.com/notional-labs/composable/v6/app/upgrades" -) - -const ( - // UpgradeName defines the on-chain upgrade name for the composable upgrade. - UpgradeName = "v6_5_2" -) - -var Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateUpgradeHandler, - StoreUpgrades: store.StoreUpgrades{ - Added: []string{}, - Deleted: []string{}, - }, -} diff --git a/app/upgrades/v6_5_2/upgrade.go b/app/upgrades/v6_5_2/upgrade.go deleted file mode 100644 index 11a813c2c..000000000 --- a/app/upgrades/v6_5_2/upgrade.go +++ /dev/null @@ -1,23 +0,0 @@ -package v6_5_2 - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - - "github.com/cosmos/cosmos-sdk/codec" - "github.com/notional-labs/composable/v6/app/keepers" - "github.com/notional-labs/composable/v6/app/upgrades" -) - -func CreateUpgradeHandler( - mm *module.Manager, - configurator module.Configurator, - _ upgrades.BaseAppParamManager, - _ codec.Codec, - keepers *keepers.AppKeepers, -) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - return mm.RunMigrations(ctx, configurator, vm) - } -} diff --git a/app/upgrades/v6_5_3/constants.go b/app/upgrades/v6_5_3/constants.go deleted file mode 100644 index 509d5d40b..000000000 --- a/app/upgrades/v6_5_3/constants.go +++ /dev/null @@ -1,20 +0,0 @@ -package v6_5_3 - -import ( - store "github.com/cosmos/cosmos-sdk/store/types" - "github.com/notional-labs/composable/v6/app/upgrades" -) - -const ( - // UpgradeName defines the on-chain upgrade name for the composable upgrade. - UpgradeName = "v6_5_3" -) - -var Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateUpgradeHandler, - StoreUpgrades: store.StoreUpgrades{ - Added: []string{}, - Deleted: []string{}, - }, -} diff --git a/app/upgrades/v6_5_3/upgrade.go b/app/upgrades/v6_5_3/upgrade.go deleted file mode 100644 index 405440f88..000000000 --- a/app/upgrades/v6_5_3/upgrade.go +++ /dev/null @@ -1,23 +0,0 @@ -package v6_5_3 - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - - "github.com/cosmos/cosmos-sdk/codec" - "github.com/notional-labs/composable/v6/app/keepers" - "github.com/notional-labs/composable/v6/app/upgrades" -) - -func CreateUpgradeHandler( - mm *module.Manager, - configurator module.Configurator, - _ upgrades.BaseAppParamManager, - _ codec.Codec, - keepers *keepers.AppKeepers, -) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - return mm.RunMigrations(ctx, configurator, vm) - } -} diff --git a/app/upgrades/v6_5_4/constants.go b/app/upgrades/v6_5_4/constants.go deleted file mode 100644 index dc26cf58e..000000000 --- a/app/upgrades/v6_5_4/constants.go +++ /dev/null @@ -1,20 +0,0 @@ -package v6_5_4 - -import ( - store "github.com/cosmos/cosmos-sdk/store/types" - "github.com/notional-labs/composable/v6/app/upgrades" -) - -const ( - // UpgradeName defines the on-chain upgrade name for the composable upgrade. - UpgradeName = "v6_5_4" -) - -var Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateUpgradeHandler, - StoreUpgrades: store.StoreUpgrades{ - Added: []string{}, - Deleted: []string{}, - }, -} diff --git a/app/upgrades/v6_5_4/upgrade.go b/app/upgrades/v6_5_4/upgrade.go deleted file mode 100644 index 868a8b544..000000000 --- a/app/upgrades/v6_5_4/upgrade.go +++ /dev/null @@ -1,35 +0,0 @@ -package v6_5_4 - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - "github.com/cosmos/cosmos-sdk/x/gov/types" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - - "github.com/cosmos/cosmos-sdk/codec" - "github.com/notional-labs/composable/v6/app/keepers" - - "github.com/notional-labs/composable/v6/app/upgrades" -) - -func CreateUpgradeHandler( - mm *module.Manager, - configurator module.Configurator, - _ upgrades.BaseAppParamManager, - _ codec.Codec, - keepers *keepers.AppKeepers, -) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - BrokenProposals := [3]uint64{2, 6, 11} - // gov module store - store := ctx.KVStore(keepers.GetKVStoreKey()["gov"]) - - for _, proposalID := range BrokenProposals { - bz := store.Get(types.ProposalKey(proposalID)) - if bz != nil { - store.Delete(types.ProposalKey(proposalID)) - } - } - return mm.RunMigrations(ctx, configurator, vm) - } -} diff --git a/app/upgrades/v6_5_5/constants.go b/app/upgrades/v6_5_5/constants.go deleted file mode 100644 index 1c066a692..000000000 --- a/app/upgrades/v6_5_5/constants.go +++ /dev/null @@ -1,20 +0,0 @@ -package v6_5_5 - -import ( - store "github.com/cosmos/cosmos-sdk/store/types" - "github.com/notional-labs/composable/v6/app/upgrades" -) - -const ( - // UpgradeName defines the on-chain upgrade name for the composable upgrade. - UpgradeName = "v6_5_5" -) - -var Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateUpgradeHandler, - StoreUpgrades: store.StoreUpgrades{ - Added: []string{}, - Deleted: []string{}, - }, -} diff --git a/app/upgrades/v6_5_5/upgrade.go b/app/upgrades/v6_5_5/upgrade.go deleted file mode 100644 index 2226d99ef..000000000 --- a/app/upgrades/v6_5_5/upgrade.go +++ /dev/null @@ -1,24 +0,0 @@ -package v6_5_5 - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - - "github.com/cosmos/cosmos-sdk/codec" - "github.com/notional-labs/composable/v6/app/keepers" - - "github.com/notional-labs/composable/v6/app/upgrades" -) - -func CreateUpgradeHandler( - mm *module.Manager, - configurator module.Configurator, - _ upgrades.BaseAppParamManager, - _ codec.Codec, - keepers *keepers.AppKeepers, -) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - return mm.RunMigrations(ctx, configurator, vm) - } -} diff --git a/app/upgrades/v6_6_1/constants.go b/app/upgrades/v6_6_1/constants.go deleted file mode 100644 index 012196502..000000000 --- a/app/upgrades/v6_6_1/constants.go +++ /dev/null @@ -1,20 +0,0 @@ -package v6_6_1 - -import ( - store "github.com/cosmos/cosmos-sdk/store/types" - "github.com/notional-labs/composable/v6/app/upgrades" -) - -const ( - // UpgradeName defines the on-chain upgrade name for the composable upgrade. - UpgradeName = "v6_6_1" -) - -var Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateUpgradeHandler, - StoreUpgrades: store.StoreUpgrades{ - Added: []string{}, - Deleted: []string{}, - }, -} diff --git a/app/upgrades/v6_6_1/upgrade.go b/app/upgrades/v6_6_1/upgrade.go deleted file mode 100644 index f8f146e83..000000000 --- a/app/upgrades/v6_6_1/upgrade.go +++ /dev/null @@ -1,60 +0,0 @@ -package v6_6_1 - -import ( - "github.com/CosmWasm/wasmd/x/wasm" - "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - routertypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types" - icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types" - ibchookstypes "github.com/notional-labs/composable/v6/x/ibc-hooks/types" - ibctransfermiddlewaretypes "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/types" - - "github.com/notional-labs/composable/v6/app/keepers" - "github.com/notional-labs/composable/v6/app/upgrades" - bech32authmigration "github.com/notional-labs/composable/v6/bech32-migration/auth" - bech32govmigration "github.com/notional-labs/composable/v6/bech32-migration/gov" - bech32IbcHooksMigration "github.com/notional-labs/composable/v6/bech32-migration/ibchooks" - bench32ibctransfermiddleware "github.com/notional-labs/composable/v6/bech32-migration/ibctransfermiddleware" - bech32icamigration "github.com/notional-labs/composable/v6/bech32-migration/ica" - bech32mintmigration "github.com/notional-labs/composable/v6/bech32-migration/mint" - bech32PfmMigration "github.com/notional-labs/composable/v6/bech32-migration/pfmmiddleware" - bech32slashingmigration "github.com/notional-labs/composable/v6/bech32-migration/slashing" - bech32stakingmigration "github.com/notional-labs/composable/v6/bech32-migration/staking" - bech32transfermiddlewaremigration "github.com/notional-labs/composable/v6/bech32-migration/transfermiddleware" - bech32WasmMigration "github.com/notional-labs/composable/v6/bech32-migration/wasm" - transfermiddlewaretypes "github.com/notional-labs/composable/v6/x/transfermiddleware/types" -) - -func CreateUpgradeHandler( - mm *module.Manager, - configurator module.Configurator, - _ upgrades.BaseAppParamManager, - codec codec.Codec, - keepers *keepers.AppKeepers, -) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - keys := keepers.GetKVStoreKey() - // Migration prefix - ctx.Logger().Info("First step: Migrate addresses stored in bech32 form to use new prefix") - bech32stakingmigration.MigrateAddressBech32(ctx, keys[stakingtypes.StoreKey], codec) - bech32stakingmigration.MigrateUnbonding(ctx, keys[stakingtypes.StoreKey], codec) - bech32slashingmigration.MigrateAddressBech32(ctx, keys[slashingtypes.StoreKey], codec) - bech32govmigration.MigrateAddressBech32(ctx, keys[govtypes.StoreKey], codec) - bech32authmigration.MigrateAddressBech32(ctx, keys[authtypes.StoreKey], codec) - bech32icamigration.MigrateAddressBech32(ctx, keys[icahosttypes.StoreKey], codec) - bech32mintmigration.MigrateAddressBech32(ctx, keys[minttypes.StoreKey], codec) - bech32transfermiddlewaremigration.MigrateAddressBech32(ctx, keys[transfermiddlewaretypes.StoreKey], codec) - bech32WasmMigration.MigrateAddressBech32(ctx, keys[wasm.StoreKey], codec) - bech32PfmMigration.MigrateAddressBech32(ctx, keys[routertypes.StoreKey], codec, keepers) - bench32ibctransfermiddleware.MigrateAddressBech32(ctx, keys[ibctransfermiddlewaretypes.StoreKey], codec) - bech32IbcHooksMigration.MigrateAddressBech32(ctx, keys[ibchookstypes.StoreKey], codec) - return mm.RunMigrations(ctx, configurator, vm) - } -} diff --git a/app/upgrades/v6_6_2/constants.go b/app/upgrades/v6_6_2/constants.go deleted file mode 100644 index edc47ab59..000000000 --- a/app/upgrades/v6_6_2/constants.go +++ /dev/null @@ -1,20 +0,0 @@ -package v6_6_2 - -import ( - store "github.com/cosmos/cosmos-sdk/store/types" - "github.com/notional-labs/composable/v6/app/upgrades" -) - -const ( - // UpgradeName defines the on-chain upgrade name for the composable upgrade. - UpgradeName = "v6_6_2" -) - -var Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateUpgradeHandler, - StoreUpgrades: store.StoreUpgrades{ - Added: []string{}, - Deleted: []string{}, - }, -} diff --git a/app/upgrades/v6_6_2/upgrade.go b/app/upgrades/v6_6_2/upgrade.go deleted file mode 100644 index 15db9ee1b..000000000 --- a/app/upgrades/v6_6_2/upgrade.go +++ /dev/null @@ -1,32 +0,0 @@ -package v6_6_2 - -import ( - "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - ibchookstypes "github.com/notional-labs/composable/v6/x/ibc-hooks/types" - ibctransfermiddlewaretypes "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/types" - - "github.com/notional-labs/composable/v6/app/keepers" - "github.com/notional-labs/composable/v6/app/upgrades" - bech32IbcHooksMigration "github.com/notional-labs/composable/v6/bech32-migration/ibchooks" - bench32ibctransfermiddleware "github.com/notional-labs/composable/v6/bech32-migration/ibctransfermiddleware" -) - -func CreateUpgradeHandler( - mm *module.Manager, - configurator module.Configurator, - _ upgrades.BaseAppParamManager, - codec codec.Codec, - keepers *keepers.AppKeepers, -) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - keys := keepers.GetKVStoreKey() - // Migration prefix - ctx.Logger().Info("First step: Migrate addresses stored in bech32 form to use new prefix") - bench32ibctransfermiddleware.MigrateAddressBech32(ctx, keys[ibctransfermiddlewaretypes.StoreKey], codec) - bech32IbcHooksMigration.MigrateAddressBech32(ctx, keys[ibchookstypes.StoreKey], codec) - return mm.RunMigrations(ctx, configurator, vm) - } -} diff --git a/app/upgrades/v6_6_4/constants.go b/app/upgrades/v6_6_4/constants.go deleted file mode 100644 index 460f8d743..000000000 --- a/app/upgrades/v6_6_4/constants.go +++ /dev/null @@ -1,20 +0,0 @@ -package v6_6_4 - -import ( - store "github.com/cosmos/cosmos-sdk/store/types" - "github.com/notional-labs/composable/v6/app/upgrades" -) - -const ( - // UpgradeName defines the on-chain upgrade name for the composable upgrade. - UpgradeName = "v6_6_4" -) - -var Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateUpgradeHandler, - StoreUpgrades: store.StoreUpgrades{ - Added: []string{}, - Deleted: []string{}, - }, -} diff --git a/app/upgrades/v6_6_4/upgrade.go b/app/upgrades/v6_6_4/upgrade.go deleted file mode 100644 index 7c6a960ea..000000000 --- a/app/upgrades/v6_6_4/upgrade.go +++ /dev/null @@ -1,60 +0,0 @@ -package v6_6_4 - -import ( - "github.com/CosmWasm/wasmd/x/wasm" - "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - routertypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types" - icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types" - ibchookstypes "github.com/notional-labs/composable/v6/x/ibc-hooks/types" - ibctransfermiddlewaretypes "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/types" - - "github.com/notional-labs/composable/v6/app/keepers" - "github.com/notional-labs/composable/v6/app/upgrades" - bech32authmigration "github.com/notional-labs/composable/v6/bech32-migration/auth" - bech32govmigration "github.com/notional-labs/composable/v6/bech32-migration/gov" - bech32IbcHooksMigration "github.com/notional-labs/composable/v6/bech32-migration/ibchooks" - bench32ibctransfermiddleware "github.com/notional-labs/composable/v6/bech32-migration/ibctransfermiddleware" - bech32icamigration "github.com/notional-labs/composable/v6/bech32-migration/ica" - bech32mintmigration "github.com/notional-labs/composable/v6/bech32-migration/mint" - bech32PfmMigration "github.com/notional-labs/composable/v6/bech32-migration/pfmmiddleware" - bech32slashingmigration "github.com/notional-labs/composable/v6/bech32-migration/slashing" - bech32stakingmigration "github.com/notional-labs/composable/v6/bech32-migration/staking" - bech32transfermiddlewaremigration "github.com/notional-labs/composable/v6/bech32-migration/transfermiddleware" - bech32WasmMigration "github.com/notional-labs/composable/v6/bech32-migration/wasm" - transfermiddlewaretypes "github.com/notional-labs/composable/v6/x/transfermiddleware/types" -) - -func CreateUpgradeHandler( - mm *module.Manager, - configurator module.Configurator, - _ upgrades.BaseAppParamManager, - codec codec.Codec, - keepers *keepers.AppKeepers, -) upgradetypes.UpgradeHandler { - return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - keys := keepers.GetKVStoreKey() - // Migration prefix - ctx.Logger().Info("First step: Migrate addresses stored in bech32 form to use new prefix") - bech32stakingmigration.MigrateAddressBech32(ctx, keys[stakingtypes.StoreKey], codec) - bech32stakingmigration.MigrateUnbonding(ctx, keys[stakingtypes.StoreKey], codec) - bech32slashingmigration.MigrateAddressBech32(ctx, keys[slashingtypes.StoreKey], codec) - bech32govmigration.MigrateAddressBech32(ctx, keys[govtypes.StoreKey], codec) - bech32authmigration.MigrateAddressBech32(ctx, keys[authtypes.StoreKey], codec) - bech32icamigration.MigrateAddressBech32(ctx, keys[icahosttypes.StoreKey], codec) - bech32mintmigration.MigrateAddressBech32(ctx, keys[minttypes.StoreKey], codec) - bech32transfermiddlewaremigration.MigrateAddressBech32(ctx, keys[transfermiddlewaretypes.StoreKey], codec) - bech32WasmMigration.MigrateAddressBech32(ctx, keys[wasm.StoreKey], codec) - bech32PfmMigration.MigrateAddressBech32(ctx, keys[routertypes.StoreKey], codec, keepers) - bench32ibctransfermiddleware.MigrateAddressBech32(ctx, keys[ibctransfermiddlewaretypes.StoreKey], codec) - bech32IbcHooksMigration.MigrateAddressBech32(ctx, keys[ibchookstypes.StoreKey], codec) - return mm.RunMigrations(ctx, configurator, vm) - } -} diff --git a/app/upgrades/v6_6_4/upgrades_test.go b/app/upgrades/v6_6_4/upgrades_test.go deleted file mode 100644 index 73e020de1..000000000 --- a/app/upgrades/v6_6_4/upgrades_test.go +++ /dev/null @@ -1,540 +0,0 @@ -package v6_6_4_test - -import ( - "encoding/json" - "strings" - "testing" - "time" - - ibchookskeeper "github.com/notional-labs/composable/v6/x/ibc-hooks/keeper" - ibctransfermiddlewaretypes "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/types" - - "github.com/notional-labs/composable/v6/app/upgrades/v6_6_4" - - "cosmossdk.io/math" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/bech32" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" - banktestutil "github.com/cosmos/cosmos-sdk/x/bank/testutil" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1" - minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - routertypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types" - ibchookstypes "github.com/notional-labs/composable/v6/x/ibc-hooks/types" - - apptesting "github.com/notional-labs/composable/v6/app" - "github.com/notional-labs/composable/v6/bech32-migration/utils" - "github.com/stretchr/testify/suite" - alliancetypes "github.com/terra-money/alliance/x/alliance/types" -) - -const ( - COIN_DENOM = "stake" - CONNECTION_0 = "connection-0" - PORT_0 = "port-0" - CHANNEL_0 = "channel-0" -) - -type UpgradeTestSuite struct { - apptesting.KeeperTestHelper -} - -func TestUpgradeTestSuite(t *testing.T) { - suite.Run(t, new(UpgradeTestSuite)) -} - -// Ensures the test does not error out. -func (s *UpgradeTestSuite) TestForMigratingNewPrefix() { - // DEFAULT PREFIX: centauri - sdk.SetAddrCacheEnabled(false) - - sdk.GetConfig().SetBech32PrefixForAccount(utils.OldBech32PrefixAccAddr, utils.OldBech32PrefixAccPub) - sdk.GetConfig().SetBech32PrefixForValidator(utils.OldBech32PrefixValAddr, utils.OldBech32PrefixValPub) - sdk.GetConfig().SetBech32PrefixForConsensusNode(utils.OldBech32PrefixConsAddr, utils.OldBech32PrefixConsPub) - - s.Setup(s.T()) - - acc1, proposal := prepareForTestingGovModule(s) - oldConsAddress := prepareForTestingSlashingModule(s) - oldValAddress, oldValAddress2, acc3, afterOneDay := prepareForTestingStakingModule(s) - baseAccount, stakingModuleAccount, baseVestingAccount, continuousVestingAccount, delayedVestingAccount, periodicVestingAccount, permanentLockedAccount := prepareForTestingAuthModule(s) - prepareForTestingAllianceModule(s) - prepareForTestingICAHostModule(s) - prepareForTestingMintModule(s) - prepareForTestingTransferMiddlewareModule(s) - prepareForTestingPfmMiddlewareModule(s) - prepareForTestingIbcTransferMiddlewareModule(s) - prepareForTestingIbcHooksModule(s) - - /* == UPGRADE == */ - upgradeHeight := int64(5) - s.ConfirmUpgradeSucceeded(v6_6_4.UpgradeName, upgradeHeight) - - /* == CHECK AFTER UPGRADE == */ - checkUpgradeGovModule(s, acc1, proposal) - checkUpgradeSlashingModule(s, oldConsAddress) - checkUpgradeStakingModule(s, oldValAddress, oldValAddress2, acc3, afterOneDay) - checkUpgradeAuthModule(s, baseAccount, stakingModuleAccount, baseVestingAccount, continuousVestingAccount, delayedVestingAccount, periodicVestingAccount, permanentLockedAccount) - checkUpgradeAllianceModule(s) - checkUpgradeICAHostModule(s) - checkUpgradeMintModule(s) - checkUpgradeTransferMiddlewareModule(s) - checkUpgradePfmMiddlewareModule(s) - checkUpgradeIbcTransferMiddlewareModule(s) - checkUpgradeIbcHooksMiddlewareModule(s) -} - -func prepareForTestingGovModule(s *UpgradeTestSuite) (sdk.AccAddress, govtypes.Proposal) { - /* PREPARE FOR TESTING GOV MODULE */ - acc1 := s.TestAccs[0] - - // MINT NEW TOKEN FOR BALANCE CHECKING - s.App.BankKeeper.MintCoins(s.Ctx, minttypes.ModuleName, sdk.NewCoins(sdk.NewCoin(COIN_DENOM, math.NewIntFromUint64(100000000)))) - - // VOTE AND DEPOSIT - proposal, err := s.App.GovKeeper.SubmitProposal(s.Ctx, []sdk.Msg{}, "", "test", "description", acc1) - s.Suite.Equal(err, nil) - - s.App.GovKeeper.SetVote(s.Ctx, govtypes.Vote{ - ProposalId: proposal.Id, - Voter: acc1.String(), - Options: nil, - Metadata: "", - }) - - s.App.GovKeeper.SetDeposit(s.Ctx, govtypes.Deposit{ - ProposalId: proposal.Id, - Depositor: acc1.String(), - Amount: sdk.NewCoins(sdk.NewCoin(COIN_DENOM, math.NewIntFromUint64(1))), - }) - - return acc1, proposal -} - -func prepareForTestingSlashingModule(s *UpgradeTestSuite) sdk.ConsAddress { - /* PREPARE FOR TESTING SLASHING MODULE */ - acc2 := s.TestAccs[1] - - oldConsAddress, err := utils.ConsAddressFromOldBech32(acc2.String(), utils.OldBech32PrefixAccAddr) - s.Suite.Equal(err, nil) - - // CHECK ValidatorSigningInfo - s.App.SlashingKeeper.SetValidatorSigningInfo(s.Ctx, oldConsAddress, slashingtypes.ValidatorSigningInfo{ - Address: oldConsAddress.String(), - }) - return oldConsAddress -} - -func prepareForTestingStakingModule(s *UpgradeTestSuite) (sdk.ValAddress, sdk.ValAddress, sdk.AccAddress, time.Time) { - /* PREPARE FOR TESTING SLASHING MODULE */ - acc3 := s.TestAccs[2] - - // MINT NEW TOKEN FOR BALANCE CHECKING - s.App.BankKeeper.MintCoins(s.Ctx, minttypes.ModuleName, sdk.NewCoins(sdk.NewCoin(COIN_DENOM, math.NewIntFromUint64(100000000)))) - s.App.BankKeeper.SendCoinsFromModuleToAccount(s.Ctx, minttypes.ModuleName, acc3, sdk.NewCoins(sdk.NewCoin(COIN_DENOM, math.NewIntFromUint64(100000000)))) - - // validator.OperatorAddress - oldValAddress := s.SetupValidator(stakingtypes.Bonded) - oldValAddress2 := s.SetupValidator(stakingtypes.Bonded) - - // delegation.DelegatorAddress & delegation.ValidatorAddress - s.StakingHelper.Delegate(acc3, oldValAddress, sdk.NewInt(300)) - - // redelegation.DelegatorAddress & redelegation.ValidatorSrcAddress & redelegation.ValidatorDstAddress - completionTime, err := s.App.StakingKeeper.BeginRedelegation(s.Ctx, acc3, oldValAddress, oldValAddress2, sdk.NewDec(100)) - afterOneDay := completionTime.AddDate(0, 0, 1) - s.Require().NoError(err) - - // Undelegate part of the tokens from val2 (test instant unbonding on undelegation started before upgrade) - s.StakingHelper.Undelegate(acc3, oldValAddress, sdk.NewInt(10), true) - - s.App.StakingKeeper.SetRedelegationQueueTimeSlice(s.Ctx, time.Date(2024, time.March, 4, 12, 0, 0, 0, time.UTC), []stakingtypes.DVVTriplet{ - { - DelegatorAddress: s.TestAccs[2].String(), - ValidatorDstAddress: oldValAddress.String(), - ValidatorSrcAddress: oldValAddress2.String(), - }, - }) - - return oldValAddress, oldValAddress2, acc3, afterOneDay -} - -func prepareForTestingAuthModule(s *UpgradeTestSuite) (sdk.AccAddress, sdk.AccAddress, sdk.AccAddress, sdk.AccAddress, sdk.AccAddress, sdk.AccAddress, sdk.AccAddress) { - addr0 := s.TestAccs[0] - baseAccount := authtypes.NewBaseAccount(addr0, nil, 0, 0) - s.App.AccountKeeper.SetAccount(s.Ctx, baseAccount) - - addr6 := s.TestAccs[6] - baseAccount6 := authtypes.NewBaseAccount(addr6, nil, 0, 0) - stakingModuleAccount := authtypes.NewModuleAccount(baseAccount6, "name", "name") - s.App.AccountKeeper.SetAccount(s.Ctx, stakingModuleAccount) - - addr2 := s.TestAccs[2] - baseAccount2 := authtypes.NewBaseAccount(addr2, nil, 0, 0) - baseVestingAccount := vestingtypes.NewBaseVestingAccount(baseAccount2, sdk.NewCoins(sdk.NewCoin(COIN_DENOM, math.NewIntFromUint64(1))), 60) - s.App.AccountKeeper.SetAccount(s.Ctx, baseVestingAccount) - - continuousVestingAccount := CreateVestingAccount(s) - - addr3 := s.TestAccs[3] - baseAccount3 := authtypes.NewBaseAccount(addr3, nil, 0, 0) - baseVestingAccount2 := vestingtypes.NewBaseVestingAccount(baseAccount3, sdk.NewCoins(sdk.NewCoin(COIN_DENOM, math.NewIntFromUint64(1))), 60) - delayedVestingAccount := vestingtypes.NewDelayedVestingAccountRaw(baseVestingAccount2) - s.App.AccountKeeper.SetAccount(s.Ctx, delayedVestingAccount) - - addr4 := s.TestAccs[4] - baseAccount4 := authtypes.NewBaseAccount(addr4, nil, 0, 0) - baseVestingAccount3 := vestingtypes.NewBaseVestingAccount(baseAccount4, sdk.NewCoins(sdk.NewCoin(COIN_DENOM, math.NewIntFromUint64(1))), 60) - periodicVestingAccount := vestingtypes.NewPeriodicVestingAccountRaw(baseVestingAccount3, 0, vestingtypes.Periods{}) - s.App.AccountKeeper.SetAccount(s.Ctx, periodicVestingAccount) - - addr5 := s.TestAccs[5] - baseAccount5 := authtypes.NewBaseAccount(addr5, nil, 0, 0) - permanentLockedAccount := vestingtypes.NewPermanentLockedAccount(baseAccount5, sdk.NewCoins(sdk.NewCoin(COIN_DENOM, math.NewIntFromUint64(1)))) - s.App.AccountKeeper.SetAccount(s.Ctx, permanentLockedAccount) - - return baseAccount.GetAddress(), stakingModuleAccount.GetAddress(), baseVestingAccount.GetAddress(), continuousVestingAccount.GetAddress(), delayedVestingAccount.GetAddress(), periodicVestingAccount.GetAddress(), permanentLockedAccount.GetAddress() -} - -func prepareForTestingICAHostModule(s *UpgradeTestSuite) { - acc1 := s.TestAccs[0] - s.App.ICAHostKeeper.SetInterchainAccountAddress(s.Ctx, CONNECTION_0, PORT_0, acc1.String()) -} - -func prepareForTestingMintModule(s *UpgradeTestSuite) { - acc1 := s.TestAccs[0] - s.App.MintKeeper.SetAllowedAddress(s.Ctx, acc1.String()) -} - -func prepareForTestingAllianceModule(s *UpgradeTestSuite) { - oldValAddress := s.SetupValidator(stakingtypes.Bonded) - _, bz, _ := bech32.DecodeAndConvert(oldValAddress.String()) - oldBech32Addr, _ := bech32.ConvertAndEncode(utils.OldBech32PrefixValAddr, bz) - - s.App.AllianceKeeper.InitGenesis(s.Ctx, &alliancetypes.GenesisState{ - ValidatorInfos: []alliancetypes.ValidatorInfoState{{ - ValidatorAddress: oldBech32Addr, - Validator: alliancetypes.NewAllianceValidatorInfo(), - }}, - }) -} - -func prepareForTestingTransferMiddlewareModule(s *UpgradeTestSuite) { - acc1 := s.TestAccs[0] - s.App.TransferMiddlewareKeeper.SetAllowRlyAddress(s.Ctx, acc1.String()) -} - -func prepareForTestingPfmMiddlewareModule(s *UpgradeTestSuite) { - store := s.Ctx.KVStore(s.App.GetKey(routertypes.StoreKey)) - inFlightPacket := routertypes.InFlightPacket{ - PacketData: []byte("{\"amount\":\"10000\",\"denom\":\"transfer/channel-6660/ppica\",\"memo\":\"{\\\"forward\\\":{\\\"receiver\\\":\\\"osmo1wkjvpgkuchq0r8425g4z4sf6n85zj5wth3u77y\\\",\\\"port\\\":\\\"transfer\\\",\\\"channel\\\":\\\"channel-9\\\",\\\"timeout\\\":600000000000,\\\"retries\\\":0}}\",\"receiver\":\"centauri1wkjvpgkuchq0r8425g4z4sf6n85zj5wtmqzjv9\",\"sender\":\"osmo1wkjvpgkuchq0r8425g4z4sf6n85zj5wth3u77y\"}"), - OriginalSenderAddress: "centauri1wkjvpgkuchq0r8425g4z4sf6n85zj5wtmqzjv9", - RefundChannelId: "channel-9", - RefundPortId: "transfer", - RefundSequence: 18, - PacketSrcPortId: "transfer", - PacketSrcChannelId: "channel-66660", - - PacketTimeoutTimestamp: 1712153063084849609, - PacketTimeoutHeight: "5-123", - - RetriesRemaining: int32(0), - Timeout: uint64(600000000000), - Nonrefundable: false, - } - - encCdc := apptesting.MakeEncodingConfig() - - key := routertypes.RefundPacketKey("channel-9", "transfer", 0) - bz := encCdc.Amino.MustMarshal(&inFlightPacket) - store.Set(key, bz) - - key = routertypes.RefundPacketKey("channel-9", "transfer", 2) - inFlightPacket.OriginalSenderAddress = "centauri1hj5fveer5cjtn4wd6wstzugjfdxzl0xpzxlwgs" - bz = encCdc.Amino.MustMarshal(&inFlightPacket) - store.Set(key, bz) -} - -func prepareForTestingIbcTransferMiddlewareModule(s *UpgradeTestSuite) { - store := s.Ctx.KVStore(s.App.GetKey(ibctransfermiddlewaretypes.StoreKey)) - var fees []*ibctransfermiddlewaretypes.ChannelFee - fees = append(fees, &ibctransfermiddlewaretypes.ChannelFee{ - Channel: "channel-7", - AllowedTokens: []*ibctransfermiddlewaretypes.CoinItem{{ - MinFee: sdk.Coin{}, - Percentage: 20, - }}, - FeeAddress: "centauri1hj5fveer5cjtn4wd6wstzugjfdxzl0xpzxlwgs", - MinTimeoutTimestamp: 0, - }) - fees = append(fees, &ibctransfermiddlewaretypes.ChannelFee{ - Channel: "channel-9", - AllowedTokens: []*ibctransfermiddlewaretypes.CoinItem{{ - MinFee: sdk.Coin{}, - Percentage: 10, - }}, - FeeAddress: "centauri1hj5fveer5cjtn4wd6wstzugjfdxzl0xpzxlwgs", - MinTimeoutTimestamp: 0, - }) - params := ibctransfermiddlewaretypes.Params{ChannelFees: fees} - encCdc := apptesting.MakeEncodingConfig() - bz := encCdc.Amino.MustMarshal(¶ms) - store.Set(ibctransfermiddlewaretypes.ParamsKey, bz) -} - -func prepareForTestingIbcHooksModule(s *UpgradeTestSuite) { - store := s.Ctx.KVStore(s.App.GetKey(ibchookstypes.StoreKey)) - store.Set(ibchookskeeper.GetPacketKey("channel-2", 2), []byte("centauri1hj5fveer5cjtn4wd6wstzugjfdxzl0xpzxlwgs")) - store.Set(ibchookskeeper.GetPacketKey("channel-4", 2), []byte("centauri1wkjvpgkuchq0r8425g4z4sf6n85zj5wtmqzjv9")) -} - -func checkUpgradeGovModule(s *UpgradeTestSuite, acc1 sdk.AccAddress, proposal govtypes.Proposal) { - // CONVERT ACC TO NEW PREFIX - _, bz, _ := bech32.DecodeAndConvert(acc1.String()) - newBech32Addr, _ := bech32.ConvertAndEncode(utils.NewBech32PrefixAccAddr, bz) - newAddr, err := utils.AccAddressFromOldBech32(newBech32Addr, utils.NewBech32PrefixAccAddr) - s.Suite.Equal(err, nil) - - // CHECK PROPOSAL - proposal, found := s.App.GovKeeper.GetProposal(s.Ctx, proposal.Id) - s.Suite.Equal(found, true) - s.Suite.Equal(proposal.Proposer, newBech32Addr) - - // CHECK VOTER AND DEPOSITER OF NEW ADDRESS - existed_proposal, _ := s.App.GovKeeper.GetProposal(s.Ctx, proposal.Id) - s.Suite.Equal(existed_proposal.Proposer, newBech32Addr) - - vote, found := s.App.GovKeeper.GetVote(s.Ctx, proposal.Id, newAddr) - s.Suite.Equal(found, true) - s.Suite.Equal(vote.Voter, newBech32Addr) - - deposit, found := s.App.GovKeeper.GetDeposit(s.Ctx, proposal.Id, newAddr) - s.Suite.Equal(found, true) - s.Suite.Equal(deposit.Depositor, newBech32Addr) -} - -func checkUpgradeSlashingModule(s *UpgradeTestSuite, oldConsAddress sdk.ConsAddress) { - // CONVERT TO ACC TO NEW PREFIX - _, bz, _ := bech32.DecodeAndConvert(oldConsAddress.String()) - newBech32Addr, _ := bech32.ConvertAndEncode(utils.NewBech32PrefixConsAddr, bz) - newAddr, err := utils.ConsAddressFromOldBech32(newBech32Addr, utils.NewBech32PrefixConsAddr) - s.Suite.Equal(err, nil) - - valSigningInfo, found := s.App.SlashingKeeper.GetValidatorSigningInfo(s.Ctx, newAddr) - s.Suite.Equal(found, true) - s.Suite.Equal(valSigningInfo.Address, newBech32Addr) -} - -func checkUpgradeStakingModule(s *UpgradeTestSuite, oldValAddress, oldValAddress2 sdk.ValAddress, acc1 sdk.AccAddress, afterOneDay time.Time) { - // CONVERT TO ACC TO NEW PREFIX - _, bz, _ := bech32.DecodeAndConvert(oldValAddress.String()) - newBech32Addr, _ := bech32.ConvertAndEncode(utils.NewBech32PrefixValAddr, bz) - newValAddr, err := utils.ValAddressFromOldBech32(newBech32Addr, utils.NewBech32PrefixValAddr) - s.Suite.Equal(err, nil) - - _, bzVal2, _ := bech32.DecodeAndConvert(oldValAddress2.String()) - newBech32AddrVal2, _ := bech32.ConvertAndEncode(utils.NewBech32PrefixValAddr, bzVal2) - newValAddr2, err := utils.ValAddressFromOldBech32(newBech32AddrVal2, utils.NewBech32PrefixValAddr) - s.Suite.Equal(err, nil) - - _, bz1, _ := bech32.DecodeAndConvert(acc1.String()) - newBech32DelAddr, _ := bech32.ConvertAndEncode(utils.NewBech32PrefixAccAddr, bz1) - newAccAddr, err := utils.AccAddressFromOldBech32(newBech32DelAddr, utils.NewBech32PrefixAccAddr) - s.Suite.Equal(err, nil) - - val, found := s.App.StakingKeeper.GetValidator(s.Ctx, newValAddr) - s.Suite.Equal(found, true) - s.Suite.Equal(val.OperatorAddress, newBech32Addr) - - delegation, found := s.App.StakingKeeper.GetDelegation(s.Ctx, newAccAddr, newValAddr) - s.Suite.Equal(found, true) - s.Suite.Equal(delegation.DelegatorAddress, newBech32DelAddr) - s.Suite.Equal(delegation.ValidatorAddress, newBech32Addr) - - unbonding, found := s.App.StakingKeeper.GetUnbondingDelegation(s.Ctx, newAccAddr, newValAddr) - s.Suite.Equal(found, true) - s.Suite.Equal(unbonding.DelegatorAddress, newBech32DelAddr) - s.Suite.Equal(unbonding.ValidatorAddress, newBech32Addr) - - s.Ctx = s.Ctx.WithBlockTime(afterOneDay) - - redelegation, found := s.App.StakingKeeper.GetRedelegation(s.Ctx, newAccAddr, newValAddr, newValAddr2) - s.Suite.Equal(found, true) - s.Suite.Equal(redelegation.DelegatorAddress, newBech32DelAddr) - s.Suite.Equal(redelegation.ValidatorSrcAddress, newBech32Addr) - s.Suite.Equal(redelegation.ValidatorDstAddress, newBech32AddrVal2) - - RedelegationQueueTimeSlice := s.App.StakingKeeper.GetRedelegationQueueTimeSlice(s.Ctx, time.Date(2024, time.March, 4, 12, 0, 0, 0, time.UTC)) - s.Suite.Equal(strings.Contains(RedelegationQueueTimeSlice[0].DelegatorAddress, "pica"), true) - s.Suite.Equal(strings.Contains(RedelegationQueueTimeSlice[0].ValidatorDstAddress, "pica"), true) - s.Suite.Equal(strings.Contains(RedelegationQueueTimeSlice[0].ValidatorSrcAddress, "pica"), true) -} - -func checkUpgradeAuthModule(s *UpgradeTestSuite, baseAccount, stakingModuleAccount, baseVestingAccount, continuousVestingAccount, delayedVestingAccount, periodicVestingAccount, permanentLockedAccount sdk.AccAddress) { - /* CHECK BASE ACCOUNT */ - _, bz, _ := bech32.DecodeAndConvert(baseAccount.String()) - newBech32AddrBaseAccount, _ := bech32.ConvertAndEncode(utils.NewBech32PrefixAccAddr, bz) - var newPrefixAddr authtypes.AccountI - newPrefixAddr = s.App.AccountKeeper.GetAccount(s.Ctx, baseAccount) - switch acci := newPrefixAddr.(type) { - case *authtypes.BaseAccount: - acc := acci - s.Suite.Equal(acc.Address, newBech32AddrBaseAccount) - default: - s.Suite.NotNil(nil) - } - - /* CHECK MODULE ACCOUNT */ - _, bz, _ = bech32.DecodeAndConvert(stakingModuleAccount.String()) - newBech32AddrModuleAccount, _ := bech32.ConvertAndEncode(utils.NewBech32PrefixAccAddr, bz) - newPrefixAddr = s.App.AccountKeeper.GetAccount(s.Ctx, stakingModuleAccount) - switch acci := newPrefixAddr.(type) { - case *authtypes.ModuleAccount: - acc := acci - s.Suite.Equal(acc.Address, newBech32AddrModuleAccount) - default: - s.Suite.NotNil(nil) - } - - /* CHECK BASE VESTING ACCOUNT */ - _, bz, _ = bech32.DecodeAndConvert(baseVestingAccount.String()) - newBech32AddrBaseVestingAccount, _ := bech32.ConvertAndEncode(utils.NewBech32PrefixAccAddr, bz) - newPrefixAddr = s.App.AccountKeeper.GetAccount(s.Ctx, baseVestingAccount) - switch acci := newPrefixAddr.(type) { - case *vestingtypes.BaseVestingAccount: - acc := acci - s.Suite.Equal(acc.Address, newBech32AddrBaseVestingAccount) - default: - s.Suite.NotNil(nil) - } - - // CHECK CONTINUOUS VESTING ACCOUNT AND MULTISIG - _, bz, _ = bech32.DecodeAndConvert(continuousVestingAccount.String()) - newBech32AddrConVestingAccount, _ := bech32.ConvertAndEncode(utils.NewBech32PrefixAccAddr, bz) - newPrefixAddr = s.App.AccountKeeper.GetAccount(s.Ctx, continuousVestingAccount) - switch acci := newPrefixAddr.(type) { - case *vestingtypes.ContinuousVestingAccount: - acc := acci - s.Suite.Equal(acc.Address, newBech32AddrConVestingAccount) - default: - s.Suite.NotNil(nil) - } - - // CHECK DELAYED VESTING ACCOUNT - _, bz, _ = bech32.DecodeAndConvert(delayedVestingAccount.String()) - newBech32AddrDelayedVestingAccount, _ := bech32.ConvertAndEncode(utils.NewBech32PrefixAccAddr, bz) - newPrefixAddr = s.App.AccountKeeper.GetAccount(s.Ctx, delayedVestingAccount) - switch acci := newPrefixAddr.(type) { - case *vestingtypes.DelayedVestingAccount: - acc := acci - s.Suite.Equal(acc.Address, newBech32AddrDelayedVestingAccount) - default: - s.Suite.NotNil(nil) - } - - // CHECK PERIODIC VESTING ACCOUNT - _, bz, _ = bech32.DecodeAndConvert(periodicVestingAccount.String()) - newBech32AddrPeriodicVestingAccount, _ := bech32.ConvertAndEncode(utils.NewBech32PrefixAccAddr, bz) - newPrefixAddr = s.App.AccountKeeper.GetAccount(s.Ctx, periodicVestingAccount) - switch acci := newPrefixAddr.(type) { - case *vestingtypes.PeriodicVestingAccount: - acc := acci - s.Suite.Equal(acc.Address, newBech32AddrPeriodicVestingAccount) - default: - s.Suite.NotNil(nil) - } - - // CHECK PERMANENT LOCKED ACCOUNT - _, bz, _ = bech32.DecodeAndConvert(permanentLockedAccount.String()) - newBech32AddrPermanentVestingAccount, _ := bech32.ConvertAndEncode(utils.NewBech32PrefixAccAddr, bz) - newPrefixAddr = s.App.AccountKeeper.GetAccount(s.Ctx, permanentLockedAccount) - switch acci := newPrefixAddr.(type) { - case *vestingtypes.PermanentLockedAccount: - acc := acci - s.Suite.Equal(acc.Address, newBech32AddrPermanentVestingAccount) - default: - s.Suite.NotNil(nil) - } -} - -func checkUpgradeAllianceModule(s *UpgradeTestSuite) { - // the validator address in alliance genesis file is converted into accAddr type - // and then used for key storage - // so the migration do not affect this module - genesis := s.App.AllianceKeeper.ExportGenesis(s.Ctx) - s.Suite.Equal(strings.Contains(genesis.ValidatorInfos[0].ValidatorAddress, "pica"), true) -} - -func checkUpgradeICAHostModule(s *UpgradeTestSuite) { - acc1 := s.TestAccs[0] - interchainAccount, _ := s.App.ICAHostKeeper.GetInterchainAccountAddress(s.Ctx, CONNECTION_0, PORT_0) - s.Suite.Equal(acc1.String(), interchainAccount) -} - -func checkUpgradeMintModule(s *UpgradeTestSuite) { - acc1 := s.TestAccs[0] - found := s.App.MintKeeper.IsAllowedAddress(s.Ctx, acc1.String()) - s.Suite.Equal(found, true) -} - -func checkUpgradeTransferMiddlewareModule(s *UpgradeTestSuite) { - acc1 := s.TestAccs[0] - found := s.App.TransferMiddlewareKeeper.HasAllowRlyAddress(s.Ctx, acc1.String()) - s.Suite.Equal(found, true) -} - -func checkUpgradePfmMiddlewareModule(s *UpgradeTestSuite) { - data := s.App.RouterKeeper.GetAndClearInFlightPacket(s.Ctx, "channel-9", "transfer", 0) - s.Suite.Equal("pica1wkjvpgkuchq0r8425g4z4sf6n85zj5wtykvtv3", data.OriginalSenderAddress) - - data = s.App.RouterKeeper.GetAndClearInFlightPacket(s.Ctx, "channel-9", "transfer", 2) - s.Suite.Equal("pica1hj5fveer5cjtn4wd6wstzugjfdxzl0xpas3hgy", data.OriginalSenderAddress) -} - -func checkUpgradeIbcTransferMiddlewareModule(s *UpgradeTestSuite) { - data := s.App.IbcTransferMiddlewareKeeper.GetChannelFeeAddress(s.Ctx, "channel-9") - s.Suite.Equal("pica1hj5fveer5cjtn4wd6wstzugjfdxzl0xpas3hgy", data) - - data = s.App.IbcTransferMiddlewareKeeper.GetChannelFeeAddress(s.Ctx, "channel-7") - s.Suite.Equal("pica1hj5fveer5cjtn4wd6wstzugjfdxzl0xpas3hgy", data) - data = s.App.IbcTransferMiddlewareKeeper.GetChannelFeeAddress(s.Ctx, "channel-1") - s.Suite.Equal("", data) -} - -func checkUpgradeIbcHooksMiddlewareModule(s *UpgradeTestSuite) { - data := s.App.IBCHooksKeeper.GetPacketCallback(s.Ctx, "channel-2", 2) - s.Suite.Equal("pica1hj5fveer5cjtn4wd6wstzugjfdxzl0xpas3hgy", data) - - data = s.App.IBCHooksKeeper.GetPacketCallback(s.Ctx, "channel-4", 2) - s.Suite.Equal("pica1wkjvpgkuchq0r8425g4z4sf6n85zj5wtykvtv3", data) - - data = s.App.IBCHooksKeeper.GetPacketCallback(s.Ctx, "channel-2", 1) - s.Suite.Equal("", data) -} - -func CreateVestingAccount(s *UpgradeTestSuite, -) vestingtypes.ContinuousVestingAccount { - str := `{"@type":"/cosmos.vesting.v1beta1.ContinuousVestingAccount","base_vesting_account":{"base_account":{"address":"centauri1alga5e8vr6ccr9yrg0kgxevpt5xgmgrvfkc5p8","pub_key":{"@type":"/cosmos.crypto.multisig.LegacyAminoPubKey","threshold":4,"public_keys":[{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AlnzK22KrkylnvTCvZZc8eZnydtQuzCWLjJJSMFUvVHf"},{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Aiw2Ftg+fnoHDU7M3b0VMRsI0qurXlerW0ahtfzSDZA4"},{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AvEHv+MVYRVau8FbBcJyG0ql85Tbbn7yhSA0VGmAY4ku"},{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Az5VHWqi3zMJu1rLGcu2EgNXLLN+al4Dy/lj6UZTzTCl"},{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Ai4GlSH3uG+joMnAFbQC3jQeHl9FPvVTlRmwIFt7d7TI"},{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"A2kAzH2bZr530jmFq/bRFrT2q8SRqdnfIebba+YIBqI1"}]},"account_number":46,"sequence":27},"original_vesting":[{"denom":"stake","amount":"22165200000000"}],"delegated_free":[{"denom":"stake","amount":"443382497453"}],"delegated_vesting":[{"denom":"stake","amount":"22129422502547"}],"end_time":1770994800},"start_time":1676300400}` - - var acc vestingtypes.ContinuousVestingAccount - if err := json.Unmarshal([]byte(str), &acc); err != nil { - panic(err) - } - - err := banktestutil.FundAccount(s.App.BankKeeper, s.Ctx, acc.BaseAccount.GetAddress(), - acc.GetOriginalVesting()) - if err != nil { - panic(err) - } - - err = banktestutil.FundAccount(s.App.BankKeeper, s.Ctx, acc.BaseAccount.GetAddress(), - sdk.NewCoins(sdk.NewCoin(COIN_DENOM, math.NewIntFromUint64(1)))) - if err != nil { - panic(err) - } - - s.App.AccountKeeper.SetAccount(s.Ctx, &acc) - return acc -} diff --git a/app/upgrades/v7_0_1/constants.go b/app/upgrades/v7_0_1/constants.go new file mode 100644 index 000000000..293b7c65e --- /dev/null +++ b/app/upgrades/v7_0_1/constants.go @@ -0,0 +1,26 @@ +package v7_0_1 + +import ( + store "cosmossdk.io/store/types" + circuittypes "cosmossdk.io/x/circuit/types" + "github.com/notional-labs/composable/v6/app/upgrades" + + icacontrollertypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types" +) + +const ( + // UpgradeName defines the on-chain upgrade name for the composable upgrade. + UpgradeName = "v7_0_1" +) + +var Upgrade = upgrades.Upgrade{ + UpgradeName: UpgradeName, + CreateUpgradeHandler: CreateUpgradeHandler, + StoreUpgrades: store.StoreUpgrades{ + Added: []string{ + circuittypes.ModuleName, + icacontrollertypes.StoreKey, + }, + Deleted: []string{"alliance"}, + }, +} diff --git a/app/upgrades/v7_0_1/upgrade.go b/app/upgrades/v7_0_1/upgrade.go new file mode 100644 index 000000000..7d86057d7 --- /dev/null +++ b/app/upgrades/v7_0_1/upgrade.go @@ -0,0 +1,70 @@ +package v7_0_1 + +import ( + "context" + "encoding/hex" + "fmt" + + upgradetypes "cosmossdk.io/x/upgrade/types" + "github.com/cosmos/cosmos-sdk/runtime" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" + + "github.com/cosmos/cosmos-sdk/codec" + "github.com/notional-labs/composable/v6/app/keepers" + "github.com/notional-labs/composable/v6/app/upgrades" +) + +func CreateUpgradeHandler( + mm *module.Manager, + configurator module.Configurator, + _ upgrades.BaseAppParamManager, + codec codec.Codec, + keepers *keepers.AppKeepers, +) upgradetypes.UpgradeHandler { + return func(goCtx context.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { + fmt.Println("start v7.0.1 upgrade") + ctx := sdk.UnwrapSDKContext(goCtx) + store := runtime.NewKVStoreService(keepers.GetKVStoreKey()[types.StoreKey]).OpenKVStore(ctx) + + // list code in testnet + listCode := []string{ + "58c7623a3ab78f4cb2e4c5d02876ac36c3b38bb472118173a7ec7faa688a66d2", // local key + "13ef83deb0dd1140f2e171aa72abbedee604e5903c4fb2a99da8bb13eda4dfb1", + "1cff60adf40895b5fccb1e9ce6305a65ae01400a02cc4ded2cf3669221905adc", + "24d21d60aa3bc4e84ddf21493ad1ada891a9af527def252edbba277ee7f05276", + "292a4db6c6ea2cd0cc9852b4313bfc8c3727de5762f46552b59a7df8a33f14b2", + "391add0fb14814296d134709797e697043c297841b23b14077bcaa09d67e7957", + "8efc525173fb23ca7d62e9d6bd0a1ee98fd8f3e2374ae1ea8bb59a3ccdf34295", + "936c3a1931746f9471d7088b236445979aabfe3af5378cdca67a032f5c4e4ed0", + "9636e7c7e357280260d6db81df78ec78226c746239636cc0e42e5e306ab8e199", + "b2adbd22fc3c410e781baeba5a655a0f0f6a009705ffe02b128ae6b4eabe3cf8", + "d2e8126bc2226fb57e4fa8462da2a3441c3bead05c1161e848c944f99d9119ab", + "ee97c9bd49a83282c2be1cd8cef0f2f55feb6d2d4c63ec3d27d69c252bd78531", + "ef52ef690dc5ec88fd4dd78dc8fd7582904492284b0c290a12ef343d8a541056", + "fccfde77e9318b1316e545a34414b5fc3e6cf82a5fe432815b956153c2e655bc", + } + listCheckSum := [][]byte{} + for _, code := range listCode { + checksumStr, err := hex.DecodeString(code) + if err != nil { + panic(err) + } + listCheckSum = append(listCheckSum, checksumStr) + } + + // Register SendEnabled for legacy subspace + + checksum := types.Checksums{Checksums: listCheckSum} + bz, err := codec.Marshal(&checksum) + if err != nil { + panic(err) + } + err = store.Set([]byte(types.KeyChecksums), bz) + if err != nil { + panic(err) + } + return mm.RunMigrations(ctx, configurator, vm) + } +} diff --git a/bech32-migration/auth/auth.go b/bech32-migration/auth/auth.go deleted file mode 100644 index 1bb3f829f..000000000 --- a/bech32-migration/auth/auth.go +++ /dev/null @@ -1,75 +0,0 @@ -package auth - -import ( - "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" - - storetypes "github.com/cosmos/cosmos-sdk/store/types" - "github.com/cosmos/cosmos-sdk/x/auth/types" - vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" - - "github.com/notional-labs/composable/v6/bech32-migration/utils" -) - -func MigrateAddressBech32(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - ctx.Logger().Info("Migration of address bech32 for auth module begin") - migratedAccountCount := uint64(0) - migratedAccountTypesStat := map[string]uint64{} - utils.IterateStoreByPrefix(ctx, storeKey, types.AddressStoreKeyPrefix, func(bz []byte) []byte { - var accountI types.AccountI - err := cdc.UnmarshalInterface(bz, &accountI) - if err != nil { - panic(err) - } - switch acci := accountI.(type) { - case *types.BaseAccount: - acc := acci - acc.Address = utils.ConvertAccAddr(acc.Address) - migratedAccountTypesStat["BaseAccount"]++ - case *types.ModuleAccount: - acc := acci - acc.Address = utils.ConvertAccAddr(acc.Address) - migratedAccountTypesStat["ModuleAccount"]++ - case *vestingtypes.BaseVestingAccount: - acc := acci - acc.Address = utils.ConvertAccAddr(acc.Address) - migratedAccountTypesStat["BaseVestingAccount"]++ - case *vestingtypes.ContinuousVestingAccount: - acc := acci - acc.Address = utils.ConvertAccAddr(acc.Address) - migratedAccountTypesStat["ContinuousVestingAccount"]++ - case *vestingtypes.DelayedVestingAccount: - acc := acci - acc.Address = utils.ConvertAccAddr(acc.Address) - migratedAccountTypesStat["DelayedVestingAccount"]++ - case *vestingtypes.PeriodicVestingAccount: - acc := acci - acc.Address = utils.ConvertAccAddr(acc.Address) - migratedAccountTypesStat["PeriodicVestingAccount"]++ - case *vestingtypes.PermanentLockedAccount: - acc := acci - acc.Address = utils.ConvertAccAddr(acc.Address) - migratedAccountTypesStat["PermanentLockedAccount"]++ - default: - ctx.Logger().Info( - "Warning: unknown account type, skipping migration", - "address", accountI.GetAddress().String(), - "account_number", accountI.GetAccountNumber(), - "public_key", accountI.GetPubKey(), - "sequence", accountI.GetSequence(), - ) - return bz - } - bz, err = cdc.MarshalInterface(accountI) - if err != nil { - panic(err) - } - migratedAccountCount++ - return bz - }) - ctx.Logger().Info( - "Migration of address bech32 for auth module done", - "migrated_account_count", migratedAccountCount, - "migrated_account_types_stat", migratedAccountTypesStat, - ) -} diff --git a/bech32-migration/gov/gov.go b/bech32-migration/gov/gov.go deleted file mode 100644 index 54eaebb12..000000000 --- a/bech32-migration/gov/gov.go +++ /dev/null @@ -1,55 +0,0 @@ -package gov - -import ( - "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - - "github.com/cosmos/cosmos-sdk/x/gov/types" - v1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" - "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - - "github.com/notional-labs/composable/v6/bech32-migration/utils" -) - -func MigrateAddressBech32(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - ctx.Logger().Info("Migration of address bech32 for gov module begin") - proposalCount := uint64(0) - utils.IterateStoreByPrefix(ctx, storeKey, types.ProposalsKeyPrefix, func(bz []byte) []byte { - proposal := v1.Proposal{} - cdc.MustUnmarshal(bz, &proposal) - proposal.Proposer = utils.SafeConvertAddress(proposal.Proposer) - proposalCount++ - return cdc.MustMarshal(&proposal) - }) - voteCount := uint64(0) - utils.IterateStoreByPrefix(ctx, storeKey, types.VotesKeyPrefix, func(bz []byte) []byte { - vote := v1beta1.Vote{} - err := cdc.Unmarshal(bz, &vote) - if err != nil { - vote := v1.Vote{} - cdc.MustUnmarshal(bz, &vote) - vote.Voter = utils.SafeConvertAddress(vote.Voter) - voteCount++ - return cdc.MustMarshal(&vote) - } - vote.Voter = utils.SafeConvertAddress(vote.Voter) - voteCount++ - return cdc.MustMarshal(&vote) - }) - depositCount := uint64(0) - utils.IterateStoreByPrefix(ctx, storeKey, types.DepositsKeyPrefix, func(bz []byte) []byte { - deposit := v1beta1.Deposit{} - err := cdc.Unmarshal(bz, &deposit) - if err != nil { - vote := v1.Deposit{} - cdc.MustUnmarshal(bz, &vote) - deposit.Depositor = utils.SafeConvertAddress(deposit.Depositor) - depositCount++ - return cdc.MustMarshal(&deposit) - } - deposit.Depositor = utils.SafeConvertAddress(deposit.Depositor) - depositCount++ - return cdc.MustMarshal(&deposit) - }) -} diff --git a/bech32-migration/ibchooks/ibchooks.go b/bech32-migration/ibchooks/ibchooks.go deleted file mode 100644 index 0f62560f0..000000000 --- a/bech32-migration/ibchooks/ibchooks.go +++ /dev/null @@ -1,29 +0,0 @@ -package ibchooks - -import ( - "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/notional-labs/composable/v6/bech32-migration/utils" -) - -func MigrateAddressBech32(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - ctx.Logger().Info("Migration of address bech32 for ibchooks module begin") - totalAddr := uint64(0) - store := ctx.KVStore(storeKey) - channelKey := []byte("channel") - iterator := sdk.KVStorePrefixIterator(store, channelKey) - for ; iterator.Valid(); iterator.Next() { - totalAddr++ - fullKey := iterator.Key() - contract := string(store.Get(fullKey)) - contract = utils.SafeConvertAddress(contract) - totalAddr++ - store.Set(fullKey, []byte(contract)) - } - - ctx.Logger().Info( - "Migration of address bech32 for ibchooks module done", - "totalAddr", totalAddr, - ) -} diff --git a/bech32-migration/ibctransfermiddleware/ibctransfermiddleware.go b/bech32-migration/ibctransfermiddleware/ibctransfermiddleware.go deleted file mode 100644 index c4f1ad646..000000000 --- a/bech32-migration/ibctransfermiddleware/ibctransfermiddleware.go +++ /dev/null @@ -1,32 +0,0 @@ -package ibctransfermiddleware - -import ( - "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/notional-labs/composable/v6/bech32-migration/utils" - "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/types" -) - -func MigrateAddressBech32(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - ctx.Logger().Info("Migration of address bech32 for ibctransfermiddleware module begin") - totalAddr := uint64(0) - store := ctx.KVStore(storeKey) - bz := store.Get(types.ParamsKey) - if bz == nil { - return - } - var params types.Params - cdc.MustUnmarshal(bz, ¶ms) - for i := range params.ChannelFees { - totalAddr++ - params.ChannelFees[i].FeeAddress = utils.SafeConvertAddress(params.ChannelFees[i].FeeAddress) - } - bz = cdc.MustMarshal(¶ms) - store.Set(types.ParamsKey, bz) - - ctx.Logger().Info( - "Migration of address bech32 for ibctransfermiddleware module done", - "totalAddr", totalAddr, - ) -} diff --git a/bech32-migration/ica/ica.go b/bech32-migration/ica/ica.go deleted file mode 100644 index d23b4e390..000000000 --- a/bech32-migration/ica/ica.go +++ /dev/null @@ -1,33 +0,0 @@ -package ica - -import ( - "strings" - - "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types" - "github.com/notional-labs/composable/v6/bech32-migration/utils" -) - -func MigrateAddressBech32(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - ctx.Logger().Info("Migration of address bech32 for ica host module begin") - interchainAccountCount := uint64(0) - - store := ctx.KVStore(storeKey) - iterator := sdk.KVStorePrefixIterator(store, []byte(icatypes.OwnerKeyPrefix)) - - for ; iterator.Valid(); iterator.Next() { - keySplit := strings.Split(string(iterator.Key()), "/") - interchainAccountCount++ - connectionID := keySplit[2] - portID := keySplit[1] - address := utils.ConvertAccAddr(string(iterator.Value())) - store.Set(icatypes.KeyOwnerAccount(portID, connectionID), []byte(address)) - } - - ctx.Logger().Info( - "Migration of address bech32 for ica host module done", - "interchain_account_count", interchainAccountCount, - ) -} diff --git a/bech32-migration/mint/mint.go b/bech32-migration/mint/mint.go deleted file mode 100644 index d3144c953..000000000 --- a/bech32-migration/mint/mint.go +++ /dev/null @@ -1,32 +0,0 @@ -package mint - -import ( - "strings" - - "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/notional-labs/composable/v6/bech32-migration/utils" - "github.com/notional-labs/composable/v6/x/mint/types" -) - -func MigrateAddressBech32(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - ctx.Logger().Info("Migration of address bech32 for mint module begin") - interchainAccountCount := uint64(0) - - store := ctx.KVStore(storeKey) - iterator := sdk.KVStorePrefixIterator(store, types.AllowedAddressKey) - - for ; iterator.Valid(); iterator.Next() { - interchainAccountCount++ - trimedAddr := strings.Replace(string(iterator.Key()), "\x01", "", 1) - newPrefixAddr := utils.ConvertAccAddr(trimedAddr) - key := types.GetAllowedAddressStoreKey(newPrefixAddr) - store.Set(key, []byte{1}) - } - - ctx.Logger().Info( - "Migration of address bech32 for mint module done", - "key_changed_count", interchainAccountCount, - ) -} diff --git a/bech32-migration/pfmmiddleware/pfmmiddleware.go b/bech32-migration/pfmmiddleware/pfmmiddleware.go deleted file mode 100644 index a7f26407b..000000000 --- a/bech32-migration/pfmmiddleware/pfmmiddleware.go +++ /dev/null @@ -1,67 +0,0 @@ -package pfmmiddleware - -import ( - "encoding/json" - - "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - routertypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - "github.com/notional-labs/composable/v6/app/keepers" - "github.com/notional-labs/composable/v6/bech32-migration/utils" -) - -func MigrateAddressBech32(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec, keepers *keepers.AppKeepers) { - ctx.Logger().Info("Migration of address bech32 for pfmmiddleware module begin") - totalAddr := uint64(0) - - store := ctx.KVStore(storeKey) - - channelKey := []byte("channel") - iterator := sdk.KVStorePrefixIterator(store, channelKey) - for ; iterator.Valid(); iterator.Next() { - totalAddr++ - fullKey := iterator.Key() - if !store.Has(fullKey) { - continue - } - bz := store.Get(fullKey) - var inFlightPacket routertypes.InFlightPacket - cdc.MustUnmarshal(bz, &inFlightPacket) - inFlightPacket.OriginalSenderAddress = utils.SafeConvertAddress(inFlightPacket.OriginalSenderAddress) - var data transfertypes.FungibleTokenPacketData - if err := transfertypes.ModuleCdc.UnmarshalJSON(inFlightPacket.PacketData, &data); err != nil { - continue - } - data.Receiver = utils.SafeConvertAddress(data.Receiver) - data.Sender = utils.SafeConvertAddress(data.Sender) - - d := make(map[string]interface{}) - err := json.Unmarshal([]byte(data.Memo), &d) - // parse memo - if err == nil && d["forward"] != nil { - var m routertypes.PacketMetadata - err = json.Unmarshal([]byte(data.Memo), &m) - if err != nil { - continue - } - m.Forward.Receiver = utils.SafeConvertAddress(m.Forward.Receiver) - bzM, err := json.Marshal(m) - if err != nil { - continue - } - data.Memo = string(bzM) - } - bz = cdc.MustMarshal(&data) - inFlightPacket.PacketData = bz - bz = cdc.MustMarshal(&inFlightPacket) - totalAddr++ - store.Set(fullKey, bz) - } - - ctx.Logger().Info( - "Migration of address bech32 for pfmmiddleware module done", - "totalAddr", totalAddr, - ) -} diff --git a/bech32-migration/slashing/slashing.go b/bech32-migration/slashing/slashing.go deleted file mode 100644 index cde06383e..000000000 --- a/bech32-migration/slashing/slashing.go +++ /dev/null @@ -1,27 +0,0 @@ -package slashing - -import ( - "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/slashing/types" - - "github.com/notional-labs/composable/v6/bech32-migration/utils" -) - -func MigrateAddressBech32(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - ctx.Logger().Info("Migration of address bech32 for slashing module begin") - validatorSigningInfoCount := uint64(0) - utils.IterateStoreByPrefix(ctx, storeKey, types.ValidatorSigningInfoKeyPrefix, func(bz []byte) []byte { - validatorSigningInfo := types.ValidatorSigningInfo{} - cdc.MustUnmarshal(bz, &validatorSigningInfo) - validatorSigningInfo.Address = utils.ConvertConsAddr(validatorSigningInfo.Address) - validatorSigningInfoCount++ - return cdc.MustMarshal(&validatorSigningInfo) - }) - - ctx.Logger().Info( - "Migration of address bech32 for slashing module done", - "validator_signing_info_count", validatorSigningInfoCount, - ) -} diff --git a/bech32-migration/staking/staking.go b/bech32-migration/staking/staking.go deleted file mode 100644 index 3af0f74ab..000000000 --- a/bech32-migration/staking/staking.go +++ /dev/null @@ -1,110 +0,0 @@ -package staking - -import ( - "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/staking/types" - - "github.com/notional-labs/composable/v6/bech32-migration/utils" -) - -func MigrateAddressBech32(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - ctx.Logger().Info("Migration of address bech32 for staking module begin") - validatorCount := uint64(0) - utils.IterateStoreByPrefix(ctx, storeKey, types.ValidatorsKey, func(bz []byte) []byte { - validator := types.MustUnmarshalValidator(cdc, bz) - validator.OperatorAddress = utils.ConvertValAddr(validator.OperatorAddress) - validatorCount++ - return types.MustMarshalValidator(cdc, &validator) - }) - delegationCount := uint64(0) - utils.IterateStoreByPrefix(ctx, storeKey, types.DelegationKey, func(bz []byte) []byte { - delegation := types.MustUnmarshalDelegation(cdc, bz) - delegation.DelegatorAddress = utils.ConvertAccAddr(delegation.DelegatorAddress) - delegation.ValidatorAddress = utils.ConvertValAddr(delegation.ValidatorAddress) - delegationCount++ - return types.MustMarshalDelegation(cdc, delegation) - }) - redelegationCount := uint64(0) - utils.IterateStoreByPrefix(ctx, storeKey, types.RedelegationKey, func(bz []byte) []byte { - redelegation := types.MustUnmarshalRED(cdc, bz) - redelegation.DelegatorAddress = utils.ConvertAccAddr(redelegation.DelegatorAddress) - redelegation.ValidatorSrcAddress = utils.ConvertValAddr(redelegation.ValidatorSrcAddress) - redelegation.ValidatorDstAddress = utils.ConvertValAddr(redelegation.ValidatorDstAddress) - redelegationCount++ - return types.MustMarshalRED(cdc, redelegation) - }) - unbondingDelegationCount := uint64(0) - utils.IterateStoreByPrefix(ctx, storeKey, types.UnbondingDelegationKey, func(bz []byte) []byte { - unbonding := types.MustUnmarshalUBD(cdc, bz) - unbonding.DelegatorAddress = utils.ConvertAccAddr(unbonding.DelegatorAddress) - unbonding.ValidatorAddress = utils.ConvertValAddr(unbonding.ValidatorAddress) - unbondingDelegationCount++ - return types.MustMarshalUBD(cdc, unbonding) - }) - historicalInfoCount := uint64(0) - utils.IterateStoreByPrefix(ctx, storeKey, types.HistoricalInfoKey, func(bz []byte) []byte { - historicalInfo := types.MustUnmarshalHistoricalInfo(cdc, bz) - for i := range historicalInfo.Valset { - historicalInfo.Valset[i].OperatorAddress = utils.ConvertValAddr(historicalInfo.Valset[i].OperatorAddress) - } - historicalInfoCount++ - return cdc.MustMarshal(&historicalInfo) - }) - ctx.Logger().Info( - "Migration of address bech32 for staking module done", - "validator_count", validatorCount, - "delegation_count", delegationCount, - "redelegation_count", redelegationCount, - "unbonding_delegation_count", unbondingDelegationCount, - "historical_info_count", historicalInfoCount, - ) -} - -func MigrateUnbonding(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - unbondingQueueKeyCount := uint64(0) - utils.IterateStoreByPrefix(ctx, storeKey, types.UnbondingQueueKey, func(bz []byte) []byte { - pairs := types.DVPairs{} - cdc.MustUnmarshal(bz, &pairs) - for i, pair := range pairs.Pairs { - pairs.Pairs[i].DelegatorAddress = utils.ConvertAccAddr(pair.DelegatorAddress) - pairs.Pairs[i].ValidatorAddress = utils.ConvertValAddr(pair.ValidatorAddress) - } - unbondingQueueKeyCount++ - return cdc.MustMarshal(&pairs) - }) - - redelegationQueueKeyCount := uint64(0) - utils.IterateStoreByPrefix(ctx, storeKey, types.RedelegationQueueKey, func(bz []byte) []byte { - triplets := types.DVVTriplets{} - cdc.MustUnmarshal(bz, &triplets) - - for i, triplet := range triplets.Triplets { - triplets.Triplets[i].DelegatorAddress = utils.ConvertAccAddr(triplet.DelegatorAddress) - triplets.Triplets[i].ValidatorDstAddress = utils.ConvertValAddr(triplet.ValidatorDstAddress) - triplets.Triplets[i].ValidatorSrcAddress = utils.ConvertValAddr(triplet.ValidatorSrcAddress) - } - redelegationQueueKeyCount++ - return cdc.MustMarshal(&triplets) - }) - - validatorQueueKeyCount := uint(0) - utils.IterateStoreByPrefix(ctx, storeKey, types.ValidatorQueueKey, func(bz []byte) []byte { - addrs := types.ValAddresses{} - cdc.MustUnmarshal(bz, &addrs) - - for i, valAddress := range addrs.Addresses { - addrs.Addresses[i] = utils.ConvertValAddr(valAddress) - } - validatorQueueKeyCount++ - return cdc.MustMarshal(&addrs) - }) - - ctx.Logger().Info( - "Migration of address bech32 for staking unboding done", - "unbondingQueueKeyCount", unbondingQueueKeyCount, - "redelegationQueueKeyCount", redelegationQueueKeyCount, - "validatorQueueKeyCount", validatorQueueKeyCount, - ) -} diff --git a/bech32-migration/transfermiddleware/transfermiddleware.go b/bech32-migration/transfermiddleware/transfermiddleware.go deleted file mode 100644 index b28cac2c5..000000000 --- a/bech32-migration/transfermiddleware/transfermiddleware.go +++ /dev/null @@ -1,33 +0,0 @@ -package transfermiddleware - -import ( - "strings" - - "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/notional-labs/composable/v6/bech32-migration/utils" - "github.com/notional-labs/composable/v6/x/transfermiddleware/types" -) - -func MigrateAddressBech32(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - ctx.Logger().Info("Migration of address bech32 for transfermiddleware module begin") - allowRelayAddressCount := uint64(0) - - store := ctx.KVStore(storeKey) - - relayAddressPrefix := []byte{1} - iterator := sdk.KVStorePrefixIterator(store, types.KeyRlyAddress) - - for ; iterator.Valid(); iterator.Next() { - allowRelayAddressCount++ - trimedAddr := strings.Replace(string(iterator.Key()), "\x04", "", 1) - newPrefixAddr := utils.ConvertAccAddr(trimedAddr) - store.Set(types.GetKeyByRlyAddress(newPrefixAddr), relayAddressPrefix) - } - - ctx.Logger().Info( - "Migration of address bech32 for transfermiddleware module done", - "allow_relay_address_count", allowRelayAddressCount, - ) -} diff --git a/bech32-migration/utils/utils.go b/bech32-migration/utils/utils.go deleted file mode 100644 index 6d717859c..000000000 --- a/bech32-migration/utils/utils.go +++ /dev/null @@ -1,167 +0,0 @@ -package utils - -import ( - "errors" - "strings" - - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/bech32" -) - -const ( - // OldBech32Prefix defines the Bech32 prefix used for EthAccounts - OldBech32Prefix = "centauri" - - // OldBech32PrefixAccAddr defines the Bech32 prefix of an account's address - OldBech32PrefixAccAddr = OldBech32Prefix - // OldBech32PrefixAccPub defines the Bech32 prefix of an account's public key - OldBech32PrefixAccPub = OldBech32Prefix + sdk.PrefixPublic - // OldBech32PrefixValAddr defines the Bech32 prefix of a validator's operator address - OldBech32PrefixValAddr = OldBech32Prefix + sdk.PrefixValidator + sdk.PrefixOperator - // OldBech32PrefixValPub defines the Bech32 prefix of a validator's operator public key - OldBech32PrefixValPub = OldBech32Prefix + sdk.PrefixValidator + sdk.PrefixOperator + sdk.PrefixPublic - // OldBech32PrefixConsAddr defines the Bech32 prefix of a consensus node address - OldBech32PrefixConsAddr = OldBech32Prefix + sdk.PrefixValidator + sdk.PrefixConsensus - // OldBech32PrefixConsPub defines the Bech32 prefix of a consensus node public key - OldBech32PrefixConsPub = OldBech32Prefix + sdk.PrefixValidator + sdk.PrefixConsensus + sdk.PrefixPublic - - // OldBech32Prefix defines the Bech32 prefix used for EthAccounts - NewBech32Prefix = "pica" - - // NewBech32PrefixAccAddr defines the Bech32 prefix of an account's address - NewBech32PrefixAccAddr = NewBech32Prefix - // NewBech32PrefixAccPub defines the Bech32 prefix of an account's public key - NewBech32PrefixAccPub = NewBech32Prefix + sdk.PrefixPublic - // NewBech32PrefixValAddr defines the Bech32 prefix of a validator's operator address - NewBech32PrefixValAddr = NewBech32Prefix + sdk.PrefixValidator + sdk.PrefixOperator - // NewBech32PrefixValPub defines the Bech32 prefix of a validator's operator public key - NewBech32PrefixValPub = NewBech32Prefix + sdk.PrefixValidator + sdk.PrefixOperator + sdk.PrefixPublic - // NewBech32PrefixConsAddr defines the Bech32 prefix of a consensus node address - NewBech32PrefixConsAddr = NewBech32Prefix + sdk.PrefixValidator + sdk.PrefixConsensus - // NewBech32PrefixConsPub defines the Bech32 prefix of a consensus node public key - NewBech32PrefixConsPub = NewBech32Prefix + sdk.PrefixValidator + sdk.PrefixConsensus + sdk.PrefixPublic -) - -func ConvertValAddr(valAddr string) string { - parsedValAddr, err := ValAddressFromOldBech32(valAddr, OldBech32PrefixValAddr) - _, bz, _ := bech32.DecodeAndConvert(parsedValAddr.String()) - bech32Addr, _ := bech32.ConvertAndEncode(NewBech32PrefixValAddr, bz) - if err != nil { - return valAddr - } - return bech32Addr -} - -func ConvertAccAddr(accAddr string) string { - parsedAccAddr, err := AccAddressFromOldBech32(accAddr, OldBech32PrefixAccAddr) - _, bz, _ := bech32.DecodeAndConvert(parsedAccAddr.String()) - bech32Addr, _ := bech32.ConvertAndEncode(NewBech32PrefixAccAddr, bz) - if err != nil { - panic(err) - } - return bech32Addr -} - -// Input is type string -> need safe convert -func SafeConvertAddress(accAddr string) string { - if len(accAddr) == 0 { - return "" - } - - parsedAccAddr, err := AccAddressFromOldBech32(accAddr, OldBech32PrefixAccAddr) - if err != nil { - return accAddr - } - _, bz, err := bech32.DecodeAndConvert(parsedAccAddr.String()) - if err != nil { - return accAddr - } - bech32Addr, err := bech32.ConvertAndEncode(NewBech32PrefixAccAddr, bz) - if err != nil { - return accAddr - } - - return bech32Addr -} - -func ConvertConsAddr(consAddr string) string { - parsedConsAddr, err := ConsAddressFromOldBech32(consAddr, OldBech32PrefixConsAddr) - _, bz, _ := bech32.DecodeAndConvert(parsedConsAddr.String()) - bech32Addr, _ := bech32.ConvertAndEncode(NewBech32PrefixConsAddr, bz) - if err != nil { - return consAddr - } - return bech32Addr -} - -func IterateStoreByPrefix( - ctx sdk.Context, storeKey storetypes.StoreKey, prefix []byte, - fn func(value []byte) (newValue []byte), -) { - store := ctx.KVStore(storeKey) - iterator := sdk.KVStorePrefixIterator(store, prefix) - defer iterator.Close() - - for ; iterator.Valid(); iterator.Next() { - newValue := fn(iterator.Value()) - store.Set(iterator.Key(), newValue) - } -} - -// AccAddressFromBech32 creates an AccAddress from a Bech32 string. -func AccAddressFromOldBech32(address, prefix string) (addr sdk.AccAddress, err error) { - if len(strings.TrimSpace(address)) == 0 { - return sdk.AccAddress{}, errors.New("empty address string is not allowed") - } - - bz, err := sdk.GetFromBech32(address, prefix) - if err != nil { - return nil, err - } - - err = sdk.VerifyAddressFormat(bz) - if err != nil { - return nil, err - } - - return sdk.AccAddress(bz), nil -} - -// ConsAddressFromBech32 creates a ConsAddress from a Bech32 string. -func ConsAddressFromOldBech32(address, prefix string) (addr sdk.ConsAddress, err error) { - if len(strings.TrimSpace(address)) == 0 { - return sdk.ConsAddress{}, errors.New("empty address string is not allowed") - } - - bz, err := sdk.GetFromBech32(address, prefix) - if err != nil { - return nil, err - } - - err = sdk.VerifyAddressFormat(bz) - if err != nil { - return nil, err - } - - return sdk.ConsAddress(bz), nil -} - -// ValAddressFromBech32 creates a ValAddress from a Bech32 string. -func ValAddressFromOldBech32(address, prefix string) (addr sdk.ValAddress, err error) { - if len(strings.TrimSpace(address)) == 0 { - return sdk.ValAddress{}, errors.New("empty address string is not allowed") - } - - bz, err := sdk.GetFromBech32(address, prefix) - if err != nil { - return nil, err - } - - err = sdk.VerifyAddressFormat(bz) - if err != nil { - return nil, err - } - - return sdk.ValAddress(bz), nil -} diff --git a/bech32-migration/wasm/wasm.go b/bech32-migration/wasm/wasm.go deleted file mode 100644 index 7d57ff654..000000000 --- a/bech32-migration/wasm/wasm.go +++ /dev/null @@ -1,78 +0,0 @@ -package wasm - -import ( - "github.com/CosmWasm/wasmd/x/wasm/types" - "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/store/prefix" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - "github.com/notional-labs/composable/v6/bech32-migration/utils" - - sdk "github.com/cosmos/cosmos-sdk/types" -) - -func MigrateAddressBech32(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - migrateCodeInfo(ctx, storeKey, cdc) - migrateContractInfo(ctx, storeKey, cdc) -} - -func migrateCodeInfo(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - // Code id - ctx.Logger().Debug("Migrationg of address bech32 for wasm module Code Info begin") - prefixStore := prefix.NewStore(ctx.KVStore(storeKey), types.CodeKeyPrefix) - iter := prefixStore.Iterator(nil, nil) - defer iter.Close() - - totalMigratedCodeId := uint64(0) - for ; iter.Valid(); iter.Next() { - // get code info value - var c types.CodeInfo - cdc.MustUnmarshal(iter.Value(), &c) - - // Update info - c.Creator = utils.SafeConvertAddress(c.Creator) - c.InstantiateConfig.Address = utils.SafeConvertAddress(c.InstantiateConfig.Address) - for i := range c.InstantiateConfig.Addresses { - c.InstantiateConfig.Addresses[i] = utils.SafeConvertAddress(c.InstantiateConfig.Addresses[i]) - } - - // save updated code info - prefixStore.Set(iter.Key(), cdc.MustMarshal(&c)) - - totalMigratedCodeId++ - } - - // contract info prefix store - ctx.Logger().Debug( - "Migration of address bech32 for wasm module code info done", - "total_migrated_code_id", totalMigratedCodeId, - ) -} - -func migrateContractInfo(ctx sdk.Context, storeKey storetypes.StoreKey, cdc codec.BinaryCodec) { - ctx.Logger().Debug("Migrating of addresses bech32 for wasm module Contract info begin") - // contract info prefix store - prefixStore := prefix.NewStore(ctx.KVStore(storeKey), types.ContractKeyPrefix) - iter := prefixStore.Iterator(nil, nil) - - defer iter.Close() - - totalMigratedContractAddresses := uint64(0) - for ; iter.Valid(); iter.Next() { - // get code info value - var c types.ContractInfo - cdc.MustUnmarshal(iter.Value(), &c) - - // Update info - c.Creator = utils.SafeConvertAddress(c.Creator) - c.Admin = utils.SafeConvertAddress(c.Admin) - // save updated code info - prefixStore.Set(iter.Key(), cdc.MustMarshal(&c)) - - totalMigratedContractAddresses++ - } - - ctx.Logger().Debug( - "Migrating of addresses bech32 for wasm module Contract info done", - "total_migrated_contract_addresses", totalMigratedContractAddresses, - ) -} diff --git a/cmd/picad/cmd/genaccounts.go b/cmd/picad/cmd/genaccounts.go index df42303d7..871f4eecc 100644 --- a/cmd/picad/cmd/genaccounts.go +++ b/cmd/picad/cmd/genaccounts.go @@ -8,8 +8,6 @@ import ( "github.com/spf13/cobra" - "github.com/notional-labs/composable/v6/bech32-migration/utils" - "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/crypto/keyring" @@ -107,7 +105,10 @@ contain valid denominations. Accounts may optionally be supplied with vesting pa baseAccount := authtypes.NewBaseAccount(addr, nil, 0, 0) if !vestingAmt.IsZero() { - baseVestingAccount := authvesting.NewBaseVestingAccount(baseAccount, vestingAmt.Sort(), vestingEnd) + baseVestingAccount, err := authvesting.NewBaseVestingAccount(baseAccount, vestingAmt.Sort(), vestingEnd) + if err != nil { + return fmt.Errorf("failed to create base vesting account: %w", err) + } if (balances.Coins.IsZero() && !baseVestingAccount.OriginalVesting.IsZero()) || baseVestingAccount.OriginalVesting.IsAnyGT(balances.Coins) { @@ -197,18 +198,3 @@ contain valid denominations. Accounts may optionally be supplied with vesting pa return cmd } - -func CovertPrefixAddr() *cobra.Command { - cmd := &cobra.Command{ - Use: "convert [address]", - Short: "Convert prefix from layer to centauri", - Args: cobra.ExactArgs(1), - RunE: func(cmd *cobra.Command, args []string) error { - newAddr := utils.ConvertAccAddr(args[0]) - fmt.Println(newAddr) - - return nil - }, - } - return cmd -} diff --git a/cmd/picad/cmd/root.go b/cmd/picad/cmd/root.go index 27055bd4f..810d2e0e7 100644 --- a/cmd/picad/cmd/root.go +++ b/cmd/picad/cmd/root.go @@ -5,10 +5,11 @@ import ( "io" "os" - "github.com/CosmWasm/wasmd/x/wasm" - dbm "github.com/cometbft/cometbft-db" + "github.com/cosmos/cosmos-sdk/crypto/keyring" + + "cosmossdk.io/log" tmcli "github.com/cometbft/cometbft/libs/cli" - "github.com/cometbft/cometbft/libs/log" + dbm "github.com/cosmos/cosmos-db" "github.com/spf13/cast" "github.com/spf13/cobra" @@ -33,6 +34,7 @@ import ( genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli" genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" + "github.com/cosmos/cosmos-sdk/types/module" "github.com/notional-labs/composable/v6/app" // "github.com/notional-labs/composable/v6/app/params" // this line is used by starport scaffolding # stargate/root/import @@ -43,7 +45,24 @@ var ChainID string // NewRootCmd creates a new root command for simd. It is called once in the // main function. func NewRootCmd() (*cobra.Command, app.EncodingConfig) { - encodingConfig := app.MakeEncodingConfig() + tempApp := app.NewComposableApp( + log.NewNopLogger(), + dbm.NewMemDB(), + nil, + true, + map[int64]bool{}, + app.DefaultNodeHome, + 5, + EmptyAppOptions{}, + ) + + encodingConfig := app.EncodingConfig{ + InterfaceRegistry: tempApp.InterfaceRegistry(), + Marshaler: tempApp.AppCodec(), + TxConfig: tempApp.TxConfig(), + Amino: tempApp.LegacyAmino(), + } + initClientCtx := client.Context{}. WithCodec(encodingConfig.Marshaler). WithInterfaceRegistry(encodingConfig.InterfaceRegistry). @@ -75,7 +94,6 @@ func NewRootCmd() (*cobra.Command, app.EncodingConfig) { if err := client.SetCmdClientContextHandler(initClientCtx, cmd); err != nil { return err } - customAppTemplate, customAppConfig := initAppConfig() customTMConfig := initTendermintConfig() @@ -84,7 +102,16 @@ func NewRootCmd() (*cobra.Command, app.EncodingConfig) { }, } - initRootCmd(rootCmd, encodingConfig) + initRootCmd(rootCmd, encodingConfig.TxConfig) + + autoCliOpts := tempApp.AutoCliOpts() + initClientCtx, _ = config.ReadFromClientConfig(initClientCtx) + autoCliOpts.Keyring, _ = keyring.NewAutoCLIKeyring(initClientCtx.Keyring) + autoCliOpts.ClientCtx = initClientCtx + + if err := autoCliOpts.EnhanceRootCommand(rootCmd); err != nil { + panic(err) + } return rootCmd, encodingConfig } @@ -138,7 +165,6 @@ func initAppConfig() (string, interface{}) { srvCfg.MinGasPrices = "" srvCfg.API.Enable = true srvCfg.API.EnableUnsafeCORS = true - srvCfg.GRPCWeb.EnableUnsafeCORS = true srvCfg.MinGasPrices = "0stake" // This ensures that upgraded nodes will use iavl fast node. @@ -163,7 +189,7 @@ lru_size = 0` return customAppTemplate, customAppConfig } -func initRootCmd(rootCmd *cobra.Command, encodingConfig app.EncodingConfig) { +func initRootCmd(rootCmd *cobra.Command, txConfig client.TxConfig) { cfg := sdk.GetConfig() cfg.Seal() @@ -171,28 +197,26 @@ func initRootCmd(rootCmd *cobra.Command, encodingConfig app.EncodingConfig) { rootCmd.AddCommand( genutilcli.InitCmd(app.ModuleBasics, app.DefaultNodeHome), - genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome, gentxModule.GenTxValidator), - genutilcli.MigrateGenesisCmd(), - genutilcli.GenTxCmd(app.ModuleBasics, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome), + genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome, gentxModule.GenTxValidator, txConfig.SigningContext().ValidatorAddressCodec()), + genutilcli.GenTxCmd(app.ModuleBasics, txConfig, banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome, txConfig.SigningContext().ValidatorAddressCodec()), genutilcli.ValidateGenesisCmd(app.ModuleBasics), AddGenesisAccountCmd(app.DefaultNodeHome), tmcli.NewCompletionCmd(rootCmd, true), addDebugCommands(debug.Cmd()), debug.Cmd(), - config.Cmd(), - CovertPrefixAddr(), + vestingcli.GetTxCmd(txConfig.SigningContext().AddressCodec()), // this line is used by starport scaffolding # stargate/root/commands ) - a := appCreator{encodingConfig} - server.AddCommands(rootCmd, app.DefaultNodeHome, a.newApp, a.appExport, addModuleInitFlags) + server.AddCommands(rootCmd, app.DefaultNodeHome, newApp, appExport, addModuleInitFlags) // add keybase, auxiliary RPC, query, and tx child commands rootCmd.AddCommand( - rpc.StatusCommand(), + server.StatusCommand(), + genesisCommand(txConfig, app.ModuleBasics), queryCommand(), txCommand(), - keys.Commands(app.DefaultNodeHome), + keys.Commands(), ) } @@ -212,11 +236,12 @@ func queryCommand() *cobra.Command { } cmd.AddCommand( - authcmd.GetAccountCmd(), - rpc.ValidatorCommand(), - rpc.BlockCommand(), + rpc.QueryEventForTxCmd(), + server.QueryBlockCmd(), authcmd.QueryTxsByEventsCmd(), + server.QueryBlocksCmd(), authcmd.QueryTxCmd(), + server.QueryBlockResultsCmd(), ) app.ModuleBasics.AddQueryCommands(cmd) @@ -238,26 +263,20 @@ func txCommand() *cobra.Command { authcmd.GetSignCommand(), authcmd.GetSignBatchCommand(), authcmd.GetMultiSignCommand(), + authcmd.GetMultiSignBatchCmd(), authcmd.GetValidateSignaturesCommand(), - flags.LineBreak, authcmd.GetBroadcastCommand(), authcmd.GetEncodeCommand(), authcmd.GetDecodeCommand(), flags.LineBreak, - vestingcli.GetTxCmd(), + authcmd.GetSimulateCmd(), ) - app.ModuleBasics.AddTxCommands(cmd) - cmd.PersistentFlags().String(flags.FlagChainID, "", "The network chain ID") return cmd } -type appCreator struct { - encCfg app.EncodingConfig -} - -// newApp is an AppCreator -func (a appCreator) newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts servertypes.AppOptions) servertypes.Application { +// newApp creates the application +func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts servertypes.AppOptions) servertypes.Application { skipUpgradeHeights := make(map[int64]bool) for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) { h, err := cast.ToInt64E(h) @@ -266,20 +285,15 @@ func (a appCreator) newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, a } skipUpgradeHeights[h] = true } - baseappOptions := server.DefaultBaseappOptions(appOpts) - var emptyWasmOpts []wasm.Option newApp := app.NewComposableApp( logger, db, traceStore, true, - app.GetEnabledProposals(), skipUpgradeHeights, cast.ToString(appOpts.Get(flags.FlagHome)), cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)), - a.encCfg, // this line is used by starport scaffolding # stargate/root/appArgument appOpts, - emptyWasmOpts, baseappOptions..., ) @@ -287,7 +301,7 @@ func (a appCreator) newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, a } // appExport creates a new simapp (optionally at a given height) -func (a appCreator) appExport( +func appExport( logger log.Logger, db dbm.DB, traceStore io.Writer, height int64, forZeroHeight bool, jailAllowedAddrs []string, appOpts servertypes.AppOptions, _ []string, ) (servertypes.ExportedApp, error) { @@ -297,7 +311,6 @@ func (a appCreator) appExport( if !ok || homePath == "" { return servertypes.ExportedApp{}, errors.New("application home not set") } - var emptyWasmOpts []wasm.Option if height != -1 { anApp = app.NewComposableApp( @@ -305,13 +318,10 @@ func (a appCreator) appExport( db, traceStore, false, - app.GetEnabledProposals(), map[int64]bool{}, homePath, uint(1), - a.encCfg, appOpts, - emptyWasmOpts, ) if err := anApp.LoadHeight(height); err != nil { @@ -323,15 +333,25 @@ func (a appCreator) appExport( db, traceStore, true, - app.GetEnabledProposals(), map[int64]bool{}, homePath, uint(1), - a.encCfg, appOpts, - emptyWasmOpts, ) } return anApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs) } + +func genesisCommand(txConfig client.TxConfig, basicManager module.BasicManager, cmds ...*cobra.Command) *cobra.Command { + cmd := genutilcli.Commands(txConfig, basicManager, app.DefaultNodeHome) + + for _, subCmd := range cmds { + cmd.AddCommand(subCmd) + } + return cmd +} + +type EmptyAppOptions struct{} + +func (EmptyAppOptions) Get(_ string) interface{} { return nil } diff --git a/cmd/picad/config/config.go b/cmd/picad/config/config.go index f64e0b57d..c921733df 100644 --- a/cmd/picad/config/config.go +++ b/cmd/picad/config/config.go @@ -1,6 +1,7 @@ package types import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/address" @@ -59,11 +60,11 @@ func SetBip44CoinType(config *sdk.Config) { // RegisterDenoms registers the base and display denominations to the SDK. func RegisterDenoms() { - if err := sdk.RegisterDenom(HumanReadableCoinUnit, sdk.OneDec()); err != nil { + if err := sdk.RegisterDenom(HumanReadableCoinUnit, sdkmath.LegacyOneDec()); err != nil { panic(err) } - if err := sdk.RegisterDenom(BaseCoinUnit, sdk.NewDecWithPrec(1, 6)); err != nil { + if err := sdk.RegisterDenom(BaseCoinUnit, sdkmath.LegacyNewDecWithPrec(1, 6)); err != nil { panic(err) } } diff --git a/custom/bank/bank_test.go b/custom/bank/bank_test.go index ffbaa63f2..fa521eb39 100644 --- a/custom/bank/bank_test.go +++ b/custom/bank/bank_test.go @@ -3,10 +3,11 @@ package bank_test import ( "testing" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" "github.com/stretchr/testify/suite" customibctesting "github.com/notional-labs/composable/v6/app/ibctesting" @@ -47,11 +48,11 @@ func TestBankTestSuite(t *testing.T) { // TODO: use testsuite here. func (suite *CustomBankTestSuite) TestTotalSupply() { var ( - transferAmount = sdk.NewInt(1000000000) + transferAmount = sdkmath.NewInt(1000000000) // when transfer via sdk transfer from A (module) -> B (contract) coinToSendToB = sdk.NewCoin(sdk.DefaultBondDenom, transferAmount) timeoutHeight = clienttypes.NewHeight(1, 110) - originAmt, err = sdk.NewIntFromString("10000000001100000000000") + originAmt, err = sdkmath.NewIntFromString("100000004100001000000") chainBOriginSuply = sdk.NewCoin("stake", originAmt) ) suite.Require().True(err) @@ -97,9 +98,9 @@ func (suite *CustomBankTestSuite) TestTotalSupply() { sdk.Coins{chainBOriginSuply.Add(sdk.NewCoin("stake", transferAmount))}, func() { // Premint for escrow - err := suite.chainB.GetBankKeeper().MintCoins(suite.chainB.GetContext(), "mint", sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1000000000)))) + err := suite.chainB.GetBankKeeper().MintCoins(suite.chainB.GetContext(), "mint", sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(1000000000)))) suite.Require().NoError(err) - err = suite.chainB.GetBankKeeper().SendCoinsFromModuleToAccount(suite.chainB.GetContext(), "mint", escrowAddr, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1000000000)))) + err = suite.chainB.GetBankKeeper().SendCoinsFromModuleToAccount(suite.chainB.GetContext(), "mint", escrowAddr, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(1000000000)))) suite.Require().NoError(err) // Add parachain token info @@ -155,15 +156,15 @@ func (suite *CustomBankTestSuite) TestTotalSupply() { totalSupply, err := suite.chainB.GetBankKeeper().TotalSupply(suite.chainB.GetContext(), &banktypes.QueryTotalSupplyRequest{}) suite.Require().NoError(err) suite.Require().Equal(totalSupply.Supply, originalChainBTotalSupply.Supply.Add(tc.expTotalSupplyDiff...)) - suite.Require().Equal(totalSupply.Supply, tc.expChainBTotalSuppy) + suite.Require().Equal(totalSupply.Supply.String(), tc.expChainBTotalSuppy.String()) }) } } func (suite *CustomBankTestSuite) TestTotalSupply2() { var ( - transferAmount = sdk.NewInt(1000000000) - transferAmount2 = sdk.NewInt(3500000000) + transferAmount = sdkmath.NewInt(1000000000) + transferAmount2 = sdkmath.NewInt(3500000000) // when transfer via sdk transfer from A (module) -> B (contract) coinChainASendToB = sdk.NewCoin(sdk.DefaultBondDenom, transferAmount) coinChainCSentToB = sdk.NewCoin(sdk.DefaultBondDenom, transferAmount2) diff --git a/custom/bank/keeper/keeper.go b/custom/bank/keeper/keeper.go index 5422ac308..b9877d46e 100644 --- a/custom/bank/keeper/keeper.go +++ b/custom/bank/keeper/keeper.go @@ -3,53 +3,47 @@ package keeper import ( "context" + "cosmossdk.io/core/store" + "cosmossdk.io/log" "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" accountkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" "github.com/cosmos/cosmos-sdk/x/bank/types" - stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" + banktypes "github.com/notional-labs/composable/v6/custom/bank/types" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - banktypes "github.com/notional-labs/composable/v6/custom/bank/types" - transfermiddlewarekeeper "github.com/notional-labs/composable/v6/x/transfermiddleware/keeper" - - alliancekeeper "github.com/terra-money/alliance/x/alliance/keeper" ) type Keeper struct { bankkeeper.BaseKeeper - tfmk banktypes.TransferMiddlewareKeeper - ak alliancekeeper.Keeper sk banktypes.StakingKeeper - acck accountkeeper.AccountKeeper + ak accountkeeper.AccountKeeper } var _ bankkeeper.Keeper = Keeper{} func NewBaseKeeper( + logger log.Logger, cdc codec.BinaryCodec, - storeKey storetypes.StoreKey, + storeService store.KVStoreService, ak accountkeeper.AccountKeeper, blockedAddrs map[string]bool, tfmk *transfermiddlewarekeeper.Keeper, authority string, ) Keeper { keeper := Keeper{ - BaseKeeper: bankkeeper.NewBaseKeeper(cdc, storeKey, ak, blockedAddrs, authority), - ak: alliancekeeper.Keeper{}, - sk: stakingkeeper.Keeper{}, + BaseKeeper: bankkeeper.NewBaseKeeper(cdc, storeService, ak, blockedAddrs, authority, logger), tfmk: tfmk, - acck: ak, + ak: ak, } return keeper } -func (k *Keeper) RegisterKeepers(ak alliancekeeper.Keeper, sk banktypes.StakingKeeper) { +func (k *Keeper) RegisterKeepers(ak accountkeeper.AccountKeeper, sk banktypes.StakingKeeper) { k.ak = ak k.sk = sk } diff --git a/custom/bank/keeper/msg_server.go b/custom/bank/keeper/msg_server.go new file mode 100644 index 000000000..49fdeccca --- /dev/null +++ b/custom/bank/keeper/msg_server.go @@ -0,0 +1,124 @@ +package keeper + +import ( + "context" + + "cosmossdk.io/core/address" + errorsmod "cosmossdk.io/errors" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + "github.com/cosmos/cosmos-sdk/telemetry" + sdk "github.com/cosmos/cosmos-sdk/types" + bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" + "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/hashicorp/go-metrics" +) + +type msgServer struct { + types.MsgServer + + keeper bankkeeper.Keeper + addressCodec address.Codec +} + +var _ types.MsgServer = msgServer{} + +func NewMsgServerImpl(keeper Keeper, addressCodec address.Codec) types.MsgServer { + return &msgServer{ + MsgServer: bankkeeper.NewMsgServerImpl(keeper), + keeper: keeper, + addressCodec: addressCodec, + } +} + +func (k msgServer) Send(goCtx context.Context, msg *types.MsgSend) (*types.MsgSendResponse, error) { + from, err := k.addressCodec.StringToBytes(msg.FromAddress) + if err != nil { + return nil, sdkerrors.ErrInvalidAddress.Wrapf("invalid from address: %s", err) + } + to, err := k.addressCodec.StringToBytes(msg.ToAddress) + if err != nil { + return nil, sdkerrors.ErrInvalidAddress.Wrapf("invalid to address: %s", err) + } + + if !msg.Amount.IsValid() { + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidCoins, msg.Amount.String()) + } + + if !msg.Amount.IsAllPositive() { + return nil, errorsmod.Wrap(sdkerrors.ErrInvalidCoins, msg.Amount.String()) + } + + ctx := sdk.UnwrapSDKContext(goCtx) + if err := k.keeper.IsSendEnabledCoins(ctx, msg.Amount...); err != nil { + return nil, err + } + + if k.keeper.BlockedAddr(to) { + return nil, errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "%s is not allowed to receive funds", msg.ToAddress) + } + + err = k.keeper.SendCoins(ctx, from, to, msg.Amount) + if err != nil { + return nil, err + } + + defer func() { + for _, a := range msg.Amount { + if a.Amount.IsInt64() { + telemetry.SetGaugeWithLabels( + []string{"tx", "msg", "send"}, + float32(a.Amount.Int64()), + []metrics.Label{telemetry.NewLabel("denom", a.Denom)}, + ) + } + } + }() + + return &types.MsgSendResponse{}, nil +} + +func (k msgServer) MultiSend(goCtx context.Context, msg *types.MsgMultiSend) (*types.MsgMultiSendResponse, error) { + if len(msg.Inputs) == 0 { + return nil, types.ErrNoInputs + } + + if len(msg.Inputs) != 1 { + return nil, types.ErrMultipleSenders + } + + if len(msg.Outputs) == 0 { + return nil, types.ErrNoOutputs + } + + if err := types.ValidateInputOutputs(msg.Inputs[0], msg.Outputs); err != nil { + return nil, err + } + + ctx := sdk.UnwrapSDKContext(goCtx) + + // NOTE: totalIn == totalOut should already have been checked + for _, in := range msg.Inputs { + if err := k.keeper.IsSendEnabledCoins(ctx, in.Coins...); err != nil { + return nil, err + } + } + + for _, out := range msg.Outputs { + accAddr, err := k.addressCodec.StringToBytes(out.Address) + if err != nil { + return nil, err + } + + if k.keeper.BlockedAddr(accAddr) { + return nil, errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "%s is not allowed to receive funds", out.Address) + } + } + + err := k.keeper.InputOutputCoins(ctx, msg.Inputs[0], msg.Outputs) + if err != nil { + return nil, err + } + + return &types.MsgMultiSendResponse{}, nil +} diff --git a/custom/bank/module.go b/custom/bank/module.go index 3d88d9612..737d3f2a2 100644 --- a/custom/bank/module.go +++ b/custom/bank/module.go @@ -3,6 +3,8 @@ package bank import ( "fmt" + "cosmossdk.io/core/address" + "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/types/module" bankmodule "github.com/cosmos/cosmos-sdk/x/bank" @@ -13,22 +15,21 @@ import ( custombankkeeper "github.com/notional-labs/composable/v6/custom/bank/keeper" ) -// AppModule wraps around the bank module and the bank keeper to return the right total supply ignoring bonded tokens -// that the alliance module minted to rebalance the voting power -// It modifies the TotalSupply and SupplyOf GRPC queries type AppModule struct { bankmodule.AppModule - keeper custombankkeeper.Keeper - subspace exported.Subspace + keeper custombankkeeper.Keeper + subspace exported.Subspace + addressCodec address.Codec } // NewAppModule creates a new AppModule object func NewAppModule(cdc codec.Codec, keeper custombankkeeper.Keeper, accountKeeper types.AccountKeeper, ss exported.Subspace) AppModule { bankModule := bankmodule.NewAppModule(cdc, keeper, accountKeeper, ss) return AppModule{ - AppModule: bankModule, - keeper: keeper, - subspace: ss, + AppModule: bankModule, + keeper: keeper, + subspace: ss, + addressCodec: accountKeeper.AddressCodec(), } } @@ -36,7 +37,7 @@ func NewAppModule(cdc codec.Codec, keeper custombankkeeper.Keeper, accountKeeper // NOTE: Overriding this method as not doing so will cause a panic // when trying to force this custom keeper into a bankkeeper.BaseKeeper func (am AppModule) RegisterServices(cfg module.Configurator) { - types.RegisterMsgServer(cfg.MsgServer(), bankkeeper.NewMsgServerImpl(am.keeper)) + types.RegisterMsgServer(cfg.MsgServer(), custombankkeeper.NewMsgServerImpl(am.keeper, am.addressCodec)) types.RegisterQueryServer(cfg.QueryServer(), am.keeper) m := bankkeeper.NewMigrator(am.keeper.BaseKeeper, am.subspace) diff --git a/custom/bank/types/keeper_interfaces.go b/custom/bank/types/keeper_interfaces.go index 3dbd094aa..7e4417d4c 100644 --- a/custom/bank/types/keeper_interfaces.go +++ b/custom/bank/types/keeper_interfaces.go @@ -1,9 +1,13 @@ package types -import sdk "github.com/cosmos/cosmos-sdk/types" +import ( + "context" + + sdk "github.com/cosmos/cosmos-sdk/types" +) type StakingKeeper interface { - BondDenom(ctx sdk.Context) (res string) + BondDenom(ctx context.Context) (res string, err error) } type TransferMiddlewareKeeper interface { diff --git a/custom/ibc-transfer/keeper/keeper.go b/custom/ibc-transfer/keeper/keeper.go index 469c2eab1..94928e60b 100644 --- a/custom/ibc-transfer/keeper/keeper.go +++ b/custom/ibc-transfer/keeper/keeper.go @@ -6,15 +6,17 @@ import ( "fmt" "time" + sdkmath "cosmossdk.io/math" + "github.com/cosmos/cosmos-sdk/codec" - ibctransferkeeper "github.com/cosmos/ibc-go/v7/modules/apps/transfer/keeper" + ibctransferkeeper "github.com/cosmos/ibc-go/v8/modules/apps/transfer/keeper" - storetypes "github.com/cosmos/cosmos-sdk/store/types" + storetypes "cosmossdk.io/store/types" sdk "github.com/cosmos/cosmos-sdk/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" - "github.com/cosmos/ibc-go/v7/modules/core/exported" + "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" + "github.com/cosmos/ibc-go/v8/modules/core/exported" custombankkeeper "github.com/notional-labs/composable/v6/custom/bank/keeper" ibctransfermiddleware "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/keeper" ibctransfermiddlewaretypes "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/types" @@ -39,9 +41,10 @@ func NewKeeper( scopedKeeper exported.ScopedKeeper, ibcTransfermiddleware *ibctransfermiddleware.Keeper, bankKeeper *custombankkeeper.Keeper, + authority string, ) Keeper { keeper := Keeper{ - Keeper: ibctransferkeeper.NewKeeper(cdc, key, paramSpace, ics4Wrapper, channelKeeper, portKeeper, authKeeper, bk, scopedKeeper), + Keeper: ibctransferkeeper.NewKeeper(cdc, key, paramSpace, ics4Wrapper, channelKeeper, portKeeper, authKeeper, bk, scopedKeeper, authority), IbcTransfermiddleware: ibcTransfermiddleware, cdc: cdc, bank: bankKeeper, @@ -59,7 +62,7 @@ func NewKeeper( func (k Keeper) Transfer(goCtx context.Context, msg *types.MsgTransfer) (*types.MsgTransferResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) params := k.IbcTransfermiddleware.GetParams(ctx) - charge_coin := sdk.NewCoin(msg.Token.Denom, sdk.ZeroInt()) + charge_coin := sdk.NewCoin(msg.Token.Denom, sdkmath.ZeroInt()) if params.ChannelFees != nil && len(params.ChannelFees) > 0 { channelFee := findChannelParams(params.ChannelFees, msg.SourceChannel) if channelFee != nil { @@ -121,7 +124,7 @@ func (k Keeper) Transfer(goCtx context.Context, msg *types.MsgTransfer) (*types. return nil, send_err } - if newAmount.LTE(sdk.ZeroInt()) { + if newAmount.LTE(sdkmath.ZeroInt()) { return &types.MsgTransferResponse{}, nil } msg.Token.Amount = newAmount diff --git a/custom/ibc-transfer/keeper/msg_server.go b/custom/ibc-transfer/keeper/msg_server.go index 7adb3a0a6..4669c9af8 100644 --- a/custom/ibc-transfer/keeper/msg_server.go +++ b/custom/ibc-transfer/keeper/msg_server.go @@ -5,8 +5,9 @@ import ( "fmt" "time" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" custombankkeeper "github.com/notional-labs/composable/v6/custom/bank/keeper" ibctransfermiddlewaretypes "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/types" ) @@ -33,7 +34,7 @@ func NewMsgServerImpl(ibcKeeper Keeper, bankKeeper custombankkeeper.Keeper) type func (k msgServer) Transfer(goCtx context.Context, msg *types.MsgTransfer) (*types.MsgTransferResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) params := k.Keeper.IbcTransfermiddleware.GetParams(ctx) - charge_coin := sdk.NewCoin(msg.Token.Denom, sdk.ZeroInt()) + charge_coin := sdk.NewCoin(msg.Token.Denom, sdkmath.ZeroInt()) if params.ChannelFees != nil && len(params.ChannelFees) > 0 { channelFee := findChannelParams(params.ChannelFees, msg.SourceChannel) if channelFee != nil { @@ -95,7 +96,7 @@ func (k msgServer) Transfer(goCtx context.Context, msg *types.MsgTransfer) (*typ return nil, send_err } - if newAmount.LTE(sdk.ZeroInt()) { + if newAmount.LTE(sdkmath.ZeroInt()) { return &types.MsgTransferResponse{}, nil } msg.Token.Amount = newAmount diff --git a/custom/ibc-transfer/module.go b/custom/ibc-transfer/module.go index dd34f0716..88de731ea 100644 --- a/custom/ibc-transfer/module.go +++ b/custom/ibc-transfer/module.go @@ -6,9 +6,9 @@ import ( "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/types/module" - ibctransfermodule "github.com/cosmos/ibc-go/v7/modules/apps/transfer" - ibctransferkeeper "github.com/cosmos/ibc-go/v7/modules/apps/transfer/keeper" - "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + ibctransfermodule "github.com/cosmos/ibc-go/v8/modules/apps/transfer" + ibctransferkeeper "github.com/cosmos/ibc-go/v8/modules/apps/transfer/keeper" + "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" custombankkeeper "github.com/notional-labs/composable/v6/custom/bank/keeper" customibctransferkeeper "github.com/notional-labs/composable/v6/custom/ibc-transfer/keeper" ) @@ -48,4 +48,12 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { if err := cfg.RegisterMigration(types.ModuleName, 2, m.MigrateTotalEscrowForDenom); err != nil { panic(fmt.Sprintf("failed to migrate transfer app from version 2 to 3: %v", err)) } + + if err := cfg.RegisterMigration(types.ModuleName, 3, m.MigrateParams); err != nil { + panic(fmt.Errorf("failed to migrate transfer app version 3 to 4 (self-managed params migration): %v", err)) + } + + if err := cfg.RegisterMigration(types.ModuleName, 4, m.MigrateDenomMetadata); err != nil { + panic(fmt.Errorf("failed to migrate transfer app from version 4 to 5 (set denom metadata migration): %v", err)) + } } diff --git a/custom/staking/abci.go b/custom/staking/abci.go index 915dafca0..1fce8202c 100644 --- a/custom/staking/abci.go +++ b/custom/staking/abci.go @@ -1,22 +1,21 @@ package bank import ( + "context" "time" abci "github.com/cometbft/cometbft/abci/types" "github.com/cosmos/cosmos-sdk/telemetry" - sdk "github.com/cosmos/cosmos-sdk/types" - // "github.com/cosmos/cosmos-sdk/x/staking/keeper" "github.com/cosmos/cosmos-sdk/x/staking/types" customstakingkeeper "github.com/notional-labs/composable/v6/custom/staking/keeper" ) -// Called every block, update validator set -func EndBlocker(ctx sdk.Context, k *customstakingkeeper.Keeper) []abci.ValidatorUpdate { +// EndBlocker returns the end blocker for the staking module. +func EndBlocker(ctx context.Context, k *customstakingkeeper.Keeper) ([]abci.ValidatorUpdate, error) { defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), telemetry.MetricKeyEndBlocker) - return k.BlockValidatorUpdates(ctx, ctx.BlockHeight()) + return k.BlockValidatorUpdates(ctx) } diff --git a/custom/staking/keeper/keeper.go b/custom/staking/keeper/keeper.go index 4f9fde1fd..0ddcaeeda 100644 --- a/custom/staking/keeper/keeper.go +++ b/custom/staking/keeper/keeper.go @@ -1,13 +1,15 @@ package keeper import ( + "context" "fmt" "cosmossdk.io/math" abcicometbft "github.com/cometbft/cometbft/abci/types" "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" + "cosmossdk.io/core/address" + storetypes "cosmossdk.io/core/store" sdk "github.com/cosmos/cosmos-sdk/types" distkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper" stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" @@ -27,7 +29,7 @@ type Keeper struct { authKeeper minttypes.AccountKeeper } -func (k Keeper) BlockValidatorUpdates(ctx sdk.Context, height int64) []abcicometbft.ValidatorUpdate { +func (k Keeper) BlockValidatorUpdates(ctx context.Context) ([]abcicometbft.ValidatorUpdate, error) { // Calculate validator set changes. // // NOTE: ApplyAndReturnValidatorSetUpdates has to come before @@ -37,7 +39,9 @@ func (k Keeper) BlockValidatorUpdates(ctx sdk.Context, height int64) []abcicomet // unbonded after the Endblocker (go from Bonded -> Unbonding during // ApplyAndReturnValidatorSetUpdates and then Unbonding -> Unbonded during // UnbondAllMatureValidatorQueue). - params := k.Stakingmiddleware.GetParams(ctx) + sdkCtx := sdk.UnwrapSDKContext(ctx) + params := k.Stakingmiddleware.GetParams(sdkCtx) + height := sdkCtx.BlockHeight() shouldExecuteBatch := (height % int64(params.BlocksPerEpoch)) == 0 var validatorUpdates []abcicometbft.ValidatorUpdate if shouldExecuteBatch { @@ -50,14 +54,20 @@ func (k Keeper) BlockValidatorUpdates(ctx sdk.Context, height int64) []abcicomet } // unbond all mature validators from the unbonding queue - k.UnbondAllMatureValidators(ctx) + err := k.UnbondAllMatureValidators(ctx) + if err != nil { + return nil, err + } // Remove all mature unbonding delegations from the ubd queue. - matureUnbonds := k.DequeueAllMatureUBDQueue(ctx, ctx.BlockHeader().Time) + matureUnbonds, err := k.DequeueAllMatureUBDQueue(ctx, sdkCtx.BlockHeader().Time) + if err != nil { + return nil, err + } for _, dvPair := range matureUnbonds { addr, err := sdk.ValAddressFromBech32(dvPair.ValidatorAddress) if err != nil { - panic(err) + return nil, err } delegatorAddress := sdk.MustAccAddressFromBech32(dvPair.DelegatorAddress) @@ -66,7 +76,7 @@ func (k Keeper) BlockValidatorUpdates(ctx sdk.Context, height int64) []abcicomet continue } - ctx.EventManager().EmitEvent( + sdkCtx.EventManager().EmitEvent( sdk.NewEvent( types.EventTypeCompleteUnbonding, sdk.NewAttribute(sdk.AttributeKeyAmount, balances.String()), @@ -77,15 +87,18 @@ func (k Keeper) BlockValidatorUpdates(ctx sdk.Context, height int64) []abcicomet } // Remove all mature redelegations from the red queue. - matureRedelegations := k.DequeueAllMatureRedelegationQueue(ctx, ctx.BlockHeader().Time) + matureRedelegations, err := k.DequeueAllMatureRedelegationQueue(ctx, sdkCtx.BlockHeader().Time) + if err != nil { + return nil, err + } for _, dvvTriplet := range matureRedelegations { valSrcAddr, err := sdk.ValAddressFromBech32(dvvTriplet.ValidatorSrcAddress) if err != nil { - panic(err) + return nil, err } valDstAddr, err := sdk.ValAddressFromBech32(dvvTriplet.ValidatorDstAddress) if err != nil { - panic(err) + return nil, err } delegatorAddress := sdk.MustAccAddressFromBech32(dvvTriplet.DelegatorAddress) @@ -99,7 +112,7 @@ func (k Keeper) BlockValidatorUpdates(ctx sdk.Context, height int64) []abcicomet continue } - ctx.EventManager().EmitEvent( + sdkCtx.EventManager().EmitEvent( sdk.NewEvent( types.EventTypeCompleteRedelegation, sdk.NewAttribute(sdk.AttributeKeyAmount, balances.String()), @@ -110,25 +123,25 @@ func (k Keeper) BlockValidatorUpdates(ctx sdk.Context, height int64) []abcicomet ) } - return validatorUpdates + return validatorUpdates, nil } func NewKeeper( cdc codec.BinaryCodec, - key storetypes.StoreKey, + storeService storetypes.KVStoreService, ak types.AccountKeeper, bk types.BankKeeper, authority string, stakingmiddleware *stakingmiddleware.Keeper, + validatorAddressCodec, consensusAddressCodec address.Codec, ) *Keeper { keeper := Keeper{ - Keeper: *stakingkeeper.NewKeeper(cdc, key, ak, bk, authority), + Keeper: *stakingkeeper.NewKeeper(cdc, storeService, ak, bk, authority, validatorAddressCodec, consensusAddressCodec), authority: authority, Stakingmiddleware: stakingmiddleware, cdc: cdc, mintKeeper: mintkeeper.Keeper{}, distrKeeper: distkeeper.Keeper{}, - authKeeper: ak, } return &keeper } @@ -139,12 +152,23 @@ func (k *Keeper) RegisterKeepers(dk distkeeper.Keeper, mk mintkeeper.Keeper) { } // SlashWithInfractionReason send coins to community pool -func (k Keeper) SlashWithInfractionReason(ctx sdk.Context, consAddr sdk.ConsAddress, infractionHeight, power int64, slashFactor sdk.Dec, _ types.Infraction) math.Int { +func (k Keeper) SlashWithInfractionReason(ctx context.Context, consAddr sdk.ConsAddress, infractionHeight, power int64, slashFactor math.LegacyDec, _ types.Infraction) (math.Int, error) { + sdkCtx := sdk.UnwrapSDKContext(ctx) + // keep slashing logic the same - amountBurned := k.Slash(ctx, consAddr, infractionHeight, power, slashFactor) + amountBurned, err := k.Slash(ctx, consAddr, infractionHeight, power, slashFactor) + if err != nil { + return math.ZeroInt(), err + } + // after usual slashing and burning is done, mint burned coinds into community pool - coins := sdk.NewCoins(sdk.NewCoin(k.BondDenom(ctx), amountBurned)) - err := k.mintKeeper.MintCoins(ctx, coins) + denom, err := k.BondDenom(ctx) + if err != nil { + return math.ZeroInt(), err + } + + coins := sdk.NewCoins(sdk.NewCoin(denom, amountBurned)) + err = k.mintKeeper.MintCoins(sdkCtx, coins) if err != nil { k.Logger(ctx).Error("Failed to mint slashed coins: ", amountBurned) } else { @@ -152,7 +176,7 @@ func (k Keeper) SlashWithInfractionReason(ctx sdk.Context, consAddr sdk.ConsAddr if err != nil { k.Logger(ctx).Error(fmt.Sprintf("Failed to fund community pool. Tokens minted to the staking module account: %d. ", amountBurned)) } else { - ctx.EventManager().EmitEvent( + sdkCtx.EventManager().EmitEvent( sdk.NewEvent( minttypes.EventTypeMintSlashed, sdk.NewAttribute(sdk.AttributeKeyAmount, amountBurned.String()), @@ -160,5 +184,5 @@ func (k Keeper) SlashWithInfractionReason(ctx sdk.Context, consAddr sdk.ConsAddr ) } } - return amountBurned + return amountBurned, nil } diff --git a/custom/staking/module.go b/custom/staking/module.go index 44a306f73..3d42fcdaf 100644 --- a/custom/staking/module.go +++ b/custom/staking/module.go @@ -1,9 +1,11 @@ package bank import ( + "context" "fmt" - abcitype "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/abci/types" + "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/types/module" stakingmodule "github.com/cosmos/cosmos-sdk/x/staking" @@ -12,7 +14,7 @@ import ( stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" // custombankkeeper "github.com/notional-labs/composable/v6/custom/bank/keeper" - sdk "github.com/cosmos/cosmos-sdk/types" + customstakingkeeper "github.com/notional-labs/composable/v6/custom/staking/keeper" ) @@ -56,8 +58,12 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { if err := cfg.RegisterMigration(stakingtypes.ModuleName, 3, m.Migrate3to4); err != nil { panic(fmt.Sprintf("failed to migrate x/staking from version 3 to 4: %v", err)) } + + if err := cfg.RegisterMigration(stakingtypes.ModuleName, 4, m.Migrate4to5); err != nil { + panic(fmt.Sprintf("failed to migrate x/staking from version 4 to 5: %v", err)) + } } -func (am AppModule) EndBlock(ctx sdk.Context, _abc abcitype.RequestEndBlock) []abcitype.ValidatorUpdate { +func (am AppModule) EndBlock(ctx context.Context) ([]abci.ValidatorUpdate, error) { return EndBlocker(ctx, &am.keeper) } diff --git a/flake.lock b/flake.lock new file mode 100644 index 000000000..7052e3fc2 --- /dev/null +++ b/flake.lock @@ -0,0 +1,1548 @@ +{ + "nodes": { + "akash-src": { + "flake": false, + "locked": { + "lastModified": 1648485085, + "narHash": "sha256-33FPy0dn6QuqneEqZYkFoCRm9agG7PE+9C/pYH9Gwx4=", + "owner": "ovrclk", + "repo": "akash", + "rev": "5b8b6bbede6c9fbb2df1ca536b8edfcf5652adf8", + "type": "github" + }, + "original": { + "owner": "ovrclk", + "ref": "v0.15.0-rc17", + "repo": "akash", + "type": "github" + } + }, + "apalache-src": { + "flake": false, + "locked": { + "lastModified": 1692625213, + "narHash": "sha256-Z/tmBMv+QshFJLo2kBgBdkqfKwF93CgURVIbYF3dwJE=", + "owner": "informalsystems", + "repo": "apalache", + "rev": "ec979d4554360faf9d73ddf72dccf350614076d5", + "type": "github" + }, + "original": { + "owner": "informalsystems", + "ref": "v0.42.0", + "repo": "apalache", + "type": "github" + } + }, + "beaker-src": { + "flake": false, + "locked": { + "lastModified": 1686823358, + "narHash": "sha256-bQiN5Q7RV4Uupc7rk1rGurRvCTy+5EiiB4p3bHct7M0=", + "owner": "osmosis-labs", + "repo": "beaker", + "rev": "f3c7a9fc6886aa2b4e0d259f70058d6c23c225e5", + "type": "github" + }, + "original": { + "owner": "osmosis-labs", + "ref": "v0.1.6", + "repo": "beaker", + "type": "github" + } + }, + "celestia-src": { + "flake": false, + "locked": { + "lastModified": 1700494564, + "narHash": "sha256-O6KrCStrZLmWy3xybQUNsWEb3O7vIRCFDE9MsEtsFro=", + "owner": "celestiaorg", + "repo": "celestia-app", + "rev": "2dbfabf1849e166974c1287c35b43e5e07727643", + "type": "github" + }, + "original": { + "owner": "celestiaorg", + "ref": "v1.4.0", + "repo": "celestia-app", + "type": "github" + } + }, + "centauri-src": { + "flake": false, + "locked": { + "lastModified": 1701431373, + "narHash": "sha256-EpZ1CQN0gMU8W1u3CMbqlaHeeVpQO2i1GPg6pOyOQTc=", + "owner": "ComposableFi", + "repo": "composable-cosmos", + "rev": "387c96b434db9d96b0506aa7f14536d9bdec968c", + "type": "github" + }, + "original": { + "owner": "ComposableFi", + "repo": "composable-cosmos", + "rev": "387c96b434db9d96b0506aa7f14536d9bdec968c", + "type": "github" + } + }, + "cometbft-src": { + "flake": false, + "locked": { + "lastModified": 1694550324, + "narHash": "sha256-G5gchJMn/BFzwYx8/ikPDL5fS/TuFIBF4DKJbkalp/M=", + "owner": "cometbft", + "repo": "cometbft", + "rev": "66a5a9da9f7a3306f382eb9142ccb9c9f7997d3f", + "type": "github" + }, + "original": { + "owner": "cometbft", + "ref": "v0.38.0", + "repo": "cometbft", + "type": "github" + } + }, + "cosmos": { + "inputs": { + "akash-src": "akash-src", + "apalache-src": "apalache-src", + "beaker-src": "beaker-src", + "celestia-src": "celestia-src", + "centauri-src": "centauri-src", + "cometbft-src": "cometbft-src", + "cosmos-sdk-src": "cosmos-sdk-src", + "cosmwasm-src": "cosmwasm-src", + "crescent-src": "crescent-src", + "cw-plus-src": "cw-plus-src", + "evmos-src": "evmos-src", + "flake-parts": "flake-parts", + "gaia-main-src": "gaia-main-src", + "gaia10-src": "gaia10-src", + "gaia11-src": "gaia11-src", + "gaia12-src": "gaia12-src", + "gaia13-src": "gaia13-src", + "gaia14-src": "gaia14-src", + "gaia5-src": "gaia5-src", + "gaia6-ordered-src": "gaia6-ordered-src", + "gaia6-src": "gaia6-src", + "gaia7-src": "gaia7-src", + "gaia8-src": "gaia8-src", + "gaia9-src": "gaia9-src", + "gex-src": "gex-src", + "gomod2nix": "gomod2nix", + "hermes-src": "hermes-src", + "ibc-go-v2-src": "ibc-go-v2-src", + "ibc-go-v3-src": "ibc-go-v3-src", + "ibc-go-v4-src": "ibc-go-v4-src", + "ibc-go-v5-src": "ibc-go-v5-src", + "ibc-go-v6-src": "ibc-go-v6-src", + "ibc-go-v7-src": "ibc-go-v7-src", + "ibc-go-v8-channel-upgrade-src": "ibc-go-v8-channel-upgrade-src", + "ibc-go-v8-src": "ibc-go-v8-src", + "ibc-rs-src": "ibc-rs-src", + "ica-src": "ica-src", + "ignite-cli-src": "ignite-cli-src", + "interchain-security-src": "interchain-security-src", + "iris-src": "iris-src", + "ixo-src": "ixo-src", + "juno-src": "juno-src", + "migaloo-src": "migaloo-src", + "namada-src": "namada-src", + "neutron-src": "neutron-src", + "nix-std": "nix-std", + "nixpkgs": [ + "nixpkgs" + ], + "osmosis-src": "osmosis-src", + "provenance-src": "provenance-src", + "regen-src": "regen-src", + "relayer-src": "relayer-src", + "rust-overlay": "rust-overlay", + "sbt-derivation": "sbt-derivation", + "sconfig-src": "sconfig-src", + "sentinel-src": "sentinel-src", + "sifchain-src": "sifchain-src", + "stargaze-src": "stargaze-src", + "stoml-src": "stoml-src", + "stride-consumer-src": "stride-consumer-src", + "stride-src": "stride-src", + "umee-src": "umee-src", + "wasmd-src": "wasmd-src", + "wasmd_next-src": "wasmd_next-src", + "wasmvm_1-src": "wasmvm_1-src", + "wasmvm_1_1_1-src": "wasmvm_1_1_1-src", + "wasmvm_1_1_2-src": "wasmvm_1_1_2-src", + "wasmvm_1_2_3-src": "wasmvm_1_2_3-src", + "wasmvm_1_2_4-src": "wasmvm_1_2_4-src", + "wasmvm_1_3_0-src": "wasmvm_1_3_0-src", + "wasmvm_1_5_0-src": "wasmvm_1_5_0-src", + "wasmvm_1_beta7-src": "wasmvm_1_beta7-src" + }, + "locked": { + "lastModified": 1703683453, + "narHash": "sha256-uMgdhucQZTNFPa+5v3GXnhFEgXsIIytx16Lp+qI4/tI=", + "owner": "informalsystems", + "repo": "cosmos.nix", + "rev": "8429e606fa6b968f6f01752f702b7ba7ce9a9992", + "type": "github" + }, + "original": { + "owner": "informalsystems", + "repo": "cosmos.nix", + "type": "github" + } + }, + "cosmos-sdk-src": { + "flake": false, + "locked": { + "lastModified": 1658846655, + "narHash": "sha256-Xs83vbgt4+YH2LRJx7692nIjRBr5QCYoUHI17njsjlw=", + "owner": "cosmos", + "repo": "cosmos-sdk", + "rev": "a1143138716b64bc4fa0aa53c0f0fa59eb675bb7", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v0.46.0", + "repo": "cosmos-sdk", + "type": "github" + } + }, + "cosmwasm-src": { + "flake": false, + "locked": { + "lastModified": 1698745412, + "narHash": "sha256-41s5jLFzw9Jo+dirAVOad1dtUqCBY6rIz/6TRc0frMw=", + "owner": "CosmWasm", + "repo": "cosmwasm", + "rev": "89891f0bb2de2c83d00600208695d0d5e1b617ac", + "type": "github" + }, + "original": { + "owner": "CosmWasm", + "ref": "v1.5.0", + "repo": "cosmwasm", + "type": "github" + } + }, + "crescent-src": { + "flake": false, + "locked": { + "lastModified": 1647869429, + "narHash": "sha256-c1xiTB/HgtQJSwD3ccFQIoSHPbJK6rf1nSjnM3r0oCE=", + "owner": "crescent-network", + "repo": "crescent", + "rev": "01980cfd06b06786109eaba78c154e6db1adc3d6", + "type": "github" + }, + "original": { + "owner": "crescent-network", + "ref": "v1.0.0-rc3", + "repo": "crescent", + "type": "github" + } + }, + "cw-plus-src": { + "flake": false, + "locked": { + "lastModified": 1700757493, + "narHash": "sha256-E5vkY+B4BDoTDtvuB+7Tm3k/5dCYPSjUujMWcgYsWf0=", + "owner": "CosmWasm", + "repo": "cw-plus", + "rev": "d33824679d5b91ca0b4615a8dede7e0028947486", + "type": "github" + }, + "original": { + "owner": "CosmWasm", + "ref": "v1.1.2", + "repo": "cw-plus", + "type": "github" + } + }, + "evmos-src": { + "flake": false, + "locked": { + "lastModified": 1702504794, + "narHash": "sha256-ECXXQ0hx/MXascMP6aXf880zts/dNPpQM9jOCIHTLZQ=", + "owner": "evmos", + "repo": "evmos", + "rev": "6f94d2002c01b7f7908a69089ed6996ac2bb450c", + "type": "github" + }, + "original": { + "owner": "evmos", + "ref": "v16.0.0-rc4", + "repo": "evmos", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1701473968, + "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_2" + }, + "locked": { + "lastModified": 1701473968, + "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "gaia-main-src": { + "flake": false, + "locked": { + "lastModified": 1702388853, + "narHash": "sha256-1O8ncSd0mUNEUHSTi2U9d21Dv1yszQKohjp/AS6IxcU=", + "owner": "cosmos", + "repo": "gaia", + "rev": "2dc2b82ea9da34b3c4823458919004f1a583a597", + "type": "github" + }, + "original": { + "owner": "cosmos", + "repo": "gaia", + "type": "github" + } + }, + "gaia10-src": { + "flake": false, + "locked": { + "lastModified": 1688401730, + "narHash": "sha256-F72AxDI1OdleE8If5s4HJbORqMsDVsdEO5q7nrK07E8=", + "owner": "cosmos", + "repo": "gaia", + "rev": "a2b14cdd568273e12b80579b4e22681df95b4cb9", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v10.0.2", + "repo": "gaia", + "type": "github" + } + }, + "gaia11-src": { + "flake": false, + "locked": { + "lastModified": 1690464504, + "narHash": "sha256-bIegGSPDdDRbznfgsrojsGCwCPSesNknpffTFskc7fE=", + "owner": "cosmos", + "repo": "gaia", + "rev": "541a8d86af28231c767d6db52eb88ba9496ad0c4", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v11.0.0", + "repo": "gaia", + "type": "github" + } + }, + "gaia12-src": { + "flake": false, + "locked": { + "lastModified": 1692870038, + "narHash": "sha256-KqpkazhGGQWzvHiiwCiE7ciA8+L2t2HgxN8270zuGd0=", + "owner": "cosmos", + "repo": "gaia", + "rev": "6f8067d76ce30996f83645862153ccfaf5f13dd1", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v12.0.0", + "repo": "gaia", + "type": "github" + } + }, + "gaia13-src": { + "flake": false, + "locked": { + "lastModified": 1699370179, + "narHash": "sha256-bvJ33JL1Fr7ilnnYEjrjnbS/dbFkyhZ2uq6u39CeTa0=", + "owner": "cosmos", + "repo": "gaia", + "rev": "2406abb61856b61904ff06c7be2a355babcc3dfc", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v13.0.2", + "repo": "gaia", + "type": "github" + } + }, + "gaia14-src": { + "flake": false, + "locked": { + "lastModified": 1700067649, + "narHash": "sha256-7AnaIy/SElf/Uj2xTbHzLSgPY68SgQqqJZ2BPmt6czo=", + "owner": "cosmos", + "repo": "gaia", + "rev": "189b57be735d64d0dbf0945717b49017a1beb11e", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v14.0.0", + "repo": "gaia", + "type": "github" + } + }, + "gaia5-src": { + "flake": false, + "locked": { + "lastModified": 1634231239, + "narHash": "sha256-NfR9GRBNBlm5hB3lFea+Vlf4dkapZIZg0sZuyOX2cn8=", + "owner": "cosmos", + "repo": "gaia", + "rev": "b72cc994f7156c8a8991e6beed2dde84ad274588", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v5.0.8", + "repo": "gaia", + "type": "github" + } + }, + "gaia6-ordered-src": { + "flake": false, + "locked": { + "lastModified": 1648034337, + "narHash": "sha256-yw3WUCLRvn46xlWAnk6nBmvc3T91aryvBcOOfJ2ocPA=", + "owner": "informalsystems", + "repo": "gaia", + "rev": "d9e61fb98308dea2e02e8c6c6a9ab969dc240cc7", + "type": "github" + }, + "original": { + "owner": "informalsystems", + "ref": "v6.0.4-ordered", + "repo": "gaia", + "type": "github" + } + }, + "gaia6-src": { + "flake": false, + "locked": { + "lastModified": 1646904235, + "narHash": "sha256-JdD0DTdMo05ggGvpHN5hugEEtGA0/WQ4bhbryDlfGXo=", + "owner": "cosmos", + "repo": "gaia", + "rev": "305668ab9d962431c79d718bb0ffdeec77a46439", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v6.0.4", + "repo": "gaia", + "type": "github" + } + }, + "gaia7-src": { + "flake": false, + "locked": { + "lastModified": 1665762684, + "narHash": "sha256-hsDqDASwTPIb1BGOqa9nu4C5Y5q3hBoXYhkAFY7B9Cs=", + "owner": "cosmos", + "repo": "gaia", + "rev": "5db8fcc9a229730f5115bed82d0f85b6db7184b4", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v7.1.0", + "repo": "gaia", + "type": "github" + } + }, + "gaia8-src": { + "flake": false, + "locked": { + "lastModified": 1676667875, + "narHash": "sha256-8XPcJRQEQDtTbGFg0pWexkNdWESn1FoKvz4T2Z8UPDw=", + "owner": "cosmos", + "repo": "gaia", + "rev": "890ab3aa2e5788537b0d2ebc9bafdc968340e0e5", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v8.0.1", + "repo": "gaia", + "type": "github" + } + }, + "gaia9-src": { + "flake": false, + "locked": { + "lastModified": 1681924944, + "narHash": "sha256-UIM6yfqs1yZZ2BO/bBB43pPYSW1IzaYsk2f500tDYzA=", + "owner": "cosmos", + "repo": "gaia", + "rev": "05b6b87d3c9121e933eab437772ea56f33ae268f", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v9.0.3", + "repo": "gaia", + "type": "github" + } + }, + "gex-src": { + "flake": false, + "locked": { + "lastModified": 1697704475, + "narHash": "sha256-lgJVxn7Q2I8TBdvbzyn7bl1MN5StEw3NvRzCvBFFuB8=", + "owner": "cosmos", + "repo": "gex", + "rev": "233d335dc9e8c89fb318d1081fae74435f6cac11", + "type": "github" + }, + "original": { + "owner": "cosmos", + "repo": "gex", + "rev": "233d335dc9e8c89fb318d1081fae74435f6cac11", + "type": "github" + } + }, + "gomod2nix": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1702956934, + "narHash": "sha256-f1NuMA2mZ3Chw2CjlUkRAzNgDw0TYyj1i5YZJRByDdo=", + "owner": "JonathanLorimer", + "repo": "gomod2nix", + "rev": "6d2fce6003d08eee42648f2931de8449d3de1f5f", + "type": "github" + }, + "original": { + "owner": "JonathanLorimer", + "ref": "jonathan/update-go", + "repo": "gomod2nix", + "type": "github" + } + }, + "gomod2nix_2": { + "inputs": { + "flake-utils": "flake-utils_4", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1701687253, + "narHash": "sha256-qJCMxIKWXonJODPF2oV7mCd0xu7VYVenTucrY0bizto=", + "owner": "nix-community", + "repo": "gomod2nix", + "rev": "001bbfa22e2adeb87c34c6015e5694e88721cabe", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "gomod2nix", + "type": "github" + } + }, + "hermes-src": { + "flake": false, + "locked": { + "lastModified": 1702629809, + "narHash": "sha256-JTZMp4By/pGsMdKzfi4H1LQS1RKYQHBq5NEju5ADX/s=", + "owner": "informalsystems", + "repo": "hermes", + "rev": "ab732666fe35de129ada98731280d03411f6375f", + "type": "github" + }, + "original": { + "owner": "informalsystems", + "ref": "v1.7.4", + "repo": "hermes", + "type": "github" + } + }, + "ibc-go-v2-src": { + "flake": false, + "locked": { + "lastModified": 1663274791, + "narHash": "sha256-LuJvlXmGRyJAiM6+uk+NuamjIsEqMqF20twBmB0p8+k=", + "owner": "cosmos", + "repo": "ibc-go", + "rev": "e45fa32d1cf91c36807428f688d8e2ec88947940", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v2.4.1", + "repo": "ibc-go", + "type": "github" + } + }, + "ibc-go-v3-src": { + "flake": false, + "locked": { + "lastModified": 1663683283, + "narHash": "sha256-Er24B1unLYR/gG4JSrV+vZ/cPD6t7OFvtqp7AJCtDSE=", + "owner": "cosmos", + "repo": "ibc-go", + "rev": "250157f3fd40abaf9f8f1452cd78bf3304c38c72", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v3.3.0", + "repo": "ibc-go", + "type": "github" + } + }, + "ibc-go-v4-src": { + "flake": false, + "locked": { + "lastModified": 1667809128, + "narHash": "sha256-R1/AH6laXdaMftgwnV4t/pL3QoKnZ1UaBGoqOipOvQI=", + "owner": "cosmos", + "repo": "ibc-go", + "rev": "ecb845d5e43f53decf48f8ed88c7847a9a4375cb", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v4.2.0", + "repo": "ibc-go", + "type": "github" + } + }, + "ibc-go-v5-src": { + "flake": false, + "locked": { + "lastModified": 1668024626, + "narHash": "sha256-+Z78PyGODLr2Y5G8evubsoQE3tyUcxCHJDsLXKTmdlI=", + "owner": "cosmos", + "repo": "ibc-go", + "rev": "c0acd5bd1778f2b7ecdf593006f56bd3e273bd49", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v5.1.0", + "repo": "ibc-go", + "type": "github" + } + }, + "ibc-go-v6-src": { + "flake": false, + "locked": { + "lastModified": 1671525236, + "narHash": "sha256-V8kUNwgNfx1tZJazlnaTF6wBb7ztueh1KrAGgiP8hCM=", + "owner": "cosmos", + "repo": "ibc-go", + "rev": "d34cef7e075dda1a24a0a3e9b6d3eff406cc606c", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v6.1.0", + "repo": "ibc-go", + "type": "github" + } + }, + "ibc-go-v7-src": { + "flake": false, + "locked": { + "lastModified": 1693509694, + "narHash": "sha256-umh/ckDALt0ugXwN8glcaCkGfAQvXY7S3Jd95Do2XeA=", + "owner": "cosmos", + "repo": "ibc-go", + "rev": "c75650a1a037a9fecba5a9005df380f707520ff7", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v7.3.0", + "repo": "ibc-go", + "type": "github" + } + }, + "ibc-go-v8-channel-upgrade-src": { + "flake": false, + "locked": { + "lastModified": 1695726576, + "narHash": "sha256-mM6h1KAi8lQUrJakxI6f8WI+vpmBhCnAysk3hTZBI7M=", + "owner": "cosmos", + "repo": "ibc-go", + "rev": "63c30108f0ecf954108cf51f50f3d36ec58c7e51", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "04-channel-upgrades-alpha.0", + "repo": "ibc-go", + "type": "github" + } + }, + "ibc-go-v8-src": { + "flake": false, + "locked": { + "lastModified": 1699602904, + "narHash": "sha256-BcP3y874QviVsV+04p9CioolyvmWH82ORbb5EB2GyRI=", + "owner": "cosmos", + "repo": "ibc-go", + "rev": "2551dea41cd3c512845007ca895c8402afa9b79f", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v8.0.0", + "repo": "ibc-go", + "type": "github" + } + }, + "ibc-rs-src": { + "flake": false, + "locked": { + "lastModified": 1661171856, + "narHash": "sha256-M9KsPQdvyTArDe3sTi29+gfs69KHtpoNYLgI7IHYo9U=", + "owner": "informalsystems", + "repo": "ibc-rs", + "rev": "ed4dd8c8b4ebd695730de2a1c69f3011cb179352", + "type": "github" + }, + "original": { + "owner": "informalsystems", + "ref": "v1.0.0", + "repo": "ibc-rs", + "type": "github" + } + }, + "ica-src": { + "flake": false, + "locked": { + "lastModified": 1695202199, + "narHash": "sha256-8RwZSnqqZzVjQsSMTckNhmTy3VYyubVmgE/hU6ntq9M=", + "owner": "cosmos", + "repo": "interchain-accounts-demo", + "rev": "9d9ec3f4f7e37e9d2a1c7f4a199e7d18c17e14db", + "type": "github" + }, + "original": { + "owner": "cosmos", + "repo": "interchain-accounts-demo", + "type": "github" + } + }, + "ignite-cli-src": { + "flake": false, + "locked": { + "lastModified": 1662991379, + "narHash": "sha256-sVgIjecswxD8OBXRXoVk2BNsTXzUcYAb6QZk0rVrQqo=", + "owner": "ignite", + "repo": "cli", + "rev": "21c6430cfcc17c69885524990c448d4a3f56461c", + "type": "github" + }, + "original": { + "owner": "ignite", + "ref": "v0.24.0", + "repo": "cli", + "type": "github" + } + }, + "interchain-security-src": { + "flake": false, + "locked": { + "lastModified": 1700577019, + "narHash": "sha256-adBzn51PKoRsCL9gIzC5Tcqmu7u3GjxTcDj2jpZ/da8=", + "owner": "cosmos", + "repo": "interchain-security", + "rev": "03aada4af3243dbf739a12adfacc7b37232df694", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "feat/ics-misbehaviour-handling", + "repo": "interchain-security", + "type": "github" + } + }, + "iris-src": { + "flake": false, + "locked": { + "lastModified": 1618986686, + "narHash": "sha256-1nPJOuYeGjzBYFCS0IiC5j9TJd5KVa9IL0kROks328E=", + "owner": "irisnet", + "repo": "irishub", + "rev": "53e156b2ee7eeb0b9d5b263066d0d3c88a1af736", + "type": "github" + }, + "original": { + "owner": "irisnet", + "ref": "v1.1.1", + "repo": "irishub", + "type": "github" + } + }, + "ixo-src": { + "flake": false, + "locked": { + "lastModified": 1645476442, + "narHash": "sha256-Ewp9UyoH6z7YGrcXVpYJveRvDq02c1mNZj2hzlOoW8s=", + "owner": "ixofoundation", + "repo": "ixo-blockchain", + "rev": "2bef5d79205057be71677837dc1174be848e13e9", + "type": "github" + }, + "original": { + "owner": "ixofoundation", + "ref": "v0.18.0-rc1", + "repo": "ixo-blockchain", + "type": "github" + } + }, + "juno-src": { + "flake": false, + "locked": { + "lastModified": 1697166503, + "narHash": "sha256-z9TOeDyUnn1T8Z662XqQJ9ydVIKKB54YISt7ms4xvos=", + "owner": "CosmosContracts", + "repo": "juno", + "rev": "48507ed9b83511089cbf1fdc5bae54cae4a7f4b2", + "type": "github" + }, + "original": { + "owner": "CosmosContracts", + "ref": "v17.1.1", + "repo": "juno", + "type": "github" + } + }, + "migaloo-src": { + "flake": false, + "locked": { + "lastModified": 1699273936, + "narHash": "sha256-O+vGWFnV3+bvXinxl1QjVyDnQskp5H1VnlL+TaMfiSs=", + "owner": "White-Whale-Defi-Platform", + "repo": "migaloo-chain", + "rev": "de98de2dd96917ae1ab79161d573fc0b4ee1facf", + "type": "github" + }, + "original": { + "owner": "White-Whale-Defi-Platform", + "ref": "v3.0.2", + "repo": "migaloo-chain", + "type": "github" + } + }, + "namada-src": { + "flake": false, + "locked": { + "lastModified": 1702488720, + "narHash": "sha256-WyIVffqszY3rz3ClQJlpDaexLGQk8pVK+Y3k/D9Lvxg=", + "owner": "anoma", + "repo": "namada", + "rev": "468d3d3bcadd2bd11760855d2bbfcc0b4ce27e14", + "type": "github" + }, + "original": { + "owner": "anoma", + "ref": "v0.28.1", + "repo": "namada", + "type": "github" + } + }, + "neutron-src": { + "flake": false, + "locked": { + "lastModified": 1701174344, + "narHash": "sha256-NuoOlrciBeL2f/A7wlQBqYlYJhSYucXRhLgxdasfyhI=", + "owner": "neutron-org", + "repo": "neutron", + "rev": "e605ed3db4381994ee8185ba4a0ff0877d34e67f", + "type": "github" + }, + "original": { + "owner": "neutron-org", + "ref": "v2.0.0", + "repo": "neutron", + "type": "github" + } + }, + "nix-std": { + "locked": { + "lastModified": 1701658249, + "narHash": "sha256-KIt1TUuBvldhaVRta010MI5FeQlB8WadjqljybjesN0=", + "owner": "chessai", + "repo": "nix-std", + "rev": "715db541ffff4194620e48d210b76f73a74b5b5d", + "type": "github" + }, + "original": { + "owner": "chessai", + "repo": "nix-std", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1702272962, + "narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1701253981, + "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib_2": { + "locked": { + "dir": "lib", + "lastModified": 1701253981, + "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1681358109, + "narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "96ba1c52e54e74c3197f4d43026b3f3d92e83ff9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1674990008, + "narHash": "sha256-4zOyp+hFW2Y7imxIpZqZGT8CEqKmDjwgfD6BzRUE0mQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d2bbcbe6c626d339b25a4995711f07625b508214", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1703438236, + "narHash": "sha256-aqVBq1u09yFhL7bj1/xyUeJjzr92fXVvQSSEx6AdB1M=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5f64a12a728902226210bf01d25ec6cbb9d9265b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "osmosis-src": { + "flake": false, + "locked": { + "lastModified": 1702398856, + "narHash": "sha256-4uLO7izIZ8JvKTfUXbYkxQFpIjwMEcO81WvhklrzI9E=", + "owner": "osmosis-labs", + "repo": "osmosis", + "rev": "b0aee0006ce55d0851773084bd7880db7e32ad70", + "type": "github" + }, + "original": { + "owner": "osmosis-labs", + "ref": "v21.0.0", + "repo": "osmosis", + "type": "github" + } + }, + "provenance-src": { + "flake": false, + "locked": { + "lastModified": 1699901286, + "narHash": "sha256-dTX3kg2QUsC9SwsaommP4IFgIdQgWZrGQNtp/B+fzys=", + "owner": "provenance-io", + "repo": "provenance", + "rev": "91b0813de2f93d03cefe8efb226dc32f02690840", + "type": "github" + }, + "original": { + "owner": "provenance-io", + "ref": "v1.17.0", + "repo": "provenance", + "type": "github" + } + }, + "regen-src": { + "flake": false, + "locked": { + "lastModified": 1645832054, + "narHash": "sha256-lDb0/Bw4hAX71jsCQJUju1mKYNacWEVezx6+KdIdu6Q=", + "owner": "regen-network", + "repo": "regen-ledger", + "rev": "5fb6268ed18a488ab88fb3bfa4b84e10892a7562", + "type": "github" + }, + "original": { + "owner": "regen-network", + "ref": "v3.0.0", + "repo": "regen-ledger", + "type": "github" + } + }, + "relayer-src": { + "flake": false, + "locked": { + "lastModified": 1635197290, + "narHash": "sha256-xD+xZG4Gb6557y/jkXTGdbt8qJ6izMgC4H3uo2/j5vU=", + "owner": "cosmos", + "repo": "relayer", + "rev": "7797aa103af68faa4269af586fe6df1d30e91d4a", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "v1.0.0", + "repo": "relayer", + "type": "github" + } + }, + "root": { + "inputs": { + "cosmos": "cosmos", + "flake-parts": "flake-parts_2", + "gomod2nix": "gomod2nix_2", + "nixpkgs": "nixpkgs_4" + } + }, + "rust-overlay": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1702347444, + "narHash": "sha256-ueDw7aQf4Xyk69XnDD0YNWDlFdlOgJGPeWFa7uu/cfw=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "bc13176f27cf3be724d18924b4f6aa47686ca2e3", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "sbt-derivation": { + "inputs": { + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1698464090, + "narHash": "sha256-Pnej7WZIPomYWg8f/CZ65sfW85IfIUjYhphMMg7/LT0=", + "owner": "zaninime", + "repo": "sbt-derivation", + "rev": "6762cf2c31de50efd9ff905cbcc87239995a4ef9", + "type": "github" + }, + "original": { + "owner": "zaninime", + "repo": "sbt-derivation", + "type": "github" + } + }, + "sconfig-src": { + "flake": false, + "locked": { + "lastModified": 1679585941, + "narHash": "sha256-ywh9IcqMWbRHqJkGJezcDCvfbBYNJH7ualKvPJQRcHA=", + "owner": "freshautomations", + "repo": "sconfig", + "rev": "41450b55f3b37b4b7a0fdf4a69c707619dbeb47c", + "type": "github" + }, + "original": { + "owner": "freshautomations", + "repo": "sconfig", + "type": "github" + } + }, + "sentinel-src": { + "flake": false, + "locked": { + "lastModified": 1647195309, + "narHash": "sha256-+ZobsjLNxVL3+zi6OEFQhff6Gbd9kng8B0haqcOoiP0=", + "owner": "sentinel-official", + "repo": "hub", + "rev": "7001dc8bc4517efa33cfcc83e8b127528b5bdf2e", + "type": "github" + }, + "original": { + "owner": "sentinel-official", + "ref": "v0.9.0-rc0", + "repo": "hub", + "type": "github" + } + }, + "sifchain-src": { + "flake": false, + "locked": { + "lastModified": 1648486445, + "narHash": "sha256-n5fmWtdrc0Rhs6Uo+zjcSXmyEFVIsA5L9dlrbRXGDmU=", + "owner": "Sifchain", + "repo": "sifnode", + "rev": "269cfadf6a4c08879247c2b8373323ae7239a425", + "type": "github" + }, + "original": { + "owner": "Sifchain", + "ref": "v0.12.1", + "repo": "sifnode", + "type": "github" + } + }, + "stargaze-src": { + "flake": false, + "locked": { + "lastModified": 1645539964, + "narHash": "sha256-5I5pdnBJHwNaI2Soet+zH3aH+pUbYdC9TgHBjOd1TmA=", + "owner": "public-awesome", + "repo": "stargaze", + "rev": "6ee57f18714a6d94cc6205afcd1af2ab655f8f0f", + "type": "github" + }, + "original": { + "owner": "public-awesome", + "ref": "v3.0.0", + "repo": "stargaze", + "type": "github" + } + }, + "stoml-src": { + "flake": false, + "locked": { + "lastModified": 1666796497, + "narHash": "sha256-Adjag1/Hd2wrar2/anD6jQEMDvUc2TOIG7DlEgxpTXc=", + "owner": "freshautomations", + "repo": "stoml", + "rev": "4b2cd09b5795a54fddc215f0d24e24071894b3cf", + "type": "github" + }, + "original": { + "owner": "freshautomations", + "repo": "stoml", + "type": "github" + } + }, + "stride-consumer-src": { + "flake": false, + "locked": { + "lastModified": 1689464372, + "narHash": "sha256-DByig9ISs9x9Kvakc8LFL558VKhM+UBiaESWgyVzI0w=", + "owner": "Stride-Labs", + "repo": "stride", + "rev": "bbf0bb7f52878f3205c76bb1e96662fe7bd7af8d", + "type": "github" + }, + "original": { + "owner": "Stride-Labs", + "ref": "v12.1.0", + "repo": "stride", + "type": "github" + } + }, + "stride-src": { + "flake": false, + "locked": { + "lastModified": 1679819302, + "narHash": "sha256-fdjnFHPBZNnhDyVoMuPfqNb6YUYRdcMO73FlZHjIuzA=", + "owner": "Stride-Labs", + "repo": "stride", + "rev": "3c69e7644859981b1fd9313eb1f0c5e5886e4a0d", + "type": "github" + }, + "original": { + "owner": "Stride-Labs", + "ref": "v8.0.0", + "repo": "stride", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "umee-src": { + "flake": false, + "locked": { + "lastModified": 1649261156, + "narHash": "sha256-hydRL/88fHCW/k7z7GoqAwvynZuvLEDLyA6A9Cm+6UY=", + "owner": "umee-network", + "repo": "umee", + "rev": "42f57545251ce5337dcc5fe4309520ead89183b9", + "type": "github" + }, + "original": { + "owner": "umee-network", + "ref": "v2.0.0", + "repo": "umee", + "type": "github" + } + }, + "wasmd-src": { + "flake": false, + "locked": { + "lastModified": 1669987561, + "narHash": "sha256-F0p555FEeA405tuLn82yUEbRZpJLs85GrUKvSrjTdjk=", + "owner": "CosmWasm", + "repo": "wasmd", + "rev": "a347ace2ff41539fe06c68168bc6f28d6ca9fa52", + "type": "github" + }, + "original": { + "owner": "CosmWasm", + "ref": "v0.30.0", + "repo": "wasmd", + "type": "github" + } + }, + "wasmd_next-src": { + "flake": false, + "locked": { + "lastModified": 1682094944, + "narHash": "sha256-b+6XhBdKyQlrzsYxVRrDf4vHpv8GAJkGwHVfJ9sdf3U=", + "owner": "CosmWasm", + "repo": "wasmd", + "rev": "c2bb27d289f7f72f1471a4b33cb08fdfc8d66f63", + "type": "github" + }, + "original": { + "owner": "CosmWasm", + "ref": "v0.40.0-rc.1", + "repo": "wasmd", + "type": "github" + } + }, + "wasmvm_1-src": { + "flake": false, + "locked": { + "lastModified": 1652698028, + "narHash": "sha256-4m64mPwFLz7aZEKVxM2lJQtX98BkhdKTZb3evpDOk/4=", + "owner": "CosmWasm", + "repo": "wasmvm", + "rev": "bc49a2f4842d023c0038798f343b56f3f0530646", + "type": "github" + }, + "original": { + "owner": "CosmWasm", + "ref": "v1.0.0", + "repo": "wasmvm", + "type": "github" + } + }, + "wasmvm_1_1_1-src": { + "flake": false, + "locked": { + "lastModified": 1663600745, + "narHash": "sha256-9K/G7Wu/TfW4Z+lseEutXbdtr+A40nbVejBphegF5z4=", + "owner": "CosmWasm", + "repo": "wasmvm", + "rev": "3d791055751e428f93f54f64c2d20d20da2ff2a9", + "type": "github" + }, + "original": { + "owner": "CosmWasm", + "ref": "v1.1.1", + "repo": "wasmvm", + "type": "github" + } + }, + "wasmvm_1_1_2-src": { + "flake": false, + "locked": { + "lastModified": 1681833975, + "narHash": "sha256-EbzMNkZUO94jEdX0WgAdy5qfhlCG3lpHpVHyT2FcSDw=", + "owner": "CosmWasm", + "repo": "wasmvm", + "rev": "4f84395b1c623483a3c7936c990c2f7e5dad70d8", + "type": "github" + }, + "original": { + "owner": "CosmWasm", + "ref": "v1.1.2", + "repo": "wasmvm", + "type": "github" + } + }, + "wasmvm_1_2_3-src": { + "flake": false, + "locked": { + "lastModified": 1681831436, + "narHash": "sha256-GscUMJ0Tkg77S9IYA9komyKKoa1AyVXSSaU8hw3ZNwk=", + "owner": "CosmWasm", + "repo": "wasmvm", + "rev": "61e41ae2a80081224f469614a267b0ba2a2d305f", + "type": "github" + }, + "original": { + "owner": "CosmWasm", + "ref": "v1.2.3", + "repo": "wasmvm", + "type": "github" + } + }, + "wasmvm_1_2_4-src": { + "flake": false, + "locked": { + "lastModified": 1685977963, + "narHash": "sha256-/GOvkKLQwsPms7h7yEZYLwbZn9Lzk5qQnBXXoZ/R6JM=", + "owner": "CosmWasm", + "repo": "wasmvm", + "rev": "ba491fe9a663e0b45728dd5f0c43f6a93c97f5fe", + "type": "github" + }, + "original": { + "owner": "CosmWasm", + "ref": "v1.2.4", + "repo": "wasmvm", + "type": "github" + } + }, + "wasmvm_1_3_0-src": { + "flake": false, + "locked": { + "lastModified": 1689589428, + "narHash": "sha256-rsTYvbkYpDkUE4IvILdSL3hXMgAWxz5ltGotJB2t1e4=", + "owner": "CosmWasm", + "repo": "wasmvm", + "rev": "71a9c0dc0ecf9623148e82facb3564fbbf0a896f", + "type": "github" + }, + "original": { + "owner": "CosmWasm", + "ref": "v1.3.0", + "repo": "wasmvm", + "type": "github" + } + }, + "wasmvm_1_5_0-src": { + "flake": false, + "locked": { + "lastModified": 1698746477, + "narHash": "sha256-l0cNF0YjviEl/JLJ4VdvDtIGuAYyFfncVo83ROfQFD8=", + "owner": "CosmWasm", + "repo": "wasmvm", + "rev": "2041b184c146f278157d195361bc6cc6b56cc9d4", + "type": "github" + }, + "original": { + "owner": "CosmWasm", + "ref": "v1.5.0", + "repo": "wasmvm", + "type": "github" + } + }, + "wasmvm_1_beta7-src": { + "flake": false, + "locked": { + "lastModified": 1646675433, + "narHash": "sha256-tt9aAPLxtIRsG1VFM1YAIHSotuBl170EiBcHSWTtARI=", + "owner": "CosmWasm", + "repo": "wasmvm", + "rev": "f7015565a59255cd09ebfcbf9345f3c87666fedd", + "type": "github" + }, + "original": { + "owner": "CosmWasm", + "ref": "v1.0.0-beta7", + "repo": "wasmvm", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} \ No newline at end of file diff --git a/flake.nix b/flake.nix new file mode 100644 index 000000000..fd77c004f --- /dev/null +++ b/flake.nix @@ -0,0 +1,88 @@ +{ + description = "composable-cosmos"; + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + gomod2nix = { + url = github:nix-community/gomod2nix; + inputs.nixpkgs.follows = "nixpkgs"; + }; + cosmos = { + url = "github:informalsystems/cosmos.nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + outputs = inputs @ { + flake-parts, + gomod2nix, + cosmos, + self, + ... + }: + flake-parts.lib.mkFlake {inherit inputs;} { + imports = [ + ]; + systems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"]; + perSystem = { + config, + self', + inputs', + pkgs, + system, + ... + }: let + inherit (inputs.gomod2nix.legacyPackages.${system}) buildGoApplication mkGoEvn gomod2nix; + libwasmvm = cosmos.packages.${system}.libwasmvm_1_5_0; + cosmwasm-check = cosmos.packages.${system}.cosmwasm-check; + cosmosLib = cosmos.lib {inherit pkgs cosmwasm-check;}; + in { + formatter = pkgs.alejandra; + devShells = { + default = pkgs.mkShell { + buildInputs = with pkgs; [ + bingo + gci + gnumake + go + delve + golangci-lint + gomod2nix + gotools + libwasmvm + ]; + }; + }; + + packages = rec { + centaurid = buildGoApplication rec { + pname = "centaurid"; + version = "v7.0.0"; + src = ./.; + subPackages = ["cmd/${pname}"]; + modules = ./gomod2nix.toml; + preFixup = '' + ${cosmosLib.wasmdPreFixupPhase libwasmvm pname} + ''; + checkPhase = "true"; + buildInputs = [libwasmvm]; + ldflags = '' + -X github.com/cosmos/cosmos-sdk/version.Name=centauri -X github.com/cosmos/cosmos-sdk/version.AppName=${pname} -X github.com/cosmos/cosmos-sdk/version.Version=${version} -X github.com/cosmos/cosmos-sdk/version.Commit=${self.rev or self.dirtyRev or "dirty"} -X github.com/cometbft/cometbft/version.TMCoreSemVer=v0.37.2 + ''; + }; + default = ci; + ci = pkgs.writeShellApplication { + name = "ci"; + text = '' + go get mvdan.cc/gofumpt + go get github.com/client9/misspell/cmd/misspell + go get golang.org/x/tools/cmd/goimports + make lint + nix fmt + go mod tidy + golangci-lint run --fix + gomod2nix + ''; + }; + }; + }; + }; +} diff --git a/go.mod b/go.mod index d402949a6..69929be76 100644 --- a/go.mod +++ b/go.mod @@ -1,80 +1,97 @@ module github.com/notional-labs/composable/v6 -go 1.20 +go 1.22 require ( - cosmossdk.io/math v1.1.2 - cosmossdk.io/simapp v0.0.0-20230608160436-666c345ad23d - github.com/CosmWasm/wasmd v0.40.1 + cosmossdk.io/math v1.3.0 + cosmossdk.io/x/tx v0.13.1 + github.com/CosmWasm/wasmd v0.50.0 github.com/client9/misspell v0.3.4 - github.com/cometbft/cometbft v0.37.2 - github.com/cometbft/cometbft-db v0.8.0 - github.com/cosmos/cosmos-proto v1.0.0-beta.2 - github.com/cosmos/cosmos-sdk v0.47.5 - github.com/cosmos/gogoproto v1.4.10 - github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 v7.0.0 - github.com/cosmos/ibc-go/v7 v7.3.1 - github.com/gogo/protobuf v1.3.2 - github.com/golang/protobuf v1.5.3 - github.com/golangci/golangci-lint v1.50.1 - github.com/gorilla/mux v1.8.0 + github.com/cometbft/cometbft v0.38.6 + github.com/cosmos/cosmos-proto v1.0.0-beta.4 + github.com/cosmos/cosmos-sdk v0.50.5 + github.com/cosmos/gogoproto v1.4.12 + github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 v8.0.2 + github.com/cosmos/ibc-apps/modules/async-icq/v8 v8.0.0 + github.com/cosmos/ibc-go/modules/capability v1.0.0 + github.com/cosmos/ibc-go/modules/light-clients/08-wasm v0.1.1-0.20231213092650-57fcdb9a9a9d + github.com/cosmos/ibc-go/v8 v8.2.1 + github.com/gogo/protobuf v1.3.3 + github.com/golang/protobuf v1.5.4 + github.com/golangci/golangci-lint v1.52.0 + github.com/gorilla/mux v1.8.1 github.com/grpc-ecosystem/grpc-gateway v1.16.0 - github.com/spf13/cast v1.5.1 - github.com/spf13/cobra v1.7.0 - github.com/strangelove-ventures/async-icq/v7 v7.0.0-20230413165143-a3b65ccdc897 - github.com/stretchr/testify v1.8.4 - github.com/terra-money/alliance v0.1.1-0.20230419080242-b29b0ec11186 - golang.org/x/tools v0.6.0 - google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 - google.golang.org/grpc v1.56.2 - gotest.tools/v3 v3.5.0 + github.com/spf13/cast v1.6.0 + github.com/spf13/cobra v1.8.0 + github.com/stretchr/testify v1.9.0 + golang.org/x/tools v0.18.0 + google.golang.org/genproto/googleapis/api v0.0.0-20240221002015-b0ce06bbee7c + google.golang.org/grpc v1.62.1 + gotest.tools/v3 v3.5.1 mvdan.cc/gofumpt v0.4.0 ) +require github.com/cometbft/cometbft-db v0.11.0 // indirect + require ( - 4d63.com/gochecknoglobals v0.1.0 // indirect - github.com/Abirdcfly/dupword v0.0.7 // indirect - github.com/Antonboom/errname v0.1.7 // indirect - github.com/Antonboom/nilnil v0.1.1 // indirect + 4d63.com/gocheckcompilerdirectives v1.2.1 // indirect + 4d63.com/gochecknoglobals v0.2.1 // indirect + cosmossdk.io/client/v2 v2.0.0-beta.1 + cosmossdk.io/collections v0.4.0 // indirect + cosmossdk.io/x/circuit v0.1.0 + github.com/Abirdcfly/dupword v0.0.11 // indirect + github.com/Antonboom/errname v0.1.9 // indirect + github.com/Antonboom/nilnil v0.1.3 // indirect github.com/BurntSushi/toml v1.2.1 // indirect + github.com/DataDog/datadog-go v4.8.3+incompatible // indirect + github.com/DataDog/zstd v1.5.5 // indirect github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0 // indirect github.com/Masterminds/semver v1.5.0 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect github.com/OpenPeeDeeP/depguard v1.1.1 // indirect github.com/alexkohler/prealloc v1.0.0 // indirect github.com/alingse/asasalint v0.0.11 // indirect - github.com/ashanbrown/forbidigo v1.3.0 // indirect + github.com/ashanbrown/forbidigo v1.5.1 // indirect github.com/ashanbrown/makezero v1.1.1 // indirect + github.com/bits-and-blooms/bitset v1.10.0 // indirect github.com/bkielbasa/cyclop v1.2.0 // indirect github.com/blizzy78/varnamelen v0.8.0 // indirect - github.com/bombsimon/wsl/v3 v3.3.0 // indirect - github.com/breml/bidichk v0.2.3 // indirect - github.com/breml/errchkjson v0.3.0 // indirect + github.com/bombsimon/wsl/v3 v3.4.0 // indirect + github.com/breml/bidichk v0.2.4 // indirect + github.com/breml/errchkjson v0.3.1 // indirect github.com/butuzov/ireturn v0.1.1 // indirect - github.com/charithe/durationcheck v0.0.9 // indirect - github.com/chavacava/garif v0.0.0-20220630083739-93517212f375 // indirect - github.com/cockroachdb/errors v1.10.0 // indirect + github.com/charithe/durationcheck v0.0.10 // indirect + github.com/chavacava/garif v0.0.0-20230227094218-b8c73b2037b8 // indirect + github.com/cockroachdb/errors v1.11.1 // indirect github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/pebble v1.1.0 // indirect github.com/cockroachdb/redact v1.1.5 // indirect + github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect + github.com/cosmos/cosmos-db v1.0.2 github.com/curioswitch/go-reassign v0.2.0 // indirect - github.com/daixiang0/gci v0.8.1 // indirect + github.com/daixiang0/gci v0.10.1 // indirect github.com/denis-tingaikin/go-header v0.4.3 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/emicklei/dot v1.6.1 // indirect github.com/esimonov/ifshort v1.0.4 // indirect github.com/ettle/strcase v0.1.1 // indirect - github.com/fatih/color v1.13.0 // indirect + github.com/fatih/color v1.16.0 // indirect github.com/fatih/structtag v1.2.0 // indirect github.com/firefart/nonamedreturns v1.0.4 // indirect github.com/fzipp/gocyclo v0.6.0 // indirect - github.com/getsentry/sentry-go v0.23.0 // indirect - github.com/go-critic/go-critic v0.6.5 // indirect - github.com/go-toolsmith/astcast v1.0.0 // indirect - github.com/go-toolsmith/astcopy v1.0.2 // indirect - github.com/go-toolsmith/astequal v1.0.3 // indirect - github.com/go-toolsmith/astfmt v1.0.0 // indirect - github.com/go-toolsmith/astp v1.0.0 // indirect - github.com/go-toolsmith/strparse v1.0.0 // indirect - github.com/go-toolsmith/typep v1.0.2 // indirect - github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b // indirect + github.com/getsentry/sentry-go v0.27.0 // indirect + github.com/go-critic/go-critic v0.7.0 // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-toolsmith/astcast v1.1.0 // indirect + github.com/go-toolsmith/astcopy v1.1.0 // indirect + github.com/go-toolsmith/astequal v1.1.0 // indirect + github.com/go-toolsmith/astfmt v1.1.0 // indirect + github.com/go-toolsmith/astp v1.1.0 // indirect + github.com/go-toolsmith/strparse v1.1.0 // indirect + github.com/go-toolsmith/typep v1.1.0 // indirect + github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/gofrs/flock v0.8.1 // indirect github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 // indirect @@ -83,75 +100,88 @@ require ( github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2 // indirect github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 // indirect github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca // indirect - github.com/golangci/misspell v0.3.5 // indirect + github.com/golangci/misspell v0.4.0 // indirect github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 // indirect github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 // indirect - github.com/google/s2a-go v0.1.4 // indirect - github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28 // indirect github.com/gostaticanalysis/analysisutil v0.7.1 // indirect github.com/gostaticanalysis/comment v1.4.2 // indirect github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect github.com/gostaticanalysis/nilerr v0.1.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-hclog v1.6.2 // indirect + github.com/hashicorp/go-metrics v0.5.3 github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/hashicorp/go-plugin v1.6.0 // indirect + github.com/hashicorp/yamux v0.1.1 // indirect github.com/hexops/gotextdiff v1.0.3 // indirect + github.com/iancoleman/strcase v0.3.0 // indirect github.com/jgautheron/goconst v1.5.1 // indirect github.com/jingyugao/rowserrcheck v1.1.1 // indirect github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect github.com/julz/importas v0.1.0 // indirect - github.com/kisielk/errcheck v1.6.2 // indirect + github.com/junk1tm/musttag v0.5.0 // indirect + github.com/kisielk/errcheck v1.6.3 // indirect github.com/kisielk/gotool v1.0.0 // indirect - github.com/kkHAIKE/contextcheck v1.1.3 // indirect + github.com/kkHAIKE/contextcheck v1.1.4 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/kulti/thelper v0.6.3 // indirect github.com/kunwardeep/paralleltest v1.0.6 // indirect - github.com/kyoh86/exportloopref v0.1.8 // indirect + github.com/kyoh86/exportloopref v0.1.11 // indirect github.com/ldez/gomoddirectives v0.2.3 // indirect - github.com/ldez/tagliatelle v0.3.1 // indirect - github.com/leonklingele/grouper v1.1.0 // indirect - github.com/linxGnu/grocksdb v1.7.16 // indirect + github.com/ldez/tagliatelle v0.4.0 // indirect + github.com/leonklingele/grouper v1.1.1 // indirect + github.com/linxGnu/grocksdb v1.8.14 // indirect github.com/lufeee/execinquery v1.2.1 // indirect github.com/maratori/testableexamples v1.0.0 // indirect - github.com/maratori/testpackage v1.1.0 // indirect - github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 // indirect - github.com/mattn/go-runewidth v0.0.9 // indirect + github.com/maratori/testpackage v1.1.1 // indirect + github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 // indirect + github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mbilski/exhaustivestruct v1.2.0 // indirect - github.com/mgechev/revive v1.2.4 // indirect - github.com/moricho/tparallel v0.2.1 // indirect + github.com/mgechev/revive v1.3.1 // indirect + github.com/moricho/tparallel v0.3.0 // indirect github.com/nakabonne/nestif v0.3.1 // indirect github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 // indirect - github.com/nishanths/exhaustive v0.8.3 // indirect + github.com/nishanths/exhaustive v0.9.5 // indirect github.com/nishanths/predeclared v0.2.2 // indirect + github.com/nunnatsa/ginkgolinter v0.9.0 // indirect + github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect + github.com/oklog/run v1.1.0 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect - github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d // indirect - github.com/polyfloyd/go-errorlint v1.0.5 // indirect - github.com/quasilyte/go-ruleguard v0.3.18 // indirect - github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f // indirect - github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 // indirect + github.com/polyfloyd/go-errorlint v1.4.5 // indirect + github.com/quasilyte/go-ruleguard v0.4.0 // indirect + github.com/quasilyte/gogrep v0.5.0 // indirect + github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect - github.com/rogpeppe/go-internal v1.11.0 // indirect - github.com/ryancurrah/gomodguard v1.2.4 // indirect - github.com/ryanrolds/sqlclosecheck v0.3.0 // indirect - github.com/sanposhiho/wastedassign/v2 v2.0.6 // indirect + github.com/rivo/uniseg v0.2.0 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/ryancurrah/gomodguard v1.3.0 // indirect + github.com/ryanrolds/sqlclosecheck v0.4.0 // indirect + github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect + github.com/sanposhiho/wastedassign/v2 v2.0.7 // indirect github.com/sashamelentyev/interfacebloat v1.1.0 // indirect - github.com/sashamelentyev/usestdlibvars v1.20.0 // indirect - github.com/securego/gosec/v2 v2.13.1 // indirect + github.com/sashamelentyev/usestdlibvars v1.23.0 // indirect + github.com/securego/gosec/v2 v2.15.0 // indirect github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/sivchari/containedctx v1.0.2 // indirect github.com/sivchari/nosnakecase v1.7.0 // indirect - github.com/sivchari/tenv v1.7.0 // indirect - github.com/sonatard/noctx v0.0.1 // indirect - github.com/sourcegraph/go-diff v0.6.1 // indirect + github.com/sivchari/tenv v1.7.1 // indirect + github.com/sonatard/noctx v0.0.2 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/sourcegraph/go-diff v0.7.0 // indirect github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect - github.com/stretchr/objx v0.5.0 // indirect - github.com/tdakkota/asciicheck v0.1.1 // indirect + github.com/stretchr/objx v0.5.2 // indirect + github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect + github.com/tdakkota/asciicheck v0.2.0 // indirect github.com/tetafro/godot v1.4.11 // indirect - github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 // indirect - github.com/timonwong/loggercheck v0.9.3 // indirect - github.com/tomarrell/wrapcheck/v2 v2.7.0 // indirect + github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e // indirect + github.com/timonwong/loggercheck v0.9.4 // indirect + github.com/tomarrell/wrapcheck/v2 v2.8.1 // indirect github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect github.com/ultraware/funlen v0.0.3 // indirect github.com/ultraware/whitespace v0.0.5 // indirect @@ -159,187 +189,187 @@ require ( github.com/yagipy/maintidx v1.0.0 // indirect github.com/yeya24/promlinter v0.2.0 // indirect gitlab.com/bosi/decorder v0.2.3 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect + go.opentelemetry.io/otel v1.22.0 // indirect + go.opentelemetry.io/otel/metric v1.22.0 // indirect + go.opentelemetry.io/otel/trace v1.22.0 // indirect go.uber.org/atomic v1.10.0 // indirect - go.uber.org/multierr v1.8.0 // indirect - go.uber.org/zap v1.23.0 // indirect - golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91 // indirect - golang.org/x/mod v0.11.0 // indirect - golang.org/x/sync v0.2.0 // indirect - google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - honnef.co/go/tools v0.3.3 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.24.0 // indirect + golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833 // indirect + golang.org/x/mod v0.15.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/time v0.5.0 // indirect + google.golang.org/genproto v0.0.0-20240221002015-b0ce06bbee7c // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c // indirect + honnef.co/go/tools v0.4.3 // indirect mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed // indirect mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b // indirect - mvdan.cc/unparam v0.0.0-20220706161116-678bad134442 // indirect + mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d // indirect ) require ( - cloud.google.com/go v0.110.4 // indirect - cloud.google.com/go/compute v1.20.1 // indirect + cloud.google.com/go v0.112.0 // indirect + cloud.google.com/go/compute v1.24.0 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v1.1.0 // indirect - cloud.google.com/go/storage v1.30.1 // indirect - cosmossdk.io/log v1.2.1 // indirect - github.com/CosmWasm/wasmvm v1.2.4 // indirect; indirect // safe because we're using permissioned cosmwasm - github.com/aws/aws-sdk-go v1.44.203 // indirect + cloud.google.com/go/iam v1.1.6 // indirect + cloud.google.com/go/storage v1.36.0 // indirect + cosmossdk.io/log v1.3.1 + github.com/CosmWasm/wasmvm v1.5.2 // indirect // safe because we're using permissioned cosmwasm + github.com/aws/aws-sdk-go v1.45.25 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect - github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/docker/distribution v2.8.2+incompatible // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.3.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.11.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-getter v1.7.1 // indirect + github.com/hashicorp/go-getter v1.7.3 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/iancoleman/orderedmap v0.2.0 // indirect + github.com/iancoleman/orderedmap v0.3.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/rs/zerolog v1.30.0 // indirect + github.com/rs/zerolog v1.32.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/ulikunitz/xz v0.5.11 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.126.0 // indirect - google.golang.org/appengine v1.6.7 // indirect + golang.org/x/oauth2 v0.18.0 // indirect + google.golang.org/api v0.162.0 // indirect + google.golang.org/appengine v1.6.8 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) require ( - cosmossdk.io/api v0.3.1 - cosmossdk.io/core v0.5.1 // indirect + cosmossdk.io/api v0.7.3 // indirect + cosmossdk.io/core v0.12.1-0.20231114100755-569e3ff6a0d7 cosmossdk.io/depinject v1.0.0-alpha.4 // indirect - cosmossdk.io/errors v1.0.0 - cosmossdk.io/tools/rosetta v0.2.1 - filippo.io/edwards25519 v1.0.0 // indirect - github.com/99designs/keyring v1.2.1 // indirect - github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect - github.com/armon/go-metrics v0.4.1 // indirect + cosmossdk.io/errors v1.0.1 + cosmossdk.io/store v1.1.0 + cosmossdk.io/x/evidence v0.1.0 + cosmossdk.io/x/feegrant v0.1.0 + cosmossdk.io/x/upgrade v0.1.1 + filippo.io/edwards25519 v1.1.0 // indirect + github.com/99designs/keyring v1.2.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect - github.com/cenkalti/backoff/v4 v4.1.3 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/confio/ics23/go v0.9.0 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v0.20.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.12.2 // indirect - github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect - github.com/creachadair/taskgroup v0.4.2 // indirect - github.com/danieljoos/wincred v1.1.2 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect + github.com/cosmos/iavl v1.1.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect + github.com/danieljoos/wincred v1.2.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/dvsekhvalnov/jose2go v1.5.0 // indirect - github.com/felixge/httpsnoop v1.0.2 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/go-kit/kit v0.12.0 // indirect + github.com/dvsekhvalnov/jose2go v1.6.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/go-kit/kit v0.13.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.2.0 // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/orderedcode v0.0.1 // indirect - github.com/gorilla/handlers v1.5.1 // indirect - github.com/gorilla/websocket v1.5.0 // indirect - github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect + github.com/gorilla/handlers v1.5.2 // indirect + github.com/gorilla/websocket v1.5.1 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect - github.com/gtank/merlin v0.1.1 // indirect - github.com/gtank/ristretto255 v0.1.2 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect - github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect + github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hdevalence/ed25519consensus v0.1.0 // indirect + github.com/hdevalence/ed25519consensus v0.2.0 // indirect github.com/huandu/skiplist v1.2.0 // indirect github.com/improbable-eng/grpc-web v0.15.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d // indirect - github.com/klauspost/compress v1.16.3 // indirect + github.com/klauspost/compress v1.17.7 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/magiconair/properties v1.8.7 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mtibben/percent v0.2.1 // indirect - github.com/pelletier/go-toml/v2 v2.0.8 // indirect - github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect + github.com/pelletier/go-toml/v2 v2.2.0 // indirect + github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.15.0 // indirect - github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.9.0 // indirect - github.com/rakyll/statik v0.1.7 + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.19.0 // indirect + github.com/prometheus/client_model v0.6.0 // indirect + github.com/prometheus/common v0.50.0 // indirect + github.com/prometheus/procfs v0.13.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - github.com/rs/cors v1.8.3 // indirect + github.com/rs/cors v1.10.1 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect - github.com/spf13/afero v1.9.5 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect - github.com/spf13/viper v1.16.0 - github.com/subosito/gotenv v1.4.2 // indirect + github.com/spf13/afero v1.11.0 // indirect + github.com/spf13/viper v1.18.2 // indirect + github.com/subosito/gotenv v1.6.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/tidwall/btree v1.6.0 // indirect + github.com/tidwall/btree v1.7.0 // indirect github.com/zondax/hid v0.9.2 // indirect github.com/zondax/ledger-go v0.14.3 // indirect - go.etcd.io/bbolt v1.3.7 // indirect - golang.org/x/crypto v0.11.0 // indirect - golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect - golang.org/x/net v0.12.0 // indirect - golang.org/x/sys v0.11.0 // indirect - golang.org/x/term v0.10.0 // indirect - golang.org/x/text v0.12.0 // indirect - google.golang.org/protobuf v1.31.0 + go.etcd.io/bbolt v1.3.9 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/exp v0.0.0-20240314144324-c7f7c6466f7f // indirect + golang.org/x/net v0.22.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/term v0.18.0 // indirect + golang.org/x/text v0.14.0 // indirect + google.golang.org/protobuf v1.33.0 gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - nhooyr.io/websocket v1.8.6 // indirect - pgregory.net/rapid v0.5.5 // indirect - sigs.k8s.io/yaml v1.3.0 + nhooyr.io/websocket v1.8.10 // indirect + pgregory.net/rapid v1.1.0 // indirect + sigs.k8s.io/yaml v1.4.0 ) replace ( + cosmossdk.io/core => cosmossdk.io/core v0.11.0 + // Use the keyring specified by the cosmos-sdk github.com/99designs/keyring => github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76 + // lock wasmvm so we do not break the grandpa contract - github.com/CosmWasm/wasmvm => github.com/CosmWasm/wasmvm v1.2.6 + // TODO: check wasm vm compatibility with grandpa contract + github.com/CosmWasm/wasmvm => github.com/CosmWasm/wasmvm v1.5.2 + github.com/cosmos/cosmos-sdk => github.com/notional-labs/cosmos-sdk v0.50.5-patch-validators-trim-tag - github.com/cometbft/cometbft v0.37.2 => github.com/composablefi/cometbft v0.37.2-fixed-len-vote-time-tag + github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 => github.com/notional-labs/ibc-apps/middleware/packet-forward-middleware/v8 v8.0.0-20240508031447-347412725653 + github.com/cosmos/ibc-go/modules/light-clients/08-wasm => github.com/notional-labs/ibc-go/modules/light-clients/08-wasm v0.0.0-20240522081622-85c49c80dc29 + //github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 => github.com/notional-labs/ibc-apps/middleware/packet-forward-middleware/v8 v8.0.0-20240504082418-e4d8c9cb7044 + github.com/cosmos/ibc-go/v8 => github.com/notional-labs/ibc-go/v8 v8.0.0-alpha.1.0.20240515181700-c058e14324e8 - github.com/cosmos/cosmos-sdk v0.47.5 => github.com/rust-ninja/cosmos-sdk v0.47.5-patch-validators-trim-tag + // use cosmos-compatible protobufs + github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 - github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7 => github.com/ComposableFi/ibc-apps/middleware/packet-forward-middleware/v7 v7.0.0-20240320115741-f32994360827 - // ibc-go with wasm client - github.com/cosmos/ibc-go/v7 => github.com/ComposableFi/ibc-go/v7 v7.0.0-20240417235838-759a4130305e + github.com/prometheus/client_golang => github.com/prometheus/client_golang v1.18.0 - github.com/cosmos/ledger-cosmos-go => github.com/cosmos/ledger-cosmos-go v0.12.4 + github.com/prometheus/common => github.com/prometheus/common v0.47.0 github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 - github.com/terra-money/alliance => github.com/notional-labs/alliance v1.0.1-0.20231106184124-5cc1ff759647 - github.com/zondax/ledger-go => github.com/zondax/ledger-go v0.14.3 ) diff --git a/go.sum b/go.sum index 62ecaa2fd..87bdaa299 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ -4d63.com/gochecknoglobals v0.1.0 h1:zeZSRqj5yCg28tCkIV/z/lWbwvNm5qnKVS15PI8nhD0= -4d63.com/gochecknoglobals v0.1.0/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= +4d63.com/gocheckcompilerdirectives v1.2.1 h1:AHcMYuw56NPjq/2y615IGg2kYkBdTvOaojYCBcRE7MA= +4d63.com/gocheckcompilerdirectives v1.2.1/go.mod h1:yjDJSxmDTtIHHCqX0ufRYZDL6vQtMG7tJdKVeWwsqvs= +4d63.com/gochecknoglobals v0.2.1 h1:1eiorGsgHOFOuoOiJDy2psSrQbRdIHrlge0IJIkUgDc= +4d63.com/gochecknoglobals v0.2.1/go.mod h1:KRE8wtJB3CXCsb1xy421JfTHIIbmT3U5ruxw2Qu8fSU= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -30,28 +32,93 @@ cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+Y cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk= -cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= +cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= +cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= +cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= +cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= +cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= +cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= +cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= +cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= +cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= +cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= +cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= +cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= +cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= +cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= +cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= +cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= +cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= +cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= +cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= +cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= +cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= +cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= +cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= +cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= +cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= +cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= +cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= +cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= +cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= +cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= +cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= +cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= +cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= +cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= +cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= +cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI= +cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= +cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= +cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= +cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= +cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= +cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= +cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= +cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= +cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= +cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= +cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= +cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= +cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= +cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= +cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= +cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= +cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= +cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= +cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= +cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= +cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= +cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= +cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= +cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -59,12 +126,44 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= +cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= +cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E= +cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= +cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= +cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= +cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= +cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= +cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= +cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= +cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= +cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= +cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= +cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= +cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= +cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= +cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= +cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= +cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= +cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= +cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= +cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= +cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= +cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= +cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= +cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= +cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= +cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= +cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= +cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= +cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= +cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= @@ -72,101 +171,364 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg= +cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= +cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= +cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= +cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= +cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI= cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= +cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= +cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= +cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= +cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= +cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= +cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= +cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= +cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= +cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= +cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= +cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= +cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= +cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= +cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= +cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= +cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= +cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= +cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= +cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= +cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= +cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= +cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= +cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= +cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= +cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= +cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= +cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= +cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= +cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= +cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= +cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= +cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= +cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= +cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= +cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= +cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= +cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= +cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= +cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= +cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= +cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= +cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= +cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= +cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= +cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= +cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= +cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= +cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= +cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= +cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= +cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= +cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= +cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= +cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= +cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= +cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= +cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= +cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= +cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= +cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= +cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= +cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= +cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= +cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= +cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= +cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= +cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= +cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= +cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= +cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= +cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= +cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= +cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= +cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= +cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= +cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= +cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= +cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= +cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= +cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= +cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= +cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= +cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v1.1.0 h1:67gSqaPukx7O8WLLHMa0PNs3EBGd2eE4d+psbO/CO94= -cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk= +cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= +cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= +cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= +cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= +cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= +cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= +cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= +cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= +cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= +cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= +cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= +cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= +cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= +cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= +cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= +cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= +cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= +cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= +cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= +cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= +cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= +cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= +cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg= +cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= +cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= +cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= +cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= +cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= +cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= +cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= +cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= +cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= +cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= +cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= +cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= +cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= +cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= +cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= +cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= +cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= +cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= +cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= +cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= +cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= +cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= +cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= +cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= +cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= +cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= +cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= +cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= +cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= +cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= +cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= +cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= +cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= +cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= +cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= +cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= +cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= +cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= +cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= +cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= +cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= +cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= +cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= +cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= +cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= +cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= +cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= +cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= +cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= +cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= +cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= +cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= +cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= +cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= +cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= +cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= +cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= +cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= +cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= +cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= +cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= +cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= +cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= +cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= +cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= +cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= +cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= +cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= +cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= +cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= +cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= +cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= +cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= +cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= +cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= +cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= +cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= +cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= +cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= +cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= +cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= +cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= +cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= +cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= +cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= +cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= +cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= +cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= +cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= +cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= +cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= +cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= +cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= +cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= +cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= +cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= +cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= +cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= +cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= +cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= +cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= +cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= +cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= +cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= +cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= +cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= +cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= +cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= +cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= +cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= +cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= +cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= +cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= +cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= +cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= +cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= +cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= +cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= +cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= +cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= +cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= +cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= +cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= +cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= +cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= +cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= +cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= +cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= +cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= @@ -176,152 +538,222 @@ cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3f cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= -cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= +cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= +cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= +cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= +cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= +cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= +cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= +cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= +cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= +cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= +cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= +cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= +cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= +cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= +cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= +cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= +cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= +cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= +cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= +cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= +cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= +cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= +cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= +cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= +cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= +cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= +cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= +cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= +cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= +cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= +cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= +cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= +cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= +cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= +cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= +cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= +cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= +cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= +cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= +cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= +cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= +cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= +cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= +cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= +cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= +cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= +cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= +cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= -cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= -cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= -cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE= +cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= +cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= +cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= +cosmossdk.io/api v0.7.3 h1:V815i8YOwOAQa1rLCsSMjVG5Gnzs02JLq+l7ks8s1jk= +cosmossdk.io/api v0.7.3/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/client/v2 v2.0.0-beta.1 h1:XkHh1lhrLYIT9zKl7cIOXUXg2hdhtjTPBUfqERNA1/Q= +cosmossdk.io/client/v2 v2.0.0-beta.1/go.mod h1:JEUSu9moNZQ4kU3ir1DKD5eU4bllmAexrGWjmb9k8qU= +cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= +cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= +cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= +cosmossdk.io/core v0.11.0/go.mod h1:LaTtayWBSoacF5xNzoF8tmLhehqlA9z1SWiPuNC6X1w= cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= -cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04= -cosmossdk.io/errors v1.0.0/go.mod h1:+hJZLuhdDE0pYN8HkOrVNwrIOYvUGnn6+4fjnJs/oV0= -cosmossdk.io/log v1.2.1 h1:Xc1GgTCicniwmMiKwDxUjO4eLhPxoVdI9vtMW8Ti/uk= -cosmossdk.io/log v1.2.1/go.mod h1:GNSCc/6+DhFIj1aLn/j7Id7PaO8DzNylUZoOYBL9+I4= -cosmossdk.io/math v1.1.2 h1:ORZetZCTyWkI5GlZ6CZS28fMHi83ZYf+A2vVnHNzZBM= -cosmossdk.io/math v1.1.2/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= -cosmossdk.io/simapp v0.0.0-20230608160436-666c345ad23d h1:E/8y0oG3u9hBR8l4F9MtC0LdZIamPCUwUoLlrHrX86I= -cosmossdk.io/simapp v0.0.0-20230608160436-666c345ad23d/go.mod h1:xbjky3L3DJEylaho6gXplkrMvJ5sFgv+qNX+Nn47bzY= -cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= -cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= +cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= +cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= +cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= +cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= +cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= +cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/store v1.1.0 h1:LnKwgYMc9BInn9PhpTFEQVbL9UK475G2H911CGGnWHk= +cosmossdk.io/store v1.1.0/go.mod h1:oZfW/4Fc/zYqu3JmQcQdUJ3fqu5vnYTn3LZFFy8P8ng= +cosmossdk.io/x/circuit v0.1.0 h1:IAej8aRYeuOMritczqTlljbUVHq1E85CpBqaCTwYgXs= +cosmossdk.io/x/circuit v0.1.0/go.mod h1:YDzblVE8+E+urPYQq5kq5foRY/IzhXovSYXb4nwd39w= +cosmossdk.io/x/evidence v0.1.0 h1:J6OEyDl1rbykksdGynzPKG5R/zm6TacwW2fbLTW4nCk= +cosmossdk.io/x/evidence v0.1.0/go.mod h1:hTaiiXsoiJ3InMz1uptgF0BnGqROllAN8mwisOMMsfw= +cosmossdk.io/x/feegrant v0.1.0 h1:c7s3oAq/8/UO0EiN1H5BIjwVntujVTkYs35YPvvrdQk= +cosmossdk.io/x/feegrant v0.1.0/go.mod h1:4r+FsViJRpcZif/yhTn+E0E6OFfg4n0Lx+6cCtnZElU= +cosmossdk.io/x/nft v0.1.0 h1:VhcsFiEK33ODN27kxKLa0r/CeFd8laBfbDBwYqCyYCM= +cosmossdk.io/x/nft v0.1.0/go.mod h1:ec4j4QAO4mJZ+45jeYRnW7awLHby1JZANqe1hNZ4S3g= +cosmossdk.io/x/tx v0.13.1 h1:Mg+EMp67Pz+NukbJqYxuo8uRp7N/a9uR+oVS9pONtj8= +cosmossdk.io/x/tx v0.13.1/go.mod h1:CBCU6fsRVz23QGFIQBb1DNX2DztJCf3jWyEkHY2nJQ0= +cosmossdk.io/x/upgrade v0.1.1 h1:aoPe2gNvH+Gwt/Pgq3dOxxQVU3j5P6Xf+DaUJTDZATc= +cosmossdk.io/x/upgrade v0.1.1/go.mod h1:MNLptLPcIFK9CWt7Ra//8WUZAxweyRDNcbs5nkOcQy0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= -filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= -github.com/Abirdcfly/dupword v0.0.7 h1:z14n0yytA3wNO2gpCD/jVtp/acEXPGmYu0esewpBt6Q= -github.com/Abirdcfly/dupword v0.0.7/go.mod h1:K/4M1kj+Zh39d2aotRwypvasonOyAMH1c/IZJzE0dmk= -github.com/Antonboom/errname v0.1.7 h1:mBBDKvEYwPl4WFFNwec1CZO096G6vzK9vvDQzAwkako= -github.com/Antonboom/errname v0.1.7/go.mod h1:g0ONh16msHIPgJSGsecu1G/dcF2hlYR/0SddnIAGavU= -github.com/Antonboom/nilnil v0.1.1 h1:PHhrh5ANKFWRBh7TdYmyyq2gyT2lotnvFvvFbylF81Q= -github.com/Antonboom/nilnil v0.1.1/go.mod h1:L1jBqoWM7AOeTD+tSquifKSesRHs4ZdaxvZR+xdJEaI= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= +git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= +github.com/Abirdcfly/dupword v0.0.11 h1:z6v8rMETchZXUIuHxYNmlUAuKuB21PeaSymTed16wgU= +github.com/Abirdcfly/dupword v0.0.11/go.mod h1:wH8mVGuf3CP5fsBTkfWwwwKTjDnVVCxtU8d8rgeVYXA= +github.com/Antonboom/errname v0.1.9 h1:BZDX4r3l4TBZxZ2o2LNrlGxSHran4d1u4veZdoORTT4= +github.com/Antonboom/errname v0.1.9/go.mod h1:nLTcJzevREuAsgTbG85UsuiWpMpAqbKD1HNZ29OzE58= +github.com/Antonboom/nilnil v0.1.3 h1:6RTbx3d2mcEu3Zwq9TowQpQMVpP75zugwOtqY1RTtcE= +github.com/Antonboom/nilnil v0.1.3/go.mod h1:iOov/7gRcXkeEU+EMGpBu2ORih3iyVEiWjeste1SJm8= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= -github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= -github.com/ComposableFi/ibc-apps/middleware/packet-forward-middleware/v7 v7.0.0-20240320115741-f32994360827 h1:PkDT2gEjAgttuF9lZTP+niYjcXutnmqHHK2UaAL9bLs= -github.com/ComposableFi/ibc-apps/middleware/packet-forward-middleware/v7 v7.0.0-20240320115741-f32994360827/go.mod h1:3PHOr4UiPNtnZJutT22fm5+pjIefTlDEgtWGoOJg3A0= -github.com/ComposableFi/ibc-go/v7 v7.0.0-20240417235838-759a4130305e h1:1X7RvVEC9FfJIZl0FUPVN/SFzHkYKaZjYkZb9+kDmAk= -github.com/ComposableFi/ibc-go/v7 v7.0.0-20240417235838-759a4130305e/go.mod h1:hjcl3RPLSDf0LSXrFyk2iTQCCFs5pfLbJb8h/5gJ2Vg= -github.com/CosmWasm/wasmd v0.40.1 h1:LxbO78t/6S8TkeQlUrJ0m5O87HtAwLx4RGHq3rdrOEU= -github.com/CosmWasm/wasmd v0.40.1/go.mod h1:6EOwnv7MpuFaEqxcUOdFV9i4yvrdOciaY6VQ1o7A3yg= -github.com/CosmWasm/wasmvm v1.2.6 h1:QmOaiJUyeh8+pPCjJBTgWrbi/hCzCuWewduDO85Pcpc= -github.com/CosmWasm/wasmvm v1.2.6/go.mod h1:KO0zfQgCsQ6urWL1MYLlGqRgr7R4an6jo+LWRZjfD4c= +github.com/CosmWasm/wasmd v0.50.0 h1:NVaGqCSTRfb9UTDHJwT6nQIWcb6VjlQl88iI+u1+qjE= +github.com/CosmWasm/wasmd v0.50.0/go.mod h1:UjmShW4l9YxaMytwJZ7IB7MWzHiynSZP3DdWrG0FRtk= +github.com/CosmWasm/wasmvm v1.5.2 h1:+pKB1Mz9GZVt1vadxB+EDdD1FOz3dMNjIKq/58/lrag= +github.com/CosmWasm/wasmvm v1.5.2/go.mod h1:Q0bSEtlktzh7W2hhEaifrFp1Erx11ckQZmjq8FLCyys= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/datadog-go v4.8.3+incompatible h1:fNGaYSuObuQb5nzeTQqowRAd9bpDIRRV4/gUtIBjh8Q= +github.com/DataDog/datadog-go v4.8.3+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= +github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0 h1:+r1rSv4gvYn0wmRjC8X7IAzX8QezqtFV9m0MUHFJgts= github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0/go.mod h1:b3g59n2Y+T5xmcxJL+UEG2f8cQploZm1mR/v6BW0mU0= -github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OpenPeeDeeP/depguard v1.1.1 h1:TSUznLjvp/4IUP+OQ0t/4jF4QUyxIcVX8YnghZdunyA= github.com/OpenPeeDeeP/depguard v1.1.1/go.mod h1:JtAMzWkmFEzDPyAd+W0NHl1lvpQKTvT9jnRVsohBKpc= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= -github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg= +github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= +github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= +github.com/alecthomas/kingpin/v2 v2.4.0/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= +github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= -github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/ashanbrown/forbidigo v1.3.0 h1:VkYIwb/xxdireGAdJNZoo24O4lmnEWkactplBlWTShc= -github.com/ashanbrown/forbidigo v1.3.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI= +github.com/ashanbrown/forbidigo v1.5.1 h1:WXhzLjOlnuDYPYQo/eFlcFMi8X/kLfvWLYu6CSoebis= +github.com/ashanbrown/forbidigo v1.5.1/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU= github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s= github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI= -github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.44.203 h1:pcsP805b9acL3wUqa4JR2vg1k2wnItkDYNvfmcy6F+U= -github.com/aws/aws-sdk-go v1.44.203/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= -github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= +github.com/aws/aws-sdk-go v1.45.25 h1:c4fLlh5sLdK2DCRTY1z0hyuJZU4ygxX8m1FswL6/nF4= +github.com/aws/aws-sdk-go v1.45.25/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88= +github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/bkielbasa/cyclop v1.2.0 h1:7Jmnh0yL2DjKfw28p86YTd/B4lRGcNuu12sKE35sM7A= github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M= github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= -github.com/bombsimon/wsl/v3 v3.3.0 h1:Mka/+kRLoQJq7g2rggtgQsjuI/K5Efd87WX96EWFxjM= -github.com/bombsimon/wsl/v3 v3.3.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= -github.com/breml/bidichk v0.2.3 h1:qe6ggxpTfA8E75hdjWPZ581sY3a2lnl0IRxLQFelECI= -github.com/breml/bidichk v0.2.3/go.mod h1:8u2C6DnAy0g2cEq+k/A2+tr9O1s+vHGxWn0LTc70T2A= -github.com/breml/errchkjson v0.3.0 h1:YdDqhfqMT+I1vIxPSas44P+9Z9HzJwCeAzjB8PxP1xw= -github.com/breml/errchkjson v0.3.0/go.mod h1:9Cogkyv9gcT8HREpzi3TiqBxCqDzo8awa92zSDFcofU= +github.com/bombsimon/wsl/v3 v3.4.0 h1:RkSxjT3tmlptwfgEgTgU+KYKLI35p/tviNXNXiL2aNU= +github.com/bombsimon/wsl/v3 v3.4.0/go.mod h1:KkIB+TXkqy6MvK9BDZVbZxKNYsE1/oLRJbIFtf14qqo= +github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/breml/bidichk v0.2.4 h1:i3yedFWWQ7YzjdZJHnPo9d/xURinSq3OM+gyM43K4/8= +github.com/breml/bidichk v0.2.4/go.mod h1:7Zk0kRFt1LIZxtQdl9W9JwGAcLTTkOs+tN7wuEYGJ3s= +github.com/breml/errchkjson v0.3.1 h1:hlIeXuspTyt8Y/UmP5qy1JocGNR00KQHgfaNtRAjoxQ= +github.com/breml/errchkjson v0.3.1/go.mod h1:XroxrzKjdiutFyW3nWhw34VGg7kiMsDQox73yWCGI2U= github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= -github.com/btcsuite/btcd/btcutil v1.1.2 h1:XLMbX8JQEiwMcYft2EGi8zPUkoa0abKIU6/BJSRsjzQ= +github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= +github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= -github.com/bufbuild/protocompile v0.5.1 h1:mixz5lJX4Hiz4FpqFREJHIXLfaLBntfaJv1h+/jS+Qg= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/bufbuild/protocompile v0.6.0 h1:Uu7WiSQ6Yj9DbkdnOe7U4mNKp58y9WDMKDn28/ZlunY= +github.com/bufbuild/protocompile v0.6.0/go.mod h1:YNP35qEYoYGme7QMtz5SBCoN4kL4g12jTtjuzRNdjpE= github.com/butuzov/ireturn v0.1.1 h1:QvrO2QF2+/Cx1WA/vETCIYBKtRjc30vesdoPUNo1EbY= github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= -github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= -github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/charithe/durationcheck v0.0.9 h1:mPP4ucLrf/rKZiIG/a9IPXHGlh8p4CzgpyTy6EEutYk= -github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= -github.com/chavacava/garif v0.0.0-20220630083739-93517212f375 h1:E7LT642ysztPWE0dfz43cWOvMiF42DyTRC+eZIaO4yI= -github.com/chavacava/garif v0.0.0-20220630083739-93517212f375/go.mod h1:4m1Rv7xfuwWPNKXlThldNuJvutYM6J95wNuuVmn55To= +github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4= +github.com/charithe/durationcheck v0.0.10/go.mod h1:bCWXb7gYRysD1CU3C+u4ceO49LoGOY1C1L6uouGNreQ= +github.com/chavacava/garif v0.0.0-20230227094218-b8c73b2037b8 h1:W9o46d2kbNL06lq7UNDPV0zYLzkrde/bjIqO02eoll0= +github.com/chavacava/garif v0.0.0-20230227094218-b8c73b2037b8/go.mod h1:gakxgyXaaPkxvLw1XQxNGK4I37ys9iBRzNUx/B7pUCo= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= @@ -334,86 +766,90 @@ github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= -github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU= -github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.11.1 h1:xSEW75zKaKCWzR3OfxXUxgrk/NtT4G1MiOv5lWZazG8= +github.com/cockroachdb/errors v1.11.1/go.mod h1:8MUxA3Gi6b25tYlFEBGLf+D8aISL+M4MIpiWMSNRfxw= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v1.1.0 h1:pcFh8CdCIt2kmEpK0OIatq67Ln9uGDYY3d5XnE0LJG4= +github.com/cockroachdb/pebble v1.1.0/go.mod h1:sEHm5NOXxyiAoKWhoFxT8xMgd/f3RA6qUqQ1BXKrh2E= github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA= -github.com/coinbase/rosetta-sdk-go/types v1.0.0/go.mod h1:eq7W2TMRH22GTW0N0beDnN931DW0/WOI1R2sdHNHG4c= -github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AKVZpjo= -github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0= -github.com/composablefi/cometbft v0.37.2-fixed-len-vote-time-tag h1:FCg/7GKon2TJW+frg7yBaOyT/Lr3ZkCHfllWfWVW52U= -github.com/composablefi/cometbft v0.37.2-fixed-len-vote-time-tag/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= -github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= -github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= +github.com/cometbft/cometbft v0.38.6 h1:QSgpCzrGWJ2KUq1qpw+FCfASRpE27T6LQbfEHscdyOk= +github.com/cometbft/cometbft v0.38.6/go.mod h1:8rSPxzUJYquCN8uuBgbUHOMg2KAwvr7CyUw+6ukO4nw= +github.com/cometbft/cometbft-db v0.11.0 h1:M3Lscmpogx5NTbb1EGyGDaFRdsoLWrUWimFEyf7jej8= +github.com/cometbft/cometbft-db v0.11.0/go.mod h1:GDPJAC/iFHNjmZZPN8V8C1yr/eyityhi2W1hz2MGKSc= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= +github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= -github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= -github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= -github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= +github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAKs= +github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA= +github.com/cosmos/cosmos-proto v1.0.0-beta.4 h1:aEL7tU/rLOmxZQ9z4i7mzxcLbSCY48OdY7lIWTLG7oU= +github.com/cosmos/cosmos-proto v1.0.0-beta.4/go.mod h1:oeB+FyVzG3XrQJbJng0EnV8Vljfk9XvTIpGILNU/9Co= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI= github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= -github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI= -github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek= -github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= -github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= +github.com/cosmos/gogoproto v1.4.12 h1:vB6Lbe/rtnYGjQuFxkPiPYiCybqFT8QvLipDZP8JpFE= +github.com/cosmos/gogoproto v1.4.12/go.mod h1:LnZob1bXRdUoqMMtwYlcR3wjiElmlC+FkjaZRv1/eLY= +github.com/cosmos/iavl v1.1.1 h1:64nTi8s3gEoGqhA8TyAWFWfz7/pg0anKzHNSc1ETc7Q= +github.com/cosmos/iavl v1.1.1/go.mod h1:jLeUvm6bGT1YutCaL2fIar/8vGUE8cPZvh/gXEWDaDM= +github.com/cosmos/ibc-apps/modules/async-icq/v8 v8.0.0 h1:nKP2+Rzlz2iyvTosY5mvP+aEBPe06oaDl3G7xLGBpNI= +github.com/cosmos/ibc-apps/modules/async-icq/v8 v8.0.0/go.mod h1:D3Q380FpWRFtmUQWLosPxachi6w24Og2t5u/Tww5wtY= +github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= +github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76 h1:DdzS1m6o/pCqeZ8VOAit/gyATedRgjvkVI+UCrLpyuU= github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76/go.mod h1:0mkLWIoZuQ7uBoospo5Q9zIpqq6rYCPJDSUdeCJvPM8= -github.com/cosmos/ledger-cosmos-go v0.12.4 h1:drvWt+GJP7Aiw550yeb3ON/zsrgW0jgh5saFCr7pDnw= -github.com/cosmos/ledger-cosmos-go v0.12.4/go.mod h1:fjfVWRf++Xkygt9wzCsjEBdjcf7wiiY35fv3ctT+k4M= -github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM= -github.com/cosmos/rosetta-sdk-go v0.10.0/go.mod h1:SImAZkb96YbwvoRkzSMQB6noNJXFgWl/ENIznEoYQI4= +github.com/cosmos/ledger-cosmos-go v0.13.3 h1:7ehuBGuyIytsXbd4MP43mLeoN2LTOEnk5nvue4rK+yM= +github.com/cosmos/ledger-cosmos-go v0.13.3/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJFxv2Li8= -github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cristalhq/acmd v0.8.1/go.mod h1:LG5oa43pE/BbxtfMoImHCQN++0Su7dzipdgBjMCBVDQ= github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo= github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc= -github.com/daixiang0/gci v0.8.1 h1:T4xpSC+hmsi4CSyuYfIJdMZAr9o7xZmHpQVygMghGZ4= -github.com/daixiang0/gci v0.8.1/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= +github.com/daixiang0/gci v0.10.1 h1:eheNA3ljF6SxnPD/vE4lCBusVHmV3Rs3dkKvFrJ7MR0= +github.com/daixiang0/gci v0.10.1/go.mod h1:xtHP9N7AHdNvtRNfcx9gwTDfw7FRJx4bZUsiEfiNNAI= github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U= -github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= -github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= +github.com/danieljoos/wincred v1.2.1 h1:dl9cBrupW8+r5250DYkYxocLeZ1Y4vB1kxgtjxw8GQs= +github.com/danieljoos/wincred v1.2.1/go.mod h1:uGaFL9fDn3OLTvzCGulzE+SzjEe5NGlh5FdCcyfPwps= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/denis-tingaikin/go-header v0.4.3 h1:tEaZKAlqql6SKCY++utLmkPLd6K8IBM20Ha7UVm+mtU= github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= @@ -423,26 +859,24 @@ github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= -github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b/go.mod h1:7BvyPhdbLxMXIYTFPLsyJRFMsKmOZnQmzh6Gb+uquuM= -github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= -github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= +github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= +github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +github.com/emicklei/dot v1.6.1 h1:ujpDlBkkwgWUY+qPId5IwapRW/xEoligRSYjioR6DFI= +github.com/emicklei/dot v1.6.1/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -452,114 +886,122 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/esimonov/ifshort v1.0.4 h1:6SID4yGWfRae/M7hkVDVVyppy8q/v9OuxNdmjLQStBA= github.com/esimonov/ifshort v1.0.4/go.mod h1:Pe8zjlRrJ80+q2CxHLfEOfTwxCZ4O+MuhcHcfgNWTk0= github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= -github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o= -github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y= github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= -github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= -github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= -github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE= -github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= +github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= +github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= -github.com/go-critic/go-critic v0.6.5 h1:fDaR/5GWURljXwF8Eh31T2GZNz9X4jeboS912mWF8Uo= -github.com/go-critic/go-critic v0.6.5/go.mod h1:ezfP/Lh7MA6dBNn4c6ab5ALv3sKnZVLx37tr00uuaOY= +github.com/go-critic/go-critic v0.7.0 h1:tqbKzB8pqi0NsRZ+1pyU4aweAF7A7QN0Pi4Q02+rYnQ= +github.com/go-critic/go-critic v0.7.0/go.mod h1:moYzd7GdVXE2C2hYTwd7h0CPcqlUeclsyBRwMa38v64= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= +github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= +github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= -github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= -github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= +github.com/go-kit/kit v0.13.0 h1:OoneCcHKHQ03LfBpoQCUfCluwd2Vt3ohz+kvbJneZAU= +github.com/go-kit/kit v0.13.0/go.mod h1:phqEHMMUbyrCFCTgH48JueqrM3md2HcAZ8N3XE4FKDg= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= +github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= -github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-toolsmith/astcast v1.0.0 h1:JojxlmI6STnFVG9yOImLeGREv8W2ocNUM+iOhR6jE7g= -github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= -github.com/go-toolsmith/astcopy v1.0.2 h1:YnWf5Rnh1hUudj11kei53kI57quN/VH6Hp1n+erozn0= -github.com/go-toolsmith/astcopy v1.0.2/go.mod h1:4TcEdbElGc9twQEYpVo/aieIXfHhiuLh4aLAck6dO7Y= -github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= -github.com/go-toolsmith/astequal v1.0.2/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= -github.com/go-toolsmith/astequal v1.0.3 h1:+LVdyRatFS+XO78SGV4I3TCEA0AC7fKEGma+fH+674o= +github.com/go-toolsmith/astcast v1.1.0 h1:+JN9xZV1A+Re+95pgnMgDboWNVnIMMQXwfBwLRPgSC8= +github.com/go-toolsmith/astcast v1.1.0/go.mod h1:qdcuFWeGGS2xX5bLM/c3U9lewg7+Zu4mr+xPwZIB4ZU= +github.com/go-toolsmith/astcopy v1.1.0 h1:YGwBN0WM+ekI/6SS6+52zLDEf8Yvp3n2seZITCUBt5s= +github.com/go-toolsmith/astcopy v1.1.0/go.mod h1:hXM6gan18VA1T/daUEHCFcYiW8Ai1tIwIzHY6srfEAw= github.com/go-toolsmith/astequal v1.0.3/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= -github.com/go-toolsmith/astfmt v1.0.0 h1:A0vDDXt+vsvLEdbMFJAUBI/uTbRw1ffOPnxsILnFL6k= -github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= -github.com/go-toolsmith/astp v1.0.0 h1:alXE75TXgcmupDsMK1fRAy0YUzLzqPVvBKoyWV+KPXg= -github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI= -github.com/go-toolsmith/pkgload v1.0.2-0.20220101231613-e814995d17c5 h1:eD9POs68PHkwrx7hAB78z1cb6PfGq/jyWn3wJywsH1o= -github.com/go-toolsmith/pkgload v1.0.2-0.20220101231613-e814995d17c5/go.mod h1:3NAwwmD4uY/yggRxoEjk/S00MIV3A+H7rrE3i87eYxM= -github.com/go-toolsmith/strparse v1.0.0 h1:Vcw78DnpCAKlM20kSbAyO4mPfJn/lyYA4BJUDxe2Jb4= +github.com/go-toolsmith/astequal v1.1.0 h1:kHKm1AWqClYn15R0K1KKE4RG614D46n+nqUQ06E1dTw= +github.com/go-toolsmith/astequal v1.1.0/go.mod h1:sedf7VIdCL22LD8qIvv7Nn9MuWJruQA/ysswh64lffQ= +github.com/go-toolsmith/astfmt v1.1.0 h1:iJVPDPp6/7AaeLJEruMsBUlOYCmvg0MoCfJprsOmcco= +github.com/go-toolsmith/astfmt v1.1.0/go.mod h1:OrcLlRwu0CuiIBp/8b5PYF9ktGVZUjlNMV634mhwuQ4= +github.com/go-toolsmith/astp v1.1.0 h1:dXPuCl6u2llURjdPLLDxJeZInAeZ0/eZwFJmqZMnpQA= +github.com/go-toolsmith/astp v1.1.0/go.mod h1:0T1xFGz9hicKs8Z5MfAqSUitoUYS30pDMsRVIDHs8CA= +github.com/go-toolsmith/pkgload v1.2.2 h1:0CtmHq/02QhxcF7E9N5LIFcYFsMR5rdovfqTtRKkgIk= +github.com/go-toolsmith/pkgload v1.2.2/go.mod h1:R2hxLNRKuAsiXCo2i5J6ZQPhnPMOVtU+f0arbFPWCus= github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= -github.com/go-toolsmith/typep v1.0.2 h1:8xdsa1+FSIH/RhEkgnD1j2CJOy5mNllW1Q9tRiYwvlk= -github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= -github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b h1:khEcpUM4yFcxg4/FHQWkvVRmgijNXRfzkIDHh23ggEo= -github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= +github.com/go-toolsmith/strparse v1.1.0 h1:GAioeZUK9TGxnLS+qfdqNbA4z0SSm5zVNtCQiyP2Bvw= +github.com/go-toolsmith/strparse v1.1.0/go.mod h1:7ksGy58fsaQkGQlY8WVoBFNyEPMGuJin1rfoPS4lBSQ= +github.com/go-toolsmith/typep v1.1.0 h1:fIRYDyF+JywLfqzyhdiHzRop/GQDxxNhLGQ6gFUNHus= +github.com/go-toolsmith/typep v1.1.0/go.mod h1:fVIw+7zjdsMxDA3ITWnH1yOiw1rnTQKCsF/sk2H/qig= +github.com/go-xmlfmt/xmlfmt v1.1.2 h1:Nea7b4icn8s57fTx1M5AI4qQT5HEM3rVUO8MuE6g80U= +github.com/go-xmlfmt/xmlfmt v1.1.2/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= -github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= -github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -593,9 +1035,9 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -607,14 +1049,14 @@ github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe h1:6RGUuS7EGotKx6 github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe/go.mod h1:gjqyPShc/m8pEMpk0a3SeagVb0kaqvhscv+i9jI5ZhQ= github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2 h1:amWTbTGqOZ71ruzrdA+Nx5WA3tV1N0goTspwmKCQvBY= github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2/go.mod h1:9wOXstvyDRshQ9LggQuzBCGysxs3b6Uo/1MvYCR2NMs= -github.com/golangci/golangci-lint v1.50.1 h1:C829clMcZXEORakZlwpk7M4iDw2XiwxxKaG504SZ9zY= -github.com/golangci/golangci-lint v1.50.1/go.mod h1:AQjHBopYS//oB8xs0y0M/dtxdKHkdhl0RvmjUct0/4w= +github.com/golangci/golangci-lint v1.52.0 h1:T7w3tuF1goz64qGV+ML4MgysSl/yUfA3UZJK92oE48A= +github.com/golangci/golangci-lint v1.52.0/go.mod h1:wlTh+d/oVlgZC2yCe6nlxrxNAnuhEQC0Zdygoh72Uak= github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 h1:MfyDlzVjl1hoaPzPD4Gpb/QgoRfSBR0jdhwGyAWwMSA= github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA= github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= -github.com/golangci/misspell v0.3.5 h1:pLzmVdl3VxTOncgzHcvLOKirdvcx/TydsClUQXTehjo= -github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= +github.com/golangci/misspell v0.4.0 h1:KtVB/hTK4bbL/S6bs64rYyk8adjmh1BygbBiaAiX+a0= +github.com/golangci/misspell v0.4.0/go.mod h1:W6O/bwV6lGDxUCChm2ykw9NQdd5bYd1Xkjo88UcWyJc= github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 h1:DIPQnGy2Gv2FSA4B/hh8Q7xx3B7AIDk3DAMeHclH1vQ= github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6/go.mod h1:0AKcRCkMoKvUvlf89F6O7H2LYdhr1zBh736mBItOdRs= github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys= @@ -623,6 +1065,7 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -637,8 +1080,9 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= @@ -649,6 +1093,7 @@ github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIG github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -667,17 +1112,22 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= +github.com/google/s2a-go v0.1.0/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM= +github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= -github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= +github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -687,30 +1137,26 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cUUI8Ki4= +github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 h1:PVRE9d4AQKmbelZ7emNig1+NT27DUmKZn5qXxfio54U= -github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= -github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= -github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28 h1:9alfqbrhuD+9fLZ4iaAVwhlp5PEhmnBt7yvK2Oy5C1U= +github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= +github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= +github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= -github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= -github.com/gostaticanalysis/analysisutil v0.1.0/go.mod h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= -github.com/gostaticanalysis/comment v1.3.0/go.mod h1:xMicKDx7XRXYdVwY9f9wQpDJVnqWxw9wCauCMKp+IBI= github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= github.com/gostaticanalysis/comment v1.4.2 h1:hlnx5+S2fY9Zo9ePo4AhgYsYHbM2+eAv8m/s1JiCd6Q= github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= @@ -720,65 +1166,55 @@ github.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3 github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= github.com/gostaticanalysis/testutil v0.4.0 h1:nhdCmubdmDF6VEatUNjgUZBJKWRqugoISdUv3PPQgHY= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/gostaticanalysis/testutil v0.4.0/go.mod h1:bLIoPefWXrRi/ssLFWX1dx7Repi5x3CuviD3dgAZaBU= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= -github.com/gtank/merlin v0.1.1-0.20191105220539-8318aed1a79f/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= -github.com/gtank/merlin v0.1.1 h1:eQ90iG7K9pOhtereWsmyRJ6RAwcP4tHTDBHXNg+u5is= -github.com/gtank/merlin v0.1.1/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= -github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uMzcc= -github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o= -github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= -github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.1 h1:SWiSWN/42qdpR0MdhaOc/bLR48PLuP1ZQtYLRlM69uY= -github.com/hashicorp/go-getter v1.7.1/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-getter v1.7.3 h1:bN2+Fw9XPFvOCjB0UOevFIMICZ7G2XSQHzfvLUyOM5E= +github.com/hashicorp/go-getter v1.7.3/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-hclog v1.6.2 h1:NOtoftovWkDheyUM/8JW3QMiXyxJK3uHRK7wV04nD2I= +github.com/hashicorp/go-hclog v1.6.2/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-metrics v0.5.3 h1:M5uADWMOGCTUNU1YuC4hfknOeHNaX54LDm4oYSucoNE= +github.com/hashicorp/go-metrics v0.5.3/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= +github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= +github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU= -github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= +github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= +github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/hdevalence/ed25519consensus v0.2.0 h1:37ICyZqdyj0lAZ8P4D1d1id3HqbbG1N3iBb1Tb4rdcU= +github.com/hdevalence/ed25519consensus v0.2.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -786,9 +1222,11 @@ github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3 github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw= github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= -github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/iancoleman/orderedmap v0.2.0 h1:sq1N/TFpYH++aViPcaKjys3bDClUEU7s5B+z6jq8pNA= -github.com/iancoleman/orderedmap v0.2.0/go.mod h1:N0Wam8K1arqPXNWjMo21EXnBPOPp36vB07FNRdD2geA= +github.com/iancoleman/orderedmap v0.3.0 h1:5cbR2grmZR/DiVt+VJopEhtVs9YGInGIxAoMJn+Ichc= +github.com/iancoleman/orderedmap v0.3.0/go.mod h1:XuLcCUkdL5owUCQeF2Ue9uuw1EptkJDkXXS7VoV7XGE= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= +github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= @@ -796,61 +1234,57 @@ github.com/improbable-eng/grpc-web v0.15.0/go.mod h1:1sy9HKV4Jt9aEs9JSnkWlRJPuPt github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/jgautheron/goconst v1.5.1 h1:HxVbL1MhydKs8R8n/HE5NPvzfaYmQJA3o879lE4+WcM= github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= -github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= +github.com/jhump/protoreflect v1.15.3 h1:6SFRuqU45u9hIZPJAoZ8c28T3nK64BNdp9w6jFonzls= +github.com/jhump/protoreflect v1.15.3/go.mod h1:4ORHmSBmlCW8fh3xHmJMGyul1zNqZK4Elxc8qKP+p1k= github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs= github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= -github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/junk1tm/musttag v0.5.0 h1:bV1DTdi38Hi4pG4OVWa7Kap0hi0o7EczuK6wQt9zPOM= +github.com/junk1tm/musttag v0.5.0/go.mod h1:PcR7BA+oREQYvHwgjIDmw3exJeds5JzRcvEJTfjrA0M= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d h1:Z+RDyXzjKE0i2sTjZ/b1uxiGtPhFy34Ou/Tk0qwN0kM= github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d/go.mod h1:JJNrCn9otv/2QP4D7SMJBgaleKpOf66PnW6F5WGNRIc= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/errcheck v1.6.2 h1:uGQ9xI8/pgc9iOoCe7kWQgRE6SBTrCGmTSf0LrEtY7c= -github.com/kisielk/errcheck v1.6.2/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= +github.com/kisielk/errcheck v1.6.3 h1:dEKh+GLHcWm2oN34nMvDzn1sqI0i0WxPvrgiJA5JuM8= +github.com/kisielk/errcheck v1.6.3/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kkHAIKE/contextcheck v1.1.3 h1:l4pNvrb8JSwRd51ojtcOxOeHJzHek+MtOyXbaR0uvmw= -github.com/kkHAIKE/contextcheck v1.1.3/go.mod h1:PG/cwd6c0705/LM0KTr1acO2gORUxkSVWyLJOFW5qoo= +github.com/kkHAIKE/contextcheck v1.1.4 h1:B6zAaLhOEEcjvUgIYEqystmnFk1Oemn8bvJhbt0GMb8= +github.com/kkHAIKE/contextcheck v1.1.4/go.mod h1:1+i/gWqokIa+dm31mqGLZhZJ7Uh44DJGZVmr6QRBNJg= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY= -github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= +github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -861,28 +1295,26 @@ github.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= github.com/kunwardeep/paralleltest v1.0.6 h1:FCKYMF1OF2+RveWlABsdnmsvJrei5aoyZoaGS+Ugg8g= github.com/kunwardeep/paralleltest v1.0.6/go.mod h1:Y0Y0XISdZM5IKm3TREQMZ6iteqn1YuwCsJO/0kL9Zes= -github.com/kyoh86/exportloopref v0.1.8 h1:5Ry/at+eFdkX9Vsdw3qU4YkvGtzuVfzT4X7S77LoN/M= -github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= +github.com/kyoh86/exportloopref v0.1.11 h1:1Z0bcmTypkL3Q4k+IDHMWTcnCliEZcaPiIe0/ymEyhQ= +github.com/kyoh86/exportloopref v0.1.11/go.mod h1:qkV4UF1zGl6EkF1ox8L5t9SwyeBAZ3qLMd6up458uqA= github.com/ldez/gomoddirectives v0.2.3 h1:y7MBaisZVDYmKvt9/l1mjNCiSA1BVn34U0ObUcJwlhA= github.com/ldez/gomoddirectives v0.2.3/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= -github.com/ldez/tagliatelle v0.3.1 h1:3BqVVlReVUZwafJUwQ+oxbx2BEX2vUG4Yu/NOfMiKiM= -github.com/ldez/tagliatelle v0.3.1/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88= +github.com/ldez/tagliatelle v0.4.0 h1:sylp7d9kh6AdXN2DpVGHBRb5guTVAgOxqNGhbqc4b1c= +github.com/ldez/tagliatelle v0.4.0/go.mod h1:mNtTfrHy2haaBAw+VT7IBV6VXBThS7TCreYWbBcJ87I= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= -github.com/leonklingele/grouper v1.1.0 h1:tC2y/ygPbMFSBOs3DcyaEMKnnwH7eYKzohOtRrf0SAg= -github.com/leonklingele/grouper v1.1.0/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/leonklingele/grouper v1.1.1 h1:suWXRU57D4/Enn6pXR0QVqqWWrnJ9Osrz+5rjt8ivzU= +github.com/leonklingele/grouper v1.1.1/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= -github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= -github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= -github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4= +github.com/linxGnu/grocksdb v1.8.14 h1:HTgyYalNwBSG/1qCQUIott44wU5b2Y9Kr3z7SK5OfGQ= +github.com/linxGnu/grocksdb v1.8.14/go.mod h1:QYiYypR2d4v63Wj1adOOfzglnoII0gLj3PNh4fZkcFA= github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM= github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= -github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= +github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= @@ -890,10 +1322,10 @@ github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYt github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= github.com/maratori/testableexamples v1.0.0 h1:dU5alXRrD8WKSjOUnmJZuzdxWOEQ57+7s93SLMxb2vI= github.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE= -github.com/maratori/testpackage v1.1.0 h1:GJY4wlzQhuBusMF1oahQCBtUV/AQ/k69IZ68vxaac2Q= -github.com/maratori/testpackage v1.1.0/go.mod h1:PeAhzU8qkCwdGEMTEupsHJNlQu2gZopMC6RjbhmHeDc= -github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 h1:pWxk9e//NbPwfxat7RXkts09K+dEBJWakUWwICVqYbA= -github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= +github.com/maratori/testpackage v1.1.1 h1:S58XVV5AD7HADMmD0fNnziNHqKvSdDuEKdPD1rNTU04= +github.com/maratori/testpackage v1.1.1/go.mod h1:s4gRK/ym6AMrqpOa/kEbQTV4Q4jb7WeLZzVhVVVOQMc= +github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 h1:gWg6ZQ4JhDfJPqlo2srm/LN17lpybq15AryXIRcWYLE= +github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -901,241 +1333,194 @@ github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= +github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/mbilski/exhaustivestruct v1.2.0 h1:wCBmUnSYufAHO6J4AVWY6ff+oxWxsVFrwgOdMUQePUo= github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= -github.com/mgechev/revive v1.2.4 h1:+2Hd/S8oO2H0Ikq2+egtNwQsVhAeELHjxjIUFX5ajLI= -github.com/mgechev/revive v1.2.4/go.mod h1:iAWlQishqCuj4yhV24FTnKSXGpbAA+0SckXB8GQMX/Q= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= -github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94= -github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= +github.com/mgechev/revive v1.3.1 h1:OlQkcH40IB2cGuprTPcjB0iIUddgVZgGmDX3IAMR8D4= +github.com/mgechev/revive v1.3.1/go.mod h1:YlD6TTWl2B8A103R9KWJSPVI9DrEf+oqr15q21Ld+5I= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/moricho/tparallel v0.2.1 h1:95FytivzT6rYzdJLdtfn6m1bfFJylOJK41+lgv/EHf4= -github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= +github.com/moricho/tparallel v0.3.0 h1:8dDx3S3e+jA+xiQXC7O3dvfRTe/J+FYlTDDW01Y7z/Q= +github.com/moricho/tparallel v0.3.0/go.mod h1:leENX2cUv7Sv2qDgdi0D0fCftN8fRC67Bcn8pqzeYNI= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76/go.mod h1:x5OoJHDHqxHS801UIuhqGl6QdSAEJvtausosHSdazIo= github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U= github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= -github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= -github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= -github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= -github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 h1:4kuARK6Y6FxaNu/BnU2OAaLF86eTVhP2hjTB6iMvItA= github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nishanths/exhaustive v0.8.3 h1:pw5O09vwg8ZaditDp/nQRqVnrMczSJDxRDJMowvhsrM= -github.com/nishanths/exhaustive v0.8.3/go.mod h1:qj+zJJUgJ76tR92+25+03oYUhzF4R7/2Wk7fGTfCHmg= +github.com/nishanths/exhaustive v0.9.5 h1:TzssWan6orBiLYVqewCG8faud9qlFntJE30ACpzmGME= +github.com/nishanths/exhaustive v0.9.5/go.mod h1:IbwrGdVMizvDcIxPYGVdQn5BqWJaOwpCvg4RGb8r/TA= github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= -github.com/notional-labs/alliance v1.0.1-0.20231106184124-5cc1ff759647 h1:vCSokMIO60u0td51l7NB+pikUChJozIwIb4u8UeqTKI= -github.com/notional-labs/alliance v1.0.1-0.20231106184124-5cc1ff759647/go.mod h1:GFQ8TsXDMTpu7kif0Dwddz6rxazy0ZJQHfN38ZmAodI= +github.com/notional-labs/cosmos-sdk v0.50.5-patch-validators-trim-tag h1:lnMn2O2zjUvLbWJuKY3yXtrkVzCXQ7r1/oS/tgCsyjU= +github.com/notional-labs/cosmos-sdk v0.50.5-patch-validators-trim-tag/go.mod h1:oV/k6GJgXV9QPoM2fsYDPPsyPBgQbdotv532O6Mz1OQ= +github.com/notional-labs/ibc-apps/middleware/packet-forward-middleware/v8 v8.0.0-20240508031447-347412725653 h1:P7Chh5O10Jtv+vvfaVpG72fv5LKVWQLEtCKQrMtbBdw= +github.com/notional-labs/ibc-apps/middleware/packet-forward-middleware/v8 v8.0.0-20240508031447-347412725653/go.mod h1:NS+Ooc0vOyr1mAgAbt/HS8Dpes2dV7/YgOc+WxD63O4= +github.com/notional-labs/ibc-go/modules/light-clients/08-wasm v0.0.0-20240522081622-85c49c80dc29 h1:h+EVIIwTI9iBtUhgBay5dJs+bUCnTHDOaXT0uujm6Zs= +github.com/notional-labs/ibc-go/modules/light-clients/08-wasm v0.0.0-20240522081622-85c49c80dc29/go.mod h1:u2FXNcSxzzn5IwjWBA51HKMwiYMRK6/G35VmSJULhP0= +github.com/notional-labs/ibc-go/v8 v8.0.0-alpha.1.0.20240515181700-c058e14324e8 h1:RkivXDi3NoRZEjdbO0ueSykCnb7FPaBR0F8sWn5DlFM= +github.com/notional-labs/ibc-go/v8 v8.0.0-alpha.1.0.20240515181700-c058e14324e8/go.mod h1:x024D7fnWnTL6wNeoHbe0+JSjDaoQ3CNvJY8o9F4imE= +github.com/nunnatsa/ginkgolinter v0.9.0 h1:Sm0zX5QfjJzkeCjEp+t6d3Ha0jwvoDjleP9XCsrEzOA= +github.com/nunnatsa/ginkgolinter v0.9.0/go.mod h1:FHaMLURXP7qImeH6bvxWJUpyH+2tuqe5j4rW1gxJRmI= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= -github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a h1:dlRvE5fWabOchtH7znfiFCcOvmIYgOeAS5ifBXBlh9Q= +github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s= +github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= +github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= -github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo/v2 v2.8.0 h1:pAM+oBNPrpXRs+E/8spkeGx9QgekbRVyr74EUvRVOUI= +github.com/onsi/ginkgo/v2 v2.8.0/go.mod h1:6JsQiECmxCa3V5st74AL/AmsV482EDdVrGaVW6z3oYU= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= +github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= +github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= +github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= -github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= -github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= -github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= -github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= +github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= -github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= -github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= -github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= +github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo= +github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU= -github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= -github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d h1:CdDQnGF8Nq9ocOS/xlSptM1N3BbrA6/kmaep5ggwaIA= -github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= -github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 h1:jik8PHtAIsPlCRJjJzl4udgEf7hawInF9texMeO2jrU= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= +github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/polyfloyd/go-errorlint v1.0.5 h1:AHB5JRCjlmelh9RrLxT9sgzpalIwwq4hqE8EkwIwKdY= -github.com/polyfloyd/go-errorlint v1.0.5/go.mod h1:APVvOesVSAnne5SClsPxPdfvZTVDojXh1/G3qb5wjGI= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= -github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.15.0 h1:5fCgGYogn0hFdhyhLbw7hEsWxufKtY9klyvdNfFlFhM= -github.com/prometheus/client_golang v1.15.0/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/polyfloyd/go-errorlint v1.4.5 h1:70YWmMy4FgRHehGNOUask3HtSFSOLKgmDn7ryNe7LqI= +github.com/polyfloyd/go-errorlint v1.4.5/go.mod h1:sIZEbFoDOCnTYYZoVkjc4hTnM459tuWA9H/EkdXwsKk= +github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= +github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= -github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= +github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= +github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k= +github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= -github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30= -github.com/quasilyte/go-ruleguard v0.3.18 h1:sd+abO1PEI9fkYennwzHn9kl3nqP6M5vE7FiOzZ+5CE= -github.com/quasilyte/go-ruleguard v0.3.18/go.mod h1:lOIzcYlgxrQ2sGJ735EHXmf/e9MJ516j16K/Ifcttvs= -github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/go-ruleguard/dsl v0.3.21/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/go-ruleguard/rules v0.0.0-20201231183845-9e62ed36efe1/go.mod h1:7JTjp89EGyU1d6XfBiXihJNG37wB2VRkd125Q1u7Plc= -github.com/quasilyte/go-ruleguard/rules v0.0.0-20211022131956-028d6511ab71/go.mod h1:4cgAphtvu7Ftv7vOT2ZOYhC6CvBxZixcasr8qIOTA50= -github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f h1:6Gtn2i04RD0gVyYf2/IUMTIs+qYleBt4zxDqkLTcu4U= -github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= -github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 h1:L8QM9bvf68pVdQ3bCFZMDmnt9yqcMBro1pC7F+IPYMY= -github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= +github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= +github.com/quasilyte/go-ruleguard v0.4.0 h1:DyM6r+TKL+xbKB4Nm7Afd1IQh9kEUKQs2pboWGKtvQo= +github.com/quasilyte/go-ruleguard v0.4.0/go.mod h1:Eu76Z/R8IXtViWUIHkE3p8gdH3/PKk1eh3YGfaEof10= +github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo= +github.com/quasilyte/gogrep v0.5.0/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= +github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl980XxGFEZSS6KlBGIV0diGdySzxATTWoqaU= +github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= -github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= -github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= -github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= +github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= -github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= +github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c= -github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w= +github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= +github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/rust-ninja/cosmos-sdk v0.47.5-patch-validators-trim-tag h1:hRig0sGiufr4UszAaCZlg0ZJVGBjYyIQwC+NUf2f/GE= -github.com/rust-ninja/cosmos-sdk v0.47.5-patch-validators-trim-tag/go.mod h1:EHwCeN9IXonsjKcjpS12MqeStdZvIdxt3VYXhus3G3c= -github.com/ryancurrah/gomodguard v1.2.4 h1:CpMSDKan0LtNGGhPrvupAoLeObRFjND8/tU1rEOtBp4= -github.com/ryancurrah/gomodguard v1.2.4/go.mod h1:+Kem4VjWwvFpUJRJSwa16s1tBJe+vbv02+naTow2f6M= -github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw= -github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA= -github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= +github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= +github.com/ryancurrah/gomodguard v1.3.0 h1:q15RT/pd6UggBXVBuLps8BXRvl5GPBcwVA7BJHMLuTw= +github.com/ryancurrah/gomodguard v1.3.0/go.mod h1:ggBxb3luypPEzqVtq33ee7YSN35V28XeGnid8dnni50= +github.com/ryanrolds/sqlclosecheck v0.4.0 h1:i8SX60Rppc1wRuyQjMciLqIzV3xnoHB7/tXbr6RGYNI= +github.com/ryanrolds/sqlclosecheck v0.4.0/go.mod h1:TBRRjzL31JONc9i4XMinicuo+s+E8yKZ5FN8X3G6CKQ= +github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= +github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= +github.com/sanposhiho/wastedassign/v2 v2.0.7 h1:J+6nrY4VW+gC9xFzUc+XjPD3g3wF3je/NsJFwFK7Uxc= +github.com/sanposhiho/wastedassign/v2 v2.0.7/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw= github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= -github.com/sashamelentyev/usestdlibvars v1.20.0 h1:K6CXjqqtSYSsuyRDDC7Sjn6vTMLiSJa4ZmDkiokoqtw= -github.com/sashamelentyev/usestdlibvars v1.20.0/go.mod h1:0GaP+ecfZMXShS0A94CJn6aEuPRILv8h/VuWI9n1ygg= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/securego/gosec/v2 v2.13.1 h1:7mU32qn2dyC81MH9L2kefnQyRMUarfDER3iQyMHcjYM= -github.com/securego/gosec/v2 v2.13.1/go.mod h1:EO1sImBMBWFjOTFzMWfTRrZW6M15gm60ljzrmy/wtHo= +github.com/sashamelentyev/usestdlibvars v1.23.0 h1:01h+/2Kd+NblNItNeux0veSL5cBF1jbEOPrEhDzGYq0= +github.com/sashamelentyev/usestdlibvars v1.23.0/go.mod h1:YPwr/Y1LATzHI93CqoPUN/2BzGQ/6N/cl/KwgR0B/aU= +github.com/securego/gosec/v2 v2.15.0 h1:v4Ym7FF58/jlykYmmhZ7mTm7FQvN/setNm++0fgIAtw= +github.com/securego/gosec/v2 v2.15.0/go.mod h1:VOjTrZOkUtSDt2QLSJmQBMWnvwiQPEjg0l+5juIqGk8= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= @@ -1143,54 +1528,47 @@ github.com/sivchari/containedctx v1.0.2 h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYI github.com/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= github.com/sivchari/nosnakecase v1.7.0 h1:7QkpWIRMe8x25gckkFd2A5Pi6Ymo0qgr4JrhGt95do8= github.com/sivchari/nosnakecase v1.7.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= -github.com/sivchari/tenv v1.7.0 h1:d4laZMBK6jpe5PWepxlV9S+LC0yXqvYHiq8E6ceoVVE= -github.com/sivchari/tenv v1.7.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY= -github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= -github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= -github.com/sourcegraph/go-diff v0.6.1 h1:hmA1LzxW0n1c3Q4YbrFgg4P99GSnebYa3x8gr0HZqLQ= -github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= +github.com/sivchari/tenv v1.7.1 h1:PSpuD4bu6fSmtWMxSGWcvqUUgIn7k3yOJhOIzVWn8Ak= +github.com/sivchari/tenv v1.7.1/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= +github.com/sonatard/noctx v0.0.2 h1:L7Dz4De2zDQhW8S0t+KUjY0MAQJd6SgVwhzNIc4ok00= +github.com/sonatard/noctx v0.0.2/go.mod h1:kzFz+CzWSjQ2OzIm46uJZoXuBpa2+0y3T36U18dWqIo= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0= +github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= -github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= +github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= -github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= +github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= +github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= github.com/stbenjam/no-sprintf-host-port v0.1.1 h1:tYugd/yrm1O0dV+ThCbaKZh195Dfm07ysF0U6JQXczc= github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8LHsN9N74I+PhRquPsxpL0I= -github.com/strangelove-ventures/async-icq/v7 v7.0.0-20230413165143-a3b65ccdc897 h1:lCTD5L1v1K1KC6KXjyt4o1X+yzV14RbbrPZaF29n8uI= -github.com/strangelove-ventures/async-icq/v7 v7.0.0-20230413165143-a3b65ccdc897/go.mod h1:ag05Q54Wkr0jVwfe+14sxnuWbw0gBOxtPQv9afBBnr0= -github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -1199,17 +1577,21 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= -github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= -github.com/tdakkota/asciicheck v0.1.1 h1:PKzG7JUTUmVspQTDqtkX9eSiLGossXTybutHwTXuO0A= -github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= +github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c h1:+aPplBwWcHBo6q9xrfWdMrT9o4kltkmmvpemgIjep/8= +github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c/go.mod h1:SbErYREK7xXdsRiigaQiQkI9McGRzYMvlKYaP3Nimdk= +github.com/tdakkota/asciicheck v0.2.0 h1:o8jvnUANo0qXtnslk2d3nMKTFNlOnJjRrNcj0j9qkHM= +github.com/tdakkota/asciicheck v0.2.0/go.mod h1:Qb7Y9EgjCLJGup51gDHFzbI08/gbGhL/UVhYIPWG2rg= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= @@ -1218,23 +1600,20 @@ github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpR github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw= github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= -github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= -github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 h1:kl4KhGNsJIbDHS9/4U9yQo1UcPQM0kOMJHn29EoH/Ro= -github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= -github.com/timonwong/loggercheck v0.9.3 h1:ecACo9fNiHxX4/Bc02rW2+kaJIAMAes7qJ7JKxt0EZI= -github.com/timonwong/loggercheck v0.9.3/go.mod h1:wUqnk9yAOIKtGA39l1KLE9Iz0QiTocu/YZoOf+OzFdw= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tomarrell/wrapcheck/v2 v2.7.0 h1:J/F8DbSKJC83bAvC6FoZaRjZiZ/iKoueSdrEkmGeacA= -github.com/tomarrell/wrapcheck/v2 v2.7.0/go.mod h1:ao7l5p0aOlUNJKI0qVwB4Yjlqutd0IvAB9Rdwyilxvg= +github.com/tidwall/btree v1.7.0 h1:L1fkJH/AuEh5zBnnBbmTwQ5Lt+bRJ5A8EWecslvo9iI= +github.com/tidwall/btree v1.7.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= +github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e h1:MV6KaVu/hzByHP0UvJ4HcMGE/8a6A4Rggc/0wx2AvJo= +github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e/go.mod h1:27bSVNWSBOHm+qRp1T9qzaIpsWEP6TbUnei/43HK+PQ= +github.com/timonwong/loggercheck v0.9.4 h1:HKKhqrjcVj8sxL7K77beXh0adEm6DLjV/QOGeMXEVi4= +github.com/timonwong/loggercheck v0.9.4/go.mod h1:caz4zlPcgvpEkXgVnAJGowHAMW2NwHaNlpS8xDbVhTg= +github.com/tomarrell/wrapcheck/v2 v2.8.1 h1:HxSqDSN0sAt0yJYsrcYVoEeyM4aI9yAm3KQpIXDJRhQ= +github.com/tomarrell/wrapcheck/v2 v2.8.1/go.mod h1:/n2Q3NZ4XFT50ho6Hbxg+RV1uyo2Uow/Vdm9NQcl5SE= github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= -github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= @@ -1242,11 +1621,9 @@ github.com/ultraware/funlen v0.0.3 h1:5ylVWm8wsNwH5aWo9438pwvsK0QiqVuUrt9bn7S/iL github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= github.com/ultraware/whitespace v0.0.5 h1:hh+/cpIcopyMYbZNVov9iSxvJU3OYQg78Sfaqzi/CzI= github.com/ultraware/whitespace v0.0.5/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/uudashr/gocognit v1.0.6 h1:2Cgi6MweCsdB6kpcVQp7EW4U23iBFQWfTXiWlyp842Y= github.com/uudashr/gocognit v1.0.6/go.mod h1:nAIUuVBnYU7pcninia3BHOvQkpQCeO76Uscky5BOwcY= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM= github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= @@ -1259,18 +1636,16 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= gitlab.com/bosi/decorder v0.2.3 h1:gX4/RgK16ijY8V+BRQHAySfQAb354T7/xQpDB2n10P0= gitlab.com/bosi/decorder v0.2.3/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= -go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= +go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -1280,45 +1655,67 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= +go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= +go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= +go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= +go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/mock v0.2.0 h1:TaP3xedm7JaAgScZO7tlvlKrqT0p7I6OsdGB5YNSMDU= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= +go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= -go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.23.0 h1:OjGQ5KQDEUawVHxNwQgPpiypGHOxo2mNZsOqTak4fFY= -go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= -golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= @@ -1326,13 +1723,26 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us= -golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/exp v0.0.0-20240314144324-c7f7c6466f7f h1:3CW0unweImhOzd5FmYuRsD4Y4oQFKZIjAnKbjV4WIrw= +golang.org/x/exp v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91 h1:Ic/qN6TEifvObMGQy72k0n1LlJr7DjWWEi+MOsDOiSk= -golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833 h1:jWGQJV4niP+CCmFW9ekjA9Zx8vYORzOUH2/Nl5WPuLQ= +golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1356,31 +1766,29 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1408,8 +1816,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1422,10 +1830,23 @@ golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= -golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1449,10 +1870,18 @@ golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7Lm golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= +golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1466,16 +1895,15 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1490,14 +1918,12 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1515,8 +1941,6 @@ golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1528,6 +1952,7 @@ golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1536,23 +1961,23 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1571,17 +1996,37 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= -golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1593,27 +2038,31 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -1623,10 +2072,8 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190916130336-e45ffcd953cc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1635,9 +2082,7 @@ golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1650,30 +2095,23 @@ golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjs golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200622203043-20e05c1c8ffa/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200624225443-88f3c62a19ff/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201230224404-63754364767c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -1685,13 +2123,18 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.9-0.20211228192929-ee1ca4ffc4da/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= +golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= +golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1701,7 +2144,14 @@ golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNq golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= +gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= +gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -1749,25 +2199,37 @@ google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaE google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o= +google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= +google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= +google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= +google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.118.0/go.mod h1:76TtD3vkgmZ66zZzp72bUUklpmQmKlhh6sYtIjYK+5E= +google.golang.org/api v0.122.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms= +google.golang.org/api v0.124.0/go.mod h1:xu2HQurE5gi/3t1aFCvhPD781p0a3p11sdunTJ2BlP4= google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/api v0.162.0 h1:Vhs54HkaEpkMBdgGdOT2P6F0csGG/vxDS0hWHJzmmps= +google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -1783,6 +2245,7 @@ google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200324203455-a04cca1dde73/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -1836,6 +2299,7 @@ google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= @@ -1868,22 +2332,58 @@ google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53B google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8= -google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= -google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 h1:s5YSX+ZH5b5vS9rnpGymvIyMpLRJizowqDlOuyjXnTk= -google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= +google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= +google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= +google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto v0.0.0-20240221002015-b0ce06bbee7c h1:Zmyn5CV/jxzKnF+3d+xzbomACPwLQqVpLTpyXN5uTaQ= +google.golang.org/genproto v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20240221002015-b0ce06bbee7c h1:9g7erC9qu44ks7UK4gDNlnk4kOxZG707xKm4jVniy6o= +google.golang.org/genproto/googleapis/api v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c h1:NUsgEN92SQQqzfA+YtqYNqYmB3DMMYLlIwUZAQFVFbo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -1907,6 +2407,7 @@ google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= @@ -1916,8 +2417,13 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.56.2 h1:fVRFRnXvU+x6C4IlHZewvJOVHoOv1TUuQyoRsYnB4bI= -google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1934,32 +2440,29 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= @@ -1968,9 +2471,8 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= -gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1978,24 +2480,59 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.3.3 h1:oDx7VAwstgpYpb3wv0oxiZlxY+foCpRAwY7Vk6XpAgA= -honnef.co/go/tools v0.3.3/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= +honnef.co/go/tools v0.4.3 h1:o/n5/K5gXqk8Gozvs2cnL0F2S1/g1vcGCAx2vETjITw= +honnef.co/go/tools v0.4.3/go.mod h1:36ZgoUOrqOk1GxwHhyryEkq8FQWkUO2xGuSMhUCcdvA= +lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= +modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= +modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= +modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= +modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= +modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= +modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= +modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= +modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= +modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= +modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= +modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= +modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= +modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= +modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= mvdan.cc/gofumpt v0.4.0 h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM= mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= -mvdan.cc/unparam v0.0.0-20220706161116-678bad134442 h1:seuXWbRB1qPrS3NQnHmFKLJLtskWyueeIzmLXghMGgk= -mvdan.cc/unparam v0.0.0-20220706161116-678bad134442/go.mod h1:F/Cxw/6mVrNKqrR2YjFf5CaW0Bw4RL8RfbEf4GRggJk= -nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= +mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d h1:3rvTIIM22r9pvXk+q3swxUQAQOxksVMGK7sml4nG57w= +mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d/go.mod h1:IeHQjmn6TOD+e4Z3RFiZMMsLVL+A96Nvptar8Fj71is= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= -pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +nhooyr.io/websocket v1.8.10 h1:mv4p+MnGrLDcPlBoWsvPP7XCzTYMXP9F9eIGoKbgx7Q= +nhooyr.io/websocket v1.8.10/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c= +pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= +pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= -sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/kien-note.md b/kien-note.md new file mode 100644 index 000000000..417d221b3 --- /dev/null +++ b/kien-note.md @@ -0,0 +1,57 @@ +# Running the test + +## How did i build the `hyperspace` and `cw-grandpa` binaries +Go to the `ComposableFi/composable-ibc`, and building it in the master branch + +https://github.com/ComposableFi/composable-ibc/tree/master/hyperspace + +## How to reproduce the case + +1. Build the `picad` binary +```bash +make install +``` + +2. Run the localnet pica with `wasmClient` deployed +```bash +make localnet-pica +``` + +3. Run the localnet picasso +```bash +make localnet-picasso` +``` + +4. Run create clients +```bash +make relayer-create-clients +``` + + +# Current issue +## Client State decode into 08-wasm +`6981` +### Logging msg at ValidateBasic on cosmos side on v47 +add this log at ValidateBasic() function, at modules/core/02-client/types/msgs/go + +```go +fmt.Printf("msg.ClientState : %v\n", msg.ClientState) +clientState, err := UnpackClientState(msg.ClientState) +if err != nil { + return err +} +``` + +then, i get this value, basically, it says the clientState constructed from hyperspace is `08-wasm` + +``` +msg.ClientState : &Any{TypeUrl:/ibc.lightclients.wasm.v1.ClientState,Value:[10 204 1 10 40 47 105 98 99 46 108 105 103 104 116 99 108 105 101 110 116 115 46 103 114 97 110 100 112 97 46 118 49 46 67 108 105 101 110 116 83 116 97 116 101 18 159 1 10 32 146 240 69 84 49 1 104 67 240 92 67 123 199 101 70 152 115 0 205 47 91 76 8 16 108 92 254 197 173 59 35 206 16 67 24 5 40 2 48 167 16 56 20 66 36 10 32 199 203 131 204 79 173 68 214 92 44 140 240 46 150 66 83 144 154 219 206 75 174 118 245 90 177 194 134 163 255 44 194 16 1 66 36 10 32 20 164 40 156 190 217 24 43 102 84 102 53 144 50 192 109 195 183 142 183 238 104 52 237 95 167 180 159 149 51 85 167 16 1 66 36 10 32 184 160 36 189 114 208 123 150 110 8 135 7 155 93 135 60 197 160 19 53 186 39 222 219 43 141 20 36 169 95 136 128 16 1 18 32 157 80 86 242 181 81 33 48 148 160 59 120 141 184 2 116 68 81 117 186 231 140 143 237 227 139 242 90 45 220 132 188 26 5 8 167 16 16 20],XXX_unrecognized:[]} +``` + + +### Logging it at v50 + +`hyperspace` + +``` +msg.ClientState : &Any{TypeUrl:/ibc.lightclients.grandpa.v1.ClientState,Value:[10 32 106 46 120 116 154 178 37 115 118 3 65 47 241 205 37 168 10 129 250 125 20 121 236 81 77 119 185 185 155 72 122 11 16 17 40 2 48 167 16 56 1 66 36 10 32 199 203 131 204 79 173 68 214 92 44 140 240 46 150 66 83 144 154 219 206 75 174 118 245 90 177 194 134 163 255 44 194 16 1 66 36 10 32 20 164 40 156 190 217 24 43 102 84 102 53 144 50 192 109 195 183 142 183 238 104 52 237 95 167 180 159 149 51 85 167 16 1 66 36 10 32 184 160 36 189 114 208 123 150 110 8 135 7 155 93 135 60 197 160 19 53 186 39 222 219 43 141 20 36 169 95 136 128 16 1 66 36 10 32 140 4 179 243 122 62 235 12 208 118 154 107 153 87 196 106 60 118 44 155 224 91 89 26 250 8 121 224 61 159 194 212 16 1],XXX_unrecognized:[]} diff --git a/proto/composable/mint/v1beta1/mint.proto b/proto/composable/mint/v1beta1/mint.proto index 56971fdeb..cbe15b46d 100644 --- a/proto/composable/mint/v1beta1/mint.proto +++ b/proto/composable/mint/v1beta1/mint.proto @@ -11,13 +11,13 @@ message Minter { // current annual inflation rate string inflation = 1 [ (cosmos_proto.scalar) = "cosmos.Dec", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // current annual expected provisions string annual_provisions = 2 [ (cosmos_proto.scalar) = "cosmos.Dec", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -31,13 +31,13 @@ message Params { // maximum annual change in inflation rate string inflation_rate_change = 2 [ (cosmos_proto.scalar) = "cosmos.Dec", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // goal of percent bonded atoms string goal_bonded = 3 [ (cosmos_proto.scalar) = "cosmos.Dec", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // expected blocks per year @@ -45,13 +45,13 @@ message Params { // expected max amount of token to be distribute per year string max_token_per_year = 6 [ (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; // expected mint amount of token to be distribute per year string min_token_per_year = 7 [ (cosmos_proto.scalar) = "cosmos.Dec", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; } diff --git a/proto/composable/mint/v1beta1/query.proto b/proto/composable/mint/v1beta1/query.proto index 772e4404b..722ee88ad 100644 --- a/proto/composable/mint/v1beta1/query.proto +++ b/proto/composable/mint/v1beta1/query.proto @@ -43,7 +43,7 @@ message QueryInflationRequest {} message QueryInflationResponse { // inflation is the current minting inflation value. bytes inflation = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -57,7 +57,7 @@ message QueryAnnualProvisionsRequest {} message QueryAnnualProvisionsResponse { // annual_provisions is the current minting annual provisions value. bytes annual_provisions = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } diff --git a/proto/composable/ratelimit/v1beta1/ratelimit.proto b/proto/composable/ratelimit/v1beta1/ratelimit.proto index f5bc45035..b0d16ea7b 100644 --- a/proto/composable/ratelimit/v1beta1/ratelimit.proto +++ b/proto/composable/ratelimit/v1beta1/ratelimit.proto @@ -19,11 +19,11 @@ message Path { message Quota { string max_percent_send = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; string max_percent_recv = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; uint64 duration_hours = 3; @@ -31,15 +31,15 @@ message Quota { message Flow { string inflow = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; string outflow = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; string channel_value = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; } @@ -49,7 +49,7 @@ message RateLimit { Quota quota = 2; Flow flow = 3; string min_rate_limit_amount = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; } diff --git a/proto/composable/ratelimit/v1beta1/tx.proto b/proto/composable/ratelimit/v1beta1/tx.proto index 6f067b3c6..c79c2fcc6 100644 --- a/proto/composable/ratelimit/v1beta1/tx.proto +++ b/proto/composable/ratelimit/v1beta1/tx.proto @@ -29,19 +29,19 @@ message MsgAddRateLimit { string channel_id = 3 [ (gogoproto.customname) = "ChannelID" ]; // Max rate limit send string max_percent_send = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; // Max rate limit receive string max_percent_recv = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; // Duration of rate limit. The rate limit will reset when reach the duration. uint64 duration_hours = 6; // Min amount of rate limit (allow transfer max(min-amout, rate-limit)) string min_rate_limit_amount = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; } @@ -57,15 +57,15 @@ message MsgUpdateRateLimit { string denom = 2; string channel_id = 3 [ (gogoproto.customname) = "ChannelID" ]; string max_percent_send = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; string max_percent_recv = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; string min_rate_limit_amount = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; uint64 duration_hours = 7; diff --git a/scripts/08-wasm/ics10_grandpa_cw.wasm.json b/scripts/08-wasm/ics10_grandpa_cw.wasm.json index 1d1e12122..a176ef898 100644 --- a/scripts/08-wasm/ics10_grandpa_cw.wasm.json +++ b/scripts/08-wasm/ics10_grandpa_cw.wasm.json @@ -1 +1,13 @@ -{"deposit":"5000000000000000ppica","messages":[{"@type":"/ibc.lightclients.wasm.v1.MsgPushNewWasmCode","code":"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9lSq5snmx677gat+4n04rL7CVZffMej6t9rpu6fMmHXo4646ZPr193/5wYQ6Jj3lN8dc6anbm945deyDxKMfu9O888cl1cObbv/GySqp3txvyajd56bUgtofHnfvwUn1pWF/+cOVtybU80/8/YIJtyXV+j6nvPavlpQafsARJ935Q0c5x+/2vcOPd9XZN+ySXjnVUv1+c0vvo3raav4P5lx2zmhLvfKdb6zrS/Nx8PfPuDPxa0etdp556MSMUq8vTw7fbi9X3fTjD/50wf00X1f1/P2HvTz1zGHFzWcPSaq37r78/qOn5dRvzuix6Rt/ctSvVg/f+weET4Pddr1zEOH1H2z+0s96varU/of+eYdbT7XVq/c8Merju5Va0qF+dc7VSr162d0j+r1hq7+f/Y766CvEm1z2wont9yh17i0/efrg1xw1uKb/wMX03nZH/WVMekRK/ea1gxdNvT2jZqzIfLxhl6R6peGRmYkfJNTvr5mwdufBGXX3+4N+s+dZnjq9ddW/Xl2VUD+pPecvX36T+JzfZq6o2NdRO7bu+5XWeUnVuPSb86/czlNfX3TFgouJND9wwpjT1xEee2nvNx/e9RDCmxefPqOm1lP33HjO62demKUNt/TGGxpS6tCqPb702i5p1XT2macFBP9P77XfQzdWpNQz627+W//HbPVy8+n/mEn7/col95+yh+uqfzw14dv1IxJq6UPv3PijGqWufXK0av+XpRZX3TegzlPqyk0DPphETMoe+7+ZHzPWVvVj77/vtYytrmy/oN9z33XUV5ae8/zV9+TUW5X1z5x1t6deGvv4VyvfSqnrNtYOu2464c1j7D8f8DLR4+7uF377Q0+9/vq6tuHzPLX0N7cMWrnSUickxj9UdyHhufwHPz55qK2e+NIJH960hPblnXedef4dRPve8OqFR/lIKPyfn14wzVNzzpmzh/uOp94PJt940/dS6ruL//Hgyd9Kq/HBry8d+du06rjz4DUfP0vnxS637PDLmzz1VvF7rx9A8DXo97vtcOlPHdW+cvrTR33gqW+9+p+9552VVE2n3DHyXwMdlTjo7XEn0zwvCp497dgLHDX9iv8kdypYxKvs9b0vVyXVxBnLbzl5fEKtH3DyTdUDKtQOzz5dvW5oWp111FUPvPe6q1be8NvxT61LqsPefX6B38NVdS8X12x+Pql2G7Zh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","signer":"centauri10d07y265gmmuvt4z0w9aw880jnsr700j7g7ejq"}],"metadata":"none","summary":"none","title":"none"} \ No newline at end of file +{ + "deposit": "5000000000000000ppica", + "messages": [ + { + "@type": "/ibc.lightclients.wasm.v1.MsgPushNewWasmCode", + "code": "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9lSq5snmx677gat+4n04rL7CVZffMej6t9rpu6fMmHXo4646ZPr193/5wYQ6Jj3lN8dc6anbm945deyDxKMfu9O888cl1cObbv/GySqp3txvyajd56bUgtofHnfvwUn1pWF/+cOVtybU80/8/YIJtyXV+j6nvPavlpQafsARJ935Q0c5x+/2vcOPd9XZN+ySXjnVUv1+c0vvo3raav4P5lx2zmhLvfKdb6zrS/Nx8PfPuDPxa0etdp556MSMUq8vTw7fbi9X3fTjD/50wf00X1f1/P2HvTz1zGHFzWcPSaq37r78/qOn5dRvzuix6Rt/ctSvVg/f+weET4Pddr1zEOH1H2z+0s96varU/of+eYdbT7XVq/c8Merju5Va0qF+dc7VSr162d0j+r1hq7+f/Y766CvEm1z2wont9yh17i0/efrg1xw1uKb/wMX03nZH/WVMekRK/ea1gxdNvT2jZqzIfLxhl6R6peGRmYkfJNTvr5mwdufBGXX3+4N+s+dZnjq9ddW/Xl2VUD+pPecvX36T+JzfZq6o2NdRO7bu+5XWeUnVuPSb86/czlNfX3TFgouJND9wwpjT1xEee2nvNx/e9RDCmxefPqOm1lP33HjO62demKUNt/TGGxpS6tCqPb702i5p1XT2macFBP9P77XfQzdWpNQz627+W//HbPVy8+n/mEn7/col95+yh+uqfzw14dv1IxJq6UPv3PijGqWufXK0av+XpRZX3TegzlPqyk0DPphETMoe+7+ZHzPWVvVj77/vtYytrmy/oN9z33XUV5ae8/zV9+TUW5X1z5x1t6deGvv4VyvfSqnrNtYOu2464c1j7D8f8DLR4+7uF377Q0+9/vq6tuHzPLX0N7cMWrnSUickxj9UdyHhufwHPz55qK2e+NIJH960hPblnXedef4dRPve8OqFR/lIKPyfn14wzVNzzpmzh/uOp94PJt940/dS6ruL//Hgyd9Kq/HBry8d+du06rjz4DUfP0vnxS637PDLmzz1VvF7rx9A8DXo97vtcOlPHdW+cvrTR33gqW+9+p+9552VVE2n3DHyXwMdlTjo7XEn0zwvCp497dgLHDX9iv8kdypYxKvs9b0vVyXVxBnLbzl5fEKtH3DyTdUDKtQOzz5dvW5oWp111FUPvPe6q1be8NvxT61LqsPefX6B38NVdS8X12x+Pql2G7Zh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", + "signer": "pica10d07y265gmmuvt4z0w9aw880jnsr700jp7sqj5" + } + ], + "metadata": "none", + "summary": "none", + "title": "none" +} diff --git a/scripts/50/migrate-wasm-code.sh b/scripts/50/migrate-wasm-code.sh new file mode 100755 index 000000000..5fec7112a --- /dev/null +++ b/scripts/50/migrate-wasm-code.sh @@ -0,0 +1,39 @@ +#!/bin/bash +KEY=mykey +DENOM="ppica" +HOME_DIR="mytestnet" +CHAINID="centauri-dev" +BINARY=_build/new/picad +WASM_CONTRACT_PATH="$PWD/bin/ics10_grandpa_cw.wasm" + +WASM_CLIENT_ID="08-wasm-0" +HEX_CHECKSUM=$(sha256sum "$WASM_CONTRACT_PATH" | awk '{ print $1 }') +echo "Hex checksum is: $HEX_CHECKSUM" + +# Convert HEX_CHECKSUM to raw bytes +RAW_CHECKSUM=$(echo "$HEX_CHECKSUM" | xxd -r -p) + +# Convert raw bytes to Base64 +BASE64_CHECKSUM=$(echo -n "$RAW_CHECKSUM" | base64) +echo "Base 64 check sum is: $BASE64_CHECKSUM" + +$BINARY tx ibc-wasm migrate-contract $WASM_CLIENT_ID $HEX_CHECKSUM {} --from $KEY --keyring-backend test --chain-id $CHAINID --home $HOME_DIR --gas 20002152622 --fees 20020166${DENOM} -y + +# exit 0 +# sleep 6 +# # $BINARY query gov proposals -o json > /tmp/proposals.json +# PROPOSAL_ID=5 +# echo "Proposal ID is: $PROPOSAL_ID" + +# # Validator vote yes +# $BINARY tx gov vote $PROPOSAL_ID yes --from $KEY --fees 100000${DENOM} --keyring-backend test --home $HOME_DIR --chain-id $CHAINID -y + +# #Voting time is 20s, check in localnode.sh +# sleep 20 + +# # Check the status +# $BINARY query gov proposal $PROPOSAL_ID -o json > /tmp/proposal.json +# STATUS=$(jq -r '.proposal.status' /tmp/proposal.json) +# echo "Proposal status is: $STATUS" + + diff --git a/scripts/50/store-wasm-code.sh b/scripts/50/store-wasm-code.sh new file mode 100755 index 000000000..5200a01a4 --- /dev/null +++ b/scripts/50/store-wasm-code.sh @@ -0,0 +1,36 @@ +#!/bin/bash +KEY=mykey +DENOM="ppica" +HOME_DIR="mytestnet" +CHAINID="centauri-dev" +BINARY=picad +WASM_CONTRACT_PATH="$PWD/bin/ics10_grandpa_cw.wasm" + +# Wait for chain to start +echo "Waiting for chain to start..." + +picad keys show mykey --keyring-backend test --home mytestnet + +$BINARY tx ibc-wasm store-code $WASM_CONTRACT_PATH --from mykey --keyring-backend test --chain-id $CHAINID --home $HOME_DIR --gas 20002152622 --fees 20020166${DENOM} -y + +# exit 0 +# # Fetch proposal id +# sleep 6 +# # $BINARY query gov proposals -o json > /tmp/proposals.json +# # PROPOSAL_ID=$(jq -r '.proposals[-1].id' /tmp/proposals.json) +# PROPOSAL_ID=3 ## fix this +# echo "Proposal ID is: $PROPOSAL_ID" + +# # Validator vote yes +# $BINARY tx gov vote $PROPOSAL_ID yes --from $KEY --fees 100000${DENOM} --keyring-backend test --home $HOME_DIR --chain-id $CHAINID -y + +# #Voting time is 20s, check in localnode.sh +# sleep 20 + +# # Check the status +# $BINARY query gov proposal $PROPOSAL_ID -o json > /tmp/proposal.json +# STATUS=$(jq -r '.proposal.status' /tmp/proposal.json) +# echo "Proposal status is: $STATUS" + +# # Query wasm checksums +# $BINARY query ibc-wasm checksums diff --git a/scripts/localnode-upgrade.sh b/scripts/localnode-upgrade.sh new file mode 100755 index 000000000..c8d5dd007 --- /dev/null +++ b/scripts/localnode-upgrade.sh @@ -0,0 +1,78 @@ +#!/bin/bash +BINARY=$1 +CHAINID="localpica" +MONIKER="localtestnet" +KEYALGO="secp256k1" +KEYRING="test" +LOGLEVEL="info" +CONTINUE=${CONTINUE:-"false"} +# to trace evm +#TRACE="--trace" +TRACE="" + +KEY="test0" +KEY1="test1" +KEY2="test2" + +HOME_DIR=mytestnet +DENOM=${2:-ppica} + + +if [ "$CONTINUE" == "true" ]; then + echo "\n ->> continuing from previous state" + $BINARY start --home $HOME_DIR --log_level debug + exit 0 +fi + + +# remove existing daemon +rm -rf $HOME_DIR + +$BINARY config keyring-backend $KEYRING +$BINARY config chain-id $CHAINID +# if $KEY exists it should be deleted + +$BINARY init $CHAINID --chain-id $CHAINID --default-denom $DENOM --home $HOME_DIR >/dev/null 2>&1 + + +echo "decorate bright ozone fork gallery riot bus exhaust worth way bone indoor calm squirrel merry zero scheme cotton until shop any excess stage laundry" | $BINARY keys add $KEY --keyring-backend $KEYRING --algo $KEYALGO --recover --home $HOME_DIR + +$BINARY keys add $KEY1 --keyring-backend $KEYRING --home $HOME_DIR +$BINARY keys add $KEY2 --keyring-backend $KEYRING --home $HOME_DIR +$BINARY keys add $KEY3 --keyring-backend $KEYRING --home $HOME_DIR + + +update_test_genesis () { + # update_test_genesis '.consensus_params["block"]["max_gas"]="100000000"' + cat $HOME_DIR/config/genesis.json | jq "$1" > $HOME_DIR/config/tmp_genesis.json && mv $HOME_DIR/config/tmp_genesis.json $HOME_DIR/config/genesis.json +} + +# Allocate genesis accounts (cosmos formatted addresses) +$BINARY add-genesis-account $KEY 100000000000000000000000000$DENOM --keyring-backend $KEYRING --home $HOME_DIR +$BINARY add-genesis-account $KEY1 100000000000000000000000000$DENOM --keyring-backend $KEYRING --home $HOME_DIR +$BINARY add-genesis-account $KEY2 100000000000000000000000000$DENOM --keyring-backend $KEYRING --home $HOME_DIR +$BINARY add-genesis-account $KEY3 100000000000000000000000000$DENOM --keyring-backend $KEYRING --home $HOME_DIR + + +# Sign genesis transaction +$BINARY gentx $KEY 1000000000000000000000$DENOM --keyring-backend $KEYRING --chain-id $CHAINID --home $HOME_DIR + +update_test_genesis '.app_state["gov"]["params"]["voting_period"]="5s"' +update_test_genesis '.app_state["mint"]["params"]["mint_denom"]="'$DENOM'"' +update_test_genesis '.app_state["gov"]["params"]["min_deposit"]=[{"denom":"'$DENOM'","amount": "100"}]' +update_test_genesis '.app_state["crisis"]["constant_fee"]={"denom":"'$DENOM'","amount":"1000"}' +update_test_genesis '.app_state["staking"]["params"]["bond_denom"]="'$DENOM'"' + +# sed -i 's/timeout_commit = "5s"/timeout_commit = "500ms"/' $HOME_DIR/config/config.toml + +echo "updating.." +sed -i '' 's/timeout_commit = "5s"/timeout_commit = "500ms"/' $HOME_DIR/config/config.toml + +# Collect genesis tx +$BINARY collect-gentxs --home $HOME_DIR + +# Run this to ensure everything worked and that the genesis file is setup correctly +$BINARY validate-genesis --home $HOME_DIR + +$BINARY start --rpc.unsafe --rpc.laddr tcp://0.0.0.0:26657 --pruning=nothing --minimum-gas-prices=0.000ppica --home $HOME_DIR + diff --git a/scripts/localnode.sh b/scripts/localnode.sh index b9ff67675..3acacf83a 100755 --- a/scripts/localnode.sh +++ b/scripts/localnode.sh @@ -1,19 +1,18 @@ #!/bin/bash - +BINARY=$1 KEY="mykey" -KEY1="mykey1" -CHAINID="centauri-dev" +CHAINID="localpica" MONIKER="localtestnet" KEYALGO="secp256k1" KEYRING="test" LOGLEVEL="info" -BINARY=$1 +CONTINUE=${CONTINUE:-"false"} # to trace evm #TRACE="--trace" TRACE="" HOME_DIR=mytestnet -DENOM=ppica +DENOM=${2:-ppica} if [ "$CONTINUE" == "true" ]; then @@ -22,49 +21,37 @@ if [ "$CONTINUE" == "true" ]; then exit 0 fi -$BINARY config keyring-backend $KEYRING -$BINARY config chain-id $CHAINID # remove existing daemon rm -rf $HOME_DIR +# centaurid config keyring-backend $KEYRING +# centaurid config chain-id $CHAINID + # if $KEY exists it should be deleted + echo "decorate bright ozone fork gallery riot bus exhaust worth way bone indoor calm squirrel merry zero scheme cotton until shop any excess stage laundry" | $BINARY keys add $KEY --keyring-backend $KEYRING --algo $KEYALGO --recover --home $HOME_DIR -echo "bottom loan skill merry east cradle onion journey palm apology verb edit desert impose absurd oil bubble sweet glove shallow size build burst effort" | $BINARY keys add $KEY1 --keyring-backend $KEYRING --algo $KEYALGO --recover --home $HOME_DIR -$BINARY init $CHAINID --chain-id $CHAINID --default-denom "ppica" --home $HOME_DIR update_test_genesis () { # update_test_genesis '.consensus_params["block"]["max_gas"]="100000000"' - cat $HOME_DIR/config/genesis.json | jq "$1" > $HOME_DIR/config/tmp_genesis.json && cp $HOME_DIR/config/tmp_genesis.json $HOME_DIR/config/genesis.json + cat $HOME_DIR/config/genesis.json | jq "$1" > $HOME_DIR/config/tmp_genesis.json && mv $HOME_DIR/config/tmp_genesis.json $HOME_DIR/config/genesis.json } # Allocate genesis accounts (cosmos formatted addresses) -$BINARY add-genesis-account $KEY 100000000000000000000000000ppica --keyring-backend $KEYRING --home $HOME_DIR -$BINARY add-genesis-account $KEY1 100000000000000000000000000ppica --keyring-backend $KEYRING --home $HOME_DIR +$BINARY add-genesis-account $KEY 100000000000000000000000000$DENOM --keyring-backend $KEYRING --home $HOME_DIR + # Sign genesis transaction -$BINARY gentx $KEY 10030009994127689ppica --keyring-backend $KEYRING --chain-id $CHAINID --home $HOME_DIR +$BINARY gentx $KEY 1000000000000000000000$DENOM --keyring-backend $KEYRING --chain-id $CHAINID --home $HOME_DIR update_test_genesis '.app_state["gov"]["params"]["voting_period"]="5s"' update_test_genesis '.app_state["mint"]["params"]["mint_denom"]="'$DENOM'"' -update_test_genesis '.app_state["gov"]["params"]["min_deposit"]=[{"denom":"'$DENOM'","amount": "1"}]' +update_test_genesis '.app_state["gov"]["params"]["min_deposit"]=[{"denom":"'$DENOM'","amount": "1000000"}]' update_test_genesis '.app_state["crisis"]["constant_fee"]={"denom":"'$DENOM'","amount":"1000"}' +update_test_genesis '.app_state["staking"]["params"]["bond_denom"]="'$DENOM'"' -# Collect genesis tx -$BINARY collect-gentxs --home $HOME_DIR - -# Run this to ensure everything worked and that the genesis file is setup correctly -$BINARY validate-genesis --home $HOME_DIR - -if [[ $1 == "pending" ]]; then - echo "pending mode is on, please wait for the first block committed." -fi - -# update request max size so that we can upload the light client -# '' -e is a must have params on mac, if use linux please delete before run -sed -i'' -e 's/max_body_bytes = /max_body_bytes = 1/g' $HOME_DIR/config/config.toml -sed -i'' -e 's/max_tx_bytes = 1048576/max_tx_bytes = 10000000/g' $HOME_DIR/config/config.toml -sed -i'' -e 's/timeout_commit = "5s"/timeout_commit = "1s"/' $HOME_DIR/config/config.toml +# sed -i 's/timeout_commit = "5s"/timeout_commit = "500ms"/' $HOME_DIR/config/config.toml +echo "updating.." +sed -i '' 's/timeout_commit = "5s"/timeout_commit = "500ms"/' $HOME_DIR/config/config.toml -$BINARY start --rpc.unsafe --rpc.laddr tcp://0.0.0.0:26657 --pruning=nothing --minimum-gas-prices=0.001ppica --home=$HOME_DIR --log_level trace --trace --with-tendermint=true --transport=socket --grpc.enable=true --grpc-web.enable=false --api.enable=true --p2p.pex=false --p2p.upnp=false \ No newline at end of file diff --git a/scripts/old-node/push-08-wasm.sh b/scripts/old-node/push-08-wasm.sh new file mode 100755 index 000000000..a8184b6db --- /dev/null +++ b/scripts/old-node/push-08-wasm.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +KEY="mykey" +KEYALGO="secp256k1" +KEYRING="test" +HOME_DIR="mytestnet" +# validate dependencies are installed +command -v jq > /dev/null 2>&1 || { echo >&2 "jq not installed. More info: https://stedolan.github.io/jq/download/"; exit 1; } + +./_build/old/centaurid tx 08-wasm push-wasm contracts/ics10_grandpa_cw.wasm --from=mykey --gas 10002152622 --fees 10020166upica --keyring-backend test --chain-id=localpica -y --home $HOME_DIR + +sleep 5 + +./_build/old/centaurid query 08-wasm all-wasm-code --home $HOME_DIR \ No newline at end of file diff --git a/scripts/old-node/testnode.sh b/scripts/old-node/testnode.sh new file mode 100755 index 000000000..2911edc98 --- /dev/null +++ b/scripts/old-node/testnode.sh @@ -0,0 +1,71 @@ +#!/bin/bash +BINARY=${1:-_build/old/centaurid} +KEY="mykey" +CHAINID="localpica" +MONIKER="localtestnet" +KEYALGO="secp256k1" +KEYRING="test" +LOGLEVEL="info" +CONTINUE=${CONTINUE:-"false"} +# to trace evm +#TRACE="--trace" +TRACE="" + +HOME_DIR=~/.banksy +DENOM=upica + +if [ "$CONTINUE" == "true" ]; then + echo "\n ->> continuing from previous state" + $BINARY start --home $HOME_DIR --log_level debug + exit 0 +fi + + +# remove existing daemon +rm -rf $HOME_DIR + +# centaurid config keyring-backend $KEYRING +# centaurid config chain-id $CHAINID + +# if $KEY exists it should be deleted +$BINARY init $MONIKER --chain-id $CHAINID --home $HOME_DIR > /dev/null 2>&1 + +echo "decorate bright ozone fork gallery riot bus exhaust worth way bone indoor calm squirrel merry zero scheme cotton until shop any excess stage laundry" | $BINARY keys add $KEY --keyring-backend $KEYRING --algo $KEYALGO --recover --home $HOME_DIR + +update_test_genesis () { + # update_test_genesis '.consensus_params["block"]["max_gas"]="100000000"' + cat $HOME_DIR/config/genesis.json | jq "$1" > $HOME_DIR/config/tmp_genesis.json && mv $HOME_DIR/config/tmp_genesis.json $HOME_DIR/config/genesis.json +} + +# Allocate genesis accounts (cosmos formatted addresses) +$BINARY add-genesis-account $KEY 100000000000000000000000000$DENOM --keyring-backend $KEYRING --home $HOME_DIR + + +# Sign genesis transaction +$BINARY gentx $KEY 1000000000000000000000$DENOM --keyring-backend $KEYRING --chain-id $CHAINID --home $HOME_DIR + +update_test_genesis '.app_state["gov"]["params"]["voting_period"]="50s"' +update_test_genesis '.app_state["mint"]["params"]["mint_denom"]="'$DENOM'"' +update_test_genesis '.app_state["gov"]["params"]["min_deposit"]=[{"denom":"'$DENOM'","amount": "0"}]' +update_test_genesis '.app_state["crisis"]["constant_fee"]={"denom":"'$DENOM'","amount":"1000"}' +update_test_genesis '.app_state["staking"]["params"]["bond_denom"]="'$DENOM'"' + +# sed -i 's/timeout_commit = "5s"/timeout_commit = "500ms"/' $HOME_DIR/config/config.toml + + +# Collect genesis tx +$BINARY collect-gentxs --home $HOME_DIR + +# Run this to ensure everything worked and that the genesis file is setup correctly +$BINARY validate-genesis --home $HOME_DIR + +if [[ $1 == "pending" ]]; then + echo "pending mode is on, please wait for the first block committed." +fi + +# update request max size so that we can upload the light client +# '' -e is a must have params on mac, if use linux please delete before run +sed -i'' -e 's/max_body_bytes = /max_body_bytes = 1/g' $HOME_DIR/config/config.toml + +# Start the node (remove the --pruning=nothing flag if historical queries are not needed) +$BINARY start --pruning=nothing --minimum-gas-prices=0.0001$DENOM --rpc.laddr tcp://0.0.0.0:26657 --home $HOME_DIR --log_level debug diff --git a/scripts/polkadot-js/getter/get_balance.ts b/scripts/polkadot-js/getter/get_balance.ts new file mode 100644 index 000000000..38a04803a --- /dev/null +++ b/scripts/polkadot-js/getter/get_balance.ts @@ -0,0 +1,39 @@ +import { ApiPromise, WsProvider } from "@polkadot/api"; +import { getProvider, getWallets } from "../utils/indexer"; + +// Put the address of the account you want to fetch info for here + +async function fetchAccountInfo() { + // Initialise the provider to connect to the local node + + // Create the API instance + const api = await getProvider(); + + const wallets = getWallets(); + try { + // Fetch the account info + const accountInfo = await api.query.system.account(wallets.alice.address); + + console.log( + `Account ${wallets.alice.address} info:`, + accountInfo.toHuman() + ); + } catch (error) { + console.error("Error fetching account info:", error); + } + + try { + const bobAccountInfo = await api.query.system.account(wallets.bob.address); + console.log( + `Account ${wallets.bob.address} info:`, + bobAccountInfo.toHuman() + ); + } catch (error) { + console.error("Error fetching account info:", error); + } finally { + // Disconnect the provider when done + api.disconnect(); + } +} + +fetchAccountInfo(); diff --git a/scripts/polkadot-js/getter/list_method_params.ts b/scripts/polkadot-js/getter/list_method_params.ts new file mode 100644 index 000000000..68825a84d --- /dev/null +++ b/scripts/polkadot-js/getter/list_method_params.ts @@ -0,0 +1,88 @@ +import { ApiPromise } from "@polkadot/api"; +import { getProvider } from "../utils/indexer"; + +async function run() { + const api = await getProvider(); + await listTxMethods(api); +} +type MetadataV14 = { + magicNumber: string; + metadata: { + v14: { + lookup: { + types: [ + { + id: string; + type: { + path: string[]; + params: object[]; + def: object; + docs: string[]; + }; + } + ]; + }; + pallets: Array<{ + name: string; + calls?: Array<{ + name: string; + args: Array<{ + name: string; + type: string | number; // Depending on how types are represented, you might need to adjust this + }>; + }>; + }>; + extrinsic: object; + type: string; + }; + }; +}; + +async function listTxMethods(api: ApiPromise) { + console.log("\nTransaction Methods:"); + const metadata = await api.rpc.state.getMetadata(); + + const metadataV14 = metadata.toJSON() as { + magicNumber: string; + metadata: { + v14: { + lookup: { + types: [ + { + id: string; + type: { + path: string[]; + params: object[]; + def: object; + docs: string[]; + }; + } + ]; + }; + pallets: Array; + extrinsic: object; + type: string; + }; + }; + }; + + console.log("pallets: ", metadataV14.metadata.v14.pallets); + // Usage example, assuming you have metadataV14 of type MetadataV14 + const ibcModule = metadataV14.metadata.v14.pallets.find( + (pallet) => pallet.name === "Ibc" + ); + + if (ibcModule && ibcModule.calls) { + const transferMethod = ibcModule.calls.find( + (call: any) => call.name === "transfer" + ); + if (transferMethod) { + console.log(`Parameters for ibc.transfer:`); + transferMethod.args.forEach((arg: any) => { + console.log(`${arg.name}: ${arg.type}`); + }); + } + } +} + +run().catch(console.error); diff --git a/scripts/polkadot-js/getter/list_rpc_methods.ts b/scripts/polkadot-js/getter/list_rpc_methods.ts new file mode 100644 index 000000000..842d76d58 --- /dev/null +++ b/scripts/polkadot-js/getter/list_rpc_methods.ts @@ -0,0 +1,33 @@ +import { ApiPromise, WsProvider } from "@polkadot/api"; +import { getProvider, getWallets } from "../utils/indexer"; + +// Put the address of the account you want to fetch info for here + +async function run() { + // Initialise the provider to connect to the local node + + // Create the API instance + const api = await getProvider(); + + listTxMethods(api); +} + +run(); + +function listTxMethods(api: ApiPromise) { + console.log("\nTransaction Methods:"); + Object.keys(api.tx).forEach((module) => { + Object.keys(api.tx[module]).forEach((method) => { + console.log(`${module}.${method}`); + }); + }); +} + +function listQueryMethods(api: ApiPromise) { + console.log("\nQuery Methods:"); + Object.keys(api.query).forEach((module) => { + Object.keys(api.query[module]).forEach((method) => { + console.log(`${module}.${method}`); + }); + }); +} diff --git a/scripts/polkadot-js/package.json b/scripts/polkadot-js/package.json new file mode 100644 index 000000000..621fb04a5 --- /dev/null +++ b/scripts/polkadot-js/package.json @@ -0,0 +1,13 @@ +{ + "name": "polkadot-js", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "devDependencies": { + "typescript": "^5.4.5" + }, + "dependencies": { + "@polkadot/api": "^10.12.6", + "@polkadot/keyring": "^12.6.2" + } +} diff --git a/scripts/polkadot-js/src/ibc-transfer.ts b/scripts/polkadot-js/src/ibc-transfer.ts new file mode 100644 index 000000000..2f30f5e00 --- /dev/null +++ b/scripts/polkadot-js/src/ibc-transfer.ts @@ -0,0 +1,109 @@ +import { ApiPromise, WsProvider } from "@polkadot/api"; +import { Keyring } from "@polkadot/keyring"; +import BN from "bn.js"; +import { KeyringPair } from "@polkadot/keyring/types"; +import { getProvider, getWallets } from "../utils/indexer"; + +async function sendIbcFundsTx( + api: ApiPromise, + senderKeypair: KeyringPair, + channelID: string, + amount: { denom: string; amount: string; address: string }, + options: any +) { + { + // Ensure the API is connected + if (!api.isConnected) { + await api.connect(); + } + + // Calculate the timestamp for 5 minutes into the future + const fiveMinutes = 5 * 60 * 1000; // 5 minutes in milliseconds + const futureTimestamp = new Date().getTime() + fiveMinutes; // Current time + 5 minutes + + const substrateFutureTimestamp = api.createType("u64", futureTimestamp); + + // dont have to convert + const to = { Raw: amount.address }; + + const assetNum = 1; + const sourceChannel = 0; + const timeout = { + Offset: { + timestamp: api.createType("Option", substrateFutureTimestamp), // or provide a specific timestamp offset + }, + }; + + // Construct paramters + const params = { + to, + source_channel: sourceChannel, + timeout, + }; + + const assetId = new BN(assetNum); + const amountBN = new BN(amount.amount, 10); + const memo = null; + + // Make the call to ibc.transfer with the transferObj + const call = api.tx.ibc.transfer(params, assetId, amountBN, memo); + // Sign and send the transaction + return await new Promise((resolve, reject) => { + call + .signAndSend( + senderKeypair, + { nonce: -1 }, + ({ status, dispatchError }) => { + if (status.isInBlock || status.isFinalized) { + if (dispatchError) { + if (dispatchError.isModule) { + // For module errors, we have the section indexed, lookup + const decoded = api.registry.findMetaError( + dispatchError.asModule + ); + const { docs, name, section } = decoded; + reject(new Error(`${section}.${name}: ${docs.join(" ")}`)); + } else { + // Other, CannotLookup, BadOrigin, no extra info + reject(new Error(dispatchError.toString())); + } + } else { + resolve(status.asFinalized.toString()); + } + } + } + ) + .catch(reject); + }); + } +} +// Example usage +async function main() { + const api = await getProvider(); + const wallets = getWallets(); + const senderKeypair = wallets.alice; + + const channelID = "0"; + const amount = { + denom: "1", + amount: "1000000000000000", + address: "pica1hj5fveer5cjtn4wd6wstzugjfdxzl0xpas3hgy", + }; + + const options = {}; + + try { + const hash = await sendIbcFundsTx( + api, + senderKeypair, + channelID, + amount, + options + ); + console.log("Transaction hash:", hash); + } catch (error) { + console.error("Error sending IBC funds:", error); + } +} + +main().catch(console.error); diff --git a/scripts/polkadot-js/src/simple-connect.ts b/scripts/polkadot-js/src/simple-connect.ts new file mode 100644 index 000000000..8f4bad209 --- /dev/null +++ b/scripts/polkadot-js/src/simple-connect.ts @@ -0,0 +1,25 @@ +// Required imports +import { ApiPromise, WsProvider } from "@polkadot/api"; + +async function main() { + // Initialise the provider to connect to the local node + const provider = new WsProvider("ws://127.0.0.1:9944"); + + // Create the API and wait until ready + const api = await ApiPromise.create({ provider }); + + // Retrieve the chain & node information via rpc calls + const [chain, nodeName, nodeVersion] = await Promise.all([ + api.rpc.system.chain(), + api.rpc.system.name(), + api.rpc.system.version(), + ]); + + console.log( + `You are connected to chain ${chain} using ${nodeName} v${nodeVersion}` + ); +} + +main() + .catch(console.error) + .finally(() => process.exit()); diff --git a/scripts/polkadot-js/src/transfer.ts b/scripts/polkadot-js/src/transfer.ts new file mode 100644 index 000000000..52e2b7210 --- /dev/null +++ b/scripts/polkadot-js/src/transfer.ts @@ -0,0 +1,51 @@ +import { ApiPromise } from "@polkadot/api"; +import { Keyring } from "@polkadot/keyring"; +import { getProvider, getWallets } from "../utils/indexer"; + +// The amount to transfer +const amount = 1000; // Adjust the amount as needed + +async function transferFunds() { + const api = await getProvider(); + + console.log("hello"); + const wallets = getWallets(); + + console.log("Alice address: ", wallets.alice.address); + console.log("Bob address: ", wallets.bob.address); + + // Fetch the next nonce for the Alice's account + const { nonce } = (await api.query.system.account( + wallets.alice.address + )) as any; + + // Construct the transaction + const transfer = api.tx.balances.transfer(wallets.bob.address, amount); + + console.log( + `Transferring ${amount} from ${wallets.alice.address} to ${wallets.bob.address}` + ); + console.log(`Nonce: ${nonce}`); + + // Sign and send the transaction, and subscribe to its status updates + const unsub = await transfer.signAndSend( + wallets.alice, + ({ status, events }) => { + if (status.isInBlock) { + console.log(`Transaction included at blockHash ${status.asInBlock}`); + } else if (status.isFinalized) { + console.log(`Transaction finalized at blockHash ${status.asFinalized}`); + events.forEach(({ event: { data, method, section }, phase }) => { + console.log(`\t' ${phase}: ${section}.${method} ${data}`); + }); + + // Once finalized, we can unsubscribe from further updates + unsub(); + // Disconnect from the provider + api.disconnect(); + } + } + ); +} + +transferFunds(); diff --git a/scripts/polkadot-js/tsconfig.json b/scripts/polkadot-js/tsconfig.json new file mode 100644 index 000000000..b0678e34f --- /dev/null +++ b/scripts/polkadot-js/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "outDir": "./dist" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "**/*.spec.ts"] +} diff --git a/scripts/polkadot-js/utils/indexer.ts b/scripts/polkadot-js/utils/indexer.ts new file mode 100644 index 000000000..2d74fe12f --- /dev/null +++ b/scripts/polkadot-js/utils/indexer.ts @@ -0,0 +1,30 @@ +import { ApiPromise, WsProvider } from "@polkadot/api"; +import { Keyring } from "@polkadot/keyring"; +import { KeyringPair } from "@polkadot/keyring/types"; + +export type TestWallets = { + alice: KeyringPair; + bob: KeyringPair; +}; + +export const getProvider = async (): Promise => { + // Initialise the provider to connect to the local node + const wsEndpoint = "ws://127.0.0.1:9988"; + const provider = new WsProvider(wsEndpoint); + + console.log(`connection to provider at ${wsEndpoint}`); + + // Create the API and wait until ready + const api = await ApiPromise.create({ provider }); + + return api; +}; + +export const getWallets = (): TestWallets => { + // Add Alice to our keyring with a well-known development mnemonic + const keyring = new Keyring({ type: "sr25519" }); + const alice = keyring.addFromUri("//Alice"); + const bob = keyring.addFromUri("//Bob"); + + return { alice, bob }; +}; diff --git a/scripts/polkadot-js/yarn.lock b/scripts/polkadot-js/yarn.lock new file mode 100644 index 000000000..3153ee0e0 --- /dev/null +++ b/scripts/polkadot-js/yarn.lock @@ -0,0 +1,569 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@noble/curves@^1.3.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.0.tgz#f05771ef64da724997f69ee1261b2417a49522d6" + integrity sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg== + dependencies: + "@noble/hashes" "1.4.0" + +"@noble/hashes@1.4.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.3.3": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + +"@polkadot-api/client@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/client/-/client-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#5d6b863f63f5c6ecd4183fcf0c5c84dd349f7627" + integrity sha512-0fqK6pUKcGHSG2pBvY+gfSS+1mMdjd/qRygAcKI5d05tKsnZLRnmhb9laDguKmGEIB0Bz9vQqNK3gIN/cfvVwg== + dependencies: + "@polkadot-api/metadata-builders" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/substrate-bindings" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/substrate-client" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/utils" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + +"@polkadot-api/json-rpc-provider-proxy@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#cc28fb801db6a47824261a709ab924ec6951eb96" + integrity sha512-0hZ8vtjcsyCX8AyqP2sqUHa1TFFfxGWmlXJkit0Nqp9b32MwZqn5eaUAiV2rNuEpoglKOdKnkGtUF8t5MoodKw== + +"@polkadot-api/json-rpc-provider@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#2f71bfb192d28dd4c400ef8b1c5f934c676950f3" + integrity sha512-EaUS9Fc3wsiUr6ZS43PQqaRScW7kM6DYbuM/ou0aYjm8N9MBqgDbGm2oL6RE1vAVmOfEuHcXZuZkhzWtyvQUtA== + +"@polkadot-api/metadata-builders@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#085db2a3c7b100626b2fae3be35a32a24ea7714f" + integrity sha512-BD7rruxChL1VXt0icC2gD45OtT9ofJlql0qIllHSRYgama1CR2Owt+ApInQxB+lWqM+xNOznZRpj8CXNDvKIMg== + dependencies: + "@polkadot-api/substrate-bindings" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/utils" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + +"@polkadot-api/substrate-bindings@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#f836a554a9ead6fb6356079c725cd53f87238932" + integrity sha512-N4vdrZopbsw8k57uG58ofO7nLXM4Ai7835XqakN27MkjXMp5H830A1KJE0L9sGQR7ukOCDEIHHcwXVrzmJ/PBg== + dependencies: + "@noble/hashes" "^1.3.1" + "@polkadot-api/utils" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@scure/base" "^1.1.1" + scale-ts "^1.6.0" + +"@polkadot-api/substrate-client@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-client/-/substrate-client-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#55ae463f4143495e328465dd16b03e71663ef4c4" + integrity sha512-lcdvd2ssUmB1CPzF8s2dnNOqbrDa+nxaaGbuts+Vo8yjgSKwds2Lo7Oq+imZN4VKW7t9+uaVcKFLMF7PdH0RWw== + +"@polkadot-api/utils@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/utils/-/utils-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#759698dcf948745ea37cc5ab6abd49a00f1b0c31" + integrity sha512-0CYaCjfLQJTCRCiYvZ81OncHXEKPzAexCMoVloR+v2nl/O2JRya/361MtPkeNLC6XBoaEgLAG9pWQpH3WePzsw== + +"@polkadot/api-augment@10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-10.12.6.tgz#1e4d551e55509267dfe963d2d3af215140d7249f" + integrity sha512-CZHaFAd6zexk3JCm1mY5doE1E634xNpKaTGpbs61Ch285d5EqBY25GdzGNiMprNl4VyRFT4N7dXKfwEdsM6Z9w== + dependencies: + "@polkadot/api-base" "10.12.6" + "@polkadot/rpc-augment" "10.12.6" + "@polkadot/types" "10.12.6" + "@polkadot/types-augment" "10.12.6" + "@polkadot/types-codec" "10.12.6" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/api-base@10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-10.12.6.tgz#5aabee701d0e18e76b9f20c116f26a85041a3087" + integrity sha512-6EzMettffiadB5j0X2nValtrEZJ2dKZMArfWHbSCV1QRSPOaMO3Phf/idqtF8HgBHD3FCHJ+JsZEns6xpkpteg== + dependencies: + "@polkadot/rpc-core" "10.12.6" + "@polkadot/types" "10.12.6" + "@polkadot/util" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/api-derive@10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-10.12.6.tgz#37b9fc7d026481eb6db76cdfb4683c70ee024eaa" + integrity sha512-stjciYU9caSvPrcPo40zwPu15O7Q9OK9ldMFyyQkDdUT4cCE0LHuCmTNwcm4XhQq3XXJn+e7WNdhBfquwvkuhw== + dependencies: + "@polkadot/api" "10.12.6" + "@polkadot/api-augment" "10.12.6" + "@polkadot/api-base" "10.12.6" + "@polkadot/rpc-core" "10.12.6" + "@polkadot/types" "10.12.6" + "@polkadot/types-codec" "10.12.6" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/api@10.12.6", "@polkadot/api@^10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-10.12.6.tgz#d182acc4898350e920ad9a3b01d8ecbcf5359d49" + integrity sha512-qWF7qFLZtpSILuPeZcvz0oCBXe89XndDjzgCnflvEVIUkQvxtFM8mDXpzI4bz8klrLYHlyFbP7HJl/xLi+XTew== + dependencies: + "@polkadot/api-augment" "10.12.6" + "@polkadot/api-base" "10.12.6" + "@polkadot/api-derive" "10.12.6" + "@polkadot/keyring" "^12.6.2" + "@polkadot/rpc-augment" "10.12.6" + "@polkadot/rpc-core" "10.12.6" + "@polkadot/rpc-provider" "10.12.6" + "@polkadot/types" "10.12.6" + "@polkadot/types-augment" "10.12.6" + "@polkadot/types-codec" "10.12.6" + "@polkadot/types-create" "10.12.6" + "@polkadot/types-known" "10.12.6" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + eventemitter3 "^5.0.1" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/keyring@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-12.6.2.tgz#6067e6294fee23728b008ac116e7e9db05cecb9b" + integrity sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw== + dependencies: + "@polkadot/util" "12.6.2" + "@polkadot/util-crypto" "12.6.2" + tslib "^2.6.2" + +"@polkadot/networks@12.6.2", "@polkadot/networks@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-12.6.2.tgz#791779fee1d86cc5b6cd371858eea9b7c3f8720d" + integrity sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w== + dependencies: + "@polkadot/util" "12.6.2" + "@substrate/ss58-registry" "^1.44.0" + tslib "^2.6.2" + +"@polkadot/rpc-augment@10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-10.12.6.tgz#1815e48c59109d0c8d9703035e9c7f376413201e" + integrity sha512-MMZgdZtVygHqgsmCdKhfaN9ywf6im72xJzc9H8fkqyoJ+cGVy36uI3e8YwEM9vV6g/nallFmz4mU46u8/TjGlw== + dependencies: + "@polkadot/rpc-core" "10.12.6" + "@polkadot/types" "10.12.6" + "@polkadot/types-codec" "10.12.6" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/rpc-core@10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-10.12.6.tgz#5b855d7ee4a6571e3273687a08a85101f0980bfd" + integrity sha512-aBXhkryv2NMNg+cWajn/G0DF13inXIW+6iZV9cGc6lfsYT9Di/sasO0EIx7UUZW3ILYQ6Gh9jRgNLkwSNlAV9Q== + dependencies: + "@polkadot/rpc-augment" "10.12.6" + "@polkadot/rpc-provider" "10.12.6" + "@polkadot/types" "10.12.6" + "@polkadot/util" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/rpc-provider@10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-10.12.6.tgz#6b2e454b7c70ddd87e0bac175f8b26b16bc67ad5" + integrity sha512-xLmzb2rMQXEWQlrIDY3E3IXo1jcV9+Vy3A8zMw/s/UIrwXZ3I0TefP8+mXcqEjLkkz7zwldDQvHfdmtnxdE14g== + dependencies: + "@polkadot/keyring" "^12.6.2" + "@polkadot/types" "10.12.6" + "@polkadot/types-support" "10.12.6" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + "@polkadot/x-fetch" "^12.6.2" + "@polkadot/x-global" "^12.6.2" + "@polkadot/x-ws" "^12.6.2" + eventemitter3 "^5.0.1" + mock-socket "^9.3.1" + nock "^13.5.0" + tslib "^2.6.2" + optionalDependencies: + "@substrate/connect" "0.8.8" + +"@polkadot/types-augment@10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-10.12.6.tgz#065f185040d793a170cfef5a9171b280f02731e7" + integrity sha512-eUNanLs0w7SQLlsjFs7kTPfOTclfjllJxghwRqWZFHWjUbVcGcPwr8ITv/mfx1WTCqUqLMe6K8CPJ7BSggAWBA== + dependencies: + "@polkadot/types" "10.12.6" + "@polkadot/types-codec" "10.12.6" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-codec@10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-10.12.6.tgz#5518b66f7620b2f35d7b2a66f900ab0fea68aa89" + integrity sha512-yCzKdj/mLhjSG3mR1XhQdzzpAy0Exv9UuEhGQHPpdjkF0CCfVgsFoOAF3ScsSzwacJxGgxPWvlk849DfTrBYGA== + dependencies: + "@polkadot/util" "^12.6.2" + "@polkadot/x-bigint" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-create@10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-10.12.6.tgz#ea5113f39e63c27cba9e9a84f7490233fa6f6a01" + integrity sha512-byuPy7IUFjzoxG3qrP4kEScfR92KFOAkaJksNT4kDZILPCeZSPPN7cLqdejypwDBqJthTJM0LqKK4g+eHGKdvw== + dependencies: + "@polkadot/types-codec" "10.12.6" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-known@10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-10.12.6.tgz#fe7966224167ac0e2995558ef3867885baf9d642" + integrity sha512-E/LWfOAPUW7YKAiioY7Ax/s+G4cuNQop3U/TPPM7sxXOv9hSia2hgFjtiU4NyTRVwf1O07YASXtYSecdSgcCuQ== + dependencies: + "@polkadot/networks" "^12.6.2" + "@polkadot/types" "10.12.6" + "@polkadot/types-codec" "10.12.6" + "@polkadot/types-create" "10.12.6" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-support@10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-10.12.6.tgz#e2e4a18f88d7744c3b8b6e638f4081ea00cff23e" + integrity sha512-SMq/hUZJLCZXq26pNDaxgXNJqAJD8YhVXWXulCg0YvbIoVwEkFE66TEkUbtoRLKcsZXbPdxJ3JfSoa9r6Ewhnw== + dependencies: + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types@10.12.6": + version "10.12.6" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-10.12.6.tgz#548843577d4ed04258eda39041402c789de679cf" + integrity sha512-ByjvZkKJclHSWEETk1m9HPYn/IdIyjWONOdy7Ih+/Nd0wVIahvXDYbV4CXe25xO0RhfFJzkGIZP+LFHL5F63Uw== + dependencies: + "@polkadot/keyring" "^12.6.2" + "@polkadot/types-augment" "10.12.6" + "@polkadot/types-codec" "10.12.6" + "@polkadot/types-create" "10.12.6" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/util-crypto@12.6.2", "@polkadot/util-crypto@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-12.6.2.tgz#d2d51010e8e8ca88951b7d864add797dad18bbfc" + integrity sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg== + dependencies: + "@noble/curves" "^1.3.0" + "@noble/hashes" "^1.3.3" + "@polkadot/networks" "12.6.2" + "@polkadot/util" "12.6.2" + "@polkadot/wasm-crypto" "^7.3.2" + "@polkadot/wasm-util" "^7.3.2" + "@polkadot/x-bigint" "12.6.2" + "@polkadot/x-randomvalues" "12.6.2" + "@scure/base" "^1.1.5" + tslib "^2.6.2" + +"@polkadot/util@12.6.2", "@polkadot/util@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.6.2.tgz#9396eff491221e1f0fd28feac55fc16ecd61a8dc" + integrity sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw== + dependencies: + "@polkadot/x-bigint" "12.6.2" + "@polkadot/x-global" "12.6.2" + "@polkadot/x-textdecoder" "12.6.2" + "@polkadot/x-textencoder" "12.6.2" + "@types/bn.js" "^5.1.5" + bn.js "^5.2.1" + tslib "^2.6.2" + +"@polkadot/wasm-bridge@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-7.3.2.tgz#e1b01906b19e06cbca3d94f10f5666f2ae0baadc" + integrity sha512-AJEXChcf/nKXd5Q/YLEV5dXQMle3UNT7jcXYmIffZAo/KI394a+/24PaISyQjoNC0fkzS1Q8T5pnGGHmXiVz2g== + dependencies: + "@polkadot/wasm-util" "7.3.2" + tslib "^2.6.2" + +"@polkadot/wasm-crypto-asmjs@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.3.2.tgz#c6d41bc4b48b5359d57a24ca3066d239f2d70a34" + integrity sha512-QP5eiUqUFur/2UoF2KKKYJcesc71fXhQFLT3D4ZjG28Mfk2ZPI0QNRUfpcxVQmIUpV5USHg4geCBNuCYsMm20Q== + dependencies: + tslib "^2.6.2" + +"@polkadot/wasm-crypto-init@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.3.2.tgz#7e1fe79ba978fb0a4a0f74a92d976299d38bc4b8" + integrity sha512-FPq73zGmvZtnuJaFV44brze3Lkrki3b4PebxCy9Fplw8nTmisKo9Xxtfew08r0njyYh+uiJRAxPCXadkC9sc8g== + dependencies: + "@polkadot/wasm-bridge" "7.3.2" + "@polkadot/wasm-crypto-asmjs" "7.3.2" + "@polkadot/wasm-crypto-wasm" "7.3.2" + "@polkadot/wasm-util" "7.3.2" + tslib "^2.6.2" + +"@polkadot/wasm-crypto-wasm@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.3.2.tgz#44e08ed5cf6499ce4a3aa7247071a5d01f6a74f4" + integrity sha512-15wd0EMv9IXs5Abp1ZKpKKAVyZPhATIAHfKsyoWCEFDLSOA0/K0QGOxzrAlsrdUkiKZOq7uzSIgIDgW8okx2Mw== + dependencies: + "@polkadot/wasm-util" "7.3.2" + tslib "^2.6.2" + +"@polkadot/wasm-crypto@^7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-7.3.2.tgz#61bbcd9e591500705c8c591e6aff7654bdc8afc9" + integrity sha512-+neIDLSJ6jjVXsjyZ5oLSv16oIpwp+PxFqTUaZdZDoA2EyFRQB8pP7+qLsMNk+WJuhuJ4qXil/7XiOnZYZ+wxw== + dependencies: + "@polkadot/wasm-bridge" "7.3.2" + "@polkadot/wasm-crypto-asmjs" "7.3.2" + "@polkadot/wasm-crypto-init" "7.3.2" + "@polkadot/wasm-crypto-wasm" "7.3.2" + "@polkadot/wasm-util" "7.3.2" + tslib "^2.6.2" + +"@polkadot/wasm-util@7.3.2", "@polkadot/wasm-util@^7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-util/-/wasm-util-7.3.2.tgz#4fe6370d2b029679b41a5c02cd7ebf42f9b28de1" + integrity sha512-bmD+Dxo1lTZyZNxbyPE380wd82QsX+43mgCm40boyKrRppXEyQmWT98v/Poc7chLuskYb6X8IQ6lvvK2bGR4Tg== + dependencies: + tslib "^2.6.2" + +"@polkadot/x-bigint@12.6.2", "@polkadot/x-bigint@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-12.6.2.tgz#59b7a615f205ae65e1ac67194aefde94d3344580" + integrity sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + +"@polkadot/x-fetch@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-12.6.2.tgz#b1bca028db90263bafbad2636c18d838d842d439" + integrity sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw== + dependencies: + "@polkadot/x-global" "12.6.2" + node-fetch "^3.3.2" + tslib "^2.6.2" + +"@polkadot/x-global@12.6.2", "@polkadot/x-global@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-12.6.2.tgz#31d4de1c3d4c44e4be3219555a6d91091decc4ec" + integrity sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g== + dependencies: + tslib "^2.6.2" + +"@polkadot/x-randomvalues@12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-12.6.2.tgz#13fe3619368b8bf5cb73781554859b5ff9d900a2" + integrity sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + +"@polkadot/x-textdecoder@12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-12.6.2.tgz#b86da0f8e8178f1ca31a7158257e92aea90b10e4" + integrity sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + +"@polkadot/x-textencoder@12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-12.6.2.tgz#81d23bd904a2c36137a395c865c5fefa21abfb44" + integrity sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + +"@polkadot/x-ws@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-12.6.2.tgz#b99094d8e53a03be1de903d13ba59adaaabc767a" + integrity sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + ws "^8.15.1" + +"@scure/base@^1.1.1", "@scure/base@^1.1.5": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.6.tgz#8ce5d304b436e4c84f896e0550c83e4d88cb917d" + integrity sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g== + +"@substrate/connect-extension-protocol@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.0.0.tgz#badaa6e6b5f7c7d56987d778f4944ddb83cd9ea7" + integrity sha512-nKu8pDrE3LNCEgJjZe1iGXzaD6OSIDD4Xzz/yo4KO9mQ6LBvf49BVrt4qxBFGL6++NneLiWUZGoh+VSd4PyVIg== + +"@substrate/connect-known-chains@^1.1.1": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@substrate/connect-known-chains/-/connect-known-chains-1.1.4.tgz#1b0b4b19c7bd0c1b3ed6f567a22e9fb9c42b8e64" + integrity sha512-iT+BdKqvKl/uBLd8BAJysFM1BaMZXRkaXBP2B7V7ob/EyNs5h0EMhTVbO6MJxV/IEOg5OKsyl6FUqQK7pKnqyw== + +"@substrate/connect@0.8.8": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.8.8.tgz#80879f2241e2bd4f24a9aa25d7997fd91a5e68e3" + integrity sha512-zwaxuNEVI9bGt0rT8PEJiXOyebLIo6QN1SyiAHRPBOl6g3Sy0KKdSN8Jmyn++oXhVRD8aIe75/V8ZkS81T+BPQ== + dependencies: + "@substrate/connect-extension-protocol" "^2.0.0" + "@substrate/connect-known-chains" "^1.1.1" + "@substrate/light-client-extension-helpers" "^0.0.4" + smoldot "2.0.22" + +"@substrate/light-client-extension-helpers@^0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.4.tgz#a5958d5c1aac7df69f55bd90991aa935500f8124" + integrity sha512-vfKcigzL0SpiK+u9sX6dq2lQSDtuFLOxIJx2CKPouPEHIs8C+fpsufn52r19GQn+qDhU8POMPHOVoqLktj8UEA== + dependencies: + "@polkadot-api/client" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/json-rpc-provider" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/json-rpc-provider-proxy" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/substrate-client" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@substrate/connect-extension-protocol" "^2.0.0" + "@substrate/connect-known-chains" "^1.1.1" + rxjs "^7.8.1" + +"@substrate/ss58-registry@^1.44.0": + version "1.47.0" + resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.47.0.tgz#99b11fd3c16657f5eae483b3df7c545ca756d1fc" + integrity sha512-6kuIJedRcisUJS2pgksEH2jZf3hfSIVzqtFzs/AyjTW3ETbMg5q1Bb7VWa0WYaT6dTrEXp/6UoXM5B9pSIUmcw== + +"@types/bn.js@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" + integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "20.12.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.7.tgz#04080362fa3dd6c5822061aa3124f5c152cff384" + integrity sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg== + dependencies: + undici-types "~5.26.4" + +bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +debug@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +mock-socket@^9.3.1: + version "9.3.1" + resolved "https://registry.yarnpkg.com/mock-socket/-/mock-socket-9.3.1.tgz#24fb00c2f573c84812aa4a24181bb025de80cc8e" + integrity sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nock@^13.5.0: + version "13.5.4" + resolved "https://registry.yarnpkg.com/nock/-/nock-13.5.4.tgz#8918f0addc70a63736170fef7106a9721e0dc479" + integrity sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw== + dependencies: + debug "^4.1.0" + json-stringify-safe "^5.0.1" + propagate "^2.0.0" + +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + +propagate@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" + integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== + +rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +scale-ts@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/scale-ts/-/scale-ts-1.6.0.tgz#e9641093c5a9e50f964ddb1607139034e3e932e9" + integrity sha512-Ja5VCjNZR8TGKhUumy9clVVxcDpM+YFjAnkMuwQy68Hixio3VRRvWdE3g8T/yC+HXA0ZDQl2TGyUmtmbcVl40Q== + +smoldot@2.0.22: + version "2.0.22" + resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-2.0.22.tgz#1e924d2011a31c57416e79a2b97a460f462a31c7" + integrity sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g== + dependencies: + ws "^8.8.1" + +tslib@^2.1.0, tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +typescript@^5.4.5: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +web-streams-polyfill@^3.0.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" + integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== + +ws@^8.15.1, ws@^8.8.1: + version "8.16.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== diff --git a/scripts/relayer/chains/test-1.json b/scripts/relayer/chains/test-1.json index c733b0309..9ec7eeee0 100644 --- a/scripts/relayer/chains/test-1.json +++ b/scripts/relayer/chains/test-1.json @@ -5,11 +5,11 @@ "chain-id": "test-1", "rpc-addr": "http://localhost:16657", "grpc-addr": "", - "account-prefix": "centauri", + "account-prefix": "pica", "keyring-backend": "test", - "default-denom": "stake", + "default-denom": "ppica", "gas-adjustment": 1.5, - "gas-prices": "1stake", + "gas-prices": "100ppica", "coin-type": 118, "debug": true, "timeout": "10s", diff --git a/scripts/relayer/chains/test-2.json b/scripts/relayer/chains/test-2.json index f5d1c5d3e..dbea32fa3 100644 --- a/scripts/relayer/chains/test-2.json +++ b/scripts/relayer/chains/test-2.json @@ -5,11 +5,11 @@ "chain-id": "test-2", "rpc-addr": "http://localhost:26657", "grpc-addr": "", - "account-prefix": "centauri", + "account-prefix": "pica", "keyring-backend": "test", - "default-denom": "stake", + "default-denom": "ppica", "gas-adjustment": 1.5, - "gas-prices": "100stake", + "gas-prices": "100ppica", "coin-type": 118, "debug": true, "timeout": "10s", diff --git a/scripts/relayer/relayer-init.sh b/scripts/relayer/relayer-init.sh old mode 100644 new mode 100755 diff --git a/scripts/relayer_hyperspace/cleanup.sh b/scripts/relayer_hyperspace/cleanup.sh new file mode 100755 index 000000000..e6f33d205 --- /dev/null +++ b/scripts/relayer_hyperspace/cleanup.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +echo "kill composable node" +pkill -f picad +rm -rf mytestnet + + +echo "Cleanign up devnet-picasso containers..." +# The image name you want to stop containers for +IMAGE_NAME="composablefi/devnet-picasso" + +# Find the container ID(s) for containers running this image +CONTAINER_IDS=$(docker ps --filter "ancestor=$IMAGE_NAME" --format "{{.ID}}") + +# Stop the container(s) +for ID in $CONTAINER_IDS; do + echo "Stopping container $ID..." + docker stop $ID +done + +echo "Cleanup complete." \ No newline at end of file diff --git a/scripts/relayer_hyperspace/config-chain-a.toml b/scripts/relayer_hyperspace/config-chain-a.toml new file mode 100644 index 000000000..7ae746d59 --- /dev/null +++ b/scripts/relayer_hyperspace/config-chain-a.toml @@ -0,0 +1,13 @@ +type = "parachain" +name = "picasso_dev" +para_id = 2001 +parachain_rpc_url = "ws://127.0.0.1:9988" +relay_chain_rpc_url = "ws://127.0.0.1:9944" +client_id = "08-wasm-0" +connection_id = "connection-0" +commitment_prefix = "0x6962632f" +private_key = "//Alice" +ss58_version = 49 +channel_whitelist = [["channel-0", "transfer"], ["channel-0", "transfer"], ["channel-0", "transfer"]] +finality_protocol = "Grandpa" +key_type = "sr25519" diff --git a/scripts/relayer_hyperspace/config-chain-b.toml b/scripts/relayer_hyperspace/config-chain-b.toml new file mode 100644 index 000000000..532aa4864 --- /dev/null +++ b/scripts/relayer_hyperspace/config-chain-b.toml @@ -0,0 +1,20 @@ +type = "cosmos" +name = "centauri" +rpc_url = "http://127.0.0.1:26657/" +grpc_url = "http://127.0.0.1:9090/" +websocket_url = "ws://127.0.0.1:26657/websocket" +chain_id = "centauri-dev" +client_id = "07-tendermint-0" +connection_id = "connection-0" +account_prefix = "pica" +fee_denom = "ppica" +fee_amount = "9223372036854776" +gas_limit = 9223372036854775806 +store_prefix = "ibc" +max_tx_size = 20000000 +wasm_code_id = "9d5056f2b551213094a03b788db80274445175bae78c8fede38bf25a2ddc84bc" +channel_whitelist = [["channel-0", "transfer"], ["channel-0", "transfer"], ["channel-0", "transfer"]] +mnemonic = "decorate bright ozone fork gallery riot bus exhaust worth way bone indoor calm squirrel merry zero scheme cotton until shop any excess stage laundry" +skip_optional_client_updates = false +max_packets_to_process = 50 +skip_tokens_list = [] diff --git a/scripts/relayer_hyperspace/config-core.toml b/scripts/relayer_hyperspace/config-core.toml new file mode 100644 index 000000000..a6bcac3d0 --- /dev/null +++ b/scripts/relayer_hyperspace/config-core.toml @@ -0,0 +1 @@ +prometheus_endpoint = "https://127.0.0.1" \ No newline at end of file diff --git a/scripts/relayer_hyperspace/config-relayer.toml b/scripts/relayer_hyperspace/config-relayer.toml new file mode 100644 index 000000000..1cad706fb --- /dev/null +++ b/scripts/relayer_hyperspace/config-relayer.toml @@ -0,0 +1,15 @@ + +# create client +../composable-ibc/target/release/hyperspace create-clients --config-a ./scripts/relayer_hyperspace/config-chain-a.toml --config-b ./scripts/relayer_hyperspace/config-chain-b.toml --config-core ./scripts/relayer_hyperspace/config.toml --delay-period 10 + +# # create connection +# ../composable-ibc/target/release/hyperspace create-connection --config-a ./scripts/relayer_hyperspace/config-chain-a.toml --config-b ./scripts/relayer_hyperspace/config-chain-b.toml --config-core ./scripts/relayer_hyperspace/config.toml --delay-period 1 --port-id transfer --order unordered + +# # create channel +# ../composable-ibc/target/release/hyperspace create-channel --config-a ./scripts/relayer_hyperspace/config-chain-a.toml --config-b ./scripts/relayer_hyperspace/config-chain-b.toml --config-core ./scripts/relayer_hyperspace/config.toml --delay-period 0 --port-id tranfer --order unordered --version ics20-1 + +# # start relayer +# ../composable-ibc/target/release/hyperspace relay --config-a ./scripts/relayer_hyperspace/config-chain-a.toml --config-b ./scripts/relayer_hyperspace/config-chain-b.toml --config-core ./scripts/relayer_hyperspace/config.toml --delay-period 1 --port-id transfer --order unordered --version ics20-1 + +# # send ibc +# centaurid tx ibc-transfer transfer transfer channel-0 --chain-id test-1 5yNZjX24n2eg7W6EVamaTXNQbWCwchhThEaSWB7V3GRjtHeL 100stake \ No newline at end of file diff --git a/scripts/relayer_hyperspace/create-channel.sh b/scripts/relayer_hyperspace/create-channel.sh new file mode 100755 index 000000000..bf11e563d --- /dev/null +++ b/scripts/relayer_hyperspace/create-channel.sh @@ -0,0 +1,2 @@ + +RUST_LOG=hyperspace_cosmos=trace,hyperspace=trace,info /home/kien6034/notional/composable-ibc/target/release/hyperspace create-channel --config-a scripts/relayer_hyperspace/config-chain-a.toml --config-b scripts/relayer_hyperspace/config-chain-b.toml --config-core scripts/relayer_hyperspace/config-core.toml --delay-period 10 --port-id transfer --version ics20-1 --order unordered \ No newline at end of file diff --git a/scripts/relayer_hyperspace/create-clients.sh b/scripts/relayer_hyperspace/create-clients.sh new file mode 100755 index 000000000..30cfc4a39 --- /dev/null +++ b/scripts/relayer_hyperspace/create-clients.sh @@ -0,0 +1,2 @@ + +RUST_LOG=hyperspace_cosmos=trace,hyperspace=trace,info /home/kien6034/notional/composable-ibc/target/release/hyperspace create-clients --config-a scripts/relayer_hyperspace/config-chain-a.toml --config-b scripts/relayer_hyperspace/config-chain-b.toml --config-core scripts/relayer_hyperspace/config-core.toml --delay-period 10 \ No newline at end of file diff --git a/scripts/relayer_hyperspace/create-connections.sh b/scripts/relayer_hyperspace/create-connections.sh new file mode 100755 index 000000000..e64c340c2 --- /dev/null +++ b/scripts/relayer_hyperspace/create-connections.sh @@ -0,0 +1 @@ +RUST_LOG=hyperspace_cosmos=trace,hyperspace=trace,info /home/kien6034/notional/composable-ibc/target/release/hyperspace create-connection --config-a scripts/relayer_hyperspace/config-chain-a.toml --config-b scripts/relayer_hyperspace/config-chain-b.toml --config-core scripts/relayer_hyperspace/config-core.toml --delay-period 10 \ No newline at end of file diff --git a/scripts/relayer_hyperspace/start-relay.sh b/scripts/relayer_hyperspace/start-relay.sh new file mode 100755 index 000000000..784df00b5 --- /dev/null +++ b/scripts/relayer_hyperspace/start-relay.sh @@ -0,0 +1,2 @@ + +RUST_LOG=hyperspace_cosmos=trace,hyperspace=trace,info /home/kien6034/notional/composable-ibc/target/release/hyperspace relay --config-a scripts/relayer_hyperspace/config-chain-a.toml --config-b scripts/relayer_hyperspace/config-chain-b.toml --config-core scripts/relayer_hyperspace/config-core.toml --delay-period 10 \ No newline at end of file diff --git a/scripts/relayer_hyperspace/v47/create-clients.sh b/scripts/relayer_hyperspace/v47/create-clients.sh new file mode 100755 index 000000000..8f18af593 --- /dev/null +++ b/scripts/relayer_hyperspace/v47/create-clients.sh @@ -0,0 +1,2 @@ + +RUST_LOG=hyperspace_cosmos=trace,hyperspace=trace,info /home/kien6034/notional/composable-ibc-old/bin/hyperspace create-clients --config-a scripts/relayer_hyperspace/config-chain-a.toml --config-b scripts/relayer_hyperspace/config-chain-b.toml --config-core scripts/relayer_hyperspace/config-core.toml --delay-period 10 diff --git a/scripts/relayer_hyperspace/v47/create-connection.sh b/scripts/relayer_hyperspace/v47/create-connection.sh new file mode 100755 index 000000000..3463b74ab --- /dev/null +++ b/scripts/relayer_hyperspace/v47/create-connection.sh @@ -0,0 +1,2 @@ + +RUST_LOG=hyperspace_cosmos=trace,hyperspace=trace,info /home/kien6034/notional/composable-ibc-old/bin/hyperspace create-connection --config-a scripts/relayer_hyperspace/config-chain-a.toml --config-b scripts/relayer_hyperspace/config-chain-b.toml --config-core scripts/relayer_hyperspace/config-core.toml --delay-period 10 diff --git a/scripts/run-node.sh b/scripts/run-node.sh index c544a6398..eb685ff8c 100755 --- a/scripts/run-node.sh +++ b/scripts/run-node.sh @@ -1,86 +1,81 @@ #!/bin/bash +KEY="mykey" +KEY1="mykey1" +CHAINID="centauri-dev" +MONIKER="localtestnet" +KEYALGO="secp256k1" +KEYRING="test" +LOGLEVEL="info" BINARY=$1 -CONTINUE=${CONTINUE:-"false"} +# to trace evm +#TRACE="--trace" +TRACE="" + +echo "runnode" + HOME_DIR=mytestnet -ENV=${ENV:-""} +DENOM=ppica + +# remove existing daemon +rm -rf $HOME_DIR + +if [ ! -x "$(command -v $BINARY)" ]; then + echo "Error: Binary $BINARY is not executable or not found." + exit 1 +fi + if [ "$CONTINUE" == "true" ]; then + echo "\n ->> continuing from previous state" $BINARY start --home $HOME_DIR --log_level debug exit 0 fi -rm -rf mytestnet -pkill centaurid - -# check DENOM is set. If not, set to upica -DENOM=${2:-upica} - -COMMISSION_RATE=0.01 -COMMISSION_MAX_RATE=0.02 - -SED_BINARY=sed -# check if this is OS X -if [[ "$OSTYPE" == "darwin"* ]]; then - # check if gsed is installed - if ! command -v gsed &> /dev/null - then - echo "gsed could not be found. Please install it with 'brew install gnu-sed'" - exit - else - SED_BINARY=gsed - fi -fi -# check BINARY is set. If not, build picad and set BINARY -if [ -z "$BINARY" ]; then - make build - BINARY=build/picad -fi +$BINARY config keyring-backend $KEYRING +$BINARY config chain-id $CHAINID -CHAIN_ID="localpica" -KEYRING="test" -KEY="test0" -KEY1="test1" -KEY2="test2" -# Function updates the config based on a jq argument as a string +# if $KEY exists it should be deleted +echo "decorate bright ozone fork gallery riot bus exhaust worth way bone indoor calm squirrel merry zero scheme cotton until shop any excess stage laundry" | $BINARY keys add $KEY --keyring-backend $KEYRING --algo $KEYALGO --recover --home $HOME_DIR +echo "bottom loan skill merry east cradle onion journey palm apology verb edit desert impose absurd oil bubble sweet glove shallow size build burst effort" | $BINARY keys add $KEY1 --keyring-backend $KEYRING --algo $KEYALGO --recover --home $HOME_DIR + +$BINARY init $CHAINID --chain-id $CHAINID --default-denom "ppica" --home $HOME_DIR >/dev/null 2>&1 + update_test_genesis () { # update_test_genesis '.consensus_params["block"]["max_gas"]="100000000"' - cat $HOME_DIR/config/genesis.json | jq "$1" > $HOME_DIR/config/tmp_genesis.json && mv $HOME_DIR/config/tmp_genesis.json $HOME_DIR/config/genesis.json + cat $HOME_DIR/config/genesis.json | jq "$1" > $HOME_DIR/config/tmp_genesis.json && cp $HOME_DIR/config/tmp_genesis.json $HOME_DIR/config/genesis.json } -$BINARY init --chain-id $CHAIN_ID moniker --home $HOME_DIR +# Allocate genesis accounts (cosmos formatted addresses) +$BINARY add-genesis-account $KEY 100000000000000000000000000ppica --keyring-backend $KEYRING --home $HOME_DIR +$BINARY add-genesis-account $KEY1 100000000000000000000000000ppica --keyring-backend $KEYRING --home $HOME_DIR -$BINARY keys add $KEY --keyring-backend $KEYRING --home $HOME_DIR -$BINARY keys add $KEY1 --keyring-backend $KEYRING --home $HOME_DIR -$BINARY keys add $KEY2 --keyring-backend $KEYRING --home $HOME_DIR +# Sign genesis transaction +$BINARY gentx $KEY 10030009994127689ppica --keyring-backend $KEYRING --chain-id $CHAINID --home $HOME_DIR -# Allocate genesis accounts (cosmos formatted addresses) -$BINARY add-genesis-account $KEY "1000000000000000000000${DENOM}" --keyring-backend $KEYRING --home $HOME_DIR -$BINARY add-genesis-account $KEY1 "1000000000000000000000${DENOM}" --keyring-backend $KEYRING --home $HOME_DIR -$BINARY add-genesis-account $KEY2 "1000000000000000000000${DENOM}" --keyring-backend $KEYRING --home $HOME_DIR update_test_genesis '.app_state["gov"]["params"]["voting_period"]="20s"' +update_test_genesis '.app_state["gov"]["params"]["expedited_voting_period"]="10s"' update_test_genesis '.app_state["mint"]["params"]["mint_denom"]="'$DENOM'"' -update_test_genesis '.app_state["gov"]["params"]["min_deposit"]=[{"denom":"'$DENOM'","amount": "1000000"}]' +update_test_genesis '.app_state["gov"]["params"]["min_deposit"]=[{"denom":"'$DENOM'","amount": "1"}]' update_test_genesis '.app_state["crisis"]["constant_fee"]={"denom":"'$DENOM'","amount":"1000"}' -update_test_genesis '.app_state["staking"]["params"]["bond_denom"]="'$DENOM'"' - -# enable rest server and swagger -$SED_BINARY -i '0,/enable = false/s//enable = true/' $HOME_DIR/config/app.toml -$SED_BINARY -i 's/swagger = false/swagger = true/' $HOME_DIR/config/app.toml -$SED_BINARY -i -e 's/enabled-unsafe-cors = false/enabled-unsafe-cors = true/g' $HOME_DIR/config/app.toml -$SED_BINARY -i 's/minimum-gas-prices = "0.25upica"/minimum-gas-prices = "0.0upica"/' $HOME_DIR/config/app.toml - - -# Sign genesis transaction -$BINARY gentx $KEY "1000000000000000000000${DENOM}" --commission-rate=$COMMISSION_RATE --commission-max-rate=$COMMISSION_MAX_RATE --keyring-backend $KEYRING --chain-id $CHAIN_ID --home $HOME_DIR # Collect genesis tx $BINARY collect-gentxs --home $HOME_DIR # Run this to ensure everything worked and that the genesis file is setup correctly $BINARY validate-genesis --home $HOME_DIR -$BINARY start --home $HOME_DIR +if [[ $1 == "pending" ]]; then + echo "pending mode is on, please wait for the first block committed." +fi + +# update request max size so that we can upload the light client +# '' -e is a must have params on mac, if use linux please delete before run +sed -i'' -e 's/max_body_bytes = /max_body_bytes = 1/g' $HOME_DIR/config/config.toml +sed -i'' -e 's/max_tx_bytes = 1048576/max_tx_bytes = 10000000/g' $HOME_DIR/config/config.toml + + +screen -L -dmS node1 $BINARY start --rpc.unsafe --rpc.laddr tcp://0.0.0.0:26657 --pruning=nothing --minimum-gas-prices=0.001ppica --home=$HOME_DIR --log_level debug --trace --with-tendermint=true --transport=socket --grpc.enable=true --grpc-web.enable=false --api.enable=true --p2p.pex=false \ No newline at end of file diff --git a/scripts/test-upgrade.sh b/scripts/test-upgrade.sh index 2bbbe23af..0201d5bca 100755 --- a/scripts/test-upgrade.sh +++ b/scripts/test-upgrade.sh @@ -3,12 +3,15 @@ # the upgrade is a fork, "true" otherwise FORK=${FORK:-"false"} -OLD_VERSION=v6.5.4 +OLD_VERSION=v6.6.41 UPGRADE_WAIT=${UPGRADE_WAIT:-20} HOME=mytestnet ROOT=$(pwd) -DENOM=upica +DENOM=ppica CHAIN_ID=localpica +SOFTWARE_UPGRADE_NAME="v7_0_1" +ADDITIONAL_PRE_SCRIPTS="" +ADDITIONAL_AFTER_SCRIPTS="" SOFTWARE_UPGRADE_NAME="v6_6_1" ADDITIONAL_PRE_SCRIPTS="./scripts/upgrade/v_6_4_8/pre-script.sh" ADDITIONAL_AFTER_SCRIPTS="./scripts/upgrade/v_6_4_8/post-script.sh" @@ -32,7 +35,7 @@ then fi # reinstall old binary -if [ $# -eq 1 ] && [ $1 == "--reinstall-old" ] || ! command -v _build/old/centaurid &> /dev/null; then +if [ $# -eq 1 ] && [ $1 == "--reinstall-old" ] || ! command -v _build/old/picad &> /dev/null; then cd ./_build/composable-cosmos-${OLD_VERSION:1} GOBIN="$ROOT/_build/old" go install -mod=readonly ./... cd ../.. @@ -48,9 +51,9 @@ fi # run old node if [[ "$OSTYPE" == "darwin"* ]]; then echo "running old node" - screen -L -dmS node1 bash scripts/localnode.sh _build/old/centaurid $DENOM --Logfile $HOME/log-screen.txt + screen -L -dmS node1 bash scripts/localnode-upgrade.sh _build/old/picad $DENOM --Logfile $HOME/log-screen.txt else - screen -L -Logfile $HOME/log-screen.txt -dmS node1 bash scripts/localnode.sh _build/old/centaurid $DENOM + screen -L -Logfile $HOME/log-screen.txt -dmS node1 bash scripts/localnode-upgrade.sh _build/old/picad $DENOM fi sleep 5 # wait for note to start @@ -63,7 +66,7 @@ if [ ! -z "$ADDITIONAL_PRE_SCRIPTS" ]; then # check if SCRIPT is a file if [ -f "$SCRIPT" ]; then echo "executing additional pre scripts from $SCRIPT" - source $SCRIPT _build/old/centaurid + source $SCRIPT _build/old/picad echo "CONTRACT_ADDRESS = $CONTRACT_ADDRESS" sleep 5 else @@ -76,7 +79,7 @@ run_fork () { echo "forking" while true; do - BLOCK_HEIGHT=$(./_build/old/centaurid status | jq '.SyncInfo.latest_block_height' -r) + BLOCK_HEIGHT=$(./_build/old/picad status | jq '.SyncInfo.latest_block_height' -r) # if BLOCK_HEIGHT is not empty if [ ! -z "$BLOCK_HEIGHT" ]; then echo "BLOCK_HEIGHT = $BLOCK_HEIGHT" @@ -92,7 +95,7 @@ run_upgrade () { echo -e "\n\n=> =>start upgrading" # Get upgrade height, 12 block after (6s) - STATUS_INFO=($(./_build/old/centaurid status --home $HOME | jq -r '.NodeInfo.network,.SyncInfo.latest_block_height')) + STATUS_INFO=($(./_build/old/picad status --home $HOME | jq -r '.NodeInfo.network,.SyncInfo.latest_block_height')) UPGRADE_HEIGHT=$((STATUS_INFO[1] + 20)) echo "UPGRADE_HEIGHT = $UPGRADE_HEIGHT" @@ -105,33 +108,34 @@ run_upgrade () { } }') + echo "submit upgrade" - ./_build/old/centaurid tx gov submit-legacy-proposal software-upgrade "$SOFTWARE_UPGRADE_NAME" --upgrade-height $UPGRADE_HEIGHT --upgrade-info "$UPGRADE_INFO" --title "upgrade" --description "upgrade" --from test1 --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null + ./_build/old/picad tx gov submit-legacy-proposal software-upgrade "$SOFTWARE_UPGRADE_NAME" --upgrade-height $UPGRADE_HEIGHT --upgrade-info "$UPGRADE_INFO" --title "upgrade" --description "upgrade" --from=test1 --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y sleep $SLEEP_TIME - ./_build/old/centaurid tx gov deposit 1 "20000000${DENOM}" --from test1 --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null + ./_build/old/picad tx gov deposit 1 "20000000${DENOM}" --from test1 --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null sleep $SLEEP_TIME - ./_build/old/centaurid tx gov vote 1 yes --from test0 --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null + ./_build/old/picad tx gov vote 1 yes --from test0 --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null sleep $SLEEP_TIME - ./_build/old/centaurid tx gov vote 1 yes --from test1 --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null + ./_build/old/picad tx gov vote 1 yes --from test1 --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null sleep $SLEEP_TIME # determine block_height to halt while true; do - BLOCK_HEIGHT=$(./_build/old/centaurid status | jq '.SyncInfo.latest_block_height' -r) + BLOCK_HEIGHT=$(./_build/old/picad status | jq '.SyncInfo.latest_block_height' -r) if [ $BLOCK_HEIGHT = "$UPGRADE_HEIGHT" ]; then - # assuming running only 1 centaurid + # assuming running only 1 picad echo "BLOCK HEIGHT = $UPGRADE_HEIGHT REACHED, KILLING OLD ONE" - pkill centaurid + pkill picad break else - ./_build/old/centaurid q gov proposal 1 --output=json | jq ".status" + ./_build/old/picad q gov proposal 1 --output=json | jq ".status" echo "BLOCK_HEIGHT = $BLOCK_HEIGHT" sleep 1 fi @@ -151,9 +155,9 @@ sleep 1 # run new node echo -e "\n\n=> =>continue running nodes after upgrade" if [[ "$OSTYPE" == "darwin"* ]]; then - CONTINUE="true" screen -L -dmS picad bash scripts/localnode.sh _build/new/picad $DENOM + CONTINUE="true" screen -L -dmS picad bash scripts/localnode-upgrade.sh _build/new/picad $DENOM else - CONTINUE="true" screen -L -dmS picad bash scripts/localnode.sh _build/new/picad $DENOM + CONTINUE="true" screen -L -dmS picad bash scripts/localnode-upgrade.sh _build/new/picad $DENOM fi sleep 5 diff --git a/scripts/testnode.sh b/scripts/testnode.sh index 4e5b67216..44fc57341 100755 --- a/scripts/testnode.sh +++ b/scripts/testnode.sh @@ -1,7 +1,8 @@ #!/bin/bash +BINARY=$1 KEY="mykey" -CHAINID="test-1" +CHAINID="localpica" MONIKER="localtestnet" KEYALGO="secp256k1" KEYRING="test" @@ -17,13 +18,13 @@ DENOM=${2:-ppica} # remove existing daemon rm -rf ~/.banksy* -picad config keyring-backend $KEYRING -picad config chain-id $CHAINID +# $BINARY config keyring-backend $KEYRING +# $BINARY config chain-id $CHAINID # if $KEY exists it should be deleted -echo "decorate bright ozone fork gallery riot bus exhaust worth way bone indoor calm squirrel merry zero scheme cotton until shop any excess stage laundry" | picad keys add $KEY --keyring-backend $KEYRING --algo $KEYALGO --recover +echo "decorate bright ozone fork gallery riot bus exhaust worth way bone indoor calm squirrel merry zero scheme cotton until shop any excess stage laundry" | $BINARY keys add $KEY --keyring-backend $KEYRING --algo $KEYALGO --recover -picad init $MONIKER --chain-id $CHAINID +$BINARY init $MONIKER --chain-id $CHAINID > /dev/null 2>&1 update_test_genesis () { # update_test_genesis '.consensus_params["block"]["max_gas"]="100000000"' @@ -31,22 +32,24 @@ update_test_genesis () { } # Allocate genesis accounts (cosmos formatted addresses) -picad add-genesis-account $KEY 100000000000000000000000000ppica --keyring-backend $KEYRING +$BINARY genesis add-genesis-account $KEY 100000000000000000000000000ppica --keyring-backend $KEYRING +$BINARY add-genesis-account centauri1hj5fveer5cjtn4wd6wstzugjfdxzl0xpzxlwgs "1000000000000000000000${DENOM}" --keyring-backend $KEYRING --home $HOME_DIR + # Sign genesis transaction -picad gentx $KEY 10030009994127689ppica --keyring-backend $KEYRING --chain-id $CHAINID +$BINARY gentx $KEY 1000000000000000000000ppica --keyring-backend $KEYRING --chain-id $CHAINID update_test_genesis '.app_state["gov"]["params"]["voting_period"]="20s"' update_test_genesis '.app_state["mint"]["params"]["mint_denom"]="'$DENOM'"' -update_test_genesis '.app_state["gov"]["params"]["min_deposit"]=[{"denom":"'$DENOM'","amount": "1"}]' +update_test_genesis '.app_state["gov"]["params"]["min_deposit"]=[{"denom":"'$DENOM'","amount": "0"}]' update_test_genesis '.app_state["crisis"]["constant_fee"]={"denom":"'$DENOM'","amount":"1000"}' update_test_genesis '.app_state["staking"]["params"]["bond_denom"]="'$DENOM'"' # Collect genesis tx -picad collect-gentxs +$BINARY collect-gentxs # Run this to ensure everything worked and that the genesis file is setup correctly -picad validate-genesis +$BINARY validate-genesis if [[ $1 == "pending" ]]; then echo "pending mode is on, please wait for the first block committed." @@ -57,4 +60,8 @@ fi sed -i'' -e 's/max_body_bytes = /max_body_bytes = 1/g' ~/.banksy/config/config.toml # Start the node (remove the --pruning=nothing flag if historical queries are not needed) -picad start --pruning=nothing --minimum-gas-prices=0.0001ppica --rpc.laddr tcp://0.0.0.0:26657 +<<<<<<< HEAD +$BINARY start --pruning=nothing --minimum-gas-prices=0.0001ppica --rpc.laddr tcp://0.0.0.0:26657 +======= +# centaurid start --pruning=nothing --minimum-gas-prices=0.0001ppica --rpc.laddr tcp://0.0.0.0:26657 +>>>>>>> develop2 diff --git a/scripts/tests/ibc-hooks/counter/Cargo.toml b/scripts/tests/ibc-hooks/counter/Cargo.toml new file mode 100644 index 000000000..f164afc0e --- /dev/null +++ b/scripts/tests/ibc-hooks/counter/Cargo.toml @@ -0,0 +1,43 @@ +[package] +name = "counter" +description = "Cosmwasm counter dapp, with permissions for testing Osmosis wasmhooks" +version = "0.1.0" +authors = ["osmosis contributors"] +edition = "2021" + +exclude = [ + # Those files are rust-optimizer artifacts. You might want to commit them for convenience but they should not be part of the source code publication. + "contract.wasm", + "hash.txt", +] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +crate-type = ["cdylib", "rlib"] + +[features] +# for more explicit tests, cargo test --features=backtraces +backtraces = ["cosmwasm-std/backtraces"] +# use library feature to disable all instantiate/execute/query exports +library = [] + +[package.metadata.scripts] +optimize = """docker run --rm -v "$(pwd)":/code \ + --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ + --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ + cosmwasm/rust-optimizer:0.12.6 +""" + +[dependencies] +cosmwasm-schema = "1.1.3" +cosmwasm-std = "1.1.3" +cosmwasm-storage = "1.1.3" +cw-storage-plus = "0.16.0" +cw2 = "0.16.0" +schemars = "0.8.10" +serde = { version = "1.0.145", default-features = false, features = ["derive"] } +thiserror = { version = "1.0.31" } + +[dev-dependencies] +cw-multi-test = "0.16.0" diff --git a/scripts/tests/ibc-hooks/counter/README.md b/scripts/tests/ibc-hooks/counter/README.md new file mode 100644 index 000000000..f4394fe87 --- /dev/null +++ b/scripts/tests/ibc-hooks/counter/README.md @@ -0,0 +1,11 @@ +# Counter contract from [Osmosis Labs](https://github.com/osmosis-labs/osmosis/commit/64393a14e18b2562d72a3892eec716197a3716c7) + +This contract is a modification of the standard cosmwasm `counter` contract. +Namely, it tracks a counter, _by sender_. +This is a better way to test wasmhooks. + +This contract tracks any funds sent to it by adding it to the state under the `sender` key. + +This way we can verify that, independently of the sender, the funds will end up under the +`WasmHooksModuleAccount` address when the contract is executed via an IBC send that goes +through the wasmhooks module. diff --git a/scripts/tests/ibc-hooks/counter/artifacts/checksums.txt b/scripts/tests/ibc-hooks/counter/artifacts/checksums.txt new file mode 100644 index 000000000..1f542142d --- /dev/null +++ b/scripts/tests/ibc-hooks/counter/artifacts/checksums.txt @@ -0,0 +1 @@ +c0e7a3b40d9710f6f72322293ba5cd871714008d9accd9a91c0fb08272609054 counter.wasm diff --git a/scripts/tests/ibc-hooks/counter/artifacts/checksums_intermediate.txt b/scripts/tests/ibc-hooks/counter/artifacts/checksums_intermediate.txt new file mode 100644 index 000000000..0394e5fc2 --- /dev/null +++ b/scripts/tests/ibc-hooks/counter/artifacts/checksums_intermediate.txt @@ -0,0 +1 @@ +bffb3256d4fd5668e497ae5671844ef3dcdf1a5f2594747b894dfc02e243ab0e ./target/wasm32-unknown-unknown/release/counter.wasm diff --git a/scripts/tests/ibc-hooks/counter/artifacts/counter.wasm b/scripts/tests/ibc-hooks/counter/artifacts/counter.wasm new file mode 100644 index 000000000..e3e5b53bd Binary files /dev/null and b/scripts/tests/ibc-hooks/counter/artifacts/counter.wasm differ diff --git a/scripts/tests/ibc-hooks/counter/src/contract.rs b/scripts/tests/ibc-hooks/counter/src/contract.rs new file mode 100644 index 000000000..259d36349 --- /dev/null +++ b/scripts/tests/ibc-hooks/counter/src/contract.rs @@ -0,0 +1,395 @@ +use std::collections::HashMap; + +#[cfg(not(feature = "library"))] +use cosmwasm_std::entry_point; +use cosmwasm_std::{ + to_binary, Binary, Coin, Deps, DepsMut, Env, MessageInfo, Response, StdResult, Uint128, +}; +use cw2::set_contract_version; + +use crate::error::ContractError; +use crate::msg::*; +use crate::state::{Counter, COUNTERS}; + +// version info for migration info +const CONTRACT_NAME: &str = "osmosis:permissioned_counter"; +const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION"); + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn instantiate( + deps: DepsMut, + _env: Env, + info: MessageInfo, + msg: InstantiateMsg, +) -> Result { + set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?; + let initial_counter = Counter { + count: msg.count, + total_funds: vec![], + owner: info.sender.clone(), + }; + COUNTERS.save(deps.storage, info.sender.clone(), &initial_counter)?; + + Ok(Response::new() + .add_attribute("method", "instantiate") + .add_attribute("owner", info.sender) + .add_attribute("count", msg.count.to_string())) +} + +pub mod utils { + use cosmwasm_std::Addr; + + use super::*; + + pub fn update_counter( + deps: DepsMut, + sender: Addr, + update_counter: &dyn Fn(&Option) -> i32, + update_funds: &dyn Fn(&Option) -> Vec, + ) -> Result { + COUNTERS + .update( + deps.storage, + sender.clone(), + |state| -> Result<_, ContractError> { + match state { + None => Ok(Counter { + count: update_counter(&None), + total_funds: update_funds(&None), + owner: sender, + }), + Some(counter) => Ok(Counter { + count: update_counter(&Some(counter.clone())), + total_funds: update_funds(&Some(counter)), + owner: sender, + }), + } + }, + ) + .map(|_r| true) + } +} + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn execute( + deps: DepsMut, + _env: Env, + info: MessageInfo, + msg: ExecuteMsg, +) -> Result { + match msg { + ExecuteMsg::Increment {} => execute::increment(deps, info), + ExecuteMsg::Reset { count } => execute::reset(deps, info, count), + } +} + +pub mod execute { + use super::*; + + pub fn increment(deps: DepsMut, info: MessageInfo) -> Result { + utils::update_counter( + deps, + info.sender, + &|counter| match counter { + None => 0, + Some(counter) => counter.count + 1, + }, + &|counter| match counter { + None => info.funds.clone(), + Some(counter) => naive_add_coins(&info.funds, &counter.total_funds), + }, + )?; + Ok(Response::new().add_attribute("action", "increment")) + } + + pub fn reset(deps: DepsMut, info: MessageInfo, count: i32) -> Result { + utils::update_counter(deps, info.sender, &|_counter| count, &|_counter| vec![])?; + Ok(Response::new().add_attribute("action", "reset")) + } +} + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn sudo(deps: DepsMut, env: Env, msg: SudoMsg) -> Result { + match msg { + SudoMsg::IBCLifecycleComplete(IBCLifecycleComplete::IBCAck { + channel: _, + sequence: _, + ack: _, + success, + }) => sudo::receive_ack(deps, env.contract.address, success), + SudoMsg::IBCLifecycleComplete(IBCLifecycleComplete::IBCTimeout { + channel: _, + sequence: _, + }) => sudo::ibc_timeout(deps, env.contract.address), + } +} + +pub mod sudo { + use cosmwasm_std::Addr; + + use super::*; + + pub fn receive_ack( + deps: DepsMut, + contract: Addr, + _success: bool, + ) -> Result { + utils::update_counter( + deps, + contract, + &|counter| match counter { + None => 1, + Some(counter) => counter.count + 1, + }, + &|_counter| vec![], + )?; + Ok(Response::new().add_attribute("action", "ack")) + } + + pub(crate) fn ibc_timeout(deps: DepsMut, contract: Addr) -> Result { + utils::update_counter( + deps, + contract, + &|counter| match counter { + None => 10, + Some(counter) => counter.count + 10, + }, + &|_counter| vec![], + )?; + Ok(Response::new().add_attribute("action", "timeout")) + } +} + +pub fn naive_add_coins(lhs: &Vec, rhs: &Vec) -> Vec { + // This is a naive, inneficient implementation of Vec addition. + // This shouldn't be used in production but serves our purpose for this + // testing contract + let mut coins: HashMap = HashMap::new(); + for coin in lhs { + coins.insert(coin.denom.clone(), coin.amount); + } + + for coin in rhs { + coins + .entry(coin.denom.clone()) + .and_modify(|e| *e += coin.amount) + .or_insert(coin.amount); + } + coins.iter().map(|(d, &a)| Coin::new(a.into(), d)).collect() +} + +#[test] +fn coin_addition() { + let c1 = vec![Coin::new(1, "a"), Coin::new(2, "b")]; + let c2 = vec![Coin::new(7, "a"), Coin::new(2, "c")]; + + let mut sum = naive_add_coins(&c1, &c1); + sum.sort_by(|a, b| a.denom.cmp(&b.denom)); + assert_eq!(sum, vec![Coin::new(2, "a"), Coin::new(4, "b")]); + + let mut sum = naive_add_coins(&c1, &c2); + sum.sort_by(|a, b| a.denom.cmp(&b.denom)); + assert_eq!( + sum, + vec![Coin::new(8, "a"), Coin::new(2, "b"), Coin::new(2, "c"),] + ); + + let mut sum = naive_add_coins(&c2, &c2); + sum.sort_by(|a, b| a.denom.cmp(&b.denom)); + assert_eq!(sum, vec![Coin::new(14, "a"), Coin::new(4, "c"),]); + + let mut sum = naive_add_coins(&c2, &c1); + sum.sort_by(|a, b| a.denom.cmp(&b.denom)); + assert_eq!( + sum, + vec![Coin::new(8, "a"), Coin::new(2, "b"), Coin::new(2, "c"),] + ); + + let mut sum = naive_add_coins(&vec![], &c2); + sum.sort_by(|a, b| a.denom.cmp(&b.denom)); + assert_eq!(sum, c2); + + let mut sum = naive_add_coins(&c2, &vec![]); + sum.sort_by(|a, b| a.denom.cmp(&b.denom)); + assert_eq!(sum, c2); +} + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { + match msg { + QueryMsg::GetCount { addr } => to_binary(&query::count(deps, addr)?), + QueryMsg::GetTotalFunds { addr } => to_binary(&query::total_funds(deps, addr)?), + } +} + +pub mod query { + use cosmwasm_std::Addr; + + use super::*; + + pub fn count(deps: Deps, addr: Addr) -> StdResult { + let state = COUNTERS.load(deps.storage, addr)?; + Ok(GetCountResponse { count: state.count }) + } + + pub fn total_funds(deps: Deps, addr: Addr) -> StdResult { + let state = COUNTERS.load(deps.storage, addr)?; + Ok(GetTotalFundsResponse { + total_funds: state.total_funds, + }) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use cosmwasm_std::testing::{mock_dependencies, mock_env, mock_info}; + use cosmwasm_std::Addr; + use cosmwasm_std::{coins, from_binary}; + + #[test] + fn proper_initialization() { + let mut deps = mock_dependencies(); + + let msg = InstantiateMsg { count: 17 }; + let info = mock_info("creator", &coins(1000, "earth")); + + // we can just call .unwrap() to assert this was a success + let res = instantiate(deps.as_mut(), mock_env(), info, msg).unwrap(); + assert_eq!(0, res.messages.len()); + + // it worked, let's query the state + let res = query( + deps.as_ref(), + mock_env(), + QueryMsg::GetCount { + addr: Addr::unchecked("creator"), + }, + ) + .unwrap(); + let value: GetCountResponse = from_binary(&res).unwrap(); + assert_eq!(17, value.count); + } + + #[test] + fn increment() { + let mut deps = mock_dependencies(); + + let msg = InstantiateMsg { count: 17 }; + let info = mock_info("creator", &coins(2, "token")); + let _res = instantiate(deps.as_mut(), mock_env(), info, msg).unwrap(); + + let msg = InstantiateMsg { count: 17 }; + let info = mock_info("someone-else", &coins(2, "token")); + let _res = instantiate(deps.as_mut(), mock_env(), info, msg).unwrap(); + + let info = mock_info("creator", &coins(2, "token")); + let msg = ExecuteMsg::Increment {}; + let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap(); + + // should increase counter by 1 + let res = query( + deps.as_ref(), + mock_env(), + QueryMsg::GetCount { + addr: Addr::unchecked("creator"), + }, + ) + .unwrap(); + let value: GetCountResponse = from_binary(&res).unwrap(); + assert_eq!(18, value.count); + + // Counter for someone else is not incremented + let res = query( + deps.as_ref(), + mock_env(), + QueryMsg::GetCount { + addr: Addr::unchecked("someone-else"), + }, + ) + .unwrap(); + let value: GetCountResponse = from_binary(&res).unwrap(); + assert_eq!(17, value.count); + } + + #[test] + fn reset() { + let mut deps = mock_dependencies(); + + let msg = InstantiateMsg { count: 17 }; + let info = mock_info("creator", &coins(2, "token")); + let _res = instantiate(deps.as_mut(), mock_env(), info, msg).unwrap(); + + // beneficiary can release it + let unauth_info = mock_info("anyone", &coins(2, "token")); + let msg = ExecuteMsg::Reset { count: 7 }; + let _res = execute(deps.as_mut(), mock_env(), unauth_info, msg); + + // should be 7 + let res = query( + deps.as_ref(), + mock_env(), + QueryMsg::GetCount { + addr: Addr::unchecked("anyone"), + }, + ) + .unwrap(); + let value: GetCountResponse = from_binary(&res).unwrap(); + assert_eq!(7, value.count); + + // only the original creator can reset the counter + let auth_info = mock_info("creator", &coins(2, "token")); + let msg = ExecuteMsg::Reset { count: 5 }; + let _res = execute(deps.as_mut(), mock_env(), auth_info, msg).unwrap(); + + // should now be 5 + let res = query( + deps.as_ref(), + mock_env(), + QueryMsg::GetCount { + addr: Addr::unchecked("creator"), + }, + ) + .unwrap(); + let value: GetCountResponse = from_binary(&res).unwrap(); + assert_eq!(5, value.count); + } + + #[test] + fn acks() { + let mut deps = mock_dependencies(); + let env = mock_env(); + let get_msg = QueryMsg::GetCount { + addr: Addr::unchecked(env.clone().contract.address), + }; + + // No acks + query(deps.as_ref(), env.clone(), get_msg.clone()).unwrap_err(); + + let msg = SudoMsg::ReceiveAck { + channel: format!("channel-0"), + sequence: 1, + ack: String::new(), + success: true, + }; + let _res = sudo(deps.as_mut(), env.clone(), msg).unwrap(); + + // should increase counter by 1 + let res = query(deps.as_ref(), env.clone(), get_msg.clone()).unwrap(); + let value: GetCountResponse = from_binary(&res).unwrap(); + assert_eq!(1, value.count); + + let msg = SudoMsg::ReceiveAck { + channel: format!("channel-0"), + sequence: 1, + ack: String::new(), + success: true, + }; + let _res = sudo(deps.as_mut(), env.clone(), msg).unwrap(); + + // should increase counter by 1 + let res = query(deps.as_ref(), env, get_msg).unwrap(); + let value: GetCountResponse = from_binary(&res).unwrap(); + assert_eq!(2, value.count); + } +} diff --git a/scripts/tests/ibc-hooks/counter/src/error.rs b/scripts/tests/ibc-hooks/counter/src/error.rs new file mode 100644 index 000000000..3caf0c5c5 --- /dev/null +++ b/scripts/tests/ibc-hooks/counter/src/error.rs @@ -0,0 +1,16 @@ +use cosmwasm_std::StdError; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum ContractError { + #[error("{0}")] + Std(#[from] StdError), + + #[error("Unauthorized")] + Unauthorized {}, + + #[error("Custom Error val: {val:?}")] + CustomError { val: String }, + // Add any other custom errors you like here. + // Look at https://docs.rs/thiserror/1.0.21/thiserror/ for details. +} diff --git a/scripts/tests/ibc-hooks/counter/src/helpers.rs b/scripts/tests/ibc-hooks/counter/src/helpers.rs new file mode 100644 index 000000000..c943c1365 --- /dev/null +++ b/scripts/tests/ibc-hooks/counter/src/helpers.rs @@ -0,0 +1,48 @@ +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; + +use cosmwasm_std::{ + to_binary, Addr, Coin, CosmosMsg, CustomQuery, Querier, QuerierWrapper, StdResult, WasmMsg, + WasmQuery, +}; + +use crate::msg::{ExecuteMsg, GetCountResponse, QueryMsg}; + +/// CwTemplateContract is a wrapper around Addr that provides a lot of helpers +/// for working with this. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] +pub struct CwTemplateContract(pub Addr); + +impl CwTemplateContract { + pub fn addr(&self) -> Addr { + self.0.clone() + } + + pub fn call>(&self, msg: T) -> StdResult { + let msg = to_binary(&msg.into())?; + Ok(WasmMsg::Execute { + contract_addr: self.addr().into(), + msg, + funds: vec![], + } + .into()) + } + + /// Get Count + pub fn count(&self, querier: &Q, addr: Addr) -> StdResult + where + Q: Querier, + T: Into, + CQ: CustomQuery, + { + let msg = QueryMsg::GetCount { addr }; + let query = WasmQuery::Smart { + contract_addr: self.addr().into(), + msg: to_binary(&msg)?, + } + .into(); + let res: GetCountResponse = QuerierWrapper::::new(querier).query(&query)?; + Ok(res) + } +} + diff --git a/scripts/tests/ibc-hooks/counter/src/integration_tests.rs b/scripts/tests/ibc-hooks/counter/src/integration_tests.rs new file mode 100644 index 000000000..4c5078465 --- /dev/null +++ b/scripts/tests/ibc-hooks/counter/src/integration_tests.rs @@ -0,0 +1,71 @@ +#[cfg(test)] +mod tests { + use crate::helpers::CwTemplateContract; + use crate::msg::InstantiateMsg; + use cosmwasm_std::{Addr, Coin, Empty, Uint128}; + use cw_multi_test::{App, AppBuilder, Contract, ContractWrapper, Executor}; + + pub fn contract_template() -> Box> { + let contract = ContractWrapper::new( + crate::contract::execute, + crate::contract::instantiate, + crate::contract::query, + ); + Box::new(contract) + } + + const USER: &str = "USER"; + const ADMIN: &str = "ADMIN"; + const NATIVE_DENOM: &str = "denom"; + + fn mock_app() -> App { + AppBuilder::new().build(|router, _, storage| { + router + .bank + .init_balance( + storage, + &Addr::unchecked(USER), + vec![Coin { + denom: NATIVE_DENOM.to_string(), + amount: Uint128::new(1), + }], + ) + .unwrap(); + }) + } + + fn proper_instantiate() -> (App, CwTemplateContract) { + let mut app = mock_app(); + let cw_template_id = app.store_code(contract_template()); + + let msg = InstantiateMsg { count: 1i32 }; + let cw_template_contract_addr = app + .instantiate_contract( + cw_template_id, + Addr::unchecked(ADMIN), + &msg, + &[], + "test", + None, + ) + .unwrap(); + + let cw_template_contract = CwTemplateContract(cw_template_contract_addr); + + (app, cw_template_contract) + } + + mod count { + use super::*; + use crate::msg::ExecuteMsg; + + #[test] + fn count() { + let (mut app, cw_template_contract) = proper_instantiate(); + + let msg = ExecuteMsg::Increment {}; + let cosmos_msg = cw_template_contract.call(msg).unwrap(); + app.execute(Addr::unchecked(USER), cosmos_msg).unwrap(); + } + } +} diff --git a/scripts/tests/ibc-hooks/counter/src/lib.rs b/scripts/tests/ibc-hooks/counter/src/lib.rs new file mode 100644 index 000000000..ffd1f6ac4 --- /dev/null +++ b/scripts/tests/ibc-hooks/counter/src/lib.rs @@ -0,0 +1,9 @@ +#![allow(unused_imports)] +pub mod contract; +mod error; +pub mod helpers; +pub mod integration_tests; +pub mod msg; +pub mod state; + +pub use crate::error::ContractError; diff --git a/scripts/tests/ibc-hooks/counter/src/msg.rs b/scripts/tests/ibc-hooks/counter/src/msg.rs new file mode 100644 index 000000000..037d8c577 --- /dev/null +++ b/scripts/tests/ibc-hooks/counter/src/msg.rs @@ -0,0 +1,63 @@ +use cosmwasm_schema::{cw_serde, QueryResponses}; +use cosmwasm_std::{Addr, Coin}; + +#[cw_serde] +pub struct InstantiateMsg { + pub count: i32, +} + +#[cw_serde] +pub enum ExecuteMsg { + Increment {}, + Reset { count: i32 }, +} + +#[cw_serde] +#[derive(QueryResponses)] +pub enum QueryMsg { + // GetCount returns the current count as a json-encoded number + #[returns(GetCountResponse)] + GetCount { addr: Addr }, + #[returns(GetTotalFundsResponse)] + GetTotalFunds { addr: Addr }, +} + +// We define a custom struct for each query response +#[cw_serde] +pub struct GetCountResponse { + pub count: i32, +} + +#[cw_serde] +pub struct GetTotalFundsResponse { + pub total_funds: Vec, +} + +#[cw_serde] +#[serde(rename = "ibc_lifecycle_complete")] +pub enum IBCLifecycleComplete { + #[serde(rename = "ibc_ack")] + IBCAck { + /// The source channel (terra side) of the IBC packet + channel: String, + /// The sequence number that the packet was sent with + sequence: u64, + /// String encoded version of the ack as seen by OnAcknowledgementPacket(..) + ack: String, + /// Weather an ack is a success of failure according to the transfer spec + success: bool, + }, + #[serde(rename = "ibc_timeout")] + IBCTimeout { + /// The source channel (terra side) of the IBC packet + channel: String, + /// The sequence number that the packet was sent with + sequence: u64, + }, +} + +#[cw_serde] +pub enum SudoMsg { + #[serde(rename = "ibc_lifecycle_complete")] + IBCLifecycleComplete(IBCLifecycleComplete), +} diff --git a/scripts/tests/ibc-hooks/counter/src/state.rs b/scripts/tests/ibc-hooks/counter/src/state.rs new file mode 100644 index 000000000..4b8002fc4 --- /dev/null +++ b/scripts/tests/ibc-hooks/counter/src/state.rs @@ -0,0 +1,14 @@ +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; + +use cosmwasm_std::{Addr, Coin}; +use cw_storage_plus::{Item, Map}; + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)] +pub struct Counter { + pub count: i32, + pub total_funds: Vec, + pub owner: Addr, +} + +pub const COUNTERS: Map = Map::new("state"); diff --git a/scripts/tests/ibc-hooks/increment.sh b/scripts/tests/ibc-hooks/increment.sh new file mode 100755 index 000000000..ff959b974 --- /dev/null +++ b/scripts/tests/ibc-hooks/increment.sh @@ -0,0 +1,109 @@ +#!/bin/bash + +echo "" +echo "#################" +echo "# IBC Hook call #" +echo "#################" +echo "" + +BINARY=picad +CHAIN_DIR=$(pwd)/data +WALLET_1=$($BINARY keys show wallet1 -a --keyring-backend test --home $CHAIN_DIR/test-1) +WALLET_2=$($BINARY keys show wallet2 -a --keyring-backend test --home $CHAIN_DIR/test-2) +DENOM=ppica + +# Deploy the smart contract on chain to test the callbacks. (find the source code under the following url: `~/scripts/tests/ibc-hooks/counter/src/contract.rs`) +echo "Deploying counter contract" + +TX_HASH=$($BINARY tx wasm store $(pwd)/scripts/tests/ibc-hooks/counter/artifacts/counter.wasm --from $WALLET_2 --chain-id test-2 --home $CHAIN_DIR/test-2 --node tcp://localhost:26657 --keyring-backend test -y --gas 10000000 --fees 6000000$DENOM -o json | jq -r '.txhash') +sleep 3 +TX_RESP=$($BINARY query tx $TX_HASH -o josn --chain-id test-2 --home $CHAIN_DIR/test-2 --node tcp://localhost:26657) +CODE_ID=$(echo $TX_RESP | jq -r '.events[8].attributes[1].value') + + +# Use Instantiate2 to instantiate the previous smart contract with a random hash to enable multiple instances of the same contract (when needed). +echo "Instantiating counter contract" +RANDOM_HASH=$(hexdump -vn16 -e'4/4 "%08X" 1 "\n"' /dev/urandom) +TX_HASH=$($BINARY tx wasm instantiate2 $CODE_ID '{"count": 0}' $RANDOM_HASH --no-admin --label="Label with $RANDOM_HASH" --from $WALLET_2 --chain-id test-2 --home $CHAIN_DIR/test-2 --node tcp://localhost:26657 --keyring-backend test -y --gas 10000000 --fees 6000000$DENOM -o json | jq -r '.txhash') +echo "TX hash: $TX_HASH" +sleep 3 +CONTRACT_RESP=$($BINARY query tx $TX_HASH -o josn --chain-id test-2 --home $CHAIN_DIR/test-2 --node tcp://localhost:26657) +CONTRACT_ADDRESS=$(echo $CONTRACT_RESP | jq -r '.events[9].attributes[0].value') +echo "Contract address: $CONTRACT_ADDRESS" + +echo "Executing the IBC Hook to increment the counter" +# First execute an IBC transfer to create the entry in the smart contract with the sender address ... +IBC_HOOK_RES=$($BINARY tx ibc-transfer transfer transfer channel-0 $CONTRACT_ADDRESS 1$DENOM --memo='{"wasm":{"contract": "'"$CONTRACT_ADDRESS"'" ,"msg": {"increment": {}}}}' --chain-id test-1 --home $CHAIN_DIR/test-1 --node tcp://localhost:16657 --keyring-backend test --from $WALLET_1 --fees 6000000$DENOM -y -o json) +echo "IBC Hook response: $IBC_HOOK_RES" +sleep 6 +# parse txHash from IBC_HOOK_RES and query txHash to echo response +IBC_HOOK_TX_HASH=$(echo $IBC_HOOK_RES | jq -r '.txhash') +TX_RESP=$($BINARY query tx $IBC_HOOK_TX_HASH -o json --chain-id test-1 --home $CHAIN_DIR/test-1 --node tcp://localhost:16657) +echo "Tx response: $TX_RESP" +sleep 3 +# ... then send another transfer to increments the count value from 0 to 1, send 1 more to the contract address to validate that it increased the value correctly. +IBC_HOOK_RES=$($BINARY tx ibc-transfer transfer transfer channel-0 $CONTRACT_ADDRESS 1$DENOM --memo='{"wasm":{"contract": "'"$CONTRACT_ADDRESS"'" ,"msg": {"increment": {}}}}' --chain-id test-1 --home $CHAIN_DIR/test-1 --fees 6000000$DENOM --node tcp://localhost:16657 --keyring-backend test --from $WALLET_1 -y -o json) +sleep 6 +IBC_HOOK_TX_HASH=$(echo $IBC_HOOK_RES | jq -r '.txhash') +TX_RESP=$($BINARY query tx $IBC_HOOK_TX_HASH -o json --chain-id test-1 --home $CHAIN_DIR/test-1 --node tcp://localhost:16657) +echo "Tx response1: $TX_RESP" +export WALLET_1_WASM_SENDER=$($BINARY q ibchooks wasm-sender channel-0 "$WALLET_1" --chain-id test-1 --home $CHAIN_DIR/test-1 --node tcp://localhost:16657) + +IBC_RECEIVER_BALANCE=$($BINARY query bank balances $WALLET_1 --chain-id test-1 --home $CHAIN_DIR/test-1 --node tcp://localhost:16657 -o json) +echo "IBC Receiver balance: $IBC_RECEIVER_BALANCE" + +echo "wallet 1 wasm sender: $WALLET_1_WASM_SENDER" + +COUNT_RES="" +COUNT_FUNDS_RES="" +while [ "$COUNT_RES" != "1" ] || [ "$COUNT_FUNDS_RES" != "2" ]; do + sleep 3 + # Get count res + RES=$($BINARY query wasm contract-state smart "$CONTRACT_ADDRESS" '{"get_count": {"addr": "'"$WALLET_1_WASM_SENDER"'"}}' --chain-id test-2 --home $CHAIN_DIR/test-2 --node tcp://localhost:26657 -o json) + echo "Query response: $RES" + + # Query to assert that the counter value is 1 and the fund send are (remeber that the first time fund are send to the contract the counter is set to 0 instead of 1) + COUNT_TX=$($BINARY query wasm contract-state smart "$CONTRACT_ADDRESS" '{"get_count": {"addr": "'"$WALLET_1_WASM_SENDER"'"}}' --chain-id test-2 --home $CHAIN_DIR/test-2 --node tcp://localhost:26657 -o json) + echo "Count tx: $COUNT_TX" + COUNT_RES=$(echo $COUNT_TX | jq -r '.data.count') + COUNT_FUNDS_RES=$($BINARY query wasm contract-state smart "$CONTRACT_ADDRESS" '{"get_total_funds": {"addr": "'"$WALLET_1_WASM_SENDER"'"}}' --chain-id test-2 --home $CHAIN_DIR/test-2 --node tcp://localhost:26657 -o json | jq -r '.data.total_funds[0].amount') + echo "transaction relayed count: $COUNT_RES and relayed funds: $COUNT_FUNDS_RES" +done + +echo "Executing the IBC Hook to increment the counter on callback" +# Execute an IBC transfer with ibc_callback to test the callback acknowledgement twice. +IBC_HOOK_RES=$($BINARY tx ibc-transfer transfer transfer channel-0 $WALLET_1_WASM_SENDER 1$DENOM --memo='{"ibc_callback":"'"$CONTRACT_ADDRESS"'"}' --chain-id test-2 --home $CHAIN_DIR/test-2 --fees 6000000$DENOM --node tcp://localhost:26657 --keyring-backend test --from $WALLET_2 -y -o json) + + +sleep 3 +IBC_HOOK_RES=$($BINARY tx ibc-transfer transfer transfer channel-0 $WALLET_1_WASM_SENDER 1$DENOM --memo='{"ibc_callback":"'"$CONTRACT_ADDRESS"'"}' --chain-id test-2 --home $CHAIN_DIR/test-2 --fees 6000000$DENOM --node tcp://localhost:26657 --keyring-backend test --from $WALLET_2 -y -o json) +export WALLET_2_WASM_SENDER=$($BINARY q ibchooks wasm-sender channel-0 "$WALLET_2" --chain-id test-2 --home $CHAIN_DIR/test-2 --node tcp://localhost:26657) + +COUNT_RES="" +while [ "$COUNT_RES" != "2" ]; do + sleep 3 + # Query the smart contract to validate that it received the callback twice (notice that the queried addess is the contract address itself). + COUNT_RES=$($BINARY query wasm contract-state smart "$CONTRACT_ADDRESS" '{"get_count": {"addr": "'"$CONTRACT_ADDRESS"'"}}' --chain-id test-2 --home $CHAIN_DIR/test-2 --node tcp://localhost:26657 -o json | jq -r '.data.count') + echo "relayed callback transaction count: $COUNT_RES" +done + +echo "Executing the IBC Hook to increment the counter on callback with timeout" +# Prepare two callback queries but this time with a timeout height that is unreachable (0-1) to test the timeout callback. +IBC_HOOK_RES=$($BINARY tx ibc-transfer transfer transfer channel-0 $WALLET_1_WASM_SENDER 1$DENOM --packet-timeout-height="0-1" --memo='{"ibc_callback":"'"$CONTRACT_ADDRESS"'"}' --chain-id test-2 --home $CHAIN_DIR/test-2 --fees 6000000$DENOM --node tcp://localhost:26657 --keyring-backend test --from $WALLET_2 -y -o json) +sleep 3 +IBC_HOOK_RES=$($BINARY tx ibc-transfer transfer transfer channel-0 $WALLET_1_WASM_SENDER 1$DENOM --packet-timeout-height="0-1" --memo='{"ibc_callback":"'"$CONTRACT_ADDRESS"'"}' --chain-id test-2 --home $CHAIN_DIR/test-2 --fees 6000000$DENOM --node tcp://localhost:26657 --keyring-backend test --from $WALLET_2 -y -o json) +export WALLET_2_WASM_SENDER=$($BINARY q ibchooks wasm-sender channel-0 "$WALLET_2" --chain-id test-2 --home $CHAIN_DIR/test-2 --node tcp://localhost:26657) + +COUNT_RES="" +while [ "$COUNT_RES" != "22" ]; do + sleep 3 + # Query the smart contract to validate that it received the timeout callback twice and keep in mind that per each timeout the contract increases 10 counts (notice that the queried addess is the contract address itself). + COUNT_RES=$($BINARY query wasm contract-state smart "$CONTRACT_ADDRESS" '{"get_count": {"addr": "'"$CONTRACT_ADDRESS"'"}}' --chain-id test-2 --home $CHAIN_DIR/test-2 --node tcp://localhost:26657 -o json | jq -r '.data.count') + echo "relayed timeout callback transaction count: $COUNT_RES" +done + +echo "" +echo "##########################" +echo "# SUCCESS: IBC Hook call #" +echo "##########################" +echo "" diff --git a/scripts/tests/init-test-framework.sh b/scripts/tests/init-test-framework.sh new file mode 100755 index 000000000..b9e736b58 --- /dev/null +++ b/scripts/tests/init-test-framework.sh @@ -0,0 +1,151 @@ +#!/bin/bash + +BINARY=picad +CHAIN_DIR=$(pwd)/data +CHAINID_1=test-1 +CHAINID_2=test-2 + +### Custom genesis files +DENOM=ppica +GENESIS_1=$CHAIN_DIR/$CHAINID_1/config/genesis.json +TMP_GENESIS_1=$CHAIN_DIR/$CHAINID_1/config/genesis.json.tmp + +GENESIS_2=$CHAIN_DIR/$CHAINID_2/config/genesis.json +TMP_GENESIS_2=$CHAIN_DIR/$CHAINID_2/config/genesis.json.tmp + +VAL_MNEMONIC_1="clock post desk civil pottery foster expand merit dash seminar song memory figure uniform spice circle try happy obvious trash crime hybrid hood cushion" +VAL_MNEMONIC_2="angry twist harsh drastic left brass behave host shove marriage fall update business leg direct reward object ugly security warm tuna model broccoli choice" +WALLET_MNEMONIC_1="banner spread envelope side kite person disagree path silver will brother under couch edit food venture squirrel civil budget number acquire point work mass" +WALLET_MNEMONIC_2="veteran try aware erosion drink dance decade comic dawn museum release episode original list ability owner size tuition surface ceiling depth seminar capable only" +WALLET_MNEMONIC_3="vacuum burst ordinary enact leaf rabbit gather lend left chase park action dish danger green jeans lucky dish mesh language collect acquire waste load" +WALLET_MNEMONIC_4="open attitude harsh casino rent attitude midnight debris describe spare cancel crisp olive ride elite gallery leaf buffalo sheriff filter rotate path begin soldier" +RLY_MNEMONIC_1="alley afraid soup fall idea toss can goose become valve initial strong forward bright dish figure check leopard decide warfare hub unusual join cart" +RLY_MNEMONIC_2="record gift you once hip style during joke field prize dust unique length more pencil transfer quit train device arrive energy sort steak upset" + +P2PPORT_1=16656 +P2PPORT_2=26656 +RPCPORT_1=16657 +RPCPORT_2=26657 +RESTPORT_1=1316 +RESTPORT_2=1317 +ROSETTA_1=8080 +ROSETTA_2=8081 +GRPCPORT_1=8090 +GRPCPORT_2=9090 +GRPCWEB_1=8091 +GRPCWEB_2=9091 + +# Stop if it is already running +if pgrep -x "$BINARY" >/dev/null; then + echo "Terminating $BINARY..." + killall $BINARY +fi + +echo "Removing previous data..." +rm -rf $CHAIN_DIR/$CHAINID_1 &> /dev/null +rm -rf $CHAIN_DIR/$CHAINID_2 &> /dev/null + +# Add directories for both chains, exit if an error occurs +if ! mkdir -p $CHAIN_DIR/$CHAINID_1 2>/dev/null; then + echo "Failed to create chain folder. Aborting..." + exit 1 +fi + +if ! mkdir -p $CHAIN_DIR/$CHAINID_2 2>/dev/null; then + echo "Failed to create chain folder. Aborting..." + exit 1 +fi + +echo "Initializing $CHAINID_1 & $CHAINID_2..." +$BINARY init test --home $CHAIN_DIR/$CHAINID_1 --chain-id=$CHAINID_1 &> /dev/null +$BINARY init test --home $CHAIN_DIR/$CHAINID_2 --chain-id=$CHAINID_2 &> /dev/null + +echo "Adding genesis accounts..." +echo $VAL_MNEMONIC_1 | $BINARY keys add val1 --home $CHAIN_DIR/$CHAINID_1 --recover --keyring-backend=test +echo $VAL_MNEMONIC_2 | $BINARY keys add val2 --home $CHAIN_DIR/$CHAINID_2 --recover --keyring-backend=test +echo $WALLET_MNEMONIC_1 | $BINARY keys add wallet1 --home $CHAIN_DIR/$CHAINID_1 --recover --keyring-backend=test +echo $WALLET_MNEMONIC_2 | $BINARY keys add wallet2 --home $CHAIN_DIR/$CHAINID_2 --recover --keyring-backend=test +echo $WALLET_MNEMONIC_3 | $BINARY keys add wallet3 --home $CHAIN_DIR/$CHAINID_1 --recover --keyring-backend=test +echo $WALLET_MNEMONIC_4 | $BINARY keys add wallet4 --home $CHAIN_DIR/$CHAINID_2 --recover --keyring-backend=test +echo $RLY_MNEMONIC_1 | $BINARY keys add rly1 --home $CHAIN_DIR/$CHAINID_1 --recover --keyring-backend=test +echo $RLY_MNEMONIC_2 | $BINARY keys add rly2 --home $CHAIN_DIR/$CHAINID_2 --recover --keyring-backend=test + +VAL1_ADDR=$($BINARY keys show val1 --home $CHAIN_DIR/$CHAINID_1 --keyring-backend test -a) +VAL2_ADDR=$($BINARY keys show val2 --home $CHAIN_DIR/$CHAINID_2 --keyring-backend test -a) +WALLET1_ADDR=$($BINARY keys show wallet1 --home $CHAIN_DIR/$CHAINID_1 --keyring-backend test -a) +WALLET2_ADDR=$($BINARY keys show wallet2 --home $CHAIN_DIR/$CHAINID_2 --keyring-backend test -a) +WALLET3_ADDR=$($BINARY keys show wallet3 --home $CHAIN_DIR/$CHAINID_1 --keyring-backend test -a) +WALLET4_ADDR=$($BINARY keys show wallet4 --home $CHAIN_DIR/$CHAINID_2 --keyring-backend test -a) +RLY1_ADDR=$($BINARY keys show rly1 --home $CHAIN_DIR/$CHAINID_1 --keyring-backend test -a) +RLY2_ADDR=$($BINARY keys show rly2 --home $CHAIN_DIR/$CHAINID_2 --keyring-backend test -a) + +$BINARY add-genesis-account $VAL1_ADDR "1000000000000000000000${DENOM}" --home $CHAIN_DIR/$CHAINID_1 +$BINARY add-genesis-account $VAL2_ADDR "1000000000000000000000${DENOM}" --home $CHAIN_DIR/$CHAINID_2 +$BINARY add-genesis-account $WALLET1_ADDR "1000000000000000000000${DENOM}" --home $CHAIN_DIR/$CHAINID_1 +$BINARY add-genesis-account $WALLET2_ADDR "1000000000000000000000${DENOM}" --home $CHAIN_DIR/$CHAINID_2 +$BINARY add-genesis-account $WALLET3_ADDR "1000000000000000000000${DENOM}" --vesting-amount "10000000000${DENOM}" --vesting-start-time $(date +%s) --vesting-end-time $(($(date '+%s') + 100000023)) --home $CHAIN_DIR/$CHAINID_1 +$BINARY add-genesis-account $WALLET4_ADDR "1000000000000000000000${DENOM}" --vesting-amount "10000000000${DENOM}" --vesting-start-time $(date +%s) --vesting-end-time $(($(date '+%s') + 100000023)) --home $CHAIN_DIR/$CHAINID_2 +$BINARY add-genesis-account $RLY1_ADDR "1000000000000000000000${DENOM}" --home $CHAIN_DIR/$CHAINID_1 +$BINARY add-genesis-account $RLY2_ADDR "1000000000000000000000${DENOM}" --home $CHAIN_DIR/$CHAINID_2 + +echo "Creating and collecting gentx..." +$BINARY gentx val1 1000000000000000000000${DENOM} --home $CHAIN_DIR/$CHAINID_1 --chain-id $CHAINID_1 --keyring-backend test +$BINARY gentx val2 1000000000000000000000${DENOM} --home $CHAIN_DIR/$CHAINID_2 --chain-id $CHAINID_2 --keyring-backend test +$BINARY collect-gentxs --home $CHAIN_DIR/$CHAINID_1 &> /dev/null +$BINARY collect-gentxs --home $CHAIN_DIR/$CHAINID_2 &> /dev/null + +echo "Changing defaults and ports in app.toml and config.toml files..." +sed -i -e 's#"tcp://0.0.0.0:26656"#"tcp://localhost:'"$P2PPORT_1"'"#g' $CHAIN_DIR/$CHAINID_1/config/config.toml +sed -i -e 's#"tcp://127.0.0.1:26657"#"tcp://localhost:'"$RPCPORT_1"'"#g' $CHAIN_DIR/$CHAINID_1/config/config.toml +sed -i -e 's#"tcp://localhost:26657"#"tcp://localhost:'"$RPCPORT_1"'"#g' $CHAIN_DIR/$CHAINID_1/config/client.toml +sed -i -e 's/timeout_commit = "5s"/timeout_commit = "1s"/g' $CHAIN_DIR/$CHAINID_1/config/config.toml +sed -i -e 's/timeout_propose = "3s"/timeout_propose = "1s"/g' $CHAIN_DIR/$CHAINID_1/config/config.toml +sed -i -e 's/index_all_keys = false/index_all_keys = true/g' $CHAIN_DIR/$CHAINID_1/config/config.toml +sed -i -e 's/enable = false/enable = true/g' $CHAIN_DIR/$CHAINID_1/config/app.toml +sed -i -e 's/swagger = false/swagger = true/g' $CHAIN_DIR/$CHAINID_1/config/app.toml +sed -i -e 's#"tcp://localhost:1317"#"tcp://localhost:'"$RESTPORT_1"'"#g' $CHAIN_DIR/$CHAINID_1/config/app.toml +sed -i -e 's#":8080"#":'"$ROSETTA_1"'"#g' $CHAIN_DIR/$CHAINID_1/config/app.toml +sed -i -e 's/enabled-unsafe-cors = false/enabled-unsafe-cors = true/g' $CHAIN_DIR/$CHAINID_1/config/app.toml + + +sed -i -e 's#"tcp://0.0.0.0:26656"#"tcp://localhost:'"$P2PPORT_2"'"#g' $CHAIN_DIR/$CHAINID_2/config/config.toml +sed -i -e 's#"tcp://127.0.0.1:26657"#"tcp://localhost:'"$RPCPORT_2"'"#g' $CHAIN_DIR/$CHAINID_2/config/config.toml +sed -i -e 's#"tcp://localhost:26657"#"tcp://localhost:'"$RPCPORT_2"'"#g' $CHAIN_DIR/$CHAINID_2/config/client.toml +sed -i -e 's/timeout_commit = "5s"/timeout_commit = "1s"/g' $CHAIN_DIR/$CHAINID_2/config/config.toml +sed -i -e 's/timeout_propose = "3s"/timeout_propose = "1s"/g' $CHAIN_DIR/$CHAINID_2/config/config.toml +sed -i -e 's/index_all_keys = false/index_all_keys = true/g' $CHAIN_DIR/$CHAINID_2/config/config.toml +sed -i -e 's/enable = false/enable = true/g' $CHAIN_DIR/$CHAINID_2/config/app.toml +sed -i -e 's/swagger = false/swagger = true/g' $CHAIN_DIR/$CHAINID_2/config/app.toml +sed -i -e 's#"tcp://localhost:1317"#"tcp://localhost:'"$RESTPORT_2"'"#g' $CHAIN_DIR/$CHAINID_2/config/app.toml +sed -i -e 's#":8080"#":'"$ROSETTA_2"'"#g' $CHAIN_DIR/$CHAINID_2/config/app.toml +sed -i -e 's/enabled-unsafe-cors = false/enabled-unsafe-cors = true/g' $CHAIN_DIR/$CHAINID_2/config/app.toml + + +echo "Changing genesis.json..." +sed -i -e 's/"voting_period": "172800s"/"voting_period": "10s"/g' $CHAIN_DIR/$CHAINID_1/config/genesis.json +sed -i -e 's/"voting_period": "172800s"/"voting_period": "10s"/g' $CHAIN_DIR/$CHAINID_2/config/genesis.json +sed -i -e 's/"reward_delay_time": "604800s"/"reward_delay_time": "0s"/g' $CHAIN_DIR/$CHAINID_1/config/genesis.json +sed -i -e 's/"reward_delay_time": "604800s"/"reward_delay_time": "0s"/g' $CHAIN_DIR/$CHAINID_2/config/genesis.json + + +# Update the genesis file +update_test_genesis () { + jq "$1" $GENESIS_1 > $TMP_GENESIS_1 && mv $TMP_GENESIS_1 $GENESIS_1 + jq "$1" $GENESIS_2 > $TMP_GENESIS_2 && mv $TMP_GENESIS_2 $GENESIS_2 +} + +echo "update test genesis" +update_test_genesis ".app_state[\"staking\"][\"params\"][\"bond_denom\"]=\"$DENOM\"" +update_test_genesis ".app_state[\"mint\"][\"params\"][\"mint_denom\"]=\"$DENOM\"" +update_test_genesis ".app_state[\"crisis\"][\"constant_fee\"][\"denom\"]=\"$DENOM\"" +update_test_genesis ".app_state[\"gov\"][\"params\"][\"min_deposit\"][0][\"denom\"]=\"$DENOM\"" + + +# Starting the chain +echo "Starting $CHAINID_1 in $CHAIN_DIR..." +echo "Creating log file at $CHAIN_DIR/$CHAINID_1.log" +$BINARY start --log_level info --log_format json --p2p.pex=false --home $CHAIN_DIR/$CHAINID_1 --pruning=nothing --grpc.address="0.0.0.0:$GRPCPORT_1" > $CHAIN_DIR/$CHAINID_1.log 2>&1 & + +echo "Starting $CHAINID_2 in $CHAIN_DIR..." +echo "Creating log file at $CHAIN_DIR/$CHAINID_2.log" +$BINARY start --log_level info --log_format json --p2p.pex=false --home $CHAIN_DIR/$CHAINID_2 --pruning=nothing --grpc.address="0.0.0.0:$GRPCPORT_2" > $CHAIN_DIR/$CHAINID_2.log 2>&1 & diff --git a/scripts/tweak-test-upgrade.sh b/scripts/tweak-test-upgrade.sh new file mode 100755 index 000000000..8ad2f1788 --- /dev/null +++ b/scripts/tweak-test-upgrade.sh @@ -0,0 +1,182 @@ +#!/bin/bash + +# the upgrade is a fork, "true" otherwise +FORK=${FORK:-"false"} + +OLD_VERSION=kien-v6.5.0-tweak +UPGRADE_WAIT=${UPGRADE_WAIT:-20} +HOME=mytestnet +ROOT=$(pwd) +DENOM=ppica +CHAIN_ID=localpica +SOFTWARE_UPGRADE_NAME="v7_0_1" +ADDITIONAL_PRE_SCRIPTS="./scripts/upgrade/v6_to_7/pre_08_wasm.sh" +ADDITIONAL_AFTER_SCRIPTS="./scripts/upgrade/v6_to_7/post_08_wasm.sh" + +SLEEP_TIME=1 + +KEY="mykey" +KEY1="test1" +KEY2="test2" + +if [[ "$FORK" == "true" ]]; then + export PICA_HALT_HEIGHT=20 +fi + +# underscore so that go tool will not take gocache into account +mkdir -p _build/gocache +export GOMODCACHE=$ROOT/_build/gocache + + + +# install old binary if not exist +if [ ! -f "_build/$OLD_VERSION.zip" ] &> /dev/null +then + mkdir -p _build/old + wget -c "https://github.com/notional-labs/composable-cosmos/archive/refs/tags/${OLD_VERSION}.zip" -O _build/${OLD_VERSION}.zip + unzip _build/${OLD_VERSION}.zip -d _build +fi + + +# reinstall old binary +if [ $# -eq 1 ] && [ $1 == "--reinstall-old" ] || ! command -v _build/old/centaurid &> /dev/null; then + cd ./_build/composable-cosmos-${OLD_VERSION} + GOBIN="$ROOT/_build/old" go install -mod=readonly ./... + cd ../.. +fi + + +# install new binary +FORCE_BUILD=${FORCE_BUILD:-"false"} +if ! command -v _build/new/centaurid &> /dev/null || [[ "$FORCE_BUILD" == "true" ]]; then + echo "Building the new binary..." + mkdir -p _build/new + GOBIN="$ROOT/_build/new" go install -mod=readonly ./... +fi + +# run old node +# if [[ "$OSTYPE" == "darwin"* ]]; then + +# else +# screen node1 bash scripts/localnode.sh _build/old/centaurid $DENOM +# fi +echo "running old node" +screen -dms old-node bash scripts/localnode.sh _build/old/centaurid $DENOM + +sleep 2 # wait for note to start + +# execute additional pre scripts +if [ ! -z "$ADDITIONAL_PRE_SCRIPTS" ]; then + # slice ADDITIONAL_SCRIPTS by , + SCRIPTS=($(echo "$ADDITIONAL_PRE_SCRIPTS" | tr ',' ' ')) + for SCRIPT in "${SCRIPTS[@]}"; do + # check if SCRIPT is a file + if [ -f "$SCRIPT" ]; then + echo "executing additional pre scripts from $SCRIPT" + source $SCRIPT + sleep 2 + else + echo "$SCRIPT is not a file" + fi + done +fi + + +run_fork () { + echo "forking" + + while true; do + BLOCK_HEIGHT=$(./_build/old/centaurid status | jq '.SyncInfo.latest_block_height' -r) + # if BLOCK_HEIGHT is not empty + if [ ! -z "$BLOCK_HEIGHT" ]; then + echo "BLOCK_HEIGHT = $BLOCK_HEIGHT" + sleep 10 + else + echo "BLOCK_HEIGHT is empty, forking" + break + fi + done +} + +run_upgrade () { + echo -e "\n\n=> =>start upgrading" + + # Get upgrade height, 12 block after (6s) + STATUS_INFO=($(./_build/old/centaurid status --home $HOME | jq -r '.NodeInfo.network,.SyncInfo.latest_block_height')) + UPGRADE_HEIGHT=$((STATUS_INFO[1] + 18)) + echo "UPGRADE_HEIGHT = $UPGRADE_HEIGHT" + + tar -cf ./_build/new/centaurid.tar -C ./_build/new centaurid + SUM=$(shasum -a 256 ./_build/new/centaurid.tar | cut -d ' ' -f1) + UPGRADE_INFO=$(jq -n ' + { + "binaries": { + "linux/amd64": "file://'$(pwd)'/_build/new/centaurid.tar?checksum=sha256:'"$SUM"'", + } + }') + + + ./_build/old/centaurid tx gov submit-legacy-proposal software-upgrade "$SOFTWARE_UPGRADE_NAME" --upgrade-height $UPGRADE_HEIGHT --upgrade-info "$UPGRADE_INFO" --title "upgrade" --description "upgrade" --from $KEY --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null + + sleep $SLEEP_TIME + + ./_build/old/centaurid tx gov deposit 1 "20000000${DENOM}" --from $KEY --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null + + sleep $SLEEP_TIME + + ./_build/old/centaurid tx gov vote 1 yes --from $KEY --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null + + sleep $SLEEP_TIME + + # ./_build/old/centaurid tx gov vote 1 yes --from $KEY2 --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null + + # sleep $SLEEP_TIME + + # determine block_height to halt + while true; do + BLOCK_HEIGHT=$(./_build/old/centaurid status | jq '.SyncInfo.latest_block_height' -r) + if [ $BLOCK_HEIGHT = "$UPGRADE_HEIGHT" ]; then + # assuming running only 1 centaurid + echo "BLOCK HEIGHT = $UPGRADE_HEIGHT REACHED, KILLING OLD ONE" + pkill centaurid + break + else + ./_build/old/centaurid q gov proposal 1 --output=json | jq ".status" + echo "BLOCK_HEIGHT = $BLOCK_HEIGHT" + sleep 1 + fi + done +} + +# if FORK = true +if [[ "$FORK" == "true" ]]; then + run_fork + unset PICA_HALT_HEIGHT +else + run_upgrade +fi + +sleep 1 + +# run new node +echo -e "\n\n=> =>continue running nodes after upgrade" +CONTINUE="true" screen -dms new-node bash scripts/localnode.sh _build/new/centaurid $DENOM + +sleep 5 + + +# execute additional after scripts +if [ ! -z "$ADDITIONAL_AFTER_SCRIPTS" ]; then + # slice ADDITIONAL_SCRIPTS by , + SCRIPTS=($(echo "$ADDITIONAL_AFTER_SCRIPTS" | tr ',' ' ')) + for SCRIPT in "${SCRIPTS[@]}"; do + # check if SCRIPT is a file + if [ -f "$SCRIPT" ]; then + echo "executing additional after scripts from $SCRIPT" + source $SCRIPT _build/new/centaurid + sleep 5 + else + echo "$SCRIPT is not a file" + fi + done +fi \ No newline at end of file diff --git a/scripts/upgrade/init_deps.sh b/scripts/upgrade/init-deps.sh old mode 100755 new mode 100644 similarity index 81% rename from scripts/upgrade/init_deps.sh rename to scripts/upgrade/init-deps.sh index 5c26e30f9..851ce75d0 --- a/scripts/upgrade/init_deps.sh +++ b/scripts/upgrade/init-deps.sh @@ -1,24 +1,22 @@ #!/bin/bash - -OLD_VERSION=kien-devnet-651 -SOFTWARE_UPGRADE_NAME="v6_6_1" +OLD_VERSION=kien-picad-661 +SOFTWARE_UPGRADE_NAME="v7_0_1" ROOT=$(pwd) COMPOSABLE_VERSION="branchfortestingpfmfix" mkdir -p _build/ - # Check if the directory exists and is a Git repository # TODO: using git, since nix in composable repo requires something with git # Consider using submodule, or firgure this out if [ ! -d "_build/composable/.git" ]; then cd _build/ - git clone https://github.com/ComposableFi/composable.git composable + git clone https://github.com/notional-labs/composable.git composable cd composable git checkout "$COMPOSABLE_VERSION" - cd ../.././ + cd ../../. fi @@ -41,7 +39,8 @@ fi # install new binary if ! command -v _build/new/picad &> /dev/null then + echo -e "\n =>installing new picad... \n \n" mkdir -p _build/new - GOBIN="$ROOT/_build/new" go install -mod=readonly ./... + GOBIN="$ROOT/_build/new" make install fi diff --git a/scripts/upgrade/localnode.sh b/scripts/upgrade/localnode.sh new file mode 100755 index 000000000..6e313b356 --- /dev/null +++ b/scripts/upgrade/localnode.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +KEY="mykey" +KEY1="mykey1" +CHAINID="centauri-dev" +MONIKER="localtestnet" +KEYALGO="secp256k1" +KEYRING="test" +LOGLEVEL="info" +BINARY=$1 +# to trace evm +#TRACE="--trace" +TRACE="" + +HOME_DIR=mytestnet +DENOM=ppica + +# remove existing daemon +rm -rf $HOME_DIR + +if [ ! -x "$(command -v $BINARY)" ]; then + echo "Error: Binary $BINARY is not executable or not found." + exit 1 +fi + + +if [ "$CONTINUE" == "true" ]; then + echo "\n ->> continuing from previous state" + $BINARY start --home $HOME_DIR --log_level debug + exit 0 +fi + + +$BINARY config keyring-backend $KEYRING +$BINARY config chain-id $CHAINID + + +# if $KEY exists it should be deleted +echo "decorate bright ozone fork gallery riot bus exhaust worth way bone indoor calm squirrel merry zero scheme cotton until shop any excess stage laundry" | $BINARY keys add $KEY --keyring-backend $KEYRING --algo $KEYALGO --recover --home $HOME_DIR +echo "bottom loan skill merry east cradle onion journey palm apology verb edit desert impose absurd oil bubble sweet glove shallow size build burst effort" | $BINARY keys add $KEY1 --keyring-backend $KEYRING --algo $KEYALGO --recover --home $HOME_DIR +$BINARY init $CHAINID --chain-id $CHAINID --default-denom "ppica" --home $HOME_DIR + +update_test_genesis () { + # update_test_genesis '.consensus_params["block"]["max_gas"]="100000000"' + cat $HOME_DIR/config/genesis.json | jq "$1" > $HOME_DIR/config/tmp_genesis.json && cp $HOME_DIR/config/tmp_genesis.json $HOME_DIR/config/genesis.json +} + +# Allocate genesis accounts (cosmos formatted addresses) +$BINARY add-genesis-account $KEY 100000000000000000000000000ppica --keyring-backend $KEYRING --home $HOME_DIR +$BINARY add-genesis-account $KEY1 100000000000000000000000000ppica --keyring-backend $KEYRING --home $HOME_DIR + +# Sign genesis transaction +$BINARY gentx $KEY 10030009994127689ppica --keyring-backend $KEYRING --chain-id $CHAINID --home $HOME_DIR + +update_test_genesis '.app_state["gov"]["params"]["voting_period"]="20s"' +update_test_genesis '.app_state["mint"]["params"]["mint_denom"]="'$DENOM'"' +update_test_genesis '.app_state["gov"]["params"]["min_deposit"]=[{"denom":"'$DENOM'","amount": "1"}]' +update_test_genesis '.app_state["crisis"]["constant_fee"]={"denom":"'$DENOM'","amount":"1000"}' + +# Collect genesis tx +$BINARY collect-gentxs --home $HOME_DIR + +# Run this to ensure everything worked and that the genesis file is setup correctly +$BINARY validate-genesis --home $HOME_DIR + +if [[ $1 == "pending" ]]; then + echo "pending mode is on, please wait for the first block committed." +fi + +# update request max size so that we can upload the light client +# '' -e is a must have params on mac, if use linux please delete before run +sed -i'' -e 's/max_body_bytes = /max_body_bytes = 1/g' $HOME_DIR/config/config.toml +sed -i'' -e 's/max_tx_bytes = 1048576/max_tx_bytes = 10000000/g' $HOME_DIR/config/config.toml + + +$BINARY start --rpc.unsafe --rpc.laddr tcp://0.0.0.0:26657 --pruning=nothing --minimum-gas-prices=0.001ppica --home=$HOME_DIR --log_level trace --trace --with-tendermint=true --transport=socket --grpc.enable=true --grpc-web.enable=false --api.enable=true --p2p.pex=false --p2p.upnp=false \ No newline at end of file diff --git a/scripts/upgrade/old-node-scripts.sh b/scripts/upgrade/old-node-scripts.sh index d360944f7..e1db94aa3 100755 --- a/scripts/upgrade/old-node-scripts.sh +++ b/scripts/upgrade/old-node-scripts.sh @@ -1,5 +1,6 @@ ADDITIONAL_SCRIPTS=( - "./scripts/upgrade/v_6_4_8/setup-08-wasm.sh" + "./scripts/upgrade/v_6_6_0/setup-08-wasm.sh" + "./scripts/upgrade/v_6_6_0/setup-relayer-account.sh" ) for SCRIPT in "${ADDITIONAL_SCRIPTS[@]}"; do diff --git a/scripts/upgrade/setup-nix-polkadot.sh b/scripts/upgrade/setup-nix-polkadot.sh new file mode 100755 index 000000000..df3fe6856 --- /dev/null +++ b/scripts/upgrade/setup-nix-polkadot.sh @@ -0,0 +1,32 @@ +ROOT=$(pwd) + +cd $ROOT/_build/composable + +# Set the maximum number of attempts +max_attempts=30 + +# Initialize the attempt counter +attempt=1 + +while [ $attempt -le $max_attempts ]; do + echo "Attempt $attempt of $max_attempts" + nix run .#zombienet-rococo-local-picasso-dev + + # Check if the command was successful + if [ $? -eq 0 ]; then + echo "Command executed successfully." + break + else + echo "Command failed, retrying..." + echo "attemp: $attempt" + ((attempt++)) + fi + + # Optional: sleep for a few seconds before retrying + sleep 2 +done + +# Check if all attempts failed +if [ $attempt -gt $max_attempts ]; then + echo "All attempts failed." +fi \ No newline at end of file diff --git a/scripts/upgrade/setup-old-centaurid-node.sh b/scripts/upgrade/setup-old-picad-node.sh similarity index 53% rename from scripts/upgrade/setup-old-centaurid-node.sh rename to scripts/upgrade/setup-old-picad-node.sh index 2316605a9..3d43d0f66 100755 --- a/scripts/upgrade/setup-old-centaurid-node.sh +++ b/scripts/upgrade/setup-old-picad-node.sh @@ -4,21 +4,22 @@ FORK=${FORK:-"false"} -BINARY=_build/old/centaurid +BINARY=_build/old/picad HOME=mytestnet ROOT=$(pwd) DENOM=ppica -CHAIN_ID=centaurid ADDITIONAL_PRE_SCRIPTS="./scripts/upgrade/old-node-scripts.sh" SLEEP_TIME=1 -screen -L -dmS node1 bash scripts/localnode.sh $BINARY $DENOM --Logfile $HOME/log-screen.txt +screen -L -dmS node1 bash scripts/upgrade/localnode.sh $BINARY $DENOM --Logfile $HOME/log-screen.txt + +#screen -L -dmS bash scripts/upgrade/localnode.sh $BINARY $DENOM --Logfile $HOME/log-screen.txt #scripts/localnode.sh $BINARY -sleep 4 # wait for note to start +sleep 10 # wait for note to start # execute additional pre scripts source $ADDITIONAL_PRE_SCRIPTS diff --git a/scripts/upgrade/setup-polkadot-node.sh b/scripts/upgrade/setup-polkadot-node.sh index dadd487ff..b47d6e2b3 100755 --- a/scripts/upgrade/setup-polkadot-node.sh +++ b/scripts/upgrade/setup-polkadot-node.sh @@ -1,6 +1,3 @@ -ROOT=$(pwd) - -cd $ROOT/_build/composable - -# This start the node -nix run .#zombienet-rococo-local-picasso-dev +export PARA_HOST=127.0.0.1 +cd /home/kien6034/notional/composable-ibc-old/scripts/zombienet +process-compose up -f process-compose.yml & sleep 100 \ No newline at end of file diff --git a/scripts/upgrade/upgrade.sh b/scripts/upgrade/upgrade.sh index 28771b9ba..8b6fadc3c 100755 --- a/scripts/upgrade/upgrade.sh +++ b/scripts/upgrade/upgrade.sh @@ -6,13 +6,13 @@ HOME=mytestnet ROOT=$(pwd) DENOM=ppica CHAIN_ID=centauri-dev -SOFTWARE_UPGRADE_NAME="v6_6_1" -ADDITIONAL_PRE_SCRIPTS="./scripts/upgrade/v_6_4_8/pre-script.sh" -ADDITIONAL_AFTER_SCRIPTS="./scripts/upgrade/v_6_4_8/post-script.sh" +SOFTWARE_UPGRADE_NAME="v7_0_1" +ADDITIONAL_PRE_SCRIPTS="./scripts/upgrade/v_6_6_0/pre-script.sh" +ADDITIONAL_AFTER_SCRIPTS="./scripts/upgrade/v_6_6_0/post-script.sh" KEY="mykey" KEY1="mykey1" -SLEEP_TIME=1 +SLEEP_TIME=5 UPGRADE_PROPOSAL_ID=2 @@ -20,8 +20,8 @@ run_upgrade () { echo -e "\n\n=> =>start upgrading" # Get upgrade height, 12 block after (6s) - STATUS_INFO=($(./_build/old/centaurid status --home $HOME | jq -r '.NodeInfo.network,.SyncInfo.latest_block_height')) - UPGRADE_HEIGHT=$((STATUS_INFO[1] + 12)) + STATUS_INFO=($(./_build/old/picad status --home $HOME | jq -r '.NodeInfo.network,.SyncInfo.latest_block_height')) + UPGRADE_HEIGHT=$((STATUS_INFO[1] + 8)) echo "UPGRADE_HEIGHT = $UPGRADE_HEIGHT" tar -cf ./_build/new/picad.tar -C ./_build/new picad @@ -34,31 +34,31 @@ run_upgrade () { }') - ./_build/old/centaurid tx gov submit-legacy-proposal software-upgrade "$SOFTWARE_UPGRADE_NAME" --upgrade-height $UPGRADE_HEIGHT --upgrade-info "$UPGRADE_INFO" --title "upgrade" --description "upgrade" --from $KEY --fees 100000${DENOM} --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null + ./_build/old/picad tx gov submit-legacy-proposal software-upgrade "$SOFTWARE_UPGRADE_NAME" --upgrade-height $UPGRADE_HEIGHT --upgrade-info "$UPGRADE_INFO" --title "upgrade" --description "upgrade" --from $KEY --fees 100000${DENOM} --keyring-backend test --chain-id $CHAIN_ID --home $HOME -y > /dev/null sleep $SLEEP_TIME - ./_build/old/centaurid tx gov deposit $UPGRADE_PROPOSAL_ID "20000000${DENOM}" --from $KEY --keyring-backend test --fees 100000${DENOM} --chain-id $CHAIN_ID --home $HOME -y + ./_build/old/picad tx gov deposit $UPGRADE_PROPOSAL_ID "20000000${DENOM}" --from $KEY --keyring-backend test --fees 100000${DENOM} --chain-id $CHAIN_ID --home $HOME -y sleep $SLEEP_TIME - ./_build/old/centaurid tx gov vote $UPGRADE_PROPOSAL_ID yes --from $KEY --keyring-backend test --fees 100000${DENOM} --chain-id $CHAIN_ID --home $HOME -y + ./_build/old/picad tx gov vote $UPGRADE_PROPOSAL_ID yes --from $KEY --keyring-backend test --fees 100000${DENOM} --chain-id $CHAIN_ID --home $HOME -y sleep $SLEEP_TIME # determine block_height to halt while true; do - BLOCK_HEIGHT=$(./_build/old/centaurid status | jq '.SyncInfo.latest_block_height' -r) + BLOCK_HEIGHT=$(./_build/old/picad status | jq '.SyncInfo.latest_block_height' -r) if [ $BLOCK_HEIGHT = "$UPGRADE_HEIGHT" ]; then - # assuming running only 1 centaurid + # assuming running only 1 picad echo "BLOCK HEIGHT = $UPGRADE_HEIGHT REACHED, KILLING OLD ONE" - pkill centaurid + pkill picad break else - ./_build/old/centaurid q gov proposal $UPGRADE_PROPOSAL_ID --output=json | jq ".status" + ./_build/old/picad q gov proposal $UPGRADE_PROPOSAL_ID --output=json | jq ".status" echo "BLOCK_HEIGHT = $BLOCK_HEIGHT" - sleep 1 + sleep $SLEEP_TIME fi done } @@ -75,6 +75,6 @@ sleep 1 # run new node echo -e "\n\n=> =>continue running nodes after upgrade" -#CONTINUE="true" screen -L -dmS picad bash scripts/localnode.sh _build/new/picad $DENOM -CONTINUE="true" bash scripts/localnode.sh _build/new/picad $DENOM +CONTINUE="true" screen -L -dmS picad bash scripts/localnode.sh _build/new/picad $DENOM +#CONTINUE="true" bash scripts/localnode.sh _build/new/picad $DENOM diff --git a/scripts/upgrade/v_6_6_0/pre-script.sh b/scripts/upgrade/v_6_6_0/pre-script.sh new file mode 100644 index 000000000..75eec84f8 --- /dev/null +++ b/scripts/upgrade/v_6_6_0/pre-script.sh @@ -0,0 +1,60 @@ +echo -e "\n ********** Running Pre-Scripts **********" + +BINARY=$1 +DENOM=${2:-upica} +CHAIN_DIR=$(pwd)/mytestnet + +KEY="test0" +KEY1="test1" +KEY2="test2" + + +DEFAULT_GAS_FLAG="--gas 3000000 --gas-prices 0.025$DENOM --gas-adjustment 1.5" +DEFAULT_ENV_FLAG="--keyring-backend test --chain-id localpica --home $CHAIN_DIR" + + + +echo "binary value: $BINARY" +COUNTER_CONTRACT_DIR=$(pwd)/scripts/upgrade/contracts/counter.wasm + +WALLET_1=$($BINARY keys show $KEY1 -a --keyring-backend test --home $CHAIN_DIR) +BALANCE_1=$($BINARY query bank balances $WALLET_1 --home $CHAIN_DIR -o json | jq -r '.balances[0].amount') +echo "wallet 1: $WALLET_1 - balance: $BALANCE_1" + + +############ Settingup WASM environment ############ +### Create a counter contract, then increment the counter to 1 #### +## Deploy the counter contract +TX_HASH=$($BINARY tx wasm store $COUNTER_CONTRACT_DIR --from $KEY1 $DEFAULT_ENV_FLAG $DEFAULT_GAS_FLAG -y -o json | jq -r '.txhash') + +## Get CODE ID +sleep 1 +CODE_ID=$($BINARY query tx $TX_HASH -o json | jq -r '.logs[0].events[1].attributes[1].value') +echo "code id: $CODE_ID" + +## Get contract address +# NOTE: CAN USE https://github.com/CosmWasm/wasmd/blob/9e44af168570391b0b69822952f206d35320d473/contrib/local/02-contracts.sh#L38 instantiate2 to predict address +RANDOM_HASH=$(hexdump -vn16 -e'4/4 "%08X" 1 "\n"' /dev/urandom) +TX_HASH=$($BINARY tx wasm instantiate2 $CODE_ID '{"count": 0}' $RANDOM_HASH --no-admin --label="Label with $RANDOM_HASH" --from $KEY1 $DEFAULT_ENV_FLAG $DEFAULT_GAS_FLAG -y -o json | jq -r '.txhash') + +sleep 1 +CONTRACT_ADDRESS=$($BINARY query tx $TX_HASH -o json | jq -r '.logs[0].events[1].attributes[0].value') +echo "Contract address deployed at: $CONTRACT_ADDRESS" + +## Execute the contract, increment counter to 1 +echo "wallet1: call the increment() function" +$BINARY tx wasm execute $CONTRACT_ADDRESS '{"increment":{}}' --from $KEY1 $DEFAULT_ENV_FLAG $DEFAULT_GAS_FLAG -y -o json > /dev/null + +## assert counter value to be 1 +sleep 1 +echo "wallet1: call the get_count() function" +$BINARY query wasm contract-state smart $CONTRACT_ADDRESS '{"get_count":{"addr": "'"$WALLET_1"'"}}' -o json +COUNTER_VALUE=$($BINARY query wasm contract-state smart $CONTRACT_ADDRESS '{"get_count":{"addr": "'"$WALLET_1"'"}}' -o json | jq -r '.data.count') +if [ "$COUNTER_VALUE" -ne 1 ]; then + echo "Assertion failed: Expected counter value to be 1, got $COUNTER_VALUE" + exit 1 +fi +echo "Assertion passed: Counter value is 1 as expected" + +export CONTRACT_ADDRESS=$CONTRACT_ADDRESS + diff --git a/scripts/upgrade/v_6_6_0/setup-08-wasm.sh b/scripts/upgrade/v_6_6_0/setup-08-wasm.sh new file mode 100755 index 000000000..c17aefd67 --- /dev/null +++ b/scripts/upgrade/v_6_6_0/setup-08-wasm.sh @@ -0,0 +1,23 @@ +#!/bin/bash +KEY=mykey +KEYALGO="secp256k1" +KEYRING="test" +HOME_DIR="mytestnet" +BINARY=_build/old/picad +DENOM=ppica +CHAINID=centauri-dev + +$BINARY tx gov submit-proposal scripts/08-wasm/ics10_grandpa_cw.wasm.json --from=$KEY --fees 100000${DENOM} --gas auto --keyring-backend test --home $HOME_DIR --chain-id $CHAINID -y + +sleep 5 +# TODO: fetch the propsoal id dynamically +$BINARY tx gov deposit "1" "20000000ppica" --from $KEY --fees 100000${DENOM} --gas auto --keyring-backend test --home $HOME_DIR --chain-id $CHAINID -y + +sleep 5 +$BINARY tx gov vote 1 yes --from $KEY --fees 100000${DENOM} --keyring-backend test --home $HOME_DIR --chain-id $CHAINID -y + + +## Voting time is 20s, check in localnode.sh +sleep 20 + +$BINARY query 08-wasm all-wasm-code --home $HOME_DIR --chain-id $CHAINID \ No newline at end of file diff --git a/scripts/upgrade/v_6_6_0/setup-relayer-account.sh b/scripts/upgrade/v_6_6_0/setup-relayer-account.sh new file mode 100755 index 000000000..982565cf6 --- /dev/null +++ b/scripts/upgrade/v_6_6_0/setup-relayer-account.sh @@ -0,0 +1,19 @@ +#!/bin/bash +KEY=mykey1 +RLY_KEY=mykey +KEYALGO="secp256k1" +KEYRING="test" +HOME_DIR="mytestnet" +BINARY=_build/old/picad +DENOM=ppica +CHAINID=centauri-dev + + +UPGRADE_PRPOSAL_ID=1 +RLY_KEY=$($BINARY keys show $RLY_KEY -a --keyring-backend $KEYRING --home $HOME_DIR) +echo "Address of myKEY: $RLY_KEY" + + +$BINARY tx transmiddleware add-rly --from $KEY $RLY_KEY --keyring-backend test --home $HOME_DIR --chain-id $CHAINID --fees 100000${DENOM} -y + +sleep 5 diff --git a/scripts/upload_contracts.sh b/scripts/upload_contracts.sh index c644f7dff..4cae6f1fb 100755 --- a/scripts/upload_contracts.sh +++ b/scripts/upload_contracts.sh @@ -1,21 +1,10 @@ #!/bin/bash KEY="mykey" -CHAINID="test-1" KEYALGO="secp256k1" KEYRING="test" # validate dependencies are installed command -v jq > /dev/null 2>&1 || { echo >&2 "jq not installed. More info: https://stedolan.github.io/jq/download/"; exit 1; } -# remove existing daemon -rm -rf ~/.centauri* - -~/go/bin/picad config keyring-backend $KEYRING -~/go/bin/picad config chain-id $CHAINID - -# if $KEY exists it should be deleted -echo "decorate bright ozone fork gallery riot bus exhaust worth way bone indoor calm squirrel merry zero scheme cotton until shop any excess stage laundry" | ~/go/bin/picad keys add $KEY --keyring-backend $KEYRING --algo $KEYALGO --recover - - -~/go/bin/picad tx 08-wasm push-wasm contracts/ics10_grandpa_cw.wasm --from mykey --keyring-backend test --gas 902152622 --fees 920166stake -y \ No newline at end of file +./_build/old/centaurid tx 08-wasm push-wasm contracts/ics10_grandpa_cw.wasm --from=mykey --gas 10002152622 --fees 10020166ppica --keyring-backend test --chain-id=localpica -y diff --git a/scripts/upload_contracts_new.sh b/scripts/upload_contracts_new.sh new file mode 100755 index 000000000..14685b26d --- /dev/null +++ b/scripts/upload_contracts_new.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +KEY="mykey" +KEYALGO="secp256k1" +KEYRING="test" + +# validate dependencies are installed +command -v jq > /dev/null 2>&1 || { echo >&2 "jq not installed. More info: https://stedolan.github.io/jq/download/"; exit 1; } + +centaurid tx ibc-wasm store-code contracts/ics10_grandpa_cw.wasm --from=mykey --title test --summary test --gas 10002152622 --fees 10020166ppica --deposit 100000000ppica --keyring-backend test --chain-id=localpica -y +sleep 5 +centaurid tx gov vote 1 yes --from=mykey --gas 10002152622 --fees 10020166ppica --keyring-backend test --chain-id=localpica -y \ No newline at end of file diff --git a/test b/test new file mode 100644 index 000000000..4acfcdd49 --- /dev/null +++ b/test @@ -0,0 +1 @@ +Error: status: Unknown, message: "recovered: unimplementedstack:\ngoroutine 745 [running]:\nruntime/debug.Stack()\n\truntime/debug/stack.go:24 +0x5e\ngithub.com/cosmos/cosmos-sdk/baseapp.NewBaseApp.newDefaultRecoveryMiddleware.func5({0x2bd4ae0, 0x3b03910})\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/baseapp/recovery.go:74 +0x25\ngithub.com/cosmos/cosmos-sdk/baseapp.NewBaseApp.newDefaultRecoveryMiddleware.newRecoveryMiddleware.func7({0x2bd4ae0?, 0x3b03910?})\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/baseapp/recovery.go:42 +0x2d\ngithub.com/cosmos/cosmos-sdk/baseapp.processRecovery({0x2bd4ae0, 0x3b03910}, 0x0?)\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/baseapp/recovery.go:31 +0x2f\ngithub.com/cosmos/cosmos-sdk/baseapp.processRecovery({0x2bd4ae0, 0x3b03910}, 0x0?)\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/baseapp/recovery.go:36 +0x53\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runTx.func1()\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/baseapp/baseapp.go:836 +0x156\npanic({0x2bd4ae0?, 0x3b03910?})\n\truntime/panic.go:770 +0x132\ngithub.com/cosmos/ibc-go/v8/modules/light-clients/10-grandpa.(*ClientState).Validate(0xc000c9b500?)\n\tgithub.com/cosmos/ibc-go/v8@v8.1.1/modules/light-clients/10-grandpa/client_state.go:24 +0x25\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/types.MsgCreateClient.ValidateBasic({0xc000c9b500?, 0xc000c9b560?, {0xc00112b800?, 0xc002610600?}})\n\tgithub.com/cosmos/ibc-go/v8@v8.1.1/modules/core/02-client/types/msgs.go:73 +0x11f\ngithub.com/cosmos/cosmos-sdk/baseapp.validateBasicTxMsgs({0xc000c89730?, 0x263?, 0x280?})\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/baseapp/baseapp.go:625 +0x86\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runTx(0xc001bbe248, 0x2, {0xc0010cf680, 0x263, 0x280})\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/baseapp/baseapp.go:873 +0x326\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).Simulate(...)\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/baseapp/test_helpers.go:28\ngithub.com/cosmos/cosmos-sdk/x/auth/tx.txServer.Simulate({{{0x0, 0x0, 0x0}, {0x3b68088, 0xc00166d920}, 0x0, {0xc001168bd0, 0xc}, {0x3b861c0, 0xc0012a3c20}, ...}, ...}, ...)\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/x/auth/tx/service.go:98 +0x12c\ngithub.com/cosmos/cosmos-sdk/types/tx._Service_Simulate_Handler.func1({0x3b43da0?, 0xc001328f60?}, {0x30a28e0?, 0xc007946500?})\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/types/tx/service.pb.go:1443 +0xcb\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func1({0x3b43da0, 0xc0010ba5a0}, {0x30a28e0, 0xc007946500}, 0xc0014a5830?, 0xc0071e5188)\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/baseapp/grpcserver.go:70 +0x458\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func2.ChainUnaryServer.2.1({0x3b43da0?, 0xc0010ba5a0?}, {0x30a28e0?, 0xc007946500?})\n\tgithub.com/grpc-ecosystem/go-grpc-middleware@v1.4.0/chain.go:48 +0x45\ngithub.com/grpc-ecosystem/go-grpc-middleware/recovery.UnaryServerInterceptor.func1({0x3b43da0?, 0xc0010ba5a0?}, {0x30a28e0?, 0xc007946500?}, 0x0?, 0xc0071e5188?)\n\tgithub.com/grpc-ecosystem/go-grpc-middleware@v1.4.0/recovery/interceptors.go:33 +0xb0\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func2.ChainUnaryServer.2({0x3b43da0, 0xc0010ba5a0}, {0x30a28e0, 0xc007946500}, 0xc007946540, 0x28?)\n\tgithub.com/grpc-ecosystem/go-grpc-middleware@v1.4.0/chain.go:53 +0x123\ngithub.com/cosmos/cosmos-sdk/types/tx._Service_Simulate_Handler({0x306f1e0, 0xc000e9c000}, {0x3b43da0, 0xc0010ba5a0}, 0xc00072ab80, 0xc0010ba5d0)\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/types/tx/service.pb.go:1445 +0x143\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func2({0x306f1e0, 0xc000e9c000}, {0x3b43da0, 0xc0010ba5a0}, 0xc00072ab80, 0xc001b08120?)\n\tgithub.com/cosmos/cosmos-sdk@v0.50.5/baseapp/grpcserver.go:84 +0x112\ngoogle.golang.org/grpc.(*Server).processUnaryRPC(0xc0016fa800, {0x3b43da0, 0xc0051e54d0}, {0x3b5cd40, 0xc0017e21a0}, 0xc001b08120, 0xc000d03860, 0xc000fb81c0, 0x0)\n\tgoogle.golang.org/grpc@v1.62.1/server.go:1386 +0xdf8\ngoogle.golang.org/grpc.(*Server).handleStream(0xc0016fa800, {0x3b5cd40, 0xc0017e21a0}, 0xc001b08120)\n\tgoogle.golang.org/grpc@v1.62.1/server.go:1797 +0xe87\ngoogle.golang.org/grpc.(*Server).serveStreams.func2.1()\n\tgoogle.golang.org/grpc@v1.62.1/server.go:1027 +0x8b\ncreated by google.golang.org/grpc.(*Server).serveStreams.func2 in goroutine 761\n\tgoogle.golang.org/grpc@v1.62.1/server.go:1038 +0x125\n: panic [cosmos/cosmos-sdk@v0.50.5/baseapp/recovery.go:72] with gas used: '1174'", details: [], metadata: MetadataMap { headers: {"content-type": "application/grpc", "x-cosmos-block-height": "42"} } \ No newline at end of file diff --git a/tests/interchaintest/basic_cosmos_test.go b/tests/interchaintest/basic_cosmos_test.go index 155391a8b..50b143190 100644 --- a/tests/interchaintest/basic_cosmos_test.go +++ b/tests/interchaintest/basic_cosmos_test.go @@ -2,11 +2,11 @@ package interchaintest import ( "context" + "github.com/strangelove-ventures/interchaintest/v8" "testing" - "github.com/strangelove-ventures/interchaintest/v7" - "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v7/testreporter" + "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v8/testreporter" "github.com/stretchr/testify/require" "go.uber.org/zap/zaptest" ) @@ -28,7 +28,7 @@ func TestBasicCentauri(t *testing.T) { cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ { Name: "centauri", - ChainConfig: centauriConfig, + ChainConfig: CentauriConfig, NumValidators: &numVals, NumFullNodes: &numFullNodes, }, diff --git a/tests/interchaintest/chain_start_test.go b/tests/interchaintest/chain_start_test.go index c74b1708e..d63943f3e 100644 --- a/tests/interchaintest/chain_start_test.go +++ b/tests/interchaintest/chain_start_test.go @@ -4,9 +4,9 @@ import ( "context" "testing" - "github.com/strangelove-ventures/interchaintest/v7" - "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v7/testreporter" + "github.com/strangelove-ventures/interchaintest/v8" + "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v8/testreporter" "github.com/stretchr/testify/require" "go.uber.org/zap/zaptest" ) @@ -28,7 +28,7 @@ func TestStartCentauri(t *testing.T) { cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ { Name: "centauri", - ChainConfig: centauriConfig, + ChainConfig: CentauriConfig, NumValidators: &numVals, NumFullNodes: &numFullNodes, }, diff --git a/tests/interchaintest/contracts/ibchooks_counter.wasm b/tests/interchaintest/contracts/ibchooks_counter.wasm new file mode 100644 index 000000000..938171ef8 Binary files /dev/null and b/tests/interchaintest/contracts/ibchooks_counter.wasm differ diff --git a/tests/interchaintest/forward_timeout_test.go b/tests/interchaintest/forward_timeout_test.go new file mode 100644 index 000000000..4eb93bbc0 --- /dev/null +++ b/tests/interchaintest/forward_timeout_test.go @@ -0,0 +1,415 @@ +package interchaintest + +import ( + "context" + "encoding/json" + sdk "github.com/cosmos/cosmos-sdk/types" + "testing" + "time" + + "cosmossdk.io/math" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + chantypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + "github.com/strangelove-ventures/interchaintest/v8" + "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v8/ibc" + "github.com/strangelove-ventures/interchaintest/v8/relayer" + "github.com/strangelove-ventures/interchaintest/v8/testreporter" + "github.com/strangelove-ventures/interchaintest/v8/testutil" + "github.com/stretchr/testify/require" + "go.uber.org/zap/zaptest" +) + +func TestTimeoutOnForward(t *testing.T) { + if testing.Short() { + t.Skip("skipping in short mode") + } + + var ( + ctx = context.Background() + client, network = interchaintest.DockerSetup(t) + rep = testreporter.NewNopReporter() + eRep = rep.RelayerExecReporter(t) + chainIdA, chainIdB, chainIdC, chainIdD = "chain-a", "chain-b", "chain-c", "chain-d" + ) + + vals := 1 + fullNodes := 0 + + baseCfg := CentauriConfig + + baseCfg.ChainID = chainIdA + configA := baseCfg + + baseCfg.ChainID = chainIdB + configB := baseCfg + + baseCfg.ChainID = chainIdC + configC := baseCfg + + baseCfg.ChainID = chainIdD + configD := baseCfg + + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ + {Name: "pfm", ChainConfig: configA, NumFullNodes: &fullNodes, NumValidators: &vals}, + {Name: "pfm", ChainConfig: configB, NumFullNodes: &fullNodes, NumValidators: &vals}, + {Name: "pfm", ChainConfig: configC, NumFullNodes: &fullNodes, NumValidators: &vals}, + {Name: "pfm", ChainConfig: configD, NumFullNodes: &fullNodes, NumValidators: &vals}, + }) + + chains, err := cf.Chains(t.Name()) + require.NoError(t, err) + + chainA, chainB, chainC, chainD := chains[0].(*cosmos.CosmosChain), chains[1].(*cosmos.CosmosChain), chains[2].(*cosmos.CosmosChain), chains[3].(*cosmos.CosmosChain) + + r := interchaintest.NewBuiltinRelayerFactory( + ibc.CosmosRly, + zaptest.NewLogger(t), + relayer.DockerImage(&DefaultRelayer), + relayer.StartupFlags("--processor", "events", "--block-history", "100"), + ).Build(t, client, network) + + const pathAB = "ab" + const pathBC = "bc" + const pathCD = "cd" + + ic := interchaintest.NewInterchain(). + AddChain(chainA). + AddChain(chainB). + AddChain(chainC). + AddChain(chainD). + AddRelayer(r, "relayer"). + AddLink(interchaintest.InterchainLink{ + Chain1: chainA, + Chain2: chainB, + Relayer: r, + Path: pathAB, + }). + AddLink(interchaintest.InterchainLink{ + Chain1: chainB, + Chain2: chainC, + Relayer: r, + Path: pathBC, + }). + AddLink(interchaintest.InterchainLink{ + Chain1: chainC, + Chain2: chainD, + Relayer: r, + Path: pathCD, + }) + + require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ + TestName: t.Name(), + Client: client, + NetworkID: network, + SkipPathCreation: false, + })) + + t.Cleanup(func() { + _ = ic.Close() + }) + + // Start the relayer on only the path between chainA<>chainB so that the initial transfer succeeds + err = r.StartRelayer(ctx, eRep, pathAB) + require.NoError(t, err) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occured while stopping the relayer: %s", err) + } + }, + ) + + // Fund user accounts with initial balances and get the transfer channel information between each set of chains + initBal := math.NewInt(10_000_000_000) + users := interchaintest.GetAndFundTestUsers(t, ctx, t.Name(), initBal, chainA, chainB, chainC, chainD) + + abChan, err := ibc.GetTransferChannel(ctx, r, eRep, chainIdA, chainIdB) + require.NoError(t, err) + + baChan := abChan.Counterparty + + cbChan, err := ibc.GetTransferChannel(ctx, r, eRep, chainIdC, chainIdB) + require.NoError(t, err) + + bcChan := cbChan.Counterparty + + dcChan, err := ibc.GetTransferChannel(ctx, r, eRep, chainIdD, chainIdC) + require.NoError(t, err) + + cdChan := dcChan.Counterparty + + userA, userB, userC, userD := users[0], users[1], users[2], users[3] + + // Compose the prefixed denoms and ibc denom for asserting balances + firstHopDenom := transfertypes.GetPrefixedDenom(baChan.PortID, baChan.ChannelID, chainA.Config().Denom) + secondHopDenom := transfertypes.GetPrefixedDenom(cbChan.PortID, cbChan.ChannelID, firstHopDenom) + thirdHopDenom := transfertypes.GetPrefixedDenom(dcChan.PortID, dcChan.ChannelID, secondHopDenom) + + firstHopDenomTrace := transfertypes.ParseDenomTrace(firstHopDenom) + secondHopDenomTrace := transfertypes.ParseDenomTrace(secondHopDenom) + thirdHopDenomTrace := transfertypes.ParseDenomTrace(thirdHopDenom) + + firstHopIBCDenom := firstHopDenomTrace.IBCDenom() + secondHopIBCDenom := secondHopDenomTrace.IBCDenom() + thirdHopIBCDenom := thirdHopDenomTrace.IBCDenom() + + firstHopEscrowAccount := sdk.MustBech32ifyAddressBytes(chainA.Config().Bech32Prefix, transfertypes.GetEscrowAddress(abChan.PortID, abChan.ChannelID)) + secondHopEscrowAccount := sdk.MustBech32ifyAddressBytes(chainB.Config().Bech32Prefix, transfertypes.GetEscrowAddress(bcChan.PortID, bcChan.ChannelID)) + thirdHopEscrowAccount := sdk.MustBech32ifyAddressBytes(chainC.Config().Bech32Prefix, transfertypes.GetEscrowAddress(cdChan.PortID, abChan.ChannelID)) + + zeroBal := math.ZeroInt() + transferAmount := math.NewInt(100_000) + + // Attempt to send packet from Chain A->Chain B->Chain C->Chain D + transfer := ibc.WalletAmount{ + Address: userB.FormattedAddress(), + Denom: chainA.Config().Denom, + Amount: transferAmount, + } + + retries := uint8(0) + secondHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userD.FormattedAddress(), + Channel: cdChan.ChannelID, + Port: cdChan.PortID, + Retries: &retries, + }, + } + nextBz, err := json.Marshal(secondHopMetadata) + require.NoError(t, err) + next := string(nextBz) + + firstHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userC.FormattedAddress(), + Channel: bcChan.ChannelID, + Port: bcChan.PortID, + Next: &next, + Retries: &retries, + Timeout: time.Second * 10, // Set low timeout for forward from chainB<>chainC + }, + } + + memo, err := json.Marshal(firstHopMetadata) + require.NoError(t, err) + + opts := ibc.TransferOptions{ + Memo: string(memo), + } + + chainBHeight, err := chainB.Height(ctx) + require.NoError(t, err) + + transferTx, err := chainA.SendIBCTransfer(ctx, abChan.ChannelID, userA.KeyName(), transfer, opts) + require.NoError(t, err) + + // Poll for MsgRecvPacket on chainB + _, err = cosmos.PollForMessage[*chantypes.MsgRecvPacket](ctx, chainB, cosmos.DefaultEncoding().InterfaceRegistry, chainBHeight, chainBHeight+20, nil) + require.NoError(t, err) + + // Stop the relayer and wait for the timeout to happen on chainC + err = r.StopRelayer(ctx, eRep) + require.NoError(t, err) + + time.Sleep(time.Second * 11) + + // Restart the relayer + err = r.StartRelayer(ctx, eRep, pathAB, pathBC, pathCD) + require.NoError(t, err) + + chainAHeight, err := chainA.Height(ctx) + require.NoError(t, err) + + chainBHeight, err = chainB.Height(ctx) + require.NoError(t, err) + + // Poll for the MsgTimeout on chainB and the MsgAck on chainA + _, err = cosmos.PollForMessage[*chantypes.MsgTimeout](ctx, chainB, chainB.Config().EncodingConfig.InterfaceRegistry, chainBHeight, chainBHeight+20, nil) + require.NoError(t, err) + + _, err = testutil.PollForAck(ctx, chainA, chainAHeight, chainAHeight+30, transferTx.Packet) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 1, chainA) + require.NoError(t, err) + + // Assert balances to ensure that the funds are still on the original sending chain + chainABalance, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + + chainBBalance, err := chainB.GetBalance(ctx, userB.FormattedAddress(), firstHopIBCDenom) + require.NoError(t, err) + + chainCBalance, err := chainC.GetBalance(ctx, userC.FormattedAddress(), secondHopIBCDenom) + require.NoError(t, err) + + chainDBalance, err := chainD.GetBalance(ctx, userD.FormattedAddress(), thirdHopIBCDenom) + require.NoError(t, err) + + require.True(t, chainABalance.Equal(initBal)) + require.True(t, chainBBalance.Equal(zeroBal)) + require.True(t, chainCBalance.Equal(zeroBal)) + require.True(t, chainDBalance.Equal(zeroBal)) + + firstHopEscrowBalance, err := chainA.GetBalance(ctx, firstHopEscrowAccount, chainA.Config().Denom) + require.NoError(t, err) + + secondHopEscrowBalance, err := chainB.GetBalance(ctx, secondHopEscrowAccount, firstHopIBCDenom) + require.NoError(t, err) + + thirdHopEscrowBalance, err := chainC.GetBalance(ctx, thirdHopEscrowAccount, secondHopIBCDenom) + require.NoError(t, err) + + require.True(t, firstHopEscrowBalance.Equal(zeroBal)) + require.True(t, secondHopEscrowBalance.Equal(zeroBal)) + require.True(t, thirdHopEscrowBalance.Equal(zeroBal)) + + // Send IBC transfer from ChainA -> ChainB -> ChainC -> ChainD that will succeed + secondHopMetadata = &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userD.FormattedAddress(), + Channel: cdChan.ChannelID, + Port: cdChan.PortID, + }, + } + nextBz, err = json.Marshal(secondHopMetadata) + require.NoError(t, err) + next = string(nextBz) + + firstHopMetadata = &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userC.FormattedAddress(), + Channel: bcChan.ChannelID, + Port: bcChan.PortID, + Next: &next, + }, + } + + memo, err = json.Marshal(firstHopMetadata) + require.NoError(t, err) + + opts = ibc.TransferOptions{ + Memo: string(memo), + } + + chainAHeight, err = chainA.Height(ctx) + require.NoError(t, err) + + transferTx, err = chainA.SendIBCTransfer(ctx, abChan.ChannelID, userA.KeyName(), transfer, opts) + require.NoError(t, err) + + _, err = testutil.PollForAck(ctx, chainA, chainAHeight, chainAHeight+30, transferTx.Packet) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, chainA) + require.NoError(t, err) + + // Assert balances are updated to reflect tokens now being on ChainD + chainABalance, err = chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + + chainBBalance, err = chainB.GetBalance(ctx, userB.FormattedAddress(), firstHopIBCDenom) + require.NoError(t, err) + + chainCBalance, err = chainC.GetBalance(ctx, userC.FormattedAddress(), secondHopIBCDenom) + require.NoError(t, err) + + chainDBalance, err = chainD.GetBalance(ctx, userD.FormattedAddress(), thirdHopIBCDenom) + require.NoError(t, err) + + require.True(t, chainABalance.Equal(initBal.Sub(transferAmount))) + require.True(t, chainBBalance.Equal(zeroBal)) + require.True(t, chainCBalance.Equal(zeroBal)) + require.True(t, chainDBalance.Equal(transferAmount)) + + firstHopEscrowBalance, err = chainA.GetBalance(ctx, firstHopEscrowAccount, chainA.Config().Denom) + require.NoError(t, err) + + secondHopEscrowBalance, err = chainB.GetBalance(ctx, secondHopEscrowAccount, firstHopIBCDenom) + require.NoError(t, err) + + thirdHopEscrowBalance, err = chainC.GetBalance(ctx, thirdHopEscrowAccount, secondHopIBCDenom) + require.NoError(t, err) + + require.True(t, firstHopEscrowBalance.Equal(transferAmount)) + require.True(t, secondHopEscrowBalance.Equal(transferAmount)) + require.True(t, thirdHopEscrowBalance.Equal(transferAmount)) + + // Compose IBC tx that will attempt to go from ChainD -> ChainC -> ChainB -> ChainA but timeout between ChainB->ChainA + transfer = ibc.WalletAmount{ + Address: userC.FormattedAddress(), + Denom: thirdHopDenom, + Amount: transferAmount, + } + + secondHopMetadata = &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userA.FormattedAddress(), + Channel: baChan.ChannelID, + Port: baChan.PortID, + Timeout: 1 * time.Second, + }, + } + nextBz, err = json.Marshal(secondHopMetadata) + require.NoError(t, err) + next = string(nextBz) + + firstHopMetadata = &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userB.FormattedAddress(), + Channel: cbChan.ChannelID, + Port: cbChan.PortID, + Next: &next, + }, + } + + memo, err = json.Marshal(firstHopMetadata) + require.NoError(t, err) + + chainDHeight, err := chainD.Height(ctx) + require.NoError(t, err) + + transferTx, err = chainD.SendIBCTransfer(ctx, dcChan.ChannelID, userD.KeyName(), transfer, ibc.TransferOptions{Memo: string(memo)}) + require.NoError(t, err) + + _, err = testutil.PollForAck(ctx, chainD, chainDHeight, chainDHeight+25, transferTx.Packet) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, chainD) + require.NoError(t, err) + + // Assert balances to ensure timeout happened and user funds are still present on ChainD + chainABalance, err = chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + + chainBBalance, err = chainB.GetBalance(ctx, userB.FormattedAddress(), firstHopIBCDenom) + require.NoError(t, err) + + chainCBalance, err = chainC.GetBalance(ctx, userC.FormattedAddress(), secondHopIBCDenom) + require.NoError(t, err) + + chainDBalance, err = chainD.GetBalance(ctx, userD.FormattedAddress(), thirdHopIBCDenom) + require.NoError(t, err) + + require.True(t, chainABalance.Equal(initBal.Sub(transferAmount))) + require.True(t, chainBBalance.Equal(zeroBal)) + require.True(t, chainCBalance.Equal(zeroBal)) + require.True(t, chainDBalance.Equal(transferAmount)) + + firstHopEscrowBalance, err = chainA.GetBalance(ctx, firstHopEscrowAccount, chainA.Config().Denom) + require.NoError(t, err) + + secondHopEscrowBalance, err = chainB.GetBalance(ctx, secondHopEscrowAccount, firstHopIBCDenom) + require.NoError(t, err) + + thirdHopEscrowBalance, err = chainC.GetBalance(ctx, thirdHopEscrowAccount, secondHopIBCDenom) + require.NoError(t, err) + + require.True(t, firstHopEscrowBalance.Equal(transferAmount)) + require.True(t, secondHopEscrowBalance.Equal(transferAmount)) + require.True(t, thirdHopEscrowBalance.Equal(transferAmount)) +} diff --git a/tests/interchaintest/go.mod b/tests/interchaintest/go.mod index 6d80d135e..ec2ea8a30 100644 --- a/tests/interchaintest/go.mod +++ b/tests/interchaintest/go.mod @@ -1,140 +1,166 @@ module github.com/notional-labs/composable-testnet/tests/interchaintest -go 1.20 +go 1.21 + +toolchain go1.22.2 require ( - github.com/cosmos/ibc-go/v7 v7.0.0 + cosmossdk.io/math v1.3.0 + github.com/CosmWasm/wasmd v0.42.1-0.20230928145107-894076a25cb2 + github.com/cosmos/cosmos-sdk v0.50.5 + github.com/cosmos/ibc-go/v8 v8.2.0 github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 - github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230322043324-cb6ba0947fff - github.com/stretchr/testify v1.8.2 - go.uber.org/zap v1.24.0 + github.com/strangelove-ventures/interchaintest/v8 v8.2.0 + github.com/stretchr/testify v1.9.0 + go.uber.org/zap v1.27.0 ) require ( - cloud.google.com/go v0.110.0 // indirect - cloud.google.com/go/compute v1.18.0 // indirect + cloud.google.com/go v0.112.0 // indirect + cloud.google.com/go/compute v1.24.0 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v0.12.0 // indirect - cloud.google.com/go/storage v1.29.0 // indirect - cosmossdk.io/api v0.3.1 // indirect - cosmossdk.io/core v0.6.0 // indirect - cosmossdk.io/depinject v1.0.0-alpha.3 // indirect - cosmossdk.io/errors v1.0.0-beta.7 // indirect - cosmossdk.io/math v1.0.0 // indirect - cosmossdk.io/tools/rosetta v0.2.1 // indirect + cloud.google.com/go/iam v1.1.6 // indirect + cloud.google.com/go/storage v1.36.0 // indirect + cosmossdk.io/api v0.7.3 // indirect + cosmossdk.io/collections v0.4.0 // indirect + cosmossdk.io/core v0.11.0 // indirect + cosmossdk.io/depinject v1.0.0-alpha.4 // indirect + cosmossdk.io/errors v1.0.1 // indirect + cosmossdk.io/log v1.3.1 // indirect + cosmossdk.io/store v1.0.2 // indirect + cosmossdk.io/x/feegrant v0.1.0 // indirect + cosmossdk.io/x/tx v0.13.1 // indirect + cosmossdk.io/x/upgrade v0.1.1 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect - github.com/BurntSushi/toml v1.2.1 // indirect + github.com/BurntSushi/toml v1.3.2 // indirect github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect github.com/ChainSafe/go-schnorrkel/1 v0.0.0-00010101000000-000000000000 // indirect github.com/ComposableFi/go-subkey/v2 v2.0.0-tm03420 // indirect + github.com/CosmWasm/wasmvm v1.4.0 // indirect + github.com/DataDog/datadog-go v3.2.0+incompatible // indirect + github.com/DataDog/zstd v1.5.5 // indirect github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e // indirect github.com/FactomProject/btcutilecc v0.0.0-20130527213604-d3a63a5752ec // indirect - github.com/Microsoft/go-winio v0.6.0 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect github.com/StirlingMarketingGroup/go-namecase v1.0.0 // indirect - github.com/armon/go-metrics v0.4.1 // indirect - github.com/avast/retry-go/v4 v4.3.4 // indirect - github.com/aws/aws-sdk-go v1.44.213 // indirect - github.com/benbjohnson/clock v1.3.0 // indirect + github.com/avast/retry-go/v4 v4.5.1 // indirect + github.com/aws/aws-sdk-go v1.44.224 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect + github.com/bits-and-blooms/bitset v1.10.0 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/cenkalti/backoff/v4 v4.2.0 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chzyer/readline v1.5.1 // indirect - github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect - github.com/cometbft/cometbft v0.37.1 // indirect - github.com/cometbft/cometbft-db v0.7.0 // indirect - github.com/confio/ics23/go v0.9.0 // indirect + github.com/cockroachdb/errors v1.11.1 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/pebble v1.1.0 // indirect + github.com/cockroachdb/redact v1.1.5 // indirect + github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect + github.com/cometbft/cometbft v0.38.5 // indirect + github.com/cometbft/cometbft-db v0.9.1 // indirect github.com/cosmos/btcutil v1.0.5 // indirect - github.com/cosmos/cosmos-proto v1.0.0-beta.2 // indirect - github.com/cosmos/cosmos-sdk v0.47.2 // indirect + github.com/cosmos/cosmos-db v1.0.2 // indirect + github.com/cosmos/cosmos-proto v1.0.0-beta.4 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/gogoproto v1.4.8 // indirect - github.com/cosmos/iavl v0.20.0 // indirect - github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab // indirect - github.com/cosmos/ledger-cosmos-go v0.13.0 // indirect - github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect - github.com/creachadair/taskgroup v0.5.0 // indirect + github.com/cosmos/gogoproto v1.4.11 // indirect + github.com/cosmos/iavl v1.0.1 // indirect + github.com/cosmos/ibc-go/modules/capability v1.0.0 // indirect + github.com/cosmos/ics23/go v0.10.0 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/danieljoos/wincred v1.1.2 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set v1.8.0 // indirect github.com/decred/base58 v1.0.4 // indirect - github.com/decred/dcrd/crypto/blake256 v1.0.0 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect + github.com/decred/dcrd/crypto/blake256 v1.0.1 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.1 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/docker/distribution v2.8.2+incompatible // indirect - github.com/docker/docker v20.10.19+incompatible // indirect - github.com/docker/go-connections v0.4.0 // indirect + github.com/docker/docker v24.0.7+incompatible // indirect + github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/dvsekhvalnov/jose2go v1.5.0 // indirect - github.com/ethereum/go-ethereum v1.11.2 // indirect - github.com/felixge/httpsnoop v1.0.3 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/dvsekhvalnov/jose2go v1.6.0 // indirect + github.com/emicklei/dot v1.6.1 // indirect + github.com/ethereum/go-ethereum v1.13.14 // indirect + github.com/fatih/color v1.15.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/getsentry/sentry-go v0.27.0 // indirect github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect - github.com/go-playground/locales v0.14.0 // indirect - github.com/go-stack/stack v1.8.1 // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.2.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/golang/snappy v0.0.4 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/btree v1.1.2 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/orderedcode v0.0.1 // indirect - github.com/google/uuid v1.3.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.7.0 // indirect - github.com/gorilla/handlers v1.5.1 // indirect - github.com/gorilla/mux v1.8.0 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/gorilla/handlers v1.5.2 // indirect + github.com/gorilla/mux v1.8.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect - github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-getter v1.7.1 // indirect + github.com/hashicorp/go-getter v1.7.3 // indirect + github.com/hashicorp/go-hclog v1.5.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-metrics v0.5.2 // indirect + github.com/hashicorp/go-plugin v1.5.2 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect + github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/yamux v0.1.1 // indirect github.com/hdevalence/ed25519consensus v0.1.0 // indirect + github.com/holiman/uint256 v1.2.4 // indirect github.com/huandu/skiplist v1.2.0 // indirect + github.com/iancoleman/strcase v0.3.0 // indirect github.com/improbable-eng/grpc-web v0.15.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/ipfs/go-cid v0.4.1 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect - github.com/klauspost/compress v1.16.4 // indirect - github.com/klauspost/cpuid/v2 v2.2.4 // indirect + github.com/klauspost/compress v1.17.7 // indirect + github.com/klauspost/cpuid/v2 v2.2.5 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/libp2p/go-libp2p v0.27.8 // indirect + github.com/libp2p/go-libp2p v0.31.0 // indirect + github.com/linxGnu/grocksdb v1.8.12 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect - github.com/mattn/go-isatty v0.0.18 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/mimoo/StrobeGo v0.0.0-20220103164710-9a04d6ca976b // indirect github.com/minio/highwayhash v1.0.2 // indirect - github.com/minio/sha256-simd v1.0.0 // indirect - github.com/misko9/go-substrate-rpc-client/v4 v4.0.0-20230413215336-5bd2aea337ae // indirect + github.com/minio/sha256-simd v1.0.1 // indirect + github.com/misko9/go-substrate-rpc-client/v4 v4.0.0-20230913220906-b988ea7da0c2 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -142,85 +168,94 @@ require ( github.com/mtibben/percent v0.2.1 // indirect github.com/multiformats/go-base32 v0.1.0 // indirect github.com/multiformats/go-base36 v0.2.0 // indirect - github.com/multiformats/go-multiaddr v0.9.0 // indirect + github.com/multiformats/go-multiaddr v0.11.0 // indirect github.com/multiformats/go-multibase v0.2.0 // indirect - github.com/multiformats/go-multicodec v0.8.1 // indirect - github.com/multiformats/go-multihash v0.2.1 // indirect + github.com/multiformats/go-multicodec v0.9.0 // indirect + github.com/multiformats/go-multihash v0.2.3 // indirect github.com/multiformats/go-varint v0.0.7 // indirect - github.com/onsi/gomega v1.27.4 // indirect + github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect + github.com/oklog/run v1.1.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0-rc2 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.0.7 // indirect - github.com/petermattis/goid v0.0.0-20230222173705-8ff7bb262a50 // indirect + github.com/pelletier/go-toml/v2 v2.1.0 // indirect + github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc // indirect github.com/pierrec/xxHash v0.1.5 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.14.0 // indirect - github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.9.0 // indirect - github.com/rakyll/statik v0.1.7 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.18.0 // indirect + github.com/prometheus/client_model v0.6.0 // indirect + github.com/prometheus/common v0.47.0 // indirect + github.com/prometheus/procfs v0.12.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.3 // indirect + github.com/rs/zerolog v1.32.0 // indirect + github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect - github.com/sirupsen/logrus v1.9.0 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect - github.com/spf13/afero v1.9.4 // indirect - github.com/spf13/cast v1.5.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/afero v1.11.0 // indirect + github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/spf13/viper v1.15.0 // indirect - github.com/subosito/gotenv v1.4.2 // indirect + github.com/spf13/viper v1.18.2 // indirect + github.com/subosito/gotenv v1.6.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect - github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/tidwall/btree v1.6.0 // indirect + github.com/tidwall/btree v1.7.0 // indirect github.com/tyler-smith/go-bip32 v1.0.0 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ulikunitz/xz v0.5.11 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.1 // indirect - go.etcd.io/bbolt v1.3.7 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect + go.etcd.io/bbolt v1.3.8 // indirect go.opencensus.io v0.24.0 // indirect - go.uber.org/atomic v1.10.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect + go.opentelemetry.io/otel v1.22.0 // indirect + go.opentelemetry.io/otel/metric v1.22.0 // indirect + go.opentelemetry.io/otel/trace v1.22.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.9.0 // indirect - golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect - golang.org/x/mod v0.10.0 // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/oauth2 v0.5.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/term v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect - golang.org/x/tools v0.8.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.111.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230301171018-9ab4bdc49ad5 // indirect - google.golang.org/grpc v1.54.0 // indirect - google.golang.org/protobuf v1.30.0 // indirect + golang.org/x/crypto v0.20.0 // indirect + golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/mod v0.15.0 // indirect + golang.org/x/net v0.21.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.17.0 // indirect + golang.org/x/term v0.17.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/time v0.5.0 // indirect + golang.org/x/tools v0.18.0 // indirect + google.golang.org/api v0.162.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c // indirect + google.golang.org/grpc v1.62.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - lukechampine.com/blake3 v1.1.7 // indirect + gotest.tools/v3 v3.5.1 // indirect + lukechampine.com/blake3 v1.2.1 // indirect lukechampine.com/uint128 v1.2.0 // indirect modernc.org/cc/v3 v3.40.0 // indirect modernc.org/ccgo/v3 v3.16.13 // indirect - modernc.org/libc v1.22.5 // indirect - modernc.org/mathutil v1.5.0 // indirect - modernc.org/memory v1.5.0 // indirect + modernc.org/libc v1.29.0 // indirect + modernc.org/mathutil v1.6.0 // indirect + modernc.org/memory v1.7.2 // indirect modernc.org/opt v0.1.3 // indirect - modernc.org/sqlite v1.22.1 // indirect + modernc.org/sqlite v1.28.0 // indirect modernc.org/strutil v1.1.3 // indirect modernc.org/token v1.1.0 // indirect nhooyr.io/websocket v1.8.7 // indirect - pgregory.net/rapid v0.5.5 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + pgregory.net/rapid v1.1.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) replace ( @@ -228,9 +263,6 @@ replace ( github.com/ChainSafe/go-schnorrkel/1 => github.com/ChainSafe/go-schnorrkel v1.0.0 // Use notional lab version of async-icq - github.com/strangelove-ventures/async-icq/v7 v7.0.0-20230317170414-3c3da64f93d4 => github.com/notional-labs/async-icq/v7 v7.0.0 - - github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230322043324-cb6ba0947fff => github.com/notional-labs/interchaintest/v7 v7.1.3-0.20230614031803-d1462d548734 github.com/vedhavyas/go-subkey => github.com/strangelove-ventures/go-subkey v1.0.7 ) diff --git a/tests/interchaintest/go.sum b/tests/interchaintest/go.sum index 29d07dbbc..71a05ef20 100644 --- a/tests/interchaintest/go.sum +++ b/tests/interchaintest/go.sum @@ -3,7 +3,6 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= @@ -16,7 +15,6 @@ cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= @@ -32,8 +30,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= @@ -70,8 +68,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY= -cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= +cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -111,13 +109,12 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97 cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v0.12.0 h1:DRtTY29b75ciH6Ov1PHb4/iat2CLCvrOm40Q0a6DFpE= -cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= +cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= -cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= @@ -171,12 +168,11 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.29.0 h1:6weCgzRvMg7lzuUurI4697AqIRPU1SvzHhynwpW31jI= -cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= @@ -188,18 +184,34 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= -cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= -cosmossdk.io/core v0.6.0 h1:V2zyaMVFN6hJSVENYx2XE9CMhzqwJPMjzSQpj0MyXAU= -cosmossdk.io/core v0.6.0/go.mod h1:YSFzBcKOf/U24e/sa6WFaYSrlZl5zgNvnWwjfFyPniw= -cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= -cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= -cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= -cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= -cosmossdk.io/math v1.0.0 h1:ro9w7eKx23om2tZz/VM2Pf+z2WAbGX1yDQQOJ6iGeJw= -cosmossdk.io/math v1.0.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= -cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= -cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= +cosmossdk.io/api v0.7.3 h1:V815i8YOwOAQa1rLCsSMjVG5Gnzs02JLq+l7ks8s1jk= +cosmossdk.io/api v0.7.3/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/client/v2 v2.0.0-beta.1 h1:XkHh1lhrLYIT9zKl7cIOXUXg2hdhtjTPBUfqERNA1/Q= +cosmossdk.io/client/v2 v2.0.0-beta.1/go.mod h1:JEUSu9moNZQ4kU3ir1DKD5eU4bllmAexrGWjmb9k8qU= +cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= +cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= +cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= +cosmossdk.io/core v0.11.0/go.mod h1:LaTtayWBSoacF5xNzoF8tmLhehqlA9z1SWiPuNC6X1w= +cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= +cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= +cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= +cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= +cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= +cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= +cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= +cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/store v1.0.2 h1:lSg5BTvJBHUDwswNNyeh4K/CbqiHER73VU4nDNb8uk0= +cosmossdk.io/store v1.0.2/go.mod h1:EFtENTqVTuWwitGW1VwaBct+yDagk7oG/axBMPH+FXs= +cosmossdk.io/x/circuit v0.1.0 h1:IAej8aRYeuOMritczqTlljbUVHq1E85CpBqaCTwYgXs= +cosmossdk.io/x/circuit v0.1.0/go.mod h1:YDzblVE8+E+urPYQq5kq5foRY/IzhXovSYXb4nwd39w= +cosmossdk.io/x/evidence v0.1.0 h1:J6OEyDl1rbykksdGynzPKG5R/zm6TacwW2fbLTW4nCk= +cosmossdk.io/x/evidence v0.1.0/go.mod h1:hTaiiXsoiJ3InMz1uptgF0BnGqROllAN8mwisOMMsfw= +cosmossdk.io/x/feegrant v0.1.0 h1:c7s3oAq/8/UO0EiN1H5BIjwVntujVTkYs35YPvvrdQk= +cosmossdk.io/x/feegrant v0.1.0/go.mod h1:4r+FsViJRpcZif/yhTn+E0E6OFfg4n0Lx+6cCtnZElU= +cosmossdk.io/x/tx v0.13.1 h1:Mg+EMp67Pz+NukbJqYxuo8uRp7N/a9uR+oVS9pONtj8= +cosmossdk.io/x/tx v0.13.1/go.mod h1:CBCU6fsRVz23QGFIQBb1DNX2DztJCf3jWyEkHY2nJQ0= +cosmossdk.io/x/upgrade v0.1.1 h1:aoPe2gNvH+Gwt/Pgq3dOxxQVU3j5P6Xf+DaUJTDZATc= +cosmossdk.io/x/upgrade v0.1.1/go.mod h1:MNLptLPcIFK9CWt7Ra//8WUZAxweyRDNcbs5nkOcQy0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -207,10 +219,11 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMb github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= -github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= @@ -218,28 +231,36 @@ github.com/ChainSafe/go-schnorrkel v1.0.0 h1:3aDA67lAykLaG1y3AOjs88dMxC88PgUuHRr github.com/ChainSafe/go-schnorrkel v1.0.0/go.mod h1:dpzHYVxLZcp8pjlV+O+UR8K0Hp/z7vcchBSbMBEhCw4= github.com/ComposableFi/go-subkey/v2 v2.0.0-tm03420 h1:oknQF/iIhf5lVjbwjsVDzDByupRhga8nhA3NAmwyHDA= github.com/ComposableFi/go-subkey/v2 v2.0.0-tm03420/go.mod h1:KYkiMX5AbOlXXYfxkrYPrRPV6EbVUALTQh5ptUOJzu8= +github.com/CosmWasm/wasmd v0.42.1-0.20230928145107-894076a25cb2 h1:j8J9LnhC6IikohLEYMAFX0xPQmgPez9vsj0rNQISkiE= +github.com/CosmWasm/wasmd v0.42.1-0.20230928145107-894076a25cb2/go.mod h1:3sCglc35LoFUGmh4a/auoJALitaE4qw+jAqK53ak7+s= +github.com/CosmWasm/wasmvm v1.4.0 h1:84I3MlvvzcOo2z+ed0ztPi7eeDNk6/sYuK76uyXP1nI= +github.com/CosmWasm/wasmvm v1.4.0/go.mod h1:vW/E3h8j9xBQs9bCoijDuawKo9kCtxOaS8N8J7KFtkc= +github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= +github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e h1:ahyvB3q25YnZWly5Gq1ekg6jcmWaGj/vG/MhF4aisoc= github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e/go.mod h1:kGUqhHd//musdITWjFvNTHn90WG9bMLBEPQZ17Cmlpw= github.com/FactomProject/btcutilecc v0.0.0-20130527213604-d3a63a5752ec h1:1Qb69mGp/UtRPn422BH4/Y4Q3SLUrD9KHuDkm8iodFc= github.com/FactomProject/btcutilecc v0.0.0-20130527213604-d3a63a5752ec/go.mod h1:CD8UlnlLDiqb36L110uqiP2iSflVjx9g/3U9hCI4q2U= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= -github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/sarama v1.20.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 h1:fLjPD/aNc3UIOA6tDi6QXUemppXK3P9BI7mr2hd6gx8= +github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= +github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= github.com/StirlingMarketingGroup/go-namecase v1.0.0 h1:2CzaNtCzc4iNHirR+5ru9OzGg8rQp860gqLBFqRI02Y= github.com/StirlingMarketingGroup/go-namecase v1.0.0/go.mod h1:ZsoSKcafcAzuBx+sndbxHu/RjDcDTrEdT4UvhniHfio= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= +github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/alecthomas/participle/v2 v2.0.0-alpha7 h1:cK4vjj0VSgb3lN1nuKA5F7dw+1s1pWBe5bx7nNCnN+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -251,20 +272,17 @@ github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= -github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/avast/retry-go/v4 v4.3.4 h1:pHLkL7jvCvP317I8Ge+Km2Yhntv3SdkJm7uekkqbKhM= -github.com/avast/retry-go/v4 v4.3.4/go.mod h1:rv+Nla6Vk3/ilU0H51VHddWHiwimzX66yZ0JT6T+UvE= +github.com/avast/retry-go/v4 v4.5.1 h1:AxIx0HGi4VZ3I02jr78j5lZ3M6x1E0Ivxa6b0pUUh7o= +github.com/avast/retry-go/v4 v4.5.1/go.mod h1:/sipNsvNB3RRuT5iNcb6h73nw3IBmXJ/H3XrCQYSOpc= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.44.213 h1:WahquyWs7cQdz0vpDVWyWETEemgSoORx0PbWL9oz2WA= -github.com/aws/aws-sdk-go v1.44.213/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.44.224 h1:09CiaaF35nRmxrzWZ2uRq5v6Ghg/d2RiPjZnSgtt+RQ= +github.com/aws/aws-sdk-go v1.44.224/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= -github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= -github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -274,11 +292,18 @@ github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88= +github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= -github.com/btcsuite/btcd/btcutil v1.1.2 h1:XLMbX8JQEiwMcYft2EGi8zPUkoa0abKIU6/BJSRsjzQ= +github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= +github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce h1:YtWJF7RHm2pYCvA5t0RPmAaLUhREsKuKd+SLhxFbFeQ= +github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= +github.com/bufbuild/protocompile v0.6.0 h1:Uu7WiSQ6Yj9DbkdnOe7U4mNKp58y9WDMKDn28/ZlunY= +github.com/bufbuild/protocompile v0.6.0/go.mod h1:YNP35qEYoYGme7QMtz5SBCoN4kL4g12jTtjuzRNdjpE= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= @@ -316,74 +341,88 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= -github.com/cockroachdb/apd/v3 v3.1.0 h1:MK3Ow7LH0W8zkd5GMKA1PvS9qG3bWFI95WaVNfyZJ/w= +github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.11.1 h1:xSEW75zKaKCWzR3OfxXUxgrk/NtT4G1MiOv5lWZazG8= +github.com/cockroachdb/errors v1.11.1/go.mod h1:8MUxA3Gi6b25tYlFEBGLf+D8aISL+M4MIpiWMSNRfxw= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v1.1.0 h1:pcFh8CdCIt2kmEpK0OIatq67Ln9uGDYY3d5XnE0LJG4= +github.com/cockroachdb/pebble v1.1.0/go.mod h1:sEHm5NOXxyiAoKWhoFxT8xMgd/f3RA6qUqQ1BXKrh2E= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA= -github.com/coinbase/rosetta-sdk-go/types v1.0.0/go.mod h1:eq7W2TMRH22GTW0N0beDnN931DW0/WOI1R2sdHNHG4c= -github.com/cometbft/cometbft v0.37.1 h1:KLxkQTK2hICXYq21U2hn1W5hOVYUdQgDQ1uB+90xPIg= -github.com/cometbft/cometbft v0.37.1/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= -github.com/cometbft/cometbft-db v0.7.0 h1:uBjbrBx4QzU0zOEnU8KxoDl18dMNgDh+zZRUE0ucsbo= -github.com/cometbft/cometbft-db v0.7.0/go.mod h1:yiKJIm2WKrt6x8Cyxtq9YTEcIMPcEe4XPxhgX59Fzf0= -github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= -github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= +github.com/cometbft/cometbft v0.38.5 h1:4lOcK5VTPrfbLOhNHmPYe6c7eDXHtBdMCQuKbAfFJdU= +github.com/cometbft/cometbft v0.38.5/go.mod h1:0tqKin+KQs8zDwzYD8rPHzSBIDNPuB4NrwwGDNb/hUg= +github.com/cometbft/cometbft-db v0.9.1 h1:MIhVX5ja5bXNHF8EYrThkG9F7r9kSfv8BX4LWaxWJ4M= +github.com/cometbft/cometbft-db v0.9.1/go.mod h1:iliyWaoV0mRwBJoizElCwwRA9Tf7jZJOURcRZF9m60U= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= +github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= -github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= -github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= -github.com/cosmos/cosmos-sdk v0.47.2 h1:9rSriCoiJD+4F+tEDobyM8V7HF5BtY5Ef4VYNig96s0= -github.com/cosmos/cosmos-sdk v0.47.2/go.mod h1:zYzgI8w8hhotXTSoGbbSOAKfpJTx4wOy4XgbaKhtRtc= +github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAKs= +github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA= +github.com/cosmos/cosmos-proto v1.0.0-beta.4 h1:aEL7tU/rLOmxZQ9z4i7mzxcLbSCY48OdY7lIWTLG7oU= +github.com/cosmos/cosmos-proto v1.0.0-beta.4/go.mod h1:oeB+FyVzG3XrQJbJng0EnV8Vljfk9XvTIpGILNU/9Co= +github.com/cosmos/cosmos-sdk v0.50.5 h1:MOEi+DKYgW67YaPgB+Pf+nHbD3V9S/ayitRKJYLfGIA= +github.com/cosmos/cosmos-sdk v0.50.5/go.mod h1:oV/k6GJgXV9QPoM2fsYDPPsyPBgQbdotv532O6Mz1OQ= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI= github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= -github.com/cosmos/gogoproto v1.4.8 h1:BrHKc6WFZt8+jRV71vKSQE+JrfF+JAnzrKo2VP7wIZ4= -github.com/cosmos/gogoproto v1.4.8/go.mod h1:hnb0DIEWTv+wdNzNcqus5xCQXq5+CXauq1FJuurRfVY= -github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= -github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= -github.com/cosmos/ibc-go/v7 v7.0.0 h1:j4kyywlG0hhDmT9FmSaR5iCIka7Pz7kJTxGWY1nlV9Q= -github.com/cosmos/ibc-go/v7 v7.0.0/go.mod h1:BFh8nKWjr5zeR2OZfhkzdgDzj1+KjRn3aJLpwapStj8= -github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab h1:I9ialKTQo7248V827Bba4OuKPmk+FPzmTVHsLXaIJWw= -github.com/cosmos/ics23/go v0.9.1-0.20221207100636-b1abd8678aab/go.mod h1:2CwqasX5dSD7Hbp/9b6lhK6BwoBDCBldx7gPKRukR60= -github.com/cosmos/ledger-cosmos-go v0.13.0 h1:ex0CvCxToSR7j5WjrghPu2Bu9sSXKikjnVvUryNnx4s= -github.com/cosmos/ledger-cosmos-go v0.13.0/go.mod h1:ZcqYgnfNJ6lAXe4HPtWgarNEY+B74i+2/8MhZw4ziiI= -github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM= -github.com/cosmos/rosetta-sdk-go v0.10.0/go.mod h1:SImAZkb96YbwvoRkzSMQB6noNJXFgWl/ENIznEoYQI4= +github.com/cosmos/gogoproto v1.4.11 h1:LZcMHrx4FjUgrqQSWeaGC1v/TeuVFqSLa43CC6aWR2g= +github.com/cosmos/gogoproto v1.4.11/go.mod h1:/g39Mh8m17X8Q/GDEs5zYTSNaNnInBSohtaxzQnYq1Y= +github.com/cosmos/iavl v1.0.1 h1:D+mYbcRO2wptYzOM1Hxl9cpmmHU1ZEt9T2Wv5nZTeUw= +github.com/cosmos/iavl v1.0.1/go.mod h1:8xIUkgVvwvVrBu81scdPty+/Dx9GqwHnAvXz4cwF7RY= +github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= +github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= +github.com/cosmos/ibc-go/v8 v8.2.0 h1:7oCzyy1sZCcgpeQLnHxC56brsSz3KWwQGKXalXwXFzE= +github.com/cosmos/ibc-go/v8 v8.2.0/go.mod h1:wj3qx75iC/XNnsMqbPDCIGs0G6Y3E/lo3bdqCyoCy+8= +github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= +github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= +github.com/cosmos/ledger-cosmos-go v0.13.3 h1:7ehuBGuyIytsXbd4MP43mLeoN2LTOEnk5nvue4rK+yM= +github.com/cosmos/ledger-cosmos-go v0.13.3/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creachadair/taskgroup v0.5.0 h1:44w3girt9OM0yPPoqGDO7u8+XEk6uG49PhnEn+8+nHY= -github.com/creachadair/taskgroup v0.5.0/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cucumber/common/gherkin/go/v22 v22.0.0 h1:4K8NqptbvdOrjL9DEea6HFjSpbdT9+Q5kgLpmmsHYl0= -github.com/cucumber/common/messages/go/v17 v17.1.1 h1:RNqopvIFyLWnKv0LfATh34SWBhXeoFTJnSrgm9cT/Ts= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsPppp4= github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= +github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/base58 v1.0.4 h1:QJC6B0E0rXOPA8U/kw2rP+qiRJsUaE2Er+pYb3siUeA= github.com/decred/base58 v1.0.4/go.mod h1:jJswKPEdvpFpvf7dsDvFZyLT22xZ9lWqEByX38oGd9E= github.com/decred/dcrd/chaincfg/chainhash v1.0.2 h1:rt5Vlq/jM3ZawwiacWjPa+smINyLRN07EO0cNBV6DGU= github.com/decred/dcrd/chaincfg/chainhash v1.0.2/go.mod h1:BpbrGgrPTr3YJYRN3Bm+D9NuaFd+zGyNeIKgrhCXK60= -github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= -github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 h1:3GIJYXQDAKpLEFriGFN8SbSffak10UXHGdIcFaMPykY= -github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0/go.mod h1:3s92l0paYkZoIHuj4X93Teg/HB7eGM9x/zokGw+u4mY= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.1 h1:18HurQ6DfHeNvwIjvOmrgr44bPdtVaQAe/WWwHg9goM= +github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.1/go.mod h1:XmyzkaXBy7ZvHdrTAlXAjpog8qKSAWa3ze7yqzWmgmc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= @@ -397,22 +436,24 @@ github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WA github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v20.10.19+incompatible h1:lzEmjivyNHFHMNAFLXORMBXyGIhw/UP4DvJwvyKYq64= -github.com/docker/docker v20.10.19+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM= +github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= -github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= +github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/emicklei/dot v1.6.1 h1:ujpDlBkkwgWUY+qPId5IwapRW/xEoligRSYjioR6DFI= +github.com/emicklei/dot v1.6.1/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -424,29 +465,37 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/ethereum/go-ethereum v1.11.2 h1:z/luyejbevDCAMUUiu0rc80dxJxOnpoG58k5o0tSawc= -github.com/ethereum/go-ethereum v1.11.2/go.mod h1:DuefStAgaxoaYGLR0FueVcVbehmn5n9QUcVrMCuOvuc= -github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= -github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= -github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= +github.com/ethereum/go-ethereum v1.13.14 h1:EwiY3FZP94derMCIam1iW4HFVrSgIcpsu0HwTQtm6CQ= +github.com/ethereum/go-ethereum v1.13.14/go.mod h1:TN8ZiHrdJwSe8Cb6x+p0hs5CxhJZPbqB7hHkaUXcmIU= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= -github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= +github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= +github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= +github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -455,6 +504,7 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -462,37 +512,45 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= +github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= -github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= +github.com/gobwas/ws v1.2.1 h1:F2aeBZrm2NDsc7vbovKrWSogd4wvfAxg0FQ89/iqOTk= +github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= -github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -527,12 +585,13 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= @@ -551,17 +610,20 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -573,24 +635,27 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b h1:Qcx5LM0fSiks9uCyFZwDBUasd3lxd1RM0GYpL+Li5o4= +github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b h1:h9U78+dx9a4BKdQkBBos92HalKpaGKHrp+3Uo6yTodo= +github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= -github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -600,26 +665,25 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ= -github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= -github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= +github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= +github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= @@ -638,13 +702,19 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.1 h1:SWiSWN/42qdpR0MdhaOc/bLR48PLuP1ZQtYLRlM69uY= -github.com/hashicorp/go-getter v1.7.1/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-getter v1.7.3 h1:bN2+Fw9XPFvOCjB0UOevFIMICZ7G2XSQHzfvLUyOM5E= +github.com/hashicorp/go-getter v1.7.3/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= +github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-metrics v0.5.2 h1:ErEYO2f//CjKsUDw4SmLzelsK6L3ZmOAR/4P9iS7ruY= +github.com/hashicorp/go-metrics v0.5.2/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-plugin v1.5.2 h1:aWv8eimFqWlsEiMrYZdPYl+FdHaBJSN4AWwGWfT1G2Y= +github.com/hashicorp/go-plugin v1.5.2/go.mod h1:w1sAEES3g3PuV/RzUrgow20W2uErMly84hhD3um1WL4= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= @@ -652,30 +722,37 @@ github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoD github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= +github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= +github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU= github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= +github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU= +github.com/holiman/uint256 v1.2.4/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3c= github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw= github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= +github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= +github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 h1:H+uM0Bv88eur3ZSsd2NGKg3YIiuXxwxtlN7HjE66UTU= @@ -688,7 +765,8 @@ github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLf github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s= github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk= -github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b h1:izTof8BKh/nE1wrKOrloNA5q4odOarjf+Xpe+4qow98= +github.com/jhump/protoreflect v1.15.3 h1:6SFRuqU45u9hIZPJAoZ8c28T3nK64BNdp9w6jFonzls= +github.com/jhump/protoreflect v1.15.3/go.mod h1:4ORHmSBmlCW8fh3xHmJMGyul1zNqZK4Elxc8qKP+p1k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= @@ -704,6 +782,7 @@ github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= @@ -717,31 +796,33 @@ github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.16.4 h1:91KN02FnsOYhuunwU4ssRe8lc2JosWmizWa91B5v1PU= -github.com/klauspost/compress v1.16.4/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= -github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= +github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= +github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= -github.com/libp2p/go-libp2p v0.27.8 h1:IX5x/4yKwyPQeVS2AXHZ3J4YATM9oHBGH1gBc23jBAI= -github.com/libp2p/go-libp2p v0.27.8/go.mod h1:eCFFtd0s5i/EVKR7+5Ki8bM7qwkNW3TPTTSSW9sz8NE= +github.com/libp2p/go-libp2p v0.31.0 h1:LFShhP8F6xthWiBBq3euxbKjZsoRajVEyBS9snfHxYg= +github.com/libp2p/go-libp2p v0.31.0/go.mod h1:W/FEK1c/t04PbRH3fA9i5oucu5YcgrG0JVoBWT1B7Eg= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= +github.com/linxGnu/grocksdb v1.8.12 h1:1/pCztQUOa3BX/1gR3jSZDoaKFpeHFvQ1XrqZpSvZVo= +github.com/linxGnu/grocksdb v1.8.12/go.mod h1:xZCIb5Muw+nhbDK4Y5UJuOrin5MceOuiXkVUR7vp4WY= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -749,27 +830,33 @@ github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3v github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= -github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= +github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= github.com/mimoo/StrobeGo v0.0.0-20220103164710-9a04d6ca976b h1:QrHweqAtyJ9EwCaGHBu1fghwxIPiopAHV06JlXrMHjk= github.com/mimoo/StrobeGo v0.0.0-20220103164710-9a04d6ca976b/go.mod h1:xxLb2ip6sSUts3g1irPVHyk/DGslwQsNOo9I7smJfNU= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= -github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= -github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= -github.com/misko9/go-substrate-rpc-client/v4 v4.0.0-20230413215336-5bd2aea337ae h1:ZYbJh4TLwfSuSQe6DT/1982SfNNBcmvzrX5FycfSrmo= -github.com/misko9/go-substrate-rpc-client/v4 v4.0.0-20230413215336-5bd2aea337ae/go.mod h1:XexEkZgpnQ3sqUYz84DFoVUcDake6G/tYHrwdbdERhM= +github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= +github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= +github.com/misko9/go-substrate-rpc-client/v4 v4.0.0-20230913220906-b988ea7da0c2 h1:G/cVeTAbB9S/6FSWWqpFV0v49hiuHLbJPu9hTZ0UR2A= +github.com/misko9/go-substrate-rpc-client/v4 v4.0.0-20230913220906-b988ea7da0c2/go.mod h1:Q5BxOd9FxJqYp4vCiLGVdetecPcWTmUQIu0bRigYosU= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -783,14 +870,17 @@ github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:F github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae h1:O4SWKdcHVCvYqyDV+9CJA1fcDN2L11Bule0iFy3YlAI= +github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA= +github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= @@ -799,14 +889,14 @@ github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aG github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI= github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= -github.com/multiformats/go-multiaddr v0.9.0 h1:3h4V1LHIk5w4hJHekMKWALPXErDfz/sggzwC/NcqbDQ= -github.com/multiformats/go-multiaddr v0.9.0/go.mod h1:mI67Lb1EeTOYb8GQfL/7wpIZwc46ElrvzhYnoJOmTT0= +github.com/multiformats/go-multiaddr v0.11.0 h1:XqGyJ8ufbCE0HmTDwx2kPdsrQ36AGPZNZX6s6xfJH10= +github.com/multiformats/go-multiaddr v0.11.0/go.mod h1:gWUm0QLR4thQ6+ZF6SXUw8YjtwQSPapICM+NmCkxHSM= github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g= github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk= -github.com/multiformats/go-multicodec v0.8.1 h1:ycepHwavHafh3grIbR1jIXnKCsFm0fqsfEOsJ8NtKE8= -github.com/multiformats/go-multicodec v0.8.1/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= -github.com/multiformats/go-multihash v0.2.1 h1:aem8ZT0VA2nCHHk7bPJ1BjUbHNciqZC/d16Vve9l108= -github.com/multiformats/go-multihash v0.2.1/go.mod h1:WxoMcYG85AZVQUyRyo9s4wULvW5qrI9vb2Lt6evduFc= +github.com/multiformats/go-multicodec v0.9.0 h1:pb/dlPnzee/Sxv/j4PmkDRxCOi3hXTz3IbPKOXWJkmg= +github.com/multiformats/go-multicodec v0.9.0/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= +github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U= +github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM= github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -821,13 +911,15 @@ github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/notional-labs/interchaintest/v7 v7.1.3-0.20230614031803-d1462d548734 h1:rcZekspUfq4+BRK0CUfG5kgeajtiVgv7gC2uyMHCcnQ= -github.com/notional-labs/interchaintest/v7 v7.1.3-0.20230614031803-d1462d548734/go.mod h1:hLJK59PeInGu+LIXlcp8O5TGrYigtynDUPUOkrIEZMM= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a h1:dlRvE5fWabOchtH7znfiFCcOvmIYgOeAS5ifBXBlh9Q= +github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= +github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -841,15 +933,15 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/onsi/gomega v1.20.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E= -github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ= +github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc= +github.com/onsi/gomega v1.27.8/go.mod h1:2J8vzI/s+2shY9XHRApDkdgPo1TKT7P2u6fXeJKFnNQ= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= +github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -859,6 +951,7 @@ github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJ github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= +github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= @@ -867,24 +960,27 @@ github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtP github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.7 h1:muncTPStnKRos5dpVKULv2FVd4bMOhNePj9CjgDb8Us= -github.com/pelletier/go-toml/v2 v2.0.7/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= +github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20230222173705-8ff7bb262a50 h1:mDrFjGWmndQXmVx3giRScTbkltpPcnGEWG1GorsuiJ4= -github.com/petermattis/goid v0.0.0-20230222173705-8ff7bb262a50/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc h1:8bQZVK1X6BJR/6nYUPxQEP+ReTsceJTKizeuwjWOPUA= +github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/xxHash v0.1.5 h1:n/jBpwTHiER4xYvK3/CdPVnLDPchj8eTJFFLUb4QHBo= github.com/pierrec/xxHash v0.1.5/go.mod h1:w2waW5Zoa/Wc4Yqe0wgrIYAGKqRMf7czn2HNKXmuL+I= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= @@ -892,59 +988,65 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= +github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= +github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k= +github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= -github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= -github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/regen-network/gocuke v0.6.2 h1:pHviZ0kKAq2U2hN2q3smKNxct6hS0mGByFMHGnWA97M= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= +github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= +github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= @@ -956,37 +1058,40 @@ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1 github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.9.4 h1:Sd43wM1IWz/s1aVXdOBkjJvuP8UdyqioeE4AmM0QsBs= -github.com/spf13/afero v1.9.4/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= -github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= +github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= +github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU= -github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA= +github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= +github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= +github.com/strangelove-ventures/interchaintest/v8 v8.2.0 h1:EZXPvZXL1y/kvh9XI04A2stL+2UMvykhNUv28euRnL8= +github.com/strangelove-ventures/interchaintest/v8 v8.2.0/go.mod h1:pupV0YN3A56/u9kHj9U1F8MdDUEolBIn05F0W1q/0oI= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.1.5-0.20170601210322-f6abca593680/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -998,20 +1103,21 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= -github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= -github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= -github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= -github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= -github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= +github.com/tidwall/btree v1.7.0 h1:L1fkJH/AuEh5zBnnBbmTwQ5Lt+bRJ5A8EWecslvo9iI= +github.com/tidwall/btree v1.7.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/tyler-smith/go-bip32 v1.0.0 h1:sDR9juArbUgX+bO/iblgZnMPeWY1KZMUC2AFUJdv5KE= @@ -1021,8 +1127,9 @@ github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3C github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= +github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= @@ -1036,13 +1143,13 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.1 h1:Pip65OOl4iJ84WTpA4BKChvOufMhhbxED3BaihoZN4c= -github.com/zondax/ledger-go v0.14.1/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= -go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= +go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -1055,22 +1162,37 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= +go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= +go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= +go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= +go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= -go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20170613210332-850760c427c5/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1083,11 +1205,9 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg= +golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1099,8 +1219,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= +golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1127,8 +1247,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1169,7 +1289,6 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= @@ -1189,8 +1308,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1216,8 +1335,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= -golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1232,8 +1351,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1289,13 +1408,11 @@ golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1307,6 +1424,8 @@ golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1323,21 +1442,21 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1347,14 +1466,16 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.1.0 h1:xYY+Bajn2a7VBmTM5GikTmnK8ZuX8YgnQCqZpbBNtmA= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1374,6 +1495,7 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1408,7 +1530,6 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= @@ -1416,8 +1537,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y= -golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= +golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= +golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1476,8 +1597,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.111.0 h1:bwKi+z2BsdwYFRKrqwutM+axAlYLz83gt5pDSXCJT+0= -google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= +google.golang.org/api v0.162.0 h1:Vhs54HkaEpkMBdgGdOT2P6F0csGG/vxDS0hWHJzmmps= +google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1485,8 +1606,9 @@ google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1526,10 +1648,8 @@ google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1596,8 +1716,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20230301171018-9ab4bdc49ad5 h1:/cadn7taPtPlCgiWNetEPsle7jgnlad2R7gR5MXB6dM= -google.golang.org/genproto v0.0.0-20230301171018-9ab4bdc49ad5/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= +google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 h1:x9PwdEgd11LgK+orcck69WVRo7DezSO4VUMPI4xpc8A= +google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014/go.mod h1:rbHMSEDyoYX62nRVLOCc4Qt1HbsdytAYoVwgjiOhF3I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c h1:NUsgEN92SQQqzfA+YtqYNqYmB3DMMYLlIwUZAQFVFbo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1639,8 +1763,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= -google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= +google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1657,14 +1781,15 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= @@ -1692,8 +1817,8 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= -gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1704,8 +1829,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= launchpad.net/gocheck v0.0.0-20140225173054-000000000087 h1:Izowp2XBH6Ya6rv+hqbceQyw/gSGoXfH/UPoTGduL54= launchpad.net/gocheck v0.0.0-20140225173054-000000000087/go.mod h1:hj7XX3B/0A+80Vse0e+BUHsHMTEhd0O4cpUHr/e/BUM= -lukechampine.com/blake3 v1.1.7 h1:GgRMhmdsuK8+ii6UZFDL8Nb+VyMwadAgcJyfYHxG6n0= -lukechampine.com/blake3 v1.1.7/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= +lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= +lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI= lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= modernc.org/cc/v3 v3.40.0 h1:P3g79IUS/93SYhtoeaHW+kRCIrYaxJ27MFPv+7kaTOw= @@ -1713,32 +1838,36 @@ modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0= modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw= modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM= -modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE= -modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY= -modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= -modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= -modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= +modernc.org/libc v1.29.0 h1:tTFRFq69YKCF2QyGNuRUQxKBm1uZZLubf6Cjh/pVHXs= +modernc.org/libc v1.29.0/go.mod h1:DaG/4Q3LRRdqpiLyP0C2m1B8ZMGkQ+cCgOIjEtQlYhQ= +modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= +modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= +modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E= +modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E= modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/sqlite v1.22.1 h1:P2+Dhp5FR1RlVRkQ3dDfCiv3Ok8XPxqpe70IjYVA9oE= -modernc.org/sqlite v1.22.1/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk= +modernc.org/sqlite v1.28.0 h1:Zx+LyDDmXczNnEQdvPuEfcFVA2ZPyaD7UCZDjef3BHQ= +modernc.org/sqlite v1.28.0/go.mod h1:Qxpazz0zH8Z1xCFyi5GSL3FzbtZ3fvbjmywNogldEW0= modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY= modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= modernc.org/tcl v1.15.2 h1:C4ybAYCGJw968e+Me18oW55kD/FexcHbqH2xak1ROSY= +modernc.org/tcl v1.15.2/go.mod h1:3+k/ZaEbKrC8ePv8zJWPtBSW0V7Gg9g8rkmhI1Kfs3c= modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/z v1.7.3 h1:zDJf6iHjrnB+WRD88stbXokugjyc0/pB91ri1gO6LZY= +modernc.org/z v1.7.3/go.mod h1:Ipv4tsdxZRbQyLq9Q1M6gdbkxYzdlrciF2Hi/lS7nWE= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= -pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= +pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/tests/interchaintest/helpers/cosmwasm.go b/tests/interchaintest/helpers/cosmwasm.go new file mode 100644 index 000000000..bc722914a --- /dev/null +++ b/tests/interchaintest/helpers/cosmwasm.go @@ -0,0 +1,176 @@ +package helpers + +import ( + "context" + "encoding/json" + "testing" + + "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v8/ibc" + "github.com/strangelove-ventures/interchaintest/v8/testutil" + "github.com/stretchr/testify/require" + + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/cosmos/cosmos-sdk/crypto/keyring" +) + +func SmartQueryString(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain, contractAddr, queryMsg string, res interface{}) error { + var jsonMap map[string]interface{} + if err := json.Unmarshal([]byte(queryMsg), &jsonMap); err != nil { + t.Fatal(err) + } + err := chain.QueryContract(ctx, contractAddr, jsonMap, &res) + return err +} + +func StoreContract(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain, keyname string, fileLoc string) (codeId string) { + codeId, err := chain.StoreContract(ctx, keyname, fileLoc) + if err != nil { + t.Fatal(err) + } + return codeId +} + +func SetupContract(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain, keyname string, fileLoc string, message string, extraFlags ...string) (codeId, contract string) { + codeId = StoreContract(t, ctx, chain, keyname, fileLoc) + + needsNoAdminFlag := true + // if extraFlags contains "--admin", switch to false + for _, flag := range extraFlags { + if flag == "--admin" { + needsNoAdminFlag = false + } + } + + contractAddr, err := chain.InstantiateContract(ctx, keyname, codeId, message, needsNoAdminFlag, extraFlags...) + if err != nil { + t.Fatal(err) + } + + return codeId, contractAddr +} + +func MigrateContract(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain, keyname string, contractAddr string, fileLoc string, message string) (codeId, contract string) { + codeId, err := chain.StoreContract(ctx, keyname, fileLoc) + if err != nil { + t.Fatal(err) + } + + // Execute migrate tx + cmd := []string{ + "junod", "tx", "wasm", "migrate", contractAddr, codeId, message, + "--node", chain.GetRPCAddress(), + "--home", chain.HomeDir(), + "--chain-id", chain.Config().ChainID, + "--from", keyname, + "--gas", "500000", + "--keyring-dir", chain.HomeDir(), + "--keyring-backend", keyring.BackendTest, + "-y", + } + + stdout, _, err := chain.Exec(ctx, cmd, nil) + require.NoError(t, err) + + debugOutput(t, string(stdout)) + + if err := testutil.WaitForBlocks(ctx, 2, chain); err != nil { + t.Fatal(err) + } + + return codeId, contractAddr +} + +func ExecuteMsgWithAmount(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain, user ibc.Wallet, contractAddr, amount, message string) { + // amount is #utoken + + // There has to be a way to do this in ictest? + cmd := []string{ + "junod", "tx", "wasm", "execute", contractAddr, message, + "--node", chain.GetRPCAddress(), + "--home", chain.HomeDir(), + "--chain-id", chain.Config().ChainID, + "--from", user.KeyName(), + "--gas", "500000", + "--amount", amount, + "--keyring-dir", chain.HomeDir(), + "--keyring-backend", keyring.BackendTest, + "-y", + } + stdout, _, err := chain.Exec(ctx, cmd, nil) + require.NoError(t, err) + + debugOutput(t, string(stdout)) + + if err := testutil.WaitForBlocks(ctx, 2, chain); err != nil { + t.Fatal(err) + } +} + +func ExecuteMsgWithFee(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain, user ibc.Wallet, contractAddr, amount, feeCoin, message string) { + // amount is #utoken + + // There has to be a way to do this in ictest? + cmd := []string{ + "junod", "tx", "wasm", "execute", contractAddr, message, + "--node", chain.GetRPCAddress(), + "--home", chain.HomeDir(), + "--chain-id", chain.Config().ChainID, + "--from", user.KeyName(), + "--gas", "500000", + "--fees", feeCoin, + "--keyring-dir", chain.HomeDir(), + "--keyring-backend", keyring.BackendTest, + "-y", + } + + if amount != "" { + cmd = append(cmd, "--amount", amount) + } + + stdout, _, err := chain.Exec(ctx, cmd, nil) + require.NoError(t, err) + + debugOutput(t, string(stdout)) + + if err := testutil.WaitForBlocks(ctx, 2, chain); err != nil { + t.Fatal(err) + } +} + +func ExecuteMsgWithFeeReturn(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain, user ibc.Wallet, contractAddr, amount, feeCoin, message string) (*sdk.TxResponse, error) { + // amount is #utoken + + // There has to be a way to do this in ictest? (there is, use node.ExecTx) + cmd := []string{ + "wasm", "execute", contractAddr, message, + "--output", "json", + "--node", chain.GetRPCAddress(), + "--home", chain.HomeDir(), + "--gas", "500000", + "--fees", feeCoin, + "--keyring-dir", chain.HomeDir(), + } + + if amount != "" { + cmd = append(cmd, "--amount", amount) + } + + node := chain.GetNode() + + txHash, err := node.ExecTx(ctx, user.KeyName(), cmd...) + if err != nil { + return nil, err + } + + // convert stdout into a TxResponse + txRes, err := chain.GetTransaction(txHash) + return txRes, err +} + +func debugOutput(t *testing.T, stdout string) { + if true { + t.Log(stdout) + } +} diff --git a/tests/interchaintest/helpers/ibchooks.go b/tests/interchaintest/helpers/ibchooks.go new file mode 100644 index 000000000..aecb38896 --- /dev/null +++ b/tests/interchaintest/helpers/ibchooks.go @@ -0,0 +1,41 @@ +package helpers + +import ( + "context" + "strings" + "testing" + + "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" + "github.com/stretchr/testify/require" +) + +func GetIBCHooksUserAddress(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain, channel, uaddr string) string { + // picad q ibchooks wasm-sender channel-0 "contractAddr" --node http://localhost:26657 + cmd := []string{ + "picad", "query", "ibchooks", "wasm-sender", channel, uaddr, + "--node", chain.GetRPCAddress(), + "--chain-id", chain.Config().ChainID, + "--output", "json", + } + + // This query does not return a type, just prints the string. + stdout, _, err := chain.Exec(ctx, cmd, nil) + require.NoError(t, err) + + address := strings.Replace(string(stdout), "\n", "", -1) + return address +} + +func GetIBCHookTotalFunds(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain, contract string, uaddr string) GetTotalFundsResponse { + var res GetTotalFundsResponse + err := chain.QueryContract(ctx, contract, QueryMsg{GetTotalFunds: &GetTotalFundsQuery{Addr: uaddr}}, &res) + require.NoError(t, err) + return res +} + +func GetIBCHookCount(t *testing.T, ctx context.Context, chain *cosmos.CosmosChain, contract string, uaddr string) GetCountResponse { + var res GetCountResponse + err := chain.QueryContract(ctx, contract, QueryMsg{GetCount: &GetCountQuery{Addr: uaddr}}, &res) + require.NoError(t, err) + return res +} diff --git a/tests/interchaintest/helpers/types.go b/tests/interchaintest/helpers/types.go new file mode 100644 index 000000000..489bff5cd --- /dev/null +++ b/tests/interchaintest/helpers/types.go @@ -0,0 +1,95 @@ +package helpers + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// Go based data types for querying on the contract. +// Execute types are not needed here. We just use strings. Could add though in the future and to_string it + +// EntryPoint +type QueryMsg struct { + // Tokenfactory Core + GetConfig *struct{} `json:"get_config,omitempty"` + GetBalance *GetBalanceQuery `json:"get_balance,omitempty"` + GetAllBalances *GetAllBalancesQuery `json:"get_all_balances,omitempty"` + + // Unity Contract + GetWithdrawalReadyTime *struct{} `json:"get_withdrawal_ready_time,omitempty"` + + // IBCHooks + GetCount *GetCountQuery `json:"get_count,omitempty"` + GetTotalFunds *GetTotalFundsQuery `json:"get_total_funds,omitempty"` +} + +type GetAllBalancesQuery struct { + Address string `json:"address"` +} +type GetAllBalancesResponse struct { + // or is it wasm Coin type? + Data []sdk.Coin `json:"data"` +} + +type GetBalanceQuery struct { + // {"get_balance":{"address":"juno1...","denom":"factory/juno1.../RcqfWz"}} + Address string `json:"address"` + Denom string `json:"denom"` +} +type GetBalanceResponse struct { + // or is it wasm Coin type? + Data sdk.Coin `json:"data"` +} + +type WithdrawalTimestampResponse struct { + // {"data":{"withdrawal_ready_timestamp":"1686146048614053435"}} + Data *WithdrawalTimestampObj `json:"data"` +} +type WithdrawalTimestampObj struct { + WithdrawalReadyTimestamp string `json:"withdrawal_ready_timestamp"` +} + +type GetTotalFundsQuery struct { + // {"get_total_funds":{"addr":"juno1..."}} + Addr string `json:"addr"` +} +type GetTotalFundsResponse struct { + // {"data":{"total_funds":[{"denom":"ibc/04F5F501207C3626A2C14BFEF654D51C2E0B8F7CA578AB8ED272A66FE4E48097","amount":"1"}]}} + Data *GetTotalFundsObj `json:"data"` +} +type GetTotalFundsObj struct { + TotalFunds []WasmCoin `json:"total_funds"` +} + +type WasmCoin struct { + Denom string `json:"denom"` + Amount string `json:"amount"` +} + +type GetCountQuery struct { + // {"get_total_funds":{"addr":"juno1..."}} + Addr string `json:"addr"` +} +type GetCountResponse struct { + // {"data":{"count":0}} + Data *GetCountObj `json:"data"` +} +type GetCountObj struct { + Count int64 `json:"count"` +} + +type ClockContractResponse struct { + Data *ClockContractObj `json:"data"` +} +type ClockContractObj struct { + Val uint32 `json:"val"` +} + +type GetCwHooksDelegationResponse struct { + // {"data":{"validator_address":"%s","delegator_address":"%s","shares":"%s"}} + Data *GetDelegationObj `json:"data"` +} +type GetDelegationObj struct { + ValidatorAddress string `json:"validator_address"` + DelegatorAddress string `json:"delegator_address"` + Shares string `json:"shares"` +} diff --git a/tests/interchaintest/ibc_transfer_cosmos_test.go b/tests/interchaintest/ibc_transfer_cosmos_test.go new file mode 100644 index 000000000..153e289ff --- /dev/null +++ b/tests/interchaintest/ibc_transfer_cosmos_test.go @@ -0,0 +1,196 @@ +package interchaintest + +import ( + "context" + "github.com/strangelove-ventures/interchaintest/v8" + "github.com/strangelove-ventures/interchaintest/v8/relayer" + "testing" + + "cosmossdk.io/math" + "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v8/ibc" + interchaintestrelayer "github.com/strangelove-ventures/interchaintest/v8/relayer" + "github.com/strangelove-ventures/interchaintest/v8/testreporter" + "github.com/strangelove-ventures/interchaintest/v8/testutil" + "github.com/stretchr/testify/require" + "go.uber.org/zap/zaptest" + + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" +) + +// TestComposableGaiaIBCTransfer spins up a Composable and Gaia network, initializes an IBC connection between them, +// and sends an ICS20 token transfer from Composable->Gaia and then back from Gaia->Composable. +func TestComposableGaiaIBCTransfer(t *testing.T) { + if testing.Short() { + t.Skip() + } + + t.Parallel() + + // Create chain factory with Composable and Gaia + numVals := 1 + numFullNodes := 1 + + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ + { + Name: "Centauri", + ChainConfig: CentauriConfig, + NumValidators: &numVals, + NumFullNodes: &numFullNodes, + }, + { + Name: "gaia", + Version: "v9.1.0", + NumValidators: &numVals, + NumFullNodes: &numFullNodes, + }, + }) + + const ( + path = "ibc-path" + ) + + // Get chains from the chain factory + chains, err := cf.Chains(t.Name()) + require.NoError(t, err) + + client, network := interchaintest.DockerSetup(t) + + composable, gaia := chains[0].(*cosmos.CosmosChain), chains[1].(*cosmos.CosmosChain) + + relayerType, relayerName := ibc.CosmosRly, "relay" + + // Get a relayer instance + rf := interchaintest.NewBuiltinRelayerFactory( + relayerType, + zaptest.NewLogger(t), + relayer.DockerImage(&DefaultRelayer), + interchaintestrelayer.StartupFlags("--processor", "events", "--block-history", "100"), + ) + + r := rf.Build(t, client, network) + + ic := interchaintest.NewInterchain(). + AddChain(composable). + AddChain(gaia). + AddRelayer(r, relayerName). + AddLink(interchaintest.InterchainLink{ + Chain1: composable, + Chain2: gaia, + Relayer: r, + Path: path, + }) + + ctx := context.Background() + + rep := testreporter.NewNopReporter() + eRep := rep.RelayerExecReporter(t) + + require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ + TestName: t.Name(), + Client: client, + NetworkID: network, + BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), + SkipPathCreation: false, + })) + t.Cleanup(func() { + _ = ic.Close() + }) + + // Create some user accounts on both chains + users := interchaintest.GetAndFundTestUsers(t, ctx, t.Name(), genesisWalletAmount, composable, gaia) + + // Wait a few blocks for relayer to start and for user accounts to be created + err = testutil.WaitForBlocks(ctx, 5, composable, gaia) + require.NoError(t, err) + + // Get our Bech32 encoded user addresses + composableUser, gaiaUser := users[0], users[1] + + composableUserAddr := composableUser.FormattedAddress() + gaiaUserAddr := gaiaUser.FormattedAddress() + + // Get original account balances + composableOrigBal, err := composable.GetBalance(ctx, composableUserAddr, composable.Config().Denom) + require.NoError(t, err) + require.Equal(t, genesisWalletAmount, composableOrigBal) + + gaiaOrigBal, err := gaia.GetBalance(ctx, gaiaUserAddr, gaia.Config().Denom) + require.NoError(t, err) + require.Equal(t, genesisWalletAmount, gaiaOrigBal) + + // Compose an IBC transfer and send from Composable -> Gaia + var transferAmount = math.NewInt(1_000) + transfer := ibc.WalletAmount{ + Address: gaiaUserAddr, + Denom: composable.Config().Denom, + Amount: transferAmount, + } + + channel, err := ibc.GetTransferChannel(ctx, r, eRep, composable.Config().ChainID, gaia.Config().ChainID) + require.NoError(t, err) + + composableHeight, err := composable.Height(ctx) + require.NoError(t, err) + + transferTx, err := composable.SendIBCTransfer(ctx, channel.ChannelID, composableUserAddr, transfer, ibc.TransferOptions{}) + require.NoError(t, err) + + err = r.StartRelayer(ctx, eRep, path) + require.NoError(t, err) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occurred while stopping the relayer: %s", err) + } + }, + ) + + // Poll for the ack to know the transfer was successful + _, err = testutil.PollForAck(ctx, composable, composableHeight, composableHeight+50, transferTx.Packet) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, composable) + require.NoError(t, err) + + // Get the IBC denom for ppica on Gaia + composableTokenDenom := transfertypes.GetPrefixedDenom(channel.Counterparty.PortID, channel.Counterparty.ChannelID, composable.Config().Denom) + composableIBCDenom := transfertypes.ParseDenomTrace(composableTokenDenom).IBCDenom() + + // Assert that the funds are no longer present in user acc on Composable and are in the user acc on Gaia + composableUpdateBal, err := composable.GetBalance(ctx, composableUserAddr, composable.Config().Denom) + require.NoError(t, err) + require.Equal(t, composableOrigBal.Sub(transferAmount), composableUpdateBal) + + gaiaUpdateBal, err := gaia.GetBalance(ctx, gaiaUserAddr, composableIBCDenom) + require.NoError(t, err) + require.Equal(t, transferAmount, gaiaUpdateBal) + + // Compose an IBC transfer and send from Gaia -> Composable + transfer = ibc.WalletAmount{ + Address: composableUserAddr, + Denom: composableIBCDenom, + Amount: transferAmount, + } + + gaiaHeight, err := gaia.Height(ctx) + require.NoError(t, err) + + transferTx, err = gaia.SendIBCTransfer(ctx, channel.Counterparty.ChannelID, gaiaUserAddr, transfer, ibc.TransferOptions{}) + require.NoError(t, err) + + // Poll for the ack to know the transfer was successful + _, err = testutil.PollForAck(ctx, gaia, gaiaHeight, gaiaHeight+25, transferTx.Packet) + require.NoError(t, err) + + // Assert that the funds are now back on Composable and not on Gaia + composableUpdateBal, err = composable.GetBalance(ctx, composableUserAddr, composable.Config().Denom) + require.NoError(t, err) + require.Equal(t, composableOrigBal, composableUpdateBal) + + gaiaUpdateBal, err = gaia.GetBalance(ctx, gaiaUserAddr, composableIBCDenom) + require.NoError(t, err) + require.Equal(t, true, gaiaUpdateBal.IsZero()) +} diff --git a/tests/interchaintest/ibc_transfer_test.go b/tests/interchaintest/ibc_transfer_test.go index 5dd889058..2b3c10782 100644 --- a/tests/interchaintest/ibc_transfer_test.go +++ b/tests/interchaintest/ibc_transfer_test.go @@ -2,20 +2,23 @@ package interchaintest import ( "context" + "cosmossdk.io/math" "crypto/sha256" "encoding/hex" "fmt" + govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" + "github.com/strangelove-ventures/interchaintest/v8" + "strconv" "testing" "time" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - "github.com/strangelove-ventures/interchaintest/v7" - "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v7/chain/polkadot" - "github.com/strangelove-ventures/interchaintest/v7/ibc" - "github.com/strangelove-ventures/interchaintest/v7/relayer" - "github.com/strangelove-ventures/interchaintest/v7/testreporter" - "github.com/strangelove-ventures/interchaintest/v7/testutil" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v8/chain/polkadot" + "github.com/strangelove-ventures/interchaintest/v8/ibc" + "github.com/strangelove-ventures/interchaintest/v8/relayer" + "github.com/strangelove-ventures/interchaintest/v8/testreporter" + "github.com/strangelove-ventures/interchaintest/v8/testutil" "github.com/stretchr/testify/require" "go.uber.org/zap/zaptest" ) @@ -43,8 +46,8 @@ func TestCentauriPicassoIBCTransfer(t *testing.T) { ctx := context.Background() - nv := 5 // Number of validators - nf := 3 // Number of full nodes + nv := 1 // Number of validators + nf := 1 // Number of full nodes consensusOverrides := make(testutil.Toml) blockTime := 5 // seconds, parachain is 12 second blocks, don't make relayer work harder than needed @@ -70,14 +73,14 @@ func TestCentauriPicassoIBCTransfer(t *testing.T) { ChainID: "rococo-local", Images: []ibc.DockerImage{ { - Repository: "seunlanlege/centauri-polkadot", - Version: "v0.9.27", + Repository: "ghcr.io/misko9/polkadot-node", + Version: "v39", UidGid: "1000:1000", }, { - Repository: "seunlanlege/centauri-parachain", - Version: "v0.9.27", - // UidGid: "1025:1025", + Repository: "ghcr.io/misko9/parachain-node", + Version: "20231122v39", + UidGid: "1000:1000", }, }, Bin: "polkadot", @@ -104,6 +107,7 @@ func TestCentauriPicassoIBCTransfer(t *testing.T) { GasAdjustment: 1.3, TrustingPeriod: "504h", CoinType: "118", + EncodingConfig: composableEncoding(), // EncodingConfig: WasmClientEncoding(), NoHostMount: true, ConfigFileOverrides: configFileOverrides, @@ -115,7 +119,7 @@ func TestCentauriPicassoIBCTransfer(t *testing.T) { chains, err := cf.Chains(t.Name()) require.NoError(t, err) - composable := chains[0].(*polkadot.PolkadotChain) + polkadotChain := chains[0].(*polkadot.PolkadotChain) centaurid := chains[1].(*cosmos.CosmosChain) // Get a relayer instance @@ -124,7 +128,7 @@ func TestCentauriPicassoIBCTransfer(t *testing.T) { zaptest.NewLogger(t), // These two fields are used to pass in a custom Docker image built locally // relayer.ImagePull(false), - relayer.CustomDockerImage("composablefi/hyperspace", "latest", "1000:1000"), + relayer.CustomDockerImage("ghcr.io/misko9/hyperspace", "20231122v39", "1000:1000"), ).Build(t, client, network) // Build the network; spin up the chains and configure the relayer @@ -132,11 +136,11 @@ func TestCentauriPicassoIBCTransfer(t *testing.T) { const relayerName = "hyperspace" ic := interchaintest.NewInterchain(). - AddChain(composable). + AddChain(polkadotChain). AddChain(centaurid). AddRelayer(r, relayerName). AddLink(interchaintest.InterchainLink{ - Chain1: composable, + Chain1: polkadotChain, Chain2: centaurid, Relayer: r, Path: pathName, @@ -161,34 +165,36 @@ func TestCentauriPicassoIBCTransfer(t *testing.T) { // Set client contract hash in cosmos chain config err = r.SetClientContractHash(ctx, eRep, centaurid.Config(), codeHash) require.NoError(t, err) + fmt.Println("hoank") - // Ensure parachain has started (starts 1 session/epoch after relay chain) - err = testutil.WaitForBlocks(ctx, 1, composable) - require.NoError(t, err, "polkadot chain failed to make blocks") + //// Ensure parachain has started (starts 1 session/epoch after relay chain) + //err = testutil.WaitForBlocks(ctx, 1, polkadotChain) + //require.NoError(t, err, "polkadot chain failed to make blocks") + //fmt.Println("waiting") // Fund users on both cosmos and parachain, mints Asset 1 for Alice - fundAmount := int64(12_333_000_000_000) - polkadotUser, cosmosUser := fundUsers(t, ctx, fundAmount, composable, centaurid) + fundAmount := math.NewInt(12_333_000_000_000) + polkadotUser, cosmosUser := fundUsers(t, ctx, fundAmount, polkadotChain, centaurid) - err = r.GeneratePath(ctx, eRep, centaurid.Config().ChainID, composable.Config().ChainID, pathName) + err = r.GeneratePath(ctx, eRep, centaurid.Config().ChainID, polkadotChain.Config().ChainID, pathName) require.NoError(t, err) // Create new clients err = r.CreateClients(ctx, eRep, pathName, ibc.DefaultClientOpts()) require.NoError(t, err) - err = testutil.WaitForBlocks(ctx, 1, centaurid, composable) // these 1 block waits may be needed, not sure + err = testutil.WaitForBlocks(ctx, 1, centaurid, polkadotChain) // these 1 block waits may be needed, not sure require.NoError(t, err) // Create a new connection err = r.CreateConnections(ctx, eRep, pathName) require.NoError(t, err) - err = testutil.WaitForBlocks(ctx, 1, centaurid, composable) + err = testutil.WaitForBlocks(ctx, 1, centaurid, polkadotChain) require.NoError(t, err) // Create a new channel & get channels from each chain err = r.CreateChannel(ctx, eRep, pathName, ibc.DefaultChannelOpts()) require.NoError(t, err) - err = testutil.WaitForBlocks(ctx, 1, centaurid, composable) + err = testutil.WaitForBlocks(ctx, 1, centaurid, polkadotChain) require.NoError(t, err) // Get channels - Query channels was removed @@ -197,7 +203,7 @@ func TestCentauriPicassoIBCTransfer(t *testing.T) { require.Equal(t, len(cosmosChannelOutput), 1) require.Equal(t, cosmosChannelOutput[0].ChannelID, "channel-0") require.Equal(t, cosmosChannelOutput[0].PortID, "transfer") - polkadotChannelOutput, err := r.GetChannels(ctx, eRep, composable.Config().ChainID) + polkadotChannelOutput, err := r.GetChannels(ctx, eRep, polkadotChain.Config().ChainID) require.NoError(t, err) require.Equal(t, len(polkadotChannelOutput), 1) require.Equal(t, polkadotChannelOutput[0].ChannelID, "channel-0") @@ -214,7 +220,7 @@ func TestCentauriPicassoIBCTransfer(t *testing.T) { }) // Send 1.77 stake from cosmosUser to parachainUser - amountToSend := int64(1_770_000) + amountToSend := math.NewInt(1_770_000) transfer := ibc.WalletAmount{ Address: polkadotUser.FormattedAddress(), Denom: centaurid.Config().Denom, @@ -223,7 +229,7 @@ func TestCentauriPicassoIBCTransfer(t *testing.T) { tx, err := centaurid.SendIBCTransfer(ctx, "channel-0", cosmosUser.KeyName(), transfer, ibc.TransferOptions{}) require.NoError(t, err) require.NoError(t, tx.Validate()) // test source wallet has decreased funds - err = testutil.WaitForBlocks(ctx, 5, centaurid, composable) + err = testutil.WaitForBlocks(ctx, 5, centaurid, polkadotChain) require.NoError(t, err) /*// Trace IBC Denom of stake on parachain @@ -231,33 +237,33 @@ func TestCentauriPicassoIBCTransfer(t *testing.T) { dstIbcDenom := srcDenomTrace.IBCDenom() fmt.Println("Dst Ibc denom: ", dstIbcDenom) // Test destination wallet has increased funds, this is not working, want to verify IBC balance on parachain - polkadotUserIbcCoins, err := composable.GetIbcBalance(ctx, string(polkadotUser.Address())) + polkadotUserIbcCoins, err := polkadotChain.GetIbcBalance(ctx, string(polkadotUser.Address())) fmt.Println("UserIbcCoins: ", polkadotUserIbcCoins.String()) - aliceIbcCoins, err := composable.GetIbcBalance(ctx, "5yNZjX24n2eg7W6EVamaTXNQbWCwchhThEaSWB7V3GRjtHeL") + aliceIbcCoins, err := polkadotChain.GetIbcBalance(ctx, "5yNZjX24n2eg7W6EVamaTXNQbWCwchhThEaSWB7V3GRjtHeL") fmt.Println("AliceIbcCoins: ", aliceIbcCoins.String())*/ // Send 1.16 stake from parachainUser to cosmosUser - amountToReflect := int64(1_160_000) + amountToReflect := math.NewInt(1_160_000) reflectTransfer := ibc.WalletAmount{ Address: cosmosUser.FormattedAddress(), Denom: "2", // stake Amount: amountToReflect, } - _, err = composable.SendIBCTransfer(ctx, "channel-0", polkadotUser.KeyName(), reflectTransfer, ibc.TransferOptions{}) + _, err = polkadotChain.SendIBCTransfer(ctx, "channel-0", polkadotUser.KeyName(), reflectTransfer, ibc.TransferOptions{}) require.NoError(t, err) // Send 1.88 "UNIT" from Alice to cosmosUser - amountUnits := int64(1_880_000_000_000) + amountUnits := math.NewInt(1_880_000_000_000) unitTransfer := ibc.WalletAmount{ Address: cosmosUser.FormattedAddress(), Denom: "1", // UNIT Amount: amountUnits, } - _, err = composable.SendIBCTransfer(ctx, "channel-0", "alice", unitTransfer, ibc.TransferOptions{}) + _, err = polkadotChain.SendIBCTransfer(ctx, "channel-0", "alice", unitTransfer, ibc.TransferOptions{}) require.NoError(t, err) // Wait for MsgRecvPacket on cosmos chain - finalStakeBal := fundAmount - amountToSend + amountToReflect + finalStakeBal := fundAmount.Sub(amountToSend).Add(amountToReflect) err = cosmos.PollForBalance(ctx, centaurid, 20, ibc.WalletAmount{ Address: cosmosUser.FormattedAddress(), Denom: centaurid.Config().Denom, @@ -274,23 +280,23 @@ func TestCentauriPicassoIBCTransfer(t *testing.T) { cosmosUserUnitBal, err := centaurid.GetBalance(ctx, cosmosUser.FormattedAddress(), unitDenomTrace.IBCDenom()) require.NoError(t, err) require.Equal(t, amountUnits, cosmosUserUnitBal) - /*polkadotUserIbcCoins, err = composable.GetIbcBalance(ctx, string(polkadotUser.Address())) + /*polkadotUserIbcCoins, err = polkadotChain.GetIbcBalance(ctx, string(polkadotUser.Address())) fmt.Println("UserIbcCoins: ", polkadotUserIbcCoins.String()) - aliceIbcCoins, err = composable.GetIbcBalance(ctx, "5yNZjX24n2eg7W6EVamaTXNQbWCwchhThEaSWB7V3GRjtHeL") + aliceIbcCoins, err = polkadotChain.GetIbcBalance(ctx, "5yNZjX24n2eg7W6EVamaTXNQbWCwchhThEaSWB7V3GRjtHeL") fmt.Println("AliceIbcCoins: ", aliceIbcCoins.String())*/ fmt.Println("********************************") fmt.Println("********* Test passed **********") fmt.Println("********************************") - // err = testutil.WaitForBlocks(ctx, 50, centaurid, composable) + // err = testutil.WaitForBlocks(ctx, 50, centaurid, polkadotChain) // require.NoError(t, err) } func pushWasmContractViaGov(t *testing.T, ctx context.Context, centaurid *cosmos.CosmosChain) string { // Set up cosmos user for pushing new wasm code msg via governance - fundAmountForGov := int64(10_000_000_000) - contractUsers := interchaintest.GetAndFundTestUsers(t, ctx, "default", int64(fundAmountForGov), centaurid) + fundAmountForGov := math.NewInt(10_000_000_000) + contractUsers := interchaintest.GetAndFundTestUsers(t, ctx, "default", fundAmountForGov, centaurid) contractUser := contractUsers[0] contractUserBalInitial, err := centaurid.GetBalance(ctx, contractUser.FormattedAddress(), centaurid.Config().Denom) @@ -313,7 +319,10 @@ func pushWasmContractViaGov(t *testing.T, ctx context.Context, centaurid *cosmos err = centaurid.VoteOnProposalAllValidators(ctx, proposalTx.ProposalID, cosmos.ProposalVoteYes) require.NoError(t, err, "failed to submit votes") - _, err = cosmos.PollForProposalStatus(ctx, centaurid, height, height+heightDelta, proposalTx.ProposalID, cosmos.ProposalStatusPassed) + propId, err := strconv.ParseUint(proposalTx.ProposalID, 10, 64) + require.NoError(t, err, "failed to convert proposal ID to uint64") + + _, err = cosmos.PollForProposalStatus(ctx, centaurid, height, height+heightDelta, propId, govv1beta1.StatusPassed) require.NoError(t, err, "proposal status did not change to passed in expected number of blocks") err = testutil.WaitForBlocks(ctx, 1, centaurid) @@ -321,21 +330,21 @@ func pushWasmContractViaGov(t *testing.T, ctx context.Context, centaurid *cosmos var getCodeQueryMsgRsp GetCodeQueryMsgResponse err = centaurid.QueryClientContractCode(ctx, codeHash, &getCodeQueryMsgRsp) - codeHashByte32 := sha256.Sum256(getCodeQueryMsgRsp.Code) + codeHashByte32 := sha256.Sum256(getCodeQueryMsgRsp.Data) codeHash2 := hex.EncodeToString(codeHashByte32[:]) t.Logf("Contract codeHash from code: %s", codeHash2) require.NoError(t, err) - require.NotEmpty(t, getCodeQueryMsgRsp.Code) + require.NotEmpty(t, getCodeQueryMsgRsp.Data) require.Equal(t, codeHash, codeHash2) return codeHash } -func fundUsers(t *testing.T, ctx context.Context, fundAmount int64, composable, centaurid ibc.Chain) (ibc.Wallet, ibc.Wallet) { +func fundUsers(t *testing.T, ctx context.Context, fundAmount math.Int, composable, centaurid ibc.Chain) (ibc.Wallet, ibc.Wallet) { users := interchaintest.GetAndFundTestUsers(t, ctx, "user", fundAmount, composable, centaurid) polkadotUser, cosmosUser := users[0], users[1] - err := testutil.WaitForBlocks(ctx, 2, composable, centaurid) // Only waiting 1 block is flaky for parachain - require.NoError(t, err, "cosmos or polkadot chain failed to make blocks") + //err := testutil.WaitForBlocks(ctx, 2, composable, centaurid) // Only waiting 1 block is flaky for parachain + //require.NoError(t, err, "cosmos or polkadot chain failed to make blocks") // Check balances are correct polkadotUserAmount, err := composable.GetBalance(ctx, polkadotUser.FormattedAddress(), composable.Config().Denom) diff --git a/tests/interchaintest/module_ibchooks_test.go b/tests/interchaintest/module_ibchooks_test.go new file mode 100644 index 000000000..8ec176691 --- /dev/null +++ b/tests/interchaintest/module_ibchooks_test.go @@ -0,0 +1,183 @@ +package interchaintest + +import ( + "context" + "fmt" + "github.com/notional-labs/composable-testnet/tests/interchaintest/helpers" + "github.com/strangelove-ventures/interchaintest/v8" + "github.com/strangelove-ventures/interchaintest/v8/relayer" + "strings" + "testing" + + "cosmossdk.io/math" + "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v8/ibc" + interchaintestrelayer "github.com/strangelove-ventures/interchaintest/v8/relayer" + "github.com/strangelove-ventures/interchaintest/v8/testreporter" + "github.com/strangelove-ventures/interchaintest/v8/testutil" + "github.com/stretchr/testify/require" + "go.uber.org/zap/zaptest" +) + +// TestComposableIBCHooks ensures the ibc-hooks middleware from osmosis works. +func TestComposableIBCHooks(t *testing.T) { + if testing.Short() { + t.Skip() + } + + t.Parallel() + + // Create chain factory with Centauri and Centauri2 + numVals := 1 + numFullNodes := 0 + + cfg2 := CentauriConfig.Clone() + cfg2.Name = "composable-counterparty" + cfg2.ChainID = "counterparty-2" + + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ + { + Name: "Centauri", + ChainConfig: CentauriConfig, + NumValidators: &numVals, + NumFullNodes: &numFullNodes, + }, + { + Name: "Centauri", + ChainConfig: cfg2, + NumValidators: &numVals, + NumFullNodes: &numFullNodes, + }, + }) + + const ( + path = "ibc-path" + ) + + // Get chains from the chain factory + chains, err := cf.Chains(t.Name()) + require.NoError(t, err) + + client, network := interchaintest.DockerSetup(t) + + composable, composable2 := chains[0].(*cosmos.CosmosChain), chains[1].(*cosmos.CosmosChain) + + relayerType, relayerName := ibc.CosmosRly, "relay" + + // Get a relayer instance + rf := interchaintest.NewBuiltinRelayerFactory( + relayerType, + zaptest.NewLogger(t), + relayer.DockerImage(&DefaultRelayer), + interchaintestrelayer.StartupFlags("--processor", "events", "--block-history", "100"), + ) + + r := rf.Build(t, client, network) + + ic := interchaintest.NewInterchain(). + AddChain(composable). + AddChain(composable2). + AddRelayer(r, relayerName). + AddLink(interchaintest.InterchainLink{ + Chain1: composable, + Chain2: composable2, + Relayer: r, + Path: path, + }) + + ctx := context.Background() + + rep := testreporter.NewNopReporter() + eRep := rep.RelayerExecReporter(t) + + require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ + TestName: t.Name(), + Client: client, + NetworkID: network, + BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), + SkipPathCreation: false, + })) + t.Cleanup(func() { + _ = ic.Close() + }) + + // Create some user accounts on both chains + users := interchaintest.GetAndFundTestUsers(t, ctx, t.Name(), genesisWalletAmount, composable, composable2) + + // Wait a few blocks for relayer to start and for user accounts to be created + err = testutil.WaitForBlocks(ctx, 5, composable, composable2) + require.NoError(t, err) + + // Get our Bech32 encoded user addresses + composableUser, composable2User := users[0], users[1] + + composableUserAddr := composableUser.FormattedAddress() + // composable2UserAddr := composable2User.FormattedAddress() + + channel, err := ibc.GetTransferChannel(ctx, r, eRep, composable.Config().ChainID, composable2.Config().ChainID) + require.NoError(t, err) + + err = r.StartRelayer(ctx, eRep, path) + require.NoError(t, err) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occurred while stopping the relayer: %s", err) + } + }, + ) + + _, contractAddr := helpers.SetupContract(t, ctx, composable2, composable2User.KeyName(), "contracts/ibchooks_counter.wasm", `{"count":0}`) + + // do an ibc transfer through the memo to the other chain. + transfer := ibc.WalletAmount{ + Address: contractAddr, + Denom: composable.Config().Denom, + Amount: math.NewInt(1), + } + + memo := ibc.TransferOptions{ + Memo: fmt.Sprintf(`{"wasm":{"contract":"%s","msg":%s}}`, contractAddr, `{"increment":{}}`), + } + + // Initial transfer. Account is created by the wasm execute is not so we must do this twice to properly set up + transferTx, err := composable.SendIBCTransfer(ctx, channel.ChannelID, composableUser.KeyName(), transfer, memo) + require.NoError(t, err) + composableHeight, err := composable.Height(ctx) + require.NoError(t, err) + + _, err = testutil.PollForAck(ctx, composable, composableHeight-5, composableHeight+25, transferTx.Packet) + require.NoError(t, err) + + // Second time, this will make the counter == 1 since the account is now created. + transferTx, err = composable.SendIBCTransfer(ctx, channel.ChannelID, composableUser.KeyName(), transfer, memo) + require.NoError(t, err) + composableHeight, err = composable.Height(ctx) + require.NoError(t, err) + + _, err = testutil.PollForAck(ctx, composable, composableHeight-5, composableHeight+25, transferTx.Packet) + require.NoError(t, err) + + // Get the address on the other chain's side + addr := helpers.GetIBCHooksUserAddress(t, ctx, composable, channel.ChannelID, composableUserAddr) + require.NotEmpty(t, addr) + + // Get funds on the receiving chain + funds := helpers.GetIBCHookTotalFunds(t, ctx, composable2, contractAddr, addr) + require.Equal(t, int(1), len(funds.Data.TotalFunds)) + + var ibcDenom string + for _, coin := range funds.Data.TotalFunds { + if strings.HasPrefix(coin.Denom, "ibc/") { + ibcDenom = coin.Denom + break + } + } + require.NotEmpty(t, ibcDenom) + + // ensure the count also increased to 1 as expected. + count := helpers.GetIBCHookCount(t, ctx, composable2, contractAddr, addr) + require.Equal(t, int64(1), count.Data.Count) +} diff --git a/tests/interchaintest/module_pfm_test.go b/tests/interchaintest/module_pfm_test.go new file mode 100644 index 000000000..4a191e62e --- /dev/null +++ b/tests/interchaintest/module_pfm_test.go @@ -0,0 +1,264 @@ +package interchaintest + +import ( + "context" + "cosmossdk.io/math" + "encoding/json" + "github.com/strangelove-ventures/interchaintest/v8" + "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v8/ibc" + "github.com/strangelove-ventures/interchaintest/v8/relayer" + interchaintestrelayer "github.com/strangelove-ventures/interchaintest/v8/relayer" + "github.com/strangelove-ventures/interchaintest/v8/testreporter" + "github.com/strangelove-ventures/interchaintest/v8/testutil" + "github.com/stretchr/testify/require" + "go.uber.org/zap/zaptest" + "testing" + + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// TestPacketForwardMiddlewareRouter ensures the PFM module is set up properly and works as expected. +func TestPacketForwardMiddlewareRouter(t *testing.T) { + if testing.Short() { + t.Skip() + } + + var ( + ctx = context.Background() + client, network = interchaintest.DockerSetup(t) + rep = testreporter.NewNopReporter() + eRep = rep.RelayerExecReporter(t) + chainID_A, chainID_B, chainID_C, chainID_D = "chain-a", "chain-b", "chain-c", "chain-d" + chainA, chainB, chainC, chainD *cosmos.CosmosChain + ) + + // base config which all networks will use as defaults. + baseCfg := CentauriConfig + + // Set specific chain ids for each so they are their own unique networks + baseCfg.ChainID = chainID_A + configA := baseCfg + + baseCfg.ChainID = chainID_B + configB := baseCfg + + baseCfg.ChainID = chainID_C + configC := baseCfg + + baseCfg.ChainID = chainID_D + configD := baseCfg + + // Create chain factory with multiple Composable individual networks. + numVals := 1 + numFullNodes := 0 + + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ + { + Name: "Centauri", + ChainConfig: configA, + NumValidators: &numVals, + NumFullNodes: &numFullNodes, + }, + { + Name: "Centauri", + ChainConfig: configB, + NumValidators: &numVals, + NumFullNodes: &numFullNodes, + }, + { + Name: "Centauri", + ChainConfig: configC, + NumValidators: &numVals, + NumFullNodes: &numFullNodes, + }, + { + Name: "Centauri", + ChainConfig: configD, + NumValidators: &numVals, + NumFullNodes: &numFullNodes, + }, + }) + + // Get chains from the chain factory + chains, err := cf.Chains(t.Name()) + require.NoError(t, err) + + chainA, chainB, chainC, chainD = chains[0].(*cosmos.CosmosChain), chains[1].(*cosmos.CosmosChain), chains[2].(*cosmos.CosmosChain), chains[3].(*cosmos.CosmosChain) + + r := interchaintest.NewBuiltinRelayerFactory( + ibc.CosmosRly, + zaptest.NewLogger(t), + relayer.DockerImage(&DefaultRelayer), + interchaintestrelayer.StartupFlags("--processor", "events", "--block-history", "100"), + ).Build(t, client, network) + + const pathAB = "ab" + const pathBC = "bc" + const pathCD = "cd" + + ic := interchaintest.NewInterchain(). + AddChain(chainA). + AddChain(chainB). + AddChain(chainC). + AddChain(chainD). + AddRelayer(r, "relayer"). + AddLink(interchaintest.InterchainLink{ + Chain1: chainA, + Chain2: chainB, + Relayer: r, + Path: pathAB, + }). + AddLink(interchaintest.InterchainLink{ + Chain1: chainB, + Chain2: chainC, + Relayer: r, + Path: pathBC, + }). + AddLink(interchaintest.InterchainLink{ + Chain1: chainC, + Chain2: chainD, + Relayer: r, + Path: pathCD, + }) + + require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ + TestName: t.Name(), + Client: client, + NetworkID: network, + BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), + + SkipPathCreation: false, + })) + t.Cleanup(func() { + _ = ic.Close() + }) + + userFunds := math.NewInt(10_000_000_000) + users := interchaintest.GetAndFundTestUsers(t, ctx, t.Name(), userFunds, chainA, chainB, chainC, chainD) + + abChan, err := ibc.GetTransferChannel(ctx, r, eRep, chainID_A, chainID_B) + require.NoError(t, err) + + baChan := abChan.Counterparty + + cbChan, err := ibc.GetTransferChannel(ctx, r, eRep, chainID_C, chainID_B) + require.NoError(t, err) + + bcChan := cbChan.Counterparty + + dcChan, err := ibc.GetTransferChannel(ctx, r, eRep, chainID_D, chainID_C) + require.NoError(t, err) + + cdChan := dcChan.Counterparty + + // Start the relayer on all paths + err = r.StartRelayer(ctx, eRep, pathAB, pathBC, pathCD) + require.NoError(t, err) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occurred while stopping the relayer: %s", err) + } + }, + ) + + // Get original account balances + userA, userB, userC, userD := users[0], users[1], users[2], users[3] + + var transferAmount math.Int = math.NewInt(100_000) + + // Compose the prefixed denoms and ibc denom for asserting balances + firstHopDenom := transfertypes.GetPrefixedDenom(baChan.PortID, baChan.ChannelID, chainA.Config().Denom) + secondHopDenom := transfertypes.GetPrefixedDenom(cbChan.PortID, cbChan.ChannelID, firstHopDenom) + thirdHopDenom := transfertypes.GetPrefixedDenom(dcChan.PortID, dcChan.ChannelID, secondHopDenom) + + firstHopDenomTrace := transfertypes.ParseDenomTrace(firstHopDenom) + secondHopDenomTrace := transfertypes.ParseDenomTrace(secondHopDenom) + thirdHopDenomTrace := transfertypes.ParseDenomTrace(thirdHopDenom) + + firstHopIBCDenom := firstHopDenomTrace.IBCDenom() + secondHopIBCDenom := secondHopDenomTrace.IBCDenom() + thirdHopIBCDenom := thirdHopDenomTrace.IBCDenom() + + firstHopEscrowAccount := sdk.MustBech32ifyAddressBytes(chainA.Config().Bech32Prefix, transfertypes.GetEscrowAddress(abChan.PortID, abChan.ChannelID)) + secondHopEscrowAccount := sdk.MustBech32ifyAddressBytes(chainB.Config().Bech32Prefix, transfertypes.GetEscrowAddress(bcChan.PortID, bcChan.ChannelID)) + thirdHopEscrowAccount := sdk.MustBech32ifyAddressBytes(chainC.Config().Bech32Prefix, transfertypes.GetEscrowAddress(cdChan.PortID, abChan.ChannelID)) + + t.Run("multi-hop a->b->c->d", func(t *testing.T) { + // Send packet from Chain A->Chain B->Chain C->Chain D + + transfer := ibc.WalletAmount{ + Address: userB.FormattedAddress(), + Denom: chainA.Config().Denom, + Amount: transferAmount, + } + + secondHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userD.FormattedAddress(), + Channel: cdChan.ChannelID, + Port: cdChan.PortID, + }, + } + nextBz, err := json.Marshal(secondHopMetadata) + require.NoError(t, err) + next := string(nextBz) + + firstHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userC.FormattedAddress(), + Channel: bcChan.ChannelID, + Port: bcChan.PortID, + Next: &next, + }, + } + + memo, err := json.Marshal(firstHopMetadata) + require.NoError(t, err) + + chainAHeight, err := chainA.Height(ctx) + require.NoError(t, err) + + transferTx, err := chainA.SendIBCTransfer(ctx, abChan.ChannelID, userA.KeyName(), transfer, ibc.TransferOptions{Memo: string(memo)}) + require.NoError(t, err) + _, err = testutil.PollForAck(ctx, chainA, chainAHeight, chainAHeight+30, transferTx.Packet) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 1, chainA) + require.NoError(t, err) + + chainABalance, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + + chainBBalance, err := chainB.GetBalance(ctx, userB.FormattedAddress(), firstHopIBCDenom) + require.NoError(t, err) + + chainCBalance, err := chainC.GetBalance(ctx, userC.FormattedAddress(), secondHopIBCDenom) + require.NoError(t, err) + + chainDBalance, err := chainD.GetBalance(ctx, userD.FormattedAddress(), thirdHopIBCDenom) + require.NoError(t, err) + + require.Equal(t, userFunds.Sub(transferAmount), chainABalance) + require.Equal(t, int64(0), chainBBalance.Int64()) + require.Equal(t, int64(0), chainCBalance.Int64()) + require.Equal(t, transferAmount.Int64(), chainDBalance.Int64()) + + firstHopEscrowBalance, err := chainA.GetBalance(ctx, firstHopEscrowAccount, chainA.Config().Denom) + require.NoError(t, err) + + secondHopEscrowBalance, err := chainB.GetBalance(ctx, secondHopEscrowAccount, firstHopIBCDenom) + require.NoError(t, err) + + thirdHopEscrowBalance, err := chainC.GetBalance(ctx, thirdHopEscrowAccount, secondHopIBCDenom) + require.NoError(t, err) + + require.Equal(t, transferAmount.Int64(), firstHopEscrowBalance.Int64()) + require.Equal(t, transferAmount.Int64(), secondHopEscrowBalance.Int64()) + require.Equal(t, transferAmount.Int64(), thirdHopEscrowBalance.Int64()) + }) +} diff --git a/tests/interchaintest/packet_forward_test.go b/tests/interchaintest/packet_forward_test.go new file mode 100644 index 000000000..aa9bb7366 --- /dev/null +++ b/tests/interchaintest/packet_forward_test.go @@ -0,0 +1,686 @@ +package interchaintest + +import ( + "context" + "encoding/json" + "github.com/strangelove-ventures/interchaintest/v8" + "testing" + "time" + + "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v8/ibc" + "github.com/strangelove-ventures/interchaintest/v8/relayer" + "github.com/strangelove-ventures/interchaintest/v8/testreporter" + "github.com/strangelove-ventures/interchaintest/v8/testutil" + "github.com/stretchr/testify/require" + "go.uber.org/zap/zaptest" +) + +type PacketMetadata struct { + Forward *ForwardMetadata `json:"forward"` +} + +type ForwardMetadata struct { + Receiver string `json:"receiver"` + Port string `json:"port"` + Channel string `json:"channel"` + Timeout time.Duration `json:"timeout"` + Retries *uint8 `json:"retries,omitempty"` + Next *string `json:"next,omitempty"` + RefundSequence *uint64 `json:"refund_sequence,omitempty"` +} + +func TestPacketForwardMiddleware(t *testing.T) { + if testing.Short() { + t.Skip("skipping in short mode") + } + + var ( + ctx = context.Background() + client, network = interchaintest.DockerSetup(t) + rep = testreporter.NewNopReporter() + eRep = rep.RelayerExecReporter(t) + chainIdA, chainIdB, chainIdC, chainIdD = "chain-1", "chain-2", "chain-3", "chain-4" + waitBlocks = 3 + ) + + vals := 1 + fullNodes := 0 + + baseCfg := CentauriConfig + + baseCfg.ChainID = chainIdA + configA := baseCfg + + baseCfg.ChainID = chainIdB + configB := baseCfg + + baseCfg.ChainID = chainIdC + configC := baseCfg + + baseCfg.ChainID = chainIdD + configD := baseCfg + + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ + {Name: "pfm", ChainConfig: configA, NumFullNodes: &fullNodes, NumValidators: &vals}, + {Name: "pfm", ChainConfig: configB, NumFullNodes: &fullNodes, NumValidators: &vals}, + {Name: "pfm", ChainConfig: configC, NumFullNodes: &fullNodes, NumValidators: &vals}, + {Name: "pfm", ChainConfig: configD, NumFullNodes: &fullNodes, NumValidators: &vals}, + }) + + chains, err := cf.Chains(t.Name()) + require.NoError(t, err) + + chainA, chainB, chainC, chainD := chains[0].(*cosmos.CosmosChain), chains[1].(*cosmos.CosmosChain), chains[2].(*cosmos.CosmosChain), chains[3].(*cosmos.CosmosChain) + + r := interchaintest.NewBuiltinRelayerFactory( + ibc.CosmosRly, + zaptest.NewLogger(t), + relayer.DockerImage(&DefaultRelayer), + relayer.StartupFlags("--processor", "events", "--block-history", "100"), + ).Build(t, client, network) + + const pathAB = "ab" + const pathBC = "bc" + const pathCD = "cd" + + ic := interchaintest.NewInterchain(). + AddChain(chainA). + AddChain(chainB). + AddChain(chainC). + AddChain(chainD). + AddRelayer(r, "relayer"). + AddLink(interchaintest.InterchainLink{ + Chain1: chainA, + Chain2: chainB, + Relayer: r, + Path: pathAB, + }). + AddLink(interchaintest.InterchainLink{ + Chain1: chainB, + Chain2: chainC, + Relayer: r, + Path: pathBC, + }). + AddLink(interchaintest.InterchainLink{ + Chain1: chainC, + Chain2: chainD, + Relayer: r, + Path: pathCD, + }) + + require.NoError(t, ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ + TestName: t.Name(), + Client: client, + NetworkID: network, + BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), + + SkipPathCreation: false, + })) + t.Cleanup(func() { + _ = ic.Close() + }) + + initBal := math.NewInt(10_000_000_000) + users := interchaintest.GetAndFundTestUsers(t, ctx, t.Name(), initBal, chainA, chainB, chainC, chainD) + + abChan, err := ibc.GetTransferChannel(ctx, r, eRep, chainIdA, chainIdB) + require.NoError(t, err) + + baChan := abChan.Counterparty + + cbChan, err := ibc.GetTransferChannel(ctx, r, eRep, chainIdC, chainIdB) + require.NoError(t, err) + + bcChan := cbChan.Counterparty + + dcChan, err := ibc.GetTransferChannel(ctx, r, eRep, chainIdD, chainIdC) + require.NoError(t, err) + + cdChan := dcChan.Counterparty + + // Start the relayer on both paths + err = r.StartRelayer(ctx, eRep, pathAB, pathBC, pathCD) + require.NoError(t, err) + + t.Cleanup( + func() { + err := r.StopRelayer(ctx, eRep) + if err != nil { + t.Logf("an error occured while stopping the relayer: %s", err) + } + }, + ) + + // Get original account balances + userA, userB, userC, userD := users[0], users[1], users[2], users[3] + + // Compose the prefixed denoms and ibc denom for asserting balances + firstHopDenom := transfertypes.GetPrefixedDenom(baChan.PortID, baChan.ChannelID, chainA.Config().Denom) + secondHopDenom := transfertypes.GetPrefixedDenom(cbChan.PortID, cbChan.ChannelID, firstHopDenom) + thirdHopDenom := transfertypes.GetPrefixedDenom(dcChan.PortID, dcChan.ChannelID, secondHopDenom) + + firstHopDenomTrace := transfertypes.ParseDenomTrace(firstHopDenom) + secondHopDenomTrace := transfertypes.ParseDenomTrace(secondHopDenom) + thirdHopDenomTrace := transfertypes.ParseDenomTrace(thirdHopDenom) + + firstHopIBCDenom := firstHopDenomTrace.IBCDenom() + secondHopIBCDenom := secondHopDenomTrace.IBCDenom() + thirdHopIBCDenom := thirdHopDenomTrace.IBCDenom() + + firstHopEscrowAccount := sdk.MustBech32ifyAddressBytes(chainA.Config().Bech32Prefix, transfertypes.GetEscrowAddress(abChan.PortID, abChan.ChannelID)) + secondHopEscrowAccount := sdk.MustBech32ifyAddressBytes(chainB.Config().Bech32Prefix, transfertypes.GetEscrowAddress(bcChan.PortID, bcChan.ChannelID)) + thirdHopEscrowAccount := sdk.MustBech32ifyAddressBytes(chainC.Config().Bech32Prefix, transfertypes.GetEscrowAddress(cdChan.PortID, abChan.ChannelID)) + + zeroBal := math.ZeroInt() + transferAmount := math.NewInt(100_000) + + t.Run("multi-hop a->b->c->d", func(t *testing.T) { + // Send packet from Chain A->Chain B->Chain C->Chain D + transfer := ibc.WalletAmount{ + Address: userB.FormattedAddress(), + Denom: chainA.Config().Denom, + Amount: transferAmount, + } + + secondHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userD.FormattedAddress(), + Channel: cdChan.ChannelID, + Port: cdChan.PortID, + }, + } + nextBz, err := json.Marshal(secondHopMetadata) + require.NoError(t, err) + next := string(nextBz) + + firstHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userC.FormattedAddress(), + Channel: bcChan.ChannelID, + Port: bcChan.PortID, + Next: &next, + }, + } + + memo, err := json.Marshal(firstHopMetadata) + require.NoError(t, err) + + chainAHeight, err := chainA.Height(ctx) + require.NoError(t, err) + + transferTx, err := chainA.SendIBCTransfer(ctx, abChan.ChannelID, userA.KeyName(), transfer, ibc.TransferOptions{Memo: string(memo)}) + require.NoError(t, err) + _, err = testutil.PollForAck(ctx, chainA, chainAHeight, chainAHeight+30, transferTx.Packet) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, waitBlocks, chainA) + require.NoError(t, err) + + chainABalance, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + + chainBBalance, err := chainB.GetBalance(ctx, userB.FormattedAddress(), firstHopIBCDenom) + require.NoError(t, err) + + chainCBalance, err := chainC.GetBalance(ctx, userC.FormattedAddress(), secondHopIBCDenom) + require.NoError(t, err) + + chainDBalance, err := chainD.GetBalance(ctx, userD.FormattedAddress(), thirdHopIBCDenom) + require.NoError(t, err) + + require.True(t, chainABalance.Equal(initBal.Sub(transferAmount))) + require.True(t, chainBBalance.Equal(zeroBal)) + require.True(t, chainCBalance.Equal(zeroBal)) + require.True(t, chainDBalance.Equal(transferAmount)) + + firstHopEscrowBalance, err := chainA.GetBalance(ctx, firstHopEscrowAccount, chainA.Config().Denom) + require.NoError(t, err) + + secondHopEscrowBalance, err := chainB.GetBalance(ctx, secondHopEscrowAccount, firstHopIBCDenom) + require.NoError(t, err) + + thirdHopEscrowBalance, err := chainC.GetBalance(ctx, thirdHopEscrowAccount, secondHopIBCDenom) + require.NoError(t, err) + + require.Equal(t, transferAmount, firstHopEscrowBalance) + require.Equal(t, transferAmount, secondHopEscrowBalance) + require.Equal(t, transferAmount, thirdHopEscrowBalance) + }) + + t.Run("multi-hop denom unwind d->c->b->a", func(t *testing.T) { + // Send packet back from Chain D->Chain C->Chain B->Chain A + transfer := ibc.WalletAmount{ + Address: userC.FormattedAddress(), + Denom: thirdHopIBCDenom, + Amount: transferAmount, + } + + secondHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userA.FormattedAddress(), + Channel: baChan.ChannelID, + Port: baChan.PortID, + }, + } + + nextBz, err := json.Marshal(secondHopMetadata) + require.NoError(t, err) + + next := string(nextBz) + + firstHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userB.FormattedAddress(), + Channel: cbChan.ChannelID, + Port: cbChan.PortID, + Next: &next, + }, + } + + memo, err := json.Marshal(firstHopMetadata) + require.NoError(t, err) + + chainDHeight, err := chainD.Height(ctx) + require.NoError(t, err) + + transferTx, err := chainD.SendIBCTransfer(ctx, dcChan.ChannelID, userD.KeyName(), transfer, ibc.TransferOptions{Memo: string(memo)}) + require.NoError(t, err) + _, err = testutil.PollForAck(ctx, chainD, chainDHeight, chainDHeight+30, transferTx.Packet) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, waitBlocks, chainA) + require.NoError(t, err) + + // assert balances for user controlled wallets + chainDBalance, err := chainD.GetBalance(ctx, userD.FormattedAddress(), thirdHopIBCDenom) + require.NoError(t, err) + + chainCBalance, err := chainC.GetBalance(ctx, userC.FormattedAddress(), secondHopIBCDenom) + require.NoError(t, err) + + chainBBalance, err := chainB.GetBalance(ctx, userB.FormattedAddress(), firstHopIBCDenom) + require.NoError(t, err) + + chainABalance, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + + require.True(t, chainDBalance.Equal(zeroBal)) + require.True(t, chainCBalance.Equal(zeroBal)) + require.True(t, chainBBalance.Equal(zeroBal)) + require.True(t, chainABalance.Equal(initBal)) + + // assert balances for IBC escrow accounts + firstHopEscrowBalance, err := chainA.GetBalance(ctx, firstHopEscrowAccount, chainA.Config().Denom) + require.NoError(t, err) + + secondHopEscrowBalance, err := chainB.GetBalance(ctx, secondHopEscrowAccount, firstHopIBCDenom) + require.NoError(t, err) + + thirdHopEscrowBalance, err := chainC.GetBalance(ctx, thirdHopEscrowAccount, secondHopIBCDenom) + require.NoError(t, err) + + require.True(t, firstHopEscrowBalance.Equal(zeroBal)) + require.True(t, secondHopEscrowBalance.Equal(zeroBal)) + require.True(t, thirdHopEscrowBalance.Equal(zeroBal)) + }) + + t.Run("forward ack error refund", func(t *testing.T) { + // Send a malformed packet with invalid receiver address from Chain A->Chain B->Chain C + // This should succeed in the first hop and fail to make the second hop; funds should then be refunded to Chain A. + transfer := ibc.WalletAmount{ + Address: userB.FormattedAddress(), + Denom: chainA.Config().Denom, + Amount: transferAmount, + } + + metadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: "xyz1t8eh66t2w5k67kwurmn5gqhtq6d2ja0vp7jmmq", // malformed receiver address on Chain C + Channel: bcChan.ChannelID, + Port: bcChan.PortID, + }, + } + + memo, err := json.Marshal(metadata) + require.NoError(t, err) + + chainAHeight, err := chainA.Height(ctx) + require.NoError(t, err) + + transferTx, err := chainA.SendIBCTransfer(ctx, abChan.ChannelID, userA.KeyName(), transfer, ibc.TransferOptions{Memo: string(memo)}) + require.NoError(t, err) + + _, err = testutil.PollForAck(ctx, chainA, chainAHeight, chainAHeight+25, transferTx.Packet) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, waitBlocks, chainA) + require.NoError(t, err) + + // assert balances for user controlled wallets + chainABalance, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + + chainBBalance, err := chainB.GetBalance(ctx, userB.FormattedAddress(), firstHopIBCDenom) + require.NoError(t, err) + + chainCBalance, err := chainC.GetBalance(ctx, userC.FormattedAddress(), secondHopIBCDenom) + require.NoError(t, err) + + require.True(t, chainABalance.Equal(initBal)) + require.True(t, chainBBalance.Equal(zeroBal)) + require.True(t, chainCBalance.Equal(zeroBal)) + + // assert balances for IBC escrow accounts + firstHopEscrowBalance, err := chainA.GetBalance(ctx, firstHopEscrowAccount, chainA.Config().Denom) + require.NoError(t, err) + + secondHopEscrowBalance, err := chainB.GetBalance(ctx, secondHopEscrowAccount, firstHopIBCDenom) + require.NoError(t, err) + + require.True(t, firstHopEscrowBalance.Equal(zeroBal)) + require.True(t, secondHopEscrowBalance.Equal(zeroBal)) + }) + t.Run("forward timeout refund", func(t *testing.T) { + // Send packet from Chain A->Chain B->Chain C with the timeout so low for B->C transfer that it can not make it from B to C, which should result in a refund from B to A after two retries. + transfer := ibc.WalletAmount{ + Address: userB.FormattedAddress(), + Denom: chainA.Config().Denom, + Amount: transferAmount, + } + + retries := uint8(2) + metadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userC.FormattedAddress(), + Channel: bcChan.ChannelID, + Port: bcChan.PortID, + Retries: &retries, + Timeout: 1 * time.Second, + }, + } + + memo, err := json.Marshal(metadata) + require.NoError(t, err) + + chainAHeight, err := chainA.Height(ctx) + require.NoError(t, err) + + transferTx, err := chainA.SendIBCTransfer(ctx, abChan.ChannelID, userA.KeyName(), transfer, ibc.TransferOptions{Memo: string(memo)}) + require.NoError(t, err) + _, err = testutil.PollForAck(ctx, chainA, chainAHeight, chainAHeight+25, transferTx.Packet) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, waitBlocks, chainA) + require.NoError(t, err) + + // assert balances for user controlled wallets + chainABalance, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + + chainBBalance, err := chainB.GetBalance(ctx, userB.FormattedAddress(), firstHopIBCDenom) + require.NoError(t, err) + + chainCBalance, err := chainC.GetBalance(ctx, userC.FormattedAddress(), secondHopIBCDenom) + require.NoError(t, err) + + require.True(t, chainABalance.Equal(initBal)) + require.True(t, chainBBalance.Equal(zeroBal)) + require.True(t, chainCBalance.Equal(zeroBal)) + + firstHopEscrowBalance, err := chainA.GetBalance(ctx, firstHopEscrowAccount, chainA.Config().Denom) + require.NoError(t, err) + + secondHopEscrowBalance, err := chainB.GetBalance(ctx, secondHopEscrowAccount, firstHopIBCDenom) + require.NoError(t, err) + + require.True(t, firstHopEscrowBalance.Equal(zeroBal)) + require.True(t, secondHopEscrowBalance.Equal(zeroBal)) + }) + + t.Run("multi-hop ack error refund", func(t *testing.T) { + // Send a malformed packet with invalid receiver address from Chain A->Chain B->Chain C->Chain D + // This should succeed in the first hop and second hop, then fail to make the third hop. + // Funds should be refunded to Chain B and then to Chain A via acknowledgements with errors. + transfer := ibc.WalletAmount{ + Address: userB.FormattedAddress(), + Denom: chainA.Config().Denom, + Amount: transferAmount, + } + + secondHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: "xyz1t8eh66t2w5k67kwurmn5gqhtq6d2ja0vp7jmmq", // malformed receiver address on chain D + Channel: cdChan.ChannelID, + Port: cdChan.PortID, + }, + } + + nextBz, err := json.Marshal(secondHopMetadata) + require.NoError(t, err) + + next := string(nextBz) + + firstHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userC.FormattedAddress(), + Channel: bcChan.ChannelID, + Port: bcChan.PortID, + Next: &next, + }, + } + + memo, err := json.Marshal(firstHopMetadata) + require.NoError(t, err) + + chainAHeight, err := chainA.Height(ctx) + require.NoError(t, err) + + transferTx, err := chainA.SendIBCTransfer(ctx, abChan.ChannelID, userA.KeyName(), transfer, ibc.TransferOptions{Memo: string(memo)}) + require.NoError(t, err) + _, err = testutil.PollForAck(ctx, chainA, chainAHeight, chainAHeight+30, transferTx.Packet) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, waitBlocks, chainA) + require.NoError(t, err) + + // assert balances for user controlled wallets + chainDBalance, err := chainD.GetBalance(ctx, userD.FormattedAddress(), thirdHopIBCDenom) + require.NoError(t, err) + + chainCBalance, err := chainC.GetBalance(ctx, userC.FormattedAddress(), secondHopIBCDenom) + require.NoError(t, err) + + chainBBalance, err := chainB.GetBalance(ctx, userB.FormattedAddress(), firstHopIBCDenom) + require.NoError(t, err) + + chainABalance, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + + require.True(t, chainABalance.Equal(initBal)) + require.True(t, chainBBalance.Equal(zeroBal)) + require.True(t, chainCBalance.Equal(zeroBal)) + require.True(t, chainDBalance.Equal(zeroBal)) + + // assert balances for IBC escrow accounts + firstHopEscrowBalance, err := chainA.GetBalance(ctx, firstHopEscrowAccount, chainA.Config().Denom) + require.NoError(t, err) + + secondHopEscrowBalance, err := chainB.GetBalance(ctx, secondHopEscrowAccount, firstHopIBCDenom) + require.NoError(t, err) + + thirdHopEscrowBalance, err := chainC.GetBalance(ctx, thirdHopEscrowAccount, secondHopIBCDenom) + require.NoError(t, err) + + require.True(t, firstHopEscrowBalance.Equal(zeroBal)) + require.True(t, secondHopEscrowBalance.Equal(zeroBal)) + require.True(t, thirdHopEscrowBalance.Equal(zeroBal)) + }) + + t.Run("multi-hop through native chain ack error refund", func(t *testing.T) { + // send normal IBC transfer from B->A to get funds in IBC denom, then do multihop A->B(native)->C->D + // this lets us test the burn from escrow account on chain C and the escrow to escrow transfer on chain B. + + // Compose the prefixed denoms and ibc denom for asserting balances + baDenom := transfertypes.GetPrefixedDenom(abChan.PortID, abChan.ChannelID, chainB.Config().Denom) + bcDenom := transfertypes.GetPrefixedDenom(cbChan.PortID, cbChan.ChannelID, chainB.Config().Denom) + cdDenom := transfertypes.GetPrefixedDenom(dcChan.PortID, dcChan.ChannelID, bcDenom) + + baDenomTrace := transfertypes.ParseDenomTrace(baDenom) + bcDenomTrace := transfertypes.ParseDenomTrace(bcDenom) + cdDenomTrace := transfertypes.ParseDenomTrace(cdDenom) + + baIBCDenom := baDenomTrace.IBCDenom() + bcIBCDenom := bcDenomTrace.IBCDenom() + cdIBCDenom := cdDenomTrace.IBCDenom() + + transfer := ibc.WalletAmount{ + Address: userA.FormattedAddress(), + Denom: chainB.Config().Denom, + Amount: transferAmount, + } + + chainBHeight, err := chainB.Height(ctx) + require.NoError(t, err) + + transferTx, err := chainB.SendIBCTransfer(ctx, baChan.ChannelID, userB.KeyName(), transfer, ibc.TransferOptions{}) + require.NoError(t, err) + _, err = testutil.PollForAck(ctx, chainB, chainBHeight, chainBHeight+10, transferTx.Packet) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, waitBlocks, chainB) + require.NoError(t, err) + + // assert balance for user controlled wallet + chainABalance, err := chainA.GetBalance(ctx, userA.FormattedAddress(), baIBCDenom) + require.NoError(t, err) + + addr := sdk.MustBech32ifyAddressBytes(chainB.Config().Bech32Prefix, transfertypes.GetEscrowAddress(baChan.PortID, baChan.ChannelID)) + baEscrowBalance, err := chainB.GetBalance(ctx, addr, chainB.Config().Denom) + require.NoError(t, err) + + require.True(t, chainABalance.Equal(transferAmount)) + require.True(t, baEscrowBalance.Equal(transferAmount)) + + // Send a malformed packet with invalid receiver address from Chain A->Chain B->Chain C->Chain D + // This should succeed in the first hop and second hop, then fail to make the third hop. + // Funds should be refunded to Chain B and then to Chain A via acknowledgements with errors. + transfer = ibc.WalletAmount{ + Address: userB.FormattedAddress(), + Denom: baIBCDenom, + Amount: transferAmount, + } + + secondHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: "xyz1t8eh66t2w5k67kwurmn5gqhtq6d2ja0vp7jmmq", // malformed receiver address on chain D + Channel: cdChan.ChannelID, + Port: cdChan.PortID, + }, + } + + nextBz, err := json.Marshal(secondHopMetadata) + require.NoError(t, err) + + next := string(nextBz) + + firstHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userC.FormattedAddress(), + Channel: bcChan.ChannelID, + Port: bcChan.PortID, + Next: &next, + }, + } + + memo, err := json.Marshal(firstHopMetadata) + require.NoError(t, err) + + chainAHeight, err := chainA.Height(ctx) + require.NoError(t, err) + + transferTx, err = chainA.SendIBCTransfer(ctx, abChan.ChannelID, userA.KeyName(), transfer, ibc.TransferOptions{Memo: string(memo)}) + require.NoError(t, err) + _, err = testutil.PollForAck(ctx, chainA, chainAHeight, chainAHeight+30, transferTx.Packet) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, waitBlocks, chainA) + require.NoError(t, err) + + // assert balances for user controlled wallets + chainDBalance, err := chainD.GetBalance(ctx, userD.FormattedAddress(), cdIBCDenom) + require.NoError(t, err) + + chainCBalance, err := chainC.GetBalance(ctx, userC.FormattedAddress(), bcIBCDenom) + require.NoError(t, err) + + chainBBalance, err := chainB.GetBalance(ctx, userB.FormattedAddress(), chainB.Config().Denom) + require.NoError(t, err) + + chainABalance, err = chainA.GetBalance(ctx, userA.FormattedAddress(), baIBCDenom) + require.NoError(t, err) + + require.True(t, chainABalance.Equal(transferAmount)) + require.True(t, chainBBalance.Equal(initBal.Sub(transferAmount))) + require.True(t, chainCBalance.Equal(zeroBal)) + require.True(t, chainDBalance.Equal(zeroBal)) + + // assert balances for IBC escrow accounts + addr = sdk.MustBech32ifyAddressBytes(chainC.Config().Bech32Prefix, transfertypes.GetEscrowAddress(cdChan.PortID, cdChan.ChannelID)) + cdEscrowBalance, err := chainC.GetBalance(ctx, addr, bcIBCDenom) + require.NoError(t, err) + + addr = sdk.MustBech32ifyAddressBytes(chainB.Config().Bech32Prefix, transfertypes.GetEscrowAddress(bcChan.PortID, bcChan.ChannelID)) + bcEscrowBalance, err := chainB.GetBalance(ctx, addr, chainB.Config().Denom) + require.NoError(t, err) + + addr = sdk.MustBech32ifyAddressBytes(chainB.Config().Bech32Prefix, transfertypes.GetEscrowAddress(baChan.PortID, baChan.ChannelID)) + baEscrowBalance, err = chainB.GetBalance(ctx, addr, chainB.Config().Denom) + require.NoError(t, err) + + require.True(t, baEscrowBalance.Equal(transferAmount)) + require.True(t, bcEscrowBalance.Equal(zeroBal)) + require.True(t, cdEscrowBalance.Equal(zeroBal)) + }) + + t.Run("forward a->b->a", func(t *testing.T) { + // Send packet from Chain A->Chain B->Chain A + userABalance, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err, "failed to get user a balance") + + userBBalance, err := chainB.GetBalance(ctx, userB.FormattedAddress(), firstHopDenom) + require.NoError(t, err, "failed to get user a balance") + + transfer := ibc.WalletAmount{ + Address: userB.FormattedAddress(), + Denom: chainA.Config().Denom, + Amount: transferAmount, + } + + firstHopMetadata := &PacketMetadata{ + Forward: &ForwardMetadata{ + Receiver: userA.FormattedAddress(), + Channel: baChan.ChannelID, + Port: baChan.PortID, + }, + } + + memo, err := json.Marshal(firstHopMetadata) + require.NoError(t, err) + + chainAHeight, err := chainA.Height(ctx) + require.NoError(t, err) + + transferTx, err := chainA.SendIBCTransfer(ctx, abChan.ChannelID, userA.KeyName(), transfer, ibc.TransferOptions{Memo: string(memo)}) + require.NoError(t, err) + _, err = testutil.PollForAck(ctx, chainA, chainAHeight, chainAHeight+30, transferTx.Packet) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, waitBlocks, chainA) + require.NoError(t, err) + + chainABalance, err := chainA.GetBalance(ctx, userA.FormattedAddress(), chainA.Config().Denom) + require.NoError(t, err) + + chainBBalance, err := chainB.GetBalance(ctx, userB.FormattedAddress(), firstHopIBCDenom) + require.NoError(t, err) + + require.True(t, chainABalance.Equal(userABalance)) + require.True(t, chainBBalance.Equal(userBBalance)) + }) +} diff --git a/tests/interchaintest/polkadot_chain_test.go b/tests/interchaintest/polkadot_chain_test.go index 7dd018819..d18fffe1a 100644 --- a/tests/interchaintest/polkadot_chain_test.go +++ b/tests/interchaintest/polkadot_chain_test.go @@ -2,14 +2,15 @@ package interchaintest import ( "context" + "cosmossdk.io/math" "fmt" "testing" - interchaintest "github.com/strangelove-ventures/interchaintest/v7" - "github.com/strangelove-ventures/interchaintest/v7/chain/polkadot" - "github.com/strangelove-ventures/interchaintest/v7/ibc" - "github.com/strangelove-ventures/interchaintest/v7/testreporter" - "github.com/strangelove-ventures/interchaintest/v7/testutil" + interchaintest "github.com/strangelove-ventures/interchaintest/v8" + "github.com/strangelove-ventures/interchaintest/v8/chain/polkadot" + "github.com/strangelove-ventures/interchaintest/v8/ibc" + "github.com/strangelove-ventures/interchaintest/v8/testreporter" + "github.com/strangelove-ventures/interchaintest/v8/testutil" "github.com/stretchr/testify/require" "go.uber.org/zap/zaptest" ) @@ -39,14 +40,14 @@ func TestPolkadotCentauriChainStart(t *testing.T) { ChainID: "rococo-local", Images: []ibc.DockerImage{ { - Repository: "parity/polkadot", - Version: "v0.9.39", + Repository: "ghcr.io/misko9/polkadot-node", + Version: "v39", UidGid: "1000:1000", }, { - Repository: "composablefi/parachain-node", - Version: "13f3db34-1688755040", - // UidGid: "1025:1025", + Repository: "ghcr.io/misko9/parachain-node", + Version: "20231122v39", + UidGid: "1000:1000", }, }, Bin: "polkadot", @@ -83,9 +84,9 @@ func TestPolkadotCentauriChainStart(t *testing.T) { err = testutil.WaitForBlocks(ctx, 2, chain) require.NoError(t, err, "polkadot chain failed to make blocks") - PARACHAIN_DEFAULT_AMOUNT := 1_152_921_504_606_847_000 - RELAYCHAIN_DEFAULT_AMOUNT := 1_100_000_000_000_000_000 - FAUCET_AMOUNT := 100_000_000_000_000_000 // set in interchain.go/global + PARACHAIN_DEFAULT_AMOUNT := math.NewInt(1_152_921_504_606_847_000) + RELAYCHAIN_DEFAULT_AMOUNT := math.NewInt(1_100_000_000_000_000_000) + FAUCET_AMOUNT := math.NewInt(100_000_000_000_000_000) // set in interchain.go/global // RELAYER_AMOUNT := 1_000_000_000_000 // set in interchain.go/global // Check the faucet amounts @@ -94,11 +95,11 @@ func TestPolkadotCentauriChainStart(t *testing.T) { polkadotFaucetAmount, err := polkadotChain.GetBalance(ctx, string(polkadotFaucetAddress), polkadotChain.Config().Denom) require.NoError(t, err) fmt.Println("Polkadot faucet amount: ", polkadotFaucetAmount) - require.Equal(t, int64(FAUCET_AMOUNT), polkadotFaucetAmount, "Polkadot faucet amount not expected") + require.Equal(t, FAUCET_AMOUNT, polkadotFaucetAmount, "Polkadot faucet amount not expected") parachainFaucetAmount, err := polkadotChain.GetBalance(ctx, string(polkadotFaucetAddress), "") require.NoError(t, err) fmt.Println("Parachain faucet amount: ", parachainFaucetAmount) - require.Equal(t, int64(FAUCET_AMOUNT), parachainFaucetAmount, "Parachain faucet amount not expected") + require.Equal(t, FAUCET_AMOUNT, parachainFaucetAmount, "Parachain faucet amount not expected") // Check alice polkadotAliceAddress, err := polkadotChain.GetAddress(ctx, "alice") @@ -106,11 +107,11 @@ func TestPolkadotCentauriChainStart(t *testing.T) { polkadotAliceAmount, err := polkadotChain.GetBalance(ctx, string(polkadotAliceAddress), polkadotChain.Config().Denom) require.NoError(t, err) fmt.Println("Polkadot alice amount: ", polkadotAliceAmount) - require.Equal(t, int64(RELAYCHAIN_DEFAULT_AMOUNT), polkadotAliceAmount, "Relaychain alice amount not expected") + require.Equal(t, RELAYCHAIN_DEFAULT_AMOUNT, polkadotAliceAmount, "Relaychain alice amount not expected") parachainAliceAmount, err := polkadotChain.GetBalance(ctx, string(polkadotAliceAddress), "") require.NoError(t, err) fmt.Println("Parachain alice amount: ", parachainAliceAmount) - require.Equal(t, int64(PARACHAIN_DEFAULT_AMOUNT), parachainAliceAmount, "Parachain alice amount not expected") + require.Equal(t, PARACHAIN_DEFAULT_AMOUNT, parachainAliceAmount, "Parachain alice amount not expected") // Check alice stash polkadotAliceStashAddress, err := polkadotChain.GetAddress(ctx, "alicestash") @@ -118,11 +119,11 @@ func TestPolkadotCentauriChainStart(t *testing.T) { polkadotAliceStashAmount, err := polkadotChain.GetBalance(ctx, string(polkadotAliceStashAddress), polkadotChain.Config().Denom) require.NoError(t, err) fmt.Println("Polkadot alice stash amount: ", polkadotAliceStashAmount) - require.Equal(t, int64(RELAYCHAIN_DEFAULT_AMOUNT), polkadotAliceStashAmount, "Relaychain alice stash amount not expected") + require.Equal(t, RELAYCHAIN_DEFAULT_AMOUNT, polkadotAliceStashAmount, "Relaychain alice stash amount not expected") parachainAliceStashAmount, err := polkadotChain.GetBalance(ctx, string(polkadotAliceStashAddress), "") require.NoError(t, err) fmt.Println("Parachain alice stash amount: ", parachainAliceStashAmount) - require.Equal(t, int64(PARACHAIN_DEFAULT_AMOUNT), parachainAliceStashAmount, "Parachain alice stash amount not expected") + require.Equal(t, PARACHAIN_DEFAULT_AMOUNT, parachainAliceStashAmount, "Parachain alice stash amount not expected") // Check bob polkadotBobAddress, err := polkadotChain.GetAddress(ctx, "bob") @@ -130,11 +131,11 @@ func TestPolkadotCentauriChainStart(t *testing.T) { polkadotBobAmount, err := polkadotChain.GetBalance(ctx, string(polkadotBobAddress), polkadotChain.Config().Denom) require.NoError(t, err) fmt.Println("Polkadot bob amount: ", polkadotBobAmount) - require.Equal(t, int64(RELAYCHAIN_DEFAULT_AMOUNT), polkadotBobAmount, "Relaychain bob amount not expected") + require.Equal(t, RELAYCHAIN_DEFAULT_AMOUNT, polkadotBobAmount, "Relaychain bob amount not expected") parachainBobAmount, err := polkadotChain.GetBalance(ctx, string(polkadotBobAddress), "") require.NoError(t, err) fmt.Println("Parachain bob amount: ", parachainBobAmount) - require.Equal(t, int64(PARACHAIN_DEFAULT_AMOUNT), parachainBobAmount, "Parachain bob amount not expected") + require.Equal(t, PARACHAIN_DEFAULT_AMOUNT, parachainBobAmount, "Parachain bob amount not expected") // Check bob stash polkadotBobStashAddress, err := polkadotChain.GetAddress(ctx, "bobstash") @@ -142,14 +143,14 @@ func TestPolkadotCentauriChainStart(t *testing.T) { polkadotBobStashAmount, err := polkadotChain.GetBalance(ctx, string(polkadotBobStashAddress), polkadotChain.Config().Denom) require.NoError(t, err) fmt.Println("Polkadot bob stash amount: ", polkadotBobStashAmount) - require.Equal(t, int64(RELAYCHAIN_DEFAULT_AMOUNT), polkadotBobStashAmount, "Relaychain bob stash amount not expected") + require.Equal(t, RELAYCHAIN_DEFAULT_AMOUNT, polkadotBobStashAmount, "Relaychain bob stash amount not expected") parachainBobStashAmount, err := polkadotChain.GetBalance(ctx, string(polkadotBobStashAddress), "") require.NoError(t, err) fmt.Println("Parachain bob stash amount: ", parachainBobStashAmount) - require.Equal(t, int64(PARACHAIN_DEFAULT_AMOUNT), parachainBobStashAmount, "Parachain bob stash amount not expected") + require.Equal(t, PARACHAIN_DEFAULT_AMOUNT, parachainBobStashAmount, "Parachain bob stash amount not expected") // Fund user1 on both relay and parachain, must wait a block to fund user2 due to same faucet address - fundAmount := int64(12_333_000_000_000) + fundAmount := math.NewInt(12_333_000_000_000) users1 := interchaintest.GetAndFundTestUsers(t, ctx, "user1", fundAmount, polkadotChain) user1 := users1[0] err = testutil.WaitForBlocks(ctx, 2, chain) @@ -180,7 +181,7 @@ func TestPolkadotCentauriChainStart(t *testing.T) { require.Equal(t, fundAmount, parachainUser2Amount, "Initial parachain user2 amount not expected") // Transfer 1T units from user1 to user2 on both chains - txAmount := int64(1_000_000_000_000) + txAmount := math.NewInt(1_000_000_000_000) polkadotTxUser1ToUser2 := ibc.WalletAmount{ Address: user2.FormattedAddress(), Amount: txAmount, @@ -203,17 +204,17 @@ func TestPolkadotCentauriChainStart(t *testing.T) { polkadotUser1Amount, err = polkadotChain.GetBalance(ctx, user1.FormattedAddress(), polkadotChain.Config().Denom) require.NoError(t, err) fmt.Println("Polkadot user1 amount: ", polkadotUser1Amount) - require.LessOrEqual(t, polkadotUser1Amount, fundAmount-txAmount, "Final polkadot user1 amount not expected") + require.LessOrEqual(t, polkadotUser1Amount.Int64(), fundAmount.Sub(txAmount).Int64(), "Final polkadot user1 amount not expected") polkadotUser2Amount, err = polkadotChain.GetBalance(ctx, user2.FormattedAddress(), polkadotChain.Config().Denom) require.NoError(t, err) fmt.Println("Polkadot user2 amount: ", polkadotUser2Amount) - require.Equal(t, fundAmount+txAmount, polkadotUser2Amount, "Final polkadot user2 amount not expected") + require.Equal(t, fundAmount.Add(txAmount), polkadotUser2Amount, "Final polkadot user2 amount not expected") parachainUser1Amount, err = polkadotChain.GetBalance(ctx, user1.FormattedAddress(), "") require.NoError(t, err) fmt.Println("Parachain user1 amount: ", parachainUser1Amount) - require.LessOrEqual(t, parachainUser1Amount, fundAmount-txAmount, "Final parachain user1 amount not expected") + require.LessOrEqual(t, parachainUser1Amount.Int64(), fundAmount.Sub(txAmount).Int64(), "Final parachain user1 amount not expected") parachainUser2Amount, err = polkadotChain.GetBalance(ctx, user2.FormattedAddress(), "") require.NoError(t, err) fmt.Println("Parachain user2 amount: ", parachainUser2Amount) - require.Equal(t, fundAmount+txAmount, parachainUser2Amount, "Final parachain user2 amount not expected") + require.Equal(t, fundAmount.Add(txAmount), parachainUser2Amount, "Final parachain user2 amount not expected") } diff --git a/tests/interchaintest/push_wasm_client_code_test.go b/tests/interchaintest/push_wasm_client_code_test.go index 14cbf4040..537058d9a 100644 --- a/tests/interchaintest/push_wasm_client_code_test.go +++ b/tests/interchaintest/push_wasm_client_code_test.go @@ -2,26 +2,29 @@ package interchaintest import ( "context" + "cosmossdk.io/math" "crypto/sha256" "encoding/hex" "encoding/json" "fmt" + govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" + "github.com/strangelove-ventures/interchaintest/v8" + "strconv" "testing" "github.com/icza/dyno" - "github.com/strangelove-ventures/interchaintest/v7" - "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v7/ibc" - "github.com/strangelove-ventures/interchaintest/v7/testreporter" - "github.com/strangelove-ventures/interchaintest/v7/testutil" + "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" + "github.com/strangelove-ventures/interchaintest/v8/ibc" + "github.com/strangelove-ventures/interchaintest/v8/testreporter" + "github.com/strangelove-ventures/interchaintest/v8/testutil" "github.com/stretchr/testify/require" "go.uber.org/zap/zaptest" // simappparams "github.com/cosmos/cosmos-sdk/simapp/params" ) const ( - heightDelta = uint64(20) - votingPeriod = "30s" + heightDelta = 30 + votingPeriod = "20s" maxDepositPeriod = "10s" ) @@ -62,6 +65,8 @@ func TestPushWasmClientCode(t *testing.T) { configFileOverrides["config/app.toml"] = appTomlOverrides configFileOverrides["config/config.toml"] = configTomlOverrides + numValidator := 1 + cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ { ChainConfig: ibc.ChainConfig{ @@ -80,6 +85,7 @@ func TestPushWasmClientCode(t *testing.T) { ConfigFileOverrides: configFileOverrides, ModifyGenesis: modifyGenesisShortProposals(votingPeriod, maxDepositPeriod), }, + NumValidators: &numValidator, }, }) @@ -107,22 +113,25 @@ func TestPushWasmClientCode(t *testing.T) { }) // Create and Fund User Wallets - fundAmount := int64(10_000_000_000) - users := interchaintest.GetAndFundTestUsers(t, ctx, "default", int64(fundAmount), centaurid) + fundAmount := math.NewInt(10_000_000_000) + users := interchaintest.GetAndFundTestUsers(t, ctx, "default", fundAmount, centaurid) centaurid1User := users[0] - err = testutil.WaitForBlocks(ctx, 10, centaurid) + err = testutil.WaitForBlocks(ctx, 5, centaurid) require.NoError(t, err) centaurid1UserBalInitial, err := centaurid.GetBalance(ctx, centaurid1User.FormattedAddress(), centaurid.Config().Denom) require.NoError(t, err) - require.Equal(t, fundAmount, centaurid1UserBalInitial) + require.Equal(t, fundAmount.Int64(), centaurid1UserBalInitial.Int64()) centauridChain := centaurid.(*cosmos.CosmosChain) // Verify a normal user cannot push a wasm light client contract - _, err = centauridChain.StoreClientContract(ctx, centaurid1User.KeyName(), "ics10_grandpa_cw.wasm") - require.ErrorContains(t, err, "invalid authority") + args := []string{"--title", "test", "--summary", "test", "--deposit", "500000000" + centauridChain.Config().Denom} + _, err = centauridChain.StoreClientContract(ctx, centaurid1User.KeyName(), "ics10_grandpa_cw.wasm", args...) + fmt.Println(err) + // require.ErrorContains(t, err, "invalid authority") + require.NoError(t, err, "invalid authority") proposal := cosmos.TxProposalv1{ Metadata: "none", @@ -140,7 +149,10 @@ func TestPushWasmClientCode(t *testing.T) { err = centauridChain.VoteOnProposalAllValidators(ctx, proposalTx.ProposalID, cosmos.ProposalVoteYes) require.NoError(t, err, "failed to submit votes") - _, err = cosmos.PollForProposalStatus(ctx, centauridChain, height, height+heightDelta, proposalTx.ProposalID, cosmos.ProposalStatusPassed) + propId, err := strconv.ParseUint(proposalTx.ProposalID, 10, 64) + require.NoError(t, err, "failed to convert proposal ID to uint64") + + _, err = cosmos.PollForProposalStatus(ctx, centauridChain, height, height+heightDelta, propId, govv1beta1.StatusPassed) require.NoError(t, err, "proposal status did not change to passed in expected number of blocks") err = testutil.WaitForBlocks(ctx, 2, centauridChain) @@ -148,16 +160,16 @@ func TestPushWasmClientCode(t *testing.T) { var getCodeQueryMsgRsp GetCodeQueryMsgResponse err = centauridChain.QueryClientContractCode(ctx, codeHash, &getCodeQueryMsgRsp) - codeHashByte32 := sha256.Sum256(getCodeQueryMsgRsp.Code) + codeHashByte32 := sha256.Sum256(getCodeQueryMsgRsp.Data) codeHash2 := hex.EncodeToString(codeHashByte32[:]) t.Logf("Contract codeHash from code: %s", codeHash2) require.NoError(t, err) - require.NotEmpty(t, getCodeQueryMsgRsp.Code) + require.NotEmpty(t, getCodeQueryMsgRsp.Data) require.Equal(t, codeHash, codeHash2) } type GetCodeQueryMsgResponse struct { - Code []byte `json:"code"` + Data []byte `json:"data"` } func modifyGenesisShortProposals(votingPeriod, maxDepositPeriod string) func(ibc.ChainConfig, []byte) ([]byte, error) { diff --git a/tests/interchaintest/setup.go b/tests/interchaintest/setup.go index be7fe8df1..e477732e5 100644 --- a/tests/interchaintest/setup.go +++ b/tests/interchaintest/setup.go @@ -1,9 +1,13 @@ package interchaintest import ( + sdkmath "cosmossdk.io/math" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + "github.com/cosmos/cosmos-sdk/types/module/testutil" + "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" "os" - "github.com/strangelove-ventures/interchaintest/v7/ibc" + "github.com/strangelove-ventures/interchaintest/v8/ibc" ) var ( @@ -18,22 +22,31 @@ var ( UidGid: "1025:1025", } - centauriConfig = ibc.ChainConfig{ + CentauriConfig = ibc.ChainConfig{ Type: "cosmos", Name: "centauri", ChainID: "centauri-2", Images: []ibc.DockerImage{CentauriImage}, - Bin: "centaurid", - Bech32Prefix: "centauri", + Bin: "picad", + Bech32Prefix: "pica", Denom: "stake", CoinType: "118", GasPrices: "0.0stake", GasAdjustment: 1.1, TrustingPeriod: "112h", NoHostMount: false, + EncodingConfig: composableEncoding(), ModifyGenesis: nil, ConfigFileOverrides: nil, } + + genesisWalletAmount = sdkmath.NewInt(10_000_000) + + DefaultRelayer = ibc.DockerImage{ + Repository: "ghcr.io/cosmos/relayer", + Version: "main", + UidGid: "1025:1025", + } ) // GetDockerImageInfo returns the appropriate repo and branch version string for integration with the CI pipeline. @@ -45,7 +58,15 @@ func GetDockerImageInfo() (repo, version string) { if !found { // make local-image repo = "centauri" - branchVersion = "local" + branchVersion = "debug" } return repo, branchVersion } + +func composableEncoding() *testutil.TestEncodingConfig { + cfg := cosmos.DefaultEncoding() + + // register custom types + wasmtypes.RegisterInterfaces(cfg.InterfaceRegistry) + return &cfg +} diff --git a/tests/interchaintest/upgrade_chain_test.go b/tests/interchaintest/upgrade_chain_test.go deleted file mode 100644 index 92c1952c8..000000000 --- a/tests/interchaintest/upgrade_chain_test.go +++ /dev/null @@ -1,146 +0,0 @@ -package interchaintest - -import ( - "context" - "testing" - "time" - - interchaintest "github.com/strangelove-ventures/interchaintest/v7" - "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v7/ibc" - "github.com/strangelove-ventures/interchaintest/v7/testutil" - "github.com/stretchr/testify/require" - "go.uber.org/zap/zaptest" -) - -const ( - haltHeightDelta = uint64(20) - blocksAfterUpgrade = uint64(10) -) - -func TestCentauriUpgrade(t *testing.T) { - repo, version := GetDockerImageInfo() - CosmosChainUpgradeTest(t, repo, version, "v6_4_5") -} - -func CosmosChainUpgradeTest(t *testing.T, upgradeContainerRepo, upgradeVersion, upgradeName string) { - if testing.Short() { - t.Skip("skipping in short mode") - } - - t.Parallel() - - cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ - { - ChainConfig: ibc.ChainConfig{ - Type: "cosmos", - Name: "centauri", - ChainID: "centaurid", - Images: []ibc.DockerImage{ - { - Repository: "ghcr.io/composablefi/composable-cosmos", - Version: "6.4.4", - UidGid: "1025:1025", - }, - }, - Bin: "picad", - Bech32Prefix: "pica", - Denom: "ppica", - GasPrices: "0.00ppica", - GasAdjustment: 1.3, - TrustingPeriod: "504h", - // EncodingConfig: WasmClientEncoding(), - NoHostMount: true, - ModifyGenesis: modifyGenesisShortProposals(votingPeriod, maxDepositPeriod), - }, - }, - }) - - chains, err := cf.Chains(t.Name()) - require.NoError(t, err) - - chain := chains[0].(*cosmos.CosmosChain) - - ic := interchaintest.NewInterchain(). - AddChain(chain) - - ctx := context.Background() - client, network := interchaintest.DockerSetup(t) - - require.NoError(t, ic.Build(ctx, nil, interchaintest.InterchainBuildOptions{ - TestName: t.Name(), - Client: client, - NetworkID: network, - // BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), - SkipPathCreation: true, - })) - t.Cleanup(func() { - _ = ic.Close() - }) - - const userFunds = int64(10_000_000_000) - users := interchaintest.GetAndFundTestUsers(t, ctx, t.Name(), userFunds, chain) - chainUser := users[0] - - height, err := chain.Height(ctx) - require.NoError(t, err, "error fetching height before submit upgrade proposal") - - haltHeight := height + haltHeightDelta - - proposal := cosmos.SoftwareUpgradeProposal{ - Deposit: "500000000" + chain.Config().Denom, // greater than min deposit - Title: "Chain Upgrade 1", - Name: upgradeName, - Description: "First chain software upgrade", - Height: haltHeight, - Info: "UPGRADE", - } - - upgradeTx, err := chain.LegacyUpgradeProposal(ctx, chainUser.KeyName(), proposal) - require.NoError(t, err, "error submitting software upgrade proposal tx") - - err = chain.VoteOnProposalAllValidators(ctx, upgradeTx.ProposalID, cosmos.ProposalVoteYes) - require.NoError(t, err, "failed to submit votes") - - _, err = cosmos.PollForProposalStatus(ctx, chain, height, haltHeight, upgradeTx.ProposalID, cosmos.ProposalStatusPassed) - require.NoError(t, err, "proposal status did not change to passed in expected number of blocks") - - timeoutCtx, timeoutCtxCancel := context.WithTimeout(ctx, time.Second*45) - defer timeoutCtxCancel() - - height, err = chain.Height(ctx) - require.NoError(t, err, "error fetching height before upgrade") - - // this should timeout due to chain halt at upgrade height. - _ = testutil.WaitForBlocks(timeoutCtx, int(haltHeight-height)+1, chain) - - height, err = chain.Height(ctx) - require.NoError(t, err, "error fetching height after chain should have halted") - - // make sure that chain is halted - require.Equal(t, haltHeight, height, "height is not equal to halt height") - - // bring down nodes to prepare for upgrade - err = chain.StopAllNodes(ctx) - require.NoError(t, err, "error stopping node(s)") - - // upgrade version on all nodes - chain.UpgradeVersion(ctx, client, upgradeContainerRepo, upgradeVersion) - - // start all nodes back up. - // validators reach consensus on first block after upgrade height - // and chain block production resumes. - err = chain.StartAllNodes(ctx) - require.NoError(t, err, "error starting upgraded node(s)") - - timeoutCtx, timeoutCtxCancel = context.WithTimeout(ctx, time.Second*45) - defer timeoutCtxCancel() - - err = testutil.WaitForBlocks(timeoutCtx, int(blocksAfterUpgrade), chain) - require.NoError(t, err, "chain did not produce blocks after upgrade") - - height, err = chain.Height(ctx) - require.NoError(t, err, "error fetching height after upgrade") - - require.GreaterOrEqual(t, height, haltHeight+blocksAfterUpgrade, "height did not increment enough after upgrade") -} diff --git a/tests/interchaintest/validator_test.go b/tests/interchaintest/validator_test.go deleted file mode 100644 index 149a94b0e..000000000 --- a/tests/interchaintest/validator_test.go +++ /dev/null @@ -1,102 +0,0 @@ -package interchaintest - -import ( - "context" - "fmt" - "testing" - "time" - - "github.com/strangelove-ventures/interchaintest/v7" - "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v7/testreporter" - "github.com/strangelove-ventures/interchaintest/v7/testutil" - "github.com/stretchr/testify/require" - "go.uber.org/zap/zaptest" -) - -// TestValidator is a basic test to accrue enough token to join active validator set, gets slashed for missing or tombstoned for double signing -func TestValidator(t *testing.T) { - if testing.Short() { - t.Skip() - } - - t.Parallel() - - ctx := context.Background() - - // Create chain factory with Centauri - numVals := 5 - numFullNodes := 3 - - cf := interchaintest.NewBuiltinChainFactory(zaptest.NewLogger(t), []*interchaintest.ChainSpec{ - { - Name: "centauri", - ChainConfig: centauriConfig, - NumValidators: &numVals, - NumFullNodes: &numFullNodes, - }, - }) - - // Get chains from the chain factory - chains, err := cf.Chains(t.Name()) - require.NoError(t, err) - - centauri := chains[0].(*cosmos.CosmosChain) - - // Relayer Factory - client, network := interchaintest.DockerSetup(t) - - // Create a new Interchain object which describes the chains, relayers, and IBC connections we want to use - ic := interchaintest.NewInterchain().AddChain(centauri) - - rep := testreporter.NewNopReporter() - eRep := rep.RelayerExecReporter(t) - - err = ic.Build(ctx, eRep, interchaintest.InterchainBuildOptions{ - TestName: t.Name(), - Client: client, - NetworkID: network, - SkipPathCreation: true, - - // This can be used to write to the block database which will index all block data e.g. txs, msgs, events, etc. - // BlockDatabaseFile: interchaintest.DefaultBlockDatabaseFilepath(), - }) - require.NoError(t, err) - - t.Cleanup(func() { - _ = ic.Close() - }) - - err = testutil.WaitForBlocks(ctx, 1, centauri) - require.NoError(t, err) - - err = testutil.WaitForBlocks(ctx, 1, centauri) - require.NoError(t, err) - - err = centauri.Validators[1].StopContainer(ctx) - require.NoError(t, err) - - // _, _, err = centauri.Validators[1].ExecBin(ctx, "status") - // require.Error(t, err) - err = testutil.WaitForBlocks(ctx, 101, centauri) - require.NoError(t, err) - - validators, err := centauri.QueryValidators(ctx) - require.NoError(t, err) - - // slashingParams, err := centauri.QuerySlashingParams(ctx) - require.NoError(t, err) - - fmt.Println("validators", string(validators[1].ConsensusPubkey.Value)) - - defaultTime := time.Date(1970, time.January, 1, 0, 0, 0, 0, time.UTC) - - // sdk.ConsAddress(validators[1].ConsensusPubkey) - infos, err := centauri.QuerySigningInfos(ctx) - for _, info := range infos { - if info.JailedUntil != defaultTime { - fmt.Println("Jailed Validator", info.Address) - } - } - require.NoError(t, err) -} diff --git a/tmp-proposal.json b/tmp-proposal.json new file mode 100644 index 000000000..227069081 --- /dev/null +++ b/tmp-proposal.json @@ -0,0 +1,34 @@ +{ + "proposal": { + "id": "1", + "messages": [ + { + "type": "/ibc.lightclients.wasm.v1.MsgStoreCode", + "value": { + "signer": "pica10d07y265gmmuvt4z0w9aw880jnsr700jp7sqj5", + "wasm_byte_code": "AGFzbQEAAAAB/AIvYAR/f39/AGABfwF+YAV/f39/fwBgA39/fwBgAn9/AGADf39/AX9gAX8AYAF/AX9gAn9/AX9gAn9+AX9gAn9+AGAEf39/fwF/YAN/f38BfmAFf39/fn8AYAZ/f39/f38AYAV/f39/fwF/YAV/f39+fgBgBn9/f35+fwBgBn9/fn5/fwBgBn9+fn9/fwBgAn9/AX5gBH9/fn4AYAR/fn5/AGAIf39/f39/f38AYAl/f39/f39/f38AYAAAYAN/fn8Bf2ALf39/f39/f39/f38AYAF+AX9gAAF/YAR/f35/AGADf35+AGAHf39/f39/fwBgA39/fgBgA39+fwBgAn5/AX9gAn5+AX5gAX4BfmAHf39/f39/fwF/YAN+f38AYAR+fn9/AX9gBn9/f39/fwF/YAt/f39/f39/f39/fwF/YA9/f39/f39/f39/f39/f38Bf2AXf39/f39/f39/f39/f39/f39/f39/f38Bf2ADfn9/AX9gBX9+fn5+AAKaAg8DZW52BWFib3J0AAYDZW52B2RiX3JlYWQABwNlbnYIZGJfd3JpdGUABANlbnYJZGJfcmVtb3ZlAAYDZW52B2RiX3NjYW4ABQNlbnYHZGJfbmV4dAAHA2Vudg1hZGRyX3ZhbGlkYXRlAAcDZW52EWFkZHJfY2Fub25pY2FsaXplAAgDZW52DWFkZHJfaHVtYW5pemUACANlbnYQc2VjcDI1NmsxX3ZlcmlmeQAFA2VudhhzZWNwMjU2azFfcmVjb3Zlcl9wdWJrZXkADANlbnYOZWQyNTUxOV92ZXJpZnkABQNlbnYUZWQyNTUxOV9iYXRjaF92ZXJpZnkABQNlbnYFZGVidWcABgNlbnYLcXVlcnlfY2hhaW4ABwO4EbYRDQADAAADBAQEBAQEAAADAwMDAwMDAAQAAwQEBAQEBAQEBAQEBAQEAwMDAwMDAwYGBgICAgICBAMCAAACAg4ADwMPBAgHBgYLAQgIBgYGCAUFBAUFBQUFCwQLBAMECAMIBAQCAgICAgICAgICAgICAwMABgcAAwMDAwQAAAIBAwMICAgICAgICAgICAgICAYGBgYGCAgFAwMDAwMEDwMPBAQDAAUPCAQEBAQEBAQEBAQEDwQABAQIAwQABgQLBgMEBwgEBAQDEAYICAgGBgYGCwgFAwMLCwMEBAcEAwMDAAMRBAMIEhMAAgUFBAMEAAgICAYCBgMADwQAAAMFBAUGBggABwYGBQAMAAMOFAICAgYGBAQEBAQEBAQEAwMDAwEBAQEDAgQEAwQEAwMEBAMDBwgIBQcIBwgLCAgICAgICAgCAgMVEhYTCAgICAgGBggFCwMCAwMCBAMGBgAADgAAAwMDAwMDCAgEAwMEAwMDBAQEBAYGBgYGBgYGBgQDBAQEBAMEBBcXBAQXAAQEAwQIBAgYBAQEBgYGBgYGBgQEBAQZCAUDCAcaCAgHBAQDAwMDAwQbBA4CAwMXFxcIBwsCHBwcAAIAAw4DDgMEAwMODgQEBAQEBAQEBAQEBAMEBAQEBAQEBAQEBAQEDgQEDgQODg4EDg4ODg4ODg4ODg4ODgQHCAQEDgMGBgYGDgQEBgYGDhgABgYGHQQECAYDBggGBAQICAgICAgICAgIBgYGBgYGCAgFCAgAAA8ECAAFBAgGBgYGBAAAAwMDAwQEBAgGAA4AAwMDBAcGHggGBggIBgYGBgYGBgYGBAQBAQEBGQgFBwQDBAsLCwsLAwQEBAQGBgYGBAQEBAkJCQkKCgoKAggDCAYCBBAEBAQEAwMDAwMEBAMEAwMEAwgDCwgECgMBAQMOAx8DBAsFBAgDBgYEAwQEBAQDBAQABAYIAwMEAAMEAwMEBAMDAwQEBAQAAyAGBgYEAQMGBAQDDgQEBAQEBAQOBAQEDgQODg4ODgMBBAYGGQgFAwIDBBkEBAQEBAAAAAAAAAQEBAQEAwcEBgYDCAgICAgICAgICAgGBggFBAQACAgABAMDBAgICAYGBgMEAwQICAUIBQgEAwgAAgMgGQAAAxcgFxcDAAgICAgICAgICAYZBwYIBgMDIQAEIAACFwcEAAQDAwMGBAQEAAQEBAQICAMIAwMHBAQABAQEAwMDCAYEBAQEBAMDAQEDCAgICAgICAgICAYGBgQEAwMDBAQDBAYGBAQGBgYDBgYGBgYGBgYdBAgICAYGBAQEBAgEBgQGBgYEBwQGBgYGBAQBAQQEBgYEBAkJCgoIAwgEAAQICAgIBQcIAwMEBgYGCAQEAAMICAQEBAQEBgcEBAgGBgYGBgQEAQEEBAYGBAQJCQoKCAMICAUHCAQEBAQEAwMBAQgICAgHAAQDAwAEAwgAHQcHAAMHAwgIBAQECAgIBAQDBgYGAAADBwMICAUABAQEAwQDCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAcICAgDBBUEBAQEBAQECAgICAgICAgICAgICAgICAgICAgICAgGBggIBQgCCAgEBAQEBAgIBAIEBgYECAgICAgICAYfBgMDCAgICAYDAwQECAMICAYGBgYGBgYGBgYGBAQEBAQEBAQEAwMBAQEBAQEBAQEBBAQEBAQEBAQEBAYGBgYGBAQEBAQJCQkJCgoKCQoICAQICAgICAgICAgICAgICAgIAwgICAgIBggKAQQIBAgIAAMDCAYGHwgIBgYGBiACBgQEBgYEBAMBBAQGBAkKCAgIBAQDAQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAYGBgYICAgIBAYiIgQEBAgIBgYGBgYZDgMFCAgIBwcGBAcFAAMICAYEBgYGBgYGBAQEBAQDAQEBAQQEBAQGBgQECQoJCggIBAgICAgICAYICAgICAgICAQDBAYICAUIAAQDCAcICAYICAUDAx8BBAcEBwcHBwcHBwcECAMECAgHBwEGCAYACwsECAgIBQgIBAgGCAUIBQAABwAGBgcFCAgLBggGAgYDBgYCCAgDCAgGCAcIAAQICAgGHQ4FBwgCBwAEAwYGCAUECAQDCAgDCAYBAAgIBgYIBQgFBggGCAgFAgQIBAcEBwYHCAgEBAMDIwADCAgkJCQIJSUkJAYHBwcHCAElCAYEBAADBAQEBAQAAwYICAMDAwMDAwQDBAQGCAQGAgMGBAQGBgYBFAoHAwQEAAMIAwgECAgIBgIOCA4ICAAHBAQABwcHByUIBggDCAgGCAYEAAADAA4AAAMAAAMAAAMEAwIAAAMZAAMDAwUICAgGBgYBAwYEBAEBAQUICAgDBB0EBQYGBgYGBgMICAQIBQAIBwQGBB0GBAIZBh0dGQcIBgcIJgUZBAgGBgQIAwsIBAYEBAQEAgQEBwgHBwcdBwcHBgcHBAQEBAMICAcdBwcHBwcHBwgHAw8LBQgHBwcICAgICAgICAYCAiAICAUEBAgDBAQEBAYHBwgICAgJBwcHBwcEBwcHBAcHCAMDCAgICAgGCAQIBQMABBkEBAQECAQEAwQICAYEAwMDBQMDCAAICAgFCAEDCAcAAw8DAwgIBwcHCAgIBAMgCAgCBQcHBQcDBQcnCCgpCAgFCAgDBAgPAgUIBwcHACYqKywmAA8mBAgIBQcHBQgICAMDAwYGAwgICAYCBAQECAMCAwgmCAgICAADAwMILQgICAgICAgICAgICAgHBwcICAUFLgUFBQUFBRYuLgQHAXABqQepBwUDAQASBhkDfwFBgIDAAAt/AEHI5cQAC38AQdDlxAALB/UBDQZtZW1vcnkCAAtpbnN0YW50aWF0ZQD3AQdleGVjdXRlAPgBBXF1ZXJ5ANYCIGV4dF9oYXNoaW5nX2JsYWtlMl8yNTZfdmVyc2lvbl8xAM4DHmV4dF9oYXNoaW5nX3R3b3hfMTI4X3ZlcnNpb25fMQDPAx1leHRfaGFzaGluZ190d294XzY0X3ZlcnNpb25fMQDQAwhhbGxvY2F0ZQDyBgpkZWFsbG9jYXRlAPMGEXJlcXVpcmVzX2l0ZXJhdG9yAPEGE2ludGVyZmFjZV92ZXJzaW9uXzgA8QYKX19kYXRhX2VuZAMBC19faGVhcF9iYXNlAwIJzQ4BAEEBC6gH2RC/EKwE3A5StAG0BJwBsgS3BLMEmAGZAbYEmxFc4wxbXl25BFqrEdgBkAFZ9QLrBFiSAdoClAH0Av0Buw29EKABygTLBJ8BsQGyAaEBpAGjAdgC2QL/AZAEpwvFAdwHsQRutgrABuwJlQGoC90BzAHcAeAB3wHaAdcBgALGEI8BkAWKBZIFmAWcBY0FiwWUBZcFmwWOBYwFkQWVBZoFjwWJBZMFlgWZBZ8CnQKcApsC/A6bAdsC2QbcBtoG2wbeBt8G4AbhBuIG4wbkBuUG5gbcAt4C3QKwBJMB1wK4DbgElgHcBJcBmgHZAbUEnwOmA6QDsQOwA6UDzgjPCKEDwgOiA6MDyAWqA6EKwg60CqgEvwSMAb0EV7sEwgTABMEE6ASODqIBnQPzBP4E/QTyBJEB/gH0BMsCxwKoAq4CoAKnAqwCzALKArACogKmAqoC8ATOAskCrQKjAqQCqQLNAsgCrwKhAqUCqwLtBKAFngX3BPsE9gSfBfUE+QTuBPgE8QT6BOwE7wX1BfQF8wXxBewGjgaRBpAGyAaNBrMQjAaXBscGtQayBusGtgbtBu8GtAazBrgGvQa8BrkGuwa6BosGsAatBrEGxgbnBukGrgbqBugG1QbKBtQG0wbJBtIG0AbRBs0GzwbMBs4G8AaSB48HoAf/B4AIswewB9MHsQefB7IHtAf+B68HiwzXB9YH1AfVB+gHrQesB6UHqAehB6QHpwfnB64HqwepB6IHowemB+kH+gf4B+sH7AfqB/kH5gftB/EH7gfzB/UH9gfwB+8H8gf0B/cHigiRCJAIqhHaDp4Iwgi/CLoIvgi2CLkIvAifCMEIwAi9CLcIuAi7CJ0IsQivCKIIowihCLAIoAikCKgIpQiqCKwIrginCKYIqQirCK0I3wifDuAIuBGRCZ4Jrwn2CLAJhAmqCasJogmZCacJoAmCCaYJlQmBCYkJkgn3CKUJ/Qj1CKkJkwmPCYcJkAmICZ0Jmwn7CPgIign8CJ8JrQmLCY4J+QisCYwJnAmaCbEJlAmGCbIJ8wiACfoIgwmhCZYJowmNCagJ9Aj/CJcJpAmYCf4ImAu1CqkKnAuSC4UJ8Qi2CcYJwwm5CdMJ4wm/CccJ3wnbCcQJvAnZCbgJ3QnACeYJtAniCbUJ3AnCCckJ6Qm3CeEJ7gnLCeAJ6gnvCdoJvQnPCegJ8Am6CdEJyAnSCdYJ3gnOCesJxQnMCdUJzQnkCdAJ5QnBCcoJuwm+CecJ1AnXCf0JhAqBCokKjAr+CYsKhwqCCpEK+wmKCogK/AmOCoMKjQqFCoYKwAqPCv8JkgqWCpQKlQqTCpcKrgqoCqoKrAqrCq8KvwrHCsoNkAuMC9AK4ArNCtYKygqOC4sLzwreCswK1QrLCv8K/gqAC98KzgrICo0LigvbCskKjwuJC9wKwgqGC4IL1ArYCsEKhQuBC9IK2QrFCogLhAvRCtcKwwrdCsQKhwuDC9MK2gqZCsYKkA2VC5QLlgucDJMLlwufEaQLowvrCugK4gr0CvcK+gqsC+8K6QrlCvMK9Qr5CqsL7grqCuQK8Qr2CvsKqgvtCucK4QrwCvgKqQvsCuYK4wryCvwK/QqzC8YLxQvCC8QLwQvDC7ILvwu+C7ULtwu0C7YLlAyTDJEM4gvcC/ILiAz/C/UL5Av0C8oLywvnC/4L6gvoC9sLxwvgC4IM+gvMC9cLgwzYC9AL3gvJC4wM8AvTC9IL2QvrC/sLzQvsC/gL+QuGDO0L7gv3C+EL8wvVC/YL0QuJDOkLhwzfC4oM/QvvC90LgAzUC9YLzwuBDIQM8QvIC9oLzgvjC/wLhQzAC+ULkAySDJYMnQy6C7kLuAu7C7wLvQueDKcMkRGsDLIRtAy6DNoM2QzADMIMvAzBDLsM0wzSDNQMxQy/DLYM2AzWDL4MxAy3DNcM1Qy9DMMMuAzrDLkMygzIDMYMzAzODM8M2wzLDMkMxwzNDNAM0QzdDPIM3AzfDOAM3gzhDPEM5wzqDOgM6QyzDLIM8wz2DPQM9QyLDYcNmg2bDY8Njg2UDZMNlQ2WDZ4Nog2fDaENmQ2XDZgNpw2lDakNpg2kDaMNrA2rDbANrw3EDbQNvw21Db0NvA3CDcUNww3bDdUN0Q3TDdIN6A3QDdwN3Q3iDeYN4w3lDekN7A3qDesNiQ6ADv8Nng6gDqQOpQ6mDqsOrA6tDq4OsQ63DrYOsw6yDsYOwA7HDsUOhxHMDtkO3Q7YDt4O3w7iDuMO5A7lDucO6Q7qDusO7A7gDu0O7g7vDvMO9A71Dv0O/g6BD4YPhQ+ED4IPmg+ND68Pug+TD54Pmw+dD4wPiw+VD5IPtA+PD7YPlw+HD4kPmA/BD8IPww/ED4gPlA+3D+8P8A/yD/YP/A/6D/sP8Q/1D6ARnRChEKUQohCkEJ8QnhCgELQQzhDTENQQ2BDDEIYRwBDBELUQxBDbEOcQ6BCxEekQ6hDrELARrhGsEa8RrREKmZ40thHHGQMLfwF+Bn8jgICAgABBgAFrIgUkgICAgAAgASgCCCEGAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAgQiBy8BtgEiCEELSQ0AIAEoAgAhCCAFQeAAaiAGEKyQgIAAIAVB4ABqQQhqIgkoAgAhCiAFKAJkIQsgBSgCYCEBQZgEQQgQtoWAgAAiDEUNBiAMQQA2ArABIAwgBy8BtgEiDSABQX9zaiIGOwG2ASAFQeAAakEYaiAHQbgBaiIOIAFBBXRqIg9BGGopAAA3AwAgBUHgAGpBEGogD0EQaikAADcDACAJIA9BCGopAAA3AwAgBSAPKQAANwNgIAZBDE8NByANIAFBAWoiD2sgBkcNCCAHIAFBBHRqIgkoAgghDSAJKQMAIRAgDEG4AWogDiAPQQV0aiAGQQV0ELyRgIAAGiAMIAcgD0EEdGogBkEEdBC8kYCAACEJIAcgATsBtgEgBUHAAGpBCGogBUHgAGpBCGopAwA3AwAgBUHAAGpBEGogBUHgAGpBEGopAwA3AwAgBUHAAGpBGGogBUHgAGpBGGopAwA3AwAgBSAFKQNgNwNAIAkgByALGyIGQbgBaiIOIApBBXRqIQEgCkEBaiILIAYvAbYBIg9NDQEgASACKQAANwAAIAFBGGogAkEYaikAADcAACABQRBqIAJBEGopAAA3AAAgAUEIaiACQQhqKQAANwAADAILIAdBuAFqIgwgBkEFdGohAQJAAkAgBkEBaiIKIAhNDQAgASACKQAANwAAIAFBGGogAkEYaikAADcAACABQRBqIAJBEGopAAA3AAAgAUEIaiACQQhqKQAANwAADAELIAwgCkEFdGogASAIIAZrIgxBBXQQwZGAgAAaIAFBGGogAkEYaikAADcAACABQRBqIAJBEGopAAA3AAAgAUEIaiACQQhqKQAANwAAIAEgAikAADcAACAHIApBBHRqIAcgBkEEdGogDEEEdBDBkYCAABoLIAcgBkEEdGoiESADNwMAIBEgBDYCCCAHIAhBAWo7AbYBDAILIA4gC0EFdGogASAPIAprIg5BBXQQwZGAgAAaIAFBGGogAkEYaikAADcAACABQRBqIAJBEGopAAA3AAAgAUEIaiACQQhqKQAANwAAIAEgAikAADcAACAGIAtBBHRqIAYgCkEEdGogDkEEdBDBkYCAABoLIAYgCkEEdGoiESADNwMAIBEgBDYCCCAFQSBqQQhqIgIgBUHAAGpBCGopAwA3AwAgBUEgakEQaiIBIAVBwABqQRBqKQMANwMAIAVBIGpBGGoiCiAFQcAAakEYaikDADcDACAGIA9BAWo7AbYBIAUgBSkDQDcDICAQQgBSDQELIAAgETYCQCAAQgA3AyAMAQsgBUEYaiAKKQMANwMAIAVBEGogASkDADcDACAFQQhqIAIpAwA3AwAgBSAFKQMgNwMAAkACQCAHKAKwASICDQBBACEPDAELIBAhAyANIQsgCCEPIAchBkEAIQEgCSEOA0AgAiEHIA8gAUcNBiAGQbQBai8BACECAkACQAJAAkACQCAHLwG2ASIBQQtJDQAgBUHgAGogAhCskICAACAFKAJoIQQgBSgCZCESIAUoAmAhAiAHLwG2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QXxqKAIAIgYgAUF/ajsBMCAGIAU2AgAgBCgCACIGIAE7ATAgBiAFNgIAIARBEGohBEEEIQcgAiABQQRqIgFqQQNHDQAMCwsLQTRBBBCokICAAAALIARBC0Gog8CAABC5kICAAAALQfCCwIAAQShBmIPAgAAQu5CAgAAAC0HIg8CAAEE1QYCEwIAAELuQgIAAAAtB5ABBBBCokICAAAALIARBC0Gog8CAABC5kICAAAALQfCCwIAAQShBmIPAgAAQu5CAgAAACyAGQQxBuIPAgAAQuZCAgAAAC0HwgsCAAEEoQZiDwIAAELuQgIAAAAsgACAINgIMIAAgDDYCCCAAIAU2AgQgACAGNgIAQRAhBwsgDSEFCyAAIAdqIAk2AgAgACAFNgIUIANBEGokgICAgAAL0x0BF38jgICAgABBwAJrIgQkgICAgAAgASgCCCEFAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCBCIGLwG+AyIHQQtJDQAgASgCACEBIARB2AFqIAUQrJCAgAAgBEHYAWpBCGooAgAhCCAEKALcASEJIAQoAtgBIQdBoAZBBBC2hYCAACIFRQ0EIAVBADYCACAFIAYvAb4DIgogB0F/c2oiCzsBvgMgBEEYaiAGQcADaiIMIAdBBXRqIg1BGGopAAA3AwAgBEEQaiANQRBqKQAANwMAIARBCGogDUEIaikAADcDACAEIA0pAAA3AwAgBEGQAWpBIGogBkEEaiIOIAdBKGxqIg1BIGopAgA3AwAgBEGQAWpBGGogDUEYaikCADcDACAEQZABakEQaiANQRBqKQIANwMAIARBkAFqQQhqIA1BCGopAgA3AwAgBCANKQIANwOQASALQQxPDQUgCiAHQQFqIg1rIAtHDQYgBUHAA2ogDCANQQV0aiALQQV0ELyRgIAAGiAFQQRqIA4gDUEobGogC0EobBC8kYCAABogBiAHOwG+AyAEQdgBakEIaiAEQQhqKQMANwMAIARB2AFqQRBqIARBEGopAwA3AwAgBEHYAWpBGGogBEEYaikDADcDACAEQdgBakEoaiAEQZABakEIaikDADcDACAEQYgCaiAEQZABakEQaikDADcDACAEQZACaiAEQZABakEYaikDADcDACAEQZgCaiAEQbABaikDADcDACAEIAQpAwA3A9gBIAQgBCkDkAE3A/gBIARBkAFqIARB2AFqQcgAELyRgIAAGiAFIAYgCRsiDUHAA2oiCiAIQQV0aiEHIAhBAWoiCSANLwG+AyILTQ0BIAcgAikAADcAACAHQRhqIAJBGGopAAA3AAAgB0EQaiACQRBqKQAANwAAIAdBCGogAkEIaikAADcAAAwCCyAGQcADaiILIAVBBXRqIQECQAJAIAVBAWoiDSAHTQ0AIAEgAikAADcAACABQRhqIAJBGGopAAA3AAAgAUEQaiACQRBqKQAANwAAIAFBCGogAkEIaikAADcAAAwBCyALIA1BBXRqIAEgByAFayILQQV0EMGRgIAAGiABQRhqIAJBGGopAAA3AAAgAUEQaiACQRBqKQAANwAAIAFBCGogAkEIaikAADcAACABIAIpAAA3AAAgBkEEaiICIA1BKGxqIAIgBUEobGogC0EobBDBkYCAABoLIAYgBUEobGoiAkEkaiADQSBqKQIANwIAIAJBHGogA0EYaikCADcCACACQRRqIANBEGopAgA3AgAgAkEMaiADQQhqKQIANwIAIAJBBGoiAiADKQIANwIAIABBADYCBCAAIAI2AlggBiAHQQFqOwG+AwwCCyAKIAlBBXRqIAcgCyAIayIKQQV0EMGRgIAAGiAHQRhqIAJBGGopAAA3AAAgB0EQaiACQRBqKQAANwAAIAdBCGogAkEIaikAADcAACAHIAIpAAA3AAAgDUEEaiICIAlBKGxqIAIgCEEobGogCkEobBDBkYCAABoLIA0gCEEobGoiAkEkaiADQSBqKQIANwIAIAJBHGogA0EYaikCADcCACACQRRqIANBEGopAgA3AgAgAkEMaiADQQhqKQIANwIAIAJBBGoiDyADKQIANwIAIA0gC0EBajsBvgMgBEHIAGogBEGQAWpByAAQvJGAgAAaIAQgBEHIAGpByAAQvJGAgAAhDQJAAkAgBigCACIDDQBBACEKDAELIA1B2AFqQSBqIQggDUEgaiEJIAEhCkEAIQIDQCAFIRAgBiEBIAMhBiAKIAJHDQYgAUG8A2ovAQAhAwJAAkACQCAGLwG+AyICQQtJDQAgDUHYAWogAxCskICAACANKALgASELIA0oAtwBIREgDSgC2AEhAyAGLwG+AyESQdAGQQQQtoWAgAAiBUUNCiAFQQA2AgAgBSAGLwG+AyIMIANBf3NqIgE7Ab4DIA1BoAJqQRhqIhMgBkHAA2oiDiADQQV0aiICQRhqKQAANwMAIA1BoAJqQRBqIhQgAkEQaikAADcDACANQaACakEIaiIVIAJBCGopAAA3AwAgDSACKQAANwOgAiANQcgAakEgaiIWIAZBBGoiFyADQShsaiICQSBqKQIANwMAIA1ByABqQRhqIhggAkEYaikCADcDACANQcgAakEQaiIZIAJBEGopAgA3AwAgDUHIAGpBCGoiGiACQQhqKQIANwMAIA0gAikCADcDSCABQQxPDQsgDCADQQFqIgdrIAFHDQwgBUHAA2ogDiAHQQV0aiABQQV0ELyRgIAAGiAFQQRqIBcgB0EobGogAUEobBC8kYCAABogBiADOwG+AyANQdgBakEIaiIOIBUpAwA3AwAgDUHYAWpBEGoiFSAUKQMANwMAIA1B2AFqQRhqIhQgEykDADcDACAIIA0pA0g3AgAgCEEIaiAaKQMANwIAIAhBEGogGSkDADcCACAIQRhqIBgpAwA3AgAgCEEgaiAWKQMANwIAIA0gDSkDoAI3A9gBIAUvAb4DIgJBAWohASACQQxPDQ0gEiADayIDIAFHDQ4gCkEBaiEKIAVBoAZqIAYgB0ECdGpBoAZqIANBAnQQvJGAgAAhB0EAIQMCQANAIAcgA0ECdGooAgAiASADOwG8AyABIAU2AgAgAyACTw0BIAMgAyACSWoiAyACTQ0ACwsgDUGQAWogDUHYAWpByAAQvJGAgAAaIAUgBiARGyIBQcADaiIHIAtBBXRqIQMgC0EBaiICIAEvAb4DIgxNDQEgAyANKQMANwAAIANBGGogDUEYaikDADcAACADQRBqIA1BEGopAwA3AAAgA0EIaiANQQhqKQMANwAAIAggCUEgaikCADcDACAUIAlBGGopAgA3AwAgFSAJQRBqKQIANwMAIA4gCUEIaikCADcDACANIAkpAgA3A9gBDAILIAZBwANqIgsgA0EFdGohBSADQQFqIQEgAkEBaiEHAkACQCACIANLDQAgBSANKQMANwAAIAVBGGogDUEYaikDADcAACAFQRBqIA1BEGopAwA3AAAgBUEIaiANQQhqKQMANwAAIAYgA0EobGoiBUEEaiAJKQIANwIAIAVBDGogCUEIaikCADcCACAFQRRqIAlBEGopAgA3AgAgBUEcaiAJQRhqKQIANwIAIAVBJGog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BiADQeAAakEYaiAFQQhqIgwgAUEFdGoiDUEYaikAADcDACADQeAAakEQaiANQRBqKQAANwMAIAcgDUEIaikAADcDACADIA0pAAA3A2AgC0EMTw0HIAogAUEBaiINayALRw0IIARBCGogDCANQQV0aiALQQV0ELyRgIAAGiAFIAE7AQYgA0HAAGpBCGoiCyADQeAAakEIaikDADcDACADQcAAakEQaiIHIANB4ABqQRBqKQMANwMAIANBwABqQRhqIgogA0HgAGpBGGopAwA3AwAgAyADKQNgNwNAIAQgBSAJGyIOQQhqIQECQCAIQQFqIgkgDi8BBiINSw0AIAEgCUEFdGogASAIQQV0aiANIAhrQQV0EMGRgIAAGgsgASAIQQV0aiIBQRhqIAJBGGopAAA3AAAgASACKQAANwAAIANBIGpBCGoiCCALKQMANwMAIANBIGpBEGoiCyAHKQMANwMAIANBIGpBGGoiByAKKQMANwMAIAFBEGogAkEQaikAADcAACABQQhqIAJBCGopAAA3AAAgDiANQQFqOwEGIAMgAykDQDcDICADQRhqIAcpAwA3AwAgA0EQaiALKQMANwMAIANBCGogCCkDADcDACADIAMpAyA3AwAgBSgCACICDQFBACEIDAILIAVBCGohAQJAIARBAWoiDSAGSw0AIAEgDUEFdGogASAEQQV0aiAGIARrQQV0EMGRgIAAGgsgASAEQQV0aiIBQRhqIAJBGGopAAA3AAAgACAFNgIwIABBADYCBCABIAIpAAA3AAAgAUEQaiACQRBqKQAANwAAIAFBCGogAkEIaikAADcAACAFIAZBAWo7AQYMBAsgBiEIQQAhAQNAIAQhDyAFIQYgAiEFIAggAUcNCCAGQQRqLwEAIQIgBS8BBiIBQQtJDQIgA0HgAGogAhCskICAACADKAJoIQsgAygCZCEQIAMoAmAhAiAFLwEGIRFBmANBBBC2hYCAACIERQ0JIARBADYCACAEIAUvAQYiByACQX9zaiIGOwEGIANB4ABqQRhqIgkgBUEIaiISIAJBBXRqIgFBGGopAAA3AwAgA0HgAGpBEGoiCiABQRBqKQAANwMAIANB4ABqQQhqIgwgAUEIaikAADcDACADIAEpAAA3A2AgBkEMTw0KIAcgAkEBaiINayAGRw0LIARBCGogEiANQQV0aiAGQQV0ELyRgIAAGiAFIAI7AQYgA0HAAGpBCGoiByAMKQMANwMAIANBwABqQRBqIhIgCikDADcDACADQcAAakEYaiITIAkpAwA3AwAgAyADKQNgNwNAIAQvAQYiAUEBaiEGIAFBDE8NDCARIAJrIgIgBkcNDSAIQQFqIQggBEHoAmogBSANQQJ0akHoAmogAkECdBC8kYCAACENQQAhAgJAA0AgDSACQQJ0aigCACIGIAI7AQQgBiAENgIAIAIgAU8NASACIAIgAUlqIgIgAU0NAAsLIAkgEykDADcDACAKIBIpAwA3AwAgDCAHKQMANwMAIAMgAykDQDcDYCAEIAUgEBsiBkEIaiECAkAgC0EBaiIBIAYvAQYiB0sNACACIAFBBXRqIAIgC0EFdGogByALa0EFdBDBkYCAABoLIAdBAWohDSACIAtBBXRqIgIgAykDADcAACACQRhqIANBGGoiESkDADcAACACQRBqIANBEGoiEikDADcAACACQQhqIANBCGoiECkDADcAACAGQegCaiECAkAgC0ECaiIUIAdBAmoiE08NACACIBRBAnRqIAIgAUECdGogByALa0ECdBDBkYCAABoLIAIgAUECdGogDzYCACAGIA07AQYCQCABIBNPDQACQCAHIAtrIg9BAWpBA3EiDUUNACAGIAtBAnRqQewCaiECA0AgAigCACILIAE7AQQgCyAGNgIAIAJBBGohAiABQQFqIQEgDUF/aiINDQALCyAPQQNJDQAgAUEDaiECQX4gB2shCyAGIAFBAnRqQfQCaiEBA0AgAUF0aigCACINIAJBfWo7AQQgDSAGNgIAIAFBeGooAgAiDSACQX5qOwEEIA0gBjYCACABQXxqKAIAIg0gAkF/ajsBBCANIAY2AgAgASgCACINIAI7AQQgDSAGNgIAIAFBEGohASALIAJBBGoiAmpBA0cNAAsLIBEgCSkDADcDACASIAopAwA3AwAgECAMKQMANwMAIAMgAykDYDcDACAIIQEgCCEGIAUoAgAiAg0ACwsgACADKQMANwIQIAAgCDYCCCAAIAU2AgQgACAGNgIAIABBKGogA0EYaikDADcCACAAQSBqIANBEGopAwA3AgAgAEEYaiADQQhqKQMANwIAQQwhCAwBCyAFQQhqIgsgAkEFdGohBCACQQFqIQYgAUEBaiENAkACQCABIAJLDQAg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ACEaIA8gECkAADcAACAVIA43AAAgFyANNwAAIBkgDDcAACADIBo3AwggESAFIAhB8ABsakEEaiIFQfAAELyRgIAAIRAgBSADQcACakHwABC8kYCAABogA0GwA2pBGGoiDyATKQMANwMAIANBsANqQRBqIgggFikDADcDACADQbADakEIaiILIBgpAwA3AwAgAyADKQMINwOwAyADQbABaiAQQfAAELyRgIAAGiAJIBJqIgVBGGogDykDADcAACAFQRBqIAgpAwA3AAAgBUEIaiALKQMANwAAIAUgAykDsAM3AAAgCiAUaiADQbABakHwABC8kYCAABogAUEBRg0FIARBuAxqIgUgAkECdCICaiAFIAdBAnRBBGoQwZGAgAAaIAUgBiAAQQJ0akG4DGogAhC8kYCAABogBCgCuAwiBUEAOwHUCSAFIAQ2AgAgBEG8DGooAgAiBUEBOwHUCSAFIAQ2AgAgBEHADGooAgAiBUECOwHUCSAFIAQ2AgAgBEHEDGooAgAiBUEDOwHUCSAFIAQ2AgAgBEHIDGooAgAiBUEEOwHUCSAFIAQ2AgAgBEHMDGooAgAiBUEFOwHUCSAFIAQ2AgAMAwtBsIjAgABBGUHMiMCAABC7kICAAAALQfCCwIAAQShBmIPAgAAQu5CAgAAAC0HUhMCAAEEnQfyEwIAAELuQgIAAAAsgBCEFIAFBf2oiAQ0ACwsgA0HQA2okgICAgAALqgwBDX8jgICAgABBkAFrIgMkgICAgAAgA0E4akEIaiIEIAEoAgQiBUEIaiIGIAEoAggiB0EFdGoiCEEIaikAADcDACADQThqQRBqIgkgCEEQaikAADcDACADQThqQRhqIgogCEEYaikAADcDACADIAgpAAA3AzggASgCACELIAggBiAHQQFqIgxBBXRqIAUvAQYiASAHQX9zakEFdBDBkYCAABogBSABQX9qIgg7AQYgA0EYakEYaiINIAopAwA3AwAgA0EYakEQaiIOIAkpAwA3AwAgA0EYakEIaiIPIAQpAwA3AwAgAyADKQM4NwMYAkAgCEH//wNxQQVPDQACQAJAAkAgBSgCACIBRQ0AIAtBAWohBAJAIAVBBGovAQAiBg0AAkAgAS8BBg0AIANB6ABqQRRqQQE2AgAgA0E4akEUakEANgIAIANCATcCbCADQYiCwIAANgJoIANBgYCAgAA2AlwgA0GAgMCAADYCSCADQgE3AjwgA0GkgsCAADYCOCADIANB2ABqNgJ4IAMgA0E4ajYCWCADQegAakGsgsCAABC2kICAAAALAkAgCEH//wNxIAFB7AJqKAIAIggvAQZqQQFqQQxJDQAgAyAINgJQIAMgCzYCTCADIAU2AkggAyALNgJEIANBADYCQCADIAE2AjwgAyAENgI4IANBOGpBARCYgICAAAwCCyADIAg2AlAgAyALNgJMIAMgBTYCSCADIAs2AkQgA0EANgJAIAMgATYCPCADIAQ2AjggA0HYAGogA0E4akEAIAcQnICAgAAMAwsCQCAIQf//A3EgASAGQX9qIghBAnRqQegCaigCACIGLwEGakEBakEMSQ0AIAMgBTYCUCADIAs2AkwgAyAGNgJIIAMgCzYCRCADIAg2AkAgAyABNgI8IAMgBDYCOCADQThqQQEQlYCAgAAgAyAMNgJgDAILIAMgBTYCUCADIAs2AkwgAyAGNgJIIAMgCzYCRCADIAg2AkAgAyABNgI8IAMgBDYCOCADQdgAaiADQThqQQEgBxCcgICAAAwCCyADIAc2AmALIAMgBTYCXCADIAs2AlgLIAMoAmAhByADKAJYIQsgAygCXCIFKAIAIghFDQAgC0EBaiEBA0AgCC8BBiIGQQRLDQECQCAIKAIAIgRFDQAgAUEBaiEJAkAgCEEEai8BACIKDQACQCAELwEGDQAgA0HoAGpBFGpBATYCACADQThqQRRqQQA2AgAgA0IBNwJsIANBiILAgAA2AmggA0GBgICAADYCjAEgA0GAgMCAADYCSCADQgE3AjwgA0GkgsCAADYCOCADIANBiAFqNgJ4IAMgA0E4ajYCiAEgA0HoAGpBrILAgAAQtpCAgAAACyADIARB7AJqKAIAIgo2AoABIAMgATYCfCADIAg2AnggAyABNgJ0IANBADYCcCADIAQ2AmwgAyAJNgJoAkAgBiAKLwEGakEBakEMSQ0AIANB6ABqQQUgBmsQmICAgABBACEIQQANAwwECyADQThqQRhqIANB6ABqQRhqKAIANgIAIANBOGpBEGogA0HoAGpBEGopAwA3AwAgA0E4akEIaiADQegAakEIaikDADcDACADIAMpA2g3AzggA0EIaiADQThqEJmAgIAAIAMoAgghASADKAIMIggNAgwDCyAEIApBf2oiDEECdGpB6AJqKAIAIQogAyAINgKAASADIAE2AnwgAyAKNgJ4IAMgATYCdCADIAw2AnAgAyAENgJsIAMgCTYCaAJAIAYgCi8BBmpBAWpBDEkNACADQegAakEFIAZrEJWAgIAAQQAhCEEADQIMAwsgA0E4akEYaiADQegAakEYaigCADYCACADQThqQRBqIANB6ABqQRBqKQMANwMAIANBOGpBCGogA0HoAGpBCGopAwA3AwAgAyADKQNoNwM4IANBEGogA0E4ahCZgICAACADKAIQIQEgAygCFCIIDQEMAgsLIAYNACACQQE6AAALIAAgAykDGDcAACAAIAs2AiAgAEEoaiAHNgIAIABBJGogBTYCACAAQRhqIA0pAwA3AAAgAEEQaiAOKQMANwAAIABBCGogDykDADcAACADQZABaiSAgICAAAv+DAEMfyOAgICAAEGAAWsiAySAgICAACABKAIAIQQgASgCBCIFLwGOAiEGIANBKGpBCGoiByAFQQRqIgggASgCCCIJQQxsIgFqIgpBCGooAgA2AgAgAyAKKQIANwMoIAogCCABQQxqIgtqIAYgCUF/c2pBDGwiCBDBkYCAABogA0EQakEIaiIMIAVBiAFqIgogAWoiAUEIaigCADYCACADIAEpAgA3AxAgASAKIAtqIAgQwZGAgAAaIAUgBkF/aiIBOwGOAiADQdgAakEIaiIGIAcoAgA2AgAgA0HsAGogDCgCADYCACADIAMpAxA3AmQgA0E4akEIaiIKIAYpAwA3AwAgA0E4akEQaiIGIANB2ABqQRBqKQMANwMAIAMgAykDKDcDOCADQRBqQRBqIg0gBikDADcDACAMIAopAwA3AwAgAyADKQM4NwMQAkAgAUH//wNxQQVPDQACQAJAAkAgBSgCACIGRQ0AIARBAWohCgJAIAVBjAJqLwEAIgcNAAJAIAYvAY4CDQAgA0E4akEUakEBNgIAIANB2ABqQRRqQQA2AgAgA0IBNwI8IANBiILAgAA2AjggA0GBgICAADYCLCADQYCAwIAANgJoIANCATcCXCADQaSCwIAANgJYIAMgA0EoajYCSCADIANB2ABqNgIoIANBOGpBrILAgAAQtpCAgAAACwJAIAFB//8DcSAGQZQCaigCACIBLwGOAmpBAWpBDEkNACADIAE2AnAgAyAENgJsIAMgBTYCaCADIAQ2AmQgA0EANgJgIAMgBjYCXCADIAo2AlggA0HYAGpBARCXgICAAAwCCyADIAE2AnAgAyAENgJsIAMgBTYCaCADIAQ2AmQgA0EANgJgIAMgBjYCXCADIAo2AlggA0EoaiADQdgAakEAIAkQm4CAgAAMAwsCQCABQf//A3EgBiAHQX9qIgFBAnRqQZACaigCACIHLwGOAmpBAWpBDEkNACADIAU2AnAgAyAENgJsIAMgBzYCaCADIAQ2AmQgAyABNgJgIAMgBjYCXCADIAo2AlggA0HYAGpBARCWgICAACADIAlBAWo2AjAMAgsgAyAFNgJwIAMgBDYCbCADIAc2AmggAyAENgJkIAMgATYCYCADIAY2AlwgAyAKNgJYIANBKGogA0HYAGpBASAJEJuAgIAADAILIAMgCTYCMAsgAyAFNgIsIAMgBDYCKAsgAygCMCEJIAMoAighBCADKAIsIgUoAgAiAUUNACAEQQFqIQYDQCABLwGOAiIHQQRLDQECQCABKAIAIgpFDQAgBkEBaiEIAkAgAUGMAmovAQAiCw0AAkAgCi8BjgINACADQThqQRRqQQE2AgAgA0HYAGpBFGpBADYCACADQgE3AjwgA0GIgsCAADYCOCADQYGAgIAANgJ8IANBgIDAgAA2AmggA0IBNwJcIANBpILAgAA2AlggAyADQfgAajYCSCADIANB2ABqNgJ4IANBOGpBrILAgAAQtpCAgAAACyADIApBlAJqKAIAIgs2AlAgAyAGNgJMIAMgATYCSCADIAY2AkQgA0EANgJAIAMgCjYCPCADIAg2AjgCQCAHIAsvAY4CakEBakEMSQ0AIANBOGpBBSAHaxCXgICAAEEAIQFBAA0DDAQLIANB2ABqQRhqIANBOGpBGGooAgA2AgAgA0HYAGpBEGogA0E4akEQaikDADcDACADQdgAakEIaiADQThqQQhqKQMANwMAIAMgAykDODcDWCADIANB2ABqEJqAgIAAIAMoAgAhBiADKAIEIgENAgwDCyAKIAtBf2oiDkECdGpBkAJqKAIAIQsgAyABNgJQIAMgBjYCTCADIAs2AkggAyAGNgJEIAMgDjYCQCADIAo2AjwgAyAINgI4AkAgByALLwGOAmpBAWpBDEkNACADQThqQQUgB2sQloCAgABBACEBQQANAgwDCyADQdgAakEYaiADQThqQRhqKAIANgIAIANB2ABqQRBqIANBOGpBEGopAwA3AwAgA0HYAGpBCGogA0E4akEIaikDADcDACADIAMpAzg3A1ggA0EIaiADQdgAahCagICAACADKAIIIQYgAygCDCIBDQEMAgsLIAcNACACQQE6AAALIAAgAykDEDcCACAAIAQ2AhggAEEgaiAJNgIAIABBHGogBTYCACAAQRBqIA0pAwA3AgAgAEEIaiAMKQMANwIAIANBgAFqJICAgIAAC94GAgd/AX4jgICAgABB0ABrIgMkgICAgAAgASgCCCEEIAEoAgQhBQJAAkAgASgCACIGDQAgAyAENgIgIAMgBTYCHCADQQA2AhggACADQRhqIAIQoYCAgAAMAQsgBSAEQQJ0akGQAmooAgAhAQJAIAZBf2oiBEUNACAGQX5qIQUCQCAEQQNxIgZFDQADQCAEQX9qIQQgASABLwGOAkECdGpBkAJqKAIAIQEgBkF/aiIGDQALCyAFQQNJDQADQCABIAEvAY4CQQJ0akGQAmooAgAiASABLwGOAkECdGpBkAJqKAIAIgEgAS8BjgJBAnRqQZACaigCACIBIAEvAY4CQQJ0akGQAmooAgAhASAEQXxqIgQNAAsLIAMgAS8BjgJBf2o2AgggAyABNgIEIANBADYCACADQRhqIAMgAhChgICAACADQRBqIANBGGpBEGopAwA3AwAgA0EIaiIFIANBGGpBCGoiBykDADcDACADIAMpAxg3AwAgAygCMCEGAkACQCADQThqKAIAIgIgA0E0aigCACIELwGOAk8NACAEIQEMAQsDQAJAIAQoAgAiAQ0AIAQhAQwCCyAGQQFqIQYgBEGMAmohAiABIQQgAi8BACICIAEvAY4CTw0ACwsgA0HAAGpBCGoiCCADQRRqKAIANgIAIAMgAykCDDcDQCAHIAEgAkEMbGoiBEEMaiIJKAIANgIAIAMgBEEEaiIHKQIANwMYIAMpAwAhCiAJIAUoAgA2AgAgByAKNwIAIANBGGpBFGogBEGQAWoiBSgCADYCACADIARBiAFqIgQpAgA3AiQgBSAIKAIANgIAIAQgAykDQDcCACACQQFqIQICQCAGRQ0AIAEgAkECdGpBkAJqKAIAIQFBACECIAZBf2oiBEUNACAGQX5qIQUCQCAEQQdxIgZFDQADQCAEQX9qIQQgASgCkAIhASAGQX9qIgYNAAsLIAVBB0kNAANAIAEoApACKAKQAigCkAIoApACKAKQAigCkAIoApACKAKQAiEBIARBeGoiBA0ACwsgACADKQMYNwIAIABBADYCGCAAQSBqIAI2AgAgAEEcaiABNgIAIABBEGogA0EYakEQaikDADcCACAAQQhqIANBGGpBCGopAwA3AgALIANB0ABqJICAgIAAC+UGAgp/A34jgICAgABB0ABrIgMkgICAgAAgASgCCCEEIAEoAgQhBQJAAkAgASgCACIGDQAgAyAENgIoIAMgBTYCJCADQQA2AiAgACADQSBqIAIQoICAgAAMAQsgBSAEQQJ0akHoAmooAgAhAQJAIAZBf2oiBEUNACAGQX5qIQUCQCAEQQNxIgZFDQADQCAEQX9qIQQgASABLwEGQQJ0akHoAmooAgAhASAGQX9qIgYNAAsLIAVBA0kNAANAIAEgAS8BBkECdGpB6AJqKAIAIgEgAS8BBkECdGpB6AJqKAIAIgEgAS8BBkECdGpB6AJqKAIAIgEgAS8BBkECdGpB6AJqKAIAIQEgBEF8aiIEDQALCyADIAEvAQZBf2o2AgggAyABNgIEIANBADYCACADQSBqIAMgAhCggICAACADQRhqIgUgA0EgakEYaiIHKQMANwMAIANBEGoiCCADQSBqQRBqIgkpAwA3AwAgA0EIaiIKIANBIGpBCGoiCykDADcDACADIAMpAyA3AwAgAygCQCEGAkACQCADQcgAaigCACICIANBxABqKAIAIgQvAQZPDQAgBCEBDAELA0ACQCAEKAIAIgENACAEIQEMAgsgBkEBaiEGIARBBGohAiABIQQgAi8BACICIAEvAQZPDQALCyAHIAEgAkEFdGoiBEEgaiIMKQAANwMAIAkgBEEYaiIHKQAANwMAIAsgBEEQaiIJKQAANwMAIAMgBEEIaiIEKQAANwMgIAopAwAhDSAIKQMAIQ4gBSkDACEPIAQgAykDADcAACAMIA83AAAgByAONwAAIAkgDTcAACACQQFqIQICQCAGRQ0AIAEgAkECdGpB6AJqKAIAIQFBACECIAZBf2oiBEUNACAGQX5qIQUCQCAEQQdxIgZFDQADQCAEQX9qIQQgASgC6AIhASAGQX9qIgYNAAsLIAVBB0kNAANAIAEoAugCKALoAigC6AIoAugCKALoAigC6AIo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BDYCGCADIAFBLGw2AhQgAyAAKAIANgIQDAELIANBADYCGAsgAyAEIAUgA0EQahCmgICAACADKAIEIQECQCADKAIADQAgACABNgIAIABBBGogAjYCAAwCCyADQQhqKAIAIgBBgYCAgHhGDQEgAEUNACABIAAQqJCAgAAACxCpkICAAAALIANBIGokgICAgAAL9gEBA38jgICAgABBIGsiAySAgICAAAJAAkAgASACaiICIAFJDQAgAEEEaigCACIBQQF0IgQgAiAEIAJLGyICQQQgAkEESxsiAkECdCEEIAJBgICAgAJJQQJ0IQUCQAJAIAFFDQAgA0EENgIYIAMgAUECdDYCFCADIAAoAgA2AhAMAQsgA0EANgIYCyADIAQgBSADQRBqEKaAgIAAIAMoAgQhAQJAIAMoAgANACAAIAE2AgAgAEEEaiACNgIADAILIANBCGooAgAiAEGBgICAeEYNASAARQ0AIAEgABCokICAAAALEKmQgIAAAAsgA0EgaiSAgICAAAv1AQEDfyOAgICAAEEgayIDJICAgIAAAkACQCABIAJqIgIgAUkNACAAQQRqKAIAIgFBAXQiBCACIAQgAksbIgJBBCACQQRLGyICQTBsIQQgAkGr1aoVSUEDdCEFAkACQCABRQ0AIANBCDYCGCADIAFBMGw2AhQgAyAAKAIANgIQDAELIANBADYCGAsgAyAEIAUgA0EQahCmgICAACADKAIEIQECQCADKAIADQAgACABNgIAIABBBGogAjYCAAwCCyADQQhqKAIAIgBBgYCAgHhGDQEgAEUNACABIAAQqJCAgAAACxCpkICAAAALIANBIGokgICAgAAL8gEBA38jgICAgABBIGsiAySAgICAAAJAAkAgASACaiICIAFJDQAgAEEEaigCACIBQQF0IgQgAiAEIAJLGyICQQQgAkEESxsiAkEFdCEEIAJBgICAIEkhBQJAAkAgAUUNACADQQE2AhggAyABQQV0NgIUIAMgACgCADYCEAwBCyADQQA2AhgLIAMgBCAFIANBEGoQpoCAgAAgAygCBCEBAkAgAygCAA0AIAAgATYCACAAQQRqIAI2AgAMAgsgA0EIaigCACIAQYGAgIB4Rg0BIABFDQAgASAAEKiQgIAAAAsQqZCAgAAACyADQSBqJICAgIAAC+gBAQJ/I4CAgIAAQSBrIgMkgICAgAACQAJAIAEgAmoiAiABSQ0AIABBBGooAgAiAUEBdCIEIAIgBCACSxsiAkEIIAJBCEsbIgJBf3NBH3YhBAJAAkAgAUUNACADQQE2AhggAyABNgIUIAMgACgCADYCEAwBCyADQQA2AhgLIAMgAiAEIANBEGoQpoCAgAAgAygCBCEBAkAgAygCAA0AIAAgATYCACAAQQRqIAI2AgAMAgsgA0EIaigCACIAQYGAgIB4Rg0BIABFDQAgASAAEKiQgIAAAAsQqZCAgAAACyADQSBqJICAgIAAC/UBAQN/I4CAgIAAQSBrIgMkgICAgAACQAJAIAEgAmoiAiABSQ0AIABBBGooAgAiAUEBdCIEIAIgBCACSxsiAkEEIAJBBEsbIgJBKGwhBCACQbTmzBlJQQN0IQUCQAJAIAFFDQAgA0EINgIYIAMgAUEobDYCFCADIAAoAgA2AhAMAQsgA0EANgIYCyADIAQgBSADQRBqEKaAgIAAIAMoAgQhAQJAIAMoAgANACAAIAE2AgAgAEEEaiACNgIADAILIANBCGooAgAiAEGBgICAeEYNASAARQ0AIAEgABCokICAAAALEKmQgIAAAAsgA0EgaiSAgICAAAv1AQEDfyOAgICAAEEgayIDJICAgIAAAkACQCABIAJqIgIgAUkNACAAQQRqKAIAIgFBAXQiBCACIAQgAksbIgJBBCACQQRLGyICQShsIQQgAkG05swZSUECdCEFAkACQCABRQ0AIANBBDYCGCADIAFBKGw2AhQgAyAAKAIANgIQDAELIANBADYCGAsgAyAEIAUgA0EQahCmgICAACADKAIEIQECQCADKAIADQAgACABNgIAIABBBGogAjYCAAwCCyADQQhqKAIAIgBBgYCAgHhGDQEgAEUNACABIAAQqJCAgAAACxCpkICAAAALIANBIGokgICAgAALJgEBfwJAIABBBGooAgAiAUUNACAAKAIAIAFBBXRBARC3hYCAAAsLIwEBfwJAIABBBGooAgAiAUUNACAAKAIAIAFBARC3hYCAAAsLJgEBfwJAIABBBGooAgAiAUUNACAAKAIAIAFBA3RBCBC3hYCAAAsLkgMCA38BfiOAgICAAEEgayIFJICAgIAAIAEoAgAiBigCCCEHAkAgAS0ABA0AAkAgByAGKAIERw0AIAYgBxCpgICAACAGKAIIIQcL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ETYCOCACIAs3AxggAiAHNwMQIAJBsAFqIAJBEGogAhCogYCAAAJAAkAgAigCsAENACACQQQ2AlBBASEBDAELIAJB0ABqIAIoArQBIAJBuAFqKAIAEOWMgIAAIAIoAlBBBEYhAQsCQCACKAIsIg5FDQAgAigCKCAOQQEQt4WAgAALAkAgAigCTCIORQ0AIA5BGGwhBSACKAJEQQhqIQ4DQAJAIA5BBGooAgAiEEUNACAOKAIAIBBBARC3hYCAAAsgDkEYaiEOIAVBaGoiBQ0ACwsCQCACKAJIIg5FDQAgAigCRCAOQRhsQQgQt4WAgAALAkACQCABRQ0AIAAgAikDADcCBCAAQQQ2AgAgAEEMaiACQQhqKAIANgIADAELIAIoAgQhDiACKAIAIQUgACACKQNQNwIAIABBEGogAkHQAGpBEGooAgA2AgAgAEEIaiACQdAAakEIaikDADcCACAORQ0AIAUgDkEBELeFgIAACyACQdABaiSAgICAAA8LQSBBARCokICAAAALIBMgFBCokICAAAALIA4gEBCokICAAAALQSBBARCokICAAAALEKmQgIAAAAsgCiASEKiQgIAAAAu1CgMCfwF+An8jgICAgABBMGsiAySAgICAACADQSBqIAJBiIrAgABBCEEEEP2GgIAAAkACQAJAIAMoAiANACADIAMoAiQiAjYCCCACKAIIIQQgA0EgakEIai0AAA0BAkAgBCACKAIERw0AIAIgBBCpgICAACACKAIIIQQLIAIoAgAgBGpBLDoAACACIAIoAghBAWoiBDYCCAwBCyAAIAMpAiQ3AgQgAEEBNgIAIABBDGogA0EgakEMaigCADYCAAwBCyADQQA6AAwCQCAEIAIoAgRHDQAgAiAEEKmAgIAAIAIoAgghBAsgAigCACAEakEiOgAAIAIgAigCCEEBaiIENgIIAkAgAigCBCAEa0EHSw0AIAIgBEEIELqAgIAAIAIoAgghBAsgAigCACAEakLtys2bl+zZsvMANwAAIAIgBEEIaiIENgIIAkAgAigCBCAEa0EBSw0AIAIgBEECELqAgIAAIAIoAgghBAsgAigCACAEakGi9AA7AAAgAiAEQQJqNgIIIANBIGogAiABELuDgIAAAkACQAJAAkAgAygCIA0AIANBIGogA0EIakGQisCAAEEKIAFBDGoQx4CAgAAgAygCIA0CIAMoAggiAigCCCEEIAMtAAxFDQEMAwsgA0EYaiADQSBqQQxqKAIAIgI2AgAgAyADKQIkIgU3AxAgAEEMaiACNgIAIAAgBTcCBCAAQQE2AgAMAwsCQCAEIAIoAgRHDQAgAiAEEKmAgIAAIAIoAgghBAsgAigCACAEakEsOgAAIAIgAigCCEEBaiIENgIIDAELIAAgAykCJDcCBCAAQQE2AgAgAEEMaiADQSBqQQxqKAIANgIADAELIANBADoADAJAIAQgAigCBEcNACACIAQQqYCAgAAgAigCCCEECyACKAIAIARqQSI6AAAgAiACKAIIQQFqIgQ2AggCQCACKAIEIARrQQVLDQAgAiAEQQYQuoCAgAAgAigCCCEECyABQRhqIQYgAigCACAEaiIHQQAoAJqKwIAANgAAIAdBBGpBAC8AnorAgAA7AAAgAiAEQQZqIgQ2AggCQCACKAIEIARrQQFLDQAgAiAEQQIQuoCAgAAgAigCCCEECyACKAIAIARqQaL0ADsAACACIARBAmo2AgggA0EgaiACIAYQvoOAgAACQCADKAIgDQACQCACKAIIIgQgAigCBEcNACACIAQQqYCAgAAgAigCCCEECyACKAIAIARqQSw6AAAgAiACKAIIQQFqIgQ2AgggA0EAOgAMAkAgBCACKAIERw0AIAIgBBCpgICAACACKAIIIQQLIAIoAgAgBGpBIjoAACACIAIoAghBAWoiBDYCCAJAIAIoAgQgBGtBA0sNACACIARBBBC6gICAACACKAIIIQQLIAFBJGohASACKAIAIARqQeTC0YsGNgAAIAIgBEEEaiIENgIIAkAgAigCBCAEa0EBSw0AIAIgBEECELqAgIAAIAIoAgghBAsgAigCACAEakGi9AA7AAAgAiAEQQJqNgIIAkACQCABKAIADQAgA0EgaiACEPqGgIAADAELIANBIGogAiABEMaDgIAACwJAIAMoAiANACAAIAJBABCTh4CAAAwCCyADQRhqIANBIGpBDGooAgAiAjYCACADIAMpAiQiBTcDECAAQQxqIAI2AgAgACAFNwIEIABBATYCAAwBCyADQRhqIANBIGpBDGooAgAiAjYCACADIAMpAiQiBTcDECAAQQxqIAI2AgAgACAFNwIEIABBATYCAAsgA0EwaiSAgICAAAuPAwIDfwF+I4CAgIAAQSBr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QQhqIiYgFCkDADcAACARIAUpA/gBNwAAAkACQCAAKAIEIidFDQAgE0EgaiETIAAoAgAhKANAICdBXGohKSAnQcADaiEEICcvAb4DIipBBXQhA0F/ISsCQANAAkAgAw0AICohKwwCCyARIARBIBC6kYCAACEUICtBAWohKyApQShqISkgA0FgaiEDIARBIGohBEF/IBRBAEcgFEEASBsiFEEBRg0ACyAUQf8BcUUNAwsgKEUNASAoQX9qISggJyArQQJ0akGgBmooAgAhJwwACwtBqJDAgABBN0GskcCAABDLkICAAAALAkACQCApQQxqIgMoAgAiBA0AQQAhBAwBCyALIARBBXQgKUEEaigCAGpBYGoQw46AgABBASEECyAFIAQ6AJgCICkoAgAiFCACSQ0FIAMoAgAiKiAUIAJrIgRJDQIgAyAENgIAAkACQAJAIBJB/wFxQQJHDQAgKUEEaigCACEDIBAgBSkDmAI3AAAgEEEgaiAFQZgCakEgai0AADoAACAQQRhqIAVBmAJqQRhqKQMANwAAIBBBEGogBUGYAmpBEGopAwA3AAAgEEEIaiAFQZgCakEIaikDADcAACADICpBBXQiF2ogAyAEQQV0aiIoayEZQQAhGEEBISdBACErAkAgKiAERg0AIBlB4f///wdPDQcgGUEBELaFgIAAIidFDQggCSAXaiAUQQV0ayEXQQAhA0EAISsDQCAoIANqIgQpAAAhLCAEQQhqKQAAIS0gBEEQaikAACEuICcgA2oiFEEYaiAEQRhqKQAANwAAIBRBEGogLjcAACAUQQhqIC03AAAgFCAsNwAAICtBAWohKyAXIANBIGoiA0cNAAsLIAVBwAJqEJKOgIAAIA4gBSkDwAI3AgAgGiAFQcACakEIaiIDKAIANgIAIAVBADYCoAEgBUIBNwOYASAFICs2ApQBIAUgGUEFdjYCkAEgBSAnNgKMASAFIAI2AogBIAVBwAJqQRhqICQpAAA3AwAgBUHAAmpBEGogJSkAADcDACADICYpAAA3AwAgBSARKQAANwPAAgwBCyAFQcACakEYaiAkKQAANwMAIAVBwAJqQRBqICUpAAA3AwAgBUHAAmpBCGogJikAADcDACAFIBEpAAA3A8ACIBcgGEcNAQsgDyAYELSAgIAAIAUoApgBIRkgBSgCoAEhFwsgGSAXQQV0aiID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ADcDACAFIAUpA0g3A4gBIAMgBUGIAWoQxISAgAAaDA0LIBghESAqIRcgGCAZRw0ADAgLCwJAIAdFDQAgBiAHQQV0QQEQt4WAgAALQQEhAwwMCyAEICpB3N/AgAAQvJCAgAAACxCpkICAAAALIBlBARCokICAAAALIAVB1AJqQQA2AgAgBUGIkMCAADYC0AIgBUIBNwLEAiAFQZSRwIAANgLAAiAFQcACakGckcCAABC2kICAAAALIBcgA0GQksCAABC3kICAAAALIANB////P3EhBAJAIANBAWpBB3EiA0UNAANAIBFBIGohESADQX9qIgMNAAsLIARBB0kNAANAIBFBgAJqIhEgGUcNAAsLQbyRwIAAQdMAQaCSwIAAEMuQgIAAAAsgESATRg0AIBdBBXQhDSArKAIAISgDQCAoIBFBBXRqISkgDSEDIBkhBAJAAkADQCADRQ0BIANBYGohAyAEIClBIBC6kYCAACEUIARBIGohBCAUDQALICdBAWohJwwBCyAoIBEgJ2tBBXRqIgMgKSkAADcAACADQRhqIClBGGopAAA3AAAgA0EQaiApQRBqKQAANwAAIANBCGogKUEIaikAADcAAAsgEUEBaiIRIBNHDQALCyArQQhqIgMgEyAnazYCACAFQYgBaiAFQSBqEMOOgIAAAkAgAygCACIEICtBBGooAgBHDQAgKyAEELSAgIAAIAMoAgAhBAsgKygCACAEQQV0aiIEIAUpA4gBNwAAIARBGGogBUGIAWpBGGopAwA3AAAgBEEQaiAFQYgBakEQaikDADcAACAEQQhqIAVBiAFqQQhqKQMANwAAIAMgAygCAEEBajYCAAsgBUHAAmpBGGogBUEgakEYaikDADcDACAFQcACakEQaiAFQSBqQRBqKQMANwMAIAVBwAJqQQhqIAVBIGpBCGopAwA3AwAgBSAFKQMgNwPAAiAFQYgBakEIaiAFQfgAakEIaikDADcDACAFIAUpA3g3A4gBIAUgFzYCoAEgBSAYNgKcASAFIBk2ApgBIAVBrAFqIAVB6ABqQQhqKAIANgIAIAUgBSkDaDcCpAEgBUGYAmogACAFQcACaiAFQYgBahDGhICAACAFKAKcAkUNACAFQZgCakEEchC9gICAACAFQZgCakEQahC9gICAACAFQbQCahC/gICAACAFQZwBakEANgIAIAVBiJDAgAA2ApgBIAVCATcCjAEgBUGAkMCAADYCiAEgBUGIAWpBiJDAgAAQtpCAgAAACyAIDQAgB0UNACAGIAdBBXRBARC3hYCAAAsgBUGYAmpBGGoiEyABQRhqKQAANwMAIAVBmAJqQRBqIg0gAUEQaikAADcDACAFQZgCakEIaiIOIAFBCGopAAA3AwAgBSABKQAANwOYAgJAIAAoAgQiEUUNACAFQYgBakEBciEoA0AgACgCACEnA0AgEUFgaiErIBFBwANqIQQgES8BvgMiF0EFdCEDQX8hKQJAAkADQAJAIAMNACAXISkMAgsgBUGYAmogBEEgELqRgIAAIRQgKUEBaiEpICtBKGohKyADQWBqIQMgBEEgaiEEQX8gFEEARyAUQQBIGyIUQQFGDQALIBRB/wFxRQ0BCyAnRQ0DICdBf2ohJyARIClBAnRqQaAGaigCACERDAELCyArQRhqIAVBDGoQlI6AgAACQCArQQhqKAIAIgMNAEEAIQMMAwsgKCADQQV0ICsoAgBqQWBqEMOOgIAAIBMgKEEYaikAADcDACANIChBEGopAAA3AwAgDiAoQQhqKQAANwMAIAUgKCkAADcDmAIgACgCBCIRDQALC0GwksCAAEHAAEHwksCAABDLkICAAAALIAVB4AJqJICAgIAAIAML+g0IAX8Bfgd/An4EfwF+An8BfiOAgICAAEGAAmsiAySAgICAACADQYABaiABIAIQp4GAgAACQAJAAkAgAykDiAFCAlINACADQSBqIAMoAoABEOaMgIAADAELIANBEGpBOGogA0GAAWpBOGopAwA3AwAgA0EQakEwaiADQYABakEwaikDADcDACADQRBqQShqIANBgAFqQShqKQMANwMAIANBEGpBIGogA0GAAWpBIGopAwA3AwAgA0EQakEYaiADQYABakEYaikDADcDACADQRBqQRBqIANBgAFqQRBqKQMANwMAIANBEGpBCGogA0GAAWpBCGopAwAiBDcDACADIAMpA4ABNwMQIARCAlENACADKAJMIQUgAygCRCECIAMoAkAhBiADKAI8IQEgAygCOCEHIAMoAjQhCCADKAIwIQkgAygCLCEKIAMoAighCyADKQMgIQwgAykDECENIAMoAkghDiADQeUAOgCAASADIAIgBUEYbGo2AvQBIAMgAjYC8AEgAyAONgLsASADIAI2AugBIAMgA0GAAWo2AvgBIANB2AFqIANB6AFqEPmCgIAAAkACQCADLQCAASIFQeUARg0AIANBEGpBCGoiDyADQbkBaikAADcDACADQRBqQRBqIhAgA0HBAWopAAA3AwAgA0EQakEYaiIRIANByQFqKQAANwMAIAMgAykAsQE3AxAgAy0AsAEhDiADKQOoASESIAMoAqQBIQIgAygCoAEhASADKAKcASEGIAMoApgBIQggAykDkAEhDSADKQOIASEMIAMoAoQBIQcgAy8AgQEhCSADLQCDASETIAMgA0HUAWooAAA2AHsgAyADKADRATYCeCATQRB0IRMCQCADKALcASIURQ0AIAMoAtgBIBRBKGxBCBC3hYCAAAsgCSATciEJIANB2ABqQQhqIA8pAwA3AwAgA0HYAGpBEGogECkDADcDACADQdgAakEYaiARKQMANwMAIAMgAykDEDcDWCADIAMoAng2AlAgAyADKAB7NgBTQgIhBAwBCyADKQLcASESIAMoAtgBIQIgA0GAAWogBxCZiICAAAJAAkAgAy0AgAFFDQAgAygChAEhBwwBCwJAIAlBIEYNACADQYKAgIAANgLsASADIAk2AtgBIAMgA0HYAWo2AugBIANBATYClAEgA0IBNwKEASADQcSKwIAANgKAASADIANB6AFqNgKQASADQRBqIANBgAFqEK2QgIAAIANBEGoQxIKAgAAhBwwBCyADLQCBASEOIANBgAFqQRhqIgUgC0EYaikAADcDACADQYABakEQaiIHIAtBEGopAAA3AwAgA0GAAWpBCGoiCSALQQhqKQAANwMAIAMgCykAADcDgAECQAJAIARQRQ0AQgAhBAwBCyADIAGtIAwQpouAgABCASEEIAMpAwghDCADKQMAIRULIANB2ABqQRhqIAUpAwA3AwAgA0HYAGpBEGogBykDADcDACADQdgAakEIaiAJKQMANwMAIAMgAykDgAE3A1ggFaciBUEIdiEJIBVCIIinIQcMAQtB4wAhBUICIQQCQCASpyIBDQAgEiEMDAELIAIgAUEobEEIELeFgIAAIBIhDAsCQCAKRQ0AIAsgCkEBELeFgIAACwJAIARCAlENACAAIA46ADggACASNwMwIAAgAjYCLCAAIAE2AiggACAGNgIkIAAgCDYCICAAIA03AxggACAMNwMQIAAgBzYC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BGo2AkwgAkHkAGpBATYCACACQgI3AlQgAkH0oMCAADYCUCACQYeAgIAANgI0IAIgAkEwajYCYCACIAJBzABqNgIwIAIgAkHQAGoQ8pCAgABFDQ4MDQsgAiABQQRqNgJMIAJB5ABqQQE2AgAgAkIBNwJUIAJBsJ3AgAA2AlAgAkGJgICAADYCNCACIAJBMGo2AmAgAiACQcwAajYCMCACIAJB0ABqEPKQgIAARQ0NDAwLIAIgAUEEajYCTCACQeQAakEBNgIAIAJCATcCVCACQcCawIAANgJQIAJBioCAgAA2AjQgAiACQTBqNgJgIAIgAkHMAGo2AjAgAiACQdAAahDykICAAEUNDAwLCyACIAFBEGo2AiwgAiABQQhqNgJMIAJB5ABqQQI2AgAgAkE8akGLgICAADYCACACQgI3AlQgAkHMnMCAADYCUCACQYqAgIAANgI0IAIgAkEwajYCYCACIAJBzABqNgI4IAIgAkEsajYCMCACIAJB0ABqEPKQgIAARQ0LDAoLIAIgAUEQajYCLCACIAFBCGo2AkwgAkHkAGpBAjYCACACQTxqQYuAgIAANgIAIAJCAjcCVCACQYScwIAANgJQIAJBioCAgAA2AjQgAiACQTBqNgJgIAIgAkHMAGo2AjggAiACQSxqNgIwIAIgAkHQAGoQ8pCAgABFDQoMCQsgAiABQRBqNgIsIAIgAUEIajYCTCACQeQAakECNgIAIAJBPGpBi4CAgAA2AgAgAkICNwJUIAJB3JvAgAA2AlAgAkGKgICAADYCNCACIAJBMGo2AmAgAiACQcwAajYCOCACIAJBLGo2AjAgAiACQdAAahDykICAAEUNCQwICyACIAFBEGo2AiwgAiABQQhqNgJMIAJB5ABqQQI2AgAgAkE8akGLgICAADYCACACQgI3AlQgAkHomsCAADYCUCACQYqAgIAANgI0IAIgAkEwajYCYCACIAJBzABqNgI4IAIgAkEsajYCMCACIAJB0ABqEPKQgIAARQ0IDAcLIAIgAUEYajYCKCACIAFBCGo2AiwgAiABQRBqNgJMIAJBMGpBFGpBAzYCACACQdAAakEUakGMgICAADYCACACQdwAakGLgICAADYCACACQgM3AjQgAkGMncCAADYCMCACQYqAgIAANgJUIAIgAkHQAGo2AkAgAiACQcwAajYCYCACIAJB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I4CAgIAAQcAAayIDJICAgIAAIANBKGogARDggICAAAJAAkAgAygCKEUNACADKAIsIQQMAQsCQCADKQMwIgUgASgCAEEEaigCACIErVYNACAEIAWnayEGA0ACQCABKAIAQQRqKAIAIgcgBksNAEEAIQQgByAGRg0DQcyWwIAAQRkQ0IGAgAAhBAwDCyADQShqIAEQ4ICAgAACQAJAIAMoAihFDQAgAygCLCEEDAELIAMgAykDMCIFNwMAAkAgBUL/////D1YNACADIAVCB4MiCDcDCAJAIAhCBlQNACADQY+AgIAANgIkIAMgA0EIajYCICADQQE2AjwgA0IBNwIsIANBlJvAgAA2AiggAyADQSBqNgI4IANBEGogA0EoahCtkICAACADQRBqEM+BgIAAIQQMAgsCQCAFpyIEQQdLDQBBsJfAgABBFBDQgYCAACEEDAILIAAgBEEDdiAIpyABIAIQrYGAgAAiBEUNAgwECyADQY+AgIAANgIkIAMgAzYCICADQQE2AjwgA0IBNwIsIANBqJfAgAA2AiggAyADQSBqNgI4IANBEGogA0EoahCtkICAACADQRBqEM+BgIAAIQQLIARFDQAMAgsLQbyWwIAAQRAQ0IGAgAAhBAsgA0HAAGokgICAgAAgBAv0AwQCfwF+An8BfiOAgICAAEHAAGsiAySAgICAACADQShqIAEQ4ICAgAACQAJAIAMoAihFDQAgAygCLCEEDAELAkAgAykDMCIFIAEoAgBBBGooAgAiBK1WDQAgBCAFp2shBgNAAkAgASgCAEEEaigCACIHIAZLDQBBACEEIAcgBkYNA0HMlsCAAEEZENCBgIAAIQQMAwsgA0EoaiABEOCAgIAAAkACQCADKAIoRQ0AIAMoAiwhBAwBCyADIAMpAzAiBTcDAAJAIAVC/////w9WDQAgAyAFQgeDIgg3AwgCQCAIQgZUDQAgA0GPgICAADYCJCADIANBCGo2AiAgA0EBNgI8IANCATcCLCADQZSbwIAANgIoIAMgA0EgajYCOCADQRBqIANBKGoQrZCAgAAgA0EQahDPgYCAACEEDAILAkAgBaciBEEHSw0AQbCXwIAAQRQQ0IGAgAAhBAwCCyAAIARBA3YgCKcgASACEMeEgIAAIgRFDQIMBAsgA0GPgICAADYCJCADIAM2AiAgA0EBNgI8IANCATcCLCADQaiXwIAANgIoIAMgA0EgajYCOCADQRBqIANBKGoQrZCAgAAgA0EQahDPgYCAACEECyAERQ0ADAILC0G8lsCAAEEQENCBgIAAIQQLIANBwABqJICAgIAAIAQL9AMEAn8BfgJ/AX4jgICAgABBwABrIgMkgICAgAAgA0EoaiABEOCAgIAAAkACQCADKAIoRQ0AIAMoAiwhBAwBCwJAIAMpAzAiBSABKAIAQQRqKAIAIgStVg0AIAQgBadrIQYDQAJAIAEoAgBBBGooAgAiByAGSw0AQQAhBCAHIAZGDQNBzJbAgABBGRDQgYCAACEEDAMLIANBKGogARDggICAAAJAAkAgAygCKEUNACADKAIsIQQMAQsgAyADKQMwIgU3AwACQCAFQv////8PVg0AIAMgBUIHgyIINwMIAkAgCEIGVA0AIANBj4CAgAA2AiQgAyADQQhqNgIgIANBATYCPCADQgE3AiwgA0GUm8CAADYCKCADIANBIGo2AjggA0EQaiADQShqEK2QgIAAIANBEGoQz4GAgAAhBAwCCwJAIAWnIgRBB0sNAEGwl8CAAEEUENCBgIAAIQQMAgsgACAEQQN2IAinIAEgAhCzgYCAACIERQ0CDAQLIANBj4CAgAA2AiQgAyADNgIgIANBATYCPCADQgE3AiwgA0Gol8CAADYCKCADIANBIGo2AjggA0EQaiADQShqEK2QgIAAIANBEGoQz4GAgAAhBAsgBEUNAAwCCwtBvJbAgABBEBDQgYCAACEECyADQcAAaiSAgICAACAEC/QDBAJ/AX4CfwF+I4CAgIAAQcAAayIDJICAgIAAIANBKGogARDggICAAAJAAkAgAygCKEUNACADKAIsIQQMAQsCQCADKQMwIgUgASgCAEEEaigCACIErVYNACAEIAWnayEGA0ACQCABKAIAQQRqKAIAIgcgBksNAEEAIQQgByAGRg0DQcyWwIAAQRkQ0IGAgAAhBAwDCyADQShqIAEQ4ICAgAACQAJAIAMoAihFDQAgAygCLCEEDAELIAMgAykDMCIFNwMAAkAgBUL/////D1YNACADIAVCB4MiCDcDCAJAIAhCBlQNACADQY+AgIAANgIkIAMgA0EIajYCICADQQE2AjwgA0IBNwIsIANBlJvAgAA2AiggAyADQSBqNgI4IANBEGogA0EoahCtkICAACAD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BSSAgICAACABKAIAIgYoAgghBwJAIAEtAAQNAAJAIAcgBigCBEcNACAGIAcQqYCAgAAgBigCCCEHCyAGKAIAIAdqQSw6AAAgBiAGKAIIQQFqIgc2AggLIAFBADoABAJAIAcgBigCBEcNACAGIAcQqYCAgAAgBigCCCEHCyAGKAIAIAdqQSI6AAAgBiAGKAIIQQFqIgc2AggCQCAGKAIEIAdrIANPDQAgBiAHIAMQuoCAgAAgBigCCCEHCyAGKAIAIAdqIAIgAxC8kYCAABogBiAHIANqIgc2AggCQCAGKAIEIAdrQQFLDQAgBiAHQQIQuoCAgAAgBigCCCEHCyAGKAIAIAdqQaL0ADsAACAGIAdBAmo2AgggBUEQaiAGIAQtAAAQ9oaAgAACQAJAIAUoAhANACAAQQA2AgAMAQsgBUEIaiAFQRBqQQxqKAIAIgY2AgAgBSAFKQIUIgg3AwAgAEEMaiAGNgIAIAAgCDcCBCAAQQE2AgALIAVBIGokgICAgAALyQMBAX8jgICAgABBIGsiAySAgICAACADQRBqIAJB8aHAgABBBkEEEP2GgIAAAkACQAJAAkACQCADKAIQDQAgAyADKAIUNgIIIAMgA0EQakEIai0AADoADCADQRBqIANBCGpB96HAgABBAiABEMCAgIAAIAMoAhANASADQRBqIANBCGpB+aHAgABBAyABQQhqEPiAgIAAIAMoAhANAiADQRBqIANBCGpB/KHAgABBCSABQcgAahD7gICAACADKAIQDQMgA0EQaiADQQhqQYWiwIAAQQggAUHYAGoQ+oCAgAACQCADKAIQDQAgACADKAIIIAMtAAwQk4eAgAAMBQsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMBAsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMAwsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMAgsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMAQsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgALIANBIGokgICAgAALjQEAAkACQAJAAkAgAS0AAA4EAAECAwALIAAgAkGNosCAAEEHQQBBpaLAgABBBhD7hoCAAA8L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ACADKQIcNwIAIABBCGogA0EkaikCADcCACADKAIMIgJFDQIgAygCCCACQQV0QQEQt4WAgAAMAgsgACADKQMINwIEIABBFTYCACAAQQxqIANBEGooAgA2AgAMAQsgACADKQIcNwIAIABBCGogA0EkaikCADcCAAsgA0HAAGokgICAgAALlwUDBX8CfgF/I4CAgIAAQfAAayIDJICAgIAAIANBADYCICADQgg3AxggA0EQaiABEI2HgIAAAkACQAJAIAMtABBBAXFFDQAgAy0AESEEIANB5ABqIQUgA0HQAGpBCGohBgNAAkACQAJAAkAgBEH/AXEiB0EsRg0AIAdB3QBGDQEgAkH/AXFFDQJBACECDAMLIAEQhoeAgAAgA0EIaiABEI2HgIAAAkAgAy0ACEEBcUUNACADLQAJIQQMAwsgA0EENgI4DAULIAAgAykDGDcCBCAAQRU2AgAgAEEMaiADQSBqKAIANgIADAULIANBBzYCOAwDCwJAIARB/wFxQd0ARw0AIANBEzYCOAwDCyADQdAAaiABQcXBwIAAQQRB1MHAgABBAhCLhICAACAGKQMAIQggAykDUCEJAkAgAygCYCIHDQAgAyAJNwM4IAMgCDcDQAwDCyADQShqQQhqIgogBUEIaigCADYCACADIAUpAgA3AygCQCADKAIgIgQgAygCHEcNACADQRhqIAQQs4CAgAAgAygCICEECyADKAIYIARBBXRqIgQgBzYCECAEIAMpAyg3AhQgBEEcaiAKKAIANgIAIAQgCDcDCCAEIAk3AwAgAyADKAIgQQFqNgIgIAMgARCNh4CAACADLQABIQQgAy0AAEEBcQ0ACwsgA0EBNgI4CyAAIAMpAzg3AgAgAEEIaiADQThqQQhqKQMANwIAAkAgAygCICIERQ0AIARBBXQhASADKAIYQRBqIQQDQAJAIARBBGooAgAiBUUNACAEKAIAIAVBARC3hYCAAAsgBEEgaiEEIAFBYGoiAQ0ACwsgAygCHCIERQ0AIAMoAhggBEEFdEEIELeFgIAACyADQfAAaiSAgICAAAubBAMDfwF+AX8jgICAgABBwABrIgMkgICAgAAgA0EANgIoIANCBDcDICADQRhqIAEQjYeAgABBASEEAkACQAJAAkAgAy0AGEEBcQ0ADAELIAMtABkhBQNAAkACQAJAIAVB/wFxIgRBLEYNACAEQd0ARg0FIAJB/wFxRQ0BQQAhAgwCCyABEIaHgIAAIANBEGogARCNh4CAAAJAIAMtABBBAXENAEEEIQQMBAsgAy0AESEFDAELQQchBAwCCwJAIAVB/wFxQd0ARw0AQRMhBAwCCyADQTBqIAEQ/IOAgAAgAykDOCEGIAMoAjQhByADKAIwIgRBFUcNASAHRQ0CAkAgAygCKCIFIAMoAiRHDQAgA0EgaiAFEK+AgIAAIAMoAighBQsgAygCICAFQQxsaiIFIAY3AgQgBSAHNgIAQQEhBCADIAMoAihBAWo2AiggA0EIaiABEI2HgIAAIAMtAAkhBSADLQAIQQFxDQALCyAAIAY3AgggACAHNgIEIAAgBDYCAAJAIAMoAigiAUUNACADKAIgIQUgAUEMbCEBA0ACQCAFQQRqKAIAIgdFDQAgBSgCACAHQQEQt4WAgAALIAVBDGohBSABQXRqIgENAAsLIAMoAiQiBUUNASADKAIgIAVBDGxBBBC3hYCAAAwBCyAAIAMpAyA3AgQgAEEVNgIAIABBDGogA0EoaigCADYCAAsgA0HAAGokgICAgAALjw0DA38DfgJ/I4CAgIAAQfACayIDJICAgIAAIAMgAjYCxAEgAyABNgLAASADQeABahDOh4CAACADIANBwAFqNgLMASADQegBaiEEIANB+AFqIQUCQAJAAkACQAJAAkACQANAIAchBgJAIAMoAswBQQRqKAIADQAgA0HgAmogA0H0AWooAgA2AgAgAyADKQLsATcD2AIgAykDgAIhCCADKAL8ASEBIAMoAvgBIQUMAgsgA0HYAmogA0HMAWoQiIGAgAACQCADKALYAiICDQAgAyAGIAMpA+ACIgcgAhsiBjcD0AEgBkL/////D1YNAyADIAZCB4MiCDcD2AECQCAIQgZUDQAgA0GPgICAADYCvAIgAyADQdgBajYCuAIgA0EBNgLsAiADQgE3AtwCIANBwKnAgAA2AtgCIAMgA0G4Amo2AugCIANByAJqIANB2AJqEK2QgIAAIANByAJqEM+BgIAAIQIMBQsCQCAGpyICQQdLDQBBoKbAgABBFBDQgYCAACECDAULIAinIQECQAJAAkACQCACQQN2IgJBf2oOAgABAgsCQCADKQPgAUIAUg0AIANBCGoQiYiAgAAgA0IBNwPgASADIAMoAhA2AvABIAMgAykDCDcD6AELIAMgAToA2AEgA0ECOgDQAQJAAkAgCEICUQ0AIANB1AJqQaOAgIAANgIAIANBo4CAgAA2AswCIAMgA0HQAWo2AtACIAMgA0HYAWo2AsgCIANBAjYC7AIgA0IDNwLcAiADQYy2wIAANgLYAiADIANByAJqNgLoAiADQbgCaiADQdgCahCtkICAACADQbgCahDPgYCAACEBDAELQQAhAiAEIANBzAFqQeMAEOOAgIAAIgFFDQMLIAMgATYC2AIgA0HYAmpBsKrAgABBDkG+qsCAAEEJELaNgIAAIAMoAtgCIQIMBwtBACECIAEgBSADQcwBakHkABCGhYCAACIBRQ0BIAMgATYC2AIgA0HYAmpBsKrAgABBDkHHqsCAAEEEELaNgIAAIAMoAtgCIQIMBgsgASACIANBzAFqQeQAEOiAgIAAIQILIAJFDQEMBAsLIAMoAtwCIQIgA0HgAmogA0H0AWooAgA2AgAgAyADKQLsATcD2AIgAygC/AEhASADKAL4ASEFIAINAyADKQOAAiEICyADKALoASECIAMpA+ABIQYgA0HYAGpBCGoiBCADQdgCakEIaigCADYCACADIAMpA9gCNwNYIAZCAlENAyADQegAakEUaiIJIAQoAgA2AgAgA0HAAGpBEGoiBCAFNgIAIAMgCDcDiAEgA0EYakEIaiIFIANB6ABqQSRqKAIANgIAIAMgAykDWDcCdCADQcAAakEIaiIKIANB6ABqQRBqKQMANwMAIAMgAjYCcCADIAE2AoQBIAMgAykDcDcDQCADIAMpAoQBNwMYIANBKGpBEGoiAiAEKAIANgIAIANBKGpBCGoiASAKKQMANwMAIAMgAykDQDcDKCADIAY3A+ABIANB4AFqQRBqIAEpAwA3AwAgA0H4AWogAigCADYCACADIAMpAyg3A+gBIANB4AFqQSRqIAUoAgA2AgAgAyADKQMYNwL8ASADQegAaiADQeABahDbh4CAACADLQBoQeUARw0EIAAgAykCbDcCBCAAQRRqIAkpAgA3AgAgAEEMaiADQegAakEMaikCADcCACAAQQA2AgAMBQsgA0GPgICAADYCvAIgAyADQdABajYCuAIgA0EBNgLsAiADQgE3AtwCIANBmKbAgAA2AtgCIAMgA0G4Amo2AugCIANByAJqIANB2AJqEK2QgIAA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NgIIIANBEGoQ0IeAgAAgAyADQQhqNgIsIANBHGohBAJAAkACQAJAAkADQCAGIQUCQCADKAIsQQRqKAIADQAgAygCJCECIAMoAiAhASADKAIcIQcgAygCGCEIIAMoAhQhBCADKAIQIQkMAgsgA0HYAGogA0EsahCIgYCAAAJAIAMoAlgiAg0AIAMgBSADKQNgIgYgAhsiBTcDMCAFQv////8PVg0DIAMgBUIHgyIKNwM4AkAgCkIGVA0AIANBj4CAgAA2AlQgAyADQThqNgJQIANBATYCbCADQgE3AlwgA0HAqcCAADYCWCADIANB0ABqNgJoIANBwABqIANB2ABqEK2QgIAAIANBwABqEM+BgIAAIQIMBQsCQCAFpyICQQdLDQBBoKbAgABBFBDQgYCAACECDAULIAqnIQECQAJAAkACQCACQQN2IgJBf2oOAgABAgtBACECIAEgA0EQaiADQSxqQeQAEIaFgIAAIgFFDQIgAyABNgJYIANB2ABqQcaowIAAQQxB0qjAgABBFBC2jYCAACADKAJYIQIMBwtBACECIAEgBCADQSxqQeQAEIaFgIAAIgFFDQEgAyABNgJYIANB2ABqQcaowIAAQQxB5qjAgABBFRC2jYCAACADKAJYIQIMBgsgASACIANBLGpB5AAQ6ICAgAAhAgsgAkUNAQwECwsgAygCICEBIAMoAhwhByADKAIUIQQgAygCECEJIAMoAlwiAg0DIAMoAiQhAiADKAIYIQgLIAAgAjYCFCAAIAE2AhAgACAHNgIMIAAgCDYCCCAAIAQ2AgQgACAJNgIADAMLIANBj4CAgAA2AlQgAyADQTBqNgJQIANBATYCbCADQgE3AlwgA0GYpsCAADYCWCADIANB0ABqNgJoIANBwABqIANB2ABqEK2QgIAAIANBwABqEM+BgIAAIQILIAMoAiAhASADKAIcIQcgAygCFCEEIAMoAhAhCQsgAEEANgIAIAAgAjYCBAJAIARFDQAgCSAEQQEQt4WAgAALIAFFDQAgByABQQEQt4WAgAALIANB8ABqJICAgIAAC9sQAgJ/A34jgICAgABBsAFrIgMkgICAgAAgAyACNgIEIAMgATYCACADQQhqEM+HgIAAIAMgAzYCfCADQSxqIQQCQAJAAkACQAJAA0AgBiEFAkAgAygCfEEEaigCAA0AIANBwABqQTBqIANBCGpBMGopAwA3AwAgA0HAAGpBKGogA0EIakEoaikDADcDACADQcAAakEgaiADQQhqQSBqKQMANwMAIANBwABqQRhqIANBCGpBGGopAwA3AwAgA0HAAGpBEGogA0EIakEQaikDADcDACADQcAAakEIaiADQQhqQQhqKQMANwMAIAMgAykDCDcDQAwCCyADQcAAaiADQfwAahCIgYCAAAJAIAMoAkAiAg0AIAMgBSADKQNIIgYgAhsiBTcDgAEgBUL/////D1YNAyADIAVCB4MiBzcDiAECQCAHQgZUDQAgA0GPgICAADYClAEgAyADQYgBajYCkAEgA0EBNgJUIANCATcCRCADQcCpwIAANgJAIAMgA0GQAWo2AlAgA0GgAWogA0HAAGoQrZCAgAAgA0GgAWoQz4GAgAAhAgwFCwJAIAWnIgJBB0sNAEGgpsCAAEEUENCBgIAAIQIMBQsgB6chAQJAAkACQAJAAkACQCACQQN2IgJBf2oOBAABAgMECwJAIAMoAggNACADQQhqEMyHgIAACyADIAE6AIgBIANBAjoAgAECQAJAIAdCAlENACADQawBakGjgICAADYCACADQaOAgIAANgKkASADIANBgAFqNgKoASADIANBiAFqNgKgASADQQI2AlQgA0IDNwJEIANBjLbAgAA2AkAgAyADQaABajYCUCADQZABaiADQcAAahCtkICAACADQZABahDPgYCAACEBDAELQQAhAiADQQhqIANB/ABqQeMAEOKAgIAAIgFFDQULIAMgATYCQCADQcAAakH8psCAAEEGQZ6nwIAAQQ4Qto2AgAAgAygCQCECDAkLQQAhAiABIAQgA0H8AGpB5AAQ5IGAgAAiAUUNAyADIAE2AkAgA0HAAGpB/KbAgABBBkGNp8CAAEERELaNgIAAIAMoAkAhAgwICyADIAE6AIgBIANBADoAgAECQAJAIAdQDQAgA0GsAWpBo4CAgAA2AgAgA0GjgICAADYCpAEgAyADQYABajYCqAEgAyADQYgBajYCoAEgA0ECNgJUIANCAzcCRCADQeSmwIAANgJAIAMgA0GgAWo2AlAgA0GQAWogA0HAAGoQrZCAgAAgA0GQAWoQz4GAgAAhAQwBCyADQcAAaiADQfwAahCIgYCAAAJAIAMoAkANACADIAMpA0g+AjhBACECQQBFDQYMCQtBACECIAMoAkQiAUUNAwsgAyABNgJAIANBwABqQfymwIAAQQZBrKfAgABBBxC2jYCAACADKAJAIQIMBwsgAyABOgCIASADQQA6AIABAkACQCAHUA0AIANBrAFqQaOAgIAANgIAIANBo4CAgAA2AqQBIAMgA0GAAWo2AqgBIAMgA0GIAWo2AqABIANBAjYCVCADQgM3AkQgA0HkpsCAADYCQCADIANBoAFqNgJQIANBkAFqIANBwABqEK2QgIAAIANBkAFqEM+BgIAAIQEMAQsgA0HAAGogA0H8AGoQiIGAgAACQCADKAJADQAgAyADKQNIPgI8QQAhAkEARQ0FDAgLQQAhAiADKAJEIgFFDQILIAMgATYCQCADQcAAakH8psCAAEEGQYKnwIAAQQsQto2AgAAgAygCQCECDAYLIAEgAiADQfwAakHkABDogICAACECCyACRQ0BDAQLCyADKAJEIQIgA0HAAGpBMGogA0EIakEwaikDADcDACADQcAAakEoaiADQQhqQShqKQMANwMAIANBwABqQSBqIANBCGpBIGopAwA3AwAgA0HAAGpBGGogA0EIakEYaikDADcDACADQcAAakEQaiADQQhqQRBqKQMANwMAIANBwABqQQhqIANBCGpBCGopAwA3AwAgAyADKQMINwNAIAINAwsgACADKQNANwIAIABBMGogA0HAAGpBMGopAwA3AgAgAEEoaiADQcAAakEoaikDADcCACAAQSBqIANBwABqQSBqKQMANwIAIABBGGogA0HAAGpBGGopAwA3AgAgAEEQaiADQcAAakEQaikDADcCACAAQQhqIANBwABqQQhqKQMANwIADAMLIANBj4CAgAA2ApQBIAMgA0GAAWo2ApABIANBATYCVCADQgE3AkQgA0GYpsCAADYCQCADIANBkAFqNgJQIANBoAFqIANBwABqEK2QgIAAIANBoAFqEM+BgIAAIQILIANBwABqQTBqIANBCGpBMGopAwA3AwAgA0HAAGpBKGogA0EIakEoaikDADcDACADQcAAakEgaiADQQhqQSBqKQMANwMAIANBwABqQRhqIANBCGpBGGopAwA3AwAgA0HAAGpBEGogA0EIakEQaikDADcDACADQcAAakEIaiADQQhqQQhqKQMANwMAIAMgAykDCDcDQAsgAEEANgIkIAAgAjYCAAJAIAMoAkAiAkUNAAJAIAMoAkQiAUUNACACIAFBARC3hYCAAAsCQCADQdAAaigCACICRQ0AIAMoAkwgAkEBELeFgIAACyADKAJYIQQCQCADQeAAaigCACICRQ0AIAJBDGwhASAEIQIDQAJAIAJBBGooAgAiAEUNACACKAIAIABBARC3hYCAAAsgAkEMaiECIAFBdGoiAQ0ACwsgA0HcAGooAgAiAkUNACAEIAJBDGxBBBC3hYCAAAsgA0HkAGoQh4OAgAAgA0HoAGooAgAiAkUNACADKAJkIAJBMGxBBBC3hYCAAAsgA0GwAWokgICAgAALiRcEA38CfgJ/AX4jgICAgABBoAFrIgMkgICAgAAgAyACNgIMIAMgATYCCCADQRBqEMqHgIAAIAMgA0EIajYCZCADQShqIQQgA0HEAGohBQJAAkACQAJAAkADQCAHIQYCQCADKAJkQQRqKAIADQAgA0GIAWpBCGogA0EQakEIaikDADcDACADQYgBakEQaiADQRBqQRBqKQMANwMAIANB0ABqQQhqIANBOGopAwA3AwAgA0HQAGpBEGogA0HAAGooAgA2AgAgAyADKQMQNwOIASADIAMpAzA3A1AgAygCTCEBIAMoAkghBCADKAJEIQggAygCLCEFIAMoAighCQwCCyADQYgBaiADQeQAahCIgYCAAAJAIAMoAogBIgINACADIAYgAykDkAEiByACGyIGNwNoIAZC/////w9WDQMgAyAGQgeDIgo3A3ACQCAKQgZUDQAgA0GPgICAADYCfCADIANB8ABqNgJ4IANBATYCnAEgA0IBNwKMASADQcCpwIAANgKIASADIANB+ABqNgKYASADQdAAaiADQYgBahCtkICAACADQdAAahDPgYCAACECDAULAkAgBqciAkEHSw0AQaCmwIAAQRQQ0IGAgAAhAgwFCyAKpyEBAkACQAJAAkACQAJAAkACQAJAAkAgAkEDdiICQX9qDggAAQIDBAUGBwgLQQAhAiABIAQgA0HkAGpB5AAQhoWAgAAiAUUNCCADIAE2AogBIANBiAFqQcynwIAAQQtB+KfAgABBERC2jYCAACADKAKIASECDA0LIAMgAToAcCADQQA6AGgCQAJAIApQDQAgA0HcAGpBo4CAgAA2AgAgA0GjgICAADYCVCADIANB6ABqNgJYIAMgA0HwAGo2AlAgA0ECNgKcASADQgM3AowBIANB5KbAgAA2AogBIAMgA0HQAGo2ApgBIANB+ABqIANBiAFqEK2QgIAAIANB+ABqEM+BgIAAIQEMAQsgA0GIAWogA0HkAGoQiIGAgAACQCADKAKIAQ0AIAMgAykDkAE+AjRBACECQQBFDQsMDgtBACECIAMoAowBIgFFDQgLIAMgATYCiAEgA0GIAWpBzKfAgABBC0Hlp8CAAEETELaNgIAAIAMoAogBIQIMDAsgAyABOgBwIANBADoAaAJAAkAgClANACADQdwAakGjgICAADYCACADQaOAgIAANgJUIAMgA0HoAGo2AlggAyADQfAAajYCUCADQQI2ApwBIANCAzcCjAEgA0HkpsCAADYCiAEgAyADQdAAajYCmAEgA0H4AGogA0GIAWoQrZCAgAAgA0H4AGoQz4GAgAAhAQwBCyADQYgBaiADQeQAahCIgYCAAAJAIAMoAogBDQAgAyADKQOQATcDEEEAIQJBAEUNCgwNC0EAIQIgAygCjAEiAUUNBwsgAyABNgKIASADQYgBakHMp8CAAEELQdenwIAAQQ4Qto2AgAAgAygCiAEhAgwLCwJAIAMpAxhCAFINACADQgA3AyAgA0IBNwMYCyADIAE6AHAgA0EAOgBoAkACQCAKUA0AIANB3ABqQaOAgIAANgIAIANBo4CAgAA2AlQgAyADQegAajYCWCADIANB8ABqNgJQIANBAjYCnAEgA0IDNwKMASADQeSmwIAANgKIASADIANB0ABqNgKYASADQfgAaiADQYgBahCtkICAACADQfgAahDPgYCAACEBDAELIANBiAFqIANB5ABqEIiBgIAAAkAgAygCiAENACADIAMpA5ABNwMgQQAhAkEARQ0JDAwLQQAhAiADKAKMASIBRQ0GCyADIAE2AogBIANBiAFqQcynwIAAQQtBuajAgABBDRC2jYCAACADKAKIASECDAoLIAMgAToAcCADQQA6AGgCQAJAIApQDQAgA0HcAGpBo4CAgAA2AgAgA0GjgICAADYCVCADIANB6ABqNgJYIAMgA0HwAGo2AlAgA0ECNgKcASADQgM3AowBIANB5KbAgAA2AogBIAMgA0HQAGo2ApgBIANB+ABqIANBiAFqEK2QgIAAIANB+ABqEM+BgIAAIQEMAQsgA0GIAWogA0HkAGoQiIGAgAACQCADKAKIAQ0AIAMgAykDkAE+AjhBACECQQBFDQgMCwtBACECIAMoAowBIgFFDQULIAMgATYCiAEgA0GIAWpBzKfAgABBC0GJqMCAAEELELaNgIAAIAMoAogBIQIMCQsgAyABOgBwIANBADoAaAJAAkAgClANACADQdwAakGjgICAADYCACADQaOAgIAANgJUIAMgA0HoAGo2AlggAyADQfAAajYCUCADQQI2ApwBIANCAzcCjAEgA0HkpsCAADYCiAEgAyADQdAAajYCmAEgA0H4AGogA0GIAWoQrZCAgAAgA0H4AGoQz4GAgAAhAQwBCyADQYgBaiADQeQAahCIgYCAAAJAIAMoAogBDQAgAyADKQOQAT4CPEEAIQJBAEUNBwwKC0EAIQIgAygCjAEiAUUNBAsgAyABNgKIASADQYgBakHMp8CAAEELQaynwIAAQQcQto2AgAAgAygCiAEhAgwICyADIAE6AHAgA0EAOgBoAkACQCAKUA0AIANB3ABqQaOAgIAANgIAIANBo4CAgAA2AlQgAyADQegAajYCWCADIANB8ABqNgJQIANBAjYCnAEgA0IDNwKMASADQeSmwIAANgKIASADIANB0ABqNgKYASADQfgAaiADQYgBahCtkICAACADQfgAahDPgYCAACEBDAELIANBiAFqIANB5ABqEIiBgIAAAkAgAygCiAENACADIAMpA5ABPgJAQQAhAkEARQ0GDAkLQQAhAiADKAKMASIBRQ0DCyADIAE2AogBIANBiAFqQcynwIAAQQtBp6jAgABBEhC2jYCAACADKAKIASECDAcLQQAhAiABIAUgA0HkAGpB5AAQ44GAgAAiAUUNASADIAE2AogBIANBiAFqQcynwIAAQQtBlKjAgABBExC2jYCAACADKAKIASECDAYLIAEgAiADQeQAakHkABDogICAACECCyACRQ0BDAQLCyADKAKMASECIANBiAFqQQhqIANBEGpBCGopAwA3AwAgA0GIAWpBEGogA0EQakEQaikDADcDACADQdAAakEIaiADQThqKQMANwMAIANB0ABqQRBqIANBwABqKAIANgIAIAMgAykDEDcDiAEgAyADKQMwNwNQIAMoAiwhBSADKAIoIQkgAygCTCEBIAMoAkghBCADKAJEIQggAg0DCyAAIAMpA4gBNwMAIAAgBTYCHCAAIAk2AhggACADKQNQNwMgIAAgATYCPCAAIAQ2AjggACAINgI0IABBEGogA0GIAWpBEGopAwA3AwAgAEEIaiADQYgBakEIaikDADcDACAAQShqIANB0ABqQQhqKQMANwMAIABBMGogA0HQAGpBEGooAgA2AgAMAwsgA0GPgICAADYCfCADIANB6ABqNgJ4IANBATYCnAEgA0IBNwKMASADQZimwIAANgKIASADIANB+ABqNgKYASADQdAAaiADQYgBahCtkICAACADQdAAahDPgYCAACECCyADQYgBakEQaiADQRBqQRBqKQMANwMAIANBiAFqQQhqIANBEGpBCGopAwA3AwAgA0HQAGpBCGogA0E4aikDADcDACADQdAAakEQaiADQcAAaigCADYCACADIAMpAxA3A4gBIAMgAykDMDcDUCADKAJMIQEgAygCSCEEIAMoAkQhCCADKAIsIQUgAygCKCEJCyAAQgI3AwggACACNgIAAkAgBUUNACAJIAVBARC3hYCAAAsCQCABRQ0AIAFBGGwhASAIQQhqIQIDQAJAIAJBBGooAgAiAEUNACACKAIAIABBARC3hYCAAAsgAkEYaiECIAFBaGoiAQ0ACwsgBEUNACAIIARBGGxBCBC3hYCAAAsgA0GgAWokgICAgAAL0BEEBn8BfgR/AX4jgICAgABBEGsiAySAgICAACABQRhqIQRBACEFQQAhBgJAIAFBIGooAgBFDQAgBBC+jYCAACEGIAQQvo2AgAAgBkEBcmdBH3NBCWxByQBqQQZ2akEBaiEGCwJAIAEoAiQiB0UNACAHQQFyZ0Efc0EJbEHJAGpBBnZBAWohBQtBACEHQQAhCAJAIAEpAwAiCVANACAJQgGEeadBP3NBCWxByQBqQQZ2QQFqIQgLAkAgASkDCFANACABQRBqKQMAQgGEeadBP3NBCWxByQBqQQZ2QQFqIQcLQQAhCkEAIQsCQCABKAIoENGHgIAARg0AIAE0AihCAYR5p0E/c0EJbEHJAGpBBnZBAWohCwsCQCABKAIsIgxFDQAgDEEBcmdBH3NBCWxByQBqQQZ2QQFqIQoLQQAhDAJAIAEoAjAiDUUNACANQQFyZ0Efc0EJbEHJAGpBBnZBAWohDAsCQAJAAkACQCAFIAZqIAhqIAdqIAtqIApqIAxqIAFBPGooAgAiBWogAUE0aigCACIGIAYg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QEEIIAEgAhDlgYCAACABQRhqIQEgBUFoaiIFDQALCyAAIAY2AgAgA0EQaiSAgICAAAuOAwICfgN/IABBA3QiAK0hAwJAAkAgAEH/AEsNACACKAIIIQAMAQsgAigCCCEAIAMhBANAIASnQYB/ciEFAkACQCACKAIEIABGDQAgACEGDAELIAIgAEEBELqAgIAAIAIoAgghBgsgAiAGQQFqIgA2AgggAigCACAGaiAFOgAAIARC//8AViEGIARCB4giAyEEIAYNAAsLIAOnIQUCQCACKAIEIABHDQAgAiAAQQEQuoCAgAAgAigCCCEACyACIABBAWoiBjYCCCACKAIAIgcgAGogBToAAAJAAkAgASkDACIEQoABWg0AIAQhAwwBCwNAIASnQYB/ciEFAkACQCACKAIEIAZGDQAgBiEADAELIAIgBkEBELqAgIAAIAIoAgAhByACKAIIIQALIAIgAEEBaiIGNgIIIAcgAGogBToAACAEQv//AFYhACAEQgeIIgMhBCAADQALCwJAIAIoAgQgBkcNACACIAZBARC6gICAACACKAIIIQYLIAIgBkEBajYCCCACKAIAIAZqIAM8AAALpgIEAX4BfwF+AX8CQCAAQRBqKAIARQ0AQQEgAEEIaiABEIiFgIAACwJAIAApAwAiAlANAAJAIAEoAgQgASgCCCIDRw0AIAEgA0EBELqAgIAAIAEoAgghAwsgASADQQFqIgA2AgggASgCACADakEQOgAAAkACQCACQoABWg0AIAIhBAwBCwNAIAKnQYB/ciEFAkACQCABKAIEIABGDQAgACEDDAELIAEgAEEBELqAgIAAIAEoAgghAwsgASADQQFqIgA2AgggASgCACADaiAFOgAAIAJC//8AViEDIAJCB4giBCECIAMNAAsLIASnIQMCQCABKAIEIABHDQAgASAAQQEQuoCAgAAgASgCCCEACyABIABBAWo2AgggASgCACAAaiADOgAACwv3AgEBfyOAgICAAEHAAGsiBSSAgICAAAJAAkACQAJAAkACQCABQX9qDgIBAgALIAIgASADIAQQ6ICAgAAhAgwECyACIABBCGogAyAEEIaFgIAAIgJFDQEgBSACNgIoIAVBKGpBs6fAgABBCUHCp8CAAEEKELaNgIAAIAUoAighAgwDCyAFQQA6AAYgBSACOgAHAkAgAkH/AXFFDQAgBUEkakGjgICAADYCACAFQaOAgIAANgIcIAUgBUEGajYCICAFIAVBB2o2AhggBUECNgI8IAVCAzcCLCAFQeSmwIAANgIoIAUgBUEYajYCOCAFQQhqIAVBKGoQrZCAgAAgBUEIahDPgYCAACECDAILIAVBKGogAxCIgYCAAAJAIAUoAigNACAAIAUpAzA3AwAMAQsgBSgCLCICDQELQQAhAgwBCyAFIAI2AiggBUEoakGzp8CAAEEJQbynwIAAQQYQto2AgAAgBSgCKCECCyAFQcAAaiSAgICAACACC6YBAQF/I4CAgIAAQcAAayIDJICAgIAAIANBADYCCCADQgE3AwAgA0EQaiADQbikwIAAEOyQgIAAAkAgASADQRBqENiGgIAADQAgACACIAMoAgAgAygCCBD5hoCAAAJAIAMoAgQiAUUNACADKAIAIAFBARC3hYCAAAsgA0HAAGokgICAgAAPC0HQpMCAAEE3IANBOGpBiKXAgABB5KXAgAAQ2pCAgAAAC6QCAQF/I4CAgIAAQRBrIgUkgICAgAACQAJAAkACQAJAIAFBf2oOAwECAwALIAIgASADIAQQ6ICAgAAhAQwDCwJAIAIgACADIAQQhoWAgAAiAQ0AQQAhAQwDCyAFIAE2AgQgBUEEakH7qMCAAEENQbChwIAAQQUQto2AgAAgBSgCBCEBDAILAkAgAiAAQQxqIAMgBBCGhYCAACIBDQBBACEBDAILIAUgATYCCCAFQQhqQfuowIAAQQ1Bl6nAgABBDRC2jYCAACAFKAIIIQEMAQsCQCACIABBGGogAyAEEIWFgIAAIgENAEEAIQEMAQsgBSABNgIMIAVBDGpB+6jAgABBDUGIqcCAAEEPELaNgIAAIAUoAgwhAQsgBUEQaiSAgICAACABC4gIAQd/I4CAgIAAQfANayICJICAgIAAAkACQAJAAkACQAJAIAEoAgANACABKAIEIQMCQAJAAkACQCABQQhqKAIAIgQNAEEBIQEMAQsgBEEgRg0BIARBf0oiBUUNBSAEIAUQtoWAgAAiAUUNBgsgASADIAQQvJGAgAAhA0E0QQQQtoWAgAAiAQ0BQTRBBBCokICAAAALIAAgAy8AADsAASAAIAMoAAM2AAQgACADKQAHNwAIIABBA2ogA0ECai0AADoAACAAQRBqIANBD2opAAA3AAAgAEEYaiADQRdqKQAANwAAIABBIGogA0Efai0AADoAACAAQQA6AAAMAgsgAUIANwIQIAEgBDYCDCABIAQ2AgggASADNgIEIAFBCDoAACAAIAE2AgQgAUEYakIANwIAIAFBIGpCADcCACABQShqQgA3AgAgAEECOgAADAELIAJBCGogASgCBCABQQhqKAIAEOaCgIAAAkACQCACKALUAUEHRg0AIAJB4AFqIAJBCGpB2AEQvJGAgAAaIAJB0AhqIAJB4AFqEK+BgIAAIAIoAtAIIQQgAigCwA0iA0EIRw0BIABBAjoAACAAIAQ2AgQMAgsgAkH8CGpCADcCACACQfQIakIANwIAIAJB7AhqQgA3AgAgAkHQCGpBCGogAkEIakEIaikDADcDACACQdAIakEQaiIEIAJBCGpBEGooAgA2AgAgAkIANwLkCCACIAIpAwg3A9AIQTRBBBC2hYCAACIBRQ0EIAEgAikD0Ag3AgAgAUEwaiACQdAIakEwaigCADYCACABQShqIAJB0AhqQShqKQMANwIAIAFBIGogAkHQCGpBIGopAwA3AgAgAUEYaiACQdAIakEYaikDADcCACABQRBqIAQpAwA3AgAgAUEIaiACQdAIakEIaikDADcCACAAQQI6AAAgACABNgIEDAELIAJB5ANqIAJB0AhqQQRyQewEELyRgIAAGiACQdgDaiIFIAJB0AhqQZQFaikCADcDACACQdADaiIGIAJB0AhqQYwFaikCADcDACACQcgDaiIHIAJB0AhqQYQFaikCADcDACACQcADaiIIIAJB0AhqQfwEaikCADcDACACIAIpAsQNNwO4A0GcBUEEELaFgIAAIgFFDQQgASAENgIAIAFBBGogAkHkA2pB7AQQvJGAgAAaIAEgAzYC8AQgASACKQO4AzcC9AQgAUH8BGogCCkDADcCACABQYQFaiAHKQMANwIAIAFBjAVqIAYpAwA3AgAgAUGUBWogBSkDADcCACAAIAE2AgQgAEEBOgAACyACQfANaiSAgICAAA8LEKmQgIAAAAsgBCAFEKiQgIAAAAtBNEEEEKiQgIAAAAtBnAVBBBCokICAAAALqxQDAn8BfgJ/I4CAgIAAQeAOayICJICAgIAAAkACQAJAAkACQAJAAkACQAJAIAEoAswBIgNBfWpBBCADQQJLGw4FAAEEAwIACyAAQQI2AvAEDAcLIAJB2ARqQQhqIAFBCGooAgA2AgAgAiABKQIANwPYBCACQfgJaiACQdgEahDdiICAAAJAAkAgASgCDA0AIAIgASgCECIDIAFBFGooAgAiARDuiICAACACKQMAIQQgAkEYakEIaiADIAEQnY6AgAAgAiAENwMYDAELIAFBFGooAgAiA0EgRw0EIAJBJGogASgCECIBQQhqKQAANwIAIAJBGGpBFGogAUEQaikAADcCACACQTRqIAFBGGopAAA3AgAgAkEANgIYIAIgASkAADcCHAsgAkHYBGpBKGogAkH4CWpBKGopAwA3AwAgAkHYBGpBIGogAkH4CWpBIGopAwA3AwAgAkHYBGpBGGogAkH4CWpBGGopAwA3AwAgAkHYBGpBEGogAkH4CWpBEGopAwA3AwAgAkHYBGpBCGogAkH4CWpBCGopAwA3AwAgAkGQBWogAkEYakEIaikDADcDACACQZgFaiACQRhqQRBqKQMANwMAIAJBoAVqIAJBGGpBGGopAwA3AwAgAkGoBWogAkEYakEgaikDADcDACACIAIpA/gJNwPYBCACIAIpAxg3A4gFIAAgAkHYBGpB8AQQvJGAgABBAzYC8AQMBgsgAkECOgC0BCACQQI6AJAEIAJBAjoA7AMgAkECOgDIAyACQQI6AKQDIAJBAjoAgAMgAkECOgDcAiACQQI6ALgCIAJBAjoAlAIgAkECOgDwASACQQI6AMwBIAJBAjoAqAEgAkECOgCEASACQQI6AGAgAkECOgA8IAJBAjoAGEEAIQUgAkEANgLICSACQQA2AuAEIAIgAUHMAWoiBjYC3AQgAiABQQxqNgLYBCACIAJByAlqNgLoBCACIAJBGGo2AuQEIAIgAkG4Dmo2AvgJIAJB2ARqIAJB+AlqIAJByAlqEJSCgIAAGgJAIAIoAsgJIgMNACACQdgEakEIaiIDIAFBCGooAgA2AgAgAiABKQIANwPYBCACQcgJaiACQdgEahDdiICAACACQfgJaiACQRhqQcAEELyRgIAAGgJAIAEoAswBQQJGIgENAAJAAkBBACAGIAEbIgEoAgANACACQRBqIAEoAgQiBSABQQhqKAIAIgEQ7oiAgAAgAikDECEEIAJB2ARqQQhqIAUgARCdjoCAACACIAQ3A9gEDAELIAFBCGooAgAiBUEgRw0GIAJB5ARqIAEoAgQiAUEIaikAADcCACACQewEaiABQRBqKQAANwIAIAJB9ARqIAFBGGopAAA3AgAgAkEANgLYBCACIAEpAAA3AtwECyACQbgOakEgaiACQdgEakEgaikDADcDACACQbgOakEYaiACQdgEakEYaikDADcDACACQbgOakEQaiACQdgEakEQaikDADcDACACQbgOakEIaiACQdgEakEIaikDADcDACACIAIpA9gENwO4DkEBIQULIAJB2ARqQShqIAJByAlqQShqKQMANwMAIAJB2ARqQSBqIAJByAlqQSBqKQMANwMAIAJB2ARqQRhqIAJByAlqQRhqKQMANwMAIAJB2ARqQRBqIAJByAlqQRBqKQMANwMAIAMgAkHICWpBCGopAwA3AwAgAiACKQPICTcD2AQgAkGIBWogAkH4CWpBwAQQvJGAgAAaIABBlAVqIAJBuA5qQSBqKQMANwIAIABBjAVqIAJBuA5qQRhqKQMANwIAIABBhAVqIAJBuA5qQRBqKQMANwIAIABB/ARqIAJBuA5qQQhqKQMANwIAIAAgAikDuA43AvQEIAAgAkHYBGpB8AQQvJGAgAAgBTYC8AQMBgsgAEEINgLwBCAAIAM2AgAgAkEYahCdgYCAAAwFCyACQQI6AJQOIAJBAjoA8A0gAkECOgDMDSACQQI6AKgNIAJBAjoAhA0gAkECOgDgDCACQQI6ALwMIAJBAjoAmAwgAkECOgD0CyACQQI6ANALIAJBAjoArAsgAkECOgCICyACQQI6AOQKIAJBAjoAwAogAkECOgCcCiACQQI6APgJQQAhBSACQQA2AsgJIAJBADYC4AQgAiABNgLYBCACIAFBwAFqIgM2AtwEIAIgAkHICWo2AugEIAIgAkH4CWo2AuQEIAIgAkG4Dmo2AhggAkHYBGogAkEYaiACQcgJahCMgoCAABogAigCyAkiAUUNAyAAQQg2AvAEIAAgATYCACACQfgJahCdgYCAAAwECyACQfgJakEIaiABQQhqKAIANgIAIAIgASkCADcD+AkgAkHYBGogAkH4CWoQ3YiAgAAgAkH4CWogAUEMahCugYCAAAJAIAItAPgJIgFBAkYNACAAIAIvAPkJOwAxIAAgAikDgAo3AjggAEEzaiACLQD7CToAACAAQcAAaiACQfgJakEQaikDADcCACAAQcgAaiACQfgJakEYaikDADcCACAAQdAAaiACQfgJakEgaigCADYCACACKAL8CSEDIABBKGogAkHYBGpBKGopAwA3AgAgAEEgaiACQdgEakEgaikDADcCACAAQRhqIAJB2ARqQRhqKQMANwIAIABBEGogAkHYBGpBEGopAwA3AgAgAEEIaiACQdgEakEIaikDADcCACAAIAIpA9gENwIAIABBBDYC8AQgACADNgI0IAAgAToAMAwECyACKAL8CSEBIABBCDYC8AQgACABNgIAIAIoAtgEIgFBKUkNAyACKALcBCABQQEQt4WAgAAMAwtBICADQaCqwIAAEI6RgIAAAAtBICAFQaCqwIAAEI6RgIAAAAsgAkHYBGogAkH4CWpBwAQQvJGAgAAaAkACQCADKAIAQQJGIgENAAJAAkBBACADIAEbIgEoAgANACACQQhqIAEoAgQiAyABQQhqKAIAIgEQ7oiAgAAgAikDCCEEIAJBGGpBCGogAyABEJ2OgIAAIAIgBDcDGAwBCyABQQhqKAIAIgNBIEcNAiACQSRqIAEoAgQiAUEIaikAADcCACACQSxqIAFBEGopAAA3AgAgAkE0aiABQRhqKQAANwIAIAJBADYCGCACIAEpAAA3AhwLIAJByAlqQSBqIAJBGGpBIGopAwA3AwAgAkHICWpBGGogAkEYakEYaikDADcDACACQcgJakEQaiACQRhqQRBqKQMANwMAIAJByAlqQQhqIAJBGGpBCGopAwA3AwAgAiACKQMYNwPICUEBIQULIAAgAkHYBGpBwAQQvJGAgAAiAUHkBGogAkHoCWopAwA3AgAgAUHcBGogAkHgCWopAwA3AgAgAUHUBGogAkHYCWopAwA3AgAgAUHMBGogAkHQCWopAwA3AgAgASACKQPICTcCxAQgAUEFNgLwBCABIAU2AsAEDAELQSAgA0GgqsCAABCOkYCAAAALIAJB4A5qJICAgIAAC5UCAQF/I4CAgIAAQeAAayIDJICAgIAAIAMgAjYCBCADIAE2AgAgA0EIaiABIAIQpJGAgAACQAJAIAMtAAgNACAAIAMpAxA3AwggAEEANgIAIABBEGogA0EIakEQaikDADcDAAwBCyADIAMtAAk6ACcgA0HEAGpBpICAgAA2AgAgA0GNgICAADYCPCADIANBJ2o2AkAgAyADNgI4IANBAjYCXCADQgI3AkwgA0HgqsCA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IGsiAiSAgICAACACQRBqIAFB1LrBgABBEEHkusGAAEEBEIyEgIAAAkACQAJAAkAgAigCECIDQRVHDQAgAkEcaigCACEEIAJBGGooAgAhAyACKAIUIQUgAkEIaiABEI2HgIAAIAItAAhBAXFFDQEgAi0ACUH/AXFB/QBHDQIgARCGh4CAACAAQQxqIAQ2AgAgAEEIaiADNgIAIAAgBTYCBCAAQRU2AgAMAwsgAikCFCEGIAAgAigCHDYCDCAAIAY3AgQgACADNgIADAILIABBBDYCACADRQ0BIAUgA0EBELeFgIAADAELIABBCzYCACADRQ0AIAUgA0EBELeFgIAACyACQSBqJICAgIAAC40DAwV/AX4CfyOAgICAAEEwayICJICAgIAAIAJBCGogAUGQu8GAAEEWQbS7wYAAQQEQhoSAgAACQAJAAkACQCACKAIIDQAgAkEsaigCACEDIAJBKGooAgAhBCACQSRqKAIAIQUgAkEgaigCACEGIAJBGGopAwAhByACQRRqKAIAIQggAigCECEJIAIgARCNh4CAACACLQAAQQFxRQ0BIAItAAFB/wFxQf0ARw0CIAEQhoeAgAAgAEEkaiADNgIAIABBIGogBDYCACAAQRxqIAU2AgAgAEEYaiAGNgIAIABBEGogBzcDACAAQQxqIAg2AgAgACAJNgIIIABBADYCAAwDCyACKQIMIQcgAEEMaiACQQhqQQxqKQIANwIAIAAgBzcCBCAAQQE2AgAMAgsgAEKBgICAwAA3AwAgBCAIIAYbIgBFDQEgBSAJIAYbIABBARC3hYCAAAwBCyAAQoGAgICwATcDACAEIAggBhsiAEUNACAFIAkgBhsgAEEBELeFgIAACyACQTBqJICAgIAAC5EGAwJ/An4HfyOAgICAAEGQAWsiAiSAgICAACACQcgAaiABQZi5wYAAQRZB4LnBgABBBhCJhICAAAJAAkACQAJAIAIoAmgiA0UNACACQShqQRhqIAJByABqQRhqKQMAIgQ3AwAgAkEoakEQaiACQcgAakEQaikDACIFNwMAIAJBCGpBCGogAkHIAGpBCGopAwA3AwAgAkEIakEQaiAFNwMAIAJBCGpBGGogBDcDACACIAIpA0g3AwggAigCbCEGIAIoAnAhByACKAJ0IQggAigCeCEJIAIoAnwhCiACKAKAASELIAIoAoQB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BhsiAEUNACAFIAkgBhsgAEEBELeFgIAACyACQTBqJICAgIAAC40DAwV/AX4CfyOAgICAAEEwayICJICAgIAAIAJBCGogAUH1u8GAAEERQbS7wYAAQQEQhoSAgAACQAJAAkACQCACKAIIDQAgAkEsaigCACEDIAJBKGooAgAhBCACQSRqKAIAIQUgAkEgaigCACEGIAJBGGopAwAhByACQRRqKAIAIQggAigCECEJIAIgARCNh4CAACACLQAAQQFxRQ0BIAItAAFB/wFxQf0ARw0CIAEQhoeAgAAgAEEkaiADNgIAIABBIGogBDYCACAAQRxqIAU2AgAgAEEYaiAGNgIAIABBEGogBzcDACAAQQxqIAg2AgAgACAJNgIIIABBADYCAAwDCyACKQIMIQcgAEEMaiACQQhqQQxqKQIANwIAIAAgBzcCBCAAQQE2AgAMAgsgAEKBgICAwAA3AwAgBCAIIAYbIgBFDQEgBSAJIAYbIABBARC3hYCAAAwBCyAAQoGAgICwATcDACAEIAggBhsiAEUNACAFIAkgBhsgAEEBELeFgIAACyACQTBqJICAgIAAC4IGAwl/AX4GfyOAgICAAEGgAWsiAiSAgICAACACQcAAaiABQam8wYAAQSFBqL3BgABBBBCDhICAACACQTBqQQhqIgMgAkHAAGpBCGopAwA3AwAgAiACKQNANwMwAkACQAJAAkAgAigCUCIERQ0AIAJBCGpBCGogAkHsAGopAgA3AwAgAkEYaiACQfQAaigCADYCACACIAIpAmQ3AwggAigCYCEFIAIoAlwhBiACKAJYIQcgAigCVCEIIAIoAnghCSACKAJ8IQogAikDgAEhCyACKAKIASEMIAIoAowBIQ0gAigCkAEhDiACKAKUASEPIAIoApgBIRAgAigCnAEhESACQSBqQQhqIAMpAwA3AwAgAiACKQMwNwMgIAIgARCNh4CAACACLQAAQQFxRQ0BIAItAAFB/wFxQf0ARw0CIAEQhoeAgAAgACAFNgIgIAAgBjYCHCAAIAc2AhggACAINgIUIAAgBDYCECAAIBE2AlwgACAQNgJYIAAgDzYCVCAAIA42AlAgACANNgJMIAAgDDYCSCAAIAs3A0AgACAKNgI8IAAgCTYCOCAAQQhqIAJBIGpBCGopAwA3AwAgACACKQMgNwMAIAAgAikDCDcCJCAAQSxqIAJBCGpBCGopAwA3AgAgAEE0aiACQRhqKAIANgIADAMLIAAgAikDMDcCACAAQQA2AhAgAEEIaiADKQMANwIADAILIABBADYCECAAQQQ2AgACQCAIRQ0AIAQgCEEBELeFgIAACwJAIAVFDQAgBiAFQQEQt4WAgAALAkAgCkUNACAJIApBARC3hYCAAAsCQCANRQ0AIAwgDUEBELeFgIAACyAQRQ0BIA8gEEEBELeFgIAADAELIABBADYCECAAQQs2AgACQCAIRQ0AIAQgCEEBELeFgIAACwJAIAVFDQAgBiAFQQEQt4WAgAALAkAgCkUNACAJIApBARC3hYCAAAsCQCANRQ0AIAwgDUEBELeFgIAACyAQRQ0AIA8gEEEBELeFgIAACyACQaABaiSAgICAAAvbBAIIfwF+I4CAgIAAQZABayICJICAgIAAIAJByABqIAFBi7XBgABBD0GstcGAAEECEI2EgIAAIAJBOGpBCGoiAyACQcgAakEIaikDADcDACACIAIpA0g3AzgCQAJAAkACQCACKAJYIgRFDQAgAkEQakEIaiACQfQAaikCADcDACACQSBqIAJB/ABqKAIANgIAIAJBKGpBCGogAykDADcDACACIAIpAmw3AxAgAiACKQM4NwMoIAIoAmghBSACKAJkIQYgAigCYCEHIAIoAlwhCCACKAKAASEJIAIoAoQBIQMgAikDiAEhCiACQQhqIAEQjYeAgAAgAi0ACEEBcUUNASACLQAJQf8BcUH9AEcNAiABEIaHgIAAIAAgBTYCICAAIAY2AhwgACAHNgIYIAAgCDYCFCAAIAQ2AhAgACAKNwNAIAAgAzYCPCAAIAk2AjggAEEIaiACQShqQQhqKQMANwMAIAAgAikDKDcDACAAIAIpAxA3AiQgAEEsaiACQRBqQQhqKQMANwIAIABBNGogAkEgaigCADYCAAwDCyAAIAIpAzg3AgAgAEEANgIQIABBCGogAykDADcCAAwCCyAAQQA2AhAgAEEENgIAAkAgCEUNACAEIAhBARC3hYCAAAsCQCAFRQ0AIAYgBUEBELeFgIAACyADRQ0BIAkgA0EBELeFgIAADAELIABBADYCECAAQQs2AgACQCAIRQ0AIAQgCEEBELeFgIAACwJAIAVFDQAgBiAFQQEQt4WAgAALIANFDQAgCSADQQEQt4WAgAALIAJBkAFqJICAgIAAC/ACAQV/I4CAgIAAQdAAayICJICAgIAAIAJBMGogAUHS+cCAAEEGQdj5wIAAQQIQh4SAgAAgAkEgakEIaiIDIAJBMGpBCGopAwA3AwAgAiACKQMwNwMgAkACQAJAAkAgAigCQCIERQ0AIAJBEGpBCGogAykDADcDACACIAIpAyA3AxAgAigCTCEFIAIoAkghAyACKAJEIQYgAkEIaiABEI2HgIAAIAItAAhBAXFFDQEgAi0ACUH/AXFB/QBHDQIgARCGh4CAACAAIAU2AhwgACADNgIYIAAgBjYCFCAAIAQ2AhAgAEEIaiACQRBqQQhqKQMANwMAIAAgAikDEDcDAAwDCyAAIAIpAyA3AgAgAEEANgIQIABBCGogAykDADcCAAwCCyAAQQA2AhAgAEEENgIAIANFDQEgBiADQQEQt4WAgAAMAQsgAEEANgIQIABBCzYCACADRQ0AIAYgA0EBELeFgIAACyACQdAAaiSAgICAAAuPAwEBfyOAgICAAEHAAGsiBSSAgICAAAJAAkACQAJAAkACQCABQX9qDgIBAgALIAIgASADIAQQ6ICAgAAhAgwECyACIAAgAyAEEIaFgIAAIgJFDQEgBSACNgIoIAVBKGpBmKzAgABBHEHErMCAAEEKELaNgIAAIAUoAighAgwDCyAAQQxqIQECQCAAKAIMDQAgARDNh4CAAAsgBSACOgAHIAVBAjoABgJAIAJB/wFxQQJGDQAgBUEkakGjgICAADYCACAFQaOAgIAANgIcIAUgBUEGajYCICAFIAVBB2o2AhggBUECNgI8IAVCAzcCLCAFQYy2wIAANgIoIAUgBUEYajYCOCAFQQhqIAVBKGoQrZCAgAAgBUEIahDPgYCAACECDAILAkAgBA0AQaS2wIAAQRcQ0IGAgAAhAgwCCyABIAMgBEF/ahDkgICAACICDQELQQAhAgwBCyAFIAI2AiggBUEoakGYrMCAAEEcQbSswIAAQRAQto2AgAAgBSgCKCECCyAFQcAAaiSAgICAACACC5sDAgN/AX4jgICAgABB4ABrIgIkgICAgAAgAkEwaiABEPyDgIAAAkACQAJAAkAgAigCMCIBQRVHDQAgAkEwakEIaigCACEDIAJBMGpBDGooAgAhBCACKAI0IQEgAkEANgIIIAJCATcDACACQRBqIAEgBEGAAiACEJ2FgIAAIAItABBBA0YNASACIAIpAxA3AxggAkEANgIoIAJCATcDICACQTBqIAJBIGpBkNbAgAAQ7JCAgAAgAkEYaiACQTBqEKiMgIAARQ0CQajWwIAAQTcgAkHYAGpB4NbAgABBvNfAgAAQ2pCAgAAACyACKQI0IQUgACACKAI8NgIMIAAgBTcCBCAAIAE2AgAMAgsgACACKQMANwIEIABBFTYCACAAQQxqIAJBCGooAgA2AgAgA0UNASABIANBARC3hYCAAAwBCyAAIAIpAyA3AgQgAEEMaiACQShqKAIANgIAIABBFDYCAAJAIAIoAgQiAEUNACACKAIAIABBARC3hYCAAAsgA0UNACABIANBARC3hYCAAAsgAkHgAGokgICAgAALswEBAX8jgICAgABBIGsiBCSAgICAACAEQQA2AgggBEIBNwMAIAQgBBCujICAADYCDCAEQRBqQYACEK2MgIAAAkAgBEEQaiABIAIgBEEMahDGgoCAAA0AIAAgAyAEKAIAIAQoAggQ+YaAgAACQCAEKAIEIgJFDQAgBCgCACACQQEQt4WAgAALIARBIGokgICAgAAPC0GErMGAAEEiIARBGGpBqKzBgABBkK3BgAAQ2pCAgAAAC9AFAgN/An4jgICAgABBMGsiAiSAgICAACACQRhqIAEQyYiAgAACQAJAAkACQAJAAkACQAJAIAItABgNACACLQAZIgNBA3EiBEEDRg0BIAQOAwIEAwILIAJBCmogAkEYakEMaikCACIFNwEAIAIgAikCHCIGNwECIABBDGogBTcBACAAIAY3AQQgAEEBNgIADAYLAkAgA0EESQ0AIABBBGpBzqzAgABBIhDbjoCAACAAQQE2AgAMBgsgAkEANgIUIAJBGGogASACQRRqQQQQyIiAgAACQCACKAIYRQ0AIAJBCGogAkEYakEQaigCACIBNgIAIAIgAkEYakEIaikDACIFNwMAIAAgAigCHDYCBCAAQQhqIAU3AgAgAEEQaiABNgIAIABBATYCAAwGCyACKAIUIgFB/////wNLDQQgAEEEakHOrMCAAEEiENuOgIAAIABBATYCAAwFCyADQQJ2IQEMAwsgAkEANgIUIAIgAzoAFCACQRhqIAEgAkEUakEBckEDEMiIgIAAIAIoAhhFDQEgAkEIaiACQRhqQRBqKAIAIgE2AgAg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Sw0AIAIgCUECELqAgIAAIAIoAgAhByACKAIIIQkLIAcgCWogAzsAACAJQQJqIQkMAwsgA0H/////A0sNASADQQJ0QQJyIQMCQCACKAIEIAlrQQNLDQAgAiAJQQQQuoCAgAAgAigCACEHIAIoAgghCQsgByAJaiADNgAAIAlBBGohCQwCC0EgQQEQqJCAgAAACwJAIAIoAgQgCUcNACACIAlBARC6gICAACACKAIAIQcgAigCCCEJCyAHIAlqQQM6AAAgAiAJQQFqIgM2AgggASgCACEJAkAgAigCBCADa0EDSw0AIAIgA0EEELqAgIAAIAIoAgghAwsgAigCACADaiAJNgAAIANBBGohCQsgAiAJNgIIAkACQEEgQQEQtoWAgAAiA0UNACADIAEpADA3AAAgA0EYaiIFIAFByABqKQAANwAAIANBEGoiBiABQcAAaikAADcAACADQQhqIgggAUE4aikAADcAAAJAIAIoAgQgCWtBH0sNACACIAlBIBC6gICAACACKAIIIQkLIAIoAgAiBCAJaiIHIAMpAAA3AAAgB0EIaiAIKQAANwAAIAdBEGogBikAADcAACAHQRhqIAUpAAA3AAAgAiAJQSBqIgk2AgggA0EgQQEQt4WAgABBIEEBELaFgIAAIgNFDQEgAyABKQBQNwAAIANBGGoiBSABQegAaikAADcAACADQRBqIgYgAUHgAGopAAA3AAAgA0EIaiIIIAFB2ABqKQAANwAAAkAgAigCBCAJa0EfSw0AIAIgCUEgELqAgIAAIAIoAgAhBCACKAIIIQkLIAQgCWoiByADKQAANwAAIAdBGGogBSkAADcAACAHQRBqIAYpAAA3AAAgB0EIaiAIKQAANwAAIAIgCUEgajYCCCADQSBBARC3hYCAACACIAFBBGo2AgwgAkEMaiACEPaCgIAAIAAgAigCACACKAIIEJ2OgIAAAkAgAigCBCIBRQ0AIAIoAgAgAUEBELeFgIAACyACQRBqJICAgIAADwtBIEEBEKiQgIAAAAtBIEEBEKiQgIAAAAuSAwMGfwF+AX8jgICAgABB0ABrIgQkgICAgAAgBEEIaiABEJmOgIAAAkACQCAEKAIMIgVFDQAgBCgCCCEBIAVBFGwhBSACKAIEIQYgAigCACEHIARBKGpBBHIhCANAIARBEGogARCajoCAACAEIARBEGogByAGEJyOgIAAAkAgBCgCACICRQ0AIAQoAgQhCSAEIAI2AiAgBCAJNgIkIARBKGogBEEgahCuhICAAAJAIAQoAigiAkEFRw0AIARBwABqQQhqIAhBCGopAgA3AwAgBCAIKQIAIgo3A0ACQCAKp0UNACAEQcAAahDJgYCAAAsgBCgCRCICRQ0BIAQoAkgiCUUNASACIAlBARC3hYCAAAwBCyAEKAI0IQkgBCgCMCELAkACQCACDgIBAAILIAlFDQEgCyAJQShsQQgQt4WAgAAMAQsgBCgCLCICRQ0AIAAgBCgCODYCDCAAIAk2AgggACALNgIEDAMLIAFBFGohASAFQWxqIgUNAAsLQQAhAgsgACACNgIAIARB0ABqJICAgIAAC1EBAn8CQCAAKAIAIgEoAgBFDQAgARDJgYCAAAsCQCABKAIEIgJFDQAgAUEIaigCACIBRQ0AIAIgAUEBELeFgIAACyAAKAIAQRBBBBC3hYCAAAuyDAMEfwF+AX8jgICAgABBgAJrIgIkgICAgAAgAkG4AWpBGGoiA0IANwMAIAJBuAFqQRBqIgRCADcDACACQbgBakEIaiIFQgA3AwAgAkIANwO4ASACQdgAaiABIAJBuAFqQSAQ0o6AgAACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAigCWA0AIAJBGGpBCGogBSkDADcDACACQRhqQRBqIAQpAwA3AwAgAkEYakEYaiADKQMANwMAIAIgAikDuAEiBjcDeCACIAY3AxggAkG4AWogARDEgYCAACACKAK4AQ0BIAIoArwBENaOgIAAIQcgAkG4AWpBGGoiA0IANwMAIAJBuAFqQRBqIgRCADcDACACQbgBakEIaiIFQgA3AwAgAkIANwO4ASACQdgAaiABIAJBuAFqQSAQ0o6AgAAgAigCWA0CIAJBOGpBCGogBSkDADcDACACQThqQRBqIAQpAwA3AwAgAkE4akEYaiADKQMANwMAIAIgAikDuAEiBjcDeCACIAY3AzggA0IANwMAIARCADcDACAFQgA3AwAgAkIANwO4ASACQegBaiABIAJBuAFqQSAQ0o6AgAAgAigC6AENAyACQdgAakEIaiACQbgBakEIaikDADcDACACQdgAakEQaiACQbgBakEQaikDADcDACACQdgAakEYaiACQbgBakEYaikDADcDACACIAIpA7gBIgY3A3ggAiAGNwNYIAJBuAFqIAEQxIGAgAAgAigCuAFFDQQgAkGYAWpBDGogAkG4AWpBDGopAgA3AgAgAiACKQK8ATcCnAEMBQsgAkGDAWogAkHYAGpBDGopAgA3AAAgAiACKQJcNwB7QRBBBBC2hYCAACIBRQ0FIAAgATYCCCAAQQA2AgQgASACQfsAaiIDKQAANwAAIABBFGpBJjYCACAAQRBqQZGwwIAANgIAIABBDGpBADYCACABQQhqIANBCGopAAA3AAAMCgtBEEEEELaFgIAAIgFFDQUgASACKQK8ATcCACAAIAE2AgggAEEANgIEIABBFGpBITYCACAAQRBqQbewwIAANgIAIABBDGpBADYCACABQQhqIAJBuAFqQQxqKQIANwIADAkLIAJBgwFqIAJB2ABqQQxqKQIANwAAIAIgAikCXDcAe0EQQQQQtoWAgAAiAUUNBSAAIAE2AgggAEEANgIEIAEgAkH7AGoiAykAADcAACAAQRRqQSU2AgAgAEEQakHYsMCAADYCACAAQQxqQQA2AgAgAUEIaiADQQhqKQAANwAADAgLIAJBgwFqIAJB6AFqQQxqKQIANwAAIAIgAikC7AE3AHtBEEEEELaFgIAAIgFFDQUgACABNgIIIABBADYCBCABIAJB+wBqIgMpAAA3AAAgAEEUakEqNgIAIABBEGpB/bDAgAA2AgAgAEEMakEANgIAIAFBCGogA0EIaikAADcAAAwHCyACQZgBaiABIAIoArwBEO6CgIAAIAIoApgBRQ0FCyACQbgBakEIaiIBIAJBmAFqQQxqKQIANwMAIAIgAikCnAE3A7gBIAJB+ABqQQRyIAJBuAFqQfKvwIAAQR8Q/IGAgAAgASACQfgAakEMaikCADcDACACIAIpAnw3A7gBIABBCGogAkG4AWpBp7HAgABBIRD8gYCAACAAQQA2AgQMBQtBEEEEEKiQgIAAAAtBEEEEEKiQgIAAAAtBEEEEEKiQgIAAAAtBEEEEEKiQgIAAAAsgAkEIakEIaiIBIAJBmAFqQQxqKAIANgIAIAIgAikCnAE3AwggAEEoaiACQRhqQRhqKQMANwAAIABBIGogAkEYakEQaikDADcAACAAQRhqIAJBGGpBCGopAwA3AAAgACACKQMYNwAQIAAgAikDODcAMCAAQThqIAJBOGpBCGopAwA3AAAgAEHAAGogAkE4akEQaikDADcAACAAQcgAaiACQThqQRhqKQMANwAAIAAgAikDWDcAUCAAQdgAaiACQdgAakEIaikDADcAACAAQeAAaiACQdgAakEQaikDADcAACAAQegAaiACQdgAakEYaikDADcAACAAIAc2AgAgACACKQMINwIEIABBDGogASgCADYCAAsgAkGAAmokgICAgAALjxADAn8BfgR/I4CAgIAAQaACayIEJICAgIAAEJaGgIAAIARBGGogAhCphoCAACAEQShqIAMQqYaAgAAgBEGwAWogBCgCGCICIAQoAiAQ1IOAgAACQAJAAkACQAJAIAQoAtABQQJHDQAgBEGQAWpBCGogBEGwAWpBCGopAwA3AwAgBCAEKQOwATcDkAEgBEHYAGpBx5/BgABBGCAEQZABahDUhICAAAwBCyAEQdgAakEwaiAEQbABakEwaikDADcDACAEQdgAakEoaiAEQbABakEoaikDADcDACAEQdgAakEYaiAEQbABakEYaikDADcDACAEQdgAakEQaiAEQbABakEQaikDADcDACAEQdgAakEIaiIDIARBsAFqQQhqKQMANwMAIARB2ABqQSBqIgUgBEGwAWpBIGopAwAiBjcDACAEIAQpA7ABNwNYIAanQQJGDQAgBEHIAGpBCGogAykDADcDACAEQThqQQhqIAUpAwA3AwAgBCAEKQNYNwNIIAQgBCkDcDcDOCAEKAJoIQcgBCgCbCEFIAQoAoABIQggBCgChAEhCSAEKQOIASEGIARB2ABqIAQoAigiCiAEKAIwENuDgIAAAkACQAJAAkACQCAEKAJYQRVHDQAgBC0AXCEDDAELIARBsAFqQQhqIARB2ABqQQhqIgMpAwA3AwAgBCAEKQNYNwOwASAEQZABakGBocGAAEEfIARBsAFqENSEgIAAIAQoApABQQ1HDQEgBC0AlAEhAwsQ3YaAgAAQ3YaAgAAQ3YaAgAAgBEH8AWpBgNbAgAA2AgAgBEH0AWpB1NXAgAA2AgAgBEHsAWpBuNXAgAA2AgAgBEGwAWpBCGogBEHIAGpBCGopAwA3AwAgBEHQAWogBEE4akEIaikDADcDACAEQfgBaiAEQZgCajYCACAEQfABaiAEQZgCajYCACAEIAQpA0g3A7ABIAQgBTYCxAEgBCAHNgLAASAEIAQpAzg3A8gBIAQgAzoAgAIgBCAGNwPgASAEIAk2AtwBIAQgCDYC2AEgBCAEQZgCajYC6AEgBEGQAWogACAEQegBaiAEQbABaiADIAEoAhQRgoCAgAAAIARBkAFqQQRyIQMCQAJAIAQoApABIgFBDUcNACAEQRRqIANBCGooAgA2AgAgBEEANgIIIAQgAykCADcCDAwBCyAEQdgAakEMaiADQQhqKAIANgIAIARB2ABqQRhqIARBkAFqQRhqKQMANwMAIAQgATYCWCAEIAQpA6ABNwNoIAQgAykCADcCXCAEQQA2ApACIARCATcDiAIgBEGwAWogBEGIAmpBzJvBgAAQ7JCAgAAgBEHYAGogBEGwAWoQv4aAgAANAiAEQQhqQQxqIARBkAJqKAIANgIAIAQgBCkDiAI3AgwgBEEBNgIIIARB2ABqEN2EgIAACwJAIAQoAiwiA0UNACAKIANBARC3hYCAAAsgBCgCHCIDRQ0FIAIgA0EBELeFgIAADAULIARB2ABqQRhqIARBkAFqQRhqKQMANwMAIARB2ABqQRBqIARBkAFqQRBqKQMANwMAIAMgBEGQAWpBCGopAwA3AwAgBCAEKQOQATcDWCAEQQA2ApACIARCATcDiAIgBEGwAWogBEGIAmpB0LPAgAAQ7JCAgAAgBEHYAGogBEGwAWoQv4aAgAANASAEQRRqIARBkAJqKAIANgIAIAQgBCkDiAI3AgwgBEEBNgIIIARB2ABqEMyBgIAAAkAgBUUNACAHIAVBARC3hYCAAAsgCUUNAyAIIAlBARC3hYCAAAwDC0Hkm8GAAEE3IARBmAJqQZycwYAAQficwYAAENqQgIAAAAtB6LPAgABBNyAEQZgCakGgtMCAAEH8tMCAABDakICAAAALIARBkAFqQRhqIARB2ABqQRhqKQMANwMAIARBkAFqQRBqIARB2ABqQRBqKQMANwMAIARBkAFqQQhqIARB2ABqQQhqKQMANwMAIAQgBCkDWDcDkAEgBEEANgKQAiAEQgE3A4gCIARBsAFqIARBiAJqQdCzwIAAEOyQgIAAIARBkAFqIARBsAFqEL+GgIAADQIgBEEUaiAEQYgCakEIaigCADYCACAEIAQpA4gCNwIMIARBATYCCCAEQZABahDMgYCAAAsCQCAEKAIsIgNFDQAgBCgCKCADQQEQt4WAgAALIAQoAhwiA0UNACACIANBARC3hYCAAAsgBEGwAWogBEEIahCSg4CAAAJAAkACQCAEKAKwAQ0AIARB2ABqQQxqIARBsAFqQQxqKAIANgIAIAQgBCkCtAE3AlwMAQsgBEGQAWpBCGogBEG8AWooAgA2AgAgBCAEKQK0ATcDkAEgBEHYAGpB35/BgABB1AAgBEGQAWoQ04SAgAAgBCgCWEENRw0BCyAEQZABakEIaiAEQeQAaigCACICNgIAIAQgBCkCXCIGNwOQASAEQbABakEIaiACNgIAIAQgBjcDsAEgBEGwAWoQqIaAgAAhAgJAIARBCGpBCGooAgAiA0UNACAEKAIMIANBARC3hYCAAAsgBEGgAmokgICAgAAgAg8LIARBsAFqQRhqIARB2ABqQRhqKQMANwMAIARBsAFqQRBqIARB2ABqQRBqKQMANwMAIARBsAFqQQhqIARB2ABqQQhqKQMANwMAIAQgBCkDWDcDsAFByLHAgABBKyAEQbABakH0scCAAEGEs8CAABDakICAAAALQeizwIAAQTcgBEGYAmpBoLTAgABB/LTAgAAQ2pCAgAAAC40CAQF/AkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAODAsLAQILAwQFBgcICQALIABBFGohAAwJCyAAQQRqIQAMCAsgAEEEaiEADAcLIABBBGohAAwGCyAAQQRqIQAMBQsgAEEEaiEADAQLAkAgAEEIaigCACIBRQ0AIAAoAgQgAUEBELeFgIAACyAAQRBqIQAMAwsCQCAAQQhqKAIAIgFFDQAgACgCBCABQQEQt4WAgAALIABBEGohAAwCCwJAIABBCGooAgAiAUUNACAAKAIEIAFBARC3hYCAAAsgAEEQaiEADAELIABBBGohAAsgAEEEaigCACIBRQ0AIAAoAgAgAUEBELeFgIAACwv4DwYEfwJ+An8BfgF/An4jgICAgABBgAJrIgMkgICAgAAgAyACNgJ8IAMgATYCeCADQYABahCgjICAACADIANB+ABqNgK0ASADQZgBaiEEIANBpAFqIQUgA0GIAWohBgJAAkACQAJAAkACQAJAAkADQCAIIQcCQCADKAK0AUEEaigCAA0AIANB8AFqIANBlAFqKAIANgIAIAMgAykCjAE3A+gBIAMoAqwBIQkgAygCqAEhASADKAKkASEGIAMoAqABIQogAygCnAEhBCADKAKYASEFDAILIANB6AFqIANBtAFqEM6BgIAAAkAgAygC6AEiAg0AIAMgByADKQPwASIIIAIbIgc3A7gBIAdC/////w9WDQMgAyAHQgeDIgs3A8ABAkAgC0IGVA0AIANBj4CAgAA2AswBIAMgA0HAAWo2AsgBIANBATYC/AEgA0IBNwLsASADQdS2wIAANgLoASADIANByAFqNgL4ASADQdgBaiADQegBahCtkICAACADQdgBahDPgYCAACECDAULAkAgB6ciAkEHSw0AQci1wIAAQRQQ0IGAgAAhAgwFCyALpyEBAkACQAJAAkACQCACQQN2IgJBf2oOAwABAgMLQQAhAiABIAQgA0G0AWpB5AAQhoWAgAAiAUUNAyADIAE2AugBIANB6AFqQYitwIAAQQtB8KzAgABBBBC2jYCAACADKALoASECDAgLQQAhAiABIAUgA0G0AWpB5AAQhoWAgAAiAUUNAiADIAE2AugBIANB6AFqQYitwIAAQQtB9KzAgABBBxC2jYCAACADKALoASECDAcLAkAgAykDgAFCAFINACADQShqEKKMgIAAIANCATcDgAEgAyADKQMwNwOQASADIAMpAyg3A4gBCyADIAE6AMABIANBAjoAuAECQAJAIAtCAlENACADQeQBakGjgICAADYCACADQaOAgIAANgLcASADIANBuAFqNgLgASADIANBwAFqNgLYASADQQI2AvwBIANCAzcC7AEgA0GMtsCAADYC6AEgAyADQdgBajYC+AEgA0HIAWogA0HoAWoQrZCAgAAgA0HIAWoQz4GAgAAhAQwBC0EAIQIgBiADQbQBakHjABDlgICAACIBRQ0CCyADIAE2AugBIANB6AFqQYitwIAAQQtB+6zAgABBDRC2jYCAACADKALoASECDAYLIAEgAiADQbQBakHkABDogICAACECCyACRQ0BDAQLCyADKALsASECIANB8AFqIANBlAFqKAIANgIAIAMgAykCjAE3A+gBIAMoAqgBIQEgAygCpAEhBiADKAKcASEEIAMoApgBIQUgAg0DIAMoAqwBIQkgAygCoAEhCgsgAygCiAEhAiADKQOAASEHIANB6ABqQQhqIgwgA0HoAWpBCGooAgA2AgAgAyADKQPoATcDaCAHQgJRDQMgA0HMAGogDCgCADYCACADIAo2AlggAyAENgJUIAMgAjYCQCADIAMpA2g3AkQgAykDQCEIIAMpA0ghDSADIAMpAlQiC0IgiD4C3AEgAyAFNgLYASADQThqIANB2AFqELuCgIAAIAMoAjgiAg0EIAMgAygCPDYCyAEgA0EANgLwASADQgE3A+gBIANBgAFqIANB6AFqQdCzwIAAEOyQgIAAIANByAFqIANBgAFqELiNgIAADQYCQCADKALIASICKAIAIgRFDQAgAkEEaigCACIKRQ0AIAQgCkEBELeFgIAACyALpyEEAkAgAkEQaigCACIKRQ0AIAIoAgwgCkEEdEEEELeFgIAACyADKALIAUEYQQQQt4WAgAAgAykD6AEhByADKALwASECAkAgBEUNACAFIARBARC3hYCAAAsCQCABRQ0AIAYgAUEBELeFgIAACyADIAI2AvABIAMgBzcD6AEgA0GxgICAADYC3AEgAyADQegBajYC2AEgA0EBNgKUASADQgE3AoQBIANB1IPBgAA2AoABIAMgA0HYAWo2ApABIANBOGogA0GAAWoQrZCAgAAgAEEUaiADQThqEOSMgIAAAkAgAygC7AEiAkUNACADKALoASACQQEQt4WAgAALIABBADYCEAwFCyADQY+AgIAANgLMASADIANBuAFqNgLIASADQQE2AvwBIANCATcC7AEgA0HAtcCAADYC6AEgAyADQcgBajYC+AEgA0HYAWogA0HoAWoQrZCAgAAgA0HYAWoQz4GAgAAhAgsgAygCqAEhASADKAKkASEGIAMoApwBIQQgAygCmAEhBQsCQCAERQ0AIAUgBEEBELeFgIAACyABRQ0AIAYgAUEBELeFgIAACyADQcAAaiACEOaMgIAAIANByABqKQMAIQcgAykDQCELIABBJGogA0HQAGooAgA2AgAgAEEcaiAHNwIAIAAgCzcCFCAAQQA2AhAMAQsgAykDSCEOIAMoAkQhBAJAIAMoAjwiCkUNACACIApBARC3hYCAAAsCQCAOpyICRQ0AIAQgAkEBELeFgIAACwJAAkAgB0IAUg0AIANBCGoQpYuAgAAgAykDECEHIAMpAwghCAwBCyADQRhqIAggDRCmi4CAACADKQMgIQcgAykDGCEICyAAQQE2AiggACAJNgIkIAAgATYCICAAIAY2AhwgACALNwIUIAAgBTYCECAAIAg3AwAgACAHNwMICyADQYACaiSAgICAAA8LQeizwIAAQTcgA0HoAGpBoLTAgABB/LTAgAAQ2pCAgAAAC7EFBAR/AX4BfwJ+AkAgASgCACICQQRqKAIAIgMNAEHctcCAAEEOENCBgIAAIQIgAEEBNgIAIAAgAjYCBA8LAkACQAJAAkACQAJAAkACQCACKAIAIgQsAAAiBUF/Sg0AAkAgA0EKSw0AIAMgBGpBf2osAABBf0oNACAAIAEQ64CAgAAPCyAFQf8BcSAELAABIgFB/wFxQQd0akGAf2ohBQJAAkAgAUF/Sg0AIAUgBCwAAiIBQf8BcUEOdGpBgIB/aiEFIAFBf0oNAyAFIAQsAAMiAUH/AXFBFXRqQYCAgH9qIQUgAUF/Sg0EIAVBgICAgH9qrSEGIAQsAAQiAUF/Sg0FIAFB/wFxIAQsAAUiAUH/AXFBB3RqQYB/aiEFIAFBf0oNBiAFIAQsAAYiAUH/AXFBDnRqQYCAf2ohBSABQX9KDQcgBSAELAAHIgFB/wFxQRV0akGAgIB/aiEFIAFBf0oNCCAELAAIIgetQv8BgyEIQQkhAQJAIAdBf0oNACAEMQAJIglCAloNAiAIIAlCB4Z8QoABfCEIQQohAQsgBUGAgICAf2qtQhyGIAZ8IAhCOIZ8IQYMCQsgBa0hBkECIQEMCAtB3LXAgABBDhDQgYCAACECIABBATYCACAAIAI2AgQPCyAAIAWtQv8BgzcDCCAAQQA2AgAgAkEEaiADQX9qNgIAIAIgBEEBajYCAA8LIAWtIQZBAyEBDAULIAWtIQZBBCEBDAQLIAGtQv8Bg0IchiAGfCEGQQUhAQwDCyAFrUIchiAGfCEGQQYhAQwCCyAFrUIchiAGfCEGQQchAQwBCyAFrUIchiAGfCEGQQghAQsCQCADIAFJDQAgACAGNwMIIABBADYCACACQQRqIAMgAWs2AgAgAiAEIAFqNgIADwsgASADQczqwIAAELiQgIAAAAtKAQF/AkBBGEEEELaFgIAAIgENAEEYQQQQqJCAgAAACyABQQA2AhQgAUIENwIMIAEgACkCADcCACABQQhqIABBCGooAgA2AgAgAQtFAQF/AkBBGEEEELaFgIAAIgINAEEYQQQQqJCAgAAACyACQQA2AhQgAkIENwIMIAIgATYCCCACIAA2AgQgAkEANgIAIAIL3QQCBn8BfiOAgICAAEHQAGsiAiSAgICAACACQTBqIgNCADcDACACQRhqQRBqQgA3AwAgAkEYakEIakIANwMAIAJCADcDGCACQThqIAEgAkEYakEgENKOgIAAAkACQAJAAkACQCACKAI4RQ0AIAJBOGpBEGooAgAhAyACQcQAaigCACEEIAJBOGpBCGooAgAhBSACKAI8IQZBEEEEELaFgIAAIgFFDQIgASADNgIMIAEgBDYCCCABIAU2AgQgASAGNgIAQRBBBBC2hYCAACIDRQ0BQRshBCADQRs2AgwgA0GgrcGAADYCCCADQQA2AgQgAyABNgIAIAAgAzYCBCAAQQxqQZSzwIAANgIAIABBCGpBADYCAAwDCyACQRZqIgQgAi0AGjoAACACIAIvARg7ARQgAiACKQArNwMAIAIgAykAADcABSACKAAbIQMgAigAHyEFIAIoACMhBiACKAAnIQcgAkIANwM4IAJBGGogASACQThqQQgQ0o6AgAACQCACKAIYRQ0AIAJBKGooAgAhBCACKAIcIQEgAEEIaiACQRhqQQhqKQMANwIAIAAgATYCBAwDCyACKQM4IQggACACLwEUOwAIIABBF2ogBzYAACAAQRNqIAY2AAAgAEEPaiAFNgAAIABBC2ogAzYAACAAQRtqIAIpAwA3AAAgAEEgaiACKQAFNwAAIABBKGogCDcDACAAQQA2AgAgAEEKaiAELQAAOgAADAMLQRBBBBCokICAAAALQRBBBBCokICAAAALIABBATYCACAAQRBqIAQ2AgALIAJB0ABqJICAgIAAC7EDAgV/AX4jgICAgABB0ABrIgIkgICAgAAgAkEwaiIDQgA3AwAgAkEYakEQakIANwMAIAJBGGpBCGpCADcDACACQgA3AxggAkE4aiABIAJBGGpBIBDSjoCAAAJAAkACQAJAIAIoAjhFDQAgAkE4akEQaigCACEDIAJBxABqKAIAIQQgAkE4akEIaigCACEFIAIoAjwhBkEQQQQQtoWAgAAiAQ0BQRBBBBCokICAAAALIAAgAi8BGDsAASAAQQNqIAItABo6AAAgAiACKQArNwMIIAIgAykAADcADSACKQAbIQcgAEEMaiACKQAjNwAAIABBBGogBzcAACAAQRRqIAIpAwg3AAAgAEEZaiACKQANNwAAIABBADoAAAwBCyABIAM2AgwgASAENgIIIAEgBTYCBCABIAY2AgBBEEEEELaF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DQUgAEEIaiEBDAQLAkAgAEEIaigCACIBRQ0AIAAoAgQgAUEBELeFgIAACyAAQRBqIQEMAwsgAEEEaiEBDAILIABBBGohAQwBCwJAIABBCGooAgAiAUUNACAAKAIEIAFBARC3hYCAAAsgAEEQaiEBCyABQQRqKAIAIgJFDQAgASgCACACQQEQt4WAgAALIABBOGoQkY2AgAALDwAgACgCACABEO+NgIAAC4oBAQF/I4CAgIAAQSBrIgIkgICAgAAgACgCACEAIAJBCGogAUGMtcCAAEEAEPyQgIAAIAIgADYCGCACIABBIGo2AhwgAkEIaiACQRhqQYy1wIAAEN6QgIAAGiACQQhqIAJBHGpBnLXAgAAQ3pCAgAAaIAJBCGoQ35CAgAAhACACQSBqJICAgIAAIAALDwAgACgCACABELiNgIAACwIAC7cCAQN/AkACQAJAIAAoAgBFDQAgABCIg4CAAAJAIABBBGooAgAiAUUNACAAKAIAIAFB4ABsQQgQt4WAgAALAkAgAEEUaigCACICRQ0AIAAoAgwhASACQRhsIQIDQAJAIAFBBGooAgAiA0UNACABKAIAIANBARC3hYCAAAsCQCABQRBqKAIAIgNFDQAgAUEMaigCACADQQEQt4WAgAALIAFBGGohASACQWhqIgINAAsLAkAgAEEQaigCACIBRQ0AIAAoAgwgAUEYbEEEELeFgIAACyAAQRhqIgEQg4OAgAACQCAAQRxqKAIAIgJFDQAgASgCACACQRhsQQQQt4WAgAALIAAoAiRFDQIgAEEkaiEBDAELIABBBGohAQsgAUEEaigCACICRQ0AIAEoAgAgAkEBELeFgIAACwsjAQF/AkAgAEEEaigCACIBRQ0AIAAoAgAgAUEBELeFgIAACws1AQF/AkAgACgCAA0AIABBCGooAgAiAUUNACAAKAIEIAFBARC3hYCAAAsgAEEQahCRjYCAAAufAQEDf0EAIQQCQCABIANHDQACQCABDQBBAQ8LIAAgAkEgELqRgIAADQAgACkDICACKQMgUg0AIAJBKGohAyAAQShqIQRBASECAkADQCABIAIiAEYNASAEIANBIBC6kYCAAA0BIABBAWohAiADQSBqIQUgBEEgaiEGIANBKGohAyAEQShqIQQgBikDACAFKQMAUQ0ACwsgACABTyEECyAEC/ICAQJ/I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQCABQYABSQ0AIAJBADYCDCABQYAQTw0BIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECIQEMAgsCQCAAKAIIIgMgACgCBEcNACAAIAMQqYCAgAAgACgCCCEDCyAAKAIAIANqIAE6AAAgACAAKAIIQQFqNgIIDAILAkAgAUGAgARJDQAgAiABQT9xQYABcjoADyACIAFBBnZBP3FBgAFyOgAOIAIgAUEMdkE/cUGAAXI6AA0gAiABQRJ2QQdxQfABcjoADEEEIQEMAQsgAiABQT9xQYABcjoADiACIAFBDHZB4AFyOgAMIAIgAUEGdkE/cUGAAXI6AA1BAyEBCwJAIAAoAgQgACgCCCIDayABTw0AIAAgAyABELqAgIAAIAAoAgghAwsgACgCACADaiACQQxqIAEQvJGAgAAaIAAgAyABajYCCAsgAkEQaiSAgICAAEEAC0sBAX8CQCAAKAIEIAAoAggiA2sgAk8NACAAIAMgAhC6gICAACAAKAIIIQMLIAAoAgAgA2ogASACELyRgIAAGiAAIAMgAmo2AghBAAuNBwICfwN+I4CAgIAAQfAAayIDJICAgIAAIAMgAjYCBCADIAE2AgAgA0EIahCfjICAACADIAM2AiQgA0EQaiEEAkACQAJAAkACQANAIAYhBQJAIAMoAiRBBGooAgANACADKQMYIQUgAygCFCEBIAMoAhAhBAwCCyADQdgAaiADQSRqEM6BgIAAAkAgAygCWCICDQAgAyAFIAMpA2AiBiACGyIFNwMoIAVC/////w9WDQMgAyAFQgeDIgc3AzACQCAHQgZUDQAgA0GPgICAADYCPCADIANBMGo2AjggA0EBNgJsIANCATcCXCADQdS2wIAANgJYIAMgA0E4ajYCaCADQcgAaiADQdgAahCtkICAACADQcgAahDPgYCAACECDAULAkAgBaciAkEHSw0AQci1wIAAQRQQ0IGAgAAhAgwFCyAHpyEBAkACQAJAAkAgAkEDdiICQX9qDgIAAQILQQAhAiABIAQgA0EkakHkABCGhYCAACIBRQ0CIAMgATYCWCADQdgAakHctsCAAEEOQfCswIAAQQQQto2AgAAgAygCWCECDAcLIAMgAToAMCADQQA6ACgCQAJAIAdQDQAgA0HUAGpBo4CAgAA2AgAgA0GjgICAADYCTCADIANBKGo2AlAgAyADQTBqNgJIIANBAjYCbCADQgM3AlwgA0HkpsCAADYCWCADIANByABqNgJoIANBOGogA0HYAGoQrZCAgAAgA0E4ahDPgYCAACEBDAELIANB2ABqIANBJGoQiIGAgAACQCADKAJYDQAgAyADKQNgNwMIQQAhAkEARQ0FDAgLQQAhAiADKAJcIgFFDQILIAMgATYCWCADQdgAakHctsCAAEEOQeq2wIAAQQkQto2AgAAgAygCWCECDAYLIAEgAiADQSRqQeQAEOiAgIAAIQILIAJFDQEMBAsLIAMoAhQhASADKAIQIQQgAygCXCICDQMgAykDGCEFCyAAIAU3AxAgACABNgIMIAAgBDYCCCAAIAMpAwg3AwAMAwsgA0GPgICAADYCPCADIANBKGo2AjggA0EBNgJsIANCATcCXCADQcC1wIAANgJYIAMgA0E4ajYCaCADQcgAaiADQdgAahCtkICAACADQcgAahDPgYCAACECCyADKAIUIQEgAygCECEECyAAQQA2AgggACACNgIAIAFFDQAgBCABQQEQt4WAgAALIANB8ABqJICAgIAAC5ECAgR/AX4jgICAgABBEGsiAySAgICAACABQQhqIQRBACEFQQAhBgJAIAFBEGooAgBFDQAgBBC+jYCAACEGIAQQvo2AgAAgBkEBcmdBH3NBCWxByQBqQQZ2akEBaiEGCwJAIAEpAwAiB1ANACAHQgGEeadBP3NBCWxByQBqQQZ2QQFqIQULAkACQAJAAkAgBSAGaiIFIAJBCGooAgBB/////wdzIgZLDQAgAUEQaigCAA0BDAILIANBCGogBSAGELmNgIAAIAAgAykDCDcCBEEBIQUMAgtBASAEIAIQiIWAgAAgASkDACEHC0EAIQUgB1ANAEECIAEgAhCpgYCAAAsgACAFNgIAIANBEGokgICAgAALrgMBAX8jgICAgABB0ABrIgQkgICAgAAgBCAAOgAnIARBAjoAJgJAAkAgAEH/AXFBAkYNACAEQRRqQaOAgIAANgIAIARBo4CAgAA2AgwgBCAEQSZqNgIQIAQgBEEnajYCCCAEQQI2AkwgBEIDNwI8IARBjLbAgAA2AjggBCAEQQhqNgJIIARBKGogBEE4ahCtkICAACAEQShqEM+BgIAAIQAMAQsgBEEIahDJh4CAAAJAAkACQCADDQBBpLbAgABBFxDQgYCAACEADAELIARBCGogAiADQX9qEN+AgIAAIgBFDQELIARBFGooAgAiAUUNASAEKAIQIAFBARC3hYCAAAwBCyAEQThqQRBqIgMgBEEIakEQaikDADcDACAEQThqQQhqIgIgBEEIakEIaikDADcDACAEIAQpAwg3AzgCQCABKAIIIgAgASgCBEcNACABIAAQsoCAgAAgASgCCCEACyABKAIAIABBGGxqIgAgBCkDODcDACAAQRBqIAMpAwA3AwAgAEEIaiACKQMANwMAIAEgASgCCEEBajYCCEEAIQALIARB0ABqJICAgIAAIAALqgYBBH8jgICAgABBgAFrIgQkgICAgAAgBCAAOgBvIARBAjoAbgJAAkAgAEH/AXFBAkYNACAEQRRqQaOAgIAANgIAIARBo4CAgAA2AgwgBCAEQe4AajYCECAEIARB7wBqNgIIIARBAjYCTCAEQgM3AjwgBEGMtsCAADYCOCAEIARBCGo2AkggBEHwAGogBEE4ahCtkICAACAEQfAAahDPgYCAACECDAELIARBCGoQy4eAgAACQAJAAkAgAw0AQaS2wIAAQRcQ0IGAgAAhAgwBCyAEQQhqIAIgA0F/ahDhgICAACICRQ0BCwJAIAQoAgwiAEUNACAEKAIIIABBARC3hYCAAAsgBCgCFCIARQ0BAkAgBEEcaigCACIBRQ0AIAFBDGwhAQNAAkAgAEEEaigCACIDRQ0AIAAoAgAgA0EBELeFgIAACyAAQQxqIQAgAUF0aiIBDQALCwJAIARBGGooAgAiAEUNACAEKAIUIABBDGxBBBC3hYCAAAsCQCAEQSRqKAIAIgBFDQAgBEEgaigCACAAQQEQt4WAgAALAkAgBEE0aigCACIBRQ0AIARBLGooAgAhACABQQxsIQEDQAJAIABBBGooAgAiA0UNACAAKAIAIANBARC3hYCAAAsgAEEMaiEAIAFBdGoiAQ0ACwsgBEEwaigCACIARQ0BIAQoAiwgAEEMbEEEELeFgIAADAELIARBOGpBKGoiAyAEQQhqQShqKQMANwMAIARBOGpBIGoiAiAEQQhqQSBqKQMANwMAIARBOGpBGGoiBSAEQQhqQRhqKQMANwMAIARBOGpBEGoiBiAEQQhqQRBqKQMANwMAIARBOGpBCGoiByAEQQhqQQhqKQMANwMAIAQgBCkDCDcDOAJAIAEoAggiACABKAIERw0AIAEgABCugICAACABKAIIIQALIAEoAgAgAEEwbGoiACAEKQM4NwIAIABBKGogAykDADcCACAAQSBqIAIpAwA3AgAgAEEYaiAFKQMANwIAIABBEGogBikDADcCACAAQQhqIAcpAwA3AgAgASABKAIIQQFqNgIIQQAhAgsgBEGAAWokgICAgAAgAguGBAICfgN/IABBA3RBAnIiAK0hAwJAAkAgAEH/AEsNACACKAIIIQAMAQsgAigCCCEAIAMhBANAIASnQYB/ciEFAkACQCACKAIEIABGDQAgACEGDAELIAIgAEEBELqAgIAAIAIoAgghBgsgAiAGQQFqIgA2AgggAigCACAGaiAFOgAAIARC//8AViEGIARCB4giAyEEIAYNAAsLIAOnIQYCQCACKAIEIABHDQAgAiAAQQEQuoCAgAAgAigCCCEACyACKAIAIABqIAY6AAAgAiAAQQFqIgA2AghBACEGQQAhBQJAIAFBEGooAgBFDQAgAUEIaiIFEL6NgIAAIQcgBRC+jYCAACAHQQFyZ0Efc0EJbEHJAGpBBnZqQQFqIQULAkAgASkDACIEUA0AIARCAYR5p0E/c0EJbEHJAGpBBnZBAWohBgsgBiAFaiIGrSEEAkACQCAGQYABTw0AIAQhAwwBCwNAIASnQYB/ciEFAkACQCACKAIEIABGDQAgACEGDAELIAIgAEEBELqAgIAAIAIoAgghBgsgAiAGQQFqIgA2AgggAigCACAGaiAFOgAAIARC//8AViEGIARCB4giAyEEIAYNAAsLAkAgAigCBCAARw0AIAIgAEEBELqAgIAAIAIoAgghAAsgAiAAQQFqNgIIIAIoAgAgAGogAzwAACABIAIQqoGAgAALiQMBBH8CQCAAKAIAIgBBP0sNACAAQQJ0IQICQCABKAIEIAEoAggiAEcNACABIABBARC6gICAACABKAIIIQALIAEgAEEBajYCCCABKAIAIABqIAI6AAAPCwJAIABB//8ASw0AIABBAnRBAXIhAgJAIAEoAgQgASgCCCIAa0EBSw0AIAEgAEECELqAgIAAIAEoAgghAAsgASAAQQJqNgIIIAEoAgAgAGogAjsAAA8LAkAgAEH/////A0sNACAAQQJ0QQJyIQICQCABKAIEIAEoAggiAGtBA0sNACABIABBBBC6gICAACABKAIIIQALIAEgAEEEajYCCCABKAIAIABqIAI2AAAPCwJAIAEoAgQiAyABKAIIIgRHDQAgASAEQQEQuoCAgAAgASgCBCEDIAEoAgghBAsgASAEQQFqIgI2AgggASgCACIFIARqQQM6AAACQCADIAJrQQNLDQAgASACQQQQuoCAgAAgASgCACEFIAEoAgghAgsgASACQQRqNgIIIAUgAmogADYAAAvlDgQCfwF+AX8BfiOAgICAAEHwAGsiAiSAgICAACACQQA6AC8gAkHYAGogASACQS9qQQEQ0o6AgAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACKAJYDQAgAi0ALw4JAwEBAQQFBgEHAQsgAkEiaiACQdgAakEMaikCADcBACACIAIpAlw3ARpBEEEEELaFgIAAIgFFDRIgASACQRpqIgMpAQA3AQAgAUEIaiADQQhqKQEANwEAIAJBwABqQRBqQT42AgAgAkHAAGpBDGpBtK/AgAA2AgAgAkHAAGpBCGpBADYCACACIAE2AkQMAQsgAkHAAGpBBHJB/K7AgABBOBDbjoCAACACKAJEIQELIAJBCGpBCGogAkHAAGpBEGooAgAiAzYCACACIAJBwABqQQhqKQMAIgQ3AwggACABNgIEIABBCGogBDcCACAAQRBqIAM2AgAgAEEFOgAADBILIAJB2ABqIAEQxIGAgAAgAigCWEUNDSACQcAAakEMaiACQdgAakEMaikCADcCACACIAIpAlw3AkQMDgsgAkEANgJAIAJB2ABqIAEgAkHAAGpBBBDSjoCAACACKAJYDQogAigCQCEDIAJB2ABqIAEQxIGAgAACQAJAIAIoAlhFDQAgAkHAAGpBDGogAkHYAGpBDGopAgA3AgAgAiACKQJcNwJEDAELIAJBwABqIAEgAigCXBDwgoCAACACKAJARQ0KCyACQRhqQQhqIAJB0ABqKAIANgIAIAIgAkHAAGpBCGopAwA3AxggAigCRCIDQQh2IQUMCwsgAkEANgJAIAJB2ABqIAEgAkHAAGpBBBDSjoCAACACKAJYDQYgAigCQCEDIAJB2ABqIAEQxIGAgAACQAJAIAIoAlhFDQAgAkHAAGpBDGogAkHYAGpBDGopAgA3AgAgAiACKQJc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AgAhAyAAKAIIIQQLIAMgBGogBTYAACAEQQRqIQEMAwsQqZCAgAAACyABIAQQqJCAgAAAC0EAIQQCQCABDQAgAEEAQQEQuoCAgAAgACgCACEDIAAoAgghBAsgAyAEakEDOgAAIAAgBEEBaiIBNgIIIAYoAgAhAwJAIAAoAgQgAWtBA0sNACAAIAFBBBC6gICAACAAKAIIIQELIAAoAgAgAWogAzYAACABQQRqIQELIAAgATYCCCACQRBqJICAgIAAC+ELBAR/AX4Gfwd+I4CAgIAAQZACayIDJICAgIAAIAMgAjYCBCADQbWAgIAANgJsIAMgA0EEajYCaCADQQE2ArwBIANCATcCrAEgA0Ggt8CAADYCqAEgAyADQegAajYCuAEgA0EIaiADQagBahCtkICAACABQcAAaigCACIEIAMoAggiAiADKAIQIAFBxABqKAIAKAIoIgURg4CAgAAAAkAgAygCDCIGRQ0AIAIgBkEBELeFgIAACyABQTxqKAIAIQIgAUE4aigCACEGAkACQAJAQQtBARC2hYCAACIBRQ0AIAFBB2pBACgAwcHAgAA2AAAgAUEAKQC6wcCAADcAACADQegAaiAGIAFBCyACKAIMEYCAgIAAACABQQtBARC3hYCAAAJAAkAgAygCaEUNACADQbQBaiADQfAAaigCADYCACADIAMpA2g3AqwBDAELIANBCGogAygCBBCvkICAACADQagBaiADQQhqEPKJgIAAIAMtAKgBIgFBOUcNAgsgA0GoAWpBCGooAgAhASADQagBaiADKAKsASICIANBtAFqKAIAEOuBgIAAAkAgAykDqAEiB0ICUQ0AIANB6ABqQThqIgYgA0GoAWpBwABqKQMANwMAIANB6ABqQTBqIgggA0GoAWpBOGopAwA3AwAgA0HoAGpBKGoiCSADQagBakEwaikDADcDACADQegAakEgaiIKIANBqAFqQShqKQMANwMAIANB6ABqQRhqIgsgA0GoAWpBIGopAwA3AwAgA0HoAGpBEGoiDCADQagBakEYaikDADcDACADQegAakEIaiINIANBqAFqQRBqKQMANwMAIANBCGpB0ABqIANBqAFqQdAAaikDADcDACADQQhqQdgAaiADQagBakHYAGopAwA3AwAgAyADKQOwATcDaCADIAMpA/ABNwNQIANBCGpBEGogDSkDADcDACADQQhqQRhqIAwpAwA3AwAgA0EIakEgaiALKQMANwMAIANBCGpBKGogCikDADcDACADQQhqQTBqIAkpAwA3AwAgA0EIakE4aiAIKQMANwMAIANBCGpBwABqIAYpAwA3AwAgAyAHNwMIIAMgAykDaDcDECADQbaAgIAANgKMAiADIANBCGo2AogCIANBATYCvAEgA0IBNwKsASADQdi3wIAANgKoASADIANBiAJqNgK4ASADQegAaiADQagBahCtkICAACAEIAMoAmgiBiADKAJwIAURg4CAgAAAAkAgAygCbCIERQ0AIAYgBEEBELeFgIAACyAAIANBCGpB4AAQvJGAgAAaIAFFDQMgAiABQQEQt4WAgAAMAwsgA0HoAGpBOGogA0GoAWpBwABqKQMAIgc3AwAgA0HoAGpBMGogA0GoAWpBOGopAwAiDjcDACADQegAakEoaiADQagBakEwaikDACIPNwMAIANB6ABqQSBqIANBqAFqQShqKQMAIhA3AwAgA0HoAGpBGGogA0GoAWpBIGopAwAiETcDACADQegAakEQaiADQagBakEYaikDACISNwMAIANB6ABqQQhqIANBqAFqQRBqKQMAIhM3AwAgAyADKQOwASIUNwNoIABBwABqIAc3AwAgAEE4aiAONwMAIABBMGogDzcDACAAQShqIBA3AwAgAEEgaiARNwMAIABBGGogEjcDACAAQRBqIBM3AwAgACAUNwMIIABCAjcDACABRQ0CIAIgAUEBELeFgIAADAILQQtBARCokICAAAALIABBC2ogAy0AqwE6AAAgAEEJaiADLwCpATsAACAAQRhqIAMpA7gBNwMAIABBIGogA0GoAWpBGGopAwA3AwAgAEEoaiADQagBakEgaikDADcDACAAQTBqIANBqAFqQShqKQMANwMAIABBOGogA0GoAWpBMGopAwA3AwAgAEHAAGogA0GoAWpBOGopAwA3AwAgAykCrAEhByAAQRRqIAMoArQBNgIAIABBDGogBzcCACAAIAE6AAggAEICNwMACyADQZACaiSAgICAAAu2EwUMfwF+AX8HfgV/I4CAgIAAQfACayIDJICAgIAAIANBgAFqIAEgAhC9goCAAAJAAkACQAJAAkACQAJAIAMoAoABRQ0AIANB9AFqIANBkAFqKQMANwIAIANB7AFqIANBiAFqKQMANwIAIAMgAykDgAE3AuQBDAELIANB4AFqIAMoAoQBEPaJgIAAIAMtAOABIgJBOUcNAQsgA0H0AWooAgAhASADQeABakEIaigCACEEIAMoAuQBIQUgA0GAAWogA0HgAWpBEGooAgAiBiADQfgBaigCABDNgYCAAAJAAkACQAJAAkACQAJAAkAgAygCkAEiAkUNACADQc8AaiADQYABakEIaikDADcAACADQTBqQQhqIANBrAFqKAIANgIAIAMgAykDgAE3AEcgAyADKQKkATcDMCADKAKUASEHIAMoApgBIQggAygCnAEhCSADKAKgASEKDAELIANBwAJqQRBqIANBpAFqKAIANgIAIANBwAJqQQhqIANBnAFqKQIANwMAIAMgAykClAE3A8ACIANBkYCAgAA2AuwCIAMgA0HAAmo2AugCIANBATYC9AEgA0IBNwLkASADQdS7wIAANgLgASADIANB6AJqNgLwASADQdgCaiADQeABahCtkICAACADQeABaiADQdgCahD0iYCAAAJAIAMoAsACDQAgA0HIAmooAgAiAkUNACADKALEAiACQQEQt4WAgAALIANBwAJqQRBqEJGNgIAAIANBwABqQQhqIgsgA0HgAWpBCWopAAA3AwAgA0HAAGpBD2oiDCADQeABakEQaikAADcAACADQTBqQQhqIg0gA0HgAWpBNGooAgA2AgAgAyADKQDhATcDQCADIAMpAowCNwMwIAMoAvgBIQIgAygC/AEhByADKAKAAiEIIAMoAoQCIQkgAygCiAIhCiADLQDgASIOQTlHDQELIANBgAFqIAIgCBC9goCAACADKAKAAUUNASADQfQBaiADQZABaikDADcCACADQewBaiADQYgBaikDADcCACADIAMpA4ABNwLkAQwCCyADKQOYAiEPIANBGGpBD2oiECAMKQAANwAAIANBGGpBCGoiDCALKQMANwMAIANBCGpBCGoiCyANKAIANgIAIAMgAykDQCIRNwMYIAMgAykDMDcDCCAAQRhqIBApAAA3AAAgAEERaiAMKQMANwAAIABBCWogETcAACAAQTBqIAo2AAAgAEEsaiAJNgAAIABBKGogCDYAACAAQSRqIAc2AAAgAEEgaiACNgAAIABBwABqIA83AwAgACAOOgAIIABCAjcDACAAQTRqIAMpAwg3AAAgAEE8aiALKAIANgAADAgLIANB4AFqIAMoAoQBEPaJgIAAIAMtAOABIghBOUcNAQsgA0H0AWooAgAhCCADQeABakEIaigCACELIAMoAuQBIQwgA0HgAWogA0HgAWpBEGoiDigCACINIANB+AFqIhAoAgAQz4CAgAAgAykD4AFCAlINASADQRhqQRBqIBAoAgA2AgAgA0EYakEIaiAOKQMANwMAIAMgAykD6AE3AxggA0GAAWpBCGogA0EYahD5iYCAAAwCCyAAQQtqIAMtAOMBOgAAIABBCWogAy8A4QE7AAAgAEEkaiADKQL8ATcCACAAQSxqIANB4AFqQSRqKQIANwIAIABBNGogA0HgAWpBLGopAgA3AgAgAEE8aiADQeABakE0aikCADcCACAAQcQAaiADQeABakE8aigCADYCACADKQLkASEPIAMpAuwBIREgAEEcaiADKQL0ATcAACAAQRRqIBE3AAAgAEEMaiAPNwAAIAAgCDoACCAAQgI3AwAMBAsgA0GAAWogA0HgAWpB4AAQvJGAgAAaIAMpA4ABIg9CAlINAgsgA0HAAGpBOGogA0GAAWpBwABqKQMAIg83AwAgA0HAAGpBMGogA0GAAWpBOGopAwAiETcDACADQcAAakEoaiADQYABakEwaikDACISNwMAIANBwABqQSBqIANBgAFqQShqKQMAIhM3AwAgA0HAAGpBGGogA0GAAWpBIGopAwAiFDcDACADQcAAakEQaiADQYABakEYaikDACIVNwMAIANByABqIANBgAFqQRBqKQMAIhY3AwAgAyADKQOIASIXNwNAIABBwABqIA83AwAgAEE4aiARNwMAIABBMGogEjcDACAAQShqIBM3AwAgAEEgaiAUNwMAIABBGGogFTcDACAAQRBqIBY3AwAgACAXNwMIIABCAjcDAAJAIAtFDQAgDCALQQEQt4WAgAALIAhFDQIgDSAIQQEQt4WAgAAMAgsgAEELaiADLQDjAToAACAAQQlqIAMvAOEBOwAAIABBJGogAykC/AE3AgAgAEEsaiADQeABakEkaikCADcCACAAQTRqIANB4AFqQSxqKQIANwIAIABBPGogA0HgAWpBNGopAgA3AgAgAEHEAGogA0HgAWpBPGooAgA2AgAgAykC5AEhDyADKQLsASERIABBHGogAykC9AE3AAAgAEEUaiARNwAAIABBDGogDzcAACAAIAI6AAggAEICNwMADAMLIAAgAykDyAE3A0ggA0HAAGpBOGoiDiADQYABakHAAGopAwA3AwAgA0HAAGpBMGoiECADQYABakE4aikDADcDACADQcAAakEoaiIYIANBgAFqQTBqKQMANwMAIANBwABqQSBqIhkgA0GAAWpBKGopAwA3AwAgA0HAAGpBGGoiGiADQYABakEgaikDADcDACADQcAAakEQaiIbIANBgAFqQRhqKQMANwMAIANByABqIhwgA0GAAWpBEGopAwA3AwAgAEHQAGogA0GAAWpB0ABqKQMANwMAIABB2ABqIANBgAFqQdgAaikDADcDACADIAMpA4gBNwNAIABBwABqIA4pAwA3AwAgAEE4aiAQKQMANwMAIABBMGogGCkDADcDACAAQShqIBkpAwA3AwAgAEEgaiAaKQMANwMAIABBGGogGykDADcDACAAQRBqIBwpAwA3AwAgACADKQNANwMIIAAgDzcDAAJAIAtFDQAgDCALQQEQt4WAgAALAkAgCEUNACANIAhBARC3hYCAAAsCQCAHRQ0AIAIgB0EBELeFgIAACwJAIApFDQAgCSAKQQEQt4WAgAALAkAgBEUNACAFIARBARC3hYCAAAsgAUUNAiAGIAFBARC3hYCAAAwCCwJAIAdFDQAgAiAHQQEQt4WAgAALIApFDQAgCSAKQQEQt4WAgAALAkAgBEUNACAFIARBARC3hYCAAAsgAUUNACAGIAFBARC3hYCAAAsgA0HwAmokgICAgAALwg0FBn8CfgR/AX4DfyOAgICAAEGgAWsiAySAgICAACADIAI2AiwgAyABNgIoIANBCGogA0EoahC7goCAAAJAAkACQAJAAkACQCADKAIIRQ0AIANB3ABqIANBGGopAwA3AgAgA0HUAGogA0EQaikDADcCACADIAMpAwg3AkwMAQsgA0HIAGogAygCDBD2iYCAACADLQBIIgJBOUcNAQsgA0HIAGpBFGooAgAhAiADQcgAakEIaigCACEBIAMoAkwhBCADQQhqIANByABqQRBqIgUoAgAiBiADQcgAakEYaiIHKAIAEJuDgIAAAkACQAJAAkACQAJAAkACQAJAIAMoAggNACAHIANBCGpBGGopAwA3AwAgBSADQQhqQRBqKQMANwMAIAMgAykDEDcDUAwBCyADQShqQRBqIANBCGpBFGooAgA2AgAgA0EoakEIaiADQRRqKQIANwMAIAMgAykCDDcDKCADQcgAaiADQShqEPqJgIAAIAMtAEgiBUE5Rw0BCyADQdwAaiIIKAIAIQUgA0HIAGpBEGooAgAhByADIANB4ABqKAIANgIsIAMgBzYCKCADQQhqIANBKGoQu4KAgAAgAygCCEUNASAIIANBCGpBEGopAwA3AgAgA0HUAGogA0EQaikDADcCACADIAMpAwg3AkwMAgsgACADKABJNgABIAAgAykDaDcDICAAQQRqIAMoAEw2AAAgAEEoaiADQcgAakEoaikDADcDACAAQTBqIANByABqQTBqKQMANwMAIABBOGogA0HIAGpBOGopAwA3AwAgAykDUCEJIAMpA1ghCiAAIAMpA2A3ABggACAKNwAQIAAgCTcACCAAIAU6AAAMCAsgA0HIAGogAygCDBD2iYCAACADLQBIIghBOUcNAQsgA0HIAGpBFGoiCygCACEIIANByABqQQhqKAIAIQwgAygCTCENIANBCGogA0HIAGpBEGooAgAiDiADQeAAaigCABCHgYCAACADKAIIDQEgCyADQQhqQRRqKQIANwIAIANByABqQQxqIANBCGpBDGopAgA3AgAgAyADKQIMNwJMDAILIAAgAy8ASTsAASAAIAMpAmQ3AhwgAEEDaiADLQBLOgAAIABBJGogA0HIAGpBJGopAgA3AgAgAEEsaiADQcgAakEsaikCADcCACAAQTRqIANByABqQTRqKQIANwIAIABBPGogA0HIAGpBPGooAgA2AgAgAykCTCEJIAMpAlQhCiAAIAMpAlw3ABQgACAKNwAMIAAgCTcABCAAIAg6AAAMBAsgA0GIAWpBEGogA0EIakEUaigCADYCACADQYgBakEIaiADQRRqKQIANwMAIAMgAykCDDcDiAEgA0HIAGogA0GIAWoQ+omAgAAgAy0ASCILQTlHDQELIANBO2ogA0HIAGpBFGopAgAiCTcAACADQTNqIANByABqQQxqKQIAIgo3AAAgAyADKQJMIg83ACsgAEEUaiAJNwAAIABBDGogCjcAACAAIA83AAQgAEE5OgAAAkAgDEUNACANIAxBARC3hYCAAAsCQCAIRQ0AIA4gCEEBELeFgIAACwJAIAVFDQAgByAFQQEQt4WAgAALAkAgAUUNACAEIAFBARC3hYCAAAsgAkUNBCAGIAJBARC3hYCAAAwECyAAIAMpAmQ3AhwgA0E/aiIQIANByABqQRhqKAAANgAAIANBOGoiESADQcgAakERaikAADcDACADQTBqIhIgA0HIAGpBCWopAAA3AwAgAEEkaiADQcgAakEkaikCADcCACAAQSxqIANByABqQSxqKQIANwIAIABBNGogA0HIAGpBNGopAgA3AgAgAEE8aiADQcgAakE8aigCADYCACADIAMpAEk3AyggAEEYaiAQKAAANgAAIABBEWogESkDADcAACAAQQlqIBIpAwA3AAAgACADKQMoNwABIAAgCzoAAAJAIAxFDQAgDSAMQQEQt4WAgAALIAhFDQEgDiAIQQEQt4WAgAAMAQsgACADLwBJOwABIAAgAykCZDcCHCAAQQNqIAMtAEs6AAAgAEEkaiADQcgAakEkaikCADcCACAAQSxqIANByABqQSxqKQIANwIAIABBNGogA0HIAGpBNGopAgA3AgAgAEE8aiADQcgAakE8aigCADYCACADKQJMIQkgAykCVCEKIAAgAykCXDcAFCAAIAo3AAwgACAJNwAEIAAgAjoAAAwCCyAFRQ0AIAcgBUEBELeFgIAACwJAIAFFDQAgBCABQQEQt4WAgAALIAJFDQAgBiACQQEQt4WAgAALIANBoAFqJICAgIAAC9YJAgd/AX4jgICAgABB0AFrIgQkgICAgAACQAJAAkACQEEgQQEQtoWAgAAiBUUNACAFQRhqQQApAKy5wIAANwAAIAVBEGpBACkApLnAgAA3AAAgBUEIakEAKQCcucCAADcAACAFQQApAJS5wIAANwAAIAFBwABqKAIAIgYgBUEgIAFBxABqKAIAKAIoIgcRg4CAgAAAIAVBIEEBELeFgIAAIAFBPGooAgAhCCABQThqKAIAIQFBC0EBELaFgIAAIgVFDQEgBUEHakEAKADBwcCAADYAACAFQQApALrBwIAANwAAIARBEGogASAFQQsgCCgCDBGAgICAAAAgBUELQQEQt4WAgAACQAJAAkACQCAEKAIQRQ0AIARB7ABqIARBGGooAgA2AgAgBCAEKQMQNwJkDAELIARBwAFqIAIQr5CAgAAgBEHgAGogBEHAAWoQ8omAgAAgBC0AYCIFQTlHDQELIARBCGoiBSAEQeAAakEMaigCADYCACAEIAQpAmQ3AwAgBEHgAGogA0HgABC8kYCAABogBEHAAWpBCGogBSgCADYCACAEIAQpAwA3A8ABIARBIGogBEHgAGogBEHAAWoQ7oGAgAACQCAELQAgIgVBOUcNACAEQSBqQQxqKAIAIQkgBEEgakEIaigCACEDIAQoAiQhCkE7QQEQtoWAgAAiBUUNBSAFQTdqQQAoAOu5wIAANgAAIAVBMGpBACkA5LnAgAA3AAAgBUEoakEAKQDcucCAADcAACAFQSBqQQApANS5wIAANwAAIAVBGGpBACkAzLnAgAA3AAAgBUEQakEAKQDEucCAADcAACAFQQhqQQApALy5wIAANwAAIAVBACkAtLnAgAA3AAAgBiAFQTsgBxGDgICAAAAgBUE7QQEQt4WAgABBC0EBELaFgIAAIgVFDQYgBUEHakEAKADBwcCAADYAACAFQQApALrBwIAANwAAIAEgBUELIAogCSAIKAIUEYKAgIAAACAFQQtBARC3hYCAAAJAIANFDQAgCiADQQEQt4WAgAALIABBOToAAAwCCyAAIAQvACE7AAEgACAEKQMwNwMQIABBA2ogBC0AIzoAACAAQRhqIARBIGpBGGopAwA3AwAgAEEgaiAEQSBqQSBqKQMANwMAIABBKGogBEEgakEoaikDADcDACAAQTBqIARBIGpBMGopAwA3AwAgAEE4aiAEQSBqQThqKQMANwMAIAQpAiQhCyAAIAQoAiw2AAwgACALNwAEIAAgBToAAAwBCyAAIAQpA3A3AxAgAEEYaiAEQeAAakEYaikDADcDACAAQSBqIARB4ABqQSBqKQMANwMAIABBKGogBEHgAGpBKGopAwA3AwAgAEEwaiAEQeAAakEwaikDADcDACAAQThqIARB4ABqQThqKQMANwMAIAQgBCkAYTcDICAEIARB4ABqQQhqKQAANwAnIABBCGogBCkAJzcAACAAIAQpAyA3AAEgACAFOgAAIANBMGooAgAiAEUNACADKAIsIABBKGxBCBC3hYCAAAsCQCACQQRqKAIAIgBFDQAgAigCACAAQQEQt4WAgAALIARB0AFqJICAgIAADwtBIEEBEKiQgIAAAAtBC0EBEKiQgIAAAAtBO0EBEKiQgIAAAAtBC0EBEKiQgIAAAAuWGAQOfwJ+A38CfiOAgICAAEHwAWsiAySAgICAACADQcgAaiACKAIAIgQgAkEIaigCABC9goCAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAygCSEUNACADQYwBaiADQdgAaikDADcCACADQYQBaiADQcgAakEIaikDADcCACADIAMpA0g3AnwMAQsgA0H4AGogAygCTBD2iYCAACADLQB4IgVBOUcNAQsgA0GMAWooAgAhBiADQfgAakEIaigCACEHIAMoAnwhCCADQcgAaiADQfgAakEQaigCACIJIANBkAFqKAIAEM2BgIAAAkACQAJAIAMoAlgiCkUNACADKAJsIQUgAygCaCELIAMoAmQhDCADKAJcIQ0MAQsgA0G4AWpBEGogA0HsAGooAgA2AgAgA0G4AWpBCGogA0HkAGopAgA3AwAgAyADKQJcNwO4ASADQZGAgIAANgLUASADIANBuAFqNgLQASADQQE2AowBIANCATcCfCADQdS7wIAANgJ4IAMgA0HQAWo2AogBIANB4AFqIANB+ABqEK2QgIAAIANB+ABqIANB4AFqEPSJgIAAAkAgAygCuAENACADQcABaigCACIFRQ0AIAMoArwBIAVBARC3hYCAAAsgA0HIAWoQkY2AgAAgAyADKAB5NgJAIAMgAygAfDYAQyADKAKQASEKIAMoApQBIQ0gAygCnAEhDCADKAKgASELIAMoAqQBIQUgAy0AeCIOQTlHDQELQShBARC2hYCAACIORQ0CIA5BIGpBACkAuovAgAA3AAAgDkEYakEAKQCyi8CAADcAACAOQRBqQQApAKqLwIAANwAAIA5BCGpBACkAoovAgAA3AAAgDkEAKQCai8CAADcAACADQcgAaiABEMWAgIAAIAMoAkhBBEcNAyADQYwBaiADQdQAaigCADYCACADIAMpAkw3AoQBIANCqICAgIAFNwJ8IAMgDjYCeCADQcgAaiADQfgAahC6goCAAAJAIA1FDQAgCiANQQEQt4WAgAALIAMoAlAhDiADKAJMIQ8gAygCSCEQAkAgAygCfCINRQ0AIAMoAnggDUEBELeFgIAACwJAIANBiAFqKAIAIg1FDQAgAygChAEgDUEBELeFgIAACyADQTBqIAE1AiggATUCJBCmi4CAACADKQM4IREgAykDMCESQQEhCkElQQEQtoWAgAAiDUUNBCANQR1qQQApAMmtwIAANwAAIA1BGGpBACkAxK3AgAA3AAAgDUEQakEAKQC8rcCAADcAACANQQhqQQApALStwIAANwAAIA1BACkArK3AgAA3AAACQCAORQ0AIA5Bf0oiE0UNBiAOIBMQtoWAgAAiCkUNBwsgCiAQIA4QvJGAgAAhCgJAAkAgBQ0AQQEhEwwBCyAFQX9KIhRFDQYgBSAUELaFgIAAIhNFDQgLIBMgDCAFELyRgIAAIRMgA0GkAWogBTYCACADQaABaiAFNgIAIANBmAFqIA42AgAgA0GUAWoiFCAONgIAIAMgEzYCnAEgAyAKNgKQASADQSBqIBIgERCwioCAACADQgE3A3ggAyADKQMoNwOIASADIAMpAyA3A4ABIANB+ABqEOiBgIAAIQoCQCAUKAIAIhNFDQAgAygCkAEgE0EBELeFgIAACwJAIAMoAqABIhNFDQAgAygCnAEgE0EBELeFgIAAC0EBIRRBASETAkAgCkUNACAKQX9KIhVFDQYgCiAVELaFgIAAIhNFDQkLIANBADYC6AEgAyAKNgLkASADIBM2AuABAkAgDkUNACAOQQEQtoWAgAAiFEUNCgsgFCAQIA4QvJGAgAAhCgJAAkAgBQ0AQQEhEwwBCyAFQQEQtoWAgAAiE0UNCwsgEyAMIAUQvJGAgAAhEyADQaQBaiAFNgIAIANBoAFqIAU2AgAgA0GYAWogDjYCACADQZQBaiAONgIAIAMgEzYCnAEgAyAKNgKQASADQRBqIBIgERCwioCAACADQgE3A3ggAyADKQMYNwOIASADIAMpAxA3A4ABAkAgA0H4AGoQ6IGAgAAiBSADKALoAUH/////B3MiDksNACADKAKYAQ0MDA4LIANBCGogBSAOELmNgIAAIANByABqIAMoAgggAygCDBDljICAACADKAJIIQUCQCADKAKUASIORQ0AIAMoApABIA5BARC3hYCAAAsCQCADKAKgASIORQ0AIAMoApwBIA5BARC3hYCAAAsgA0G4AWpBCGogA0HgAWpBCGooAgA2AgAgAyADKQPgATcDuAEgBUEERw0MDA4LIAMpA4ABIREgAykDiAEhEiADKAKYASEQIAMpA6gBIRYgAykDsAEhFyAAIAMoAkA2AAEgAEEEaiADKABDNgAAIAAgFjcAMCAAIAU2ACwgACALNgAoIAAgDDYAJCAAIBA2ACAgACANNgAcIAAgCjYAGCAAIBI3ABAgACARNwAIIAAgFzcDOCAAIA46AAACQCAHRQ0AIAggB0EBELeFgIAACyAGRQ0OIAkgBkEBELeFgIAADA4LIAAgAy8AeTsAASAAIAMpApQBNwIcIABBA2ogAy0AezoAACAAQSRqIANB+ABqQSRqKQIANwIAIABBLGogA0H4AGpBLGopAgA3AgAgAEE0aiADQfgAakE0aikCADcCACAAQTxqIANB+ABqQTxqKAIANgIAIAMpAnwhESADKQKEASESIAAgAykCjAE3ABQgACASNwAMIAAgETcABCAAIAU6AAAMDQtBKEEBEKiQgIAAAAsgA0H4AGpBEGogA0HIAGpBEGooAgA2AgAgA0H4AGpBCGogA0HIAGpBCGopAwA3AwAgAyADKQNINwN4QcKLwIAAQSsgA0H4AGpB8IvAgABBgIzAgAAQ2pCAgAAAC0ElQQEQqJCAgAAACxCpkICAAAALIA4gExCokICAAAALIAUgFBCokICAAAALIAogFRCokICAAAALIA5BARCokICAAAALIAVBARCokICAAAALQQEgA0GQAWogA0HgAWoQiIWAgAAMAQsgA0HQAWpBCGoiDiADQcgAakEMaigCADYCACADIAMpAkw3A9ABIAMoAlghACADQbgBahC+gICAACADQfgAakEMaiAOKAIANgIAIAMgBTYCeCADIAMpA9ABNwJ8IAMgADYCiAFB0a3AgABBxQAgA0H4AGpBmK7AgABB7K7AgAAQ2pCAgAAACwJAIAMoAqQBRQ0AQQIgA0GcAWogA0HgAWoQiIWAgAALAkAgAykDeEIBUg0AAkAgAygC5AEgAygC6AEiBUcNACADQeABaiAFQQEQuoCAgAAgAygC6AEhBQsgAygC4AEgBWpBGjoAACADIAVBAWoiBTYC6AFBACEOIAMpA4gBIRFBACEKAkAgAykDgAEiElANACASQgGEeadBP3NBCWxByQBqQcAPcUEGdkEBaiEKCwJAIBFQDQAgEUIBhHmnQT9zQQlsQckAakHAD3FBBnZBAWohDgsgDiAKaiEOAkAgAygC5AEgBUcNACADQeABaiAFQQEQuoCAgAAgAygC6AEhBQsgAygC4AEgBWogDjoAACADIAVBAWo2AugBAkAgAykDgAFQDQBBASADQYABaiADQeABahCpgYCAAAsgAykDiAFQDQBBAiADQYgBaiADQeABahCpgYCAAAsCQCADKAKUASIFRQ0AIAMoApABIAVBARC3hYCAAAsgAygCoAEiBUUNACADKAKcASAFQQEQt4WAgAALIANBjAFqIANB6AFqKAIANgIAIAMgAykD4AE3AoQBIANCpYCAgNAENwJ8IAMgDTYCeCAAQQRqIANB+ABqELqCgIAAAkAgAygCfCIFRQ0AIAMoAnggBUEBELeFgIAACwJAIANBiAFqKAIAIgVFDQAgAygChAEgBUEBELeFgIAACyAAQTk6AAACQCAPRQ0AIBAgD0EBELeFgIAACwJAIAtFDQAgDCALQQEQt4WAgAALAkAgB0UNACAIIAdBARC3hYCAAAsgBkUNACAJIAZBARC3hYCAAAsCQCACQQRqKAIAIgVFDQAgBCAFQQEQt4WAgAALAkAgAUEwaigCACIFRQ0AIAEoAiwgBUEobEEIELeFgIAACyADQfABaiSAgICAAAvnBAEFfyOAgICAAEHgAGsiBiSAgICAACAGIAQ3AwggBiADNwMAIAZB3ABqQbKAgIAANgIAIAZBt4CAgAA2AlQgBiACNgJQIAYgBjYCWCAGQQI2AkwgBkICNwI8IAZBsLrAgAA2AjggBiAGQdAAajYCSCAGQShqIAZBOGoQrZCAgAAgAUHAAGooAgAiByAGKAIoIgggBigCMCABQcQAaigCACgCKCIJEYOAgIAAAAJAIAYoAiwiCkUNACAIIApBARC3hYCAAAsgBkE4akEQaiAFQRBqKQIANwMAIAZBOGpBCGoiCCAFQQhqKQIANwMAIAYgBSkCADcDOCAGQRBqIAZBOGoQ8IGAgAAgBkHQAGogBigCECAGKAIYQaTewIAAEM6OgIAAIAggBkHQAGpBCGopAwA3AwAgBiAGKQNQNwM4IAZBKGogBkE4ahDMhICAACAGQbOAgIAANgIkIAYgBkEoajYCICAGQQE2AkwgBkIBNwI8IAZBhLvAgAA2AjggBiAGQSBqNgJIIAZB0ABqIAZBOGoQrZCAgAACQCAGKAIsIgVFDQAgBigCKCAFQQEQt4WAgAALIAYoAlQhBSAHIAYoAlAiCCAGKAJYIAkRg4CAgAAAAkAgBUUNACAIIAVBARC3hYCAAAsgBiABQThqKQMANwNQIAYpAwAhBCAGKQMIIQMgBkE4akEIaiAGQRBqQQhqKAIANgIAIAYgBikDEDcDOCAGQdAAaiAEIAMgBkE4ahDUgoCAACAAQTk6AAACQCACQQRqKAIAIgFFDQAgAigCACABQQEQt4WAgAALIAZB4ABqJICAgIAAC9kCAwF/AX4BfyOAgICAAEHQAGsiAiSAgICAACACQThqIAEQ2IeAgAAgAkEYaiACQThqELqCgIAAIAJBKGogARDZh4CAACACQShqEJqLgIAAIQMgAkEQaiACQSBqKAIANgIAIAJBATYCFCACIAM3AwAgAiACKQMYNwMIAkAgAigCPCIERQ0AIAIoAjggBEEBELeFgIAACwJAIAJBOGpBEGooAgAiBEUNACACKAJEIARBARC3hYCAAAsgAkE4aiACEJGDgIAAIAAgAkE4ahC6goCAAAJAIAJBDGooAgAiAEUNACACKAIIIABBARC3hYCAAAsCQCACKAI8IgBFDQAgAigCOCAAQQEQt4WAgAALAkAgAkE4akEQaigCACIARQ0AIAIoAkQgAEEBELeFgIAACwJAIAFBEGooAgAiAEUNACABKAIMIABBARC3hYCAAAsgAkHQAGokgICAgAAL1QsCDH8DfiOAgICAAEGAAWsiAySAgICAAAJAAkAgAkUNACADQeAAakH0u8CAACAAQThqKAIAIgQgAEE8aigCACIFEIOBgIAAAkACQCADKAJgQQ1HDQAgA0EIaiADQewAaigCADYCACADIAMpAmQ3AwAMAQsgA0EANgIIIANCATcDACADQeAAahDMgYCAAAsCQCADKAIEIAMoAggiBmsgAk8NACADIAYgAhC5gICAAAsgAkEFdCEHIABBxABqKAIAIQggAEHAAGooAgAhCQJAAkACQAJAA0AgA0HgAGpBGGoiBiABQRhqIgopAAA3AwAgA0HgAGpBEGoiCyABQRBqIgwpAAA3AwAgA0HgAGpBCGoiDSABQQhqIg4pAAA3AwAgAyABKQAANwNgAkAgAygCCCICIAMoAgRHDQAgAyACELSAgIAAIAMoAgghAgsgAygCACACQQV0aiIAIAMpA2A3AAAgAEEIaiANKQMANwAAIABBEGogCykDADcAACAAQRhqIAYpAwA3AAAgAyACQQFqNgIIQSBBARC2hYCAACIARQ0BIAAgASkAADcAACAAQQhqIA4pAAA3AAAgAEEQaiAMKQAANwAAIABBGGogCikAADcAACADIAA2AmAgA0KggICAgAQ3AmQgA0EQakGYvMCAACAEIAUgA0HgAGpBjLXAgAAQ34SAgAACQCADKAIQQQ1GDQAgBiADQRBqQRhqKQMANwMAIAsgA0EQakEQaikDADcDACANIANBEGpBCGopAwA3AwAgAyADKQMQNwNgIANBuICAgAA2AkQgAyADQeAAajYCQCADQQE2AlwgA0IBNwJMIANBlL3AgAA2AkggAyADQcAAajYCWCADQTBqIANByABqEK2QgIAAIAkgAygCMCIAIAMoAjggCCgCKBGDgICAAAACQCADKAI0IgJFDQAgACACQQEQt4WAgAALIANB4ABqEMyBgIAACyABQSBqIQEgB0FgaiIHDQALIAMoAggiAUH0A00NAyADQQA2AgggAUGMfGohByABQQV0QYCDf2ohAiADKAIAIQEDQCADQeAAakEYaiIGIAFBGGopAAA3AwAgA0HgAGpBEGoiCyABQRBqKQAANwMAIANB4ABqQQhqIg0gAUEIaikAADcDACADIAEpAAA3A2BBIEEBELaFgIAAIgBFDQIgACADKQNgNwAAIABBGGogBikDADcAACAAQRBqIAspAwA3AAAgAEEIaiANKQMANwAAIANCoICAgIAENwIUIAMgADYCECADQcgAakH8u8CAAEEZIANBEGoQ3oSAgAAgBCADKAJIIgAgAygCUCAFQRhqKAIAEYOAgIAAAAJAIAMoAkwiBkUNACAAIAZBARC3hYCAAAsgAUEgaiEBIAJBYGoiAkUNAwwACwtBIEEBEKiQgIAAAAtBIEEBEKiQgIAAAAsCQCAHIAMoAggiAUYNACADKAIAIgAgAUEFdGogACAHQQV0akGA/QAQwZGAgAAaCyADIAFB9ANqNgIICyADQRBqIAMQlYOAgAACQAJAIAMoAhANACADQeAAakEMaiADQRBqQQxqKAIANgIAIAMgAykCFDcCZAwBCyADQcgAakEIaiADQRxqKAIANgIAIAMgAykCFDcDSCADQeAAakH7ncGAAEEmIANByABqENOEgIAAIAMoAmAiAUENRw0CCyADQegAaigCACEBIARB3LvAgABBFSADKAJkIgAgA0HsAGooAgAgBSgCFBGCgICAAAACQCABRQ0AIAAgAUEBELeFgIAACyADKAIEIgFFDQAgAygCACABQQV0QQEQt4WAgAALIANBgAFqJICAgIAADwsgA0EQakEIaiADQfgAaiIAKQMAIg83AwAgAyADKQNwIhA3AxAgAykCZCERIAMoAmwhAiAAIA83AwAgAyACNgJsIAMgETcCZCADIAE2AmAgAyAQNwNwQaC8wIAAQRogA0HgAGpB9LHAgABB6LzAgAAQ2pCAgAAAC80BAQV/I4CAgIAAQSBrIgIkgICAgAAgAkH0u8CAACAAQThqKAIAIABBPGooAgAQg4GAgAACQAJAIAIoAgBBDUcNACACQQxqKAIAIQAgAkEIaigCACEDIAIoAgQhBAwBCyACEMyBgIAAQQEhBEEAIQBBACEDCyAAQQV0IQVBACEGAkADQCAFIAYiAEYNASAAQSBqIQYgBCAAaiABQSAQupGAgAANAAsLAkAgA0UNACAEIANBBXRBARC3hYCAAAsgAkEgaiSAgICAACAFIABHC7IFAQF/I4CAgIAAQdABayIGJICAgIAAIAYgAzcDECAGIAI3AwggBiAFNgIcIAYgBDYCGCAGIAFBOGopAwA3A7ABIAZBuAFqIAZBsAFqIAIgAyAEIAUQ04KAgAACQAJAIAYoArgBRQ0AIAYgBikDuAEiAzcDYCAGKAJkIQUgBkEgaiADpyIEIAZBuAFqQQhqKAIAEOyBgIAAAkACQCAGLQAgQTlHDQAgACAGKQIkNwIEIABBCzYCACAAQRRqIAZBIGpBFGopAgA3AgAgAEEMaiAGQSBqQQxqKQIANwIADAELIAZB8ABqQThqIAZBIGpBOGopAwA3AwAgBkHwAGpBMGogBkEgakEwaikDADcDACAGQfAAakEoaiAGQSBqQShqKQMANwMAIAZB8ABqQSBqIAZBIGpBIGopAwA3AwAgBkHwAGpBGGogBkEgakEYaikDADcDACAGQfAAakEQaiAGQSBqQRBqKQMANwMAIAZB8ABqQQhqIAZBIGpBCGopAwA3AwAgBiAGKQMgNwNwIAZBuYCAgAA2ArQBIAYgBkHwAGo2ArABIAZBATYCzAEgBkIBNwK8ASAGQfy9wIAANgK4ASAGIAZBsAFqNgLIASAGQeAAaiAGQbgBahCtkICAACAGQfAAahDWgYCAACAAQQM2AgAgACAGKQNgNwIEIABBDGogBkHgAGpBCGooAgA2AgALIAVFDQEgBCAFQQEQt4WAgAAMAQsgBkEsakG6gICAADYCACAGQbuAgIAANgIkIAYgBkEYajYCKCAGIAZBCGo2AiAgBkECNgKEASAGQgI3AnQgBkHMvcCAADYCcCAGIAZBIGo2AoABIAZB4ABqIAZB8ABqEK2QgIAAIAYpA2AhAyAAIAYoAmg2AgwgACADNwIEIABBAzYCAAsgBkHQAWokgICAgAALmwEBAn8jgICAgABBMGsiBiSAgICAACAGQRBqQRBqIANBEGopAgA3AwAgBkEQakEIaiIHIANBCGopAgA3AwAgBiADKQIANwMQIAYgBkEQahDwgYCAACAGIABBOGopAwA3AyggByAGQQhqKAIANgIAIAYgBikDADcDECAGQShqIAEgAiAGQRBqIAQgBRDVgoCAACAGQTBqJICAgIAAC/cEAgF/AX4jgICAgABB4AFrIgQkgICAgAAgBCADNgIMIAQgAjYCCCAEIAFBOGopAwA3A8ABIARBgAFqIARBwAFqIAIgAxCHgoCAAAJAAkAgBCgCgAFFDQAgBCAEKQOAASIFNwPIASAEKALMASEDIARBEGogBaciAiAEQYABakEIaiIBKAIAEOuBgIAAAkACQCAEKQMQQgJRDQAgACAEQRBqQeAAELyRgIAAGgwBCyAEQYABakE4aiAEQdAAaikDADcDACAEQYABakEwaiAEQRBqQThqKQMANwMAIARBgAFqQShqIARBEGpBMGopAwA3AwAgBEGAAWpBIGogBEEQakEoaikDADcDACAEQYABakEYaiAEQRBqQSBqKQMANwMAIARBgAFqQRBqIARBEGpBGGopAwA3AwAgASAEQRBqQRBqKQMANwMAIAQgBCkDGDcDgAEgBEG5gICAADYCxAEgBCAEQYABajYCwAEgBEEBNgLcASAEQgE3AswBIARB0L7AgAA2AsgBIAQgBEHAAWo2AtgBIARB8ABqIARByAFqEK2QgIAAIARBgAFqENaBgIAAIABBAzYCCCAAQQxqIAQpA3A3AgAgAEEUaiAEQfAAakEIaigCADYCACAAQgI3AwALIANFDQEgAiADQQEQt4WAgAAMAQsgBEG6gICAADYCdCAEIARBCGo2AnAgBEEBNgIkIARCATcCFCAEQai+wIAANgIQIAQgBEHwAGo2AiAgBEHIAWogBEEQahCtkICAACAEKQPIASEFIABBFGogBCgC0AE2AgAgAEEMaiAFNwIAIABBAzYCCCAAQgI3AwALIARB4AFqJICAgIAAC4MGAgN/AX4jgICAgABBgAJrIgUkgICAgAAgBSABQTxqKAIAIgY2AgwgBSABQThqKAIAIgc2AgggBUGAAWogBUEIaiADIAQQh4KAgAACQAJAIAUoAoABIgFFDQAgBSkChAEhCCAFQYABaiACQeAAELyRgIAAGiAFIAg3AuwBIAUgATYC6AEgBUHAAGogBUGAAWogBUHoAWoQ7oGAgAACQCAFLQBAQTlHDQAgBUEQakEIaiAFQcwAaigCACIBNgIAIAUgBSkCRCIINwMQIAUgBjYCRCAFIAc2AkAgBUGAAWpBCGogATYCACAFIAg3A4ABIAVBwABqIAVBgAFqIAMgBBCIgoCAACAAQQs2AgAMAgsgBUGAAWpBOGogBUHAAGpBOGopAwA3AwAgBUGAAWpBMGogBUHAAGpBMGopAwA3AwAgBUGAAWpBKGogBUHAAGpBKGopAwA3AwAgBUGAAWpBIGogBUHAAGpBIGopAwA3AwAgBUGAAWpBGGogBUHAAGpBGGopAwA3AwAgBUGAAWpBEGogBUHAAGpBEGopAwA3AwAgBUGAAWpBCGogBUHAAGpBCGopAwA3AwAgBSAFKQNANwOAASAFQbmAgIAANgLkASAFIAVBgAFqNgLgASAFQQE2AvwBIAVCATcC7AEgBUGYv8CAADYC6AEgBSAFQeABajYC+AEgBUEwaiAFQegBahCtkICAACAFQYABahDWgYCAACAFQSBqQQhqIAVBMGpBCGooAgAiATYCACAFIAUpAzAiCDcDICAAQQxqIAE2AgAgACAINwIEIABBAzYCAAwBCwJAQSBBARC2hYCAACIBRQ0AIAFBGGpBACkA8L7AgAA3AAAgAUEQakEAKQDovsCAADcAACABQQhqQQApAOC+wIAANwAAIAFBACkA2L7AgAA3AAAgAEKggICAgAQ3AgggACABNgIEIABBAzYCACACQTBqKAIAIgBFDQEgAigCLCAAQShsQQgQt4WAgAAMAQtBIEEBEKiQgIAAAAsgBUGAAmokgICAgAALpxUDAn8Bfgt/I4CAgIAAQeACayIDJICAgIAAEJaGgIAAIANBOGogABCphoCAACADQcgAaiABEKmGgIAAIANB2ABqIAIQqYaAgAAgA0HwAWogAygCOCIEIAMoAkAQ1IOAgAACQAJAAkACQAJAAkAgAygCkAJBAkcNACADQQhqQQhqIANB8AFqQQhqKQMANwMAIAMgAykD8AE3AwggA0GIAWpBx5/BgABBGCADQQhqENSEgIAADAELIANBiAFqQTBqIANB8AFqQTBqKQMANwMAIANBiAFqQShqIANB8AFqQShqKQMANwMAIANBiAFqQRhqIANB8AFqQRhqKQMANwMAIANBiAFqQRBqIANB8AFqQRBqKQMANwMAIANBiAFqQQhqIgAgA0HwAWpBCGopAwA3AwAgA0GIAWpBIGoiASADQfABakEgaikDACIFNwMAIAMgAykD8AE3A4gBIAWnQQJGDQAgA0H4AGpBCGogACkDADcDACADQegAakEIaiABKQMANwMAIAMgAykDiAE3A3ggAyADKQOgATcDaCADKAKYASEGIAMoApwBIQcgAygCsAEhCCADKAK0ASEJIAMpA7gBIQUgA0HwAWogAygCSCIKIAMoAlAQ1oOAgAACQAJAAkACQAJAAkACQCADKALwAUUNACADQdQBaiADQYACaikDADcCACADQcwBaiADQfgBaikDADcCACADIAMpA/ABNwLEAQwBCyADQYgBakEIaiIAIANB/AFqKQIANwMAIAMgAykC9AE3A4gBIANBwAFqQeGgwYAAQSAgA0GIAWoQ1ISAgAAgAygCwAFBDUcNAQsgA0HYAWooAgAhASADQdQBaigCACELIANB0AFqKAIAIQwgA0HAAWpBDGooAgAhDSADQcABakEIaigCACECIAMoAsQBIQ4gA0GIAWogAygCWCIPIAMoAmAQhYeAgAAgA0HwAWogA0GIAWpBvLXBgABBDkGEs8GAAEEAEN2DgIAAAkACQAJAIAMoAvABIgBBFUcNACADQfABaiADQYgBahCHh4CAACADKALwASIAQRVGDQIgA0EQaiADQfwBaigCADYCACADIAMpAvQBNwMIDAELIANBCGpBCGogA0HwAWpBDGooAgA2AgAgAyADKQL0ATcDCAsgA0H8AWogA0EIakEIaigCADYCACADIAA2AvABIAMgAykDCDcC9AEgA0HAAWpBrZ3BgABBJSADQfABahDUhICAACADKALAAUENRw0CCxDdhoCAABDdhoCAABDdhoCAACADQbwCakGA1sCAADYCACADQbQCakHU1cCAADYCACADQawCakG41cCAADYCACADQfABakEIaiIAIANB+ABqQQhqKQMANwMAIANB8AFqQSBqIhAgA0HoAGpBCGopAwA3AwAgA0HUAmogATYCACADQdACaiALNgIAIANBzAJqIAw2AgAgA0HIAmogDTYCACADQcQCaiACNgIAIANBuAJqIANB2AJqNgIAIANBsAJqIANB2AJqNgIAIAMgAykDeDcD8AEgAyAHNgKEAiADIAY2AoACIAMgAykDaDcDiAIgAyAONgLAAiADIAU3A6ACIAMgCTYCnAIgAyAINgKYAiADIANB2AJqNgKoAiADQYgBaiADQagCaiADQfABaiADQcACahDRg4CAACADQfABakEoaiADQYgBakEoaikDADcDACAQIANBiAFqQSBqKQMANwMAIANB8AFqQRhqIANBiAFqQRhqKQMANwMAIANB8AFqQRBqIANBiAFqQRBqKQMANwMAIAAgA0GIAWpBCGopAwA3AwAgAyADKQOIATcD8AEgA0EIaiADQfABahDbhICAAAJAIAMoAlwiAEUNACAPIABBARC3hYCAAAsCQCADKAJMIgBFDQAgCiAAQQEQt4WAgAALIAMoAjwiAEUNByAEIABBARC3hYCAAAwHCyADQYgBakEYaiADQcABakEYaikDADcDACADQYgBakEQaiADQcABakEQaikDADcDACAAIANBwAFqQQhqKQMANwMAIAMgAykDwAE3A4gBIANBADYC6AEgA0IBNwPgASADQfABaiADQeABakHQs8CAABDskICAACADQYgBaiADQfABahC/hoCAAA0BIANBFGogA0HoAWooAgA2AgAgAyADKQPgATcCDCADQQA2AgggA0GIAWoQzIGAgAAMAwsgA0GIAWpBGGogA0HAAWpBGGopAwA3AwAgA0GIAWpBEGogA0HAAWpBEGopAwA3AwAgA0GIAWpBCGogA0HAAWpBCGopAwA3AwAgAyADKQPAATcDiAEgA0EANgLoASADQgE3A+ABIANB8AFqIANB4AFqQdCzwIAAEOyQgIAAIANBiAFqIANB8AFqEL+GgIAADQEgA0EUaiADQegBaigCADYCACADIAMpA+ABNwIMIANBADYCCCADQYgBahDMgYCAAAJAIAJFDQAgDiACQQEQt4WAgAALAkAgAUUNACABQQV0IQEgDEEQaiEAA0ACQCAAQQRqKAIAIgJFDQAgACgCACACQQEQt4WAgAALIABBIGohACABQWBqIgENAAsLIAtFDQIgDCALQQV0QQgQt4WAgAAMAgtB6LPAgABBNyADQdgCakGgtMCAAEH8tMCAABDakICAAAALQeizwIAAQTcgA0HYAmpBoLTAgABB/LTAgAAQ2pCAgAAACwJAIAdFDQAgBiAHQQEQt4WAgAALIAlFDQEgCCAJQQEQt4WAgAAMAQsgA0HAAWpBGGogA0GIAWpBGGopAwA3AwAgA0HAAWpBEGogA0GIAWpBEGopAwA3AwAgA0HAAWpBCGogA0GIAWpBCGopAwA3AwAgAyADKQOIATcDwAEgA0EANgLoASADQgE3A+ABIANB8AFqIANB4AFqQdCzwIAAEOyQgIAAIANBwAFqIANB8AFqEL+GgIAADQIgA0EUaiADQeABakEIaigCADYCACADIAMpA+ABNwIMIANBADYCCCADQcABahDMgYCAAAsCQCADKAJcIgBFDQAgAygCWCAAQQEQt4WAgAALAkAgAygCTCIARQ0AIAMoAkggAEEBELeFgIAACyADKAI8IgBFDQAgBCAAQQEQt4WAgAALIANB8AFqIANBCGoQloOAgAACQAJAIAMoAvABDQAgA0GIAWpBDGogA0HwAWpBDGooAgA2AgAgAyADKQL0ATcCjAEMAQsgA0HAAWpBCGogA0H8AWooAgA2AgAgAyADKQL0ATcDwAEgA0GIAWpBoZ7BgABB4QAgA0HAAWoQ04SAgAAgAygCiAFBDUcNAgsgA0HAAWpBCGogA0GUAWooAgAiADYCACADIAMpAowBIgU3A8ABIANB8AFqQQhqIAA2AgAgAyAFNwPwASADQfABahCohoCAACEAIANBCGoQ24GAgAAgA0HgAmokgICAgAAgAA8LQeizwIAAQTcgA0HYAmpBoLTAgABB/LTAgAAQ2pCAgAAACyADQfABakEYaiADQYgBakEYaikDADcDACADQfABakEQaiADQYgBakEQaikDADcDACADQfABakEIaiADQYgBakEIaikDADcDACADIAMpA4gBNwPwAUHIscCAAEErIANB8AFqQfSxwIAAQfSywIAAENqQgIAAAAvoFAMCfwF+C38jgICAgABB4ARrIgMkgICAgAAQloaAgAAgA0E4aiAAEKmGgIAAIANByABqIAEQqYaAgAAgA0HYAGogAhCphoCAACADQYgDaiADKAI4IgQgAygCQBDUg4CAAAJAAkACQAJAAkACQCADKAKoA0ECRw0AIANBiAFqQQhqIANBiANqQQhqKQMANwMAIAMgAykDiAM3A4gBIANB8AFqQcefwYAAQRggA0GIAWoQ1ISAgAAMAQsgA0HwAWpBMGogA0GIA2pBMGopAwA3AwAgA0HwAWpBKGogA0GIA2pBKGopAwA3AwAgA0HwAWpBGGogA0GIA2pBGGopAwA3AwAgA0HwAWpBEGogA0GIA2pBEGopAwA3AwAgA0HwAWpBCGoiACADQYgDakEIaikDADcDACADQfABakEgaiIBIANBiANqQSBqKQMAIgU3AwAgAyADKQOIAzcD8AEgBadBAkYNACADQfgAakEIaiAAKQMANwMAIANB6ABqQQhqIAEpAwA3AwAgAyADKQPwATcDeCADIAMpA4gCNwNoIAMoAoACIQYgAygChAIhByADKAKYAiEIIAMoApwCIQkgAykDoAIhBSADQYgDaiADKAJIIgogAygCUBDWg4CAAAJAAkACQAJAAkACQAJAAkACQCADKAKIA0UNACADQZwBaiADQZgDaikDADcCACADQZQBaiADQZADaikDADcCACADIAMpA4gDNwKMAQwBCyADQfABakEIaiIAIANBlANqKQIANwMAIAMgAykCjAM3A/ABIANBiAFqQeGgwYAAQSAgA0HwAWoQ1ISAgAAgAygCiAFBDUcNAQsgA0GgAWooAgAhACADQZwBaigCACELIANBiAFqQRBqKAIAIQwgA0GUAWooAgAhDSADQYgBakEIaigCACEBIAMoAowBIQIgA0GIA2ogAygCWCIOIAMoAmAQ2oOAgAAgAykDiANCClINASADQQhqQQhqIANBiANqQRBqKQMANwMAIAMgAykDkAM3AwggA0HwAWpBCGpBpp/BgABBISADQQhqENSEgIAADAILIANB8AFqQRhqIANBiAFqQRhqKQMANwMAIANB8AFqQRBqIANBiAFqQRBqKQMANwMAIAAgA0GIAWpBCGopAwA3AwAgAyADKQOIATcD8AEgA0EANgLgAiADQgE3A9gCIANBiANqIANB2AJqQdCzwIAAEOyQgIAAIANB8AFqIANBiANqEL+GgIAADQIgA0EUaiADQeACaigCADYCACADIAMpA9gCNwIMIANBADYCCCADQfABahDMgYCAAAwFCyADQfABaiADQYgDakHoABC8kYCAABogAykD8AFCClINAwsgA0HYAmpBGGogA0GQAmopAwA3AwAgA0HYAmpBEGogA0HwAWpBGGopAwA3AwAgA0HYAmpBCGogA0HwAWpBEGopAwA3AwAgAyADKQP4ATcD2AIgA0EANgKAAyADQgE3A/gCIANBiANqIANB+AJqQdCzwIAAEOyQgIAAIANB2AJqIANBiANqEL+GgIAADQEgA0EUaiADQfgCakEIaigCADYCACADIAMpA/gCNwIMIANBADYCCCADQdgCahDMgYCAAAJAIAFFDQAgAiABQQEQt4WAgAALAkAgAEUNACAAQQV0IQEgDEEQaiEAA0ACQCAAQQRqKAIAIgJFDQAgACgCACACQQEQt4WAgAALIABBIGohACABQWBqIgENAAsLIAtFDQMgDCALQQV0QQgQt4WAgAAMAwtB6LPAgABBNyADQdgEakGgtMCAAEH8tMCAABDakICAAAALQeizwIAAQTcgA0HYBGpBoLTAgABB/LTAgAAQ2pCAgAAACyADQYgBaiADQfABakHoABC8kYCAABoQ3YaAgAAQ3YaAgAAQ3YaAgAAgA0HUA2pBgNbAgAA2AgAgA0HMA2pB1NXAgAA2AgAgA0HEA2pBuNXAgAA2AgAgA0GIA2pBCGoiDyADQfgAakEIaikDADcDACADQYgDakEgaiIQIANB6ABqQQhqKQMANwMAIANB7ANqIAA2AgAgA0HoA2ogCzYCACADQeQDaiAMNgIAIANB4ANqIA02AgAgA0HcA2ogATYCACADQdADaiADQdgEajYCACADQcgDaiADQdgEajYCACADIAMpA3g3A4gDIAMgBzYCnAMgAyAGNgKYAyADIAMpA2g3A6ADIAMgAjYC2AMgAyAFNwO4AyADIAk2ArQDIAMgCDYCsAMgAyADQdgEajYCwAMgA0HwAWogA0HAA2ogA0GIA2ogA0HYA2ogA0GIA2pB6ABqIANBiAFqQegAELyRgIAAENKDgIAAIANBiANqQShqIANB8AFqQShqKQMANwMAIBAgA0HwAWpBIGopAwA3AwAgA0GIA2pBGGogA0HwAWpBGGopAwA3AwAgA0GIA2pBEGogA0HwAWpBEGopAwA3AwAgDyADQfABakEIaikDADcDACADIAMpA/ABNwOIAyADQQhqIANBiANqENuEgIAAAkAgAygCXCIARQ0AIA4gAEEBELeFgIAACwJAIAMoAkwiAEUNACAKIABBARC3hYCAAAsgAygCPCIARQ0DIAQgAEEBELeFgIAADAMLAkAgB0UNACAGIAdBARC3hYCAAAsgCUUNASAIIAlBARC3hYCAAAwBCyADQYgBakEYaiADQfABakEYaikDADcDACADQYgBakEQaiADQfABakEQaikDADcDACADQYgBakEIaiADQfABakEIaikDADcDACADIAMpA/ABNwOIASADQQA2AuACIANCATcD2AIgA0GIA2ogA0HYAmpB0LPAgAAQ7JCAgAAgA0GIAWogA0GIA2oQv4aAgAANAiADQRRqIANB2AJqQQhqKAIANgIAIAMgAykD2AI3AgwgA0EANgIIIANBiAFqEMyBgIAACwJAIAMoAlwiAEUNACADKAJYIABBARC3hYCAAAsCQCADKAJMIgBFDQAgAygCSCAAQQEQt4WAgAALIAMoAjwiAEUNACAEIABBARC3hYCAAAsgA0GIA2ogA0EIahCWg4CAAAJAAkAgAygCiAMNACADQfABakEMaiADQYgDakEMaigCADYCACADIAMpAowDNwL0AQwBCyADQYgBakEIaiADQZQDaigCADYCACADIAMpAowDNwOIASADQfABakGhnsGAAEHhACADQYgBahDThICAACADKALwAUENRw0CCyADQYgBakEIaiADQfwBaigCACIANgIAIAMgAykC9AEiBTcDiAEgA0GIA2pBCGogADYCACADIAU3A4gDIANBiANqEKiGgIAAIQAgA0EIahDbgYCAACADQeAEaiSAgICAACAADwtB6LPAgABBNyADQdgEakGgtMCAAEH8tMCAABDakICAAAALIANBiANqQRhqIANB8AFqQRhqKQMANwMAIANBiANqQRBqIANB8AFqQRBqKQMANwMAIANBiANqQQhqIANB8AFqQQhqKQMANwMAIAMgAykD8AE3A4gDQcixwIAAQSsgA0GIA2pB9LHAgABB5LLAgAAQ2pCAgAAAC/gBAQR/I4CAgIAAQTBrIgIkgICAgAAgASgCBCEDIAEoAgAhBAJAAkACQCABKAIIIgVFDQAgBCAFELaCgIAAQYwBQQQQtoWAgAAiAUUNAiABQQA7AYoBIAFBADYCACACIAE2AgQgAkEANgIAIAJBADYCDCACQQA2AiAgAiAEIAVBDGxqNgIcIAIgBDYCGCACIAM2AhQgAiAENgIQIAIgAkEQaiACQQxqEJ6AgIAAIAAgAigCDDYCCCAAIAIpAwA3AgAMAQsgAEIANwIEIANFDQAgBCADQQxsQQQQt4WAgAALIAJBMGokgICAgAAPC0GMAUEEEKiQgIAAAAuiAwEGfyOAgICAAEHQAGsiAySAgICAACACIAFrQfAAbiEEAkACQAJAAkAgAiABRw0AIABCADcCBAwBCyAEQQV0IgVBARC2hYCAACIGRQ0BQQAhByAGIQUgASEIA0AgA0EYaiAIEMeBgIAAIAVBGGogA0EYakEYaikAADcAACAFQRBqIANBGGpBEGopAAA3AAAgBUEIaiADQRhqQQhqKQAANwAAIAUgAykAGDcAACAHQX9qIQcgBUEgaiEFIAhB8ABqIgggAkcNAAsCQCAHRQ0AIAZBACAHaxC0goCAAEHoAkEEELaFgIAAIghFDQMgCEEAOwEGIAhBADYCACADIAg2AgwgA0EANgIIIANBADYCFCADQQI6ACggAyAFNgIkIAMgBjYCICADIAQ2AhwgAyAGNgIYIANBCGogA0EYaiADQRRqEJ2AgIAAIAAgAygCFDYCCCAAIAMpAwg3AgAMAQsgAEIANwIEIAIgAUYNACAGIARBBXRBARC3hYCAAAsgA0HQAGokgICAgAAPCyAFQQEQqJCAgAAAC0HoAkEEEKiQgIAAAAu/AgECfyOAgICAAEHQAGsiAiSAgICAACACQTBqEPWGgIAAIAJBwABqIAEgAkEwahCrhYCAAAJAAkACQCACKAJARQ0AIAJBIGpBCGoiASACQcwAaigCADYCACACIAIpAkQ3AyACQCACKAI0IgNFDQAgAigCMCADQQEQt4WAgAALIAJBwABqQQhqIAEoAgA2AgAgAiACKQMgNwNAIAJBiJ3BgABBJSACQcAAahDThICAACACKAIAQQ1GDQEgACACKQMANwMAIABBGGogAkEYaikDADcDACAAQRBqIAJBEGopAwA3AwAgAEEIaiACQQhqKQMANwMADAILIAJBDGogAkE4aigCADYCACACIAIpAzA3AgQLIAAgAikCBDcCBCAAQQ02AgAgAEEMaiACQQxqKAIANgIACyACQdAAaiSAgICAAAtcAQF/AkBBEEEEELaFgIAAIgQNAEEQQQQQqJCAgAAACyAAQQA2AgQgACAENgIAIAQgASkCADcCACAAQQxqIAM2AgAgAEEIaiACNgIAIARBCGogAUEIaikCADcCAAt+AQF/I4CAgIAAQTBrIgIkgICAgAAgAkEcakEBNgIAIAJCAjcCDCACQazAwIAANgIIIAJBjYCAgAA2AiQgAkEpNgIsIAJB0p3BgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQTBqJICAgIAAIAELDwAgACgCACABENyOgIAACxIAIAAoAgAoAgAgARDsgICAAAsCAAt2AQF/I4CAgIAAQSBrIgUkgICAgAAgBSACNgIEIAUgATYCACAFQQhqQRBqIANBEGopAgA3AwAgBUEIakEIaiADQQhqKQIANwMAIAUgAykCADcDCCAAIAVB4L/AgAAgBUEEakHgv8CAACAFQQhqIAQQ15CAgAAAC0kBAn8CQCAAKAIAIgFBf0YNACAAKAIEIQIgASABKAIEIgBBf2o2AgQgAEEBRw0AIAJBC2pBfHEiAEUNACABIABBBBC3hYCAAAsL8wMCAn4FfyAAQQN0QQJyIgCtIQMCQAJAIABB/wBLDQAgAigCCCEADAELIAIoAgghACADIQQDQCAEp0GAf3IhBQJAAkAgAigCBCAARg0AIAAhBgwBCyACIABBARC6gICAACACKAIIIQYLIAIgBkEBaiIANgIIIAIoAgAgBmogBToAACAEQv//AFYhBiAEQgeIIgMhBCAGDQALCyADpyEFAkAgAigCBCAARw0AIAIgAEEBELqAgIAAIAIoAgghAAsgAiAAQQFqIgY2AgggAigCACIHIABqIAU6AAAgAUEIaigCACIIrSEEAkACQCAIQYABTw0AIAQhAwwBCwNAIASnQYB/ciEFAkACQCACKAIEIAZGDQAgBiEADAELIAIgBkEBELqAgIAAIAIoAgAhByACKAIIIQALIAIgAEEBaiIGNgIIIAcgAGogBToAACAEQv//AFYhACAEQgeIIgMhBCAADQALCyADpyEJAkAgAigCBCIFIAZHDQAgAiAGQQEQuoCAgAAgAigCBCEFIAIoAgghBgsgAiAGQQFqIgA2AgggAigCACIHIAZqIAk6AAAgASgCACEGAkAgBSAAayAITw0AIAIgACAIELqAgIAAIAIoAgAhByACKAIIIQALIAcgAGogBiAIELyR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ahD+goCAACAHIAMpA3A3AgAgB0EIaiADQfAAakEIaigCADYCACADIAs2AgAgA0GAAmogA0HwABC8kYCAABogA0HwAGogA0GAAmoQx4GAgAAgBiADQYACakHwABC8kYCAABogBEEBaiEEIAIgA0HwAGpBkAEQvJGAgABBkAFqIQIgAEHwAGoiACABRw0ACwsgBSAENgIAIANB8AJqJICAgIAAC7MBAgN/AX4CQCAAIAFGDQADQEEAIQNBACEEAkAgAEEQaigCAEUNACAAQQhqIgUQvo2AgAAhBCAFEL6NgIAAIARBAXJnQR9zQQlsQckAakEGdmpBAWohBAsgAEEYaiEFAkAgACkDACIGUA0AIAZCAYR5p0E/c0EJbEHJAGpBBnZBAWohAwsgAyAEaiIAIAJqIABBAXJnQR9zQQlsQckAakEGdmohAiAFIQAgBSABRw0ACwsgAguZAwMHfwV+An8jgICAgABB0ABrIgIkgICAgAAgASgCCCEDIAEoAgQhBCAAKAIEIQUgACgCACEGAkACQAJAIAAoAggiByAAKAIMIghGDQAgASgCACEAA0AgBykDICEJIAJBEGpBGGogB0EYaikDACIKNwMAIAJBEGpBEGogB0EQaikDACILNwMAIAJBEGpBCGogB0EIaikDACIMNwMAIAIgBykDACINNwMQIAJBMGpBGGogCjcDACACQTBqQRBqIAs3AwAgAkEwakEIaiAMNwMAIAIgDTcDMCACQQhqIAJBMGoQ8o2AgAAgAigCCCEOQQEhDwJAIAIoAgwiAUUNACABQX9MDQMgAUEBELaFgIAAIg9FDQQLIA8gDiABELyRgIAAIQ8gACABNgIQIAAgATYCDCAAIA82AgggACAJNwMAIABBGGohACADQQFqIQMgB0EoaiIHIAhHDQALCyAEIAM2AgACQCAFRQ0AIAYgBUEobEEIELeFgIAACyACQdAAaiSAgICAAA8LEKmQgIAAAAsgAUEBEKiQgIAAAAukBQERfyOAgICAAEHwAGsiAySAgICAAEEAIQQCQCAAKAIAIgUgACgCBCIGRg0AIAAoAggiB0EQIAdBEEsbIQggB0EkbCAAKAIMakEIaiEJIANByABqQQhqIQogA0HIAGpBAXIhCwJAAkADQCAAIAVBDGoiDDYCAAJAAkACQCAFKAIAQQJGDQAgA0HIAGogBRCu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IAJBAUcNASABEIKCgIAADwsCQCAAKAIAIgFBKUkNACAAKAIEIAFBARC3hYCAAAsCQAJAIAAtADAiAUEDcUEDRg0AIAEOAwEAAQELIABBNGoiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAALAkACQCAAQdQAai0AACIBQQNxQQNGDQAgAQ4DAQABAQsgAEHYAGoiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAALAkACQCAAQfgAai0AACIBQQNxQQNGDQAgAQ4DAQABAQsgAEH8AGoiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAALAkACQCAAQZwBai0AACIBQQNxQQNGDQAgAQ4DAQABAQsgAEGgAWoiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAALAkACQCAAQcABai0AACIBQQNxQQNGDQAgAQ4DAQABAQsgAEHEAWoiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAALAkACQCAAQeQBai0AACIBQQNxQQNGDQAgAQ4DAQABAQsgAEHoAWoiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAALAkACQCAAQYgCai0AACIBQQNxQQNGDQAgAQ4DAQABAQsgAEGMAmoiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAALAkACQCAAQawCai0AACIBQQNxQQNGDQAgAQ4DAQABAQsgAEGwAmoiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAALAkACQCAAQdACai0AACIBQQNxQQNGDQAgAQ4DAQABAQsgAEHUAmoiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAALAkACQCAAQfQCai0AACIBQQNxQQNGDQAgAQ4DAQABAQsgAEH4AmoiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAALAkACQCAAQZgDai0AACIBQQNxQQNGDQAgAQ4DAQABAQsgAEGcA2oiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAALAkACQCAAQbwDai0AACIBQQNxQQNGDQAgAQ4DAQABAQsgAEHAA2oiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAALAkACQCAAQeADai0AACIBQQNxQQNGDQAgAQ4DAQABAQsgAEHkA2oiASgCABCNgoCAACABKAIAQZwFQQQQt4WAgAAL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IgFBBEsNBSABQQNGDQUgAEEIaiEADAQLAkAgAEEIaigCACIBRQ0AIAAoAgQgAUEBELeFgIAACyAAQRBqIQAMAwsgAEEEaiEADAILIABBBGohAAwBCwJAIABBCGooAgAiAUUNACAAKAIEIAFBARC3hYCAAAsgAEEQaiEACyAAQQRqKAIAIgFFDQAgACgCACABQQEQt4WAgAALC6QFARF/I4CAgIAAQfAAayIDJICAgIAAQQAhBAJAIAAoAgAiBSAAKAIEIgZGDQAgACgCCCIHQRAgB0EQSxshCCAHQSRsIAAoAgxqQQhqIQkgA0HIAGpBCGohCiADQcgAakEBciELAkACQANAIAAgBUEMaiIMNgIAAkACQAJAIAUoAgBBAkYNACADQcgAaiAFEK6BgIAAIAMtAEgiBUEDcUF+ag4CBAABC0ECIQUMAQsgA0HEAGpBAmogC0ECai0AADoAACADQShqQQhqIApBCGopAgA3AwAgA0EoakEQaiAKQRBqKQIANwMAIANBKGpBGGogCkEYaigCADYCACADIAsvAAA7AUQgAyAKKQIANwMoIAMoAkwhDSAFQQNGDQMLIANBJGpBAmoiDiADQcQAakECai0AADoAACADQQhqQQhqIg8gA0EoakEIaikDADcDACADQQhqQRBqIhAgA0EoakEQaikDADcDACADQQhqQRhqIhEgA0EoakEYaigCADYCACADIAMvAUQ7ASQgAyADKQMoNwMIAkACQAJAIAggB0YNACAJQXhqIhItAAAiE0EDcUEDRg0BIBMOAwIBAgILIAhBEEGUzsCAABC3kICAAAALIAlBfGoiEygCABCNgoCAACATKAIAQZwFQQQQt4WAgAALIBIgBToAACAJIAMpAwg3AgAgCUF5aiIFIAMvASQ7AAAgCUF8aiANNgIAIAVBAmogDi0AADoAACAJQQhqIA8pAwA3AgAgCUEQaiAQKQMANwIAIAlBGGogESgCADYCACAAIAdBAWoiBzYCCCAJQSRqIQkgDCEFIAwgBkcNAAwDCwsgAygCTCENCyACEI6CgIAAQQEhBCAAIAdBAWo2AgggAiANNgIACyADQfAAaiSAgICAACAEC+kEARB/I4CAgIAAQcAAayIEJICAgIAAAkACQAJAIAEoAgAiBSABKAIEIgZGDQAgAkEEaigCACIHQQRqIQggA0EEaigCACEJIAMoAgAhCiACKAIAIQsgASgCCCEMA0AgASAFIg1BIGoiBTYCACAEQSBqIA0Qw46AgAACQAJAIAwoAgAiAygCBCIORQ0AIAMoAgAhDwNAIA5BXGohECAOQcADaiECIA4vAb4DIhFBBXQhA0F/IRICQANAAkAgAw0AIBEhEgwCCyANIAJBIBC6kYCAACETIBJBAWohEiAQQShqIRAgA0FgaiEDIAJBIGohAkF/IBNBAEcgE0EASBsiE0EBRg0ACyATQf8BcUUNAwsgD0UNASAPQX9qIQ8gDiASQQJ0akGgBmooAgAhDgwACwtBjMLAgABBNUGow8CAABDLkICAAAALIARBGGogBEEgakEYaikDADcDACAEQRBqIARBIGpBEGopAwA3AwAgBEEIaiAEQSBqQQhqKQMANwMAIAQgBCkDIDcDAAJAAkAgCy0AAEUNACAHKAIARQ0AIBAoAgAiAyAHKAIkIgJNDQEgAyACQX9zaiIDIBBBDGooAgBPDQEgEEEEaigCACADQQV0aiAIQSAQupGAgAANAQsgBCAKIBBBHGpBARCWgoCAADcDICAEQSBqIAkQhI6AgABB/wFxQQJJDQMLIAUgBkcNAAsLIABBADYCIAwBCyAAIAQpAwA3AgAgAEEYaiAEQRhqKQMANwIAIABBEGogBEEQaikDADcCACAAQQhqIARBCGopAwA3AgAgACAQNgIgCyAEQcAAaiSAgICAAAvbAwICfwF+I4CAgIAAQbACayIDJICAgIAAAkACQAJAAkAgAEEgaiIEEPWNgIAADQAgAg0CIANBIGogASAEEPqNgIAAIANBqAFqIANBIGpBiAEQvJGAgAAaIANBGGogA0GoAWoQhoKAgAAgAygCGA0BQgAhBQwDCwJAIAINACADQagBaiABEPiNgIAAIANBqAFqIAAQmoKAgAAhBQwDCyADQagBaiABEPmNgIAAIANBqAFqIAAQmoKAgAAhBQwCCyADKAIcIQFCACEFIABBGGohAgNAAkAgAigCACABQQF2IgFNDQAgBSAAKAIQIAFBMGxqQSBqEI+OgIAAEIKOgIAAIQULIANBEGogA0GoAWoQhoKAgAAgAygCFCEBIAMoAhBFDQIMAAsLIANBIGogASAEEPuNgIAAIANBqAFqIANBIGpBiAEQvJGAgAAaIANBCGogA0GoAWoQhoKAgAACQCADKAIIDQBCACEFDAELIAMoAgwhAUIAIQUgAEEYaiECA0ACQCACKAIAIAFBAXYiAU0NACAFIAAoAhAgAUEwbGpBIGoQj46AgAAQgo6AgAAhBQsgAyADQagBahCGgoCAACADKAIEIQEgAygCAA0ACwsgA0GwAmokgICAgAAgBQuZBQIQfwN+I4CAgIAAQcAAayIEJICAgIAAAkACQAJAIAEoAgAiBSABKAIEIgZGDQAgA0EYaiEHIAJBBGooAgAiCEEEaiEJIAIoAgAhCiABKAIIIQsDQCABIAUiDEEgaiIFNgIAIARBIGogDBDDjoCAAAJAAkAgCygCACICKAIEIg1FDQAgAigCACEOA0AgDUFcaiEPIA1BwANqIRAgDS8BvgMiEUEFdCECQX8hEgJAA0ACQCACDQAgESESDAILIAwgEEEgELqRgIAAIRMgEkEBaiESIA9BKGohDyACQWBqIQIgEEEgaiEQQX8gE0EARyATQQBIGyITQQFGDQALIBNB/wFxRQ0DCyAORQ0BIA5Bf2ohDiANIBJBAnRqQaAGaigCACENDAALC0GMwsCAAEE1QajDwIAAEMuQgIAAAAsgBEEYaiAEQSBqQRhqKQMANwMAIARBEGogBEEgakEQaikDADcDACAEQQhqIARBIGpBCGopAwA3AwAgBCAEKQMgNwMAAkACQCAKLQAARQ0AIAgoAgBFDQAgDygCACICIAgoAiQiEE0NASACIBBBf3NqIgIgD0EMaigCAE8NASAPQQRqKAIAIAJBBXRqIAlBIBC6kYCAAA0BCyADKAIgIA9BHGpBARCWgoCAACEUIAMpAwAgFBCDjoCAACEVIAMpAwghFiAEIBQgAykDEBCBjoCAACAVIBYgFSAWVBsQgY6AgAA3AyAgBEEgaiAHEISOgIAAQf8BcUECSQ0DCyAFIAZHDQALCyAAQQA2AiAMAQsgACAEKQMANwIAIABBGGogBEEYaikDADcCACAAQRBqIARBEGopAwA3AgAgAEEIaiAEQQhqKQMANwIAIAAgDzYCIAsgBEHAAGokgICAgAALqgIBAX8jgICAgABBIGsiAySAgICAACADQRBqIAJBxcHAgABBBEECEP2GgIAAAkACQAJAIAMoAhANACADIAMoAhQ2AgggAyADQRhqLQAAOgAMIANBEGogA0EIakHJwcCAAEEFIAFBEGoQw4CAgAAgAygCEA0BIANBEGogA0EIakHOwcCAAEEGIAEQ+YCAgAACQCADKAIQDQAgACADKAIIIAMtAAwQk4eAgAAMAwsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMAgsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMAQsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgALIANBIGokgICAgAAL1iYEB38Bfgd/A34jgICAgABBsAdrIgYkgICAgAACQAJAAkAgAUEgaigCACIHRQ0AIAFBCGohCCABQRhqKAIAIQlBACEKIAchCwNAAkACQEF/IAkgB0EBdiAKaiIMQTBsaiAEQSAQupGAgAAiB0EARyAHQQBIGyIHQQFHDQAgDCELDAELIAdB/wFxQf8BRw0DIAxBAWohCgsgCyAKayEHIAsgCksNAAsLIABBADsB+AEgAEIANwMADAELIAkgDEEwbGoiCkEoaigCACELIAYgCikDIDcDCCAGIAs2AhAgBkEIahCPjoCAACENIAZBiAJqQQRyIg4gA0EEahDDjoCAACAGIAMoAgAiDzYCiAIgBkGwAmogBRCpjoCAACAGQfACakEYaiIQIARBGGopAAA3AwAgBkHwAmpBEGogBEEQaikAADcDACAGQfACakEIaiAEQQhqKQAANwMAIAYgBCkAADcD8AIgAUHYAGohEQJAAkACQAJAAkAgAUHcAGooAgAiCQ0AQQAhCQwBCyARKAIAIRIDQEEAIAkvAcoRIhNBBXRrIRRBfyELQQAhB0HMESEKAkACQANAAkAgFCAKakHMEUcNACATIQsMAgsgCSAKaiEMIAtBAWohCyAHQcwBaiEHIApBIGohCkF/IAZB8AJqIAxBIBC6kYCAACIMQQBHIAxBAEgbIgxBAUYNAAsgDEH/AXFFDQELIBJFDQIgEkF/aiESIAkgC0ECdGpBrBRqKAIAIQkMAQsLAkACQAJAIAkgB2oiCkG4fmoiCy0AAA0AIApBgH9qIA5BIBC6kYCAAA0CIApB/H5qKAIAIA9HDQIgCkG5fmogBkGwAmpBwAAQupGAgAANAkEBIQoMAQsCQCAKQcB+aiAOQSAQupGAgAANACAKQbx+aigCACAPRw0AIApB4H5qIAZBsAJqQcAAELqRgIAADQBBASEKDAELAkAgCkGkf2ogDkEgELqRgIAADQAgCkGgf2ooAgAgD0cNACAKQURqIAZBsAJqQcAAELqRgIAADQBBASEKDAELQQAhCgsgACAKOgD5ASAAQQE6APgBIABCADcDAAwFCyAGQZAGakEEciAKQYB/ahDDjoCAACAGIApB/H5qKAIANgKQBiAGQcwFaiAKQbl+aiIHEKmOgIAAIAZBqAVqQSBqIAZBkAZqQSBqIgwoAgA2AgAgBkGoBWpBGGogBkGQBmpBGGoiCSkDADcDACAGQagFakEQaiAGQZAGakEQaiIUKQMANwMAIAZBqAVqQQhqIAZBkAZqQQhqIgIpAwA3AwAgBiAGKQOQBjcDqAUgDCAGQYgCakEgaigCADYCACAJIAZBiAJqQRhqKQMANwMAIBQgBkGIAmpBEGopAwA3AwAgAiAGQYgCakEIaikDADcDACAGIAYpA4gCNwOQBiAGQbwGaiAGQbACakEIaikDADcCACAGQcQGaiAGQbACakEQaikDADcCACAGQcwGaiAGQbACakEYaikDADcCACAGQdQGaiAGQbACakEgaikDADcCACAGQdwGaiAGQdgCaikDADcCACAGQeQGaiAGQeACaikDADcCACAGQewGaiAGQegCaikDADcCACAGIAYpA7ACNwK0BiAGQfMCaiAGQagFakHkABC8kYCAABogBkHABGogBkGQBmpB5AAQvJGAgAAaIAtBAToAACAHIAZB8AJqQecAELyRgIAAGiAKQaB/aiAGQcAEakHkABC8kYCAABogASkDACENDAELIAZBgAdqQQhqIgogECkDADcDACAGIAYpA4ADNwOAByAGKQPwAiEVIAYpA/gCIRYgASABKQNQIA0Qgo6AgAA3A1AgBkGQBmpBKGogCikDADcDACAGIBY3A6gGIAYgFTcDoAYgBiARNgKcBiAGIAs2ApgGIAYgCTYClAYgBkEANgKQBiAGIAYpA4AHNwOwBiAGQdQDaiAGQYgCakEgaigCADYCACAGQfACakHcAGogBkGIAmpBGGopAwA3AgAgBkHEA2ogBkGIAmpBEGopAwA3AgAgBkG8A2ogBkGIAmpBCGopAwA3AgAgBiAGKQOIAjcCtAMgBkH5AmogBkGwAmpBCGopAwA3AAAgBkGBA2ogBkGwAmpBEGopAwA3AAAgBkGJA2ogBkGwAmpBGGopAwA3AAAgBkGRA2ogBkGwAmpBIGopAwA3AAAgBkGZA2ogBkGwAmpBKGopAwA3AAAgBkGhA2ogBkGwAmpBMGopAwA3AAAgBkGpA2ogBkHoAmopAwA3AAAgBiAGKQOwAjcA8QIgBkEAOgDwAiAGQZAGaiAGQfACahC2g4CAACELIAEpAwAhDSALLQAADQAgBkEIakEBEJGOgIAAIQogBkHwAmogC0HIAGoQw46AgAAgAUGYAWogBkHwAmogCygCRCAKIAIQzoCAgAANAiAGQZAGakEIaiILIANBCGopAgA3AwAgBkGQBmpBEGoiByADQRBqKQIANwMAIAZBkAZqQRhqIgwgA0EYaikCADcDACAGQZAGakEgaiIJIANBIGooAgA2AgAgBkHwAmpBCGoiFCAFQQhqKQAANwMAIAZB8AJqQRBqIgIgBUEQaikAADcDACAGQfACakEYaiISIAVBGGopAAA3AwAgBkHwAmpBIGoiEyAFQSBqKQAANwMAIAZB8AJqQShqIhEgBUEoaikAADcDACAGQfACakEwaiIOIAVBMGopAAA3AwAgBkHwAmpBOGoiDyAFQThqKQAANwMAIAYgAykCADcDkAYgBiAFKQAANwPwAgJAIAFBkAFqKAIAIgogAUGMAWooAgBHDQAgAUGIAWogChCwgICAACABKAKQASEKCyABKAKIASAKQYgBbGoiCkEBNgIAIAogBikDkAY3AgQgCiAGKQPwAjcCKCAKQQxqIAspAwA3AgAgCkEUaiAHKQMANwIAIApBHGogDCkDADcCACAKQSRqIAkoAgA2AgAgCkEwaiAUKQMANwIAIApBOGogAikDADcCACAKQcAAaiASKQMANwIAIApByABqIBMpAwA3AgAgCkHQAGogESkDADcCACAKQdgAaiAOKQMANwIAIApB4ABqIA8pAwA3AgAgCkGAAWogBEEYaikAADcAACAKQfgAaiAEQRBqKQAANwAAIApB8ABqIARBCGopAAA3AAAgCiAEKQAANwBoIAEgASgCkAFBAWo2ApABQgAhFQwBCyABQShqIAZBCGpBARCRjoCAABD3jYCAABogBkGQBmpBCGoiByADQQhqKQIANwMAIAZBkAZqQRBqIgwgA0EQaikCADcDACAGQZAGakEYaiIJIANBGGopAgA3AwAgBkGQBmpBIGoiFCAD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ACAYIQFBASEADAULIAEgGXQhACABQQFqIhohASAVIAAgFGoiABD8jYCAAEUNAAsgACASQQZ0aiEAIBohAQwBCyAJIRoCQAJAAkACQCALDQBBACEJDAELIAohCSALIApHDQELIBBQDQEgDCANIAwgDUsbIRgDQCAYIA1GDQIgDSADdCEAIA1BAWoiGSENIA8gACAOaiIAEPyNgIAARQ0ACyAAIAJqIQBCACEWIBkhDSAJIQsgGiEJDAILQQAhAUEAIAggCykDACIVUBshESAaQQFqIQkgC0EIaiELQgEhFiAaIRIgBiETIAchFAwCCyAXDwsgBSAAQQF2IgBNDQIgFyAEIABBMGxqQSBqEI+OgIAAEIKOgIAAIRcMAgtBACEADAALCwvmAQEBfyOAgICAAEHgAGsiBSSAgICAACAFQdAAaiACQRBqKQIANwMAIAVByABqIAJBCGopAgA3AwAgBUEIakEIaiADQQhqKQMANwMAIAVBCGpBEGogA0EQaikDADcDACAFQQhqQRhqIANBGGopAwA3AwAgBUEIakEgaiADQSBqKQMANwMAIAVBCGpBKGogA0EoaikDADcDACAFQQhqQTBqIANBMGopAwA3AwAgBSACKQIANwNAIAUgAykDADcDCCAFIAQ6AFggACAFQcAAaiAFQQhqIAQQ04OAgAAgBUHgAGokgICAgAAL5gEBAX8jgICAgABB4ABrIgUkgICAgAAgBUHQAGogAkEQaikCADcDACAFQcgAaiACQQhqKQIANwMAIAVBCGpBCGogA0EIaikDADcDACAFQQhqQRBqIANBEGopAwA3AwAgBUEIakEYaiADQRhqKQMANwMAIAVBCGpBIGogA0EgaikDADcDACAFQQhqQShqIANBKGopAwA3AwAgBUEIakEwaiADQTBqKQMANwMAIAUgAikCADcDQCAFIAMpAwA3AwggBSAEOgBYIAAgBUHAAGogBUEIaiAEENODgIAAIAVB4ABqJICAgIAAC+YBAQF/I4CAgIAAQeAAayIFJICAgIAAIAVB0ABqIAJBEGopAgA3AwAgBUHIAGogAkEIaikCADcDACAFQQhqQQhqIANBCGopAwA3AwAgBUEIakEQaiADQRBqKQMANwMAIAVBCGpBGGogA0EYaikDADcDACAFQQhqQSBqIANBIGopAwA3AwAgBUEIakEoaiAD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CwsCQAJAIAsgD0kNACALIAFLDQEgCyAPayIMQQJJDQIgEkEBdiERIAcgEGohDgNAIAVBCGoiEikCACEUIBIgDkEIaiITKQIANwIAIBMgFDcCACAOQRRqKAIAIRIgDkEQaiITKAIAIRAgEyAFQRBqIhUpAgA3AgAgBSkCACEUIAUgDikCADcCACAOIBQ3AgAgFSAQNgIAIAVBFGogEjYCACAFQRhqIhIoAgAhEyASIA5BGGoiECgCADYCACAQIBM2AgAgDkEcaiISKAIAIRMgEiAFQRxqIhAoAgA2AgAgECATNgIAIAVBIGoiEigCACETIBIgDkEgaiIQKAIANgIAIBAgEzYCACAFQSRqIhIoAgAhEyASIA5BJGoiECgCADYCACAQIBM2AgAgBUEoaiISKAIAIRMgEiAOQShqIhAoAgA2AgAgECATNgIAIAVBLGoiEigCACETIBIgDkEsaiIQKAIANgIAIBAgEzYCACAFQTBqIhIoAgAhEyASIA5BMGoiECgCADYCACAQIBM2AgAgBUE0aiISKAIAIRMgEiAOQTRqIhAoAgA2AgAgECATNgIAIAVBOGoiEigCACETIBIgDkE4aiIQKAIANgIAIBAgEzYCACAFQTxqIhIoAgAhEyASIA5BPGoiECgCADYCACAQIBM2AgAgBUHAAGoiEigCACETIBIgDkHAAGoiECgCADYCACAQIBM2AgAgBUHEAGoiEigCACETIBIgDkHEAGoiECgCADYCACAQIBM2AgAgBUHIAGoiEigCACETIBIgDkHIAGoiECgCADYCACAQIBM2AgAgBUHMAGoiEigCACETIBIgDkHMAGoiECgCADYCACAQIBM2AgAgBUHQAGoiEigCACETIBIgDkHQAGoiECgCADYCACAQIBM2AgAgBUHUAGoiEigCACETIBIgDkHUAGoiECgCADYCACAQIBM2AgAgBUHYAGoiEigCACETIBIgDkHYAGoiECgCADYCACAQIBM2AgAgBUHcAGoiEigCACETIBIgDkHcAGoiECgCADYCACAQIBM2AgAgBUHgAGoiEigCACETIBIgDkHgAGoiECgCADYCACAQIBM2AgAgBUHkAGoiEigCACETIBIgDkHkAGoiECgCADYCACAQIBM2AgAgBUHoAGoiEigCACETIBIgDkHoAGoiECgCADYCACAQIBM2AgAgBUHsAGoiEigCACETIBIgDkHsAGoiECgCADYCACAQIBM2AgAgBUHwAGoiEigCACETIBIgDkHwAGoiECgCADYCACAQIBM2AgAgBUH0AGoiEigCACETIBIgDkH0AGoiECgCADYCACAQIBM2AgAgBUH4AGoiEigCACETIBIgDkH4AGoiECgCADYCACAQIBM2AgAgBUH8AGoiEigCACETIBIgDkH8AGoiECgCADYCACAQIBM2AgAgBUGAAWoiEigCACETIBIgDkGAAWoiECgCADYCACAQIBM2AgAgBUGEAWoiEigCACETIBIgDkGEAWoiECgCADYCACAQIBM2AgAgBUGIAWoiEigCACETIBIgDkGIAWoiECgCADYCACAQIBM2AgAgBUGMAWoiEigCACETIBIgDkGMAWoiECgCADYCACAQIBM2AgAgBUGQAWohBSAOQfB+aiEOIBFBf2oiEQ0ADAMLCyAPIAtBrMbAgAAQvJCAgAAACyALIAFBrMbAgAAQuZCAgAAACwJAIA8NACAPIQoMAQsCQCAMQQlNDQAgDyEKDAELAkACQCALIAFLDQAgACAPQZABbGohEQNAIAsgD0F/aiIKSQ0CAkAgCyAKayIMQQFNDQAgACAKQZABbGoiBUGQAWoiEiAFQSAQupGAgABBf0oNACADQRBqIAVBkAEQvJGAgAAaIAUgEkGQARC8kYCAACETAkAgDEEDSQ0AIA0hBSARIQ4gE0GgAmogA0EQakEgELqRgIAAQX9KDQACQANAIA4iDiAOQZABaiIOQZABELyRgIAAIRIgDyAFQX9qIgVGDQEgEkGgAmogA0EQakEgELqRgIAAQX9MDQALCyASQZABaiESCyASIANBEGpBkAEQvJGAgAAaCyAKRQ0DIBFB8H5qIREgCiEPIAxBCk8NAwwACwsgCyAPQX9qIgpJDQAgCyABQbzGwIAAELmQgIAAAAsgCiALQbzGwIAAELyQgIAAAAsCQCADKAIIIgUgAygCBEcNACADIAUQqICAgAAgAygCCCEFCyADKAIAIAVBA3RqIgUgDDYCBCAFIAo2AgAgAyADKAIIQQFqIgU2AggCQCAFQQJJDQACQANAAkACQAJAAkAgAygCACIOIAVBf2pBA3RqIg8oAgBFDQAgBUEDdCAOaiIRQXRqKAIAIgwgDygCBCILTQ0AIAVBA0kNBiAOIAVBfWoiFUEDdGooAgQiDyALIAxqTQ0BIAVBBEkNBiARQWRqKAIAIA8gDGpNDQEMBgsgBUEDSQ0BIA8oAgQhCyAOIAVBfWoiFUEDdGooAgQhDwsgDyALSQ0BCyAFQX5qIRULAkACQAJAAkACQCAVQQFqIhYgBU8NACAOIBVBA3QiF2oiBSgCBCIYIAUoAgBqIg8gDiAWQQN0IhlqIgUoAgAiDUkNASAPIAFLDQIgACANQZABbGoiDCAFKAIEIhBBkAFsIg5qIQUgD0GQAWwhCwJAIA8gDWsiESAQayIPIBBPDQAgBiAFIA9BkAFsIg4QvJGAgAAiEyAOaiEOAkAgEEEBSA0AIA9BAUgNACAHIAtqIRIDQCAFQfB+aiEPIA5B8H5qIQsgEiAPIAsgCyAPQSAQupGAgABBAEgiERtBkAEQvJGAgAAhEiAOIAsgERshDiAPIAUgERsiBSAMTQ0BIBJB8H5qIRIgDiATSw0ACwsgBSEMDAQLIAYgDCAOELyRgIAAIg8gDmohDiAQQQFIDQMgESAQTA0DIAAgC2ohESAPIQ8DQCAMIAUgDyAFIA9BIBC6kYCAACILQQBIG0GQARC8kYCAAEGQAWohDCAPIAtBf3NBH3ZBkAFsaiIPIA5PDQUgBSALQR92QZABbGoiBSARSQ0ADAULCyAWIAVBzMbAgAAQt5CAgAAACyANIA9B3MbAgAAQvJCAgAAACyAPIAFB3MbAgAAQuZCAgAAACyAGIQ8LIAwgDyAOIA9rELyRgIAAGgJAIBUgAygCCCIFTw0AIAMoAgAgF2oiBSAYIBBqNgIEIAUgDTYCACADKAIIIgUgFk0NAiADKAIAIBlqIg4gDkEIaiAFIBVrQQN0QXBqEMGRgIAAGiADIAVBf2oiBTYCCCAFQQFLDQEMAwsLIBUgBUHsxsCAABC3kICAAAALIBYgBUH8xsCAABCxkICAAAALIAoNAAsCQCADKAIEIgVFDQAgAygCACAFQQN0QQQQt4WAgAALIAYgBEEEELeFgIAADAMLIAQgBRCokICAAAALEKmQgIAAAAsgAUECSQ0AIAFBf2ohDyAAIAFBkAFsaiEMQQAhCwNAAkAgACAPQX9qIg9BkAFsaiIOQZABaiIFIA5BIBC6kYCAAEF/Sg0AIANBEGogDkGQARC8kYCAABogDiAFQZABELyRgIAAIRECQCABIA9rQQNJDQAgCyEOIBFBoAJqIANBEGpBIBC6kYCAAEF/Sg0AA0AgDCAOaiIFQfB+aiAFQZABELyRgIAAGiAOQZABaiIORQ0BIAVBkAFqIANBEGpBIBC6kYCAAEF/TA0ACwsgBSADQRBqQZABELyRgIAAGgsgC0HwfmohCyAPDQALCyADQaABaiSAgICAAAubFAMWfwF+An8jgICAgABBIGsiAiSAgICAAAJAAkAgAUEVSQ0AAkACQCABQdWq1aoBSw0AIAFBAXZBDGwiA0EASA0AIAFB1qrVqgFJQQJ0IQQCQAJAIAMNACAEIQUMAQsgAyAEELaFgIAAIQULAkAgBUUNACACQQA2AgggAkIENwMAIABBdGohBiAAQWhqIQcgAEFcaiEIQQAhBCABIQkCQANAAkACQCAJIgpBf2oiCw0AQQAhCUEBIQwMAQsCQAJAIAAgC0EMbGoiDSgCACAAIApBfmoiDkEMbGoiDygCACIMIA1BCGooAgAiECAPQQhqKAIAIg0gECANSRsQupGAgAAiDyAQIA1rIA8bQQBIDQAgCkF+aiERIAggCkEMbGohEEEAIQlBACESAkADQCARIBJGDQEgDSAQQQhqKAIAIg9rIQ4gDCAQKAIAIhMgDSAPIA0gD0kbELqRgIAAIRQgEEF0aiEQIBJBAWohEiAPIQ0gEyEMIBQgDiAUG0EATg0ACyASQQFqIQwgEkF/cyAKaiEQDAILIAohDAwCCyAHIApBDGwiFWohE0ECIRECQANAIBEhFiATIQ8gDiIQRQ0BIA0gACAQQX9qIg5BDGxqIhRBCGooAgAiEmshFyAMIBQoAgAiCSANIBIgDSASSRsQupGAgAAhFCAPQXRqIRMgFkEBaiERIBIhDSAJIQwgFCAXIBQbQQBIDQALCwJAAkAgCiAQSQ0AIAogAUsNASAKIBBrIgxBAkkNAiAGIBVqIQ0gFkEBdiESA0AgDykCACEYIA8gDSkCADcCACAPQQhqIhQoAgAhDiAUIA1BCGoiEygCADYCACANIBg3AgAgEyAONgIAIA1BdGohDSAPQQxqIQ8gEkF/aiISDQAMAwsLIBAgCkGsxsCAABC8kICAAAALIAogAUGsxsCAABC5kICAAAALAkAgEA0AIBAhCQwBCwJAIAxBCU0NACAQIQkMAQsCQAJAAkAgCiABSw0AIAAgEEEMbGohDwNAIAogEEF/aiIJSQ0CAkAgCiAJayIMQQFNDQAgACAJQQxsaiINQQxqIhQoAgAgDSgCACIOIA1BFGooAgAiEiANQQhqIhEoAgAiBCASIARJGxC6kYCAACITIBIgBGsgExtBf0oNACANKAIEIRYgDSAUKQIANwIAIBEgFEEIaigCADYCAAJAIAxBA0kNACALIRMgDyERIA0oAhggDiANQSBqKAIAIg0gBCANIARJGxC6kYCAACISIA0gBGsgEhtBf0oNAAJAA0AgESINQQhqIA1BFGooAgA2AgAgDSANQQxqIhEpAgA3AgAgECATQX9qIhNGDQEgDUEYaigCACAOIA1BIGooAgAiEiAEIBIgBEkbELqRgIAAIhQgEiAEayAUG0F/TA0ACwsgDUEMaiEUCyAUIAQ2AgggFCAWNgIEIBQgDjYCAAsgCUUNAyAPQXRqIQ8gCSEQIAxBCkkNAAwDCwsgCiAQQX9qIglJDQAgCiABQbzGwIAAELmQgIAAAAsgCSAKQbzGwIAAELyQgIAAAAsgAigCCCEECwJAIAQgAigCBEcNACACIAQQqICAgAAgAigCCCEECyACKAIAIARBA3RqIgQgDDYCBCAEIAk2AgAgAiACKAIIQQFqIgQ2AggCQAJAIARBAkkNAANAAkACQAJAAkAgAigCACINIARBf2pBA3RqIhAoAgBFDQAgBEEDdCANaiISQXRqKAIAIgwgECgCBCIPTQ0AAkAgBEEDTw0AQQIhBCAJRQ0MDAgLIA0gBEF9aiIWQQN0aigCBCIQIA8gDGpNDQECQCAEQQRPDQBBAyEEIAlFDQwMCAsgEkFkaigCACAQIAxqTQ0BDAULIARBA0kNASAQKAIEIQ8gDSAEQX1qIhZBA3RqKAIEIRALIBAgD0kNAQsgBEF+aiEWCwJAAkACQAJAAkAgFkEBaiILIARPDQAgDSAWQQN0IhVqIgQoAgQiGSAEKAIAaiIPIA0gC0EDdCIaaiIEKAIAIhdJDQEgDyABSw0CIAAgF0EMbGoiECAEKAIEIhFBDGwiDWohBCAPQQxsIRICQCAPIBdrIhQgEWsiDCARTw0AIAUgBCAMQQxsIg0QvJGAgAAiEyANaiEPAkAgEUEBSA0AIAxBAUgNACAGIBJqIRIDQCAEQXRqIQ0gD0F0aiEMIBIgDSAMIAwoAgAgDSgCACAMQQhqKAIAIhQgDUEIaigCACIKIBQgCkkbELqRgIAAIg4gFCAKayAOG0EASCIUGyIKKQIANwIAIBJBCGogCkEIaigCADYCACAPIAwgFBshDyANIAQgFBsiBCAQTQ0BIBJBdGohEiAPIBNLDQALCyAEIRAMBAsgBSAQIA0QvJGAgAAiDCANaiEPIBFBAUgNAyAUIBFMDQMgACASaiEKIAwhDQNAIBAgBCANIAQoAgAgDSgCACAEQQhqKAIAIgwgDUEIaigCACISIAwgEkkbELqRgIAAIhQgDCASayAUGyIMQQBIGyISKQIANwIAIBBBCGogEkEIaigCADYCACAQQQxqIRAgDSAMQX9zQR92QQxsaiINIA9PDQUgBCAMQR92QQxsaiIEIApJDQAMBQsLIAsgBEHMxsCAABC3kICAAAALIBcgD0HcxsCAABC8kICAAAALIA8gAUHcxsCAABC5kICAAAALIAUhDQsgECANIA8gDWsQvJGAgAAaIBYgAigCCCIETw0CIAIoAgAgFWoiBCAZIBFqNgIEIAQgFzYCACACKAIIIgQgC00NBCACKAIAIBpqIg0gDUEIaiAEIBZrQQN0QXBqEMGRgIAAGiACIARBf2oiBDYCCCAEQQFLDQALCyAJRQ0FDAELCyAWIARB7MbAgAAQt5CAgAAACyALIARB/MbAgAAQsZCAgAAACyADIAQQqJCAgAAACxCpkICAAAALAkAgAigCBCIERQ0AIAIoAgAgBEEDdEEEELeFgIAACyAFIANBBBC3hYCAAAwBCyABQQJJDQAgAUF/aiEMIAAgAUEMbGohE0EAIRQDQAJAIAAgDEF/aiIMQQxsaiIQQQxqIgQoAgAgECgCACISIBBBFGooAgAiDyAQQQhqIg4oAgAiDSAPIA1JGxC6kYCAACIKIA8gDWsgChtBf0oNACAQKAIEIREgECAEKQIANwIAIA4gBEEIaigCADYCAAJAIAEgDGtBA0kNACAUIQ8gECgCGCASIBBBIGooAgAiECANIBAgDUkbELqRgIAAIgogECANayAKG0F/Sg0AA0AgEyAPaiIEQXRqIhAgBCkCADcCACAQQQhqIARBCGooAgA2AgAgD0EMaiIPRQ0BIARBDGooAgAgEiAEQRRqKAIAIhAgDSAQIA1JGxC6kYCAACIKIBAgDWsgChtBf0wNAAsLIAQgDTYCCCAEIBE2AgQgBCASNgIACyAUQXRqIRQgDA0ACwsgAkEgaiSAgICAAAu5BQEHfwJAIAFBAkkNACAAQRBqIgIoAgAhAyAAKAIAIQQCQAJAIABBFGooAgAiBSAAQQRqKAIAIgZHDQAgAyAEIAUQupGAgAANACAAQQxqKAIAIQcgAEEYaigCACIFQQBHIABBCGooAgAiCEEAR3MiA0F/IAUbIAMgCBsiA0F/Rg0BIANB/wFxDQIgBUUNAiAIRQ0CIAUgCCAAQRxqKAIAIgMgByADIAdJGxC6kYCAACIFIAMgB2sgBRtBAEgNAQwCCyADIAQgBSAGIAUgBkkbELqRgIAAIgMgBSAGayADG0F/Sg0BIAAoAgwhByAAKAIIIQgLIAAgAikCADcCACAAQQhqIAJBCGopAgA3AgACQCABQQNJDQACQAJAIAhFDQAgAUF+aiECIABBIGohAANAIAAoAgAhBQJAAkAgAEEEaigCACIBIAZHDQAgBSAEIAYQupGAgAANACAAQQhqKAIAIgVFDQEgBSAIIABBDGooAgAiASAHIAEgB0kbELqRgIAAIgUgASAHayAFG0EASA0BDAQLIAUgBCABIAYgASAGSRsQupGAgAAiBSABIAZrIAUbQX9KDQMLIABBcGoiASAAKQIANwIAIAFBCGogAEEIaikCADcCACAAQRBqIQAgAkF/aiICDQALIABBcGohAgwCCyABQX5qIQMgAEEkaiEAAkADQCAAQXxqIgUoAgAhAgJAIAAoAgAiASAGRw0AIAIgBCAGELqRgIAARQ0CCyACIAQgASAGIAEgBkkbELqRgIAAIgIgASAGayACG0F/Sg0BIABBbGoiASAFKQIANwIAIAFBCGogBUEIaikCADcCACAAQRBqIQAgA0F/aiIDDQALIABBbGohAgwCCyAAQWxqIQIMAQsgAEFwaiECCyACIAc2AgwgAiAINgIIIAIgBjYCBCACIAQ2AgAPCwvBAwEEfwJAAkACQCACRQ0AIAJBf2pB/////wFxIgNBAWoiBEEHcSEFIANBB08NAUEAIQQgASEDDAILIABBADYCCCAAQgE3AgAPCyABQTxqIQMgBEH4////A3EhBkEAIQQDQCADKAIAIANBeGooAgAgA0FwaigCACADQWhqKAIAIANBYGooAgAgA0FYaigCACADQVBqKAIAIANBSGooAgAgBGpqampqampqIQQgA0HAAGohAyAGQXhqIgYNAAsgA0FEaiEDCwJAIAVFDQAgA0EEaiEDA0AgAygCACAEaiEEIANBCGohAyAFQX9qIgUNAAsLAkACQAJAAkAgBA0AQQEhBgwBCyAEQX9KIgNFDQEgBCADELaFgIAAIgZFDQILQQAhAyAAQQA2AgggACAENgIEIAAgBjYCAAJAIAJFDQAgASACQQN0aiECA0AgASgCACEFAkAgACgCBCADayABQQRqKAIAIgRPDQAgACADIAQQuoCAgAAgACgCACEGIAAoAgghAwsgBiADaiAFIAQQvJGAgAAaIAAgAyAEaiIDNgIIIAFBCGoiASACRw0ACwsPCxCpkICAAAALIAQgAxCokICAAAALaAECfwJAAkACQAJAIAINAEEBIQMMAQsgAkF/SiIERQ0BIAIgBBC2hYCAACIDRQ0CCyAAIAI2AgQgACADNgIAIAMgASACELyRgIAAGiAAIAI2AggPCxCpkICAAAALIAIgBBCokICAAAALigIBBH9BACECQQAhAwJAIAFBCGooAgAiBEUNACAEIARBAXJnQR9zQQlsQckAakEGdmpBAWohAwsgAUEMaiEEAkAgAUEUaigCAEUNACAEEL6NgIAAIQIgBBC+jYCAACACQQFyZ0Efc0EJbEHJAGpBBnZqQQFqIQILAkACQAJAAkACQAJAIAIgA2oiAg0AQQEhAwwBCyACQX9KIgVFDQEgAiAFELaFgIAAIgNFDQILIABBADYCCCAAIAI2AgQgACADNgIAIAFBCGooAgANAgwDCxCpkICAAAALIAIgBRCokICAAAALQQEgASAAEIOCgIAACwJAIAFBFGooAgBFDQBBAiAEIAAQiIWAgAALC8YIAgZ/An4jgICAgABB8ABrIgIkgICAgAAgAiABNgIMIAJBEGoQoYyAgAAgAiACQQxqNgIsIAJBHGohAwJAAkACQAJAAkACQAJAA0ACQCACKAIsKAIAIgFBBGoiBCgCACIFDQAgAigCJCEBIAIoAiAhBSACKAIcIQQgAigCGCEDIAIoAhQhBiACKAIQIQcMAwsCQAJAAkAgASgCACIGLAAAIgdBf0oNAAJAAkAgBUEKSw0AIAUgBmpBf2osAABBAEgNAQsgAkHYAGogBiAFELyCgIAAIAIoAlgNAyACKAIsKAIAIgEoAgQiBiACKAJoIgVJDQsgAikDYCEIIAEgBiAFazYCBCABIAEoAgAgBWo2AgAMAgsgAkE4aiACQSxqEOmAgIAAAkAgAigCOA0AIAIpA0AhCAwCCyACKAI8IQEMBAsgB61C/wGDIQggBCAFQX9qNgIAIAEgBkEBajYCAAsgAiAINwMwIAhC/////w9WDQQgAiAIQgeDIgk3A0gCQCAJQgZUDQAgAkGPgICAADYCVCACIAJByABqNgJQIAJBATYCbCACQgE3AlwgAkGkzcCAADYCWCACIAJB0ABqNgJoIAJBOGogAkHYAGoQrZCAgAAgAkE4ahDPgYCAACEBDAYLAkAgCKciAUEHSw0AQajHwIAAQRQQ0IGAgAAhAQwGCyAJpyEFAkACQAJAAkAgAUEDdiIBQX9qDgIAAQILAkACQAJAIAUgAkEQaiACQSxqQeQAEISFgIAAIgENACACQdgAaiACKAIQIAIoAhgQyZCAgAAgAigCWA0BQQAhAUEARQ0HDAsLIAJBADYCGAwBC0Hwv8CAAEEvENCBgIAAIQEgAkEANgIYCyACIAE2AlggAkHYAGpB+MzAgABBA0H7zMCAAEEIELaNgIAAIAIoAlghAQwIC0EAIQEgBSADIAJBLGpB5AAQh4WAgAAiBUUNASACIAU2AlggAkHYAGpB+MzAgABBA0GDzcCAAEEFELaNgIAAIAIoAlghAQwHCyAFIAEgAkEsakHkABDmgICAACEBCyABRQ0BDAULCyACKAJcIQELIAIoAiAhBSACKAIcIQQgAigCFCEGIAIoAhAhByABDQMgAigCJCEBIAIoAhghAwsgACABNgIUIAAgBTYCECAAIAQ2AgwgACADNgIIIAAgBjYCBCAAIAc2AgAMAwsgAkGPgICAADYCVCACIAJBMGo2AlAgAkEBNgJsIAJCATcCXCACQaDHwIAANgJYIAIgAkHQAGo2AmggAkE4aiACQdgAahCtkICAACACQThqEM+BgIAAIQELIAIoAiAhBSACKAIcIQQgAigCFCEGIAIoAhAhBwsgAEEANgIAIAAgATYCBAJAIAZFDQAgByAGQQEQt4WAgAALIAVFDQAgBCAFQQEQt4WAgAALIAJB8ABqJICAgIAADwsgBSAGQczqwIAAELiQgIAAAAuCBQQBfwF+AX8CfgJAAkACQAJAAkACQAJAAkACQAJAIAJBCksNACACIAFqQX9qLAAAQQBIDQELAkAgASwAACICQX9KDQAgAkH/AXEgASwAASICQf8BcUEHdGpBgH9qIQMgAkF/Sg0CIAMgASwAAiICQf8BcUEOdGpBgIB/aiEDIAJBf0oNAyADIAEsAAMiAkH/AXFBFXRqQYCAgH9qIQMgAkF/Sg0EIANBgICAgH9qrSEEIAEsAAQiAkF/Sg0FIAJB/wFxIAEsAAUiAkH/AXFBB3RqQYB/aiEDIAJBf0oNBiADIAEsAAYiAkH/AXFBDnRqQYCAf2ohAyACQX9KDQcgAyABLAAHIgJB/wFxQRV0akGAgIB/aiEDIAJBf0oNCCABLAAIIgWtQv8BgyEGQQkhAgJAIAVBf0oNAAJAIAExAAkiB0ICVA0AIABBlMjAgABBDhDQgYCAADYCBCAAQQE2AgAPCyAGIAdCB4Z8QoABfCEGQQohAgsgAEEQaiACNgIAIAAgA0GAgICAf2qtQhyGIAR8IAZCOIZ8NwMIDAkLIAAgAq1C/wGDNwMIIABBEGpBATYCAAwIC0GiyMCAAEHDAEHoyMCAABC7kICAAAALIABBEGpBAjYCACAAIAOtNwMIDAYLIABBEGpBAzYCACAAIAOtNwMIDAULIABBEGpBBDYCACAAIAOtNwMIDAQLIABBEGpBBTYCACAAIAKtQv8Bg0IchiAEfDcDCAwDCyAAQRBqQQY2AgAgACADrUIchiAEfDcDCAwCCyAAQRBqQQc2AgAgACADrUIchiAEfDcDCAwBCyAAQRBqQQg2AgAgACADrUIchiAEfDcDCAsgAEEANgIAC8cIAgV/An4jgICAgABB8ABrIgMkgICAgAAgAyACNgIMIAMgATYCCCADQRBqEKGMgIAAIAMgA0EIajYCLCADQRxqIQQCQAJAAkACQAJAAkACQANAAkAgAygCLCICQQRqIgUoAgAiAQ0AIAMoAiQhAiADKAIgIQEgAygCHCEFIAMoAhghBCADKAIUIQYgAygCECEHDAMLAkACQAJAIAIoAgAiBiwAACIHQX9KDQACQAJAIAFBCksNACABIAZqQX9qLAAAQQBIDQELIANB2ABqIAYgARC8goCAACADKAJYDQMgAygCLCICKAIEIgYgAygCaCIBSQ0LIAMpA2AhCCACIAYgAWs2AgQgAiACKAIAIAFqNgIADAILIANBOGogA0EsahDrgICAAAJAIAMoAjgNACADKQNAIQgMAgsgAygCPCECDAQLIAetQv8BgyEIIAUgAUF/ajYCACACIAZBAWo2AgALIAMgCDcDMCAIQv////8PVg0EIAMgCEIHgyIJNwNIAkAgCUIGVA0AIANBj4CAgAA2AlQgAyADQcgAajYCUCADQQE2AmwgA0IBNwJcIANBpM3AgAA2AlggAyADQdAAajYCaCADQThqIANB2ABqEK2QgIAAIANBOGoQz4GAgAAhAgwGCwJAIAinIgJBB0sNAEGox8CAAEEUENCBgIAAIQIMBgsgCachAQJAAkACQAJAIAJBA3YiAkF/ag4CAAECCwJAAkACQCABIANBEGogA0EsakHkABCDhYCAACICDQAgA0HYAGogAygCECADKAIYEMmQgIAAIAMoAlgNAUEAIQJBAEUNBwwLCyADQQA2AhgMAQtB8L/AgABBLxDQgYCAACECIANBADYCGAsgAyACNgJYIANB2ABqQfjMwIAAQQNB+8zAgABBCBC2jYCAACADKAJYIQIMCAtBACECIAEgBCADQSxqQeQAEIaFgIAAIgFFDQEgAyABNgJYIANB2ABqQfjMwIAAQQNBg83AgABBBRC2jYCAACADKAJYIQIMBwsgASACIANBLGpB5AAQ6ICAgAAhAgsgAkUNAQwFCwsgAygCXCECCyADKAIgIQEgAygCHCEFIAMoAhQhBiADKAIQIQcgAg0DIAMoAiQhAiADKAIYIQQLIAAgAjYCFCAAIAE2AhAgACAFNgIMIAAgBDYCCCAAIAY2AgQgACAHNgIADAMLIANBj4CAgAA2AlQgAyADQTBqNgJQIANBATYCbCADQgE3AlwgA0Ggx8CAADYCWCADIANB0ABqNgJoIANBOGogA0HYAGoQrZCAgAAgA0E4ahDPgYCAACECCyADKAIgIQEgAygCHCEFIAMoAhQhBiADKAIQIQcLIABBADYCACAAIAI2AgQCQCAGRQ0AIAcgBkEBELeFgIAACyABRQ0AIAUgAUEBELeFgIAACyADQfAAaiSAgICAAA8LIAEgBkHM6sCAABC4kICAAAAL5wEBAX8jgICAgABB8ABrIgEkgICAgAAgAUEIahCwj4CAACABQShqQSBqIABBIGopAgA3AwAgAUEoakEYaiAAQRhqKQIANwMAIAFBKGpBEGogAEEQaikCADcDACABQShqQQhqIABBCGopAgA3AwAgASAAKQIANwMoIAFB0ABqQRhqIAFBCGpBGGooAgA2AgAgAUHQAGpBEGogAUEIakEQaikDADcDACABQdAAakEIaiABQQhqQQhqKQMANwMAIAEgASkDCDcDUCABQShqIAFB0ABqEL+CgIAAIQAgAUHwAGokgICAgAAgAAu0AQEBfwJAQcgAQQQQtoWAgAAiAg0AQcgAQQQQqJCAgAAACyACQYzJwIAANgIAIAIgASkCADcCBCACIAApAgA3AiAgAkEMaiABQQhqKQIANwIAIAJBFGogAUEQaikCADcCACACQRxqIAFBGGooAgA2AgAgAkEoaiAAQQhqKQIANwIAIAJBMGogAEEQaikCADcCACACQThqIABBGGopAgA3AgAgAkHAAGogAEEgaikCADcCACACC4ABAQF/I4CAgIAAQcAAayICJICAgIAAIAIQsI+AgAAgAkEgakEYaiACQRhqKAIANgIAIAJBIGpBEGogAkEQaikDADcDACACQSBqQQhqIAJBCGopAwA3AwAgAiACKQMANwMgIAAgASACQSBqEMGCgIAAIQEgAkHAAGokgICAgAAgAQt1AQF/AkBBKEEEELaFgIAAIgMNAEEoQQQQqJCAgAAACyADQfjIwIAANgIAIAMgATYCJCADIAA2AiAgAyACKQIANwIEIANBDGogAkEIaikCADcCACADQRRqIAJBEGopAgA3AgAgA0EcaiACQRhqKAIANgIAIAMLngEBAX8jgICAgABB0ABrIgEkgICAgAAgARCwj4CAACABQSBqQQhqIABBCGopAgA3AwAgASAAKQIANwMgIAFBMGpBGGogAUEYaigCADYCACABQTBqQRBqIAFBEGopAwA3AwAgAUEwakEIaiABQQhqKQMANwMAIAEgASkDADcDMCABQSBqIAFBMGoQw4KAgAAhACABQdAAaiSAgICAACAAC4EBAQF/AkBBMEEEELaFgIAAIgINAEEwQQQQqJCAgAAACyACQbTJwIAANgIAIAIgASkCADcCBCACIAApAgA3AiAgAkEMaiABQQhqKQIANwIAIAJBFGogAUEQaikCADcCACACQRxqIAFBGGooAgA2AgAgAkEoaiAAQQhqKQIANwIAIAILngEBAX8jgICAgABB0ABrIgEkgICAgAAgARCwj4CAACABQSBqQQhqIABBCGooAgA2AgAgASAAKQIANwMg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qZCAgAAACyANIA4QqJCAgAAACxgAQYzCwIAAQZzVwIAAIAAgARDLgYCAAAsMACAAIAEQzY6AgAALbAEBfyOAgICAAEEQayICJICAgIAAAkACQCAAKAIAIgAoAgANACABQbjawIAAQQQQ8ZCAgAAhAAwBCyACIAA2AgwgAUGk2sCAAEEEIAJBDGpBvNrAgAAQ/ZCAgAAhAAsgAkEQaiSAgICAACAAC2wBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgACgCACIAKAIADQAgAUG42sCAAEEEEPGQgIAAIQAMAQsgAiAANgIMIAFBpNrAgABBBCACQQxqQajawIAAEP2QgIAAIQALIAJBEGokgICAgAAgAAtyAQF/I4CAgIAAQRBrIgIkgICAgAACQAJAIAAoAgAiACkDAEIAUg0AIAFBuNrAgABBBBDxkICAACEADAELIAIgAEEIajYCDCABQaTawIAAQQQgAkEMakHM2sCAABD9kICAACEACyACQRBqJICAgIAAIAALAgALIwEBfwJAIABBBGooAgAiAUUNACAAKAIAIAFBARC3hYCAAAsL8gIBAn8jgICAgABBEGsiAiSAgICAAAJAAkACQAJAIAFBgAFJDQAgAkEANgIMIAFBgBBPDQEgAiABQT9xQYABcjoADSACIAFBBnZBwAFyOgAMQQIhAQwCCwJAIAAoAggiAyAAKAIERw0AIAAgAxCpgICAACAAKAIIIQMLIAAoAgAgA2ogAToAACAAIAAoAghBAWo2AggMAgsCQCABQYCABEkNACACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQhAQwBCyACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDIQELAkAgACgCBCAAKAIIIgNrIAFPDQAgACADIAEQuoCAgAAgACgCCCEDCyAAKAIAIANqIAJBDGogARC8kYCAABogACADIAFqNgIICyACQRBqJICAgIAAQQALSwEBfwJAIAAoAgQgACgCCCIDayACTw0AIAAgAyACELqAgIAAIAAoAgghAwsgACgCACADaiABIAIQvJGAgAAaIAAgAyACajYCCEEAC8QGAgV/A34jgICAgABBwABrIgQkgICA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A0GIAmogA0GEBGopAgA3AwAgA0EBOgD8AQwQCyADQfgBakEIaiADKAL8AzYCACADQYQCaiADQfgDakEIaikDADcCACADQYwCaiADQYgEaigCADYCACADQQE6APwBDA8LIANBgAJqIAMpAvwDNwMAIANBiAJqIANBhARqKQIANwMAIANBAToA/AEMDgsgA0GAAmogAykC/AM3AwAgA0GIAmogA0GEBGopAgA3AwAgA0EBOgD8AQwNCyAJIAdBwNzAgAAQvJCAgAAACyAHIAJBwNzAgAAQuZCAgAAACyADQfgBakEIaiADKQL8AzcDACADQYgCaiADQYQEaikCADcDACADQQE6APwBDAoLIANBgAJqIAMpAvwDNwMAIANBiAJqIANBhARqKQIANwMAIANBAToA/AEgA0EFNgL4AQwJCyADQQI2AqwFIANBAjYCoAUgA0ECNgKUBSADQQI2AogFIANBAjYC/AQgA0ECNgLwBCADQQI2AuQEIANBAjYC2AQgA0ECNgLMBCADQQI2AsAEIANBAjYCtAQgA0ECNgKoBCADQQI2ApwEIANBAjYCkAQgA0ECNgKEBCADQQI2AvgDQQAhBCADQfgDaiEGA0ACQCADQfYDaiAEEMuIgIAARQ0AIANByAVqIANB2ANqEMOBgIAAIAMoAswFIQUCQCADKALIBQ0AIANByAVqIANB2ANqIAUQx4iAgAAgAygC0AUhByADKALMBSEJAkAgAygCyAVFDQAgA0H4AWpBDGogBzYCACADQYACaiAJNgIAIANBiAJqIANByAVqQQxqKQIANwMAIANBAToA/AEgA0EFNgL4AQwMCyAGQQhqIAc2AgAgBkEEaiAJNgIAIAYgBUEgRzYCAAwBCyADQfgBakEIaiAFNgIAIANBhAJqIANByAVqQQhqKQMANwIAIANBjAJqIANB2AVqKAIANgIAIANBAToA/AEgA0EFNgL4AQwKCyAGQQxqIQYgBEEBaiIEQRBHDQALQQQhBiADQfgBakEEciALIAogCBDiiICAACADQZQCaiADQfgDakHAARC8kYCAABogAyANNwKMAiADIAw2AogCDAILAkAgAygC4AMiByACTw0AIAEgB2otAABBD00NASADQQA6APwBDAgLIAcgAkGg3MCAABC3kICAAAALIANB+ANqIANB2ANqIAZBAWpBAXYQx4iAgAAgAygC+AMNBCADQYAEaigCACEGIAMoAvwDIQcCQAJAIAQNACADQfgDaiADQdgDahDDgYCAACADKAL4Aw0EIANB+ANqIANB2ANqIAMoAvwDEMeIgIAAIAMoAvgDDQUgA0GABGooAgAhBCADKAL8AyEIQQAhCQwBCyADQfgDaiADQdgDakEgEMeIgIAAIAMoAvgDDQYgA0GABGooAgAhBCADKAL8AyEIQQEhCQsgA0H4AWpBBHIgByAGIAUQ4oiAgAAgAyAENgKQAiADIAg2AowCIAMgCTYCiAJBASEGCyADIAY2AvgBCyADQegBaiIEIANB+AFqQQxqKQIANwMAIANB8AFqIgUgA0H4AWpBFGooAgA2AgAgAyADKQL8ATcD4AEgA0EYaiADQfgBakEYakHEARC8kYCAABogA0EMaiAEKQMANwIAIANBFGogBSgCADYCACADIAY2AgAgAyADKQPgATcCBCAAIAMgASACEOOIgIAADAULIANB+AFqQQhqIAMoAvwDNgIAIANBhAJqIANB+ANqQQhqKQMANwIAIANBjAJqIANBiARqKAIANgIAIANBAToA/AEMAwsgA0GAAmogAykC/AM3AwAgA0GIAmogA0GEBGopAgA3AwAgA0EBOgD8AQwCCyADQYACaiADKQL8AzcDACADQYgCaiADQYQEaikCADcDACADQQE6APwBDAELIANBgAJqIAMpAvwDNwMAIANBiAJqIANBhARqKQIANwMAIANBAToA/AELIANB4AFqQQhqIANBhAJqKQIAIg03AwAgA0HgAWpBEGogA0GMAmooAgAiAjYCACADIAMpAvwBIg43A+ABIABBEGogAjYCACAAQQhqIA03AgAgACAONwIAIABBBzYCzAELIANB4AVqJICAgIAAC4ABAQN/IABBDGooAgAiASAAQQhqKAIAIgJrQQxuIQMCQCABIAJGDQAgA0EMbCEBA0ACQCACQQRqKAIAIgNFDQAgAigCACADQQEQt4WAgAALIAJBDGohAiABQXRqIgENAAsLAkAgACgCBCICRQ0AIAAoAgAgAkEMbEEEELeFgIAACwuEAgEGfyAAQQxqKAIAIgEgAEEIaigCACICa0GQAW4hAwJAIAEgAkYNACACIANBkAFsaiEEA0ACQCACQSxqKAIAIgNFDQAgAkEkaigCACEBIANBFGwhBQNA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CBC2hYCAACIGRQ0DCyADQQA2AgggAyAFNgIEIAMgBjYCAAJAIAJFDQAgA0GYAWpBBHIhBgNAIANBmAFqIAEQmoOAgAACQCADKAKYAUUNACADQRBqQQhqIAZBCGopAgAiBDcDACADIAYpAgAiCTcDECAAQQxqIAQ3AgAgACAJNwIEIABBATYCACADKAIEIgVFDQMgAygCACAFQYQBbEEEELeFgIAADAMLIANBEGogBkGEARC8kYCAABoCQCADKAIIIgUgAygCBEcNACADIAUQrICAgAAgAygCCCEFCyADKAIAIAVBhAFsaiADQRBqQYQBELyRgIAAGiADIAVBAWo2AgggAkF/aiICDQALCyAAIAMpAwA3AgQgAEEANgIAIABBDGogA0EIaigCADYCAAsgA0GgAmokgICAgAAPCxCpkICAAAALIAcgCBCokICAAAALgwUFAX8BfgR/AX4EfyOAgICAAEHwAGsiAySAgICAACADQcAAaiABENGOgIAAAkACQAJAAkAgAygCQEUNACADKQJEIQQgAEEMaiADQcAAakEMaikCADcCACAAIAQ3AgQgAEEBNgIADAELQQghBQJAIANBwABqQQhqKAIAQShuQeYAIAMoAkRBAUYbIgYgAiAGIAJJGyIGRQ0AIAZBs+bMGUsNAiAGQShsIgdBAEgNAiAHIAZBtObMGUlBA3QiCBC2hYCAACIFRQ0DCyADQQA2AgggAyAGNgIEIAMgBTYCAAJAIAJFDQAgA0EUaiEGIANBwABqQQhqIQUDQCADQcAAaiABENGBgIAAAkAgAygCQEUNACADQRBqQQhqIANBwABqQQxqKQIAIgQ3AwAgAyADKQJEIgk3AxAgAEEMaiAENwIAIAAgCTcCBCAAQQE2AgAgAygCBCIGRQ0DIAMoAgAgBkEobEEIELeFgIAADAMLIAYgBSkCADcCACAGQSBqIgogBUEgaikCADcCACAGQRhqIgsgBUEYaikCADcCACAGQRBqIgwgBUEQaikCADcCACAGQQhqIg0gBUEIaikCADcCAAJAIAMoAggiCCADKAIERw0AIAMgCBCrgICAACADKAIIIQgLIAMoAgAgCEEobGoiByAGKQIANwIAIAdBCGogDSkCADcCACAHQRBqIAwpAgA3AgAgB0EYaiALKQIANwIAIAdBIGogCikCADcCACADIAhBAWo2AgggAkF/aiICDQALCyAAIAMpAwA3AgQgAEEANgIAIABBDGogA0EIaigCADYCAAsgA0HwAGokgICAgAAPCxCpkICAAAALIAcgCBCokICAAAALvwYFAX8BfgV/AX4BfyOAgICAAEHwAWsiAySAgICAACADQYABaiABENGOgIAAAkACQAJAAkAgAygCgAFFDQAgAykChAEhBCAAQQxqIANBgAFqQQxqKQIANwIAIAAgBDcCBCAAQQE2AgAMAQsCQAJAIANBiAFqKAIAQfAAbkEkIAMoAoQBQQFGGyIFIAIgBSACSRsiBQ0AQQQhBgwBCyAFQcmkkglLDQMgBUHwAGwiB0EASA0DIAcgBUHKpJIJSUECdCIIELaFgIAAIgZFDQILIANBADYCECADIAU2AgwgAyAGNgIIAkAgAkUNACADQYABakEYaiEJIANBgAFqQQhqIQYDQCADQYABaiABEMqBgIAAAkAgAygChAEiBw0AIANB8ABqQQhqIAZBCGopAgAiBDcDACADIAYpAgAiCjcDcCAAQQxqIAQ3AgAgACAKNwIEIABBATYCAAJAIAMoAhAiBUUNACADKAIIIgggBUHwAGxqIQsDQAJAIAhBDGooAgAiAkUNACAIKAIEIQUgAkEUbCEGA0ACQAJAAkACQCAFLQAADgQAAAABAwsgBUEIaiECDAELIAVBBGohAgsgAkEEaigCACIHRQ0AIAIoAgAgB0EBELeFgIAACyAFQRRqIQUgBkFsaiIGDQALCyAIQfAAaiEFAkAgCEEIaigCACICRQ0AIAgoAgQgAkEUbEEEELeFgIAACyAFIQggBSALRw0ACwsgAygCDCIFRQ0DIAMoAgggBUHwAGxBBBC3hYCAAAwDCyADQfAAakEIaiIIIAZBCGopAgA3AwAgAyAGKQIANwNwIAMoAoABIQsgA0EYaiAJQdgAELyRgIAAGgJAIAMoAhAiBSADKAIMRw0AIANBCGogBRC1gICAACADKAIQIQULIAMoAgggBUHwAGxqIgUgBzYCBCAFIAs2AgAgBSADKQNwNwIIIAVBEGogCCkDADcCACAFQRhqIANBGGpB2AAQvJGAgAAaIAMgAygCEEEBajYCECACQX9qIgINAAsLIAAgAykDCDcCBCAAQQA2AgAgAEEMaiADQRBqKAIANgIACyADQfABaiSAgICAAA8LIAcgCBCokICAAAALEKmQgIAAAAuJAQECfyOAgICAAEEQayICJICAgIAAIAAoAgAiAEEIaigCACEDIAAoAgAhACACIAEQ/5CAgAACQCADRQ0AIANBKGwhAwNAIAIgADYCDCACIAJBDGpBnJbAgAAQ4ZCAgAAaIABBKGohACADQVhqIgMNAAsLIAIQ4pCAgAAhACACQRBqJICAgIAAIAALggEBAn8jgICAgABBEGsiAiSAgICAACAAKAIAIgBBCGooAgAhAyAAKAIAIQAgAiABEP+QgIAAAkAgA0UNAANAIAIgADYCDCACIAJBDGpBrJbAgAAQ4ZCAgAAaIABBAWohACADQX9qIgMNAAsLIAIQ4pCAgAAhACACQRBqJICAgIAAIAAL3wEBBX8jgICAgABBEGsiAiSAgICAACAAKAIAIgAoAgAhAyACIABBCGooAgAiADYCACACIAEQ5oGAgAACQCAARQ0AIABBFGwhBCABKAIIIQADQCACIAMQm46AgAAgAigCACEFAkAgASgCBCAAayACKAIIIgZPDQAgASAAIAYQuoCAgAAgASgCCCEACyABKAIAIABqIAUgBhC8kYCAABogASAAIAZqIgA2AggCQCACKAIEIgZFDQAgBSAGQQEQt4WAgAALIANBFGohAyAEQWxqIgQNAAsLIAJBEGokgICAgAAL4gMCDH8EfiOAgICAAEHQAGsiAySAgICAAAJAIAAoAgQgACgCCCIEayABTw0AIAAgBCABELyAgIAAIAAoAgghBAsgACgCACAEQShsaiEFAkAgAUECSQ0AIAFBf2ohBiACQQFqIQcgA0EoakEBciEIIANBCGohCSADQRBqIQogA0EYaiELIANBH2ohDANAQQIhDQJAIAItAAAiDkECRg0AIAggBxDDjoCAAAJAAkAgDg0AQQAhDQwBCyADIAIoAiQ2AkxBASENCyAMIAhBH2opAAA3AAAgCyAIQRhqKQAANwMAIAogCEEQaikAADcDACAJIAhBCGopAAA3AwAgAyAIKQAANwMACyAFIA06AAAgBSADKQMANwABIAVBCWogCSkDADcAACAFQRFqIAopAwA3AAAgBUEZaiALKQMANwAAIAVBIGogDCkAADcAACAFQShqIQUgBkF/aiIGDQALIAEgBGpBf2ohBAsCQCABRQ0AIAJBCGopAgAhDyACQRBqKQIAIRAgAkEYaikCACERIAIpAgAhEiAFQSBqIAJBIGopAgA3AgAgBUEYaiARNwIAIAVBEGogEDcCACAFQQhqIA83AgAgBSASNwIAIARBAWohBAsgACAENgIIIANB0ABqJICAgIAAC78CAQd/AkACQAJAIAAoAggiAw0AQQAhBEEAIQUMAQsgAigCACIGQX9zIQcgACgCACEEQQAhCANAAkACQCAEKAIAIgUoAgAiCSAGTQ0AIAkgB2oiCSAFQQxqKAIATw0AIAUoAgQgCUEFdGogAUEgELqRgIAARQ0BC0EBIQUgCEEBaiEEDAILIARBBGohBCADIAhBAWoiCEcNAAtBACEFDAELIAQgA0YNACADIARrIQggACgCACAEQQJ0aiEEIAIoAgAiB0F/cyECA0ACQAJAAkAgBCgCACIJKAIAIgYgB00NACAGIAJqIgYgCUEMaigCAE8NACAJKAIEIAZBBXRqIAFBIBC6kYCAAEUNAQsgBUEBaiEFDAELIAQgBUECdGsgCTYCAAsgBEEEaiEEIAhBf2oiCA0ACwsgACADIAVrNgIIC8QJAwJ/AX4IfyOAgICAAEHQAWsiAiSAgICAACACQQhqQRBqIAFBEGooAgAiAzYCACACQQhqQQhqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBmAFqIAJBCGogAkHIAWogAxCQgoCAAAJAAkACQAJAIAIpA5gBIgRCAlENACACQfAAakEgaiIBIAJBwAFqKQMANwMAIAJB8ABqQRhqIgMgAkGYAWpBIGopAwA3AwAgAkHwAGpBEGogAkGYAWpBGGopAwA3AwAgAkHwAGpBCGogAkGYAWpBEGopAwA3AwAgAiACKQOgATcDcCAEQgBSDQELIABBADYCCCAAQgg3AgAgAigCFCIDIAIoAhAiAWtBGG4hBQJAIAMgAUYNACAFQRhsIQMgAUEIaiEBA0ACQCABQQRqKAIAIgVFDQAgASgCACAFQQEQt4WAgAALIAFBGGohASADQWhqIgMNAAsLIAIoAgwiAUUNASACKAIIIAFBGGxBCBC3hYCAAAwBCyACQcgAakEgaiABKQMANwMAIAJByABqQRhqIAMpAwA3AwAgAkHIAGpBEGoiASACQfAAakEQaikDADcDACACQcgAakEIaiIDIAJB8ABqQQhqKQMANwMAIAIgAikDcDcDSEGgAUEIELaFgIAAIgZFDQEgBiACKQNINwMAIAZBIGogAkHIAGpBIGoiBykDADcDACAGQRhqIAJByABqQRhqIggpAwA3AwAgBkEQaiABKQMANwMAIAZBCGogAykDADcDACACQoSAgIAQNwIkIAIgBjYCICACQTBqQRBqIAJBCGpBEGooAgAiATYCACACQTBqQQhqIAJBCGpBCGopAwA3AwAgAiACKQMINwMwIAJBmAFqIAJBMGogAkHIAWogARCQgoCAAAJAIAIpA5gBIgRCAlENACACQZgBakEIaiEBQSghCUEBIQUDQCACQfAAakEgaiIDIAFBIGopAwA3AwAgAkHwAGpBGGoiCiABQRhqKQMANwMAIAJB8ABqQRBqIgsgAUEQaikDADcDACACQfAAakEIaiIMIAFBCGopAwA3AwAgAiABKQMANwNwIARQDQEgByADKQMANwMAIAggCikDADcDACACQcgAakEQaiIKIAspAwA3AwAgAkHIAGpBCGoiCyAMKQMANwMAIAIgAikDcDcDSAJAIAUgAigCJEcNACACQSBqIAVBARC7gICAACACKAIgIQYLIAYgCWoiAyACKQNINwMAIANBIGogBykDADcDACADQRhqIAgpAwA3AwAgA0EQaiAKKQMANwMAIANBCGogCykDADcDACACIAVBAWoiBTYCKCACQZgBaiACQTBqIAJByAFqIAIoAkAQkIKAgAAgCUEoaiEJIAIpA5gBIgRCAlINAAsLIAIoAjwiAyACKAI4IgFrQRhuIQUCQCADIAFGDQAgBUEYbCEDIAFBCGohAQNAAkAgAUEEaigCACIFRQ0AIAEoAgAgBUEBELeFgIAACyABQRhqIQEgA0FoaiIDDQALCwJAIAIoAjQiAUUNACACKAIwIAFBGGxBCBC3hYCAAAsgACACKQMgNwIAIABBCGogAkEgakEIaigCADYCAAsgAkHQAWokgICAgAAPC0GgAUEIEKiQgIAAAAvLAwEFfwJAAkACQCACRQ0AIAJBDGwiA0F0aiIEQQxuQQFqIgVBB3EhBiAEQdQATw0BQQAhBSABIQQMAgsgAEEANgIIIABCATcCAA8LIAFB3ABqIQQgBUH4////A3EhB0EAIQUDQCAEKAIAIARBdGooAgAgBEFoaigCACAEQVxqKAIAIARBUGooAgAgBEFEaigCACAEQbh/aigCACAEQax/aigC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dHIhCiAJIAsgDRC8kYCAABogDkGAfnEgDHIhDkECIQggDSELDAELIAFBBGooAgAhDQJAAkAgAUEMaigCACIJDQBBASEODAELIAlBf0wNCCAJQQEQtoWAgAAiDkUNCQsgDiANIAkQvJGAgAAaQQMhCCAJIQ0LIAUgA2oiASAIOgAAIAFBA2ogCkEQdjoAACABQQFqIAo7AAAgAUEQaiALNgIAIAFBDGogDTYCACABQQhqIAk2AgAgAUEEaiAONgIAIANBFGohAyAHQX9qIgcNAAsLIAAgAjYCCA8LIAMgARCokICAAAALIA1BARCokICAAAALIA1BARCokICAAAALIA1BARCokICAAAALEKmQgIAAAAsgCUEBEKiQgIAAAAsgAiACQYDfwIAAELeQgIAAAAvcAgQEfwF+AX8DfgJAIAFBCGooAgAiAg0AIABCCDcCACAAIAI2AggPCwJAAkACQCACQarVqhVLDQAgAkEwbCIDQQBIDQAgASgCACEEIAJBq9WqFUlBA3QhBQJAAkAgAw0AIAUhAQwBCyADIAUQtoWAgAAhAQsgAUUNASAAIAI2AgQgACABNgIAIAJBMGwhAyACIQUCQANAIANFDQEgBUUNBCAEQSBqKQMAIQYgBEEoaigCACEHIARBCGopAwAhCCAEQRBqKQMAIQkgBCkDACEKIAFBGGogBEEYaikDADcDACABQRBqIAk3AwAgAUEIaiAINwMAIAEgCjcDACABQShqIAc2AgAgAUEgaiAGNwMAIAFBMGohASADQVBqIQMgBEEwaiEEIAVBf2oiBQ0ACwsgACACNgIIDwsQqZCAgAAACyADIAUQqJCAgAAACyACIAJBgN/AgAAQt5CAgAAAC8ECAgR/BH4CQCABQQhqKAIAIgINACAAQgg3AgAgACACNgIIDwsCQAJAAkAgAkGz5swZSw0AIAJBKGwiA0EASA0AIAEoAgAhBCACQbTmzBlJQQN0IQUCQAJAIAMNACAFIQEMAQsgAyAFELaFgIAAIQELIAFFDQEgACACNgIEIAAgATYCACACQShsIQMgAiEFAkADQCADRQ0BIAVFDQQgBEEIaikDACEGIARBEGopAwAhByAEKQMgIQggBCkDACEJIAFBGGogBEEYaikDADcDACABQRBqIAc3AwAgAUEIaiAGNwMAIAEgCTcDACABQSBqIAg3AwAg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QRBqIg8gECkCADcDACACQegAakEIaiIQIBEpAgA3AwAgAiABKQIANwNoAkAgByACKAI0Rw0AIAJBMGogByACKAJgQQFqIgVBfyAFGxC4gICAACACKAIwIRMLIBMgC2oiDEFYaiIFIAIpA2g3AwAgECkDACEEIA8pAwAhBiANKQMAIQggDCAONgIAIAxBeGogAzcDACAFQRhqIAg3AwAgBUEQaiAGNwMAIAVBCGogBDcDACACIAdBAWoiBzYCOCALQTBqIQsgAkHQAWogAkHAAGoQkYSAgAAgAikD8AEiA1BFDQALCyACQcAAahCrhICAACAAQQhqIAJBMGpBCGooAgA2AgAgACACKQMwNwIACyACQYACaiSAgICAAA8LIAUgBxCokICAAAALEKmQgIAAAAvIAgEFfyOAgICAAEEwayICJICAgIAAIAJBCGogAUEIaikCADcDACACIAEpAgA3AwACQAJAAkAgAiACQQxqEI+CgIAAIgENACAAQQA2AgggAEIENwIADAELQRBBBBC2hYCAACIDRQ0BIAMgATYCACACQoSAgIAQNwIUIAIgAzYCECACQSBqQQhqIAJBCGopAwA3AwAgAiACKQMANwMgAkAgAkEgaiACQSxqIgQQj4KAgAAiBUUNAEEEIQZBASEBA0ACQCABIAIoAhRHDQAgAkEQaiABQQEQt4CAgAAgAigCECEDCyADIAZqIAU2AgAgAiABQQFqIgE2AhggBkEEaiEGIAJBIGogBBCPgoCAACIFDQALCyAAIAIpAxA3AgAgAEEIaiACQRBqQQhqKAIANgIACyACQTBqJICAgIAADwtBEEEEEKiQgIAAAAvIAgEFfyOAgICAAEEwayICJICAgIAAIAJBCGogAUEIaikCADcDACACIAEpAgA3AwACQAJAAkAgAiACQQxqEI+CgIAAIgENACAAQQA2AgggAEIENwIADAELQRBBBBC2hYCAACIDRQ0BIAMgATYCACACQoSAgIAQNwIUIAIgAzYCECACQSBqQQhqIAJBCGopAwA3AwAgAiACKQMANwMgAkAgAkEgaiACQSxqIgQQj4KAgAAiBUUNAEEEIQZBASEBA0ACQCABIAIoAhRHDQAgAkEQaiABQQEQt4CAgAAgAigCECEDCyADIAZqIAU2AgAgAiABQQFqIgE2AhggBkEEaiEGIAJBIGogBBCP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IAkgBkEBELeFgIAACyAIKAIQDQECQCABKAIIIgkgASgCBEcNACABIAkQqYCAgAAgASgCCCEJCyABKAIAIAlqQf0AOgAAIABBADYCACABIAEoAghBAWo2AggMAgsgCEEoaiAIQRBqQQxqKAIAIgE2AgAgCCAIKQIUIgo3AyAgAEEMaiABNgIAIAAgCjcCBCAAQQE2AgAMAQsgCEEIaiAIQRBqQQxqKAIAIgE2AgAgCCAIKQIUIgo3AwAgAEEMaiABNgIAIAAgCjcCBCAAQQE2AgALIAhBMGokgICAgAALmgMCAn8BfiOAgICAAEEgayIIJICAgIAAAkAgASgCCCIJIAEoAgRHDQAgASAJEKmAgIAAIAEoAgghCQsgASgCACAJakH7ADoAACABIAEoAghBAWo2AgggCEEQaiABIAUgBhD5hoCAAAJAAkACQCAIKAIQDQACQCABKAIIIgkgASgCBEcNACABIAkQqYCAgAAgASgCCCEJCyABKAIAIAlqQTo6AAAgASABKAIIQQFqNgIIIAhBEGogASAHKAIAIAdBCGooAgAQ+YaAgAAgCCgCEA0BAkAgASgCCCIJIAEoAgRHDQAgASAJEKmAgIAAIAEoAgghCQsgASgCACAJakH9ADoAACAAQQA2AgAgASABKAIIQQFqNgIIDAILIAhBCGogCEEQakEMaigCACIBNgIAIAggCCkCFCIKNwMAIABBDGogATYCACAAIAo3AgQgAEEBNgIADAELIAhBCGogCEEQakEMaigCACIBNgIAIAggCCkCFCIKNwMAIABBDGogATYCACAAIAo3AgQgAEEBNgIACyAIQSBqJICAgIAAC5QEAgV/AX4jgICAgABBoAFrIgIkgICAgAAgAkEIahD1hoCAACABKAIAIQMgAkHYAGogAkEIakEBIAFBCGooAgAiBBD8hoCAAAJAAkACQCACKAJYDQAgAkHYAGpBCGotAAAhBSACKAJcIQECQAJAIARFDQAgBEEFdCEGIAVB/wFxRSEEA0ACQCAEQQFxRQ0AAkAgASgCCCIEIAEoAgRHDQAgASAEEKmAgIAAIAEoAgghBAsgASgCACAEakEsOgAAIAEgASgCCEEBajYCCAsgAkHYAGpBAEHCABC5kYCAABogAiACQdgAakHCACADQSBBABDJjoCAACACQcgAaiABIAIoAgAgAigCBBD5hoCAACACKAJIDQIgA0EgaiEDQQEhBCAGQWBqIgYNAAtBACEFCyACQShqIAEgBUH/AXFBAEcQkYeAgAAgAigCKA0CIAAgAikDCDcCBCAAQQA2AgAgAEEMaiACQRBqKAIANgIADAMLIAJBKGpBDGogAkHIAGpBDGooAgA2AgAgAiACKQJMNwIsDAELIAJBKGpBDGogAkHYAGpBDGooAgA2AgAgAiACKQJcNwIsCyACQSBqIAJBKGpBDGooAgAiATYCACACIAIpAiwiBzcDGCAAQQxqIAE2AgAgACAHNwIEIABBATYCACACKAIMIgFFDQAgAigCCCABQQEQt4WAgAALIAJBoAFqJICAgIAAC/kBAgF/AX4jgICAgABBMGsiAiSAgICAACACEPWGgIAAAkACQCABKAIARQ0AIAJBIGogAiACIAIgAkGLjcGAAEECIAEQl4OAgAAMAQsgAkEgaiACIAIgAiACQYaNwYAAQQUgAUEEahCUg4CAAAsCQAJAIAIoAiANACAAIAIpAwA3AgQgAEEANgIAIABBDGogAkEIaigCADYCAAwBCyACQRhqIAJBIGpBDGooAgAiATYCACACIAIpAiQiAzcDECAAQQxqIAE2AgAgACADNwIEIABBATYCACACKAIEIgBFDQAgAigCACAAQQEQt4WAgAALIAJBMGokgICAgAALjwMCAn8BfiOAgICAAEEgayIIJICAgIAAAkAgASgCCCIJIAEoAgRHDQAgASAJEKmAgIAAIAEoAgghCQsgASgCACAJakH7ADoAACABIAEoAghBAWo2AgggCEEQaiABIAUgBhD5hoCAAAJAAkACQCAIKAIQDQACQCABKAIIIgkgASgCBEcNACABIAkQqYCAgAAgASgCCCEJCyABKAIAIAlqQTo6AAAgASABKAIIQQFqNgIIIAhBEGogByABEMaAgIAAIAgoAhANAQJAIAEoAggiCSABKAIERw0AIAEgCRCpgICAACABKAIIIQkLIAEoAgAgCWpB/QA6AAAgAEEANgIAIAEgASgCCEEBajYCCAwCCyAIQQhqIAhBEGpBDGooAgAiATYCACAIIAgpAhQiCjcDACAAQQxqIAE2AgAgACAKNwIEIABBATYCAAwBCyAIQQhqIAhBEGpBDGooAgAiATYCACAIIAgpAhQiCjcDACAAQQxqIAE2AgAgACAKNwIEIABBATYCAAsgCEEgaiSAgICAAAu/FQILfwJ+I4CAgIAAQeAGayIEJICAgIAAIARBADoAECAEQQA2AgwgBEIANwIEIAQgAUEMaigCACIFNgIAIAFBBGooAgAhBiAEIARBDGo2AmwgBCACNgJoIAQgBiAFQYQBbGo2AmQgBCAGNgJgIARBGGogBEHgAGoQjIOAgAAgBCgCGCEHAkACQAJAAkACQCAEKAIgIghFDQAgBygCACEJAkAgCEEBRg0AIAdBBGohBiAIQf7///8DakH/////A3EhCiAJKAIAIQUCQCAIQX9qQQNxIgtFDQAgBSEMA0AgBigCACIFIAkgDCAFKAIAIgVLGyEJIAZBBGohBiAMIAUgDCAFSRsiBSEMIAtBf2oiCw0ACwsgCkEDSQ0AIAcgCEECdGohDQNAIAZBDGooAgAiCyAGQQhqKAIAIgogBkEEaigCACIOIAYoAgAiDCAJIAUgDCgCACIMSxsgBSAMIAUgDEkbIgUgDigCACIMSxsgBSAMIAUgDEkbIgUgCigCACIMSxsgBSAMIAUgDEkbIgUgCygCACIMSxshCSAFIAwgBSAMSRshBSAGQRBqIgYgDUcNAAsLIARB4ABqIAlBBGoQw46AgAAgCSgCACEGIARBKGpBCGogBEHgAGpBCGoiCykDADcDACAEQShqQRBqIARB4ABqQRBqIgopAwA3AwAgBEEoakEYaiAEQeAAakEYaiIOKQMANwMAIARBKGpBIGogBjYCACAEIAQpA2A3AyggCEECdCEMQQAhBgNAIAcgBmooAgAhBSAEQdgFaiAEQShqEMOOgIAAIARBoAZqIAVBBGoQw46AgAACQCAEQdgFaiAEQaAGakEgELqRgIAARQ0AIARB2ANqQRhqIARB2AVqQRhqKQMANwMAIARB2ANqQRBqIARB2AVqQRBqKQMANwMAIARB2ANqQQhqIARB2AVqQQhqKQMANwMAIAQgBCkD2AU3A9gDIA4gBEGgBmpBGGopAwA3AwAgCiAEQaAGakEQaikDADcDACALIARBoAZqQQhqKQMANwMAIAQgBCkDoAY3A2AgBEGABmogAyAEQdgDaiAEQeAAahDghICAACAEKAKABiIFRQ0EIAQoAoQGIglFDQAgBSAJQQV0QQEQt4WAgAALIAwgBkEEaiIGRw0ACyAEQgA3AlQgBEHYA2pBGGoiBiACQRBqEP+CgIAAIARB2ANqQTBqIgUgBEEoakEIaikDADcDACAEQZAEaiIMIARBKGpBEGopAwA3AwAgBEGYBGoiCSAEQShqQRhqKQMANwMAIARBoARqIARBKGpBIGooAgAiCjYCACAEQdgDakEQaiACKQMIIg83AwAgBEIANwPYAyAEIAQpAyg3A4AEIAQgAikDACIQNwPgAyAEQaAGakEYaiIOIARB2ANqQSBqKQMANwMAIARBoAZqQRBqIg0gBikDADcDACAEQaAGakEIaiIGIA83AwAgBCAQNwOgBiAEQaAGakEgaiICEPSNgIAAIARB2AVqQRhqIAkpAwA3AwAgBEHYBWpBEGogDCkDADcDACAEQdgFakEIaiAFKQMANwMAIAQgBCkDgAQ3A9gFIARBgAZqEJKOgIAAIARB+AFqIgsgBEHYBWogCiAEQYAGahDNgICAAEEAIQUgBEHwAWpBADYCACAEQegBakIENwMAIARB2AFqQgA3AwAgBEHgAGpBEGogBikDADcDACAEQeAAakEYaiANKQMANwMAIARB4ABqQSBqIA4pAwA3AwAgBEHgAGpBKGogAikDADcDACAEQeAAakEwaiAEQaAGakEoaikDADcDACAEQgA3A8gBIARCADcDYCAEIAQpA6AGNwNoIARBvAFqQgA3AgAgBEGkAWpCADcCACAEQQA6ANQDIARBADYCrAMgBEEANgKEAyAEQQA2AtwCIARBADYCtAIgBEIANwOwASAEQgA3A5gBIAhBAnQhCSAEQdgFakEEciEMIARB3AJqIQogBEGwAWohDiAEQeAAakEIaiENA0AgDCAHIAVqKAIAIgZBBGoQw46AgAAgBCAGKAIANgLYBSAEQYAGakEYaiAGQfwAaikAADcDACAEQYAGakEQaiAGQfQAaikAADcDACAEQYAGakEIaiAGQewAaikAADcDACAEIAYpAGQ3A4AGIARBoAZqIAZBJGoQqY6AgAAgBEHYA2ogBEHgAGogAyAEQdgFaiAEQYAGaiAEQaAGahCZgoCAAAJAAkACQAJAIAQpA9gDIg9CAlENACAPQgFSDQIgBCAEKAIIQQFqNgIIIARB0ABqIAZB5ABqEMOEgIAARQ0DIAAgBCkDADcCACAAQRBqIARBEGooAgA2AgAgAEEIaiAEQQhqKQMANwIADAELIABBAjoAEAsC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AAAgACACKQMYNwAQIAAgAzYCACAAIAY3AgQgAEEMaiABNgIACyACQcABaiSAgICAAAvpCgENfyOAgICAAEHwAWsiAiSAgICAACACQfgAakIANwMAIAJB4ABqQRBqQgA3AwAgAkHgAGpBCGpCADcDACACQgA3A2AgAkEgaiABIAJB4ABqQSAQ0o6AgAACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAiANACACQagBakEIaiACQfQAaikCADcDACACQagBakEQaiACQfwAaigCADYCACACIAIpAmw3A6gBIAIoAmAhAyACKAJkIQQgAigCaCEFIAJBADYC2AEgAkHgAGogASACQdgBakEEENKOgIAAIAIoAmANASACQQhqQQhqIAJBqAFqQQhqKQMANwMAIAJBCGpBEGogAkGoAWpBEGooAgA2AgAgAiACKQOoATcDCCACKALYASEGIAJB4ABqIAEQ04GAgAAgAi0AYA0DIAJBIGpBOGoiByACQZkBaikAADcDACACQSBqQTBqIgggAkGRAWopAAA3AwAgAkEgakEoaiIJIAJBiQFqKQAANwMAIAJBwABqIgogAkGBAWopAAA3AwAgAkE4aiILIAJB+QBqIgwpAAA3AwAgAkEgakEQaiACQfEAaiINKQAANwMAIAJBIGpBCGogAkHpAGoiDikAADcDACACIAIpAGE3AyAgAkHgAGogARDSgYCAACACLQBgDQQgAEHoAGogAikAYTcAACAAQYABaiAMKQAANwAAIABB+ABqIA0pAAA3AAAgAEHwAGogDikAADcAACAAQSRqIAJBCGpBEGooAgA2AgAgAEEcaiACQQhqQQhqKQMANwIAIABBFGogAikDCDcCACAAQShqIAIpAyA3AAAgAEEwaiACQSBqQQhqKQMANwAAIABBOGogAkEgakEQaikDADcAACAAQcAAaiALKQMANwAAIABByABqIAopAwA3AAAgAEHQAGogCSkDADcAACAAQdgAaiAIKQMANwAAIABB4ABqIAcpAwA3AAAgAEEQaiAFNgIAIABBDGogBDYCACAAQQhqIAM2AgAgACAGNgIEIABBADYCAAwFCyACIAIoAC02AtgBIAIgAkEgakEQaigAADYA2wEgAiACKALYATYCwAEgAiACKADbATYAwwEgAigAKSEDIAIoACUhBCACLQAkIQVBEEEEELaFgIAAIgFFDQUgASADNgAFIAEgBDYAASABIAU6AAAgASACKALAATYACSABQQxqIAIoAMMBNgAAQdziwIAAIQRBKSEFDAELIAJBIGpBCGoiAyACQeAAakEQaigCADYCACACIAJB4ABqQQhqKQMANwMgIAIoAmQhBEEQQQQQtoWAgAAiAUUNBSABIAQ2AgAgASACKQMgNwIEIAFBDGogAygCADYCAEGF48CAACEEQSshBQtBEEEEELaFgIAAIgNFDQUgAyAFNgIMIAMgBDYCCCADQQA2AgQgAyABNgIAIAAgAzYCBCAAQQE2AgAgAEEQakEtNgIAIABBDGpBo+TAgAA2AgAgAEEIakEANgIADAILQRBBBBC2hYCAACIBRQ0FIAEgAikCZDcCACAAIAE2AgQgAEEBNgIAIABBEGpBLTYCACAAQQxqQdDkwIAANgIAIABBCGpBADYCACABQQhqIAJB4ABqQQxqKQIANwIADAELQRBBBBC2hYCAACIBRQ0FIAEgAikCZDcCACAAIAE2AgQgAEEBNgIAIABBEGpBJjYCACAAQQxqQf3kwIAANgIAIABBCGpBADYCACABQQhqIAJB4ABqQQxqKQIANwIACyACQfABaiSAgICAAA8LQRBBBBCokICAAAALQRBBBBCokICAAAALQRBBBBCokICAAAALQRBBBBCokICAAAALQRBBBBCokICAAAALtgUDAX8DfgJ/I4CAgIAAQeAAayIDJICAgIAAIANBIGogASACEOGBgIAAAkACQCADKAIoRQ0AIANBGGogA0EgakEQaikDADcDACADQRBqIANBKGopAwAiBDcDACADKQMgIQUgAyADQRRqKQIAIgZCIIg+AjwgAyAEpyICNgI4IANBIGogA0E4ahC7goCAAAJAIAMoAiAiAQ0AIAMgAygCJDYCRCADQfSAgIAANgJcIAMgA0HEAGo2AlggA0EBNgIUIANCATcCBCADQdTlwIAANgIAIAMgA0HYAGo2AhAgA0HIAGogAxCtkICAAAJAIAMoAkQiASgCACIHRQ0AIAFBBGooAgAiCEUNACAHIAhBARC3hYCAAAsgBqchBwJAIAFBEGooAgAiCEUNACABKAIMIAhBBHRBBBC3hYCAAAsgAygCREEYQQQQt4WAgAAgAykDSCEEIAMoAlAhAQJAIAdFDQAgAiAHQQEQt4WA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toWAgAAiAUUNBiABQQU6AAAgASAJKQM4NwABIAFBCWogCUHAAGopAwA3AAAgAUERaiAJQcgAaikDADcAACABQRlqIAlB0ABqKQMANwAAIABBADYCACAAIAE2AgQMAgsgAUF/SiIHRQ0CIAEgBxC2hYCAACIKRQ0GCyAAIAE2AgQgACAKNgIAIAogCyABELyRgIAAGiAAIAE2AgggAkUNACALIAJBARC3hYCAAAsgCUHwAGokgICAgAAPCxCpkICAAAALIAogAhCokICAAAALQSAgCkHQ7MCAABCOkYCAAAALQTRBBBCokICAAAALIAEgBxCokICAAAAL5gICBH8BfiOAgICAAEEwayICJICAgIAAIAEoAgQhAyABKAIAIgQoAgAhBSAEKAIEIQQgAkEgakEIaiABKAIIIgFBCGooAgA2AgAgAiABKQIANwMgIAJBEGogBSADIAJBIGogBCgCDBGAgICAAAACQAJAAkAgAigCECIBDQBBNEEEELaFgIAAIgENAUE0QQQQqJCAgAAACyACIAIpAhQ3AiQgAiABNgIgIAJBCGogAkEgahDtiICAACACKQMIIQYgAEEHNgLwBCAAIAY3AgAgAEEgaiADQRhqKQAANwAAIABBGGogA0EQaikAADcAACAAQRBqIANBCGopAAA3AAAgACADKQAANwAIDAELIAFBBToAACABIAMpAAA3AAEgAUEJaiADQQhqKQAANwAAIAFBEWogA0EQaikAADcAACABQRlqIANBGGopAAA3AAAgAEEINgLwBCAAIAE2AgALIAJBMGokgICAgAALDAAgACABEKODgIAAC+cFAQZ/I4CAgIAAQfADayICJICAgIAAIAEoAgQhAyABKAIAKAIAIgQoAgAhBSAEKAIEIQQgAkEIaiABKAIIIAEoAgwoAgAQ04iAgAAgAkHgAWogAkEIahDXiICAACACQbgDaiAFIAMgAkHgAWogBCgCDBGAgICAAAACQAJAAkACQCACKAK4AyIEDQAgAkHgAWpBCGoiBCADQQhqKQAANwMAIAJB4AFqQRBqIgUgA0EQaikAADcDACACQeABakEYaiIGIANBGGopAAA3AwAgAiADKQAANwPgASABKAIQKAIAIQNBNEEEELaFgIAAIgENAUE0QQQQqJCAgAAACyACKAK8AyEFIAJB4AFqIAQgAigCwAMQ5oKA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IgNFDQAgAkEQaigCACIERQ0AIAMgBEEBELeFgIAACyAAIAE2AgggAEELNgIAIABBDGogAikDUDcCACAAQRhqIAIpA2A3AwAgAEEUaiACQdAAakEIaigCADYCACAAQSBqIAJB4ABqQQhqKQMANwMACyACQfAAaiSAgICAAAv9AQEBfyOAgICAAEHQAGsiAiSAgICAAAJAAkAgASgCAEELRw0AIABBCzYCAAwBCyACQShqQSBqIAFBIGopAwA3AwAgAkEoakEYaiABQRhqKQMANwMAIAJBKGpBEGogAUEQaikDADcDACACQShqQQhqIAFBCGopAwA3AwAgAiABKQMANwMoIAJBBHIgAkEoahCeg4CAACACQQM2AgAgAkEoahCog4CAACAAQSBqIAJBIGopAwA3AwAgAEEYaiACQRhqKQMANwMAIABBEGogAkEQaikDADcDACAAQQhqIAJBCGopAwA3AwAgACACKQMANwMACyACQdAAaiSAgICAAAu9AgEBfyOAgICAAEHwAGsiAiSAgICAAAJAAkAgAS0AAEE5Rw0AIABBCzYCAAwBCyACQRBqQThqIAFBOGopAwA3AwAgAkEQakEwaiABQTBqKQMANwMAIAJBEGpBKGogAUEoaikDADcDACACQRBqQSBqIAFBIGopAwA3AwAgAkEQakEYaiABQRhqKQMANwMAIAJBEGpBEGogAUEQaikDADcDACACQRBqQQhqIAFBCGopAwA3AwAgAiABKQMANwMQIAJBuYCAgAA2AlQgAiACQRBqNgJQIAJBATYCbCACQgE3AlwgAkGg8MCAADYCWCACIAJB0ABqNgJoIAIgAkHYAGoQrZCAgAAgAkEQahCng4CAACAAQQM2AgAgACACKQMANwIEIABBDGogAkEIaigCADYCAAsgAkHwAGokgICAgAALYAEBfyOAgICAAEEgayIAJICAgIAAIABBFGpBATYCACAAQgE3AgQgAEHE58CAADYCACAAQY2AgIAANgIcIABB6O/AgAA2AhggACAAQRhqNgIQIABB8O/AgAAQtpCAgAAAC/ICAQJ/I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQCABQYABSQ0AIAJBADYCDCABQYAQTw0BIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECIQEMAgsCQCAAKAIIIgMgACgCBEcNACAAIAMQqYCAgAAgACgCCCEDCyAAKAIAIANqIAE6AAAgACAAKAIIQQFqNgIIDAILAkAgAUGAgARJDQAgAiABQT9xQYABcjoADyACIAFBBnZBP3FBgAFyOgAOIAIgAUEMdkE/cUGAAXI6AA0gAiABQRJ2QQdxQfABcjoADEEEIQEMAQsgAiABQT9xQYABcjoADiACIAFBDHZB4AFyOgAMIAIgAUEGdkE/cUGAAXI6AA1BAyEBCwJAIAAoAgQgACgCCCIDayABTw0AIAAgAyABELqAgIAAIAAoAgghAwsgACgCACADaiACQQxqIAEQvJGAgAAaIAAgAyABajYCCAsgAkEQaiSAgICAAEEAC0sBAX8CQCAAKAIEIAAoAggiA2sgAk8NACAAIAMgAhC6gICAACAAKAIIIQMLIAAoAgAgA2ogASACELyRgIAAGiAAIAMgAmo2AghBAAuOBQEHfyOAgICAAEHwAGsiAySAgICAAAJAIAEoAgAiBEEEaigCACACSQ0AQQEhBQJAAkACQAJAAkAgAkUNACACQX9KIgFFDQEgAiABELaFgIAAIgVFDQILQQAhBiADQQA2AgwgAyAFNgIIIAMgAjYCECADQSAgAkEKdmdrIgFBByABQQdJG0ECdEEBciIHNgIUAkAgBEEEaiIIKAIAIgkgAiAJIAJJGyIBRQ0AIAQoAgAhBQNAIANBCGogBSABEPGOgIAAIAkgAUkNBCAIIAkgAWsiCTYCACAEIAUgAWoiBTYCACAJIAIgAWsiAiAJIAJJGyIBDQALIAMoAhQhByADKAIQIQIgAygCDCEGIAMoAgghBQsCQAJAIAdBAXENACAAQdj/w4AANgIMIAAgBzYCCCAAIAY2AgQgACAFNgIADAELIANBGGogBSAGIAIgB0EFdiIBEPKOgIAAIANBwABqQQhqIANBGGpBCGooAgA2AgAgAyADKQMYNwNAIANBKGogA0HAAGoQ4Y6AgAAgAyABNgI8IAMoAiwiCSABSQ0EIAMgCSABazYCLCADIAMoAiggAWo2AiggAEEIaiADQShqQQhqKQMANwIAIAAgAykDKDcCAAsgA0HwAGokgICAgAAPCxCpkICAAAALIAIgARCokICAAAALIAEgCUHM6sCAABC4kICAAAALIANB5ABqQfyAgIAANgIAIANB1ABqQQI2AgAgA0ICNwJEIANBhOvAgAA2AkAgA0H8gICAADYCXCADIAk2AmwgAyADQdgAajYCUCADIANB7ABqNgJgIAMgA0E8ajYCWCADQcAAakHo68CAABC2kICAAAALQYzpwIAAQRxBhOrAgAAQu5CAgAAAC9cHAQd/I4CAgIAAQeABayICJICAgIAAAkACQAJAAkACQAJAAkAgACgCBA0AIAAoAgwhA0GgBkEEELaFgIAAIgRFDQIgBEEANgIAIAQgACkCEDcCwAMgBCABKQIANwIEIARByANqIABBGGopAgA3AgAgBEHQA2ogAEEgaikCADcCACAEQdgDaiAAQShqKQIANwIAIARBDGogAUEIaikCADcCACAEQRRqIAFBEGopAgA3AgAgBEEcaiABQRhqKQIANwIAIARBJGogAUEgaikCADcCACAEQQE7Ab4DIANBATYCCCADIAQ2AgQgA0EANgIAIARBBGohBAwBCyACQeAAakEIaiAAQQhqKAIANgIAIAIgACkCADcDYCACQfAAakEYaiAAQShqKQAANwMAIAJB8ABqQRBqIABBIGopAAA3AwAgAkHwAGpBCGogAEEYaikAADcDACACIAApABA3A3AgAkGQAWpBIGogAUEgaikCADcDACACQZABakEYaiABQRhqKQIANwMAIAJBkAFqQRBqIAFBEGopAgA3AwAgAkGQAWpBCGogAUEIaikCADcDACACIAEpAgA3A5ABIAIgAkHgAGogAkHwAGogAkGQAWoQkoCAgAAgAigCWCEEAkAgAigCBA0AIAAoAgwiACAAKAIIQQFqNgIIDAELIAJBkAFqIAJB0AAQvJGAgAAaIAAoAgwiASgCBCIDRQ0CIAEoAgAhBSACKAJQIQYgAigCVCEHQdAGQQQQtoWAgAAiAEUNAyAAIAM2AqAGIABBADsBvgMgAEEANgIAIAEgADYCBCADQQA7AbwDIAMgADYCACABIAVBAWo2AgAgBSAGRw0EIAAvAb4DIgNBCksNBSAAIANBAWoiCDsBvgMgACADQQV0aiIFQcADaiACQZgBaiIGKQIANwIAIAVByANqIAZBCGopAgA3AgAgBUHQA2ogBkEQaikCADcCACAFQdgDaiAGQRhqKQIANwIAIAAgA0EobGoiA0EEaiACQbgBaiIFKQIANwIAIANBDGogBUEIaikCADcCACADQRRqIAVBEGopAgA3AgAgA0EcaiAFQRhqKQIANwIAIANBJGogBUEgaikCADcCACAAQaAGaiAIQQJ0aiAHNgIAIAcgCDsBvAMgByAANgIAIAEgASgCCEEBajYCCAsgAkHgAWokgICAgAAgBA8LQaAGQQQQqJCAgAAAC0Hg58CAAEErQezowIAAELuQgIAAAAtB0AZBBBCokICAAAALQYyBwIAAQTBBvIHAgAAQu5CAgAAAC0GAgMCAAEEgQcyBwIAAELuQgIAAAAvsAwEIfyOAgICAAEEwayIBJICAgIAAAkACQAJAAkACQAJAAkAgAEEIaigCAA0AIAAoAhAhAkE0QQQQtoWAgAAiA0UNAiADQQE7ATIgA0EANgIAIAMgACgCADYCBCACQQE2AgggAiADNgIEIAJBADYCAAwBCyABQSBqQQhqIABBDGooAgA2AgAgASAAKQIENwMgIAFBCGogAUEgaiAAKAIAEJGAgIAAIAAoAhAhAiABKAIcIQMCQCABKAIMRQ0AIAIoAgQiBEUNAyACKAIAIQUgASgCECEGIAEoAhQhByABKAIYIQhB5ABBBBC2hYCAACIARQ0EIAAgBDYCNCAAQQA7ATIgAEEANgIAIAIgADYCBCAEQQA7ATAgBCAANgIAIAIgBUEBajYCACAFIAdHDQUgAC8BMiIEQQpLDQYgACAEQQFqIgU7ATIgAEE0aiAFQQJ0aiAINgIAIAAgBEECdGpBBGogBjYCACAIIAU7ATAgCCAANgIACyACIAIoAghBAWo2AggLIAFBMGokgICAgAAgAw8LQTRBBBCokICAAAALQeDnwIAAQStB7OjAgAAQu5CAgAAAC0HkAEEEEKiQgIAAAAtBjIHAgABBMEG8gcCAABC7kICAAAALQYCAwIAAQSBBzIHAgAAQu5CAgAAAC9YFAQd/I4CAgIAAQYABayIDJICAgIAAAkACQAJAAkACQAJAAkAgACgCBA0AIAAoAgwhBEGYBEEIELaFgIAAIgVFDQIgBUEANgKwASAFQQE7AbYBIAUgAjYCCCAFIAE3AwAgBSAAKQIQNwK4ASAFQcABaiAAQRhqKQIANwIAIAVByAFqIABBIGopAgA3AgAgBUHQAWogAEEoaikCADcCACAEQQE2AgggBCAFNgIEIARBADYCAAwBCyADQdAAakEIaiAAQQhqKAIANgIAIAMgACkCADcDUCADQeAAakEYaiAAQShqKQAANwMAIANB8ABqIABBIGopAAA3AwAgA0HgAGpBCGogAEEYaikAADcDACADIAApABA3A2AgA0EIaiADQdAAaiADQeAAaiABIAIQj4CAgAAgACgCDCECIAMoAkghBQJAIAMpAygiAVANACACKAIEIgRFDQMgAigCACEGIAMoAjAhByADKAJAIQggAygCRCEJQcgEQQgQtoWAgAAiAEUNBCAAIAQ2ApgEIABBADsBtgEgAEEANgKwASACIAA2AgQgBEEAOwG0ASAEIAA2ArABIAIgBkEBajYCACAGIAhHDQUgAC8BtgEiBEEKSw0GIAAgBEEBaiIGOwG2ASAAIARBBHRqIgggBzYCCCAIIAE3AwAgACAEQQV0aiIEQbgBaiADKQMINwMAIARBwAFqIANBEGopAwA3AwAgBEHIAWogA0EYaikDADcDACAEQdABaiADQSBqKQMANwMAIABBmARqIAZBAnRqIAk2AgAgCSAGOwG0ASAJIAA2ArABCyACIAIoAghBAWo2AggLIANBgAFqJICAgIAAIAUPC0GYBEEIEKiQgIAAAAtB4OfAgABBK0Hs6MCAABC7kICAAAALQcgEQQgQqJCAgAAAC0GMgcCAAEEwQbyBwIAAELuQgIAAAAtBgIDAgABBIEHMgcCAABC7kICAAAALnAYBB38jgICAgABBsARrIgIkgICAgAACQAJAAkACQAJAAkACQCAAKAIEDQAgACgCDCEDQawUQQQQtoWAgAAiBEUNAiAEQQA2AgAgBCAAKQIQNwLMESAEQdQRaiAAQRhqKQIANwIAIARB3BFqIABBIGopAgA3AgAgBEHkEWogAEEoaikCADcCACAEQQRqIgUgAUHMARC8kYCAABogBEEBOwHKESADQQE2AgggAyAENgIEIANBADYCAAwBCyACQYgCakEIaiAAQQhqKAIANgIAIAIgACkCADcDiAIgAkGYAmpBGGogAEEoaikAADcDACACQagCaiAAQSBqKQAANwMAIAJBmAJqQQhqIABBGGopAAA3AwAgAiAAKQAQNwOYAiACQbgCaiABQcwBELyRgIAAGiACQQhqIAJBiAJqIAJBmAJqIAJBuAJqEJCAgIAAIAIoAoQCIQUCQCACLQAwQQJHDQAgACgCDCIAIAAoAghBAWo2AggMAQsgAkG4AmogAkEIakH0ARC8kYCAABogACgCDCIEKAIEIgFFDQIgBCgCACEGIAIoAvwBIQcgAigCgAIhA0HcFEEEELaFgIAAIgBFDQMgACABNgKsFCAAQQA7AcoRIABBADYCACAEIAA2AgQgAUEAOwHIESABIAA2AgAgBCAGQQFqNgIAIAYgB0cNBCAALwHKESIBQQpLDQUgACABQQFqIgg7AcoRIAAgAUEFdGoiBkHMEWogAkHAAmoiBykCADcCACAGQdQRaiAHQQhqKQIANwIAIAZB3BFqIAdBEGopAgA3AgAgBkHkEWogB0EYaikCADcCACAAIAFBzAFsakEEaiACQeACakHMARC8kYCAABogAEGsFGogCEECdGogAzYCACADIAg7AcgRIAMgADYCACAEIAQoAghBAWo2AggLIAJBsARqJICAgIAAIAUPC0GsFEEEEKiQgIAAAAtB4OfAgABBK0Hs6MCAABC7kICAAAALQdwUQQQQqJCAgAAAC0GMgcCAAEEwQbyBwIAAELuQgIAAAAtBgIDAgABBIEHMgcCAABC7kICAAAAL9wUBB38jgICAgABB8ABrIgIkgICAgAACQAJAAkACQAJAAkACQCAAQRBqKAIADQAgACgCGCEDQZACQQQQtoWAgAAiBEUNAiAEQQA2AgAgBEEBOwGOAiAEIAApAgA3AgQgBCABKQIANwKIASAEQQxqIABBCGooAgA2AgAgBEGQAWogAUEIaigCADYCACADQQE2AgggAyAENgIEIANBADYCACAEQYgBaiEBDAELIAJBMGpBCGogAEEUaigCADYCACACIAApAgw3AzAgAkHAAGpBCGogAEEIaigCADYCACACIAApAgA3A0AgAkHQAGpBCGoiBCABQQhqKAIANgIAIAIgASkCADcDUCACIAJBMGogAkHAAGogAkHQAGoQk4CAgAAgAigCKCEBAkAgAigCBA0AIAAoAhgiACAAKAIIQQFqNgIIDAELIAJB0ABqQRhqIAJBGGopAwA3AwAgAkHQAGpBEGogAkEQaikDADcDACAEIAJBCGopAwA3AwAgAiACKQMANwNQIAAoAhgiBCgCBCIDRQ0CIAQoAgAhBSACKAIgIQYgAigCJCEHQcACQQQQtoWAgAAiAEUNAyAAIAM2ApACIABBADsBjgIgAEEANgIAIAQgADYCBCADQQA7AYwCIAMgADYCACAEIAVBAWo2AgAgBSAGRw0EIAAvAY4CIgNBCksNBSAAIANBAWoiBTsBjgIgACADQQxsaiIDQYgBaiACQeQAaiIGKQIANwIAIANBDGogAkHYAGoiCEEIaigCADYCACADQQRqIAgpAgA3AgAgA0GQAWogBkEIaigCADYCACAAQZACaiAFQQJ0aiAHNgIAIAcgBTsBjAIgByAANgIAIAQgBCgCCEEBajYCCAsgAkHwAGokgICAgAAgAQ8LQZACQQQQqJCAgAAAC0Hg58CAAEErQezowIAAELuQgIAAAAtBwAJBBBCokICAAAALQYyBwIAAQTBBvIHAgAAQu5CAgAAAC0GAgMCAAEEgQcyBwIAAELuQgIAAAAuYBQEHfyOAgICAAEHwAGsiASSAgICAAAJAAkACQAJAAkACQAJAIAAoAgQNACAAKAIMIQJB6AJBBBC2hYCAACIDRQ0CIANBADYCACADQQE7AQYgAyAAKQIQNwIIIANBEGogAEEYaikCADcCACADQRhqIABBIGopAgA3AgAgA0EgaiAAQShqKQIANwIAIAJBATYCCCACIAM2AgQgAkEANgIADAELIAFBwABqQQhqIABBCGooAgA2AgAgASAAKQIANwNAIAFB0ABqQRhqIABBKGopAAA3AwAgAUHgAGogAEEgaikAADcDACABQdAAakEIaiAAQRhqKQAANwMAIAEgACkAEDcDUCABQQhqIAFBwABqIAFB0ABqEJSAgIAAIAAoAgwhAiABKAI4IQMCQCABKAIMRQ0AIAIoAgQiBEUNAyACKAIAIQUgASgCECEGIAEoAhQhB0GYA0EEELaFgIAAIgBFDQQgACAENgLoAiAAQQA7AQYgAEEANgIAIAIgADYCBCAEQQA7AQQgBCAANgIAIAIgBUEBajYCACAFIAZHDQUgAC8BBiIGQQpLDQYgACAGQQV0aiIEQQhqIAFBGGoiBSkCADcCACAEQRBqIAVBCGopAgA3AgAgBEEYaiAFQRBqKQIANwIAIARBIGogBUEYaikCADcCACAAIAZBAWoiBDsBBiAAQegCaiAEQQJ0aiAHNgIAIAcgBDsBBCAHIAA2AgALIAIgAigCCEEBajYCCAsgAUHwAGokgICAgAAgAw8LQegCQQQQqJCAgAAAC0Hg58CAAEErQezowIAAELuQgIAAAAtBmANBBBCokICAAAALQYyBwIAAQTBBvIHAgAAQu5CAgAAAC0GAgMCAAEEgQcyBwIAAELuQgIAAAAvnAgEHfyOAgICAAEHgAGsiAiSAgICAACABKAIMIQMgAkEAOgAPIAJBEGpBCGoiBCABQQhqKAIANgIAIAIgASkCADcDECACQTBqIAJBEGogAkEPahCjgICAACACQRBqQRhqIgEgAkEwakEYaikDADcDACACQRBqQRBqIgUgAkEwakEQaikDADcDACAEIAJBMGpBCGopAwA3AwAgAiACKQMwNwMQIAMgAygCCEF/ajYCCAJAAkACQCACLQAPRQ0AIAMoAgQiBkUNASADKAIAIgdFDQIgAyAGKALoAiIINgIEIAMgB0F/ajYCACAIQQA2AgAgBkGYA0EEELeFgIAACyAAIAIpAxA3AAAgAEEYaiABKQMANwAAIABBEGogBSkDADcAACAAQQhqIAQpAwA3AAAgAkHgAGokgICAgAAPC0Hg58CAAEErQfzowIAAELuQgIAAAAtBvILAgABBIUHggsCAABC7kICAAAALwgIBBn8jgICAgABB0ABrIgIkgICAgAAgASgCDCEDIAJBADoADyACQRBqQQhqIgQgAUEIaigCADYCACACIAEpAgA3AxAgAkEoaiACQRBqIAJBD2oQooCAgAAgAkEQakEQaiIBIAJBKGpBEGopAwA3AwAgBCACQShqQQhqKQMANwMAIAIgAikDKDcDECADIAMoAghBf2o2AggCQAJAAkAgAi0AD0UNACADKAIEIgVFDQEgAygCACIGRQ0CIAMgBSgCkAIiBzYCBCADIAZBf2o2AgAgB0EANgIAIAVBwAJBBBC3hYCAAAsgACACKQMQNwIAIABBEGogASkDADcCACAAQQhqIAQpAwA3AgAgAkHQAGokgICAgAAPC0Hg58CAAEErQfzowIAAELuQgIAAAAtBvILAgABBIUHggsCAABC7kICAAAAL7gICA38BfiOAgICAAEEgayIDJICAgIAAIAIoAgAhBCADQRBqIAFBASACQQhqKAIAIgUQ/IaAgAACQAJAIAMoAhANACADQRBqQQhqLQAAIQEgAygCFCECAkACQCAFRQ0AIAVB4ABsIQUgAUH/AXFFIQEDQAJAIAFBAXFFDQACQCACKAIIIgEgAigCBEcNACACIAEQqYCAgAAgAigCCCEBCyACKAIAIAFqQSw6AAAgAiACKAIIQQFqNgIICyADQRBqIAQgAhD+gICAACADKAIQDQIgBEHgAGohBEEBIQEgBUGgf2oiBQ0AC0EAIQELIAAgAiABQf8BcUEARxCRh4CAAAwCCyADQQhqIANBEGpBDGooAgAiAjYCACADIAMpAhQiBjcDACAAQQxqIAI2AgAgACAGNwIEIABBATYCAAwBCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAsgA0EgaiSAgICAAAvrAgIDfwF+I4CAgIAAQSBrIgMkgICAgAAgAigCACEEIANBEGogAUEBIAJBCGooAgAiBRD8hoCAAAJAAkAgAygCEA0AIANBEGpBCGotAAAhASADKAIUIQICQAJAIAVFDQAgBUEYbCEFIAFB/wFxRSEBA0ACQCABQQFxRQ0AAkAgAigCCCIBIAIoAgRHDQAgAiABEKmAgIAAIAIoAgghAQsgAigCACABakEsOgAAIAIgAigCCEEBajYCCAsgA0EQaiAEIAIQ2ISAgAAgAygCEA0CIARBGGohBEEBIQEgBUFoaiIFDQALQQAhAQsgACACIAFB/wFxQQBHEJGHgIAADAILIANBCGogA0EQakEMaigCACICNgIAIAMgAykCFCIGNwMAIABBDGogAjYCACAAIAY3AgQgAEEBNgIADAELIAAgAykCFDcCBCAAQQE2AgAgAEEMaiADQRBqQQxqKAIANgIACyADQSBqJICAgIAAC+cCAgN/AX4jgICAgABBIGsiAySAgICAACACKAIAIQQgA0EQaiABQQEgAkEIaigCACIFEPyGgIAAAkACQCADKAIQDQAgA0EQakEIai0AACEBIAMoAhQhAgJAAkAgBUUNACABQf8BcUUhAQNAAkAgAUEBcUUNAAJAIAIoAggiASACKAIERw0AIAIgARCpgICAACACKAIIIQELIAIoAgAgAWpBLDoAACACIAIoAghBAWo2AggLIANBEGogAiAELQAAEPeGgIAAIAMoAhANAkEBIQEgBEEBaiEEIAVBf2oiBQ0AC0EAIQELIAAgAiABQf8BcUEARxCRh4CAAAwCCyADQQhqIANBEGpBDGooAgAiAjYCACADIAMpAhQiBjcDACAAQQxqIAI2AgAgACAGNwIEIABBATYCAAwBCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAsg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ASgCACIIDQELQfTswIAAQewAQeDtwIAAEMuQgIAAAAsgAUEEaigCACEBIAggCCgCACIHQQFqNgIAIAdBf0wNACALIAE2AjwgCyAINgI4AkAgCUUNACALQeEAaiALQTBqKQMANwAAIAtB2QBqIAtBKGopAwA3AAAgC0HRAGogC0EgaikDADcAACALIAspAxg3AEkgCyALQThqEOyIgIAAIAtB/ABqIAQ2AgAgC0HwAGogCykDADcDACALIAM2AnggC0EANgJsIAtBAjoASCAJIAtByABqIAooAgwRhICAgAAAIAsoAjwhASALKAI4IQgLIAAgCykDGDcACCAAIAE2AgQgACAINgIAIABBIGogC0EYakEYaikDADcAACAAQRhqIAtBGGpBEGopAwA3AAAgAEEQaiALQSBqKQMANwAADAELAAALIAtBgAFqJICAgIAAC+YCAgR/AX4jgICAgABBMGsiAiSAgICAACABKAIEIQMgASgCACIEKAIAIQUgBCgCBCEEIAJBIGpBCGogASgCCCIBQQhqKAIANgIAIAIgASkCADcDICACQRBqIAUgAyACQSBqIAQoAgwRgICAgAAAAkACQAJAIAIoAhAiAQ0AQTRBBBC2hYCAACIBDQFBNEEEEKiQgIAAAAsgAiACKQIUNwIkIAIgATYCICACQQhqIAJBIGoQ7YiAgAAgAikDCCEGIABBBzYC8AQgACAGNwIAIABBIGogA0EYaikAADcAACAAQRhqIANBEGopAAA3AAAgAEEQaiADQQhqKQAANwAAIAAgAykAADcACAwBCyABQQU6AAAgASADKQAANwABIAFBCWogA0EIaikAADcAACABQRFqIANBEGopAAA3AAAgAUEZaiADQRhqKQAANwAAIABBCDYC8AQgACABNgIACyACQTBqJICAgIAAC+IhAg5/BX4jgICAgABBgANrIgYkgICAgAAgBkHgAGpBCGogAUEIaiIHKAIANgIAIAYgASkCADcDYCACKAIAIQggAigCBCEJIAYgAzYCbCAGQfAAakEIaiIKIAcoAgA2AgAgBiABKQIANwNwIAZBgAFqQRhqIgsgA0EwaikAADcDACAGQYABakEQaiIMIANBKGopAAA3AwAgBkGAAWpBCGoiDSADQSBqKQAANwMAIAYgAykAGDcDgAEgBkEANgKgASAGQbACakEBciEO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LwAAIQcgASgAAyEJIA8gASkABzcAACAPQRhqIAY6AAAgD0EQaiAcNwAAIA9BCGogGjcAACAFIAk2AHsgBSAEOgB6IAUgBzsBeCAXRQ0BIBYgF0EBELeFgIAADAELCyABIAY2AgwgASAZNgIEIAFBCDoAACABIAUpA9ACNwIQIAEgCTYCCCABQRhqIAgpAwA3AgAgAUEgaiAHKQMANwIAIAFBKGogBCkDADcCACAAQQE2AgAgACABNgIEDAMLIAFBDGooAgAhByAFQdACakEwaiABQTBqKQIANwMAIAVB0AJqQShqIAFBKGopAgA3AwAgBUHQAmpBIGogAUEgaikCADcDACAFQdACakEYaiABQRhqKQIANwMAIAVB0AJqQRBqIgggAUEQaikCADcDACAFQdACakEIaiABQQhqKQIANwMAIAUgASkCADcD0AIgBUG4BGpBCGogBEEIaigCADYCACAFIAQpAgA3A7gEIAUgAzYCrAQgBSACNgKoBAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAgoAgAiCEUNACAIIAIgAyAFQeQCaigCACgCEBGFgICAAABB/wFxQQFLDQELIAYgAiADIAcoAgwRhYCAgAAAIgQNAQsgBUGYAWogBUG4BGogBUGoBGogBUHQAmogBiAHEMODgIAAIAUoApwBIQEgBSgCmAENAyAFQaABaigCACEEDAELQQAhAQJAIAQtAAAOAwgCAAgLIAVBGGogBEEkahDviICAAAJAIAUoAhgiAUUNACAFKAIcIQQMBwsgBUGYAWogBUG4BGogBUGoBGogBUHQAmogBiAHEMODgIAAIAUoApwBIQEgBSgCmAENAyAFQaABaigCACEECyABDQVBACEBDAYLIAVBtAFqIARBGWopAAA3AgAgBUGYAWpBFGogBEERaikAADcCACAFQaQBaiAEQQlqKQAANwIAIAVBADYCmAEgBSAEKQABNwKcASAFQfgAaiAFQbgEahDYiICAACAFQcgEaiAFQZgBaiAFQfgAaiACIAMgBiAHIAUoAtACIAUoAtQCIAggBUHQAmpBFGooAgAQwYOAgAACQCAFKALIBCIBRQ0AIAVBIGpBEGogBUHIBGpBEGoiCCkDADcDACAFQSBqQRhqIAVByARqQRhqIgkpAwA3AwAgBUEgakEgaiAFQcgEakEgaiIZKQMANwMAIAUgBSkD0AQ3AyggBSAFKALMBCIQNgIkIAUgATYCICABIAEoAgAiBEEBajYCACAEQX9MDQMgBSAQNgLMBCAFIAE2AsgEIAVByARqQQhqIAVBIGpBCGoQw46AgAAgBUGhAWogCCkDADcAACAFQakBaiAJKQMANwAAIAVBsQFqIBkpAwA3AAAgBSAFKQPQBDcAmQEgBUEQaiAFKALIBCAFKALMBBDwiICAACAFQQI6AJgBIAUgBSkDEDcCvAEgBiACIAMgBUGYAWogBygCEBGAgICAAAAgBSgCICEBIAUoAiQhBAwFCyAFKALMBCEBIABBATYCACAAIAE2AgQMCwsgAEEBNgIADAILIABBATYCAAwBCwAACyAAIAE2AgQMBwsgBSAENgKcASAFIAE2ApgBIAVBCGogBUGYAWoQ7IiAgAAgBSgCCCEGQQEhAQJAIAUoAgwiBEUNACAEQX9KIgdFDQIgBCAHELaFgIAAIgFFDQMLIAEgBiAEELyRgIAAGiAFKAKYASIGIAYoAgAiBkF/ajYCACAErSEaAkAgBkEBRw0AIAVBmAFqEIKCgIAACyAaQoGAgIAQfiEaCyAAIAE2AgQgAEEANgIAIABBCGogGjcCAAwFCxCpkICAAAALIAQgBxCokICAAAALIAEgBSkD0AI3AAEgAUEFQQQgFRs6AAAgAUEJaiAHKQMANwAAIAFBEWogBikDADcAACABQRlqIAQpAwA3AAAgAEEBNgIAIAAgATYCBAwCCyAFQfQEaiAFQfgAakEYaikDADcCACAFQewEaiAFQfgAakEQaikDADcCACAFQeQEaiAFQfgAakEIaikDADcCACAFQcgEakEIaiIEIAVB0AJqQQhqKQMANwMAIAVByARqQRBqIgYgBUHQAmpBEGooAgA2AgAgBSAFKQN4NwLcBCAFIAUpA9ACNwPIBEE0QQQQtoWAgAAiAUUNAiABIAUpA8gENwIAIAFBMGogBUHIBGpBMGooAgA2AgAgAUEoaiAFQcgEakEoaikDADcCACABQSBqIAVByARqQSBqKQMANwIAIAFBGGogBUHIBGpBGGopAwA3AgAgAUEQaiAGKQMANwIAIAFBCGogBCkDADcCACAAQQE2AgAgACABNgIECyAXRQ0AIBYgF0EBELeFgIAACyAFQYAFaiSAgICAAA8LQTRBBBCokICAAAAL6wICA38BfiOAgICAAEEgayIDJICAgIAAIAIoAgAhBCADQRBqIAFBASACQQhqKAIAIgUQ/IaAgAACQAJAIAMoAhANACADQRBqQQhqLQAAIQEgAygCFCECAkACQCAFRQ0AIAVBGGwhBSABQf8BcUUhAQNAAkAgAUEBcUUNAAJAIAIoAggiASACKAIERw0AIAIgARCpgICAACACKAIIIQELIAIoAgAgAWpBLDoAACACIAIoAghBAWo2AggLIANBEGogBCACEKmFgIAAIAMoAhANAiAEQRhqIQRBASEBIAVBaGoiBQ0AC0EAIQELIAAgAiABQf8BcUEARxCRh4CAAAwCCyADQQhqIANBEGpBDGooAgAiAjYCACADIAMpAhQiBjcDACAAQQxqIAI2AgAgACAGNwIEIABBATYCAAwBCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAsgA0EgaiSAgICAAAtZAQF/I4CAgIAAQRBrIgMkgICAgAAgAyACENaGgIAAIAAgASADKAIAIgIgAygCCBD5hoCAAAJAIAMoAgQiAUUNACACIAFBARC3hYCAAAsgA0EQaiSAgICAAAuPAwICfwF+I4CAgIAAQSBrIggkgICAgAACQCABKAIIIgkgASgCBEcNACABIAkQqYCAgAAgASgCCCEJCyABKAIAIAlqQfsAOgAAIAEgASgCCEEBajYCCCAIQRBqIAEgBSAGEPmGgIAAAkACQAJAIAgoAhANAAJAIAEoAggiCSABKAIERw0AIAEgCRCpgICAACABKAIIIQkLIAEoAgAgCWpBOjoAACABIAEoAghBAWo2AgggCEEQaiAHIAEQ1oSAgAAgCCgCEA0BAkAgASgCCCIJIAEoAgRHDQAgASAJEKmAgIAAIAEoAgghCQsgASgCACAJakH9ADoAACAAQQA2AgAgASABKAIIQQFqNgIIDAILIAhBCGogCEEQakEMaigCACIBNgIAIAggCCkCFCIKNwMAIABBDGogATYCACAAIAo3AgQgAEEBNgIADAELIAhBCGogCEEQakEMaigCACIBNgIAIAggCCkCFCIKNwMAIABBDGogATYCACAAIAo3AgQgAEEBNgIACyAIQSBqJICAgIAAC48DAgJ/AX4jgICAgABBIGsiCCSAgICAAAJAIAEoAggiCSABKAIERw0AIAEgCRCpgICAACABKAIIIQkLIAEoAgAgCWpB+wA6AAAgASABKAIIQQFqNgIIIAhBEGogASAFIAYQ+YaAgAACQAJAAkAgCCgCEA0AAkAgASgCCCIJIAEoAgRHDQAgASAJEKmAgIAAIAEoAgghCQsgASgCACAJakE6OgAAIAEgASgCCEEBajYCCCAIQRBqIAcgARDVhICAACAIKAIQDQECQCABKAIIIgkgASgCBEcNACABIAkQqYCAgAAgASgCCCEJCyABKAIAIAlqQf0AOgAAIABBADYCACABIAEoAghBAWo2AggMAgsgCEEIaiAIQRBqQQxqKAIAIgE2AgAgCCAIKQIUIgo3AwAgAEEMaiABNgIAIAAgCjcCBCAAQQE2AgAMAQsgCEEIaiAIQRBqQQxqKAIAIgE2AgAgCCAIKQIUIgo3AwAgAEEMaiABNgIAIAAgCjcCBCAAQQE2AgALIAhBIGokgICAgAAL4AMCAn8BfiOAgICAAEEwayIIJICAgIAAAkAgASgCCCIJIAEoAgRHDQAgASAJEKmAgIAAIAEoAgghCQsgASgCACAJakH7ADoAACABIAEoAghBAWo2AgggCEEgaiABIAUgBhD5hoCAAAJAAkACQAJAAkAgCCgCIA0AAkAgASgCCCIJIAEoAgRHDQAgASAJEKmAgIAAIAEoAgghCQsgASgCACAJakE6OgAAIAEgASgCCEEBajYCCCAIQSBqIAFB5MHAgABBBUEAEP2GgIAAIAgoAiBFDQEgCEEQakEMaiAIQSBqQQxqKAIANgIAIAggCCkCJDcCFAwCCyAIQRhqIAhBIGpBDGooAgAiATYCACAIIAgpAiQiCjcDECAAQQxqIAE2AgAgACAKNwIEIABBATYCAAwDCyAIQRBqIAgoAiQgCEEoai0AABCTh4CAACAIKAIQRQ0BCyAIQQhqIAhBEGpBDGooAgAiATYCACAIIAgpAhQiCjcDACAAQQxqIAE2AgAgACAKNwIEIABBATYCAAwBCwJAIAEoAggiCSABKAIERw0AIAEgCRCpgICAACABKAIIIQkLIAEoAgAgCWpB/QA6AAAgAEEANgIAIAEgASgCCEEBajYCCAsgCEEwaiSAgICAAAvJAQECf0EAIQICQCAALQA4IAEtADhHDQAgACgCICABKAIgRw0AIABBOWogAUE5akEgELqRgIAADQAgACgCACIDIAEoAgBHDQACQCADQQFHDQAgAEEIaikDACABQQhqKQMAUg0BIABBEGopAwAgAUEQaikDAFINAQsgACgCJCABKAIkRw0AIAAoAiggASgCKEcNACAAKQMYIAEpAxhSDQAgAEEsaigCACAAQTRqKAIAIAFBLGooAgAgAUE0aigCABDegYCAACECCyACC9MBAQN/AkACQAJAIAAoAgAiAQ0AEM2IgIAAIQJBBEEEELaFgIAAIgFFDQEgASACNgIAQQhBBBC2hYCAACICRQ0CIAJBzOfAgAA2AgQgAiABNgIAIAAgACgCACIBIAIgARs2AgACQCABDQAgAg8LIAIoAgAgAigCBCgCABGGgICAAAACQCACKAIEIgBBBGooAgAiA0UNACACKAIAIAMgAEEIaigCABC3hYCAAAsgAkEIQQQQt4WAgAALIAEPC0EEQQQQqJCAgAAAC0EIQQQQqJCAgAAAC6YFAQp/I4CAgIAAQZAEayIEJICAgIAAIARBiAFqIAAQqY6AgAAgBEHIAmpBOGoiACAEQYgBakE4aikDADcDACAEQcgCakEwaiIFIARBiAFqQTBqKQMANwMAIARByAJqQShqIgYgBEGIAWpBKGopAwA3AwAgBEHIAmpBIGoiByAEQYgBakEgaikDADcDACAEQcgCakEYaiIIIARBiAFqQRhqIgkpAwA3AwAgBEHIAmpBEGoiCiAEQYgBakEQaiILKQMANwMAIARByAJqQQhqIgwgBEGIAWpBCGoiDSkDADcDACAEIAQpA4gBNwPIAiAEQQhqIARByAJqEKqOgIAAIAAgBEEIakE4aikAADcDACAFIARBCGpBMGopAAA3AwAgBiAEQQhqQShqKQAANwMAIAcgBEEIakEgaikAADcDACAIIARBCGpBGGopAAA3AwAgCiAEQQhqQRBqKQAANwMAIAwgBEEIakEIaikAADcDACAEIAQpAAg3A8gCIARByABqIARByAJqEMeFgIAAIAQgAxCnjoCAACAEQcgCaiAEKAIAIAQoAgQQw4WAgAACQAJAIAQtAMgCDQAgCSAEQeECaikAADcDACALIARB2QJqKQAANwMAIA0gBEHRAmopAAA3AwAgBCAEKQDJAjcDiAEgBEHIAmogBEGIAWoQxIWAgAAgBC0AyAJFDQEgBCAELQDJAjoAiAFBqPDAgABBGCAEQYgBakHA8MCAAEGQ8cCAABDakICAAAALIAQgBC0AyQI6AIgBQajwwIAAQRggBEGIAWpBwPDAgABBgPHAgAAQ2pCAgAAACyAEQYgBaiAEQdACakHAARC8kYCAABogBEGIAWogBEHIAGogASACEMWFgIAAIQAgBEGQBGokgICAgAAgAEH/AXFBBEYLjhUDA38CfgZ/I4CAgIAAQbACayIFJICAgIAAIAUgAzUCKCADNQIkEKaLgIAAIAUgBSkDCDcDGCAFIAUpAwA3AxACQAJAAkACQAJAAkACQCAELQALDQAgBUGygICAADYC9AEgBSAFQRBqNgLwASAFQQE2AqQBIAVCATcClAEgBUHs8sCAADYCkAEgBSAFQfABajYCoAEgBUHQAGogBUGQAWoQrZCAgAAgAUHAAGooAgAgBSgCUCIGIAUoAlggAUHEAGooAgAoAigRg4CAgAAAAkAgBSgCVCIHRQ0AIAYgB0EBELeFgIAACyAFQfABaiACEK+QgIAAIAUpAxghCCAFKQMQIQkgBUGQAWpBEGoiBiAEQRBqKQIANwMAIAVBkAFqQQhqIgcgBEEIaikCADcDACAFIAQpAgA3A5ABIAVB0ABqIAEgBUHwAWogCSAIIAVBkAFqEO+BgIAAIAUtAFBBOUYNBSAFQZABakE4aiAFQdAAakE4aikDADcDACAFQZABakEwaiAFQdAAakEwaikDADcDACAFQZABakEoaiAFQdAAakEoaikDADcDACAFQZABakEgaiAFQdAAakEgaikDADcDACAFQZABakEYaiAFQdAAakEYaikDADcDACAGIAVB0ABqQRBqKQMANwMAIAcgBUHQAGpBCGopAwA3AwAgBSAFKQNQNwOQASAFQQA2AiggBUIBNwMgIAVB8AFqIAVBIGpB3OXAgAAQ7JCAgAAgBUGQAWogBUHwAWoQ7ImAgABFDQFB9OXAgABBNyAFQagCakGs5sCAAEGI58CAABDakICAAAALIARBFGooAgAiBkEobCEKIARBEGooAgAhCyAEKAIMIgwhBCAGRQ0CIAVBnAFqIQ1BACEGA0ACQCAMIAZqIgRBG2otAABFDQAgBEEoaiEEDAQLIAQpAwAhCCAFIARBCGopAwA3AyggBSAINwMgIAVBMGpBCGoiDiAEQSRqKAIANgIAIAUgBEEQaikCADcDQCAFIARBF2ooAAA2AEcgBSAEQRxqKQIANwMwIAVBsoCAgAA2AvQBIAUgBUEgajYC8AEgBUEBNgKkASAFQgE3ApQBIAVB7PLAgAA2ApABIAUgBUHwAWo2AqABIAVB0ABqIAVBkAFqEK2QgIAAIAUoAlQhByABKAJAIAUoAlAiDyAFKAJYIAEoAkQoAigRg4CAgAAAAkAgB0UNACAPIAdBARC3hYCAAAsgBUHwAWogAhCvkICAACAFKQMoIQggBSkDICEJIA0gBSkDMDcCACANQQhqIA4oAgA2AgAgBSAFKABHNgCXASAFIAUpA0A3A5ABIAVBADoAmwEgBUHQAGogASAFQfABaiAJIAggBUGQAWoQ74GAgAACQAJAIAUtAFBBOUYNACAFQZABakE4aiAFQdAAakE4aikDADcDACAFQZABakEwaiAFQdAAakEwaikDADcDACAFQZABakEoaiAFQdAAakEoaikDADcDACAFQZABakEgaiAFQdAAakEgaikDADcDACAFQZABakEYaiAFQdAAakEYaikDADcDACAFQZABakEQaiAFQdAAakEQaikDADcDACAFQZABakEIaiAFQdAAakEIaikDADcDACAFIAUpA1A3A5ABIAVBADYCoAIgBUIBNwOYAiAFQfABaiAFQZgCakHc5cCAABDskICAACAFQZABaiAFQfABahDsiYCAAEUNAUH05cCAAEE3IAVBqAJqQazmwIAAQYjnwIAAENqQgIAAAAsgCiAGQShqIgZHDQEMBQsLIAAgBSkDmAI3AgQgAEEMaiAFQZgCakEIaigCADYCACAFQZABahCng4CAACAAQQM2AgACQCAKQVhqIAZGDQAgCiAGa0FYakEobkEobCENQQAhAQNAAkAgBCABaiIGQcgAaigCACIHRQ0AIAZBxABqKAIAIAdBARC3hYCAAAsgDSABQShqIgFHDQALCyALRQ0BIAwgC0EobEEIELeFgIAADAELIAAgBSkDIDcCBCAAQQxqIAVBKGooAgA2AgAgBUGQAWoQp4OAgAAgAEEDNgIACwJAIANBMGooAgAiBEUNACADKAIsIARBKGxBCBC3hYCAAAsgAkEEaigCACIERQ0DIAIoAgAgBEEBELeFgIAADAMLIAwgCmoiBiAEa0EobiEHIAYgBEYNACAHQShsIQYgBEEcaiEEA0ACQCAEQQRqKAIAIgdFDQAgBCgCACAHQQEQt4WAgAALIARBKGohBCAGQVhqIgYNAAsLIAtFDQAgDCALQShsQQgQt4WAgAALIAVBsoCAgAA2AvQBIAUgBUEQajYC8AEgBUEBNgKkASAFQgE3ApQBIAVBmPPAgAA2ApABIAUgBUHwAWo2AqABIAVB0ABqIAVBkAFqEK2QgIAAIAFBwABqKAIAIAUoAlAiBCAFKAJYIAFBxABqKAIAKAIoEYOAgIAAAAJAIAUoAlQiBkUNACAEIAZBARC3hYCAAAsgBUHwAWpBCGogAkEIaigCADYCACAFIAIpAgA3A/ABIAVBkAFqIANB4AAQvJGAgAAaIAVB0ABqIAEgBUHwAWogBUGQAWoQ7YGAgAACQAJAAkACQAJAIAUtAFBBOUYNACAFQZABakE4aiAFQdAAakE4aikDADcDACAFQZABakEwaiAFQdAAakEwaikDADcDACAFQZABakEoaiAFQdAAakEoaikDADcDACAFQZABakEgaiAFQdAAakEgaikDADcDACAFQZABakEYaiAFQdAAakEYaikDADcDACAFQZABakEQaiAFQdAAakEQaikDADcDACAFQZABakEIaiAFQdAAakEIaikDADcDACAFIAUpA1A3A5ABIAVBADYCKCAFQgE3AyAgBUHwAWogBUEgakHc5cCAABDskICAACAFQZABaiAFQfABahDsiYCAAEUNAUH05cCAAEE3IAVBqAJqQazmwIAAQYjnwIAAENqQgIAAAAsgBUIANwNYIAVCATcDUCAFQQE7AWggBUEgahD1hoCAACAFQfABaiAFQdAAaiAFQSBqEKuFgIAAIAUoAvABRQ0BIAVBmAJqQQhqIgQgBUH8AWooAgA2AgAgBSAFKQL0ATcDmAICQCAFKAIkIgFFDQAgBSgCICABQQEQt4WAgAALIAVB8AFqQQhqIAQoAgA2AgAgBSAFKQOYAjcD8AEgBUGQAWpBiJ3BgABBJSAFQfABahDThICAACAFKAKQAUENRg0CIABBCGoiBCAFKQOQATcDACAEQRhqIAVBkAFqQRhqKQMANwMAIARBEGogBUGQAWpBEGopAwA3AwAgBEEIaiAFQZABakEIaikDADcDAAwDCyAAIAUpAyA3AgQgAEEMaiAFQShqKAIANgIAIAVBkAFqEKeDgIAAIABBAzYCAAwDCyAFQZwBaiAFQShqKAIANgIAIAUgBSkDIDcClAELIABBDTYCCCAAQQxqIAUpApQBNwIAIABBFGogBUGQAWpBDGooAgA2AgALIABBCzYCAAJAIAUoAlQiBEUNACAFKAJQIARBARC3hYCAAAsgBSgCXCIERQ0AIAVB4ABqKAIAIgFFDQAgBCABQQEQt4WAgAALIAVBsAJqJICAgIAAC64BAQN/I4CAgIAAQdAAayIBJICAgIAAIAEgABC5joCAACABQQhqQSBBmOfAgABBACABKAIAIAEoAgQQwIWAgAACQAJAIAEoAkgiAkHBAE8NAAJAAkAgAg0AQQEhAwwBCyACQQEQtoWAgAAiA0UNAgsgAyABQQhqIAIQvJGAgAAhAiABQdAAaiSAgICAACACDwsgAkHAAEHk4MCAABC5kICAAAALIAJBARCokICAAAAL5QEBBH8jgICAgABBwAFrIgEkgICAgAAgAUEIaiAAELmOgIAAIAEoAgwhAiABKAIIIQMCQEEQQQEQtoWAgAAiBA0AQRBBARCokICAAAALIAFB6ABqQgAQu4WAgAAgAUHoAGogAyACEL+FgIAAIAFBEGogAUHoAGpB2AAQvJGAgAAaIAFBEGoQvoWAgAAhACABQegAakIBELuFgIAAIAFB6ABqIAMgAhC/hYCAACABQRBqIAFB6ABqQdgAELyRgIAAGiAEIAFBEGoQvoWAgAA3AAggBCAANwAAIAFBwAFqJICAgIAAIAQLngEBBH8jgICAgABBwAFrIgEkgICAgAAgAUEIaiAAELmOgIAAIAEoAgwhAiABKAIIIQMCQEEIQQEQtoWAgAAiBA0AQQhBARCokICAAAALIAFB6ABqQgAQu4WAgAAgAUHoAGogAyACEL+FgIAAIAFBEGogAUHoAGpB2AAQvJGAgAAaIAQgAUEQahC+hYCAADcAACABQcABaiSAgICAACAEC4UCAQN/IABCBDcCGCAAQoCAgIDAADcCCCAAQgg3AgAgAEEgakIANwIAIABBEGpCADcCAAJAIANBBGooAgAiAEUNACADKAIAIABBARC3hYCAAAsgAygCDCEEAkAgA0EUaigCACIARQ0AIABBBXQhBSAEQRBqIQADQAJAIABBBGooAgAiBkUNACAAKAIAIAZBARC3hYCAAAsgAEEgaiEAIAVBYGoiBQ0ACwsCQCADQRBqKAIAIgBFDQAgBCAAQQV0QQgQt4WAgAALAkAgAkEUaigCACIARQ0AIAIoAhAgAEEBELeFgIAACwJAIAJBLGooAgAiAEUNACACKAIoIABBARC3hYCAAAsL9KABBgR/An4EfwJ+C38BfiOAgICAAEGQCGsiBSSAgICAACAFQfAAaiABQRBqKQIANwMAIAVB6ABqIAFBCGopAgA3AwAgBUEoakEIaiACQQhqKQMANwMAIAVBKGpBEGogAkEQaikDADcDACAFQShqQRhqIAJBGGopAwA3AwAgBUEoakEgaiACQSBqKQMANwMAIAVBKGpBKGogAkEoaikDADcDACAFQShqQTBqIAJBMGopAwA3AwAgBSABKQIANwNgIAUgAikDADcDKCAFQdgEakGg88CAAEEJELOKgIAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAUoAtgEQQhHDQAgBUH4AGpBCGogBUHYBGpBDGooAgA2AgAgBSAFKQLcBDcDeCAFQaABaiAEQegAELyRgIAAGiAFQdgGaiAFQfgAahCvkICAACAFQYgCakEIaiAFQdgGakEIaigCADYCACAFIAUpA9gGNwOIAgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAFKAKgASIGDgoAAREQAgMEBQcGAAsgBUHkAWooAgAhByAFQeABaigCACEIIAVB2AFqKQMAIQkgBUHQAWopAwAhCiAFQcwBaigCACEBIAVByAFqKAIAIQsgBUHEAWooAgAhDCAFQcABaigCACECIAVBvAFqKAIAIQ0gBUG4AWooAgAhDiAFQbABaikDACEPIAUpA6gBIRBBASERQQEhEgJAIAVB6AFqKAIAIgRFDQAgBEF/SiITRQ0TIAQgExC2hYCAACISRQ0UCyASIAggBBC8kYCAACETAkAgAkUNACACQX9KIhJFDRMgAiASELaFgIAAIhFFDRULIBEgDiACELyRgIAAIRFBASESAkAgAUUNACABQX9KIhRFDRMgASAUELaFgIAAIhJFDRYLIBIgDCABELyRgIAAIRIgBUHYB2pCADcDACAFQegHakEBOwEAIAVByAdqQQE2AgAgBUHEB2ogATYCACAFQcAHaiABNgIAIAVBvAdqIBI2AgAgBUG4B2ogAjYCACAFQbQHaiACNgIAIAVBsAdqIBE2AgAgBUGoB2ogDzcDACAFQZwHakEBNgIAIAVBmAdqIAQ2AgAgBUGUB2ogBDYCACAFQZAHaiATNgIAIAVCATcD0AcgBSAQNwOgByAFIAk3A4gHIAUgCjcDgAcgBSABNgL8BiAFIAs2AvgGIAUgDDYC9AYgBSACNgLwBiAFIA02AuwGIAUgDjYC6AYgBSAPNwPgBiAFIBA3A9gGIAVB6AVqEPWGgIAAIAVB8AJqIAVB2AZqIAVB6AVqEKyFgIAAIAUoAvACRQ0WIAVB+ANqQQhqIAVB/AJqKAIANgIAIAUgBSkC9AI3A/gDAkAgBSgC7AUiAkUNACAFKALoBSACQQEQt4WAgAALIAVB8AJqQQhqIAVB+ANqQQhqKAIANgIAIAUgBSkD+AM3A/ACIAVB2ARqQbOgwYAAQS4gBUHwAmoQ04SAgAAgBSgC2ARBDUYNJiAFQZgCakEIaiICIAUpA9gENwMAIAJBGGogBUHYBGpBGGopAwA3AwAgAkEQaiAFQdgEakEQaikDADcDACACQQhqIAVB2ARqQQhqKQMANwMADCcLIAVCADcD4AQgBUIBNwPYBCAFQQE7AfAEIAVB6AVqEPWGgIAAIAVB8AJqIAVB2ARqIAVB6AVqEKuFgIAAIAUoAvACRQ0WIAVB+ANqQQhqIAVB/AJqKAIANgIAIAUgBSkC9AI3A/gDAkAgBSgC7AUiAkUNACAFKALoBSACQQEQt4WAgAALIAVB8AJqQQhqIAVB+ANqQQhqKAIANgIAIAUgBSkD+AM3A/ACIAVB2AZqQYidwYAAQSUgBUHwAmoQ04SAgAAgBSgC2AZBDUYNIiAFQZgCakEIaiICIAUpA9gGNwMAIAJBGGogBUHYBmpBGGopAwA3AwAgAkEQaiAFQdgGakEQaikDADcDACACQQhqIAVB2AZqQQhqKQMANwMADCMLIAVBxAFqKAIAIQIgBUGgAWpBIGooAgAhEiAFQbwBaigCACERIAVBoAFqQRhqKAIAIQwgBUGgAWpBEGopAwAhDyAFQaABakEMaigCACEIIAUoAqgBIQcgBUHYBmogBUEoaiAFQYgCahDqgYCAACAFKQPYBiIQQgJSDQsgBUHYBGpBOGogBUGYB2opAwA3AwAgBUHYBGpBMGogBUHYBmpBOGopAwA3AwAgBUHYBGpBKGogBUHYBmpBMGopAwA3AwAgBUHYBGpBIGogBUHYBmpBKGopAwA3AwAgBUHYBGpBGGogBUHYBmpBIGopAwA3AwAgBUHYBGpBEGogBUHYBmpBGGopAwA3AwAgBUHgBGogBUHYBmpBEGopAwA3AwAgBSAFKQPgBjcD2AQgBUEANgLwBSAFQgE3A+gFIAVB8AJqIAVB6AVqQdzlwIAAEOyQgIAAIAVB2ARqIAVB8AJqEOyJgIAARQ0MQfTlwIAAQTcgBUGICGpBrObAgABBiOfAgAAQ2pCAgAAACyAFQcQBaigCACECIAVBoAFqQSBqKAIAIRIgBUG8AWooAgAhESAFQaABakEYaigCACEMIAVBoAFqQRBqKQMAIQ8gBUGgAWpBDGooAgAhCCAFKAKoASEHIAVB2AZqIAVBKGogBUGIAmoQ6oGAgAAgBSkD2AYiEEICUg0IIAVB2ARqQThqIAVBmAdqKQMANwMAIAVB2ARqQTBqIAVB2AZqQThqKQMANwMAIAVB2ARqQShqIAVB2AZqQTBqKQMANwMAIAVB2ARqQSBqIAVB2AZqQShqKQMANwMAIAVB2ARqQRhqIAVB2AZqQSBqKQMANwMAIAVB2ARqQRBqIAVB2AZqQRhqKQMANwMAIAVB4ARqIAVB2AZqQRBqKQMANwMAIAUgBSkD4AY3A9gEIAVBADYC8AUgBUIBNwPoBSAFQfACaiAFQegFakHc5cCAABDskICAACAFQdgEaiAFQfACahDsiYCAAEUNCUH05cCAAEE3IAVBiAhqQazmwIAAQYjnwIAAENqQgIAAAAsgBUHEAWooAgAhAiAFQaABakEgaigCACESIAVBvAFqKAIAIREgBUGgAWpBGGooAgAhDCAFQaABakEQaikDACEPIAVBoAFqQQxqKAIAIQggBSgCqAEhByAFQdgGaiAFQShqIAVBiAJqEOqBgIAAIAUpA9gGQgJSDQUgBUHYBGpBOGogBUGYB2opAwA3AwAgBUHYBGpBMGogBUHYBmpBOGopAwA3AwAgBUHYBGpBKGogBUHYBmpBMGopAwA3AwAgBUHYBGpBIGogBUHYBmpBKGopAwA3AwAgBUHYBGpBGGogBUHYBmpBIGopAwA3AwAgBUHYBGpBEGogBUHYBmpBGGopAwA3AwAgBUHgBGogBUHYBmpBEGopAwA3AwAgBSAFKQPgBjcD2AQgBUEANgKABCAFQgE3A/gDIAVB8AJqIAVB+ANqQdzlwIAAEOyQgIAAIAVB2ARqIAVB8AJqEOyJgIAARQ0GQfTlwIAAQTcgBUGICGpBrObAgABBiOfAgAAQ2pCAgAAACyAFQcQBaigCACECIAVBoAFqQSBqKAIAIRIgBUG8AWooAgAhESAFQaABakEYaigCACEMIAVBoAFqQRBqKQMAIQ8gBUGgAWpBDGooAgAhCCAFKAKoASEHIAVB2AZqIAVBKGogBUGIAmoQ6oGAgAAgBSkD2AYiEEICUg0CIAVB2ARqQThqIAVBmAdqKQMANwMAIAVB2ARqQTBqIAVB2AZqQThqKQMANwMAIAVB2ARqQShqIAVB2AZqQTBqKQMANwMAIAVB2ARqQSBqIAVB2AZqQShqKQMANwMAIAVB2ARqQRhqIAVB2AZqQSBqKQMANwMAIAVB2ARqQRBqIAVB2AZqQRhqKQMANwMAIAVB4ARqIAVB2AZqQRBqKQMANwMAIAUgBSkD4AY3A9gEIAVBADYC8AUgBUIBNwPoBSAFQfACaiAFQegFakHc5cCAABDskICAACAFQdgEaiAFQfACahDsiYCAAEUNA0H05cCAAEE3IAVBiAhqQazmwIAAQYjnwIAAENqQgIAAAAsgBUHYAmpBCGoiASAFQaABakEQaikDADcDACAFQeADakEIaiITIAVBoAFqQTRqKQIANwMAIAVB4ANqQRBqIhQgBUHcAWooAgA2AgAgBSAFKQOoATcD2AIgBSAFQaABakEsaikCADcD4AMgBUGgAWpBGGooAgAhCCAFQbwBaigCACECIAVBoAFqQSBqKAIAIRUgBUHEAWooAgAhESAFQaABakEoaigCACEEIAVBoAFqQcAAaigCACEHIAVB5AFqKAIAIQ4gBUGgAWpByABqKQMAIQ8gBUGgAWpB0ABqKAIAIQsgBUH0AWooAgAhDCAFQaABakHYAGooAgAhFiAFQfwBaigCACENIAVBgAJqKAIAIRIgBUGEAmooAgAhFyAFQdgGaiAFQShqIAVBiAJqEOqBgIAAAkACQAJAIAUpA9gGIhBCAlINACAFQfACakE4aiAFQdgGakHAAGopAwA3AwAgBUHwAmpBMGogBUHYBmpBOGopAwA3AwAgBUHwAmpBKGogBUHYBmpBMGopAwA3AwAgBUHwAmpBIGogBUHYBmpBKGopAwA3AwAgBUHwAmpBGGogBUHYBmpBIGopAwA3AwAgBUHwAmpBEGogBUHYBmpBGGopAwA3AwAgBUHwAmpBCGogBUHYBmpBEGopAwA3AwAgBSAFKQPgBjcD8AIgBUEANgL4ByAFQgE3A/AHIAVB6AVqIAVB8AdqQdzlwIAAEOyQgIAAIAVB8AJqIAVB6AVqEOyJgIAARQ0BQfTlwIAAQTcgBUGICGpBrObAgABBiOfAgAAQ2pCAgAAACyAFKQPgBiEJIAUpA+gGIQogBUHYBGogBUHYBmpBGGpByAAQvJGAgAAaIAVB+ANqQSBqIAVB2ARqQQhqKQMANwMAIAVB+ANqQShqIAVB2ARqQRBqKQMANwMAIAVB+ANqQThqIAVB2ARqQSBqKQMANwMAIAVB+ANqQcAAaiAFQdgEakEoaikDADcDACAFQfgDakHIAGogBUHYBGpBMGoiGCkDADcDACAFQfgDakHQAGogBUHYBGpBOGopAwA3AwAgBUH4A2pB2ABqIAVB2ARqQcAAaikDADcDACAFIAUpA9gENwOQBCAFIAUpA/AENwOoBCAFIAo3A4gEIAUgEDcD+AMgBSAJNwOABCAFQfACakEIaiABKQMANwMAIAVB8AJqQSxqIBMpAwA3AgAgBUHwAmpBNGogFCgCADYCACAFIAUpA9gCNwPwAiAFIAQ2ApADIAUgETYCjAMgBSAVNgKIAyAFIAI2AoQDIAUgCDYCgAMgBSAFKQPgAzcClAMgBSAXNgLMAyAFIBI2AsgDIAUgDTYCxAMgBSAWNgLAAyAFIAw2ArwDIAUgCzYCuAMgBSAPNwOwAyAFIA42AqwDIAUgBzYCqAMgBUHYBmogBUHwAmoQqIWAgAACQCAFKQPYBiIPQgJSDQAgBUGIAWpBCGogBUH4BmopAwA3AwAgBUGIAWpBEGogBUHYBmpBKGopAwA3AwAgBSAFQfAGaikDADcDiAEgBUHYBmpBEGopAwAhDyAFQeQGaigCACEBIAUoAuAGIQ4gBSgCqAQiAkUNAiAFKAKkBCACQShsQQgQt4WAgAAMAgsgBUHoBWpBCGoiAiAFQdgGakEgaiIEKQMANwMAIAVB6AVqQRBqIgEgBUHYBmpBKGoiDikDADcDACAFIAUpA/AGNwPoBSAFKQPgBiEQIAUpA+gGIQkgGCAFQdgGakEwakHgABC8kYCAABogBUHYBGpBIGogAikDADcDACAFQdgEakEoaiABKQMANwMAIAUgCTcD6AQgBSAQNwPgBCAFIA83A9gEIAUgBSkD6AU3A/AEIAVB8AdqIAVBiAJqEK+QgIAAIAIgBUHYBWooAgA2AgAgBSAFKQPQBTcD6AUgBUHwAmpBCGoiAiAFQeQFaigCADYCACAFIAUpAtwFNwPwAiAFQdgGaiAFQYgIaiAFQShqIAVB8AdqIAVB+ANqIAVB2ARqIAVB2ARqQeAAaiAFQegFaiAFQfACahCghICAAAJAAkACQCAFKQPYBiIPQgJSDQAgBUHwAmpBOGogBUGYB2opAwA3AwAgBUHwAmpBMGogBUHYBmpBOGopAwA3AwAgBUHwAmpBKGogBUHYBmpBMGopAwA3AwAgBUHwAmpBIGogDikDADcDACAFQfACakEYaiAEKQMANwMAIAVB8AJqQRBqIAVB2AZqQRhqKQMANwMAIAIgBUHYBmpBEGopAwA3AwAgBSAFKQPgBjcD8AIgBUEANgL4ByAFQgE3A/AHIAVB6AVqIAVB8AdqQdzlwIAAEOyQgIAAIAVB8AJqIAVB6AVqEOyJgIAARQ0BQfTlwIAAQTcgBUGICGpBrObAgABBiOfAgAAQ2pCAgAAACyAFQcgGakEIaiICIAVB7AZqIgEoAgA2AgAgBSAFKQLkBjcDyAYgBSgC4AYhBCAFQegFaiAFQfAGaiIOQeAAELyRgIAAGiAFQfACaiAFQegFakHgABC8kYCAABogBUHAAmogBUGIAmoQr5CAgAAgASACKAIANgIAIAUgBDYC4AYgBSAPNwPYBiAFIAUpA8gGNwLkBiAOIAVB6AVqQcgAELyRgIAAGiAFQfAHakEQaiAFQcgDaikDADcDACAFQfAHakEIaiAFQcADaikDADcDACAFIAUpA7gDNwPwByAFQZgCaiAFQShqIAVBwAJqIAVB2AZqIAVB8AdqEM2DgIAADAELIAVByAZqQQhqIgIgBUHwB2pBCGooAgA2AgAgBSAFKQPwBzcDyAYgBUHwAmoQp4OAgAAgBUGkAmogAigCADYCACAFQQM2ApgCIAUgBSkDyAY3ApwCCwJAIAUoAogFIgJFDQAgBSgChAUgAkEobEEIELeFgIAACwJAIAVByAVqKAIAIgJFDQAgBUHEBWooAgAgAkEBELeFgIAACyAFKAKoBCICRQ0hIAUoAqQEIAJBKGxBCBC3hYCAAAwhCyAFKALwByEBIAUpAvQHIQ8gBUHwAmoQp4OAgAACQCACRQ0AIAggAkEBELeFgIAACwJAIARFDQAgESAEQQEQt4WAgAALAkAgDkUNACAHIA5BARC3hYCAAAsCQCAMRQ0AIAsgDEEBELeFgIAAC0EDIQ4gEkUNACANIBJBARC3hYCAAAsgD0IgiKchBCAPpyECDCMLIAVB2AZqIAVBKGpBACgCiIHCgABBACgCjIHCgAAQ9YGAgAACQAJAAkACQCAFKQPYBkICUQ0AIAVB+ANqQQhqIgIgBUHYBmpBIGoiASkDADcDACAFQfgDakEQaiIEIAVB2AZqQShqIg4pAwA3AwAgBUHwAmpBOGogBUHYBmpBOGoiDCkDADcDACAFQfACakHAAGogBUHYBmpBwABqIhIpAwA3AwAgBUHwAmpByABqIAVB2AZqQcgAaiIIKQMANwMAIAVB8AJqQdAAaiAFQdgGakHQAGoiESkDADcDACAFQfACakHYAGogBUHYBmpB2ABqIgcpAwA3AwAgBSAFKQPwBjcD+AMgBSAFKQOIBzcDoAMgBSkD4AYhDyAFQfACakEgaiACKQMANwMAIAVB8AJqQShqIAQpAwA3AwAgBSAPNwP4AiAFIAUpA/gDNwOIAyAFQdgGaiAFQShqQQAoApyBwoAAQQAoAqCBwoAAEPWBgIAAIAUpA9gGIg9CAlENAyAFQfAHakEIaiICIAEpAwA3AwAgBUHwB2pBEGoiASAOKQMANwMAIAVB2ARqQThqIgQgDCkDADcDACAFQdgEakHAAGogEikDADcDACAFQdgEakHIAGogCCkDADcDACAFQdgEakHQAGogESkDADcDACAFQdgEakHYAGogBykDADcDACAFIAUpA/AGNwPwByAFIAUpA4gHNwOIBSAFKQPoBiEQIAVB2ARqQQhqIAUpA+AGIgk3AwAgBUHYBGpBEGogEDcDACAFQdgEakEgaiIOIAIpAwA3AwAgBUHYBGpBKGogASkDACIKNwMAIAUgDzcD2AQgBSAFKQPwBzcD8AQgBSAELQAAOgCoAyAFIAqnIgE2ApgDIAUgBSgC/AQiBDYClAMgBSAOKAIANgKQAyAFQfACakEQaiAQNwMAIAVB8AJqQQhqIAk3AwAgBSAPNwPwAiAFQdgGaiAFQdgEakEsahCAg4CAACAFQfACakEsaiECAkAgBSgCoAMiDkUNACAFKAKcAyAOQShsQQgQt4WAgAALIAIgBSkD2AY3AgAgAkEIaiAFQdgGakEIaigCADYCACAFIAUpA/AENwOIAyAFQfACaiAFQdgEahDKg4CAACIMRQ0BIAUoAqADIQIgBSgCnAMhEiAFQRhqIAGtIAStEKaLgIAAIAVB2AZqIAVBKGogBSkDGCIPIAUpAyAiEEEAKAKcgcKAAEEAKAKggcKAABDzgYCAACAFKALYBiIOQQtGDQIgBUGcAWogBUH8BmooAgA2AgAgBUGIAWpBCGogBUHwBmooAgA2AgAgBSAFKQL0BjcClAEgBSAFKQPoBjcDiAEgBSkD4AYhDyAFKALcBiEBIAJFDR4gEiACQShsQQgQt4WAgAAMHgsgBUHYBGpBIGogBUGAB2opAwA3AwAgBUHYBGpBGGogBUHYBmpBIGopAwA3AwAgBUHYBGpBEGogBUHYBmpBGGopAwA3AwAgBUHYBGpBCGogBUHYBmpBEGopAwA3AwAgBSAFKQPgBjcD2AQgBUHoBWpBBHIgBUHYBGoQnoOAgAAgBUHYBGoQqIOAgAAgBUHwB2pBCGoiAiAFQegFakEYaikDADcDACAFQfAHakEQaiIEIAVB6AVqQSBqKQMANwMAIAUgBSkD+AUiDzcD+AMgBSAPNwPwByAFKALsBSEBIAUpA/AFIQ8gBUGIAWpBEGogBCkDADcDACAFQYgBakEIaiACKQMANwMAIAUgBSkD8Ac3A4gBIA9CIIinIQQgD6chAkEDIQ4MJQsgBUHYBmpBoPHAgABBOxC5goCAACAFKQLcBiEPIAUoAtgGIQFBAyEODBwLIAVB8AdqQQhqIAVB2AZqQRhqIg4oAgAiCDYCACAFIAVB2AZqQRBqIhEpAwAiCTcD8AcgBUHYBmpBCGoiBykDACEKIAUoAtwGIQsgBUHsBmogCDYCACAFIAo3AtwGIAUgCzYC2AYgBSAJNwLkBiAFQShqIA8gECAFQdgGakEAKAKIgcKAAEEAKAKMgcKAABD0gYCAACAFQdgGakEgaiAFQfACakEgaigCADYCACAOIAVB8AJqQRhqKQMANwMAIBEgBUHwAmpBEGopAwA3AwAgByAFQfACakEIaikDADcDACAFQdgGakE8aiAFQfACakE8aikCADcCACAFQdgGakHEAGogBUHwAmpBxABqKQIANwIAIAVB2AZqQcwAaiAFQfACakHMAGopAgA3AgAgBUHYBmpB1ABqIAVB8AJqQdQAaikCADcCACAFQdgGakHcAGogBUHwAmpB3ABqKAIANgIAIAUgBSkD8AI3A9gGIAUgAjYCiAcgBSASNgKEByAFIAE2AoAHIAUgBDYC/AYgBSAFKQKkAzcCjAcgBUHoBWogBUEoaiAFQdgGakEAKAKIgcKAAEEAKAKMgcKAABD2gYCAACAFQfgDaiAFQegFahCtg4CAAAJAIAUoAvgDIg5BC0cNACAFQQs2AtgGIAVBmAJqIAVB2AZqEKyDgIAAIAUoAogFIgJFDSAgBSgChAUgAkEobEEIELeFgIAADCALIAVBiAFqQQhqIAVB+ANqQRhqKQMANwMAIAVBiAFqQRBqIAVB+ANqQSBqKQMANwMAIAUgBSkDiAQ3A4gBIAUpA4AEIQ8gBSgC/AMhAQwbCyAFQegFakEgaiAOKQMANwMAIAVB6AVqQRhqIAEpAwA3AwAgBUHoBWpBEGogBUHYBmpBGGopAwA3AwAgBUHoBWpBCGogBUHYBmpBEGopAwA3AwAgBSAFKQPgBjcD6AUgBUH4A2pBBHIgBUHoBWoQnoOAgAAgBUHoBWoQqIOAgAAgBUHgA2pBCGoiAiAFQfgDakEYaikDADcDACAFQeADakEQaiIEIAVB+ANqQSBqKQMANwMAIAUgBSkDiAQiDzcD8AcgBSAPNwPgAyAFKAL8AyEBIAUpA4AEIQ8gBUGIAWpBEGogBCkDADcDACAFQYgBakEIaiACKQMANwMAIAUgBSkD4AM3A4gBIA9CIIinIQQgD6chAkEDIQ4MGwsgBUHYAmpBCGogBUHYBmpBIGopAwA3AwAgBUHYAmpBEGogBUHYBmpBKGoiASgCADYCACAFQfgDakEIaiAFQZQHaikCADcDACAFQfgDakEQaiAFQZwHaikCADcDACAFQfgDakEYaiAFQaQHaikCADcDACAFQZUEaiAFQakHaikAADcAACAFIAUpA/AGNwPYAiAFIAUpAowHNwP4AyAFKQPoBiEJIAUoAuQGIQ4gBSgC4AYhBCAFKAKEByENIAUoAogHIQsgBSAFQbQHaigAADYAywYgBSAFKACxBzYCyAYgBSACNgL0BCAFIBI2AvAEIAUgETYC7AQgBSAMNgLoBCAFIA83A+AEIAUgCDYC3AQgBSAHNgLYBCAFQdgGaiAFQdgEahCnhYCAACAFKQPYBlANFyAFQeADakEQaiICIAEpAwA3AwAgBUHgA2pBCGoiBCAFQfgGaikDADcDACAFIAVB8AZqKQMAIg83A/AHIAUgDzcD4AMgBUHkBmooAgAhASAFQdgGakEQaikDACEPIAUoAuAGIQ4gBUGIAWpBEGogAikDADcDACAFQYgBakEIaiAEKQMANwMAIAUgBSkD4AM3A4gBIA9CIIinIQQgD6chAgwYCyAFKQLsBSIPQiCIpyEEIAUoAugFIQEgBUHYBGoQp4OAgAAgD6chAkEDIQ4gEiAIIAwbIhJFDSAgESAHIAwbIBJBARC3hYCAAAwgCyAFQcACakEIaiINIAVB2AZqQSBqKAIANgIAIAVB6AVqQQhqIhMgBUGUB2oiFCkCADcDACAFQegFakEQaiAFQZwHaiIVKQIANwMAIAVB6AVqQRhqIAVBpAdqIhYpAgA3AwAgBUHoBWpBIGogBUGsB2oiFykCADcDACAFQegFakEoaiIYIAVBtAdqIhkoAgA2AgAgBSAFKQPwBjcDwAIgBSAFKQKMBzcD6AUgBSgC/AYhASAFKAKAByEOIAUoAoQHIQsgBSgCiAchBCAFIAI2AowDIAUgEjYCiAMgBSARNgKEAyAFIAw2AoADIAUgDzcD+AIgBSAINgL0AiAFIAc2AvACIAVB2AZqIAVB8AJqEKeFgIAAAkAgBSkD2AZQDQAgBUGIAWpBEGogBUHYBmpBKGopAwA3AwAgBUGIAWpBCGogBUH4BmopAwA3AwAgBSAFQfAGaikDACIPNwPgAyAFIA83A4gBIAVB2AZqQRBqKQMAIg9CIIghECAFQeQGaigCACEBIAUoAuAGIQ4CQCAERQ0AIAsgBEEobEEIELeFgIAACyAQpyEEIA+nIQIMIAsgBUH4A2pBCGoiDCAFQdgGakEgaiICKQMANwMAIAVB+ANqQRBqIgggBUHYBmpBKGoiESkDADcDACAFIAVB2AZqQRhqIhIpAwA3A/gDIAVB2AZqQRBqIhopAwAhDyAFKQPgBiEQIAVB2ARqIAVB2AZqQTBqIhtByAAQvJGAgAAaIAVB4ANqQRBqIAgpAwAiCTcDACAFQdgCakEIaiIIIAwpAwA3AwAgBUHYAmpBEGoiByAJNwMAIAUgBSkD+AM3A9gCIAUgDzcD4AYgBSAQNwPYBiASIAgpAwA3AwAgAiAHKQMANwMAIAUgBSkD2AI3A+gGIBEgBUHYBGpByAAQvJGAgAAaIAVBCGogDq0gAa0QpouAgAAgBSkDCCEPIAUpAxAhECAFQdgGahCYhICAACAMIAVBiAJqQQhqKAIANgIAIAUgBSkDiAI3A/gDIAIgDSgCADYCACAFIBA3A+gGIAUgD0IgiD4C5AYgBSAPPgLgBiAFQgE3A9gGIAUgBSkDwAI3A/AGIAUgBDYCiAcgBSALNgKEByAFIA42AoAHIAUgATYC/AYgFCATKQMANwIAIBUgBUHoBWpBEGopAwA3AgAgFiAFQegFakEYaikDADcCACAXIAVB6AVqQSBqKQMANwIAIBkgGCgCADYCACAFIAUpA+gFNwKMByAFQfACaiAFQShqIAVB+ANqIAVB2AZqEO2BgIAAAkACQCAFLQDwAkE5Rg0AIAVB2AZqQThqIAVB8AJqQThqKQMANwMAIBsgBUHwAmpBMGopAwA3AwAgBUHYBmpBKGogBUHwAmpBKGopAwA3AwAgAiAFQfACakEgaikDADcDACASIAVB8AJqQRhqKQMANwMAIBogBUHwAmpBEGopAwA3AwAgBUHYBmpBCGogBUHwAmpBCGopAwA3AwAgBSAFKQPwAjcD2AZBACEMIAVBADYC+AcgBUIBNwPwByAFQfgDaiAFQfAHakHc5cCAABDskICAACAFQdgGaiAFQfgDahDsiYCAAEUNAUH05cCAAEE3IAVBiAhqQazmwIAAQYjnwIAAENqQgIAAAAsgBUIANwPgBiAFQgE3A9gGIAVBATsB8AYgBUGgAmogBUHYBmoQ+4GAgAAgBUELNgKYAgJAIAUoAtwGIgJFDQAgBSgC2AYgAkEBELeFgIAACwJAIAUoAuQGIgJFDQAgBUHoBmooAgAiAUUNACACIAFBARC3hYCAAAtBACEMDB8LIAVBpAJqIAVB8AdqQQhqKAIANgIAIAUgBSkD8Ac3ApwCIAVB2AZqEKeDgIAAIAVBAzYCmAIMHgsgBSkC/AMiD0IgiKchBCAFKAL4AyEBIAVB2ARqEKeDgIAAIA+nIQJBAyEOIBIgCCAMGyISRQ0eIBEgByAMGyASQQEQt4WAgAAMHgsgBUHAAmpBCGoiDiAFQdgGakEgaikDADcDACAFQcACakEQaiAFQdgGakEoaiIBKAIANgIAIAVB+ANqQQhqIg0gBUHYBmpBPGopAgA3AwAgBUH4A2pBEGogBUHYBmpBxABqKQIANwMAIAVB+ANqQRhqIAVB2AZqQcwAaikCADcDACAFQfgDakEgaiAFQdgGakHUAGopAgA3AwAgBUH4A2pBKGoiEyAFQdgGakHcAGooAgA2AgAgBSAFKQPwBjcDwAIgBSAFKQKMBzcD+AMgBSkD6AYhCSAFKALkBiEUIAUoAuAGIRUgBSgChAchCyAFKAKIByEEIAUgAjYC9AQgBSASNgLwBCAFIBE2AuwEIAUgDDYC6AQgBSAPNwPgBCAFIAg2AtwEIAUgBzYC2AQgBUHYBmogBUHYBGoQp4WAgAACQCAFKQPYBlANACAFQYgBakEQaiABKQMANwMAIAVBiAFqQQhqIAVB+AZqKQMANwMAIAUgBUHwBmopAwAiDzcD4AMgBSAPNwOIASAFQdgGakEQaikDACIPQiCIIRAgBUHkBmooAgAhASAFKALgBiEOAkAgBEUNACALIARBKGxBCBC3hYCAAAsgEKchBCAPpyECDB4LIAVB6AVqQQhqIgggBUHYBmpBIGoiAikDADcDACAFQegFakEQaiIMIAEpAwA3AwAgBSAFQdgGakEYaiISKQMANwPoBSAFQdgGakEQaiIHKQMAIQ8gBSkD4AYhCiAFQfACaiAFQdgGakEwaiIWQcgAELyRgIAAGiAFQeADakEQaiAMKQMAIhw3AwAgBUHYAmpBCGoiESAIKQMANwMAIAVB2AJqQRBqIgggHDcDACAFIAUpA+gFNwPYAiAFQfAHakEIaiAFQYgCakEIaigCADYCACAFIAUpA4gCNwPwByAFIAk3A+gEIAUgFDYC5AQgBSAVNgLgBCAFIBA3A9gEIAVB2ARqQSBqIA4pAwA3AwAgBUHYBGpBKGogBUHAAmpBEGooAgA2AgAgBSAENgKIBSAFIAs2AoQFIAUgBSkDwAI3A/AEIAVB2ARqQTxqIA0pAwA3AgAgBUHYBGpBxABqIAVB+ANqQRBqKQMANwIAIAVB2ARqQcwAaiAFQfgDakEYaikDADcCACAFQdgEakHUAGogBUH4A2pBIGopAwA3AgAgBUHYBGpB3ABqIBMoAgA2AgAgBSAFKQP4AzcCjAUgBSAPNwPgBiAFIAo3A9gGIBIgESkDADcDACACIAgpAwA3AwAgBSAFKQPYAjcD6AYgASAFQfACakHIABC8kYCAABogBUHoBWogBUGICGogBUEoaiAFQfAHaiAFQdgEaiAFQdgGahCfhICAAAJAAkAgBS0A6AVBOUYNACAFQdgGakE4aiAFQegFakE4aikDADcDACAWIAVB6AVqQTBqKQMANwMAIAVB2AZqQShqIAVB6AVqQShqKQMANwMAIAIgBUHoBWpBIGopAwA3AwAgEiAFQegFakEYaikDADcDACAHIAwpAwA3AwAgBUHYBmpBCGogBUHoBWpBCGopAwA3AwAgBSAFKQPoBTcD2AZBACEMIAVBADYC+AcgBUIBNwPwByAFQdgEaiAFQfAHakHc5cCAABDskICAACAFQdgGaiAFQdgEahDsiYCAAEUNAUH05cCAAEE3IAVBiAhqQazmwIAAQYjnwIAAENqQgIAAAAsgBSAFLQDpBToA8QQgBUEBOgDwBCAFQgA3A+AEIAVCATcD2AQgBUHYBmogBUHYBGoQ+4GAgAACQCAFKALcBCICRQ0AIAUoAtgEIAJBARC3hYCAAAsCQCAFKALkBCICRQ0AIAVB6ARqKAIAIgFFDQAgAiABQQEQt4WAgAALIAVBmAJqQRBqIAVB4AZqKQMANwMAIAVBmAJqQRhqIAVB2AZqQRBqKQMANwMAIAVBuAJqIAVB2AZqQRhqKQMANwMAIAUgBSkD2AY3A6ACIAVBCzYCmAJBACEMDB0LIAVBpAJqIAVB8AdqQQhqKAAANgAAIAUgBSkA8Qc3AJ0CIAUtAPAHIQIgBUHYBmoQp4OAgAAgBSACOgCcAiAFQQM2ApgCDBwLIAUpAuwFIg9CIIinIQQgBSgC6AUhASAFQdgEahCng4CAACAPpyECQQMhDiASIAggDBsiEkUNHCARIAcgDBsgEkEBELeFgIAADBwLIAVB2AJqQQhqIAVB2AZqQSBqKQMANwMAIAVB2AJqQRBqIAVB2AZqQShqIgEoAgA2AgAgBUH4A2pBCGogBUGUB2opAgA3AwAgBUH4A2pBEGogBUGcB2opAgA3AwAgBUH4A2pBGGogBUGkB2opAgA3AwAgBUH4A2pBIGogBUGsB2opAgA3AwAgBUH4A2pBKGogBUG0B2ooAgA2AgAgBSAFKQPwBjcD2AIgBSAFKQKMBzcD+AMgBSkD6AYhCSAFKALkBiETIAUoAuAGIRQgBSgChAchDSAFKAKIByELIAUgAjYCjAMgBSASNgKIAyAFIBE2AoQDIAUgDDYCgAMgBSAPNwP4AiAFIAg2AvQCIAUgBzYC8AIgBUHYBmogBUHwAmoQp4WAgAACQCAFKQPYBlANACAFQeADakEQaiICIAEpAwA3AwAgBUHgA2pBCGoiBCAFQfgGaikDADcDACAFIAVB8AZqKQMAIg83A/AHIAUgDzcD4AMgBUHYBmpBEGopAwAhDyAFQeQGaigCACEBIAUoAuAGIQ4gBUGIAWpBEGogAikDADcDACAFQYgBakEIaiAEKQMANwMAIAUgBSkD4AM3A4gBDBELIAVB6AVqQQhqIgQgBUHYBmpBIGopAwA3AwAgBUHoBWpBEGoiDiABKQMANwMAIAUgBUHYBmpBGGopAwA3A+gFIAVB5AZqKAIAIQEgBUHYBmpBEGopAwAhCiAFKALgBiECIAVB2ARqQShqIAVBiAdqQcgAELyRgIAAGiAFQfAHakEQaiAOKQMAIg83AwAgBUHgA2pBCGogBCkDACIcNwMAIAVB4ANqQRBqIA83AwAgBUHYBGpBGGogHDcDACAFQdgEakEgaiAPNwMAIAUgCjcD4AQgBSABNgLcBCAFIAI2AtgEIAUgBSkD6AU3A+gEIAINDAwNCyAFKQLsBSIPQiCIpyEEIAUoAugFIQEgBUHYBGoQp4OAgAAgD6chAkEDIQ4gEiAIIAwbIhJFDRogESAHIAwbIBJBARC3hYCAAAwaCyAFQfACakEwaiAFQaABakE4aikDADcDACAFQfACakEoaiAFQaABakEwaikDADcDACAFQfACakEgaiAFQaABakEoaikDADcDACAFQfACakEYaiAFQaABakEgaikDADcDACAFQfACakEQaiAFQaABakEYaikDADcDACAFQfACakEIaiAFQaABakEQaikDADcDACAFIAUpA6gBNwPwAiAFQdgGaiAFQfACahCmhYCAAAJAAkACQCAFKALYBiICQQ9GDQAgBUHoBWpBCGoiASAFQdgGakEgaikDADcDACAFQegFakEQaiIEIAVB2AZqQShqKQMANwMAIAVB2ARqQThqIAVB2AZqQThqKQMANwMAIAVB2ARqQcAAaiAFQdgGakHAAGopAwA3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oAFqQaDzwIAAQQkQs4qAgAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBCgCoAFBCEcNACAEQRhqQQhqIARBrAFqKAIANgIAIAQgBCkCpAE3AxggA0H/AXEOBAECAwQBCyAEQShqQRhqIARBoAFqQRhqKQMANwMAIARBKGpBEGogBEGgAWpBEGopAwA3AwAgBEEoakEIaiAEQaABakEIaikDADcDACAEIAQpA6ABNwMoQanzwIAAQRIgBEEoakG888CAAEHc88CAABDakICAAAALIARBoAFqQRRqQQE2AgAgBEEoakEUakEANgIAIARCATcCpAEgBEGY9MCAADYCoAEgBEGBgICAADYCjAEgBEGY58CAADYCOCAEQgE3AiwgBEHc9MCAADYCKCAEIARBiAFqNgKwASAEIARBKGo2AogBIARBoAFqQeT0wIAAELaQgIAAAAsgBEGgAWpBFGpBATYCACAEQShqQRRqQQA2AgAgBEIBNwKkASAEQZj0wIAANgKgASAEQYGAgIAANgKMASAEQZjnwIAANgI4IARCATcCLCAEQbT0wIAANgIoIAQgBEGIAWo2ArABIAQgBEEoajYCiAEgBEGgAWpBvPTAgAAQtpCAgAAACyAEQgE3A6ABIARCADcDqAEgBEHgAWoQ9YaAgAAgBEGIAWogBEGgAWogBEHgAWoQqoWAgAAgBCgCiAFFDQEgBEHQAWpBCGoiASAEQZQBaigCADYCACAEIAQpAowBNwPQAQJAIAQoAuQBIgNFDQAgBCgC4AEgA0EBELeFgIAACyAEQYgBakEIaiABKAIANgIAIAQgBCkD0AE3A4gBIARBKGpBgp/BgABBJCAEQYgBahDThICAACAEKAIoQQ1GDRMgACAEKQMoNwMAIABBGGogBEEoakEYaikDADcDACAAQRBqIARBKGpBEGopAwA3AwAgAEEIaiAEQShqQQhqKQMANwMADBQLIARBoAFqQRBqIAFBEGopAgA3AwAgBEGgAWpBCGogAUEIaikCADcDACAEIAEpAgA3A6ABIARBKGogBEGgAWoQo4WAgAACQCAEKQMoIgVCAlINAEEHQQEQtoWAgAAiAUUNAiAEQQA2ApQBIAFBA2pBACgA7/PAgAA2AAAgAUEAKADs88CAADYAACAEQoeAgIDwADcCjAEgBCABNgKIASAEQdABahD1hoCAACAEQeABaiAEQYgBaiAEQdABahCqhYCAACAEKALgAUUNAyAEQcABakEIaiIBIARB7AFqKAIANgIAIAQgBCkC5AE3A8ABAkAgBCgC1AEiA0UNACAEKALQASADQQEQt4WAgAALIARB4AFqQQhqIAEoAgA2AgAgBCAEKQPAATcD4AEgBEGgAWpBgp/BgABBJCAEQeABahDThICAACAEKAKgAUENRg0RIAAgBCkDoAE3AwAgAEEYaiAEQaABakEYaikDADcDACAAQRBqIARBoAFqQRBqKQMANwMAIABBCGogBEGgAWpBCGopAwA3AwAMEgsgBCgCWCEGIAQoAlQhBwJAAkACQCAFQgFRDQAgBEEIaiAENQJQIAQ1AkwQpouAgAAgBCkDECEFIAQpAwghCCAEQaABakEQaiABQRBqKQIANwMAIARBoAFqQQhqIAFBCGopAgA3AwAgBCABKQIANwOgASAEQShqIARBoAFqIARBGGogCCAFEKSFgIAAIAQtAChBOUcNAkEGQQEQtoWAgAAiAUUNCCAEQQA2ApQBIAFBBGpBAC8AhPTAgAA7AAAgAUEAKACA9MCAADYAACAEQoaAgIDgADcCjAEgBCABNgKIASAEQdABahD1hoCAACAEQeABaiAEQYgBaiAEQdABahCqhYCAACAEKALgAUUNCSAEQcABakEIaiIBIARB7AFqKAIANgIAIAQgBCkC5AE3A8ABAkAgBCgC1AEiA0UNACAEKALQASADQQEQt4WAgAALIARB4AFqQQhqIAEoAgA2AgAgBCAEKQPAATcD4AEgBEGgAWpBgp/BgABBJCAEQeABahDThICAACAEKAKgAUENRw0BDBALQQZBARC2hYCAACIBRQ0FIARBADYCrAEgAUEEakEALwD388CAADsAACABQQAoAPPzwIAANgAAIARChoCAgOAANwKkASAEIAE2AqABIARB4AFqEPWGgIAAIARBiAFqIARBoAFqIARB4AFqEKqFgIAAIAQoAogBRQ0GIARB0AFqQQhqIgEgBEGUAWooAgA2AgAgBCAEKQKMATcD0AECQCAEKALkASIDRQ0AIAQoAuABIANBARC3hYCAAAsgBEGIAWpBCGogASgCADYCACAEIAQpA9ABNwOIASAEQShqQYKfwYAAQSQgBEGIAWoQ04SAgAAgBCgCKEENRg0NIAAgBCkDKDcDACAAQRhqIARBKGpBGGopAwA3AwAgAEEQaiAEQShqQRBqKQMANwMAIABBCGogBEEoakEIaikDADcDAAwOCyAAIAQpA6ABNwMAIABBGGogBEGgAWpBGGopAwA3AwAgAEEQaiAEQaABakEQaikDADcDACAAQQhqIARBoAFqQQhqKQMANwMADA8LQQdBARC2hYCAACIBRQ0HIARBADYClAEgAUEDakEAKAD888CAADYAACABQQAoAPnzwIAANgAAIARCh4CAgPAANwKMASAEIAE2AogBIARB0AFqEPWGgIAAIARB4AFqIARBiAFqIARB0AFqEKqFgIAAIAQoAuABRQ0IIARBwAFqQQhqIgEgBEHsAWooAgA2AgAgBCAEKQLkATcDwAECQCAEKALUASIDRQ0AIAQoAtABIANBARC3hYCAAAsgBEHgAWpBCGogASgCADYCACAEIAQpA8ABNwPgASAEQaABakGCn8GAAEEkIARB4AFqENOEgIAAIAQoAqABQQ1GDQkgACAEKQOgATcDACAAQRhqIARBoAFqQRhqKQMANwMAIABBEGogBEGgAWpBEGopAwA3AwAgAEEIaiAEQaABakEIaikDADcDAAwKCyAEQTRqIARB6AFqKAIANgIAIAQgBCkD4AE3AiwMEQtBB0EBEKiQgIAAAAsgBEGsAWogBEHYAWooAgA2AgAgBCAEKQPQATcCpAEMDQtBBkEBEKiQgIAAAAsgBEE0aiAEQegBaigCADYCACAEIAQpA+ABNwIsDAYLQQZBARCokICAAAALIARBrAFqIARB2AFqKAIANgIAIAQgBCkD0AE3AqQBDAYLQQdBARCokICAAAALIARBrAFqIARB2AFqKAIANgIAIAQgBCkD0AE3AqQBCyAAIAQpAqQBNwIEIABBDTYCACAAQQxqIARBoAFqQQxqKAIANgIACwJAIAQoAowBIgBFDQAgBCgCiAEgAEEBELeFgIAACwJAIAQoApQBIgBFDQACQCAEQZwBaigCACIBRQ0AIAFBGGwhAQNAAkAgAEEEaigCACIDRQ0AIAAoAgAgA0EBELeFgIAACwJAIABBEGooAgAiA0UNACAAQQxqKAIAIANBARC3hYCAAAsgAEEYaiEAIAFBaGoiAQ0ACwsgBEGYAWooAgAiAEUNACAEKAKUASAAQRhsQQQQt4WAgAALIARBKGoQp4OAgAAMBAsgACAEKQIsNwIEIABBDTYCACAAQQxqIARBKGpBDGooAgA2AgALAkAgBCgCpAEiAEUNACAEKAKgASAAQQEQt4WAgAALIAQoAqwBIgBFDQICQCAEQbQBaigCACIBRQ0AIAFBGGwhAQNAAkAgAEEEaigCACIDRQ0AIAAoAgAgA0EBELeFgIAACwJAIABBEGooAgAiA0UNACAAQQxqKAIAIANBARC3hYCAAAsgAEEYaiEAIAFBaGoiAQ0ACwsgBEGwAWooAgAiAEUNAiAEKAKsASAAQRhsQQQQt4WAgAAMAgsgACAEKQKkATcCBCAAQQ02AgAgAEEMaiAEQaABakEMaigCADYCAAsCQCAEKAKMASIARQ0AIAQoAogBIABBARC3hYCAAAsCQCAEKAKUASIARQ0AAkAgBEGcAWooAgAiAUUNACABQRhsIQEDQAJAIABBBGooAgAiA0UNACAAKAIAIANBARC3hYCAAAsCQCAAQRBqKAIAIgNFDQAgAEEMaigCACADQQEQt4WAgAALIABBGGohACABQWhqIgENAAsLIARBmAFqKAIAIgBFDQAgBCgClAEgAEEYbEEEELeFgIAACyAEQTBqKAIAIgBFDQAgBCgCLCAAQQEQt4WAgAALIAZFDQQgByAGQShsQQgQt4WAgAAMBAsgACAEKQKkATcCBCAAQQ02AgAgAEEMaiAEQaABakEMaigCADYCAAsCQCAEKAKMASIARQ0AIAQoAogBIABBARC3hYCAAAsCQCAEKAKUASIARQ0AAkAgBEGcAWooAgAiAUUNACABQRhsIQEDQAJAIABBBGooAgAiA0UNACAAKAIAIANBARC3hYCAAAsCQCAAQRBqKAIAIgNFDQAgAEEMaigCACADQQEQt4WAgAALIABBGGohACABQWhqIgENAAsLIARBmAFqKAIAIgBFDQAgBCgClAEgAEEYbEEEELeFgIAACyAEQTBqEKeDgIAAIAQoAhwiAEUNAyAEKAIYIABBARC3hYCAAAwDCyAAIAQpAiw3AgQgAEENNgIAIABBDGogBEEoakEMaigCADYCAAsCQCAEKAKkASIARQ0AIAQoAqABIABBARC3hYCAAAsgBCgCrAEiAEUNAAJAIARBtAFqKAIAIgFFDQAgAUEYbCEBA0ACQCAAQQRqKAIAIgNFDQAgACgCACADQQEQt4WAgAALAkAgAEEQaigCACIDRQ0AIABBDGooAgAgA0EBELeFgIAACyAAQRhqIQAgAUFoaiIBDQALCyAEQbABaigCACIARQ0AIAQoAqwBIABBGGxBBBC3hYCAAAsgBCgCHCIARQ0AIAQoAhggAEEBELeFgIAACwJAIAJBFGooAgAiAEUNACACKAIQIABBARC3hYCAAAsCQCACQSxqKAIAIgBFDQAgAigCKCAAQQEQt4WAgAALIARB8AFqJICAgIAAC7YDBQF/AX4CfwF+A38jgICAgABB8ABrIgMkgICAgAAgA0EIaiABIAIQhYeAgAAgA0E4aiADQQhqIAMgAyADIAMQ1YOAgAAgA0EoakEIaiICIANBOGpBCGopAwA3AwAgAyADKQM4NwMoAkACQAJAIAMoAlgiAUECRg0AIANBGGpBCGogAikDADcDACADIAMpAyg3AxggAykDaCEEIAMoAmQhAiADKAJgIQUgAygCXCEGIAMpA1AhByADKAJMIQggAygCSCEJIANBOGogA0EIahCHh4CAACADKAI4IgpBFUcNASAAIAMpAxg3AwAgACAENwMwIAAgAjYCLCAAIAU2AiggACAGNgIkIAAgATYCICAAIAc3AxggACAINgIUIAAgCTYCECAAQQhqIANBGGpBCGopAwA3AwAMAgsgACADKQMoNwIAIABBAjYCICAAQQhqIAIpAwA3AgAMAQsgACADKQI8NwIEIABBDGogA0E4akEMaigCADYCACAAQQI2AiAgACAKNgIAAkAgCEUNACAJIAhBARC3hYCAAAsgAkUNACAFIAJBARC3hYCAAAsgA0HwAGokgICAgAAL1xAFDn8BfgF/AX4BfyOAgICAAEHgAWsiBiSAgICAACAGQTBqIAEQjYeAgAACQAJAAkACQAJAAkAgBi0AMEEBcUUNACAGLQAxQf8BcUH7AEcNASABEIaHgIAAIAZBKGogARCAh4CAACAGLQAsIQcgBkEgaiAGKAIoIggQjYeAgABBACEJAkAgBi0AIEEBcQ0AQQAhCkEAIQtBAiEMDAQLIAZB0AFqQQRyIQ0gBi0AISEMIAdBAXEhDiAGQbABakEEciEPQQAhC0ECIRBBACEKA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgDEH/AXEiEUEs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wIAAQQIQ4YKAgAAMAQsgAEEVNgIAIABBADoABAsgAUUNAiAEIAFBARC3hYCAAAwCCyAAIAEgA0H04MCAAEECEOGCgIAADAELIABBFTYCACAAQQA6AAQLIAJBIGokgICAgAAL1wICA38BfiOAgICAAEEgayICJICAgIAAIAJBCGogARCNh4CAAAJAAkACQAJAIAItAAhBAXFFDQAgAi0ACUH/AXFBIkcNASABEIaHgIAAIAJBEGogARCMh4CAACACKAIQIgFBFUcNAiACQRxqKAIAIQMgAkEQakEIaigCACEBAkAgAigCFCIEDQACQAJAIANBCEcNACABKQAAQQApAIa5wYAAUQ0BCyAAIAEgA0GQucGAAEEBEOGCgIAADAULIABBFTYCAAwECwJAAkACQCADQQhHDQAgBCkAAEEAKQCGucGAAFENAQsgACAEIANBkLnBgABBARDhgoCAAAwBCyAAQRU2AgALIAFFDQMgBCABQQEQt4WAgAAMAwsgAEEENgIADAILIABBDjYCAAwBCyACKQIUIQUgACACKAIcNgIMIAAgBTcCBCAAIAE2AgALIAJBIGokgICAgAALxwMCA38BfiOAgICAAEEgayICJICAgIAAIAJBCGogARCNh4CAAAJAAkACQAJAAkACQAJAAkAgAi0ACEEBcUUNACACLQAJQf8BcUEiRw0BIAEQhoeAgAAgAkEQaiABEIyHgIAAIAIoAhAiAUEVRw0CIAJBHGooAgAhAyACQRhqKAIAIQECQCACKAIUIgQNAAJAAkACQAJAAkAgA0F7ag4CAgABCyABQdqhwIAAQQYQupGAgABFDQgLIABBBGohAwwBCyAAQQRqIQMgAUHgocCAAEEFELqRgIAARQ0BCyADQQI6AAAMCAsgA0EBOgAADAcLAkACQAJAAkACQCADQXtqDgICAAELIARB2qHAgABBBhC6kYCAAEUNCAsgAEEEaiEDDAELIABBBGohAyAEQeChwIAAQQUQupGAgABFDQELIANBAjoAAAwGCyADQQE6AAAMBQsgAEEENgIADAYLIABBDjYCAAwFCyACKQIUIQUgACACKAIcNgIMIAAgBTcCBCAAIAE2AgAMBAsgAEEAOgAEDAILIABBADoABAsgAEEVNgIAIAFFDQEgBCABQQEQt4WAgAAMAQsgAEEVNgIACyACQSBqJICAgIAAC6cDAgN/AX4jgICAgABBIGsiAiSAgICAACACQQhqIAEQjYeAgAACQAJAAkACQCACLQAIQQFxRQ0AIAItAAlB/wFxQSJHDQEgARCGh4CAACACQRBqIAEQjIeAgAAgAigCECIBQRVHDQIgAkEcaigCACEDIAJBGGooAgAhAQJAIAIoAhQiBA0AAkACQAJAIANBD0cNAAJAIAFBmKPAgABBDxC6kYCAAEUNACAAQQRqIQMgAUGno8CAAEEPELqRgIAADQIgA0EBOgAADAMLIABBADoABAwCCyAAQQRqIQMLIANBAjoAAAsgAEEVNgIADAQLAkACQAJAIANBD0cNAAJAIARBmKPAgABBDxC6kYCAAEUNACAAQQRqIQMgBEGno8CAAEEPELqRgIAADQIgA0EBOgAADAMLIABBADoABAwCCyAAQQRqIQMLIANBAjoAAAsgAEEVNgIAIAFFDQMgBCABQQEQt4WAgAAMAwsgAEEENgIADAILIABBDjYCAAwBCyACKQIUIQUgACACKAIcNgIMIAAgBTcCBCAAIAE2AgALIAJBIGokgICAgAALvgMCA38BfiOAgICAAEEgayICJICAgIAAIAJBCGogARCNh4CAAAJAAkACQAJAAkACQAJAAkACQCACLQAIQQFxRQ0AIAItAAlB/wFxQSJHDQEgARCGh4CAACACQRBqIAEQjIeAgAAgAigCECIBQRVHDQIgAkEcaigCACEDIAJBGGooAgAhAQJAIAIoAhQiBA0AAkACQCADQXxqDgMACQEJCyABKAAAQQAoAMj5wIAARg0JDAgLIAFBzPnAgABBBhC6kYCAAA0HIABBFTYCACAAQQE6AAQMCQsCQAJAIANBfGoOAwAFAQULIAQoAABBACgAyPnAgABGDQUMBAsgBEHM+cCAAEEGELqRgIAADQMgAEEVNgIAIABBAToABAwFCyAAQQQ2AgAMBwsgAEEONgIADAYLIAIpAhQhBSAAIAIoAhw2AgwgACAFNwIEIAAgATYCAAwFCyAAIAQgA0HY+cCAAEECEOGCgIAADAELIABBFTYCACAAQQA6AAQLIAFFDQIgBCABQQEQt4WAgAAMAgsgACABIANB2PnAgABBAhDhgoCAAAwBCyAAQRU2AgAgAEEAOgAECyACQSBqJICAgIAAC/MBAgN/AX4jgICAgABBIGsiAiSAgICAACAC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gICAgABBIGsiBiSAgICAACAGQQhqIAEQjYeAgAACQAJAAkACQCAGLQAIQQFxRQ0AIAYtAAlB/wFxIgdBIkYNASAHQfsARg0CIABCgYCAgKABNwMADAMLIABCgYCAgMAANwMADAILIAZBEGogARD/hoCAABD5g4CAAAJAAkAgBigCECIBQRVHDQAgAEEONgIEDAELIAAgBi8AFTsACSAAQQtqIAYtABc6AAAgBi0AFCEHIABBDGogBikDGDcCACAAQQhqIAc6AAAgACABNgIECyAAQQE2AgAMAQsgARCGh4CAACAAIAEQ/4aAgAAQtIWAgAALIAZBIGokgICAgAALygMCA38BfiOAgICAAEEgayICJICAgIAAIAJBCGogARCNh4CAAAJAAkACQAJAAkACQAJAAkACQCACLQAIQQFxRQ0AIAItAAlB/wFxQSJHDQEgARCGh4CAACACQRBqIAEQjIeAgAAgAigCECIBQRVHDQIgAkEcaigCACEDIAJBGGooAgAhAQJAIAIoAhQiBA0AAkACQCADQXpqDgcACQkJCQkBCQsgAUHsusGAAEEGELqRgIAARQ0JDAgLIAFB8rrBgABBDBC6kYCAAA0HIABBFTYCACAAQQE6AAQMCQsCQAJAIANBemoOBwAFBQUFBQEFCyAEQey6wYAAQQYQupGAgABFDQUMBAsgBEHyusGAAEEMELqRgIAADQMgAEEVNgIAIABBAToABAwFCyAAQQQ2AgAMBwsgAEEONgIADAYLIAIpAhQhBSAAIAIoAhw2AgwgACAFNwIEIAAgATYCAAwFCyAAIAQgA0GAu8GAAEECEOSCgIAADAELIABBFTYCACAAQQA6AAQLIAFFDQIgBCABQQEQt4WAgAAMAgsgACABIANBgLvBgABBAhDkgoCAAAwBCyAAQRU2AgAgAEEAOgAECyACQSBqJICAgIAAC/MBAgN/AX4jgICAgABBIGsiAiSAgICAACACQQhqIAEQjYeAgAACQAJAAkACQCACLQAIQQFxRQ0AIAItAAlB/wFxQSJHDQEgARCGh4CAACACQRBqIAEQjIeAgAAgAigCECIBQRVHDQIgAkEcaigCACEDIAJBGGooAgAhAQJAIAIoAhQiBA0AIAAgASADELCFgIAADAQLIAAgBCADELCFgIAAIAFFDQMgBCABQQEQt4WAgAAMAwsgAEEE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mANqIAdBiAJqEPSJgIAAIAdBoAFqQQhqIgYgB0GYA2pBCWopAAA3AwAgB0GgAWpBEGoiCyAHQZgDakERaikAADcDACAHQaABakEYaiINIAdBmANqQRlqKQAANwMAIAdBoAFqQSBqIhogB0GYA2pBIWopAAA3AwAgB0GgAWpBKGoiGyAHQZgDakEpaikAADcDACAHQaABakEwaiISIAdBmANqQTFqKQAANwMAIAdBoAFqQTdqIhMgB0HQA2opAAA3AAAgByAHKQCZAzcDoAEgBy0AmAMiF0E5Rg0BIABBCWogBykDoAE3AAAgAEHAAGogEykAADcAACAAQTlqIBIpAwA3AAAgAEExaiAbKQMANwAAIABBKWogGikDADcAACAAQSFqIA0pAwA3AAAgAEEZaiALKQMANwAAIABBEWogBikDADcAACAAQgI3AwAgACAXOgAIDAILQTtBARCokICAAAALAkACQAJAAkACQAJAIAcoAnAiEg0AQQAhBkEEIRsMAQsgBygCaCEaIBJBAnQiBkEEELaFgIAAIhtFDQEgGyEGIBohCwJAIBJBKGxBWGoiE0EobiIXQQFqQQdxIg1FDQAgDUEKbCENIBshBiAaIQsDQCAGIAtBCGopAwA+AgAgBkEEaiEGIAtBKGohCyANQXZqIg0NAAsLAkAgE0GYAkkNACAaIBJBKGxqIRogC0GgAmohCwNAIAYgC0HofWopAwA+AgAgBkEEaiALQZB+aikDAD4CACAGQQhqIAtBuH5qKQMAPgIAIAZBDGogC0HgfmopAwA+AgAgBkEQaiALQYh/aikDAD4CACAGQRRqIAtBsH9qKQMAPgIAIAZBGGogC0FYaikDAD4CACAGQRxqIAspAwA+AgAgBkEgaiEGIAtBIGohDSALQcACaiELIA0gGkcNAAsLIBdBAWohBgsgGyAGELOCgIAAIAZFDQMgGygCACAEKAIkSw0CQTlBARC2hYCAACILRQ0BIAtBACkAh/3AgAA3AAAgC0EIakEAKQCP/cCAADcAACALQRBqQQApAJf9wIAANwAAIAtBGGpBACkAn/3AgAA3AAAgC0EgakEAKQCn/cCAADcAACALQShqQQApAK/9wIAANwAAIAtBMGpBACkAt/3AgAA3AAAgC0E4akEALQC//cCAADoAACAHQTk2AowCIAcgCzYCiAIgB0E5NgKQ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gIAAC0EAIQBBACECIARFDQQMAgsCQCAAKAIAIgFFDQAgAkEBaiEHIABB1AlqLwEAIQULAkBB6AxBuAwgAhsiAkUNACAAIAJBBBC3hYCAAAsgASEAIAchAiABDQALC0HciMCAAEErQeiJwIAAELuQgIAAAAsgAkUNASACQX9qIQUCQCACQQdxIgBFDQADQCACQX9qIQIgASgCuAwhASAAQX9qIgANAAsLIAVBB0kNAQNAIAEoArgMKAK4DCgCuAwoArgMKAK4DCgCuAwoArgMKAK4DCEBIAJBeGoiAg0ADAILCyADRQ0AIAFFDQELQQAhAANAIAEoAgAhAgJAQegMQbgMIAAbIgVFDQAgASAFQQQQt4WAgAALIABBf2ohACACIQEgAg0ACwsLvQQBBn8CQCAAKAIAIgENACAAQQhqEL6EgIAADwsCQCAAQQRqKAIAIgJFDQAgASACQQEQt4WAgAALAkAgAEEUaigCACIBRQ0AIAAoAgwiAyABQfAAbGohBANAAkAgA0EMaigCACICRQ0AIAMoAgQhASACQRRsIQUDQAJAAkACQAJAIAEtAAAOBAAAAAEDCyABQQhqIQIMAQsgAUEEaiECCyACQQRqKAIAIgZFDQAgAigCACAGQQEQt4WAgAALIAFBFGohASAFQWxqIgUNAAsLIANB8ABqIQECQCADQQhqKAIAIgJFDQAgAygCBCACQRRsQQQQt4WAgAALIAEhAyABIARHDQALCwJAIABBEGooAgAiAUUNACAAKAIMIAFB8ABsQQQQt4WAgAALAkAgAEE8aigCACIBRQ0AIAAoAjggAUEBELeFgIAACwJAIABBzABqKAIAIgFFDQAgAEHEAGooAgAiAyABQfAAbGohBANAAkAgA0EMaigCACICRQ0AIAMoAgQhASACQRRsIQUDQAJAAkACQAJAIAEtAAAOBAAAAAEDCyABQQhqIQIMAQsgAUEEaiECCyACQQRqKAIAIgZFDQAgAigCACAGQQEQt4WAgAALIAFBFGohASAFQWxqIgUNAAsLIANB8ABqIQECQCADQQhqKAIAIgJFDQAgAygCBCACQRRsQQQQt4WAgAALIAEhAyABIARHDQALCwJAIABByABqKAIAIgFFDQAgACgCRCABQfAAbEEEELeFgIAACwvTKwMGfwN+EH8jgICAgABB0AVrIgYkgICAgAAC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B0HwAGohBQJAIAdBCGooAgAiCUUNACAHKAIEIAlBFGxBBBC3hYCAAAsgBSEHIAUgFUcNAAsLIAhBgAFqKAIAIgVFDQAgFiAFQfAAbEEEELeFgIAACyAEQTBqKAIAIgVFDQAgBCgCLCAFQShsQQgQt4WAgAALAkAgA0EEaigCACIFRQ0AIAMoAgAgBUEBELeFgIAACyAGQdAFaiSAgICAAAunAgEDfyOAgICAAEEQayICJICAgIAAAkACQAJAIAEoAgxFDQAgAEEIaiABQcgAELyRgIAAGiAAQeUAOgAADAELIAJBCGogAUEYaikCADcDACACIAEpAhA3AwBBJEEBELaFgIAAIgFFDQEgAUEgakEAKAC5gcGAADYAACABQRhqQQApALGBwYAANwAAIAFBEGpBACkAqYHBgAA3AAAgAUEIakEAKQChgcGAADcAACABQQApAJmBwYAANwAAAkAgAigCAEUNACACELyEgIAACwJAIAIoAgQiA0UNACACQQhqKAIAIgRFDQAgAyAEQQEQt4WAgAALIABCpICAgMAENwAIIAAgATYABCAAQeQAOgAACyACQRBqJICAgIAADwtBJEEBEKiQgIAAAAunAgEDfyOAgICAAEEQayICJICAgIAAAkACQAJAIAEoAgxFDQAgAEEIaiABQcgAELyRgIAAGiAAQeUAOgAADAELIAJBCGogAUEYaikCADcDACACIAEpAhA3AwBBJUEBELaFgIAAIgFFDQEgAUEdakEAKQCRgcGAADcAACABQRhqQQApAIyBwYAANwAAIAFBEGpBACkAhIHBgAA3AAAgAUEIakEAKQD8gMGAADcAACABQQApAPSAwYAANwAAAkAgAigCAEUNACACELyEgIAACwJAIAIoAgQiA0UNACACQQhqKAIAIgRFDQAgAyAEQQEQt4WAgAALIABCpYCAgNAENwAIIAAgATYABCAAQeQAOgAACyACQRBqJICAgIAADwtBJUEBEKiQgIAAAAtiAQF/AkACQAJAIAAoAgAOAwABAgELIABBBGoQ4Y2AgAAMAQsCQCAAKAIERQ0AIABBBGoQvISAgAALIABBCGooAgAiAUUNACAAQQxqKAIAIgBFDQAgASAAQQEQt4WAgAAPCwubAgEGfwJAIABBEGooAgAiAUUNACAAQQxqKAIAIAFBhAFsQQQQt4WAgAALAkAg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dGpBkAJqKAIAIQFBACEFIAJBf2oiBkUNACACQX5qIQcCQCAGQQdxIgJFDQADQCAGQX9qIQYgASgCkAIhASACQX9qIgINAAsLAkAgB0EHSQ0AA0AgASgCkAIoApACKAKQAigCkAIoApACKAKQAigCkAIoApACIQEgBkF4aiIGDQALCyAARQ0GCwJAIAAgBEEMbGoiAEEIaigCACICRQ0AIABBBGooAgAgAkEBELeFgIAACwJAIABBiAFqIgAoAgAiAkUNACAAQQRqKAIAIgBFDQAgAiAAQQEQt4WAgAALQQAhAkEAIQAgAw0CDAQLAkAgACgCACIBRQ0AIAJBAWohBiAAQYwCai8BACEECwJAQcACQZACIAIbIgJFDQAgACACQQQQt4WAgAALIAEhACAGIQIgAQ0ACwtB3IjAgABBK0HoicCAABC7kICAAAALIAJFDQAgAkF/aiEEAkAgAkEHcSIARQ0AA0AgAkF/aiECIAEoApACIQEgAEF/aiIADQALCyAEQQdJDQADQCABKAKQAigCkAIoApACKAKQAigCkAIoApACKAKQAigCkAIhASACQXhqIgINAAsLQQAhAANAIAEoAgAhAgJAQcACQZACIAAbIgRFDQAgASAEQQQQt4WAgAALIABBf2ohACACIQEgAg0ACwsLhQEBAX8CQEEmQQEQtoWAgAAiAQ0AQSZBARCokICAAAALIAAgATYCACAAQqaAgIDgBDcCBCABQQApAI+CwYAANwAAIAFBCGpBACkAl4LBgAA3AAAgAUEQakEAKQCfgsGAADcAACABQRhqQQApAKeCwYAANwAAIAFBHmpBACkArYLBgAA3AAALtgUBB38CQCAAKAIEIgFFDQAgACgCACECAkACQCAAKAIIIgNFDQBBASEAA0ACQAJAIABBAXENACAFIQQgASEADAELQQAhBAJAIAJFDQAgAkF/aiEGAkAgAkEHcSIARQ0AA0AgAkF/aiECIAEoAowBIQEgAEF/aiIADQALCyAGQQdJDQADQCABKAKMASgCjAEoAowBKAKMASgCjAEoAowBKAKMASgCjAEhASACQXhqIgINAAsLIAEhAEEAIQILIANBf2ohAwNAAkAgBCAALwGKAU8NACAEQQFqIQUCQAJAIAINACAAIQEMAQsgACAFQQJ0akGMAWooAgAhAUEAIQUgAkF/aiIGRQ0AIAJBfmohBwJAIAZBB3EiAkUNAANAIAZBf2ohBiABKAKMASEBIAJBf2oiAg0ACwsCQCAHQQdJDQADQCABKAKMASgCjAEoAowBKAKMASgCjAEoAowBKAKMASgCjAEhASAGQXhqIgYNAAsLIABFDQYLAkAgACAEQQxsaiIAQQhqKAIAIgJFDQAgAEEEaigCACACQQEQt4WAgAALQQAhAkEAIQAgAw0CDAQLAkAgACgCACIBRQ0AIAJBAWohBiAAQYgBai8BACEECwJAQbwBQYwBIAIbIgJFDQAgACACQQQQt4WAgAALIAEhACAGIQIgAQ0ACwtB3IjAgABBK0HoicCAABC7kICAAAALIAJFDQAgAkF/aiEEAkAgAkEHcSIARQ0AA0AgAkF/aiECIAEoAowBIQEgAEF/aiIADQALCyAEQQdJDQADQCABKAKMASgCjAEoAowBKAKMASgCjAEoAowBKAKMASgCjAEhASACQXhqIgINAAsLQQAhAANAIAEoAgAhAgJAQbwBQYwBIAAbIgRFDQAgASAEQQQQt4WAgAALIABBf2ohACACIQEgAg0ACwsLJAEBfwJAQQhBBBC2hYCAACIARQ0AIAAPC0EIQQQQqJCAgAAAC8ICAQF/I4CAgIAAQfAAayICJICAgIAAAkACQCABKAIAQQRHDQAgAEHlADoAACAAIAEpAgQ3AgQgAEEMaiABQQxqKAIANgIADAELIAJBGGpBIGogAUEgaikCADcDACACQRhqQRhqIAFBGGopAgA3AwAgAkEYakEQaiABQRBqKQIANwMAIAJBGGpBCGogAUEIaikCADcDACACIAEpAgA3AxggAkGNgYCAADYCVCACIAJBGGo2AlAgAkEBNgJsIAJCATcCXCACQdSDwYAANgJYIAIgAkHQAGo2AmggAkHAAGogAkHYAGoQrZCAgAAgAkEUaiACQcAAakEIaigCADYAACACIAIpA0A3AAwgAkEYahCphICAACAAQeQAOgAAIAAgAikACTcAASAAQQhqIAJBEGopAAA3AAALIAJB8ABqJICAgIAAC4sBAgJ/BX4gAS0AOCECIAEoAiAhAyAAQTlqIAFBOWoQw46AgAAgAUEQaikDACEEIAEpAxghBSABKQMAIQYgASkDCCEHIAEpAiQhCCAAQSxqIAFBLGoQgIOAgAAgACADNgIgIAAgAjoAOCAAIAg3AiQgACAENwMQIAAgBzcDCCAAIAY3AwAgACAFNwMYC6MDAQF/I4CAgIAAQcAAayICJICAgIAAAkACQAJAAkACQCAAKAIADgQAAQIDAAsgAiAAQQRqNgIMIAJBPGpBATYCACACQgE3AiwgAkHYi8GAADYCKCACQbCAgIAANgIUIAIgAkEQajYCOCACIAJBDGo2AhAgASACQShqEPKQgIAAIQAMAwsgAiAAQQRqNgIEIAIgAEEQajYCCCACIABBHGo2AgwgAkEQakEUakEDNgIAIAJBKGpBFGpBr4CAgAA2AgAgAkE0akGvgICAADYCACACQgM3AhQgAkG0i8GAADYCECACQa6AgIAANgIsIAIgAkEoajYCICACIAJBDGo2AjggAiACQQhqNgIwIAIgAkEEajYCKCABIAJBEGoQ8pCAgAAhAAwCCyACQTxqQQA2AgAgAkHs+sCAADYCOCACQgE3AiwgAkGEi8GAADYCKCABIAJBKGoQ8pCAgAAhAAwBCyACQTxqQQA2AgAgAkHs+sCAADYCOCACQgE3AiwgAkHYisGAADYCKCABIAJBKGoQ8pCAgAAhAAsgAkHAAGokgICAgAAgAAuEAgECfwJAAkACQCAAKAIADgIAAQILAkACQAJAAkAgACgCBCIBLQAAIgJBfGpBAyACQQNLGw4EAwMBAgALIAFBCGooAgAiAkUNAiABKAIEIAJBARC3hYCAAAwCCyABQQhqKAIAIgJFDQEgASgCBCACQQEQt4WAgAAMAQsgARC6hICAAAsgACgCBEE0QQQQt4WAgAAPCwJAIAAoAgQiAkUNACAAQQhqKAIAIgFFDQAgAiABQQEQt4WAgAALAkAgACgCECICRQ0AIABBFGooAgAiAUUNACACIAFBARC3hYCAAAsgACgCHCICRQ0AIABBIGooAgAiAEUNACACIABBARC3hYCAAAsLkAgGB38BfgR/An4HfwF+I4CAgIAAQfAAayIDJICAgIAAIANCADcCDAJAAkACQAJAIAEgAkYNACADQcAAakEgaiEEIANBwABqQRBqIQUgA0HMAGohBiABQShqIQcgA0EYakEQaiEIIANBGGpBCGohCUIAIQoDQCAHIQsgASgCCCEMIAEoAgQhDSABKAIAIQ4gCCABQRxqKAIANgIAIAkgAUEUaikCADcDACADIAEpAgw3AxgCQCAB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AiADQQEQt4WAgAALAkAgAUEQaigCACICRQ0AIAEoAgwgAkEEdEEEELeFgIAACyAAKAIEQRhBBBC3hYCAAA8LIABBCGohAQJAIAAoAgQNACABEOGNgIAADwsCQCABKAIARQ0AIAEQvISAgAALIABBDGooAgAiAUUNASAAQRBqKAIAIgBFDQEgASAAQQEQt4WAgAAPCyAAQQRqEOGNgIAACwvXCgIDfwF+I4CAgIAAQcAAayICJICAgIAAIAJBADoAFyACQShqIAEgAkEXakEBENKOgIAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACKAIoDQAgAi0AF0F/ag4FAQIDBAYFCyACQQpqIAJBKGpBDGopAgA3AQAgAiACKQIsNwECQRBBBBC2hYCAACIBRQ0HIAEgAkECaiIDKQEANwEAIAFBCGogA0EIaikBADcBACAAQRBqQTw2AgAgAEEMakHUh8GAADYCACAAQQhqQQA2AgAgACABNgIEIABBBTYCAAwGCyACQShqIAEQr4SAgAACQCACKAIoDQAgACACKQIsNwIEIABBDGogAkEoakEMaikCADcCACAAQQA2AgAMBgtBEEEEELaFgIAAIgFFDQcgASACKQIsNwIAIAAgATYCBCAAQQU2AgAgAEEQakEyNgIAIABBDGpBkIXBgAA2AgAgAEEIakEANgIAIAFBCGogAkEoakEMaikCADcCAAwFCyACQQA2AhggAkEoaiABIAJBGGpBBBDSjoCAAAJAAkAgAigCKA0AIAIoAhghAyACQShqIAEQr4SAgAAgAigCKA0BIAAgAikCLDcCCCAAQRBqIAJBNGopAgA3AgAgACADNgIEIABBATYCAAwGCyACQQhqIgMgAkEoakEQaigCADYCACACIAJBKGpBCGopAwA3AwAgAigCLCEEQRBBBBC2hYCAACIBRQ0IIAEgBDYCACABIAIpAwA3AgQgACABNgIEIABBBTYCACAAQRBqQS82AgAgAEEMakHChcGAADYCACAAQQhqQQA2AgAgAUEMaiADKAIANgIADAULIAJBCGogAkE0aikCADcDACACIAIpAiw3AwAgAEEEaiACQfGFwYAAQS8Q/IGAgAAgAEEFNgIADAQLIAJCADcDACACQShqIAEgAkEIENKOgIAAAkAgAigCKA0AIAAgAikDADcDCCAAQQI2AgAMBAsgAkEoakEQaigCACEDIAJBKGpBCGopAwAhBSACKAIsIQRBEEEEELaFgIAAIgFFDQcgASADNgIMIAEgBTcCBCABIAQ2AgAgACABNgIEIABBBTYCACAAQRBqQS02AgAgAEEMakGghsGAADYCACAAQQhqQQA2AgAMAwsgAkEANgIYIAJBKGogASACQRhqQQQQ0o6AgAACQCACKAIoDQAgACACKAIYNgIEIABBAzYCAAwDCyACQQhqIgMgAkEoakEQaigCADYCACACIAJBKGpBCGopAwA3AwAgAigCLCEEQRBBBBC2hYCAACIBRQ0HIAEgBDYCACABIAIpAwA3AgQgACABNgIEIABBBTYCACAAQRBqQSg2AgAgAEEMakHNhsGAADYCACAAQQhqQQA2AgAgAUEMaiADKAIANgIADAILIABBBGpBnofBgABBNhDbjoCAACAAQQU2AgAMAQsgAkEANgIYIAJBKGogASACQRhqQQQQ0o6AgAACQCACKAIoDQAgACACKAIYNgIEIABBBDYCAAwBCyACQQhqIgMgAkEoakEQaigCADYCACACIAJBKGpBCGopAwA3AwAgAigCLCEEQRBBBBC2hYCAACIBRQ0GIAEgBDYCACABIAIpAwA3AgQgACABNgIEIABBBTYCACAAQRBqQSk2AgAgAEEMakH1hsGAADYCACAAQQhqQQA2AgAgAUEMaiADKAIANgIACyACQcAAaiSAgICAAA8LQRBBBBCokICAAAALQRBBBBCokICAAAALQRBBBBCokICAAAALQRBBBBCokICAAAALQRBBBBCokICAAAALQRBBBBCokICAAAALgAQBBX8jgICAgABBMGsiAiSAgICAACACQRhqIAEQxIGAgAACQAJAAkACQCACKAIYRQ0AIAJBDGogAkEYakEMaikCADcCACACIAIpAhw3AgQgAkEBNgIADAELIAIgASACKAIcEPKCgIAAIAIoAgANACACQQxqKAIAIQMgAkEIaiIEKAIAIQUgAigCBCEGIAJBADYCFCACQRhqIAEgAkEUakEEENKOgIAAAkAgAigCGA0AIABBEGogAigCFDYCACAAQQxqIAM2AgAgAEEIaiAFNgIAIAAgBjYCBCAAQQA2AgAMAgsgBCACQRhqQRBqKAIANgIAIAIgAkEYakEIaikDADcDACACKAIcIQQCQEEQQQQQtoWAgAAiAUUNACABIAQ2AgAgASACKQMANwIEIAAgATYCBCAAQQE2AgAgAEEQakEpNgIAIABBDGpBxIjBgAA2AgAgAEEIakEANgIAIAFBDGogAkEIaigCADYCACAFRQ0CIAYgBUEobEEIELeFgIAADAILQRBBBBCokICAAAALQRBBBBC2hYCAACIBRQ0BIAEgAikCBDcCACAAIAE2AgQgAEEBNgIAIABBEGpBNDYCACAAQQxqQZCIwYAANgIAIABBCGpBADYCACABQQhqIAJBDGopAgA3AgALIAJBMGokgICAgAAPC0EQQQQQqJCAgAAACxwAIAAoAgAiACgCACAAQQhqKAIAIAEQgpGAgAALDwAgACgCACABELaKgIAACw8AIAAoAgAgARC0ioCAAAsPACAAKAIAIAEQtYqAgAALDwAgACgCACABELSKgIAACw8AIAAoAgAgARCukICAAAscACAAKAIAIgAoAgAgAEEIaigCACABEIWRgIAACw8AIAAoAgAgARC0ioCAAAsPACAAKAIAIAEQ44yAgAALcQEBfyOAgICAAEEgayICJICAgIAAIAIgADYCBCACQQhqQRBqIAFBEGopAgA3AwAgAkEIakEIaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQfCIwYAAIAJBCGoQwpCAgAAhASACQSBqJICAgIAAIAEL9AEBAn8CQAJAAkACQCAALQAADgMDAQIACwJAAkACQAJAIAAoAgQiAS0AACICQXxqQQMgAkEDSxsOBAMDAQIACyABQQhqKAIAIgJFDQIgASgCBCACQQEQt4WAgAAMAgsgAUEIaigCACICRQ0BIAEoAgQgAkEBELeFgIAADAELIAEQuoSAgAALIAAoAgRBNEEEELeFgIAADAILAkAgACgCBEUNACAAQQRqELyEgIAACyAAQQhqKAIAIgJFDQEgAEEMaigCACIARQ0BIAIgAEEBELeFgIAADwsgAEEIaigCACICRQ0AIAAoAgQgAkEBELeFgIAADwsLAgALUQECfwJAIAAoAgAiASgCAEUNACABELyEgIAACwJAIAEoAgQiAkUNACABQQhqKAIAIgFFDQAgAiABQQEQt4WAgAALIAAoAgBBEEEEELeFgIAACyYBAX8CQCAAQTBqKAIAIgFFDQAgACgCLCABQShsQQgQt4WAgAALC60D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ASgCAA0AIAEoAgQhAyABQQhqKAIAIgENAUEBIQQMAgsgAUEIaigCACEDIAEoAgQhASACQRhqIgRCADcDACACQRBqIgVCADcDACACQQhqIgZCADcDACACQgA3AwACQCADQSBLDQAgAiABIAMQvJGAgAAhASAAIAM2AiQgAEEBOgAAIABBGWogBCkDADcAACAAQRFqIAUpAwA3AAAgAEEJaiAGKQMANwAAIAAgASkDADcAAQwHCyADQX9KIgRFDQIgAyAEELaFgIAAIgVFDQMgBSABIAMQvJGAgAAhASAAQQxqIAM2AgAgAEEIaiADNgIAIAAgATYCBCAAQQI6AAAMBgsgAUEgRg0EIAFBf0oiBUUNASABIAUQtoWAgAAiBEUNAwsgBCADIAEQvJGAgAAhAyAAQQxqIAE2AgAgAEEIaiABNgIAIAAgAzYCBCAAQQI6AAAMBAsQqZCAgAAACyADIAQQqJCAgAAACyABIAUQqJCAgAAACyAAQQA6AAAgACADKQAANwABIABBGWogA0EYaikAADcAACAAQRFqIANBEGopAAA3AAAgAEEJaiADQQhqKQAANwAACyACQSBqJICAgIAAC6cCAQN/I4CAgIAAQcAAayIEJICAgIAAAkACQAJAAkACQCACDQBBASEFDAELIAJBf0oiBkUNASACIAYQtoWAgAAiBUUNAgsgBSABIAIQvJGAgAAhASAEQQA2AgggBEIBNwMAIARBEGogBEHMm8GAABDskICAACADIARBEGoQ9IaAgAANAiAAQQxqIAI2AgAgAEEIaiACNgIAIAAgATYCBCAAIAQpAwA3AhAgAEEJNgIAIABBGGogBEEIaigCADYCAAJAIAMoAgAiAEUNACADQQRqKAIAIgJFDQAgACACQQEQt4WAgAALIARBwABqJICAgIAADwsQqZCAgAAACyACIAYQqJCAgAAAC0Hkm8GAAEE3IARBOGpBnJzBgABB+JzBgAAQ2pCAgAAAC6oCAQN/I4CAgIAAQcAAayIEJICAgIAAAkACQAJAAkACQCACDQBBASEFDAELIAJBf0oiBkUNASACIAYQtoWAgAAiBUUNAgsgBSABIAIQvJGAgAAhASAEQQA2AgggBEIBNwMAIARBEGogBEHMm8GAABDskICAACADIARBEGoQkIeAgAANAiAAQQxqIAI2AgAgAEEIaiACNgIA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AEEMaiADQRBqQQxqKAIANgIADAcLIANBEGogA0EIakH1jMGAAEEFIAFBHGoQxICAgAACQCADKAIQRQ0AIAAgAykCFDcCBCAAQQE2AgAgAEEMaiADQRBqQQxqKAIANgIADAcLIANBEGogA0EIakH6jMGAAEEFIAFBKGoQw4CAgAAgAygCEEUNAyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAwGCyADQRBqIAJBnozBgABBB0EAQf+MwYAAQQdBAxD+hoCAAAJAIAMoAhBFDQAgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMBgsgAyADKAIUNgIIIAMgA0EYai0AADoADCADQRBqIANBCGpBsIzBgABBDSABQQRqEMOAgIAAAkAgAygCEEUNACAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAwGCyADQRBqIANBCGpB4IzBgABBAyABQRBqEMGAgIAAAkAgAygCEEUNACAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAwGCyADQRBqIANBCGpB9YzBgABBBSABQRxqEMSAgIAAIAMoAhBFDQEgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMBQsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMBAsgACADKAIIIAMtAAwQlIeAgAAMAwsgACADKAIIIAMtAAwQlIeAgAAMAgsgACADKAIIIAMtAAwQlIeAgAAMAQsgACADKAIIIAMtAAwQlIeAgAALIANBIGokgICAgAALqgIBAX8jgICAgABBIGsiAySAgICAACADQRBqIAJBjY3BgABBBUECEP2GgIAAAkACQAJAIAMoAhANACADIAMoAhQ2AgggAyADQRhqLQAAOgAMIANBEGogA0EIakGSjcGAAEEEIAEQw4CAgAAgAygCEA0BIANBEGogA0EIakGWjcGAAEEKIAFBDGoQx4CAgAACQCADKAIQDQAgACADKAIIIAMtAAwQk4eAgAAMAwsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMAgsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMAQsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgALIANBIGokgICAgAALqgIBAX8jgICAgABBIGsiAySAgICAACADQRBqIAJBoI3BgABBCUECEP2GgIAAAkACQAJAIAMoAhANACADIAMoAhQ2AgggAyADQRhqLQAAOgAMIANBEGogA0EIakGpjcGAAEEDIAEQw4CAgAAgAygCEA0BIANBEGogA0EIakGsjcGAAEEFIAFBDGoQw4CAgAACQCADKAIQDQAgACADKAIIIAMtAAwQk4eAgAAMAwsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMAgsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMAQsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgALIANBIGokgICAgAALqgIEBX8BfgJ/AX4gASgCDCECIAEoAhBFIQMgAUEcaiEEAkACQANAIAFBADYCEAJAAkAgA0EBcUUNACABKAIIIgUgAkYNAyABIAVBDGoiAzYCCCAFKAIAIgZFDQMgBSkCBCIHQiCIpyEFIAenIQgMAQsgASgCFCIGRQ0CIAQoAgAhBSABKAIIIQMgASgCGCEICwJAAkAgAyACRg0AIAEgA0EMajYCCCADKAIAIgkNAQsgASAKNwIYIAFCATcCEAwDCyABIAMpAgQiCjcCGCABIAk2AhQgAUEBNgIQIAUgCkIgiKdHDQIgBiAJIAUQupGAgAANAkEAIQMgCEUNACAGIAhBARC3hYCAAAwACwsgAEEANgIADwsgACAFNgIIIAAgCDYCBCAAIAY2AgALzAcBDX8jgICAgABBoAJrIgIkgICAgAAgASgCECEDIAEoAgwhBCABQQA2AhAgAUE8aiEFIAFBOGohBiABQRRqIQcgAkEoaiEIAkACQAJAAkACQCADDQAgASgCCCIDIARGDQMgASADQZABajYCCCACQZABakEIaiADQQhqKQIANwMAIAJBkAFqQRBqIANBEGopAgA3AwAgAkGQAWpBGGogA0EYaikCADcDACACQZABakEgaiADQSBqKAIANgIAIAIgAykCADcDkAEgA0EoaiEJIANBJGohCgwBC0EAIQMMAQtBASEDCwNAAkACQCADDgIAAQELIAJBkAFqQSBqIAdBIGooAgA2AgAgAkGQAWpBGGogB0EYaikCADcDACACQZABakEQaiAHQRBqKQIANwMAIAJBkAFqQQhqIAdBCGopAgA3AwAgAiAHKQIANwOQASAFIQkgBiEKQQEhAwwBCyAKKAIAIgtFDQEgAkEgaiACQZABakEgaigCADYCACACQRhqIAJBkAFqQRhqKQMANwMAIAJBEGogAkGQAWpBEGopAwA3AwAgAkEIaiACQZABakEIaikDADcDACACIAIpA5ABNwMAIAggCUHoABC8kYCAABogAiALNgIkQQAhDAJAIAEoAggiAyAERg0AIAEgA0GQAWo2AgggAkH4AWpBCGogA0EIaikCADcDACACQfgBakEQaiADQRBqKQIANwMAIAJB+AFqQRhqIANBGGopAgA3AwAgAkH4AWpBIGogA0EgaigCADYCACACIAMpAgA3A/gBIAMoAiQhDCACQZABaiADQShqQegAELyRgIAAGgsgByACKQP4ATcCACAHQSBqIAJB+AFqQSBqKAIANgIAIAdBGGogAkH4AWpBGGopAwA3AgAgB0EQaiACQfgBakEQaikDADcCACAHQQhqIAJB+AFqQQhqKQMANwIAIAUgAkGQAWpB6AAQvJGAgAAaIAEgDDYCOCABQQE2AhACQCAMDQAgACACQZABELyRgIAAGgwDCwJAIAIgB0EgELqRgIAADQACQCACKAIsIgNFDQAgA0EUbCENIAshAwNAAkACQAJAAkAgAy0AAA4EAAAAAQMLIANBCGohDAwBCyADQQRqIQwLIAxBBGooAgAiDkUNACAMKAIAIA5BARC3hYCAAAsgA0EUaiEDIA1BbGoiDQ0ACwsCQCACKAIoIgNFDQAgCyADQRRsQQQQt4WAgAALIAFBADYCEEEAIQMMAQsLIAAgAkGQARC8kYCAABoMAQsgAEEANgIkCyACQaACaiSAgICAAAv+DAECfyOAgICAAEGAAWsiAiSAgICAAAJAAkACQCABKAIARQ0AIAAgASkCADcCACAAQShqIAFBKGopAgA3AgAgAEEgaiABQSBqKQIANwIAIABBGGogAUEYaikCADcCACAAQRBqIAFBEGopAgA3AgAgAEEIaiABQQhqKQIANwIADAELIAJBIGogAUEoaikDADcDACACQRhqIAFBIGopAwA3AwAgAkEQaiABQRhqKQMANwMAIAJB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aigCADYCAAwECyAAQQA2AgAgBCgCBCIDRQ0DDAILQSBBARCokICAAAALIABBADYCAEEBIQMLIAUgA0EFdEEBELeFgIAACyAEQdAAaiSAgICAAAuRBgMGfwJ+BX8jgICAgABBsAJrIgMkgICAgAAgA0HgAGogASACEKaBgIAAAkACQAJAIAMoAoQBDQAgA0HAAWogAygCYBDmjICAAAwBCyADQcABakEgaiICIANB4ABqQSBqKQMANwMAIANBwAFqQTBqIgEgA0HgAGpBMGopAwA3AwAgA0HAAWpBKGogA0HgAGpBKGopAwA3AwAgA0HAAWpBGGoiBCADQeAAakEYaikDADcDACADQcABakEQaiIFIANB4ABqQRBqKQMANwMAIANBwAFqQQhqIgYgA0HgAGpBCGopAwA3AwAgAyADKQNgNwPAASADKALkASIHRQ0AIANBOGpBIGogAigCACIINgIAIANBOGpBGGogBCkDACIJNwMAIANBOGpBEGogBSkDACIKNwMAIANBCGoiCyABKQMANwMAIANBEGpBCGoiDCAGKQMANwMAIANBEGpBEGoiDSAKNwMAIANBEGpBGGoiDiAJNwMAIANBEGpBIGoiDyAINgIAIAMgAykD6AE3AwAgAyADKQPAATcDECACIA8oAgA2AgAgBCAOKQMANwMAIAUgDSkDADcDACAGIAwpAwA3AwAgAyAHNgLkASADIAMpAxA3A8ABIAEgCykDADcDACADIAMpAwA3A+gBIANB4ABqIANBwAFqEJaHgIAAAkAgAykDYEIAUg0AIAAgA0HoAGpB2AAQvJGAgAAaDAILIANBwAFqIANB6ABqQdgAELyRgIAAGiADQYOAgIAANgKsAiADIANBwAFqNgKoAiADQQE2AkwgA0IBNwI8IANB1IPBgAA2AjggAyADQagCajYCSCADQZgCaiADQThqEK2QgIAAIABBFGogA0GYAmoQ5IyAgAAgA0HAAWoQrYSAgAAgAEEANgIQDAELIANBOGpBEGogA0HAAWpBEGooAgAiAjYCACADQThqQQhqIANBwAFqQQhqKQMAIgk3AwAgAyADKQPAASIKNwM4IABBJGogAjYCACAAQRxqIAk3AgAgACAKNwIUIABBADYCEAsgA0GwAmokgICAgAALjwQEAX8BfgJ/AX4jgICAgABBkAJrIgMkgICAgAAgA0EYaiABIAIQpYGAgAACQAJAAkAgAygCGA0AIANBiAFqQQRyIAMoAhwQ5oyAgAAMAQsgA0GIAWpBEGogA0EYakEQaikDADcDACADQYgBakEIaiADQRhqQQhqKQMANwMAIAMgAykDGCIENwOIASAEpyICRQ0AIANBCGogA0GUAWoiASkCACIENwMAIANBEGogA0GcAWoiBSgCACIGNgIAIAMgAykCjAEiBzcDACABIAQ3AgAgBSAGNgIAIAMgAjYCiAEgAyAHNwKMASADQRhqIANBiAFqEJeHgIAAAkAgAygCGEUNACAAIANBGGpB8AAQvJGAgAAaDAILIANBiAFqIANBIGpB2AAQvJGAgAAaIANBg4CAgAA2AvQBIAMgA0GIAWo2AvABIANBATYCjAIgA0IBNwL8ASADQdSDwYAANgL4ASADIANB8AFqNgKIAiADQeABaiADQfgBahCtkICAACAAQQRqIANB4AFqEOSMgIAAIANBiAFqEK2EgIAAIABBADYCAAwBCyADQYgCaiADQYgBakEUaigCACICNgIAIANBgAJqIANBiAFqQQxqKQIAIgQ3AwAgAyADKQKMASIHNwP4ASAAQRRqIAI2AgAgAEEMaiAENwIAIAAgBzcCBCAAQQA2AgALIANBkAJqJICAgIAAC4Q5AxR/An4SfyOAgICAAEGwBWsiAySAgICAACADQRhqQTBqIAJBMGopAgA3AwAgA0EYakEoaiACQShqKQIANwMAIANBGGpBIGogAkEgaikCADcDACADQRhqQRhqIAJBGGopAgA3AwAgA0EYakEQaiACQRBqKQIANwMAIANBGGpBCGogAkEIaikCADcDACADIAIpAgA3AxggAkE8aigCACEEIAJBwABqKAIAIQUgAigCOCEGIAIoAkQhByADQdAAaiADKAIkIgggCCADQRhqQRRqKAIAIglB8ABsaiIKEJSEgIAAAkACQAJAAkACQAJAAkACQAJAAkAgCUUNACAIQfAAaiELIAghDAJAIAlBAUYNACAIKAIAIQ0CQAJAIAlB8ABsQaB+aiIOQfAAbkEBakEDcSICDQAgCCEMIAshAgwBCyACQfAAbCEPIAghDCALIQIDQCANIAIoAgAiECANIBBLIhAbIQ0gDCACIBAbIQwgAkHwAGohAiAPQZB/aiIPDQALCyAOQdACSQ0AA0AgDSACKAIAIg8gDSAPSyIPGyINIAJB8ABqIhAoAgAiDiANIA5LIg4bIg0gAkHgAWoiESgCACISIA0gEksiEhsiDSACQdACaiITKAIAIhQgDSAUSyIUGyENIAwgAiAPGyAQIA4bIBEgEhsgEyAUGyEMIAJBwANqIgIgCkcNAAsLIANB4ANqIAwQx4GAgAAgA0HgA2ogA0EwaiICQSAQupGAgAANAyADIAMoAiA2AuQBIAMgAygCGCIVNgLgASADQeADaiADQeABahDkhICAACADKALsAyINRQ0EIANB4ABqQQhqIANB4ANqQQhqKAIANgIAIANB8AJqQQhqIg8gA0HgA2pBGGopAwA3AwAgA0HgAGpBKGogA0HgA2pBKGopAwA3AwAgA0HgAGpBMGogA0HgA2pBMGopAwA3AwAgA0HgAGpBOGogA0HgA2pBOGopAwA3AwAgA0HgAGpBwABqIANB4ANqQcAAaikDADcDACADIAMpA+ADNwNgIAMgAykD8AM3A/ACIAMgAykDgAQ3A4ABIANB4ABqQRhqIhAgDykDADcDACADIA02AmwgAyADKQPwAjcDcCAQIAJBIBC6kYCAAA0CIAgoAgAhAgJAAkAgCUEBRw0AIAghDwwBCwJAAkAgCUHwAGxBoH5qIg5B8ABuQQFqQQNxIg0NACAIIQ8MAQsgDUHwAGwhECACIQ0gCCEPA0AgCyAPIA0gCygCACICSxshDyALQfAAaiELIA0gAiANIAJJGyICIQ0gEEGQf2oiEA0ACwsCQCAOQdACSQ0AA0AgC0HQAmoiECALQeABaiIOIAtB8ABqIhEgCyAPIAIgCygCACINSxsgAiANIAIgDUkbIgIgESgCACINSxsgAiANIAIgDUkbIgIgDigCACINSxsgAiANIAIgDUkbIgIgECgCACINSxshDyACIA0gAiANSRshAiALQcADaiILIApHDQALCyAPKAIAIQILIAFBIGohFiACIAEoAhRPDQYgA0HwAmogDxDHgYCAACADQeADakEYaiAWQRhqKQAANwMAIANB4ANqQRBqIBZBEGopAAA3AwAgA0HgA2pBCGogFkEIaikAADcDACADIBYpAAA3A+ADIANB4AFqIANB0ABqIANB8AJqIANB4ANqEOCEgIAAIAMoAuABIgJFDQEgAygC5AEiC0UNBiACIAtBBXRBARC3hYCAAAwGCyADQeADakEUakEANgIAIANB7I7BgAA2AvADIANCATcC5AMgA0HEksGAADYC4AMgA0HgA2oQ5YSAgAAhAgwECyADQfQDakEANgIAIANB7I7BgAA2AvADIANCATcC5AMgA0HokcGAADYC4AMgAEEQaiADQeADahDlhICAADYCACAAQgA3AwgCQCADKAJwIgJFDQAgAygCbCACQYQBbEEEELeFgIAACwJAIANBoAFqKAIAIgJFDQAgAygCmAEiECACQfAAbGohDgNAAkAgEEEMaigCACILRQ0AIBAoAgQhAiALQRRsIQ0DQAJAAkACQAJAIAItAAAOBAAAAAEDCyACQQhqIQsMAQsgAkEEaiELCyALQQRqKAIAIg9FDQAgCygCACAPQQEQt4WAgAALIAJBFGohAiANQWxqIg0NAAsLIBBB8ABqIQICQCAQQQhqKAIAIgtFDQAgECgCBCALQRRsQQQQt4WAgAALIAIhECACIA5HDQALCwJAIANBnAFqKAIAIgJFDQAgAygCmAEgAkHwAGxBBBC3hYCAAAsgA0HQAGoQl4SAgAAMBQsgA0H0A2pBADYCACADQeyOwYAANgLwAyADQgE3AuQDIANBrI/BgAA2AuADIABBEGogA0HgA2oQ5YSAgAA2AgAgAEIANwMIIANB4ABqEOaEgIAAIANB0ABqEJeEgIAADAQLIANB9ANqQQA2AgAgA0HsjsGAADYC8AMgA0IBNwLkAyADQeSOwYAANgLgAyADQeADahDlhICAACECDAELIANB+AJqIANB4ANqQRhqKQMAIhc3AwAgAyADKQPwAyIYNwPwAiAAQRhqIBc3AgAgAEEQaiAYNwIAIABCgICAgBA3AwggA0HQAGoQl4SAgAAMAgsgAEIANwMIIABBEGogAjYCACADQdAAahCXhICAAAwBCyADQfACakEYaiAWQRhqKQAANwMAIANB8AJqQRBqIBZBEGopAAA3AwAgA0HwAmpBCGogFkEIaikAADcDACADIBYpAAA3A/ACIANB4ANqIAwQx4GAgAAgA0HgAWogA0HQAGogA0HwAmogA0HgA2oQ4ISAgAACQCADKALgASIORQ0AIAMoAuQBIRkgDiADKALoASIaELSCgIAAIANB4ANqIANB4ABqIAEpAwAgAUEIaiIbEOeEgIAAAkACQCADKALgAyIcQQJHDQAgA0IENwOoASADQQA2ArABIAMgBUEAIAQbNgLYASADIAQ2AtABIAMgBjYCzAEgAyAERUEBdCICNgLIASADIAQ2AsABIAMgBjYCvAEgAyACNgK4ASADQeABaiADQbgBahCShICAAAJAIAMoAoACIh1FDQAgA0HwAmpBGGohHiADQfACakEIaiEfIANB8AJqQQRyISAgA0HgA2pBGGohISADQeADakEIaiEiIANBwANqISMDQCADQagCakEYaiADQeABakEYaikDADcDACADQagCakEQaiADQeABakEQaikDADcDACADQagCakEIaiADQeABakEIaikDADcDACADIAMpA+ABNwOoAiADKAKgAiESIAMoApwCIRMgAygCmAIhJCADKAKQAiEUIAMoAowCISUgAygCiAIhJiADKAKEAiEnAkACQAJAIBpFDQAgAygClAIhKEEAIQIgGiENIBohCwNAAkACQEF/IA4gDUEBdiACaiIPQQV0aiADQagCakEgELqRgIAAIg1BAEcgDUEASBsiDUEBRw0AIA8hCwwBCyANQf8BcUH/AUcNAyAPQQFqIQILIAsgAmshDSALIAJLDQALCwJAICZFDQAgJkEMbCELIB0hAgNAAkAgAkEEaigCACINRQ0AIAIoAgAgDUEBELeFgIAACyACQQxqIQIgC0F0aiILDQALCwJAICdFDQAgHSAnQQxsQQQQt4WAgAALAkAgFEUNACAlIBRBARC3hYCAAAsCQCASRQ0AIBJBDGwhCyAkIQIDQAJAIAJBBGooAgAiDUUNACACKAIAIA1BARC3hYCAAAsgAkEMaiECIAtBdGoiCw0ACwsgE0UNASAkIBNBDGxBBBC3hYCAAAwBCwJAAkAgAygCVCIRRQ0AIAMoAlAhKQNAIBFBRGohECARQdgJaiELIBEvAdYJIipBBXQhAkF/IQ8CQANAAkAgAg0AICohDwwCCyADQagCaiALQSAQupGAgAAhDSAPQQFqIQ8gEEHwAGohECACQWBqIQIgC0EgaiELQX8gDUEARyANQQBIGyINQQFGDQALIA1B/wFxRQ0DCyApRQ0BIClBf2ohKSARIA9BAnRqQbgMaigCACERDAALC0G0j8GAAEEvQaSQwYAAEMuQgIAAAAsgAyAmNgLoAyADICc2AuQDIAMgHTYC4AMgA0HIAmogA0HgA2oQ+YGAgAAgA0HYAmogASgCHBCNiICAACAiIANByAJqQQhqKAIANgIAIAMgAykDyAI3A+ADIANBEGogA0HYAmoQ7o2AgAAgAyADKQMQNwPoAiADQfACaiAQIANB4ANqIANB6AJqEIqBgIAAAkACQAJAAkACQCADKALwAkEERw0AIAMgAykD+AI3AowFIAMgAygC9AI2AogFIANBCGogA0HYAmoQ7o2AgAAgA0GYBWogA0GIBWogAygCCCADKAIMEKGEgIAAAkAgAygCmAVFDQAgAygCnAUiEEUNACADKAKkBSECIAMoAqAFIREgA0GIBWoQooSAgAAgAyACNgKcBSADIBA2ApgFIANB4ANqIANBmAVqEMqBgIAAAkACQAJAIAMoAuQDIgtFDQAgA0HgBGpBCGoiDSAiQQhqKQIANwMAIAMgIikCADcD4AQgAygC4AMhAiAeICFB2AAQvJGAgAAaIB9BCGogDSkDADcCACAfIAMpA+AENwIAIAMgCzYC9AIgAyACNgLwAgJAIAMoArABIgsgAygCrAFHDQAgA0GoAWogCxCxgICAACADKAKwASELCyADKAKoASALQQJ0aiACNgIAIAMgAygCsAFBAWo2ArABIANB0ARqQeSPwYAAEOmBgIAAQRRBBBC2hYCAACICRQ0CIAIgAykD0AQ3AgAgAiAoNgIQIAIgJTYCDCACQQhqIANB0ARqQQhqKAIANgIAIANCgYCAgBA3AowFIAMgAjYCiAUgA0HgBGogIyAkIBIgA0GIBWoQz4KAgAAgAy0A4ARBCUYNASADQeADakEgaiADQeAEakEgaigCADYCACADQeADakEYaiADQeAEakEYaikDADcDACADQeADakEQaiADQeAEakEQaikDADcDACADQeADakEIaiILIANB4ARqQQhqKQMANwMAIAMgAykD4AQ3A+ADIANBrAVqQQA2AgAgA0HsjsGAADYCqAUgA0IBNwKcBSADQeyTwYAANgKYBSADQZgFahDlhICAACECAkACQAJAAkAgAy0A4AMOCAAKAQoCAwoKCQsgCygCACILRQ0JIAMoAuQDIAtBARC3hYCAAAwJCyALKAIAIgtFDQggAygC5AMgC0EBELeFgIAADAgLIAsoAgAiC0UNByADKALkAyALQQEQt4WAgAAMBwsgCygCACILRQ0GIAMoAuQDIAtBARC3hYCAAAwGCyAD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BCECIAtBFGwhDQNAAkACQAJAAkAgAi0AAA4EAAAAAQMLIAJBCGohCwwBCyACQQRqIQsLIAtBBGooAgAiD0UNACALKAIAIA9BARC3hYCAAAsgAkEUaiECIA1BbGoiDQ0ACwsgEEHwAGohAgJAIBBBCGooAgAiC0UNACAQKAIEIAtBFGxBBBC3hYCAAAsgAiEQIAIgDkcNAAsLAkAgA0GcAWooAgAiAkUNACADKAKYASACQfAAbEEEELeFgIAACyADQdAAahCXhICAAAsCQAJAIARFDQAgA0H4A2ogBDYCACADQfQDaiAGNgIAIAMgBDYC6AMgAyAGNgLkA0EAIQIgA0EANgLgAwwBC0ECIQIgA0ECNgLgA0EAIQULIAMgBTYCgAQgAyACNgLwAyADQeADahCWhICAAAsCQCADKAIcIgJFDQAgAygCGCACQQEQt4WAgAALAkAgCUUNACAIIRADQAJAIBBBDGooAgAiC0UNACAQKAIEIQIgC0EUbCENA0ACQAJAAkACQCACLQAADgQAAAABAwsgAkEIaiELDAELIAJBBGohCwsgC0EEaigCACIPRQ0AIAsoAgAgD0EBELeFgIAACyACQRRqIQIgDUFsaiINDQALCyAQQfAAaiECAkAgEEEIaigCACILRQ0AIBAoAgQgC0EUbEEEELeFgIAACyACIRAgAiAKRw0ACwsCQCADQShqKAIAIgJFDQAgCCACQfAAbEEEELeFgIAACyABQQxqKAIAIgJFDQAgASgCCCACQShsQQgQt4WAgAALIANBsAVqJICAgIAAC5wGAwF/AX4DfyOAgICAAEHwAGsiAiSAgICAACACQgA3AwAgAkEoaiABIAJBCBDSjoCAAAJAAkACQAJAAkACQAJAAkACQCACKAIoDQAgAikDACEDIAJBKGogARCZg4CAACACKAIsIgRFDQEgAkEIaiACQTxqKQIANwMAIAJBEGogAkHEAGopAgA3AwAgAkEYaiACQcwAaikCADcDACACQSBqIAJB1ABqKAIANgIAIAIgAikCNDcDACACKAIwIQUgAigCKCEGIAJBKGogARDEgYCAACACKAIoRQ0CIAJB2ABqQQxqIAJBKGpBDGopAgA3AgAgAiACKQIsNwJcIAJBATYCWAwDCyACQShqQRBqKAIAIQUgAkEoakEIaikDACEDIAIoAiwhBEEQQQQQtoWAgAAiAUUNAyABIAU2AgwgASADNwIEIAEgBDYCACAAIAE2AhAgAEEANgIMIABBHGpBLjYCACAAQRhqQfSTwYAANgIAIABBFGpBADYCAAwHC0EQQQQQtoWAgAAiAUUNAyABIAIpAzA3AgAgACABNgIQIABBADYCDCAAQRxqQS82AgAgAEEYakGilMGAADYCACAAQRRqQQA2AgAgAUEIaiACQShqQRBqKQMANwIADAYLIAJB2ABqIAEgAigCLBDzgoCAACACKAJYRQ0EC0EQQQQQtoWAgAAiAUUNAiABIAIpAlw3AgAgACABNgIQIABBADYCDCAAQRxqQTk2AgAgAEEYakHRlMGAADYCACAAQRRqQQA2AgAgAUEIaiACQeQAaikCADcCACAFRQ0EIAQgBUGEAWxBBBC3hYCAAAwEC0EQQQQQqJCAgAAAC0EQQQQQqJCAgAAAC0EQQQQQqJCAgAAACyAAIAIpAlw3AjggAEHAAGogAkHkAGooAgA2AgAgACAFNgIQIAAgBDYCDCAAIAY2AgggACACKQMANwIUIABBHGogAkEIaikDADcCACAAQSRqIAJBEGopAwA3AgAgAEEsaiACQRhqKQMANwIAIABBNGogAkEgaigCADYCACAAIAM3AwALIAJB8ABqJICAgIAAC8gBAQR/I4CAgIAAQTBrIgEkgICAgAAgAEEUaigCACECIAAoAgAhAwJAAkACQAJAIAAoAgQiBA4CAAECCyACDQFB7I7BgABBABDAgoCAACEADAILIAINACADKAIAIAMoAgQQwIKAgAAhAAwBCyABQRhqQRBqIABBEGooAgA2AgAgASAENgIcIAEgAzYCGCABIAI2AiwgASAAKQIINwMgIAFBCGogAUEYahCtkICAACABQQhqEMSCgIAAIQALIAFBMGokgICAgAAgAAubAgEGfwJAIABBEGooAgAiAUUNACAAQQxqKAIAIAFBhAFsQQQQt4WAgAALAkAgAEHAAGooAgAiAUUNACAAKAI4IgIgAUHwAGxqIQMDQAJAIAJBDGooAgAiBEUNACACKAIEIQEgBEEUbCEFA0ACQAJAAkACQCABLQAADgQAAAABAwsgAUEIaiEEDAELIAFBBGohBAsgBEEEaigCACIGRQ0AIAQoAgAgBkEBELeFgIAACyABQRRqIQEgBUFsaiIFDQALCyACQfAA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RQ0AIAVBBXQhBSAKIQMDQCANIANBGGopAAA3AwAgCSADQRBqKQAANwMAIAcgA0EIaikAADcDACAEIAMpAAA3A8ABIANBIGohAyAEQdgAaiAEQcABahDEhICAABogBUFgaiIFDQALCyALRQ0AIAogC0EFdEEBELeFgIAACyAIQYQBaiIIIBFHDQALCyAEQcABaiABKAI4IgMgAyABQcAAaigCAEHwAGxqEPqBgIAAIARB2ABqIARBwAFqEM2EgIAARQ0CIABBAjYCACAEQcABahDQhICAACAEQdgAahDQhICAACAEQShqEJeEgIAADAsLIARB1AFqQQA2AgAgBEHsjsGAADYC0AEgBEIBNwLEASAEQeyWwYAANgLAASAEQcABahDlhICAACEDIAQoAqQBIgdFDQMgBSAHQQEQt4WAgAAMAwsgBEHUAWpBADYCACAEQeyOwYAANgLQASAEQgE3AsQBIARB1JrBgAA2AsABIARBwAFqEOWEgIAAIQMMAgsgBEH8AGpBADYCACAEQeyOwYAANgJ4IARCATcCbCAEQciZwYAANgJoIAAgBEHoAGoQ5YSAgAA2AgQgAEEANgIAIARBwAFqENCEgIAADAILIAAgAzYCBCAAQQA2AgAMCAsgACADNgIEIABBADYCAAsgBEHYAGoQ0ISAgAAMBAtBjJjBgABB8gBBmJrBgAAQy5CAgAAACyAEQfwAakEANgIAIARB7I7BgAA2AnggBEIBNwJsIARBoJvBgAA2AmggBEHoAGoQ5YSAgAAhAyAAQQA2AgALIAAgAzYCBAwBCyAEQfwAakEBNgIAIARCATcCbCAEQdCXwYAANgJoIARBmYGAgAA2AsQBIAQgBEHAAWo2AnggBCAEQThqNgLAASAAIARB6ABqEOWEgIAANgIEIABBADYCAAsgBEEoahCXhICAAAsgBEEcaigCACIDRQ0AIAQoAhggA0EwbEEIELeFgIAACyAEQeABaiSAgICAAAujAwEBfyOAgICAAEHAAGsiAiSAgICAAAJAAkACQAJAAkAgACgCAA4EAAECAwALIAIgAEEEajYCDCACQTxqQQE2AgAgAkIBNwIsIAJB6K7BgAA2AiggAkGwgICAADYCFCACIAJBEGo2AjggAiACQQxqNgIQIAEgAkEoahDykICAACEADAMLIAIgAEEEajYCBCACIABBEGo2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GCAEQQI2AjwgBEIDNwIsIARBhKPBgAA2AiggBCAEQRhqNgI4IARBCGogBEEoahCtkICAACAEQQhqEM+BgIAAIQAMAQsgBEEANgIgIARCATcDGCAEQShqIAIQgoWAgAACQAJAAkAgBCgCKA0AIAQpAzAiBSACKAIAQQRqNQIAVg0CIARBKGogAiAFpxCyg4CAACAEQRhqIARBKGoQ/YKAgAAMAQsgBCgCLCIADQILIARBKGpBCGoiAiAEQRhqQQhqKAIANgIAIAQgBCkDGDcDKAJAIAEoAggiACABKAIERw0AIAEgABCvgICAACABKAIIIQALIAEoAgAgAEEMbGoiACAEKQMoNwIAIABBCGogAigCADYCACABIAEoAghBAWo2AghBACEADAELQYCkwYAAQRAQ0IGAgAAhAAsgBEHAAGokgICAgAAgAAugAgIBfwF+I4CAgIAAQcAAayIEJICAgIAAIAQgADoAByAEQQI6AAYCQAJAIABB/wFxQQJGDQAgBEEkakGjgICAADYCACAEQaOAgIAANgIcIAQgBEEGajYCICAEIARBB2o2AhggBEECNgI8IARCAzcCLCAEQYSjwYAANgIoIAQgBEEYajYCOCAEQQhqIARBKGoQrZCAgAAgBEEIahDPgYCAACEADAELIARBKGogAhCChYCAAAJAIAQoAihFDQAgBCgCLCEADAELAkAgBCkDMCIFIAIoAgBBBGo1AgBWDQAgBEEoaiACIAWnELKDgIAAIAEgBEEoahD9goCAAEEAIQAMAQtBgKTBgABBEBDQgYCAACEACyAEQcAAaiSAgICAACAAC6UCAgF/AX4jgICAgABBwABrIgQkgICAgAAgBCAAOgAHIARBAjoABgJAAkAgAEH/AXFBAkYNACAEQSRqQaOAgIAANgIAIARBo4CAgAA2AhwgBCAEQQZqNgIgIAQgBEEHajYCGCAEQQI2AjwgBEIDNwIsIARBhKPBgAA2AiggBCAEQRhqNgI4IARBCGogBEEoahCtkICAACAEQQhqEM+BgIAAIQAMAQsgBEEoaiACEICFgIAAAkAgBCgCKEUNACAEKAIsIQAMAQsCQCAEKQMwIgUgAigCACIAKAIAQQRqNQIAVg0AIARBKGogACAFpxCyg4CAACABIARBKGoQ/YKAgABBACEADAELQYCkwYAAQRAQ0IGAgAAhAAsgBEHAAGokgICAgAAgAAupBAICfgN/IABBA3RBAnIiAK0hAwJAAkAgAEH/AEsNACACKAIIIQAMAQsgAigCCCEAIAMhBANAIASnQYB/ciEFAkACQCACKAIEIABGDQAgACEGDAELIAIgAEEBELqAgIAAIAIoAgghBgsgAiAGQQFqIgA2AgggAigCACAGaiAFOgAAIARC//8AViEGIARCB4giAyEEIAYNAAsLIAOnIQUCQCACKAIEIABHDQAgAiAAQQEQuoCAgAAgAigCCCEACyACIABBAWoiBjYCCCACKAIAIgcgAGogBToAACABEL6NgIAAIgCtIQQCQAJAIABBgAFPDQAgBCEDDAELA0AgBKdBgH9yIQUCQAJAIAIoAgQgBkYNACAGIQAMAQsgAiAGQQEQuoCAgAAgAigCACEHIAIoAgghAAsgAiAAQQFqIgY2AgggByAAaiAFOgAAIARC//8AViEAIARCB4giAyEEIAANAAsLIAOnIQUCQCACKAIEIgAgBkcNACACIAZBARC6gICAACACKAIEIQAgAigCCCEGCyACKAIAIAZqIAU6AAAgAiAGQQFqIgY2AgggASgCACEHAkACQAJAIAAgBmsiBSABQQhqKAIAIgBPDQAgAiAGIAAQuoCAgAAgAigCBCACKAIIIgZrIQUMAQsgAEUNAQsCQCAFIABPDQAgAiAGIAAQuoCAgAAgAigCCCEGCyACKAIAIAZqIAcgABC8kYCAABogAiAGIABqNgIICwsXACAAQZClwYAANgIEIAAgAUEgajYCAAsXACAAQcylwYAANgIEIAAgAUEgajYCAAsXACAAQYimwYAANgIEIAAgAUEgajYCAAsXACAAQcSmwYAANgIEIAAgAUEgajYCAAthAQJ/AkACQCAAKAIEIgFBA0sNACABQQJHDQELIABBEGoiARCEg4CAACAAQRRqKAIAIgJFDQAgASgCACACQQxsQQQQt4WAgAALIABBIGoQ6YSAgAAgAEHIAEEEELeFgIAAC3QBAn8CQAJAIAAoAgQiAUEDSw0AIAFBAkcNAQsgAEEQaiIBEISDgIAAIABBFGooAgAiAkUNACABKAIAIAJBDGxBBBC3hYCAAAsCQCAAQSRqKAIAIgFFDQAgACgCICABQQEQt4WAgAALIABBLEEEELeFgIAAC5QBAQJ/AkACQCAAKAIEIgFBA0sN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KAIAIQMgAkHAAWogAigCDCIFIAJBCGpBDGooAgAQvYKAgAACQAJAAkAgAigCwAFFDQAgAkG0AmogAkHQAWopAwA3AgAgAkGgAmpBDGogAkHAAWpBCGopAwA3AgAgAiACKQPAATcCpAIMAQsgAkGgAmogAigCxAEQ9omAgAAgAi0AoAIiBEE5Rw0BCyACQbQCaigCACEGIAJBoAJqQQhqKAIAIQcgAigCpAIhCCACQcABaiACQaACakEQaigCACIJIAJBuAJqKAIAEM2BgIAAAkACQAJAAkACQAJAAkACQCACKALQASIERQ0AIAJBjwFqIAJBwAFqQQhqKQMANwAAIAJB8ABqQQhqIAJB7AFqKAIANgIAIAIgAikDwAE3AIcBIAIgAikC5AE3A3AgAigC1AEhCiACKALYASELIAIoAtwBIQwgAigC4AEhDQwBCyACQYADakEQaiACQeQBaigCADYCACACQYADakEIaiACQdwBaikCADcDACACIAIpAtQBNwOAAyACQZGAgIAANgKsAyACIAJBgANqNgKoAyACQQE2ArQCIAJCATcCpAIgAkHcsMGAADYCoAIgAiACQagDajYCsAIgAkGYA2ogAkGgAmoQrZCAgAAgAkGgAmogAkGYA2oQ9ImAgAACQCACKAKAAw0AIAJBiANqKAIAIgRFDQAgAigChAMgBEEBELeFgIAACyACQYADakEQahCRjYCAACACQYABakEIaiIOIAJBoAJqQQlqKQAANwMAIAJBgAFqQQ9qIg8gAkGgAmpBEGopAAA3AAAgAkHwAGpBCGoiECACQaACakE0aigCADYCACACIAIpAKECNwOAASACIAIpAswCNwNwIAIoArgCIQQgAigCvAIhCiACKALAAiELIAIoAsQCIQwgAigCyAIhDSACLQCgAiIRQTlHDQELIAJBwAFqIAQgCxC9goCAACACKALAAUUNASACQbQCaiACQdABaikDADcCACACQawCaiACQcgBaikDADcCACACIAIpA8ABNwKkAgwCCyACKQPYAiESIAJB2ABqQQ9qIhMgDykAADcAACACQdgAakEIaiIPIA4pAwA3AwAgAkHIAGpBCGoiDiAQKAIANgIAIAIgAikDgAEiFDcDWCACIAIpA3A3A0ggAEEYaiATKQAANwAAIABBEWogDykDADcAACAAQQlqIBQ3AAAgAEEwaiANNgIAIABBLGogDDYCACAAQShqIAs2AgAgAEEkaiAKNgIAIABBIGogBDYCACAAQcAAaiASNwMAIAAgEToACCAAQgI3AwAgAEE0aiACKQNINwAAIABBPGogDigCADYAAAwLCyACQaACaiACKALEARD2iYCAACACLQCgAiILQTlHDQELIAJBtAJqKAIAIQsgAkGgAmpBCGooAgAhDiACKAKkAiEPIAJBoAJqIAJBoAJqQRBqIhEoAgAiECACQbgCaiITKAIAEM+AgIAAIAIpA6ACQgJSDQEgAkHYAGpBEGogEygCADYCACACQdgAakEIaiARKQMANwMAIAIgAikDqAI3A1ggAkHAAWpBCGogAkHYAGoQ+YmAgAAMAgsgAEELaiACLQCjAjoAACAAQQlqIAIvAKECOwAAIABBJGogAikCvAI3AgAgAEEsaiACQaACakEkaikCADcCACAAQTRqIAJBoAJqQSxqKQIANwIAIABBPGogAkGgAmpBNGopAgA3AgAgAEHEAGogAkGgAmpBPGooAgA2AgAgAikCpAIhEiACKQKsAiEUIABBHGogAikCtAI3AgAgAEEUaiAUNwIAIABBDGogEjcCACAAIAs6AAggAEICNwMADAcLIAJBwAFqIAJBoAJqQeAAELyRgIAAGiACKQPAASISQgJSDQULIAJBgAFqQThqIAJBwAFqQcAAaikDACISNwMAIAJBgAFqQTBqIAJBwAFqQThqKQMAIhQ3AwAgAkGAAWpBKGogAkHAAWpBMGopAwAiFTcDACACQYABakEgaiACQcABakEoaikDACIWNwMAIAJBgAFqQRhqIAJBwAFqQSBqKQMAIhc3AwAgAkGAAWpBEGogAkHAAWpBGGopAwAiGDcDACACQYgBaiACQcABakEQaikDACIZNwMAIAIgAikDyAEiGjcDgAEgAEHAAGogEjcDACAAQThqIBQ3AwAgAEEwaiAVNwMAIABBKGogFjcDACAAQSBqIBc3AwAgAEEYaiAYNwMAIABBEGogGTcDACAAIBo3AwggAEICNwMAAkAgDkUNACAPIA5BARC3hYCAAAsgC0UNBSAQIAtBARC3hYCAAAwFCyAAQQtqIAItAKMCOgAAIABBCWogAi8AoQI7AAAgAEEkaiACKQK8AjcCACAAQSxqIAJBoAJqQSRqKQIANwIAIABBNGogAkGgAmpBLGopAgA3AgAgAEE8aiACQaACakE0aikCADcCACAAQcQAaiACQaACakE8aigCADYCACACKQKkAiESIAIpAqwCIRQgAEEcaiACKQK0AjcCACAAQRRqIBQ3AgAgAEEMaiASNwIAIAAgBDoACCAAQgI3AwAMBgsgACACKQMINwMIIABCAjcDACAAQcAAaiACQQhqQThqKQMANwMAIABBOGogAkEIakEwaikDADcDACAAQTBqIAJBCGpBKGopAwA3AwAgAEEoaiACQQhqQSBqKQMANwMAIABBIGogAkEIakEYaikDADcDACAAQRhqIAJBCGpBEGopAwA3AwAgAEEQaiACQQhqQQhqKQMANwMADAYLQQtBARCokICAAAALQQlBARCokICAAAALIAAgAikDiAI3A0ggAkGAAWpBOGoiESACQcABakHAAGopAwA3AwAgAkGAAWpBMGoiEyACQcABakE4aikDADcDACACQYABakEoaiIbIAJBwAFqQTBqKQMANwMAIAJBgAFqQSBqIhwgAkHAAWpBKGopAwA3AwAgAkGAAWpBGGoiHSACQcABakEgaikDADcDACACQYABakEQaiIeIAJBwAFqQRhqKQMANwMAIAJBiAFqIh8gAkHAAWpBEGopAwA3AwAgAEHQAGogAkHAAWpB0ABqKQMANwMAIABB2ABqIAJBwAFqQdgAaikDADcDACACIAIpA8gBNwOAASAAQcAAaiARKQMANwMAIABBOGogEykDADcDACAAQTBqIBspAwA3AwAgAEEoaiAcKQMANwMAIABBIGogHSkDADcDACAAQRhqIB4pAwA3AwAgAEEQaiAfKQMANwMAIAAgAikDgAE3AwggACASNwMAAkAgDkUNACAPIA5BARC3hYCAAAsCQCALRQ0AIBAgC0EBELeFgIAACwJAIApFDQAgBCAKQQEQt4WAgAALAkAgDUUNACAMIA1BARC3hYCAAAsCQCAHRQ0AIAggB0EBELeFgIAACyAGRQ0CIAkgBkEBELeFgIAADAILAkAgCkUNACAEIApBARC3hYCAAAsgDUUNACAMIA1BARC3hYCAAAsCQCAHRQ0AIAggB0EBELeFgIAACyAGRQ0AIAkgBkEBELeFgIAACyADRQ0AIAUgA0EBELeFgIAACyABQQtBARC3hYCAACACQbADaiSAgICAAAvKAwEDfyOAgICAAEHgAGsiBSSAgICAACABKAIEIQYgASgCACEHIAUgBDcDECAFIAM3AwgCQEEQQQEQtoWAgAAiAUUNACABQQhqQQApAOywwYAANwAAIAFBACkA5LDBgAA3AAAgBUG7gICAADYCRCAFIAVBCGo2AkAgBUEBNgJcIAVCATcCTCAFQfSwwYAANgJIIAUgBUHAAGo2AlggBUEwaiAFQcgAahCtkICAACAFQSxqIAVBMGpBCGooAgA2AgAgBUKQgICAgAI3AhwgBSABNgIYIAUgBSkDMDcCJCAFQTBqIAVBGGpBAhD6goCAAAJAIAUoAhwiAUUNACAFKAIYIAFBARC3hYCAAAsCQCAFQShqKAIAIgFFDQAgBSgCJCABQQEQt4WAgAALIAVBGGogByAFKAIwIgEgBSgCOCAGKAIMEYCAgIAAAAJAAkAgBSgCGA0AIAVByABqIAIQr5CAgAAgACAFQcgAaiADIAQQ84mAgAAMAQsgACAFKQMYNwIEIABBOToAACAAQQxqIAVBIGooAgA2AgALAkAgBSgCNCIARQ0AIAEgAEEBELeFgIAACyAFQeAAaiSAgICAAA8LQRBBARCokICAAAAL7gwCEn8CfiOAgICAAEGgAWsiAiSAgICAACACQegAakEIaiABQShqKAIANgIAIAIgASkCIDcDaCACQTBqIAJB6ABqEJ6KgIAAAkACQAJAAkACQAJAIAIoAjAiA0UNACACQR5qIAJBO2otAAA6AAAgAiACLwA5OwEcIAFBNGooAgAiBEUNAyACLQA4IQUgAigCNCEGIAEoAiwiBygCCCEIIAcoAgQhCSAHKAIAIQogByAHQQxqIARBf2oiC0EMbBDBkYCAACEMIAEgCzYCNCACQSBqIAwgC0GEs8GAAEEAELKCgIAAIAJB6ABqIAIoAiAiDSACKAIoELmKgIAAIAIoAmgiDkEPRg0BIAJBMGpBCGoiByACQYQBaiIPKQIANwMAIAJBMGpBEGoiECACQYwBaiIRKAIANgIAIAJByABqQQhqIhIgAkHoAGpBDGoiEykCADcDACACIAIpAnw3AzAgAiACKQJsNwNIIAJBCGogASkDACABKQMIEKaLgIAAIAIpAxAhFCACKQMIIRUgEyASKQMANwIAIA8gBykDADcCACARIBAoAgA2AgAgAiAONgJoIAIgAikDSDcCbCACIAIpAzA3AnwgAUE8aigCACEHIAFBwABqKAIAIRAgASgCOCEPIAIgCDYCYCACIAk2AlwgAiAKNgJYIAJBkAFqIAJB2ABqEJ+KgIAAIAIoApABIglFDQIgACACLwCZATsAQSAAQcMAaiACQZsBai0AADoAACACKAKUASEKIAItAJgBIQ4gAEHPAGogAkEeai0AADoAACAAIAIvARw7AE0gACACKQNoNwMAIABBCGogAkHoAGpBCGopAwA3AwAgAEEQaiACQegAakEQaikDADcDACAAQRhqIAJB6ABqQRhqKQMANwMAIABBIGogAkHoAGpBIGopAwA3AwAgACAQNgJYIAAgBzYCVCAAIA82AlAgACAFOgBMIAAgBjYCSCAAIAM2AkQgACAOOgBAIAAgCjYCPCAAIAk2AjggACAUNwMwIAAgFTcDKAJAIAIoAiQiAEUNACANIABBARC3hYCAAAsCQCALRQ0AIARBDGxBdGohCyAMIQADQAJAIABBBGooAgAiBkUNACAAKAIAIAZBARC3hYCAAAsgAEEMaiEAIAtBdGoiCw0ACwsgAUEwaigCACIARQ0FIAwgAEEMbEEEELeFgIAADAULIAIoAjQhCyAAQRBqIAJBMGpBCGotAAA6AAAgAEEMaiALNgIAIABBBzYCCCAAQQ82AgAgAUE0aigCACELIAEoAiwhBwwDCyACQeAAaiACQegAakEMaikCACIUNwMAIAIgAikCbCIVNwNYIABBFGogFDcCACAAQQxqIBU3AgAgAEEGNgIIIABBDzYCAAJAIAIoAiQiAEUNACANIABBARC3hYCAAAsCQCAJRQ0AIAogCUEBELeFgIAACyAGRQ0CIAMgBkEBELeFgIAADAILIAIoApQBIQkgAEEQaiACQZABakEIai0AADoAACAAQQxqIAk2AgAgAEEINgIIIABBDzYCAAJAIAdFDQAgDyAHQQEQt4WAgAALIAJB6ABqQQRyIQACQAJAAkACQAJAAkACQAJAAkACQCAOQX5qDgwACAgIAQIDBAUGBwkICyACQYABaiEADAcLIAJB+ABqIQAMBgsgAkH4AGohAAwFCyACQfgAaiEADAQLIAJB+ABqIQAMAwsgAkGAAWohAAwCCyACQYABaiEADAELIAJBgAFqIQALIABBBGooAgAiB0UNACAAKAIAIAdBARC3hYCAAAsCQCAGRQ0AIAMgBkEBELeFgIAACwJAIAIoAiQiAEUNACANIABBARC3hYCAAAsCQCALRQ0AIARBDGxBdGohCyAMIQADQAJAIABBBGooAgAiBkUNACAAKAIAIAZBARC3hYCAAAsgAEEMaiEAIAtBdGoiCw0ACwsgAUEwaigCACIARQ0CIAwgAEEMbEEEELeFgIAADAILQQBBAEGws8GAABCxkICAAAALAkAgC0UNACALQQxsIQsgByEAA0ACQCAAQQRqKAIAIgZFDQAgACgCACAGQQEQt4WAgAALIABBDGohACALQXRqIgsNAAsLAkAgAUEwaigCACIARQ0AIAcgAEEMbEEEELeFgIAACyABQTxqKAIAIgBFDQAgASgCOCAAQQEQt4WAgAALIAJBoAFqJICAgIAAC7oKAhF/An4jgICAgABBoAFrIgIkgICAgAAgAkHoAGpBCGogAUEoaigCADYCACACIAEpAiA3A2ggAkEwaiACQegAahCeioCAAAJAAkACQAJAAkAgAigCMCIDRQ0AIAJBHmogAkE7ai0AADoAACACIAIvADk7ARwgAUE0aigCACIERQ0EIAItADghBSACKAI0IQYgASgCLCIHKAIIIQggBygCBCEJIAcoAgAhCiAHIAdBDGogBEF/aiIEQQxsEMGRgIAAIQsgASAENgI0IAJBIGogCyAEQYSzwYAAQQAQsoKAgAAgAkHoAGogAigCICIMIAIoAigQuYqAgAAgAigCaCILQQ9GDQEgAkEwakEIaiINIAJBhAFqIg4pAgA3AwAgAkEwakEQaiIPIAJBjAFqIhAoAgA2AgAgAkHIAGpBCGoiESACQegAakEMaiISKQIANwMAIAIgAikCfDcDMCACIAIpAmw3A0ggAkEIaiABKQMAIAEpAwgQpouAgAAgAikDECETIAIpAwghFCASIBEpAwA3AgAgDiANKQMANwIAIBAgDygCADYCACACIAs2AmggAiACKQNINwJsIAIgAikDMDcCfCACIAg2AmAgAiAJNgJcIAIgCjYCWCACQZABaiACQdgAahCfioCAACACKAKQASIJRQ0CIAAgAi8AmQE7AEEgAEHDAGogAkGbAWotAAA6AAAgAigClAEhCyACLQCYASEKIABBzwBqIAJBHmotAAA6AAAgACACLwEcOwBNIAAgAikDaDcDACAAQQhqIAJB6ABqQQhqKQMANwMAIABBEGogAkHoAGpBEGopAwA3AwAgAEEYaiACQegAakEYaikDADcDACAAQSBqIAJB6ABqQSBqKQMANwMAIAAgBToATCAAIAY2AkggACADNgJEIAAgCjoAQCAAIAs2AjwgACAJNgI4IAAgEzcDMCAAIBQ3AyggAigCJCIARQ0DIAwgAEEBELeFgIAADAMLIAIoAjQhByAAQRBqIAJBMGpBCGotAAA6AAAgAEEMaiAHNgIAIABBBzYCCCAAQQ82AgAgAUE0aigCACEEIAEoAiwhBwwCCyACQeAAaiACQegAakEMaikCACITNwMAIAIgAikCbCIUNwNYIABBFGogEzcCACAAQQxqIBQ3AgAgAEEGNgIIIABBDzYCAAJAIAIoAiQiAEUNACAMIABBARC3hYCAAAsCQCAJRQ0AIAogCUEBELeFgIAACyAGRQ0BIAMgBkEBELeFgIAADAELIAJB6ABqQQRyIQkgAigClAEhCiAAQRBqIAJBkAFqQQhqLQAAOgAAIABBDGogCjYCACAAQQg2AgggAEEPNgIAAkACQAJAAkACQAJAAkACQAJAAkAgC0F+ag4MAAgICAECAwQFBgcJCAsgAkGAAWohCQwHCyACQfgAaiEJDAYLIAJB+ABqIQkMBQsgAkH4AGohCQwECyACQfgAaiEJDAMLIAJBgAFqIQkMAgsgAkGAAWohCQwBCyACQYABaiEJCyAJQQRqKAIAIgBFDQAgCSgCACAAQQEQt4WAgAALAkAgBkUNACADIAZBARC3hYCAAAsgAigCJCIARQ0AIAwgAEEBELeFgIAACwJAIARFDQAgBEEMbCEAA0ACQCAHQQRqKAIAIgRFDQAgBygCACAEQQEQt4WAgAALIAdBDGohByAAQXRqIgANAAsLAkAgAUEwaigCACIHRQ0AIAEoAiwgB0EMbEEEELeFgIAACyACQaABaiSAgICAAA8LQQBBAEHAs8GAABCxkICAAAAL5wwCCn8CfiOAgICAAEGQAmsiAiSAgICAAAJAAkACQAJAAkACQAJAIAEoAhBFDQAgASgCGCEDIAEoAhQhBCACIAEoAhw2AowBIAIgBDYCiAEgAkGgAWogAkGIAWoQu4KAgAAgAigCoAEiBUUNASACKAKwASEBIAIoAqQBIQYgAkGgAWogAigCrAEiByACKAK0ARDhhICAACACKAKwASIIRQ0CIAJB+ABqQQhqIgkgAkGgAWpBCGopAwA3AwAgAkGIAWpBCGoiCiACQbwBaikCADcDACACQYgBakEQaiILIAJBxAFqKAIANgIAIAJBGGpBCGogAkHQAWopAwA3AwAgAkEYakEQaiACQdgBaikDADcDACACQTBqIAJB4AFqKQMANwMAIAJBOGogAkHoAWopAwA3AwAgAkHAAGogAkHwAWopAwA3AwAgAiACKQOgATcDeCACIAIpArQBNwOIASACIAIpA8gBNwMYIAJByABqQQhqIAopAwA3AwAgAkHIAGpBEGogCygCADYCACACQewAaiAJKQMANwIAIAIgAikDiAE3A0ggAiACKQN4NwJkAkAgBkUNACAFIAZBARC3hYCAAAsCQCABRQ0AIAcgAUEBELeFgIAAC0EAIQEgA0UNBSAEIANBARC3hYCAAAwFCyABKAIEIQQgASgCACEDIAIgASgCCDYCjAEgAiADNgKIASACQaABaiACQYgBahC7goCAAAJAAkAgAigCoAEiB0UNACACKAKwASEGIAIoAqQBIQUgAkGgAWogAigCrAEiCSACKAK0ARDihICAACACKAKgASIBRQ0BIAJBiAFqQRBqIgogAkG0AWooAgA2AgAgAkGIAWpBCGoiCyACQawBaikCADcDACACQcgAakEIaiACQcQBaikCADcDACACQcgAakEQaiACQcwBaigCADYCACACQRhqQQhqIAJB2AFqKQMANwMAIAJBGGpBEGogAkHgAWopAwA3AwAgAkEwaiACQegBaikDADcDACACQThqIAJB8AFqKQMANwMAIAJBwABqIAJB+AFqKQMANwMAIAIgAikCpAE3A4gBIAIgAikCvAE3A0ggAiACKQPQATcDGCACKAK4ASEIIAJBCGpBCGogAkGIAmopAwA3AwAgAkHgAGpBCGogCykDADcDACACQeAAakEQaiAKKAIANgIAIAIgAikDgAI3AwggAiACKQOIATcDYAJAIAVFDQAgByAFQQEQt4WAgAALAkAgBkUNACAJIAZBARC3hYCAAAsgBEUNBiADIARBARC3hYCAAAwGCyAAQQxqIAIoAqQBNgIAIABBCTYCCCAAQgE3AwAMBAsgAkGYAWogAkGgAWpBFGooAgAiATYCACACQZABaiACQaABakEMaikCACIMNwMAIAIgAikCpAEiDTcDiAEgAEEcaiABNgIAIABBFGogDDcCACAAQQxqIA03AgAgAEEENgIIIABCATcDAAJAIAVFDQAgByAFQQEQt4WAgAALIAZFDQMgCSAGQQEQt4WAgAAMAwsgAEEMaiACKAKkATYCACAAQQk2AgggAEIBNwMADAELIAJBmAFqIAJBxAFqKAIAIgg2AgAgAkGQAWogAkGgAWpBHGopAgAiDDcDACACIAIpArQBIg03A4gBIABBHGogCDYCACAAQRRqIAw3AgAgAEEMaiANNwIAIABBBDYCCCAAQgE3AwACQCAGRQ0AIAUgBkEBELeFgIAACyABRQ0AIAcgAUEBELeFgIAACyADRQ0CIAQgA0EBELeFgIAADAILIARFDQEgAyAEQQEQt4WAgAAMAQsgAEEMaiACKQNgNwIAIABBJGogAikDSDcCACAAQThqIAIpAxg3AgAgAEEcaiACQeAAakEQaigCADYCACAAQRRqIAJB4ABqQQhqKQMANwIAIABBLGogAkHIAGpBCGopAwA3AgAgAEE0aiACQcgAakEQaigCADYCACAAQcAAaiACQRhqQQhqKQMANwIAIABByABqIAJBGGpBEGopAwA3AgAgAEHQAGogAkEwaikDADcCACAAQdgAaiACQRhqQSBqKQMANwIAIABB4ABqIAJBwABqKQMANwIAIABBIGogCDYCACAAIAE2AgggAEIANwMAIABB8ABqIAJBCGpBCGopAwA3AwAgAEHoAGogAikDCDcDAAsgAkGQAmokgICAgAAL8QsEBn8Bfgd/A34jgICAgABB0AFrIgIkgICAgAAgAiABQRhqKAIANgIEIAIgAUEQaigCACIDNgIAIAJB2ABqIAIQu4KAgAACQAJAAkACQAJAAkACQAJAIAIoAlgiBEUNACACKAJoIQUgAigCXCEGIAJB2ABqIAIoAmQiByACKAJsEM+AgIAAIAIpA1giCEICUQ0BIAJBuAFqQRBqIgkgAkHYAGpBGGooAgA2AgAgAkG4AWpBCGoiCiACQdgAakEQaikDADcDACACQTBqQQhqIAJB/ABqKQIANwMAIAJBCGogAkGUAWopAgA3AwAgAkEQaiACQZwBaikCADcDACACQRhqIAJBpAFqKQIANwMAIAJBIGogAkGsAWopAgA3AwAgAkEoaiACQbQBaigCADYCACACIAIpA2A3A7gBIAIgAikCdDcDMCACIAIpAowBNwMAIAIoAoQBIQsgAigCiAEhDCACQcAAakEIaiAKKQMANwMAIAJBwABqQRBqIAkoAgA2AgAgAiACKQO4ATcDQCACIAFBwABqKAIANgK8ASACIAFBOGoiCSgCADYCuAEgAkHYAGogAkG4AWoQu4KAgAAgAigCWCINRQ0CIAIoAmghCiACKAJcIQ4gAkHYAGogAigCZCIPIAIoAmwQh4GAgAAgAigCWA0DIAJBuAFqQRBqIAJB7ABqKQIAIhA3AwAgAkG4AWpBCGogAkHkAGopAgAiETcDACACIAIpAlwiEjcDuAEgAEHwAGogEDcCACAAQegAaiARNwIAIAAgEjcCYCAAQRhqIAJBwABqQRBqKAIANgIAIABBEGogAkHAAGpBCGopAwA3AwAgACACKQNANwMIIAAgAikDMDcCHCAAQSRqIAJBMGpBCGopAwA3AgAgACACKQMANwI0IABBPGogAkEIaikDADcCACAAQcQAaiACQRBqKQMANwIAIABBzABqIAJBGGopAwA3AgAgAEHUAGogAkEgaikDADcCACAAQdwAaiACQShqKAIANgIAIABBgAFqIAFB0ABqKAIANgIAIAAgASkDSDcDeCAAIAw2AjAgACALNgIsIAAgCDcDACAAQYwBaiABQdwAaigCADYCACAAIAEpAlQ3AoQBAkAgDkUNACANIA5BARC3hYCAAAsCQCAKRQ0AIA8gCkEBELeFgIAACwJAIAZFDQAgBCAGQQEQt4WAgAALAkAgBUUNACAHIAVBARC3hYCAAAsCQCABQRRqKAIAIgBFDQAgAyAAQQEQt4WAgAALIAFBIGooAgAiAEUNByABKAIcIABBARC3hYCAAAwHCyAAQQxqIAIoAlw2AgAgAEEJNgIIIABCAjcDAAwFCyACQbgBakEQaiACQfAAaigCACIJNgIAIAJBwAFqIAJB2ABqQRBqKQMAIgg3AwAgAiACKQNgIhA3A7gBIABBHGogCTYCACAAQRRqIAg3AgAgAEEMaiAQNwIAIABBBDYCCCAAQgI3AwAMAwsgAEEMaiACKAJcNgIAIABBCTYCCCAAQgI3AwAMAQsgAkHIAWogAkHYAGpBFGooAgAiCTYCACACQcABaiACQdgAakEMaikCACIINwMAIAIgAikCXCIQNwO4ASAAQRxqIAk2AgAgAEEUaiAINwIAIABBDGogEDcCACAAQQQ2AgggAEICNwMAAkAgDkUNACANIA5BARC3hYCAAAsgCkUNACAPIApBARC3hYCAAAsgDEUNACALIAxBKGxBCBC3hYCAAAsCQCAGRQ0AIAQgBkEBELeFgIAACyAFRQ0AIAcgBUEBELeFgIAACwJAIAFBFGooAgAiAEUNACADIABBARC3hYCAAAsCQCABQSBqKAIAIgBFDQAgASgCHCAAQQEQt4WAgAALAkAgAUE8aigCACIARQ0AIAFBOGooAgAgAEEBELeFgIAACwJAIAFBzABqKAIAIgBFDQAgASgCSCAAQQEQt4WAgAALIAFB1ABqIQkLAkAgCUEEaigCACIBRQ0AIAkoAgAgAUEBELeFgIAACyACQdABaiSAgICAAAuqAgEBfyOAgICAAEEgayIDJICAgIAAIANBEGogAkHQs8GAAEEPQQIQ/YaAgAACQAJAAkAgAygCEA0AIAMgAygCFDYCCCADIANBGGotAAA6AAwgA0EQaiADQQhqQd+zwYAAQQMgARD2gICAACADKAIQDQEgA0EQaiADQQhqQeKzwYAAQQUgAUEMahD2gICAAAJAIAMoAhANACAAIAMoAgggAy0ADBCTh4CAAAwDCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAwCCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAwBCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAsgA0EgaiSAgICAAAu6AgECfyOAgICAAEEgayIDJICAgIAAIANBEGogAkHns8GAAEENQQJBASABKAIMIgQbEP2GgIAAAkACQAJAIAMoAhANACADIAMoAhQ2AgggAyADQRhqLQAAOgAMIANBEGogA0EIakH0s8GAAEEGIAEQw4CAgAAgAygCEA0BAkAgBEUNACADQRBqIANBCGpB+rPBgABBECABQQxqEPGAgIAAIAMoAhBFDQAgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMAwsgACADKAIIIAMtAAwQk4eAgAAMAgsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMAQsgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgALIANBIGokgICAgAAL1wMBAn8jgICAgABBIGsiAySAgICAACADQRBqIAJBirTBgABBDkEEQQMgASgCDCIEGxD9hoCAAAJAAkACQAJAIAMoAhANACADIAMoAhQ2AgggAyADQRBqQQhqLQAAOgAMIANBEGogA0EIakGYtMGAAEEIIAFBGGoQ/YCAgAAgAygCEA0BIANBEGogA0EIakGgtMGAAEEJIAEQw4CAgAAgAygCEA0CAkAgBEUNACADQRBqIANBCGpBqbTBgABBBCABQQxqEPOAgIAAIAMoAhBFDQAgACADKQIUNwIEIABBATYCACAAQQxqIANBEGpBDGooAgA2AgAMBAsgA0EQaiADQQhqQa20wYAAQRIgAUEZahD9gICAAAJAIAMoAhANACAAIAMoAgggAy0ADBCTh4CAAAwECyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAwDCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAwCCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAwBCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAsgA0EgaiSAgICAAAvGAwEBfyOAgICAAEEgayIDJICAgIAAIANBEGogAkG/tMGAAEEXQQQQ/YaAgAACQAJAAkACQAJAIAMoAhANACADIAMoAhQ2AgggAyADQRhqLQAAOgAMIANBEGogA0EIakHWtMGAAEEMIAEQ8oCAgAAgAygCEA0BIANBEGogA0EIakHitMGAAEETIAFBMGoQ9ICAgAAgAygCEA0CIANBEGogA0EIakH1tMGAAEEQIAFByABqEPKAgIAAIAMoAhANAyADQRBqIANBCGpBhbXBgABBBiABQfgAahD8gICAAAJAIAMoAhANACAAIAMoAgggAy0ADBCTh4CAAAwFCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAwECyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAwDCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAwCCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAwBCyAAIAMpAhQ3AgQgAEEBNgIAIABBDGogA0EQakEMaigCADYCAAsgA0EgaiSAgICAAAunAwACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAkF0ag4WBQkJCQcBCQkJAAMJCQkJCQQJCQgJBgkLIAFByrXBgABBFRC6kYCAAEUNCSABQYC2wYAAQRUQupGAgABFDQEgAUGVtsGAAEEVELqRgIAADQggAEEVNgIAIABBBDoABA8LIAFB77XBgABBERC6kYCAAA0HIABBFTYCACAAQQI6AAQPCyAAQRU2AgAgAEEDOgAEDwsgAUGqtsGAAEEWELqRgIAADQUgAEEVNgIAIABBBToABA8LIAFBwLbBgABBHBC6kYCAAA0EIABBFTYCACAAQQY6AAQPCyABQdy2wYAAQQwQupGAgAANAyAAQRU2AgAgAEEHOgAEDwsgAUHotsGAAEEhELqRgIAADQIgAEEVNgIAIABBCDoABA8LIAFB37XBgABBEBC6kYCAAEUNAwwBCyABQYm3wYAAQR8QupGAgAANACAAQRU2AgAgAEEJOgAEDwsgACABIAJBqLfBgABBChDkgoCAAA8LIABBFTYCACAAQQE6AAQPCyAAQRU2AgAgAEEAOgAEC4gBAQJ/I4CAgIAAQRBrIgIkgICAgAAgAiABEI6EgIAAAkACQCACKAIAIgFBFUcNACAAQQ42AggMAQsgACACLwAFOwANIABBD2ogAi0ABzoAACACLQAEIQMgAEEQaiACKQMINwMAIABBDGogAzoAACAAIAE2AggLIABCCjcDACACQRBqJICAgIAAC9wMAQR/I4CAgIAAQYABayICJICAgIAAIAJBIGogARCOhICAAAJAAkACQAJAIAIoAiAiA0EVRw0AIAItACQhBCACQSBqIAEQi4eAgAAgAigCICIDQRVGDQIgAkEOaiACLQAnOgAAIAIgAi8AJTsBDAwBCyACQQ5qIAItACc6AAAgAiACLwAlOwEMCyACLQAkIQEgAigCKCEEIAIoAiwhBSAAIAM2AgggACACLwEMOwANIABCCjcDACAAQQxqIAE6AAAgAEEUaiAFNgIAIABBEGogBDYCACAAQQ9qIAJBDmotAAA6AAAMAQsCQAJAAkACQAJAAkACQAJAAkACQCAEDgoJCAcGBQQDAgEACQsgAkEgaiABEL2BgIAAAkAgAigCMEUNACAAQQhqIAJBIGpB4AAQvJGAgAAaIABCCTcDAAwKCyAAIAIpAyA3AwggAEEQaiACQShqKQMANwMAIABCCjcDAAwJCyACQSBqIAFBhrzBgABBI0GEs8GAAEEAEP6DgIAAAkACQCACKAIgIgNBFUcNACACQQhqIAEQjYeAgABBBCEDIAItAAhBAXFFDQFBCyEDIAItAAlB/wFxQf0ARw0BIAEQhoeAgAAgAEIINwMADAoLIAJBGGogAkEsaigCADYCACACIAIpAiQ3AxALIAAgAzYCCCAAQQxqIAIpAxA3AgAgAEEUaiACQRhqKAIANgIAIABCCjcDAAwICyACQSBqIAEQvIGAgAACQCACKAIgDQAgACACKQMoNwMIIABBIGogAkEgakEgaikDADcDACAAQRhqIAJBIGpBGGopAwA3AwAgAEEQaiACQSBqQRBqKQMANwMAIABCBzcDAAwICyAAIAIpAiQ3AgggAEEQaiACQSxqKQIANwIAIABCCjcDAAwHCyACQSBqIAEQuYGAgAACQCACKAIgDQAgACACKQMoNwMIIABBIGogAkEgakEgaikDADcDACAAQRhqIAJBIGpBGGopAwA3AwAgAEEQaiACQSBqQRBqKQMANwMAIABCBjcDAAwHCyAAIAIpAiQ3AgggAEEQaiACQSxqKQIANwIAIABCCjcDAAwGCyACQSBqIAEQu4GAgAACQCACKAIgDQAgACACKQMoNwMIIABBIGogAkEgakEgaikDADcDACAAQRhqIAJBIGpBGGopAwA3AwAgAEEQaiACQSBqQRBqKQMANwMAIABCBTcDAAwGCyAAIAIpAiQ3AgggAEEQaiACQSxqKQIANwIAIABCCjcDAAwFCyACQSBqIAEQt4GAgAACQCACKAIgDQAgACACKQMoNwMIIABBIGogAkEgakEgaikDADcDACAAQRhqIAJBIGpBGGopAwA3AwAgAEEQaiACQSBqQRBqKQMANwMAIABCBDcDAAwFCyAAIAIpAiQ3AgggAEEQaiACQSxqKQIANwIAIABCCjcDAAwECyACQSBqIAEQtYGAgAACQCACKAJARQ0AIAAgAikDIDcDCCAAQThqIAJBIGpBMGopAwA3AwAgAEEwaiACQSBqQShqKQMANwMAIABBKGogAkEgakEgaikDADcDACAAQSBqIAJBIGpBGGopAwA3AwAgAEEYaiACQSBqQRBqKQMANwMAIABBEGogAkEoaikDADcDACAAQgM3AwAMBAsgACACKQMgNwMIIABBEGogAkEoaikDADcDACAAQgo3AwAMAwsgAkEgaiABELiBgIAAAkAgAigCQEUNACAAQQhqIAJBIGpByAAQvJGAgAAaIABCAjcDAAwDCyAAIAIpAyA3AwggAEEQaiACQShqKQMANwMAIABCCjcDAAwCCyACQSBqIAEQuoGAgAACQCACKAIwRQ0AIAAgAikDIDcDCCAAQTBqIAJBIGpBKGopAwA3AwAgAEEoaiACQSBqQSBqKQMANwMAIABBIGogAkEgakEYaikDADcDACAAQRhqIAJBIGpBEGopAwA3AwAgAEEQaiACQShqKQMANwMAIABCATcDAAwCCyAAIAIpAyA3AwggAEEQaiACQShqKQMANwMAIABCCjcDAAwBCyACQSBqIAEQvoGAgAACQCACKAIwRQ0AIABBCGogAkEgakHIABC8kYCAABogAEIANwMADAELIAAgAikDIDcDCCAAQRBqIAJBKGopAwA3AwAgAEIKNwMACyACQYABaiSAgICAAAvJAQACQAJAAkACQAJAAkAgAkF6ag4RAgMDAwMDAwMDAAMDAwMDAwEDCyABQfi3wYAAQQ8QupGAgABFDQQgAUGduMGAAEEPELqRgIAADQIgAEEVNgIAIABBAjoABA8LIAFBh7jBgABBFhC6kYCAAEUNAgwBCyABQfSzwYAAQQYQupGAgAANACAAQRU2AgAgAEEDOgAEDwsgACABIAJBrLjBgABBBBDkgoCAAA8LIABBFTYCACAAQQE6AAQPCyAAQRU2AgAgAEEAOgAEC7wHAQN/I4CAgIAAQcAAayICJICAgIAAIAJBMGogARD6g4CAAAJAAkACQAJAIAIoAjAiA0EVRw0AIAItADQhBCACQTBqIAEQi4eAgAAgAigCMCIDQRVGDQIgAkEeaiACLQA3OgAAIAIgAi8ANTsBHAwBCyACQR5qIAItADc6AAAgAiACLwA1OwEcCyACKAI4IQEgAigCPCEEIAAgAi0ANDoABCAAIAM2AgAgACACLwEcOwAFIAAgBDYCDCAAIAE2AgggAEEHaiACQR5qLQAAOgAADAELAkACQAJAAkAgBA4EAwIBAAMLIAJBMGogAUHsuMGAAEEJQYSzwYAAQQAQ3YOAgAACQAJAIAIoAjAiA0EVRw0AIAJBGGogARCNh4CAAEEEIQMgAi0AGEEBcUUNAUELIQMgAi0AGUH/AXFB/QBHDQEgARCGh4CAACAAQRU2AgAgAEEDOgAEDAULIAJBKGogAkE8aigCADYCACACIAIpAjQ3AyALIAAgAzYCACAAIAIpAyA3AgQgAEEMaiACQShqKAIANgIADAMLIAJBMGogAUH1uMGAAEERQYSzwYAAQQAQ3YOAgAACQAJAIAIoAjAiA0EVRw0AIAJBEGogARCNh4CAAEEEIQMgAi0AEEEBcUUNAUELIQMgAi0AEUH/AXFB/QBHDQEgARCGh4CAACAAQRU2AgAgAEECOgAEDAQLIAJBKGogAkE8aigCADYCACACIAIpAjQ3AyALIAAgAzYCACAAIAIpAyA3AgQgAEEMaiACQShqKAIANgIADAILIAJBMGogAUHMuMGAAEETQYSzwYAAQQAQ3YOAgAACQAJAIAIoAjAiA0EVRw0AIAJBCGogARCNh4CAAEEEIQMgAi0ACEEBcUUNAUELIQMgAi0ACUH/AXFB/QBHDQEgARCGh4CAACAAQRU2AgAgAEEBOgAEDAMLIAJBKGogAkE8aigCADYCACACIAIpAjQ3AyALIAAgAzYCACAAIAIpAyA3AgQgAEEMaiACQShqKAIANgIADAELIAJBMGogAUHfuMGAAEENQYSzwYAAQQAQ3YOAgAACQAJAIAIoAjAiA0EVRw0AIAIgARCNh4CAAEEEIQMgAi0AAEEBcUUNAUELIQMgAi0AAUH/AXFB/QBHDQEgARCGh4CAACAAQRU2AgAgAEEAOgAEDAILIAJBKGogAkE8aigCADYCACACIAIpAjQ3AyALIAAgAzYCACAAIAIpAyA3AgQgAEEMaiACQShqKAIANgIACyACQcAAaiSAgICAAAuKAgACQAJAAkACQAJAAkACQAJAIAJBfGoODwMAAQUFBQUFBQUFBQUEAgULIAFBrrnBgABBBRC6kYCAAEUNBiABQeKzwYAAQQUQupGAgAANBCAAQRU2AgAgAEECOgAEDwsgAUG3ucGAAEEGELqRgIAADQMgAEEVNgIAIABBAzoABA8LIAFBvbnBgABBEhC6kYCAAA0CIABBFTYCACAAQQQ6AAQPCyABKAAAQfDC0cMGRg0CDAELIAFBz7nBgABBERC6kYCAAA0AIABBFTYCACAAQQU6AAQPCyAAIAEgAkHgucGAAEEGEOGCgIAADwsgAEEVNgIAIABBAToABA8LIABBFTYCACAAQQA6AAQL5gEAAkACQAJAAkACQAJAAkAgAkF8ag4PAAMBBQUFBQUFBQUFBQQCBQsgASgAAEHwwtHDBkcNBCAAQRU2AgAgAEEBOgAEDwsgAUG3ucGAAEEGELqRgIAADQMgAEEVNgIAIABBAjoABA8LIAFBvbnBgABBEhC6kYCAAA0CIABBFTYCACAAQQM6AAQPCyABQa65wYAAQQUQupGAgABFDQIMAQsgAUHPucGAAEERELqRgIAADQAgAEEVNgIAIABBBDoABA8LIAAgASACQay6wYAAQQUQ4YKAgAAPCyAAQRU2AgAgAEEAOgAEC+oDAQR/I4CAgIAAQTBrIgIkgICAgAAgAkEQaiABEPmDgIAAAkACQAJAAkAgAigCECIDQRVHDQAgAi0AFCEEIAJBEGogARCLh4CAACACKAIQIgNBFUYNAiACQQ5qIAItABc6AAAgAiACLwAVOwEMDAELIAJBDmogAi0AFzoAACACIAIvABU7AQwLIAItABQhASACKAIYIQQgAigCHCEFIAAgAzYCBCAAIAIvAQw7AAkgAEEBNgIAIABBCGogAToAACAAQRBqIAU2AgAgAEEMaiAENgIAIABBC2ogAkEOai0AADoAAAwBCwJAIARB/wFxRQ0AIAJBEGogARC2gYCAAAJAIAIoAhBBFUcNACAAIAIpAhQ3AgggAEEYakEANgIAIABBEGogAkEcaigCADYCACAAQQA2AgAMAgsgACACKQMQNwIEIABBDGogAkEYaikDADcCACAAQQE2AgAMAQsgAkEQaiABEL+BgIAAAkAgAigCIEUNACAAIAIpAxA3AwggAEEgaiACQRBqQRhqKQMANwMAIABBGGogAkEQakEQaikDADcDACAAQRBqIAJBGGopAwA3AwAgAEEANgIADAELIAAgAikDEDcCBCAAQQxqIAJBGGopAwA3AgAgAEEBNgIACyACQTBqJICAgIAAC8IBAAJAAkACQAJAAkACQCACQWxqDgoAAwMBAwMDAwMCAwsgAUHKvMGAAEEUELqRgIAARQ0EIAFB9bzBgABBFBC6kYCAAA0CIABBFTYCACAAQQI6AAQPCyABQd68wYAAQRcQupGAgABFDQIMAQsgAUGJvcGAAEEdELqRgIAADQAgAEEVNgIAIABBAzoABA8LIAAgASACQai9wYAAQQQQ4YKAgAAPCyAAQRU2AgAgAEEBOgAEDwsgAEEVNgIAIABBADoABAsTAQF/IAAgARC7j4CAACECIAIPCw8AIAAgASACELyPgIAADwsXAQF/IAAgASACIAMQvY+AgAAhBCAEDwsTAQF/IAAgARC+j4CAACECIAIPCw0AIAAgARDHj4CAAA8LigEAIABCADcDMCAAIAE3AwggAEIANwMAIABByABqQgA3AwAgAEHAAGpCADcDACAAQThqQgA3AwAgAEHQAGpBADYCACAAQShqIAFC+erQ0OfJoeThAHw3AwAgAEEgaiABNwMAIABBGGogAULP1tO+0ser2UJ8NwMAIAAgAULW64Lu6v2J9eAAfDcDEAv/BAIEfwR+IABBMGohAwJAAkACQAJAAkAgAEHQAGooAgAiBA0AIAIhBAwBCyAEQSFPDQEgAyAEaiABQSAgBGsiBCACIAQgAkkbIgQQvJGAgAAaIABB0ABqIgUgBSgCACAEaiIGNgIAIAEgBGohASACIARrIQQgBkEgRw0AIAVBADYCACAAIAApAzBCz9bTvtLHq9lCfiAAKQMQfEIfiUKHla+vmLbem55/fjcDECAAQShqIgUgAEHIAGopAwBCz9bTvtLHq9lCfiAFKQMAfEIfiUKHla+vmLbem55/fjcDACAAQSBqIgUgAEHAAGopAwBCz9bTvtLHq9lCfiAFKQMAfEIfiUKHla+vmLbem55/fjcDACAAQRhqIgUgAEE4aikDAELP1tO+0ser2UJ+IAUpAwB8Qh+JQoeVr6+Ytt6bnn9+NwMACyAERQ0CIABBKGopAwAhByAAQSBqKQMAIQggAEEYaikDACEJIAApAxAhCgJAIARBIE8NACABIQUMAgsDQCABKQAYQs/W077Sx6vZQn4gB3xCH4lCh5Wvr5i23puef34hByABKQAQQs/W077Sx6vZQn4gCHxCH4lCh5Wvr5i23puef34hCCABKQAIQs/W077Sx6vZQn4gCXxCH4lCh5Wvr5i23puef34hCSABKQAAQs/W077Sx6vZQn4gCnxCH4lCh5Wvr5i23puef34hCiABQSBqIgUhASAEQWBqIgRBIE8NAAwCCwsgBEEgQbi+wYAAELiQgIAAAAsgACAHNwMoIAAgCDcDICAAIAk3AxggACAKNwMQIAMgBSAEELyRgIAAGiAAQdAAaiAENgIACyAAIAApAwAgAq18NwMAC4wHAgV+A38CQAJAIAApAwAiAUIfVg0AIAApAwhCxc/ZsvHluuonfCECDAELIABBGGopAwAiAkIHiSAAKQMQIgNCAYl8IABBIGopAwAiBEIMiXwgAEEoaikDACIFQhKJfCADQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQoeVr6+Ytt6bnn9+QuPcypX8zvL1hX98IAJCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35C49zKlfzO8vWFf3wgBELP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+hUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCAFQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQoeVr6+Ytt6bnn9+QuPcypX8zvL1hX98IQILAkACQCAAQdAAaigCACIGQSFPDQAgAiABfCEBIABBMGohBwJAIAZBCE8NACAHIQAMAgsDQCAHKQAAQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef34gAYVCG4lCh5Wvr5i23puef35C49zKlfzO8vWFf3whASAHQQhqIgAhByAGQXhqIgZBCE8NAAwCCwsgBkEgQai+wYAAELmQgIAAAAsCQAJAIAZBBEkNAAJAAkAgBkF8aiIHQQRxRQ0ADAELIAA1AABCh5Wvr5i23puef34gAYVCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQEgAEEEaiIIIQAgByEGCyAHQQRJDQEDQCAAQQRqNQAAQoeVr6+Ytt6bnn9+IAA1AABCh5Wvr5i23puef34gAYVCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8hUIXiULP1tO+0ser2UJ+Qvnz3fGZ9pmrFnwhASAAQQhqIQAgBkF4aiIGQQRPDQALCyAGIQcgACEICwJAIAdFDQACQAJAIAdBAXENACAIIQYMAQsgCEEBaiEGIAgxAABCxc/ZsvHluuonfiABhUILiUKHla+vmLbem55/fiEBCyAHQQFGDQAgCCAHaiEAA0AgBkEBajEAAELFz9my8eW66id+IAYxAABCxc/ZsvHluuonfiABhUILiUKHla+vmLbem55/foVCC4lCh5Wvr5i23puef34hASAGQQJqIgYgAEcNAAsLIAFCIYggAYVCz9bTvtLHq9lCfiIBQh2IIAGFQvnz3fGZ9pmrFn4iAUIgiCABhQsKACAAEL2FgIAACw4AIAAgASACELyFgIAAC40FAgF/CH4jgICAgABB4ANrIgYkgICAgAACQCABQb9/akFASQ0AIANBwABLDQAgBkEAQYABELmRgIAAIgZBuAFqQvnC+JuRo7Pw2wA3AwAgBkGwAWpC6/qG2r+19sEfNwMAIAZBqAFqQp/Y+dnCkdqCm383AwAgBkGgAWpC0YWa7/rPlIfRADcDACAGQZgBakLx7fT4paf9p6V/NwMAIAZBkAFqQqvw0/Sv7ry3PDcDACAGQYgBakK7zqqm2NDrs7t/NwMAIAZCADcDwAEgBiABNgLIASAGIAOtQgiGIAGthUKIkveV/8z5hOoAhTcDgAECQCADRQ0AIAYgAiADELyRgIAAQoABNwPAAQsgBiAEIAUQwYWAgAAgBkHQAWogBkHQARC8kYCAABoCQCAGKAKQA0H/AHEiA0UNACAGQdABaiADakEAQYABIANrELmRgIAAGgsgBkHQAWpCf0IAEMKFgIAAIAZBoANqQRhqIAZB6AJqKQMAIgc3AwAgBkGgA2pBEGogBkHgAmopAwAiCDcDACAGQaADakEIaiAGQdgCaikDACIJNwMAIAZBoANqQSBqIAZB8AJqKQMAIgo3AwAgBkGgA2pBKGogBkH4AmopAwAiCzcDACAGQaADakEwaiAGQYADaikDACIMNwMAIAZBoANqQThqIAZBiANqKQMAIg03AwAgACAGKQPQAiIONwMAIABBCGogCTcDACAAQRBqIAg3AwAgAEEYaiAHNwMAIABBIGogCjcDACAAQShqIAs3AwAgAEEwaiAMNwMAIABBOGogDTcDACAGIA43A6ADIAAgBigCmAM2AkAgBkHgA2okgICAgAAPC0G0v8GAAEExQaS/wYAAELuQgIAAAAvMAgMBfgF/AX4CQAJAIAApA8ABIgOnQf8AcSIEDQAgA1BFDQELIAAgBGogAUGAASAEayIEIAIgBCACSRsiBBC8kYCAABoCQCAAKQPAASIDIAStfCIFIANUDQAgACAFNwPAASABIARqIQEgAiAEayECDAELQeW/wYAAQRlBpL/BgAAQy5CAgAAACwJAAkACQCACQYABSQ0AA0AgAEIAQgAQwoWAgAAgACABQYABELyRgIAAIgQpA8ABIgNCgAF8IgUgA1QNAiAEIAU3A8ABIAFBgAFqIQEgAkGAf2oiAkH/AEsNAAsLAkAgAkUNACAAQgBCABDChYCAACAAIAEgAhC8kYCAACIBKQPAASIDIAKtfCIFIANUDQIgASAFNwPAAQsPC0Hlv8GAAEEZQaS/wYAAEMuQgIAAAAtB5b/BgABBGUGkv8GAABDLkICAAAALsS4MAX8CfgF/CX4Bfwh+AX8BfgF/B34Bfw5+IABBkAFqIgMgACkDYCIEIAApAygiBSAAQbABaiIGKQMAIgcgAykDACIIfCAAKQMgIgl8Igp8IAogAYVC6/qG2r+19sEfhUIgiSILQqvw0/Sv7ry3PHwiDCAHhUIoiSINfCIOfCAAKQM4IgEgAEG4AWoiAykDACIPIABBmAFqIhApAwAiEXwgACkDMCIKfCISfCASIAKFQvnC+JuRo7Pw2wCFQiCJIgJC8e30+KWn/aelf3wiEiAPhUIoiSITfCIUIAKFQjCJIhUgEnwiFiAThUIBiSIXfCIYIAApA2giAnwgGCAAKQMYIhIgAEGoAWoiGSkDACIaIABBiAFqIhspAwAiHHwgACkDECITfCIdfCAdQp/Y+dnCkdqCm3+FQiCJIh1Cu86qptjQ67O7f3wiHiAahUIoiSIffCIgIB2FQjCJIiGFQiCJIiIgACkDCCIYIABBoAFqIiMpAwAiJCAAKQOAASIlfCAAKQMAIh18IiZ8IAApA8ABICaFQtGFmu/6z5SH0QCFQiCJIiZCiJLznf/M+YTqAHwiJyAkhUIoiSIofCIpICaFQjCJIiogJ3wiJ3wiKyAXhUIoiSIsfCItIAApA0giF3wgACkDUCImICB8IA4gC4VCMIkiDiAMfCIgIA2FQgGJIgx8Ig0gACkDWCILfCANICqFQiCJIg0gFnwiFiAMhUIoiSIMfCIqIA2FQjCJIi4gFnwiFiAMhUIBiSIvfCIwIAApA3giDHwgMCAMIAApA3AiDSAUfCAnICiFQgGJIhR8Iid8ICcgDoVCIIkiDiAhIB58Ih58IiEgFIVCKIkiFHwiJyAOhUIwiSIohUIgiSIwIAApA0AiDiApfCAeIB+FQgGJIh58Ih8gF3wgHyAVhUIgiSIVICB8Ih8gHoVCKIkiHnwiICAVhUIwiSIVIB98Ih98IikgL4VCKIkiL3wiMSALfCAnIAJ8IC0gIoVCMIkiIiArfCInICyFQgGJIit8IiwgCnwgLCAVhUIgiSIVIBZ8IhYgK4VCKIkiK3wiLCAVhUIwiSIVIBZ8IhYgK4VCAYkiK3wiLSABfCAtICogCXwgHyAehUIBiSIefCIfIA58IB8gIoVCIIkiHyAoICF8IiF8IiIgHoVCKIkiHnwiKCAfhUIwiSIfhUIgiSIqICAgDXwgISAUhUIBiSIUfCIgICZ8ICAgLoVCIIkiICAnfCIhIBSFQiiJIhR8IicgIIVCMIkiICAhfCIhfCItICuFQiiJIit8Ii4gBXwgKCAdfCAxIDCFQjCJIiggKXwiKSAvhUIBiSIvfCIwIBN8IDAgIIVCIIkiICAWfCIWIC+FQiiJIi98IjAgIIVCMIkiICAWfCIWIC+FQgGJIi98IjEgE3wgMSAsIAV8ICEgFIVCAYkiFHwiISASfCAhICiFQiCJIiEgHyAifCIffCIiIBSFQiiJIhR8IiggIYVCMIkiIYVCIIkiLCAnIBh8IB8gHoVCAYkiHnwiHyAEfCAfIBWFQiCJIhUgKXwiHyAehUIoiSIefCInIBWFQjCJIhUgH3wiH3wiKSAvhUIoiSIvfCIxIAF8ICggDHwgLiAqhUIwiSIoIC18IiogK4VCAYkiK3wiLSACfCAtIBWFQiCJIhUgFnwiFiArhUIoiSIrfCItIBWFQjCJIhUgFnwiFiArhUIBiSIrfCIuIBh8IC4gMCAEfCAfIB6FQgGJIh58Ih8gHXwgHyAohUIgiSIfICEgInwiIXwiIiAehUIoiSIefCIoIB+FQjCJIh+FQiCJIi4gJyALfCAhIBSFQgGJIhR8IiEgDnwgISAghUIgiSIgICp8IiEgFIVCKIkiFHwiJyAghUIwiSIgICF8IiF8IiogK4VCKIkiK3wiMCACfCAoIBJ8IDEgLIVCMIkiKCApfCIpIC+FQgGJIix8Ii8gCnwgLyAghUIgiSIgIBZ8IhYgLIVCKIkiLHwiLyAghUIwiSIgIBZ8IhYgLIVCAYkiLHwiMSAEfCAxIC0gF3wgISAUhUIBiSIUfCIhIAl8ICEgKIVCIIkiISAfICJ8Ih98IiIgFIVCKIkiFHwiKCAhhUIwiSIhhUIgiSItICcgJnwgHyAehUIBiSIefCIfIA18IB8gFYVCIIkiFSApfCIfIB6FQiiJIh58IicgFYVCMIkiFSAffCIffCIpICyFQiiJIix8IjEgCXwgKCALfCAwIC6FQjCJIiggKnwiKiArhUIBiSIrfCIuIA18IC4gFYVCIIkiFSAWfCIWICuFQiiJIit8Ii4gFYVCMIkiFSAWfCIWICuFQgGJIit8IjAgHXwgMCAvIBJ8IB8gHoVCAYkiHnwiHyAYfCAfICiFQiCJIh8gISAifCIhfCIiIB6FQiiJIh58IiggH4VCMIkiH4VCIIkiLyAnIAF8ICEgFIVCAYkiFHwiISAXfCAhICCFQiCJIiAgKnwiISAUhUIoiSIUfCInICCFQjCJIiAgIXwiIXwiKiArhUIoiSIrfCIwIBN8ICggBXwgMSAthUIwiSIoICl8IikgLIVCAYkiLHwiLSAmfCAtICCFQiCJIiAgFnwiFiAshUIoiSIsfCItICCFQjCJIiAgFnwiFiAshUIBiSIsfCIxIAl8IDEgLiAMfCAhIBSFQgGJIhR8IiEgDnwgISAohUIgiSIhIB8gInwiH3wiIiAUhUIoiSIUfCIoICGFQjCJIiGFQiCJIi4gJyATfCAfIB6FQgGJIh58Ih8gCnwgHyAVhUIgiSIVICl8Ih8gHoVCKIkiHnwiJyAVhUIwiSIVIB98Ih98IikgLIVCKIkiLHwiMSAKfCAoICZ8IDAgL4VCMIkiKCAqfCIqICuFQgGJIit8Ii8gDHwgLyAVhUIgiSIVIBZ8IhYgK4VCKIkiK3wiLyAVhUIwiSIVIBZ8IhYgK4VCAYkiK3wiMCAOfCAwIC0gBXwgHyAehUIBiSIefCIfIAF8IB8gKIVCIIkiHyAhICJ8IiF8IiIgHoVCKIkiHnwiKCAfhUIwiSIfhUIgiSItICcgF3wgISAUhUIBiSIUfCIhIB18ICEgIIVCIIkiICAqfCIhIBSFQiiJIhR8IicgIIVCMIkiICAhfCIhfCIqICuFQiiJIit8IjAgHXwgKCALfCAxIC6FQjCJIiggKXwiKSAshUIBiSIsfCIuIAR8IC4gIIVCIIkiICAWfCIWICyFQiiJIix8Ii4gIIVCMIkiICAWfCIWICyFQgGJIix8IjEgC3wgMSAvIBJ8ICEgFIVCAYkiFHwiISACfCAhICiFQiCJIiEgHyAifCIffCIiIBSFQiiJIhR8IiggIYVCMIkiIYVCIIkiLyAnIA18IB8gHoVCAYkiHnwiHyAYfCAfIBWFQiCJIhUgKXwiHyAehUIoiSIefCInIBWFQjCJIhUgH3wiH3wiKSAshUIoiSIsfCIxIAx8ICggDnwgMCAthUIwiSIoICp8IiogK4VCAYkiK3wiLSASfCAtIBWFQiCJIhUgFnwiFiArhUIoiSIrfCItIBWFQjCJIhUgFnwiFiArhUIBiSIrfCIwIA18IDAgLiAKfCAfIB6FQgGJIh58Ih8gJnwgHyAohUIgiSIfICEgInwiIXwiIiAehUIoiSIefCIoIB+FQjCJIh+FQiCJIi4gJyATfCAhIBSFQgGJIhR8IiEgBHwgISAghUIgiSIgICp8IiEgFIVCKIkiFHwiJyAghUIwiSIgICF8IiF8IiogK4VCKIkiK3wiMCANfCAoIAF8IDEgL4VCMIkiKCApfCIpICyFQgGJIix8Ii8gBXwgLyAghUIgiSIgIBZ8IhYgLIVCKIkiLHwiLyAghUIwiSIgIBZ8IhYgLIVCAYkiLHwiMSACfCAxIC0gGHwgISAUhUIBiSIUfCIhIBd8ICEgKIVCIIkiISAfICJ8Ih98IiIgFIVCKIkiFHwiKCAhhUIwiSIhhUIgiSItICcgCXwgHyAehUIBiSIefCIfIAJ8IB8gFYVCIIkiFSApfCIfIB6FQiiJIh58IicgFYVCMIkiFSAffCIffCIpICyFQiiJIix8IjEgF3wgKCAJfCAwIC6FQjCJIiggKnwiKiArhUIBiSIrfCIuICZ8IC4gFYVCIIkiFSAWfCIWICuFQiiJIit8Ii4gFYVCMIkiFSAWfCIWICuFQgGJIit8IjAgE3wgMCAvIBh8IB8gHoVCAYkiHnwiHyAMfCAfICiFQiCJIh8gISAifCIhfCIiIB6FQiiJIh58IiggH4VCMIkiH4VCIIkiLyAnIAR8ICEgFIVCAYkiFHwiISAFfCAhICCFQiCJIiAgKnwiISAUhUIoiSIUfCInICCFQjCJIiAgIXwiIXwiKiArhUIoiSIrfCIwIAR8ICggCnwgMSAthUIwiSIoICl8IikgLIVCAYkiLHwiLSASfCAtICCFQiCJIiAgFnwiFiAshUIoiSIsfCItICCFQjCJIiAgFnwiFiAshUIBiSIsfCIxIBh8IDEgLiAOfCAhIBSFQgGJIhR8IiEgC3wgISAohUIgiSIhIB8gInwiH3wiIiAUhUIoiSIUfCIoICGFQjCJIiGFQiCJIi4gJyAdfCAfIB6FQgGJIh58Ih8gAXwgHyAVhUIgiSIVICl8Ih8gHoVCKIkiHnwiJyAVhUIwiSIVIB98Ih98IikgLIVCKIkiLHwiMSAOfCAoIBJ8IDAgL4VCMIkiKCAqfCIqICuFQgGJIit8Ii8gF3wgLyAVhUIgiSIVIBZ8IhYgK4VCKIkiK3wiLyAVhUIwiSIVIBZ8IhYgK4VCAYkiK3wiMCAKfCAwIC0gAXwgHyAehUIBiSIefCIfIA18IB8gKIVCIIkiHyAhICJ8IiF8IiIgHoVCKIkiHnwiKCAfhUIwiSIfhUIgiSItICcgAnwgISAUhUIBiSIUfCIhIAt8ICEgIIVCIIkiICAqfCIhIBSFQiiJIhR8IicgIIVCMIkiICAhfCIhfCIqICuFQiiJIit8IjAgC3wgKCAMfCAxIC6FQjCJIiggKXwiKSAshUIBiSIsfCIuIAl8IC4gIIVCIIkiICAWfCIWICyFQiiJIix8Ii4gIIVCMIkiICAWfCIWICyFQgGJIix8IjEgEnwgMSAvIBN8ICEgFIVCAYkiFHwiISAmfCAhICiFQiCJIiEgHyAifCIffCIiIBSFQiiJIhR8IiggIYVCMIkiIYVCIIkiLyAnIAV8IB8gHoVCAYkiHnwiHyAdfCAfIBWFQiCJIhUgKXwiHyAehUIoiSIefCInIBWFQjCJIhUgH3wiH3wiKSAshUIoiSIsfCIxIBh8ICggHXwgMCAthUIwiSIoICp8IiogK4VCAYkiK3wiLSAOfCAtIBWFQiCJIhUgFnwiFiArhUIoiSIrfCItIBWFQjCJIhUgFnwiFiArhUIBiSIrfCIwIAl8IDAgLiANfCAfIB6FQgGJIh58Ih8gF3wgHyAohUIgiSIfICEgInwiIXwiIiAehUIoiSIefCIoIB+FQjCJIh+FQiCJIi4gJyAKfCAhIBSFQgGJIhR8IiEgDHwgISAghUIgiSIgICp8IiEgFIVCKIkiFHwiJyAghUIwiSIgICF8IiF8IiogK4VCKIkiK3wiMCABfCAoIAJ8IDEgL4VCMIkiKCApfCIpICyFQgGJIix8Ii8gAXwgLyAghUIgiSIgIBZ8IhYgLIVCKIkiLHwiLyAghUIwiSIgIBZ8IhYgLIVCAYkiLHwiMSAKfCAxIC0gJnwgISAUhUIBiSIUfCIhIAV8ICEgKIVCIIkiISAfICJ8Ih98IiIgFIVCKIkiFHwiKCAhhUIwiSIhhUIgiSItICcgBHwgHyAehUIBiSIefCIfIBN8IB8gFYVCIIkiFSApfCIfIB6FQiiJIh58IicgFYVCMIkiFSAffCIffCIpICyFQiiJIix8IjEgEnwgKCAYfCAwIC6FQjCJIiggKnwiKiArhUIBiSIrfCIuIAV8IC4gFYVCIIkiFSAWfCIWICuFQiiJIit8Ii4gFYVCMIkiFSAWfCIWICuFQgGJIit8IjAgBHwgMCAvIA58IB8gHoVCAYkiHnwiHyAJfCAfICiFQiCJIh8gISAifCIhfCIiIB6FQiiJIh58IiggH4VCMIkiH4VCIIkiLyAnICZ8ICEgFIVCAYkiFHwiISATfCAhICCFQiCJIiAgKnwiISAUhUIoiSIUfCInICCFQjCJIiAgIXwiIXwiKiArhUIoiSIrfCIwIAl8ICggF3wgMSAthUIwiSIoICl8IikgLIVCAYkiLHwiLSANfCAtICCFQiCJIiAgFnwiFiAshUIoiSIsfCItICCFQjCJIiAgFnwiFiAshUIBiSIsfCIxIAV8IDEgLiACfCAhIBSFQgGJIhR8IiEgHXwgISAohUIgiSIhIB8gInwiH3wiIiAUhUIoiSIUfCIoICGFQjCJIiGFQiCJIi4gJyAMfCAfIB6FQgGJIh58Ih8gC3wgHyAVhUIgiSIVICl8Ih8gHoVCKIkiHnwiJyAVhUIwiSIVIB98Ih98IikgLIVCKIkiLHwiMSAEfCAoIAp8IDAgL4VCMIkiKCAqfCIqICuFQgGJIit8Ii8gAXwgLyAVhUIgiSIVIBZ8IhYgK4VCKIkiK3wiLyAVhUIwiSIVIBZ8IhYgK4VCAYkiK3wiMCACfCAwIC0gE3wgHyAehUIBiSIefCIfIBJ8IB8gKIVCIIkiHyAhICJ8IiF8IiIgHoVCKIkiHnwiKCAfhUIwiSIfhUIgiSItICcgHXwgISAUhUIBiSIUfCIhIBh8ICEgIIVCIIkiICAqfCIhIBSFQiiJIhR8IicgIIVCMIkiICAhfCIhfCIqICuFQiiJIit8IjAgF3wgKCAmfCAxIC6FQjCJIiggKXwiKSAshUIBiSIsfCIuIAt8IC4gIIVCIIkiICAWfCIWICyFQiiJIix8Ii4gIIVCMIkiICAWfCIWICyFQgGJIix8IjEgDHwgMSAvIA18ICEgFIVCAYkiFHwiISAMfCAhICiFQiCJIgwgHyAifCIffCIhIBSFQiiJIhR8IiIgDIVCMIkiDIVCIIkiKCAnIA58IB8gHoVCAYkiHnwiHyAXfCAfIBWFQiCJIhcgKXwiFSAehUIoiSIefCIfIBeFQjCJIhcgFXwiFXwiJyAshUIoiSIpfCIsIAt8ICIgAnwgMCAthUIwiSICICp8IgsgK4VCAYkiInwiKiAKfCAqIBeFQiCJIgogFnwiFyAihUIoiSIWfCIiIAqFQjCJIgogF3wiFyAWhUIBiSIWfCIqIAF8ICogLiAJfCAVIB6FQgGJIgl8IgEgDnwgASAChUIgiSIBIAwgIXwiAnwiDCAJhUIoiSIJfCIOIAGFQjCJIgGFQiCJIhUgHyANfCACIBSFQgGJIgJ8Ig0gJnwgDSAghUIgiSImIAt8IgsgAoVCKIkiAnwiDSAmhUIwiSImIAt8Igt8IhQgFoVCKIkiFnwiHiAIhSANIBh8IAEgDHwiASAJhUIBiSIJfCIYIAR8IBggCoVCIIkiBCAsICiFQjCJIgogJ3wiGHwiDCAJhUIoiSIJfCINIASFQjCJIgQgDHwiDIU3AwAgECARIBIgIiAFfCALIAKFQgGJIgV8IgJ8IAIgCoVCIIkiCiABfCIBIAWFQiiJIgV8IgKFIBMgDiAdfCAYICmFQgGJIhJ8Ihh8IBggJoVCIIkiEyAXfCIYIBKFQiiJIhJ8Ih0gE4VCMIkiEyAYfCIYhTcDACAbIB0gHIUgAiAKhUIwiSIKIAF8IgGFNwMAIAAgDSAlhSAeIBWFQjCJIgIgFHwiHYU3A4ABIBkgAiAahSAMIAmFQgGJhTcDACADIAQgD4UgHSAWhUIBiYU3AwAgBiAKIAeFIBggEoVCAYmFNwMAICMgEyAkhSABIAWFQgGJhTcDAAtcAAJAIAJBIEcNACAAIAEpAAA3AAEgAEEZaiABQRhqKQAANwAAIABBEWogAUEQaikAADcAACAAQQlqIAFBCGopAAA3AAAgAEEAOgAADwsgAEEDOgABIABBAToAAAvHAgEFfyOAgICAAEHQBWsiAiSAgICAACACQfADakEYaiABQRhqIgMpAAA3AwAgAkHwA2pBEGogAUEQaiIEKQAANwMAIAJB8ANqQQhqIAFBCGoiBSkAADcDACACIAEpAAA3A/ADIAJBkARqIAJB8ANqENaFgIAAAkACQCACKQOQBFANACACIAJBogFqQQZqIAJByAJqQQZqIAJBkARqQQhqQaABELyRgIAAQaABELyRgIAAQaABELyRgIAAIgZByAVqIAMpAAA3AwAgBkHABWogBCkAADcDACAGQbgFaiAFKQAANwMAIAYgASkAADcDsAUgBkHIAmogBkGgARC8kYCAABogBkGQBGogBkHIAmoQ24WAgAAgAEEIaiAGQZAEakHAARC8kYCAABogAEEAOgAADAELIABBgQI7AQALIAJB0AVqJICAgIAAC+4EAQZ/I4CAgIAAQdAFayIEJICAgIAAIARB4AFqEMuFgIAAIARB+ANqIARB4AFqQdgBELyRgIAAGiAEQfgDaiABQSAQyYWAgAAgBEEIaiAEQfgDakHYARC8kYCAABogBEH4A2ogBEEIakHYARC8kYCAABogBEH4A2ogAEGgAWpBIBDJhYCAACAEQeABaiAEQfgDakHYARC8kYCAABogBEH4A2ogBEHgAWpB2AEQvJGAgAAaIARB+ANqIAIgAxDJhYCAACAEQQhqIARB+ANqQdgBELyRgIAAGiAEQeABakE4aiIFQgA3AwAgBEHgAWpBMGoiBkIANwMAIARB4AFqQShqIgdCADcDACAEQeABakEgaiIIQgA3AwAgBEHgAWpBGGoiA0IANwMAIARB4AFqQRBqIgJCADcDACAEQeABakEIaiIJQgA3AwAgBEIANwPgASAEQfgDaiAEQQhqQdgBELyRgIAAGiAEQfgDaiAEQeABahDMhYCAACAEQbgDakEIaiAJKQMANwMAIARBuANqQRBqIAIpAwA3AwAgBEG4A2pBGGogAykDADcDACAEQbgDakEgaiAIKQMANwMAIARBuANqQShqIAcpAwA3AwAgBEG4A2pBMGogBikDADcDACAEQbgDakE4aiAFKQMANwMAIAQgBCkD4AE3A7gDIARB4AFqIARBuANqEM+FgIAAIARB+ANqQRhqIAMpAwA3AwAgBEH4A2pBEGogAikDADcDACAEQfgDakEIaiAJKQMANwMAIAQgBCkD4AE3A/gDIAAgASAEQfgDahDGhYCAACEBIARB0AVqJICAgIAAIAFB/wFxC48EAQF/I4CAgIAAQeAGayIDJICAgIAAIANB8AJqQRhqIAFBOGopAAA3AwAgA0HwAmpBEGogAUEwaikAADcDACADQfACakEIaiABQShqKQAANwMAIAMgASkAIDcD8AIgA0GYBGogA0HwAmoQ0IWAgAACQAJAIAMtAJgERQ0AIANBEWogA0GiBGopAQA3AAAgA0EZaiADQaoEaikBADcAACADQQhqQRhqIANBsQRqKQAANwAAIAMgAykBmgQ3AAkgAyADLQCZBDoACCADQcAFakEYaiABQRhqKQAANwMAIANBwAVqQRBqIAFBEGopAAA3AwAgA0HABWpBCGogAUEIaikAADcDACADIAEpAAA3A8AFIANBmARqIANBwAVqENaFgIAAIAMpA5gEUA0AIANBKGogA0HIAWpBBmogA0HwAmpBBmogA0GgBGpBoAEQvJGAgABBoAEQvJGAgABBoAEQvJGAgAAaIANBwAVqIAIgACADQQhqENyFgIAAIANB8AJqIANBKGpBoAEQvJGAgAAaIANBmARqIANBwAVqQaABELyRgIAAGiADQcgBaiADQfACaiADQZgEahDghYCAACADQfACaiADQcgBahDehYCAACADQZgEahDXhYCAAEEEQQIgA0HwAmogA0GYBGoQ2IWAgABB/wFxQQFGGyEBDAELQQIhAQsgA0HgBmokgICAgAAgAQt2ACAAIAEpAAA3AAAgACABKQAgNwAgIABBGGogAUEYaikAADcAACAAQRBqIAFBEGopAAA3AAAgAEEIaiABQQhqKQAANwAAIABBKGogAUEoaikAADcAACAAQTBqIAFBMGopAAA3AAAgAEE4aiABQThqKQAANwAAC10AAkACQAJAAkAgAC0AAA4EAAECAwALIAFBssDBgABBEhDxkICAAA8LIAFBoMDBgABBEhDxkICAAA8LIAFBkMDBgABBEBDxkICAAA8LIAFB/r/BgABBEhDxkICAAAu9AgICfgR/IAAgACkDACIDIAKtQgOGfCIENwMAIABBCGoiBSAFKQMAIAQgA1StfDcDAAJAAkBBgAEgACgCUCIFayIGIAJLDQAgAEEQaiEHAkAgBUUNACAFQYEBTw0CIABB1ABqIgggBWogASAGELyRgIAAGiAAQQA2AlAgByAIQQEQzYWAgAAgASAGaiEBIAIgBmshAgsgByABIAJBB3YQzYWAgAAgAEHUAGogASACQYB/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ABC7kYCAACACQYAEaiAGQgBCm8rX2f7//wdCABC7kYCAACACQcAEaiADQgBC2sif49rW7gFCABC7kYCAACACQdADaiAFQgBC////////A0IAELuRgIAAIAJBkARqIAZCAEL/////////B0IAELuRgIAAIAJB0ARqIANCAEKbytfZ/v//B0IAELuRgIAAIAJBoARqIAZCAEL///////8DQgAQu5GAgAAgAkHgBGogA0IAQv////////8HQgAQu5GAgAAgAkHwBGogA0IAQv///////wNCABC7kYCAACACQeABaiACKQPwASIEQpv80ZKxtMcCfiIHQv////////8HgyIDQgBC7afX56XjmAFCABC7kYCAACACQdABaiADQgBCgcu1zvfF+gZCABC7kYCAACACQcABaiACKQPAAiIIIAIpA4ACfCIFIAIpA9ABfCIGIAQgAikD4AEiCXwiBEI0iCACQeABakEIaikDACACQfABakEIaikDAHwgBCAJVK18IgpCDIaEfCIJQpv80ZKxtMcCfiILQv////////8HgyIEQgBC7afX56XjmAFCABC7kYCAACACQZABaiADQgBC+b3TAEIAELuRgIAAIAJBsAFqIARCAEKBy7XO98X6BkIAELuRgIAAIAJBgAFqIAIpA9ACIgwgAikDkAJ8Ig0gAikDkAN8Ig4gAikDkAF8Ig8gAikDsAF8IhAgAikDwAEiESAJfCISQjSIIAJBwAFqQQhqKQMAIAJBwAJqQQhqKQMAIAJBgAJqQQhqKQMAfCAFIAhUrXwgAkHQAWpBCGopAwB8IAYgBVStfCAKQjSIfCAJIAZUrXx8IBIgEVStfCITQgyGhHwiBkKb/NGSsbTHAn4iFEL/////////B4MiBUIAQu2n1+el45gBQgAQu5GAgAAgAkGgAWogBEIAQvm90wBCABC7kYCAACACQfAAaiAFQgBCgcu1zvfF+gZCABC7kYCAACACQeAAaiACKQPgAiIVIAIpA6ACfCIJIAIpA6ADfCIIIAIpA+ADfCIKIAIpA6ABfCIRIAIpA3B8IhIgAikDgAEiFiAGfCIXQjSIIAJBgAFqQQhqKQMAIAJB0AJqQQhqKQMAIAJBkAJqQQhqKQMAfCANIAxUrXwgAkGQA2pBCGopAwB8IA4gDVStfCACQZABakEIaikDAHwgDyAOVK18IAJBsAFqQQhqKQMAfCAQIA9UrXwgE0I0iHwgBiAQVK18fCAXIBZUrXwiF0IMhoR8Ig1Cm/zRkrG0xwJ+IhhC/////////weDIgZCAELtp9fnpeOYAUIAELuRgIAAIAJBMGogBUIAQvm90wBCABC7kYCAACACQdAAaiAGQgBCgcu1zvfF+gZCABC7kYCAACACQSBqIAIpA/ACIhkgAikDsAJ8Ig4gAikDsAN8Ig8gAikD8AN8IhAgAikDsAR8IgwgB0IshnwiByACKQMwfCITIAIpA1B8IhYgAikDYCIaIA18IhtCNIggAkHgAGpBCGopAwAgAkHgAmpBCGopAwAgAkGgAmpBCGopAwB8IAkgFVStfCACQaADakEIaikDAHwgCCAJVK18IAJB4ANqQQhqKQMAfCAKIAhUrXwgAkGgAWpBCGopAwB8IBEgClStfCACQfAAakEIaikDAHwgEiARVK18IBdCNIh8IA0gElStfHwgGyAaVK18IhxCDIaEfCINQpv80ZKxtMcCfiIIQv////////8HgyIJQgBC7afX56XjmAFCABC7kYCAACACQcAAaiAGQgBC+b3TAEIAELuRgIAAIAJBEGogCUIAQoHLtc73xfoGQgAQu5GAgAAgAiAJQgBC+b3TAEIAELuRgIAAIAIgCEIshiIdIAIpA/AEfCIIIAIpA+AEIh4gAikDoAR8IgogGEIshnwiESACKQOQBCIfIAIpA9ADfCISIAIpA9AEfCIVIBRCLIZ8IhQgAikDAHwiFyACKQPAAyIgIAIpA4ADfCIYIAIpA4AEfCIaIAIpA8AEfCIbIAtCLIZ8IgsgAikDQHwiISACKQMQfCIiIAIpAyAiIyANfCIkQjSIIAJBIGpBCGopAwAgAkHwAmpBCGopAwAgAkGwAmpBCGopAwB8IA4gGVStfCACQbADakEIaikDAHwgDyAOVK18IAJB8ANqQQhqKQMAfCAQIA9UrXwgAkGwBGpBCGopAwB8IAwgEFStfCADQhSIfCAHIAxUrXwgAkEwakEIaikDAHwgEyAHVK18IAJB0ABqQQhqKQMAfCAWIBNUrXwgHEI0iHwgDSAWVK18fCAkICNUrXwiDUIMhoR8IgNCNIggAkHAA2pBCGopAwAgAkGAA2pBCGopAwB8IBggIFStfCACQYAEakEIaikDAHwgGiAYVK18IAJBwARqQQhqKQMAfCAbIBpUrXwgBEIUiHwgCyAbVK18IAJBwABqQQhqKQMAfCAhIAtUrXwgAkEQakEIaikDAHwgIiAhVK18IA1CNIh8IAMgIlStfCINQgyGhHwiBEI0iCACQZAEakEIaikDACACQdADakEIaikDAHwgEiAfVK18IAJB0ARqQQhqKQMAfCAVIBJUrXwgBUIUiHwgFCAVVK18IAJBCGopAwB8IBcgFFStfCANQjSIfCAEIBdUrXwiDUIMhoR8IgVCNIggAkHgBGpBCGopAwAgAkGgBGpBCGopAwB8IAogHlStfCAGQhSIfCARIApUrXwgDUI0iHwgBSARVK18Ig1CDIaEfCIGQjSIIAlCFIggAkHwBGpBCGopAwB8IAggHVStfCANQjSIfCAGIAhUrXxCDIaEIAVC/////////weDIARC/////////weDIANC/////////weDQpPYqJjanOd+fCIEQj+HfEL/tMqxiLqFeXwiBUI/h3xCh8Ksf3wiCUI/hyAGQv////////8Hg3wiBkI/h3xCgICAgICAfHwiDUI/hyIDQu2n1+el45gBgyAEQv////////8Hg3wiBEL/////////B4M3A6gFIAIgA0KBy7XO98X6BoMgBUL/////////B4N8IARCNIh8IgRC/////////weDNwOwBSACIANC+b3TAIMgCUL/////////B4N8IARCNIh8IgRC/////////weDNwO4BSACIARCNIggBkL/////////B4N8IgRC/////////weDNwPABSACIANCgICAgICABIMgDXwgBEI0iHxC/////////weDNwPIBSAAIAJBqAVqENGFgIAAIAJB0AVqJICAgIAACzoBAX8jgICAgABBMGsiAiSAgICAACACQQhqIAEQ1IWAgAAgACACQQhqENGFgIAAIAJBMGokgICAgAALowIBAn8jgICAgABBwABrIgIkgICAgABBACEDAkACQCABLAAfQQBIDQAgAkEYaiABQRhqKQAANwMAIAJBEGogAUEQaikAADcDACACQQhqIAFBCGopAAA3AwAgAiABKQAANwMAIAIgAi0AH0H/AHE6AB8gAkEgaiACEM6FgIAAQQEhAQNAIAIgA2otAAAgAkEgaiADai0AAEYQzI2AgAAgAXEhASADQQFqIgNBIEcNAAtBACEDAkAgARDMjYCAAEH/AXFBAUcNACAAIAIpAwA3AAEgAEEZaiACQRhqKQMANwAAIABBEWogAkEQaikDADcAACAAQQlqIAJBCGopAwA3AABBASEDCyAAIAM6AAAMAQsgAEEAOgAACyACQcAAaiSAgICAAAvgAgEEfiAAIAEpAyAiAjwAGiAAIAEpAxAiAzwADSAAIAEpAwAiBDwAACAAIAJCKIg8AB8gACACQiCIPAAeIAAgAkIYiDwAHSAAIAJCEIg8ABwgACACQgiIPAAbIAAgASkDGCICQiyIPAAZIAAgAkIkiDwAGCAAIAJCHIg8ABcgACACQhSIPAAWIAAgAkIMiDwAFSAAIAJCBIg8ABQgACADQiiIPAASIAAgA0IgiDwAESAAIANCGIg8ABAgACADQhCIPAAPIAAgA0IIiDwADiAAIAEpAwgiBUIsiDwADCAAIAVCJIg8AAsgACAFQhyIPAAKIAAgBUIUiDwACSAAIAVCDIg8AAggACAFQgSIPAAHIAAgBEIoiDwABSAAIARCIIg8AAQgACAEQhiIPAADIAAgBEIQiDwAAiAAIARCCIg8AAEgACACQgSGIANCMIiEPAATIAAgBUIEhiAEQjCIhDwABgvvFQIBfyF+I4CAgIAAQYAFayIDJICAgIAAIANB8AFqIAIpAwAiBEIAIAEpAwAiBUIAELuRgIAAIANBgAJqIAIpAwgiBkIAIAVCABC7kYCAACADQcACaiABKQMIIgdCACAEQgAQu5GAgAAgA0GQAmogAikDECIIQgAgBUIAELuRgIAAIANBgANqIAdCACAGQgAQu5GAgAAgA0HQAmogASkDECIJQgAgBEIAELuRgIAAIANBoAJqIAIpAxgiCkIAIAVCABC7kYCAACADQcADaiAIQgAgB0IAELuRgIAAIANBkANqIAlCACAGQgAQu5GAgAAgA0HgAmogASkDGCILQgAgBEIAELuRgIAAIANBsAJqIAIpAyAiDEIAIAVCABC7kYCAACADQdADaiAKQgAgB0IAELuRgIAAIANB8ANqIAlCACAIQgAQu5GAgAAgA0GgA2ogC0IAIAZCABC7kYCAACADQfACaiABKQMgIgVCACAEQgAQu5GAgAAgA0HgA2ogDEIAIAdCABC7kYCAACADQaAEaiAKQgAgCUIAELuRgIAAIANBgARqIAtCACAIQgAQu5GAgAAgA0GwA2ogBUIAIAZCABC7kYCAACADQbAEaiAMQgAgCUIAELuRgIAAIANBwARqIAtCACAKQgAQu5GAgAAgA0GQBGogBUIAIAhCABC7kYCAACADQeAEaiAMQgAgC0IAELuRgIAAIANB0ARqIAVCACAKQgAQu5GAgAAgA0HwBGogBUIAIAxCABC7kYCAACADQeABaiADKQPwASIFQpv80ZKxtMcCfiINQv////////8HgyIEQgBC7afX56XjmAFCABC7kYCAACADQdABaiAEQgBCgcu1zvfF+gZCABC7kYCAACADQcABaiADKQPAAiIOIAMpA4ACfCIGIAMpA9ABfCIHIAUgAykD4AEiCHwiBUI0iCADQeABakEIaikDACADQfABakEIaikDAHwgBSAIVK18Ig9CDIaEfCIIQpv80ZKxtMcCfiIQQv////////8HgyIFQgBC7afX56XjmAFCABC7kYCAACADQZABaiAEQgBC+b3TAEIAELuRgIAAIANBsAFqIAVCAEKBy7XO98X6BkIAELuRgIAAIANBgAFqIAMpA5ACIhEgAykDgAN8IgkgAykD0AJ8IgogAykDkAF8IgsgAykDsAF8IgwgAykDwAEiEiAIfCITQjSIIANBwAFqQQhqKQMAIANBwAJqQQhqKQMAIANBgAJqQQhqKQMAfCAGIA5UrXwgA0HQAWpBCGopAwB8IAcgBlStfCAPQjSIfCAIIAdUrXx8IBMgElStfCIUQgyGhHwiB0Kb/NGSsbTHAn4iFUL/////////B4MiBkIAQu2n1+el45gBQgAQu5GAgAAgA0GgAWogBUIAQvm90wBCABC7kYCAACADQfAAaiAGQgBCgcu1zvfF+gZCABC7kYCAACADQeAAaiADKQOQAyIWIAMpA8ADfCIIIAMpA6ACfCIOIAMpA+ACfCIPIAMpA6ABfCISIAMpA3B8IhMgAykDgAEiFyAHfCIYQjSIIANBgAFqQQhqKQMAIANBkAJqQQhqKQMAIANBgANqQQhqKQMAfCAJIBFUrXwgA0HQAmpBCGopAwB8IAogCVStfCADQZABakEIaikDAHwgCyAKVK18IANBsAFqQQhqKQMAfCAMIAtUrXwgFEI0iHwgByAMVK18fCAYIBdUrXwiGEIMhoR8IglCm/zRkrG0xwJ+IhlC/////////weDIgdCAELtp9fnpeOYAUIAELuRgIAAIANBMGogBkIAQvm90wBCABC7kYCAACADQdAAaiAHQgBCgcu1zvfF+gZCABC7kYCAACADQSBqIAMpA9ADIhogAykD8AN8IgogDUIshnwiCyADKQOgA3wiDCADKQOwAnwiDSADKQPwAnwiESADKQMwfCIUIAMpA1B8IhcgAykDYCIbIAl8IhxCNIggA0HgAGpBCGopAwAgA0GQA2pBCGopAwAgA0HAA2pBCGopAwB8IAggFlStfCADQaACakEIaikDAHwgDiAIVK18IANB4AJqQQhqKQMAfCAPIA5UrXwgA0GgAWpBCGopAwB8IBIgD1StfCADQfAAakEIaikDAHwgEyASVK18IBhCNIh8IAkgE1StfHwgHCAbVK18Ih1CDIaEfCIJQpv80ZKxtMcCfiIeQv////////8HgyIIQgBC7afX56XjmAFCABC7kYCAACADQcAAaiAHQgBC+b3TAEIAELuRgIAAIANBEGogCEIAQoHLtc73xfoGQgAQu5GAgAAgAyAIQgBC+b3TAEIAELuRgIAAIABC////////AyADKQPQBCIfIAMpA+AEfCIOIBlCLIZ8Ig8gAykDsAQiICADKQPABHwiEiADKQOQBHwiEyAVQiyGfCIVIAMpAwB8IhYgAykDgAQiISADKQOgBHwiGCADKQPgA3wiGSADKQOwA3wiGyAQQiyGfCIQIAMpA0B8IhwgAykDEHwiIiADKQMgIiMgCXwiJEI0iCADQSBqQQhqKQMAIANB0ANqQQhqKQMAIANB8ANqQQhqKQMAfCAKIBpUrXwgBEIUiHwgCyAKVK18IANBoANqQQhqKQMAfCAMIAtUrXwgA0GwAmpBCGopAwB8IA0gDFStfCADQfACakEIaikDAHwgESANVK18IANBMGpBCGopAwB8IBQgEVStfCADQdAAakEIaikDAHwgFyAUVK18IB1CNIh8IAkgF1StfHwgJCAjVK18IglCDIaEfCIEQjSIIANBgARqQQhqKQMAIANBoARqQQhqKQMAfCAYICFUrXwgA0HgA2pBCGopAwB8IBkgGFStfCADQbADakEIaikDAHwgGyAZVK18IAVCFIh8IBAgG1StfCADQcAAakEIaikDAHwgHCAQVK18IANBEGpBCGopAwB8ICIgHFStfCAJQjSIfCAEICJUrXwiCUIMhoR8IgVCNIggA0GwBGpBCGopAwAgA0HABGpBCGopAwB8IBIgIFStfCADQZAEakEIaikDAHwgEyASVK18IAZCFIh8IBUgE1StfCADQQhqKQMAfCAWIBVUrXwgCUI0iHwgBSAWVK18IglCDIaEfCIGQv////////8HgyAEQv////////8Hg0KT2KiY2pznfnwiCkI/hyAFQv////////8Hg3xC/7TKsYi6hXl8IgtCP4d8QofCrH98IgxCP4cgHkIshiISIAMpA/AEfCIEIAZCNIggA0HQBGpBCGopAwAgA0HgBGpBCGopAwB8IA4gH1StfCAHQhSIfCAPIA5UrXwgCUI0iHwgBiAPVK18IgZCDIaEfCIFQv////////8Hg3wiB0I/hyAFQjSIIAhCFIggA0HwBGpBCGopAwB8IAQgElStfCAGQjSIfCAFIARUrXxCDIaEfCIFfUI/iEJ/fCIEQu2n1+el45gBgyAKQv////////8Hg3wiBkL/////////B4M3AwAgACAEQoHLtc73xfoGgyALQv////////8Hg3wgBkI0iHwiBkL/////////B4M3AwggACAEQvm90wCDIAxC/////////weDfCAGQjSIfCIGQv////////8HgzcDECAAIAZCNIggB0L/////////B4N8IgZC/////////weDNwMYIAAgBSAEQoCAgICAgASDfCAGQjSIfEKAgICAgID8B3xC/////////weDNwMgIANBgAVqJICAgIAAC84CARN+IAExAB8hAiABMQAeIQMgATEAHSEEIAExABwhBSABMQAaIQYgATEAGyEHIAE1AAghCCABMQAMIQkgATEAByEKIAEzABghCyABMQAXIQwgATEAFiENIAExABQhDiABMQAVIQ8gATUAECEQIAExAA8hESABMQANIRIgATEADiETIAAgATUAACABMQAEQiCGhCABMQAFQiiGhCABMQAGQjCGhCIUQv////////8HgzcDACAAIBBCGIYgEkIohiATQjCGhCARQjiGhEIoiIRC/////////weDNwMQIAAgC0IkhiAQIA5CIIaEIA9CKIaEIA1CMIaEIAxCOIaEQhyIhDcDGCAAIAggCUIghoRCDIYgCkI4hiAUhEI0iIQ3AwggACALIAZCEIaEIAdCGIaEIAVCIIaEIARCKIaEIANCMIaEIAJCOIaEQhCINwMgC5ELBQF/K34BfwF+Cn8jgICAgABBgAFrIgIkgICAgAAgATEAJiEDIAExACUhBCABMQAkIQUgATEAIyEGIAExACEhByABMQAiIQggATEAICEJIAExAB8hCiABMQAeIQsgATEAHSEMIAExABwhDSABMQAaIQ4gATEAGyEPIAExAD8hECABMQA+IREgATEAPSESIAExADwhEyABMQA7IRQgATUAMCEVIAExAC8hFiABMQAuIRcgATMAOCEYIAExADohGSABMQA3IRogATEANiEbIAExADQhHCABMQA1IR0gATUACCEeIAExAAwhHyABMQAHISAgATEABiEhIAE1AAAhIiABMQAEISMgATEABSEkIAEzABghJSABMQAXISYgATEAFiEnIAExABQhKCABMQAVISkgATEAJyEqIAE1ACghKyABMQAsISwgATEALSEtIAJBCGpBEGoiLiABNQAQIi9CGIYgATEADUIohiABMQAOQjCGhCABMQAPQjiGhEIoiIRC/////////weDNwMAIAJBMGpBCGoiMCAqICsgLEIghoQgLUIohoQiK0IIhoRC/////////weDNwMAIAJBCGpBGGoiASAlQiSGIC8gKEIghoQgKUIohoQgJ0IwhoQgJkI4hoRCHIiENwMAIAJBCGpBCGoiMSAeIB9CIIaEQgyGICBCOIYgIiAjQiCGhCAkQiiGhCAhQjCGhCIehEI0iIQ3AwAgAkEwakEYaiIyIBggGUIQhoQiGEIghiAcQiCGIB1CKIaEIBtCMIaEIBpCOIaEQiCIhEL/////////B4M3AwAgAkEwakEQaiIzIBVCFIYgF0IwhiArhCAWQjiGhEIsiIQ3AwAgAkEwakEgaiI0IBRCGIYgGIQgE0IghoQgEkIohoQgEUIwhoQgEEI4hoRCFIg3AwAgAkEIakEgaiI1IAlCMIYgJSAOQhCGhCAPQhiGhCANQiCGhCAMQiiGhCALQjCGhCAKQjiGhEIQiIRC/////////weDNwMAIAIgHkL/////////B4M3AwggAiAJIAdCCIaEIAhCEIaEIAZCGIaEIAVCIIaEIARCKIaEIANCMIaEQgSINwMwIAJB2ABqIAJBCGpBuMLBgAAQ0oWAgAAgNSACQdgAakEgaiI2KQMANwMAIAEgAkHYAGpBGGoiNykDADcDACAuIAJB2ABqQRBqIjgpAwA3AwAgMSACQdgAakEIaiI5KQMANwMAIAIgAikDWDcDCCACQdgAaiACQTBqQeDCwYAAENKFgIAAIDQgNikDACIJNwMAIDIgNykDACIlNwMAIDMgOCkDACIDNwMAIDAgOSkDACIENwMAIAIgAikDWCIFNwMwIABC7afX56XjmAFCACADIC4pAwB8IAQgBSACKQMIfCIDQjSIfCAxKQMAfCIEQjSIfCIFQv////////8HgyADQv////////8Hg0KT2KiY2pznfnwiA0I/hyAEQv////////8Hg3xC/7TKsYi6hXl8IgRCP4d8QofCrH98IgZCP4cgJSABKQMAfCAFQjSIfCIlQv////////8Hg3wiBUI/hyAJIDUpAwB8ICVCNIh8Qv////////8Hg3wiCUKAgICAgIAEUyIBGyADQv////////8Hg3wiJUL/////////B4M3AwAgAEKBy7XO98X6BkIAIAEbIARC/////////weDfCAlQjSIfCIlQv////////8HgzcDCCAAQvm90wBCACABGyAGQv////////8Hg3wgJUI0iHwiJUL/////////B4M3AxAgACAlQjSIIAVC/////////weDfCIlQv////////8HgzcDGCAAIAkgAa1CLIZ8ICVCNIh8QoCAgICAgPwHfEL/////////B4M3AyAgAkGAAWokgICAgAAL6w4FAX8BfgN/AX4IfyOAgICAAEGAFGsiBCSAgICAACAEQQhqQQBBgAIQuZGAgAAaIARBiARqQQhqIAFBCGopAAA3AwAgBEGIBGpBEGogAUEQaikAADcDACAEQYgEakEYaiABQRhqKQAANwMAQgAhBSAEQgA3A6gEIAQgASkAADcDiARBACEBA0BBACABayEGAkADQCABQQZ2IQcCQAJAIAFBP3EiCEE6Sw0AIARBiARqIAdBA3RqKQMAIAitiCEJDAELIARBiARqIAdBA3RqIgdBCGopAwAgBkE/ca2GIAcpAwAgCK2IhCEJCwJAIAlCH4MgBXwiCUIBg1BFDQAgBkF/aiEGIAFBAWoiAUGAAkcNAQwCCwsgBEEIaiABakEAQWAgCUIQVBsgCadqOgAAIAlCD1atIQUgAUEFaiIBQYACSQ0BCwsgBEGIAmpBAEGAAhC5kYCAABogBEGIBGpBCGogA0EIaikAADcDACAEQYgEakEQaiADQRBqKQAANwMAIARBiARqQRhqIANBGGopAAA3AwBCACEFIARCADcDqAQgBCADKQAANwOIBEEAIQEDQEEAIAFrIQYCQANAIAFBBnYhBwJAAkAgAUE/cSIIQTdLDQAgBEGIBGogB0EDdGopAwAgCK2IIQkMAQsgBEGIBGogB0EDdGoiB0EIaikDACAGQT9xrYYgBykDACAIrYiEIQkLAkAgCUL/AYMgBXwiCUIBg1BFDQAgBkF/aiEGIAFBAWoiAUGAAkcNAQwCCwsgBEGIAmogAWogCTwAACAJQv8AVq0hBSABQQhqIgFBgAJJDQELC0H/ASEGAkADQCAEQQhqIAYiAWotAAANASAEQYgCaiABai0AAA0BIAFBf2ohBiABDQALCyAEQYgEaiACEOeFgIAAIARBqA5qQgA3AwAgBEGIDmpBGGpCADcDACAEQYgOakEQakIANwMAIARBkA5qQgA3AwAgBEG4DmpCADcDACAEQcAOakIANwMAIARByA5qQgA3AwAgBEHQDmpCADcDACAEQeAOakIANwMAIARB6A5qQgA3AwAgBEHwDmpCADcDACAEQfgOakIANwMAIARCADcDiA4gBEIBNwOwDiAEQgE3A9gOIARB4BJqQdAAaiECIARB4BJqQShqIQogBEHgEmpB+ABqIQsgBEHAEWpB+ABqIQwgBEHAEWpB0ABqIQ0gBEHAEWpBKGohDiAEQYAPakHQAGohBiAEQYAPakEoaiEIIARBgA9qQfgAaiEHIARBiA5qQdAAaiEPIARBiA5qQShqIRADQCAEQYAPaiAEQYgOahDohYCAAAJAAkACQAJAAkACQCAEQQhqIAFqLAAAIgNBAUgNACAEQcARaiAEQYAPaiAHEOSFgIAAIA4gCCAGEOSFgIAAIA0gBiAHEOSFgIAAIAwgBEGAD2ogCBDkhYCAACADQf4BcUEBdiERIANBEE8NAiAEQeASaiAEQYgEaiARQaABbGpBoAEQvJGAgAAaIARBoBBqIARBwBFqIARB4BJqENmFgIAAIARBgA9qIARBoBBqQaABELyRgIAAGgwBCyADQX9KDQAgBEHAEWogBEGAD2ogBxDkhYCAACAOIAggBhDkhYCAACANIAYgBxDkhYCAACAMIARBgA9qIAgQ5IWAgABBACADayIDQRh0QRh1QQF2IREgA0H/AXFBEE8NAiAEQeASaiAEQYgEaiARQaABbGpBoAEQvJGAgAAaIARBoBBqIARBwBFqIARB4BJqENqFgIAAIARBgA9qIARBoBBqQaABELyRgIAAGgsCQCAEQYgCaiABaiwAACIDQQFIDQAgBEHgEmogBEGAD2ogBxDkhYCAACAKIAggBhDkhYCAACACIAYgBxDkhYCAACALIARBgA9qIAgQ5IWAgAAgBEGgEGogA0H+AXFBAXZB+ABsQYjDwYAAakH4ABC8kYCAABogBEHAEWogBEHgEmogBEGgEGoQ3YWAgAAgBEGAD2ogBEHAEWpBoAEQvJGAgAAaDAQLIANBf0oNAyAEQeASaiAEQYAPaiAHEOSFgIAAIAogCCAGEOSFgIAAIAIgBiAHEOSFgIAAIAsgBEGAD2ogCBDkhYCAAEEAIANrQRh0QRh1IgNBAXYhESADQX9MDQIgBEGgEGogEUH4AGxBiMPBgABqQfgAELyRgIAAGiAEQcARaiAEQeASaiAEQaAQahDfhYCAACAEQYAPaiAEQcARakGgARC8kYCAABoMAwsgEUEIQeCAwoAAELeQgIAAAAsgEUEIQeCAwoAAELeQgIAAAAsgEUHAAEHwgMKAABC3kICAAAALIARB4BJqIARBgA9qIAcQ5IWAgAAgCiAIIAYQ5IWAgAAgAiAGIAcQ5IWAgAAgBEGIDmogBEHgEmpB+AAQvJGAgAAaAkAgAQ0AIAAgBEGIDmogDxDkhYCAACAAQShqIBAgDxDkhYCAACAAQdAAaiAPQQEQ44WAgAAgAEH4AGogBEGIDmogEBDkhYCAACAEQYAUaiSAgICAAA8LIAFBf2ohAQwACwvmBwQBfwJ+CH8GfiOAgICAAEHwAmsiAiSAgICAACACQQhqIAEQ5oWAgAAgAkEwaiACQQhqQQEQ44WAgAAgAiACKQNQQvD///////8/fCIDQv////////8DgyACKQNIQvD///////8/fCIEQjOIfDcDeCACIARC/////////wODIAIpA0BC8P///////z98IgRCM4h8NwNwIAIgBEL/////////A4MgAikDOELw////////P3wiBEIziHw3A2ggAiAEQv////////8DgyACKQMwQs/9//////8/fCIEQjOIfDcDYCACIANCM4hCE34gBEL/////////A4N8NwNYIAJBgAFqIAJBMGpBiP/BgAAQ5IWAgAAgAiACKQOAAUIBfDcDgAEgAkHQAWogAkHYAGogAkGAAWoQ5YWAgAAgAi0A0AEhBSACQagBakEgaiIGIAJB+AFqKQMANwMAIAJBqAFqQRhqIgcgAkHQAWpBIGoiCCkDADcDACACQagBakEQaiIJIAJB0AFqQRhqIgopAwA3AwAgAkGoAWpBCGoiCyACQdABakEQaiIMKQMANwMAIAIgAikD2AE3A6gBAkACQCAFQQFHDQAgAS0AH0EHdhDMjYCAACEBIAYgBikDACIEQvD///////8/IAR9Ig1C/////////wODQvD///////8/IAcpAwAiDn0iD0IziHyFQgAgAa1C/wGDfSIDgyAEhSIQNwMAIAcgDiAOIA9C/////////wODQvD///////8/IAkpAwAiBH0iD0IziHyFIAODhSIRNwMAIAkgBCAEIA9C/////////wODQvD///////8/IAspAwAiDn0iD0IziHyFIAODhSISNwMAIAsgDiAOIA9C/////////wODQtD9//////8/IAIpA6gBIgR9Ig9CM4h8hSADg4UiDjcDACACIAQgBCANQjOIQhN+IA9C/////////wODfIUgA4OFIgM3A6gBIAggEDcDACAKIBE3AwAgDCASNwMAIAJB0AFqQQhqIA43AwAgAkGAAmogAkEIakEIaikDADcDACACQYgCaiACQQhqQRBqKQMANwMAIAJBkAJqIAJBCGpBGGopAwA3AwAgAkGYAmogAkEIakEgaikDADcDACACQcACakIANwMAIAJBuAJqQgA3AwAgAkGwAmpCADcDACACQagCakIANwMAIAIgAzcD0AEgAiACKQMINwP4ASACQgE3A6ACIAJByAJqIAJBqAFqIAJBCGoQ5IWAgAAgAEEIaiACQdABakGgARC8kYCAABogAEIBNwMADAELIABCADcDAAsgAkHwAmokgICAgAALewAgAEIANwMAIABCATcDKCAAQgE3A1AgAEEgakIANwMAIABBGGpCADcDACAAQRBqQgA3AwAgAEEIakIANwMAIABBMGpCADcDACAAQThqQgA3AwAgAEHAAGpCADcDACAAQcgAakIANwMAIABB2ABqQQBByAAQuZGAgAAaC8cCAQZ/I4CAgIAAQeABayICJICAgIAAIAIgACABQdAAaiIDEOSFgIAAIAJBKGogASAAQdAAaiIEEOSFgIAAIAJB0ABqIAIQ4YWAgAAgAkH4AGogAkEoahDhhYCAAEEAIQVBASEGA0AgAkHQAGogBWotAAAgAkH4AGogBWotAABGEMyNgIAAIAZxIQYgBUEBaiIFQSBHDQALIAYQzI2AgAAhByACQdAAaiAAQShqIAMQ5IWAgAAgAkH4AGogAUEoaiAEEOSFgIAAIAJBoAFqIAJB0ABqEOGFgIAAIAJBwAFqIAJB+ABqEOGFgIAAQQAhBUEBIQYDQCACQaABaiAFai0AACACQcABaiAFai0AAEYQzI2AgAAgBnEhBiAFQQFqIgVBIEcNAAsgBhDMjYCAACAHcRDMjYCAACEFIAJB4AFqJICAgIAAIAULpgkIAn8BfgF/AX4BfwF+AX8HfiOAgICAAEHwAWsiAySAgICAACADQQhqIAFBMGoiBCkDACABKQMIIgV8NwMAIANBEGogAUE4aiIGKQMAIAEpAxAiB3w3AwAgA0EYaiABQcAAaiIIKQMAIAEpAxgiCXw3AwAgA0EgaiABQcgAaiIKKQMAIAEpAyAiC3w3AwAgAyABKQMoIAEpAwAiDHw3AwAgAyAKKQMAIAt9QvD///////8/fCILQv////////8DgyAIKQMAIAl9QvD///////8/fCIJQjOIfDcDSCADIAlC/////////wODIAYpAwAgB31C8P///////z98IgdCM4h8NwNAIAMgB0L/////////A4MgBCkDACAFfULw////////P3wiBUIziHw3AzggAyAFQv////////8DgyABKQMoIAx9QtD9//////8/fCIFQjOIfDcDMCADIAtCM4hCE34gBUL/////////A4N8NwMoIANB0ABqIAMgAhDkhYCAACADQfgAaiADQShqIAJBKGoQ5IWAgAAgA0GgAWogAUH4AGogAkH4AGoQ5IWAgAAgA0HIAWogAUHQAGogAkHQAGoQ5IWAgAAgACADQdAAakEgaiIBKQMAIAMpA5gBIgV9QvD///////8/fCIHQv////////8DgyADQdAAakEYaiICKQMAIAMpA5ABIgl9QvD///////8/fCILQjOIfDcDICAAIAtC/////////wODIANB0ABqQRBqIgQpAwAgAykDiAEiC31C8P///////z98IgxCM4h8NwMYIAAgDEL/////////A4MgA0HQAGpBCGoiBikDACADKQOAASIMfULw////////P3wiDUIziHw3AxAgACANQv////////8DgyADKQNQIAMpA3giDX1C0P3//////z98Ig5CM4h8NwMIIAAgB0IziEITfiAOQv////////8Dg3w3AwAgAykD6AEhByADKQPgASEOIAMpA9gBIQ8gAykD0AEhECADKQPIASERIAAgDSADKQNQfDcDKCAAQTBqIAwgBikDAHw3AwAgAEE4aiALIAQpAwB8NwMAIABBwABqIAkgAikDAHw3AwAgAEHIAGogBSABKQMAfDcDACAAIAMpA6ABIgkgEUIBhiILfDcDUCAAQdgAaiAQQgGGIgwgAykDqAEiDXw3AwAgAEHgAGogD0IBhiIPIAMpA7ABIhB8NwMAIABB6ABqIA5CAYYiDiADKQO4ASIRfDcDACADKQPAASEFIABBiAFqIA8gEH1C8P///////z98Ig9C/////////wODIAwgDX1C8P///////z98IgxCM4h8NwMAIABBgAFqIAxC/////////wODIAsgCX1C0P3//////z98IglCM4h8NwMAIABBkAFqIA4gEX1C8P///////z98IgtC/////////wODIA9CM4h8NwMAIABB8ABqIAUgB0IBhiIHfDcDACAAQZgBaiAHIAV9QvD///////8/fCIFQv////////8DgyALQjOIfDcDACAAIAVCM4hCE34gCUL/////////A4N8NwN4IANB8AFqJICAgIAAC6wJCAJ/AX4BfwF+AX8BfgF/CH4jgICAgABB8AFrIgMkgICAgAAgA0EIaiABQTBqIgQpAwAgASkDCCIFfDcDACADQRBqIAFBOGoiBikDACABKQMQIgd8NwMAIANBGGogAUHAAGoiCCkDACABKQMYIgl8NwMAIANBIGogAUHIAGoiCikDACABKQMgIgt8NwMAIAMgASkDKCABKQMAIgx8NwMAIAMgCikDACALfULw////////P3wiC0L/////////A4MgCCkDACAJfULw////////P3wiCUIziHw3A0ggAyAJQv////////8DgyAGKQMAIAd9QvD///////8/fCIHQjOIfDcDQCADIAdC/////////wODIAQpAwAgBX1C8P///////z98IgVCM4h8NwM4IAMgBUL/////////A4MgASkDKCAMfULQ/f//////P3wiBUIziHw3AzAgAyALQjOIQhN+IAVC/////////wODfDcDKCADQdAAaiADIAJBKGoQ5IWAgAAgA0H4AGogA0EoaiACEOSFgIAAIANBoAFqIAFB+ABqIAJB+ABqEOSFgIAAIANByAFqIAFB0ABqIAJB0ABqEOSFgIAAIAAgA0HQAGpBIGoiASkDACADKQOYASIFfULw////////P3wiB0L/////////A4MgA0HQAGpBGGoiAikDACADKQOQASIJfULw////////P3wiC0IziHw3AyAgACALQv////////8DgyADQdAAakEQaiIEKQMAIAMpA4gBIgt9QvD///////8/fCIMQjOIfDcDGCAAIAxC/////////wODIANB0ABqQQhqIgYpAwAgAykDgAEiDH1C8P///////z98Ig1CM4h8NwMQIAAgDUL/////////A4MgAykDUCADKQN4Ig19QtD9//////8/fCIOQjOIfDcDCCAAIAdCM4hCE34gDkL/////////A4N8NwMAIAMpA8gBIQ4gAykD0AEhDyADKQPYASEQIAMpA+ABIREgAykD6AEhEiAAIA0gAykDUHw3AyggAEEwaiAMIAYpAwB8NwMAIABBOGogCyAEKQMAfDcDACAAQcAAaiAJIAIpAwB8NwMAIABByABqIAUgASkDAHw3AwAgAykDoAEhBSADKQOoASEHIAMpA7ABIQkgAykDuAEhCyAAQZgBaiASQgGGIgwgAykDwAEiDXw3AwAgAEGQAWogCyARQgGGIhF8NwMAIABBiAFqIAkgEEIBhiIQfDcDACAAQYABaiAHIA9CAYYiD3w3AwAgACAFIA5CAYYiDnw3A3ggAEHwAGogDCANfULw////////P3wiDEL/////////A4MgESALfULw////////P3wiC0IziHw3AwAgAEHoAGogC0L/////////A4MgECAJfULw////////P3wiCUIziHw3AwAgAEHgAGogCUL/////////A4MgDyAHfULw////////P3wiB0IziHw3AwAgAEHYAGogB0L/////////A4MgDiAFfULQ/f//////P3wiBUIziHw3AwAgACAMQjOIQhN+IAVC/////////wODfDcDUCADQfABaiSAgICAAAuoBQMDfgR/An4gACABKQMoNwMoIABBMGogAUEwaikDADcDACAAQThqIAFBOGopAwA3AwAgAEHAAGogAUHAAGopAwA3AwAgAEHIAGogAUHIAGopAwA3AwAgAEEIakLw////////PyABQQhqKQMAfSICQv////////8Dg0LQ/f//////PyABKQMAfSIDQjOIfDcDACAAQRBqQvD///////8/IAFBEGopAwB9IgRC/////////wODIAJCM4h8NwMAIABBGGpC8P///////z8gAUEYaikDAH0iAkL/////////A4MgBEIziHw3AwAgAEEgakLw////////PyABQSBqKQMAfSIEQv////////8DgyACQjOIfDcDACAAIARCM4hCE34gA0L/////////A4N8NwMAIABB8ABqIAFB8ABqKQMANwMAIABB6ABqIAFB6ABqKQMANwMAIABB4ABqIAFB4ABqKQMANwMAIABB2ABqIAFB2ABqKQMANwMAIAAgASkDUDcDUCAAQZgBaiIFIAFBmAFqKQMANwMAIABBkAFqIgYgAUGQAWopAwA3AwAgAEGIAWoiByABQYgBaikDADcDACAAQYABaiIIIAFBgAFqKQMANwMAIAAgASkDeDcDeCAIKQMAIQIgBykDACEDIAApA3ghBCAFQvD///////8/IAUpAwB9IglC/////////wODQvD///////8/IAYpAwB9IgpCM4h8NwMAIAYgCkL/////////A4NC8P///////z8gA30iA0IziHw3AwAgByADQv////////8Dg0Lw////////PyACfSICQjOIfDcDACAIIAJC/////////wODQtD9//////8/IAR9IgJCM4h8NwMAIAAgCUIziEITfiACQv////////8Dg3w3A3gLEAAgACABIAIgAxDVhYCAAAupCQgCfwF+AX8BfgF/AX4Bfwd+I4CAgIAAQdABayIDJICAgIAAIANBCGpBCGogAUEwaiIEKQMAIAEpAwgiBXw3AwAgA0EIakEQaiABQThqIgYpAwAgASkDECIHfDcDACADQQhqQRhqIAFBwABqIggpAwAgASkDGCIJfDcDACADQQhqQSBqIAFByABqIgopAwAgASkDICILfDcDACADIAEpAyggASkDACIMfDcDCCADIAopAwAgC31C8P///////z98IgtC/////////wODIAgpAwAgCX1C8P///////z98IglCM4h8NwNQIAMgCUL/////////A4MgBikDACAHfULw////////P3wiB0IziHw3A0ggAyAHQv////////8DgyAEKQMAIAV9QvD///////8/fCIFQjOIfDcDQCADIAVC/////////wODIAEpAyggDH1C0P3//////z98IgVCM4h8NwM4IAMgC0IziEITfiAFQv////////8Dg3w3AzAgA0HYAGogA0EIaiACEOSFgIAAIANBgAFqIANBMGogAkEoahDkhYCAACADQagBaiABQfgAaiACQdAAahDkhYCAACAAIANB2ABqQSBqIgIpAwAgAykDoAEiBX1C8P///////z98IgdC/////////wODIANB2ABqQRhqIgQpAwAgAykDmAEiCX1C8P///////z98IgtCM4h8NwMgIAAgC0L/////////A4MgA0HYAGpBEGoiBikDACADKQOQASILfULw////////P3wiDEIziHw3AxggACAMQv////////8DgyADQdgAakEIaiIIKQMAIAMpA4gBIgx9QvD///////8/fCINQjOIfDcDECAAIA1C/////////wODIAMpA1ggAykDgAEiDX1C0P3//////z98Ig5CM4h8NwMIIAAgB0IziEITfiAOQv////////8Dg3w3AwAgAUHwAGopAwAhByABQegAaikDACEOIAFB4ABqKQMAIQ8gAUHYAGopAwAhECABKQNQIREgACANIAMpA1h8NwMoIABBMGogDCAIKQMAfDcDACAAQThqIAsgBikDAHw3AwAgAEHAAGogCSAEKQMAfDcDACAAQcgAaiAFIAIpAwB8NwMAIAAgAykDqAEiCSARQgGGIgt8NwNQIABB2ABqIBBCAYYiDCADKQOwASINfDcDACAAQeAAaiAPQgGGIg8gAykDuAEiEHw3AwAgAEHoAGogDkIBhiIOIAMpA8ABIhF8NwMAIAMpA8gBIQUgAEGIAWogDyAQfULw////////P3wiD0L/////////A4MgDCANfULw////////P3wiDEIziHw3AwAgAEGAAWogDEL/////////A4MgCyAJfULQ/f//////P3wiCUIziHw3AwAgAEGQAWogDiARfULw////////P3wiC0L/////////A4MgD0IziHw3AwAgAEHwAGogBSAHQgGGIgd8NwMAIABBmAFqIAcgBX1C8P///////z98IgVC/////////wODIAtCM4h8NwMAIAAgBUIziEITfiAJQv////////8Dg3w3A3ggA0HQAWokgICAgAALmwUBBX8jgICAgABBwANrIgIkgICAgAAgAkGoAWpBIGogAUEgaikDADcDACACQagBakEYaiABQRhqKQMANwMAIAJBqAFqQRBqIAFBEGopAwA3AwAgAkGoAWpBCGogAUEIaikDADcDACACQagBakEwaiABQTBqKQMANwMAIAJBqAFqQThqIAFBOGopAwA3AwAgAkGoAWpBwABqIAFBwABqKQMANwMAIAJBqAFqQcgAaiABQcgAaikDADcDACACIAEpAwA3A6gBIAIgASkDKDcD0AEgAkGoAWpB8ABqIAFB8ABqKQMANwMAIAJBqAFqQegAaiABQegAaikDADcDACACQagBakHgAGogAUHgAGopAwA3AwAgAkGoAWpB2ABqIAFB2ABqKQMANwMAIAIgASkDUDcD+AEgAkGgAmogAkGoAWoQ6IWAgAAgAkEIaiACQaACakGgARC8kYCAABogAkGgAmogAkEIaiACQQhqQfgAaiIBEOSFgIAAIAJBoAJqQShqIgMgAkEIakEoaiIEIAJBCGpB0ABqIgUQ5IWAgAAgAkGgAmpB0ABqIgYgBSABEOSFgIAAIAJBqAFqIAJBoAJqQfgAELyRgIAAGiACQaACaiACQagBahDohYCAACACQQhqIAJBoAJqQaABELyRgIAAGiACQaACaiACQQhqIAEQ5IWAgAAgAyAEIAUQ5IWAgAAgBiAFIAEQ5IWAgAAgAkGoAWogAkGgAmpB+AAQvJGAgAAaIAJBoAJqIAJBqAFqEOiFgIAAIAAgAkGgAmogAkGgAmpB+ABqIgEQ5IWAgAAgAEEoaiADIAYQ5IWAgAAgAEHQAGogBiABEOSFgIAAIABB+ABqIAJBoAJqIAMQ5IWAgAAgAkHAA2okgICAgAALrwkIAn8BfgF/AX4BfwF+AX8IfiOAgICAAEHQAWsiAySAgICAACADQQhqQQhqIAFBMGoiBCkDACABKQMIIgV8NwMAIANBCGpBEGogAUE4aiIGKQMAIAEpAxAiB3w3AwAgA0EIakEYaiABQcAAaiIIKQMAIAEpAxgiCXw3AwAgA0EIakEgaiABQcgAaiIKKQMAIAEpAyAiC3w3AwAgAyABKQMoIAEpAwAiDHw3AwggAyAKKQMAIAt9QvD///////8/fCILQv////////8DgyAIKQMAIAl9QvD///////8/fCIJQjOIfDcDUCADIAlC/////////wODIAYpAwAgB31C8P///////z98IgdCM4h8NwNIIAMgB0L/////////A4MgBCkDACAFfULw////////P3wiBUIziHw3A0AgAyAFQv////////8DgyABKQMoIAx9QtD9//////8/fCIFQjOIfDcDOCADIAtCM4hCE34gBUL/////////A4N8NwMwIANB2ABqIANBCGogAkEoahDkhYCAACADQYABaiADQTBqIAIQ5IWAgAAgA0GoAWogAUH4AGogAkHQAGoQ5IWAgAAgACADQdgAakEgaiICKQMAIAMpA6ABIgV9QvD///////8/fCIHQv////////8DgyADQdgAakEYaiIEKQMAIAMpA5gBIgl9QvD///////8/fCILQjOIfDcDICAAIAtC/////////wODIANB2ABqQRBqIgYpAwAgAykDkAEiC31C8P///////z98IgxCM4h8NwMYIAAgDEL/////////A4MgA0HYAGpBCGoiCCkDACADKQOIASIMfULw////////P3wiDUIziHw3AxAgACANQv////////8DgyADKQNYIAMpA4ABIg19QtD9//////8/fCIOQjOIfDcDCCAAIAdCM4hCE34gDkL/////////A4N8NwMAIAFB2ABqKQMAIQ4gAUHgAGopAwAhDyABQegAaikDACEQIAFB8ABqKQMAIREgASkDUCESIAAgDSADKQNYfDcDKCAAQTBqIAwgCCkDAHw3AwAgAEE4aiALIAYpAwB8NwMAIABBwABqIAkgBCkDAHw3AwAgAEHIAGogBSACKQMAfDcDACADKQOoASEFIAMpA7ABIQcgAykDuAEhCSADKQPAASELIABBmAFqIBFCAYYiDCADKQPIASINfDcDACAAQZABaiALIBBCAYYiEHw3AwAgAEGIAWogCSAPQgGGIg98NwMAIABBgAFqIAcgDkIBhiIOfDcDACAAIAUgEkIBhiIRfDcDeCAAQfAAaiAMIA19QvD///////8/fCIMQv////////8DgyAQIAt9QvD///////8/fCILQjOIfDcDACAAQegAaiALQv////////8DgyAPIAl9QvD///////8/fCIJQjOIfDcDACAAQeAAaiAJQv////////8DgyAOIAd9QvD///////8/fCIHQjOIfDcDACAAQdgAaiAHQv////////8DgyARIAV9QtD9//////8/fCIFQjOIfDcDACAAIAxCM4hCE34gBUL/////////A4N8NwNQIANB0AFqJICAgIAAC+QEAwF/Cn4BfyOAgICAAEHAAmsiAySAgICAACADQagBaiACQTBqKQMAIgQgAikDCCIFfDcDACADQbABaiACQThqKQMAIgYgAikDECIHfDcDACADQbgBaiACQcAAaikDACIIIAIpAxgiCXw3AwAgA0HAAWogAkHIAGopAwAiCiACKQMgIgt8NwMAIANBoAFqQTBqIAQgBX1C8P///////z98IgRC/////////wODIAIpAygiBSACKQMAIgx9QtD9//////8/fCINQjOIfDcDACADQaABakE4aiAGIAd9QvD///////8/fCIGQv////////8DgyAEQjOIfDcDACADQaABakHAAGogCCAJfULw////////P3wiBEL/////////A4MgBkIziHw3AwAgA0GgAWpByABqIAogC31C8P///////z98IgZC/////////wODIARCM4h8NwMAIAMgBSAMfDcDoAEgAyAGQjOIQhN+IA1C/////////wODfDcDyAEgA0GgAWpB8ABqIAJB8ABqKQMANwMAIANBoAFqQegAaiACQegAaikDADcDACADQaABakHgAGogAkHgAGopAwA3AwAgA0GgAWpB2ABqIAJB2ABqKQMANwMAIAMgAikDUDcD8AEgA0GgAWpB+ABqIAJB+ABqQbD/wYAAEOSFgIAAIAMgASADQaABahDahYCAACAAIAMgA0H4AGoiAhDkhYCAACAAQShqIANBKGoiASADQdAAaiIOEOSFgIAAIABB0ABqIA4gAhDkhYCAACAAQfgAaiADIAEQ5IWAgAAgA0HAAmokgICAgAALwAQBBn4gACABKQMgIgJCM4hCE34gASkDACIDQv////////8Dg3wiBEITfEIziCABKQMIIgVC/////////wODIANCM4h8IgN8QjOIIAEpAxAiBkL/////////A4MgBUIziHwiBXxCM4ggASkDGCIHQv////////8DgyAGQjOIfCIGfEIziCACQv////////8DgyAHQjOIfCIHfEIziEITfiAEfCICPAAAIAAgAkIoiDwABSAAIAJCIIg8AAQgACACQhiIPAADIAAgAkIQiDwAAiAAIAJCCIg8AAEgACACQjOIIAN8IgNCJYg8AAsgACADQh2IPAAKIAAgA0IViDwACSAAIANCDYg8AAggACADQgWIPAAHIAAgA0IDhiACQjCIQgeDhDwABiAAIANCM4ggBXwiAkIqiDwAEiAAIAJCIog8ABEgACACQhqIPAAQIAAgAkISiDwADyAAIAJCCog8AA4gACACQgKIPAANIAAgAkIGhiADQoCAgICAgPgDg0ItiIQ8AAwgACACQjOIIAZ8IgNCJ4g8ABggACADQh+IPAAXIAAgA0IXiDwAFiAAIANCD4g8ABUgACADQgeIPAAUIAAgA0IBhiACQoCAgICAgIACg0IyiIQ8ABMgACADQjOIIAd8IgJCJIg8AB4gACACQhyIPAAdIAAgAkIUiDwAHCAAIAJCDIg8ABsgACACQgSIPAAaIAAgAkKAgICAgID8A4NCLIg8AB8gACACQgSGIANCgICAgICA4AODQi+IhDwAGQuvBAEBfyOAgICAAEGABmsiAiSAgICAACACQQhqIAFBARDjhYCAACACQdgFaiACQQhqQQEQ44WAgAAgAkEwaiACQdgFakEBEOOFgIAAIAJB2ABqIAEgAkEwahDkhYCAACACQYABaiACQQhqIAJB2ABqEOSFgIAAIAJBqAFqIAJBgAFqQQEQ44WAgAAgAkHQAWogAkHYAGogAkGoAWoQ5IWAgAAgAkH4AWogAkHQAWpBBRDjhYCAACACQaACaiACQfgBaiACQdABahDkhYCAACACQcgCaiACQaACakEKEOOFgIAAIAJB8AJqIAJByAJqIAJBoAJqEOSFgIAAIAJBmANqIAJB8AJqQRQQ44WAgAAgAkHAA2ogAkGYA2ogAkHwAmoQ5IWAgAAgAkHoA2ogAkHAA2pBChDjhYCAACACQZAEaiACQegDaiACQaACahDkhYCAACACQbgEaiACQZAEakEyEOOFgIAAIAJB4ARqIAJBuARqIAJBkARqEOSFgIAAIAJBiAVqIAJB4ARqQeQAEOOFgIAAIAJBsAVqIAJBiAVqIAJB4ARqEOSFgIAAIAJB2AVqIAJBsAVqQTIQ44WAgAAgACACQdgFaiACQZAEahDkhYCAACAAQcgAaiACQaABaikDADcDACAAQcAAaiACQZgBaikDADcDACAAQThqIAJBkAFqKQMANwMAIABBMGogAkGIAWopAwA3AwAgACACKQOAATcDKCACQYAGaiSAgICAAAuJCAIBfxR+I4CAgIAAQfABayIDJICAgIAAIAEpAyAhBCABKQMYIQUgASkDECEGIAEpAwghByABKQMAIQgDQCADQbABaiAIQgAgCEIAELuRgIAAIANBgAFqIAdCACAEQhN+IglCABC7kYCAACADQcAAaiAGQgAgBUITfiIKQgAQu5GAgAAgA0HgAWogCkIAIAVCABC7kYCAACADQfAAaiAIQgAgB0IAELuRgIAAIANBMGogBkIAIAlCABC7kYCAACADQeAAaiAHQgAgB0IAELuRgIAAIANBIGogCEIAIAZCABC7kYCAACADQdABaiAKQgAgBEIAELuRgIAAIANBwAFqIAlCACAEQgAQu5GAgAAgA0GgAWogCEIAIAVCABC7kYCAACADQRBqIAdCACAGQgAQu5GAgAAgAyAGQgAgBkIAELuRgIAAIANBkAFqIAhCACAEQgAQu5GAgAAgA0HQAGogB0IAIAVCABC7kYCAACADKQOQASILIAMpA1B8IgZCAYYiDCADKQMAfCIHIAMpA6ABIg0gAykDEHwiCEIBhiIOIAMpA8ABfCIEIAMpAyAiDyADKQPQAXwiBUIBhiIQIAMpA2B8IgkgAykDcCIRIAMpAzB8IgpCAYYiEiADKQPgAXwiEyADKQOAASIUIAMpA0B8IhVCAYYiFiADKQOwAXwiF0IziCADQYABakEIaikDACADQcAAakEIaikDAHwgFSAUVK18QgGGIBVCP4iEIANBsAFqQQhqKQMAfCAXIBZUrXxCDYaEfCIVQjOIIANB8ABqQQhqKQMAIANBMGpBCGopAwB8IAogEVStfEIBhiAKQj+IhCADQeABakEIaikDAHwgEyASVK18IBUgE1StfEINhoR8IgpCM4ggA0EgakEIaikDACADQdABakEIaikDAHwgBSAPVK18QgGGIAVCP4iEIANB4ABqQQhqKQMAfCAJIBBUrXwgCiAJVK18Qg2GhHwiBUIziCADQaABakEIaikDACADQRBqQQhqKQMAfCAIIA1UrXxCAYYgCEI/iIQgA0HAAWpBCGopAwB8IAQgDlStfCAFIARUrXxCDYaEfCIEQjOIIANBkAFqQQhqKQMAIANB0ABqQQhqKQMAfCAGIAtUrXxCAYYgBkI/iIQgA0EIaikDAHwgByAMVK18IAQgB1StfEINhoRCE34gF0L/////////A4N8IgZC/////////wODIQggBkIziCAVQv////////8Dg3whByAEQv////////8DgyEEIAVC/////////wODIQUgCkL/////////A4MhBiACQX9qIgINAAsgACAENwMgIAAgBTcDGCAAIAY3AxAgACAHNwMIIAAgCDcDACADQfABaiSAgICAAAukCwIBfw9+I4CAgIAAQZADayIDJICAgIAAIAMgAikDACIEQgAgASkDACIFQgAQu5GAgAAgA0GQAWogASkDICIGQgAgAikDCCIHQhN+QgAQu5GAgAAgA0HQAWogASkDGCIIQgAgAikDECIJQhN+IgpCABC7kYCAACADQZACaiABKQMQIgtCACACKQMYIgxCE34iDUIAELuRgIAAIANB0AJqIAEpAwgiDkIAIAIpAyAiD0ITfiIQQgAQu5GAgAAgA0HQAGogDkIAIARCABC7kYCAACADQRBqIAVCACAHQgAQu5GAgAAgA0GgAWogBkIAIApCABC7kYCAACADQeABaiAIQgAgDUIAELuRgIAAIANBoAJqIAtCACAQQgAQu5GAgAAgA0HgAGogC0IAIARCABC7kYCAACADQeACaiAOQgAgB0IAELuRgIAAIANBIGogBUIAIAlCABC7kYCAACADQbABaiAGQgAgDUIAELuRgIAAIANB8AFqIAhCACAQQgAQu5GAgAAgA0HwAGogCEIAIARCABC7kYCAACADQbACaiALQgAgB0IAELuRgIAAIANB8AJqIA5CACAJQgAQu5GAgAAgA0EwaiAFQgAgDEIAELuRgIAAIANBwAFqIAZCACAQQgAQu5GAgAAgA0GAAWogBkIAIARCABC7kYCAACADQYACaiAIQgAgB0IAELuRgIAAIANBwAJqIAtCACAJQgAQu5GAgAAgA0GAA2ogDkIAIAxCABC7kYCAACADQcAAaiAFQgAgD0IAELuRgIAAIAAgAykDsAEiDyADKQMgfCIEIAMpA/ABfCIFIAMpA2B8IgYgAykD4AJ8IgcgAykDoAEiESADKQMQfCIIIAMpA+ABfCILIAMpA6ACfCIOIAMpA1B8IgkgAykDkAEiEiADKQMAfCIQIAMpA9ABfCIMIAMpA5ACfCINIAMpA9ACfCIKQjOIIANBkAFqQQhqKQMAIANBCGopAwB8IBAgElStfCADQdABakEIaikDAHwgDCAQVK18IANBkAJqQQhqKQMAfCANIAxUrXwgA0HQAmpBCGopAwB8IAogDVStfEINhoR8IhBCM4ggA0GgAWpBCGopAwAgA0EQakEIaikDAHwgCCARVK18IANB4AFqQQhqKQMAfCALIAhUrXwgA0GgAmpBCGopAwB8IA4gC1StfCADQdAAakEIaikDAHwgCSAOVK18IBAgCVStfEINhoR8IghC/////////wODNwMQIAAgAykDwAEiDSADKQMwfCILIAMpA3B8Ig4gAykDsAJ8IgkgAykD8AJ8IgwgCEIziCADQbABakEIaikDACADQSBqQQhqKQMAfCAEIA9UrXwgA0HwAWpBCGopAwB8IAUgBFStfCADQeAAakEIaikDAHwgBiAFVK18IANB4AJqQQhqKQMAfCAHIAZUrXwgCCAHVK18Qg2GhHwiBEL/////////A4M3AxggACADKQOAASIPIAMpA0B8IgUgAykDgAJ8IgYgAykDwAJ8IgcgAykDgAN8IgggBEIziCADQcABakEIaikDACADQTBqQQhqKQMAfCALIA1UrXwgA0HwAGpBCGopAwB8IA4gC1StfCADQbACakEIaikDAHwgCSAOVK18IANB8AJqQQhqKQMAfCAMIAlUrXwgBCAMVK18Qg2GhHwiBEL/////////A4M3AyAgACAEQjOIIANBgAFqQQhqKQMAIANBwABqQQhqKQMAfCAFIA9UrXwgA0GAAmpBCGopAwB8IAYgBVStfCADQcACakEIaikDAHwgByAGVK18IANBgANqQQhqKQMAfCAIIAdUrXwgBCAIVK18Qg2GhEITfiAKQv////////8Dg3wiBEL/////////A4M3AwAgACAEQjOIIBBC/////////wODfDcDCCADQZADaiSAgICAAAvVDQYDfwN+AX8BfgF/BH4jgICAgABB8AJrIgMkgICAgAAgA0GgAmogAkEBEOOFgIAAIANBCGogA0GgAmogAhDkhYCAACADQaACaiADQQhqQQEQ44WAgAAgA0EwaiADQaACaiACEOSFgIAAIANBgAFqIAEgA0EIahDkhYCAACADQdABaiABIANBMGoQ5IWAgAAgA0GgAmogA0HQAWoQ4oWAgAAgA0H4AWpBIGogA0GgAmpBIGopAwA3AwAgA0H4AWpBGGogA0GgAmpBGGopAwA3AwAgA0H4AWpBEGogA0GgAmpBEGopAwA3AwAgA0H4AWpBCGogA0GgAmpBCGopAwA3AwAgAyADKQOgAjcD+AEgA0GgAmogA0H4AWpBAhDjhYCAACADQagBaiADQdABaiADQaACahDkhYCAACADQdgAaiADQYABaiADQagBahDkhYCAACADQaACaiADQdgAakEBEOOFgIAAIANB0AFqIAIgA0GgAmoQ5IWAgAAgA0H4AWogA0HQAWoQ4YWAgAAgA0GgAmogARDhhYCAAEEAIQJBASEEA0AgA0H4AWogAmotAAAgA0GgAmogAmotAABGEMyNgIAAIARxIQQgAkEBaiICQSBHDQALIAQQzI2AgAAhBSADQaACakEIakLw////////PyABQQhqKQMAfSIGQv////////8Dg0LQ/f//////PyABKQMAfSIHQjOIfDcDACADQaACakEQakLw////////PyABQRBqKQMAfSIIQv////////8DgyAGQjOIfDcDACADQaACakEYakLw////////PyABQRhqKQMAfSIGQv////////8DgyAIQjOIfDcDACADQaACakEgakLw////////PyABQSBqKQMAfSIIQv////////8DgyAGQjOIfDcDACADIAhCM4hCE34gB0L/////////A4N8NwOgAiADQagBaiADQdABahDhhYCAACADQfgBaiADQaACahDhhYCAAEEAIQJBASEEA0AgA0GoAWogAmotAAAgA0H4AWogAmotAABGEMyNgIAAIARxIQQgAkEBaiICQSBHDQALIAQQzI2AgAAhCSADQaACakEIakLw////////PyABQQhqKQMAfSIGQv////////8Dg0LQ/f//////PyABKQMAfSIHQjOIfDcDACADQaACakEQakLw////////PyABQRBqKQMAfSIIQv////////8DgyAGQjOIfDcDACADQaACakEYakLw////////PyABQRhqKQMAfSIGQv////////8DgyAIQjOIfDcDACADQaACakEgakLw////////PyABQSBqKQMAfSIIQv////////8DgyAGQjOIfDcDACADIAhCM4hCE34gB0L/////////A4N8NwOgAiADQfgBaiADQaACakHY/8GAABDkhYCAACADQYABaiADQdABahDhhYCAACADQagBaiADQfgBahDhhYCAAEEAIQJBASEEA0AgA0GAAWogAmotAAAgA0GoAWogAmotAABGEMyNgIAAIARxIQQgAkEBaiICQSBHDQALIAQQzI2AgAAhAiADQaACakHY/8GAACADQdgAahDkhYCAACACIAlyEMyNgIAAIQQgA0HgAGoiAiADKQOoAiACKQMAIgeFQgAgBK1C/wGDfSIGgyAHhSIHNwMAIANB2ABqQRBqIgQgAykDsAIgBCkDACIIhSAGgyAIhSIINwMAIANB2ABqQRhqIgEgAykDuAIgASkDACIKhSAGgyAKhSIKNwMAIANB2ABqQSBqIgsgAykDwAIgCykDACIMhSAGgyAMhSIMNwMAIAMgAykDoAIgAykDWCINhSAGgyANhSINNwNYIANB+AFqIANB2ABqEOGFgIAAIAtC8P///////z8gDH0iDkL/////////A4NC8P///////z8gCn0iD0IziHwgDIVCACADLQD4AUEBcRDMjYCAAK1C/wGDfSIGgyAMhTcDACABIA9C/////////wODQvD///////8/IAh9IgxCM4h8IAqFIAaDIAqFNwMAIAQgDEL/////////A4NC8P///////z8gB30iCkIziHwgCIUgBoMgCIU3AwAgAiAKQv////////8Dg0LQ/f//////PyANfSIIQjOIfCAHhSAGgyAHhTcDACADIA5CM4hCE34gCEL/////////A4N8IA2FIAaDIA2FNwNYIAAgCSAFchDMjYCAADoAACAAQShqIAspAwA3AwAgAEEgaiABKQMANwMAIABBGGogBCkDADcDACAAQRBqIAIpAwA3AwAgACADKQNYNwMIIANB8AJqJICAgIAAC9ADARp+IAExABIhAiABMQARIQMgATEAECEEIAExAA8hBSABMQANIQYgATEADiEHIAExAB8hCCABMQAeIQkgATEAHSEKIAExABwhCyABMQAbIQwgATEAGiENIAExAAwhDiABMQALIQ8gATEACiEQIAExAAkhESABMQAHIRIgATEACCETIAExABkhFCABMQAYIRUgATEAFyEWIAExABYhFyABMQATIRggATEAFCEZIAExABUhGiAAIAE1AAAgATEABEIghoQgATEABUIohoQgATEABiIbQjCGhEL/////////A4M3AwAgACAYIBlCCIaEIBpCEIaEIBdCGIaEIBZCIIaEIBVCKIaEIBRCMIaEQgGIQv////////8DgzcDGCAAIBsgEkIIhoQgE0IQhoQgEUIYhoQgEEIghoQgD0IohoQgDkIwhoRCA4hC/////////wODNwMIIAAgFSAUQgiGhCANQhCGhCAMQhiGhCALQiCGhCAKQiiGhCAJQjCGhCAIQjiGhEIMiEL/////////A4M3AyAgACAOIAZCCIaEIAdCEIaEIAVCGIaEIARCIIaEIANCKIaEIAJCMIaEIBhCOIaEQgaIQv////////8DgzcDEAvdIxECfwF+AX8BfgF/AX4BfwF+AX8BfgF/AX4BfwF+AX8Dfhl/I4CAgIAAQYAPayICJICAgIAAIAJB4A1qQQhqIAFBMGoiAykDACIEIAFBCGoiBSkDACIGfDcDACACQeANakEQaiABQThqIgcpAwAiCCABQRBqIgkpAwAiCnw3AwAgAkHgDWpBGGogAUHAAGoiCykDACIMIAFBGGoiDSkDACIOfDcDACACQeANakEgaiABQcgAaiIPKQMAIhAgAUEgaiIRKQMAIhJ8NwMAIAJB4A1qQTBqIAQgBn1C8P///////z98IgRC/////////wODIAEpAygiBiABKQMAIhN9QtD9//////8/fCIUQjOIfDcDACACQeANakE4aiAIIAp9QvD///////8/fCIIQv////////8DgyAEQjOIfDcDACACQeANakHAAGogDCAOfULw////////P3wiBEL/////////A4MgCEIziHw3AwAgAkHgDWpByABqIBAgEn1C8P///////z98IghC/////////wODIARCM4h8NwMAIAIgBiATfDcD4A0gAiAIQjOIQhN+IBRC/////////wODfDcDiA4gAkHgDWpB8ABqIAFB8ABqIhUpAwA3AwAgAkHgDWpB6ABqIAFB6ABqIhYpAwA3AwAgAkHgDWpB4ABqIAFB4ABqIhcpAwA3AwAgAkHgDWpB2ABqIAFB2ABqIhgpAwA3AwAgAiABKQNQNwOwDiACQeANakH4AGoiGSABQfgAakGw/8GAABDkhYCAACACIAJB4A1qQaABELyRgIAAIgJBoAFqIAJB4A1qQaABELyRgIAAIRogAkHAAmogAkHgDWpBoAEQvJGAgAAhGyACQeADaiACQeANakGgARC8kYCAACEcIAJBgAVqIAJB4A1qQaABELyRgIAAIR0gAkGgBmogAkHgDWpBoAEQvJGAgAAhHiACQcAHaiACQeANakGgARC8kYCAACEfIAJB4AhqIAJB4A1qQaABELyRgIAAISAgAkHADGpBIGogESkDADcDACACQcAMakEYaiANKQMANwMAIAJBwAxqQRBqIAkpAwA3AwAgAkHADGpBCGogBSkDADcDACACQcAMakEwaiIJIAMpAwA3AwAgAkHADGpBOGoiDSAHKQMANwMAIAJBwAxqQcAAaiIHIAspAwA3AwAgAkHADGpByABqIgsgDykDADcDACACIAEpAwA3A8AMIAIgASkDKDcD6AwgAkHADGpB8ABqIg8gFSkDADcDACACQcAMakHoAGoiESAWKQMANwMAIAJBwAxqQeAAaiIVIBcpAwA3AwAgAkHADGpB2ABqIhYgGCkDADcDACACIAEpA1A3A5ANIAJB4A1qIAJBwAxqEOiFgIAAIAJBgApqIAJB4A1qIBkQ5IWAgAAgAkGACmpBKGogAkHgDWpBKGoiASACQeANakHQAGoiAxDkhYCAACACQYAKakHQAGogAyAZEOSFgIAAIAJBgApqQfgAaiACQeANaiABEOSFgIAAIAJB4A1qIAJBgApqIAIQ2YWAgAAgAkHADGogAkHgDWogGRDkhYCAACACQcAMakEoaiIXIAEgAxDkhYCAACACQcAMakHQAGoiGCADIBkQ5IWAgAAgAkHADGpB+ABqIgUgAkHgDWogARDkhYCAACACQaALakEIaiIhIAkpAwAiBCACKQPIDCIGfDcDACACQaALakEQaiIiIA0pAwAiCCACKQPQDCIKfDcDACACQaALakEYaiIjIAcpAwAiDCACKQPYDCIOfDcDACACQaALakEgaiIkIAspAwAiECACKQPgDCISfDcDACACQaALakEwaiIlIAQgBn1C8P///////z98IgRC/////////wODIAIpA+gMIgYgAikDwAwiE31C0P3//////z98IhRCM4h8NwMAIAJBoAtqQThqIiYgCCAKfULw////////P3wiCEL/////////A4MgBEIziHw3AwAgAkGgC2pBwABqIicgDCAOfULw////////P3wiBEL/////////A4MgCEIziHw3AwAgAkGgC2pByABqIiggECASfULw////////P3wiCEL/////////A4MgBEIziHw3AwAgAiAGIBN8NwOgCyACIAhCM4hCE34gFEL/////////A4N8NwPICyACQaALakHwAGoiKSAPKQMANwMAIAJBoAtqQegAaiIqIBEpAwA3AwAgAkGgC2pB4ABqIisgFSkDADcDACACQaALakHYAGoiLCAWKQMANwMAIAIgAikDkA03A/ALIAJBoAtqQfgAaiItIAVBsP/BgAAQ5IWAgAAgAkHgDWogAkGACmogGiACQaALakGgARC8kYCAABDZhYCAACACQcAMaiACQeANaiAZEOSFgIAAIBcgASADEOSFgIAAIBggAyAZEOSFgIAAIAUgAkHgDWogARDkhYCAACAhIAkpAwAiBCACKQPIDCIGfDcDACAiIA0pAwAiCCACKQPQDCIKfDcDACAjIAcpAwAiDCACKQPYDCIOfDcDACAkIAspAwAiECACKQPgDCISfDcDACAlIAQgBn1C8P///////z98IgRC/////////wODIAIpA+gMIgYgAikDwAwiE31C0P3//////z98IhRCM4h8NwMAICYgCCAKfULw////////P3wiCEL/////////A4MgBEIziHw3AwAgJyAMIA59QvD///////8/fCIEQv////////8DgyAIQjOIfDcDACAoIBAgEn1C8P///////z98IghC/////////wODIARCM4h8NwMAIAIgBiATfDcDoAsgAiAIQjOIQhN+IBRC/////////wODfDcDyAsgKSAPKQMANwMAICogESkDADcDACArIBUpAwA3AwAgLCAWKQMANwMAIAIgAikDkA03A/ALIC0gBUGw/8GAABDkhYCAACACQeANaiACQYAKaiAbIAJBoAtqQaABELyRgIAAENmFgIAAIAJBwAxqIAJB4A1qIBkQ5IWAgAAgFyABIAMQ5IWAgAAgGCADIBkQ5IWAgAAgBSACQeANaiABEOSFgIAAICEgCSkDACIEIAIpA8gMIgZ8NwMAICIgDSkDACIIIAIpA9AMIgp8NwMAICMgBykDACIMIAIpA9gMIg58NwMAICQgCykDACIQIAIpA+AMIhJ8NwMAICUgBCAGfULw////////P3wiBEL/////////A4MgAikD6AwiBiACKQPADCITfULQ/f//////P3wiFEIziHw3AwAgJiAIIAp9QvD///////8/fCIIQv////////8DgyAEQjOIfDcDACAnIAwgDn1C8P///////z98IgRC/////////wODIAhCM4h8NwMAICggECASfULw////////P3wiCEL/////////A4MgBEIziHw3AwAgAiAGIBN8NwOgCyACIAhCM4hCE34gFEL/////////A4N8NwPICyApIA8pAwA3AwAgKiARKQMANwMAICsgFSkDADcDACAsIBYpAwA3AwAgAiACKQOQDTcD8AsgLSAFQbD/wYAAEOSFgIAAIAJB4A1qIAJBgApqIBwgAkGgC2pBoAEQvJGAgAAQ2YWAgAAgAkHADGogAkHgDWogGRDkhYCAACAXIAEgAxDkhYCAACAYIAMgGRDkhYCAACAFIAJB4A1qIAEQ5IWAgAAgISAJKQMAIgQgAikDyAwiBnw3AwAgIiANKQMAIgggAikD0AwiCnw3AwAgIyAHKQMAIgwgAikD2AwiDnw3AwAgJCALKQMAIhAgAikD4AwiEnw3AwAgJSAEIAZ9QvD///////8/fCIEQv////////8DgyACKQPoDCIGIAIpA8AMIhN9QtD9//////8/fCIUQjOIfDcDACAmIAggCn1C8P///////z98IghC/////////wODIARCM4h8NwMAICcgDCAOfULw////////P3wiBEL/////////A4MgCEIziHw3AwAgKCAQIBJ9QvD///////8/fCIIQv////////8DgyAEQjOIfDcDACACIAYgE3w3A6ALIAIgCEIziEITfiAUQv////////8Dg3w3A8gLICkgDykDADcDACAqIBEpAwA3AwAgKyAVKQMANwMAICwgFikDADcDACACIAIpA5ANNwPwCyAtIAVBsP/BgAAQ5IWAgAAgAkHgDWogAkGACmogHSACQaALakGgARC8kYCAABDZhYCAACACQcAMaiACQeANaiAZEOSFgIAAIBcgASADEOSFgIAAIBggAyAZEOSFgIAAIAUgAkHgDWogARDkhYCAACAhIAkpAwAiBCACKQPIDCIGfDcDACAiIA0pAwAiCCACKQPQDCIKfDcDACAjIAcpAwAiDCACKQPYDCIOfDcDACAkIAspAwAiECACKQPgDCISfDcDACAlIAQgBn1C8P///////z98IgRC/////////wODIAIpA+gMIgYgAikDwAwiE31C0P3//////z98IhRCM4h8NwMAICYgCCAKfULw////////P3wiCEL/////////A4MgBEIziHw3AwAgJyAMIA59QvD///////8/fCIEQv////////8DgyAIQjOIfDcDACAoIBAgEn1C8P///////z98IghC/////////wODIARCM4h8NwMAIAIgBiATfDcDoAsgAiAIQjOIQhN+IBRC/////////wODfDcDyAsgKSAPKQMANwMAICogESkDADcDACArIBUpAwA3AwAgLCAWKQMANwMAIAIgAikDkA03A/ALIC0gBUGw/8GAABDkhYCAACACQeANaiACQYAKaiAeIAJBoAtqQaABELyRgIAAENmFgIAAIAJBwAxqIAJB4A1qIBkQ5IWAgAAgFyABIAMQ5IWAgAAgGCADIBkQ5IWAgAAgBSACQeANaiABEOSFgIAAICEgCSkDACIEIAIpA8gMIgZ8NwMAICIgDSkDACIIIAIpA9AMIgp8NwMAICMgBykDACIMIAIpA9gMIg58NwMAICQgCykDACIQIAIpA+AMIhJ8NwMAICUgBCAGfULw////////P3wiBEL/////////A4MgAikD6AwiBiACKQPADCITfULQ/f//////P3wiFEIziHw3AwAgJiAIIAp9QvD///////8/fCIIQv////////8DgyAEQjOIfDcDACAnIAwgDn1C8P///////z98IgRC/////////wODIAhCM4h8NwMAICggECASfULw////////P3wiCEL/////////A4MgBEIziHw3AwAgAiAGIBN8NwOgCyACIAhCM4hCE34gFEL/////////A4N8NwPICyApIA8pAwA3AwAgKiARKQMANwMAICsgFSkDADcDACAsIBYpAwA3AwAgAiACKQOQDTcD8AsgLSAFQbD/wYAAEOSFgIAAIAJB4A1qIAJBgApqIB8gAkGgC2pBoAEQvJGAgAAQ2YWAgAAgAkHADGogAkHgDWogGRDkhYCAACAXIAEgAxDkhYCAACAYIAMgGRDkhYCAACAFIAJB4A1qIAEQ5IWAgAAgISAJKQMAIgQgAikDyAwiBnw3AwAgIiANKQMAIgggAikD0AwiCnw3AwAgIyAHKQMAIgwgAikD2AwiDnw3AwAgJCALKQMAIhAgAikD4AwiEnw3AwAgJSAEIAZ9QvD///////8/fCIEQv////////8DgyACKQPoDCIGIAIpA8AMIhN9QtD9//////8/fCIUQjOIfDcDACAmIAggCn1C8P///////z98IghC/////////wODIARCM4h8NwMAICcgDCAOfULw////////P3wiBEL/////////A4MgCEIziHw3AwAgKCAQIBJ9QvD///////8/fCIIQv////////8DgyAEQjOIfDcDACACIAYgE3w3A6ALIAIgCEIziEITfiAUQv////////8Dg3w3A8gLICkgDykDADcDACAqIBEpAwA3AwAgKyAVKQMANwMAICwgFikDADcDACACIAIpA5ANNwPwCyAtIAVBsP/BgAAQ5IWAgAAgICACQaALakGgARC8kYCAABogACACQYAKELyRgIAAGiACQYAPaiSAgICAAAujCAIBfxR+I4CAgIAAQdABayICJICAgIAAIAJBCGogAUEBEOOFgIAAIAJBMGogAUEoakEBEOOFgIAAIAJB2ABqIAFB0ABqQQEQ44WAgAAgAikDWCEDIAIpA2AhBCACKQNoIQUgAikDeCEGIAIpA3AhByACQYABakEIaiABQQhqKQMAIAFBMGopAwB8NwMAIAJBgAFqQRBqIAFBEGopAwAgAUE4aikDAHw3AwAgAkGAAWpBGGogAUEYaikDACABQcAAaikDAHw3AwAgAkGAAWpBIGogAUEgaikDACABQcgAaikDAHw3AwAgAiABKQMAIAEpAyh8NwOAASACQagBaiACQYABakEBEOOFgIAAIABByABqIAIpAygiCCACKQNQIgl8Igo3AwAgAEHAAGogAikDICILIAIpA0giDHwiDTcDACAAQThqIAIpAxgiDiACKQNAIg98IhA3AwAgAEEwaiACKQMQIhEgAikDOCISfCITNwMAIAAgAikDCCIUIAIpAzAiFXwiFjcDKCAAQfAAaiAJIAh9QvD///////8/fCIIQv////////8DgyAMIAt9QvD///////8/fCIJQjOIfCILNwMAIABB6ABqIAlC/////////wODIA8gDn1C8P///////z98IglCM4h8Igw3AwAgAEHgAGogCUL/////////A4MgEiARfULw////////P3wiCUIziHwiDjcDACAAQdgAaiAJQv////////8DgyAVIBR9QtD9//////8/fCIJQjOIfCIPNwMAIAAgCEIziEITfiAJQv////////8Dg3wiCDcDUCAAIAIpA8gBIAp9QvD///////8/fCIJQv////////8DgyACKQPAASANfULw////////P3wiCkIziHw3AyAgACAKQv////////8DgyACKQO4ASAQfULw////////P3wiCkIziHw3AxggACAKQv////////8DgyACKQOwASATfULw////////P3wiCkIziHw3AxAgACAKQv////////8DgyACKQOoASAWfULQ/f//////P3wiCkIziHw3AwggACAJQjOIQhN+IApC/////////wODfDcDACAAQZgBaiAGQgGGIAt9QvD///////8/fCIGQv////////8DgyAHQgGGIAx9QvD///////8/fCIHQjOIfDcDACAAQZABaiAHQv////////8DgyAFQgGGIA59QvD///////8/fCIFQjOIfDcDACAAQYgBaiAFQv////////8DgyAEQgGGIA99QvD///////8/fCIEQjOIfDcDACAAQYABaiADQgGGIAh9QtD9//////8/fCIDQjOIIARC/////////wODfDcDACAAIAZCM4hCE34gA0L/////////A4N8NwN4IAJB0AFqJICAgIAAC4cBAQF/AkACQAJAAkACQAJAAkAgAS0AAA4GAAECAwQFAAsgAUEIaigCACECIAEoAgQhAQwFC0EBIQIgAUEBaiEBDAQLIAFBAWohAUECIQIMAwsgAUEBaiEBQQQhAgwCCyABQQFqIQFBCCECDAELIAFBAWohAUEQIQILIAAgAjYCBCAAIAE2AgAL2gEAAkACQCACRQ0AAkACQAJAAkACQAJAIAFBAEgNACADKAIIDQEgAQ0CQQEhAgwECyAAQQhqQQA2AgAMBgsCQCADKAIEIgINAAJAIAENAEEBIQIMBAsgAUEBELaFgIAAIQIMAgsgAygCACACQQEgARC4hYCAACECDAELIAFBARC2hYCAACECCyACRQ0BCyAAIAI2AgQgAEEIaiABNgIAIABBADYCAA8LIAAgATYCBCAAQQhqQQE2AgAgAEEBNgIADwsgACABNgIEIABBCGpBADYCAAsgAEEBNgIAC+gBAQJ/I4CAgIAAQSBrIgMkgICAgAACQAJA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h4CAACACQRBqIAEQjIeAgAAgAigCECIBQRVHDQIgAkEcaigCACEDIAJBGGooAgAhAQJAIAIoAhQiBA0AQQEhBAJAIANBBEcNACABKAAAQQAoAPCcwoAARyEECyAAQRU2AgAgACAEOgAEDAQLQQEhBQJAIANBBEcNACAEKAAAQQAoAPCcwoAARyEFCyAAQRU2AgAgACAFOgAEIAFFDQMgBCABQQEQt4WAgAAMAwsgAEEENgIADAILIABBDjYCAAwBCyACKQIUIQYgACACKAIcNgIMIAAgBjcCBCAAIAE2AgALIAJBIGokgICAgAALvQICBH8BfiOAgICAAEEgayICJICAgIAAIAJBCGogARCNh4CAAAJAAkACQAJAIAItAAhBAXFFDQAgAi0ACUH/AXFBIkcNASABEIaHgIAAIAJBEGogARCMh4CAACACKAIQIgFBFUcNAiACQRxqKAIAIQMgAkEYaigCACEBAkAgAigCFCIEDQBBASEEAkAgA0EHRw0AIAFB/JzCgABBBxC6kYCAAEEARyEECyAAQRU2AgAgACAEOgAEDAQLQQEhBQJAIANBB0cNACAEQfycwoAAQQcQupGAgABBAEchBQsgAEEVNgIAIAAgBToABCABRQ0DIAQgAUEBELeFgIAADAMLIABBBDYCAAwCCyAAQQ42AgAMAQsgAikCFCEGIAAgAigCHDYCDCAAIAY3AgQgACABNgIACyACQSBqJICAgIAAC8kDAgN/AX4jgICAgABBIGsiAiSAgICAACACQQhqIAEQjYeAgAACQAJAAkACQAJAAkACQAJAIAItAAhBAXFFDQAgAi0ACUH/AXFBIkcNASABEIaHgIAAIAJBEGogARCMh4CAACACKAIQIgFBFUcNAiACQRxqKAIAIQMgAkEYaigCACEBAkAgAigCFCIEDQACQAJAAkACQAJAIANBe2oOAwABAgELIAFBmJ3CgABBBRC6kYCAAEUNCAsgAEEEaiEDDAELIABBBGohAyABQbidwoAAQQcQupGAgABFDQELIANBAjoAAAwICyADQQE6AAAMBwsCQAJAAkACQAJAIANBe2oOAwABAgELIARBmJ3CgABBBRC6kYCAAEUNCAsgAEEEaiEDDAELIABBBGohAyAEQbidwoAAQQcQupGAgABFDQELIANBAjoAAAwGCyADQQE6AAAMBQsgAEEE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DGogAkGQAWpBDGooAgA2AgAgACABNgIADAsLAkAgA0H/AXFB3QBHDQBBASEDQRMhBgwCCyACQZABaiAFEISGgIAAAkAgAigCkAEiBkEVRg0AIAIgAikAlQE3A4ABIAIgAkGcAWooAAA2AIcBIAItAJQBIQMMAgsgAkEYaiAFEI2HgIAAQQEhBiACLQAZIQMgAi0AGEEBcQ0AC0EBIQMLIAAgAzoABCAAIAIpA4ABNwAFIABBDGogAigAhwE2AAAgACAGNgIADAgLIABBBDYCAAwHCyACKQKUASEHIAAgAigCnAE2AgwgACAHNwIEIAAgATYCAAwGCyAAQQ42AgAMBQsgAEEENgIADAQLIABBFTYCAAwDCyAAQQs2AgAMAgsgAkHIAGogARCNh4CAAAJAAkACQCACLQBIQQFxRQ0AAkACQCACLQBJQf8BcUH7AEcNACABEIaHgIAAIAJBwABqIAEQgIeAgAAgAigCQCEDIAIgAi0AREEBcToAXCACIAM2AlggAkHwAGogAkHYAGoQm4aAgAACQCACKAJwIgNBFUcNAANAIAItAHRFDQMgAkGQAWogAigCWCIFEIuHgIAAAkACQAJAIAIoApABIgNBFUYNACACQYABakEMaiACQZABakEMaigCADYCACACIAIpApQBNwKEAQwBCyACQYABaiAFEISGgIAAIAIoAoABIgNBFUYNAQsgAiACKQCFATcDYCACIAJBjAFqKAAANgBnIAItAIQBIQEMBwsgAkHwAGogAkHYAGoQm4aAgAAgAigCcCIDQRVGDQALCyACIAIpAHU3A2AgAiACQfwAaigAADYAZyACLQB0IQEMBAsgAEEONgIADAULIAJBkAFqIAEQiYeAgAAgAigCkAEiAUEVRg0BIAAgAikClAE3AgQgAEEMaiACQZABakEMaigCADYCACAAIAE2AgAMBAsgAEEENgIADAMLIABBFTYCAAwCCyAAIAIpA2A3AAUgAEEMaiACKABnNgAAIAAgAToABCAAIAM2AgAMAQsgACADNgIACyACQaABaiSAgICAAAu9DAIPfwF+I4CAgIAAQYABayIGJICAgIAAIAZBKGogARCNh4CAAAJAAkACQAJAAkACQCAGLQAoQQFxRQ0AIAYtAClB/wFxQfsARw0BIAEQhoeAgAAgBkEgaiABEICHgIAAIAYtACQhByAG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B08NAEEAIQMgASEEDAELIAFBPGohBCADQfj///8DcSEGQQAhAwNAIAQoAgAgBEF4aigCACAEQXBqKAIAIARBaGooAgAgBEFgaigCACAEQVhqKAIAIARBUGooAgAgBEFIaigCACADampqampqamohAyAEQcAAaiEEIAZBeGoiBg0ACyAEQURqIQQLIAVFDQAgBEEEaiEEA0AgBCgCACADaiEDIARBCGohBCAFQX9qIgUNAAsLAkACQAJAAkAgAyACQQJ0aiIEDQBBASEFDAELIARBf0oiA0UNASAEIAMQtoWAgAAiBUUNAgtBACEDIABBADYCCCAAIAQ2AgQgACAFNgIAAkAgAkUNACABIAJBA3RqIQcDQCABQQRqKAIAIgRBCHZBgP4DcSAEQRh2ciEGIARBGHQgBEEIdEGAgPwHcXIhAiABKAIAIQgCQCAAKAIEIANrIARPDQAgACADIAQQw4aAgAAgACgCACEFIAAoAgghAwsgAiAGciEGIAUgA2ogCCAEELyRgIAAGiAAIAMgBGoiBDYCCAJAIAAoAgQgBGtBA0sNACAAIARBBBDDhoCAACAAKAIIIQQLIAAgBEEEaiIDNgIIIAAoAgAiBSAEaiAGNgAAIAFBCGoiASAHRw0ACwsPCxCpkICAAAALIAQgAxCokICAAAALSAECfyAAQQhqKAIAIQEgACgCACECAkBBDEEEELaFgIAAIgANAEEMQQQQqJCAgAAACyAAIAE2AgggACABNgIEIAAgAjYCACAAC8MBAQJ/I4CAgIAAQSBrIgIkgICAgAACQAJAIAFFDQAgASgCACIDDQEgAkEcakEANgIAIAJB3IzCgAA2AhggAkIBNwIMIAJBmI/CgAA2AgggAkEIakGgj8KAABC2kICAAAALIAJBHGpBADYCACACQdyMwoAANgIYIAJCATcCDCACQYSOwoAANgIIIAJBCGpB6I7CgAAQtpCAgAAACyAAIAM2AgAgACABKQIENwIEIAFBDEEEELeFgIAAIAJBIGokgICAgAALOAEBfyOAgICAAEEQayIBJICAgIAAIAFBCGogAEEIaigCADYCACABIAApAgA3AwAgARCrhoCAAAALOgEBfyOAgICAAEEQayIBJICAgIAAIAEgACkCADcDCCABQQhqQbCPwoAAQQAgACgCCEEBEMWPgIAAAAszAQF/I4CAgIAAQRBrIgMkgICAgAAgAyACNgIIIAMgATYCBCADIAA2AgAgAxCqhoCAAAALUQEBfyOAgICAAEEQayICJICAgIAAIAIgACgCADYCDCABQdCYwoAAQRFB4ZjCgABBByACQQxqQbiVwoAAEPeQgIAAIQAgAkEQaiSAgICAACAACw8AIAAoAgAgARCvhoCAAAvwAQEBfyOAgICAAEEQayICJICAgIAAAkACQAJAAkACQAJAAkACQCAAKAIADgcAAQIDBAUGAAsgAUG+m8KAAEEIEPGQgIAAIQAMBgsgAUG7lsKAAEEKEPGQgIAAIQAMBQsgAUGtm8KAAEEREPGQgIAAIQAMBAsgAUGXm8KAAEEWEPGQgIAAIQAMAwsgAUGEm8KAAEETEPGQgIAAIQAMAgsgAUHwmsKAAEEUEPGQgIAAIQAMAQsgAiAAQQRqNgIMIAFBzJrCgABBCkHWmsKAAEEKIAJBDGpB4JrCgAAQ95CAgAAhAAsgAkEQaiSAgICAACAAC40BAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAAKAIAIgA2AgQgAiAAQQhqNgIIIAIgAEEQajYCDCABQfyXwoAAQRdBrJXCgABBCyACQQRqQZSYwoAAQdOVwoAAQQsgAkEIakGUmMKAAEGkmMKAAEEFIAJBDGpBuJXCgAAQ+ZCAgAAhACACQRBqJICAgIAAIAALjQEBAX8jgICAgABBEGsiAiSAgICAACACIAAoAgAiAEEYajYCBCACIAA2AgggAiAAQQxqNgIMIAFBxJfCgABBDUHRl8KAAEEJIAJBBGpB3JfCgABB7JfCgABBCCACQQhqQbiVwoAAQfSXwoAAQQggAkEMakG4lcKAABD5kICAACEAIAJBEGokgICAgAAgAAshACABIAAoAgAtAABBAnRByJvCgABqKAIAQQMQ8ZCAgAALegEBfyOAgICAAEEwayICJICAgIAAIAAoAgAhACACQRxqQQE2AgAgAkICNwIMIAJBwJjCgAA2AgggAkHXgYCAADYCJCACIAA2AiwgAiACQSBqNgIYIAIgAkEsajYCICABIAJBCGoQ8pCAgAAhACACQTBqJICAgIAAIAALwwEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBAzYCACACQRhqQRRqQdeBgIAANgIAIAJBGGpBDGpB14GAgAA2AgAgAiAAQRhqNgI0IAIgADYCOCACQgM3AgQgAkGsl8KAADYCACACQdiBgIAANgIcIAIgAEEMajYCPCACIAJBGGo2AhAgAiACQTxqNgIoIAIgAkE4ajYCICACIAJBNGo2AhggASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAt2AQF/I4CAgIAAQTBrIgIkgICAgAAgAiAAKAIANgIMIAJBJGpBATYCACACQgE3AhQgAkGQkcKAADYCECACQdmBgIAANgIsIAIgAkEoajYCICACIAJBDGo2AiggASACQRBqEPKQgIAAIQAgAkEwaiSAgICAACAACw8AIAAoAgAgARC3hoCAAAvtAwEBfyOAgICAAEEwayICJICAgIAAAkACQAJAAkACQAJAAkACQCAAKAIADgcAAQIDBAUGAAsgAkEcakEANgIAIAJBgJHCgAA2AhggAkIBNwIMIAJBxJrCgAA2AgggASACQQhqEPKQgIAAIQAMBgsgAkEcakEANgIAIAJBgJHCgAA2AhggAkIBNwIMIAJBsJrCgAA2AgggASACQQhqEPKQgIAAIQAMBQsgAkEcakEANgIAIAJBgJHCgAA2AhggAkIBNwIMIAJBmJrCgAA2AgggASACQQhqEPKQgIAAIQAMBAsgAkEcakEANgIAIAJBgJHCgAA2AhggAkIBNwIMIAJB/JnCgAA2AgggASACQQhqEPKQgIAAIQAMAwsgAkEcakEANgIAIAJBgJHCgAA2AhggAkIBNwIMIAJB3JnCgAA2AgggASACQQhqEPKQgIAAIQAMAgsgAkEcakEANgIAIAJBgJHCgAA2AhggAkIBNwIMIAJBuJnCgAA2AgggASACQQhqEPKQgIAAIQAMAQsgAkEcakEBNgIAIAJCATcCDCACQfiYwoAANgIIIAJB2oGAgAA2AiQgAiAAQQRqNgIsIAIgAkEgajYCGCACIAJBLGo2AiAgASACQQhqEPKQgIAAIQALIAJBMGokgICAgAAgAAsCAAsjAQF/AkAgAEEEaigCACIBRQ0AIAAoAgAgAUEBELeFgIAACwvyAgECfyOAgICAAEEQayICJICAgIAAAkACQAJAAkAgAUGAAUkNACACQQA2AgwgAUGAEE8NASACIAFBP3FBgAFyOgANIAIgAUEGdkHAAXI6AAxBAiEBDAILAkAgACgCCCIDIAAoAgRHDQAgACADEMKGgIAAIAAoAgghAwsgACgCACADaiABOgAAIAAgACgCCEEBajYCCAwCCwJAIAFBgIAESQ0AIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBCEBDAELIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMhAQsCQCAAKAIEIAAoAggiA2sgAU8NACAAIAMgARDDhoCAACAAKAIIIQMLIAAoAgAgA2ogAkEMaiABELyRgIAAGiAAIAMgAWo2AggLIAJBEGokgICAgABBAAtLAQF/AkAgACgCBCAAKAIIIgNrIAJPDQAgACADIAIQw4aAgAAgACgCCCEDCyAAKAIAIANqIAEgAhC8kYCAABogACADIAJqNgIIQQALJQACQCABKAIADQAQtY+AgAAACyAAQYCRwoAANgIEIAAgATYCAAtmAQJ/IAEoAgAhAiABQQA2AgACQAJAIAJFDQAgASgCBCEDQQhBBBC2hYCAACIBRQ0BIAEgAzYCBCABIAI2AgAgAEGAkcKAADYCBCAAIAE2AgAPCxC1j4CAAAALQQhBBBCokICAAAALqgIBA38jgICAgABBwABrIgQkgICAgAACQAJAAkACQAJAIAINAEEBIQUMAQsgAkF/SiIGRQ0BIAIgBhC2hYCAACIFRQ0CCyAFIAEgAhC8kYCAACEBIARBADYCCCAEQgE3AwAgBEEQaiAEQcSPwoAAEOyQgIAAIAMgBEEQahCQh4CAAA0CIABBDGogAjYCACAAQQhqIAI2AgAgACABNgIEIAAgBCkDADcCECAAQQg2AgAgAEEYaiAEQQhqKAIANgIAAkAgAygCAEEUSQ0AIANBCGooAgAiAEUNACADKAIEIABBARC3hYCAAAsgBEHAAGokgICAgAAPCxCpkICAAAALIAIgBhCokICAAAALQdyPwoAAQTcgBEE4akGUkMKAAEHwkMKAABDakICAAAAL4QkBAX8jgICAgABBMGsiAiSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4NAAECAwQFBgcICQoLDAALIAJBLGpBATYCACACQgE3AhwgAkG8lMKAADYCGCACQduBgIAANgIEIAIgAEEEajYCFCACIAI2AiggAiACQRRqNgIAIAEgAkEYahDykICAACEADAwLIAJBLGpBATYCACACQgE3AhwgAkGglMKAADYCGCACQdyBgIAANgIEIAIgAEEEajYCFCACIAI2AiggAiACQRRqNgIAIAEgAkEYahDykICAACEADAsLIAJBLGpBATYCACACQgE3AhwgAkGAlMKAADYCGCACQdeBgIAANgIEIAIgAEEEajYCFCACIAI2AiggAiACQRRqNgIAIAEgAkEYahDykICAACEADAoLIAJBLGpBATYCACACQgE3AhwgAkHok8KAADYCGCACQdeBgIAANgIEIAIgAEEEajYCFCACIAI2AiggAiACQRRqNgIAIAEgAkEYahDykICAACEADAkLIAJBDGpB3YGAgAA2AgAgAkEsakECNgIAIAIgAEEIajYCECACQgI3AhwgAkHAk8KAADYCGCACQd2BgIAANgIEIAIgAEEQajYCFCACIAI2AiggAiACQRRqNgIIIAIgAkEQajYCACABIAJBGGoQ8pCAgAAhAAwICyACQSxqQQE2AgAgAkIBNwIcIAJBlJPCgAA2AhggAkHXgYCAADYCBCACIABBBGo2AhQgAiACNgIoIAIgAkEUajYCACABIAJBGGoQ8pCAgAAhAAwHCyACQSxqQQE2AgAgAkIBNwIcIAJB+JLCgAA2AhggAkHXgYCAADYCBCACIABBBGo2AhQgAiACNgIoIAIgAkEUajYCACABIAJBGGoQ8pCAgAAhAAwGCyACQSxqQQE2AgAgAkICNwIcIAJBwJLCgAA2AhggAkHXgYCAADYCBCACIABBBGo2AhQgAiACNgIoIAIgAkEUajYCACABIAJBGGoQ8pCAgAAhAAwFCyACQQxqQdeBgIAANgIAIAJBLGpBAjYCACACIABBBGo2AhAgAkICNwIcIAJBpJLCgAA2AhggAkHXgYCAADYCBCACIABBEGo2AhQgAiACNgIoIAIgAkEUajYCCCACIAJBEGo2AgAgASACQRhqEPKQgIAAIQAMBAsgAkEMakHXgYCAADYCACACQSxqQQI2AgAgAiAAQQRqNgIQIAJCAjcCHCACQfyRwoAANgIYIAJB14GAgAA2AgQgAiAAQRBqNgIUIAIgAjYCKCACIAJBFGo2AgggAiACQRBqNgIAIAEgAkEYahDykICAACEADAMLIAJBLGpBATYCACACQgE3AhwgAkHYkcKAADYCGCACQd6BgIAANgIEIAIgAEEEajYCFCACIAI2AiggAiACQRRqNgIAIAEgAkEYahDykICAACEADAILIAJBLGpBATYCACACQgE3AhwgAkHEkcKAADYCGCACQd+BgIAANgIEIAIgAEEEajYCFCACIAI2AiggAiACQRRqNgIAIAEgAkEYahDykICAACEADAELIAJBLGpBADYCACACQYCRwoAANgIoIAJCATcCHCACQayRwoAANgIYIAEgAkEYahDykICAACEACyACQTBqJICAgIAAIAALswYBAX8jgICAgABBEGsiAiSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4NAAECAwQFBgcICQoLDAALIAIgAEEEajYCDCABQeiWwoAAQQ9B1pTCgABBBiACQQxqQfiWwoAAEPeQgIAAIQAMDAsgAiAAQQRqNgIMIAFBxZbCgABBEEHWlMKAAEEGIAJBDGpB2JbCgAAQ95CAgAAhAAwLCyACIABBBGo2AgwgAUG7lsKAAEEKQciVwoAAQQMgAkEMakG4lcKAABD3kICAACEADAoLIAIgAEEEajYCDCABQa6WwoAAQQ1ByJXCgABBAyACQQxqQbiVwoAAEPeQgIAAIQAMCQsgAiAAQQhqNgIIIAIgAEEQajYCDCABQf+VwoAAQQ9BjpbCgABBCCACQQhqQZiWwoAAQaiWwoAAQQYgAkEMakGYlsKAABD4kICAACEADAgLIAIgAEEEajYCDCABQfWVwoAAQQpByJXCgABBAyACQQxqQbiVwoAAEPeQgIAAIQAMBwsgAiAAQQRqNgIMIAFB6pXCgABBC0HIlcKAAEEDIAJBDGpBuJXCgAAQ95CAgAAhAAwGCyACIABBBGo2AgwgAUHelcKAAEEIQeaVwoAAQQQgAkEMakG4lcKAABD3kICAACEADAULIAIgAEEEajYCCCACIABBEGo2AgwgAUHLlcKAAEEIQdOVwoAAQQsgAkEIakG4lcKAAEHIlcKAAEEDIAJBDGpBuJXCgAAQ+JCAgAAhAAwECyACIABBBGo2AgggAiAAQRBqNgIMIAFBoJXCgABBDEGslcKAAEELIAJBCGpBuJXCgABByJXCgABBAyACQQxqQbiVwoAAEPiQgIAAIQAMAwsgAiAAQQRqNgIM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P3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBCEBDAELIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMhAQsCQCAAKAIEIAAoAggiA2sgAU8NACAAIAMgARDDhoCAACAAKAIIIQMLIAAoAgAgA2ogAkEMaiABELyRgIAAGiAAIAMgAWo2AggLIAJBEGokgICAgABBAAtLAQF/AkAgACgCBCAAKAIIIgNrIAJPDQAgACADIAIQw4aAgAAgACgCCCEDCyAAKAIAIANqIAEgAhC8kYCAABogACADIAJqNgIIQQALFwAgACgCACAAQQhqKAIAIAEQhZGAgAALDAAgACABEJWGgIAAC6gDAgF/AX4jgICAgABBoAFrIgMkgICAgAAgAyACNgIMIAMgATYCCCADQdAAaiABIAIQlIaAgAACQAJAAkAgAygCUA0AIAMgAykCVDcDYCADQQA2AnAgA0IBNwNoIANB+ABqIANB6ABqQcSPwoAAEOyQgIAAIANB4ABqIANB+ABqEKiMgIAARQ0BQdyPwoAAQTcgA0EQakGUkMKAAEHwkMKAABDakICAAAALIANBEGpBDGogA0HYAGooAgAiAjYCACADIAMpA1AiBDcCFCAAIAQ3AgQgAEEMaiACNgIAIABBFTYCACADQQ02AhAMAQsgA0EcaiADQfAAaigCADYCACADIAMpA2g3AhQgA0EDNgIQIANBzoGAgAA2AlQgAyADQQhqNgJQIANBATYCjAEgA0IBNwJ8IANBtJ/CgAA2AnggAyADQdAAajYCiAEgA0HoAGogA0H4AGoQrZCAgAAgAEEEaiADQegAahCvkICAACAAQRQ2AgACQCADKAJsIgBFDQAgAygCaCAAQQEQt4WAgAALIANBEGoQy4aAgAALIANBoAFqJICAgIAACwwAIAAgARDkkICAAAvdAQECfyOAgICAAEEgayIEJICAgIAAAkACQEEMQQQQtoWAgAAiBUUNACAFIAM2AgggBSADNgIEIAUgAjYCAAJAAkAgBRCBgICAACIDDQAgAEEANgIADAELIAMoAgAiAkUNAiAAIAI2AgAgACADKQIENwIEIANBDEEEELeFgIAACyAFQQxBBBC3hYCAACAEQSBqJICAgIAADwtBDEEEEKiQgIAAAAsgBEEcakEANgIAIARB3IzCgAA2AhggBEIBNwIMIARBmI/CgAA2AgggBEEIakGgj8KAABC2kICAAAAL6AEBAn8jgICAgABBIGsiBSSAgICAAAJAAkACQCAERQ0AQQxBBBC2hYCAACIGRQ0BIAYgAjYCCCAGIAI2AgQgBiABNgIAQQxBBBC2hYCAACICRQ0CIAIgBDYCCCACIAQ2AgQgAiADNgIAIAYgAhCCgICAACACQQxBBBC3hYCAACAGQQxBBBC3hYCAACAFQSBqJICAgIAADwsgBUEcakEANgIAIAVBpJ/CgAA2AhggBUIBNwIMIAVBxKPCgAA2AgggBUEIakGspMKAABC2kICAAAALQQxBBBCokICAAAALQQxBBBCokICAAAALSQEBfwJAQQxBBBC2hYCAACIDDQBBDEEEEKiQgIAAAAsgAyACNgIIIAMgAjYCBCADIAE2AgAgAxCDgICAACADQQxBBBC3hYCAAAvxAQECf0EAIQdBACEIAkACQAJAAkAgAkUNAEEMQQQQtoWAgAAiCEUNASAIIAM2AgggCCADNgIEIAggAjYCAAsCQCAERQ0AQQxBBBC2hYCAACIHRQ0CIAcgBTYCCCAHIAU2AgQgByAENgIACyAIIAcgBkH/AXEQhICAgAAhBEEEQQQQtoWAgAAiAkUNAiACIAQ2AgACQCAHRQ0AIAdBDEEEELeFgIAACwJAIAhFDQAgCEEMQQQQt4WAgAALIABBvKTCgAA2AgQgACACNgIADwtBDEEEEKiQgIAAAAtBDEEEEKiQgIAAAAtBBEEEEKiQgIAAAAsCAAuuBAEDfyOAgICAAEEwayIEJICAgIAAAkACQAJAAkACQAJAAkACQAJAIANBgAJLDQBBDEEEELaFgIAAIgVFDQUgBSADNgIIIAUgAzYCBCAFIAI2AgAgBRCGgICAACIGDQMgAw0BQQEhBgwCC0EgQQEQtoWAgAAiA0UNBSAAIAM2AgQgAEECNgIAIANBACkA2KTCgAA3AAAgA0EIakEAKQDgpMKAADcAACADQRBqQQApAOikwoAANwAAIANBGGpBACkA8KTCgAA3AAAgAEEIakKggICAgAQ3AgAMAwsgA0EBELaFgIAAIgZFDQULIAAgBjYCBCAAQQhqIAM2AgAgBiACIAMQvJGAgAAaIABBDTYCACAAQQxqIAM2AgAgBUEMQQQQt4WAgAAMAQsgBigCACIDRQ0EIAQgAzYCACAEIAYpAgQ3AgQgBkEMQQQQt4WAgAAgBEHwgYCAADYCFCAEIAQ2AhAgBEEBNgIsIARCATcCHCAEQZClwoAANgIYIAQgBEEQajYCKCAAQQRqIARBGGoQrZCAgAAgAEECNgIAAkAgBCgCBCIARQ0AIAQoAgAgAEEBELeFgIAACyAFQQxBBBC3hYCAAAsgBEEwaiSAgICAAA8LQQxBBBCokICAAAALQSBBARCokICAAAALIANBARCokICAAAALIARBLGpBADYCACAEQdyMwoAANgIoIARCATcCHCAEQZiPwoAANgIYIARBGGpBoI/CgAAQtpCAgAAAC6MFAgJ/AX4jgICAgABBMGsiBCSAgICAAAJAAkACQAJAAkACQAJAAkACQCADQYACSw0AQQxBBBC2hYCAACIFRQ0DIAUgAzYCCCAFIAM2AgQgBSACNgIAQcAAQQEQtoWAgAAiAkUNBEEMQQQQtoWAgAAiA0UNBSADQsAANwIEIAMgAjYCACAFIAMQh4CAgAAiAg0BIAMoAgAiAkUNByADKQIEIQYgA0EMQQQQt4WAgAAgAEEIaiAGNwIAIAAgAjYCBCAAQQ02AgAgBUEMQQQQt4WAgAAMAgtBJEEBELaFgIAAIgNFDQUgACADNgIEIABBAjYCACADQQApAJilwoAANwAAIANBCGpBACkAoKXCgAA3AAAgA0EQakEAKQCopcKAADcAACADQRhqQQApALClwoAANwAAIANBIGpBACgAuKXCgAA2AAAgAEEIakKkgICAwAQ3AgAMAQsgAigCACIDRQ0GIAQgAzYCACAEIAIpAgQ3AgQgAkEMQQQQt4WAgAAgBEHwgYCAADYCFCAEIAQ2AhAgBEEBNgIsIARCATcCHCAEQdilwoAANgIYIAQgBEEQajYCKCAAQQRqIARBGGoQrZCAgAAgAEECNgIAAkAgBCgCBCIARQ0AIAQoAgAgAEEBELeFgIAACyAFQQxBBBC3hYCAAAsgBEEwaiSAgICAAA8LQQxBBBCokICAAAALQcAAQQEQqJCAgAAAC0EMQQQQqJCAgAAAC0EkQQEQqJCAgAAACyAEQSxqQQA2AgAgBEHcjMKAADYCKCAEQgE3AhwgBEGYj8KAADYCGCAEQRhqQaCPwoAAELaQgIAAAAsgBEEsakEANgIAIARB3IzCgAA2AiggBEIBNwIcIARBmI/CgAA2AhggBEEYakGgj8KAABC2kICAAAALmwQCA38BfiOAgICAAEEwayIDJICAgIAAIAJBCGooAgAhBCACKAIAIQUCQAJAAkACQAJAQQxBBBC2hYCAACICRQ0AIAIgBDYCCCACIAQ2AgQgAiAFNgIAQdoAQQEQtoWAgAAiBUUNAUEMQQQQtoWAgAAiBEUNAiAEQtoANwIEIAQgBTYCAAJAAkAgAiAEEIiAgIAAIgUNACAEKAIAIgVFDQUgBCkCBCEGIARBDEEEELeFgIAAIABBCGogBjcCACAAIAU2AgQgAEENNgIAIAJBDEEEELeFgIAADAELIAUoAgAiBEUNBSADIAQ2AgAgAyAFKQIENwIEIAVBDEEEELeFgIAAIANB8IGAgAA2AhQgAyADNgIQIANBATYCLCADQgE3AhwgA0H4pcKAADYCGCADIANBEGo2AiggAEEEaiADQRhqEK2QgIAAIABBAjYCAAJAIAMoAgQiBEUNACADKAIAIARBARC3hYCAAAsgAkEMQQQQt4WAgAALIANBMGokgICAgAAPC0EMQQQQqJCAgAAAC0HaAEEBEKiQgIAAAAtBDEEEEKiQgIAAAAsgA0EsakEANgIAIANB3IzCgAA2AiggA0IBNwIcIANBmI/CgAA2AhggA0EYakGgj8KAABC2kICAAAALIANBLGpBADYCACADQdyMwoAANgIoIANCATcCHCADQZiPwoAANgIYIANBGGpBoI/CgAAQtpCAgAAAC50DAQJ/I4CAgIAAQSBrIggkgICAgAACQAJAAkBBDEEEELaFgIAAIglFDQAgCSADNgIIIAkgAzYCBCAJIAI2AgBBDEEEELaFgIAAIgNFDQEgAyAFNgIIIAMgBTYCBCADIAQ2AgBBDEEEELaFgIAAIgVFDQIgBSAHNgIIIAUgBzYCBCAFIAY2AgACQAJAAkACQAJAAkACQAJAAkAgCSADIAUQiYCAgAAiBw4LAQIDBAUGAAAAAAcACyAAIAc2AgQgAEEGNgIADAcLIABBBzYCACAAQQE6AAQMBgsgAEEHNgIAIABBADoABAwFCyAIQRxqQQA2AgAgCEGkn8KAADYCGCAIQgE3AgwgCEG4psKAADYCCCAIQQhqQcCmwoAAELaQgIAAAAsgAEECNgIADAMLIABBAzYCAAwCCyAAQQQ2AgAMAQsgAEEBNgIACyAFQQxBBBC3hYCAACADQQxBBBC3hYCAACAJQQxBBBC3hYCAACAIQSBqJICAgIAADwtBDEEEEKiQgIAAAAtBDEEEEKiQgIAAAAtBDEEEEKiQgIAAAAvwAwICfwF+I4CAgIAAQSBrIgckgICAgAACQAJAAkACQEEMQQQQtoWAgAAiCEUNACAIIAM2AgggCCADNgIEIAggAjYCAEEMQQQQtoWAgAAiA0UNASADIAU2AgggAyAFNgIEIAMgBDYCAAJAAkACQAJAAkACQAJAIAggAyAGQf8BcRCKgICAACIJQiCIpyIFDgcBAAIDBAAFAAsgAEKAgICAMDcCACAAQQhqIAU2AgAMBQsgCaciBUUNByAFKAIAIgJFDQggACACNgIAIAAgBSkCBDcCBCAFQQxBBBC3hYCAAAwECyAHQRxqQQA2AgAgB0Gkn8KAADYCGCAHQgE3AgwgB0G4psKAADYCCCAHQQhqQdCmwoAAELaQgIAAAAsgAEIANwIADAILIABCgICAgBA3AgAMAQsgAEKAgICAIDcCAAsgA0EMQQQQt4WAgAAgCEEMQQQQt4WAgAAgB0EgaiSAgICAAA8LQQxBBBCokICAAAALQQxBBBCokICAAAALIAdBHGpBADYCACAHQdyMwoAANgIYIAdCATcCDCAHQYSOwoAANgIIIAdBCGpB6I7CgAAQtpCAgAAACyAHQRxqQQA2AgAgB0HcjMKAADYCGCAHQgE3AgwgB0GYj8KAADYCCCAHQQhqQaCPwoAAELaQgIAAAAvNAwECfyOAgICAAEEgayIIJICAgIAAAkACQAJAQQxBBBC2hYCAACIJRQ0AIAkgAzYCCCAJIAM2AgQgCSACNgIAQQxBBBC2hYCAACIDRQ0BIAMgBTYCCCADIAU2AgQgAyAENgIAQQxBBBC2hYCAACIFRQ0CIAUgBzYCCCAFIAc2AgQgBSAGNgIAAkACQAJAAkACQAJAAkACQAJAIAkgAyAFEIuAgIAAIgcOCwECAwQFBgAAAAAHAAsgACAHNgIEIABBBjYCAAwHCyAAQQc2AgAgAEEBOgAEDAYLIABBBzYCACAAQQA6AAQMBQsgCEEcakEANgIAIAhBpJ/CgAA2AhggCEIBNwIMIAhB+KfCgAA2AgggCEEIakGAqMKAABC2kICAAAALIAhBHGpBADYCACAIQaSfwoAANgIYIAhCATcCDCAIQZynwoAANgIIIAhBCGpBpKfCgAAQtpCAgAAACyAAQQM2AgAMAgsgAEEENgIADAELIABBATYCAAsgBUEMQQQQt4WAgAAgA0EMQQQQt4WAgAAgCUEMQQQQt4WAgAAgCEEgaiSAgICAAA8LQQxBBBCokICAAAALQQxBBBCokICAAAALQQxBBBCokICAAAAL8wQBA38jgICAgABB0ABrIggkgICAgAAgCEEIaiACIAMQp4aAgAAgCCgCECECIAgoAgghCQJAAkACQEEMQQQQtoWAgAAiA0UNACADIAI2AgggAyACNgIEIAMgCTYCACAIQRhqIAQgBRCnhoCAACAIKAIgIQUgCCgCGCEKQQxBBBC2hYCAACICRQ0BIAIgBTYCCCACIAU2AgQgAiAKNgIAIAhBKGogBiAHEKeGgIAAIAgoAjAhBCAIKAIoIQdBDEEEELaFgIAAIgVFDQIgBSAENgIIIAUgBDYCBCAFIAc2AgACQAJAAkACQAJAAkACQAJAAkAgAyACIAUQjICAgAAiBA4LAQIDBAUGAAAAAAcACyAAIAQ2AgQgAEEGNgIADAcLIABBBzYCACAAQQE6AAQMBgsgAEEHNgIAIABBADoABAwFCyAIQcwAakEANgIAIAhBpJ/CgAA2AkggCEIBNwI8IAhB+KfCgAA2AjggCEE4akGgqMKAABC2kICAAAALIAhBzABqQQA2AgAgCEGkn8KAADYCSCAIQgE3AjwgCEGcp8KAADYCOCAIQThqQZCowoAAELaQgIAAAAsgAEEDNgIADAILIABBBDYCAAwBCyAAQQE2AgALIAVBDEEEELeFgIAAAkAgCCgCLCIFRQ0AIAcgBUEBELeFgIAACyACQQxBBBC3hYCAAAJAIAgoAhwiAkUNACAKIAJBARC3hYCAAAsgA0EMQQQQt4WAgAACQCAIKAIMIgNFDQAgCSADQQEQt4WAgAALIAhB0ABqJICAgIAADwtBDEEEEKiQgIAAAAtBDEEEEKiQgIAAAAtBDEEEEKiQgIAAAAtJAQF/AkBBDEEEELaFgIAAIgMNAEEMQQQQqJCAgAAACyADIAI2AgggAyACNgIEIAMgATYCACADEI2AgIAAIANBDEEEELeFgIAAC+oFAgR/BH4jgICAgABBkAFrIgQkgICAgAACQAJAAkACQEEMQQQQtoWAgAAiBUUNACAFIAM2AgggBSADNgIEIAUgAjYCACAFEI6AgIAAIgNFDQEgAygCACICRQ0CIAMoAgQhBiADKAIIIQcgA0EMQQQQt4WAgAAgBEHgAGogAiAHEPaFgIAAAkACQCAEKAJgQQdHDQAgBEEwakEIaiIDIARB4ABqQQxqKQIANwMAIAQgBCkCZDcDMCAEQQhqQQhqQciEwoAAQYgBIARBMGoQvoaAgAAgBEIBNwMIIARBMGpBGGogBEEoaikDADcDACAEQTBqQRBqIARBCGpBGGopAwA3AwAgAyAEQQhqQRBqKQMANwMAIAQgBCkDEDcDMCAEQQA2AlggBEIBNwNQIARB4ABqIARB0ABqQdCdwoAAEOyQgIAAIARBMGogBEHgAGoQv4aAgAANBSAAIAc2AhggACAGNgIUIAAgAjYCECAAIAQpA1A3AgQgAEEMaiAEQdAAakEIaigCADYCACAAQQE2AgAgBEEwahDLhoCAAAwBCyAEQShqIARB4ABqQRhqKQMAIgg3AwAgBEEIakEYaiAEQeAAakEQaikDACIJNwMAIARBCGpBEGogBEHgAGpBCGopAwAiCjcDACAEIAQpA2AiCzcDECAEQgA3AwggAEEYaiAINwMAIABBEGogCTcDACAAQQhqIAo3AwAgACALNwMAIAZFDQAgAiAGQQEQt4WAgAALIAVBDEEEELeFgIAAIARBkAFqJICAgIAADwtBDEEEEKiQgIAAAAsgBEEcakEANgIAIARB3IzCgAA2AhggBEIBNwIMIARBhI7CgAA2AgggBEEIakHojsKAABC2kICAAAALIARBHGpBADYCACAEQdyMwoAANgIYIARCATcCDCAEQZiPwoAANgIIIARBCGpBoI/CgAAQtpCAgAAAC0HoncKAAEE3IARBiAFqQaCewoAAQfyewoAAENqQgIAAAAtDACAAKAIAIQACQCABEPSQgIAADQACQCABEPWQgIAADQAgACABEJuRgIAADwsgACABEKmRgIAADwsgACABEKiRgIAAC0MAIAAoAgAhAAJAIAEQ9JCAgAANAAJAIAEQ9ZCAgAANACAAIAEQv5CAgAAPCyAAIAEQp5GAgAAPCyAAIAEQnZGAgAALrQEBAX8jgICAgABBEGsiAiSAgICAAAJAAkACQAJAAkAgACgCACIAKAIADgQAAQIDAAsgAUGSqsKAAEEREPGQgIAAIQAMAwsgAUH8qcKAAEEWEPGQgIAAIQAMAgsgAUHoqcKAAEEUEPGQgIAAIQAMAQsgAiAAQQRqNgIMIAFBxKnCgABBCkHOqcKAAEEKIAJBDGpB2KnCgAAQ95CAgAAhAAsgAkEQaiSAgICAACAACxwAIAAoAgAiACgCACAAQQRqKAIAIAEQgpGAgAALDwAgACgCACABEL+QgIAACxQAIAAoAgAgACgCBCABEIWRgIAACw8AIAAoAgAgARDuhoCAAAu5AgEBfyOAgICAAEEwayICJICAgIAAAkACQAJAAkACQCAAKAIADgQAAQIDAAsgAkEcakEANgIAIAJBsKjCgAA2AhggAkIBNwIMIAJBvKnCgAA2AgggASACQQhqEPKQgIAAIQAMAwsgAkEcakEANgIAIAJBsKjCgAA2AhggAkIBNwIMIAJBoKnCgAA2AgggASACQQhqEPKQgIAAIQAMAgsgAkEcakEANgIAIAJBsKjCgAA2AhggAkIBNwIMIAJBgKnCgAA2AgggASACQQhqEPKQgIAAIQAMAQsgAkEcakEBNgIAIAJCATcCDCACQcCowoAANgIIIAJB2oGAgAA2AiQgAiAAQQRqNgIsIAIgAkEgajYCGCACIAJBLGo2AiAgASACQQhqEPKQgIAAIQALIAJBMGokgICAgAAgAAsPACAAKAIAIAEQm5GAgAALAgALAgALegECfwJAAkACQAJAAkAgAA0AQQEhAQwBCyAAQX9KIgJFDQEgACACELaFgIAAIgFFDQILQQxBBBC2hYCAACICRQ0CIAJBADYCCCACIAA2AgQgAiABNgIAIAIPCxCpkICAAAALIAAgAhCokICAAAALQQxBBBCokICAAAALzwEBA38jgICAgABBIGsiASSAgICAAAJAAkAgAEUNACAAKAIAIgJFDQEgACgCBCEDIABBDEEEELeFgIAAAkAgA0UNACACIANBARC3hYCAAAsgAUEgaiSAgICAAA8LIAFBHGpBADYCACABQdyMwoAANgIYIAFCATcCDCABQYSOwoAANgIIIAFBCGpB6I7CgAAQtpCAgAAACyABQRxqQQA2AgAgAUHcjMKAADYCGCABQgE3AgwgAUGYj8KAADYCCCABQQhqQaCPwoAAELaQgIAAAAvCAQEBfyOAgICAAEEwayICJICAgIAAAkACQCAAKAIADQAgAkEcakEANgIAIAJBpKrCgAA2AhggAkIBNwIMIAJBvKrCgAA2AgggASACQQhqEPKQgIAAIQAMAQsgAiAANgIEIAJBHGpBATYCACACQgE3AgwgAkGkqsKAADYCCCACQf2BgIAANgIkIAIgAkEgajYCGCACIAJBLGo2AiAgAiACQQRqNgIsIAEgAkEIahDykICAACEACyACQTBqJICAgIAAIAALMQEBfwJAQYAIQQEQtoWAgAAiAQ0AQYAIQQEQqJCAgAAACyAAQoAINwIEIAAgATYCAAuxAQACQAJAIAINAAJAIAEoAgQgASgCCCICa0EESw0AIAEgAkEFEIOHgIAAIAEoAgghAgsgASACQQVqNgIIIAEoAgAgAmoiAUEAKADEqsKAADYAACABQQRqQQAtAMiqwoAAOgAADAELAkAgASgCBCABKAIIIgJrQQNLDQAgASACQQQQg4eAgAAgASgCCCECCyABIAJBBGo2AgggASgCACACakH05NWrBjYAAAsgAEEANgIAC9YBAQR/I4CAgIAAQRBrIgMkgICAgAAgA0EAOwEMIAMgAiACQf8BcSIEQQpuIgVBCmxrQTByOgAOQQIhBgJAIARBCU0NACADIAVBCnBBMHI6AA1BASEGIARB5ABJDQAgAyACQf8BcUHkAG5BMHI6AAxBACEGCwJAIAEoAgQgASgCCCICayAGQQNzIgRPDQAgASACIAQQg4eAgAAgASgCCCECCyABKAIAIAJqIANBDGogBmogBBC8kYCAABogAEEANgIAIAEgAiAEajYCCCADQRBqJICAgIAAC/cBAwN/AX4CfyOAgICAAEEgayIDJICAgIAAQQAhBCADQRhqQQA2AgAgA0EQakIANwMAIANCADcDCANAIANBCGogBGoiBUETaiACIAJCCoAiBkIKfn2nQTByOgAAAkAgAkIKWg0AIAVBE2ohBwJAIAEoAgQgASgCCCIFa0EBIARrIghPDQAgASAFIAgQg4eAgAAgASgCCCEFCyABKAIAIAVqIAcgCBC8kYCAABogAEEANgIAIAEgBSAEa0EBajYCCCADQSBqJICAgIAADwsgBEESaiEFIARBf2ohBCAGIQIgBUEUSQ0AC0F/QRRBrKvCgAAQt5CAgAAAC50PAQV/I4CAgIAAQRBrIgQkgICAgAACQCABKAIIIgUgASgCBEcNACABIAUQ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AxC8kYCAABogBSADaiEFCyABIAU2AgggAiAGRw0ACwsCQCAFIAEoAgRHDQAgASAFEIKHgIAAIAEoAgghBQsgASgCACAFakEiOgAAIABBADYCACABIAEoAghBAWo2AgggBEEQaiSAgICAAAtOAQF/AkAgASgCBCABKAIIIgJrQQNLDQAgASACQQQQg4eAgAAgASgCCCECCyAAQQA2AgAgASACQQRqNgIIIAEoAgAgAmpB7uqx4wY2AAALEAAgACABIAUgBhD5hoCAAAtaAQF/AkAgASgCCCIEIAEoAgRHDQAgASAEEIKHgIAAIAEoAgghBAsgASgCACAEakHbADoAACAAIAE2AgQgAEEANgIAIABBCGpBAToAACABIAEoAghBAWo2AggLWgEBfwJAIAEoAggiBSABKAIERw0AIAEgBRCCh4CAACABKAIIIQULIAEoAgAgBWpB+wA6AAAgACABNgIEIABBADYCACAAQQhqQQE6AAAgASABKAIIQQFqNgIIC8kCAgJ/AX4jgICAgABBIGsiCCSAgICAAAJAIAEoAggiCSABKAIERw0AIAEgCRCCh4CAACABKAIIIQkLIAEoAgAgCWpB+wA6AAAgASABKAIIQQFqNgIIIAhBEGogASAFIAYQ+YaAgAACQAJAIAgoAhANAAJAIAEoAggiCSABKAIERw0AIAEgCRCCh4CAACABKAIIIQkLIAEoAgAgCWpBOjoAACABIAEoAghBAWoiCTYCCAJAIAkgASgCBEcNACABIAkQgoeAgAAgASgCCCEJCyABKAIAIAlqQfsAOgAAIAAgATYCBCAAQQA2AgAgAEEIakEBOgAAIAEgASgCCEEBajYCCAwBCyAIQQhqIAhBEGpBDGooAgAiATYCACAIIAgpAhQiCjcDACAAQQxqIAE2AgAgACAKNwIEIABBATYCAAsgCEEgaiSAgICAAAsEACAACxAAIABBAToABCAAIAE2AgAL2gEAAkACQCACRQ0AAkACQAJAAkACQAJAIAFBAEgNACADKAIIDQEgAQ0CQQEhAgwECyAAQQhqQQA2AgAMBgsCQCADKAIEIgINAAJAIAENAEEBIQIMBAsgAUEBELaFgIAAIQIMAgsgAygCACACQQEgARC4hYCAACECDAELIAFBARC2hYCAACECCyACRQ0BCyAAIAI2AgQgAEEIaiABNgIAIABBADYCAA8LIAAgATYCBCAAQQhqQQE2AgAgAEEBNgIADwsgACABNgIEIABBCGpBADYCAAsgAEEBNgIAC+YBAQN/I4CAgIAAQSBrIgIkgICAgAACQAJAIAFBAWoiAUUNACAAQQRqKAIAIgNBAXQiBCABIAQgAUsbIgFBCCABQQhLGyIBQX9zQR92IQQCQAJAIANFDQAgAkEBNgIYIAIgAzYCFCACIAAoAgA2AhAMAQsgAkEANgIYCyACIAEgBCACQRBqEIGHgIAAIAIoAgQhAwJAIAIoAgANACAAIAM2AgAgAEEEaiABNgIADAILIAJBCGooAgAiAEGBgICAeEYNASAARQ0AIAMgABCokICAAAALEKmQgIAAAAsgAkEgaiSAgICAAAvoAQECfyOAgICAAEEgayIDJICAgIAAAkACQCABIAJqIgIgAUkNACAAQQRqKAIAIgFBAXQiBCACIAQgAksbIgJBCCACQQhLGyICQX9zQR92IQQCQAJAIAFFDQAgA0EBNgIYIAMgATYCFCADIAAoAgA2AhAMAQsgA0EANgIYCyADIAIgBCADQRBqEIGHgIAAIAMoAgQhAQJAIAMoAgANACAAIAE2AgAgAEEEaiACNgIADAILIANBCGooAgAiAEGBgICAeEYNASAARQ0AIAEgABCokICAAAALEKmQgIAAAAsgA0EgaiSAgICAAAvOEQEKfyOAgICAAEEwayIDJICAgIAAAkACQAJAAkACQAJAAkACQAJAIAINAEEAIQQgA0EANgIIIAMgAjYCBEEBIQEgA0EBNgIAIANBADYCECADQQA2AhRBACEFDAELIAJBf0wNByACQQEQtoWAgAAiBEUNBiADQQA2AgggAyACNgIEIAMgBDYCACADQQA2AhAgA0EANgIUQQAhBEEAIQZBACEFQQAhB0EAIQgDQAJAIAEtAAAiCUH/AXEiCkEgTw0AQQAhCwwECwJAAkACQAJAAkACQAJAAkACQAJAIAVBAXENACAGQQFxDQEgCkHcAEcNAkEBIQZBACEFDAkLAkAgCUFQakH/AXFBCkkNAEEMIQsgCkG/f2oOJgAAAAAAAA0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAAAAAAAADQsgB0EDSw0CIANBFGogB2ogCToAAEEBIQUgB0EBaiIHQQRHDQggAygCFCIFQVBqIgdB/wFxQQpJDQUgBUG/f2pB/wFxQQZJDQMgBUGff2pB/wFxQQZPDQQgBUGpf2ohBwwFC0EBIQVBDCELQQEhBgJAAkACQAJAAkACQCAKQV5qDlQAERERERERERERERERABERERERERERERERERERERERERERERERERERERERERERERERERERERERERERABERERERAREREQIRERERERERAxEREQQRBQ0RCwJAIAQgAygCBEcNACADIAQQgoeAgAAgAygCCCEECyADKAIAIARqIAk6AAAgAygCCEEBaiEEDAoLAkAgBCADKAIERw0AIAMgBBCCh4CAACADKAIIIQQLIAMoAgAgBGpBCDoAACADKAIIQQFqIQQMCQsCQCAEIAMoAgRHDQAgAyAEEIKHgIAAIAMoAgghBAsgAygCACAEakEMOgAAIAMoAghBAWohBAwICwJAIAQgAygCBEcNACADIAQQgoeAgAAgAygCCCEECyADKAIAIARqQQo6AAAgAygCCEEBaiEEDAcLAkAgBCADKAIERw0AIAMgBBCCh4CAACADKAIIIQQLIAMoAgAgBGpBDToAACADKAIIQQFqIQQMBgsCQCAEIAMoAgRHDQAgAyAEEIKHgIAAIAMoAgghBAsgAygCACAEakEJOgAAIAMoAghBAWohBAwFCwJAIAhB//8DcUEBRw0AQREhCwwLCwJAIAQgAygCBEcNACADIAQQgoeAgAAgAygCCCEECyADKAIAIARqIAk6AAAgAygCCEEBaiEEQQAhCAwECyAHQQRBoKzCgAAQt5CAgAAACyAFQUlqIQcMAQsgA0EsakEANgIAIANBvKvCgAA2AiggA0IBNwIcIANB0KzCgAA2AhggA0EYakHYrMKAABC2kICAAAALAkAgBUEIdiIKQVBqIglB/wFxQQpJDQACQAJAIApBv39qQf8BcUEGSQ0AIApBn39qQf8BcUEGTw0BIApBqX9qIQkMAgsgCkFJaiEJDAELIANBLGpBADYCACADQbyrwoAANgIoIANCATcCHCADQdCswoAANgIYIANBGGpB2KzCgAAQtpCAgAAACwJAIAVBEHYiBkFQaiIKQf8BcUEKSQ0AAkACQCAGQb9/akH/AXFBBkkNACAGQZ9/akH/AXFBBk8NASAGQal/aiEKDAILIAZBSWohCgwBCyADQSxqQQA2AgAgA0G8q8KAADYCKCAD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BAUGBwgJCgsMDQ4PEBESExQACyACQdazwoAANgIoQSIhAAwUCyACQb2zwoAANgIoQRkhAAwTCyACQaGzwoAANgIoQRwhAAwSCyACQYazwoAANgIoQRshAAwRCyACQeeywoAANgIoQR8hAAwQCyACQcGywoAANgIoQSYhAAwPCyACQZmywoAANgIoQSghAAwOCyACQeKxwoAANgIoQTchAAwNCyACQbuxwoAANgIoQSchAAwMCyACQYOxwoAANgIoQTghAAwLCyACQcuwwoAANgIoQTghAAwKCyACQZ2wwoAANgIoQS4hAAwJCyACQYWwwoAANgIoQRghAAwICyACQfavwoAANgIoQQ8hAAwHCyACQeqvwoAANgIoQQwhAAwGCyACQc+vwoAANgIoQRshAAwFCyACQbSvwoAANgIoQRshAAwECyACQeWuwoAANgIoQc8AIQAMAwsgAkGprsKAADYCKEE8IQAMAgsgAkHwrcKAADYCKEE5IQAMAQsgAiAAQQRqKAIANgIoIABBDGooAgAhAAsgAkEcakEBNgIAIAJB/oGAgAA2AiQgAiAANgIsIAJCATcCDCACQeitwoAANgIIIAIgAkEoajYCICACIAJBIGo2AhggASACQQhqEPKQgIAAIQAgAkEwaiSAgICAACAAC0kBAX8CQCABKAIIIgMgASgCBEcNACABIAMQgoeAgAAgASgCCCEDCyABKAIAIANqQd0AOgAAIABBADYCACABIAEoAghBAWo2AggLHwAgACgCACgCACIAKAIAIABBCGooAgAgARCFkYCAAAtJAQF/AkAgASgCCCIDIAEoAgRHDQAgASADEIKHgIAAIAEoAgghAwsgASgCACADakH9ADoAACAAQQA2AgAgASABKAIIQQFqNgIIC4QBAQF/AkAgASgCCCIDIAEoAgRHDQAgASADEIKHgIAAIAEoAgghAwsgASgCACADakH9ADoAACABIAEoAghBAWoiAzYCCAJAIAMgASgCBEcNACABIAMQgoeAgAAgASgCCCEDCyABKAIAIANqQf0AOgAAIABBADYCACABIAEoAghBAWo2AggLyAEBBH8jgICAgABBMGsiASSAgICAACAAQRRqKAIAIQIgACgCACEDAkACQAJAAkAgACgCBCIEDgIAAQILIAINAUH4s8KAAEEAEIGIgIAAIQAMAgsgAg0AIAMoAgAgAygCBBCBiICAACEADAELIAFBGGpBEGogAEEQaigCADYCACABIAQ2AhwgASADNgIYIAEgAjYCLCABIAApAgg3AyAgAUEIaiABQRhqEK2QgIAAIAFBCGoQg4iAgAAhAAsgAUEwaiSAgICAACAAC8wMAg9/An4jgICAgABBkAJrIgIkgICAgAACQAJAAkACQAJAAkAgASgCACIDRQ0AIAEoAiAhBCABKAIcIQUgASgCGCEGIAEoAhAhByABKAIMIQggASgCBCEJAkACQAJAAkACQCABKAIIIgpBIEYNACACQYKAgIAANgLsASACIAo2AtgBIAIgAkHYAWo2AugBIAJBATYClAEgAkIBNwKEASACQZi0woAANgKAASACIAJB6AFqNgKQASACQTBqIAJBgAFqEK2QgIAAIABBDGogAkEwahCDiICAADYCACAAQeMAOgAIIABCATcDAAJAIAlFDQAgAyAJQQEQt4WAgAALIAcNAQwICyABKAIUIQsgAkEQaiADQSAQwY6AgAAgAUEoaigCACEMIAFBLGooAgAhDSABKAIkIQ4gAkHlADoAgAEgAiAOIA1BMGxqNgL0ASACIA42AvABIAIgDDYC7AEgAiAONgLoASACIAJBgAFqNgL4ASACQdgBaiACQegBahCHiICAACACLQCAASIOQeUARg0DQQIhDCACQfwAakECaiACLQCDAToAACACIAIvAIEBOwF8IAIoAoQBIQsgAigCiAEhDyACKAKMASEQIAJBMGogAkGQAWpByAAQvJGAgAAaIAIoAtwBIg1FDQEgAkGAAmogDTYCACACQfwBaiACKALYASIMNgIAIAIgDTYC8AEgAiAMNgLsAUEAIQwgAkEANgLoASACKALgASENDAILIAggB0EBELeFgIAADAYLIAJBAjYC6AFBACENCyACIA02AogCIAIgDDYC+AEgAkHoAWoQiIiAgAAgAEELaiACQf4Aai0AADoAACAAQQlqIAIvAXw7AAAgAEEYaiACQTBqQcgAELyRgIAAGiAAQRRqIBA2AgAgAEEQaiAPNgIAIABBDGogCzYCACAAIA46AAggAEIBNwMADAMLIAIoAuABIQ0gAigC3AEhDCACKALYASEPIAIgBiAEQQxsajYCPCACIAY2AjggAiAFNgI0IAIgBjYCMCACQYABaiACQTBqEOOHgIAAIAItAIABIhBB5QBGDQEgAiACKQCBATcD6AEgAiACQYgBaikAADcA7wEgAEEYaiACQYABakEQakHIABC8kYCAABogAEEQaiACKQDvATcAACAAQQlqIAIpA+gBNwAAIAAgEDoACCAAQgE3AwACQAJAIAxFDQAgAkGAAWpBGGogDDYCACACQZQBaiAPNgIAIAIgDDYCiAEgAiAPNgKEAUEAIQAgAkEANgKAAQwBC0ECIQAgAkECNgKAAUEAIQ0LIAIgDTYCoAEgAiAANgKQASACQYABahCIiICAAAwCCyACQZQBakEANgIAIAJB+LPCgAA2ApABIAJCATcChAEgAkHEtMKAADYCgAEgAEEMaiACQYABahCVh4CAADYCACAAQeMAOgAIIABCATcDAAwDCyACQdgBakEIaiIOIAJBgAFqQQxqKAIANgIAIAIgAikChAE3A9gBIABByABqIAJBEGpBGGopAwA3AAAgAEHAAGogAkEQakEQaikDADcAACAAQThqIAJBEGpBCGopAwA3AAAgAEEwaiACKQMQNwAAIABB2ABqIA02AgAgAEHUAGogDDYCACAAQdAAaiAPNgIAIAIgATUCMCABNQI0EKaLgIAAIAIpAwAhESACKQMIIRIgAEEgaiALNgIAIABBHGogBzYCACAAQRhqIAg2AgAgAEEkaiACKQPYATcCACAAQSxqIA4oAgA2AgAgAEEQaiASNwMAIAAgETcDCCAAQgA3AwAgCUUNAyADIAlBARC3hYCAAAwDCwJAIAlFDQAgAyAJQQEQt4WAgAALAkAgB0UNACAIIAdBARC3hYCAAAsgDkHlAEYNAgsCQCAERQ0AIARBDGwhDiAGIQADQAJAIABBBGooAgAiA0UNACAAKAIAIANBARC3hYCAAAsgAEEMaiEAIA5BdGoiDg0ACwsCQCAFRQ0AIAYgBUEMbEEEELeFgIAACyAKQSBGDQELIAEoAiQhAwJAIAFBLGooAgAiAEUNACAAQTBsIQ4gAyEAA0AgABDCh4CAACAAQTBqIQAgDkFQaiIODQALCyABQShqKAIAIgBFDQAgAyAAQTBsQQQQt4WAgAALIAJBkAJqJICAgIAAC/gHAgx/An4jgICAgABBgAFrIgIkgICAgAAgAiABQQhqKAIANgIsIAIgASgCACIDNgIoIAJBwABqIAJBKGoQ/YeAgAACQAJAAkACQCACKAJAIgRFDQAgAkEIakEIaiACQcAAakEgaikDADcDACACQRhqIgUgAkHAAGpBKGopAwA3AwAgAkEIakEYaiIGIAJBwABqQTBqKQMANwMAIAIgAikDWDcDCCACKAJUIQcgAigCUCEIIAIoAkwhCSACKAJIIQogAigCRCELIAIgAUEUaigCADYCfCACIAFBDGoiDCgCADYCeCACQcAAaiACQfgAahD9h4CAACACKAJAIg1FDQEgACACKQJUNwJMIAJBMGpBCGogAkHAAGpBDGopAgAiDjcDACAAQdQAaiACQdwAaikCADcCACAAQdwAaiACQeQAaikCADcCACAAQeQAaiACQewAaikCADcCACAAQewAaiACQfQAaigCADYCACACIAIpAkQiDzcDMCAAQcQAaiAONwIAIAAgDzcCPCAAIAc2AhQgACAINgIQIAAgCTYCDCAAIAo2AgggACALNgIEIAAgBDYCACAAIAIpAwg3AhggAEEgaiACQQhqQQhqKQMANwIAIABBKGogBSkDADcCACAAQTBqIAYpAwA3AgAgACANNgI4IAFBBGooAgAiAEUNAyADIABBARC3hYCAAAwDCyACKQJEIQ4gAEEUaiACQcAAakEMaikCADcCACAAQQxqIA43AgAgAEHbADoACCAAQQA2AgAMAQsgAkEwakEIaiACQcAAakEMaikCACIONwMAIAIgAikCRCIPNwMwIAJBywBqIA43AAAgAEHbADoACCAAQQA2AgAgAiAPNwBDIABBCWogAikAQDcAACAAQRFqIAJBwABqQQhqKQAANwAAIABBGGogAkHPAGooAAA2AAACQCALRQ0AIAQgC0EBELeFgIAACwJAIAdFDQAgCSAHQfAAbGohBSAJIQsDQAJAIAtBDGooAgAiDEUNACALKAIEIQAgDEEUbCEEA0ACQAJAAkACQCAALQAADgQAAAABAwsgAEEIaiEMDAELIABBBGohDAsgDEEEaigCACIHRQ0AIAwoAgAgB0EBELeFgIAACyAAQRRqIQAgBEFsaiIEDQALCyALQfAAaiEAAkAgC0EIaigCACIMRQ0AIAsoAgQgDEEUbEEEELeFgIAACyAAIQsgACAFRw0ACwsgCEUNACAJIAhB8ABsQQQQt4WAgAALAkAgAUEEaigCACIARQ0AIAMgAEEBELeFgIAACyABQQxq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IANBARC3hYCAAAwfCyABKAIEIgNBBEsNHiADQQNGDR4gAUEMaigCACIDRQ0eIAFBCGooAgAgA0EBELeFgIAADB4LIAFBCGooAgAiA0UNHSABKAIEIANBARC3hYCAAAwdCwJAIAFBCGooAgAiA0UNACABKAIEIANBARC3hYCAAAsgAUEQaiIDEMaHgIAAIAFBFGooAgAiAEUNHCADKAIAIABBDGxBBBC3hYCAAAwcCyABQQhqELaHgIAADBsLIAFBCGooAgAiA0UNGiABKAIEIANBARC3hYCAAAwaCwJAIAFBCGooAgAiA0UNACABKAIEIANBARC3hYCAAAsgAUEUaigCACIDRQ0ZIAFBEGooAgAgA0EBELeFgIAADBkLIAFBCGooAgAiA0UNGCABKAIEIANBARC3hYCAAAwYCyABQRhqELaHgIAADBcLAkAgAUEMaigCACIDRQ0AIAEoAgggA0EBELeFgIAACyABQRhqELaHgIAADBYLIAFBCGoQtoeAgAAMFQsgAUEMaigCACIDRQ0UIAFBCGooAgAgA0EBELeFgIAADBQLIAEoAgQiA0EESw0TIANBA0YNEyABQQxqKAIAIgNFDRMgAUEIaigCACADQQEQt4WAgAAMEwsgAUEIaigCACIDRQ0SIAEoAgQgA0EBELeFgIAADBILIAFBFGooAgAiA0UNESABQRBqKAIAIANBARC3hYCAAAwRCyABQQxqKAIAIgNFDRAgASgCCCADQQEQt4WAgAAMEAsgAUEUaigCACIDRQ0PIAFBEGooAgAgA0EBELeFgIAADA8LIAFBCGooAgAiA0UNDiABKAIEIANBARC3hYCAAAwOCyABQQhqKAIAIgNFDQ0gASgCBCADQQEQt4WAgAAMDQsgAUEQahC2h4CAAAwMCyABQQhqELaHgIAADAsLIAFBDGooAgAiA0UNCiABKAIIIANBARC3hYCAAAwKCyABQQhqKAIAIgNFDQkgASgCBCADQQEQt4WAgAAMCQsgAUEIaigCACIDRQ0IIAEoAgQgA0EBELeFgIAADAgLIAFBCGooAgAiA0UNByABKAIEIANBARC3hYCAAAwHCyABKAIEIgNBBEsNBiADQQNGDQYgAUEMaigCACIDRQ0GIAFBCGooAgAgA0EBELeFgIAADAYLIAFBDGooAgAiA0UNBSABKAIIIANBARC3hYCA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gAAACxCpkICAAAAL8AUCA38CfiOAgICAAEHgAGsiAiSAgICAACACQQA6ADcgAkHIAGogASACQTdqQQEQ0o6AgAACQAJAAkACQAJAAkACQAJAIAIoAkgNACACLQA3IgNBA3EiBEEDRg0BIAQOAwIEAwILIAJBFmogAkHIAGpBDGopAgAiBTcBACACIAIpAkwiBjcBDiAAQQxqIAU3AQAgACAGNwEEIABBATYCAAwGCwJAIANBBEkNACAAQQRqQaC4woAAQSIQ246AgAAgAEEBNgIADAYLIAJBADYCDCACQcgAaiABIAJBDGpBBBDSjoCAAAJAIAIoAkhFDQAgAkEgakEIaiACQcgAakEQaigCACIBNgIAIAIgAkHIAGpBCGopAwAiBTcDICAAIAIoAkw2AgQgAEEIaiAFNwIAIABBEGogATYCACAAQQE2AgAMBgsgAigCDCIBQf////8DSw0EIABBBGpBoLjCgABBIhDbjoCAACAAQQE2AgAMBQsgA0ECdiEBDAMLIAJBADYCDCACIAM6AAwgAkHIAGogASACQQxqQQFyQQMQ0o6AgAAgAigCSEUNASACQSBqQQhqIAJByABqQRBqKAIAIgE2AgAgAiACQcgAakEIaikDACIFNwMgIAAgAigCTDYCBCAAQQhqIAU3AgAgAEEQaiABNgIAIABBATYCAAwDCyACQQA7AQwgAiADOgAMIAJByABqIAEgAkEMakEBckEBENKOgIAAAkAgAigCSEUNACACQShqIAJByABqQQxqKQIAIgU3AwAgAiACKQJMIgY3AyAgAEEMaiAFNwIAIAAgBjcCBCAAQQE2AgAMAwsCQCACLwEMIgFB/wFLDQAgAEEEakGguMKAAEEiENuOgIAAIABBATYCAAwDCyABQQJ2IQEMAQsCQCACKAIMIgFB//8DTQ0AIAFBAnYhAQwBCyAAQQRqQaC4woAAQSIQ246AgAAgAEEBNgIADAELIABBADYCACAAIAE2AgQLIAJB4ABqJICAgIAAC5YMAwR/AX4BfyOAgICAAEHwAWsiAiSAgICAACACQagBakEYaiIDQgA3AwAgAkGoAWpBEGoiBEIANwMAIAJBqAFqQQhqIgVCADcDACACQgA3A6gBIAJByABqIAEgAkGoAWpBIBDSjoCAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAkgNACACQQhqQQhqIAUpAwA3AwAgAkEIakEQaiAEKQMANwMAIAJBCGpBGGogAykDADcDACACIAIpA6gBIgY3A2ggAiAGNwMIIAJBqAFqIAEQvYeAgAAgAigCqAENASACKAKsARDWjoCAACEHIAJBqAFqQRhqIgNCADcDACACQagBakEQaiIEQgA3AwAgAkGoAWpBCGoiBUIANwMAIAJCADcDqAEgAkHIAGogASACQagBakEgENKOgIAAIAIoAkgNAiACQShqQQhqIAUpAwA3AwAgAkEoakEQaiAEKQMANwMAIAJBKGpBGGogAykDADcDACACIAIpA6gBIgY3A2ggAiAGNwMoIANCADcDACAEQgA3AwAgBUIANwMAIAJCADcDqAEgAkHYAWogASACQagBakEgENKOgIAAIAIoAtgBDQUgAkHIAGpBCGogAkGoAWpBCGopAwA3AwAgAkHIAGpBEGogAkGoAWpBEGopAwA3AwAgAkHIAGpBGGogAkGoAWpBGGopAwA3AwAgAiACKQOoASIGNwNoIAIgBjcDSCACQagBaiABEL2HgIAAIAIoAqgBRQ0DIAJBiAFqQQxqIAJBqAFqQQxqKQIANwIAIAIgAikCrAE3AowBDAQLIAJB8wBqIAJByABqQQxqKQIANwAAIAIgAikCTDcAa0EQQQQQtoWAgAAiAUUNCCAAIAE2AgggAEEANgIEIAEgAkHrAGoiAykAADcAACAAQRRqQSY2AgAgAEEQakHCuMKAADYCACAAQQxqQQA2AgAgAUEIaiADQQhqKQAANwAADAcLQRBBBBC2hYCAACIBRQ0IIAEgAikCrAE3AgAgACABNgIIIABBADYCBCAAQRRqQSE2AgAgAEEQakHouMKAADYCACAAQQxqQQA2AgAgAUEIaiACQagBakEMaikCADcCAAwGCyACQfMAaiACQcgAakEMaikCADcAACACIAIpAkw3AGtBEEEEELaFgIAAIgFFDQggACABNgIIIABBADYCBCABIAJB6wBqIgMpAAA3AAAgAEEUakElNgIAIABBEGpBibnCgAA2AgAgAEEMakEANgIAIAFBCGogA0EIaikAADcAAAwFCyACQYgBaiABIAIoAqwBELyHgIAAIAIoAogBRQ0CC0EQQQQQtoWAgAAiAQ0CQRBBBBCokICAAAALIAJB8wBqIAJB2AFqQQxqKQIANwAAIAIgAikC3AE3AGtBEEEEELaFgIAAIgFFDQYgACABNgIIIABBADYCBCABIAJB6wBqIgMpAAA3AAAgAEEUakEqNgIAIABBEGpBrrnCgAA2AgAgAEEMakEANgIAIAFBCGogA0EIaikAADcAAAwCCyACQZQBaigCACEBIAIpAowBIQYgAEEoaiACQQhqQRhqKQMANwAAIABBIGogAkEIakEQaikDADcAACAAQRhqIAJBCGpBCGopAwA3AAAgACACKQMINwAQIAAgAikDKDcAMCAAQThqIAJBKGpBCGopAwA3AAAgAEHAAGogAkEoakEQaikDADcAACAAQcgAaiACQShqQRhqKQMANwAAIAAgAikDSDcAUCAAQdgAaiACQcgAakEIaikDADcAACAAQeAAaiACQcgAakEQaikDADcAACAAQegAaiACQcgAakEYaikDADcAACAAIAE2AgwgACAGNwIEIAAgBzYCAAwBCyABIAIpAowBNwIAIAFBCGogAkGUAWopAgA3AgAgAkEfNgK0ASACQaq9woAANgKwASACQQA2AqwBIAIgATYCqAEgAEEIaiACQagBakHYucKAAEEhEPyHgIAAIABBADYCBAsgAkHwAWokgICAgAAPC0EQQQQQqJCAgAAAC0EQQQQQqJCAgAAAC0EQQQQQqJCAgAAAC0EQQQQQqJCAgAAAC/kCAgJ+A38gAEEDdEECciIArSEDAkACQCAAQf8ASw0AIAIoAgghAAwBCyACKAIIIQAgAyEEA0AgBKdBgH9yIQUCQAJAIAIoAgQgAEYNACAAIQYMAQsgAiAAQQEQnYeAgAAgAigCCCEGCyACIAZBAWoiADYCCCACKAIAIAZqIAU6AAAgBEL//wBWIQYgBEIHiCIDIQQgBg0ACwsgA6chBQJAIAIoAgQgAEcNACACIABBARCdh4CAACACKAIIIQALIAIgAEEBaiIGNgIIIAIoAgAgAGogBToAACABQQhqKAIAIQBBACEFQQAhBwJAIAEpAwAiBFANACAEQgGEeadBP3NBCWxByQBqQcAPcUEGdkEBaiEHCwJAIABFDQAgAEEBcqx5p0E/c0EJbEHJAGpBBnZBAWohBQsCQCACKAIEIAZHDQAgAiAGQQEQnYeAgAAgAigCCCEGCyACIAZBAWo2AgggAigCACAGaiAFIAdqOgAAIAEgAhC4h4CAAAvUAgEEfwJAIAFFDQAgACABQTBsaiECA0ACQCAAIgNBBGooAgAiAUUNACADKAIAIAFBARC3hYCAAAsgA0EwaiEAAkAgAygCDCIBRQ0AAkAgA0EUaigCACIERQ0AIARBDGwhBANAAkAgAUEEaigCACIFRQ0AIAEoAgAgBUEBELeFgIAACyABQQxqIQEgBEF0aiIEDQALCwJAIANBEGooAgAiAUUNACADKAIMIAFBDGxBBBC3hYCAAAsCQCADQRxqKAIAIgFFDQAgA0EYaigCACABQQEQt4WAgAALAkAgA0EsaigCACIERQ0AIANBJGooAgAhASAEQQxsIQQDQAJAIAFBBGooAgAiBUUNACABKAIAIAVBARC3hYCAAAsgAUEMaiEBIARBdGoiBA0ACwsgA0EoaigCACIBRQ0AIAMoAiQgAUEMbEEEELeFgIAACyAAIAJHDQALCwv0AgEFfyAAQQxqKAIAIgEgAEEIaigCACICa0HEAG4hAwJAIAEgAkYNACACIANBxABsaiEEA0ACQCACQShqKAIAIgNFDQAgAigCICEBIANBDGwhAwNAAkAgAUEEaigCACIFRQ0AIAEoAgAgBUEBELeFgIAACyABQQxqIQEgA0F0aiIDDQALCwJAIAJBJGooAgAiAUUNACACKAIgIAFBDGxBBBC3hYCAAAsCQCACQTBqKAIAIgFFDQAgAkEsaigCACABQQEQt4WAgAALAkAgAkHAAGooAgAiA0UNACACQThqKAIAIQEgA0EMbCEDA0ACQCABQQRqKAIAIgVFDQAgASgCACAFQQEQt4WAgAALIAFBDGohASADQXRqIgMNAAsLIAJBxABqIQECQCACQTxqKAIAIgNFDQAgAigCOCADQQxsQQQQt4WAgAALIAEhAiABIARHDQALCwJAIAAoAgQiAUUNACAAKAIAIAFBxABsQQQQt4WAgAALC68CAQN/AkAgAEEEaigCACIBRQ0AIAAoAgAgAUEBELeFgIAACwJAIAAoAgwiAUUNAAJAIABBFGooAgAiAkUNACACQQxsIQIDQAJAIAFBBGooAgAiA0UNACABKAIAIANBARC3hYCAAAsgAUEMaiEBIAJBdGoiAg0ACwsCQCAAQRBqKAIAIgFFDQAgACgCDCABQQxsQQQQt4WAgAALAkAgAEEcaigCACIBRQ0AIABBGGooAgAgAUEBELeFgIAACwJAIABBLGooAgAiAkUNACAAQSRqKAIAIQEgAkEMbCECA0ACQCABQQRqKAIAIgNFDQAgASgCACADQQEQt4WAgAALIAFBDGohASACQXRqIgINAAsLIABBKGooAgAiAUUNACAAKAIkIAFBDGxBBBC3hYCAAAsL5xEEDX8BfgZ/An4jgICAgABBsAJrIgIkgICAgAAgASgCBCEDIAEoAgAhBAJAAkACQAJAAkACQAJAAkACQCABKAIIIgUgASgCDCIGRg0AIAEoAhAhByACQdgBakEDaiEIIAJBjQJqQQNqIQkgAkGAAWpBAXIhAQNAIAJB0ABqQShqIAVBKGoiCikCADcDACACQdAAakEgaiAFQSBqIgspAgA3AwAgAkHQAGpBGGogBUEYaiIMKQIANwMAIAJB0ABqQRBqIAVBEGoiDSkCADcDACACQdAAakEIaiAFQQhqIg4pAgA3AwAgAiAFKQIAIg83A1AgD6dFDQIgAkHYAWpBKGogCikCADcDACACQdgBakEgaiALKQIANwMAIAJB2AFqQRhqIhAgDCkCADcDACACQdgBakEQaiIMIA0pAgA3AwAgAkHYAWpBCGoiDSAOKQIANwMAIAIgBSkCADcD2AEgAkGAAWogAkHYAWoQ34eAgAAgAigCpAEhCyACLQCAASEKIAJB2AFqQR9qIAFBH2ooAAA2AAAgECABQRhqKQAANwMAIAwgAUEQaikAADcDACANIAFBCGopAAA3AwAgAiABKQAANwPYASAKQeUARw0FIAkgCCkAADcAACAJQRhqIAhBGGopAAA3AAAgCUEQaiAIQRBqKQAANwAAIAlBCGogCEEIaikAADcAACALDQQgBUEwaiIFIAZHDQALIAYhBQsgAkEANgJQDAELIAVBMGohBQsgAkHQAGoQ4IeAgAAMBAsgAkEwakEYaiIBIAlBGGopAAA3AwAgAkEwakEQaiIIIAlBEGopAAA3AwAgAkEwakEIaiIKIAlBCGopAAA3AwAgAkEQakEIaiIMIAJBgAFqQTBqKQMANwMAIAJBEGpBEGoiDSACQbgBaikDADcDACACQRBqQRhqIg4gAkHAAWopAwA3AwAgAiACKQOoATcDECACIAkpAAA3AzACQEGQAkEEELaFgIAAIhFFDQAgESACKQMwNwIAIBEgCzYCICARIAIpAxA3AiQgEUEYaiABKQMANwIAIBFBEGogCCkDADcCACARQQhqIAopAwA3AgAgEUEsaiAMKQMANwIAIBFBNGogDSkDADcCACARQTxqIA4pAwA3AgAgAkKEgICAEDcCBCACIBE2AgACQCAFQTBqIgUgBkYNACACQYABakEoaiESIAJB2AFqQQNqIQggAkGNAmpBA2ohCSACQYABakEBciEBQQEhEwNAIAJB0ABqQShqIAVBKGoiCikCADcDACACQdAAakEgaiAFQSBqIgspAgA3AwAgAkHQAGpBGGogBUEYaiIMKQIANwMAIAJB0ABqQRBqIAVBEGoiDSkCADcDACACQdAAakEIaiAFQQhqIg4pAgA3AwAgAiAFKQIAIg83A1ACQAJAAkACQCAPp0UNACACQdgBakEoaiAKKQIANwMAIAJB2AFqQSBqIAspAgA3AwAgAkHYAWpBGGoiECAMKQIANwMAIAJB2AFqQRBqIgwgDSkCADcDACACQdgBakEIaiINIA4pAgA3AwAgAiAFKQIANwPYASACQYABaiACQdgBahDfh4CAACACKAKkASELIAItAIABIQogAkHYAWpBH2ogAUEfaigAADYAACAQIAFBGGopAAA3AwAgDCABQRBqKQAANwMAIA0gAUEIaikAADcDACACIAEpAAA3A9gBIApB5QBHDQIgCSAIKQAANwAAIAlBGGoiCiAIQRhqKQAANwAAIAlBEGoiDCAIQRBqKQAANwAAIAlBCGoiDSAIQQhqKQAANwAAIAsNASAFQTBqIgUgBkcNBAwFCyAFQTBqIQUMBwsgAkEwakEYaiIOIAopAAA3AwAgAkEwakEQaiIQIAwpAAA3AwAgAkEwakEIaiIMIA0pAAA3AwAgAkEQakEIaiINIBJBCGopAgA3AwAgAkEQakEQaiIUIBJBEGopAgA3AwAgAkEQakEYaiIVIBJBGGopAgA3AwAgAiAJKQAANwMwIAIgEikCADcDECAFQTBqIQUgEyACKAIERw0BIAIgE0EBEJyHgIAAIAIoAgAhEQwBCyAHEN6HgIAAIAcgCjoAACAHIAs2AiQgByABKQAANwABIAdBCWogAUEIaikAADcAACAHQRFqIAFBEGopAAA3AAAgB0EZaiABQRhqKQAANwAAIAdBIGogAUEfaigAADYAACAHIBIpAwA3AyggB0EwaiASQQhqKQMANwMAIAdBOGogEkEQaikDADcDACAHQcAAaiASQRhqKQMANwMAIAdB0ABqIAJBgAFqQdAAaikDADcDACAHIAIpA8gBNwNIIAVBMGohBQwGCyARIBNBxABsaiIKIAIpAzA3AgAgDCkDACEPIBApAwAhFiAOKQMAIRcgCiALNgIgIApBGGogFzcCACAKQRBqIBY3AgAgCkEIaiAPNwIAIAogAikDEDcCJCAKQSxqIA0pAwA3AgAgCkE0aiAUKQMANwIAIApBPGogFSkDADcCACACIBNBAWoiEzYCCCAFIAZHDQALCyACQQA2AlAgBiEFDAILQZACQQQQqJCAgAAACyAHEN6HgIAAIAcgCjoAACAHIAs2AiQgByABKQAANwABIAdBCWogAUEIaikAADcAACAHQRFqIAFBEGopAAA3AAAgB0EZaiABQRhqKQAANwAAIAdBIGogAUEfaigAADYAACAHIAIpA6gBNwMoIAdBMGogAkGAAWpBMGopAwA3AwAgB0E4aiACQYABakE4aikDADcDACAHQcAAaiACQYABakHAAGopAwA3AwAgB0HQAGogAkGAAWpB0ABqKQMANwMAIAcgAikDyAE3A0ggBUEwaiEFDAILIAJB0ABqEOCHgIAACyAFIAYgBWtBMG4QwIeAgAACQCADRQ0AIAQgA0EwbEEEELeFgIAACyAAIAIpAwA3AgAgAEEIaiACQQhqKAIANgIADAELIABBADYCCCAAQgQ3AgAgBSAGIAVrQTBuEMCHgIAAIANFDQAgBCADQTBsQQQQt4WAgAALIAJBsAJqJICAgIAAC/4EAQN/I4CAgIAAQbABayICJICAgIAAIAJBEGogAUEQaigCADYCACACQQhqIAFBCGopAgA3AwAgAiABKQIANwMAIAJBwABqIAIQ3YeAgAACQAJAAkAgAigCRA0AIABBADYCCCAAQgQ3AgAgAigCDCIDIAIoAggiAWtBDG4hBAJAIAMgAUYNACAEQQxsIQMDQAJAIAFBBGooAgAiBEUNACABKAIAIARBARC3hYCAAAsgAUEMaiEBIANBdGoiAw0ACwsgAigCBCIBRQ0BIAIoAgAgAUEMbEEEELeFgIAADAELQcADQQQQtoWAgAAiBEUNASAEIAJBwABqQfAAELyRgIAAIQEgAkKEgICAEDcCHCACIAE2AhggAkEoakEQaiACQRBqKAIA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ACABEJyMgIAACw8AIAAoAgAgARCaioCAAAsCAAs1AQF/AkAgACgCAA0AIABBCGooAgAiAUUNACAAKAIEIAFBARC3hYCAAAsgAEEQahCRjYCAAAu0AgECfyOAgICAAEEwayICJICAgIAAAkACQEErQQEQtoWAgAAiA0UNACADQSdqQQAoAKq6woAANgAAIANBIGpBACkAo7rCgAA3AAAgA0EYakEAKQCbusKAADcAACADQRBqQQApAJO6woAANwAAIANBCGpBACkAi7rCgAA3AAAgA0EAKQCDusKAADcAACACIAEQ0oeAgAAgAigCAEEERg0BIAJBGGpBEGogAkEQaigCADYCACACQRhqQQhqIAJBCGopAwA3AwAgAiACKQMANwMYQa66woAAQRUgAkEYakHEusKAAEGIu8KAABDakICAAAALQStBARCokICAAAALIAAgAikCBDcCDCAAQRRqIAJBDGooAgA2AgAgAEKrgICAsAU3AgQgACADNgIAIAJBMGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAJBCGogAUEIaigCADYCACACIAEpAgA3AwAgACACEJ2LgIAAIAJBEGokgICAgAALDAAgACABENKHgIAAC6oHAQN/I4CAgIAAQbABayICJICAgIAAIAEoAhAhAwJAAkACQAJAAkACQAJAIAEpAwBQDQAgAkEwaiABKQMIIAMQmIyAgAAgAi0AMEHCAEYNASACQeAAakEYaiIEIAJBMGpBGGopAwA3AwAgAkHgAGpBEGogAkEwakEQaikDADcDACACQeAAakEIaiACQTBqQQhqKQMANwMAIAIgAikDMDcDYCACQYuCgIAANgKUASACIAJB4ABqNgKQASACQQE2AqwBIAJCATcCnAEgAkHwu8KAADYCmAEgAiACQZABajYCqAEgAkGAAWogAkGYAWoQrZCAgAAgAkHcAGogAkGAAWpBCGooAgA2AAAgAiACKQOAATcAVAJAAkACQAJAAkACQAJAAkACQCACLQBgQX9qDigADQECAw0NDQQNDQ0NDQ0NDQ0NDQ0NDQ0FDQ0NDQ0NDQ0NDQ0GBw0IDQsgAkHgAGpBBHIhAwwLCyACQeAAakEEciEDDAoLIAJB4ABqQQRyIQMMCQsgAkHgAGpBBHIhAwwICyACQeAAakEEciEDDAcLIAJB4ABqQQRyIQMMBgsgAkHgAGpBBHIhAwwFCyACQeAAakEEciEDDAQLIAJB4ABqQQRyIQMMAwtBKkEBELaFgIAAIgRFDQEgACADNgIQIABCqoCAgKAFNwMIIAAgBDYABCAAQeQAOgAAIARBKGpBAC8AwLvCgAA7AAAgBEEgakEAKQC4u8KAADcAACAEQRhqQQApALC7woAANwAAIARBEGpBACkAqLvCgAA3AAAgBEEIakEAKQCgu8KAADcAACAEQQApAJi7woAANwAADAQLIAJBCGoiBCACQTBqQQxqKAIANgIAIAIgAikCNDcDACACQTBqQQhqIAFBIGooAgA2AgAgAiABKQIYNwMwIAJB4ABqQQxqIAJBMGoQnYqAgAAgAkHgAGpBCGoiASAEKAIANgIAIAAgAikDADcCBCAAQRRqIAJB8ABqKQMANwIAIABB5QA6AAAgAEEMaiABKQMANwIADAQLQSpBARCokICAAAALIANBBGooAgAiA0UNACACKAJkIANBARC3hYCAAAsgBBCRjYCAACACIAJB2ABqKQAANwAnIAIgAikAUTcDICACIAIpAyA3AxAgAiACKQAnNwAXIABBCGogAikAFzcAACAAIAIpAxA3AAEgAEHkADoAAAsgAUEcaigCACIARQ0AIAEoAhggAEEBELeFgIAACyACQbABaiSAgICAAAtrAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAANgIIIAIgAEEMajYCDCABQfi7woAAQQ5BhrzCgABBCSACQQhqQZC8woAAQaC8woAAQQQgAkEMakGkvMKAABD4kICAACEAIAJBEGokgICAgAAgAAu2DQMEfwF+CX8jgICAgABBoAJrIgIkgICAgAACQAJAIAEoAggiAyABKAIMRg0AIAEoAhAhBCABIANBDGo2AgggAygCACIFRQ0AIAIgAykCBCIGQiCIPgIkIAIgBTYCICACQbABaiACQSBqEL6HgIAAAkACQCACKAK0ASIBRQ0AIAJBAmoiByACQbsBai0AADoAACACQawBakECaiIIIAJBvwFqLQAAOgAAIAJBqAFqQQJqIgkgAkHDAWotAAA6AAAgAiACLwC5ATsBACACIAIvAL0BOwGsASACIAIvAMEBOwGoASACLQC4ASEDIAIoArABIQogAi0AvAEhCyACLQDAASEMIAItAMQBIQ0gAkGkAWpBAmoiDiACQccBai0AADoAACACQZABakECaiACQcsBai0AADoAACACIAIvAMUBOwGkASACIAIvAMkBOwGQASACLQDIASEPIAJBPGogAkHMAWpB1AAQvJGAgAAaIAJBoAFqQQJqIActAAA6AAAgAkGcAWpBAmogCC0AADoAACACQZgBakECaiAJLQAAOgAAIAJBlAFqQQJqIA4tAAA6AAAgAiACLwEAOwGgASACIAIvAawBOwGcASACIAIvAagBOwGYASACIAIvAaQBOwGUAQwBCyACQQJqIgMgAkG7AWotAAA6AAAgAkGsAWpBAmoiCiACQb8Bai0AADoAACACQagBakECaiIHIAJBwwFqLQAAOgAAIAJBpAFqQQJqIgggAkHHAWotAAA6AAAgAiACLwC5ATsBACACIAIvAL0BOwGsASACIAIvAMEBOwGoASACIAIvAMUBOwGkASACLQC4ASELIAItALwBIQwgAi0AwAEhDSACLQDEASEPIAJBnAFqQQJqIAMtAAA6AAAgAkGYAWpBAmogCi0AADoAACACQZQBakECaiAHLQAAOgAAIAJBkAFqQQJqIAgtAAA6AAAgAiACLwEAOwGcASACIAIvAawBOwGYASACIAIvAagBOwGUASACIAIvAaQBOwGQAUHbACEDCwJAIAanIgdFDQAgBSAHQQEQt4WAgAALAkACQCABRQ0AIAJBrAFqQQJqIAJBoAFqQQJqLQAAOgAAIAJBqAFqQQJqIAJBnAFqQQJqLQAAOgAAIAJBpAFqQQJqIAJBmAFqQQJqLQAAOgAAIAJBOGpBAmogAkGUAWpBAmotAAA6AAAgAkE0akECaiACQZABakECai0AADoAACACIAIvAaABOwGsASACIAIvAZwBOwGoASACIAIvAZgBOwGkASACIAIvAZQBOwE4IAIgAi8BkAE7ATQgAkGwAWogAkE8akHEABC8kYCAABogAkEoaiACQYgBaikAADcDACACIAIpAIABNwMgDAELIAQQ3oeAgAAgBCADOgAAIAQgCzoABCAEIAw6AAggBCANOgAMIAQgAi8BoAE7AAEgBEEDaiACQaABakECai0AADoAACAEIAIvAZwBOwAFIARBB2ogAkGcAWpBAmotAAA6AAAgBCACLwGYATsACSAEQQtqIAJBmAFqQQJqLQAAOgAAIAQgAi8BlAE7AA0gBEEPaiAC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BUHwAGohAQJAIAVBCGooAgAiAEUNACAFKAIEIABBFGxBBBC3hYCAAAsgASEFIAEgBEcNAAsLIAIoAlwiAUUNACADIAFB8ABsQQQQt4WAgAALIAJBgAFqJICAgIAAC8gBAQR/I4CAgIAAQTBrIgEkgICAgAAgAEEUaigCACECIAAoAgAhAwJAAkACQAJAIAAoAgQiBA4CAAECCyACDQFBzL3CgABBABCBiICAACEADAILIAINACADKAIAIAMoAgQQgYiAgAAhAAwBCyABQRhqQRBqIABBEGooAgA2AgAgASAENgIcIAEgAzYCGCABIAI2AiwgASAAKQIINwMgIAFBCGogAUEYahCtkICAACABQQhqEIOIgIAAIQALIAFBMGokgICAgAAgAAvlDgQCfwF+AX8BfiOAgICAAEHwAGsiAiSAgICAACACQQA6AC8gAkHYAGogASACQS9qQQEQ0o6AgAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACKAJYDQAgAi0ALw4JAwEBAQQFBgEHAQsgAkEiaiACQdgAakEMaikCADcBACACIAIpAlw3ARpBEEEEELaFgIAAIgFFDRIgASACQRpqIgMpAQA3AQAgAUEIaiADQQhqKQEANwEAIAJBwABqQRBqQT42AgAgAkHAAGpBDGpB7LzCgAA2AgAgAkHAAGpBCGpBADYCACACIAE2AkQMAQsgAkHAAGpBBHJBtLzCgABBOBDbjoCAACACKAJEIQELIAJBCGpBCGogAkHAAGpBEGooAgAiAzYCACACIAJBwABqQQhqKQMAIgQ3AwggACABNgIEIABBCGogBDcCACAAQRBqIAM2AgAgAEEFOgAADBILIAJB2ABqIAEQvYeAgAAgAigCWEUNDSACQcAAakEMaiACQdgAakEMaikCADcCACACIAIpAlw3AkQMDgsgAkEANgJAIAJB2ABqIAEgAkHAAGpBBBDSjoCAACACKAJYDQogAigCQCEDIAJB2ABqIAEQvYeAgAACQAJAIAIoAlhFDQAgAkHAAGpBDGogAkHYAGpBDGopAgA3AgAgAiACKQJcNwJEDAELIAJBwABqIAEgAigCXBC6h4CAACACKAJARQ0KCyACQRhqQQhqIAJB0ABqKAIANgIAIAIgAkHAAGpBCGopAwA3AxggAigCRCIDQQh2IQUMCwsgAkEANgJAIAJB2ABqIAEgAkHAAGpBBBDSjoCAACACKAJYDQYgAigCQCEDIAJB2ABqIAEQvYeAgAACQAJAIAIoAlhFDQAgAkHAAGpBDGogAkHYAGpBDGopAgA3AgAgAiACKQJcNwJEDAELIAJBwABqIAEgAigCXBC6h4CAACACKAJARQ0GCyACQRhqQQhqIAJB0ABqKAIANgIAIAIgAkHAAGpBCGopAwA3AxggAigCRCIBQQh2IQMMBwsgAkEANgJAIAJB2ABqIAEgAkHAAGpBBBDSjoCAACACKAJYDQIgAigCQCEDIAJB2ABqIAEQvYeAgAACQAJAIAIoAlhFDQAgAkHAAGpBDGogAkHYAGpBDGopAgA3AgAgAiACKQJcNwJEDAELIAJBwABqIAEgAigCXBC6h4CAACACKAJARQ0CCyACQRhqQQhqIAJB0ABqKAIANgIAIAIgAkHAAGpBCGopAwA3AxggAigCRCIDQQh2IQUMAwsgAEEEOgAADA0LIAJBEGogAkHAAGpBDGooAgAiATYCACACIAIpAkQiBDcDCCACQeMAaiABNgAAIAAgAzYAASAAQQA6AAAgAiAENwBbIAAgAikAWDcABSAAQQxqIAJB3wBqKQAANwAADAwLIAJBIGogAkHYAGpBEGooAgA2AgAgAiACKQNgNwMYIAIvAF0gAi0AX0EQdHIhBSACLQBcIQMLIAJBMGpBCGogAkEYakEIaigCACIBNgIAIAIgAikDGCIENwMwIAAgBUEIdCADQf8BcXI2AgQgAEEIaiAENwIAIABBEGogATYCACAAQQU6AAAMCgsgAkEQaiACQcAAakEMaigCACIBNgIAIAIgAikCRCIENwMIIAJB4wBqIAE2AAAgACADNgABIABBAjoAACACIAQ3AFsgACACKQBYNwAFIABBDGogAkHfAGopAAA3AAAMCQsgAkEgaiACQdgAakEQaigCADYCACACIAIpA2A3AxggAi8AXSACLQBfQRB0ciEDIAItAFwhAQsgAkEwakEIaiACQRhqQQhqKAIAIgU2AgAgAiACKQMYIgQ3AzAgACADQQh0IAFB/wFxcjYCBCAAQQhqIAQ3AgAgAEEQaiAFNgIAIABBBToAAAwHCyACQRBqIAJBwABqQQxqKAIAIgE2AgAgAiACKQJEIgQ3AwggAkHjAGogATYAACAAIAM2AAEgAEEBOgAAIAIgBDcAWyAAIAIpAFg3AAUgAEEMaiACQd8AaikAADcAAAwGCyACQSBqIAJB2ABqQRBqKAIANgIAIAIgAikDYDcDGCACLwBdIAItAF9BEHRyIQUgAi0AXCEDCyACQTBqQQhqIAJBGGpBCGooAgAiATYCACACIAIpAxgiBDcDMCAAIAVBCHQgA0H/AXFyNgIEIABBCGogBDcCACAAQRBqIAE2AgAgAEEFOgAADAQLIAJBwABqIAEgAigCXBC6h4CAACACKAJARQ0CCyACQSBqIAJBwABqQQxqKQIAIgQ3AwAgAiACKQJEIgY3AxggAEEMaiAENwIAIAAgBjcCBCAAQQU6AAAMAgtBEEEEEKiQgIAAAAsgAkEYakEIaiACQcwAaigCACIBNgIAIAJBO2ogATYAACACIAIpAkQiBDcDGCAAQQM6AAAgAiAENwAzIAAgAikAMDcAASAAQQhqIAJBN2opAAA3AAALIAJB8ABqJICAgIAAC2gBAn8CQAJAIAAoAgQiAUEDSw0AIAFBAkcNAQsgAEEQaiIBEMeHgIAAIABBFGooAgAiAkUNACABKAIAIAJBDGxBBBC3hYCAAAsCQCAAQSRqKAIAIgFFDQAgACgCICABQQEQt4WAgAALCwIACyMBAX8CQCAAQQRqKAIAIgFFDQAgACgCACABQQEQt4WAgAALC0kBAX8CQAJAIAAoAgQiAUEDSw0AIAFBAkcNAQsgAEEQaiIBEMeHgIAAIABBFGooAgAiAEUNACABKAIAIABBDGxBBBC3hYCAAAsLFAAgAEEoNgIEIABBnL7CgAA2AgALWwEBfyOAgICAAEEQayICJICAgIAAIAJBCGogARDWjYCAACACIAIoAgggAigCDCgCGBGEgICAAAAgAigCBCEBIAAgAigCADYCACAAIAE2AgQgAkEQaiSAgICAAAsNAELNmK6Pzvum44l/CwwAQq6RzNPpp7CvAQsXACAAQdS+woAANgIEIAAgAUEgajYCAAsXACAAQZC/woAANgIEIAAgAUEgajYCAAtVAQJ/AkACQCAAKAIEIgFBA0sNACABQQJHDQELIABBEGoiARDHh4CAACAAQRRqKAIAIgJFDQAgASgCACACQQxsQQQQt4WAgAALIABBKEEEELeFgIAAC3QBAn8CQAJAIAAoAgQiAUEDSw0AIAFBAkcNAQsgAEEQaiIBEMeHgIAAIABBFGooAgAiAkUNACABKAIAIAJBDGxBBBC3hYCAAAsCQCAAQSRqKAIAIgFFDQAgACgCICABQQEQt4WAgAALIABBLEEEELeFgIAACxQAIABBzL/CgAA2AgQgACABNgIACxQAIABBiMDCgAA2AgQgACABNgIACxgAIABBIGpBACABQuuRk7X22LOi9ABRGwsXACAAQSBqQQAgAULwjIOXiNHzjRNRGwtVAQJ/AkACQCAAKAIEIgJBA0sNACACQQJHDQELIABBEGoiAhDHh4CAACAAQRRqKAIAIgNFDQAgAigCACADQQxsQQQQt4WAgAALIABBLEEEELeFgIAAC1UBAn8CQAJAIAAoAgQiAkEDSw0AIAJBAkcNAQsgAEEQaiICEMeHgIAAIABBFGooAgAiA0UNACACKAIAIANBDGxBBBC3hYCAAAsgAEEoQQQQt4WAgAALDAAgACABENiNgIAACw4AIAAgASACENeNgIAAC0cBAX8jgICAgABBEGsiAiSAgICAACACQQhqIAAQ1o2AgAAgAigCCCABIAIoAgwoAhARiICAgAAAIQAgAkEQaiSAgICAACAAC8sIAQ5/I4CAgIAAQZABayICJICAgIAAIAEoAhAhAyABKAIMIQQgAUEANgIQIAFBOGohBSABQTRqIQYgAUEUaiEHIAJBLGohCAJAAkACQAJAAkAgAw0AIAEoAggiAyAERg0DIAEgA0HEAGo2AgggAkHwAGpBCGogA0EIaikCADcDACACQfAAakEQaiADQRBqKQIANwMAIAJB8ABqQRhqIANBGGopAgA3AwAgAiADKQIANwNwIANBJGohCSADQSBqIQoMAQtBACEDDAELQQEhAwsDQAJAAkAgAw4CAAEBCyACQfAAakEYaiAHQRhqKQIANwMAIAJB8ABqQRBqIAdBEGopAgA3AwAgAkHwAGpBCGogB0EIaikCADcDACACIAcpAgA3A3AgBSEJIAYhCkEBIQMMAQsgCigCACILRQ0BIAggCSkCADcCACACQQhqQRhqIAJB8ABqQRhqIgwpAwA3AwAgAkEIakEQaiACQfAAakEQaiINKQMANwMAIAJBCGpBCGogAkHwAGpBCGoiDikDADcDACAIQQhqIAlBCGopAgA3AgAgCEEQaiAJQRBqKQIANwIAIAhBGGogCUEYaikCADcCACACIAIpA3A3AwggAiALNgIoQQAhDwJAIAEoAggiAyAERg0AIAEgA0HEAGo2AgggDiADQQhqKQIANwMAIA0gA0EQaikCADcDACAMIANBGGopAgA3AwAgAkHQAGpBCGogA0EsaikCADcDACACQdAAakEQaiADQTRqKQIANwMAIAJB0ABqQRhqIANBPGopAgA3AwAgAiADKQIANwNwIAIgAykCJDcDUCADKAIgIQ8LIAcgAikDcDcCACAFIAIpA1A3AgAgB0EYaiAMKQMANwIAIAdBEGogDSkDADcCACAHQQhqIA4pAwA3AgAgBUEIaiACQdAAakEIaikDADcCACAFQRBqIAJB0ABqQRBqKQMANwIAIAVBGGogAkHQAGpBGGopAwA3AgAgASAPNgI0IAFBATYCEAJAIA8NACAAIAJBCGpBxAAQvJGAgAAaDAMLAkACQCACQQhqIAdBIBC6kYCAAA0AAkAgAigCMCIDRQ0AIANBDGwhDyALIQMDQAJAIANBBGooAgAiDEUNACADKAIAIAxBARC3hYCAAAsgA0EMaiEDIA9BdGoiDw0ACwsCQCACKAIsIgNFDQAgCyADQQxsQQQQt4WAgAALAkAgAigCOCIDRQ0AIAIoAjQgA0EBELeFgIAACyACKAJAIQsCQCACKAJIIgNFDQAgA0EMbCEPIAshAwNAAkAgA0EEaigCACIMRQ0AIAMoAgAgDEEBELeFgIAACyADQQxqIQMgD0F0aiIPDQALCwJAIAIoAkQiA0UNACALIANBDGxBBBC3hYCAAAsgAUEANgIQDAELIAAgAkEIakHEABC8kYCAABoMAwtBACEDDAALCyAAQQA2AiALIAJBkAFqJICAgIAAC1wBAX8CQEEQQQQQtoWAgAAiBA0AQRBBBBCokICAAAALIABBADYCBCAAIAQ2AgAgBCABKQIANwIAIABBDGogAzYCACAAQQhqIAI2AgAgBEEIaiABQQhqKQIANwIAC6cHAwR/AX4BfyOAgICAAEHAAWsiAiSAgICAACACQfgAakEYaiIDQgA3AwAgAkH4AGpBEGoiBEIANwMAIAJB+ABqQQhqIgVCADcDACACQgA3A3ggAkGoAWogASACQfgAakEgENKOgIAAAkACQAJAAkACQAJAAkAgAigCqAENACACQRhqQQhqIAUpAwA3AwAgAkEYakEQaiAEKQMANwMAIAJBGGpBGGogAykDADcDACACIAIpA3giBjcDOCACIAY3AxggAkH4AGogARC9h4CAACACKAJ4RQ0BIAJB2ABqQQxqIAJB+ABqQQxqKQIANwIAIAIgAikCfDcCXCACQQE2AlgMAgsgAkHDAGogAkGoAWpBDGopAgA3AAAgAiACKQKsATcAO0EQQQQQtoWAgAAiAUUNAiAAIAE2AgQgAEEANgIAIAEgAkE7aiIDKQAANwAAIABBEGpBJzYCACAAQQxqQbTAwoAANgIAIABBCGpBADYCACABQQhqIANBCGopAAA3AAAMBQsgAkHYAGogASACKAJ8ELqHgIAAIAIoAlhFDQMLQRBBBBC2hYCAACIBRQ0BIAEgAikCXDcCACAAIAE2AgQgAEEANgIAIABBEGpBLzYCACAAQQxqQdvAwoAANgIAIABBCGpBADYCACABQQhqIAJB2ABqQQxqKQIANwIADAMLQRBBBBCokICAAAALQRBBBBCokICAAAALIAJB2ABqQQxqIgUoAgAhByACQeAAaigCACEDIAIoAlwhBCACQfgAaiABEL2HgIAAAkACQAJAIAIoAnhFDQAgBSACQfgAakEMaikCADcCACACIAIpAnw3AlwgAkEBNgJYDAELIAJB2ABqIAEgAigCfBC7h4CAACACKAJYRQ0BCwJAQRBBBBC2hYCAACIBRQ0AIAEgAikCXDcCACAAIAE2AgQgAEEANgIAIABBEGpBMTYCACAAQQxqQYrBwoAANgIAIABBCGpBADYCACABQQhqIAJB2ABqQQxqKQIANwIAIANFDQIgBCADQQEQt4WAgAAMAgtBEEEEEKiQgIAAAAsgAkEIakEIaiACQeQAaigCACIBNgIAIAIgAikCXCIGNwMIIABBMGogAkEwaikDADcAACAAQShqIAJBKGopAwA3AAAgAEEgaiACQRhqQQhqKQMANwAAIAAgAikDGDcAGCAAIAc2AgggACADNgIEIAAgBDYCACAAIAY3AgwgAEEUaiABNgIACyACQcABaiSAgICAAAsPACAAKAIAIAEQ3I6AgAALHAAgACgCACIAKAIAIABBCGooAgAgARCCkYCAAAsPACAAKAIAIAEQ4I2AgAALgAEBAX8jgICAgABBwABrIgIkgICAgAAgAhCwj4CAACACQSBqQRhqIAJBGGooAgA2AgAgAkEgakEQaiACQRBqKQMANwMAIAJBIGpBCGogAkEIaikDADcDACACIAIpAwA3AyAgACABIAJBIGoQgoiAgAAhASACQcAAaiSAgICAACABC3UBAX8CQEEoQQQQtoWAgAAiAw0AQShBBBCokICAAAALIANB0MHCgAA2AgAgAyABNgIkIAMgADYCICADIAIpAgA3AgQgA0EMaiACQQhqKQIANwIAIANBFGogAkEQaikCADcCACADQRxqIAJBGGooAgA2AgAgAwueAQEBfyOAgICAAEHQAGsiASSAgICAACABELCPgIAAIAFBIGpBCGogAEEIaigCADYCACABIAApAgA3AyAgAUEwakEYaiABQRhqKAIANgIAIAFBMGpBEGogAUEQaikDADcDACABQTBqQQhqIAFBCGopAwA3AwAgASABKQMANwMwIAFBIGogAUEwahCEiICAACEAIAFB0ABqJICAgIAAIAALgQEBAX8CQEEsQQQQtoWAgAAiAg0AQSxBBBCokICAAAALIAJBvMHCgAA2AgAgAiABKQIANwIEIAIgACkCADcCICACQQxqIAFBCGopAgA3AgAgAkEUaiABQRBqKQIANwIAIAJBHGogAUEYaigCADYCACACQShqIABBCGooAgA2AgAgAgvtFwUIfwR+Cn8Bfgd/I4CAgIAAQfABayIDJICAgIAAIABBBGooAgAhBAJAIAAoAgAiBUUNACAFQX9qIQYCQCAFQQNxIgdFDQADQCAFQX9qIQUgBCAELwGSA0ECdGpB9AVqKAIAIQQgB0F/aiIHDQALCyAGQQNJDQADQCAEIAQvAZIDQQJ0akH0BWooAgAiBCAELwGSA0ECdGpB9AVqKAIAIgQgBC8BkgNBAnRqQfQFaigCACIEIAQvAZIDQQJ0akH0BWooAgAhBCAFQXxqIgUNAAsLIANBCGogAUHYABC8kYCAABogA0HgAGogA0EIahD7h4CAAAJAIAMoAoABRQ0AIANB4ABqQSBqIQgDQAJAAkACQAJAAkACQAJAAkACQCAELwGSAyIFQQtJDQAgBCgCACIERQ0CQQEhAQwBCyADQagBakEgaiIBIAhBIGooAgA2AgAgA0GoAWpBGGoiBiAIQRhqKQIANwMAIANBqAFqQRBqIgkgCEEQaikCADcDACADQagBakEIaiIKIAhBCGopAgA3AwAg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t4WAgAALIAJBwABqJICAgIAADwtBIEEBEKiQgIAAAAvaAQACQAJAIAJFDQACQAJAAkACQAJAAkAgAUEASA0AIAMoAggNASABDQJBASECDAQLIABBCGpBADYCAAwGCwJAIAMoAgQiAg0AAkAgAQ0AQQEhAgwECyABQQEQtoWAgAAhAgwCCyADKAIAIAJBASABELiFgIAAIQIMAQsgAUEBELaFgIAAIQILIAJFDQELIAAgAjYCBCAAQQhqIAE2AgAgAEEANgIADwsgACABNgIEIABBCGpBATYCACAAQQE2AgAPCyAAIAE2AgQgAEEIakEANgIACyAAQQE2AgAL6AEBAn8jgICAgABBIGsiAySAgICAAAJAAkAgASACaiICIAFJDQAgAEEEaigCACIBQQF0IgQgAiAEIAJLGyICQQggAkEISxsiAkF/c0EfdiEEAkACQCABRQ0AIANBATYCGCADIAE2AhQgAyAAKAIANgIQDAELIANBADYCGAsgAyACIAQgA0EQahCOiICAACADKAIEIQECQCADKAIADQAgACABNgIAIABBBGogAjYCAAwCCyADQQhqKAIAIgBBgYCAgHhGDQEgAEUNACABIAAQqJCAgAAACxCpkICAAAALIANBIGokgICAgAALDwAgACgCACABEOCNgIAACw8AIAAoAgAgARDcjoCAAAvdAQICfwJ+I4CAgIAAQTBrIgIkgICAgAAgAkEAOwEGIAEtAAQhAyABQQA6AAQCQAJAIANBAXENACACQRhqIAEoAgAgAkEGakECENKOgIAADAELIAIgAUEFai0AADoABiACQRhqIAEoAgAgAkEGakEBckEBENKOgIAACwJAAkAgAigCGA0AIAAgAi8BBjsBAiAAQQA7AQAMAQsgAkEQaiACQRhqQQxqKQIAIgQ3AwAgAiACKQIcIgU3AwggAEEMaiAENwIAIAAgBTcCBCAAQQE7AQALIAJBMGokgICAgAAL3QECAn8CfiOAgICAAEEwayICJICAgIAAIAJBADYCBCABLQAEIQMgAUEAOgAEAkACQCADQQFxDQAgAkEYaiABKAIAIAJBBGpBBBDSjoCAAAwBCyACIAFBBWotAAA6AAQgAkEYaiABKAIAIAJBBGpBAXJBAxDSjoCAAAsCQAJAIAIoAhgNACAAIAIoAgQ2AgQgAEEANgIADAELIAJBEGogAkEYakEMaikCACIENwMAIAIgAikCHCIFNwMIIABBDGogBDcCACAAIAU3AgQgAEEBNgIACyACQTBqJICAgIAAC5YBAgF/An4jgICAgABBMGsiAiSAgICAACACQQA2AgQgAkEYaiABIAJBBGpBBBDSjoCAAAJAAkAgAigCGA0AIAAgAigCBDYCBCAAQQA2AgAMAQsgAkEQaiACQRhqQQxqKQIAIgM3AwAgAiACKQIcIgQ3AwggAEEMaiADNwIAIAAgBDcCBCAAQQE2AgALIAJBMGokgICAgAALlgECAX8CfiOAgICAAEEwayICJICAgIAAIAJCADcDACACQRhqIAEgAkEIENKOgIAAAkACQCACKAIYDQAgACACKQMANwMIIABBADYCAAwBCyACQQhqQQhqIAJBGGpBDGopAgAiAzcDACACIAIpAhwiBDcDCCAAQQxqIAM3AgAgACAENwIEIABBATYCAAsgAkEwaiSAgICAAAvjCQIGfwJ+I4CAgIAAQaABayICJICAgIAAIAJBADoAHiACQcgAaiABIAJBHmpBARDSjoCAAAJAAkACQAJAAkAgAigCSA0AIAItAB4hAyACQQA6AJABIAJByABqIAEgAkGQAWpBARDSjoCAAAJAAkACQAJAIAIoAkgNACACLQCQASEEIAJBADoAjwEgAkHIAGogASACQY8BakEBENKOgIAAIAIoAkgNAwJAAkACQCACLQCPASIFQQNxIgZBA0YNACAGDgMEAgEECwJAAkACQCAFQQJ2IgcOBQIAAAABAAsgBUETSw0KIAdBBGohBkIAIQhBACEFA0AgAkEAOgCPASACQcgAaiABIAJBjwFqQQEQ0o6AgAAgAigCSA0KIAIxAI8BIAVBA3RBOHGthiAIhCEIIAVBAWoiBUH/AXEgBkkNAAsgCEJ/QSggB0EDdGtBOHGtiFYNBiACQTBqQQRyQdHIwoAAQSIQ246AgAAMCwsgAkHIAGogARCViICAACACQcgAakEIaikDACEIAkAgAigCSEUNACACKAJMIQEgAkEwakEQaiACQcgAakEQaigCADYCACACQTBqQQhqIAg3AwAgAiABNgI0DAsLIAhC//////////8AVg0FIAJBMGpBBHJB0cjCgABBIhDbjoCAAAwKCyACQcgAaiABEJSIgIAAAkAgAigCSEUNACACQTBqQQhqIAJByABqQQhqKQMANwMAIAJBMGpBEGogAkHIAGpBEGooAgA2AgAgAiACKAJMNgI0DAoLAkAgAigCTCIBQf////8DSw0AIAJBMGpBBHJB0cjCgABBIhDbjoCAAAwKCyABrSEIDAQLIAIgBToAfSACQQE6AHwgAiABNgJ4IAJByABqIAJB+ABqEJOIgIAAAkAgAigCSEUNACACQTBqQQhqIAJByABqQQhqKQMANwMAIAJBMGpBEGogAkHIAGpBEGooAgA2AgAgAiACKAJMNgI0DAkLAkAgAigCTCIBQf//A0sNACACQTBqQQRyQdHIwoAAQSIQ246AgAAMCQsgAUECdq0hCAwDCyACIAU6AGUgAkEBOgBkIAIgATYCYCACQcgAaiACQeAAahCSiICAAAJAIAIvAUhFDQAgAkGAAWogAkHIAGpBDGopAgAiCDcDACACQTBqQQxqIAg3AgAgAiACKQJMNwI0DAgLAkAgAi8BSiIBQf8BSw0AIAJBMGpBBHJB0cjCgABBIhDbjoCAAAwICyABQQJ2rSEIDAILIAJBKGogAkHIAGpBDGopAgAiCDcBACACIAIpAkwiCTcBICAAQQxqIAg3AQAgACAJNwEEIABBATYCAAwHCyAFQQJ2rSEICyAAIAM6AAggAEEANgIAIABBEGogCDcDACAAQQlqIAQ6AAAMBQsgAkEwakEMaiACQcgAakEMaikCADcCACACIAIpAkw3AjQMAwsgAkEWaiACQcgAakEMaikCACIINwEAIAIgAikCTCIJNwEOIABBDGogCDcBACAAIAk3AQQgAEEBNgIADAMLIAJBMGpBDGogAkHIAGpBDGopAgA3AgAgAiACKQJMNwI0DAELIAJBMGpBBHJBqsjCgABBJxDbjoCAAAsgACACKQI0NwIEIABBATYCACAAQQxqIAJBMGpBDGopAgA3AgALIAJBoAFqJICAgIAAC1EBAn8CQCAAKAIAIgEoAgBFDQAgARCXiICAAAsCQCABKAIEIgJFDQAgAUEIaigCACIBRQ0AIAIgAUEBELeFgIAACyAAKAIAQRBBBBC3hYCAAAvIAQEEfyOAgICAAEEwayIBJICAgIAAIABBFGooAgAhAiAAKAIAIQMCQAJAAkACQCAAKAIEIgQOAgABAgsgAg0BQfTIwoAAQQAQsoiAgAAhAAwCCyACDQAgAygCACADKAIEELKIgIAAIQAMAQsgAUEYakEQaiAAQRBqKAIANgIAIAEgBDYCHCABIAM2AhggASACNgIsIAEgACkCCDcDICABQQhqIAFBGGoQrZCAgAAgAUEIahC0iICAACEACyABQTBqJICAgIAAIAALsQEBAX8jgICAgABBMGsiAiSAgICAAAJAAkACQAJAAkAgAQ4DAQIDAAsgAiABNgIMIAJBJGpBATYCACACQgE3AhQgAkGcycKAADYCECACQbWCgIAANgIsIAIgAkEoajYCICACIAJBDGo2AiggAkEQahCYiICAACEBIABBAToAACAAIAE2AgQMAwsgAEEAOwEADAILIABBgAI7AQAMAQsgAEGABDsBAAsgAkEwaiSAgICAAAvHAgIDfwF+I4CAgIAAQdAAayICJICAgIAAAkACQAJAIAFBCGooAgAiA0EBTQ0AIAIgA0F+ajYCHCACIAEoAgBBAmo2AhggAiACQRhqEJaIgIAAIAIoAgBFDQEgAkEoaiACQQxqKQIANwMAIAIgAikCBDcDICACQcQAakEBNgIAIAJCATcCNCACQfDJwoAANgIwIAJBtoKAgAA2AkwgAiACQcgAajYCQCACIAJBIGo2AkggAkEwahCYiICAACEBAkAgAigCIEUNACACQSBqEJeIgIAACwJAIAIoAiQiA0UNACACQShqKAIAIgRFDQAgAyAEQQEQt4WAgAALIABBATYCACAAIAE2AgQMAgtBAiADQcTJwoAAELiQgIAAAAsgAkEQaikDABDXjoCAACEFIABBADYCACAAIAU3AwgLIAJB0ABqJICAgIAAC0gAAkACQAJAIAAtAAAOAwABAgALIAFBgMnCgABBCBDxkICAAA8LIAFB+sjCgABBBhDxkICAAA8LIAFB9MjCgABBBhDxkICAAAuFAgEFfwJAIAAoAggiAUUNACAAKAIAIgIgAUEMbGohAwNAAkAgAkEIaigCACIBRQ0AIAIoAgAiACABQSxsaiEEA0ACQCAAKAIAIgFFDQAgAEEEaigCACIFRQ0AIAEgBUEBELeFgIAACwJAAkACQCAAQQxqKAIADgMAAQIBCyAAQRRqKAIAIgFFDQEgAEEQaigCACABQQEQt4WAgAAMAQsgAEEUaigCACIBRQ0AIABBEGooAgAgAUEBdEECELeFgIAACyAAQSxqIgAgBEcNAAsLIAJBDGohAAJAIAJBBGooAgAiAUUNACACKAIAIAFBLGxBBBC3hYCAAAsgACECIAAgA0cNAAsLC2gBAn8CQAJAIAAoAgQiAUEDSw0AIAFBAkcNAQsgAEEQaiIBEJyIgIAAIABBFGooAgAiAkUNACABKAIAIAJBDGxBBBC3hYCAAAsCQCAAQSRqKAIAIgFFDQAgACgCICABQQEQt4WAgAALCwIACyMBAX8CQCAAQQRqKAIAIgFFDQAgACgCACABQQEQt4WAgAALC0kBAX8CQAJAIAAoAgQiAUEDSw0AIAFBAkcNAQsgAEEQaiIBEJyIgIAAIABBFGooAgAiAEUNACABKAIAIABBDGxBBBC3hYCAAAsLFAAgAEEoNgIEIABB+MnCgAA2AgALWwEBfyOAgICAAEEQayICJICAgIAAIAJBCGogARDWjYCAACACIAIoAgggAigCDCgCGBGEgICAAAAgAigCBCEBIAAgAigCADYCACAAIAE2AgQgAkEQaiSAgICAAAsMAEKukczT6aewrwELDQBCzZiuj877puOJfwsXACAAQbDKwoAANgIEIAAgAUEgajYCAAsXACAAQezKwoAANgIEIAAgAUEgajYCAAt0AQJ/AkACQCAAKAIEIgFBA0sNACABQQJHDQELIABBEGoiARCciICAACAAQRRqKAIAIgJFDQAgASgCACACQQxsQQQQt4WAgAALAkAgAEEkaigCACIBRQ0AIAAoAiAgAUEBELeFgIAACyAAQSxBBBC3hYCAAAtVAQJ/AkACQCAAKAIEIgFBA0sNACABQQJHDQELIABBEGoiARCciICAACAAQRRqKAIAIgJFDQAgASgCACACQQxsQQQQt4WAgAALIABBKEEEELeFgIAACxQAIABBqMvCgAA2AgQgACABNgIACxQAIABB5MvCgAA2AgQgACABNgIACxcAIABBIGpBACABQvCMg5eI0fONE1EbCxgAIABBIGpBACABQuuRk7X22LOi9ABRGwtVAQJ/AkACQCAAKAIEIgJBA0sNACACQQJHDQELIABBEGoiAhCciICAACAAQRRqKAIAIgNFDQAgAigCACADQQxsQQQQt4WAgAALIABBLEEEELeFgIAAC1UBAn8CQAJAIAAoAgQiAkEDSw0AIAJBAkcNAQsgAEEQaiICEJyIgIAAIABBFGooAgAiA0UNACACKAIAIANBDGxBBBC3hYCAAAsgAEEoQQQQt4WAgAALDAAgACABENiNgIAACw4AIAAgASACENeNgIAAC0cBAX8jgICAgABBEGsiAiSAgICAACACQQhqIAAQ1o2AgAAgAigCCCABIAIoAgwoAhARiICAgAAAIQAgAkEQaiSAgICAACAAC4ABAQF/I4CAgIAAQcAAayICJICAgIAAIAIQsI+AgAAgAkEgakEYaiACQRhqKAIANgIAIAJBIGpBEGogAkEQaikDADcDACACQSBqQQhqIAJBCGopAwA3AwAgAiACKQMANwMgIAAgASACQSBqELOIgIAAIQEgAkHAAGokgICAgAAgAQt1AQF/AkBBKEEEELaFgIAAIgMNAEEoQQQQqJCAgAAACyADQZDMwoAANgIAIAMgATYCJCADIAA2AiAgAyACKQIANwIEIANBDGogAkEIaikCADcCACADQRRqIAJBEGopAgA3AgAgA0EcaiACQRhqKAIANgIAIAMLngEBAX8jgICAgABB0ABrIgEkgICAgAAgARCwj4CAACABQSBqQQhqIABBCGooAgA2AgAgASAAKQIANwMgIAFBMGpBGGogAUEYaigCADYCACABQTBqQRBqIAFBEGopAwA3AwAgAUEwakEIaiABQQhqKQMANwMAIAEgASkDADcDMCABQSBqIAFBMGoQtYiAgAAhACABQdAAaiSAgICAACAAC4EBAQF/AkBBLEEEELaFgIAAIgINAEEsQQQQqJCAgAAACyACQaTMwoAANgIAIAIgASkCADcCBCACIAApAgA3AiAgAkEMaiABQQhqKQIANwIAIAJBFGogAUEQaikCADcCACACQRxqIAFBGGooAgA2AgAgAkEoaiAAQQhqKAIANgIAIAILFAAgAEEoNgIEIABBuMzCgAA2AgALFAAgAEEoNgIEIABBuMzCgAA2AgALCQAgAEEANgIACwkAIABBADYCAAsJACAAQQA2AgALAgALAgALDABC4urvoMbRgdlQCw0AQs7Tgru33fuwun8LFAAgACgCACAAKAIEIAEQgpGAgAALFwAgACgCACAAQQhqKAIAIAEQgpGAgAALFwAgACgCACAAQQhqKAIAIAEQhZGAgAALFAAgACgCACAAKAIEIAEQhZGAgAALDQAgAC0AAEF9akECSQtNAQF/IABBAToACCAAQQE2AgAgAEEJakH/ASADQQdxdiIDIANBf2oiAyABIAMgAUkiAxsiBCADGyACajoAACAAIAEgBGtBACADGzYCBAtNAQJ/IAAgASgCBCICNgIYIAAgASgCACIDNgIUIAAgAjYCCCAAIAM2AgQgACABKAIIQQAgAhs2AiAgACACRUEBdCIBNgIQIAAgATYCAAsXACAAQQA2AgggACACNgIEIAAgATYCAAtVAQF/AkAgASgCCCIDIAJqIgIgASgCBEsNACAAIAM2AgQgASACNgIIIABBCGogAjYCACAAQQA2AgAPCyAAQQRqQeDMwoAAQQsQ246AgAAgAEEBNgIAC7oBAgN/AX4jgICAgABBIGsiBCSAgICAAAJAAkACQCABKAIIIgUgA2oiBiABKAIESw0AIAEgBjYCCCAGIAVJDQIgAiABKAIAIAVqIAMQvJGAgAAaQQAhAQwBCyAEQQhqQQRyQeDMwoAAQQsQ246AgAAgBCkCDCEHIABBDGogBEEIakEMaikCADcCACAAIAc3AgRBASEBCyAAIAE2AgAgBEEgaiSAgICAAA8LIAUgBkHQzcKAABC8kICAAAALcgEDfwJAAkAgASgCCCICQQFqIgMgASgCBCIESw0AIAIgBE8NASABIAM2AgggACABKAIAIAJqLQAAOgABIABBADoAAA8LIABBBGpB4MzCgABBCxDbjoCAACAAQQE6AAAPCyACIARB4M3CgAAQt5CAgAAAC84BAgF/An4jgICAgABBwABrIgMkgICAgAAgAyACNgIcIAMgATYCGCADQQA7ASYgA0EoaiADQRhqIANBJmpBAhDSjoCAAAJAAkACQCADKAIoDQAgAy8BJiICDQEgAEEEakHwzcKAAEEXENuOgIAAIABBATsBAAwCCyADQRBqIANBKGpBDGopAgAiBDcDACADIAMpAiwiBTcDCCAAQQxqIAQ3AgAgACAFNwIEIABBATsBAAwBCyAAQQA7AQAgACACOwECCyADQcAAaiSAgICAAAsQACAALwEAIAFBD3F2QQFxC6kBAQR/AkACQAJAAkACQCADKAIEIgQgAmoiBQ0AQQEhBgwBCyAFQX9KIgdFDQEgBSAHELmFgIAAIgZFDQILIAUgAkkNAiAGIAEgAhC8kYCAACIBIAJqIAMoAgAgBBC8kYCAABogACAFNgIIIAAgBTYCBCAAIAE2AgAgACADLwEIOwEMDwsQqZCA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kICAAAALIAogA0GU2MKAABC5kICAAAALIAkgCkGE2MKAABC8kICAAAALIAogA0GE2MKAABC5kICAAAALGgAgACACNgIEIAAgATYCACAAIAJBAXQ2AggLBwAgACgCCAtnAQN/AkACQCABKAIIIgMgAk0NACACQQF2IgQgASgCBCIFTw0BIAEoAgAgBGotAAAiAUEPcSABQQR2IAJBAXEbIQQLIAAgBDoAASAAIAMgAks6AAAPCyAEIAVBjNnCgAAQt5CAgAAAC1EBAn8jgICAgABBEGsiAiSAgICAACACIAApAgA3AwAgAiABKAIIIgMgACgCCCIAIAMgAEkbNgIIIAIgARDoiICAACEAIAJBEGokgICAgAAgAAuDAgEIf0EAIQICQAJAAkACQAJAIAEoAgggACgCCCIDRw0AIANBAXYiBCAAKAIEIgVLDQEgBCABKAIEIgZLDQIgACgCACIHIAEoAgAiCCAEELqRgIAADQAgA0F+cSEAA0AgAyAARiICDQEgAEEBdiIBIAVPDQQgASAGTw0FIABBAXEhBCAAQQFqIQAgByABai0AACIJQQ9xIAlBBHYgBBsgCCABai0AACIBQQ9xIAFBBHYgBBtGDQALCyACDwsgBCAFQazZwoAAELmQgIAAAAsgBCAGQbzZwoAAELmQgIAAAAsgASAFQYzZwoAAELeQgIAAAAsgASAGQYzZwoAAELeQgIAAAAuRAgELf0EAIQNBACAAKAIIIgQgAmsiBSAFIARLGyEGIAEoAggiByABKAIEIghBAXQiBGshCSAEIAdrIQogASgCACELIAAoAgAhDCAAKAIEIQ0CQAJAAkACQANAAkAgCSADag0AIAogCk8PCyAGIANGDQEgAiADaiIEQQF2IgEgDU8NAyAHIANqIgVBAXYiACAITw0CIANBAWohAyAMIAFqLQAAIgFBD3EgAUEEdiAEQQFxGyALIABqLQAAIgBBD3EgAEEEdiAFQQFxG0YNAAsgA0F/aiEGDAMLIAYgB2pBAXYiACAISQ0CCyAAIAhBnNnCgAAQt5CAgAAACyABIA1BjNnCgAAQt5CAgAAACyAGIApPC+oEAQV/QQIhBAJAAkACQAJAAkACQCADKALMASIFQX1qQQQgBUECSxsOBQUAAwECBQsgASADIAIQ6YiAgABFDQQgASgCCCACIAMoAghrIAMoAgRB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woAANgIQIAJB3oKAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAw8CyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJB34KAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAw7CyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJB4IKAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAw6CyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJB4YKAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAw5CyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJB4oKAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAw4CyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJB44KAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAw3CyACIABBCGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJB5IKAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAw2CyACIAA2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJB5YKAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAw1CyACIAA2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJB5oKAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAw0CyACIABBAWo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJB54KAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwzCyACIAA2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJB6IKAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCAB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woAANgIQIAJBiIOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwSCyACIAA2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBiYOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwRCyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBioOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwQCyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBi4OAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwPCyACIABBCGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBjIOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwOCyACIABBCGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBjYOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwNCyACIAA2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBjoOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwMCyACIABBCGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBj4OAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwLCyACIABBCGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBkIOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwKCyACIABBCGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBkYOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwJCyACIABBCGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBkoOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwICyACIABBCGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBk4OAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwHCyACIABBCGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBlIOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwGCyACIABBCGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBlYOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwFCyACIAA2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBloOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwECyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBl4OAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwDCyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBmIOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwCCyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBmYOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwBCyACIAA2AgwgAkEkakEBNgIAIAJCATcCFCACQdzawoAANgIQIAJBmoOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAsgAkEwaiSAgICAACAAC80BAQF/I4CAgIAAQdAAayICJICAgIAAIAAoAgAhACACQQhqQRRqQQE2AgAgAkEoakEUakECNgIAIAJBzABqQZuDgIAANgIAIAJCATcCDCACQdzawoAANgIIIAJBgYCAgAA2AiQgAkICNwIsIAJBtO7CgAA2AiggAiAAQQhqNgJIIAJBnIOAgAA2AkQgAiAANgJAIAIgAkEgajYCGCACIAJBKGo2AiAgAiACQcAAajYCOCABIAJBCGoQ8pCAgAAhACACQdAAaiSAgICAACAAC80BAQF/I4CAgIAAQdAAayICJICAgIAAIAAoAgAhACACQQhqQRRqQQE2AgAgAkEoakEUakECNgIAIAJBzABqQbuAgIAANgIAIAJCATcCDCACQdzawoAANgIIIAJBgYCAgAA2AiQgAkIDNwIsIAJBkPLCgAA2AiggAiAANgJIIAJBjIGAgAA2AkQgAiAAQRBqNgJAIAIgAkEgajYCGCACIAJBKGo2AiAgAiACQcAAajYCOCABIAJBCGoQ8pCAgAAhACACQdAAaiSAgICAACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQfDhwoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkHQ28KAADYCICACQbWCgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQYzhwoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQZ2DgIAANgIcIAJBpObCgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQuCAgEBfyOAgICAAEHgAGsiAiSAgICAACAAKAIAIQAgAkEIakEUakEBNgIAIAJBKGpBFGpBBDYCACACQdwAakGeg4CAADYCACACQcAAakEUakGeg4CAADYCACACQcwAakG7gICAADYCACACQgE3AgwgAkHc2sKAADYCCCACQYGAgIAANgIkIAJCBDcCLCACQcDqwoAANgIoIAIgAEEsajYCWCACIABBIGo2AlAgAiAAQRBqNgJIIAJBu4CAgAA2AkQgAiAANgJAIAIgAkEgajYCGCACIAJBKGo2AiAgAiACQcAAajYCOCABIAJBCGoQ8pCAgAAhACACQeAAaiSAgICAACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQZTvwoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkH85cKAADYCICACQZ+DgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQdzawoAANgIAIAJBgYCAgAA2AhwgAkIBNwIkIAJBlOfCgAA2AiAgAkGfg4CAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQdzawoAANgIAIAJBnYOAgAA2AhwgAkHU4cKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQdjzwoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQZ2DgIAANgIcIAJBuPLCgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQutAQEBfyOAgICAAEHAAGsiAiSAgICAACAAKAIAIQAgAkEUakEBNgIAIAJBIGpBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQYGAgIAANgIcIAJCAjcCJCACQdDuwoAANgIgIAJBnIOAgAA2AjwgAiAANgI4IAIgAkEYajYCECACIAJBIGo2AhggAiACQThqNgIwIAEgAhDykICAACEAIAJBwABqJICAgIAAIAALagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQZ2DgIAANgIcIAJB+N/CgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQdzawoAANgIAIAJBnYOAgAA2AhwgAkHg3sKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQdzawoAANgIAIAJBgYCAgAA2AhwgAkICNwIkIAJBwO/CgAA2AiAgAkGfg4CAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAutAQEBfyOAgICAAEHAAGsiAiSAgICAACAAKAIAIQAgAkEUakEBNgIAIAJBIGpBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQYGAgIAANgIcIAJCATcCJCACQYzcwoAANgIgIAJBoIOAgAA2AjwgAiAANgI4IAIgAkEYajYCECACIAJBIGo2AhggAiACQThqNgIwIAEgAhDykICAACEAIAJBwABqJICAgIAAIAALFwAgACgCACAAQQhqKAIAIAEQhZGAgAALrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGBgICAADYCHCACQgI3AiQgAkHY7cKAADYCICACQYyBgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQbTjwoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkHQ5MKAADYCICACQZyDgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQcTgwoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQZ2DgIAANgIcIAJBzObCgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQvNAQEBfyOAgICAAEHQAGsiAiSAgICAACAAKAIAIQAgAkEIakEUakEBNgIAIAJBKGpBFGpBAjYCACACQcwAakGfg4CAADYCACACQgE3AgwgAkHc2sKAADYCCCACQYGAgIAANgIkIAJCAjcCLCACQdDowoAANgIoIAIgAEEIajYCSCACQZ+DgIAANgJEIAIgADYCQCACIAJBIGo2AhggAiACQShqNgIgIAIgAkHAAGo2AjggASACQQhqEPKQgIAAIQAgAkHQAGokgICAgAAgAAvQAQEBfyOAgICAAEHQAGsiAiSAgICAACAAKAIAIQAgAkEIakEUakEBNgIAIAJBKGpBFGpBAjYCACACQcAAakEMakGeg4CAADYCACACQgE3AgwgAkHc2sKAADYCCCACQYGAgIAANgIkIAJCAjcCLCACQcTrwoAANgIoIAIgAEEMajYCSCACQZ6DgIAANgJEIAIgADYCQCACIAJBIGo2AhggAiACQShqNgIgIAIgAkHAAGo2AjggASACQQhqEPKQgIAAIQAgAkHQAGokgICAgAAgAAvNAQEBfyOAgICAAEHQAGsiAiSAgICAACAAKAIAIQAgAkEIakEUakEBNgIAIAJBKGpBFGpBAjYCACACQcwAakGcg4CAADYCACACQgE3AgwgAkHc2sKAADYCCCACQYGAgIAANgIkIAJCAjcCLCACQZzxwoAANgIoIAIgAEEQajYCSCACQYyBgIAANgJEIAIgADYCQCACIAJBIGo2AhggAiACQShqNgIgIAIgAkHAAGo2AjggASACQQhqEPKQgIAAIQAgAkHQAGokgICAgAAgAAvNAQEBfyOAgICAAEHQAGsiAiSAgICAACAAKAIAIQAgAkEIakEUakEBNgIAIAJBKGpBFGpBAjYCACACQcwAakG7gICAADYCACACQgE3AgwgAkHc2sKAADYCCCACQYGAgIAANgIkIAJCAjcCLCACQZjpwoAANgIoIAIgAEEQajYCSCACQbuAgIAANgJEIAIgADYCQCACIAJBIGo2AhggAiACQShqNgIgIAIgAkHAAGo2AjggASACQQhqEPKQgIAAIQAgAkHQAGokgICAgAAgAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQdzawoAANgIAIAJBnYOAgAA2AhwgAkH44sKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC80BAQF/I4CAgIAAQdAAayICJICAgIAAIAAoAgAhACACQQhqQRRqQQE2AgAgAkEoakEUakECNgIAIAJBzABqQZyDgIAANgIAIAJCATcCDCACQdzawoAANgIIIAJBgYCAgAA2AiQgAkIDNwIsIAJB4OPCgAA2AiggAiAANgJIIAJBjIGAgAA2AkQgAiAAQQhqNgJAIAIgAkEgajYCGCACIAJBKGo2AiAgAiACQcAAajYCOCABIAJBCGoQ8pCAgAAhACACQdAAaiSAgICAACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQfzawoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQZ2DgIAANgIcIAJB9ODCgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQdzawoAANgIAIAJBnYOAgAA2AhwgAkGo4sKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQbTtwoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQZ2DgIAANgIcIAJBzN/CgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQutAQEBfyOAgICAAEHAAGsiAiSAgICAACAAKAIAIQAgAkEUakEBNgIAIAJBIGpBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQYGAgIAANgIcIAJCAjcCJCACQazwwoAANgIgIAJBn4OAgAA2AjwgAiAANgI4IAIgAkEYajYCECACIAJBIGo2AhggAiACQThqNgIwIAEgAhDykICAACEAIAJBwABqJICAgIAAIAALrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkHg8sKAADYCICACQaCDgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQdzawoAANgIAIAJBgYCAgAA2AhwgAkIBNwIkIAJBuPPCgAA2AiAgAkGgg4CAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQdzawoAANgIAIAJBnYOAgAA2AhwgAkH03cKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQcDswoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkG45cKAADYCICACQYyBgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQZDswoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGBgICAADYCHCACQgI3AiQgAkGA5cKAADYCICACQYyBgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQZjbwoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELzQEBAX8jgICAgABB0ABrIgIkgICAgAAgACgCACEAIAJBCGpBFGpBATYCACACQShqQRRqQQI2AgAgAkHMAGpBnIOAgAA2AgAgAkIBNwIMIAJB3NrCgAA2AgggAkGBgICAADYCJCACQgI3AiwgAkHQ58KAADYCKCACIABBEGo2AkggAkGMgYCAADYCRCACIAA2AkAgAiACQSBqNgIYIAIgAkEoajYCICACIAJBwABqNgI4IAEgAkEIahDykICAACEAIAJB0ABqJICAgIAAIAALagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQZ2DgIAANgIcIAJBtN7CgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQutAQEBfyOAgICAAEHAAGsiAiSAgICAACAAKAIAIQAgAkEUakEBNgIAIAJBIGpBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQYGAgIAANgIcIAJCAjcCJCACQYTwwoAANgIgIAJBn4OAgAA2AjwgAiAANgI4IAIgAkEYajYCECACIAJBIGo2AhggAiACQThqNgIwIAEgAhDykICAACEAIAJBwABqJICAgIAAIAALagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQZ2DgIAANgIcIAJB1N3CgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQutAQEBfyOAgICAAEHAAGsiAiSAgICAACAAKAIAIQAgAkEUakEBNgIAIAJBIGpBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQYGAgIAANgIcIAJCAjcCJCACQdzwwoAANgIgIAJBn4OAgAA2AjwgAiAANgI4IAIgAkEYajYCECACIAJBIGo2AhggAiACQThqNgIwIAEgAhDykICAACEAIAJBwABqJICAgIAAIAALrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkGE88KAADYCICACQaCDgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQbjhwoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELzQEBAX8jgICAgABB0ABrIgIkgICAgAAgACgCACEAIAJBCGpBFGpBATYCACACQShqQRRqQQI2AgAgAkHMAGpBnIOAgAA2AgAgAkIBNwIMIAJB3NrCgAA2AgggAkGBgICAADYCJCACQgI3AiwgAkGg38KAADYCKCACIABBEGo2AkggAkGMgYCAADYCRCACIAA2AkAgAiACQSBqNgIYIAIgAkEoajYCICACIAJBwABqNgI4IAEgAkEIahDykICAACEAIAJB0ABqJICAgIAAIAALagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQZ2DgIAANgIcIAJBjN7CgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQvNAQEBfyOAgICAAEHQAGsiAiSAgICAACAAKAIAIQAgAkEIakEUakEBNgIAIAJBKGpBFGpBAjYCACACQcwAakG7gICAADYCACACQgE3AgwgAkHc2sKAADYCCCACQYGAgIAANgIkIAJCAzcCLCACQdjxwoAANgIoIAIgADYCSCACQYyBgIAANgJEIAIgAEEQajYCQCACIAJBIGo2AhggAiACQShqNgIgIAIgAkHAAGo2AjggASACQQhqEPKQgIAAIQAgAkHQAGokgICAgAAgAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQdzawoAANgIAIAJBnYOAgAA2AhwgAkGM4sKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC80BAQF/I4CAgIAAQdAAayICJICAgIAAIAAoAgAhACACQQhqQRRqQQE2AgAgAkEoakEUakECNgIAIAJBzABqQYKAgIAANgIAIAJCATcCDCACQdzawoAANgIIIAJBgYCAgAA2AiQgAkICNwIsIAJByNzCgAA2AiggAiAAQQRqNgJIIAJBgoCAgAA2AkQgAiAANgJAIAIgAkEgajYCGCACIAJBKGo2AiAgAiACQcAAajYCOCABIAJBCGoQ8pCAgAAhACACQdAAaiSAgICAACAAC80BAQF/I4CAgIAAQdAAayICJICAgIAAIAAoAgAhACACQQhqQRRqQQE2AgAgAkEoakEUakECNgIAIAJBzABqQZyDgIAANgIAIAJCATcCDCACQdzawoAANgIIIAJBgYCAgAA2AiQgAkIDNwIsIAJBrN3CgAA2AiggAiAANgJIIAJBjIGAgAA2AkQgAiAAQQhqNgJAIAIgAkEgajYCGCACIAJBKGo2AiAgAiACQcAAajYCOCABIAJBCGoQ8pCAgAAhACACQdAAaiSAgICAACAAC80BAQF/I4CAgIAAQdAAayICJICAgIAAIAAoAgAhACACQQhqQRRqQQE2AgAgAkEoakEUakECNgIAIAJBzABqQbuAgIAANgIAIAJCATcCDCACQdzawoAANgIIIAJBgYCAgAA2AiQgAkICNwIsIAJBiOvCgAA2AiggAiAAQRBqNgJIIAJBu4CAgAA2AkQgAiAANgJAIAIgAkEgajYCGCACIAJBKGo2AiAgAiACQcAAajYCOCABIAJBCGoQ8pCAgAAhACACQdAAaiSAgICAACAAC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQdzawoAANgIAIAJBgYCAgAA2AhwgAkICNwIkIAJBkOjCgAA2AiAgAkGgg4CAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAsQACAAQdAAaiABEJCNgIAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQbDbwoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHc2sKAADYCACACQZ2DgIAANgIcIAJB6NvCgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQdzawoAANgIAIAJBnYOAgAA2AhwgAkHk7MKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB3NrCgAA2AgAgAkGdg4CAADYCHCACQYzuwoAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAEL/wIBBH8jgICAgABBkAFrIgMkgICAgAAgAyACOgAIIAMgA0EIakHUocOAAEGgnsOAABCSjYCAACADKAIEIQQgAygCACEFIAMtAAghBgJAAkBBEEEEELaFgIAAIgJFDQAgAiAGOgAMIAJBrKHDgAA2AgAgAiAENgIIIANBFGogAUEIaigCADYCACADQcAAOgAIIAMgASkCADcCDCADIANBCGo2AlwgA0Ghg4CAADYCdCADIANB3ABqNgJwIANBATYCjAEgA0IBNwJ8IANBpJ3DgAA2AnggAyADQfAAajYCiAEgA0HgAGogA0H4AGoQrZCAgAAgAkEANgIEQRxBBBC2hYCAACIBRQ0BIAEgBDYCCCABIAU2AgQgAUGAosOAADYCACABIAMpA2A3AgwgASACNgIYIAFBFGogA0HgAGpBCGooAgA2AgAgACADQQhqQdAAELyRgIAAIAE2AlAgA0GQAWokgICAgAAPC0EQQQQQqJCAgAAAC0EcQQQQqJCAgAAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGdg4CAADYCHCACQbT5woAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkH4+cKAADYCICACQaKDgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAACxcAIAAoAgAgAEEIaigCACABEIWRgIAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGdg4CAADYCHCACQbj7woAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkGY+MKAADYCICACQaKDgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBgYCAgAA2AhwgAkIBNwIkIAJBpPTCgAA2AiAgAkGig4CAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBnYOAgAA2AhwgAkGA/8KAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGdg4CAADYCHCACQbiGw4AANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELzQEBAX8jgICAgABB0ABrIgIkgICAgAAgACgCACEAIAJBCGpBFGpBATYCACACQShqQRRqQQI2AgAgAkHMAGpBj4CAgAA2AgAgAkIBNwIMIAJB4PPCgAA2AgggAkGBgICAADYCJCACQgI3AiwgAkGU98KAADYCKCACIABBCGo2AkggAkGPgICAADYCRCACIAA2AkAgAiACQSBqNgIYIAIgAkEoajYCICACIAJBwABqNgI4IAEgAkEIahDykICAACEAIAJB0ABqJICAgIAAIAALagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHg88KAADYCACACQZ2DgIAANgIcIAJBgP7CgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBnYOAgAA2AhwgAkHYhsOAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBgYCAgAA2AhwgAkIBNwIkIAJBrPXCgAA2AiAgAkGMgYCAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBnYOAgAA2AhwgAkHU+MKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBgYCAgAA2AhwgAkIBNwIkIAJB/IXDgAA2AiAgAkG7gICAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBnYOAgAA2AhwgAkHI+sKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC9ABAQF/I4CAgIAAQdAAayICJICAgIAAIAAoAgAhACACQQhqQRRqQQE2AgAgAkEoakEUakECNgIAIAJBwABqQQxqQaKDgIAANgIAIAJCATcCDCACQeDzwoAANgIIIAJBgYCAgAA2AiQgAkICNwIsIAJB/PPCgAA2AiggAiAAQQxqNgJIIAJBooOAgAA2AkQgAiAANgJAIAIgAkEgajYCGCACIAJBKGo2AiAgAiACQcAAajYCOCABIAJBCGoQ8pCAgAAhACACQdAAaiSAgICAACAAC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBgYCAgAA2AhwgAkIBNwIkIAJB3PbCgAA2AiAgAkGig4CAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAutAQEBfyOAgICAAEHAAGsiAiSAgICAACAAKAIAIQAgAkEUakEBNgIAIAJBIGpBFGpBATYCACACQgE3AgQgAkHg88KAADYCACACQYGAgIAANgIcIAJCATcCJCACQYSCw4AANgIgIAJBo4OAgAA2AjwgAiAANgI4IAIgAkEYajYCECACIAJBIGo2AhggAiACQThqNgIwIAEgAhDykICAACEAIAJBwABqJICAgIAAIAALFwAgACgCACAAQQhqKAIAIAEQgpGAgAALrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkHI9cKAADYCICACQYyBgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGdg4CAADYCHCACQej/woAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHg88KAADYCACACQZ2DgIAANgIcIAJB7PrCgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBnYOAgAA2AhwgAkGchsOAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGdg4CAADYCHCACQbD8woAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkGkgsOAADYCICACQaKDgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC/ABAQF/I4CAgIAAQeAAayICJICAgIAAIAAoAgAhACACQcQAakGygICAADYCACACIABBEGo2AkAgAkGygICAADYCPCACIAA2AjggAkECNgJcIAJCAzcCTCACQciDw4AANgJIIAIgAkE4ajYCWCACQShqIAJByABqEK2QgIAAIAJBHGpBATYCACACQaKDgIAANgIkIAJCATcCDCACQeDzwoAANgIIIAIgAkEoajYCICACIAJBIGo2AhggASACQQhqEPKQgIAAIQACQCACKAIsIgFFDQAgAigCKCABQQEQt4WAgAALIAJB4ABqJICAgIAAIAALagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHg88KAADYCACACQZ2DgIAANgIcIAJBlIHDgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBnYOAgAA2AhwgAkGc/sKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC9ABAQF/I4CAgIAAQdAAayICJICAgIAAIAAoAgAhACACQQhqQRRqQQE2AgAgAkEoakEUakECNgIAIAJBwABqQQxqQZ6DgIAANgIAIAJCATcCDCACQeDzwoAANgIIIAJBgYCAgAA2AiQgAkICNwIsIAJB7ITDgAA2AiggAiAAQQxqNgJIIAJBnoOAgAA2AkQgAiAANgJAIAIgAkEgajYCGCACIAJBKGo2AiAgAiACQcAAajYCOCABIAJBCGoQ8pCAgAAhACACQdAAaiSAgICAACAAC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBgYCAgAA2AhwgAkICNwIkIAJBsP/CgAA2AiAgAkGig4CAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBnYOAgAA2AhwgAkGAgMOAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC80BAQF/I4CAgIAAQdAAayICJICAgIAAIAAoAgAhACACQQhqQRRqQQE2AgAgAkEoakEUakECNgIAIAJBzABqQY+AgIAANgIAIAJCATcCDCACQeDzwoAANgIIIAJBgYCAgAA2AiQgAkICNwIsIAJB6PTCgAA2AiggAiAANgJIIAJBooOAgAA2AkQgAiAAQQhqNgJAIAIgAkEgajYCGCACIAJBKGo2AiAgAiACQcAAajYCOCABIAJBCGoQ8pCAgAAhACACQdAAaiSAgICAACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGdg4CAADYCHCACQaSHw4AANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAEL0AEBAX8jgICAgABB0ABrIgIkgICAgAAgACgCACEAIAJBCGpBFGpBATYCACACQShqQRRqQQI2AgAgAkHAAGpBDGpBooOAgAA2AgAgAkIBNwIMIAJB4PPCgAA2AgggAkGBgICAADYCJCACQgI3AiwgAkHogsOAADYCKCACIABBDGo2AkggAkGig4CAADYCRCACIAA2AkAgAiACQSBqNgIYIAIgAkEoajYCICACIAJBwABqNgI4IAEgAkEIahDykICAACEAIAJB0ABqJICAgIAAIAALagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHg88KAADYCACACQZ2DgIAANgIcIAJBtIDDgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQsPACAAKAIAIAEQ2ImAgAALtSgBAX8jgICAgABBMGsiAiSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAtAAAOOQABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3OAALIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGkg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDgLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGlg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDcLIAIgAEEIajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGmg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDYLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGng4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDULIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGog4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDQLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGpg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDMLIAIgAEEIajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGqg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDILIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGrg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDELIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGsg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDALIAIgAEEIajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGtg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADC8LIAIgAEEIajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGug4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADC4LIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGvg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADC0LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGwg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCwLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGxg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCsLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGyg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCoLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkGzg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCkLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG0g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCgLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG1g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCcLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG2g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCYLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG3g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCULIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG4g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCQLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG4g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCMLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG5g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCILIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG6g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCELIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG7g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCALIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG8g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADB8LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG9g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADB4LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG+g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADB0LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkG/g4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBwLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHAg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBsLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHBg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBoLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHCg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBkLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHDg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBgLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHEg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBcLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHFg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBYLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHFg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBULIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHGg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBQLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHHg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBMLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHIg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBILIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHJg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBELIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHKg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBALIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHLg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADA8LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHMg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADA4LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHNg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADA0LIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHOg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAwLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHPg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAsLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHQg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAoLIAIgAEEIajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHRg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAkLIAIgAEEIajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHSg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAgLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHTg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAcLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHUg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAYLIAIgAEEIajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHVg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAULIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHWg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAQLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHXg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAMLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHYg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAILIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHZg4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAELIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB4PPCgAA2AhAgAkHag4CAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEACyACQTBqJICAgIAAIAALzQEBAX8jgICAgABB0ABrIgIkgICAgAAgACgCACEAIAJBCGpBFGpBATYCACACQShqQRRqQQI2AgAgAkHMAGpBj4CAgAA2AgAgAkIBNwIMIAJB4PPCgAA2AgggAkGBgICAADYCJCACQgI3AiwgAkHs98KAADYCKCACIABBCGo2AkggAkGPgICAADYCRCACIAA2AkAgAiACQSBqNgIYIAIgAkEoajYCICACIAJBwABqNgI4IAEgAkEIahDykICAACEAIAJB0ABqJICAgIAAIAALagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHg88KAADYCACACQZ2DgIAANgIcIAJBzP3CgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQutAQEBfyOAgICAAEHAAGsiAiSAgICAACAAKAIAIQAgAkEUakEBNgIAIAJBIGpBFGpBATYCACACQgE3AgQgAkHg88KAADYCACACQYGAgIAANgIcIAJCATcCJCACQaz2woAANgIgIAJBooOAgAA2AjwgAiAANgI4IAIgAkEYajYCECACIAJBIGo2AhggAiACQThqNgIwIAEgAhDykICAACEAIAJBwABqJICAgIAAIAALrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkGg+sKAADYCICACQaKDgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGdg4CAADYCHCACQcD4woAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHg88KAADYCACACQZ2DgIAANgIcIAJB7IDDgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQvNAQEBfyOAgICAAEHQAGsiAiSAgICAACAAKAIAIQAgAkEIakEUakEBNgIAIAJBKGpBFGpBAjYCACACQcwAakG7gICAADYCACACQgE3AgwgAkHg88KAADYCCCACQYGAgIAANgIkIAJCAjcCLCACQfz1woAANgIoIAIgADYCSCACQYyBgIAANgJEIAIgAEEQajYCQCACIAJBIGo2AhggAiACQShqNgIgIAIgAkHAAGo2AjggASACQQhqEPKQgIAAIQAgAkHQAGokgICAgAAgAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBnYOAgAA2AhwgAkHE/MKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGdg4CAADYCHCACQeT7woAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkHU+cKAADYCICACQaKDgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBgYCAgAA2AhwgAkIBNwIkIAJBkPXCgAA2AiAgAkGMgYCAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAvNAQEBfyOAgICAAEHQAGsiAiSAgICAACAAKAIAIQAgAkEIakEUakEBNgIAIAJBKGpBFGpBAjYCACACQcwAakG7gICAADYCACACQgE3AgwgAkHg88KAADYCCCACQYGAgIAANgIkIAJCAjcCLCACQaiEw4AANgIoIAIgAEEQajYCSCACQbuAgIAANgJEIAIgADYCQCACIAJBIGo2AhggAiACQShqNgIgIAIgAkHAAGo2AjggASACQQhqEPKQgIAAIQAgAkHQAGokgICAgAAgAAvQAQEBfyOAgICAAEHQAGsiAiSAgICAACAAKAIAIQAgAkEIakEUakEBNgIAIAJBKGpBFGpBAjYCACACQcAAakEMakGeg4CAADYCACACQgE3AgwgAkHg88KAADYCCCACQYGAgIAANgIkIAJCAjcCLCACQbCFw4AANgIoIAIgAEEMajYCSCACQZ6DgIAANgJEIAIgADYCQCACIAJBIGo2AhggAiACQShqNgIgIAIgAkHAAGo2AjggASACQQhqEPKQgIAAIQAgAkHQAGokgICAgAAgAAutAQEBfyOAgICAAEHAAGsiAiSAgICAACAAKAIAIQAgAkEUakEBNgIAIAJBIGpBFGpBATYCACACQgE3AgQgAkHg88KAADYCACACQYGAgIAANgIcIAJCATcCJCACQYT5woAANgIgIAJBooOAgAA2AjwgAiAANgI4IAIgAkEYajYCECACIAJBIGo2AhggAiACQThqNgIwIAEgAhDykICAACEAIAJBwABqJICAgIAAIAALagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHg88KAADYCACACQZ2DgIAANgIcIAJBhIfDgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBnYOAgAA2AhwgAkHA/sKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGdg4CAADYCHCACQYz7woAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHg88KAADYCACACQZ2DgIAANgIcIAJBjP3CgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBnYOAgAA2AhwgAkHEgcOAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABCw8AIABBOGogARCQjYCAAAsEACAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB4PPCgAA2AgAgAkGdg4CAADYCHCACQZz8woAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHg88KAADYCACACQZ2DgIAANgIcIAJBsP3CgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQeDzwoAANgIAIAJBnYOAgAA2AhwgAkHg/sKAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC5AEAQN/I4CAgIAAQYABayIDJICAgIAAIANB2ABqQQhqIgQgAUEIaigCADYCACADQdgAakEUaiACQQhqKAIANgIAIAMgAikCADcCZCADQRRqIAQpAwA3AgAgA0EIakEUaiADQdgAakEQaikDADcCACADQQA6AAggAyABKQIANwIMIAMgA0EIajYCRCADQduDgIAANgJ0IAMgA0HEAGo2AnAgA0EBNgJsIANCATcCXCADQaSdw4AANgJYIAMgA0HwAGo2AmggA0HIAGogA0HYAGoQrZCAgAAgA0HwAGpBCGoiASADQcgAakEIaigCADYCACADIAMpA0g3A3AgAyADQfAAakGAocOAAEGQnsOAABCSjYCAACADKAIEIQIgAygCACEFIAQgASgCADYCACADIAMpA3A3A1gCQEEYQQQQtoWAgAAiAQ0AQRhBBBCokICAAAALIAEgBTYCBCABQdigw4AANgIAIAEgAykDWDcCDCABIAI2AgggAUEUaiAEKAIANgIAIABBMGogA0EIakEwaikDADcDACAAQShqIANBCGpBKGopAwA3AwAgAEEgaiADQQhqQSBqKQMANwMAIABBGGogA0EIakEYaikDADcDACAAQRBqIANBCGpBEGopAwA3AwAgAEEIaiADQQhqQQhqKQMANwMAIAAgAykDCDcDACAAIAE2AjggA0GAAWokgICAgAAL0QMBBH8jgICAgABBgAFrIgIkgICAgAAgAkEUaiABQQhqKAIANgIAIAJBBDoACCACIAEpAgA3AgwgAiACQQhqNgJEIAJB24OAgAA2AnQgAiACQcQAajYCcCACQQE2AmwgAkIBNwJcIAJBpJ3DgAA2AlggAiACQfAAajYCaCACQcgAaiACQdgAahCtkICAACACQfAAakEIaiIBIAJByABqQQhqKAIANgIAIAIgAikDSDcDcCACIAJB8ABqQYChw4AAQZCew4AAEJKNgIAAIAIoAgQhAyACKAIAIQQgAkHYAGpBCGoiBSABKAIANgIAIAIgAikDcDcDWAJAQRhBBBC2hYCAACIBDQBBGEEEEKiQgIAAAAsgASAENgIEIAFB2KDDgAA2AgAgASACKQNYNwIMIAEgAzYCCCABQRRqIAUoAgA2AgAgAEEwaiACQQhqQTBqKQMANwMAIABBKGogAkEIakEoaikDADcDACAAQSBqIAJBCGpBIGopAwA3AwAgAEEYaiACQQhqQRhqKQMANwMAIABBEGogAkEIakEQaikDADcDACAAQQhqIAJBCGpBCGopAwA3AwAgACACKQMINwMAIAAgATYCOCACQYABaiSAgICAAAviAwEHfyOAgICAAEGAAWsiBCSAgICAACAEQQhqQRhqIgUgASkCADcDACAEQQhqQRBqIgYgAzcDACAEQQhqQSBqIgcgAUEIaigCADYCACAEIAI3AxAgBEEGOgAIIAQgBEEIajYCRCAEQduDgIAANgJ0IAQgBEHEAGo2AnAgBEEBNgJsIARCATcCXCAEQaSdw4AANgJYIAQgBEHwAGo2AmggBEHIAGogBEHYAGoQrZCAgAAgBEHwAGpBCGoiASAEQcgAakEIaigCADYCACAEIAQpA0g3A3AgBCAEQfAAakGAocOAAEGQnsOAABCSjYCAACAEKAIEIQggBCgCACEJIARB2ABqQQhqIgogASgCADYCACAEIAQpA3A3A1gCQEEYQQQQtoWAgAAiAQ0AQRhBBBCokICAAAALIAEgCTYCBCABQdigw4AANgIAIAEgBCkDWDcCDCABIAg2AgggAUEUaiAKKAIANgIAIABBMGogBEEIakEwaikDADcDACAAQShqIARBCGpBKGopAwA3AwAgAEEgaiAHKQMANwMAIABBGGogBSkDADcDACAAQRBqIAYpAwA3AwAgAEEIaiAEQQhqQQhqKQMANwMAIAAgBCkDCDcDACAAIAE2AjggBEGAAWokgICAgAAL0QMBBH8jgICAgABBgAFrIgIkgICAgAAgAkEUaiABQQhqKAIANgIAIAJBBzoACCACIAEpAgA3AgwgAiACQQhqNgJEIAJB24OAgAA2AnQgAiACQcQAajYCcCACQQE2AmwgAkIBNwJcIAJBpJ3DgAA2AlggAiACQfAAajYCaCACQcgAaiACQdgAahCtkICAACACQfAAakEIaiIBIAJByABqQQhqKAIANgIAIAIgAikDSDcDcCACIAJB8ABqQYChw4AAQZCew4AAEJKNgIAAIAIoAgQhAyACKAIAIQQgAkHYAGpBCGoiBSABKAIANgIAIAIgAikDcDcDWAJAQRhBBBC2hYCAACIBDQBBGEEEEKiQgIAAAAsgASAENgIEIAFB2KDDgAA2AgAgASACKQNYNwIMIAEgAzYCCCABQRRqIAUoAgA2AgAgAEEwaiACQQhqQTBqKQMANwMAIABBKGogAkEIakEoaikDADcDACAAQSBqIAJBCGpBIGopAwA3AwAgAEEYaiACQQhqQRhqKQMANwMAIABBEGogAkEIakEQaikDADcDACAAQQhqIAJBCGpBCGopAwA3AwAgACACKQMINwMAIAAgATYCOCACQYABaiSAgICAAAvRAwEEfyOAgICAAEGAAWsiAiSAgICAACACQRRqIAFBCGooAgA2AgAgAkELOgAIIAIgASkCADcCDCACIAJBCGo2AkQgAkHbg4CAADYCdCACIAJBxABqNgJwIAJBATYCbCACQgE3AlwgAkGkncOAADYCWCACIAJB8ABqNgJoIAJByABqIAJB2ABqEK2QgIAAIAJB8ABqQQhqIgEgAkHIAGpBCGooAgA2AgAgAiACKQNINwNwIAIgAkHwAGpBgKHDgABBkJ7DgAAQko2AgAAgAigCBCEDIAIoAgAhBCACQdgAakEIaiIFIAEoAgA2AgAgAiACKQNwNwNYAkBBGEEEELaFgIAAIgENAEEYQQQQqJCAgAAACyABIAQ2AgQgAUHYoMOAADYCACABIAIpA1g3AgwgASADNgIIIAFBFGogBSgCADYCACAAQTBqIAJBCGpBMGopAwA3AwAgAEEoaiACQQhqQShqKQMANwMAIABBIGogAkEIakEgaikDADcDACAAQRhqIAJBCGpBGGopAwA3AwAgAEEQaiACQQhqQRBqKQMANwMAIABBCGogAkEIakEIaikDADcDACAAIAIpAwg3AwAgACABNgI4IAJBgAFqJICAgIAAC9MDAQR/I4CAgIAAQYABayICJICAgIAAIAIgATYCECACQQhqIAJBEGpBrKDDgABBoJ7DgAAQko2AgAAgAigCDCEDIAIoAgghBCACKAIQIQECQAJAQRBBBBC2hYCAACIFRQ0AIAUgATYCDCAFQYSgw4AANgIAIAUgAzYCCCACQRo6ABAgAiACQRBqNgJMIAJB24OAgAA2AmQgAiACQcwAajYCYCACQQE2AnwgAkIBNwJsIAJBpJ3DgAA2AmggAiACQeAAajYCeCACQdAAaiACQegAahCtkICAACAFQQA2AgRBHEEEELaFgIAAIgFFDQEgASADNgIIIAEgBDYCBCABQYCiw4AANgIAIAEgAikDUDcCDCABIAU2AhggAUEUaiACQdAAakEIaigCADYCACAAQTBqIAJBEGpBMGopAwA3AwAgAEEoaiACQRBqQShqKQMANwMAIABBIGogAkEQakEgaikDADcDACAAQRhqIAJBEGpBGGopAwA3AwAgAEEQaiACQRBqQRBqKQMANwMAIABBCGogAkEQakEIaikDADcDACAAIAIpAxA3AwAgACABNgI4IAJBgAFqJICAgIAADwtBEEEEEKiQgIAAAAtBHEEEEKiQgIAAAAvHBAEGfyOAgICAAEGAAWsiAiSAgICAACACQegAakEQaiIDIAFBEGooAgA2AgAgAkHoAGpBCGoiBCABQQhqKQIANwMAIAIgASkCADcDaCACQQhqIAJB6ABqQdifw4AAQaCew4AAEJKNgIAAIAIoAgwhBSACKAIIIQYgAkEQakEQaiIHIAMoAgA2AgAgAkEQakEIaiIDIAQpAwA3AwAgAiACKQNoNwMQAkACQEEgQQQQtoWAgAAiAUUNACABQbCfw4AANgIAIAEgAikDEDcCDCABIAU2AgggAUEUaiADKQMANwIAIAFBHGogBygCADYCACACQRs6ABAgAiACQRBqNgJMIAJB24OAgAA2AmQgAiACQcwAajYCYCACQQE2AnwgAkIBNwJsIAJBpJ3DgAA2AmggAiACQeAAajYCeCACQdAAaiACQegAahCtkICAACABQQA2AgRBHEEEELaFgIAAIgNFDQEgAyAFNgIIIAMgBjYCBCADQYCiw4AANgIAIAMgAikDUDcCDCADIAE2AhggA0EUaiACQdAAakEIaigCADYCACAAQTBqIAJBEGpBMGopAwA3AwAgAEEoaiACQRBqQShqKQMANwMAIABBIGogAkEQakEgaikDADcDACAAQRhqIAJBEGpBGGopAwA3AwAgAEEQaiACQRBqQRBqKQMANwMAIABBCGogAkEQakEIaikDADcDACAAIAIpAxA3AwAgACADNgI4IAJBgAFqJICAgIAADwtBIEEEEKiQgIAAAAtBHEEEEKiQgIAAAAvRAwEEfyOAgICAAEGAAWsiAiSAgICAACACQRRqIAFBCGooAgA2AgAgAkEsOgAIIAIgASkCADcCDCACIAJBCGo2AkQgAkHbg4CAADYCdCACIAJBxABqNgJwIAJBATYCbCACQgE3AlwgAkGkncOAADYCWCACIAJB8ABqNgJoIAJByABqIAJB2ABqEK2QgIAAIAJB8ABqQQhqIgEgAkHIAGpBCGooAgA2AgAgAiACKQNINwNwIAIgAkHwAGpBgKHDgABBkJ7DgAAQko2AgAAgAigCBCEDIAIoAgAhBCACQdgAakEIaiIFIAEoAgA2AgAgAiACKQNwNwNYAkBBGEEEELaFgIAAIgENAEEYQQQQqJCAgAAACyABIAQ2AgQgAUHYoMOAADYCACABIAIpA1g3AgwgASADNgIIIAFBFGogBSgCADYCACAAQTBqIAJBCGpBMGopAwA3AwAgAEEoaiACQQhqQShqKQMANwMAIABBIGogAkEIakEgaikDADcDACAAQRhqIAJBCGpBGGopAwA3AwAgAEEQaiACQQhqQRBqKQMANwMAIABBCGogAkEIakEIaikDADcDACAAIAIpAwg3AwAgACABNgI4IAJBgAFqJICAgIAAC8cEAQZ/I4CAgIAAQYABayICJICAgIAAIAJB6ABqQRBqIgMgAUEQaigCADYCACACQegAakEIaiIEIAFBCGopAgA3AwAgAiABKQIANwNoIAJBCGogAkHoAGpB2J/DgABBoJ7DgAAQko2AgAAgAigCDCEFIAIoAgghBiACQRBqQRBqIgcgAygCADYCACACQRBqQQhqIgMgBCkDADcDACACIAIpA2g3AxACQAJAQSBBBBC2hYCAACIBRQ0AIAFBsJ/DgAA2AgAgASACKQMQNwIMIAEgBTYCCCABQRRqIAMpAwA3AgAgAUEcaiAHKAIANgIAIAJBNjoAECACIAJBEGo2AkwgAkHbg4CAADYCZCACIAJBzABqNgJgIAJBATYCfCACQgE3AmwgAkGkncOAADYCaCACIAJB4ABqNgJ4IAJB0ABqIAJB6ABqEK2QgIAAIAFBADYCBEEcQQQQtoWAgAAiA0UNASADIAU2AgggAyAGNgIEIANBgKLDgAA2AgAgAyACKQNQNwIMIAMgATYCGCADQRRqIAJB0ABqQQhqKAIANgIAIABBMGogAkEQakEwaikDADcDACAAQShqIAJBEGpBKGopAwA3AwAgAEEgaiACQRBqQSBqKQMANwMAIABBGGogAkEQakEYaikDADcDACAAQRBqIAJBEGpBEGopAwA3AwAgAEEIaiACQRBqQQhqKQMANwMAIAAgAikDEDcDACAAIAM2AjggAkGAAWokgICAgAAPC0EgQQQQqJCAgAAAC0EcQQQQqJCAgAAAC8cEAQZ/I4CAgIAAQYABayICJICAgIAAIAJB6ABqQRBqIgMgAUEQaigCADYCACACQegAakEIaiIEIAFBCGopAgA3AwAgAiABKQIANwNoIAJBCGogAkHoAGpB2J/DgABBoJ7DgAAQko2AgAAgAigCDCEFIAIoAgghBiACQRBqQRBqIgcgAygCADYCACACQRBqQQhqIgMgBCkDADcDACACIAIpA2g3AxACQAJAQSBBBBC2hYCAACIBRQ0AIAFBsJ/DgAA2AgAgASACKQMQNwIMIAEgBTYCCCABQRRqIAMpAwA3AgAgAUEcaiAHKAIANgIAIAJBNzoAECACIAJBEGo2AkwgAkHbg4CAADYCZCACIAJBzABqNgJgIAJBATYCfCACQgE3AmwgAkGkncOAADYCaCACIAJB4ABqNgJ4IAJB0ABqIAJB6ABqEK2QgIAAIAFBADYCBEEcQQQQtoWAgAAiA0UNASADIAU2AgggAyAGNgIEIANBgKLDgAA2AgAgAyACKQNQNwIMIAMgATYCGCADQRRqIAJB0ABqQQhqKAIANgIAIABBMGogAkEQakEwaikDADcDACAAQShqIAJBEGpBKGopAwA3AwAgAEEgaiACQRBqQSBqKQMANwMAIABBGGogAkEQakEYaikDADcDACAAQRBqIAJBEGpBEGopAwA3AwAgAEEIaiACQRBqQQhqKQMANwMAIAAgAikDEDcDACAAIAM2AjggAkGAAWokgICAgAAPC0EgQQQQqJCAgAAAC0EcQQQQqJCAgAAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJBhInDgAA2AgAgAkGdg4CAADYCHCACQfCJw4AANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkGEicOAADYCACACQZ2DgIAANgIcIAJByIrDgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQsXACAAKAIAIABBCGooAgAgARCFkYCAAAutAQEBfyOAgICAAEHAAGsiAiSAgICAACAAKAIAIQAgAkEUakEBNgIAIAJBIGpBFGpBATYCACACQgE3AgQgAkGEicOAADYCACACQYGAgIAANgIcIAJCATcCJCACQYiPw4AANgIgIAJB3IOAgAA2AjwgAiAANgI4IAIgAkEYajYCECACIAJBIGo2AhggAiACQThqNgIwIAEgAhDykICAACEAIAJBwABqJICAgIAAIAALDwAgACgCACABEICKgIAAC/sFAQF/I4CAgIAAQTBrIgIkgICAgAACQAJAAkACQAJAAkACQAJAAkAgACgCAA4IAAECAwQFBgcACyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQYSJw4AANgIQIAJB3YOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwHCyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQYSJw4AANgIQIAJB3oOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwGCyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQYSJw4AANgIQIAJB34OAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwFCyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQYSJw4AANgIQIAJB4IOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwECyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQYSJw4AANgIQIAJB4YOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwDCyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQYSJw4AANgIQIAJB4oOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwCCyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQYSJw4AANgIQIAJB44OAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwBCyACIABBBGo2AgwgAkEkakEBNgIAIAJCATcCFCACQYSJw4AANgIQIAJB5IOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAsgAkEwaiSAgICAACAAC4UCAQF/I4CAgIAAQeAAayICJICAgIAAIAAoAgAhACACQQhqQRRqQQE2AgAgAkEoakEUakEENgIAIAJB3ABqQYKAgIAANgIAIAJBwABqQRRqQYKAgIAANgIAIAJBwABqQQxqQYKAgIAANgIAIAJCATcCDCACQYSJw4AANgIIIAJBgYCAgAA2AiQgAkIFNwIsIAJBmI3DgAA2AiggAiAAQRRqNgJYIAIgAEEQajYCUCACIABBDGo2AkggAkHcg4CAADYCRCACIAA2AkAgAiACQSBqNgIYIAIgAkEoajYCICACIAJBwABqNgI4IAEgAkEIahDykICAACEAIAJB4ABqJICAgIAAIAALagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkGEicOAADYCACACQZ2DgIAANgIcIAJBqJDDgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQYSJw4AANgIAIAJBnYOAgAA2AhwgAkGki8OAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQYSJw4AANgIAIAJBgYCAgAA2AhwgAkICNwIkIAJB1IzDgAA2AiAgAkHcg4CAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQYSJw4AANgIAIAJBnYOAgAA2AhwgAkGAjMOAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJBhInDgAA2AgAgAkGdg4CAADYCHCACQaSMw4AANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkGEicOAADYCACACQZ2DgIAANgIcIAJB/I/DgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQYSJw4AANgIAIAJBnYOAgAA2AhwgAkGsisOAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQYSJw4AANgIAIAJBgYCAgAA2AhwgAkICNwIkIAJBnI7DgAA2AiAgAkHcg4CAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQYSJw4AANgIAIAJBnYOAgAA2AhwgAkGQisOAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJBhInDgAA2AgAgAkGdg4CAADYCHCACQdCPw4AANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkGEicOAADYCACACQZ2DgIAANgIcIAJByI7DgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICA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IgsgCkcNAAsLIAcgCGshByAFKAIEIQgLIAAgBzYCCCAAIAg2AgQgACAGNgIAIAVBEGokgICAgAAPCxCpkICAAAALIAcgCBCokICAAAALQcSHw4AAQSNB5IjDgAAQu5CAgAAAC0HEh8OAAEEjQeSIw4AAELuQgIAAAAtBxIfDgABBI0HkiMOAABC7kICAAAALQcSHw4AAQSNB5IjDgAAQu5CAgAAAC0HEh8OAAEEjQeSIw4AAELuQgIAAAAtBxIfDgABBI0HkiMOAABC7kICAAAALQcSHw4AAQSNB5IjDgAAQu5CAgAAAC0HEh8OAAEEjQeSIw4AAELuQgIAAAAtBxIfDgABBI0HkiMOAABC7kICAAAALQcSHw4AAQSNB5IjDgAAQu5CAgAAAC0HEh8OAAEEjQeSIw4AAELuQgIAAAAujAQECfyOAgICAAEEwayICJICAgIAAQQEhAwJAIAFBIhCAkYCAAA0AIAIgATYCBCACQe+DgIAANgIMIAIgADYCCCACIAJBBGo2AhRBASEDIAJBATYCLCACQgE3AhwgAkGEicOAADYCGCACIAJBCGo2AiggAkEUakGsh8OAACACQRhqEMKQgIAADQAgAUEiEICRgIAAIQMLIAJBMGokgICAgAAgAwuvAQEBfyOAgICAAEEgayICJICAgIAAIAIQxo2AgAA6AA8gAkEQaiACQQ9qIAAQvoqAgAACQAJAIAIoAhAiAEUNACACIAIpAhQ3AgQgAiAANgIAIAJBEGogAUGMicOAAEEOEPyQgIAAIAJBEGogAkGcicOAABDekICAABDfkICAACEAIAIoAgQiAUUNASACKAIAIAFBARC3hYCAAAwBC0EBIQALIAJBIGokgICAgAAgAAsZACAAIAFBCGooAgA2AgQgACABKAIANgIACxwAIAAgASkCADcCACAAQQhqIAFBCGooAgA2AgALHAAgACABKQIANwIAIABBCGogAUEIaigCADYCAAuTAQECfyOAgICAAEEQayICJICAgIAAAkACQCABKAIIRQ0AIAAgASkCADcCACAAQQhqIAFBCGooAgA2AgAMAQsgAkEIahCxioCAACACKAIIIQMgAEEIaiACLQAMOgAAIAAgAzYCBCAAQQA2AgAgAUEEaigCACIARQ0AIAEoAgAgAEEBELeFgIAACyACQRBqJICAgIAAC5YDAQV/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IgIgAUEoakEIaigCADYCACABIAEpAyg3A1AgASABQdAAakGAocOAAEGQnsOAABCSjYCAACABKAIEIQMgASgCACEEIAFBOGpBCGoiBSACKAIANgIAIAEgASkDUDcDOAJAQRhBBBC2hYCAACICDQBBGEEEEKiQgIAAAAsgAiAENgIEIAJB2KDDgAA2AgAgAiABKQM4NwIMIAIgAzYCCCACQRRqIAUoAgA2AgAgAEEYaiABQQhqQRhqKAIANgIAIABBEGogAUEIakEQaikDADcCACAAQQhqIAFBCGpBCGopAwA3AgAgACABKQMINwIAIAAgAjYCHCABQeAAaiSAgICAAAv5AgEFfyOAgICAAEHgAGsiASSAgICAACABQQU2AgggASABQQhqNgIkIAFB8YOAgAA2AlQgASABQSRqNgJQIAFBATYCTCABQgE3AjwgAUGkncOAADYCOCABIAFB0ABqNgJIIAFBKGogAUE4ahCtkICAACABQdAAakEIaiICIAFBKGpBCGooAgA2AgAgASABKQMoNwNQIAEgAUHQAGpBgKHDgABBkJ7DgAAQko2AgAAgASgCBCEDIAEoAgAhBCABQThqQQhqIgUgAigCADYCACABIAEpA1A3AzgCQEEYQQQQtoWAgAAiAg0AQRhBBBCokICAAAALIAIgBDYCBCACQdigw4AANgIAIAIgASkDODcCDCACIAM2AgggAkEUaiAFKAIANgIAIABBGGogAUEIakEYaigCADYCACAAQRBqIAFBCGpBEGopAwA3AgAgAEEIaiABQQhqQQhqKQMANwIAIAAgASkDCDcCACAAIAI2AhwgAUHgAGokgICAgAALlwMBBH8jgICAgABB4ABrIgIkgICAgAAgAiABOgAQIAJBCGogAkEQakHUocOAAEGgnsOAABCSjYCAACACKAIMIQMgAigCCCEEIAItABAhAQJAAkBBEEEEELaFgIAAIgVFDQAgBSABOgAMIAVBrKHDgAA2AgAgBSADNgIIIAJBBjYCECACIAJBEGo2AiwgAkHxg4CAADYCRCACIAJBLGo2AkAgAkEBNgJcIAJCATcCTCACQaSdw4AANgJIIAIgAkHAAGo2AlggAkEwaiACQcgAahCtkICAACAFQQA2AgRBHEEEELaFgIAAIgFFDQEgASADNgIIIAEgBDYCBCABQYCiw4AANgIAIAEgAikDMDcCDCABIAU2AhggAUEUaiACQTBqQQhqKAIANgIAIABBGGogAkEQakEYaigCADYCACAAQRBqIAJBEGpBEGopAwA3AgAgAEEIaiACQRBqQQhqKQMANwIAIAAgAikDEDcCACAAIAE2AhwgAkHgAGokgICAgAAPC0EQQQQQqJCAgAAAC0EcQQQQqJCAgAAAC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJBsJDDgAA2AgggAkGBgICAADYCJCACQbCQw4AANgI4IAJCATcCLCACQaSRw4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQsUACAAKAIAIAAoAgQgARCFkYCAAAubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQbCQw4AANgIIIAJBgYCAgAA2AiQgAkGwkMOAADYCOCACQgE3AiwgAkHAkcOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELFwAgACgCACAAQQhqKAIAIAEQhZGAgAALDwAgACgCACABEK2KgIAAC7kCAQF/I4CAgIAAQTBrIgIkgICAgAACQAJAAkACQCAALQAADgMAAQIACyACIABBAWo2AgwgAkEkakEBNgIAIAJCATcCFCACQbCQw4AANgIQIAJB+IOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwCCyACIABBAWo2AgwgAkEkakEBNgIAIAJCATcCFCACQbCQw4AANgIQIAJB+YOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAwBCyACIABBAWo2AgwgAkEkakEBNgIAIAJCATcCFCACQbCQw4AANgIQIAJB+oOAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAsgAkEwaiSAgICAACAAC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJBsJDDgAA2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BUUNACADKAK8ASAFQQEQt4WAgAALIANB1AFqEJGNgIAACyADQZABaiACIAEQuoqAgAACQCADKAKQASIFQQ9GDQAgAygCtAEhBCADKQKsASEIIAMoAqgBIQYgAykDoAEhCiADKQOYASEJIAMoApQBIQEMAQsCQAJAAkACQCABQQVHDQAgAigCBCIFQQtHDQJBCyEFIAIoAgBBxZLDgABBCxC6kYCAAA0CIANB2AFqIAJBCGpBAhC6ioCAACADQRBqIAJBGGoQu4qAgAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKALYAQ4QAgMEBQYABwgJCgsMDREBEQELIANB2AFqQQhqKAIAIQUgAygC3AEhBgJAIAMpAxAiCEICUQ0AIAhC/////w+DUA0PCyAFRQ0QIAYgBUEBELeFgIAADBALIANB2AFqQQRyIQUMDAsgA0HYAWpBBHIhBQwLCyADQdgBakEEciEFDAoLIANB2AFqQRhqIQUMCQsgA0HYAWpBBHIhBQwICyADQdgBakEEciEFDAcLIANB6AFqIQUMBgsgA0HoAWohBQwFCyADQegBaiEFDAQLIANB6AFqIQUMAwsgA0HYAWpBGGohBQwCCyADQdgBakEYaiEFDAELIANB2AFqQRhqIQULIAVBBGooAgAiBkUNAiAFKAIAIAZBARC3hYCAAAwCCyADKQMYIQkgA0HkAWooAgAhBiADKQLcASEKQQYhBQwECwJAAkACQCABQQdHDQAgAigCBCIFQQtHDQIgAigCAEH/ksOAAEELELqRgIAADQUgA0HYAWogAkEIakECELqKgIAAIANB8ABqIAJBGGoQu4qAgAAgAykDeCEJIAMpA3AhCCADQeAAaiACQShqELyKgIAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAygC2AEOEAIDBAUGAAcICQoLDA0RAREBCyADQdgBakEIaigCACEFIAMoAtwBIQYCQCAIQgJRDQAgCEL/////D4NCAFINACADKQNgIghCAlENACAIQv////8Pg0IBUQ0PCyAFRQ0QIAYgBUEBELeFgIAADBALIANB2AFqQQRyIQUMDAsgA0HYAWpBBHIhBQwLCyADQdgBakEEciEFDAoLIANB2AFqQRhqIQUMCQsgA0HYAWpBBHIhBQwICyADQdgB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gAAgA0GQAWogA0HYAWoQr5CAgAAgAykClAEhCSADKAKQASEBAkAgAygC3AEiBUUNACADKALYASAFQQEQt4WAgAALQQ4hBQsgACAENgIkIAAgCDcCHCAAIAY2AhggACAKNwMQIAAgCTcCCCAAIAE2AgQgACAFNgIAAkAgAygChAEiAEUNACACIABBA3RBBBC3hYCAAAsgA0GAAmokgICAgAALkwQCA38BfiOAgICAAEHQAGsiAySAgICAAAJAAkAgAkECRg0AIABBDzYCAAwBCwJAAkAgASgCBEEFRw0AIAEoAgBBt5LDgABBBRC6kYCAAEUNAQsgAEEPNgIADAELIANBMGogASgCCCIEIAFBDGooAgAiAkECQYABEK6LgIAAAkACQAJAAkACQAJAIAMoAjBBCEcNAAJAAkAgAg0AQQEhAQwBCyACQX9KIgVFDQIgAiAFELaFgIAAIgFFDQMLIAEgBCACELyRgIAAIQEgA0EcaiACNgIAIANBGGogAjYCACADIAE2AhQMBQsgA0EQakEYaiADQTBqQRhqKQMANwMAIANBEGpBEGogA0EwakEQaikDADcDACADQRBqQQhqIANBMGpBCGopAwA3AwAgAyADKQMwIgY3AxAgBqciAkEIRg0EIABBDzYCAAJAAkACQAJAIAIOBQABAgcDBwsgA0EQakEEciEADAULIANBEGpBBHIhAAwECyADQRBqQQRyIQAMAwsgA0EQakEEciEADAILEKmQgIAAAAsgAiAFEKiQgIAAAAsgAEEEaigCACIARQ0AIAMoAhQgAEEBELeFgIAACyADQSxqEJGNgIAADAELIANBCGogA0EQakEMaigCACICNgIAIAMgAykCFCIGNwMAIABBBTYCACAAIAY3AgQgAEEMaiACNgIACyADQdAAaiSAgICAAAvrAQIBfwJ+I4CAgIAAQSBrIgIkgICAgABCAiEDAkACQCABKAIEQQhHDQAgASgCACkAAELj0IXz5q2ZtvMAUg0AIAIgASgCCCABQQxqKAIAELKKgIAAAkACQAJAAkACQAJAAkAgAigCAA4JAQIDBgQGBgYABgsgAikDCCEEQgAhAwwHCyACQQRyIQEMAwsgAkEEciEBDAILIAJBBHIhAQwBCyACQQRyIQELIAFBBGooAgAiAUUNACACKAIEIAFBARC3hYCAAAsgAkEcahCR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AgwhASAAIAIoAgg2AgAgACABNgIEIAJBEGokgICAgAALCQAgAEEANgIACwkAIABBADYCAAtbAQF/I4CAgIAAQRBrIgIkgICAgAAgAkEIaiABEJyNgIAAIAIgAigCCCACKAIMKAIYEYSAgIAAACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJICAgIAAC1sBAX8jgICAgABBEGsiAiSAgICAACACQQhqIAEQnI2AgAAgAiACKAIIIAIoAgwoAhgRhICAgAAAIAIoAgQhASAAIAIoAgA2AgAgACABNgIEIAJBEGokgICAgAALWwEBfyOAgICAAEEQayICJICAgIAAIAJBCGogARCcjYCAACACIAIoAgggAigCDCgCGBGEgICAAAAgAigCBCEBIAAgAigCADYCACAAIAE2AgQgAkEQaiSAgICAAAtbAQF/I4CAgIAAQRBrIgIkgICAgAAgAkEIaiABEJyNgIAAIAIgAigCCCACKAIMKAIYEYSAgIAAACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJICAgIAACwIACwIACwwAQtvB+suqq7jbIQsNAEKfucqh5u7L7fkACwwAQsPj6vqW96KZaQsNAELw++PryPumns8ACw0AQrPw+6Kz78vh/wALDABCzuDfqLm0m+cTCw0AQoy40u26uvTHlH8LDQBCqZ/Ep5qZh5WGfwsNAELLw+7nvqX3oa9/CwwAQomhztj8k5STEQsXACAAQayVw4AANgIEIAAgAUEMajYCAAsXACAAQeiVw4AANgIEIAAgAUEMajYCAAsXACAAQaSWw4AANgIEIAAgAUEMajYCAAsXACAAQeCWw4AANgIEIAAgAUEMajYCAAsXACAAQZyXw4AANgIEIAAgAUEMajYCAAsXACAAQaSWw4AANgIEIAAgAUEMajYCAAsXACAAQayVw4AANgIEIAAgAUEMajYCAAsXACAAQeiVw4AANgIEIAAgAUEMajYCAAsXACAAQZyXw4AANgIEIAAgAUEMajYCAAsXACAAQeCWw4AANgIEIAAgAUEMajYCAAuGAQEDfwJAIAAoAgQiAUUNACABIABBCGooAgAiAigCABGGgICAAAAgAkEEaigCACIDRQ0AIAEgAyACQQhqKAIAELeFgIAACwJAIAAoAgwNACAAQRRqKAIAIgFFDQAgAEEQaigCACABQQEQt4WAgAALIABBHGoQkY2AgAAgAEEgQQQQt4WAgAALfAEDfwJAIAAoAgQiAUUNACABIABBCGooAgAiAigCABGGgICAAAAgAkEEaigCACIDRQ0AIAEgAyACQQhqKAIAELeFgIAACwJAIABBEGooAgAiAUUNACAAKAIMIAFBARC3hYCAAAsgAEEYahCRjYCAACAAQRxBBBC3hYCAAAtSAQN/AkAgACgCBCIBRQ0AIAEgAEEIaigCACICKAIAEYaAgIAAACACQQRqKAIAIgNFDQAgASADIAJBCGooAgAQt4WAgAALIABBEEEEELeFgIAAC3EBA38CQCAAKAIEIgFFDQAgASAAQQhqKAIAIgIoAgARhoCAgAAAIAJBBGooAgAiA0UNACABIAMgAkEIaigCABC3hYCAAAsCQCAAQRBqKAIAIgFFDQAgACgCDCABQQEQt4WAgAALIABBGEEEELeFgIAACxYAIAAQw4qAgAAgAEEQQQQQt4WAgAALFAAgAEHYl8OAADYCBCAAIAE2AgALFAAgAEGUmMOAADYCBCAAIAE2AgALFAAgAEHQmMOAADYCBCAAIAE2AgALFAAgAEGMmcOAADYCBCAAIAE2AgALFAAgAEHImcOAADYCBCAAIAE2AgALFwAgAEEMakEAIAFCv4i01NKQ+c9nURsLFwAgAEEMakEAIAFC8IyDl4jR840TURsLFwAgAEEMakEAIAFCvMyC2vG9344qURsLFwAgAEEMakEAIAFC19mctLWCjKp+URsLUgEDfwJAIAAoAgQiAkUNACACIABBCGooAgAiAygCABGGgICAAAAgA0EEaigCACIERQ0AIAIgBCADQQhqKAIAELeFgIAACyAAQRBBBBC3hYCAAAtSAQN/AkAgACgCBCICRQ0AIAIgAEEIaigCACIDKAIAEYaAgIAAACADQQRqKAIAIgRFDQAgAiAEIANBCGooAgAQt4WAgAALIABBIEEEELeFgIAAC1IBA38CQCAAKAIEIgJFDQAgAiAAQQhqKAIAIgMoAgARhoCAgAAAIANBBGooAgAiBEUNACACIAQgA0EIaigCABC3hYCAAAsgAEEYQQQQt4WAgAALNQACQCABQvCMg5eI0fONE1ENACAAQRhqKAIAIgAgASAAKAIAKAIQEYmAgIAAAA8LIABBDGoL+gEBBH8CQCABQvCMg5eI0fONE1ENACAAQRhqKAIAIQICQCAAKAIEIgNFDQAgAyAAQQhqKAIAIgQoAgARhoCAgAAAIARBBGooAgAiBUUNACADIAUgBEEIaigCABC3hYCAAAsCQCAAQRBqKAIAIgNFDQAgACgCDCADQQEQt4WAgAALIABBHEEEELeFgIAAIAIgASACKAIAKAIUEYqAgIAAAA8LAkAgACgCBCICRQ0AIAIgAEEIaigCACIDKAIAEYaAgIAAACADQQRqKAIAIgRFDQAgAiAEIANBCGooAgAQt4WAgAALIABBGGoQkY2AgAAgAEEcQQQQt4WAgAALdwEBfyOAgICAAEEQayICJICAgIAAIAIgAUH0mcOAAEEFEPaQgIAAIAIgADYCDCACQfmZw4AAQQMgAkEMakH8mcOAABDKkICAAEGMmsOAAEEGIABBDGpBlJrDgAAQypCAgAAQ3ZCAgAAhACACQRBqJICAgIAAIAALFwAgACgCACAAQQhqKAIAIAEQhZGAgAALSAEBfyOAgICAAEEQayICJICAgIAAIAJBCGogASgCDBCcjYCAACACKAIMIQEgACACKAIINgIAIAAgATYCBCACQRBqJICAgIAACwwAIAAgARCdjYCAAAsMACAAIAEQnY2AgAALDAAgACABEJ2NgIAACwwAIAAgARCdjYCAAAtHAQF/I4CAgIAAQRBrIgIkgICAgAAgAkEIaiAAEJyNgIAAIAIoAgggASACKAIMKAIQEYiAgIAAACEAIAJBEGokgICAgAAgAAtHAQF/I4CAgIAAQRBrIgIkgICAgAAgAkEIaiAAEJyNgIAAIAIoAgggASACKAIMKAIQEYiAgIAAACEAIAJBEGokgICAgAAgAAtHAQF/I4CAgIAAQRBrIgIkgICAgAAgAkEIaiAAEJyNgIAAIAIoAgggASACKAIMKAIQEYiAgIAAACEAIAJBEGokgICAgAAgAAtHAQF/I4CAgIAAQRBrIgIkgICAgAAgAkEIaiAAEJyNgIAAIAIoAgggASACKAIMKAIQEYiAgIAAACEAIAJBEGokgICAgAAgAAsMACAAIAEQt42AgAALFwAgACgCACAAQQhqKAIAIAEQgpGAgAALDAAgACABEOOMgIAACwwAIAAgARCgkYCAAAsXACAAKAIAIABBCGooAgAgARCFkYCAAAsMACAAIAEQ44yAgAALDAAgACABELiNgIAACwwAIAAgARC9kICAAAu4AgMBfwF+A38jgICAgABBgAFrIgMkgICAgAAgA0HgAGogASACEKORgIAAAkACQAJAAkACQAJAIAMtAGANACADKQNoIQQMAQsgAy0AYSEFAkACQCACDQBBASEGDAELIAJBf0oiB0UNBCACIAcQtoWAgAAiBkUNBQsgAyACNgJ0IAMgBjYCcCAGIAEgAhC8kYCAABogAyACNgJ4IANBCGogA0HwAGogBRCziYCAACADLQAIIgJB2wBHDQEgAykDECEECyAAQdsAOgAAIAAgBDcDCAwBCyAAIAMoAAk2AAEgAEEEaiADKAAMNgAAIAMpAxAhBCAAQRBqIANBCGpBEGpByAAQvJGAgAAaIAAgBDcDCCAAIAI6AAALIANBgAFqJICAgIAADwsQqZCAgAAACyACIAcQqJCAgAAAC2YBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJBvJPDgAA2AgAgAkGPgICAADYCHCACIAA2AhggAiACQRhqNgIQIAEgAhDykICAACEAIAJBIGokgICAgAAgAAsXACAAKAIAIABBCGooAgAgARCFkYCAAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQaSaw4AANgIAIAJBnYOAgAA2AhwgAkHEnMOAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJBpJrDgAA2AgAgAkGdg4CAADYCHCACQaScw4AANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAEL3gEBAX8jgICAgABBMGsiAiSAgICAAAJAAkAgACgCACIALQAADQAgAiAAQQFqNgIMIAJBJGpBATYCACACQgE3AhQgAkGkmsOAADYCECACQbWEgIAANgIsIAIgAkEoajYCICACIAJBDGo2AiggASACQRBqEPKQgIAAIQAMAQsgAiAAQQFqNgIMIAJBJGpBATYCACACQgE3AhQgAkGkmsOAADYCECACQbaEgIAANgIsIAIgAkEoajYCICACIAJBDGo2AiggASACQRBqEPKQgIAAIQALIAJBMGokgICAgAAgAAsCAAuWAQEBfyOAgICAAEEwayICJICAgIAAIAJBHGpBATYCACACQgE3AgwgAkGkmsOAADYCCCACQZ2DgIAANgIkIAIgAC0AAEECdCIAQcicw4AAaigCADYCLCACIABB2JzDgABqKAIANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQAgAkEwaiSAgICAACAAC6YKAQd/I4CAgIAAQbABayICJICAgIAAAkACQCABQgBSDQAgAEEBOgALDAELIAJByABqIAFCABD5jICAAAJAAkACQAJAAkACQAJAIAItAGhBAkYNACACQQE6AHMgAiACQfMAajYCdCACQbeEgIAANgKkASACIAJB9ABqNgKgASACQQE2ApwBIAJCATcCjAEgAkGkncOAADYCiAEgAiACQaABajYCmAEgAkH4AGogAkGIAWoQrZCAgAAgAkGgAWpBCGoiAyACQfgAakEIaigCADYCACACIAIpA3g3A6ABIAJBCGogAkGgAWpBgKHDgABBkJ7DgAAQko2AgAAgAigCDCEEIAIoAgghBSACQYgBakEIaiIGIAMoAgA2AgAgAiACKQOgATcDiAFBGEEEELaFgIAAIgNFDQEgAyAFNgIEIANB2KDDgAA2AgAgAyACKQOIATcCDCADIAQ2AgggA0EUaiAGKAIANgIAIAItAHMhBAwGCyACQcAAakEEaiIFIAJB0QBqIgYvAAA7AQAgAiACKABNNgJAIAItAEwhBCACKAJIIQMgAi0AUw0FIAIoAlQhByACQThqQQRqIAUvAQAiBTsBACACIAIoAkAiCDYCOCAGIAU7AAAgAiAEOgBMIAIgAzYCSCACIAg2AE0gAiAHNgJUIAJBADoAUyACQRhqIAJByABqEJqMgIAAAkAgAi0AGEHCAEYNACACQcgAakEYaiACQRhqQRhqKQMANwMAIAJByABqQRBqIAJBGGpBEGopAwA3AwAgAkHIAGpBCGogAkEYakEIaikDADcDACACIAIpAxg3A0ggAkEBOgA4IAIgAkE4ajYCQCACQbeEgIAANgKkASACIAJBwABqNgKgASACQQE2ApwBIAJCATcCjAEgAkGkncOAADYCiAEgAiACQaABajYCmAEgAkH4AGogAkGIAWoQrZCAgAAgAkGgAWpBCGoiAyACQfgAakEIaigCADYCACACIAIpA3g3A6ABIAIgAkGgAWpBgKHDgABBkJ7DgAAQko2AgAAgAigCBCEEIAIoAgAhBSACQYgBakEIaiIGIAMoAgA2AgAgAiACKQOgATcDiAFBGEEEELaFgIAAIgNFDQIgAyAFNgIEIANB2KDDgAA2AgAgAyACKQOIATcCDCADIAQ2AgggA0EUaiAGKAIANgIAIAItADghBAJAAkACQAJAAkACQAJAAkACQCACLQBIQX9qDigADQECAw0NDQQNDQ0NDQ0NDQ0NDQ0NDQ0FDQ0NDQ0NDQ0NDQ0GBw0IDQsgAkHIAGpBBHIhBQwLCyACQcgAakEEciEFDAoLIAJByABqQQRyIQUMCQsgAkHIAGpBBHIhBQwICyACQcgAakEEciEFDAcLIAJByABqQQRyIQUMBgsgAkHIAGpBBHIhBQwFCyACQcgAakEEciEFDAQLIAJByABqQQRyIQUMAwsgAkEUaiIFIAJBJWovAAA7AQAgAiACKAAhNgIQIAJBIGotAAAhBCACKAIcIQMgAkEnai0AAA0EIAAgAigCEDYABSAAQQlqIAUvAQA7AAAgAEEAOgALIAAgBDoABCAAIAM2AgAMBgtBGEEEEKiQgIAAAAtBGEEEEKiQgIAAAAsgBUEEaigCACIFRQ0AIAIoAkwgBUEBELeFgIAACyACQeAAahCRjYCAAAsgAEECOgALIAAgAzYCACAAIARBAXE6AAQMAQsgAEECOgALIAAgAzYCACAAIARBAXE6AAQLIAJBsAFqJICAgIAAC8ACAwF/AX4BfyOAgICAAEHQAGsiASSAgICAAEIAIQICQAJAAkAgAC0ACw0AIAFBADoAGyABIAApAgA3AxAgASAAQQdqIgMoAAA2ABcgAUEAOgA7IAEgAygAADYANyABIAApAgA3AzAgAUEgaiABQTBqEJWMgIAAIAFBMGpBCGogAUEgakEIaikDADcDACABIAEpAyA3AzAgASABQTBqEPuMgIAAIAFBCGopAwAiAkIAUw0BIAJQRQ0CIAEpAwAhAgsgAUHQAGokgICAgAAgAg8LIAFBxABqQQE2AgAgAUICNwI0IAFB5JrDgAA2AjAgAUG4hICAADYCTCABIAFByABqNgJAIAEgAUEQajYCSCABQTBqQZCbw4AAELaQgIAAAAtBoJvDgABBFSABQTBqQbibw4AAQcibw4AAENqQgIAAAAscACAAIAEpAgA3AgAgAEEIaiABQQhqKAIANgIAC6QCAQN/I4CAgIAAQTBrIgIkgICAgAAgAC0ACyEDAkBBC0EBELaFgIAAIgRFDQAgBEEHakEAKAD7m8OAADYAACAEQQApAPSbw4AANwAAAkACQCADQf8BcUUNACACQouAgICwATcCJCACIAQ2AiAMAQsgAkEAOgALIAIgACkCADcDACACIABBB2ooAAA2AAcgAkEgaiACEJuMgIAAIARBC0EBELeFgIAACyACQRRqQQE2AgAgAkG5hICAADYCHCACQgI3AgQgAkHkm8OAADYCACACIAJBIGo2AhggAiACQRhqNgIQIAEgAhDykICAACEEAkAgAigCJCIARQ0AIAIoAiAgAEEBELeFgIAACyACQTBqJICAgIAAIAQPC0ELQQEQqJCAgAAACxwAIAAgASkCADcCACAAQQhqIAFBCGooAgA2AgALDAAgACABEJCNgIAACwwAIAAgARCQjYCAAAvDAQEBfwJAAkAgAkUNAAJAAkACQAJAAkAgAUEASA0AIAMoAghFDQIgAygCBCIEDQEgAQ0DIAIhAwwECyAAQQhqQQA2AgAMBQsgAygCACAEIAIgARC4hYCAACEDDAILIAENACACIQMMAQsgASACELaFgIAAIQMLAkAgA0UNACAAIAM2AgQgAEEIaiABNgIAIABBADYCAA8LIAAgATYCBCAAQQhqIAI2AgAMAQsgACABNgIEIABBCGpBADYCAAsgAEEBNgIAC/YBAQN/I4CAgIAAQSBrIgMkgICAgAACQAJAIAEgAmoiAiABSQ0AIABBBGooAgAiAUEBdCIEIAIgBCACSxsiAkEEIAJBBEsbIgJBA3QhBCACQYCAgIABSUECdCEFAkACQCABRQ0AIANBBDYCGCADIAFBA3Q2AhQgAyAAKAIANgIQDAELIANBADYCGAsgAyAEIAUgA0EQahCgi4CAACADKAIEIQECQCADKAIADQAgACABNgIAIABBBGogAjYCAAwCCyADQQhqKAIAIgBBgYCAgHhGDQEgAEUNACABIAAQqJCAgAAACxCpkICAAAALIANBIGokgICAgAAL6AEBAn8jgICAgABBIGsiAySAgICAAAJAAkAgASACaiICIAFJDQAgAEEEaigCACIBQQF0IgQgAiAEIAJLGyICQQggAkEISxsiAkF/c0EfdiEEAkACQCABRQ0AIANBATYCGCADIAE2AhQgAyAAKAIANgIQDAELIANBADYCGAsgAyACIAQgA0EQahCgi4CAACADKAIEIQECQCADKAIADQAgACABNgIAIABBBGogAjYCAAwCCyADQQhqKAIAIgBBgYCAgHhGDQEgAEUNACABIAAQqJCAgAAACxCpkICAAAALIANBIGokgICAgAALPAACQAJAIAEQ9JCAgAANACABEPWQgIAADQEgACABEJuRgIAADwsgACABEKiRgIAADwsgACABEKmRgIAACwIACxAAIABCADcDCCAAQgA3AwALEAAgACACNwMIIAAgATcDAAtzAQF/I4CAgIAAQRBrIgIkgICAgAAgAkEIaiABQeycw4AAQQYQ9pCAgAAgAkEIakHynMOAAEEIIABB/JzDgAAQypCAgABBjJ3DgABBBiAAQQhqQfycw4AAEMqQgIAAEN2QgIAAIQAgAkEQaiSAgICAACAAC4EBAQF/I4CAgIAAQTBrIgIkgICAgAAgAkEsakGPgICAADYCACACQRxqQQI2AgAgAkICNwIMIAJBlJ3DgAA2AgggAkGPgICAADYCJCACIAA2AiAgAiAAQQhqNgIoIAIgAkEgajYCGCABIAJBCGoQ8pCAgAAhACACQTBqJICAgIAAIAALAgALIwEBfwJAIABBBGooAgAiAUUNACAAKAIAIAFBARC3hYCAAAsLYAEDfwJAIAAoAgAiASgCACICRQ0AIAFBBGooAgAiA0UNACACIANBARC3hYCAAAsCQCABQRBqKAIAIgJFDQAgASgCDCACQQR0QQQQt4WAgAALIAAoAgBBGEEEELeFgIAACzUBAX8CQCAAKAIADQAgAEEIaigCACIBRQ0AIAAoAgQgAUEBELeFgIAACyAAQRBqEJGNgIAAC+sDAwh/AX4FfwJAAkAgBUF/aiIHIAEoAhQiCGoiCSADTw0AQQAgASgCCCIKayELIAUgASgCECIMayENIAEoAhwhDiABKQMAIQ8DQAJAAkACQAJAIA8gAiAJajEAAIhCAYNQDQAgCiAKIA4gCiAOSxsgBhsiECAFIBAgBUsbIREgAiAIaiESIBAhCQJAA0ACQCARIAlHDQBBACAOIAYbIRMgCiEJAkACQAJAA0ACQCATIAlJDQAgASAIIAVqIgk2AhQgBkUNAgwOCyAJQX9qIgkg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QRBqKQIANwMAIAJBIGpBCGogAUEIaikCADcDACACIAEpAgA3AyAgAkEYaiACQSBqELCLgIAAAkACQAJAIAIoAhgiAQ0AIABBADYCCCAAQgQ3AgAMAQsgAigCHCEDQSBBBBC2hYCAACIERQ0BIAQgATYCACAEIAM2AgQgAkKEgICAEDcCTCACIAQ2AkggAkHYAGpBIGogAkEgakEgaikDADcDACACQdgAakEYaiACQSBqQRhqKQMANwMAIAJB2ABqQRBqIAJBIGpBEGopAwA3AwAgAkHYAGpBCGogAkEgakEIaikDADcDACACIAIpAyA3A1ggAkEQaiACQdgAahCwi4CAAAJAIAIoAhAiBUUNACACKAIUIQZBDCEDQQEhAQNAAkAgASACKAJMRw0AIAJByABqIAFBARChi4CAACACKAJIIQQLIAQgA2oiByAGNgIAIAdBfGogBTYCACACIAFBAWoiATYCUCADQQhqIQMgAkEIaiACQdgAahCwi4CAACACKAIMIQYgAigCCCIFDQALCyAAIAIpA0g3AgAgAEEIaiACQcgAakEIaigCADYCAAsgAkGAAWokgICAgAAPC0EgQQQQqJCAgAAAC20BAn8CQCAAKAIEIgFFDQAgASAAQQhqIgIoAgAoAgARhoCAgAAAIAIoAgAiAUEEaigCACICRQ0AIAAoAgQgAiABQQhqKAIAELeFgIAACwJAIABBEGooAgAiAUUNACAAKAIMIAFBARC3hYCAAAsLIwEBfwJAIABBBGooAgAiAUUNACAAKAIAIAFBARC3hYCAAAsLFAAgAEEoNgIEIABB6KPDgAA2AgALWwEBfyOAgICAAEEQayICJICAgIAAIAJBCGogARCcjYCAACACIAIoAgggAigCDCgCGBGEgICAAAAgAigCBCEBIAAgAigCADYCACAAIAE2AgQgAkEQaiSAgICAAAsCAAsMAELD4+r6lveimWkLFwAgAEGgpMOAADYCBCAAIAFBDGo2AgALFwAgAEGgpMOAADYCBCAAIAFBDGo2AgALcQEDfwJAIAAoAgQiAUUNACABIABBCGooAgAiAigCABGGgICAAAAgAkEEaigCACIDRQ0AIAEgAyACQQhqKAIAELeFgIAACwJAIABBEGooAgAiAUUNACAAKAIMIAFBARC3hYCAAAsgAEEYQQQQt4WAgAALFAAgAEHcpMOAADYCBCAAIAE2AgALFwAgAEEMakEAIAFC8IyDl4jR840TURsLUgEDfwJAIAAoAgQiAkUNACACIABBCGooAgAiAygCABGGgICAAAAgA0EEaigCACIERQ0AIAIgBCADQQhqKAIAELeFgIAACyAAQRhBBBC3hYCAAAsMACAAIAEQnY2AgAALRwEBfyOAgICAAEEQayICJICAgIAAIAJBCGogABCcjYCAACACKAIIIAEgAigCDCgCEBGIgICAAAAhACACQRBqJICAgIAAIAALnQEBA38jgICAgABBMGsiAiSAgICAAEEAIQMCQANAIAIgACADajYCDCACQQE2AiQgAkEBNgIcIAJBkKXDgAA2AhggAkEBNgIUIAJBiKXDgAA2AhAgAkHthICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACIEDQEgA0EBaiIDQRRHDQALCyACQTBqJICAgIAAIAQLFAAgAEEoNgIEIABBsKXDgAA2AgALCQAgAEEANgIACwIACw0AQrPw+6Kz78vh/wALFwAgACgCACAAQQhqKAIAIAEQgpGAgAALFwAgACgCACAAQQhqKAIAIAEQhZGAgAALmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJB7KjDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB2KXDgAA2AgAgAkHuhICAADYCHCACQcy1w4AANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJB5KvDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQbSnw4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkHMp8OAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJBnKrDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQdCtw4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQdilw4AANgIAIAJB7oSAgAA2AhwgAkG8tsOAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQbS0w4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkGoq8OAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJBzLDDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQdysw4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkG8rMOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJBxLPDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQZCww4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQvNAQEBfyOAgICAAEHQAGsiAiSAgICAACAAKAIAIQAgAkEIakEUakEBNgIAIAJBKGpBFGpBAjYCACACQcwAakHvhICAADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJCAzcCLCACQYC0w4AANgIoIAIgAEEIajYCSCACQe+EgIAANgJEIAIgADYCQCACIAJBIGo2AhggAiACQShqNgIgIAIgAkHAAGo2AjggASACQQhqEPKQgIAAIQAgAkHQAGokgICAgAAgAAubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkG0qsOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJBkKvDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQfysw4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQdilw4AANgIAIAJB7oSAgAA2AhwgAkGAtsOAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQcyow4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkH0pcOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJB4LLDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQcSrw4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkHYscOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJBpKnDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQdilw4AANgIAIAJBgYCAgAA2AhwgAkIBNwIkIAJBzK/DgAA2AiAgAkHwhICAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAsXACAAKAIAIABBCGooAgAgARCFkYCAAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQdilw4AANgIAIAJB7oSAgAA2AhwgAkHwtsOAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQdilw4AANgIAIAJBgYCAgAA2AhwgAkIBNwIkIAJB9KbDgAA2AiAgAkHwhICAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAsPACAAKAIAIAEQ5ouAgAAL3y4BAX8jgICAgABBMGsiAiSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAtAAAOQgABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQQALIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkHxhICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADEELIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkHyhICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADEALIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkHzhICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADD8LIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkH0hICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADD4LIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkH1hICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADD0LIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkH2hICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDwLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkH3hICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDsLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkH4hICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDoLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkH5hICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDkLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkH6hICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDgLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkH7hICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDcLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkH8hICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDYLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkH9hICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDULIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkH+hICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDQLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkH/hICAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDMLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGAhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDILIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGBhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDELIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGChYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADDALIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGDhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADC8LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGEhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADC4LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGFhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADC0LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGGhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCwLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGHhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCsLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGIhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCoLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGJhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCkLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGKhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCgLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGLhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCcLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGMhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCYLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGNhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCULIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGOhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCQLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGPhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCMLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGQhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCILIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGRhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCELIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGShYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADCALIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGThYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADB8LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGUhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADB4LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGVhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADB0LIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGWhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBwLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGXhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBsLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGYhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBoLIAIgAEEEajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGZhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBkLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGahYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBgLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGbhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBcLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGchYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBYLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGdhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBULIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGehYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBQLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGfhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBMLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGghYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBILIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGhhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBELIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGihYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADBALIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGjhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADA8LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGkhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADA4LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGlhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADA0LIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGmhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAwLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGnhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAsLIAIgAEEIajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGohYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAoLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGphYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAkLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGqhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAgLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGrhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAcLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGshYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAYLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGthYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAULIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGuhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAQLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGvhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAMLIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGwhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAILIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGxhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEADAELIAIgAEEBajYCDCACQSRqQQE2AgAgAkIBNwIUIAJB2KXDgAA2AhAgAkGyhYCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEACyACQTBqJICAgIAAIAALrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB2KXDgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkHkp8OAADYCICACQfCEgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQbCow4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkGUscOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJBmKjDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQZStw4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkHsrcOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB2KXDgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkHkrsOAADYCICACQfCEgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQdilw4AANgIAIAJBgYCAgAA2AhwgAkIBNwIkIAJB/K7DgAA2AiAgAkHwhICAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkGsssOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJBoKzDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQbS1w4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQu6AQEBfyOAgICAAEHQAGsiAiSAgICAACACIAAoAgA2AgwgAkEQakEUakEBNgIAIAJBMGpBFGpBATYCACACQgE3AhQgAkHYpcOAADYCECACQYGAgIAANgIsIAJCATcCNCACQYymw4AANgIwIAJB8oSAgAA2AkwgAiACQShqNgIgIAIgAkEwajYCKCACIAJByABqNgJAIAIgAkEMajYCSCABIAJBEGoQ8pCAgAAhACACQdAAaiSAgICAACAAC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQfCvw4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkGQp8OAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELrQEBAX8jgICAgABBwABrIgIkgICAgAAgACgCACEAIAJBFGpBATYCACACQSBqQRRqQQE2AgAgAkIBNwIEIAJB2KXDgAA2AgAgAkGBgICAADYCHCACQgE3AiQgAkHcpsOAADYCICACQfCEgIAANgI8IAIgADYCOCACIAJBGGo2AhAgAiACQSBqNgIYIAIgAkE4ajYCMCABIAIQ8pCAgAAhACACQcAAaiSAgICAACAAC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQaiww4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkGwr8OAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJBjK7DgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQaiuw4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkH4qcOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJBtK3DgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB2KXDgAA2AgAgAkHuhICAADYCHCACQZy3w4AANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJBjLLDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQYCow4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQutAQEBfyOAgICAAEHAAGsiAiSAgICAACAAKAIAIQAgAkEUakEBNgIAIAJBIGpBFGpBATYCACACQgE3AgQgAkHYpcOAADYCACACQYGAgIAANgIcIAJCATcCJCACQbymw4AANgIgIAJB8ISAgAA2AjwgAiAANgI4IAIgAkEYajYCECACIAJBIGo2AhggAiACQThqNgIwIAEgAhDykICAACEAIAJBwABqJICAgIAAIAALmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJBlLPDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC60BAQF/I4CAgIAAQcAAayICJICAgIAAIAAoAgAhACACQRRqQQE2AgAgAkEgakEUakEBNgIAIAJCATcCBCACQdilw4AANgIAIAJBgYCAgAA2AhwgAkICNwIkIAJB8LTDgAA2AiAgAkGzhYCAADYCPCACIAA2AjggAiACQRhqNgIQIAIgAkEgajYCGCACIAJBOGo2AjAgASACEPKQgIAAIQAgAkHAAGokgICAgAAgAAtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQdilw4AANgIAIAJB7oSAgAA2AhwgAkHUqcOAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQeyqw4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkGUtcOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHYpcOAADYCACACQe6EgIAANgIcIAJBwLfDgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkHIrsOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJBuLHDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABC5sBAQF/I4CAgIAAQcAAayICJICAgIAAIAJBCGpBFGpBATYCACACQShqQRRqQQA2AgAgAkIBNwIMIAJB2KXDgAA2AgggAkGBgICAADYCJCACQdilw4AANgI4IAJCATcCLCACQaCmw4AANgIoIAIgAkEgajYCGCACIAJBKGo2AiAgASACQQhqEPKQgIAAIQEgAkHAAGokgICAgAAgAQubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkHwsMOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAELmwEBAX8jgICAgABBwABrIgIkgICAgAAgAkEIakEUakEBNgIAIAJBKGpBFGpBADYCACACQgE3AgwgAkHYpcOAADYCCCACQYGAgIAANgIkIAJB2KXDgAA2AjggAkIBNwIsIAJB8LHDgAA2AiggAiACQSBqNgIYIAIgAkEoajYCICABIAJBCGoQ8pCAgAAhASACQcAAaiSAgICAACABCw8AIABBGGogARCQjYCAAAubAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQRRqQQE2AgAgAkEoakEUakEANgIAIAJCATcCDCACQdilw4AANgIIIAJBgYCAgAA2AiQgAkHYpcOAADYCOCACQgE3AiwgAkGErMOAADYCKCACIAJBIGo2AhggAiACQShqNgIgIAEgAkEIahDykICAACEBIAJBwABqJICAgIAAIAEL5gIBBX8jgICAgABB4ABrIgEkgICAgAAgAUEGOgAIIAEgAUEIajYCJCABQbSFgIAANgJUIAEgAUEkajYCUCABQQE2AkwgAUIBNwI8IAFB9LfDgAA2AjggASABQdAAajYCSCABQShqIAFBOGoQrZCAgAAgAUHQAGpBCGoiAiABQShqQQhqKAIANgIAIAEgASkDKDcDUCABIAFB0ABqQZi5w4AAQeC4w4AAEJKNgIAAIAEoAgQhAyABKAIAIQQgAUE4akEIaiIFIAIoAgA2AgAgASABKQNQNwM4AkBBGEEEELaFgIAAIgINAEEYQQQQqJCAgAAACyACIAQ2AgQgAkHwuMOAADYCACACIAEpAzg3AgwgAiADNgIIIAJBFGogBSgCADYCACAAQRBqIAFBCGpBEGopAwA3AwAgAEEIaiABQQhqQQhqKQMANwMAIAAgASkDCDcDACAAIAI2AhggAUHgAGokgICAgAAL5gIBBX8jgICAgABB4ABrIgEkgICAgAAgAUEUOgAIIAEgAUEIajYCJCABQbSFgIAANgJUIAEgAUEkajYCUCABQQE2AkwgAUIBNwI8IAFB9LfDgAA2AjggASABQdAAajYCSCABQShqIAFBOGoQrZCAgAAgAUHQAGpBCGoiAiABQShqQQhqKAIANgIAIAEgASkDKDcDUCABIAFB0ABqQZi5w4AAQeC4w4AAEJKNgIAAIAEoAgQhAyABKAIAIQQgAUE4akEIaiIFIAIoAgA2AgAgASABKQNQNwM4AkBBGEEEELaFgIAAIgINAEEYQQQQqJCAgAAACyACIAQ2AgQgAkHwuMOAADYCACACIAEpAzg3AgwgAiADNgIIIAJBFGogBSgCADYCACAAQRBqIAFBCGpBEGopAwA3AwAgAEEIaiABQQhqQQhqKQMANwMAIAAgASkDCDcDACAAIAI2AhggAUHgAGokgICAgAAL5gIBBX8jgICAgABB4ABrIgEkgICAgAAgAUEVOgAIIAEgAUEIajYCJCABQbSFgIAANgJUIAEgAUEkajYCUCABQQE2AkwgAUIBNwI8IAFB9LfDgAA2AjggASABQdAAajYCSCABQShqIAFBOGoQrZCAgAAgAUHQAGpBCGoiAiABQShqQQhqKAIANgIAIAEgASkDKDcDUCABIAFB0ABqQZi5w4AAQeC4w4AAEJKNgIAAIAEoAgQhAyABKAIAIQQgAUE4akEIaiIFIAIoAgA2AgAgASABKQNQNwM4AkBBGEEEELaFgIAAIgINAEEYQQQQqJCAgAAACyACIAQ2AgQgAkHwuMOAADYCACACIAEpAzg3AgwgAiADNgIIIAJBFGogBSgCADYCACAAQRBqIAFBCGpBEGopAwA3AwAgAEEIaiABQQhqQQhqKQMANwMAIAAgASkDCDcDACAAIAI2AhggAUHgAGokgICAgAALAgALRgEBfyOAgICAAEEQayICJICAgIAAIAIgADYCDCABQdi3w4AAQQUgAkEMakHIt8OAABD9kICAACEAIAJBEGokgICAgAAgAAtDACAAKAIAIQACQCABEPSQgIAADQACQCABEPWQgIAADQAgACABEJuRgIAADwsgACABEKmRgIAADwsgACABEKiRgIAACxQAIAAoAgAgACgCBCABEIWRgIAACw8AIAAoAgAgARCXkYCAAAtEAQF/I4CAgIAAQRBrIgIkgICAgAAgAkEIaiABQQhqKAIANgIAIAIgASkCADcDACAAIAIQiY2AgAAgAkEQaiSAgICAAAsCAAvkAgMBfwF+An8jgICAgABB0ABrIgMkgICAgAACQAJAAkAgAkH/k+vcA0sNACADIAEgAUI/h0KAlOvcA0IAELuRgIAAIANBEGogAykDACIBIAKtfCIEIANBCGopAwAgBCABVK18EPmMgIAAIAMtADBBAkYNASAAEI+MgIAADAILIAAQjoyAgAAMAQsgA0HAAGpBCGogA0EQakEIaikDADcDACADIAMpAxA3A0ACQCADQcAAahD+jICAAEF/akGPzgBJDQAgABCNjICAAAwBCyADQcAAakEIaiICIANBEGpBCGoiBSkDADcDACADIAMpAxA3A0AgA0HAAGoQ/IyAgAAhBiACIAUpAwA3AwAgAyADKQMQNwNAIANBOGogA0HAAGoQ/YyAgAAgA0HAAGogBiADQThqEIiNgIAAIABBDGogAigCADYCACAAIAMpA0A3AgQgAEHCADoAAAsgA0HQAGokgICAgAALrAEBAX8jgICAgABBIGsiAySAgICAAAJAAkACQCACQX9KDQAgAxCOjICAACADLQAAIgJBwgBHDQEgAygCBCECCyAAIAEgAhCXjICAAAwBCyAAIAMvAAE7AAEgACADKQMINwMIIABBA2ogAy0AAzoAACAAQRBqIANBEGopAwA3AwAgAEEYaiADQRhqKQMANwMAIAAgAygCBDYCBCAAIAI6AAALIANBIGokgICAgAALnwECAn8BfiOAgICAAEEgayICJICAgIAAIAJBEGpBCGoiAyABQQhqKAIANgIAIAIgASkCADcDECACIAJBEGoQiY2AgAAgAyACQQhqIgEpAwA3AwAgAiACKQMANwMQIAJBEGoQ+oyAgAAhBCADIAEpAwA3AwAgAiACKQMANwMQIAAgAkEQahCEjYCAADYCCCAAIAQ3AwAgAkEgaiSAgICAAAuIAgEDfyOAgICAAEEwayICJICAgIAAIAJBIGpBCGoiAyABQQhqKQIANwMAIAIgASkCADcDICACQQhqIAJBIGpBABD3jICAACADIAJBCGpBCGoiASkDADcDACACIAIpAwg3AyACQAJAIAJBIGoQ/oyAgABBf2pBj84ASQ0AIAAQjYyAgAAMAQsg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QRBqKAIAIgFPDQAgACACIAEQsYyAgAAgACgCCCECCyAAKAIAIAJqIAQgARC8kYCAABogACACIAFqNgIIIANBIGokgICAgABBAA8LIAMgAykCDDcDGEHwz8OAAEErIANBGGpBnNDDgABBrNDDgAAQ2pCAgAAAC8MBAQF/AkACQCACRQ0AAkACQAJAAkACQCABQQBIDQAgAygCCEUNAiADKAIEIgQNASABDQMgAiEDDAQLIABBCGpBADYCAAwFCyADKAIAIAQgAiABELiFgIAAIQMMAgsgAQ0AIAIhAwwBCyABIAIQtoWAgAAhAwsCQCADRQ0AIAAgAzYCBCAAQQhqIAE2AgAgAEEANgIADwsgACABNgIEIABBCGogAjYCAAwBCyAAIAE2AgQgAEEIakEANgIACyAAQQE2AgAL7gEBAn8jgICAgABBIGsiAySAgICAAAJAAkAgASACaiICIAFJDQAgAEEEaigCACIBQQF0IgQgAiAEIAJLGyICQQggAkEISxsiAkF/c0EfdiEEAkACQCABRQ0AIAMgACgCADYCECADIAE2AhQgAyABQX9zQR92NgIYDAELIANBADYCGAsgAyACIAQgA0EQahCwjICAACADKAIEIQECQCADKAIADQAgACABNgIAIABBBGogAjYCAAwCCyADQQhqKAIAIgBBgYCAgHhGDQEgAEUNACABIAAQqJCAgAAACxCpkICAAAALIANBIGokgICAgAALDwAgACgCACABELiNgIAACw8AIAAoAgAgARC6jYCAAAsCAAvhCQEDfyOAgICAAEGQAWsiAiSAgICAAAJAAkBBFEEBELaFgIAAIgNFDQAgAEIUNwIEIAAgAzYCACACQSBqQQhqIgMgAUEIaikCADcDACACIAEpAgA3AyAgAkEIaiACQSBqQQAQ94yAgAAgAyACQQhqQQhqIgQpAwA3AwAgAiACKQMINwMgAkACQCACQSBqEISNgIAAIgENACADIAQpAwA3AwAgAiACKQMINwMgIAIgAkEgahD+jICAADYCYCADIAQpAwA3AwAgAiACKQMINwMgIAIgAkEgahD/jICAADoAaSADIAQpAwA3AwAgAiACKQMINwMgIAIgAkEgahCAjYCAADoAaiADIAQpAwA3AwAgAiACKQMINwMgIAIgAkEgahCBjYCAADoAayADIAQpAwA3AwAgAiACKQMINwMgIAIgAkEgahCCjYCAADoAGCACQfAAakEIaiAEKQMANwMAIAIgAikDCDcDcCACQfAAahCDjYCAACEBIAJBzABqQcGFgIAANgIAIAJBxABqQcGFgIAANgIAIAJBPGpBwYWAgAA2AgAgAkE0akHBhYCAADYCACACQSxqQcGFgIAANgIAIAIgAToAHCACQbWCgIAANgIkIAIgAkEcajYCSCACIAJBGGo2AkAgAiACQesAajYCOCACIAJB6gBqNgIwIAIgAkHpAGo2AiggAiACQeAAajYCICACIAA2AmwgAkEGNgKEASACQQY2AnwgAkHU1MOAADYCeCACQQc2AnQgAkGc1MOAADYCcCACIAJBIGo2AoABIAJB7ABqQaDcw4AAIAJB8ABqEMKQgIAADQEMAwtBCSEDAkAgAUEKcA0AQQkhAwNAIANBf2ohAyABQQpuIgFBCnBFDQALCyACIAE2AhggAiADNgIcIAJBIGpBCGoiASACQQhqQQhqIgMpAwA3AwAgAiACKQMINwMgIAIgAkEgahD+jICAADYCYCABIAMpAwA3AwAgAiACKQMINwMgIAIgAkEgahD/jICAADoAZyABIAMpAwA3AwAgAiACKQMINwMgIAIgAkEgahCAjYCAADoAaCABIAMpAwA3AwAgAiACKQMINwMgIAIgAkEgahCBjYCAADoAaSABIAMpAwA3AwAgAiACKQMINwMgIAIgAkEgahCCjYCAADoAaiABIAMpAwA3AwAgAiACKQMINwMgIAIgAkEgahCDjYCAADoAayACIAJBHGoQ7ZCAgAAgAkHUAGpBgoCAgAA2AgAgAkHMAGpBwYWAgAA2AgAgAkHEAGpBwYWAgAA2AgAgAkE8akHBhYCAADYCACACQTRqQcGFgIAANgIAIAJBLGpBwYWAgAA2AgAgAkG1goCAADYCJCACIAIpAwA3A1ggAiACQRhqNgJQIAIgAkHrAGo2AkggAiACQeoAajYCQCACIAJB6QBqNgI4IAIgAkHoAGo2AjAgAiACQecAajYCKCACIAJB4ABqNgIgIAIgADYCbCACQQg2AoQBIAJBBzYCfCACQbzSw4AANgJ4IAJBCDYCdCACQfzRw4AANgJwIAIgAkEgajYCgAEgAkHsAGpBoNzDgAAgAkHwAGoQwpCAgABFDQILQbzQw4AAQSsgAkGIAWpB6NDDgABB5NHDgAAQ2pCAgAAAC0EUQQEQqJCAgAAACyACQZABaiSAgICAAAttAQJ/AkAgACgCBCIBRQ0AIAEgAEEIaiICKAIAKAIAEYaAgIAAACACKAIAIgFBBGooAgAiAkUNACAAKAIEIAIgAUEIaigCABC3hYCAAAsCQCAAQRBqKAIAIgFFDQAgACgCDCABQQEQt4WAgAALC3gBAn8CQCAAKAIEIgFFDQAgASAAQQhqIgIoAgAoAgARhoCAgAAAIAIoAgAiAUEEaigCACICRQ0AIAAoAgQgAiABQQhqKAIAELeFgIAACwJAIABBEGooAgAiAUUNACAAKAIMIAFBARC3hYCAAAsgAEEYahCRjYCAAAsCAAsKACAAEJGNgIAACyMBAX8CQCAAQQRqKAIAIgFFDQAgACgCACABQQEQt4WAgAALCy4BAX8CQCAAQQRqKAIAIgFFDQAgACgCACABQQEQt4WAgAALIABBDGoQkY2AgAALFAAgAEEoNgIEIABBlNbDgAA2AgALWwEBfyOAgICAAEEQayICJICAgIAAIAJBCGogARCcjYCAACACIAIoAgggAigCDCgCGBGEgICAAAAgAigCBCEBIAAgAigCADYCACAAIAE2AgQgAkEQaiSAgICAAAtbAQF/I4CAgIAAQRBrIgIkgICAgAAgAkEIaiABEJyNgIAAIAIgAigCCCACKAIMKAIYEYSAgIAAACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJICAgIAAC0gBAX8jgICAgABBEGsiAiSAgICAACACQQhqIAEoAgwQnI2AgAAgAigCDCEBIAAgAigCCDYCACAAIAE2AgQgAkEQaiSAgICAAAsJACAAQQA2AgALAgALDQBCs/D7orPvy+H/AAsMAELbwfrLqqu42yELDABCw+Pq+pb3oplpCw0AQsvD7ue+pfehr38LFwAgAEHM1sOAADYCBCAAIAFBDGo2AgALFwAgAEGI18OAADYCBCAAIAFBDGo2AgALFwAgAEHM1sOAADYCBCAAIAFBDGo2AgALFwAgAEGI18OAADYCBCAAIAFBDGo2AgALcQEDfwJAIAAoAgQiAUUNACABIABBCGooAgAiAigCABGGgICAAAAgAkEEaigCACIDRQ0AIAEgAyACQQhqKAIAELeFgIAACwJAIABBEGooAgAiAUUNACAAKAIMIAFBARC3hYCAAAsgAEEYQQQQt4WAgAALfAEDfwJAIAAoAgQiAUUNACABIABBCGooAgAiAigCABGGgICAAAAgAkEEaigCACIDRQ0AIAEgAyACQQhqKAIAELeFgIAACwJAIABBEGooAgAiAUUNACAAKAIMIAFBARC3hYCAAAsgAEEYahCRjYCAACAAQRxBBBC3hYCAAAsUACAAQcTXw4AANgIEIAAgATYCAAsUACAAQYDYw4AANgIEIAAgATYCAAsXACAAQQxqQQAgAULwjIOXiNHzjRNRGwtSAQN/AkAgACgCBCICRQ0AIAIgAEEIaigCACIDKAIAEYaAgIAAACADQQRqKAIAIgRFDQAgAiAEIANBCGooAgAQt4WAgAALIABBGEEEELeFgIAACzUAAkAgAULwjIOXiNHzjRNRDQAgAEEYaigCACIAIAEgACgCACgCEBGJgICAAAAPCyAAQQxqC/oBAQR/AkAgAULwjIOXiNHzjRNRDQAgAEEYaigCACECAkAgACgCBCIDRQ0AIAMgAEEIaigCACIEKAIAEYaAgIAAACAEQQRqKAIAIgVFDQAgAyAFIARBCGooAgAQt4WAgAALAkAgAEEQaigCACIDRQ0AIAAoAgwgA0EBELeFgIAACyAAQRxBBBC3hYCAACACIAEgAigCACgCFBGKgICAAAAPCwJAIAAoAgQiAkUNACACIABBCGooAgAiAygCABGGgICAAAAgA0EEaigCACIERQ0AIAIgBCADQQhqKAIAELeFgIAACyAAQRhqEJGNgIAAIABBHEEEELeFgIAAC3cBAX8jgICAgABBEGsiAiSAgICAACACIAFBrNjDgABBBRD2kICAACACIAA2AgwgAkGx2MOAAEEDIAJBDGpBtNjDgAAQypCAgABBxNjDgABBBiAAQQxqQczYw4AAEMqQgIAAEN2QgIAAIQAgAkEQaiSAgICAACAACxcAIAAoAgAgAEEIaigCACABEIWRgIAAC0gBAX8jgICAgABBEGsiAiSAgICAACACQQhqIAEoAgwQnI2AgAAgAigCDCEBIAAgAigCCDYCACAAIAE2AgQgAkEQaiSAgICAAAsMACAAIAEQnY2AgAALDAAgACABEJ2NgIAAC0cBAX8jgICAgABBEGsiAiSAgICAACACQQhqIAAQnI2AgAAgAigCCCABIAIoAgwoAhARiICAgAAAIQAgAkEQaiSAgICAACAAC0cBAX8jgICAgABBEGsiAiSAgICAACACQQhqIAAQnI2AgAAgAigCCCABIAIoAgwoAhARiICAgAAAIQAgAkEQaiSAgICAACAACxcAIAAoAgAgAEEIaigCACABEIKRgIAACxcAIAAoAgAgAEEIaigCACABEIWRgIAACyMBAX8CQCAAQQRqKAIAIgFFDQAgACgCACABQQEQt4WAgAALC9MBAQF/I4CAgIAAQdAAayICJICAgIAAIAAoAgAhACACQeyFgIAANgI0IAIgADYCMCACQQE2AkwgAkIBNwI8IAJB/NrDgAA2AjggAiACQTBqNgJIIAJBIGogAkE4ahCtkICAACACQRRqQQE2AgAgAkHshYCAADYCHCACQgE3AgQgAkHE2sOAADYCACACIAJBIGo2AhggAiACQRhqNgIQIAEgAhDykICAACEAAkAgAigCJCIBRQ0AIAIoAiAgAUEBELeFgIAACyACQdAAaiSAgICAACAACxcAIAAoAgAgAEEIaigCACABEIWRgIAAC2oBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJBxNrDgAA2AgAgAkHthYCAADYCHCACQfjbw4AANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhASACQSBqJICAgIAAIAELagEBfyOAgICAAEEgayICJICAgIAAIAJBFGpBATYCACACQgE3AgQgAkHE2sOAADYCACACQe2FgIAANgIcIAJBqNvDgAA2AhggAiACQRhqNgIQIAEgAhDykICAACEBIAJBIGokgICAgAAgAQtqAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQcTaw4AANgIAIAJB7YWAgAA2AhwgAkHU28OAADYCGCACIAJBGGo2AhAgASACEPKQgIAAIQEgAkEgaiSAgICAACABCw8AIAAoAgAgARDijICAAAuTAwEBfyOAgICAAEEwayICJICAgIAAAkACQAJAAkACQCAAKAIADgQAAQIDAAsgAiAAQQRqNgIMIAJBJGpBATYCACACQgE3AhQgAkHE2sOAADYCECACQe6FgIAANgIsIAIgAkEoajYCICACIAJBDGo2AiggASACQRBqEPKQgIAAIQAMAwsgAiAAQQRqNgIMIAJBJGpBATYCACACQgE3AhQgAkHE2sOAADYCECACQe+FgIAANgIsIAIgAkEoajYCICACIAJBDGo2AiggASACQRBqEPKQgIAAIQAMAgsgAiAAQQRqNgIMIAJBJGpBATYCACACQgE3AhQgAkHE2sOAADYCECACQfCFgIAANgIsIAIgAkEoajYCICACIAJBDGo2AiggASACQRBqEPKQgIAAIQAMAQsgAiAAQQRqNgIMIAJBJGpBATYCACACQgE3AhQgAkHE2sOAADYCECACQfGFgIAANgIsIAIgAkEoajYCICACIAJBDGo2AiggASACQRBqEPKQgIAAIQALIAJBMGokgICAgAAgAAsPACAAQRBqIAEQkI2AgAAL8AIBBH8jgICAgABB4ABrIgIkgICAgAAgAkEcaiABQQhqKAIANgIAIAJBADYCECACIAEpAgA3AhQgAiACQRBqNgIkIAJB8oWAgAA2AlQgAiACQSRqNgJQIAJBATYCTCACQgE3AjwgAkHc2MOAADYCOCACIAJB0ABqNgJIIAJBKGogAkE4ahCtkICAACACQdAAakEIaiIBIAJBKGpBCGooAgA2AgAgAiACKQMoNwNQIAJBCGogAkHQAGpBgNrDgABByNnDgAAQko2AgAAgAigCDCEDIAIoAgghBCACQThqQQhqIgUgASgCADYCACACIAIpA1A3AzgCQEEYQQQQtoWAgAAiAQ0AQRhBBBCokICAAAALIAEgBDYCBCABQdjZw4AANgIAIAEgAikDODcCDCABIAM2AgggAUEUaiAFKAIANgIAIABBCGogAkEQakEIaikDADcCACAAIAIpAxA3AgAgACABNgIQIAJB4ABqJICAgIAAC5wCAQN/I4CAgIAAQdAAayIDJICAgIAAIAEgAhDvjICAACEBIANBATYCCCADIANBCGo2AhwgA0HyhYCAADYCNCADIANBHGo2AjAgA0EBNgJMIANCATcCPCADQdzYw4AANgI4IAMgA0EwajYCSCADQSBqIANBOGoQrZCAgAAgASgCBCEEIAFBADYCBCABQQhqKAIAIQUCQEEcQQQQtoWAgAAiAg0AQRxBBBCokICAAAALIAIgBTYCCCACIAQ2AgQgAkGs2sOAADYCACACIAMpAyA3AgwgAiABNgIYIAJBFGogA0EgakEIaigCADYCACAAQQhqIANBCGpBCGopAwA3AgAgACADKQMINwIAIAAgAjYCECADQdAAaiSAgICAAAuaAgEEfyOAgICAAEHQAGsiAiSAgICAACABEPCMgIAAIQMgAkECNgIIIAIgAkEIajYCHCACQfKFgIAANgI0IAIgAkEcajYCMCACQQE2AkwgAkIBNwI8IAJB3NjDgAA2AjggAiACQTBqNgJIIAJBIGogAkE4ahCtkICAACADKAIEIQQgA0EANgIEIANBCGooAgAhBQJAQRxBBBC2hYCAACIBDQBBHEEEEKiQgIAAAAsgASAFNgIIIAEgBDYCBCABQazaw4AANgIAIAEgAikDIDcCDCABIAM2AhggAUEUaiACQSBqQQhqKAIANgIAIABBCGogAkEIakEIaikDADcCACAAIAIpAwg3AgAgACABNgIQIAJB0ABqJICAgIAACwIAC40CAQF/I4CAgIAAQRBrIgIkgICAgAAgACgCACEAIAJBADYCDAJAAkAgAUGAAUkNAAJAIAFBgBBJDQACQCABQYCABEkNACACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQhAQwDCyACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDIQEMAgsgAiABQT9xQYABcjoADSACIAFBBnZBwAFyOgAMQQIhAQwBCyACIAE6AAxBASEBCyAAIAJBDGogARCqjYCAACEBIAJBEGokgICAgAAgAQt0AQF/I4CAgIAAQSBrIgIkgICAgAAgAiAAKAIANgIEIAJBCGpBEGogAUEQaikCADcDACACQQhqQQhqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpBgNzDgAAgAkEIahDCkICAACEBIAJBIGokgICAgAAgAQsRACAAKAIAIAEgAhCqjYCAAAujAQECfyOAgICAAEEwayICJICAgIAAQQEhAwJAIAFBIhCAkYCAAA0AIAIgATYCBCACQfOFgIAANgIMIAIgADYCCCACIAJBBGo2AhRBASEDIAJBATYCLCACQgE3AhwgAkGY3MOAADYCGCACIAJBCGo2AiggAkEUakGA3MOAACACQRhqEMKQgIAADQAgAUEiEICRgIAAIQMLIAJBMGokgICAgAAgAwvDAQEBfwJAAkAgAkUNAAJAAkACQAJAAkAgAUEASA0AIAMoAghFDQIgAygCBCIEDQEgAQ0DIAIhAwwECyAAQQhqQQA2AgAMBQsgAygCACAEIAIgARC4hYCAACEDDAILIAENACACIQMMAQsgASACELaFgIAAIQMLAkAgA0UNACAAIAM2AgQgAEEIaiABNgIAIABBADYCAA8LIAAgATYCBCAAQQhqIAI2AgAMAQsgACABNgIEIABBCGpBADYCAAsgAEEBNgIAC+YBAQN/I4CAgIAAQSBrIgIkgICAgAACQAJAIAFBAWoiAUUNACAAQQRqKAIAIgNBAXQiBCABIAQgAUsbIgFBCCABQQhLGyIBQX9zQR92IQQCQAJAIANFDQAgAkEBNgIYIAIgAzYCFCACIAAoAgA2AhAMAQsgAkEANgIYCyACIAEgBCACQRBqEOyMgIAAIAIoAgQhAwJAIAIoAgANACAAIAM2AgAgAEEEaiABNgIADAILIAJBCGooAgAiAEGBgICAeEYNASAARQ0AIAMgABCokICAAAALEKmQgIAAAAsgAkEgaiSAgICAAAvoAQECfyOAgICAAEEgayIDJICAgIAAAkACQCABIAJqIgIgAUkNACAAQQRqKAIAIgFBAXQiBCACIAQgAksbIgJBCCACQQhLGyICQX9zQR92IQQCQAJAIAFFDQAgA0EBNgIYIAMgATYCFCADIAAoAgA2AhAMAQsgA0EANgIYCyADIAIgBCADQRBqEOyMgIAAIAMoAgQhAQJAIAMoAgANACAAIAE2AgAgAEEEaiACNgIADAILIANBCGooAgAiAEGBgICAeEYNASAARQ0AIAEgABCokICAAAALEKmQgIAAAAsgA0EgaiSAgICAAAu4AgEDfyOAgICAAEHQAGsiAiSAgICAACACIAE2AgwgAiAANgIIIAIgAkEIajYCFCACQfiFgIAANgJEIAIgAkEUajYCQCACQQE2AjwgAkIBNwIsIAJB3NjDgAA2AiggAiACQcAAajYCOCACQRhqIAJBKGoQrZCAgAAgAkHAAGpBCGoiASACQRhqQQhqKAIANgIAIAIgAikDGDcDQCACIAJBwABqQYDaw4AAQcjZw4AAEJKNgIAAIAIoAgQhACACKAIAIQMgAkEoakEIaiIEIAEoAgA2AgAgAiACKQNANwMoAkBBGEEEELaFgIAAIgENAEEYQQQQqJCAgAAACyABIAM2AgQgAUHY2cOAADYCACABIAIpAyg3AgwgASAANgIIIAFBFGogBCgCADYCACACQdAAaiSAgICAACABC5IDAQR/I4CAgIAAQdAAayIBJICAgIAAIAEgADYCECABIAFBEGo2AhQgAUH5hYCAADYCRCABIAFBFGo2AkAgAUEBNgI8IAFCATcCLCABQdzYw4AANgIoIAEgAUHAAGo2AjggAUEYaiABQShqEK2QgIAAIAFBwABqQQhqIgAgAUEYakEIaigCADYCACABIAEpAxg3A0AgAUEIaiABQcAAakGA2sOAAEHI2cOAABCSjYCAACABKAIMIQIgASgCCCEDIAFBKGpBCGoiBCAAKAIANgIAIAEgASkDQDcDKAJAQRhBBBC2hYCAACIARQ0AIAAgAzYCBCAAQdjZw4AANgIAIAAgASkDKDcCDCAAIAI2AgggAEEUaiAEKAIANgIAAkAgASgCECICKAIAIgNFDQAgAkEEaigCACIERQ0AIAMgBEEBELeFgIAACwJAIAJBEGooAgAiA0UNACACKAIMIANBBHRBBBC3hYCAAAsgASgCEEEYQQQQt4WAgAAgAUHQAGokgICAgAAgAA8LQRhBBBCokICAAAALHAAgACgCACIAKAIAIABBCGooAgAgARCFkYCAAAsUACAAKAIAIAAoAgQgARCFkYCAAAsCAAv5AgECfyOAgICAAEEQayICJICAgIAAIAAoAgAhAAJAAkACQAJAIAFBgAFJDQAgAkEANgIMIAFBgBBPDQEgAiABQT9xQYABcjoADSACIAFBBnZBwAFyOgAMQQIhAQwCCwJAIAAoAggiAyAAKAIERw0AIAAgAxDtjICAACAAKAIIIQMLIAAoAgAgA2ogAToAACAAIAAoAghBAWo2AggMAgsCQCABQYCABEkNACACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQhAQwBCyACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDIQELAkAgACgCBCAAKAIIIgNrIAFPDQAgACADIAEQ7oyAgAAgACgCCCEDCyAAKAIAIANqIAJBDGogARC8kYCAABogACADIAFqNgIICyACQRBqJICAgIAAQQALdAEB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AkACQAJAAkACQAJAAkACQAJAAkAgAUH/A3EiAiABQQl1EIyNgIAAQRZsIgNB8t3DgABqLwEAIgRLDQAgAiADQfDdw4AAai8BACIEQf//A3FLDQEgAiADQe7dw4AAai8BACIEQf//A3FLDQIgAiADQezdw4AAai8BACIEQf//A3FLDQMgAiADQerdw4AAai8BACIEQf//A3FLDQQgAiADQejdw4AAai8BACIEQf//A3FLDQUgAiADQebdw4AAai8BACIEQf//A3FLDQYgAiADQeTdw4AAai8BACIEQf//A3FLDQcgAiADQeLdw4AAai8BACIEQf//A3FLDQggAiADQeDdw4AAai8BACIEQf//A3FLDQkgAiADQd7dw4AAai8BACIDQf//A3FLDQpBASECDAsLIAEgBGshAUEMIQIMCgsgASAEayEBQQshAgwJCyABIARrIQFBCiECDAgLIAEgBGshAUEJIQIMBwsgASAEayEBQQghAgwGCyABIARrIQFBByECDAULIAEgBGshAUEGIQIMBAsgASAEayEBQQUhAgwDCyABIARrIQFBBCECDAILIAEgBGshAUEDIQIMAQsgASADayEBQQIhAgsgACABOgABIAAgAjoAAAukAgEBfyOAgICAAEHgAGsiAiSAgICAACACIAAoAgAiAEEJdTYCVCACQRBqIAAQho2AgAAgAiACLQAQOgBaIAJBCGogABCGjYCAACACIAItAAk6AFsgAiAAQR92QQRyNgJcIAIgAkHcAGoQ7ZCAgAAgAkEwakEUakHBhYCAADYCACACQTBqQQxqQcGFgIAANgIAIAJBGGpBFGpBBDYCACACQRhqQQxqQQM2AgAgAkG1goCAADYCNCACQaTew4AANgIgIAJBAzYCHCACQYzew4AANgIYIAIgAikDADcDSCACIAJB2wBqNgJAIAIgAkHaAGo2AjggAiACQdQAajYCMCACIAJBMGo2AiggASACQRhqEPKQgIAAIQAgAkHgAGokgICAgAAgAAsTACAAIAE2AgAgACACKQIANwIECy0AIABBADsBDCAAQQ5qQQA6AAAgACABKQIANwIAIABBCGogAUEIaigCADYCAAuBAQEBfyOAgICAAEEwayICJICAgIAAIAJBLGpB/oWAgAA2AgAgAkEcakECNgIAIAJCAjcCDCACQYjfw4AANgIIIAJB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AGoQwpCAgAANBCAGQQFqIQYgCCECIAchASAIDQAMAwsLIAEgAyACKAIMEYiAgIAAACEFDAILA0AgBCACIAEoAhgRhICAgAAAIAQoAgQhCCAEKAIAIQYgBCABNgIsIAQgAjYCKCAEQQA2AmwgBEG84MOAADYCaCAEQgE3AlwgBEGY4cOAADYCWCADIARB2ABqEPKQgIAADQIgBEEBOgBAIAQgAzYCMCAEQQQ2AjwgBEHs4cOAADYCOCAEQQA2AjQgBEGAhoCAADYCTCAEIARBKGo2AkggBCAEQTBqNgJUIARBATYCbCAEQgE3AlwgBEG84MOAADYCWCAEIARByABqNgJoIARB1ABqQbThw4AAIARB2ABqEMKQgIAADQIgBiECIAghASAGDQALCwJAIAAoAgAiAg0AQQAhBQwBCyAEIAI2AlQgBEHsAGpBADYCACAEQbzgw4AANgJoIARCATcCXCAEQazhw4AANgJYIAMgBEHYAGoQ8pCAgAANACAEQTxqQQQ2AgAgBEE4akHs4cOAADYCACAEQQE6AEAgBCADNgIwIARBADYCNCAEQYGGgIAANgJMIAQgBEHUAGo2AkggBCAEQTBqNgIoIARBATYCbCAEQgE3AlwgBEG84MOAADYCWCAEIARByABqNgJoIARBKGpBtOHDgAAgBEHYAGoQwpCAgAANAEEAIQULIARB8ABqJICAgIAAIAULCQAgACABNgIACxQAIAAoAgAgACgCBCABEIWRgIAACw8AIAAoAgAgARCAkYCAAAtoAQF/I4CAgIAAQSBrIgIkgICAgAAgACgCACEAIAJBCGpBEGogAUEQaikCADcDACACQQhqQQhqIAFBCGopAgA3AwAgAiABKQIANwMIIAAgAkEIahDykICAACEBIAJBIGokgICAgAAgAQsRACAAKAIAIAEgAhDxkICAAAsYACAAKAIAIAEgACgCBCgCEBGIgICAAAALDwAgACgCACABEM2QgIAAC04BAX8jgICAgABBEGsiAiSAgICAACACQQhqIAEgASgCACgCBBGEgICAAAAgAigCDCEBIAAgAigCCDYCACAAIAE2AgQgAkEQaiSAgICAAAubAQEDfyOAgICAAEEQayICJICAgIAAAkACQCAAKAIEIgNFDQAgAEEIaigCACEEIAJBCGogACAAKAIAKAIEEYSAgIAAACADIAIoAgggAigCDCABIAQoAhgRi4CAgAAAIQAMAQsgAiAAIAAoAgAoAgQRhICAgAAAIAIoAgAgASACKAIEKAIMEYiAgIAAACEACyACQRBqJICAgIAAIAALAgALjQIBAX8jgICAgABBEGsiAiSAgICAACAAKAIAIQAgAkEANgIMAkACQCABQYABSQ0AAkAgAUGAEEkNAAJAIAFBgIAESQ0AIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBCEBDAMLIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMhAQwCCyACIAFBP3FBgAFyOgANIAIgAUEGdkHAAXI6AAxBAiEBDAELIAIgAToADEEBIQELIAAgAkEMaiABEKCNgIAAIQEgAkEQaiSAgICAACABC9sEAQt/I4CAgIAAQeAAayIDJICAgIAAIANBAToALCADQQo2AiggA0KKgICAEDcDICADIAI2AhwgAyACNgIUIAMgATYCECADIAI2AgwgAEEEaiEEIAMtAC0hBSADKAIIIQZBACEHQQAhCEEAIQkCQANAAkACQCAJIAJLDQADQCABIAlqIQoCQAJAIAIgCWsiC0EISQ0AIANBCiAKIAsQyJCAgAAgAygCBCEMIAMoAgAhCgwBC0EAIQwCQCALDQBBACEKDAELA0ACQCAKIAxqLQAAQQpHDQBBASEKDAILIAsgDEEBaiIMRw0AC0EAIQogCyEMCwJAIApBAUYNAEEBIQVBACEKIAghDSACIQkgAiEMDAMLAkAgDCAJaiIMQQFqIglFDQAgCSACSw0AIAEgDGotAABBCkcNAEEBIQogCSEGIAkhDQwDCyAJIAJNDQALC0EBIQVBACEKIAghDSACIQwLIAMgDCAIayIMNgI8IAMgASAIajYCOCAHQQFqIQsCQAJAAkACQAJAIAcNACAALQAQDQEMAgsgACgCAEEKEICRgIAADQIgAEEBOgAQIAMoAjwhDAsgDEUNAiAEIAcgAEHM4cOAABCtjYCAAA0BIABBADoAEAsgACgCACEMIANBATYCVCADQgE3AkQgA0Hk4cOAADYCQCADQYeGgIAANgJcIAMgA0HYAGo2AlAgAyADQThqNgJYIAwgA0HAAGoQ8pCAgABFDQELIAMgBToALSADIAY2AghBASEMDAILIAshByANIQggCg0AC0EAIQwLIANB4ABqJICAgIAAIAwLdAEBfyOAgICAAEEgayICJICAgIAAIAIgACgCADYCBCACQQhqQRBqIAFBEGopAgA3AwAgAkEIakEIaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQbThw4AAIAJBCGoQwpCAgAAhASACQSBqJICAgIAAIAELEQAgACgCACABIAIQoI2AgAALOQEBfwJAQQRBBBC2hYCAACIEDQBBBEEEEKiQgIAAAAsgBEEANgIAIABB3ODDgAA2AgQgACAENgIACzkBAX8CQEEEQQQQtoWAgAAiBA0AQQRBBBCokICAAAALIARBADYCACAAQdzgw4AANgIEIAAgBDYCAAt7AQN/IABBBGooAgAhASAAKAIAQQA6AAACQCABKAIAIgAoAgAiAkUNACACIAAoAgQoAgARhoCAgAAAIAAoAgQiAkEEaigCACIDRQ0AIAAoAgAgAyACQQhqKAIAELeFgIAACyABKAIAIgBBhOLDgAA2AgQgAEEBNgIAQQELOQEBfwJAQQRBBBC2hYCAACIEDQBBBEEEEKiQgIAAAAsgBEEANgIAIABB3ODDgAA2AgQgACAENgIACwIAC2IBAX8jgICAgABBIGsiASSAgICAACABQQE6AAMgASAAQQRqNgIEIAEgAUEYajYCECABIAFBBGo2AgwgASABQQNqNgIIIAAgAUEIakHw4cOAABCzjYCAACABQSBqJICAgIAAC3YBA38gACgCAEEAOgAAAkAgACgCBCIBKAIAIgAoAgAiAkUNACACIAAoAgQoAgARhoCAgAAAIAAoAgQiAkEEaigCACIDRQ0AIAAoAgAgAyACQQhqKAIAELeFgIAACyABKAIAIgBBhOLDgAA2AgQgAEEBNgIAQQELRQEBfyOAgICAAEHQAGsiAySAgICAACADQQhqIAEgAhCakYCAACADQQhqIAAoAgAQs5GAgAAhAiADQdAAaiSAgICAACACCw8AIAAoAgAgARC/kICAAAscACAAKAIAIgAoAgAgAEEEaigCACABEIWRgIAAC+sCAQF/I4CAgIAAQTBrIgQkgICAgAACQAJAAkACQCAAKAIADgMAAgEACyAEIABBBGo2AgwgBEEsakEBNgIAIARCATcCHCAEQeDiw4AANgIYIARBlYaAgAA2AhQgBCAEQRBqNgIoIAQgBEEMajYCECACIARBGGogAygCFBGIgICAAAAhAAwCCyAAKAIEIAEgAiADIABBCGooAgAoAhARi4CAgAAAIQAMAQsgBCAAQQRqNgIMAkAgAUUNACAEQSxqQQA2AgAgBEGc4sOAADYCKCAEQgE3AhwgBEGk4sOAADYCGCACIARBGGogAygCFBGIgICAAAAhAAwBCyAEQSxqQQE2AgAgBEEkakEBNgIAIARBwOLDgAA2AiAgBEECNgIcIARBsOLDgAA2AhggBEGWhoCAADYCFCAEIARBEGo2AiggBCAEQQxqNgIQIAIgBEEYaiADKAIUEYiAgIAAACEACyAEQTBqJICAgIAAIAALaAEBfwJAIAAoAgAiAEEQaigCACIBRQ0AIAFBADoAACAAQRRqKAIAIgFFDQAgACgCECABQQEQt4WAgAALAkAgAEF/Rg0AIAAgACgCBCIBQX9qNgIEIAFBAUcNACAAQSBBCBC3hYCAAAsLQwAgACgCACEAAkAgARD0kICAAA0AAkAgARD1kICAAA0AIAAgARC/kICAAA8LIAAgARCnkYCAAA8LIAAgARCdkYCAAAsCAAt2AQF/I4CAgIAAQSBrIgUkgICAgAAgBSACNgIEIAUgATYCACAFQQhqQRBqIANBEGopAgA3AwAgBUEIakEIaiADQQhqKQIANwMAIAUgAykCADcDCCAAIAVB6OLDgAAgBUEEakHo4sOAACAFQQhqIAQQ15CAgAAAC4UCAQN/I4CAgIAAQSBrIgEkgICAgAAgACgCACICKAIAIQMgAiAAKAIENgIAIAEgA0EDcSIANgIEAkAgAEEBRw0AAkACQCADQX9qIgBFDQADQCAAKAIEIQIgACgCACEDIABBADYCACADRQ0CIABBAToACCABIAM2AgggA0EIahCuj4CAABCqj4CAACABKAIIIgAgACgCACIAQX9qNgIAAkAgAEEBRw0AIAFBCGoQro2AgAALIAIhACACDQALCyABQSBqJICAgIAADwtB6OPDgABBK0GU5MOAABC7kICAAAALIAFBADYCCEEAIAFBBGpB+OLDgAAgAUEIakHY48OAABCxjYCAAAAL8gMBCH8jgICAgABBEGsiAySAgICAACAAKAIAIQQDQCAEQQNxIQUCQAJAAkAC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AggiA2sgAU8NACAAIAMgARDPjYCAACAAKAIIIQMLIAAoAgAgA2ogAkEMaiABELyRgIAAGiAAIAMgAWo2AggLIAJBEGokgICAgABBAAtLAQF/AkAgACgCBCAAKAIIIgNrIAJPDQAgACADIAIQz42AgAAgACgCCCEDCyAAKAIAIANqIAEgAhC8kYCAABogACADIAJqNgIIQQALZAEBfwJAAkAgAEEIaigCACICIAFJDQACQCABRQ0AAkAgAiABSw0AIAIgAUYNAQwDCyAAKAIAIAFqLAAAQUBIDQILIABBCGogATYCAAsPC0GE6sOAAEEwQbTqw4AAELuQgIAAAAsXACAAKAIAIABBCGooAgAgARCFkYCAAAtOAQF/I4CAgIAAQRBrIgIkgICAgAAgAkEIaiABIAEoAgAoAgQRhICAgAAAIAIoAgwhASAAIAIoAgg2AgAgACABNgIEIAJBEGokgICAgAALogEDAX8BfgF/I4CAgIAAQRBrIgMkgICAgAACQCAAKAIEQQNGDQAgASACQQxqKAIAEYGAgIAAACIEQvvN1qfe5eGJQFINACABQQAgBEL7zdan3uXhiUBRGyIFKAIADQAgBSAAQQRqNgIACyADQQhqIAAgACgCACgCBBGEgICAAAAgAygCCCABIAIgAygCDCgCKBGDgICAAAAgA0EQaiSAgICAAAu/CQEKfyOAgICAAEGQAWsiAiSAgICAACACQThqIAAgACgCACgCBBGEgICAAAAgAiACKAI8IgM2AkQgAiACKAI4IgQ2AkACQAJAIAEQ85CAgAANAEEBIQUgAkH8AGpBATYCACACQgE3AmwgAkHE68OAADYCaCACQaKGgIAANgJUIAIgAkHQAGo2AnggAiACQcAAajYCUCABIAJB6ABqEPKQgIAADQEgAkEwaiACKAJAIAIoAkQoAhgRhICAgAAAAkAgAigCMCIDRQ0AIAIoAjQhBCACQfwAakEANgIAIAJBhOrDgAA2AnggAkIBNwJsIAJB5OvDgAA2AmggASACQegAahDykICAAA0CIAJBKGogAyAEKAIYEYSAgIAAACACKAIoIgZBAEchB0EAIQgDQCACQSBqIAMgBCgCGBGEgICAAAAgAigCJCEJIAIoAiAhCiACIAQ2AkwgAiADNgJIIAJBADYCfCACQYTqw4AANgJ4IAJCATcCbCACQfDr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EnZBB3FB8AFyOgAMQQQhAQwBCyACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDIQELAkAgACgCBCAAKAIIIgNrIAFPDQAgACADIAEQz42AgAAgACgCCCEDCyAAKAIAIANqIAJBDGogARC8kYCAABogACADIAFqNgIICyACQRBqJICAgIAAQQALdAEBfyOAgICAAEEgayICJICAgIAAIAIgACgCADYCBCACQQhqQRBqIAFBEGopAgA3AwAgAkEIakEIaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQeTuw4AAIAJBCGoQwpCAgAAhASACQSBqJICAgIAAIAELUAEBfwJAIAAoAgAiACgCBCAAKAIIIgNrIAJPDQAgACADIAIQz42AgAAgACgCCCEDCyAAKAIAIANqIAEgAhC8kYCAABogACADIAJqNgIIQQAL/wMBA38jgICAgABBwABrIgUkgICAgAAgBSACNgIMIAUgATYCCCAAQQhqKAIAIQYgACgCACEHAkACQCABRQ0AAkAgBiABSw0AIAYgAUYNAQwCCyAHIAFqLAAAQb9/TA0BCwJAAkAgAkUNAAJAIAYgAksNACAGIAJGDQEMAgsgByACaiwAAEFASA0BCyAFIAVBCGpBBHI2AjwgBUEBNgI4IAVBADYCMCAFIAVBCGo2AjQgBSAFQTBqIAZB/O3DgAAQ3o2AgAAgBSADNgIkIAVBKGogAyAEajYCACAFQRxqIgIgByAFKAIEIgFqNgIAIAUgADYCICAAQQhqIAUoAgAiADYCACAFIAE2AhAgBSAHIABqNgIYIAUgBiABazYCFCAFQRBqEOeNgIAAIAUoAiAhAAJAAkACQCACKAIAIAUoAhhHDQAgBSgCFCIGRQ0CIAUoAhAiAiAAKAIIIgFGDQEgACgCACIHIAFqIAcgAmogBhDBkYCAABoMAQsgBSgCFCIGRQ0BAkAgBSgCECICIAAoAggiAUYNACAAKAIAIgcgAWogByACaiAGEMGRgIAAGgsgACABIAZqNgIIDAELIAAgASAGajYCCAsgBUHAAGokgICAgAAPC0HH78OAAEEqQYTww4AAELuQgIAAAAtBx+/DgABBKkH078OAABC7kICAAAALGQAgACABQQhqKAIANgIEIAAgASgCADYCAAsSACABQZTww4AAQQ8Q8ZCAgAALPAAgACABKQAANwAAIABBGGogAUEYaikAADcAACAAQRBqIAFBEGopAAA3AAAgAEEIaiABQQhqKQAANwAACwQAIAALRQEBfyOAgICAAEEQayICJICAgIAAIAJBCGogARCnjoCAACACKAIMIQEgACACKAIINgIAIAAgATYCBCACQRBqJICAgIAACwQAIAALEAAgAEEANgIIIABCCDcCAAsIACAAKAIIRQu6AgEGfwJAAkACQAJAIAFBCGooAgAiAiAAQQhqKAIAIgNLDQAgAkUNAgwBCyADIQQCQCAAKAIEIANrIAIgA2siBU8NACAAIAMgBRD+jYCAACAAQQhqKAIAIQQLIAAoAgAiBiAEQQN0aiEHAkAgBUECSQ0AIAdBACACIANBf3NqQQN0ELmRgIAAGiAEIAJqQQN0IANBA3RrIAZqQXhqIQcgBSAEakF/aiEECwJAAkAgAiADRw0AIAQhAwwBCyAHQgA3AwAgBEEBaiEDCyAAQQhqIAM2AgALIAJBA3QhBSAAKAIAIQIgASgCACEBQX8hBANAIAMgBEEBaiIERg0CIAIgAikDACABKQMAhDcDACABQQhqIQEgAkEIaiECIAVBeGoiBQ0ACwsgAA8LIAMgA0GI8cOAABC3kICAAAALiQIBB38CQCABQQZ2IgIgAEEIaigCACIDSQ0AIAMhBAJAIAAoAgQgA2sgAkEBaiIFIANrIgZPDQAgACADIAYQ/o2AgAAgAEEIaigCACEECyAAKAIAIgcgBEEDdGohCAJAAkAgBkECTw0AIAQhBgwBCyAIQQAgAiADa0EDdBC5kYCAABogBiAEakF/aiEGIAcgBCACaiADa0EDdGohCAsCQAJAIAUgA0cNACAGIQMMAQsgCEIANwMAIAZBAWohAwsgAEEIaiADNgIACwJAIAIgA08NACAAKAIAIAJBA3RqIgMgAykDAEIBIAFBf3NBP3GthoQ3AwAgAA8LIAIgA0GY8cOAABC3kICAAAALSAEBfyAAQoCAgIAQNwNgIABCgICAgIAENwNYIABCADcDKCAAQgA3AwAgACABKAIAIgI2AlAgACACIAFBCGooAgBBA3RqNgJUC0gBAX8gAEKBgICAEDcDYCAAQoCAgICABDcDWCAAQgA3AyggAEIANwMAIAAgASgCACICNgJQIAAgAiABQQhqKAIAQQN0ajYCVAutAwECfyACKAIAIQMgASgCACEEAkACQAJAQX8gAkEIaigCACICIAFBCGooAgAiAUcgAiABSxtB/wFxDgIBAgALIABCADcCbCAAIAM2AmQgAEGo8cOAADYCYCAAIAQ2AlggAEIANwMwIABCADcDCCAAQQE2AoQBIABCIDcCfCAAQfQAakIANwIAIAAgAyACQQN0ajYCaCAAIAQgAUEDdGo2AlwgAEIANwMADwsgAEIANwMIIABB/ABqQoCAgIAQNwIAIABB9ABqQoCAgICABDcCACAAQfAAaiABNgIAIABB6ABqQQA2AgAgAEHgAGogAzYCACAAQdgAaiAENgIAIABBMGpCADcDACAAQewAaiABIAIgASACSRs2AgAgAEHkAGogAyACQQN0ajYCACAAQdwAaiAEIAFBA3RqNgIAIABCAjcDAA8LIABCADcCbCAAQajxw4AANgJoIAAgAzYCYCAAIAQ2AlggAEIANwMwIABCADcDCCAAQQE2AoQBIABCIDcCfCAAQfQAakIANwIAIAAgAyACQQN0ajYCZCAAIAQgAUEDdGo2AlwgAEIBNwMAC7UDAQJ/IAIoAgAhAyABKAIAIQQCQAJAAkBBfyACQQhqKAIAIgIgAUEIaigCACIBRyACIAFLG0H/AXEOAgECAAsgAEIANwJsIAAgAzYCZCAAQajxw4AANgJgIAAgBDYCWCAAQgA3AzAgAEIANwMIIABBATYChAEgAEKggICAEDcCfCAAQfQAakIANwIAIAAgAyACQQN0ajYCaCAAIAQgAUEDdGo2AlwgAEIANwMADwsgAEIANwMIIABB/ABqQoGAgIAQNwIAIABB9ABqQoCAgICABDcCACAAQfAAaiABNgIAIABB6ABqQQA2AgAgAEHgAGogAzYCACAAQdgAaiAENgIAIABBMGpCADcDACAAQewAaiABIAIgASACSRs2AgAgAEHkAGogAyACQQN0ajYCACAAQdwAaiAEIAFBA3RqNgIAIABCAjcDAA8LIABCADcCbCAAQajxw4AANgJoIAAgAzYCYCAAIAQ2AlggAEIANwMwIABCADcDCCAAQQE2AoQBIABCoICAgBA3AnwgAEH0AGpCADcCACAAIAMgAkEDdGo2AmQgACAEIAFBA3RqNgJcIABCATcDAAsSACAAQT8gAWtBP3GtiKdBAXELwwEBAX8CQAJAIAJFDQACQAJAAkACQAJAIAFBAEgNACADKAIIRQ0CIAMoAgQiBA0BIAENAyACIQMMBAsgAEEIakEANgIADAULIAMoAgAgBCACIAEQuIWAgAAhAwwCCyABDQAgAiEDDAELIAEgAhC2hYCAACEDCwJAIANFDQAgACADNgIEIABBCGogATYCACAAQQA2AgAPCyAAIAE2AgQgAEEIaiACNgIADAELIAAgATYCBCAAQQhqQQA2AgALIABBATYCAAv2AQEDfyOAgICAAEEgayIDJICAgIAAAkACQCABIAJqIgIgAUkNACAAQQRqKAIAIgFBAXQiBCACIAQgAksbIgJBBCACQQRLGyICQQN0IQQgAkGAgICAAUlBA3QhBQJAAkAgAUUNACADQQg2AhggAyABQQN0NgIUIAMgACgCADYCEAwBCyADQQA2AhgLIAMgBCAFIANBEGoQ/Y2AgAAgAygCBCEBAkAgAygCAA0AIAAgATYCACAAQQRqIAI2AgAMAgsgA0EIaigCACIAQYGAgIB4Rg0BIABFDQAgASAAEKiQgIAAAAsQqZCAgAAACyADQSBqJICAgIAAC0MAIAAoAgAhAAJAIAEQ9JCAgAANAAJAIAEQ9ZCAgAANACAAIAEQv5CAgAAPCyAAIAEQp5GAgAAPCyAAIAEQnZGAgAALDwAgACgCACABEIGRgIAACxEAQn8gACABfCIBIAEgAFQbCxEAQn8gACABfCIBIAEgAFQbCxEAQgAgACABfSIBIAEgAFYbCxsBAn5BfyAAKQMAIgIgASkDACIDUiACIANUGwsEACAACwQAIAALEQBCACAAIAF9IgEgASAAVhsLEQBCACAAIAF9IgEgASAAVhsLAgALBwAgAC0AEAsHACAAKAIECwcAIAAoAggLBwAgACgCDAvCAQEBfyOAgICAAEEgayICJICAgIAAIAIgAEEQajYCDCACIAA2AhAgAiAAQQRqNgIUIAIgAEEIajYCGCACIABBDGo2AhwgAUGw8cOAAEEWQcbxw4AAQQUgAkEMakHM8cOAAEHc8cOAAEEOIAJBEGpB7PHDgABB/PHDgABBGSACQRRqQezxw4AAQZXyw4AAQREgAkEYakHs8cOAAEGm8sOAAEESIAJBHGpB7PHDgAAQ+pCAgAAhACACQSBqJICAgIAAIAALBwAgACkDAAs6AQF+AkBCACAAQn98IgEgASAAVhtCA4AiASAAUg0AQbjyw4AAQRlBuPPDgAAQy5CAgAAACyAAIAF9Cw0AIAAoAghBAXQgAXILEAAgAEEANgIIIABCCDcCAAsNACAAIAEQ9o2AgAAaCxAAIAAgASgCABD3jYCAABoLwwEBAX8CQAJAIAJFDQACQAJAAkACQAJAIAFBAEgNACADKAIIRQ0CIAMoAgQiBA0BIAENAyACIQMMBAsgAEEIakEANgIADAULIAMoAgAgBCACIAEQuIWAgAAhAwwCCyABDQAgAiEDDAELIAEgAhC2hYCAACEDCwJAIANFDQAgACADNgIEIABBCGogATYCACAAQQA2AgAPCyAAIAE2AgQgAEEIaiACNgIADAELIAAgATYCBCAAQQhqQQA2AgALIABBATYCAAvoAQECfyOAgICAAEEgayIDJICAgIAAAkACQCABIAJqIgIgAUkNACAAQQRqKAIAIgFBAXQiBCACIAQgAksbIgJBCCACQQhLGyICQX9zQR92IQQCQAJAIAFFDQAgA0EBNgIYIAMgATYCFCADIAAoAgA2AhAMAQsgA0EANgIYCyADIAIgBCADQRBqEJWOgIAAIAMoAgQhAQJAIAMoAgANACAAIAE2AgAgAEEEaiACNgIADAILIANBCGooAgAiAEGBgICAeEYNASAARQ0AIAEgABCokICAAAALEKmQgIAAAAsgA0EgaiSAgICAAAuJAwEEfwJAIAAoAgAiAEE/Sw0AIABBAnQhAgJAIAEoAgQgASgCCCIARw0AIAEgAEEBEJaOgIAAIAEoAgghAAsgASAAQQFqNgIIIAEoAgAgAGogAjoAAA8LAkAgAEH//wBLDQAgAEECdEEBciECAkAgASgCBCABKAIIIgBrQQFLDQAgASAAQQIQlo6AgAAgASgCCCEACyABIABBAmo2AgggASgCACAAaiACOwAADwsCQCAAQf////8DSw0AIABBAnRBAnIhAgJAIAEoAgQgASgCCCIAa0EDSw0AIAEgAEEEEJaOgIAAIAEoAgghAAsgASAAQQRqNgIIIAEoAgAgAGogAjYAAA8LAkAgASgCBCIDIAEoAggiBEcNACABIARBARCWjoCAACABKAIEIQMgASgCCCEECyABIARBAWoiAjYCCCABKAIAIgUgBGpBAzoAAAJAIAMgAmtBA0sNACABIAJBBBCWjoCAACABKAIAIQUgASgCCCECCyABIAJBBGo2AgggBSACaiAANgAAC48HAQR/I4CAgIAAQRBrIgIkgICAgAAgAEEANgIIIABCATcCAAJAAkACQAJAAkACQCABKAIADgUAAQIDBAALIAFBDGooAgAhAyABKAIIIQQgASgCBCEFIABBAEEBEJaOgIAAIAAoAgAgACgCCCIBakEGOgAAIAAgAUEBaiIBNgIIAkAgACgCBCABa0EDSw0AIAAgAUEEEJaOgIAAIAAoAgghAQsgACABQQRqNgIIIAAoAgAgAWogBSgAADYAACACIAM2AgwgAkEMaiAAEJeOgIAAAkAgACgCBCAAKAIIIgFrIANPDQAgACABIAMQlo6AgAAgACgCCCEBCyAAKAIAIAFqIAQgAxC8kYCAABogASADaiEBDAQLIAFBDGooAgAhAyABKAIIIQQgASgCBCEFIABBAEEBEJaOgIAAIAAoAgAgACgCCCIBakEEOgAAIAAgAUEBaiIBNgIIAkAgACgCBCABa0EDSw0AIAAgAUEEEJaOgIAAIAAoAgghAQsgACABQQRqNgIIIAAoAgAgAWogBSgAADYAACACIAM2AgwgAkEMaiAAEJeOgIAAAkAgACgCBCAAKAIIIgFrIANPDQAgACABIAMQlo6AgAAgACgCCCEBCyAAKAIAIAFqIAQgAxC8kYCAABogASADaiEBDAMLIAFBDGooAgAhAyABKAIIIQQgASgCBCEFIABBAEEBEJaOgIAAIAAoAgAgACgCCCIBakEFOgAAIAAgAUEBaiIBNgIIAkAgACgCBCABa0EDSw0AIAAgAUEEEJaOgIAAIAAoAgghAQsgACABQQRqNgIIIAAoAgAgAWogBSgAADYAACACIAM2AgwgAkEMaiAAEJeOgIAAAkAgACgCBCAAKAIIIgFrIANPDQAgACABIAMQlo6AgAAgACgCCCEBCyAAKAIAIAFqIAQgAxC8kYCAABogASADaiEBDAILIAFBCGooAgAhAyABKAIEIQQgAEEAQQEQlo6AgAAgACgCACAAKAIIIgFqQQA6AAAgACABQQFqNgIIIAIgAzYCDCACQQxqIAAQl46AgAACQCAAKAIEIAAoAggiAWsgA08NACAAIAEgAxCWjoCAACAAKAIIIQELIAAoAgAgAWogBCADELyRgIAAGiABIANqIQEMAQsgAEEAQQEQlo6AgAAgACgCACAAKAIIIgFqQQg6AAAgAUEBaiEBCyAAIAE2AgggAkEQaiSAgICAAAsZACAAIAFBCGooAgA2AgQgACABKAIANgIAC9MBAQF/AkACQAJAAkACQCABLQAAIgIOBQABAgMEAAsgACABQQFqNgIEIABBDGogAUEQaigCADYCACAAIAFBCGooAgA2AgggACACNgIADwsgACABQQFqNgIEIABBDGogAUEQaigCADYCACAAIAFBCGooAgA2AgggACACNgIADwsgACABQQFqNgIEIABBDGogAUEQaigCADYCACAAIAFBCGooAgA2AgggACACNgIADwsgAEEIaiABQQxqKAIANgIAIAAgAUEEaigCADYCBAsgACACNgIAC+cBAQJ/I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQAJAIAEtAAAiAw4FAAECAwQACyACQQxqIAFBEGooAgA2AgAgAiABQQFqNgIEIAIgAUEIaigCADYCCAwDCyACQQxqIAFBEGooAgA2AgAgAiABQQFqNgIEIAIgAUEIaigCADYCCAwCCyACQQxqIAFBEGooAgA2AgAgAiABQQFqNgIEIAIgAUEIaigCADYCCAwBCyACQQhqIAFBDGooAgA2AgAgAiABQQRqKAIANgIECyACIAM2AgAgACACEJiOgIAAIAJBEGokgICAgAAL8wEBAX8CQAJAAkACQAJAAkACQAJAAkAgAg4EAAECAwALQQAhAiABKAIARQ0FDAcLQQAhAiABKAIAQQFGDQMMBgtBACECIAEoAgBBAkYNAQwFCwJAIAEoAgBBA0YNAEEAIQIMBQsgAUEIaiECIAFBBGohAQwDCyABKAIEKAAAIAMoAABHDQMgAUEMaiECIAFBCGohAQwCCyABKAIEKAAAIAMoAABHDQIgAUEMaiECIAFBCGohAQwBCyABKAIEKAAAIAMoAABHDQEgAUEMaiECIAFBCGohAQsgAigCACEEIAEoAgAhAgsgACAENgIEIAAgAjYCAAsOACAAIAEgAhChjoCAAAsCAAtvAQF/I4CAgIAAQRBrIgIkgICAgAACQAJAIAAoAgQNACABQejzw4AAQRAQ8ZCAgAAhAAwBCyACIAA2AgwgAUHI88OAAEEIQdDzw4AAQQYgAkEMakHY88OAABD3kICAACEACyACQRBqJICAgIAAIAALDwAgACgCACABELeRgIAACxgAIAAgASACQQAoAozhxIAAEYOAgIAAAAsYACAAIAEgAkEAKAKU4cSAABGDgICAAAALGAAgACABIAJBACgCnOHEgAARg4CAgAAAC1gAIAAgASACELiOgIAAEM6DgIAAIgIpAAA3AAAgAEEYaiACQRhqKQAANwAAIABBEGogAkEQaikAADcAACAAQQhqIAJBCGopAAA3AAAgAkEgQQEQt4WAgAALOAAgACABIAIQuI6AgAAQz4OAgAAiAikAADcAACAAQQhqIAJBCGopAAA3AAAgAkEQQQEQt4WAgAALKAAgACABIAIQuI6AgAAQ0IOAgAAiAikAADcAACACQQhBARC3hYCAAAsQACAAQSA2AgQgACABNgIAC1cBAX9BASEDAkAgAkEgRw0AIAAgASkAADcAASAAQRlqIAFBGGopAAA3AAAgAEERaiABQRBqKQAANwAAIABBCWogAUEIaikAADcAAEEAIQMLIAAgAzoAAAt8ACAAIAEpAAA3AAAgAEE4aiABQThqKQAANwAAIABBMGogAUEwaikAADcAACAAQShqIAFBKGopAAA3AAAgAEEgaiABQSBqKQAANwAAIABBGGogAUEYaikAADcAACAAQRBqIAFBEGopAAA3AAAgAEEIaiABQQhqKQAANwAAC3wAIAAgASkAADcAACAAQThqIAFBOGopAAA3AAAgAEEwaiABQTBqKQAANwAAIABBKGogAUEoaikAADcAACAAQSBqIAFBIGopAAA3AAAgAEEYaiABQRhqKQAANwAAIABBEGogAUEQaikAADcAACAAQQhqIAFBCGopAAA3AAALAgALBABBAAsCAAsCAAuLAgIDfwN+I4CAgIAAQdAAayIFJICAgIAAAkAgAw0AQQAoAqjhxIAAIQNBACgCpOHEgAAhBkEAKALE4cSAACEHIAIpAgAhCCACKQIIIQkgAikCECEKIAVByABqIAIoAhg2AgAgBUE8aiAKNwIAIAVBMGogCTcDACAFQSRqIAApAhA3AgAgBUEcaiAAKQIINwIAIAVBATYCRCAFQQA2AjggBUEANgIsIAUgCDcCDCAFIAE2AgggBSAAKQIANwIUIAZB+PPDgAAgB0ECRiICGyAFQQhqIANBhPTDgAAgAhsoAhQRhICAgAAAIAVB0ABqJICAgIAADwtB8fTDgABB1QBByPXDgAAQsI6AgAAACzMBAX8jgICAgABBEGsiAySAgICAACADIAI2AgggAyABNgIEIAMgADYCACADELSOgIAAAAsCAAslAAJAIAEoAgANABC1j4CAAAALIABB2PXDgAA2AgQgACABNgIAC2YBAn8gASgCACECIAFBADYCAAJAAkAgAkUNACABKAIEIQNBCEEEELaFgIAAIgFFDQEgASADNgIEIAEgAjYCACAAQdj1w4AANgIEIAAgATYCAA8LELWPgIAAAAtBCEEEEKiQgIAAAAs4AQF/I4CAgIAAQRBrIgEkgICAgAAgAUEIaiAAQQhqKAIANgIAIAEgACkCADcDACABELWOgIAAAAs6AQF/I4CAgIAAQRBrIgEkgICAgAAgASAAKQIANwMIIAFBCGpB6PXDgABBACAAKAIIQQEQxY+AgAAACwIACw0AQuuRk7X22LOi9AALDAAgAa1CIIYgAK2ECxMAIAAgAUIgiD4CBCAAIAE+AgALBAAgAAtmAQF/AkACQAJAAkAgAg0AQQEhAwwBCyACQX9MDQEgAkEBELaFgIAAIgNFDQILIAMgASACELyRgIAAIQEgACACNgIIIAAgAjYCBCAAIAE2AgAPCxCpkICAAAALIAJBARCokICAAAALGQAgACABQQhqKAIANgIEIAAgASgCADYCAAvMAgEFfyOAgICAAEEQayICJICAgIAAIAEoAgAhAwJAAkACQAJAAkAgAUEIaigCACIBQRdqIgQNACACQQA2AgggAkIBNwMADAELIARBf0wNAiAEQQEQtoWAgAAiBUUNA0EAIQYgAkEANgIIIAIgBDYCBCACIAU2AgAgAUFpSQ0BCyACQQBBFxC/joCAACACKAIEIQQgAigCACEFIAIoAgghBgsgBSAGaiIFQQApAPz1w4AANwAAIAVBD2pBACkAi/bDgAA3AAAgBUEIakEAKQCE9sOAADcAACACIAZBF2oiBjYCCAJAIAQgBmsgAU8NACACIAYgARC/joCAACACKAIIIQYLIAIoAgAgBmogAyABELyRgIAAGiAAQQhqIAYgAWo2AgAgACACKQMANwIAIAJBEGokgICAgAAPCxCpkICAAAALIARBARCokICAAAAL2gEAAkACQCACRQ0AAkACQAJAAkACQAJAIAFBAEgNACADKAIIDQEgAQ0CQQEhAgwECyAAQQhqQQA2AgAMBgsCQCADKAIEIgINAAJAIAENAEEBIQIMBAsgAUEBELaFgIAAIQIMAgsgAygCACACQQEgARC4hYCAACECDAELIAFBARC2hYCAACECCyACRQ0BCyAAIAI2AgQgAEEIaiABNgIAIABBADYCAA8LIAAgATYCBCAAQQhqQQE2AgAgAEEBNgIADwsgACABNgIEIABBCGpBADYCAAsgAEEBNgIAC+gBAQJ/I4CAgIAAQSBrIgMkgICAgAACQAJAIAEgAmoiAiABSQ0AIABBBGooAgAiAUEBdCIEIAIgBCACSxsiAkEIIAJBCEsbIgJBf3NBH3YhBAJAAkAgAUUNACADQQE2AhggAyABNgIUIAMgACgCADYCEAwBCyADQQA2AhgLIAMgAiAEIANBEGoQvo6AgAAgAygCBCEBAkAgAygCAA0AIAAgATYCACAAQQRqIAI2AgAMAgsgA0EIaigCACIAQYGAgIB4Rg0BIABFDQAgASAAEKiQgIAAAAsQqZCAgAAACyADQSBqJICAgIAAC/cBAQJ/I4CAgIAAQTBrIgIkgICAgAAgACgCACEDAkACQCABEPOQgIAARQ0AIAJBJGpBADYCACACQZT2w4AANgIgIAJCATcCFCACQZz3w4AANgIQQQEhACABIAJBEGoQ8pCAgAANAQtBACEAAkADQCACIAMgAGo2AgwgAkEBNgIkIAJBATYCHCACQaT3w4AANgIYIAJBATYCFCACQfT2w4AANgIQIAJBxIaAgAA2AiwgAiACQShqNgIgIAIgAkEMajYCKCABIAJBEGoQ8pCAgAANASAAQQFqIgBBIEcNAAtBACEADAELQQEhAAsgAkEwaiSAgICAACAAC5IBAQF/I4CAgIAAQSBrIgMkgICAgAAgAyACNgIEAkAgAkEgRw0AIAAgASkAADcAACAAQRhqIAFBGGopAAA3AAAgAEEQaiABQRBqKQAANwAAIABBCGogAUEIaikAADcAACADQSBqJICAgIAADwsgA0EANgIIQQAgA0EEakHE98OAACADQQhqQcj3w4AAEMiOgIAAAAuIAQEBfyOAgICAAEEwayICJICAgIAAIAIgADYCDCACQSRqQQE2AgAgAkEcakEBNgIAIAJB/PbDgAA2AhggAkEBNgIUIAJB9PbDgAA2AhAgAkHFhoCAADYCLCACIAJBKGo2AiAgAiACQQxqNgIoIAEgAkEQahDykICAACEAIAJBMGokgICAgAAgAAs8ACAAIAEpAAA3AAAgAEEYaiABQRhqKQAANwAAIABBEGogAUEQaikAADcAACAAQQhqIAFBCGopAAA3AAALGwBBfyAAIAFBIBC6kYCAACIBQQBHIAFBAEgbC0MAIAAoAgAhAAJAIAEQ9JCAgAANAAJAIAEQ9ZCAgAANACAAIAEQv5CAgAAPCyAAIAEQp5GAgAAPCyAAIAEQnZGAgAALDwAgACgCACABEJ6RgIAACwIAC3YBAX8jgICAgABBIGsiBSSAgICAACAFIAI2AgQgBSABNgIAIAVBCGpBEGogA0EQaikCADcDACAFQQhqQQhqIANBCGopAgA3AwAgBSADKQIANwMIIAAgBUHY98OAACAFQQRqQdj3w4AAIAVBCGogBBDXkICAAAALwQMBA38CQAJAAkACQAJAAkAgBEEBdEEBciACTw0AIAFBsPABOwAAIARFDQECQAJAIAMtAAAiBkEPSw0AQQIhByAFDQELQQMhByACQQNJDQMgASAGQQR2Qej3w4AAai0AADoAAgsgByACTw0DIAEgB2ogBkEPcUHo98OAAGotAAA6AAAgAyAEaiEIIAdBAWohB0EAIQRBASEGA0ACQAJAIARBAXFFDQAgAyAIRw0BDAgLIAggA2sgBk0NByADIAZqIQMLIAcgAk8NBSABIAdqIgYgAy0AACIFQQR2Qej3w4AAai0AADoAAAJAIAdBAWogAk8NACADQQFqIQNBASEEIAZBAWogBUEPcUHo98OAAGotAAA6AAAgB0ECaiEHQQAhBgwBCwsgB0EBaiACQdT5w4AAELeQgIAAAAtB1fjDgABBL0GE+cOAABC7kICAAAALQQBBAEGU+cOAABC3kICAAAALQQJBAkGk+cOAABC3kICAAAALIAcgAkG0+cOAABC3kICAAAALIAcgAkHE+cOAABC3kICAAAALAkAgByACSw0AIAAgBzYCBCAAIAE2AgAPCyAHIAJB5PnDgAAQuZCAgAAAC98BAQJ/I4CAgIAAQTBrIgIkgICAgAACQAJAIAAoAgAiA0GAgMQARw0AIAJBHGpBADYCACACQej3w4AANgIYIAJCATcCDCACQbT6w4AANgIIIAEgAkEIahDykICAACEADAELIAIgAzYCACACIAAoAgQ2AgQgAkEcakECNgIAIAJBLGpBgoCAgAA2AgAgAkICNwIMIAJBkPrDgAA2AgggAkHIhoCAADYCJCACIAJBIGo2AhggAiACQQRqNgIoIAIgAjYCICABIAJBCGoQ8pCAgAAhAAsgAkEwaiSAgICAACAAC9ICAQd/AkACQCACDQBBACEGDAELIAEgAmohByACQQFxIQhBACEJQQAhCkEAIQZBACECA0AgCSELQQAgAmshDAJAA0ACQAJAAkAgAS0AACICQb9/akH/AXFBBkkNACACQZ9/akH/AXFBBkkNASACQVBqIglB/wFxQQpJDQQCQCACQXdqIglBF0sNAEEBIAl0QZOAgARxDQMLIAAgAjYCACAAQQJBACAFGyAMazYCBA8LIAJBSWohCQwDCyACQal/aiEJDAILIAxBf2ohDCALIQogAUEBaiIBIAdHDQAMAwsLIAkgCkEEdHIhCgJAAkAgCEEBRg0AQQEhCAwBCwJAIAYgBEkNACAGIARBvPrDgAAQt5CAgAAACyADIAZqIAo6AAAgBkEBaiEGQQAhCAtBASAMayECIAFBAWoiASAHRw0ACwsgAEGBgMQANgIAIAAgBjYCBAuGAgEBfyOAgICAAEHAAGsiAiSAgICAAAJAAkAgACgCAA0AIAJBJGpBATYCACACQgI3AhQgAkGA+8OAADYCECACQYKAgIAANgIsIAIgAEEIaigCADYCPCACIAJBKGo2AiAgAiACQTxqNgIoIAEgAkEQahDykICAACEADAELIAIgACgCBDYCDCACQSRqQQI2AgAgAkEoakEMakGCgICAADYCACACQgM3AhQgAkHg+sOAADYCECACQYKAgIAANgIsIAIgAEEMaigCADYCPCACIAJBKGo2AiAgAiACQTxqNgIwIAIgAkEMajYCKCABIAJBEGoQ8pCAgAAhAAsgAkHAAGokgICAgAAgAAtmAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEUakEBNgIAIAJCATcCBCACQdD7w4AANgIAIAJByYaAgAA2AhwgAiAANgIYIAIgAkEYajYCECABIAIQ8pCAgAAhACACQSBqJICAgIAAIAALJAAgAEGAgMQANgIMIAAgAzYCCCAAIAE2AgAgACABIAJqNgIEC2sBAn8gACgCDCEBIABBgIDEADYCDAJAIAFBgIDEAEcNAEGAgMQAIQEgACgCACICIAAoAgRGDQAgACACQQFqNgIAIAAgACgCCCIBIAItAAAiAkEPcWotAAA2AgwgASACQQR2ai0AACEBCyABCzQAIABBATYCBCAAQQhqIAEoAgQgASgCAGtBAXQgASgCDEGAgMQAR3IiATYCACAAIAE2AgALGgAgAEKAgICAEDcCACAAQQhqIAEoAgQ2AgALZwECfwJAIAEoAgQiBCADSQ0AIAIgASgCACIFIAMQvJGAgAAaIAEgBCADazYCBCABIAUgA2o2AgAgAEEANgIADwsgAEIANwIEIABBEGpBHjYCACAAQQxqQdj7w4AANgIAIABBATYCAAsEAEEECwQAQQgLOgEBf0EBIQECQCAAKAIAKAIAIgBBwABJDQBBAiEBIABBgIABSQ0AQQRBBSAAQYCAgIAESRshAQsgAQsEACAACwQAIAALPgECfwJAAkAgACgCACIAKAIAIgINACAAQQhqIQMgACgCBCECDAELIABBCGohAwsgAiADKAIAIAEQgpGAgAALAgAL2wEBBH9BACECQQEhAwNAIAMhBAJAA0ACQCAEQX9qIgQNAAJAIAEgAEEEaigCACIEIABBCGooAgAgBBsgAEEMaigCABDxkICAAEUNAEEBDwsCQCAAKAIARQ0AQQEhBSABQfj7w4AAQQEQ8ZCAgAANA0EBIQUgAUH3+8OAAEEBEPGQgIAADQMgA0EBaiEDIAJBAWohAiAAKAIAIQAMBAsCQCACRQ0AQQEhBSABQff7w4AAQQEQ8ZCAgAANAwtBAA8LQQEhBSABQfb7w4AAQQEQ8ZCAgABFDQALCwsgBQsdACAAQgA3AgAgAEEMaiACNgIAIABBCGogATYCAAtrAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAANgIIIAIgAEEEajYCDCABQfn7w4AAQQVB/vvDgABBBSACQQhqQYT8w4AAQZT8w4AAQQQgAkEMakGY/MOAABD4kICAACEAIAJBEGokgICAgAAgAAtsAQF/I4CAgIAAQRBrIgIkgICAgAACQAJAIAAoAgAiACgCAA0AIAFBvPzDgABBBBDxkICAACEADAELIAIgADYCDCABQaj8w4AAQQQgAkEMakGs/MOAABD9kICAACEACyACQRBqJICAgIAAIAALAgALcwEBfyOAgICAAEEQayICJICAgIAAIAIgACgCACgCACIANgIIIAIgAEEE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KCABIAJBGGoQ8pCAgAAhBAwBCyACQQxqQeCGgIAANgIAIAJBLGpBAjYCACACQgM3AhwgAkGYgMSAADYCGCACQeCGgIAANgIEIAIgACgCACIANgIAIAIgAEEIajYCCCACIAI2AiggASACQRhqEPKQgIAAIQQLIAJBMGokgICAgAAgBAsZACAAKAIAIgAoAgAgACgCBCABEIWRgIAACxQAIAAoAgAgACgCBCABEIWRgIAACzgBAX8jgICAgABBEGsiASSAgICAACABQQhqIABBCGooAgA2AgAgASAAKQIANwMAIAEQgI+AgAAACzoBAX8jgICAgABBEGsiASSAgICAACABIAApAgA3AwggAUEIakGogcSAAEEAIAAoAghBARDFj4CAAAALAgALDQBC65GTtfbYs6L0AAszAQF/I4CAgIAAQRBrIgMkgICAgAAgAyACNgIIIAMgATYCBCADIAA2AgAgAxD/joCAAAALAgALJQACQCABKAIADQAQtY+AgAAACyAAQbyBxIAANgIEIAAgATYCAAtmAQJ/IAEoAgAhAiABQQA2AgACQAJAIAJFDQAgASgCBCEDQQhBBBC2hYCAACIBRQ0BIAEgAzYCBCABIAI2AgAgAEG8gcSAADYCBCAAIAE2AgAPCxC1j4CAAAALQQhBBBCokICAAAALDABC8IyDl4jR840TCw0AQq/Jh7TGk+mW5wALDQBC65GTtfbYs6L0AAudAgEDfyOAgICAAEHAAGsiAySAgICAAAJAAkAgAQ0AQeSBxIAAQQAgAhCFkYCAACEEDAELIANBEGogACABEJiRgIAAIAMgAykDEDcDGCADQSBqIANBGGoQlpGAgAACQCADKAIgRQ0AIANBMGpBCGohBQNAIAUgA0EgakEIaikDADcDACADIAMpAyA3AzAgA0EIaiADQTBqEJSRgIAAIAMoAgwhASADKAIIIQAgAyADQTBqEJWRgIAAAkAgAygCBA0AIAAgASACEIWRgIAAIQQMAwtBASEEIAIgACABEPGQgIAADQIgAkH9/wMQgJGAgAANAiADQSBqIANBGGoQlpGAgAAgAygCIA0ACwtBACEECyADQcAAaiSAgICAACAEC0MAIAAoAgAhAAJAIAEQ9JCAgAANAAJAIAEQ9ZCAgAANACAAIAEQv5CAgAAPCyAAIAEQp5GAgAAPCyAAIAEQnZGAgAALDwAgACgCACABEIGRgIAACxQAIAAoAgAgACgCBCABEIWRgIAAC+gBAQJ/I4CAgIAAQSBrIgMkgICAgAACQAJAIAEgAmoiAiABSQ0AIABBBGooAgAiAUEBdCIEIAIgBCACSxsiAkEIIAJBCEsbIgJBf3NBH3YhBAJAAkAgAUUNACADQQE2AhggAyABNgIUIAMgACgCADYCEAwBCyADQQA2AhgLIAMgAiAEIANBEGoQn4+AgAAgAygCBCEBAkAgAygCAA0AIAAgATYCACAAQQRqIAI2AgAMAgsgA0EIaigCACIAQYGAgIB4Rg0BIABFDQAgASAAEKiQgIAAAAsQqZCAgAAACyADQSBqJICAgIAAC5ECAQJ/I4CAgIAAQSBrIgIkgICAgAAgACgCACIDKAIAIQAgA0EANgIAAkACQCAARQ0AAkAgAEEUai0AAA0AIABBAToAFEEALQDQ4cSAACEAQQBBAToA0OHEgAAgAiAAOgAHIAANAgJAAkBBACgC6OHEgABB/////wdxRQ0AEJCPgIAARQ0BC0EAKALo4cSAAEH/////B3FFDQAQkI+AgAANAEEAQQE6ANHhxIAAC0EAQQA6ANDhxIAACyACQSBqJICAgIAADwtBqILEgABBK0GwhsSAABC7kICAAAALIAJBADYCHCACQeSBxIAANgIYIAJCATcCDCACQYCNxIAANgIIIAJBB2ogAkEIahCRj4CAAAALDABBACgCxOXEgABFC34BAX8jgICAgABBIGsiAiSAgICAACACQYSCxIAANgIEIAIgADYCACACQQhqQRBqIAFBEGopAgA3AwAgAkEIakEIaiABQQhqKQIANwMAIAIgASkCADcDCEEAIAJBiILEgAAgAkEEakGIgsSAACACQQhqQcCNxIAAENeQgIAAAAuJAgECfyOAgICAAEEQayIDJICAgIAAAkACQCACKAIARQ0AQcuGxIAAIQJBCSEEDAELIAMgAigCBCACKAIIEMmQgIAAQcuGxIAAIAMoAgQgAygCACIEGyECQQkgA0EIaigCACAEGyEECyACIAQgARCKj4CAACECAkACQCAAKAIAIgFFDQAgAEEEaigCACIARQ0BIAEgAEEBELeFgIAADAELIAAtAARBA0cNACAAQQhqKAIAIgAoAgAgACgCBCgCABGGgICAAAACQCAAKAIEIgFBBGooAgAiBEUNACAAKAIAIAQgAUEIaigCABC3hYCAAAsgAEEMQQQQt4WAgAALIANBEGokgICAgAAgAgsCAAtBAQF/IAAoAgAhAQJAIABBBGotAAANAEEAKALo4cSAAEH/////B3FFDQAQkI+AgAANACABQQE6AAELIAFBADoAAAuNAQEDfwJAAkAgACgCACIBRQ0AIABBBGooAgAiAEUNASABIABBARC3hYCAAA8LIAAtAARBA0cNACAAQQhqKAIAIgEoAgAgASgCBCgCABGGgICAAAACQCABKAIEIgJBBGooAgAiA0UNACABKAIAIAMgAkEIaigCABC3hYCAAAsgACgCCEEMQQQQt4WAgAALC2MBAX8CQCAAQRBqKAIAIgFFDQAgAUEAOgAAIABBFGooAgAiAUUNACAAKAIQIAFBARC3hYCAAAsCQCAAQX9GDQAgACAAKAIEIgFBf2o2AgQgAUEBRw0AIABBIEEIELeFgIAACwsjAQF/AkAgAEEEaigCACIBRQ0AIAAoAgAgAUEBELeFgIAACwsqAQF/AkAgACgCBCIBRQ0AIABBCGooAgAiAEUNACABIABBARC3hYCAAAsLegEBfyOAgICAAEEgayIDJICAgIAAIANBxI7EgAA2AgQgAyAANgIAIANBCGpBEGogAUEQaikCADcDACADQQhqQQhqIAFBCGopAgA3AwAgAyABKQIANwMIQQAgA0GYgsSAACADQQRqQZiCxIAAIANBCGogAhDXkICAAAALDwAgACgCACABEIiRgIAAC/kCAQJ/I4CAgIAAQRBrIgIkgICAgAAgACgCACEAAkACQAJAAkAgAUGAAUkNACACQQA2AgwgAUGAEE8NASACIAFBP3FBgAFyOgANIAIgAUEGdkHAAXI6AAxBAiEBDAILAkAgACgCCCIDIAAoAgRHDQAgACADEJyPgIAAIAAoAgghAwsgACADQQFqNgIIIAAoAgAgA2ogAToAAAwCCwJAIAFBgIAESQ0AIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBCEBDAELIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMhAQsCQCAAQQRqKAIAIAAoAggiA2sgAU8NACAAIAMgARCOj4CAACAAKAIIIQMLIAAoAgAgA2ogAkEMaiABELyRgIAAGiAAIAMgAWo2AggLIAJBEGokgICAgABBAAvmAQEDfyOAgICAAEEgayICJICAgIAAAkACQCABQQFqIgFFDQAgAEEEaigCACIDQQF0IgQgASAEIAFLGyIBQQggAUEISxsiAUF/c0EfdiEEAkACQCADRQ0AIAJBATYCGCACIAM2AhQgAiAAKAIANgIQDAELIAJBADYCGAsgAiABIAQgAkEQahCfj4CAACACKAIEIQMCQCACKAIADQAgACADNgIAIABBBGogATYCAAwCCyACQQhqKAIAIgBBgYCAgHhGDQEgAEUNACADIAAQqJCAgAAACxCpkICAAAALIAJBIGokgICAgAALdAEBfyOAgICAAEEgayICJICAgIAAIAIgACgCADYCBCACQQhqQRBqIAFBEGopAgA3AwAgAkEIakEIaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQcyBxIAAIAJBCGoQwpCAgAAhASACQSBqJICAgIAAIAELUwEBfwJAIAAoAgAiAEEEaigCACAAKAIIIgNrIAJPDQAgACADIAIQjo+AgAAgACgCCCEDCyAAKAIAIANqIAEgAhC8kYCAABogACADIAJqNgIIQQALwwEBAX8CQAJAIAJFDQACQAJAAkACQAJAIAFBAEgNACADKAIIRQ0CIAMoAgQiBA0BIAENAyACIQMMBAsgAEEIakEANgIADAULIAMoAgAgBCACIAEQuIWAgAAhAwwCCyABDQAgAiEDDAELIAEgAhC2hYCAACEDCwJAIANFDQAgACADNgIEIABBCGogATYCACAAQQA2AgAPCyAAIAE2AgQgAEEIaiACNgIADAELIAAgATYCBCAAQQhqQQA2AgALIABBATYCAAv8AwEGfwJAAkACQAJAAkAgAUEJSQ0AQRBBCBDJj4CAACABSw0BDAILIAAQoY+AgAAhAgwCC0EQQQgQyY+AgAAhAQsQ3I+AgAAiA0EIEMmPgIAAIQRBFEEIEMmPgIAAIQVBEEEIEMmPgIAAIQZBACECQQBBEEEIEMmPgIAAQQJ0ayIHIAMgBiAEIAVqamtB+P97akF3cUF9aiIDIAcgA0kbIAFrIABNDQAgAUEQIABBBGpBEEEIEMmPgIAAQXtqIABLG0EIEMmPgIAAIgRq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BkEBcjYCBCAAIAIQ1o+AgAAgABDbj4CAACEGDAYLQQAgBjYCtOXEgAAMAwsgACAAKAIEIAVqNgIEQQAoApTlxIAAQQAoAozlxIAAIAVqEKePgIAADAMLQQAgAzYCkOXEgABBAEEAKAKI5cSAACACaiIANgKI5cSAACADIAAQ14+AgAAgBhDbj4CAACEGDAMLIAMgAiAAENiPgIAAAkAgAkGAAkkNACADIAIQpI+AgAAgBhDbj4CAACEGDAMLIAJBeHFBgOLEgABqIQACQAJAQQAoAvjhxIAAIgRBASACQQN2dCICcUUNACAAKAIIIQIMAQtBACAEIAJyNgL44cSAACAAIQILIAAgAzYCCCACIAM2AgwgAyAANgIMIAMgAjYCCCAGENuPgIAAIQYMAgtBAEH/HzYCuOXEgABBACAINgKs5cSAAEEAIAU2AqTlxIAAQQAgBjYCoOXEgABBAEGA4sSAADYCjOLEgABBAEGI4sSAADYClOLEgABBAEGA4sSAADYCiOLEgABBAEGQ4sSAADYCnOLEgABBAEGI4sSAADYCkOLEgABBAEGY4sSAADYCpOLEgABBAEGQ4sSAADYCmOLEgABBAEGg4sSAADYCrOLEgABBAEGY4sSAADYCoOLEgABBAEGo4sSAADYCtOLEgABBAEGg4sSAADYCqOLEgABBAEGw4sSAADYCvOLEgABBAEGo4sSAADYCsOLEgABBAEG44sSAADYCxOLEgABBAEGw4sSAADYCuOLEgABBAEHA4sSAADYCzOLEgABBAEG44sSAADYCwOLEgABBAEHA4sSAADYCyOLEgABBAEHI4sSAADYC1OLEgABBAEHI4sSAADYC0OLEgABBAEHQ4sSAADYC3OLEgABBAEHQ4sSAADYC2OLEgABBAEHY4sSAADYC5OLEgABBAEHY4sSAADYC4OLEgABBAEHg4sSAADYC7OLEgABBAEHg4sSAADYC6OLEgABBAEHo4sSAADYC9OLEgABBAEHo4sSAADYC8OLEgABBAEHw4sSAADYC/OLEgABBAEHw4sSAADYC+OLEgABBAEH44sSAADYChOPEgABBAEH44sSAADYCgOPEgABBAEGA48SAADYCjOPEgABBAEGI48SAADYClOPEgABBAEGA48SAADYCiOPEgABBAEGQ48SAADYCnOPEgABBAEGI48SAADYCkOPEgABBAEGY48SAADYCpOPEgABBAEGQ48SAADYCmOPEgABBAEGg48SAADYCrOPEgABBAEGY48SAADYCoOPEgABBAEGo48SAADYCtOPEgABBAEGg48SAADYCqOPEgABBAEGw48SAADYCvOPEgABBAEGo48SAADYCsOPEgABBAEG448SAADYCxOPEgABBAEGw48SAADYCuOPEgABBAEHA48SAADYCzOPEgABBAEG448SAADYCwOPEgABBAEHI48SAADYC1OPEgABBAEHA48SAADYCyOPEgABBAEHQ48SAADYC3OPEgABBAEHI48SAADYC0OPEgABBAEHY48SAADYC5OPEgABBAEHQ48SAADYC2OPEgABBAEHg48SAADYC7OPEgABBAEHY48SAADYC4OPEgABBAEHo48SAADYC9OPEgABBAEHg48SAADYC6OPEgABBAEHw48SAADYC/OPEgABBAEHo48SAADYC8OPEgABBAEH448SAADYChOTEgABBAEHw48SAADYC+OPEgABBAEH448SAADYCgOTEgAAQ3I+AgAAiA0EIEMmPgIAAIQRBFEEIEMmPgIAAIQdBEEEIEMmPgIAAIQhBACAGIAYQ24+AgAAiAEEIEMmPgIAAIABrIgoQ2Y+AgAAiADYClOXEgABBACADIAVqIAggBCAHamogCmprIgY2AozlxIAAIAAgBkEBcjYCBBDcj4CAACIDQQgQyY+AgAAhBEEUQQgQyY+AgAAhBUEQQQgQyY+AgAAhByAAIAYQ2Y+AgAAgByAFIAQgA2tqajYCBEEAQYCAgAE2ArDlxIAAC0EAIQZBACgCjOXEgAAiACACTQ0AQQAgACACayIGNgKM5cSAAEEAQQAoApTlxIAAIgAgAhDZj4CAACIDNgKU5cSAACADIAZBAXI2AgQgACACENaPgIAAIAAQ24+AgAAhBgsgAUEQaiSAgICAACAGC9IFAQR/IAAgARDZj4CAACECAkACQAJAIAAQ0I+AgAANACAAKAIAIQMCQAJAIAAQ04+AgAANACADIAFqIQEgACADENqPgIAAIgBBACgCkOXEgABHDQEgAigCBEEDcUEDRw0CQQAgATYCiOXEgAAgACABIAIQ2I+AgAAPC0H44cSAACAAIANrIAMgAWpBEGoiABDpj4CAAEUNAkEAQQAoApjlxIAAIABrNgKY5cSAAA8LAkAg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IABB5IHEgAA2AhggAEIBNwIMIABBgJDEgAA2AgggAEEIakGIkMSAABC2kICAAAALIABBADYCHCAAQeSBxIAANgIYIABCATcCDCAAQbiQxIAANgIIIABBBGogAEEIakHAkMSAABCZj4CAAAALIABBHGpBADYCACAAQeSBxIAANgIYIABCATcCDCAAQZCMxIAANgIIIABBCGpB0IzEgAAQtpCAgAAACwcAIABBEGoL8AEBBn8jgICAgABBEGsiAiSAgICAAAJAAkAgACgCCEECRg0AIABBCGogARCckICAACEDDAELQQAhAyAAKAIEIgRFDQAgACgCACEAAkADQCACIAAgBBDJkICAAAJAIAIoAgANACACKAIEIAIoAgggARCFkYCAAEUNAwwCCyACLQAJIQUgAi0ACCEGIAIoAgQhB0GQh8SAAEEDIAEQhZGAgAANASAGQQFxRQ0CAkAgBCAHIAVqIgZJDQAgACAGaiEAIAQgBmsiBA0BDAMLCyAGIARBhIrEgAAQuJCAgAAAC0EBIQMLIAJBEGokgICAgAAgAwuRAgECfyOAgICAAEEgayIBJICAgIAAAkACQAJAAkACQEEAKALM4cSAAA4CAQIAC0EALQDQ4cSAACECQQBBAToA0OHEgAAgASACOgAHIAINAwJAAkACQEEAKALo4cSAAEH/////B3FFDQAQkI+AgAAhAiAAQgA3AgAgAg0BDAILIABCADcCAAtBACgC6OHEgABB/////wdxRQ0AEJCPgIAADQBBAEEBOgDR4cSAAAtBAEEAOgDQ4cSAAAwCC0EAQQE2AszhxIAACyAAQQE2AgALIAFBIGokgICAgAAPCyABQQA2AhwgAUHkgcSAADYCGCABQgE3AgwgAUGAjcSAADYCCCABQQdqIAFBCGoQkY+AgAAACwcAIAAoAgAL/gkBCX8jgICAgABBoAFrIgIkgICAgAACQAJAAkACQAJAAkACQCAAKAIADgMCAAECCyABQbyFxIAAQRIQ8ZCAgAAhAAwFCwJAIAAoAgRBA0YNACACIABBBGoiAzYCgAEgAiACQYABajYCOCADQQAgAkE4akGAhsSAAEHkhcSAABCoj4CAAAsCQAJAAkAgARDzkICAAA0AIABBFGooAgAiBCAAQQhqKAIAIgNJDQIgAEEMaigCACADQQxsaiEFIAQgA2shA0EAIQAMAQsgAEEUaigCACEDIABBDGooAgAhBUEBIQALIAJBADYCCCACIAA6ABQgAkHoi8SAAK1CIIZCAoQ3AgwgAkEYakEMakGohcSAADYCACACIAA6ACggAkEANgIcIAIgATYCGCACIAJBCGo2AiAgA0UNAyAFIANBDGxqIQYgAkE4akEMaiEBIAJBgAFqQQRyIQcDQAJAAkACQCAFQQhqKAIAIgNFDQAgBSgCACIAIANBLGxqIQgDQCACQQA2AjQgAiACQRhqNgIwAkACQCAAKAIAIgMNAEEDIQQMAQsgAkGAAWogAyAAQQhqKAIAIgkQyZCAgABBAiEEAkAgAigCgAENACACKAKEASIKRQ0AIAJBgAFqIAogAigCiAEQm5CAgAAgAigCgAEiCkECRg0AIAJB4ABqQRhqIAdBGGooAgA2AgAgAkHgAGpBEGogB0EQaikCADcDACACQeAAakEIaiAHQQhqKQIANwMAIAIgBykCADcDYCAKIQQLIAEgAikDYDcCACABQRhqIAJB4ABqQRhqKAIANgIAIAFBEGogAkHgAGpBEGopAwA3AgAgAUEIaiACQeAAakEIaikDADcCACACIAk2AjwgAiADNgI4CyACIAQ2AkACQAJAIABBDGooAgAiA0ECRw0AIAJBAjYCgAEMAQsgAiADNgKAASACIABBGGooAgA2AogBIAIgAEEQaigCADYChAELIAJBMGogAkE4aiACQYABaiAAQRxqKAIAIABBIGooAgAgAEEkaigCACAAQShqKAIAELOPgIAAIQMgAigCMCIEIAQoAgRBAWo2AgQgAw0CIABBLGoiACAIRw0ADAMLCyACQQA2AmQgAiACQRhqNgJgIAJBAzYCQCACQQI2AoABIAJB4ABqIAJBOGogAkGAAWpBACACQQAgAhCzj4CAACEAIAIoAmAiAyADKAIEQQFqNgIEIABFDQELAkACQCACKAIIIgBFDQAgAigCDCIBRQ0BIAAgAUEBELeFgIAAQQEhAAwJCyACLQAMQQNHDQAgAkEIakEIaigCACIAKAIAIAAoAgQoAgARhoCAgAAAAkAgACgCBCIBQQRqKAIAIgNFDQAgACgCACADIAFBCGooAgAQt4WAgAALIAIoAhBBDEEEELeFgIAAC0EBIQAMBwsgBUEMaiIFIAZGDQMMAAsLIAMgBEGYhcSAABC4kICAAAAL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AEF+IAdBA3Z3cTYC+OHEgAALAkAgCEEQQQgQyY+AgABJDQAgASAEENmPgIAAIQUgASAEENSPgIAAIAUgCBDUj4CAACAFIAgQoo+AgAAMAQsgASAFENSPgIAACyABDQMLIAMQoY+AgAAiBEUNASAEIAAgARDOj4CAAEF4QXwgARDTj4CAABtqIgIgAyACIANJGxC8kYCAACEDIAAQpo+AgAAgAw8LIAIgACABIAMgASADSRsQvJGAgAAaIAAQpo+AgAALIAIPCyABENOPgIAAGiABENuPgIAAC0UAAkAgACABEKCPgIAAIgFFDQACQEH44cSAABDrj4CAAEUNACABEN2PgIAAENOPgIAADQELIAFBACAAELmRgIAAGgsgAQuDAwEEfyOAgICAAEEgayICJICAgIAAAkACQAJAQQAoAujhxIAAQf////8HcUUNABCQj4CAAEUNAQtBACgC2OHEgAAhA0EAQX82AtjhxIAAIAMNAQJAAkACQEEAKALo4cSAAEH/////B3ENAEEAKALk4cSAACEEQQAgATYC5OHEgABBACgC4OHEgAAhA0EAIAA2AuDhxIAADAELEJCPgIAAIQVBACgC5OHEgAAhBEEAIAE2AuThxIAAQQAoAuDhxIAAIQNBACAANgLg4cSAACAFRQ0BC0EAKALo4cSAAEH/////B3FFDQAQkI+AgAANAEEAQQE6ANzhxIAAC0EAQQA2AtjhxIAAAkAgA0UNACADIAQoAgARhoCAgAAAIARBBGooAgAiAUUNACADIAEgBEEIaigCABC3hYCAAAsgAkEgaiSAgICAAA8LIAJBHGpBADYCACACQeSBxIAANgIYIAJCATcCDCACQaSIxIAANgIIIAJBCGpByIjEgAAQtpCAgAAACwAAC30BA38jgICAgABBEGsiASSAgICAAAJAAkAgABDQkICAACICRQ0AIAAQz5CAgAAiA0UNASABIAI2AgggASAANgIEIAEgAzYCACABELiPgIAAAAtBqILEgABBK0HoiMSAABC7kICAAAALQaiCxIAAQStB2IjEgAAQu5CAgAAAC7ECAgR/AX4jgICAgABBMGsiAiSAgICAACABQQRqIQMCQCABKAIEDQAgASgCACEEIAJBCGpBCGoiBUEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEYakEQaiAEQRBqKQIANwMAIAJBGGpBCGogBEEIaikCADcDACACIAQpAgA3AxggAkEUakHMgcSAACACQRhqEMKQgIAAGiADQQhqIAUoAgA2AgAgAyACKQMINwIACyACQRhqQQhqIgQgA0EIaigCADYCACABQQxqQQA2AgAgAykCACEGIAFCATcCBCACIAY3AxgCQEEMQQQQtoWAgAAiAQ0AQQxBBBCokICAAAALIAEgAikDGDcCACABQQhqIAQoAgA2AgAgAEH4iMSAADYCBCAAIAE2AgAgAkEwaiSAgICAAAvIAQEDfyOAgICAAEEwayICJICAgIAAIAFBBGohAwJAIAEoAgQNACABKAIAIQEgAkEIakEIaiIEQQA2AgAgAkIBNwMIIAIgAkEIajYCFCACQRhqQRBqIAFBEGopAgA3AwAgAkEYakEIaiABQQhqKQIANwMAIAIgASkCADcDGCACQRRqQcyBxIAAIAJBGGoQwpCAgAAaIANBCGogBCgCADYCACADIAIpAwg3AgALIABB+IjEgAA2AgQgACADNgIAIAJBMGokgICAgAALTgECfyABKAIEIQIgASgCACEDAkBBCEEEELaFgIAAIgENAEEIQQQQqJCAgAAACyABIAI2AgQgASADNgIAIABBiInEgAA2AgQgACABNgIACxQAIABBiInEgAA2AgQgACABNgIAC50CAQJ/I4CAgIAAQSBrIgUkgICAgABBAEEAKALo4cSAACIGQQFqNgLo4cSAAAJAAkAgBkEASA0AQQBBACgCxOXEgABBAWoiBjYCxOXEgAAgBkECSw0AIAUgBDoAGCAFIAM2AhQgBSACNgIQIAVBwInEgAA2AgwgBUHkgcSAADYCCEEAKALY4cSAACIDQX9MDQBBACADQQFqIgM2AtjhxIAAAkBBACgC4OHEgABFDQAgBSAAIAEoAhARhICAgAAAIAUgBSkDADcDCEEAKALg4cSAACAFQQhqQQAoAuThxIAAKAIUEYSAgIAAAEEAKALY4cSAACEDC0EAIANBf2o2AtjhxIAAIAZBAUsNACAEDQELAAALIAAgARDGj4CAAAALMQEBfyOAgICAAEEQayICJICAgIAAIAIgATYCDCACIAA2AgggAkEIahDIj4CAABoAAAslAQF/IAAgAUEAKALU4cSAACICQemGgIAAIAIbEYSAgIAAAAAACwQAAAALEAAgACABakF/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NgI0IAJBtJ/EgAA2AjAgAiACQSBqNgJAIAJBLGpBmJHEgAAgAkEwahDCkICAACEDCyACKAIQIQQCQCADRQ0AIARFDQAgAUG0oMSAAEEUEPGQgIAARQ0BDAMLIAMNAiAEDQELIAEgACgCGCAAQRxqKAIAEPGQgIAAIQMMAgtB3J/EgABBNyACQcgAakGUoMSAAEGkoMSAABDakICAAAALQQEhAwsgAkHQAGokgICAgAAgAwsSACABQcigxIAAQRIQ8ZCAgAALggEBAn8jgICAgABBEGsiAiSAgICAACAAKAIAIgBBCGooAgAhAyAAKAIAIQAgAiABEP+QgIAAAkAgA0UNAANAIAIgADYCDCACIAJBDGpBxKLEgAAQ4ZCAgAAaIABBAWohACADQX9qIgMNAAsLIAIQ4pCAgAAhACACQRBqJICAgIAAIAALQwAgACgCACEAAkAgARD0kICAAA0AAkAgARD1kICAAA0AIAAgARCRkYCAAA8LIAAgARCXkYCAAA8LIAAgARCekYCAAAsPACAAKAIAIAEQspGAgAALAgALEQAgACgCACABEKOQgIAAQQAL8AIBAn8jgICAgABBEGsiAiSAgICAAAJAAkACQAJAIAFBgAFJDQAgAkEANgIMIAFBgBBPDQEgAiABQT9xQYABcjoADSACIAFBBnZBwAFyOgAMQQIhAQwCCwJAIAAoAggiAyAAKAIERw0AIAAgAxCqkICAACAAKAIIIQMLIAAgA0EBajYCCCAAKAIAIANqIAE6AAAMAgsCQCABQYCABEkNACACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQhAQwBCyACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDIQELAkAgAEEEaigCACAAKAIIIgNrIAFPDQAgACADIAEQppCAgAAgACgCCCEDCyAAKAIAIANqIAJBDGogARC8kYCAABogACADIAFqNgIICyACQRBqJICAgIAAC3QBAX8jgICAgABBIGsiAiSAgICAACACIAAoAgA2AgQgAkEIakEQaiABQRBqKQIANwMAIAJBCGpBCGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGsosSAACACQQhqEMKQgIAAIQEgAkEgaiSAgICAACABC1MBAX8CQCAAKAIAIgBBBGooAgAgACgCCCIDayACTw0AIAAgAyACEKaQgIAAIAAoAgghAwsgACgCACADaiABIAIQvJGAgAAaIAAgAyACajYCCEEAC+gBAQJ/I4CAgIAAQSBrIgMkgICAgAACQAJAIAEgAmoiAiABSQ0AIABBBGooAgAiAUEBdCIEIAIgBCACSxsiAkEIIAJBCEsbIgJBf3NBH3YhBAJAAkAgAUUNACADQQE2AhggAyABNgIUIAMgACgCADYCEAwBCyADQQA2AhgLIAMgAiAEIANBEGoQp5CAgAAgAygCBCEBAkAgAygCAA0AIAAgATYCACAAQQRqIAI2AgAMAgsgA0EIaigCACIAQYGAgIB4Rg0BIABFDQAgASAAEKiQgIAAAAsQqZCAgAAACyADQSBqJICAgIAAC9oBAAJAAkAgAkUNAAJAAkACQAJAAkACQCABQQBIDQAgAygCCA0BIAENAkEBIQIMBAsgAEEIakEANgIADAYLAkAgAygCBCICDQACQCABDQBBASECDAQLIAFBARC2hYCAACECDAILIAMoAgAgAkEBIAEQuIWAgAAhAgwBCyABQQEQtoWAgAAhAgsgAkUNAQsgACACNgIEIABBCGogATYCACAAQQA2AgAPCyAAIAE2AgQgAEEIakEBNgIAIABBATYCAA8LIAAgATYCBCAAQQhqQQA2AgALIABBATYCAAsNACAAIAEQq5CAgAAAC04BAX8jgICAgABBIGsiACSAgICAACAAQRxqQQA2AgAgAEHUosSAADYCGCAAQgE3AgwgAEGEo8SAADYCCCAAQQhqQYyjxIAAELaQgIAAAAvmAQEDfyOAgICAAEEgayICJICAgIAAAkACQCABQQFqIgFFDQAgAEEEaigCACIDQQF0IgQgASAEIAFLGyIBQQggAUEISxsiAUF/c0EfdiEEAkACQCADRQ0AIAJBATYCGCACIAM2AhQgAiAAKAIANgIQDAELIAJBADYCGAsgAiABIAQgAkEQahCnkICAACACKAIEIQMCQCACKAIADQAgACADNgIAIABBBGogATYCAAwCCyACQQhqKAIAIgBBgYCAgHhGDQEgAEUNACADIAAQqJCAgAAACxCpkICAAAALIAJBIGokgICAgAALDQAgACABELqFgIAAAAtfAQJ/QQAhAkEEIQMCQCABQQVJDQAgASEDAkACQCABQXtqDgICAQALIAFBeWohAUEBIQJBBiEDDAELQQAhAUEBIQJBBSEDCyAAIAI2AgQgACADNgIAIABBCGogATYCAAufBAEGfyOAgICAAEEwayICJICAgIAAAkACQAJAAkACQAJAIAEoAgQiA0UNACABKAIAIQQgA0F/akH/////AXEiA0EBaiIFQQdxIQYCQAJAIANBB08NAEEAIQUgBCEDDAELIARBPGohAyAFQfj///8DcSEHQQAhBQNAIAMoAgAgA0F4aigCACADQXBqKAIAIANBaGooAgAgA0FgaigCACADQVhqKAIAIANBUGooAgAgA0FIaigCACAFampqampqamohBSADQcAAaiEDIAdBeGoiBw0ACyADQURqIQMLAkAgBkUNACADQQRqIQMDQCADKAIAIAVqIQUgA0EIaiEDIAZBf2oiBg0ACwsgAUEUaigCAA0BIAUhBgwDC0EAIQUgAUEUaigCAA0BQQEhAwwECyAEKAIEDQAgBUEQSQ0CCyAFIAVqIgYgBUkNAQsgBkUNAAJAAkAgBkF/TA0AIAZBARC2hYCAACIDRQ0BIAYhBQwDCxCpkICAAAALIAZBARCokICAAAALQQEhA0EAIQULIABBADYCCCAAIAU2AgQgACADNgIAIAIgADYCDCACQRBqQRBqIAFBEGopAgA3AwAgAkEQakEIaiABQQhqKQIANwMAIAIgASkCADcDEAJAIAJBDGpBrKLEgAAgAkEQahDCkICAAEUNAEGco8SAAEEzIAJBKGpB0KPEgABB+KPEgAAQ2pCAgAAACyACQTBqJICAgIAACw8AIABBDGogARCQkYCAAAt1AQJ/IAEoAgAhAgJAAkACQAJAIAFBCGooAgAiAQ0AQQEhAwwBCyABQX9MDQEgAUEBELaFgIAAIgNFDQILIAMgAiABELyRgIAAIQIgACABNgIIIAAgATYCBCAAIAI2AgAPCxCpkICAAAALIAFBARCokICAAAALhQEBAX8jgICAgABBMGsiAiSAgICAACACIAE2AgQgAiAANgIAIAJBHGpBAjYCACACQSxqQYKAgIAANgIAIAJCAzcCDCACQeikxIAANgIIIAJBgoCAgAA2AiQgAiACQSBqNgIYIAIgAkEEajYCKCACIAI2AiAgAkEIakGApcSAABC2kICAAAALgQEBAX8jgICAgABBMGsiAySAgICAACADIAE2AgQgAyAANgIAIANBHGpBAjYCACADQSxqQYKAgIAANgIAIANCAzcCDCADQaSlxIAANgIIIANBgoCAgAA2AiQgAyADQSBqNgIYIAMgA0EEajYCKCADIAM2AiAgA0EIaiACELaQgIAAAAuFAQEBfyOAgICAAEEwayICJICAgIAAIAIgATYCBCACIAA2AgAgAkEcakECNgIAIAJBLGpBgoCAgAA2AgAgAkIDNwIMIAJB1KXEgAA2AgggAkGCgICAADYCJCACIAJBIGo2AhggAiACQQRqNgIoIAIgAjYCICACQQhqQeylxIAAELaQgIAAAAtrAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAANgIIIAIgAEEMajYCDCABQaimxIAAQQ1BjKbEgABBBSACQQhqQfylxIAAQZGmxIAAQQUgAkEMakGYpsSAABD4kICAACEAIAJBEGokgICAgAAgAAsNACAAKAIAGgN/DAALCwIAC0wBAX8jgICAgABBIGsiAiSAgICAACACQQE6ABggAiABNgIUIAIgADYCECACQcSqxIAANgIMIAJBuKbEgAA2AgggAkEIahDAj4CAAAALgQEBAX8jgICAgABBMGsiAySAgICAACADIAE2AgQgAyAANgIAIANBHGpBAjYCACADQSxqQYKAgIAANgIAIANCAjcCDCADQfipxIAANgIIIANBgoCAgAA2AiQgAyADQSBqNgIYIAMgAzYCKCADIANBBGo2AiAgA0EIaiACELaQgIAAAAsPACAAIAEgAhCJkYCAAAALDwAgACABIAIQipGAgAAAC+YHAQh/IAAoAhAhAwJAAkACQCAAKAIIIgRBAUYNACADQQFHDQELAkAgA0EBRw0AIAEgAmohBSAAQRRqKAIAQQFqIQZBACEHIAEhCAJAA0AgCCEDIAZBf2oiBkUNASADIAVGDQICQAJAIAMsAAAiCUF/TA0AIANBAWohCCAJQf8BcSEJDAELIAMtAAFBP3EhCCAJQR9xIQoCQCAJQV9LDQAgCkEGdCAIciEJIANBAmohCAwBCyAIQQZ0IAMtAAJBP3FyIQgCQCAJQXBPDQAgCCAKQQx0ciEJIANBA2ohCAwBCyAIQQZ0IAMtAANBP3FyIApBEnRBgIDwAHFyIglBgIDEAEYN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D0shBCAAQQR2IQAgBA0ACyADQYABaiIAQYEBTw0BIAFBAUH4rMSAAEECIAIgA2pBgAFqQQAgA2sQ5pCAgAAhAAwCCyAAQYABQeisxIAAELiQgIAAAAsgAEGAAUHorMSAABC4kICAAAALIAJBgAFqJICAgIAAIAALOwEBfyOAgICAAEEQayICJICAgIAAIAIgACgCADYCDCACQQxqIAEQwJCAgAAhACACQRBqJICAgIAAIAALxAUBCn8jgICAgABBMGsiAySAgICAACADQSRqIAE2AgAgA0EDOgAoIANCgICAgIAENwMIIAMgADYCIEEAIQQgA0EANgIYIANBADYCEAJAAkACQAJAIAIoAggiBQ0AIAJBFGooAgAiAEUNASACKAIQIQEgAEEDdCEGIABBf2pB/////wFxQQFqIQQgAigCACEAA0ACQCAAQQRqKAIAIgdFDQAgAygCICAAKAIAIAcgAygCJCgCDBGFgICAAAANBAsgASgCACADQQhqIAFBBGooAgARiICAgAAADQMgAUEIaiEBIABBCGohACAGQXhqIgYNAAwCCwsgAkEMaigCACIBRQ0AIAFBBXQhCCABQX9qQf///z9xQQFqIQQgAigCACEAQQAhBgNAAkAgAEEEaigCACIBRQ0AIAMoAiAgACgCACABIAMoAiQoAgwRhYCAgAAADQMLIAMgBSAGaiIBQRxqLQAAOgAoIAMgAUEEaikCAEIgiTcDCCABQRhqKAIAIQkgAigCECEKQQAhC0EAIQcCQAJAAkAgAUEUaigCAA4DAQACAQsgCUEDdCEMQQAhByAKIAxqIgxBBGooAgBBkoeAgABHDQEgDCgCACgCACEJC0EBIQcLIAMgCTYCFCADIAc2AhAgAUEQaigCACEHAkACQAJAIAFBDGooAgAOAwEAAgELIAdBA3QhCSAKIAlqIglBBGooAgBBkoeAgABHDQEgCSgCACgCACEHC0EBIQsLIAMgBzYCHCADIAs2AhggCiABKAIAQQN0aiIBKAIAIANBCGogASgCBBGIgICAAAANAiAAQQhqIQAgCCAGQSBqIgZHDQALCwJAIAQgAigCBE8NACADKAIgIAIoAgAgBEEDdGoiASgCACABKAIEIAMoAiQoAgwRhYCAgAAADQELQQAhAQwBC0EBIQELIANBMGokgICAgAAgAQuKAQEEfyOAgICA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QQM2AjwgAkIDNwIsIAJBjKrEgAA2AiggAiACQRBqNgI4IAQgASACQShqEMKQgIAAIQMLIAJBwABqJICAgIAAIAMLeQEDfyOAgICAAEEgayICJICAgIAAIAFBHGooAgAhAyABKAIYIQQgAkEIakEQaiAAKAIAIgFBEGopAgA3AwAgAkEIakEIaiABQQhqKQIANwMAIAIgASkCADcDCCAEIAMgAkEIahDCkICAACEBIAJBIGokgICAgAAgAQsZACABIAAoAgAiACgCACAAKAIEELqQgIAAC1gBAX8jgICAgABBIGsiAiSAgICAACACQRRqQQE2AgAgAkIBNwIEIAJB1KrEgAA2AgAgAkGTh4CAADYCHCACIAA2AhggAiACQRhqNgIQIAIgARC2kICAAAALegEBfyOAgICAAEEgayIDJICAgIAAIAMgATYCBCADIAA2AgAgA0EIakEQaiACQRBqKQIANwMAIANBCGpBCGogAkEIaikCADcDACADIAIpAgA3AwhBACADQZjGxIAAIANBBGpBmMbEgAAgA0EIakGkr8SAABDXkICAAAAL2QMBAX8jgICAgABB8ABrIgckgICAgAAgByACNgIMIAcgATYCCCAHIAQ2AhQgByADNgIQAkACQAJAAkAgAEH/AXEOAwABAgALIAdB5arEgAA2AhhBAiECDAILIAdB46rEgAA2AhhBAiECDAELIAdB3KrEgAA2AhhBByECCyAHIAI2AhwCQCAFKAIADQAgB0E4akEUakGWh4CAADYCACAHQcQAakGWh4CAADYCACAHQdgAakEUakEDNgIAIAdCBDcCXCAHQcirxIAANgJYIAdBk4eAgAA2AjwgByAHQThqNgJoIAcgB0EQajYCSCAHIAdBCGo2AkAgByAHQRhqNgI4IAdB2ABqIAYQtpCAgAAACyAHQSBqQRBqIAVBEGopAgA3AwAgB0EgakEIaiAFQQhqKQIANwMAIAcgBSkCADcDICAHQdgAakEUakEENgIAIAdB1ABqQYGAgIAANgIAIAdBOGpBFGpBloeAgAA2AgAgB0HEAGpBloeAgAA2AgAgB0IENwJcIAdBpKvEgAA2AlggB0GTh4CAADYCPCAHIAdBOGo2AmggByAHQSBqNgJQIAcgB0EQajYCSCAHIAdBCGo2AkAgByAHQRhqNgI4IAdB2ABqIAYQtpCAgAAA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AowBQX9qELmRgIAAGiAEIACnQTByOgBlIARBADYCjAELIAMgAkG4psSAAEEAIARB5QBqIAQoAowBIgdqQScgB2sQ5pCAgAAhAyAEQZABaiSAgICAACADC9YGAQd/AkACQCABRQ0AQStBgIDEACAAKAIAIgZBAXEiARshByABIAVqIQgMAQsgBUEBaiEIIAAoAgAhBkEtIQcLAkACQCAGQQRxDQBBACECDAELAkACQCADQRBJDQAgAiADEO6QgIAAIQkMAQsCQCADDQBBACEJDAELIANBA3EhCgJAAkAgA0F/akEDTw0AQQAhCSACIQEMAQsgA0F8cSELQQAhCSACIQEDQCAJIAEsAABBv39KaiABLAABQb9/SmogASwAAkG/f0pqIAEsAANBv39KaiEJIAFBBGohASALQXxqIgsNAAsLIApFDQADQCAJIAEsAABBv39KaiEJIAFBAWohASAKQX9qIgoNAAsLIAkgCGohCAsCQAJAIAAoAggNAEEBIQEgAEEYaigCACIJIABBHGooAgAiACAHIAIgAxDvkICAAA0BIAkgBCAFIAAoAgwRhYCAgAAADwsCQAJAAkACQAJAIABBDGooAgAiCyAITQ0AIAZBCHENBCALIAhrIgkhCEEBIAAtACAiASABQQNGG0EDcSIBDgMDAQIDC0EBIQEgAEEYaigCACIJIABBHGooAgAiACAHIAIgAxDvkICAAA0EIAkgBCAFIAAoAgwRhYCAgAAADwtBACEIIAkhAQwBCyAJQQF2IQEgCUEBakEBdiEICyABQQFqIQEgAEEcaigCACEKIABBGGooAgAhCyAAKAIEIQkCQANAIAFBf2oiAUUNASALIAkgCigCEBGIgICAAABFDQALQQEPC0EBIQEgCUGAgMQARg0BIAsgCiAHIAIgAxDvkICAAA0BIAsgBCAFIAooAgwRhYCAgAAADQFBACEBAkADQAJAIAggAUcNACAIIQEMAgsgAUEBaiEBIAsgCSAKKAIQEYiAgIAAAEUNAAsgAUF/aiEBCyABIAhJIQEMAQsgACgCBCEGIABBMDYCBCAALQAgIQxBASEBIABBAToAICAAQRhqKAIAIgkgAEEcaigCACIKIAcgAiADEO+QgIAADQAgCyAIa0EBaiEBAkADQCABQX9qIgFFDQEgCUEwIAooAhARiICAgAAARQ0AC0EBDwtB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AkHcACEAAkACQAJAAkACQAJAIAFBgIC8f2pBAyABQf//wwBLGw4EAgEFAAILQQAhBkH9ACEAIAEhAgJAAkACQCAHQf8BcQ4GBAcFAAECBAtBAiEGQfsAIQAMBQtBAyEGQfUAIQAMBAtBBCEGQdwAIQAMAwtBgIDEACECIAUhACAHIQYgBUGAgMQARw0DCyADQScgBBGIgICAAAAhAgwECyAHQQEgBRshBkEwQdcAIAEgBUECdHZBD3EiAkEKSRsgAmohACAFQX9qQQAgBRshBQsgASECCyADIAAgBBGIgICAAABFDQALQQEPCyACC8QCAQF/I4CAgIAAQRBrIgIkgICAgAAgACgCACEAAkACQAJAIAEoAghBAUYNACABKAIQQQFHDQELIAJBADYCDAJAAkAgAEGAAUkNAAJAIABBgBBJDQACQCAAQYCABEkNACACIABBP3FBgAFyOgAPIAIgAEESdkHwAXI6AAwgAiAAQQZ2QT9xQYABcjoADiACIABBDHZBP3FBgAFyOgANQQQhAAwDCyACIABBP3FBgAFyOgAOIAIgAEEMdkHgAXI6AAwgAiAAQQZ2QT9xQYABcjoADUEDIQAMAgsgAiAAQT9xQYABcjoADSACIABBBnZBwAFyOgAMQQIhAAwBCyACIAA6AAxBASEACyABIAJBDGogABC6kICAACEBDAELIAEoAhggACABQRxqKAIAKAIQEYiAgIAAACEBCyACQRBqJICAgIAAIAELhAIBBn8jgICAgABBgAFrIgIkgICAgAAgAUEMaigCACEDIAEoAgghBCABKAIAIgUhBgJAIAVBBHFFDQAgBUEIciEGIAQNACABQoGAgICgATcCCAsgASAGQQRyNgIAQQAhBgNAIAIgBmpB/wBqQTBB1wAgAEEPcSIHQQpJGyAHajoAACAGQX9qIQYgAEEPSyEHIABBBHYhACAHDQALAkAgBkGAAWoiAEGBAU8NACABQQFB+KzEgABBAiACIAZqQYABakEAIAZrEOaQgIAAIQAgASADNgIMIAEgBDYCCCABIAU2AgAgAkGAAWokgICAgAAgAA8LIABBgAFB6KzEgAAQuJCAgAAAC4EBAQF/I4CAgIAAQTBrIgMkgICAgAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakGCgICAADYCACADQgI3AgwgA0HYsMSAADYCCCADQYKAgIAANgIkIAMgA0EgajYCGCADIANBBGo2AiggAyADNgIgIANBCGogAhC2kICAAAALgQEBAX8jgICAgABBMGsiAySAgICAACADIAE2AgQgAyAANgIAIANBHGpBAjYCACADQSxqQYKAgIAANgIAIANCAjcCDCADQfiwxIAANgIIIANBgoCAgAA2AiQgAyADQSBqNgIYIAMgA0EEajYCKCADIAM2AiAgA0EIaiACELaQgIAAAAuBAQEBfyOAgICAAEEwayIDJICAgIAAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBgoCAgAA2AgAgA0ICNwIMIANBrLHEgAA2AgggA0GCgICAADYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIAIQtpCAgAAAC0oBAX8jgICAgABBIGsiASSAgICAACABQRxqQQA2AgAgAUG4psSAADYCGCABQgE3AgwgAUHwscSAADYCCCABQQhqIAAQtpCAgAAAC0oBAX8jgICAgABBIGsiASSAgICAACABQRxqQQA2AgAgAUG4psSAADYCGCABQgE3AgwgAUGkssSAADYCCCABQQhqIAAQtpCAgAAAC4EBAQF/I4CAgIAAQTBrIgMkgICAgAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakGCgICAADYCACADQgM3AgwgA0HsssSAADYCCCADQYKAgIAANgIkIAMgA0EgajYCGCADIAM2AiggAyADQQRqNgIgIANBCGogAhC2kICAAAALoAEBAn8CQCABDQBBAA8LIAFBA3EhAgJAAkAgAUF/akEDTw0AQQAhAQwBCyABQXxxIQNBACEBA0AgASAALAAAQb9/SmogACwAAUG/f0pqIAAsAAJBv39KaiAALAADQb9/SmohASAAQQRqIQAgA0F8aiIDDQALCwJAIAJFDQADQCABIAAsAABBv39KaiEBIABBAWohACACQX9qIgINAAsLIAELhQIBAX8jgICAgABBMGsiAiSAgICAAAJAAkAgAC0ABEUNACACIABBBWotAAA6AAcgAkEUakGCgICAADYCACACIAA2AhAgAkHBhYCAADYCDCABQRxqKAIAIQAgAiACQQdqNgIIIAEoAhghASACQQI2AiwgAkICNwIcIAJB5LXEgAA2AhggAiACQQhq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QgAgAKx9IABBf0oiABsgACABEKaRgIAACyEAIAEoAhhBqMbEgABBBSABQRxqKAIAKAIMEYWAgIAAAAsPACAAKAIAIAEQwJCAgAALrAEBAX8jgICAgABBMGsiAiSAgICAACAAKAIAIQAgAkEMakGZh4CAADYCACACIAAoAgAiADYCECACQZqHgIAANgIEIAIgAGg2AhQgAUEcaigCACEAIAIgAkEUajYCCCACIAJBEGo2AgAgASgCGCEBIAJBAjYCLCACQgM3AhwgAkGQqcSAADYCGCACIAI2AiggASAAIAJBGGoQwpCAgAAhASACQTBqJICAgIAAIAELwAEAAkACQAJAAkACQCAAKAIALQAADgUAAQIDBAALIAEoAhhBpMXEgABBBSABQRxqKAIAKAIMEYWAgIAAAA8LIAEoAhhBgsbEgABBDCABQRxqKAIAKAIMEYWAgIAAAA8LIAEoAhhB98XEgABBCyABQRxqKAIAKAIMEYWAgIAAAA8LIAEoAhhB7MXEgABBCyABQRxqKAIAKAIMEYWAgIAAAA8LIAEoAhhBqcXEgABBBCABQRxqKAIAKAIMEYWAgIAAAAvSAgEDfyOAgICAAEEgayICJICAgIAAAkACQCAAKAIAIgMtAAANACABKAIYQZLGxIAAQQQgAUEcaigCACgCDBGFgICAAAAhAQwBC0EBIQAgAiADQQFqNgIMIAIgASgCGEGOxsSAAEEEIAFBHGooAgAoAgwRhYCAgAAAOgAYIAIgATYCECACQQA6ABkgAkEANgIUIAJBEGogAkEMakG8rMSAABDekICAACEDIAItABghAQJAAkAgAigCFCIEDQAgASEADAELIAFB/wFxDQAgAygCACEBAkAgBEEBRw0AIAItABlB/wFxRQ0AIAEtAABBBHENAEEBIQAgASgCGEG4rMSAAEEBIAFBHGooAgAoAgwRhYCAgAAADQELIAEoAhhBj6nEgABBASABQRxqKAIAKAIMEYWAgIAAACEACyAAQf8BcUEARyEBCyACQSBqJICAgIAAIAELEgAgAUHwr8SAAEECELqQgIAACxIAIAAoAgAtAAAgARClkYCAAAueAgECfyOAgICAAEEQayICJICAgIAAIAIgADYCACACIABBBGo2AgQgASgCGEGtxsSAAEEJIAFBHGooAgAoAgwRhYCAgAAAIQAgAkEAOgAN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biBmYWlsZWQ6IHNyYy5sZW4oKSA9PSBkc3QubGVuKCkgABAAWwAAANQGAAAFAAAAIAAQAFsAAABWBAAAFgAAACAAEABbAAAAlgQAABYAAABhc3NlcnRpb24gZmFpbGVkOiBlZGdlLmhlaWdodCA9PSBzZWxmLm5vZGUuaGVpZ2h0IC0gMQAAACAAEABbAAAArAMAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBvbGRfcmlnaHRfbGVuICsgY291bnQgPD0gQ0FQQUNJVFkAIAAQAFsAAACDBQAADQAAAGFzc2VydGlvbiBmYWlsZWQ6IG9sZF9sZWZ0X2xlbiA+PSBjb3VudAAgABAAWwAAAIQFAAANAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZSAAEABbAAAAswUAABYAAABhc3NlcnRpb24gZmFpbGVkOiBvbGRfbGVmdF9sZW4gKyBjb3VudCA8PSBDQVBBQ0lUWQAAIAAQAFsAAADCBQAADQAAAGFzc2VydGlvbiBmYWlsZWQ6IG9sZF9yaWdodF9sZW4gPj0gY291bnQgABAAWwAAAMMFAAANAAAAIAAQAFsAAADzBQAAFgAAAGFzc2VydGlvbiBmYWlsZWQ6IG1hdGNoIHRyYWNrX2VkZ2VfaWR4IHtcbiAgICBMZWZ0T3JSaWdodDo6TGVmdChpZHgpID0+IGlkeCA8PSBvbGRfbGVmdF9sZW4sXG4gICAgTGVmdE9yUmlnaHQ6OlJpZ2h0KGlkeCkgPT4gaWR4IDw9IHJpZ2h0X2xlbixcbn0AAAAgABAAWwAAAFUFAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogbmV3X2xlZnRfbGVuIDw9IENBUEFDSVRZAAAgABAAWwAAAAgFAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogbGVuID4gMAAAACAAEABbAAAAYgEAAAkAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlL3J1c3RjLzYyODQ5OThhMjY3N2Q3ZTNlODQyMGRiNzgzZjNhYTRmZDgwZDc0MjMvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYnRyZWUvbmF2aWdhdGUucnMAAIcEEABfAAAATAIAAA0AAACHBBAAXwAAAAoCAAAWAAAAUmVzcG9uc2VhdHRyaWJ1dGVzZXZlbnRzSW52YWxpZCBlZDI1NTE5IHB1YmxpYyBrZXkgbGVuZ2h0OiAAIAUQACMAAAAvaG9tZS92dW9uZy9jZW50YXVyaS9saWdodC1jbGllbnRzL2ljczEwLWdyYW5kcGEvc3JjL2NsaWVudF9zdGF0ZS5yczEwLWdyYW5kcGEvaWJjLmxpZ2h0Y2xpZW50cy5ncmFuZHBhLnYxLkNsaWVudFN0YXRlY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQAAABAAAAAUAAAABAAAABEAAABMBRAARAAAAGwAAAAUAAAAL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvZmluYWxpdHktZ3JhbmRwYS0wLjE2LjEvc3JjL3ZvdGVfZ3JhcGgucnNub2RlIGNvbnRhaW5pbmcgbm9uLW5vZGUgaW4gaGlzdG9yeSBhbHdheXMgaGFzIGFuY2VzdG9yOyBxZWQAAAAQBhAAZQAAADgBAAAkAAAAbm9kZSBlaXRoZXIgYmFzZSBvciByZWZlcmVuY2VkIGJ5IG90aGVyIGluIGdyYXBoOyBxZWQAAAAQBhAAZQAAAC4BAAANAAAAYWxsIGNoaWxkcmVuIGluIGdyYXBoOyBxZWQAABAGEABlAAAA8AAAACEAAAAQBhAAZQAAAPkAAAAhAAAAYnkgZGVmbiBvZiBmaW5kX2NvbnRhaW5pbmdfbm9kZXM7IHFlZAAAABAGEABlAAAA1wAAABkAAABQcmlvciBhbmNlc3RvciBpcyByZWZlcmVuY2VkIGZyb20gYSBub2RlOyBxZWR0aGlzIGZ1bmN0aW9uIGlzIG9ubHkgaW52b2tlZCB3aGVuIHRoZXJlIGlzIG5vIGVudHJ5IGZvciB0aGUgYW5jZXN0b3IgYWxyZWFkeTsgcWVkAK0HEABSAAAAEAYQAGUAAAAjAgAADQAAABAGEABlAAAAGgIAACoAAAB0aGlzIGZ1bmN0aW9uIG9ubHkgaW52b2tlZCB3aXRoIGtleXMgb2Ygdm90ZS1ub2RlczsgcWVkdGhpcyBmdW5jdGlvbiBvbmx5IGludm9rZWQgd2l0aCBkaXJlY3QgYW5jZXN0b3JzOyBxZWRfCBAANQAAABAGEABlAAAAAAIAABUAAAAQBhAAZQAAAPEBAAAZAAAAYmFzZSBpcyBrZXB0OyBjaGFpbiByZXR1cm5zIGFuY2VzdHJ5IG9ubHkgaWYgdGhlIGJsb2NrIGlzIGEgZGVzY2VuZGVudCBvZiBiYXNlOyBxZWQAEAYQAGUAAAA+AgAAHQAAABAGEABlAAAAOQIAAB4AAAB2b3RlLW5vZGUgYW5kIGl0cyBhbmNlc3RyeSBhbHdheXMgZXhpc3QgYWZ0ZXIgaW5pdGlhbCBwaGFzZTsgcWVkEAYQAGUAAAC5AAAAIAAAAGludmFsaWQgY29tbWl0bWVudCByb290IGxlbmd0aDoggAkQACAAAABGYWlsZWQgdG8gdmVyaWZ5IHByb29mIGZvciBwYXRoOiAsIGVycm9yOiAAAKgJEAAhAAAAyQkQAAkAAAAAAAAAIAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAwAAAAEAAAAgAAAABAAAAAIAAAAAAAAAAgAAAAAAAAADAAAARmFpbGVkIHRvIGRlY29kZSBwcm9vZiBub2RlcyBmb3IgcGF0aDogOiAAAAAkChAAJwAAAEsKEAACAAAAEgAAAAwAAAAEAAAAEwAAABQAAAAVAAAAYSBEaXNwbGF5IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHVuZXhwZWN0ZWRseQAWAAAAAAAAAAEAAAAXAAAAL3J1c3RjLzYyODQ5OThhMjY3N2Q3ZTNlODQyMGRiNzgzZjNhYTRmZDgwZDc0MjMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAMAKEABLAAAA6AkAAAkAAAAWAAAABAAAAAQAAAAYAAAAFgAAAAQAAAAEAAAAGQAAAGJ1ZmZlciB1bmRlcmZsb3dkZWxpbWl0ZWQgbGVuZ3RoIGV4Y2VlZGVkcmVjdXJzaW9uIGxpbWl0IHJlYWNoZWR1bmV4cGVjdGVkIGVuZCBncm91cCB0YWdpbnZhbGlkIGtleSB2YWx1ZTogAJQLEAATAAAAaW52YWxpZCB0YWcgdmFsdWU6IDAvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wcm9zdC0wLjExLjYvc3JjL2VuY29kaW5nLnJzaW52YWxpZCB2YXJpbnRhc3NlcnRpb24gZmFpbGVkOiBieXRlcy5sZW4oKSA+IDEwIHx8IGJ5dGVzW2J5dGVzLmxlbigpIC0gMV0gPCAweDgwAAAAxAsQAFgAAABVAAAABQAAAEludmFsaWRIYXNoABYAAAAEAAAABAAAABoAAAAWAAAABAAAAAQAAAAbAAAARGVjb2RlckVycm9yFgAAAAQAAAAEAAAAHAAAAFZhbHVlQXRJbmNvbXBsZXRlS2V5SW5jb21wbGV0ZURhdGFiYXNlSW52YWxpZFN0YXRlUm9vdGFja3MvcG9ydHMvL2NoYW5uZWxzLy9zZXF1ZW5jZXMvAAD+DBAACwAAAAkNEAAKAAAAEw0QAAsAAABwb3J0cy8AADgNEAAGAAAACAgQAAAAAABuZXh0U2VxdWVuY2VBY2svcG9ydHMvAABQDRAAFgAAAAkNEAAKAAAAaW52YWxpZCB3aXJlIHR5cGUgdmFsdWU6IAAAAHgNEAAZAAAAcmVjZWlwdHMvcG9ydHMvAJwNEAAPAAAACQ0QAAoAAAATDRAACwAAAG5leHRTZXF1ZW5jZVJlY3YvcG9ydHMvAMQNEAAXAAAACQ0QAAoAAABuZXh0U2VxdWVuY2VTZW5kL3BvcnRzLwDsDRAAFwAAAAkNEAAKAAAAY2xpZW50cy8vY2xpZW50VHlwZQAUDhAACAAAABwOEAALAAAAY2hhbm5lbEVuZHMvcG9ydHMvAAA4DhAAEgAAAAkNEAAKAAAAL2NsaWVudFN0YXRlFA4QAAgAAABcDhAADAAAAGNvbW1pdG1lbnRzL3BvcnRzLwAAeA4QABIAAAAJDRAACgAAABMNEAALAAAAY29ubmVjdGlvbnMvpA4QAAwAAAAvAAAACAgQAAAAAAC4DhAAAQAAALgOEAABAAAAdXBncmFkZWRJQkNTdGF0ZdQOEAAQAAAAdXBncmFkZWRDb25zU3RhdGUAAADsDhAAEQAAAHVwZ3JhZGVkQ2xpZW50AAAIDxAADgAAAHJlbGF5X2NoYWlubGF0ZXN0X3JlbGF5X2hlaWdodGxhdGVzdF9yZWxheV9oYXNoZnJvemVuX2hlaWdodGxhdGVzdF9wYXJhX2hlaWdodHBhcmFfaWRjdXJyZW50X3NldF9pZGN1cnJlbnRfYXV0aG9yaXRpZXNfcGhhbnRvbQAAIA8QAAsAAAArDxAAEwAAAD4PEAARAAAATw8QAA0AAABcDxAAEgAAAG4PEAAHAAAAdQ8QAA4AAACDDxAAEwAAAJYPEAAIAAAAFgAAAAQAAAAEAAAAHQAAABYAAAAEAAAABAAAAB4AAAAWAAAABAAAAAQAAAAfAAAAFgAAAAQAAAAEAAAAIAAAABYAAAAEAAAABAAAACEAAAAWAAAABAAAAAQAAAAiAAAAQ2xpZW50U3RhdGVVbmFsbG93ZWQgZW5jb2RpbmcvY29ubmVjdGlvbnMAAAAUDhAACAAAAGUQEAAMAAAAL2NvbnNlbnN1c1N0YXRlcy8tAAAUDhAACAAAAIQQEAARAAAAlRAQAAEAAABibG9ja3RyYW5zYWN0aW9uY29udHJhY3RoZWlnaHR0aW1lY2hhaW5faWRzZW5kZXJmdW5kc2FkZHJlc3NpbmRleFN1Yk1zZ2lkbXNnZ2FzX2xpbWl0cmVwbHlfb25SZXBseU9ubmV2ZXJzdWNjZXNzZXJyb3JhbHdheXNFcnJvciBkZWNvZGluZyBUaW1lc3RhbXAsIHRpbWVzdGFtcCBjYW5ub3QgYmUgemVybwAAACsREAAyAAAASW52YWxpZCBzdGF0ZSBwcm9vZiBmb3IgcGFyYWNoYWluIGhlYWRlcmgREAAoAAAAcmV2aXNpb25fbnVtYmVycmV2aXNpb25faGVpZ2h0AAAlAAAAYAAAAAgAAAAmAAAAJwAAACgAAAAMAAAABAAAACkAAAAqAAAAL2hvbWUvdnVvbmcvY2VudGF1cmkvbGlnaHQtY2xpZW50cy9jb21tb24vc3JjL3N0YXRlX21hY2hpbmUucnMAAOAREAA+AAAAPQAAABsAAABIZWlnaHQAACsAAAAMAAAABAAAACwAAAAtAAAAFQAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAKAAAAAAAAAABAAAAFwAAAC9ydXN0Yy82Mjg0OTk4YTI2NzdkN2UzZTg0MjBkYjc4M2YzYWE0ZmQ4MGQ3NDIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwCYEhAASwAAAOgJAAAJAAAAKAAAAAQAAAAEAAAAIAAAAGludmFsaWQga2V5IHZhbHVlOiAABBMQABMAAABpbnZhbGlkIHRhZyB2YWx1ZTogMGludmFsaWQgdmFyaW50aW52YWxpZCB3aXJlIHR5cGU6ICAoZXhwZWN0ZWQgKQAAAEITEAATAAAAVRMQAAsAAABgExAAAQAAAEhlYWRlcnBhcmFfaGVpZ2h0cGFyYWNoYWluX2hlYWRlcnNmaW5hbGl0eV9wcm9vZnBhcmFfaWRBdXRob3JpdHl3ZWlnaHRwdWJsaWNfa2V5Q2xpZW50U3RhdGVjdXJyZW50X3NldF9pZGxhdGVzdF9yZWxheV9oZWlnaHRsYXRlc3RfcmVsYXlfaGFzaHJlbGF5X2NoYWluY3VycmVudF9hdXRob3JpdGllc2xhdGVzdF9wYXJhX2hlaWdodGZyb3plbl9oZWlnaHRNaXNiZWhhdmlvdXJmaXJzdF9maW5hbGl0eV9wcm9vZnNlY29uZF9maW5hbGl0eV9wcm9vZkZpbmFsaXR5UHJvb2Z1bmtub3duX2hlYWRlcnNqdXN0aWZpY2F0aW9uaW52YWxpZCB3aXJlIHR5cGUgdmFsdWU6IAAAAKQUEAAZAAAAL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvdHJpZS1kYi0wLjI1LjEvc3JjL25vZGUucnMAAMgUEABWAAAAhwAAAB4AAABDb25zZW5zdXNTdGF0ZXRpbWVzdGFtcHJvb3RpbnZhbGlkIFVpbnQxMjggJycgLSBLFRAAEQAAAFwVEAAEAAAAUGFyYWNoYWluSGVhZGVyUHJvb2ZzZXh0cmluc2ljZXh0cmluc2ljX3Byb29mc3RhdGVfcHJvb2ZJbnZhbGlkUHJvb2ZDaGlsZFJvb3ROb3RGb3VuZFZhbHVlTWlzbWF0Y2hrZXkAAAAoAAAABAAAAAQAAAAuAAAAZXhwZWN0ZWQoAAAABAAAAAQAAAAvAAAAZ290VHJpZQAoAAAABAAAAAQAAAAwAAAAUGFyYWNoYWluSGVhZGVyV2l0aFJlbGF5SGFzaHBhcmFjaGFpbl9oZWFkZXJyZWxheV9oYXNob3V0IG9mIHJhbmdlIGRlY29kaW5nIENvbXBhY3Q8dTMyPmRhdGFjb2RlX2lkbGF0ZXN0X2hlaWdodENsaWVudFN0YXRlAHAWEAAEAAAAdBYQAAcAAAB7FhAADQAAAC9pYmMubGlnaHRjbGllbnRzLndhc20udjEuQ2xpZW50U3RhdGVDbGllbnRTdGF0ZTxBbnlDbGllbnRTdGF0ZT4gaXMgYWx3YXlzIHZhbGlkIGFuZCBjYW4gYmUgZW5jb2RlZCB0byBBbnkAADwAAAAUAAAABAAAABEAAAAvaG9tZS92dW9uZy9jZW50YXVyaS9saWdodC1jbGllbnRzL2ljczA4LXdhc20vc3JjL2NsaWVudF9zdGF0ZS5ycwAAACgXEABBAAAAlQAAABQAAABDb3VsZCBub3QgZGVjb2RlIGBEaWdlc3RJdGVtVHlwZWAsIHZhcmlhbnQgZG9lc24ndCBleGlzdENvdWxkIG5vdCBkZWNvZGUgYERpZ2VzdEl0ZW1UeXBlYCwgZmFpbGVkIHRvIHJlYWQgdmFyaWFudCBieXRlQ291bGQgbm90IGRlY29kZSBgRGlnZXN0Ojpsb2dzYENvdWxkIG5vdCBkZWNvZGUgYEhlYWRlcjo6cGFyZW50X2hhc2hgQ291bGQgbm90IGRlY29kZSBgSGVhZGVyOjpudW1iZXJgQ291bGQgbm90IGRlY29kZSBgSGVhZGVyOjpzdGF0ZV9yb290YENvdWxkIG5vdCBkZWNvZGUgYEhlYWRlcjo6ZXh0cmluc2ljc19yb290YENvdWxkIG5vdCBkZWNvZGUgYEhlYWRlcjo6ZGlnZXN0YGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUAPQAAACAAAAAIAAAAOAAAAC9ob21lL3Z1b25nLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2Nvc213YXNtLXN0ZC0xLjIuMy9zcmMvZXhwb3J0cy5ycwAAAAQZEABdAAAAkQAAAA0AAAAEGRAAXQAAAHMAAAANAAAABBkQAF0AAADuAAAADQAAAENvdWxkIG5vdCBkZWNvZGUgYFB1YmxpYy4wYENvdWxkIG5vdCBkZWNvZGUgYFNpZ25hdHVyZS4wYAAAAD4AAAAMAAAABAAAAD8AAABAAAAAFQAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAQQAAAAAAAAABAAAAFwAAAC9ydXN0Yy82Mjg0OTk4YTI2NzdkN2UzZTg0MjBkYjc4M2YzYWE0ZmQ4MGQ3NDIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwAwGhAASwAAAOgJAAAJAAAAQQAAAAQAAAAEAAAAQgAAAEEAAAAEAAAABAAAACAAAABpbnZhbGlkIGtleSB2YWx1ZTogAKwaEAATAAAAaW52YWxpZCB0YWcgdmFsdWU6IDBpbnZhbGlkIHZhcmludGludmFsaWQgd2lyZSB0eXBlOiAgKGV4cGVjdGVkICkAAADqGhAAEwAAAP0aEAALAAAACBsQAAEAAAByZWN1cnNpb24gbGltaXQgcmVhY2hlZGludmFsaWQgd2lyZSB0eXBlIHZhbHVlOiA7GxAAGQAAAENvbnNlbnN1c1N0YXRldGltZXN0YW1waW4gY2xpZW50IDogW2NsaWVudF9zdGF0ZV0gPj4gY2xpZW50X2lkID0gAAAAcxsQACoAAABpbiBjbGllbnQgOiBbY2xpZW50X3N0YXRlXSA+PiBhbnkgY2xpZW50X3N0YXRlOiCoGxAAMAAAAGluIGNsaWVudCA6IFtjb25zZW5zdXNfc3RhdGVdID4+IGhlaWdodCA9IAAA4BsQACoAAABpbiBjbGllbnQgOiBbY29uc2Vuc3VzX3N0YXRlXSA+PiBjb25zZW5zdXNfc3RhdGUgKHJhdyk6IBQcEAA4AAAAaW4gY2xpZW50IDogW2NvbnNlbnN1c19zdGF0ZV0gPj4gYW55IGNvbnNlbnN1cyBzdGF0ZSA9IABUHBAANwAAAGluIGNsaWVudCA6IFtzdG9yZV9jbGllbnRfc3RhdGVdaW4gY2xpZGVuIDogW3N0b3JlX2NsaWVudF9zdGF0ZV0gPj4gd2FzbSBjbGllbnQgc3RhdGUgKHJhdylpbiBjbGllbnQgOiBbc3RvcmVfY29uc2Vuc3VzX3N0YXRlXSA+PiBjbGllbnRfaWQgPSAsIGhlaWdodCA9IAAAAO8cEAAzAAAAIh0QAAsAAABpbiBjbGllbnQgOiBbc3RvcmVfY29uc2Vuc3VzX3N0YXRlXSA+PiB3YXNtIGNvbnNlbnN1cyBzdGF0ZSAocmF3KSA9IEAdEABEAAAAW2NsaWVudF9zdGF0ZV06IGVycm9yIGRlY29kaW5nIGNsaWVudCBzdGF0ZSBieXRlcyB0byBXYXNtQ29uc2Vuc3VzU3RhdGUgjB0QAEgAAABncmFuZHBhX2hlYWRlcl9oYXNoZXMAAADcHRAAFQAAAGdyYW5kcGFfaGVhZGVyX2hhc2hlc19zZXQAAAD8HRAAGQAAAGVycm9yIHNhdmluZyBoZWFkZXIgaGFzaGVzbGlnaHQtY2xpZW50cy9pY3MxMC1ncmFuZHBhLWN3L3NyYy9jb250ZXh0LnJzADoeEAAtAAAAYQAAAAkAAABlcnJvciBzYXZpbmcgaGFzaCB0byBzZXQ6IAAAeB4QABoAAABubyBjb25zZW5zdXMgc3RhdGUgZm91bmQgZm9yIGhlaWdodCAgYW5kIHByZWZpeCCcHhAAJAAAAMAeEAAMAAAAZXJyb3IgZGVjb2RpbmcgY29uc2Vuc3VzIHN0YXRlOiDcHhAAIAAAAG5vIGNsaWVudCBzdGF0ZSBmb3VuZCBmb3IgcHJlZml4IAAAAAQfEAAhAAAAZXJyb3IgZGVjb2RpbmcgY2xpZW50IHN0YXRlOiAAAAAwHxAAHQAAAG5vIGNsaWVudCBzdGF0ZSBmb3VuZCBmb3IgcHJlZml4ZXJyb3IgZW5jb2RpbmcgY2xpZW50IHN0YXRlOiAAAAB4HxAAHQAAAHJldmlzaW9uX251bWJlcnJldmlzaW9uX2hlaWdodGFscmVhZHkgYm9ycm93ZWQAAEMAAAAAAAAAAQAAAEQAAABDAAAABAAAAAQAAABFAAAAaW52YWxpZCBzdHJpbmcgdmFsdWU6IGRhdGEgaXMgbm90IFVURi04IGVuY29kZWRQaGFudG9tRGF0YTw+HyAQAAwAAAArIBAAAQAAAC9ob21lL3Z1b25nLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3RyaWUtZGItMC4yNS4xL3NyYy90cmllZGIucnM8IBAAWAAAAPIAAAA3AAAAPCAQAFgAAADzAAAAPQAAAEhlaWdodGNsaWVudFN0YXRlQ29pbmRlbm9tYW1vdW50ySAQAAUAAADOIBAABgAAAEVtcHR5SW52YWxpZCBlZDI1NTE5IHB1YmxpYyBrZXkA6SAQABoAAABub2RlIGVpdGhlciBiYXNlIG9yIHJlZmVyZW5jZWQgYnkgb3RoZXIgaW4gZ3JhcGg7IHFlZC9ob21lL3Z1b25nLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2ZpbmFsaXR5LWdyYW5kcGEtMC4xNi4xL3NyYy92b3RlX2dyYXBoLnJzAABBIRAAZQAAAC4BAAANAAAAZGVzY2VuZGVudHMgYWx3YXlzIHByZXNlbnQgaW4gbm9kZSBzdG9yYWdlOyBxZWQAQSEQAGUAAACBAQAAFgAAAGRlc2NyaXB0aW9uKCkgaXMgZGVwcmVjYXRlZDsgdXNlIERpc3BsYXlhc3NlcnRpb24gZmFpbGVkOiBtaWQgPD0gc2VsZi5sZW4oKWF0dGVtcHQgdG8gam9pbiBpbnRvIGNvbGxlY3Rpb24gd2l0aCBsZW4gPiB1c2l6ZTo6TUFYL3J1c3RjLzYyODQ5OThhMjY3N2Q3ZTNlODQyMGRiNzgzZjNhYTRmZDgwZDc0MjMvbGlicmFyeS9hbGxvYy9zcmMvc3RyLnJzeCIQAEgAAACwAAAAFgAAAHgiEABIAAAAlAAAABgAAAAvcnVzdGMvNjI4NDk5OGEyNjc3ZDdlM2U4NDIwZGI3ODNmM2FhNGZkODBkNzQyMy9saWJyYXJ5L2FsbG9jL3NyYy9zbGljZS5ycwAA4CIQAEoAAAAhBAAAFQAAAOAiEABKAAAALwQAAB4AAADgIhAASgAAADgEAAAYAAAA4CIQAEoAAAA8BAAAGgAAAOAiEABKAAAAQgQAAA0AAADgIhAASgAAAEMEAAASAAAAaW52YWxpZCBrZXkgdmFsdWU6IACMIxAAEwAAAGludmFsaWQgdGFnIHZhbHVlOiAwL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcHJvc3QtMC4xMS42L3NyYy9lbmNvZGluZy5yc2ludmFsaWQgdmFyaW50YXNzZXJ0aW9uIGZhaWxlZDogYnl0ZXMubGVuKCkgPiAxMCB8fCBieXRlc1tieXRlcy5sZW4oKSAtIDFdIDwgMHg4MAAAALwjEABYAAAAVQAAAAUAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAFEAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAC9ob21lL3Z1b25nLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2Jhc2U2NC0wLjEzLjEvc3JjL2NodW5rZWRfZW5jb2Rlci5yc8gkEABgAAAALQAAABoAAADIJBAAYAAAADcAAABEAAAAyCQQAGAAAAA6AAAAJwAAAC9ob21lL3Z1b25nLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2Jhc2U2NC0wLjEzLjEvc3JjL2VuY29kZS5ycwBYJRAAVwAAALYAAAAgAAAAWCUQAFcAAAC3AAAAJQAAAFglEABXAAAA/AAAABwAAABYJRAAVwAAAP0AAAAhAAAAWCUQAFcAAAATAQAALgAAAFglEABXAAAAEwEAAAkAAABYJRAAVwAAABQBAAAJAAAAWCUQAFcAAAALAQAALgAAAFglEABXAAAACwEAAAkAAABYJRAAVwAAAA0BAAAPAAAAWCUQAFcAAAAMAQAACQAAAFglEABXAAAADwEAAAkAAAAMIRAAAAAAAEFueXR5cGVfdXJsdmFsdWVpbnZhbGlkIHdpcmUgdHlwZSB2YWx1ZTogAAAAiCYQABkAAAAvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy90cmllLWRiLTAuMjUuMS9zcmMvbm9kZS5ycwAArCYQAFYAAADaAAAAGQAAAKwmEABWAAAA6AAAABkAAAAvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy90cmllLWRiLTAuMjUuMS9zcmMvcHJvb2YvdmVyaWZ5LnJzdGhlIGJvdHRvbSBpdGVtIG9uIHRoZSBzdGFjayBoYXMgaXNfaW5saW5lID0gZmFsc2U7IHFlZAAAACQnEABeAAAA2AEAAB0AAAAkJxAAXgAAAM8BAAAVAAAAJCcQAF4AAACeAAAAFQAAAHRoZSBjaGlsZCBtdXN0IGJlIGNvbXBsZXRlZCBzaW5jZSBjaGlsZF9pbmRleCBpcyAxdmFsdWUg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ODlhYmNkZWYvcnVzdGMvNjI4NDk5OGEyNjc3ZDdlM2U4NDIwZGI3ODNmM2FhNGZkODBkNzQyMy9saWJyYXJ5L2FsbG9jL3NyYy9zbGljZS5ycwAANC8QAEoAAACNAAAAEQAAAC9ydXN0Yy82Mjg0OTk4YTI2NzdkN2UzZTg0MjBkYjc4M2YzYWE0ZmQ4MGQ3NDIzL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9tb2QucnOQLxAATAAAAM4HAAAkAAAAQ29uc2Vuc3VzU3RhdGVkYXRhdGltZXN0YW1wL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvYmxha2UyLXJmYy0wLjIuMTgvc3JjL2JsYWtlMmIucnMABzAQAFwAAAAlAAAAAQAAAPovEAAEAAAA/i8QAAkAAAAvaWJjLmxpZ2h0Y2xpZW50cy53YXNtLnYxLkNvbnNlbnN1c1N0YXRlQ29uc2Vuc3VzU3RhdGU8QW55Q29uc2Vuc3VzU3RhdGU+IGlzIGFsd2F5cyB2YWxpZCBhbmQgY2FuIGJlIGVuY29kZWQgdG8gQW55AH0AAAAUAAAABAAAABEAAAAvaG9tZS92dW9uZy9jZW50YXVyaS9saWdodC1jbGllbnRzL2ljczA4LXdhc20vc3JjL2NvbnNlbnN1c19zdGF0ZS5ycwgxEABEAAAAWAAAABQAAABDb3VsZCBub3QgZGVjb2RlIGBQcmVjb21taXQ6OnRhcmdldF9oYXNoYENvdWxkIG5vdCBkZWNvZGUgYFByZWNvbW1pdDo6dGFyZ2V0X251bWJlcmBDb3VsZCBub3QgZGVjb2RlIGBDb21taXQ6OnRhcmdldF9oYXNoYENvdWxkIG5vdCBkZWNvZGUgYENvbW1pdDo6dGFyZ2V0X251bWJlcmBDb3VsZCBub3QgZGVjb2RlIGBDb21taXQ6OnByZWNvbW1pdHNgQ291bGQgbm90IGRlY29kZSBgU2lnbmVkUHJlY29tbWl0OjpwcmVjb21taXRgQ291bGQgbm90IGRlY29kZSBgU2lnbmVkUHJlY29tbWl0OjpzaWduYXR1cmVgQ291bGQgbm90IGRlY29kZSBgU2lnbmVkUHJlY29tbWl0OjppZGBmYWlsZWQgdG8gZGVjb2RlIENvbnNlbnN1c1N0YXRlOjpkYXRhIGludG8gQW55OiAAozIQADAAAAB+AAAADAAAAAQAAAB/AAAAgAAAABUAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5AIEAAAAAAAAAAQAAABcAAAAvcnVzdGMvNjI4NDk5OGEyNjc3ZDdlM2U4NDIwZGI3ODNmM2FhNGZkODBkNzQyMy9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMAPDMQAEsAAADoCQAACQAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IAAAmDMQACoAAACBAAAABAAAAAQAAACCAAAAgwAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWUvcnVzdGMvNjI4NDk5OGEyNjc3ZDdlM2U4NDIwZGI3ODNmM2FhNGZkODBkNzQyMy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9idHJlZS9tYXAvZW50cnkucnMACzQQAGAAAAB1AQAAIAAAAAs0EABgAAAAMAIAABgAAABgbGVuYCBncmVhdGVyIHRoYW4gcmVtYWluaW5nL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvYnl0ZXMtMS40LjAvc3JjL2J1Zi9idWZfaW1wbC5ycwCoNBAAWwAAAFIEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5yZW1haW5pbmcoKSA+PSAxAKg0EABbAAAAIQEAAAkAAACoNBAAWwAAAEoFAAASAAAAY2Fubm90IGFkdmFuY2UgcGFzdCBgcmVtYWluaW5nYDogIDw9IAAAAFw1EAAhAAAAfTUQAAQAAAAvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9ieXRlcy0xLjQuMC9zcmMvYnl0ZXMucnOUNRAAVAAAACUCAAAJAAAAL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvdHJpZS1kYi0wLjI1LjEvc3JjL2xvb2t1cC5yc/g1EABYAAAAQAAAAB4AAACBAAAADAAAAAQAAACEAAAAhQAAAFdlIGFyZSBjYWNoaW5nIGEgYE5vZGVPd25lZDo6VmFsdWVgIGZvciBhIHZhbHVlIG5vZGUgaGFzaCBhbmQgdGhpcyBjYWNoZWQgbm9kZSBoYXMgYWx3YXlzIGRhdGEgYXR0YWNoZWQ7IHFlZPg1EABYAAAAawAAAB0AAAD4NRAAWAAAAHECAAAsAAAA+DUQAFgAAABMAgAALAAAAIEAAAAUAAAABAAAAIYAAACHAAAAYE5vZGVPd25lZDo6VmFsdWVgIGNhbiBub3QgYmUgcmVhY2hlZCBieSB1c2luZyB0aGUgaGFzaCBvZiBhIG5vZGUuIGBOb2RlT3duZWQ6OlZhbHVlYCBpcyBvbmx5IGNvbnN0cnVjdGVkIHdoZW4gbG9hZGluZyBhIHZhbHVlIGludG8gbWVtb3J5LCB3aGljaCBuZWVkcyB0byBoYXZlIGEgZGlmZmVyZW50IGhhc2ggdGhhbiBhbnkgbm9kZTsgcWVkACQ3EADDAAAA+DUQAFgAAADYAQAAGQAAAPg1EABYAAAAxAEAAC0AAAD4NRAAWAAAAJ4BAAAtAAAAmDMQAAAAAABrZXkgaXMgYWx3YXlzIHZhbGlkOyBxZWSBAAAAAQAAAAEAAACIAAAAbGlnaHQtY2xpZW50cy9pY3MxMC1ncmFuZHBhLWN3L3NyYy9jb250cmFjdC5ycwAAUDgQAC4AAABlAAAADQAAAFA4EAAuAAAAZAAAABcAAABzdWJqZWN0IGNsaWVudCBzdGF0ZSBkb2VzIG5vdCBtYXRjaCBzdWJzdGl0dXRlIGNsaWVudCBzdGF0ZUNvdWxkIG5vdCBmaW5kIHRoZSBrbm93biBoZWFkZXIgZm9yIGZpcnN0IGZpbmFsaXR5IHByb29mVW5rbm93biBoZWFkZXJzIGNhbid0IGJlIGVtcHR5IVt1cGRhdGVfc3RhdGVdIEludmFsaWQgYW5jZXN0cnkhU3RvcmluZyBjb25zZW5zdXMgc3RhdGU6IABSORAAGQAAAFN0b3JpbmcgY2xpZW50IHN0YXRlIHdpdGggaGVpZ2h0OiAAAHQ5EAAiAAAAMDgtd2FzbS0wY2xpZW50IGlkIGlzIHZhbGlkAIkAAAAgAAAABAAAAIoAAABQOBAALgAAAIgAAAAVAAAAUDgQAC4AAABeAQAAFQAAAFVua25vd25Gcm96ZW5FeHBpcmVkQWN0aXZlbm90IGltcGxlbWVudGVkOiAABjoQABEAAABHZXRMYXRlc3RIZWlnaHRzTXNnACA6EAATAAAAUDgQAC4AAABhAQAALQAAAENsaWVudFR5cGVNc2cAAABMOhAADQAAAFA4EAAuAAAAYAEAACcAAABGcm9tIFVURjggZXJyb3I6IAAAAHQ6EAARAAAAUHJvdG8gZGVjb2RlIGVycm9yOiCQOhAAFAAAAElCQyBjb21taXRtZW50IGVycm9yOiAAAKw6EAAWAAAASUJDIHByb29mIGVycm9yOiAAAADMOhAAEQAAAElCQyBwYXRoIGVycm9yOiDoOhAAEAAAAElCQyB2YWxpZGF0aW9uIGVycm9yOiAAAAA7EAAWAAAAUHJvdG9idWYgZXJyb3I6ICA7EAAQAAAAR3JhbmRwYSBlcnJvcjogADg7EAAPAAAAU3RvcmFnZSBlcnJvcgAAAFA7EAANAAAAVW5hdXRob3JpemVkaDsQAAwAAABkZW5vbWFtb3VudGJsb2NrdHJhbnNhY3Rpb25jb250cmFjdGhlaWdodHRpbWVjaGFpbl9pZHNlbmRlcmZ1bmRzYWRkcmVzc2luZGV4cmV2aXNpb25fbnVtYmVycmV2aXNpb25faGVpZ2h0ZGF0YXRpbWVzdGFtcGxhdGVzdF9oZWlnaHRjb2RlX2lkdWxsY2xpZW50X3N0YXRlY29uc2Vuc3VzX3N0YXRla2V5X3BhdGhwYXRoZGVsYXlfYmxvY2tfcGVyaW9kZGVsYXlfdGltZV9wZXJpb2R2YWx1ZXByb29mY2xpZW50X21lc3NhZ2V1cGdyYWRlX2NsaWVudF9zdGF0ZXVwZ3JhZGVfY29uc2Vuc3VzX3N0YXRlcHJvb2ZfdXBncmFkZV9jb25zZW5zdXNfc3RhdGVwcm9vZl91cGdyYWRlX2NsaWVudGRhdGFoZWlnaHRIZWFkZXLIPBAABAAAAMw8EAAGAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogAADoPBAAKgAAADAyLWNsaWVudCB3aWxsIGNoZWNrIGZvciBtaXNiZWhhdmlvdXIgYmVmb3JlIGNhbGxpbmcgdXBkYXRlX3N0YXRlOyBxZWQAABw9EABGAAAAL2hvbWUvdnVvbmcvY2VudGF1cmkvbGlnaHQtY2xpZW50cy9pY3MxMC1ncmFuZHBhL3NyYy9jbGllbnRfZGVmLnJzAABsPRAAQgAAANcAAAASAAAAjgAAABgAAAAEAAAAjwAAAEFueUNvbnNlbnVzU3RhdGUgaXMgdHlwZSBjaGVja2VkOyBxZWQAAABsPRAAQgAAAP0AAAAbAAAAdGFyZ2V0IGhlYWRlciBoYXMgYWxyZWFkeSBiZWVuIGNoZWNrZWQgaW4gdmVyaWZ5X2NsaWVudF9tZXNzYWdlOyBxZWRMaWdodCBjbGllbnQgY2FuIG9ubHkgYmUgdXBkYXRlZCB0byBuZXcgcmVsYXkgY2hhaW4gaGVpZ2h0LkxpZ2h0IGNsaWVudCBjYW4gb25seSBiZSB1cGRhdGVkIHRvIG5ldyBwYXJhY2hhaW4gaGVpZ2h0Lmw9EABCAAAAAwEAABYAAABObyByZWxheSBjaGFpbiBoZWFkZXIgZm91bmQgZm9yIGhhc2g6IAAA0D4QACYAAABbdXBkYXRlX3N0YXRlXSBJbnZhbGlkIGFuY2VzdHJ5IU1pc2JlaGF2aW91ciBwcm9vZnMgYXJlIGZvciB0aGUgc2FtZSBibG9ja01pc2JlaGF2aW91ciBwcm9vZnMgYXJlIG5vdCBmb3IgdGhlIHNhbWUgY2hhaW5NaXNiZWhhdmlvdXIgcHJvb2ZzIGFyZSBub3QgZm9yIHRoZSBzYW1lIGFuY2VzdG9yRmlyc3Qgb3Igc2Vjb25kIGZpbmFsaXR5IHByb29mIGJsb2NrIGhhc2ggZG9lcyBub3QgbWF0Y2gganVzdGlmaWNhdGlvbiB0YXJnZXQgaGFzaEludmFsaWQganVzdGlmaWNhdGlvblBhcmEgaWQgbWlzbWF0Y2g6IGV4cGVjdGVkICwgZ290IAAAABBAEAAbAAAAK0AQAAYAAABVbmtub3duIGhlYWRlcnMgY2FuJ3QgYmUgZW1wdHkhSW52YWxpZCBhbmNlc3RyeSFDb3VsZCBub3QgZGVjb2RlIHNlY29uZCBqdXN0aWZpY2F0aW9uQ291bGQgbm90IGRlY29kZSBmaXJzdCBqdXN0aWZpY2F0aW9uAAAAkAAAAGAAAAAIAAAAkQAAAEFueUNvbnNlbnN1c1N0YXRlIGlzIHR5cGUtY2hlY2tlZDsgcWVkY2xpZW50LXN0YXRlLXVwZ3JhZGUtcGF0aEludmFsaWQgcHJvb2YgZm9yIGNsaWVudCBzdGF0ZSB1cGdyYWRlY29uc2Vuc3VzLXN0YXRlLXVwZ3JhZGUtcGF0aAAAAGw9EABCAAAAugEAABEAAABsPRAAQgAAAKMBAAAbAAAAbD0QAEIAAACHAQAAGwAAAFdyb25nIGNvbnNlbnN1cyBzdGF0ZSB0eXBlIHN0b3JlZCBmb3IgR3JhbmRwYSBjbGllbnQgd2l0aCAgYXQgAACEQRAAOgAAAL5BEAAEAAAAbD0QAAAAAAAvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9maW5hbGl0eS1ncmFuZHBhLTAuMTYuMS9zcmMvdm90ZXJfc2V0LnJzbm9uemVybyArIG5vbnplcm8gaXMgbm9uemVyb9xBEABkAAAATQAAACEAAAB2b3RlcnMgbm9uZW1wdHk7IHFlZNxBEABkAAAAYgAAABwAAABDb3VsZCBub3QgZGVjb2RlIGBDb25zZW5zdXNMb2c6OlNjaGVkdWxlZENoYW5nZS4wYENvdWxkIG5vdCBkZWNvZGUgYENvbnNlbnN1c0xvZzo6Rm9yY2VkQ2hhbmdlLjBgQ291bGQgbm90IGRlY29kZSBgQ29uc2Vuc3VzTG9nOjpGb3JjZWRDaGFuZ2UuMWBDb3VsZCBub3QgZGVjb2RlIGBDb25zZW5zdXNMb2c6Ok9uRGlzYWJsZWQuMGBDb3VsZCBub3QgZGVjb2RlIGBDb25zZW5zdXNMb2c6OlBhdXNlLjBgQ291bGQgbm90IGRlY29kZSBgQ29uc2Vuc3VzTG9nOjpSZXN1bWUuMGBDb3VsZCBub3QgZGVjb2RlIGBDb25zZW5zdXNMb2dgLCB2YXJpYW50IGRvZXNuJ3QgZXhpc3RDb3VsZCBub3QgZGVjb2RlIGBDb25zZW5zdXNMb2dgLCBmYWlsZWQgdG8gcmVhZCB2YXJpYW50IGJ5dGVDb3VsZCBub3QgZGVjb2RlIGBTY2hlZHVsZWRDaGFuZ2U6Om5leHRfYXV0aG9yaXRpZXNgQ291bGQgbm90IGRlY29kZSBgU2NoZWR1bGVkQ2hhbmdlOjpkZWxheWAAAACSAAAABAAAAAQAAACTAAAAlAAAAJUAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlL3J1c3RjLzYyODQ5OThhMjY3N2Q3ZTNlODQyMGRiNzgzZjNhYTRmZDgwZDc0MjMvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYnRyZWUvbmF2aWdhdGUucnMAALNEEABfAAAAugAAABUAAACzRBAAXwAAAJUAAAASAAAAVGltZXN0YW1wc2Vjb25kc25hbm9zAEludmFsaWQgUHJvb2YASkUQAA0AAABDb3VsZG4ndCBmaW5kIGNoaWxkIHJvb3QgaW4gcHJvb2YAAABgRRAAIQAAAEVycm9yIHZlcmlmeWluZyBrZXk6ICwgRXhwZWN0ZWQ6ICwgR290OiCMRRAAFQAAAKFFEAAMAAAArUUQAAcAAABUcmllIEVycm9yOiDMRRAADAAAAP//////////Q29zbW9zTXNnd2FzbWN1c3RvbWJhbmtCYW5rTXNnYnVybmFtb3VudHNlbmR0b19hZGRyZXNzV2FzbU1zZ2NsZWFyX2FkbWluY29udHJhY3RfYWRkcnVwZGF0ZV9hZG1pbmFkbWlubWlncmF0ZW5ld19jb2RlX2lkbXNnaW5zdGFudGlhdGVjb2RlX2lkZnVuZHNsYWJlbGV4ZWN1dGVlcnJvcm9rRXZlbnR0eXBlYXR0cmlidXRlc0F0dHJpYnV0ZWtleXZhbHVlL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvY3ctc3RvcmFnZS1wbHVzLTAuMTUuMS9zcmMvcGF0aC5ycwCxRhAAXgAAACkAAAAOAAAATGF0ZXN0IGZpbmFsaXplZCBibG9jayBzaG91bGQgYmUgaGlnaGVzdCBibG9jayBpbiB1bmtub3duX2hlYWRlcnMAAAAgRxAAQQAAAEp1c3RpZmljYXRpb24gdGFyZ2V0IGhhc2ggYW5kIGZpbmFsaXR5IHByb29mIGJsb2NrIGhhc2ggbWlzbWF0Y2hsRxAAQAAAAEhlYWRlcnMgaGF2ZSBiZWVuIGNoZWNrZWQgYnkgQW5jZXN0cnlDaGFpbjsgcWVkAAAAAAAvaG9tZS92dW9uZy9jZW50YXVyaS9hbGdvcml0aG1zL2dyYW5kcGEvdmVyaWZpZXIvc3JjL2xpYi5ycwDoRxAAOwAAAHAAAAANAAAATGF0ZXN0IHBhcmFjaGFpbiBoZWFkZXIgaGVpZ2h0IGRvZXNuJ3QgbWF0Y2ggdGhlIG9uZSBpbiB0aGUgcHJvb2YAAAA0SBAAQQAAAFt2ZXJpZnlfcGFyYWNoYWluX2hlYWRlcnNfd2l0aF9ncmFuZHBhX2ZpbmFsaXR5X3Byb29mXSBJbnZhbGlkIGFuY2VzdHJ5IChiYXNlIC0+IGxhdGVzdCByZWxheSBibG9jaykhAAAAgEgQAGUAAABJbnZhbGlkIHByb29mLCBwYXJhY2hhaW4gaGVhZGVyIG5vdCBmb3VuZAAAAPBIEAApAAAAVW5rbm93biBoZWFkZXJzIGNhbid0IGJlIGVtcHR5IQAkSRAAHwAAAGVycm9yIHZlcmlmeWluZyBwYXJhY2hhaW4gaGVhZGVyIHN0YXRlIHByb29mOiAAAExJEAAuAAAAW3ZlcmlmeV9wYXJhY2hhaW5faGVhZGVyc193aXRoX2dyYW5kcGFfZmluYWxpdHlfcHJvb2ZdIEludmFsaWQgYW5jZXN0cnkhhEkQAEgAAABJbnZhbGlkIGV4dHJpbnNpYyBwcm9vZgDUSRAAFwAAAENvdWxkIG5vdCBkZWNvZGUgYEdyYW5kcGFKdXN0aWZpY2F0aW9uOjpyb3VuZGBDb3VsZCBub3QgZGVjb2RlIGBHcmFuZHBhSnVzdGlmaWNhdGlvbjo6Y29tbWl0YENvdWxkIG5vdCBkZWNvZGUgYEdyYW5kcGFKdXN0aWZpY2F0aW9uOjp2b3Rlc19hbmNlc3RyaWVzYEZSTktKdXN0aWZpY2F0aW9uIE1lc3NhZ2UgjkoQABYAAABwYWxsZXRfaWJjZ3JhbmRwYV9saWdodF9jbGllbnRfcHJpbWl0aXZlczo6anVzdGlmaWNhdGlvbmFsZ29yaXRobXMvZ3JhbmRwYS9wcmltaXRpdmVzL3NyYy9qdXN0aWZpY2F0aW9uLnJzAACsShAACgAAALZKEAAuAAAA5EoQADIAAAD6AAAAaW52YWxpZCBzaWduYXR1cmUgZm9yIHByZWNvbW1pdCBpbiBncmFuZHBhIGp1c3RpZmljYXRpb240SxAAOAAAAEludmFsaWQgY29tbWl0LCBmb3VuZCBvbmUgb2YgYGR1cGxpY2F0ZSBwcmVjb21taXRzYCwgYGludmFsaWQgdm90ZXJzYCwgb3IgYGVxdWl2b2NhdGlvbnNgIAAAdEsQAFoAAABpbnZhbGlkIGNvbW1pdCBpbiBncmFuZHBhIGp1c3RpZmljYXRpb246IAAAANhLEAApAAAAY2FuIG9ubHkgZmFpbCBpZiBwcmVjb21taXRzIGlzIGVtcHR5OyBjb21taXQgaGFzIGJlZW4gdmFsaWRhdGVkIGFib3ZlOyB2YWxpZCBjb21taXRzIG11c3QgaW5jbHVkZSBwcmVjb21taXRzOyBxZWQuaW52YWxpZCBwcmVjb21taXQgYW5jZXN0cmllcyBpbiBncmFuZHBhIGp1c3RpZmljYXRpb24gd2l0aCB1bnVzZWQgaGVhZGVycwB+TBAASQAAAC9ob21lL3Z1b25nL2NlbnRhdXJpL2FsZ29yaXRobXMvZ3JhbmRwYS9wcmltaXRpdmVzL3NyYy9qdXN0aWZpY2F0aW9uLnJzANBMEABHAAAAYwAAABkAAABbdmVyaWZ5X3dpdGhfdm90ZXJfc2V0XSBJbnZhbGlkIGFuY2VzdHJ5IQAAAChNEAApAAAAW3ZlcmlmeV93aXRoX3ZvdGVyX3NldF0gSW52YWxpZCBhbmNlc3RyeSB3aGlsZSB2YWxpZGF0aW5nIGNvbW1pdCEAAABcTRAAQQAAAEludmFsaWQgQXV0aG9yaXRpZXNTZXQAAKhNEAAWAAAAKCkAAJoAAAAMAAAABAAAAJsAAACcAAAAFQAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAnQAAAAAAAAABAAAAFwAAAC9ydXN0Yy82Mjg0OTk4YTI2NzdkN2UzZTg0MjBkYjc4M2YzYWE0ZmQ4MGQ3NDIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwAsThAASwAAAOgJAAAJAAAAaWNzMTBfZ3JhbmRwYV9jdzo6bXNnOjpDb250cmFjdFJlc3VsdGljczEwX2dyYW5kcGFfY3c6Om1zZzo6SW5zdGFudGlhdGVNc2dpY3MxMF9ncmFuZHBhX2N3Ojpjb250cmFjdDo6SG9zdEZ1bmN0aW9uc2FsbG9jOjp2ZWM6OlZlYzxwcmltaXRpdmVfdHlwZXM6OkgyNTY+Y29zbXdhc21fc3RkOjpyZXN1bHRzOjpjb250cmFjdF9yZXN1bHQ6OkNvbnRyYWN0UmVzdWx0PGNvc213YXNtX3N0ZDo6cmVzdWx0czo6cmVzcG9uc2U6OlJlc3BvbnNlPmljczEwX2dyYW5kcGFfY3c6Om1zZzo6UXVlcnlSZXNwb25zZWljczEwX2dyYW5kcGFfY3c6Om1zZzo6RXhlY3V0ZU1zZ2Nvc213YXNtX3N0ZDo6dHlwZXM6OkVudmNvc213YXNtX3N0ZDo6cmVzdWx0czo6Y29udHJhY3RfcmVzdWx0OjpDb250cmFjdFJlc3VsdDxjb3Ntd2FzbV9zdGQ6OmJpbmFyeTo6QmluYXJ5PmljczEwX2dyYW5kcGFfY3c6Om1zZzo6Q2xpZW50U3RhdGVDYWxsUmVzcG9uc2Vjb3Ntd2FzbV9zdGQ6OnR5cGVzOjpNZXNzYWdlSW5mb2ljczEwX2dyYW5kcGFfY3c6Om1zZzo6UXVlcnlNc2dkZXNjcmlwdGlvbigpIGlzIGRlcHJlY2F0ZWQ7IHVzZSBEaXNwbGF5aW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogAADIUBAAKgAAAC9ob21lL3Z1b25nLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3Byb3N0LTAuMTEuNi9zcmMvZW5jb2RpbmcucnNpbnZhbGlkIHZhcmludGludmFsaWQgd2lyZSB0eXBlOiAgKGV4cGVjdGVkICkAAABiURAAEwAAAHVREAALAAAAgFEQAAEAAAD8UBAAWAAAAFUAAAAhAAAAYXNzZXJ0aW9uIGZhaWxlZDogYnl0ZXMubGVuKCkgPiAxMCB8fCBieXRlc1tieXRlcy5sZW4oKSAtIDFdIDwgMHg4MAD8UBAAWAAAAFUAAAAFAAAAYnVmZmVyIHVuZGVyZmxvd1RyaWVFcnJvcgAAAJ0AAAAEAAAABAAAADAAAABJbnZhbGlkUmVjb3JkaW5nnQAAAAQAAAAEAAAAGwAAAJ0AAAAEAAAABAAAAJ4AAABEZWNvZGUAAJ0AAAAEAAAABAAAAJ8AAABCYWRGb3JtYXQAAACgAAAAEAAAAAQAAAChAAAAoAAAABAAAAAEAAAAogAAAKEAAACAUhAAowAAAKQAAAClAAAApgAAAKcAAACdAAAACAAAAAQAAACoAAAAnQAAAAgAAAAEAAAAqQAAAKgAAAC8UhAAowAAAKoAAACrAAAArAAAAK0AAACuAAAAKAAAAAQAAACvAAAArgAAACgAAAAEAAAAsAAAAK8AAAD4UhAAowAAALEAAACyAAAAswAAALQAAACaAAAADAAAAAQAAAC1AAAAmgAAAAwAAAAEAAAAtgAAALUAAAA0UxAAowAAALcAAAC4AAAAuQAAALoAAAC7AAAALAAAAAQAAAC8AAAAuwAAACwAAAAEAAAAvQAAALwAAABwUxAAvgAAAL8AAADAAAAAvgAAAMEAAADCAAAAKAAAAAQAAAC8AAAAwgAAACgAAAAEAAAAvQAAALwAAACsUxAAvgAAAMMAAADAAAAAvgAAAMEAAADEAAAAMAAAAAQAAAC8AAAAxAAAADAAAAAEAAAAvQAAALwAAADoUxAAvgAAAMUAAADAAAAAvgAAAMEAAADGAAAASAAAAAQAAAC8AAAAxgAAAEgAAAAEAAAAvQAAALwAAAAkVBAAvgAAAMcAAADAAAAAvgAAAMEAAAAvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9iYXNlNjQtMC4xMy4xL3NyYy9kZWNvZGUucnMAYFQQAFcAAAAKAQAAJAAAAGBUEABXAAAACwEAACkAAABgVBAAVwAAADEBAAAWAAAAYFQQAFcAAAA0AQAAGgAAAGBUEABXAAAASAEAAA4AAABgVBAAVwAAAEsBAAASAAAAYFQQAFcAAABfAQAAEwAAAEltcG9zc2libGU6IG11c3Qgb25seSBoYXZlIDAgdG8gOCBpbnB1dCBieXRlcyBpbiBsYXN0IGNodW5rLCB3aXRoIG5vIGludmFsaWQgbGVuZ3RocyhVEABUAAAAYFQQAFcAAACkAQAADgAAAGBUEABXAAAAuAEAAAkAAABPdmVyZmxvdyB3aGVuIGNhbGN1bGF0aW5nIG91dHB1dCBidWZmZXIgbGVuZ3RoAABgVBAAVwAAAKIAAAAhAAAAYFQQAFcAAACaAAAAIAAAAGBUEABXAAAALgIAAAUAAABXcml0aW5nIHRvIGEgU3RyaW5nIHNob3VsZG4ndCBmYWlsAACdAAAAAAAAAAEAAADIAAAAL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvYmFzZTY0LTAuMTMuMS9zcmMvZW5jb2RlLnJzADhWEABXAAAAUQAAAAkAAABDb3VsZCBub3QgZGVjb2RlIGBQdWJsaWMuMGBDb3VsZCBub3QgZGVjb2RlIGBTaWduYXR1cmUuMGBJbnZhbGlkIFByb29mAADZVhAADQAAAENvdWxkbid0IGZpbmQgY2hpbGQgcm9vdCBpbiBwcm9vZgAAAPBWEAAhAAAARXJyb3IgdmVyaWZ5aW5nIGtleTogLCBFeHBlY3RlZDogLCBHb3Q6IBxXEAAVAAAAMVcQAAwAAAA9VxAABwAAAFRyaWUgRXJyb3I6IFxXEAAMAAAASGFzaCB0YWJsZSBjYXBhY2l0eSBvdmVyZmxvd3BXEAAcAAAAL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvaGFzaGJyb3duLTAuMTIuMy9zcmMvcmF3L21vZC5ycwCUVxAAWwAAAFoAAAAoAAAAY2xpZW50U3RhdGUwOC13YXNtLTBbY2xpZW50X3N0YXRlXTogZXJyb3IgZGVjb2RpbmcgY2xpZW50IHN0YXRlIGJ5dGVzIHRvIFdhc21DbGllbnRTdGF0ZSAAAAAUWBAARQAAAGNvbnNlbnN1c1N0YXRlcy9sRxAAAAAAAEZyb20gVVRGOCBlcnJvcjogAAAAfFgQABEAAABQcm90byBkZWNvZGUgZXJyb3I6IJhYEAAUAAAASUJDIGNvbW1pdG1lbnQgZXJyb3I6IAAAtFgQABYAAABJQkMgcHJvb2YgZXJyb3I6IAAAANRYEAARAAAASUJDIHBhdGggZXJyb3I6IPBYEAAQAAAASUJDIHZhbGlkYXRpb24gZXJyb3I6IAAACFkQABYAAABQcm90b2J1ZiBlcnJvcjogKFkQABAAAABHcmFuZHBhIGVycm9yOiAAQFkQAA8AAABTdG9yYWdlIGVycm9yAAAAWFkQAA0AAABVbmF1dGhvcml6ZWRwWRAADAAAAGxpZ2h0LWNsaWVudHMvaWNzMTAtZ3JhbmRwYS1jdy9zcmMvbXNnLnJzAAAAhFkQACkAAADAAAAAKAAAAIRZEAApAAAA5QAAACgAAABHZW5lc2lzTWV0YWRhdGFrZXl2YWx1ZVF1ZXJ5UmVzcG9uc2VzdGF0dXNnZW5lc2lzX21ldGFkYXRhQ29udHJhY3RSZXN1bHRpc192YWxpZGVycm9yX21zZ2RhdGFmb3VuZF9taXNiZWhhdmlvdXJDbGllbnRTdGF0ZUNhbGxSZXNwb25zZWNsaWVudF9zdGF0ZW5ld19jb25zZW5zdXNfc3RhdGVuZXdfY2xpZW50X3N0YXRlcmVzdWx0SW5pdGlhbGl6ZVN0YXRlY29uc2Vuc3VzX3N0YXRlAAAAVloQAAwAAACaWhAADwAAAEluc3RhbnRpYXRlTXNnY2xpZW50X2NyZWF0ZV9yZXF1ZXN0aW5pdGlhbGl6ZV9zdGF0ZXZlcmlmeV9tZW1iZXJzaGlwdmVyaWZ5X25vbl9tZW1iZXJzaGlwdmVyaWZ5X2NsaWVudF9tZXNzYWdlY2hlY2tfZm9yX21pc2JlaGF2aW91cnVwZGF0ZV9zdGF0ZV9vbl9taXNiZWhhdmlvdXJ1cGRhdGVfc3RhdGVjaGVja19zdWJzdGl0dXRlX2FuZF91cGRhdGVfc3RhdGV2ZXJpZnlfdXBncmFkZV9hbmRfdXBkYXRlX3N0YXRl31oQABAAAADKWhAAFQAAAO9aEAARAAAAAFsQABUAAAAVWxAAFQAAACpbEAAWAAAAQFsQABwAAABcWxAADAAAAGhbEAAhAAAAiVsQAB8AAABjbGllbnRfdHlwZV9tc2dnZXRfbGF0ZXN0X2hlaWdodHNfbXNnZXhwb3J0X21ldGFkYXRh+FsQAA8AAAAHXBAAFgAAAB1cEAAPAAAA9FkQAAYAAABHZXRMYXRlc3RIZWlnaHRzTXNnQ2xpZW50VHlwZU1zZ1N0YXR1c01zZ0V4cG9ydE1ldGFkYXRhTXNna2V5X3BhdGgAAIZcEAAIAAAAVmVyaWZ5TWVtYmVyc2hpcE1zZ1Jhd3Byb29mcGF0aGhlaWdodGRlbGF5X2Jsb2NrX3BlcmlvZGRlbGF5X3RpbWVfcGVyaW9krlwQAAUAAACzXBAABAAAAOJZEAAFAAAAt1wQAAYAAAC9XBAAEgAAAM9cEAARAAAAVmVyaWZ5Tm9uTWVtYmVyc2hpcE1zZ1JhdwAAAK5cEAAFAAAAs1wQAAQAAAC3XBAABgAAAL1cEAASAAAAz1wQABEAAABXYXNtTWlzYmVoYXZpb3VyKVoQAAQAAABoZWFkZXJtaXNiZWhhdmlvdXIAAGxdEAAGAAAAcl0QAAwAAABWZXJpZnlDbGllbnRNZXNzYWdlUmF3Y2xpZW50X21lc3NhZ2WmXRAADgAAAENoZWNrRm9yTWlzYmVoYXZpb3VyTXNnUmF3VXBkYXRlU3RhdGVPbk1pc2JlaGF2aW91ck1zZ1Jhd1VwZGF0ZVN0YXRlTXNnUmF3Q2hlY2tTdWJzdGl0dXRlQW5kVXBkYXRlU3RhdGVNc2dSYXdWZXJpZnlVcGdyYWRlQW5kVXBkYXRlU3RhdGVNc2dSYXd1cGdyYWRlX2NsaWVudF9zdGF0ZXVwZ3JhZGVfY29uc2Vuc3VzX3N0YXRlcHJvb2ZfdXBncmFkZV9jbGllbnRwcm9vZl91cGdyYWRlX2NvbnNlbnN1c19zdGF0ZQAASl4QABQAAABeXhAAFwAAAHVeEAAUAAAAiV4QAB0AAAAvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy90d294LWhhc2gtMS42LjMvc3JjL3NpeHR5X2ZvdXIucnMAAADIXhAAXQAAAI0AAAAKAAAAyF4QAF0AAACUAAAACQAAAC9ob21lL3Z1b25nLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2JsYWtlMi1yZmMtMC4yLjE4L3NyYy9ibGFrZTJiLnJzSF8QAFwAAAAlAAAAAQAAAGFzc2VydGlvbiBmYWlsZWQ6IG5uID49IDEgJiYgbm4gPD0gNjQgJiYga2sgPD0gNjRoYXNoIGRhdGEgbGVuZ3RoIG92ZXJmbG93SW52YWxpZFNsaWNlTGVuZ3RoSW52YWxpZFNpZ25hdHVyZU1hbGZvcm1lZFB1YmxpY0tleU1hbGZvcm1lZFNlY3JldEtleQAAAAAIybzzZ+YJajunyoSFrme7K/iU/nLzbjzxNh1f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b25nLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2N1cnZlMjU1MTktZGFsZWstMy4yLjAvc3JjL3dpbmRvdy5ycwCAEABgAAAAlQAAAAkAAAAAgBAAYAAAAMAAAAAJAAAAc3ViamVjdC+AgBAACAAAAHN1YnN0aXR1dGUvAJCAEAALAAAAb25seSBzdXBwb3J0cyBuYW1lc3BhY2VzIHVwIHRvIGxlbmd0aCAweEZGRkYvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9jdy1zdG9yYWdlLXBsdXMtMC4xNS4xL3NyYy9oZWxwZXJzLnJzAAAA0IAQAGEAAABWAAAACQAAAMkAAAAIAAAABAAAAMoAAADLAAAAzAAAAAgAAAAEAAAAzQAAAGVycm9ycmVxdWVzdHJlc3BvbnNlYWRkcmNvZGVfaWRraW5kAM8AAAAMAAAABAAAANAAAADRAAAA0gAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkA0wAAAAAAAAABAAAAFwAAAC9ydXN0Yy82Mjg0OTk4YTI2NzdkN2UzZTg0MjBkYjc4M2YzYWE0ZmQ4MGQ3NDIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwDsgRAASwAAAOgJAAAJAAAAY29zbXdhc21fc3RkOjpyZXN1bHRzOjpzeXN0ZW1fcmVzdWx0OjpTeXN0ZW1SZXN1bHQ8Y29zbXdhc21fc3RkOjpyZXN1bHRzOjpjb250cmFjdF9yZXN1bHQ6OkNvbnRyYWN0UmVzdWx0PGNvc213YXNtX3N0ZDo6YmluYXJ5OjpCaW5hcnk+PmludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IAAA0IIQACoAAABtaXNzaW5nIGZpZWxkIGBgBIMQAA8AAAATgxAAAQAAAGR1cGxpY2F0ZSBmaWVsZCBgAAAAJIMQABEAAAATgxAAAQAAAHVua25vd24gdmFyaWFudCBgYCwgZXhwZWN0ZWQgAAAASIMQABEAAABZgxAADAAAAGAsIHRoZXJlIGFyZSBubyB2YXJpYW50c0iDEAARAAAAeIMQABgAAABkZWNvZGVkIGxlbmd0aCBjYWxjdWxhdGlvbiBvdmVyZmxvdy9ob21lL3Z1b25nLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2Jhc2U2NC0wLjEzLjEvc3JjL2RlY29kZS5ycwAAw4MQAFcAAABuAAAAIwAAAMODEABXAAAACgEAACQAAADDgxAAVwAAAAsBAAApAAAAw4MQAFcAAAAxAQAAFgAAAMODEABXAAAANAEAABoAAADDgxAAVwAAAEgBAAAOAAAAw4MQAFcAAABLAQAAEgAAAMODEABXAAAAXwEAABMAAABJbXBvc3NpYmxlOiBtdXN0IG9ubHkgaGF2ZSAwIHRvIDggaW5wdXQgYnl0ZXMgaW4gbGFzdCBjaHVuaywgd2l0aCBubyBpbnZhbGlkIGxlbmd0aHOchBAAVAAAAMODEABXAAAApAEAAA4AAADDgxAAVwAAALgBAAAJAAAAT3ZlcmZsb3cgd2hlbiBjYWxjdWxhdGluZyBvdXRwdXQgYnVmZmVyIGxlbmd0aAAAw4MQAFcAAACaAAAAIAAAAMODEABXAAAALgIAAAUAAABJbnZhbGlkIFVURjjPAAAAFAAAAAQAAADUAAAAL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvYmFzZTY0LTAuMTMuMS9zcmMvZW5jb2RlLnJzAISFEABXAAAANAAAAAUAAABpbnRlZ2VyIG92ZXJmbG93IHdoZW4gY2FsY3VsYXRpbmcgYnVmZmVyIHNpemUAAACEhRAAVwAAAC8AAAARAAAA0wAAAAAAAAABAAAA1QAAANYAAADWAAAAb2tlcnJvcgBEhhAAAgAAAEaGEAAFAAAAL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvY29zbXdhc20tc3RkLTEuMi4zL3NyYy9zZWN0aW9ucy5yc0Nhbm5vdCByZWFkIHNlY3Rpb24gbGVuZ3RouoYQABoAAABchhAAXgAAADcAAAAJAAAAUmVnaW9uIHBvaW50ZXIgaXMgbnVsbAAA7IYQABYAAAAvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9jb3Ntd2FzbS1zdGQtMS4yLjMvc3JjL21lbW9yeS5ycwyHEABcAAAAOQAAAAUAAABSZWdpb24gc3RhcnRzIGF0IG51bGwgcG9pbnRlcgAAAHiHEAAdAAAADIcQAFwAAAA/AAAABQAAAOAAAAAIAAAABAAAAOEAAADiAAAA4wAAAAwAAAAEAAAA5AAAAOUAAADSAAAAYSBEaXNwbGF5IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHVuZXhwZWN0ZWRseQDgAAAAAAAAAAEAAAAXAAAAL3J1c3RjLzYyODQ5OThhMjY3N2Q3ZTNlODQyMGRiNzgzZjNhYTRmZDgwZDc0MjMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzACSIEABLAAAA6AkAAAkAAADgAAAACAAAAAQAAADmAAAAgIgQAAAAAABDb252ZXJzaW9uIGVycm9yOiAAAJiIEAASAAAARGl2aWRlIGJ5IHplcm86ILSIEAAQAAAAT3ZlcmZsb3c6IAAAzIgQAAoAAABFcnJvciBzZXJpYWxpemluZyB0eXBlIDogAAAA4IgQABcAAAD3iBAAAgAAAEVycm9yIHBhcnNpbmcgaW50byB0eXBlIAyJEAAYAAAA94gQAAIAAAAgbm90IGZvdW5kAACAiBAAAAAAADSJEAAKAAAAQ2Fubm90IGRlY29kZSBVVEY4IGJ5dGVzIGludG8gc3RyaW5nOiAAAFCJEAAmAAAASW52YWxpZCBoZXggc3RyaW5nOiCAiRAAFAAAAEludmFsaWQgZGF0YSBzaXplOiBleHBlY3RlZD0gYWN0dWFsPZyJEAAcAAAAuIkQAAgAAABJbnZhbGlkIEJhc2U2NCBzdHJpbmc6IADQiRAAFwAAAEdlbmVyaWMgZXJyb3I6IADwiRAADwAAAFJlY292ZXIgcHVia2V5IGVycm9yOiAAAAiKEAAWAAAAVmVyaWZpY2F0aW9uIGVycm9yOiAoihAAFAAAAENvbnZlcnNpb25PdmVyZmxvd3NvdXJjZeAAAAAEAAAABAAAAOcAAABEaXZpZGVCeVplcm/gAAAABAAAAAQAAADoAAAAT3ZlcmZsb3fgAAAABAAAAAQAAADpAAAAU2VyaWFsaXplRXJyc291cmNlX3R5cGUA4AAAAAQAAAAEAAAA6gAAAG1zZ1BhcnNlRXJydGFyZ2V0X3R5cGVOb3RGb3VuZGtpbmRJbnZhbGlkVXRmOEludmFsaWRIZXhJbnZhbGlkRGF0YVNpemVleHBlY3RlZAAA4AAAAAQAAAAEAAAA6wAAAGFjdHVhbEludmFsaWRCYXNlNjRHZW5lcmljRXJyUmVjb3ZlclB1YmtleUVycgAAAOAAAAAEAAAABAAAAOwAAABWZXJpZmljYXRpb25FcnIA4AAAAAQAAAAEAAAA7QAAAFNobFNoclBvd011bFN1YkFkZENhbm5vdCAgd2l0aCAgYW5kIJqLEAAHAAAAoYsQAAYAAACnixAABQAAAE92ZXJmbG93RXJyb3JvcGVyYXRpb24AAOAAAAAEAAAABAAAANkAAABvcGVyYW5kMW9wZXJhbmQyQ29udmVyc2lvbk92ZXJmbG93RXJyb3IA4AAAAAQAAAAEAAAA7gAAAHZhbHVlQ2Fubm90IGRpdmlkZSAgYnkgemVybwApjBAADgAAADeMEAAIAAAARGl2aWRlQnlaZXJvRXJyb3JvcGVyYW5kVW5rbm93biBlcnJvcjogAGiMEAAPAAAASW52YWxpZCByZWNvdmVyeSBwYXJhbWV0ZXIuIFN1cHBvcnRlZCB2YWx1ZXM6IDAgYW5kIDEuAACAjBAANgAAAEludmFsaWQgcHVibGljIGtleSBmb3JtYXQAAADAjBAAGQAAAEludmFsaWQgc2lnbmF0dXJlIGZvcm1hdOSMEAAYAAAASW52YWxpZCBoYXNoIGZvcm1hdAAEjRAAEwAAAEdlbmVyaWMgZXJyb3IAAAAgjRAADQAAAEJhdGNoIGVycm9yADiNEAALAAAAVW5rbm93bkVycmVycm9yX2NvZGXgAAAABAAAAAQAAADvAAAASW52YWxpZFJlY292ZXJ5UGFyYW1JbnZhbGlkUHVia2V5Rm9ybWF0SW52YWxpZFNpZ25hdHVyZUZvcm1hdEludmFsaWRIYXNoRm9ybWF0QmF0Y2hFcnIAAJeLEACUixAAkYsQAI6LEACLixAAiIsQAFN5c3RlbUVycm9yaW52YWxpZF9yZXF1ZXN0aW52YWxpZF9yZXNwb25zZW5vX3N1Y2hfY29udHJhY3Rub19zdWNoX2NvZGV1bmtub3dudW5zdXBwb3J0ZWRfcmVxdWVzdOuNEAAPAAAA+o0QABAAAAAKjhAAEAAAABqOEAAMAAAAJo4QAAcAAAAtjhAAEwAAAGtpbmRwjhAABAAAAGNvZGVfaWQAfI4QAAcAAABhZGRyjI4QAAQAAABlcnJvcnJlc3BvbnNlAAAAmI4QAAUAAACdjhAACAAAAHJlcXVlc3QAmI4QAAUAAAC4jhAABwAAAPEAAAAMAAAABAAAAPIAAADzAAAA0gAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkA9AAAAAAAAAABAAAAFwAAAC9ydXN0Yy82Mjg0OTk4YTI2NzdkN2UzZTg0MjBkYjc4M2YzYWE0ZmQ4MGQ3NDIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwAwjxAASwAAAOgJAAAJAAAA9AAAAAQAAAAEAAAA9QAAAPYAAAD3AAAAaW52YWxpZCBiYXNlNjQ6IKSPEAAQAAAAVEw7RFI6IFZhbHVlIG11c3Qgbm90IGJlIGVtcHR5IGluIFN0b3JhZ2U6OnNldCBidXQgaW4gbW9zdCBjYXNlcyB5b3UgY2FuIHVzZSBTdG9yYWdlOjpyZW1vdmUgaW5zdGVhZC4gTG9uZyBzdG9yeTogR2V0dGluZyBlbXB0eSB2YWx1ZXMgZnJvbSBzdG9yYWdlIGlzIG5vdCB3ZWxsIHN1cHBvcnRlZCBhdCB0aGUgbW9tZW50LiBTb21lIG9mIG91ciBpbnRlcm5hbCBpbnRlcmZhY2VzIGNhbm5vdCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gYSBub24tZXhpc3RlbnQga2V5IGFuZCBhbiBlbXB0eSB2YWx1ZS4gUmlnaHQgbm93LCB5b3UgY2Fubm90IHJlbHkgb24gdGhlIGJlaGF2aW91ciBvZiBlbXB0eSB2YWx1ZXMuIFRvIHByb3RlY3QgeW91IGZyb20gdHJvdWJsZSBsYXRlciBvbiwgd2Ugc3RvcCBoZXJlLiBTb3JyeSBmb3IgdGhlIGluY29udmVuaWVuY2UhIFdlIGhpZ2hseSB3ZWxjb21lIHlvdSB0byBjb250cmlidXRlIHRvIENvc21XYXNtLCBtYWtpbmcgdGhpcyBtb3JlIHNvbGlkIG9uZSB3YXkgb3IgdGhlIG90aGVyLryPEAAIAgAAL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvY29zbXdhc20tc3RkLTEuMi4zL3NyYy9pbXBvcnRzLnJzAAAAzJEQAF0AAABrAAAADQAAAPQAAAAEAAAABAAAAPgAAAD5AAAA+gAAAPsAAABpbnB1dCB0b28gbG9uZyBmb3IgYWRkcl92YWxpZGF0ZWFkZHJfdmFsaWRhdGUgZXJyb3JlZDogAHiSEAAXAAAAaW5wdXQgdG9vIGxvbmcgZm9yIGFkZHJfY2Fub25pY2FsaXplYWRkcl9jYW5vbmljYWxpemUgZXJyb3JlZDogALySEAAbAAAAYWRkcl9odW1hbml6ZSBlcnJvcmVkOiAA4JIQABcAAABNZXNzYWdlVG9vTG9uZyBtdXN0IG5vdCBoYXBwZW4uIFRoaXMgaXMgYSBidWcgaW4gdGhlIFZNLgCTEAA4AAAAzJEQAF0AAAAIAQAAEgAAAMyREABdAAAAJQEAABIAAABJbnZhbGlkSGFzaEZvcm1hdCBtdXN0IG5vdCBoYXBwZW4uIFRoaXMgaXMgYSBidWcgaW4gdGhlIFZNLgBgkxAAOwAAAMyREABdAAAAPwEAABIAAABFcnJvciBjb2RlIDIgdW51c2VkIHNpbmNlIENvc21XYXNtIDAuMTUuIFRoaXMgaXMgYSBidWcgaW4gdGhlIFZNLgAAALSTEABBAAAAzJEQAF0AAAA+AQAAEgAAAMyREABdAAAAXwEAABIAAADMkRAAXQAAAF4BAAASAAAAVW5rbm93biBlcnJvcjogADCUEAAPAAAASW52YWxpZCByZWNvdmVyeSBwYXJhbWV0ZXIuIFN1cHBvcnRlZCB2YWx1ZXM6IDAgYW5kIDEuAABIlBAANgAAAEludmFsaWQgc2lnbmF0dXJlIGZvcm1hdIiUEAAYAAAASW52YWxpZCBoYXNoIGZvcm1hdAColBAAEwAAAFVua25vd25FcnJlcnJvcl9jb2Rl/AAAAAQAAAAEAAAA7wAAAEludmFsaWRSZWNvdmVyeVBhcmFtSW52YWxpZFNpZ25hdHVyZUZvcm1hdEludmFsaWRIYXNoRm9ybWF0ACSVEAAAAAAAQnVmZmVyIGlzIGZ1bGwAACyVEAAOAAAAZmFsc2UvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9zZXJkZS1qc29uLXdhc20tMC41LjEvc3JjL3Nlci9tb2QucnMAAABJlRAAYAAAAN0AAAAJAAAAL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvc2VyZGUtanNvbi13YXNtLTAuNS4xL3NyYy9kZS91bmVzY2FwZS5yc7yVEABkAAAAJQAAABUAAABOb24taGV4IEFTQ0lJIGNoYXJhY3RlciBmb3VuZAAAADCWEAAdAAAAvJUQAGQAAACZAAAADgAAAC9ob21lL3Z1b25nLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3NlcmRlLWpzb24td2FzbS0wLjUuMS9zcmMvZGUvbW9kLnJzAGiWEABfAAAAfQAAACIAAABolhAAXwAAAIEAAAAsAAAA6JYQAAAAAABKU09OIGhhcyBhIGNvbW1hIGFmdGVyIHRoZSBsYXN0IHZhbHVlIGluIGFuIGFycmF5IG9yIG1hcC5KU09OIGhhcyBub24td2hpdGVzcGFjZSB0cmFpbGluZyBjaGFyYWN0ZXJzIGFmdGVyIHRoZSB2YWx1ZS5Gb3VuZCBhIGxvbmUgc3Vycm9nYXRlLCB3aGljaCBjYW4gZXhpc3QgaW4gSlNPTiBidXQgY2Fubm90IGJlIGVuY29kZWQgdG8gVVRGLTguT2JqZWN0IGtleSBpcyBub3QgYSBzdHJpbmcuSW52YWxpZCB1bmljb2RlIGNvZGUgcG9pbnQuSW52YWxpZCB0eXBlSW52YWxpZCBudW1iZXIuSW52YWxpZCBlc2NhcGUgc2VxdWVuY2UuRXhwZWN0ZWQgdGhpcyBjaGFyYWN0ZXIgdG8gc3RhcnQgYSBKU09OIHZhbHVlLkV4cGVjdGVkIHRvIHBhcnNlIGVpdGhlciBhIGB0cnVlYCwgYGZhbHNlYCwgb3IgYSBgbnVsbGAuRXhwZWN0ZWQgdGhpcyBjaGFyYWN0ZXIgdG8gYmUgZWl0aGVyIGEgYCcsJ2Agb3IgYSBgJ30nYC5FeHBlY3RlZCBhIGxvdyBzdXJyb2dhdGUgKERDMDDigJNERkZGKS5FeHBlY3RlZCB0aGlzIGNoYXJhY3RlciB0byBiZSBlaXRoZXIgYSBgJywnYCBvcmEgYCddJ2AuRXhwZWN0ZWQgYSBoaWdoIHN1cnJvZ2F0ZSAoRDgwMOKAk0RCRkYpLkV4cGVjdGVkIHRoaXMgY2hhcmFjdGVyIHRvIGJlIGEgYCc6J2AuRU9GIHdoaWxlIHBhcnNpbmcgYSBKU09OIHZhbHVlLkVPRiB3aGlsZSBwYXJzaW5nIGEgc3RyaW5nLkVPRiB3aGlsZSBwYXJzaW5nIGFuIG9iamVjdC5FT0Ygd2hpbGUgcGFyc2luZyBhIGxpc3QuQ29udHJvbCBjaGFyYWN0ZXIgZm91bmQgaW4gc3RyaW5nLkludmFsaWQgaGFzaCB0eXBlIHdpdGggbGVuZ3RoOiAA+JkQAB8AAABHcmFuZHBhIGZpbmFsaXR5IHByb29mIGlzIHJlcXVpcmVkIQAgmhAAIwAAAGRlc2NyaXB0aW9uKCkgaXMgZGVwcmVjYXRlZDsgdXNlIERpc3BsYXlDdXN0b20AAP8AAAAEAAAABAAAAAABAABBbnlob3cAAP8AAAAEAAAABAAAAAEBAABHcmFuZHBhUHJpbWl0aXZlcwAAAP8AAAAEAAAABAAAAAIBAABQcm90b0J1Zv8AAAAEAAAABAAAAAMBAABJY3MwNAAAAP8AAAAEAAAABAAAAAQBAABJY3MwMgAAAP8AAAAEAAAABAAAAAUBAABWYWxpZGF0aW9uRXJyb3IA/wAAAAQAAAAEAAAABgEAAFBhcnNlVGltZVN0YW1wAAD/AAAABAAAAAQAAAAHAQAAVGltZVN0YW1wAAAA/wAAAAQAAAAEAAAACAEAAENvZGVjAAAA/wAAAAQAAAAEAAAACQEAAISbEAAAAAAATm90IGVub3VnaCBkYXRhIHRvIGRlY29kZSB2ZWN0b3IvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJpdHktc2NhbGUtY29kZWMtMy41LjAvc3JjL2NvZGVjLnJzAAAArJsQAGEAAAAJBAAAHQAAAG91dCBvZiByYW5nZSBkZWNvZGluZyBDb21wYWN0PHUzMj5Db3VsZCBub3QgZGVjb2RlIGBIZWFkZXI6OnBhcmVudF9oYXNoYENvdWxkIG5vdCBkZWNvZGUgYEhlYWRlcjo6bnVtYmVyYENvdWxkIG5vdCBkZWNvZGUgYEhlYWRlcjo6c3RhdGVfcm9vdGBDb3VsZCBub3QgZGVjb2RlIGBIZWFkZXI6OmV4dHJpbnNpY3Nfcm9vdGBDb3VsZCBub3QgZGVjb2RlIGBIZWFkZXI6OmRpZ2VzdGAxMC1ncmFuZHBhL2liYy5saWdodGNsaWVudHMuZ3JhbmRwYS52MS5Db25zZW5zdXNTdGF0ZWVuY29kZSBDb25zZW5zdXNTdGF0ZQAMAQAAFAAAAAQAAAARAAAAbGlnaHQtY2xpZW50cy9pY3MxMC1ncmFuZHBhL3NyYy9jb25zZW5zdXNfc3RhdGUucnMAAFSdEAAyAAAANAAAABQAAABJbnZhbGlkIGNvbnNlbnN1cyBzdGF0ZTogbWlzc2luZyB0aW1lc3RhbXBJbnZhbGlkIGNvbnNlbnN1cyBzdGF0ZTogaW52YWxpZCB0aW1lc3RhbXAgAAAAwp0QACsAAABDb25zZW5zdXNTdGF0ZXRpbWVzdGFtcAANAQAABAAAAAQAAAAOAQAAcm9vdA0BAAAEAAAABAAAAA8BAABDb3VsZCBub3QgZGVjb2RlIGBEaWdlc3RJdGVtVHlwZWAsIHZhcmlhbnQgZG9lc24ndCBleGlzdENvdWxkIG5vdCBkZWNvZGUgYERpZ2VzdEl0ZW1UeXBlYCwgZmFpbGVkIHRvIHJlYWQgdmFyaWFudCBieXRlQ291bGQgbm90IGRlY29kZSBgRGlnZXN0Ojpsb2dzYAAAAEludmFsaWQgaGFzaCB0eXBlIHdpdGggbGVuZ3RoOiAAzJ4QAB8AAABQYXJhY2hhaW4gaGVhZGVyIGlzIHJlcXVpcmVkIQAAAPSeEAAdAAAAZGVzY3JpcHRpb24oKSBpcyBkZXByZWNhdGVkOyB1c2UgRGlzcGxheRABAAAMAAAABAAAABEBAAAQAQAADAAAAAQAAAASAQAAEQEAAESfEAATAQAAFAEAABUBAAAWAQAAFwEAABgBAAAIAAAABAAAABkBAAAYAQAACAAAAAQAAAAaAQAAGQEAAICfEAATAQAAGwEAABwBAAAdAQAAHgEAAB8BAAAoAAAABAAAACABAAAfAQAAKAAAAAQAAAAhAQAAIAEAALyfEAAiAQAAIwEAACQBAAAiAQAAJQEAACYBAAAsAAAABAAAACABAAAmAQAALAAAAAQAAAAhAQAAIAEAAPifEAAiAQAAJwEAACQBAAAiAQAAJQEAAENvdWxkIG5vdCBkZWNvZGUgYEZpbmFsaXR5UHJvb2Y6OmJsb2NrYENvdWxkIG5vdCBkZWNvZGUgYEZpbmFsaXR5UHJvb2Y6Omp1c3RpZmljYXRpb25gQ291bGQgbm90IGRlY29kZSBgRmluYWxpdHlQcm9vZjo6dW5rbm93bl9oZWFkZXJzYAAoAQAAKQEAACoBAAArAQAALAEAAC0BAAAuAQAALwEAADABAAAxAQAAYXNzZXJ0aW9uIGZhaWxlZDogaWR4IDwgQ0FQQUNJVFkvcnVzdGMvNjI4NDk5OGEyNjc3ZDdlM2U4NDIwZGI3ODNmM2FhNGZkODBkNzQyMy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9idHJlZS9ub2RlLnJzAAShEABbAAAAiwIAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBzcmMubGVuKCkgPT0gZHN0LmxlbigpBKEQAFsAAADUBgAABQAAAGFzc2VydGlvbiBmYWlsZWQ6IG9sZF9sZWZ0X2xlbiA+PSBjb3VudAAEoRAAWwAAAIQFAAANAAAAYXNzZXJ0aW9uIGZhaWxlZDogbGVuID4gMAAAAAShEABbAAAAYgEAAAkAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlL3J1c3RjLzYyODQ5OThhMjY3N2Q3ZTNlODQyMGRiNzgzZjNhYTRmZDgwZDc0MjMvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYnRyZWUvbmF2aWdhdGUucnMAADeiEABfAAAATAIAAA0AAAAvcnVzdGMvNjI4NDk5OGEyNjc3ZDdlM2U4NDIwZGI3ODNmM2FhNGZkODBkNzQyMy9saWJyYXJ5L2FsbG9jL3NyYy9zbGljZS5ycwAAqKIQAEoAAAAhBAAAFQAAAKiiEABKAAAALwQAAB4AAACoohAASgAAADgEAAAYAAAAqKIQAEoAAAA8BAAAGgAAAKiiEABKAAAAQgQAAA0AAACoohAASgAAAEMEAAASAAAAY2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZS9ydXN0Yy82Mjg0OTk4YTI2NzdkN2UzZTg0MjBkYjc4M2YzYWE0ZmQ4MGQ3NDIzL2xpYnJhcnkvYWxsb2Mvc3JjL2NvbGxlY3Rpb25zL2J0cmVlL25hdmlnYXRlLnJzAAB/oxAAXwAAALoAAAAVAAAAQ29kZWMAAAAyAQAABAAAAAQAAAAzAQAAQW55aG93AAAyAQAABAAAAAQAAAA0AQAAUGFyYXNIZWFkc3VuZXhwZWN0ZWQgcHJlZml4IGRlY29kaW5nIENvbXBhY3Q8dTY0Pm91dCBvZiByYW5nZSBkZWNvZGluZyBDb21wYWN0PHU2ND4AUm9jb2NvS3VzYW1hUG9sa2Fkb3RVbmtub3duIHJlbGF5IGNoYWluIIikEAAUAAAAbGlnaHQtY2xpZW50cy9jb21tb24vc3JjL2xpYi5ycwCkpBAAHwAAAMUAAABRAAAARmFpbGVkIHRvIGRlY29kZSBleHRyaW5zaWM6INSkEAAcAAAAZGVzY3JpcHRpb24oKSBpcyBkZXByZWNhdGVkOyB1c2UgRGlzcGxheTcBAAAIAAAABAAAADgBAAA3AQAACAAAAAQAAAA5AQAAOAEAACClEAA6AQAAOwEAADwBAAA9AQAAPgEAAD8BAAAMAAAABAAAAEABAAA/AQAADAAAAAQAAABBAQAAQAEAAFylEAA6AQAAQgEAAEMBAABEAQAARQEAAEYBAAAsAAAABAAAAEcBAABGAQAALAAAAAQAAABIAQAARwEAAJilEABJAQAASgEAAEsBAABJAQAATAEAAE0BAAAoAAAABAAAAEcBAABNAQAAKAAAAAQAAABIAQAARwEAANSlEABJAQAATgEAAEsBAABJAQAATAEAAE8BAABQAQAAUQEAAFIBAABTAQAAVAEAAFUBAABWAQAAVwEAAFgBAABkZXNjcmlwdGlvbigpIGlzIGRlcHJlY2F0ZWQ7IHVzZSBEaXNwbGF5b3V0IG9mIGRhdGEvaG9tZS92dW9uZy8uY2FyZ28vZ2l0L2NoZWNrb3V0cy9zdWJzdHJhdGUtZjQ0MjNlZWJmYTAwNDZhMy84YzRiODQ1L3ByaW1pdGl2ZXMvdHJpZS9zcmMvbm9kZV9jb2RlYy5yc2umEABlAAAAPgAAAB8AAABrphAAZQAAAEcAAAAUAAAAQml0bWFwIHdpdGhvdXQgYSBjaGlsZC4vaG9tZS92dW9uZy8uY2FyZ28vZ2l0L2NoZWNrb3V0cy9zdWJzdHJhdGUtZjQ0MjNlZWJmYTAwNDZhMy84YzRiODQ1L3ByaW1pdGl2ZXMvdHJpZS9zcmMvbGliLnJzAAAAB6cQAF4AAAC2AQAABQAAANMIo4WIaj8kRHNwAy6KGRPQMZ8pIjgJpIlsTuyY+i4I0wijhYhqPyREc3ADLooZE9AxnykiOAmkiWxO7Jj6Lgh3E9A45iEoRWwM6TTPZlS+3VB8ybcprMAXCUe1tdWEPy9ob21lL3Z1b25nLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3RyaWUtZGItMC4yNS4xL3NyYy9uaWJibGUvbmliYmxlc2xpY2UucnPYpxAAZAAAABwAAAAaAAAA2KcQAGQAAACPAAAAKgAAANinEABkAAAAkAAAACsAAADYpxAAZAAAAJkAAAAoAAAA2KcQAGQAAACZAAAAQgAAANinEABkAAAAngAAABQAAADYpxAAZAAAAJ4AAAAiAAAA2KcQAGQAAACtAAAAKQAAANinEABkAAAArwAAABcAAADYpxAAZAAAAPYAAAAPAAAA2KcQAGQAAAD2AAAAPQAAANinEABkAAAA9AAAAA8AAADYpxAAZAAAABEBAAAYAAAAL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvdHJpZS1kYi0wLjI1LjEvc3JjL25pYmJsZS9uaWJibGV2ZWMucnMAAAypEABiAAAANQAAACgAAABsZW4gIT0gMCBzaW5jZSBsZW4gJSAyICE9IDA7IGlubmVyIGhhcyBhIGxhc3QgZWxlbWVudDsgcWVkAAAMqRAAYgAAAD8AAAAaAAAADKkQAGIAAAAPAQAAFAAAAGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUAWQEAAAgAAAAEAAAAWgEAAC9ob21lL3Z1b25nLy5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3NtYWxsdmVjLTEuMTAuMC9zcmMvbGliLnJzAAAYqhAAVgAAAEYBAAASAAAAY2FwYWNpdHkgb3ZlcmZsb3cAAAAYqhAAVgAAADUBAAA2AAAAYXNzZXJ0aW9uIGZhaWxlZDogbmV3X2NhcCA+PSBsZW4YqhAAVgAAAIQDAAANAAAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQBbAQAAAAAAAAEAAABcAQAAL3J1c3RjLzYyODQ5OThhMjY3N2Q3ZTNlODQyMGRiNzgzZjNhYTRmZDgwZDc0MjMvbGlicmFyeS9hbGxvYy9zcmMvc3luYy5ycwAAABCrEABJAAAAiQQAABYAAAAQqxAASQAAANoEAAARAAAAL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvdHJpZS1kYi0wLjI1LjEvc3JjL25vZGUucnMAAHyrEABWAAAAvQEAAEIAAAB8qxAAVgAAALwBAAA+AAAAfKsQAFYAAADaAQAAIgAAAHyrEABWAAAA7gEAADQAAAB8qxAAVgAAAO0BAAA4AAAAL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvdHJpZS1kYi0wLjI1LjEvc3JjL25pYmJsZS9sZWZ0bmliYmxlc2xpY2UucnMkrBAAaAAAAC4AAAASAAAAJKwQAGgAAABCAAAAQAAAACSsEABoAAAAZwAAAAwAAAAkrBAAaAAAAGcAAAAmAAAAaXQncyBsZXNzIHRoYW4gcHJlZml4LmxlbigpOyBxZWQvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy90cmllLWRiLTAuMjUuMS9zcmMvcHJvb2YvdmVyaWZ5LnJzAADsrBAAXgAAAHsBAAANAAAAXK0QAAAAAABpY3MwMyBjb25uZWN0aW9uIGVycm9yAABkrRAAFgAAAGljczAyIGNsaWVudCBlcnJvcgAAhK0QABIAAABpY3MwNSBwb3J0IGVycm9yoK0QABAAAABjaGFubmVsIHN0YXRlIHVua25vd246IAC4rRAAFwAAAGlkZW50aWZpZXIgZXJyb3LYrRAAEAAAAGNoYW5uZWwgb3JkZXIgdHlwZSB1bmtub3duOiDwrRAAHAAAAGludmFsaWQgY29ubmVjdGlvbiBob3BzIGxlbmd0aDogZXhwZWN0ZWQgOyBhY3R1YWwgAAAUrhAAKQAAAD2uEAAJAAAAcGFja2V0IGRlc3RpbmF0aW9uIHBvcnQgIGFuZCBjaGFubmVsICBkb2Vzbid0IG1hdGNoIHRoZSBjb3VudGVycGFydHkncyBwb3J0L2NoYW5uZWwAWK4QABgAAABwrhAADQAAAH2uEAAuAAAAaW52YWxpZCB2ZXJzaW9uAMSuEAAPAAAAaW52YWxpZCBzaWduZXIgYWRkcmVzcwAA3K4QABYAAABpbnZhbGlkIHByb29mAAAA/K4QAA0AAABpbnZhbGlkIHByb29mOiBtaXNzaW5nIGhlaWdodAAAABSvEAAdAAAAaW52YWxpZCBwcm9vZjogbWlzc2luZyBjaGFubmVsIHByb29mPK8QACQAAABNaXNzaW5nIHNlcXVlbmNlIG51bWJlciBmb3IgcmVjZWl2aW5nIHBhY2tldHMgb24gcG9ydCAAAGivEAA2AAAAcK4QAA0AAABwYWNrZXQgc2VxdWVuY2UgY2Fubm90IGJlIDAAsK8QABsAAABwYWNrZXQgZGF0YSBieXRlcyBjYW5ub3QgYmUgZW1wdHkAAADUrxAAIQAAAHBhY2tldCB0aW1lb3V0IGhlaWdodCBhbmQgcGFja2V0IHRpbWVvdXQgdGltZXN0YW1wIGNhbm5vdCBib3RoIGJlIDAAALAQAEMAAABpbnZhbGlkIHRpbWVvdXQgaGVpZ2h0IGZvciB0aGUgcGFja2V0AAAATLAQACUAAABpbnZhbGlkIHBhY2tldAAAfLAQAA4AAAB0aGVyZSBpcyBubyBwYWNrZXQgaW4gdGhpcyBtZXNzYWdlAACUsBAAIgAAAG1pc3NpbmcgY2hhbm5lbCBpZAAAwLAQABIAAABtaXNzaW5nIGNvdW50ZXJwYXJ0edywEAAUAAAAbm8gY29tbW9uZyB2ZXJzaW9uAAD4sBAAEgAAAG1pc3NpbmcgY2hhbm5lbCBlbmQAFLEQABMAAABzaW5nbGUgdmVyc2lvbiBtdXN0IGJlIG5lZ29jaWF0ZWQgb24gY29ubmVjdGlvbiBiZWZvcmUgb3BlbmluZyBjaGFubmVsAAAwsRAARgAAAHRoZSBjaGFubmVsIG9yZGVyaW5nIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29ubmVjdGlvbgCAsRAAMwAAAHRoZSBjaGFubmVsIGVuZCAoLCApIGRvZXMgbm90IGV4aXN0ALyxEAARAAAAzbEQAAIAAADPsRAAEAAAAGEgZGlmZmVyZW50IGNoYW5uZWwgZXhpc3RzICh3YXMgaW5pdGlhbGl6ZWQpIGFscmVhZHkgZm9yIHRoZSBzYW1lIGNoYW5uZWwgaWRlbnRpZmllciAAAAD4sRAAVQAAAHRoZSBhc3NvY2lhdGVkIGNvbm5lY3Rpb24gIGlzIG5vdCBPUEVOAABYshAAGgAAAHKyEAAMAAAAVW5kZWZpbmVkIGNvdW50ZXJwYXJ0eSBjb25uZWN0aW9uIGZvciAAAJCyEAAmAAAAVmVyaWZpY2F0aW9uIGZhaWxzIGZvciB0aGUgcGFja2V0IHdpdGggdGhlIHNlcXVlbmNlIG51bWJlciAAwLIQADsAAABFcnJvciB2ZXJpZnlpbmcgY2hhbm5lbCBzdGF0ZQAAAASzEAAdAAAAQWNrbm93bGVkZ21lbnQgY2Fubm90IGJlIGVtcHR5AAAssxAAHgAAAFBhY2tldCBhY2tub3dsZWRnZW1lbnQgZXhpc3RzIGZvciB0aGUgcGFja2V0IHdpdGggdGhlIHNlcXVlbmNlIABUsxAAPwAAAE1pc3Npbmcgc2VxdWVuY2UgbnVtYmVyIGZvciBzZW5kaW5nIHBhY2tldHMgb24gcG9ydCCcsxAANAAAAHCuEAANAAAAU3RyaW5nICBjYW5ub3QgYmUgY29udmVydGVkIHRvIHBhY2tldCBzZXF1ZW5jZQAA4LMQAAcAAADnsxAAJwAAAEludmFsaWQgcGFja2V0IHNlcXVlbmNlICDiiaAgbmV4dCBzZW5kIHNlcXVlbmNlICC0EAAYAAAAOLQQABgAAABSZWNlaXZpbmcgY2hhaW4gYmxvY2sgaGVpZ2h0ICA+PSBwYWNrZXQgdGltZW91dCBoZWlnaHQgAGC0EAAdAAAAfbQQABoAAABQYWNrZXQgdGltZW91dCBub3Qgc2F0aXNpZmllZCBmb3IgZWl0aGVyIHBhY2tldCBoZWlnaHQgb3IgdGltZXN0YW1wLCBQYWNrZXQgdGltZW91dCBoZWlnaHQgLCBjaGFpbiBoZWlnaHQgLCBQYWNrZXQgdGltZW91dCB0aW1lc3RhbXAgLCAgY2hhaW4gdGltZXN0YW1wIKi0EABbAAAAA7UQAA8AAAAStRAAGwAAAC21EAATAAAAUGFja2V0IHRpbWVvdXQgaGVpZ2h0ICA+IGNoYWluIGhlaWdodCAAAGC1EAAWAAAAdrUQABAAAABQYWNrZXQgdGltZW91dCB0aW1lc3RhbXAgID4gY2hhaW4gdGltZXN0YW1wIJi1EAAZAAAAsbUQABMAAABSZWNlaXZpbmcgY2hhaW4gYmxvY2sgdGltZXN0YW1wID49IHBhY2tldCB0aW1lb3V0IHRpbWVzdGFtcADUtRAAOwAAAEludmFsaWQgcGFja2V0IHRpbWVvdXQgdGltZXN0YW1wIHZhbHVlAAAYthAAJgAAAEludmFsaWQgcGFja2V0IGhlaWdodCB2YWx1ZQBIthAAGwAAAEludmFsaWQgdGltZXN0YW1wIGluIGNvbnNlbnN1cyBzdGF0ZTsgdGltZXN0YW1wIG11c3QgYmUgYSBwb3NpdGl2ZSB2YWx1ZWy2EABIAAAAQ2xpZW50IHdpdGggaWQgIGlzIGZyb3plbgAAALy2EAAPAAAAy7YQAAoAAABJbnZhbGlkIGNoYW5uZWwgaWQgaW4gY291bnRlcnBhcnR5AADothAAIgAAAENoYW5uZWwgIHNob3VsZCBub3QgYmUgc3RhdGUgAAAAFLcQAAgAAAActxAAFQAAACBpcyBDbG9zZWQAABS3EAAIAAAARLcQAAoAAABIYW5kc2hha2UgcHJvb2YgdmVyaWZpY2F0aW9uIGZhaWxzIGF0IENoYW5uZWxPcGVuQWNrYLcQADQAAABDb21taXRtZW50IGZvciB0aGUgcGFja2V0ICBub3QgZm91bmSctxAAGgAAALa3EAAKAAAAVGhlIHN0b3JlZCBjb21taXRtZW50IG9mIHRoZSBwYWNrZXQgIGlzIGluY29ycmVjdAAAANC3EAAkAAAA9LcQAA0AAABSZWNlaXB0IGZvciB0aGUgcGFja2V0IAAUuBAAFwAAALa3EAAKAAAAQWNrbm93bGVkZ21lbnQgZm9yIHRoZSBwYWNrZXQgAAA8uBAAHgAAALa3EAAKAAAATWlzc2luZyBzZXF1ZW5jZSBudW1iZXIgZm9yIGFjayBwYWNrZXRzIG9uIHBvcnQgbLgQADAAAABwrhAADQAAAFByb2Nlc3NlZCB0aW1lIGZvciB0aGUgY2xpZW50ICBhdCBoZWlnaHQgAAAArLgQAB4AAADKuBAACwAAALa3EAAKAAAAUHJvY2Vzc2VkIGhlaWdodCBmb3IgdGhlIGNsaWVudCDwuBAAIAAAAMq4EAALAAAAtrcQAAoAAAByb3V0ZSBub3QgZm91bmQAKLkQAA8AAABpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBlcnJvcjogAEC5EAAfAAAAYXBwbGljYXRpb24gbW9kdWxlIGVycm9yOiAAAGi5EAAaAAAARmFpbGVkIHRvIGNvbnZlcnQgYWJjaSBldmVudCB0byBJYmNFdmVudDogAACMuRAAKgAAAG5vdCBlbm91Z2ggZnVuZHMgZm9yIGZlZcC5EAAYAAAA4LkQAAAAAABjbGllbnQgJycgZXJyb3I6IAAAAOi5EAAIAAAA8LkQAAkAAAB1bmtub3duIGNsaWVudCB0eXBlOiAAAAAMuhAAFQAAAENsaWVudCBpZGVudGlmaWVyIGNvbnN0cnVjdG9yIGZhaWxlZCBmb3IgdHlwZSAgd2l0aCBjb3VudGVyICy6EAAuAAAAWroQAA4AAABjbGllbnQgYWxyZWFkeSBleGlzdHM6IAB4uhAAFwAAAGNsaWVudCBub3QgZm91bmQ6IAAAmLoQABIAAABjbGllbnQgaXMgZnJvemVuOiAAALS6EAASAAAAY29uc2Vuc3VzIHN0YXRlIG5vdCBmb3VuZCBhdDogIGF0IGhlaWdodCAAAADQuhAAHgAAAO66EAALAAAAaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgZXJyb3I6IAAMuxAAHwAAAGhlYWRlciB2ZXJpZmljYXRpb24gZmFpbGVkIHdpdGggcmVhc29uOiA0uxAAKAAAAGZhaWxlZCB0byBidWlsZCB0cnVzdCB0aHJlc2hvbGQgZnJvbSBmcmFjdGlvbjogL2S7EAAvAAAAk7sQAAEAAABmYWlsZWQgdG8gYnVpbGQgVGVuZGVybWludCBkb21haW4gdHlwZSB0cnVzdCB0aHJlc2hvbGQgZnJvbSBmcmFjdGlvbjogAACkuxAARgAAAJO7EAABAAAAdW5rbm93biBjbGllbnQgc3RhdGUgdHlwZTogAPy7EAAbAAAAdGhlIGNsaWVudCBzdGF0ZSB3YXMgbm90IGZvdW5kAAAgvBAAHgAAAGVtcHR5IHByZWZpeEi8EAAMAAAAdW5rbm93biBjbGllbnQgY29uc2Vuc3VzIHN0YXRlIHR5cGU6IAAAAFy8EAAlAAAAdGhlIGNsaWVudCBjb25zZW5zdXMgc3RhdGUgd2FzIG5vdCBmb3VuZIy8EAAoAAAAdW5rbm93biBoZWFkZXIgdHlwZTogAAAAvLwQABUAAAB1bmtub3duIG1pc2JlaGF2aW91ciB0eXBlOiAA3LwQABsAAABpbnZhbGlkIHJhdyBjbGllbnQgaWRlbnRpZmllciAAAAC9EAAeAAAAZXJyb3IgZGVjb2RpbmcgcmF3IGNsaWVudCBzdGF0ZQAovRAAHwAAAGVycm9yIGRlY29kaW5nIHJhdyBoZWFkZXIAAABQvRAAGQAAAG1pc3NpbmcgcmF3IGNsaWVudCBzdGF0ZXS9EAAYAAAAaW52YWxpZCByYXcgY2xpZW50IGNvbnNlbnN1cyBzdGF0ZQAAlL0QACIAAABtaXNzaW5nIHJhdyBjbGllbnQgY29uc2Vuc3VzIHN0YXRlAADAvRAAIgAAAGludmFsaWQgY2xpZW50IGlkIGluIHRoZSB1cGRhdGUgY2xpZW50IG1lc3NhZ2UAAOy9EAAuAAAAZGVjb2RlIGVycm9yJL4QAAwAAABlbmNvZGUgZXJyb3I4vhAADAAAAGludmFsaWQgcmF3IGNsaWVudCBjb25zZW5zdXMgc3RhdGU6IHRoZSBoZWlnaHQgZmllbGQgaXMgbWlzc2luZwBMvhAAPwAAAGludmFsaWQgY2xpZW50IGlkZW50aWZpZXIAAACUvhAAGQAAAGludmFsaWQgcmF3IGhlYWRlcgAAuL4QABIAAABtYWxmb3JtZWQgaGVhZGVyOyBleHBlY3RlZCB0byBiZSBoZXggZW5jb2RlZNS+EAAsAAAAbWlzc2luZyByYXcgaGVhZGVyAAAIvxAAEgAAAG1pc3NpbmcgcmF3IGNsaWVudCBtZXNzYWdlAAAkvxAAGgAAAGludmFsaWQgcmF3IG1pc2JlaGF2aW91cki/EAAYAAAAbWlzc2luZyByYXcgbWlzYmVoYXZpb3VyaL8QABgAAABTdHJpbmcgIGNhbm5ub3QgYmUgY29udmVydGVkIHRvIGhlaWdodAAAiL8QAAcAAACPvxAAHwAAAGhlaWdodCBjYW5ub3QgZW5kIHVwIHplcm8gb3IgbmVnYXRpdmUAAADAvxAAJQAAAGludmFsaWQgYWRkcmVzcwDwvxAADwAAAGludmFsaWQgcHJvb2YgZm9yIHRoZSB1cGdyYWRlZCBjbGllbnQgc3RhdGUACMAQACsAAABpbnZhbGlkIHByb29mIGZvciB0aGUgdXBncmFkZWQgY29uc2Vuc3VzIHN0YXRlAAA8wBAALgAAAGludmFsaWQgY29tbWl0bWVudCBwcm9vZiBieXRlcwAAdMAQAB4AAABpbnZhbGlkIHBhY2tldCB0aW1lb3V0IHRpbWVzdGFtcCB2YWx1ZQAAnMAQACYAAABtaXNtYXRjaCBiZXR3ZWVuIGNsaWVudCBhbmQgYXJndW1lbnRzIHR5cGVzLCBleHBlY3RlZDogAMzAEAA3AAAASW5zdWZmaWNpZW50IG92ZXJsYXAgAAAADMEQABUAAABtaXNtYXRjaCBpbiByYXcgY2xpZW50IGNvbnNlbnN1cyBzdGF0ZSAgd2l0aCBleHBlY3RlZCBzdGF0ZSAswRAAJwAAAFPBEAAVAAAAcmVjZWl2ZWQgaGVhZGVyIGhlaWdodCAoKSBpcyBsb3dlciB0aGFuIChvciBlcXVhbCB0bykgY2xpZW50IGxhdGVzdCBoZWlnaHQgKCkAAAB4wRAAGAAAAJDBEAA0AAAAxMEQAAEAAAB1cGdyYWRlZCBjbGllbnQgaGVpZ2h0ICBtdXN0IGJlIGF0IGdyZWF0ZXIgdGhhbiBjdXJyZW50IGNsaWVudCBoZWlnaHQgAADgwRAAFwAAAPfBEAAvAAAAdGltZXN0YW1wIGlzIGludmFsaWQgb3IgbWlzc2luZywgdGltZXN0YW1wPSwgIG5vdz0AADjCEAArAAAAY8IQAAcAAABoZWFkZXIgbm90IHdpdGhpbmcgdHJ1c3RpbmcgcGVyaW9kOiBleHBpcmVzX2F0PSBub3c9fMIQAC8AAACrwhAABQAAAHRoZSBsb2NhbCBjb25zZW5zdXMgc3RhdGUgY291bGQgbm90IGJlIHJldHJpZXZlZCBmb3IgaGVpZ2h0IMDCEAA8AAAAaW52YWxpZCBjb25uZWN0aW9uIGVuZAAABMMQABYAAABpbnZhbGlkIGNoYW5uZWwgZW5kACTDEAATAAAAaW52YWxpZCBhbnkgY2xpZW50IHN0YXRlQMMQABgAAABpbnZhbGlkIGFueSBjbGllbnQgY29uc2Vuc3VzIHN0YXRlAABgwxAAIgAAAGZhaWxlZCB0byBwYXJzZSBzaWduZXIAAIzDEAAWAAAA8gEAAAQAAAAEAAAA8wEAAPQBAAD1AQAAYXNzZXJ0aW9uIGZhaWxlZDogbWlkIDw9IHNlbGYubGVuKClhdHRlbXB0IHRvIGpvaW4gaW50byBjb2xsZWN0aW9uIHdpdGggbGVuID4gdXNpemU6Ok1BWC9ydXN0Yy82Mjg0OTk4YTI2NzdkN2UzZTg0MjBkYjc4M2YzYWE0ZmQ4MGQ3NDIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0ci5ycxzEEABIAAAAsAAAABYAAAAcxBAASAAAAJQAAAAYAAAAxMMQAAAAAABDb21taXRtZW50Um9vdAAA9gEAAAwAAAAEAAAA9wEAAGludmFsaWQgcmF3IG1lcmtsZSBwcm9vZqzEEAAYAAAAZmFpbGVkIHRvIGRlY29kZSBjb21taXRtZW50IHByb29mAAAAzMQQACEAAABlbXB0eSBjb21taXRtZW50IHByZWZpeAD4xBAAFwAAAGVtcHR5IG1lcmtsZSBwcm9vZgAAGMUQABIAAABlbXB0eSBtZXJrbGUgcm9vdAAAADTFEAARAAAAZW1wdHkgdmVyaWZpZWQgdmFsdWVQxRAAFAAAAG1pc21hdGNoIGJldHdlZW4gdGhlIG51bWJlciBvZiBwcm9vZnMgd2l0aCB0aGF0IG9mIHNwZWNzbMUQADgAAABtaXNtYXRjaCBiZXR3ZWVuIHRoZSBudW1iZXIgb2YgcHJvb2ZzIHdpdGggdGhhdCBvZiBrZXlzAKzFEAA3AAAAaW52YWxpZCBtZXJrbGUgcHJvb2bsxRAAFAAAAHByb29mIHZlcmlmaWNhdGlvbiBmYWlsZWQAAAAIxhAAGQAAAGlkZW50aWZpZXIgIGNhbm5vdCBjb250YWluIHNlcGFyYXRvciAnLycsxhAACwAAADfGEAAdAAAAIGhhcyBpbnZhbGlkIGxlbmd0aCAgbXVzdCBiZSBiZXR3ZWVuIC0gY2hhcmFjdGVycwAAACzGEAALAAAAZMYQABQAAAB4xhAAEQAAAInGEAABAAAAisYQAAsAAAAgbXVzdCBvbmx5IGNvbnRhaW4gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgb3IgYC5gLCBgX2AsIGArYCwgYC1gLCBgI2AsIC0gYFtgLCBgXWAsIGA8YCwgYD5gACzGEAALAAAAwMYQAFsAAABpZGVudGlmaWVyIGNhbm5vdCBiZSBlbXB0eQAALMcQABoAAABjaGFpbiBpZGVudGlmaWVycyBhcmUgZXhwZWN0ZWQgdG8gYmUgaW4gZXBvY2ggZm9ybWF0IAAAAFDHEAA1AAAAY2hhbm5lbCBpZGVudGlmaWVycyBhcmUgZXhwZWN0ZWQgdG8gYmUgaW4gYGNoYW5uZWwte059YCBmb3JtYXQAAJDHEAA+AAAAZmFpbGVkIHRvIHBhcnNlIGNoYW5uZWwgaWRlbnRpZmllcgAA2McQACIAAABJbnZhbGlkIGNoYW5uZWwgaWQgaW4gY291bnRlcnBhcnR5AAAEyBAAIgAAADDIEAAAAAAAY2hhbm5lbC0wyBAAAAAAADDIEAAAAAAA/QEAAAQAAAAEAAAA/gEAAENsaWVudElkcHJvb2YgaGVpZ2h0IGNhbm5vdCBiZSB6ZXJvAGjIEAAbAAAAcHJvb2YgY2Fubm90IGJlIGVtcHR5AAAAjMgQABUAAABFcnJvciBlbmNvZGluZyBwcm9vZqzIEAAUAAAAL2NsaWVudHNpYmMvbW9kdWxlcy9zcmMvY29yZS9pY3MyNF9ob3N0L3BhdGgucnMA0MgQACcAAADZAAAALgAAAGNvbnNlbnN1c1N0YXRlc2NsaWVudFR5cGVjbGllbnRTdGF0ZWNvbm5lY3Rpb25zcG9ydHNzZXF1ZW5jZXNjaGFubmVsRW5kc25leHRTZXF1ZW5jZVNlbmRuZXh0U2VxdWVuY2VSZWN2bmV4dFNlcXVlbmNlQWNrY29tbWl0bWVudHN1cGdyYWRlZElCQ1N0YXRldXBncmFkZWRDbGllbnR1cGdyYWRlZENvbnNTdGF0ZQAAALzJEAAAAAAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgp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bmRleFTUEAAYAAAAaW52YWxpZCBoYXNoOiBleHBlY3RlZCBoYXNoIHNpemUgdG8gYmUgMzIgYnl0ZXMAdNQQAC8AAABhYnNlbnQgY29tbWl0c2lnIGhhcyBub24temVybyB0aW1lc3RhbXAArNQQACcAAABpbnZhbGlkIGFjY291bnQgSUQgbGVuZ3RoAAAA3NQQABkAAABpbnZhbGlkIHNpZ25hdHVyZSBJRCBsZW5ndGgAANUQABsAAABpbnRlZ2VyIG92ZXJmbG93JNUQABAAAAB0aW1lc3RhbXAgbmFub3NlY29uZCBjb21wb25lbnQgaXMgb3V0IG9mIHJhbmdlAAA81RAALgAAAHRpbWVzdGFtcCBjb252ZXJzaW9uIGVycm9yAAB01RAAGgAAAG5vIHZvdGUgZm91bmQAAACY1RAADQAAAG5vIHByb3Bvc2FsIGZvdW5kAAAAsNUQABEAAABpbnZhbGlkIGFwcCBoYXNoIGxlbmd0aADM1RAAFwAAAGludmFsaWQgcGFydCBzZXQgaGVhZGVyAOzVEAAXAAAAbWlzc2luZyBoZWFkZXIgZmllbGQM1hAAFAAAAG1pc3NpbmcgZGF0YSBmaWVsZAAAKNYQABIAAABtaXNzaW5nIGV2aWRlbmNlIGZpZWxkAABE1hAAFgAAAG1pc3NpbmcgdGltZXN0YW1wIGZpZWxkAGTWEAAXAAAAbWlzc2luZyB2ZXJzaW9uAITWEAAPAAAAbWlzc2luZyBtYXhfYWdlX2R1cmF0aW9unNYQABgAAABtaXNzaW5nIHB1YmxpYyBrZXkAALzWEAASAAAAbWlzc2luZyB2YWxpZGF0b3IAAADY1hAAEQAAAG1pc3NpbmcgbGFzdCBjb21taXQgaW5mb/TWEAAYAAAAbWlzc2luZyBnZW5lc2lzIHRpbWUU1xAAFAAAAG1pc3NpbmcgY29uc2Vuc3VzIHBhcmFtczDXEAAYAAAAaW52YWxpZCB0aW1lc3RhbXA6IABQ1xAAEwAAAGludmFsaWQgYmxvY2s6IABs1xAADwAAAGxhc3RfYmxvY2tfaWQgaXMgbm90IG51bGwgb24gZmlyc3QgaGVpZ2h0AAAAhNcQACkAAABpbnZhbGlkIHNpZ25hdHVyZTogALjXEAATAAAAaW52YWxpZCB2YWxpZGF0b3IgYWRkcmVzcwAAANTXEAAZAAAAaW52YWxpZCBzaWduZWQgaGVhZGVyAAAA+NcQABUAAABpbnZhbGlkIGV2aWRlbmNlGNgQABAAAABpbnZhbGlkIHZhbGlkYXRvciBwYXJhbWV0ZXJzMNgQABwAAABpbnZhbGlkIHZlcnNpb24gcGFyYW1ldGVycwAAVNgQABoAAABpbnZhbGlkIEFCQ0kgcmVxdWVzdCB0eXBlAAAAeNgQABkAAABpbnZhbGlkIEFCQ0kgcmVzcG9uc2UgdHlwZQAAnNgQABoAAABpbnZhbGlkIGJsb2NrIGlkIGZsYWcAAADA2BAAFQAAAG5lZ2F0aXZlIHBvd2VyAADg2BAADgAAAHVuc3VwcG9ydGVkIGtleSB0eXBl+NgQABQAAAB1bnN1cHBvcnRlZCBDaGVja1R4IHR5cGUU2RAAGAAAAHVuc3VwcG9ydGVkIEFwcGx5U25hcHNob3RDaHVua1Jlc3VsdCB0eXBlAAAANNkQACkAAAB1bnN1cHBvcnRlZCBPZmZlclNuYXBzaG90Q2h1bmtSZXN1bHQgdHlwZQAAAGjZEAApAAAAdW5zdXBwb3J0ZWQgUHJvY2Vzc1Byb3Bvc2FsIHN0YXR1cyB2YWx1ZZzZEAAoAAAAbWlzbWF0Y2ggYmV0d2VlbiByYXcgdm90aW5nICgpIGFuZCBjb21wdXRlZCBvbmUgKCkAAMzZEAAdAAAA6dkQABQAAAD92RAAAQAAAG5lZ2F0aXZlIG1heF9hZ2VfbnVtX2Jsb2NrcwAY2hAAGwAAAHByb3Bvc2VyIHdpdGggYWRkcmVzcyAnJyBubyBmb3VuZCBpbiB2YWxpZGF0b3Igc2V0AAA82hAAFwAAAFPaEAAbAAAAdGltZSBwYXJzaW5nIGVycm9yAACA2hAAEgAAAHN1YnRsZSBlbmNvZGluZyBlcnJvcgAAAJzaEAAVAAAAc2lnbmF0dXJlIGVycm9yALzaEAAPAAAAdHJ1c3QgdGhyZXNob2xkIGlzIHRvbyBsYXJnZSAobXVzdCBiZSA8PSAxKQDU2hAAKwAAAHVuZGVmaW5lZCB0cnVzdCB0aHJlc2hvbGQgKGRlbm9taW5hdG9yIGNhbm5vdCBiZSAwKQAI2xAAMwAAAHRydXN0IHRocmVzaG9sZCB0b28gc21hbGwgKG11c3QgYmUgPj0gMS8zKQAARNsQACoAAABuZWdhdGl2ZSBudW1iZXIgb2YgaXRlbXMgaW4gcHJvb2YAAAB42xAAIQAAAG5lZ2F0aXZlIGl0ZW0gaW5kZXggaW4gcHJvb2ak2xAAHAAAALUCAAAEAAAABAAAALYCAABQb3dlclRpbWUAAAC3AgAABAAAAAQAAAC4AgAA9NsQAAAAAAAvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9mbGV4LWVycm9yLTAuNC40L3NyYy90cmFjZXJfaW1wbC9leXJlLnJz/NsQAGQAAAAKAAAACQAAALkCAAC6AgAAuwIAALwCAAC9AgAAvgIAAL8CAAAMAAAABAAAAGACAAC/AgAADAAAAAQAAABhAgAAYAIAAIjcEABiAgAAYwIAAGQCAABiAgAAZQIAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IAAAxNwQACoAAAAvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9iYXNlNjQtMC4xMy4xL3NyYy9lbmNvZGUucnMA+NwQAFcAAACSAAAAJwAAAHVzaXplIG92ZXJmbG93IHdoZW4gY2FsY3VsYXRpbmcgYjY0IGxlbmd0aAAA+NwQAFcAAACXAAAAGQAAAPjcEABXAAAAtgAAACAAAAD43BAAVwAAALcAAAAlAAAA+NwQAFcAAAD8AAAAHAAAAPjcEABXAAAA/QAAACEAAAD43BAAVwAAABMBAAAuAAAA+NwQAFcAAAATAQAACQAAAPjcEABXAAAAFAEAAAkAAAD43BAAVwAAAAsBAAAuAAAA+NwQAFcAAAALAQAACQAAAPjcEABXAAAADQEAAA8AAAD43BAAVwAAAAwBAAAJAAAA+NwQAFcAAAAPAQAACQAAAEltcG9zc2libGUgcmVtYWluZGVyXN4QABQAAAD43BAAVwAAACoBAAAWAAAA+NwQAFcAAAA7AQAACQAAACDhEADg4BAAoOAQAGDgEAAg4BAA4N8QAEludmFsaWQgbGFzdCBzeW1ib2wgLCBvZmZzZXQgLgAAsN4QABQAAADE3hAACQAAAM3eEAABAAAARW5jb2RlZCB0ZXh0IGNhbm5vdCBoYXZlIGEgNi1iaXQgcmVtYWluZGVyLgDo3hAAKwAAAEludmFsaWQgYnl0ZSAAAAAc3xAADQAAAMTeEAAJAAAAzd4QAAEAAABPdmVyZmxvdyB3aGVuIGNhbGN1bGF0aW5nIG51bWJlciBvZiBjaHVua3MgaW4gaW5wdXQvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9iYXNlNjQtMC4xMy4xL3NyYy9kZWNvZGUucnMAAHffEABXAAAAwAAAAAUAAAAhIiMkJSYnKCkqKywtMDEyMzQ1Njc4OUBBQkNERUZHSElKS0xNTlBRUlNUVVZYWVpbYGFiY2RlaGlqa2xtcHFyQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLC4vQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkuLzAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktX0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky////////////////////////////////////////////8AAQIDBAUGBwgJCgsM//8NDg8QERITFBUW////////FxgZGhscHR4fICEiIyQl/yYnKCkqKyz/LS4vMP////8xMjM0NTb//zc4OTo7PP//PT4//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////z4/////NDU2Nzg5Ojs8Pf////////8AAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGf///////xobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIz//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AATY3ODk6Ozw9Pj//////////AgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhv///////8cHR4fICEiIyQlJicoKSorLC0uLzAxMjM0Nf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECAwQFBgcICQoL/////////wwNDg8QERITFBUWFxgZGhscHR4fICEiIyQl////////JicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Pv//NDU2Nzg5Ojs8Pf////////8AAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGf////8//xobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIz//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8+////PzQ1Njc4OTo7PD3/////////AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBn///////8aGxwdHh8gISIjJCUmJygpKissLS4vMDEyM/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8g4RAA4OAQAKDgEABg4BAAIOAQAODfEABg5hAAYOUQAGDkEABg4xAAYOIQAGDhEAAvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9iYXNlNjQtMC4xMy4xL3NyYy9jaHVua2VkX2VuY29kZXIucnNjYWxsZWQgYFJlc3VsdDo6dW53cmFwKClgIG9uIGFuIGBFcnJgIHZhbHVlAMICAAAIAAAABAAAAMMCAACQ5xAAYAAAAGgAAAAeAAAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQDEAgAAAAAAAAEAAAAXAAAAL2hvbWUvdnVvbmcvLmNhcmdvL2dpdC9jaGVja291dHMvdGVuZGVybWludC1ycy03YjJlNDQzM2EwMTE5YTMxL2U4MWY3YmYvcHJvdG8vc3JjL3NlcmlhbGl6ZXJzL3RpbWVzdGFtcC5ycwAAeOgQAGoAAABLAAAABQAAAC1UOi5aAAAA9OgQAAAAAAD06BAAAQAAAPToEAABAAAA9egQAAEAAAD26BAAAQAAAPboEAABAAAA9+gQAAEAAAD46BAAAQAAAAAAAAAgAAAACAAAAAIAAAAAAAAAAAAAAAQAAAADAAAAAQAAACAAAAAIAAAAAgAAAAAAAAAAAAAAAgAAAAMAAAACAAAA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Z0ludmFsaWRMZW5ndGhJbnZhbGlkSW9FcnJvckVuY29kaW5nSW52YWxpZENoZWNrc3VtSW52YWxpZAAAJAMAAAwAAAAEAAAAJQMAACYDAAAnAwAAYSBEaXNwbGF5IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHVuZXhwZWN0ZWRseQAoAwAAAAAAAAEAAAAXAAAAL3J1c3RjLzYyODQ5OThhMjY3N2Q3ZTNlODQyMGRiNzgzZjNhYTRmZDgwZDc0MjMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAKj0EABLAAAA6AkAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbimo9BAASwAAAP8EAAANAAAAYmFja3RyYWNlIGNhcHR1cmUgZmFpbGVkL2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvYW55aG93LTEuMC42OS9zcmMvZXJyb3IucnMAAFz1EABWAAAAggMAAAkAAAAE9RAAAAAAADogAADM9RAAAgAAAAoKQ2F1c2VkIGJ5Otj1EAAMAAAACgAAAOz1EAABAAAACgoAAPj1EAACAAAAc3RhY2sgYmFja3RyYWNlOlNTdGFjayBiYWNrdHJhY2U6CgAAFfYQABEAAAApAwAABAAAAAQAAAAqAwAAL3J1c3RjLzYyODQ5OThhMjY3N2Q3ZTNlODQyMGRiNzgzZjNhYTRmZDgwZDc0MjMvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5ycwBA9hAATwAAAMYCAAAyAAAAQPYQAE8AAAC+AgAANAAAAC9ydXN0Yy82Mjg0OTk4YTI2NzdkN2UzZTg0MjBkYjc4M2YzYWE0ZmQ4MGQ3NDIzL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9tb2QucnOw9hAATAAAAM4HAAAkAAAAKwMAAAQAAAAEAAAALAMAAC0DAAAuAwAAOiAAACT3EAAAAAAAJPcQAAIAAAAAAAAAIAAAAAAAAAACAAAAAAAAAAAAAAAFAAAAAQAAACAgICAgICAgICAgAC8DAAAEAAAABAAAADADAAAxAwAAMgMAAC9ydXN0Yy82Mjg0OTk4YTI2NzdkN2UzZTg0MjBkYjc4M2YzYWE0ZmQ4MGQ3NDIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5yc2Fzc2VydGlvbiBmYWlsZWQ6IHNlbGYuaXNfY2hhcl9ib3VuZGFyeShuKQAAAHz3EABLAAAAEwcAAB0AAAB89xAASwAAABsHAAAdAAAAPHdhc206c3RyaXBwZWQ+L2hvbWUvdnVvbmcvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvZmluYWxpdHktZ3JhbmRwYS0wLjE2LjEvc3JjL2JpdGZpZWxkLnJzAAAj+BAAYwAAAD4AAAANAAAAI/gQAGMAAABRAAAACQAAAAAAAAAAAAAAQ29tbWl0VmFsaWRhdGlvblJlc3VsdHZhbGlkADMDAAAEAAAABAAAADQDAABudW1fcHJlY29tbWl0cwAAMwMAAAQAAAAEAAAANQMAAG51bV9kdXBsaWNhdGVkX3ByZWNvbW1pdHNudW1fZXF1aXZvY2F0aW9uc251bV9pbnZhbGlkX3ZvdGVyc3N1YnRyYWhlbmQgPiBtaW51ZW5kOyBxZWQvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9maW5hbGl0eS1ncmFuZHBhLTAuMTYuMS9zcmMvdm90ZXJfc2V0LnJzAAAAUfkQAGQAAACyAAAABQAAAEFsbG9jRXJybGF5b3V0AAA2AwAABAAAAAQAAAA3AwAAQ2FwYWNpdHlPdmVyZmxvdzsDAAAAAAAAAQAAADsDAAAAAAAAAQAAAPj5EAA8AwAAPQMAAD4DAAAvaG9tZS92dW9uZy8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9sb2ctMC40LjE3L3NyYy9saWIucnNrZXktdmFsdWUgc3VwcG9ydCBpcyBleHBlcmltZW50YWwgYW5kIG11c3QgYmUgZW5hYmxlZCB1c2luZyB0aGUgYGt2X3Vuc3RhYmxlYCBmZWF0dXJlAAAg+hAAUQAAADgGAAAJAAAAPwMAAAgAAAAEAAAAQAMAAEEDAAAIAAAABAAAAEIDAABDAwAAOmNoaWxkX3N0b3JhZ2U6ZGVmYXVsdDoA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ICAgICBhdCCYBREAEAAAAP4CEQABAAAAfgERAAEAAABvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtwAURACgAAAAkAAAAY29uZHZhciB3YWl0IG5vdCBzdXBwb3J0ZWQAAPQFEQAaAAAAbGlicmFyeS9zdGQvc3JjL3N5cy93YXNtLy4uL3Vuc3VwcG9ydGVkL2xvY2tzL2NvbmR2YXIucnMYBhEAOAAAABQAAAAJAAAAY2Fubm90IHJlY3Vyc2l2ZWx5IGFjcXVpcmUgbXV0ZXhgBhEAIAAAAGxpYnJhcnkvc3RkL3NyYy9zeXMvd2FzbS8uLi91bnN1cHBvcnRlZC9sb2Nrcy9tdXRleC5ycwAAiAYRADYAAAAUAAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHN0YXRlX2FuZF9xdWV1ZS5hZGRyKCkgJiBTVEFURV9NQVNLID09IFJVTk5JTkdPbmNlIGluc3RhbmNlIGhhcyBwcmV2aW91c2x5IGJlZW4gcG9pc29uZWQAABAHEQAqAAAAAgAAAGxpYnJhcnkvc3RkL3NyYy9zeXNfY29tbW9uL29uY2UvZ2VuZXJpYy5ycwAASAcRACoAAAD4AAAACQAAAEgHEQAqAAAABQEAAB4AAAB+AwAACAAAAAQAAAB/AwAAbGlicmFyeS9zdGQvc3JjL3N5c19jb21tb24vdGhyZWFkX3Bhcmtlci9nZW5lcmljLnJzAKQHEQAzAAAAJwAAABUAAABpbmNvbnNpc3RlbnQgcGFyayBzdGF0ZQDoBxEAFwAAAKQHEQAzAAAANQAAABcAAABwYXJrIHN0YXRlIGNoYW5nZWQgdW5leHBlY3RlZGx5ABgIEQAfAAAApAcRADMAAAAyAAAAEQAAAGluY29uc2lzdGVudCBzdGF0ZSBpbiB1bnBhcmtQCBEAHAAAAKQHEQAzAAAAbAAAABIAAACkBxEAMwAAAHoAAAAOAAAAKCkAAIMDAAAEAAAABAAAAIQDAACFAwAAhgMAAIMDAAAEAAAABAAAAIcDAAAvcnVzdGMvNjI4NDk5OGEyNjc3ZDdlM2U4NDIwZGI3ODNmM2FhNGZkODBkNzQyMy9saWJyYXJ5L2NvcmUvc3JjL29wcy9mdW5jdGlvbi5yc8AIEQBQAAAAUwEAAAUAAAAvcnVz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" + } + } + ], + "status": 3, + "final_tally_result": { + "yes_count": "10030009994127689", + "abstain_count": "0", + "no_count": "0", + "no_with_veto_count": "0" + }, + "submit_time": "2024-04-27T09:08:42.330512Z", + "deposit_end_time": "2024-04-29T09:08:42.330512Z", + "total_deposit": [ + { + "denom": "ppica", + "amount": "10000000000" + } + ], + "voting_start_time": "2024-04-27T09:08:42.330512Z", + "voting_end_time": "2024-04-27T09:09:02.330512Z", + "title": "test", + "summary": "none", + "proposer": "pica1hj5fveer5cjtn4wd6wstzugjfdxzl0xpas3hgy" + } +} diff --git a/x/ibc-hooks/hooks.go b/x/ibc-hooks/hooks.go index 813c767fa..db99aa230 100644 --- a/x/ibc-hooks/hooks.go +++ b/x/ibc-hooks/hooks.go @@ -3,12 +3,12 @@ package ibchooks import ( // external libraries sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" // ibc-go - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" ) type Hooks interface{} diff --git a/x/ibc-hooks/ibc_module.go b/x/ibc-hooks/ibc_module.go index e21558919..b7c1e68e4 100644 --- a/x/ibc-hooks/ibc_module.go +++ b/x/ibc-hooks/ibc_module.go @@ -4,13 +4,13 @@ import ( // external libraries sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" // ibc-go - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" - ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" + ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" ) var _ porttypes.Middleware = &IBCMiddleware{} diff --git a/x/ibc-hooks/ics4_middleware.go b/x/ibc-hooks/ics4_middleware.go index e9ddedd82..d27eaac24 100644 --- a/x/ibc-hooks/ics4_middleware.go +++ b/x/ibc-hooks/ics4_middleware.go @@ -4,12 +4,12 @@ import ( // external libraries sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" // ibc-go - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" - ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" + ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" ) var _ porttypes.ICS4Wrapper = &ICS4Middleware{} diff --git a/x/ibc-hooks/keeper/keeper.go b/x/ibc-hooks/keeper/keeper.go index 2462a130f..4f2508214 100644 --- a/x/ibc-hooks/keeper/keeper.go +++ b/x/ibc-hooks/keeper/keeper.go @@ -3,8 +3,8 @@ package keeper import ( "fmt" - "github.com/cometbft/cometbft/libs/log" - storetypes "github.com/cosmos/cosmos-sdk/store/types" + "cosmossdk.io/log" + storetypes "cosmossdk.io/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/address" diff --git a/x/ibc-hooks/module.go b/x/ibc-hooks/module.go index 779f67846..739d2f9df 100644 --- a/x/ibc-hooks/module.go +++ b/x/ibc-hooks/module.go @@ -73,6 +73,12 @@ type AppModule struct { AppModuleBasic } +// IsAppModule implements module.AppModule. +func (AppModule) IsAppModule() {} + +// IsOnePerModuleType implements module.AppModule. +func (AppModule) IsOnePerModuleType() {} + // NewAppModule creates a new AppModule object. func NewAppModule() AppModule { return AppModule{ @@ -108,15 +114,5 @@ func (am AppModule) ExportGenesis(_ sdk.Context, _ codec.JSONCodec) json.RawMess return json.RawMessage([]byte("{}")) } -// BeginBlock returns the begin blocker for the ibc-hooks module. -func (am AppModule) BeginBlock(_ sdk.Context, _ abci.RequestBeginBlock) { -} - -// EndBlock returns the end blocker for the ibc-hooks module. It returns no validator -// updates. -func (AppModule) EndBlock(_ sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate { - return []abci.ValidatorUpdate{} -} - // ConsensusVersion implements AppModule/ConsensusVersion. func (AppModule) ConsensusVersion() uint64 { return 1 } diff --git a/x/ibc-hooks/relay_test.go b/x/ibc-hooks/relay_test.go deleted file mode 100644 index 338ed6603..000000000 --- a/x/ibc-hooks/relay_test.go +++ /dev/null @@ -1,237 +0,0 @@ -package ibchooks_test - -import ( - "fmt" - "testing" - "time" - - sdk "github.com/cosmos/cosmos-sdk/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - "github.com/stretchr/testify/suite" - - customibctesting "github.com/notional-labs/composable/v6/app/ibctesting" - ibchookskeeper "github.com/notional-labs/composable/v6/x/ibc-hooks/keeper" -) - -// TODO: use testsuite here. -type IBCHooksTestSuite struct { - suite.Suite - - coordinator *customibctesting.Coordinator - - // testing chains used for convenience and readability - chainA *customibctesting.TestChain - chainB *customibctesting.TestChain - chainC *customibctesting.TestChain -} - -func (suite *IBCHooksTestSuite) SetupTest() { - suite.coordinator = customibctesting.NewCoordinator(suite.T(), 4) - suite.chainA = suite.coordinator.GetChain(customibctesting.GetChainID(1)) - suite.chainB = suite.coordinator.GetChain(customibctesting.GetChainID(2)) - suite.chainC = suite.coordinator.GetChain(customibctesting.GetChainID(3)) -} - -func NewTransferPath(chainA, chainB *customibctesting.TestChain) *customibctesting.Path { - path := customibctesting.NewPath(chainA, chainB) - path.EndpointA.ChannelConfig.PortID = customibctesting.TransferPort - path.EndpointB.ChannelConfig.PortID = customibctesting.TransferPort - path.EndpointA.ChannelConfig.Version = transfertypes.Version - path.EndpointB.ChannelConfig.Version = transfertypes.Version - - return path -} - -func TestKeeperTestSuite(t *testing.T) { - suite.Run(t, new(IBCHooksTestSuite)) -} - -func (suite *IBCHooksTestSuite) TestRecvHooks() { - var ( - transferAmount = sdk.NewInt(1000000000) - timeoutHeight = clienttypes.NewHeight(1, 110) - // when transfer via sdk transfer from A (module) -> B (contract) - // nativeTokenSendOnChainA = sdk.NewCoin(sdk.DefaultBondDenom, transferAmount) - ) - - suite.SetupTest() // reset - - path := NewTransferPath(suite.chainA, suite.chainB) - suite.coordinator.Setup(path) - - // store code - suite.chainB.StoreContractCode(&suite.Suite, "../../tests/ibc-hooks/bytecode/counter.wasm") - // instancetiate contract - addr := suite.chainB.InstantiateContract(&suite.Suite, `{"count": 0}`, 1) - suite.Require().NotEmpty(addr) - - memo := fmt.Sprintf(`{"wasm": {"contract": "%s", "msg": {"increment": {} } } }`, addr) - - msg := transfertypes.NewMsgTransfer( - path.EndpointA.ChannelConfig.PortID, - path.EndpointA.ChannelID, - sdk.NewCoin(sdk.DefaultBondDenom, transferAmount), - suite.chainA.SenderAccount.GetAddress().String(), - addr.String(), - timeoutHeight, - 0, - memo, - ) - _, err := suite.chainA.SendMsgs(msg) - suite.Require().NoError(err) - suite.Require().NoError(err, path.EndpointB.UpdateClient()) - - // then - suite.Require().Equal(1, len(suite.chainA.PendingSendPackets)) - suite.Require().Equal(0, len(suite.chainB.PendingSendPackets)) - - // and when relay to chain B and handle Ack on chain A - err = suite.coordinator.RelayAndAckPendingPackets(path) - suite.Require().NoError(err) - - // then - suite.Require().Equal(0, len(suite.chainA.PendingSendPackets)) - suite.Require().Equal(0, len(suite.chainB.PendingSendPackets)) - - senderLocalAcc, err := ibchookskeeper.DeriveIntermediateSender("channel-0", suite.chainA.SenderAccount.GetAddress().String(), "cosmos") - suite.Require().NoError(err) - - state := suite.chainB.QueryContract(&suite.Suite, addr, []byte(fmt.Sprintf(`{"get_count": {"addr": "%s"}}`, senderLocalAcc))) - suite.Require().Equal(`{"count":0}`, state) - - state = suite.chainB.QueryContract(&suite.Suite, addr, []byte(fmt.Sprintf(`{"get_total_funds": {"addr": "%s"}}`, senderLocalAcc))) - suite.Require().Equal(`{"total_funds":[{"denom":"ibc/C053D637CCA2A2BA030E2C5EE1B28A16F71CCB0E45E8BE52766DC1B241B77878","amount":"1000000000"}]}`, state) -} - -func (suite *IBCHooksTestSuite) TestAckHooks() { - var ( - transferAmount = sdk.NewInt(1000000000) - timeoutHeight = clienttypes.NewHeight(0, 110) - // when transfer via sdk transfer from A (module) -> B (contract) - // nativeTokenSendOnChainA = sdk.NewCoin(sdk.DefaultBondDenom, transferAmount) - ) - - suite.SetupTest() // reset - - path := NewTransferPath(suite.chainA, suite.chainB) - suite.coordinator.Setup(path) - - // store code - suite.chainA.StoreContractCode(&suite.Suite, "../../tests/ibc-hooks/bytecode/counter.wasm") - // instancetiate contract - addr := suite.chainA.InstantiateContract(&suite.Suite, `{"count": 0}`, 1) - suite.Require().NotEmpty(addr) - - fmt.Println(addr.String()) - - // Generate swap instructions for the contract - callbackMemo := fmt.Sprintf(`{"ibc_callback":"%s"}`, addr) - - msg := transfertypes.NewMsgTransfer( - path.EndpointA.ChannelConfig.PortID, - path.EndpointA.ChannelID, - sdk.NewCoin(sdk.DefaultBondDenom, transferAmount), - suite.chainA.SenderAccount.GetAddress().String(), - addr.String(), - timeoutHeight, - 0, - callbackMemo, - ) - _, err := suite.chainA.SendMsgs(msg) - suite.Require().NoError(err) - suite.Require().NoError(err, path.EndpointB.UpdateClient()) - - // then - suite.Require().Equal(1, len(suite.chainA.PendingSendPackets)) - suite.Require().Equal(0, len(suite.chainB.PendingSendPackets)) - - // and when relay to chain B and handle Ack on chain A - err = suite.coordinator.RelayAndAckPendingPackets(path) - suite.Require().NoError(err) - - // then - suite.Require().Equal(0, len(suite.chainA.PendingSendPackets)) - suite.Require().Equal(0, len(suite.chainB.PendingSendPackets)) - - state := suite.chainA.QueryContract( - &suite.Suite, addr, - []byte(fmt.Sprintf(`{"get_count": {"addr": "%s"}}`, addr))) - suite.Require().Equal(`{"count":1}`, state) - - _, err = suite.chainA.SendMsgs(msg) - suite.Require().NoError(err) - suite.Require().NoError(err, path.EndpointB.UpdateClient()) - - // then - suite.Require().Equal(1, len(suite.chainA.PendingSendPackets)) - suite.Require().Equal(0, len(suite.chainB.PendingSendPackets)) - - // and when relay to chain B and handle Ack on chain A - err = suite.coordinator.RelayAndAckPendingPackets(path) - suite.Require().NoError(err) - - // then - suite.Require().Equal(0, len(suite.chainA.PendingSendPackets)) - suite.Require().Equal(0, len(suite.chainB.PendingSendPackets)) - - state = suite.chainA.QueryContract( - &suite.Suite, addr, - []byte(fmt.Sprintf(`{"get_count": {"addr": "%s"}}`, addr))) - suite.Require().Equal(`{"count":2}`, state) -} - -func (suite *IBCHooksTestSuite) TestTimeoutHooks() { - var ( - transferAmount = sdk.NewInt(1000000000) - timeoutHeight = clienttypes.NewHeight(0, 500) - // when transfer via sdk transfer from A (module) -> B (contract) - // nativeTokenSendOnChainA = sdk.NewCoin(sdk.DefaultBondDenom, transferAmount) - ) - - suite.SetupTest() // reset - - path := NewTransferPath(suite.chainA, suite.chainB) - suite.coordinator.Setup(path) - - // store code - suite.chainA.StoreContractCode(&suite.Suite, "../../tests/ibc-hooks/bytecode/counter.wasm") - // instancetiate contract - addr := suite.chainA.InstantiateContract(&suite.Suite, `{"count": 0}`, 1) - suite.Require().NotEmpty(addr) - - fmt.Println(addr.String()) - - // Generate swap instructions for the contract - callbackMemo := fmt.Sprintf(`{"ibc_callback":"%s"}`, addr) - - msg := transfertypes.NewMsgTransfer( - path.EndpointA.ChannelConfig.PortID, - path.EndpointA.ChannelID, - sdk.NewCoin(sdk.DefaultBondDenom, transferAmount), - suite.chainA.SenderAccount.GetAddress().String(), - addr.String(), - timeoutHeight, - uint64(suite.coordinator.CurrentTime.Add(time.Minute).UnixNano()), - callbackMemo, - ) - sdkResult, err := suite.chainA.SendMsgs(msg) - suite.Require().NoError(err) - - packet, err := customibctesting.ParsePacketFromEvents(sdkResult.GetEvents()) - suite.Require().NoError(err) - - // Move chainB forward one block - suite.chainB.NextBlock() - // One month later - suite.coordinator.IncrementTimeBy(time.Hour) - err = path.EndpointA.UpdateClient() - suite.Require().NoError(err) - - err = path.EndpointA.TimeoutPacket(packet) - suite.Require().NoError(err) - - // The test contract will increment the counter for itself by 10 when a packet times out - state := suite.chainA.QueryContract(&suite.Suite, addr, []byte(fmt.Sprintf(`{"get_count": {"addr": "%s"}}`, addr))) - suite.Require().Equal(`{"count":10}`, state) -} diff --git a/x/ibc-hooks/utils.go b/x/ibc-hooks/utils.go index 38865fccf..2a803a528 100644 --- a/x/ibc-hooks/utils.go +++ b/x/ibc-hooks/utils.go @@ -5,9 +5,9 @@ import ( "fmt" sdk "github.com/cosmos/cosmos-sdk/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" ) const IbcAcknowledgementErrorType = "ibc-acknowledgement-error" diff --git a/x/ibc-hooks/wasm_hook.go b/x/ibc-hooks/wasm_hook.go index bc239f02c..48cdbeaa1 100644 --- a/x/ibc-hooks/wasm_hook.go +++ b/x/ibc-hooks/wasm_hook.go @@ -6,17 +6,18 @@ import ( wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" "github.com/notional-labs/composable/v6/x/ibc-hooks/keeper" "github.com/notional-labs/composable/v6/x/ibc-hooks/types" errorsmod "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" ) type ContractAck struct { @@ -91,7 +92,7 @@ func (h WasmHooks) OnRecvPacketOverride(im IBCMiddleware, ctx sdk.Context, packe return ack } - amount, ok := sdk.NewIntFromString(data.GetAmount()) + amount, ok := sdkmath.NewIntFromString(data.GetAmount()) if !ok { // This should never happen, as it should've been caught in the underlaying call to OnRecvPacket, // but returning here for completeness diff --git a/x/ibctransfermiddleware/keeper/keeper.go b/x/ibctransfermiddleware/keeper/keeper.go index 597cf30a4..6922415da 100644 --- a/x/ibctransfermiddleware/keeper/keeper.go +++ b/x/ibctransfermiddleware/keeper/keeper.go @@ -1,11 +1,11 @@ package keeper import ( - "github.com/cometbft/cometbft/libs/log" + "cosmossdk.io/log" "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/types" + storetypes "cosmossdk.io/store/types" "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/ibctransfermiddleware/module.go b/x/ibctransfermiddleware/module.go index 1f46d6364..8a15a6a89 100644 --- a/x/ibctransfermiddleware/module.go +++ b/x/ibctransfermiddleware/module.go @@ -89,6 +89,12 @@ type AppModule struct { keeper keeper.Keeper } +// IsAppModule implements module.AppModule. +func (AppModule) IsAppModule() {} + +// IsOnePerModuleType implements module.AppModule. +func (AppModule) IsOnePerModuleType() {} + // NewAppModule creates a new AppModule object. If the InflationCalculationFn // argument is nil, then the SDK's default inflation function will be used. func NewAppModule(cdc codec.Codec, keeper keeper.Keeper) AppModule { @@ -133,11 +139,6 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw // ConsensusVersion implements AppModule/ConsensusVersion. func (AppModule) ConsensusVersion() uint64 { return 1 } -// BeginBlock returns the begin blocker for the staking middleware module. -func (am AppModule) BeginBlock(ctx sdk.Context, _ abci.RequestBeginBlock) { - // BeginBlocker(ctx, am.keeper) ??? -} - // AppModuleSimulation functions // GenerateGenesisState creates a randomized GenState of the staking middleware module. func (AppModule) GenerateGenesisState(simState *module.SimulationState) {} @@ -148,7 +149,7 @@ func (AppModule) ProposalContents(_ module.SimulationState) []simtypes.WeightedP } // RegisterStoreDecoder registers a decoder for staking middleware module's types. -func (am AppModule) RegisterStoreDecoder(_ sdk.StoreDecoderRegistry) {} +func (am AppModule) RegisterStoreDecoder(registry simtypes.StoreDecoderRegistry) {} // WeightedOperations doesn't return any staking middleware module operation. func (AppModule) WeightedOperations(_ module.SimulationState) []simtypes.WeightedOperation { diff --git a/x/ibctransfermiddleware/types/codec.go b/x/ibctransfermiddleware/types/codec.go index e22a34195..e54896237 100644 --- a/x/ibctransfermiddleware/types/codec.go +++ b/x/ibctransfermiddleware/types/codec.go @@ -6,9 +6,6 @@ import ( codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" "github.com/cosmos/cosmos-sdk/types/msgservice" - authzcodec "github.com/cosmos/cosmos-sdk/x/authz/codec" - govcodec "github.com/cosmos/cosmos-sdk/x/gov/codec" - groupcodec "github.com/cosmos/cosmos-sdk/x/group/codec" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -39,7 +36,7 @@ func init() { // Register all Amino interfaces and concrete types on the authz and gov Amino codec so that this can later be // used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances - RegisterLegacyAminoCodec(authzcodec.Amino) - RegisterLegacyAminoCodec(govcodec.Amino) - RegisterLegacyAminoCodec(groupcodec.Amino) + // RegisterLegacyAminoCodec(authzcodec.Amino) + // RegisterLegacyAminoCodec(govcodec.Amino) + // RegisterLegacyAminoCodec(groupcodec.Amino) } diff --git a/x/mint/abci.go b/x/mint/abci.go index 42964667d..d322e6723 100644 --- a/x/mint/abci.go +++ b/x/mint/abci.go @@ -19,8 +19,8 @@ func BeginBlocker(ctx sdk.Context, k keeper.Keeper, ic types.InflationCalculatio params := k.GetParams(ctx) // recalculate inflation rate - totalStakingSupply := k.StakingTokenSupply(ctx) - bondedRatio := k.BondedRatio(ctx) + totalStakingSupply, _ := k.StakingTokenSupply(ctx) + bondedRatio, _ := k.BondedRatio(ctx) minter.Inflation = ic(ctx, minter, params, bondedRatio, totalStakingSupply) minter.AnnualProvisions = minter.NextAnnualProvisions(params, totalStakingSupply) k.SetMinter(ctx, minter) @@ -28,7 +28,6 @@ func BeginBlocker(ctx sdk.Context, k keeper.Keeper, ic types.InflationCalculatio // calculate how many we would mint, but we dont mint them, we take them from the prefunded account mintedCoin := minter.BlockProvision(params) mintedCoins := sdk.NewCoins(mintedCoin) - // send the minted coins to the fee collector account err := k.AddCollectedFees(ctx, mintedCoins) if err != nil { diff --git a/x/mint/client/cli/query_test.go b/x/mint/client/cli/query_test.go index abf592e43..b5c87c937 100644 --- a/x/mint/client/cli/query_test.go +++ b/x/mint/client/cli/query_test.go @@ -1,207 +1,207 @@ package cli_test -import ( - "context" - "fmt" - "io" - "strings" - "testing" - - rpcclientmock "github.com/cometbft/cometbft/rpc/client/mock" - "github.com/stretchr/testify/require" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" - clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" - - "github.com/cosmos/cosmos-sdk/crypto/keyring" - testutilmod "github.com/cosmos/cosmos-sdk/types/module/testutil" - "github.com/cosmos/cosmos-sdk/x/mint" - mintcli "github.com/cosmos/cosmos-sdk/x/mint/client/cli" -) - -func TestGetCmdQueryParams(t *testing.T) { - encCfg := testutilmod.MakeTestEncodingConfig(mint.AppModuleBasic{}) - kr := keyring.NewInMemory(encCfg.Codec) - baseCtx := client.Context{}. - WithKeyring(kr). - WithTxConfig(encCfg.TxConfig). - WithCodec(encCfg.Codec). - WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). - WithAccountRetriever(client.MockAccountRetriever{}). - WithOutput(io.Discard). - WithChainID("test-chain") - - cmd := mintcli.GetCmdQueryParams() - - testCases := []struct { - name string - flagArgs []string - expCmdOutput string - expectedOutput string - }{ - { - "json output", - []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=json", flags.FlagOutput)}, - `[--height=1 --output=json]`, - `{"mint_denom":"","inflation_rate_change":"0","inflation_max":"0","inflation_min":"0","goal_bonded":"0","blocks_per_year":"0"}`, - }, - { - "text output", - []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=text", flags.FlagOutput)}, - `[--height=1 --output=text]`, - `blocks_per_year: "0" -goal_bonded: "0" -inflation_max: "0" -inflation_min: "0" -inflation_rate_change: "0" -mint_denom: ""`, - }, - } - - for _, tc := range testCases { - tc := tc - - t.Run(tc.name, func(t *testing.T) { - ctx := svrcmd.CreateExecuteContext(context.Background()) - - cmd.SetOut(io.Discard) - require.NotNil(t, cmd) - - cmd.SetContext(ctx) - cmd.SetArgs(tc.flagArgs) - - require.NoError(t, client.SetCmdClientContextHandler(baseCtx, cmd)) - - if len(tc.flagArgs) != 0 { - require.Contains(t, fmt.Sprint(cmd), "params [] [] Query the current minting parameters") - require.Contains(t, fmt.Sprint(cmd), tc.expCmdOutput) - } - - out, err := clitestutil.ExecTestCLICmd(baseCtx, cmd, tc.flagArgs) - require.NoError(t, err) - require.Equal(t, tc.expectedOutput, strings.TrimSpace(out.String())) - }) - } -} - -func TestGetCmdQueryInflation(t *testing.T) { - encCfg := testutilmod.MakeTestEncodingConfig(mint.AppModuleBasic{}) - kr := keyring.NewInMemory(encCfg.Codec) - baseCtx := client.Context{}. - WithKeyring(kr). - WithTxConfig(encCfg.TxConfig). - WithCodec(encCfg.Codec). - WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). - WithAccountRetriever(client.MockAccountRetriever{}). - WithOutput(io.Discard). - WithChainID("test-chain") - - cmd := mintcli.GetCmdQueryInflation() - - testCases := []struct { - name string - flagArgs []string - expCmdOutput string - expectedOutput string - }{ - { - "json output", - []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=json", flags.FlagOutput)}, - `[--height=1 --output=json]`, - ``, - }, - { - "text output", - []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=text", flags.FlagOutput)}, - `[--height=1 --output=text]`, - ``, - }, - } - - for _, tc := range testCases { - tc := tc - - t.Run(tc.name, func(t *testing.T) { - ctx := svrcmd.CreateExecuteContext(context.Background()) - - cmd.SetOut(io.Discard) - require.NotNil(t, cmd) - - cmd.SetContext(ctx) - cmd.SetArgs(tc.flagArgs) - - require.NoError(t, client.SetCmdClientContextHandler(baseCtx, cmd)) - - if len(tc.flagArgs) != 0 { - require.Contains(t, fmt.Sprint(cmd), "inflation [] [] Query the current minting inflation value") - require.Contains(t, fmt.Sprint(cmd), tc.expCmdOutput) - } - - out, err := clitestutil.ExecTestCLICmd(baseCtx, cmd, tc.flagArgs) - require.NoError(t, err) - require.Equal(t, tc.expectedOutput, strings.TrimSpace(out.String())) - }) - } -} - -func TestGetCmdQueryAnnualProvisions(t *testing.T) { - encCfg := testutilmod.MakeTestEncodingConfig(mint.AppModuleBasic{}) - kr := keyring.NewInMemory(encCfg.Codec) - baseCtx := client.Context{}. - WithKeyring(kr). - WithTxConfig(encCfg.TxConfig). - WithCodec(encCfg.Codec). - WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). - WithAccountRetriever(client.MockAccountRetriever{}). - WithOutput(io.Discard). - WithChainID("test-chain") - - cmd := mintcli.GetCmdQueryAnnualProvisions() - - testCases := []struct { - name string - flagArgs []string - expCmdOutput string - expectedOutput string - }{ - { - "json output", - []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=json", flags.FlagOutput)}, - `[--height=1 --output=json]`, - ``, - }, - { - "text output", - []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=text", flags.FlagOutput)}, - `[--height=1 --output=text]`, - ``, - }, - } - - for _, tc := range testCases { - tc := tc - - t.Run(tc.name, func(t *testing.T) { - ctx := svrcmd.CreateExecuteContext(context.Background()) - - cmd.SetOut(io.Discard) - require.NotNil(t, cmd) - - cmd.SetContext(ctx) - cmd.SetArgs(tc.flagArgs) - - require.NoError(t, client.SetCmdClientContextHandler(baseCtx, cmd)) - - if len(tc.flagArgs) != 0 { - require.Contains(t, fmt.Sprint(cmd), "annual-provisions [] [] Query the current minting annual provisions value") - require.Contains(t, fmt.Sprint(cmd), tc.expCmdOutput) - } - - out, err := clitestutil.ExecTestCLICmd(baseCtx, cmd, tc.flagArgs) - require.NoError(t, err) - require.Equal(t, tc.expectedOutput, strings.TrimSpace(out.String())) - }) - } -} +// import ( +// "context" +// "fmt" +// "io" +// "strings" +// "testing" + +// rpcclientmock "github.com/cometbft/cometbft/rpc/client/mock" +// "github.com/stretchr/testify/require" + +// "github.com/cosmos/cosmos-sdk/client" +// "github.com/cosmos/cosmos-sdk/client/flags" +// svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" +// clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" + +// "github.com/cosmos/cosmos-sdk/crypto/keyring" +// testutilmod "github.com/cosmos/cosmos-sdk/types/module/testutil" +// "github.com/cosmos/cosmos-sdk/x/mint" +// mintcli "github.com/cosmos/cosmos-sdk/x/mint/client/cli" +// ) + +// func TestGetCmdQueryParams(t *testing.T) { +// encCfg := testutilmod.MakeTestEncodingConfig(mint.AppModuleBasic{}) +// kr := keyring.NewInMemory(encCfg.Codec) +// baseCtx := client.Context{}. +// WithKeyring(kr). +// WithTxConfig(encCfg.TxConfig). +// WithCodec(encCfg.Codec). +// WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). +// WithAccountRetriever(client.MockAccountRetriever{}). +// WithOutput(io.Discard). +// WithChainID("test-chain") + +// cmd := mintcli.GetCmdQueryParams() + +// testCases := []struct { +// name string +// flagArgs []string +// expCmdOutput string +// expectedOutput string +// }{ +// { +// "json output", +// []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=json", flags.FlagOutput)}, +// `[--height=1 --output=json]`, +// `{"mint_denom":"","inflation_rate_change":"0","inflation_max":"0","inflation_min":"0","goal_bonded":"0","blocks_per_year":"0"}`, +// }, +// { +// "text output", +// []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=text", flags.FlagOutput)}, +// `[--height=1 --output=text]`, +// `blocks_per_year: "0" +// goal_bonded: "0" +// inflation_max: "0" +// inflation_min: "0" +// inflation_rate_change: "0" +// mint_denom: ""`, +// }, +// } + +// for _, tc := range testCases { +// tc := tc + +// t.Run(tc.name, func(t *testing.T) { +// ctx := svrcmd.CreateExecuteContext(context.Background()) + +// cmd.SetOut(io.Discard) +// require.NotNil(t, cmd) + +// cmd.SetContext(ctx) +// cmd.SetArgs(tc.flagArgs) + +// require.NoError(t, client.SetCmdClientContextHandler(baseCtx, cmd)) + +// if len(tc.flagArgs) != 0 { +// require.Contains(t, fmt.Sprint(cmd), "params [] [] Query the current minting parameters") +// require.Contains(t, fmt.Sprint(cmd), tc.expCmdOutput) +// } + +// out, err := clitestutil.ExecTestCLICmd(baseCtx, cmd, tc.flagArgs) +// require.NoError(t, err) +// require.Equal(t, tc.expectedOutput, strings.TrimSpace(out.String())) +// }) +// } +// } + +// func TestGetCmdQueryInflation(t *testing.T) { +// encCfg := testutilmod.MakeTestEncodingConfig(mint.AppModuleBasic{}) +// kr := keyring.NewInMemory(encCfg.Codec) +// baseCtx := client.Context{}. +// WithKeyring(kr). +// WithTxConfig(encCfg.TxConfig). +// WithCodec(encCfg.Codec). +// WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). +// WithAccountRetriever(client.MockAccountRetriever{}). +// WithOutput(io.Discard). +// WithChainID("test-chain") + +// cmd := mintcli.GetCmdQueryInflation() + +// testCases := []struct { +// name string +// flagArgs []string +// expCmdOutput string +// expectedOutput string +// }{ +// { +// "json output", +// []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=json", flags.FlagOutput)}, +// `[--height=1 --output=json]`, +// ``, +// }, +// { +// "text output", +// []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=text", flags.FlagOutput)}, +// `[--height=1 --output=text]`, +// ``, +// }, +// } + +// for _, tc := range testCases { +// tc := tc + +// t.Run(tc.name, func(t *testing.T) { +// ctx := svrcmd.CreateExecuteContext(context.Background()) + +// cmd.SetOut(io.Discard) +// require.NotNil(t, cmd) + +// cmd.SetContext(ctx) +// cmd.SetArgs(tc.flagArgs) + +// require.NoError(t, client.SetCmdClientContextHandler(baseCtx, cmd)) + +// if len(tc.flagArgs) != 0 { +// require.Contains(t, fmt.Sprint(cmd), "inflation [] [] Query the current minting inflation value") +// require.Contains(t, fmt.Sprint(cmd), tc.expCmdOutput) +// } + +// out, err := clitestutil.ExecTestCLICmd(baseCtx, cmd, tc.flagArgs) +// require.NoError(t, err) +// require.Equal(t, tc.expectedOutput, strings.TrimSpace(out.String())) +// }) +// } +// } + +// func TestGetCmdQueryAnnualProvisions(t *testing.T) { +// encCfg := testutilmod.MakeTestEncodingConfig(mint.AppModuleBasic{}) +// kr := keyring.NewInMemory(encCfg.Codec) +// baseCtx := client.Context{}. +// WithKeyring(kr). +// WithTxConfig(encCfg.TxConfig). +// WithCodec(encCfg.Codec). +// WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). +// WithAccountRetriever(client.MockAccountRetriever{}). +// WithOutput(io.Discard). +// WithChainID("test-chain") + +// cmd := mintcli.GetCmdQueryAnnualProvisions() + +// testCases := []struct { +// name string +// flagArgs []string +// expCmdOutput string +// expectedOutput string +// }{ +// { +// "json output", +// []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=json", flags.FlagOutput)}, +// `[--height=1 --output=json]`, +// ``, +// }, +// { +// "text output", +// []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=text", flags.FlagOutput)}, +// `[--height=1 --output=text]`, +// ``, +// }, +// } + +// for _, tc := range testCases { +// tc := tc + +// t.Run(tc.name, func(t *testing.T) { +// ctx := svrcmd.CreateExecuteContext(context.Background()) + +// cmd.SetOut(io.Discard) +// require.NotNil(t, cmd) + +// cmd.SetContext(ctx) +// cmd.SetArgs(tc.flagArgs) + +// require.NoError(t, client.SetCmdClientContextHandler(baseCtx, cmd)) + +// if len(tc.flagArgs) != 0 { +// require.Contains(t, fmt.Sprint(cmd), "annual-provisions [] [] Query the current minting annual provisions value") +// require.Contains(t, fmt.Sprint(cmd), tc.expCmdOutput) +// } + +// out, err := clitestutil.ExecTestCLICmd(baseCtx, cmd, tc.flagArgs) +// require.NoError(t, err) +// require.Equal(t, tc.expectedOutput, strings.TrimSpace(out.String())) +// }) +// } +// } diff --git a/x/mint/keeper/keeper.go b/x/mint/keeper/keeper.go index fb0988fcf..076d411ba 100644 --- a/x/mint/keeper/keeper.go +++ b/x/mint/keeper/keeper.go @@ -3,11 +3,11 @@ package keeper import ( "fmt" + "cosmossdk.io/log" "cosmossdk.io/math" - "github.com/cometbft/cometbft/libs/log" + storetypes "cosmossdk.io/store/types" "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/notional-labs/composable/v6/x/mint/types" @@ -128,13 +128,13 @@ func (k Keeper) GetParams(ctx sdk.Context) (p types.Params) { // StakingTokenSupply implements an alias call to the underlying staking keeper's // StakingTokenSupply to be used in BeginBlocker. -func (k Keeper) StakingTokenSupply(ctx sdk.Context) math.Int { +func (k Keeper) StakingTokenSupply(ctx sdk.Context) (math.Int, error) { return k.stakingKeeper.StakingTokenSupply(ctx) } // BondedRatio implements an alias call to the underlying staking keeper's // BondedRatio to be used in BeginBlocker. -func (k Keeper) BondedRatio(ctx sdk.Context) math.LegacyDec { +func (k Keeper) BondedRatio(ctx sdk.Context) (math.LegacyDec, error) { return k.stakingKeeper.BondedRatio(ctx) } diff --git a/x/mint/module.go b/x/mint/module.go index 5205a408d..194fc198c 100644 --- a/x/mint/module.go +++ b/x/mint/module.go @@ -15,7 +15,6 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" - "github.com/notional-labs/composable/v6/x/mint/client/cli" "github.com/notional-labs/composable/v6/x/mint/keeper" "github.com/notional-labs/composable/v6/x/mint/simulation" @@ -95,6 +94,12 @@ type AppModule struct { inflationCalculator types.InflationCalculationFn } +// IsAppModule implements module.AppModule. +func (AppModule) IsAppModule() {} + +// IsOnePerModuleType implements module.AppModule. +func (AppModule) IsOnePerModuleType() {} + // NewAppModule creates a new AppModule object. If the InflationCalculationFn // argument is nil, then the SDK's default inflation function will be used. func NewAppModule(cdc codec.Codec, keeper keeper.Keeper, ak types.AccountKeeper, ic types.InflationCalculationFn) AppModule { @@ -144,11 +149,6 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw // ConsensusVersion implements AppModule/ConsensusVersion. func (AppModule) ConsensusVersion() uint64 { return 1 } -// BeginBlock returns the begin blocker for the mint module. -func (am AppModule) BeginBlock(ctx sdk.Context, _ abci.RequestBeginBlock) { - BeginBlocker(ctx, am.keeper, am.inflationCalculator) -} - // AppModuleSimulation functions // GenerateGenesisState creates a randomized GenState of the mint module. func (AppModule) GenerateGenesisState(simState *module.SimulationState) { @@ -161,8 +161,8 @@ func (AppModule) ProposalContents(_ module.SimulationState) []simtypes.WeightedP } // RegisterStoreDecoder registers a decoder for mint module's types. -func (am AppModule) RegisterStoreDecoder(sdr sdk.StoreDecoderRegistry) { - sdr[types.StoreKey] = simulation.NewDecodeStore(am.cdc) +func (am AppModule) RegisterStoreDecoder(registry simtypes.StoreDecoderRegistry) { + registry[types.StoreKey] = simulation.NewDecodeStore(am.cdc) } // WeightedOperations doesn't return any mint module operation. diff --git a/x/mint/simulation/decoder_test.go b/x/mint/simulation/decoder_test.go index 36a0f4708..98364e52b 100644 --- a/x/mint/simulation/decoder_test.go +++ b/x/mint/simulation/decoder_test.go @@ -6,7 +6,7 @@ import ( "github.com/stretchr/testify/require" - sdk "github.com/cosmos/cosmos-sdk/types" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/types/kv" "github.com/cosmos/cosmos-sdk/types/module/testutil" @@ -20,7 +20,7 @@ func TestDecodeStore(t *testing.T) { kvPairs := kv.Pairs{ Pairs: []kv.Pair{ - {Key: composableminttypes.MinterKey, Value: cdc.MustMarshal(&composableminttypes.Minter{Inflation: sdk.NewDec(13), AnnualProvisions: sdk.NewDec(1)})}, + {Key: composableminttypes.MinterKey, Value: cdc.MustMarshal(&composableminttypes.Minter{Inflation: sdkmath.LegacyNewDec(13), AnnualProvisions: sdkmath.LegacyNewDec(1)})}, {Key: []byte{0x99}, Value: []byte{0x99}}, }, } @@ -29,7 +29,7 @@ func TestDecodeStore(t *testing.T) { name string expectedLog string }{ - {"Minter", fmt.Sprintf("%v\n%v", composableminttypes.Minter{Inflation: sdk.NewDec(13), AnnualProvisions: sdk.NewDec(1)}, composableminttypes.Minter{Inflation: sdk.NewDec(13), AnnualProvisions: sdk.NewDec(1)})}, + {"Minter", fmt.Sprintf("%v\n%v", composableminttypes.Minter{Inflation: sdkmath.LegacyNewDec(13), AnnualProvisions: sdkmath.LegacyNewDec(1)}, composableminttypes.Minter{Inflation: sdkmath.LegacyNewDec(13), AnnualProvisions: sdkmath.LegacyNewDec(1)})}, {"other", ""}, } for i, tt := range tests { diff --git a/x/mint/simulation/genesis.go b/x/mint/simulation/genesis.go index f63d39818..98de147b8 100644 --- a/x/mint/simulation/genesis.go +++ b/x/mint/simulation/genesis.go @@ -24,65 +24,65 @@ const ( // GenInflation randomized Inflation func GenInflation(r *rand.Rand) math.LegacyDec { - return sdk.NewDecWithPrec(int64(r.Intn(99)), 2) + return math.LegacyNewDecWithPrec(int64(r.Intn(99)), 2) } // GenInflationRateChange randomized InflationRateChange func GenInflationRateChange(r *rand.Rand) math.LegacyDec { - return sdk.NewDecWithPrec(int64(r.Intn(99)), 2) + return math.LegacyNewDecWithPrec(int64(r.Intn(99)), 2) } // GenInflationMax randomized InflationMax func GenInflationMax(r *rand.Rand) math.LegacyDec { - return sdk.NewDecWithPrec(int64(simtypes.RandIntBetween(r, 10, 30)), 2) + return math.LegacyNewDecWithPrec(int64(simtypes.RandIntBetween(r, 10, 30)), 2) } // GenAnnualProvisions randomized AnnualProvisions func GenAnnualProvisions(r *rand.Rand) math.LegacyDec { - return sdk.NewDecWithPrec(int64(simtypes.RandIntBetween(r, 1, 10)), 2) + return math.LegacyNewDecWithPrec(int64(simtypes.RandIntBetween(r, 1, 10)), 2) } // GenInflationMin randomized InflationMin func GenInflationMin(r *rand.Rand) math.LegacyDec { - return sdk.NewDecWithPrec(int64(simtypes.RandIntBetween(r, 1, 10)), 2) + return math.LegacyNewDecWithPrec(int64(simtypes.RandIntBetween(r, 1, 10)), 2) } // GenGoalBonded randomized GoalBonded func GenGoalBonded(r *rand.Rand) math.LegacyDec { - return sdk.NewDecWithPrec(int64(simtypes.RandIntBetween(r, 50, 100)), 2) + return math.LegacyNewDecWithPrec(int64(simtypes.RandIntBetween(r, 50, 100)), 2) } // RandomizeGenState generates a random GenesisState for wasm func RandomizedGenState(simState *module.SimulationState) { // minter - var inflation sdk.Dec + var inflation math.LegacyDec simState.AppParams.GetOrGenerate( - simState.Cdc, Inflation, &inflation, simState.Rand, + Inflation, &inflation, simState.Rand, func(r *rand.Rand) { inflation = GenInflation(r) }, ) // params - var inflationRateChange sdk.Dec + var inflationRateChange math.LegacyDec simState.AppParams.GetOrGenerate( - simState.Cdc, InflationRateChange, &inflationRateChange, simState.Rand, + InflationRateChange, &inflationRateChange, simState.Rand, func(r *rand.Rand) { inflationRateChange = GenInflationRateChange(r) }, ) - var annualProvisions sdk.Dec + var annualProvisions math.LegacyDec simState.AppParams.GetOrGenerate( - simState.Cdc, AnnualProvisions, &annualProvisions, simState.Rand, + AnnualProvisions, &annualProvisions, simState.Rand, func(r *rand.Rand) { annualProvisions = GenAnnualProvisions(r) }, ) - var goalBonded sdk.Dec + var goalBonded math.LegacyDec simState.AppParams.GetOrGenerate( - simState.Cdc, GoalBonded, &goalBonded, simState.Rand, + GoalBonded, &goalBonded, simState.Rand, func(r *rand.Rand) { goalBonded = GenGoalBonded(r) }, ) - var inflationMax sdk.Dec + var inflationMax math.LegacyDec simState.AppParams.GetOrGenerate( - simState.Cdc, InflationMax, &inflationMax, simState.Rand, + InflationMax, &inflationMax, simState.Rand, func(r *rand.Rand) { inflationMax = GenInflationMax(r) }, ) @@ -98,10 +98,10 @@ func RandomizedGenState(simState *module.SimulationState) { InflationRateChange: inflationRateChange, GoalBonded: goalBonded, BlocksPerYear: blocksPerYear, - MaxTokenPerYear: sdk.NewIntFromUint64(1000000000000000), - MinTokenPerYear: sdk.NewIntFromUint64(800000000000000), + MaxTokenPerYear: math.NewIntFromUint64(1000000000000000), + MinTokenPerYear: math.NewIntFromUint64(800000000000000), }, - IncentivesSupply: sdk.NewCoin(stakingtypes.DefaultParams().BondDenom, sdk.NewInt(100000000000)), + IncentivesSupply: sdk.NewCoin(stakingtypes.DefaultParams().BondDenom, math.NewInt(100000000000)), } _, err := simState.Cdc.MarshalJSON(&mintGenesis) diff --git a/x/mint/simulation/genesis_test.go b/x/mint/simulation/genesis_test.go index 57700280a..ca9200f08 100644 --- a/x/mint/simulation/genesis_test.go +++ b/x/mint/simulation/genesis_test.go @@ -7,8 +7,7 @@ import ( "github.com/stretchr/testify/require" - "cosmossdk.io/math" - sdk "github.com/cosmos/cosmos-sdk/types" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/types/module" moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" @@ -32,7 +31,7 @@ func TestRandomizedGenState(t *testing.T) { Rand: r, NumBonded: 3, Accounts: simtypes.RandomAccounts(r, 3), - InitialStake: math.NewInt(1000), + InitialStake: sdkmath.NewInt(1000), GenState: make(map[string]json.RawMessage), } @@ -41,9 +40,9 @@ func TestRandomizedGenState(t *testing.T) { var mintGenesis types.GenesisState simState.Cdc.MustUnmarshalJSON(simState.GenState[types.ModuleName], &mintGenesis) - dec1, _ := sdk.NewDecFromStr("0.940000000000000000") - int1 := sdk.NewIntFromUint64(1000000000000000) - int2 := sdk.NewIntFromUint64(800000000000000) + dec1, _ := sdkmath.LegacyNewDecFromStr("0.940000000000000000") + int1 := sdkmath.NewIntFromUint64(1000000000000000) + int2 := sdkmath.NewIntFromUint64(800000000000000) require.Equal(t, uint64(6311520), mintGenesis.Params.BlocksPerYear) require.Equal(t, dec1, mintGenesis.Params.GoalBonded) @@ -51,7 +50,7 @@ func TestRandomizedGenState(t *testing.T) { require.Equal(t, int2, mintGenesis.Params.MinTokenPerYear) require.Equal(t, "stake", mintGenesis.Params.MintDenom) require.Equal(t, "0stake", mintGenesis.Minter.BlockProvision(mintGenesis.Params).String()) - require.Equal(t, "0.170000000000000000", mintGenesis.Minter.NextAnnualProvisions(mintGenesis.Params, math.OneInt()).String()) + require.Equal(t, "0.170000000000000000", mintGenesis.Minter.NextAnnualProvisions(mintGenesis.Params, sdkmath.OneInt()).String()) // require.Equal(t, "0.169999926644441493", mintGenesis.Minter.NextInflationRate(mintGenesis.Params, math.LegacyOneDec()).String()) require.Equal(t, "0.170000000000000000", mintGenesis.Minter.Inflation.String()) require.Equal(t, "0.070000000000000000", mintGenesis.Minter.AnnualProvisions.String()) diff --git a/x/mint/simulation/proposals.go b/x/mint/simulation/proposals.go index dc28440e5..6f3ab2220 100644 --- a/x/mint/simulation/proposals.go +++ b/x/mint/simulation/proposals.go @@ -3,6 +3,7 @@ package simulation import ( "math/rand" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/address" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" @@ -36,10 +37,10 @@ func SimulateMsgUpdateParams(r *rand.Rand, _ sdk.Context, _ []simtypes.Account) params := types.DefaultParams() params.BlocksPerYear = uint64(simtypes.RandIntBetween(r, 1, 60*60*8766)) - params.GoalBonded = sdk.NewDecWithPrec(int64(simtypes.RandIntBetween(r, 0, 100)), 2) - params.InflationRateChange = sdk.NewDecWithPrec(int64(simtypes.RandIntBetween(r, 1, 20)), 2) - params.MaxTokenPerYear = sdk.NewIntFromUint64(uint64(simtypes.RandIntBetween(r, 1000000000000000, 100000000000000000))) - params.MinTokenPerYear = sdk.NewIntFromUint64(uint64(simtypes.RandIntBetween(r, 1, 1000000000000000))) + params.GoalBonded = sdkmath.LegacyNewDecWithPrec(int64(simtypes.RandIntBetween(r, 0, 100)), 2) + params.InflationRateChange = sdkmath.LegacyNewDecWithPrec(int64(simtypes.RandIntBetween(r, 1, 20)), 2) + params.MaxTokenPerYear = sdkmath.NewIntFromUint64(uint64(simtypes.RandIntBetween(r, 1000000000000000, 100000000000000000))) + params.MinTokenPerYear = sdkmath.NewIntFromUint64(uint64(simtypes.RandIntBetween(r, 1, 1000000000000000))) params.MintDenom = simtypes.RandStringOfLength(r, 10) return &types.MsgUpdateParams{ diff --git a/x/mint/simulation/proposals_test.go b/x/mint/simulation/proposals_test.go index 69aca951a..94107c3cf 100644 --- a/x/mint/simulation/proposals_test.go +++ b/x/mint/simulation/proposals_test.go @@ -7,6 +7,7 @@ import ( tmproto "github.com/cometbft/cometbft/proto/tendermint/types" "gotest.tools/v3/assert" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/address" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" @@ -39,9 +40,9 @@ func TestProposalMsgs(t *testing.T) { assert.Equal(t, sdk.AccAddress(address.Module("gov")).String(), msgUpdateParams.Authority) assert.Equal(t, uint64(20546551), msgUpdateParams.Params.BlocksPerYear) - assert.DeepEqual(t, sdk.NewDecWithPrec(56, 2), msgUpdateParams.Params.GoalBonded) - assert.DeepEqual(t, sdk.NewDecWithPrec(1, 2), msgUpdateParams.Params.InflationRateChange) - assert.DeepEqual(t, sdk.NewInt(99997750760398084), msgUpdateParams.Params.MaxTokenPerYear) - assert.DeepEqual(t, sdk.NewInt(504064263676792), msgUpdateParams.Params.MinTokenPerYear) + assert.DeepEqual(t, sdkmath.LegacyNewDecWithPrec(56, 2), msgUpdateParams.Params.GoalBonded) + assert.DeepEqual(t, sdkmath.LegacyNewDecWithPrec(1, 2), msgUpdateParams.Params.InflationRateChange) + assert.DeepEqual(t, sdkmath.NewInt(99997750760398084), msgUpdateParams.Params.MaxTokenPerYear) + assert.DeepEqual(t, sdkmath.NewInt(504064263676792), msgUpdateParams.Params.MinTokenPerYear) assert.Equal(t, "XhhuTSkuxK", msgUpdateParams.Params.MintDenom) } diff --git a/x/mint/types/codec.go b/x/mint/types/codec.go index 5032b1376..14e981f7c 100644 --- a/x/mint/types/codec.go +++ b/x/mint/types/codec.go @@ -7,8 +7,6 @@ import ( cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" - authzcodec "github.com/cosmos/cosmos-sdk/x/authz/codec" - govcodec "github.com/cosmos/cosmos-sdk/x/gov/codec" ) var ( @@ -20,8 +18,8 @@ func init() { RegisterLegacyAminoCodec(amino) cryptocodec.RegisterCrypto(amino) - RegisterLegacyAminoCodec(authzcodec.Amino) - RegisterLegacyAminoCodec(govcodec.Amino) + // RegisterLegacyAminoCodec(authzcodec.Amino) + // RegisterLegacyAminoCodec(govcodec.Amino) amino.Seal() } diff --git a/x/mint/types/expected_keepers.go b/x/mint/types/expected_keepers.go index bba9291a6..753115c01 100644 --- a/x/mint/types/expected_keepers.go +++ b/x/mint/types/expected_keepers.go @@ -1,15 +1,16 @@ package types // noalias import ( + context "context" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/auth/types" ) // StakingKeeper defines the expected staking keeper type StakingKeeper interface { - StakingTokenSupply(ctx sdk.Context) math.Int - BondedRatio(ctx sdk.Context) sdk.Dec + StakingTokenSupply(ctx context.Context) (math.Int, error) + BondedRatio(ctx context.Context) (math.LegacyDec, error) } // AccountKeeper defines the contract required for account APIs. @@ -17,17 +18,17 @@ type AccountKeeper interface { GetModuleAddress(name string) sdk.AccAddress // TODO remove with genesis 2-phases refactor https://github.com/cosmos/cosmos-sdk/issues/2862 - SetModuleAccount(sdk.Context, types.ModuleAccountI) - GetModuleAccount(ctx sdk.Context, moduleName string) types.ModuleAccountI + SetModuleAccount(context.Context, sdk.ModuleAccountI) + GetModuleAccount(ctx context.Context, moduleName string) sdk.ModuleAccountI } // BankKeeper defines the contract needed to be fulfilled for banking and supply // dependencies. type BankKeeper interface { - SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx sdk.Context, sender sdk.AccAddress, moduleName string, amt sdk.Coins) error - SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) error - MintCoins(ctx sdk.Context, name string, amt sdk.Coins) error - GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin - SendCoins(ctx sdk.Context, fromAddr, toAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx context.Context, sender sdk.AccAddress, moduleName string, amt sdk.Coins) error + SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error + MintCoins(ctx context.Context, name string, amt sdk.Coins) error + GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin + SendCoins(ctx context.Context, fromAddr, toAddr sdk.AccAddress, amt sdk.Coins) error } diff --git a/x/mint/types/genesis.go b/x/mint/types/genesis.go index ea420ef57..6c21fd158 100644 --- a/x/mint/types/genesis.go +++ b/x/mint/types/genesis.go @@ -11,10 +11,10 @@ import ( // bondedRatio and returns the newly calculated inflation rate. // It can be used to specify a custom inflation calculation logic, instead of relying on the // default logic provided by the sdk. -type InflationCalculationFn func(ctx sdk.Context, minter Minter, params Params, bondedRatio sdk.Dec, totalStakingSupply math.Int) sdk.Dec +type InflationCalculationFn func(ctx sdk.Context, minter Minter, params Params, bondedRatio math.LegacyDec, totalStakingSupply math.Int) math.LegacyDec // DefaultInflationCalculationFn is the default function used to calculate inflation. -func DefaultInflationCalculationFn(_ sdk.Context, minter Minter, params Params, bondedRatio sdk.Dec, totalStakingSupply math.Int) sdk.Dec { +func DefaultInflationCalculationFn(_ sdk.Context, minter Minter, params Params, bondedRatio math.LegacyDec, totalStakingSupply math.Int) math.LegacyDec { return minter.NextInflationRate(params, bondedRatio, totalStakingSupply) } @@ -32,7 +32,7 @@ func DefaultGenesisState() *GenesisState { return &GenesisState{ Minter: DefaultInitialMinter(), Params: DefaultParams(), - IncentivesSupply: sdk.NewCoin(stakingtypes.DefaultParams().BondDenom, sdk.NewInt(IncentivesSupply)), + IncentivesSupply: sdk.NewCoin(stakingtypes.DefaultParams().BondDenom, math.NewInt(IncentivesSupply)), } } diff --git a/x/mint/types/mint.pb.go b/x/mint/types/mint.pb.go index cebfddc2f..e2a93a399 100644 --- a/x/mint/types/mint.pb.go +++ b/x/mint/types/mint.pb.go @@ -4,9 +4,9 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" _ "github.com/cosmos/cosmos-proto" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -28,9 +28,9 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // Minter represents the minting state. type Minter struct { // current annual inflation rate - Inflation github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=inflation,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"inflation"` + Inflation cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=inflation,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"inflation"` // current annual expected provisions - AnnualProvisions github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=annual_provisions,json=annualProvisions,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"annual_provisions"` + AnnualProvisions cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=annual_provisions,json=annualProvisions,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"annual_provisions"` } func (m *Minter) Reset() { *m = Minter{} } @@ -71,15 +71,15 @@ type Params struct { // type of coin to mint MintDenom string `protobuf:"bytes,1,opt,name=mint_denom,json=mintDenom,proto3" json:"mint_denom,omitempty"` // maximum annual change in inflation rate - InflationRateChange github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=inflation_rate_change,json=inflationRateChange,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"inflation_rate_change"` + InflationRateChange cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=inflation_rate_change,json=inflationRateChange,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"inflation_rate_change"` // goal of percent bonded atoms - GoalBonded github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=goal_bonded,json=goalBonded,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"goal_bonded"` + GoalBonded cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=goal_bonded,json=goalBonded,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"goal_bonded"` // expected blocks per year BlocksPerYear uint64 `protobuf:"varint,4,opt,name=blocks_per_year,json=blocksPerYear,proto3" json:"blocks_per_year,omitempty"` // expected max amount of token to be distribute per year - MaxTokenPerYear github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,6,opt,name=max_token_per_year,json=maxTokenPerYear,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"max_token_per_year"` + MaxTokenPerYear cosmossdk_io_math.Int `protobuf:"bytes,6,opt,name=max_token_per_year,json=maxTokenPerYear,proto3,customtype=cosmossdk.io/math.Int" json:"max_token_per_year"` // expected mint amount of token to be distribute per year - MinTokenPerYear github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=min_token_per_year,json=minTokenPerYear,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"min_token_per_year"` + MinTokenPerYear cosmossdk_io_math.Int `protobuf:"bytes,7,opt,name=min_token_per_year,json=minTokenPerYear,proto3,customtype=cosmossdk.io/math.Int" json:"min_token_per_year"` } func (m *Params) Reset() { *m = Params{} } @@ -139,32 +139,32 @@ func init() { var fileDescriptor_eddbd7b6ac49f431 = []byte{ // 419 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0x41, 0x8b, 0xd3, 0x40, - 0x18, 0x86, 0x13, 0xb7, 0x54, 0x3a, 0x2a, 0xd5, 0x51, 0xb1, 0x2e, 0x98, 0x2e, 0x3d, 0x94, 0xbd, - 0x6c, 0xc2, 0xe2, 0x4d, 0x3c, 0xd5, 0x5e, 0xf6, 0x20, 0x94, 0xe0, 0xc5, 0x05, 0x19, 0x26, 0xc9, - 0x67, 0x76, 0x68, 0x66, 0xbe, 0x30, 0x33, 0xbb, 0x74, 0xff, 0x85, 0x47, 0x8f, 0xfe, 0x08, 0x7f, - 0xc4, 0xde, 0x5c, 0x3c, 0x89, 0x87, 0x22, 0xed, 0xdf, 0xf0, 0x20, 0x93, 0x09, 0x6d, 0xf1, 0x26, - 0xf6, 0x94, 0xcc, 0xfb, 0xbd, 0x79, 0xde, 0xf7, 0x0b, 0x09, 0x19, 0xe5, 0x28, 0x6b, 0x34, 0x3c, - 0xab, 0x20, 0x91, 0x42, 0xd9, 0xe4, 0xea, 0x34, 0x03, 0xcb, 0x4f, 0x9b, 0x43, 0x5c, 0x6b, 0xb4, - 0x48, 0x9f, 0x6d, 0x3d, 0x71, 0x23, 0xb7, 0x9e, 0xc3, 0x27, 0x25, 0x96, 0xd8, 0x78, 0x12, 0x77, - 0xe7, 0xed, 0x87, 0xcf, 0x73, 0x34, 0x12, 0x0d, 0xf3, 0x03, 0x7f, 0xf0, 0xa3, 0xd1, 0xb7, 0x90, - 0x74, 0xdf, 0x0a, 0x65, 0x41, 0xd3, 0x73, 0xd2, 0x13, 0xea, 0x63, 0xc5, 0xad, 0x40, 0x35, 0x08, - 0x8f, 0xc2, 0xe3, 0xde, 0xe4, 0xf5, 0xcd, 0x72, 0x18, 0xfc, 0x5c, 0x0e, 0xc7, 0xa5, 0xb0, 0x17, - 0x97, 0x59, 0x9c, 0xa3, 0x6c, 0x1f, 0x6f, 0x2f, 0x27, 0xa6, 0x98, 0x27, 0xf6, 0xba, 0x06, 0x13, - 0x4f, 0x21, 0xff, 0xfe, 0xf5, 0x84, 0xb4, 0xf4, 0x29, 0xe4, 0xe9, 0x16, 0x47, 0x05, 0x79, 0xc4, - 0x95, 0xba, 0xe4, 0x95, 0xeb, 0x70, 0x25, 0x8c, 0x40, 0x65, 0x06, 0x77, 0xf6, 0x90, 0xf1, 0xd0, - 0x63, 0x67, 0x1b, 0xea, 0xe8, 0xf7, 0x01, 0xe9, 0xce, 0xb8, 0xe6, 0xd2, 0xd0, 0x17, 0x84, 0xb8, - 0xb7, 0xc3, 0x0a, 0x50, 0x28, 0xfd, 0x4a, 0x69, 0xcf, 0x29, 0x53, 0x27, 0xd0, 0x9a, 0x3c, 0xdd, - 0x34, 0x64, 0x9a, 0x5b, 0x60, 0xf9, 0x05, 0x57, 0x25, 0xec, 0xa5, 0xd8, 0xe3, 0x0d, 0x3a, 0xe5, - 0x16, 0xde, 0x34, 0x60, 0xfa, 0x81, 0xdc, 0x2b, 0x91, 0x57, 0x2c, 0x43, 0x55, 0x40, 0x31, 0x38, - 0xd8, 0x43, 0x0e, 0x71, 0xc0, 0x49, 0xc3, 0xa3, 0x63, 0xd2, 0xcf, 0x2a, 0xcc, 0xe7, 0x86, 0xd5, - 0xa0, 0xd9, 0x35, 0x70, 0x3d, 0xe8, 0x1c, 0x85, 0xc7, 0x9d, 0xf4, 0x81, 0x97, 0x67, 0xa0, 0xdf, - 0x03, 0xd7, 0x54, 0x10, 0x2a, 0xf9, 0x82, 0x59, 0x9c, 0x83, 0xda, 0x5a, 0xbb, 0xff, 0xdc, 0xe6, - 0x4c, 0xd9, 0x9d, 0x36, 0x67, 0xca, 0xa6, 0x7d, 0xc9, 0x17, 0xef, 0x1c, 0x76, 0x37, 0x4a, 0xa8, - 0xbf, 0xa3, 0xee, 0xfe, 0x67, 0x94, 0x5b, 0xbc, 0x2f, 0x85, 0xda, 0x8d, 0x7a, 0xd5, 0xf9, 0xfc, - 0x65, 0x18, 0x4c, 0xc6, 0x37, 0xab, 0x28, 0xbc, 0x5d, 0x45, 0xe1, 0xaf, 0x55, 0x14, 0x7e, 0x5a, - 0x47, 0xc1, 0xed, 0x3a, 0x0a, 0x7e, 0xac, 0xa3, 0xe0, 0xfc, 0xfe, 0xc2, 0xff, 0x4f, 0x0d, 0x30, - 0xeb, 0x36, 0xdf, 0xff, 0xcb, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe9, 0x16, 0x9b, 0x29, 0x6f, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x93, 0x41, 0x8b, 0x13, 0x31, + 0x14, 0xc7, 0x67, 0xdc, 0x52, 0x69, 0x54, 0xaa, 0xd1, 0xc5, 0xba, 0xe2, 0x74, 0xe9, 0x61, 0x59, + 0x10, 0x5b, 0x8a, 0x37, 0x8f, 0xb5, 0x97, 0x05, 0xc5, 0x32, 0x78, 0x50, 0x0f, 0x86, 0x37, 0xd3, + 0xe7, 0x6c, 0xe8, 0x24, 0xaf, 0x24, 0x71, 0x69, 0xbf, 0x85, 0x47, 0x8f, 0x7e, 0x08, 0x2f, 0xde, + 0x3d, 0xec, 0x71, 0xf1, 0x24, 0x1e, 0x8a, 0xb4, 0x5f, 0x44, 0x32, 0x29, 0x6d, 0xd1, 0x93, 0xbd, + 0xe5, 0xfd, 0xdf, 0x3f, 0xbf, 0xf7, 0x4f, 0x48, 0x58, 0x27, 0x27, 0x35, 0x25, 0x0b, 0x59, 0x89, + 0x3d, 0x25, 0xb5, 0xeb, 0x5d, 0xf4, 0x33, 0x74, 0xd0, 0xaf, 0x8a, 0xee, 0xd4, 0x90, 0x23, 0x7e, + 0x7f, 0xeb, 0xe9, 0x56, 0xf2, 0xda, 0x73, 0x74, 0xaf, 0xa0, 0x82, 0x2a, 0x4f, 0xcf, 0xaf, 0x82, + 0xfd, 0xe8, 0x41, 0x4e, 0x56, 0x91, 0x15, 0xa1, 0x11, 0x8a, 0xd0, 0xea, 0x7c, 0x8b, 0x59, 0xfd, + 0xa5, 0xd4, 0x0e, 0x0d, 0x7f, 0xc5, 0x1a, 0x52, 0x7f, 0x28, 0xc1, 0x49, 0xd2, 0xad, 0xf8, 0x38, + 0x3e, 0x6d, 0x0c, 0xfa, 0x97, 0x8b, 0x76, 0xf4, 0x6b, 0xd1, 0x7e, 0x18, 0xf6, 0xd8, 0xf1, 0xa4, + 0x2b, 0xa9, 0xa7, 0xc0, 0x9d, 0x77, 0x5f, 0x60, 0x01, 0xf9, 0x7c, 0x88, 0xf9, 0x8f, 0xaf, 0x4f, + 0xd8, 0x1a, 0x39, 0xc4, 0x3c, 0xdd, 0x32, 0xf8, 0x7b, 0x76, 0x07, 0xb4, 0xfe, 0x08, 0xa5, 0x1f, + 0x7c, 0x21, 0xad, 0x24, 0x6d, 0x5b, 0xd7, 0xf6, 0x05, 0xdf, 0x0e, 0xac, 0xd1, 0x06, 0xd5, 0xf9, + 0x7e, 0xc0, 0xea, 0x23, 0x30, 0xa0, 0x2c, 0x7f, 0xc4, 0x98, 0xbf, 0x07, 0x31, 0x46, 0x4d, 0x2a, + 0x84, 0x4f, 0x1b, 0x5e, 0x19, 0x7a, 0x81, 0x23, 0x3b, 0xdc, 0xc4, 0x12, 0x06, 0x1c, 0x8a, 0xfc, + 0x1c, 0x74, 0x81, 0xfb, 0xa7, 0xb9, 0xbb, 0xe1, 0xa5, 0xe0, 0xf0, 0x79, 0x45, 0xe3, 0x29, 0xbb, + 0x51, 0x10, 0x94, 0x22, 0x23, 0x3d, 0xc6, 0x71, 0xeb, 0x60, 0x5f, 0x38, 0xf3, 0x94, 0x41, 0x05, + 0xe1, 0x27, 0xac, 0x99, 0x95, 0x94, 0x4f, 0xac, 0x98, 0xa2, 0x11, 0x73, 0x04, 0xd3, 0xaa, 0x1d, + 0xc7, 0xa7, 0xb5, 0xf4, 0x56, 0x90, 0x47, 0x68, 0xde, 0x22, 0x18, 0xfe, 0x86, 0x71, 0x05, 0x33, + 0xe1, 0x68, 0x82, 0x7a, 0x6b, 0xad, 0x57, 0x11, 0x1e, 0xaf, 0x23, 0x1c, 0xfe, 0x1b, 0xe1, 0x4c, + 0xbb, 0x9d, 0xe1, 0x67, 0xda, 0xa5, 0x4d, 0x05, 0xb3, 0xd7, 0x9e, 0xb2, 0x4b, 0x96, 0xfa, 0x6f, + 0xf2, 0xf5, 0xff, 0x23, 0xfb, 0x63, 0x35, 0x95, 0xd4, 0xbb, 0xe4, 0x67, 0xb5, 0xcf, 0x5f, 0xda, + 0xd1, 0xe0, 0xe4, 0x72, 0x99, 0xc4, 0x57, 0xcb, 0x24, 0xfe, 0xbd, 0x4c, 0xe2, 0x4f, 0xab, 0x24, + 0xba, 0x5a, 0x25, 0xd1, 0xcf, 0x55, 0x12, 0xbd, 0xbb, 0x39, 0x0b, 0x3f, 0xc0, 0xcd, 0xa7, 0x68, + 0xb3, 0x7a, 0xf5, 0x62, 0x9f, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, 0xdb, 0x86, 0x4d, 0x2c, 0x21, 0x03, 0x00, 0x00, } diff --git a/x/mint/types/minter.go b/x/mint/types/minter.go index 10b38f5d3..5bcbf3ffb 100644 --- a/x/mint/types/minter.go +++ b/x/mint/types/minter.go @@ -9,7 +9,7 @@ import ( // NewMinter returns a new Minter object with the given inflation and annual // provisions values. -func NewMinter(inflation, annualProvisions sdk.Dec) Minter { +func NewMinter(inflation, annualProvisions math.LegacyDec) Minter { return Minter{ Inflation: inflation, AnnualProvisions: annualProvisions, @@ -17,10 +17,10 @@ func NewMinter(inflation, annualProvisions sdk.Dec) Minter { } // InitialMinter returns an initial Minter object with a given inflation value. -func InitialMinter(inflation sdk.Dec) Minter { +func InitialMinter(inflation math.LegacyDec) Minter { return NewMinter( inflation, - sdk.NewDec(0), + math.LegacyNewDec(0), ) } @@ -30,7 +30,7 @@ func DefaultInitialMinter() Minter { return InitialMinter( // Create a new Dec from integer with decimal place at prec // CONTRACT: prec <= Precision - sdk.NewDecWithPrec(InflationRate, Precision), + math.LegacyNewDecWithPrec(InflationRate, Precision), ) } @@ -44,8 +44,8 @@ func ValidateMinter(minter Minter) error { } // NextInflationRate returns the new inflation rate for the next hour. -func (m Minter) NextInflationRate(params Params, bondedRatio sdk.Dec, totalStakingSupply math.Int) sdk.Dec { - totalStakingSupplyDec := sdk.NewDecFromInt(totalStakingSupply) +func (m Minter) NextInflationRate(params Params, bondedRatio math.LegacyDec, totalStakingSupply math.Int) math.LegacyDec { + totalStakingSupplyDec := math.LegacyNewDecFromInt(totalStakingSupply) if totalStakingSupplyDec.LT(math.LegacySmallestDec()) { return m.Inflation // assert if totalStakingSupplyDec = 0 } @@ -57,16 +57,16 @@ func (m Minter) NextInflationRate(params Params, bondedRatio sdk.Dec, totalStaki // 7% and 20%. // (1 - bondedRatio/GoalBonded) * InflationRateChange - inflationRateChangePerYear := sdk.OneDec(). + inflationRateChangePerYear := math.LegacyOneDec(). Sub(bondedRatio.Quo(params.GoalBonded)). Mul(params.InflationRateChange) - inflationRateChange := inflationRateChangePerYear.Quo(sdk.NewDec(int64(params.BlocksPerYear))) + inflationRateChange := inflationRateChangePerYear.Quo(math.LegacyNewDec(int64(params.BlocksPerYear))) // adjust the new annual inflation for this next cycle inflation := m.Inflation.Add(inflationRateChange) // note inflationRateChange may be negative - inflationMax := sdk.NewDecFromInt(params.MaxTokenPerYear).Quo(totalStakingSupplyDec) - inflationMin := sdk.NewDecFromInt(params.MinTokenPerYear).Quo(totalStakingSupplyDec) + inflationMax := math.LegacyNewDecFromInt(params.MaxTokenPerYear).Quo(totalStakingSupplyDec) + inflationMin := math.LegacyNewDecFromInt(params.MinTokenPerYear).Quo(totalStakingSupplyDec) if inflation.GT(inflationMax) { inflation = inflationMax @@ -80,13 +80,13 @@ func (m Minter) NextInflationRate(params Params, bondedRatio sdk.Dec, totalStaki // NextAnnualProvisions returns the annual provisions based on current total // supply and inflation rate. -func (m Minter) NextAnnualProvisions(_ Params, totalSupply math.Int) sdk.Dec { +func (m Minter) NextAnnualProvisions(_ Params, totalSupply math.Int) math.LegacyDec { return m.Inflation.MulInt(totalSupply) } // BlockProvision returns the provisions for a block based on the annual // provisions rate. func (m Minter) BlockProvision(params Params) sdk.Coin { - provisionAmt := m.AnnualProvisions.QuoInt(sdk.NewInt(int64(params.BlocksPerYear))) + provisionAmt := m.AnnualProvisions.QuoInt(math.NewInt(int64(params.BlocksPerYear))) return sdk.NewCoin(params.MintDenom, provisionAmt.TruncateInt()) } diff --git a/x/mint/types/minter_test.go b/x/mint/types/minter_test.go index 6289e0875..21e323305 100644 --- a/x/mint/types/minter_test.go +++ b/x/mint/types/minter_test.go @@ -4,6 +4,7 @@ import ( "math/rand" "testing" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/require" ) @@ -11,7 +12,7 @@ import ( // func TestNextInflation(t *testing.T) { // minter := DefaultInitialMinter() // params := DefaultParams() -// blocksPerYr := sdk.NewDec(int64(params.BlocksPerYear)) +// blocksPerYr := sdkmath.LegacyNewDec(int64(params.BlocksPerYear)) // // Governing Mechanism: // // inflationRateChangePerYear = (1- BondedRatio/ GoalBonded) * MaxInflationRateChange @@ -20,31 +21,31 @@ import ( // bondedRatio, setInflation, expChange sdk.Dec // }{ // // with 0% bonded atom supply the inflation should increase by InflationRateChange -// {sdk.ZeroDec(), sdk.NewDecWithPrec(7, 2), params.InflationRateChange.Quo(blocksPerYr)}, +// {sdk.ZeroDec(), sdkmath.LegacyNewDecWithPrec(7, 2), params.InflationRateChange.Quo(blocksPerYr)}, // // 100% bonded, starting at 20% inflation and being reduced // // (1 - (1/0.67))*(0.13/8667) // { -// sdk.OneDec(), sdk.NewDecWithPrec(20, 2), +// sdk.OneDec(), sdkmath.LegacyNewDecWithPrec(20, 2), // sdk.OneDec().Sub(sdk.OneDec().Quo(params.GoalBonded)).Mul(params.InflationRateChange).Quo(blocksPerYr), // }, // // 50% bonded, starting at 10% inflation and being increased // { -// sdk.NewDecWithPrec(5, 1), sdk.NewDecWithPrec(10, 2), -// sdk.OneDec().Sub(sdk.NewDecWithPrec(5, 1).Quo(params.GoalBonded)).Mul(params.InflationRateChange).Quo(blocksPerYr), +// sdkmath.LegacyNewDecWithPrec(5, 1), sdkmath.LegacyNewDecWithPrec(10, 2), +// sdk.OneDec().Sub(sdkmath.LegacyNewDecWithPrec(5, 1).Quo(params.GoalBonded)).Mul(params.InflationRateChange).Quo(blocksPerYr), // }, // // test 7% minimum stop (testing with 100% bonded) -// {sdk.OneDec(), sdk.NewDecWithPrec(7, 2), sdk.ZeroDec()}, -// {sdk.OneDec(), sdk.NewDecWithPrec(700000001, 10), sdk.NewDecWithPrec(-1, 10)}, +// {sdk.OneDec(), sdkmath.LegacyNewDecWithPrec(7, 2), sdk.ZeroDec()}, +// {sdk.OneDec(), sdkmath.LegacyNewDecWithPrec(700000001, 10), sdkmath.LegacyNewDecWithPrec(-1, 10)}, // // test 20% maximum stop (testing with 0% bonded) -// {sdk.ZeroDec(), sdk.NewDecWithPrec(20, 2), sdk.ZeroDec()}, -// {sdk.ZeroDec(), sdk.NewDecWithPrec(1999999999, 10), sdk.NewDecWithPrec(1, 10)}, +// {sdk.ZeroDec(), sdkmath.LegacyNewDecWithPrec(20, 2), sdk.ZeroDec()}, +// {sdk.ZeroDec(), sdkmath.LegacyNewDecWithPrec(1999999999, 10), sdkmath.LegacyNewDecWithPrec(1, 10)}, // // perfect balance shouldn't change inflation -// {sdk.NewDecWithPrec(67, 2), sdk.NewDecWithPrec(15, 2), sdk.ZeroDec()}, +// {sdkmath.LegacyNewDecWithPrec(67, 2), sdkmath.LegacyNewDecWithPrec(15, 2), sdk.ZeroDec()}, // } // for i, tc := range tests { // minter.Inflation = tc.setInflation @@ -58,7 +59,7 @@ import ( // } // func TestBlockProvision(t *testing.T) { -// minter := InitialMinter(sdk.NewDecWithPrec(1, 1)) +// minter := InitialMinter(sdkmath.LegacyNewDecWithPrec(1, 1)) // params := DefaultParams() // secondsPerYear := int64(60 * 60 * 8766) @@ -73,11 +74,11 @@ import ( // {(secondsPerYear / 5) / 2, 0}, // } // for i, tc := range tests { -// minter.AnnualProvisions = sdk.NewDec(tc.annualProvisions) +// minter.AnnualProvisions = sdkmath.LegacyNewDec(tc.annualProvisions) // provisions := minter.BlockProvision(params) // expProvisions := sdk.NewCoin(params.MintDenom, -// sdk.NewInt(tc.expProvisions)) +// sdkmath.NewInt(tc.expProvisions)) // require.True(t, expProvisions.IsEqual(provisions), // "test: %v\n\tExp: %v\n\tGot: %v\n", @@ -93,12 +94,12 @@ import ( // // BenchmarkBlockProvision-4 3000000 429 ns/op // func BenchmarkBlockProvision(b *testing.B) { // b.ReportAllocs() -// minter := InitialMinter(sdk.NewDecWithPrec(1, 1)) +// minter := InitialMinter(sdkmath.LegacyNewDecWithPrec(1, 1)) // params := DefaultParams() // s1 := rand.NewSource(100) // r1 := rand.New(s1) -// minter.AnnualProvisions = sdk.NewDec(r1.Int63n(1000000)) +// minter.AnnualProvisions = sdkmath.LegacyNewDec(r1.Int63n(1000000)) // // run the BlockProvision function b.N times // for n := 0; n < b.N; n++ { @@ -110,9 +111,9 @@ import ( // // BenchmarkNextInflation-4 1000000 1828 ns/op // func BenchmarkNextInflation(b *testing.B) { // b.ReportAllocs() -// minter := InitialMinter(sdk.NewDecWithPrec(1, 1)) +// minter := InitialMinter(sdkmath.LegacyNewDecWithPrec(1, 1)) // params := DefaultParams() -// bondedRatio := sdk.NewDecWithPrec(1, 1) +// bondedRatio := sdkmath.LegacyNewDecWithPrec(1, 1) // // run the NextInflationRate function b.N times // for n := 0; n < b.N; n++ { @@ -124,9 +125,9 @@ import ( // // BenchmarkNextAnnualProvisions-4 5000000 251 ns/op // func BenchmarkNextAnnualProvisions(b *testing.B) { // b.ReportAllocs() -// minter := InitialMinter(sdk.NewDecWithPrec(1, 1)) +// minter := InitialMinter(sdkmath.LegacyNewDecWithPrec(1, 1)) // params := DefaultParams() -// totalSupply := sdk.NewInt(100000000000000) +// totalSupply := sdkmath.NewInt(100000000000000) // // run the NextAnnualProvisions function b.N times // for n := 0; n < b.N; n++ { @@ -137,18 +138,18 @@ import ( func TestSimulateMint(t *testing.T) { minter := DefaultInitialMinter() params := DefaultParams() - totalSupply := sdk.NewInt(1_000_000_000_000_000_000) - totalStaked := sdk.NewInt(0) - tokenMinted := sdk.NewCoin("stake", sdk.NewInt(0)) + totalSupply := sdkmath.NewInt(1_000_000_000_000_000_000) + totalStaked := sdkmath.NewInt(0) + tokenMinted := sdk.NewCoin("stake", sdkmath.NewInt(0)) for i := 1; i <= int(params.BlocksPerYear); i++ { - stakingDiff := sdk.NewDec(int64(rand.Intn(10))).QuoInt(sdk.NewInt(1_000_000)).MulInt(totalSupply) + stakingDiff := sdkmath.LegacyNewDec(int64(rand.Intn(10))).QuoInt(sdkmath.NewInt(1_000_000)).MulInt(totalSupply) if (rand.Float32() > 0.5 || totalStaked.Add(stakingDiff.RoundInt()).GT(totalSupply)) && !totalStaked.Sub(stakingDiff.RoundInt()).IsNegative() { stakingDiff = stakingDiff.Neg() } totalStaked = totalStaked.Add(stakingDiff.RoundInt()) - bondedRatio := sdk.NewDecFromInt(totalStaked).Quo(sdk.NewDecFromInt(totalSupply)) + bondedRatio := sdkmath.LegacyNewDecFromInt(totalStaked).Quo(sdkmath.LegacyNewDecFromInt(totalSupply)) minter.Inflation = minter.NextInflationRate(params, bondedRatio, totalStaked) minter.AnnualProvisions = minter.NextAnnualProvisions(params, totalStaked) diff --git a/x/mint/types/params.go b/x/mint/types/params.go index c56ade10f..21a86a073 100644 --- a/x/mint/types/params.go +++ b/x/mint/types/params.go @@ -39,7 +39,7 @@ func ParamKeyTable() paramtypes.KeyTable { } func NewParams( - mintDenom string, inflationRateChange, _, _, goalBonded sdk.Dec, blocksPerYear uint64, tokenPerYear math.Int, + mintDenom string, inflationRateChange, _, _, goalBonded math.LegacyDec, blocksPerYear uint64, tokenPerYear math.Int, ) Params { return Params{ MintDenom: mintDenom, @@ -55,11 +55,11 @@ func NewParams( func DefaultParams() Params { return Params{ MintDenom: sdk.DefaultBondDenom, - InflationRateChange: sdk.NewDecWithPrec(InflationRate, Precision), - GoalBonded: sdk.NewDecWithPrec(DesiredRatio, Precision), + InflationRateChange: math.LegacyNewDecWithPrec(InflationRate, Precision), + GoalBonded: math.LegacyNewDecWithPrec(DesiredRatio, Precision), BlocksPerYear: uint64(60 * 60 * 8766 / BlockTime), - MaxTokenPerYear: sdk.NewIntFromUint64(MaxTokenPerYear), - MinTokenPerYear: sdk.NewIntFromUint64(MinTokenPerYear), + MaxTokenPerYear: math.NewIntFromUint64(MaxTokenPerYear), + MinTokenPerYear: math.NewIntFromUint64(MinTokenPerYear), } } @@ -122,7 +122,7 @@ func validateMintDenom(i interface{}) error { } func validateInflationRateChange(i interface{}) error { - v, ok := i.(sdk.Dec) + v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) } @@ -130,7 +130,7 @@ func validateInflationRateChange(i interface{}) error { if v.IsNegative() { return fmt.Errorf("inflation rate change cannot be negative: %s", v) } - if v.GT(sdk.OneDec()) { + if v.GT(math.LegacyOneDec()) { return fmt.Errorf("inflation rate change too large: %s", v) } @@ -170,7 +170,7 @@ func validateInflationRateChange(i interface{}) error { // } func validateGoalBonded(i interface{}) error { - v, ok := i.(sdk.Dec) + v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) } @@ -178,7 +178,7 @@ func validateGoalBonded(i interface{}) error { if v.IsNegative() || v.IsZero() { return fmt.Errorf("goal bonded must be positive: %s", v) } - if v.GT(sdk.OneDec()) { + if v.GT(math.LegacyOneDec()) { return fmt.Errorf("goal bonded too large: %s", v) } diff --git a/x/mint/types/query.pb.go b/x/mint/types/query.pb.go index f263fd872..c79c596fa 100644 --- a/x/mint/types/query.pb.go +++ b/x/mint/types/query.pb.go @@ -5,8 +5,8 @@ package types import ( context "context" + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -154,7 +154,7 @@ var xxx_messageInfo_QueryInflationRequest proto.InternalMessageInfo // method. type QueryInflationResponse struct { // inflation is the current minting inflation value. - Inflation github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=inflation,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"inflation"` + Inflation cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=inflation,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"inflation"` } func (m *QueryInflationResponse) Reset() { *m = QueryInflationResponse{} } @@ -232,7 +232,7 @@ var xxx_messageInfo_QueryAnnualProvisionsRequest proto.InternalMessageInfo // Query/AnnualProvisions RPC method. type QueryAnnualProvisionsResponse struct { // annual_provisions is the current minting annual provisions value. - AnnualProvisions github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=annual_provisions,json=annualProvisions,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"annual_provisions"` + AnnualProvisions cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=annual_provisions,json=annualProvisions,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"annual_provisions"` } func (m *QueryAnnualProvisionsResponse) Reset() { *m = QueryAnnualProvisionsResponse{} } @@ -282,36 +282,35 @@ func init() { } var fileDescriptor_2530c578222e85a6 = []byte{ - // 451 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x4e, 0xce, 0xcf, 0x2d, - 0xc8, 0x2f, 0x4e, 0x4c, 0xca, 0x49, 0xd5, 0xcf, 0xcd, 0xcc, 0x2b, 0xd1, 0x2f, 0x33, 0x4c, 0x4a, - 0x2d, 0x49, 0x34, 0xd4, 0x2f, 0x2c, 0x4d, 0x2d, 0xaa, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, - 0x12, 0x47, 0x28, 0xd2, 0x03, 0x29, 0xd2, 0x83, 0x2a, 0x92, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, - 0xab, 0xd1, 0x07, 0xb1, 0x20, 0xca, 0xa5, 0x64, 0xd2, 0xf3, 0xf3, 0xd3, 0x73, 0x52, 0xf5, 0x13, - 0x0b, 0x32, 0xf5, 0x13, 0xf3, 0xf2, 0xf2, 0x4b, 0x12, 0x4b, 0x32, 0xf3, 0xf3, 0x8a, 0xa1, 0xb2, - 0x4a, 0xb8, 0x6c, 0x04, 0x9b, 0x0c, 0x56, 0xa3, 0x24, 0xc2, 0x25, 0x14, 0x08, 0xb2, 0x3f, 0x20, - 0xb1, 0x28, 0x31, 0xb7, 0x38, 0x28, 0xb5, 0xb0, 0x34, 0xb5, 0xb8, 0x44, 0x29, 0x84, 0x4b, 0x18, - 0x45, 0xb4, 0xb8, 0x20, 0x3f, 0xaf, 0x38, 0x55, 0xc8, 0x96, 0x8b, 0xad, 0x00, 0x2c, 0x22, 0xc1, - 0xa8, 0xc0, 0xa8, 0xc1, 0x6d, 0x24, 0xaf, 0x87, 0xc3, 0xb9, 0x7a, 0x10, 0x8d, 0x4e, 0x2c, 0x27, - 0xee, 0xc9, 0x33, 0x04, 0x41, 0x35, 0x29, 0x89, 0x73, 0x89, 0x82, 0x4d, 0xf5, 0xcc, 0x4b, 0xcb, - 0x01, 0x3b, 0x14, 0x66, 0x5d, 0x1a, 0x97, 0x18, 0xba, 0x04, 0xd4, 0x46, 0x1f, 0x2e, 0xce, 0x4c, - 0x98, 0x20, 0xd8, 0x52, 0x1e, 0x27, 0x3d, 0x90, 0x99, 0xb7, 0xee, 0xc9, 0xab, 0xa5, 0x67, 0x96, - 0x64, 0x94, 0x26, 0x81, 0x9c, 0xa0, 0x9f, 0x9c, 0x5f, 0x9c, 0x9b, 0x5f, 0x0c, 0xa5, 0x74, 0x8b, - 0x53, 0xb2, 0xf5, 0x4b, 0x2a, 0x0b, 0x52, 0x8b, 0xf5, 0x5c, 0x52, 0x93, 0x83, 0x10, 0x06, 0x28, - 0xc9, 0x71, 0xc9, 0x80, 0xed, 0x71, 0xcc, 0xcb, 0x2b, 0x4d, 0xcc, 0x09, 0x28, 0xca, 0x2f, 0xcb, - 0x2c, 0x06, 0x85, 0x17, 0xcc, 0x1d, 0x35, 0x5c, 0xb2, 0x38, 0xe4, 0xa1, 0xce, 0x89, 0xe6, 0x12, - 0x4c, 0x04, 0xcb, 0xc5, 0x17, 0xc0, 0x25, 0xc9, 0x74, 0x96, 0x40, 0x22, 0x9a, 0x25, 0x46, 0x77, - 0x99, 0xb9, 0x58, 0xc1, 0xd6, 0x0b, 0x75, 0x30, 0x72, 0xb1, 0x41, 0x42, 0x50, 0x48, 0x1b, 0x67, - 0x10, 0x63, 0x46, 0x9b, 0x94, 0x0e, 0x71, 0x8a, 0x21, 0x9e, 0x51, 0x52, 0x6e, 0xba, 0xfc, 0x64, - 0x32, 0x93, 0xac, 0x90, 0x34, 0xcc, 0x9d, 0x28, 0x69, 0x04, 0x12, 0x67, 0x42, 0x53, 0x18, 0xb9, - 0x38, 0xe1, 0xd1, 0x22, 0xa4, 0x87, 0xdf, 0x02, 0xf4, 0x88, 0x95, 0xd2, 0x27, 0x5a, 0x3d, 0xd4, - 0x4d, 0x6a, 0x60, 0x37, 0x29, 0x08, 0xc9, 0x61, 0x75, 0x13, 0x3c, 0x26, 0x85, 0x36, 0x32, 0x72, - 0x09, 0xa0, 0xc7, 0x92, 0x90, 0x29, 0x7e, 0xdb, 0x70, 0xc4, 0xba, 0x94, 0x19, 0xa9, 0xda, 0xa0, - 0x6e, 0xd5, 0x03, 0xbb, 0x55, 0x43, 0x48, 0x0d, 0xab, 0x5b, 0x31, 0xd2, 0x89, 0x93, 0xda, 0x89, - 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, 0x38, 0xe1, 0xb1, 0x1c, 0xc3, - 0x85, 0xc7, 0x72, 0x0c, 0x37, 0x1e, 0xcb, 0x31, 0x44, 0xf1, 0x54, 0x40, 0xf4, 0x82, 0x53, 0x47, - 0x12, 0x1b, 0x38, 0x67, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x64, 0x17, 0xda, 0xda, 0x31, - 0x04, 0x00, 0x00, + // 446 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0xcf, 0xae, 0xd2, 0x40, + 0x14, 0xc6, 0x3b, 0xfe, 0x21, 0xb9, 0xe3, 0x5d, 0x5c, 0xc7, 0xab, 0xd7, 0xf4, 0x5e, 0x06, 0x52, + 0x12, 0x42, 0xa2, 0x99, 0x09, 0x18, 0xdd, 0xb9, 0x80, 0xb8, 0x31, 0x71, 0x81, 0xc4, 0x95, 0x2e, + 0xcc, 0x50, 0xc7, 0xda, 0xd8, 0xce, 0x94, 0xce, 0x40, 0x64, 0xeb, 0xca, 0xa5, 0x89, 0xbe, 0x88, + 0x6f, 0xc1, 0x92, 0xc4, 0x8d, 0x31, 0x91, 0x18, 0xf0, 0x41, 0x4c, 0xa7, 0x05, 0x42, 0xa1, 0x04, + 0x76, 0xe4, 0x9c, 0xef, 0x9c, 0xef, 0xc7, 0xf9, 0xa6, 0xb0, 0xe6, 0xca, 0x30, 0x92, 0x8a, 0xf5, + 0x03, 0x4e, 0x43, 0x5f, 0x68, 0x3a, 0x6a, 0xf6, 0xb9, 0x66, 0x4d, 0x3a, 0x18, 0xf2, 0x78, 0x4c, + 0xa2, 0x58, 0x6a, 0x89, 0x2e, 0xd6, 0x22, 0x92, 0x88, 0x48, 0x26, 0xb2, 0xcf, 0x3d, 0xe9, 0x49, + 0xa3, 0xa1, 0xc9, 0xaf, 0x54, 0x6e, 0x5f, 0x79, 0x52, 0x7a, 0x01, 0xa7, 0x2c, 0xf2, 0x29, 0x13, + 0x42, 0x6a, 0xa6, 0x7d, 0x29, 0x54, 0xd6, 0x75, 0x8a, 0x1c, 0xcd, 0x66, 0xa3, 0x71, 0xce, 0x21, + 0x7a, 0x99, 0xf8, 0x77, 0x59, 0xcc, 0x42, 0xd5, 0xe3, 0x83, 0x21, 0x57, 0xda, 0x79, 0x05, 0xef, + 0x6c, 0x54, 0x55, 0x24, 0x85, 0xe2, 0xe8, 0x29, 0x2c, 0x45, 0xa6, 0x72, 0x1f, 0x54, 0x41, 0xe3, + 0x56, 0xab, 0x42, 0x0a, 0x70, 0x49, 0x3a, 0xd8, 0xb9, 0x31, 0x99, 0x55, 0xac, 0x5e, 0x36, 0xe4, + 0x5c, 0xc0, 0xbb, 0x66, 0xeb, 0x73, 0xf1, 0x3e, 0x30, 0xa0, 0x4b, 0xbb, 0x37, 0xf0, 0x5e, 0xbe, + 0x91, 0x39, 0xb6, 0xe1, 0x89, 0xbf, 0x2c, 0x1a, 0xd3, 0xd3, 0x4e, 0x2d, 0xd9, 0xf9, 0x7b, 0x56, + 0xb9, 0x74, 0xa5, 0x0a, 0xa5, 0x52, 0xef, 0x3e, 0x12, 0x5f, 0xd2, 0x90, 0xe9, 0x0f, 0xe4, 0x05, + 0xf7, 0x98, 0x3b, 0x7e, 0xc6, 0xdd, 0xde, 0x7a, 0xca, 0xc1, 0xf0, 0xca, 0x2c, 0x6f, 0x0b, 0x31, + 0x64, 0x41, 0x37, 0x96, 0x23, 0x5f, 0x25, 0x47, 0x5a, 0x9a, 0x0f, 0x60, 0xb9, 0xa0, 0x9f, 0x31, + 0x74, 0xe1, 0x6d, 0x66, 0x7a, 0x6f, 0xa3, 0x55, 0xf3, 0x18, 0x96, 0x33, 0x96, 0xdb, 0xdc, 0xfa, + 0x73, 0x1d, 0xde, 0x34, 0x9e, 0xe8, 0x0b, 0x80, 0xa5, 0xf4, 0x56, 0xe8, 0x41, 0xe1, 0x31, 0xb7, + 0x03, 0xb2, 0x1f, 0x1e, 0x26, 0x4e, 0xff, 0x81, 0x53, 0xfb, 0xfc, 0xf3, 0xdf, 0xb7, 0x6b, 0x65, + 0x74, 0x49, 0x53, 0xce, 0xcd, 0xd7, 0x90, 0xa6, 0x83, 0xbe, 0x03, 0x78, 0xb2, 0x0a, 0x00, 0x91, + 0xfd, 0x06, 0xf9, 0x08, 0x6d, 0x7a, 0xb0, 0x3e, 0x63, 0xaa, 0x1b, 0xa6, 0x2a, 0xc2, 0x3b, 0x99, + 0x56, 0xf1, 0xa1, 0x1f, 0x00, 0x9e, 0xe5, 0xa3, 0x41, 0x8f, 0xf7, 0xbb, 0x15, 0x44, 0x6d, 0x3f, + 0x39, 0x76, 0x2c, 0x63, 0x25, 0x86, 0xb5, 0x81, 0xea, 0x3b, 0x59, 0xb7, 0x1e, 0x47, 0xa7, 0x3e, + 0x99, 0x63, 0x30, 0x9d, 0x63, 0xf0, 0x77, 0x8e, 0xc1, 0xd7, 0x05, 0xb6, 0xa6, 0x0b, 0x6c, 0xfd, + 0x5a, 0x60, 0xeb, 0xf5, 0xe9, 0xa7, 0x74, 0x56, 0x8f, 0x23, 0xae, 0xfa, 0x25, 0xf3, 0x0d, 0x3e, + 0xfa, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xd0, 0xde, 0xc4, 0x55, 0x1b, 0x04, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/ratelimit/ibc_middleware.go b/x/ratelimit/ibc_middleware.go index f22829935..e7f5b217a 100644 --- a/x/ratelimit/ibc_middleware.go +++ b/x/ratelimit/ibc_middleware.go @@ -7,11 +7,11 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" - "github.com/cosmos/ibc-go/v7/modules/core/exported" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" + "github.com/cosmos/ibc-go/v8/modules/core/exported" ) var _ porttypes.Middleware = &IBCMiddleware{} diff --git a/x/ratelimit/keeper/epoch.go b/x/ratelimit/keeper/epoch.go index 0039c067a..95fc28c1d 100644 --- a/x/ratelimit/keeper/epoch.go +++ b/x/ratelimit/keeper/epoch.go @@ -8,6 +8,7 @@ import ( "github.com/notional-labs/composable/v6/x/ratelimit/types" + storetypes "cosmossdk.io/store/types" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -74,7 +75,7 @@ func (k Keeper) DeleteEpochInfo(ctx sdk.Context, identifier string) { func (k Keeper) IterateEpochInfo(ctx sdk.Context, fn func(index int64, epochInfo types.EpochInfo) (stop bool)) { store := ctx.KVStore(k.storeKey) - iterator := sdk.KVStorePrefixIterator(store, types.EpochKeyPrefix) + iterator := storetypes.KVStorePrefixIterator(store, types.EpochKeyPrefix) defer iterator.Close() i := int64(0) diff --git a/x/ratelimit/keeper/grpc_query.go b/x/ratelimit/keeper/grpc_query.go index 2aee780d2..c99e7b0c4 100644 --- a/x/ratelimit/keeper/grpc_query.go +++ b/x/ratelimit/keeper/grpc_query.go @@ -5,8 +5,8 @@ import ( errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - ibctmtypes "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + ibctmtypes "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint" "github.com/notional-labs/composable/v6/x/ratelimit/types" ) diff --git a/x/ratelimit/keeper/keeper.go b/x/ratelimit/keeper/keeper.go index 243241ca4..1e81dc603 100644 --- a/x/ratelimit/keeper/keeper.go +++ b/x/ratelimit/keeper/keeper.go @@ -3,12 +3,12 @@ package keeper import ( "fmt" - "github.com/cometbft/cometbft/libs/log" + "cosmossdk.io/log" + storetypes "cosmossdk.io/store/types" "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" + porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" "github.com/notional-labs/composable/v6/x/ratelimit/types" tfmwkeeper "github.com/notional-labs/composable/v6/x/transfermiddleware/keeper" diff --git a/x/ratelimit/keeper/packet.go b/x/ratelimit/keeper/packet.go index 85e8510ab..58bc5e7a3 100644 --- a/x/ratelimit/keeper/packet.go +++ b/x/ratelimit/keeper/packet.go @@ -8,11 +8,11 @@ import ( "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" "github.com/notional-labs/composable/v6/x/ratelimit/types" ) @@ -137,7 +137,7 @@ func (k Keeper) ParsePacketInfo(packet channeltypes.Packet, direction types.Pack denom = k.ParseDenomFromRecvPacket(packet, packetData) } - amount, ok := sdk.NewIntFromString(packetData.Amount) + amount, ok := math.NewIntFromString(packetData.Amount) if !ok { return RateLimitedPacketInfo{}, errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "Unable to cast packet amount '%s' to sdkmath.Int", packetData.Amount) diff --git a/x/ratelimit/keeper/rate_limit.go b/x/ratelimit/keeper/rate_limit.go index 8ef5514d8..1994f5878 100644 --- a/x/ratelimit/keeper/rate_limit.go +++ b/x/ratelimit/keeper/rate_limit.go @@ -7,7 +7,8 @@ import ( errorsmod "cosmossdk.io/errors" "cosmossdk.io/math" - "github.com/cosmos/cosmos-sdk/store/prefix" + "cosmossdk.io/store/prefix" + storetypes "cosmossdk.io/store/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -342,7 +343,7 @@ func (k Keeper) GetAllPendingSendPackets(ctx sdk.Context) []string { func (k Keeper) RemoveAllChannelPendingSendPackets(ctx sdk.Context, channelID string) { store := prefix.NewStore(ctx.KVStore(k.storeKey), types.PendingSendPacketPrefix) - iterator := sdk.KVStorePrefixIterator(store, types.KeyPrefix(channelID)) + iterator := storetypes.KVStorePrefixIterator(store, types.KeyPrefix(channelID)) defer iterator.Close() for ; iterator.Valid(); iterator.Next() { diff --git a/x/ratelimit/module.go b/x/ratelimit/module.go index 70a96f533..c17e7b48c 100644 --- a/x/ratelimit/module.go +++ b/x/ratelimit/module.go @@ -77,6 +77,12 @@ type AppModule struct { keeper *keeper.Keeper } +// IsAppModule implements module.AppModule. +func (AppModule) IsAppModule() {} + +// IsOnePerModuleType implements module.AppModule. +func (AppModule) IsOnePerModuleType() {} + // NewAppModule creates a new router module func NewAppModule(k *keeper.Keeper) AppModule { return AppModule{ @@ -130,28 +136,18 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw // ConsensusVersion implements AppModule/ConsensusVersion. func (AppModule) ConsensusVersion() uint64 { return 1 } -// BeginBlock implements the AppModule interface -func (am AppModule) BeginBlock(ctx sdk.Context, _ abci.RequestBeginBlock) { - am.keeper.BeginBlocker(ctx) -} - -// EndBlock implements the AppModule interface -func (am AppModule) EndBlock(_ sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate { - return []abci.ValidatorUpdate{} -} - // AppModuleSimulation functions // GenerateGenesisState creates a randomized GenState of the router module. func (AppModule) GenerateGenesisState(_ *module.SimulationState) {} // ProposalContents doesn't return any content functions for governance proposals. -func (AppModule) ProposalContents(_ module.SimulationState) []simtypes.WeightedProposalContent { //nolint:staticcheck // WeightedProposalContent is necessary to satisfy the module interface +func (AppModule) ProposalContents(_ module.SimulationState) []simtypes.WeightedProposalContent { return nil } // RegisterStoreDecoder registers a decoder for router module's types -func (am AppModule) RegisterStoreDecoder(_ sdk.StoreDecoderRegistry) {} +func (am AppModule) RegisterStoreDecoder(registry simtypes.StoreDecoderRegistry) {} // WeightedOperations returns the all the router module operations with their respective weights. func (am AppModule) WeightedOperations(_ module.SimulationState) []simtypes.WeightedOperation { diff --git a/x/ratelimit/relay_test.go b/x/ratelimit/relay_test.go index 1e2b090ce..855125c4f 100644 --- a/x/ratelimit/relay_test.go +++ b/x/ratelimit/relay_test.go @@ -3,9 +3,10 @@ package ratelimit_test import ( "testing" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" "github.com/stretchr/testify/suite" customibctesting "github.com/notional-labs/composable/v6/app/ibctesting" @@ -24,7 +25,7 @@ type RateLimitTestSuite struct { } func (suite *RateLimitTestSuite) SetupTest() { - suite.coordinator = customibctesting.NewCoordinator(suite.T(), 4) + suite.coordinator = customibctesting.NewCoordinator(suite.T(), 3) suite.chainA = suite.coordinator.GetChain(customibctesting.GetChainID(1)) suite.chainB = suite.coordinator.GetChain(customibctesting.GetChainID(2)) suite.chainC = suite.coordinator.GetChain(customibctesting.GetChainID(3)) @@ -46,7 +47,7 @@ func TestKeeperTestSuite(t *testing.T) { func (suite *RateLimitTestSuite) TestReceiveIBCToken() { var ( - transferAmount = sdk.NewInt(1_000_000_000_000) + transferAmount = sdkmath.NewInt(1_000_000_000_000) // when transfer via sdk transfer from A (module) -> B (contract) ibcDenom = "ibc/C053D637CCA2A2BA030E2C5EE1B28A16F71CCB0E45E8BE52766DC1B241B77878" nativeDenom = "ppica" @@ -110,16 +111,16 @@ func (suite *RateLimitTestSuite) TestReceiveIBCToken() { msgAddRateLimit := ratelimittypes.MsgAddRateLimit{ Denom: nativeDenom, ChannelID: path.EndpointB.ChannelID, - MaxPercentSend: sdk.NewInt(5), // 50_000_000_000 > minRateLimitAmount(10_000_000_000) => RateLimit = 50_000_000_000 - MaxPercentRecv: sdk.NewInt(5), // 50_000_000_000 > minRateLimitAmount(10_000_000_000) => RateLimit = 50_000_000_000 - MinRateLimitAmount: sdk.NewInt(10_000_000_000), + MaxPercentSend: sdkmath.NewInt(5), // 50_000_000_000 > minRateLimitAmount(10_000_000_000) => RateLimit = 50_000_000_000 + MaxPercentRecv: sdkmath.NewInt(5), // 50_000_000_000 > minRateLimitAmount(10_000_000_000) => RateLimit = 50_000_000_000 + MinRateLimitAmount: sdkmath.NewInt(10_000_000_000), DurationHours: 1, } err = chainBRateLimitKeeper.AddRateLimit(suite.chainB.GetContext(), &msgAddRateLimit) suite.Require().NoError(err) // send from A to B - transferAmount = transferAmount.Mul(sdk.NewInt(5)).Quo(sdk.NewInt(100)) + transferAmount = transferAmount.Mul(sdkmath.NewInt(5)).Quo(sdkmath.NewInt(100)) nativeTokenSendOnChainA = sdk.NewCoin(sdk.DefaultBondDenom, transferAmount) msg = transfertypes.NewMsgTransfer(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, nativeTokenSendOnChainA, suite.chainA.SenderAccount.GetAddress().String(), suite.chainB.SenderAccount.GetAddress().String(), timeoutHeight, 0, "") _, err = suite.chainA.SendMsgs(msg) @@ -166,7 +167,7 @@ func (suite *RateLimitTestSuite) TestReceiveIBCToken() { func (suite *RateLimitTestSuite) TestSendIBCToken() { var ( - transferAmount = sdk.NewInt(1_000_000_000_000) + transferAmount = sdkmath.NewInt(1_000_000_000_000) // when transfer via sdk transfer from A (module) -> B (contract) ibcDenom = "ibc/C053D637CCA2A2BA030E2C5EE1B28A16F71CCB0E45E8BE52766DC1B241B77878" nativeDenom = "ppica" @@ -222,16 +223,16 @@ func (suite *RateLimitTestSuite) TestSendIBCToken() { msgAddRateLimit := ratelimittypes.MsgAddRateLimit{ Denom: nativeDenom, ChannelID: path.EndpointB.ChannelID, - MaxPercentSend: sdk.NewInt(5), // 50_000_000_000 > minRateLimitAmount(10_000_000_000) => RateLimit = 50_000_000_000 - MaxPercentRecv: sdk.NewInt(5), // 50_000_000_000 > minRateLimitAmount(10_000_000_000) => RateLimit = 50_000_000_000 - MinRateLimitAmount: sdk.NewInt(10_000_000_000), + MaxPercentSend: sdkmath.NewInt(5), // 50_000_000_000 > minRateLimitAmount(10_000_000_000) => RateLimit = 50_000_000_000 + MaxPercentRecv: sdkmath.NewInt(5), // 50_000_000_000 > minRateLimitAmount(10_000_000_000) => RateLimit = 50_000_000_000 + MinRateLimitAmount: sdkmath.NewInt(10_000_000_000), DurationHours: 1, } err = chainBRateLimitKeeper.AddRateLimit(suite.chainB.GetContext(), &msgAddRateLimit) suite.Require().NoError(err) // send from B to A - transferAmount = transferAmount.Mul(sdk.NewInt(5)).Quo(sdk.NewInt(100)) + transferAmount = transferAmount.Mul(sdkmath.NewInt(5)).Quo(sdkmath.NewInt(100)) nativeTokenSendOnChainB := sdk.NewCoin(nativeDenom, transferAmount) msg = transfertypes.NewMsgTransfer(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, nativeTokenSendOnChainB, suite.chainB.SenderAccount.GetAddress().String(), suite.chainA.SenderAccount.GetAddress().String(), timeoutHeight, 0, "") _, err = suite.chainB.SendMsgs(msg) @@ -274,7 +275,7 @@ func (suite *RateLimitTestSuite) TestSendIBCToken() { func (suite *RateLimitTestSuite) TestReceiveIBCTokenWithMinRateLimitAmount() { var ( - transferAmount = sdk.NewInt(100_000_000_000) + transferAmount = sdkmath.NewInt(100_000_000_000) // when transfer via sdk transfer from A (module) -> B (contract) ibcDenom = "ibc/C053D637CCA2A2BA030E2C5EE1B28A16F71CCB0E45E8BE52766DC1B241B77878" nativeDenom = "ppica" @@ -338,16 +339,16 @@ func (suite *RateLimitTestSuite) TestReceiveIBCTokenWithMinRateLimitAmount() { msgAddRateLimit := ratelimittypes.MsgAddRateLimit{ Denom: nativeDenom, ChannelID: path.EndpointB.ChannelID, - MaxPercentSend: sdk.NewInt(5), // 5_000_000_000 < minRateLimitAmount(10_000_000_000) => RateLimit = 10_000_000_000 - MaxPercentRecv: sdk.NewInt(5), // 5_000_000_000 < minRateLimitAmount(10_000_000_000) => RateLimit = 10_000_000_000 - MinRateLimitAmount: sdk.NewInt(10_000_000_000), + MaxPercentSend: sdkmath.NewInt(5), // 5_000_000_000 < minRateLimitAmount(10_000_000_000) => RateLimit = 10_000_000_000 + MaxPercentRecv: sdkmath.NewInt(5), // 5_000_000_000 < minRateLimitAmount(10_000_000_000) => RateLimit = 10_000_000_000 + MinRateLimitAmount: sdkmath.NewInt(10_000_000_000), DurationHours: 1, } err = chainBRateLimitKeeper.AddRateLimit(suite.chainB.GetContext(), &msgAddRateLimit) suite.Require().NoError(err) // send from A to B - transferAmount = sdk.NewInt(10_000_000_000) + transferAmount = sdkmath.NewInt(10_000_000_000) nativeTokenSendOnChainA = sdk.NewCoin(sdk.DefaultBondDenom, transferAmount) msg = transfertypes.NewMsgTransfer(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, nativeTokenSendOnChainA, suite.chainA.SenderAccount.GetAddress().String(), suite.chainB.SenderAccount.GetAddress().String(), timeoutHeight, 0, "") _, err = suite.chainA.SendMsgs(msg) @@ -394,7 +395,7 @@ func (suite *RateLimitTestSuite) TestReceiveIBCTokenWithMinRateLimitAmount() { func (suite *RateLimitTestSuite) TestSendIBCTokenWithMinRateLimitAmount() { var ( - transferAmount = sdk.NewInt(100_000_000_000) + transferAmount = sdkmath.NewInt(100_000_000_000) // when transfer via sdk transfer from A (module) -> B (contract) ibcDenom = "ibc/C053D637CCA2A2BA030E2C5EE1B28A16F71CCB0E45E8BE52766DC1B241B77878" nativeDenom = "ppica" @@ -459,16 +460,16 @@ func (suite *RateLimitTestSuite) TestSendIBCTokenWithMinRateLimitAmount() { msgAddRateLimit := ratelimittypes.MsgAddRateLimit{ Denom: nativeDenom, ChannelID: path.EndpointB.ChannelID, - MaxPercentSend: sdk.NewInt(5), // 5_000_000_000 < minRateLimitAmount(10_000_000_000) => RateLimit = 10_000_000_000 - MaxPercentRecv: sdk.NewInt(5), // 5_000_000_000 < minRateLimitAmount(10_000_000_000) => RateLimit = 10_000_000_000 - MinRateLimitAmount: sdk.NewInt(10_000_000_000), + MaxPercentSend: sdkmath.NewInt(5), // 5_000_000_000 < minRateLimitAmount(10_000_000_000) => RateLimit = 10_000_000_000 + MaxPercentRecv: sdkmath.NewInt(5), // 5_000_000_000 < minRateLimitAmount(10_000_000_000) => RateLimit = 10_000_000_000 + MinRateLimitAmount: sdkmath.NewInt(10_000_000_000), DurationHours: 1, } err = chainBRateLimitKeeper.AddRateLimit(suite.chainB.GetContext(), &msgAddRateLimit) suite.Require().NoError(err) // send from B to A - transferAmount = sdk.NewInt(10_000_000_000) + transferAmount = sdkmath.NewInt(10_000_000_000) nativeTokenSendOnChainB := sdk.NewCoin(nativeDenom, transferAmount) msg = transfertypes.NewMsgTransfer(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, nativeTokenSendOnChainB, suite.chainB.SenderAccount.GetAddress().String(), suite.chainA.SenderAccount.GetAddress().String(), timeoutHeight, 0, "") _, err = suite.chainB.SendMsgs(msg) diff --git a/x/ratelimit/types/codec.go b/x/ratelimit/types/codec.go index a9d5d4676..664db3e48 100644 --- a/x/ratelimit/types/codec.go +++ b/x/ratelimit/types/codec.go @@ -6,9 +6,6 @@ import ( codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" "github.com/cosmos/cosmos-sdk/types/msgservice" - authzcodec "github.com/cosmos/cosmos-sdk/x/authz/codec" - govcodec "github.com/cosmos/cosmos-sdk/x/gov/codec" - groupcodec "github.com/cosmos/cosmos-sdk/x/group/codec" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -45,7 +42,7 @@ func init() { // Register all Amino interfaces and concrete types on the authz and gov Amino codec so that this can later be // used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances - RegisterLegacyAminoCodec(authzcodec.Amino) - RegisterLegacyAminoCodec(govcodec.Amino) - RegisterLegacyAminoCodec(groupcodec.Amino) + // RegisterLegacyAminoCodec(authzcodec.Amino) + // RegisterLegacyAminoCodec(govcodec.Amino) + // RegisterLegacyAminoCodec(groupcodec.Amino) } diff --git a/x/ratelimit/types/expected_keepers.go b/x/ratelimit/types/expected_keepers.go index 96e72013f..7628c6fcf 100644 --- a/x/ratelimit/types/expected_keepers.go +++ b/x/ratelimit/types/expected_keepers.go @@ -1,15 +1,17 @@ package types import ( + context "context" + sdk "github.com/cosmos/cosmos-sdk/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - "github.com/cosmos/ibc-go/v7/modules/core/exported" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + "github.com/cosmos/ibc-go/v8/modules/core/exported" ) // BankKeeper defines the banking contract that must be fulfilled when // creating a x/ratelimit keeper. type BankKeeper interface { - GetSupply(ctx sdk.Context, denom string) sdk.Coin + GetSupply(ctx context.Context, denom string) sdk.Coin } // ChannelKeeper defines the channel contract that must be fulfilled when diff --git a/x/ratelimit/types/msg.go b/x/ratelimit/types/msg.go index 5a100c3e8..9105fb6a9 100644 --- a/x/ratelimit/types/msg.go +++ b/x/ratelimit/types/msg.go @@ -5,7 +5,7 @@ import ( "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - host "github.com/cosmos/ibc-go/v7/modules/core/24-host" + host "github.com/cosmos/ibc-go/v8/modules/core/24-host" ) const ( diff --git a/x/ratelimit/types/ratelimit.pb.go b/x/ratelimit/types/ratelimit.pb.go index 5c69f9925..706963a06 100644 --- a/x/ratelimit/types/ratelimit.pb.go +++ b/x/ratelimit/types/ratelimit.pb.go @@ -4,8 +4,8 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -102,9 +102,9 @@ func (m *Path) GetChannelID() string { } type Quota struct { - MaxPercentSend github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=max_percent_send,json=maxPercentSend,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"max_percent_send"` - MaxPercentRecv github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=max_percent_recv,json=maxPercentRecv,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"max_percent_recv"` - DurationHours uint64 `protobuf:"varint,3,opt,name=duration_hours,json=durationHours,proto3" json:"duration_hours,omitempty"` + MaxPercentSend cosmossdk_io_math.Int `protobuf:"bytes,1,opt,name=max_percent_send,json=maxPercentSend,proto3,customtype=cosmossdk.io/math.Int" json:"max_percent_send"` + MaxPercentRecv cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=max_percent_recv,json=maxPercentRecv,proto3,customtype=cosmossdk.io/math.Int" json:"max_percent_recv"` + DurationHours uint64 `protobuf:"varint,3,opt,name=duration_hours,json=durationHours,proto3" json:"duration_hours,omitempty"` } func (m *Quota) Reset() { *m = Quota{} } @@ -148,9 +148,9 @@ func (m *Quota) GetDurationHours() uint64 { } type Flow struct { - Inflow github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=inflow,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"inflow"` - Outflow github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=outflow,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"outflow"` - ChannelValue github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=channel_value,json=channelValue,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"channel_value"` + Inflow cosmossdk_io_math.Int `protobuf:"bytes,1,opt,name=inflow,proto3,customtype=cosmossdk.io/math.Int" json:"inflow"` + Outflow cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=outflow,proto3,customtype=cosmossdk.io/math.Int" json:"outflow"` + ChannelValue cosmossdk_io_math.Int `protobuf:"bytes,3,opt,name=channel_value,json=channelValue,proto3,customtype=cosmossdk.io/math.Int" json:"channel_value"` } func (m *Flow) Reset() { *m = Flow{} } @@ -187,10 +187,10 @@ func (m *Flow) XXX_DiscardUnknown() { var xxx_messageInfo_Flow proto.InternalMessageInfo type RateLimit struct { - Path *Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` - Quota *Quota `protobuf:"bytes,2,opt,name=quota,proto3" json:"quota,omitempty"` - Flow *Flow `protobuf:"bytes,3,opt,name=flow,proto3" json:"flow,omitempty"` - MinRateLimitAmount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=min_rate_limit_amount,json=minRateLimitAmount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"min_rate_limit_amount"` + Path *Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + Quota *Quota `protobuf:"bytes,2,opt,name=quota,proto3" json:"quota,omitempty"` + Flow *Flow `protobuf:"bytes,3,opt,name=flow,proto3" json:"flow,omitempty"` + MinRateLimitAmount cosmossdk_io_math.Int `protobuf:"bytes,4,opt,name=min_rate_limit_amount,json=minRateLimitAmount,proto3,customtype=cosmossdk.io/math.Int" json:"min_rate_limit_amount"` } func (m *RateLimit) Reset() { *m = RateLimit{} } @@ -313,42 +313,41 @@ func init() { } var fileDescriptor_0232bb247554c4df = []byte{ - // 556 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xcf, 0x6f, 0xd3, 0x30, - 0x14, 0x4e, 0xb6, 0xb4, 0x50, 0x97, 0x6e, 0xc5, 0x1a, 0x53, 0x55, 0xa1, 0x74, 0x0a, 0x02, 0x4d, - 0x30, 0x52, 0x6d, 0x48, 0x48, 0x3b, 0xf6, 0xd7, 0xb4, 0xc2, 0x84, 0x4a, 0x8a, 0x06, 0xe2, 0x12, - 0xb9, 0x89, 0x69, 0xac, 0x25, 0x76, 0x71, 0x9c, 0xae, 0xfc, 0x07, 0x1c, 0xb9, 0x72, 0xe6, 0x9f, - 0xd9, 0x71, 0x47, 0xc4, 0xa1, 0x42, 0xed, 0x99, 0xff, 0x01, 0xd9, 0x49, 0xd7, 0x89, 0xc3, 0x04, - 0xe5, 0x94, 0xbc, 0xe7, 0xef, 0x7d, 0xf6, 0xf7, 0xde, 0x67, 0x83, 0x3d, 0x8f, 0x45, 0x23, 0x16, - 0xa3, 0x41, 0x88, 0xeb, 0x1c, 0x09, 0x1c, 0x92, 0x88, 0x88, 0xfa, 0x78, 0x7f, 0x80, 0x05, 0xda, - 0x5f, 0x66, 0xec, 0x11, 0x67, 0x82, 0xc1, 0xfb, 0x4b, 0xb4, 0xbd, 0x5c, 0xcb, 0xd0, 0xd5, 0xad, - 0x21, 0x1b, 0x32, 0x05, 0xac, 0xcb, 0xbf, 0xb4, 0xc6, 0x7a, 0x01, 0x8c, 0x1e, 0x12, 0x01, 0xdc, - 0x02, 0x39, 0x1f, 0x53, 0x16, 0x55, 0xf4, 0x1d, 0x7d, 0xb7, 0xe0, 0xa4, 0x01, 0xdc, 0x03, 0xc0, - 0x0b, 0x10, 0xa5, 0x38, 0x74, 0x89, 0x5f, 0x59, 0x93, 0x4b, 0xcd, 0xd2, 0x6c, 0x5a, 0x2b, 0xb4, - 0xd2, 0x6c, 0xb7, 0xed, 0x14, 0x32, 0x40, 0xd7, 0xb7, 0x66, 0x3a, 0xc8, 0xbd, 0x4e, 0x98, 0x40, - 0xf0, 0x1d, 0x28, 0x47, 0x68, 0xe2, 0x8e, 0x30, 0xf7, 0x30, 0x15, 0x6e, 0x8c, 0xa9, 0x9f, 0x12, - 0x37, 0xed, 0x8b, 0x69, 0x4d, 0xfb, 0x31, 0xad, 0x3d, 0x1a, 0x12, 0x11, 0x24, 0x03, 0xdb, 0x63, - 0x51, 0xdd, 0x63, 0x71, 0xc4, 0xe2, 0xec, 0xf3, 0x34, 0xf6, 0xcf, 0xea, 0xe2, 0xd3, 0x08, 0xc7, - 0x76, 0x97, 0x0a, 0x67, 0x23, 0x42, 0x93, 0x5e, 0x4a, 0xd3, 0xc7, 0xd4, 0xff, 0x93, 0x99, 0x63, - 0x6f, 0x9c, 0x9d, 0xeb, 0x3f, 0x98, 0x1d, 0xec, 0x8d, 0xe1, 0x43, 0xb0, 0xe1, 0x27, 0x1c, 0x09, - 0xc2, 0xa8, 0x1b, 0xb0, 0x84, 0xc7, 0x95, 0xf5, 0x1d, 0x7d, 0xd7, 0x70, 0x4a, 0x8b, 0xec, 0xb1, - 0x4c, 0x5a, 0xbf, 0x74, 0x60, 0x1c, 0x85, 0xec, 0x1c, 0x1e, 0x81, 0x3c, 0xa1, 0x1f, 0x42, 0x76, - 0xbe, 0xa2, 0xb2, 0xac, 0x1a, 0x1e, 0x83, 0x5b, 0x2c, 0x11, 0x8a, 0x68, 0x35, 0x21, 0x8b, 0x72, - 0xd8, 0x07, 0xa5, 0xc5, 0xb4, 0xc6, 0x28, 0x4c, 0xb0, 0x12, 0xf0, 0xef, 0x7c, 0x77, 0x32, 0x92, - 0x53, 0xc9, 0x61, 0x7d, 0x5d, 0x03, 0x05, 0x07, 0x09, 0x7c, 0x22, 0xcd, 0x04, 0x9f, 0x03, 0x63, - 0x84, 0x44, 0xa0, 0x24, 0x17, 0x0f, 0x2c, 0xfb, 0x26, 0xc7, 0xd9, 0xd2, 0x58, 0x8e, 0xc2, 0xc3, - 0x43, 0x90, 0xfb, 0x28, 0x9d, 0xa1, 0x24, 0x16, 0x0f, 0x1e, 0xdc, 0x5c, 0xa8, 0x4c, 0xe4, 0xa4, - 0x15, 0x72, 0x4b, 0xd5, 0x9c, 0xf5, 0xbf, 0xd9, 0x52, 0x4e, 0xc6, 0x51, 0x78, 0x88, 0xc0, 0xbd, - 0x88, 0x50, 0x57, 0x62, 0x5c, 0x05, 0x72, 0x51, 0xc4, 0x12, 0x2a, 0x2a, 0xc6, 0x4a, 0x5d, 0x81, - 0x11, 0xa1, 0x57, 0x7d, 0x68, 0x28, 0x26, 0xeb, 0x04, 0x6c, 0xbf, 0x0d, 0x88, 0x3c, 0x43, 0x2c, - 0xb0, 0xdf, 0xf0, 0x7d, 0x8e, 0xe3, 0xb8, 0x87, 0x08, 0x87, 0xdb, 0x20, 0x2f, 0x4d, 0x8f, 0x79, - 0x76, 0x9f, 0xb2, 0x08, 0x56, 0xc1, 0x6d, 0x8e, 0x3d, 0x4c, 0xc6, 0x98, 0xa7, 0xd3, 0x76, 0xae, - 0xe2, 0xc7, 0x87, 0x60, 0xb3, 0x87, 0xbc, 0x33, 0x2c, 0xda, 0x84, 0x63, 0x4f, 0x3a, 0x0e, 0x6e, - 0x82, 0x62, 0xaf, 0xd1, 0x7a, 0xd9, 0x79, 0xe3, 0xf6, 0x3b, 0xaf, 0xda, 0x65, 0xed, 0x5a, 0xc2, - 0xe9, 0xb4, 0x4e, 0xcb, 0x7a, 0xd5, 0xf8, 0xfc, 0xcd, 0xd4, 0x9a, 0x4f, 0x2e, 0x66, 0xa6, 0x7e, - 0x39, 0x33, 0xf5, 0x9f, 0x33, 0x53, 0xff, 0x32, 0x37, 0xb5, 0xcb, 0xb9, 0xa9, 0x7d, 0x9f, 0x9b, - 0xda, 0xfb, 0xbb, 0x93, 0x6b, 0x0f, 0x87, 0x52, 0x33, 0xc8, 0xab, 0x9b, 0xff, 0xec, 0x77, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x60, 0xf4, 0xde, 0x6b, 0x5d, 0x04, 0x00, 0x00, + // 543 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x4d, 0x6f, 0xd3, 0x30, + 0x18, 0xc7, 0x93, 0x2d, 0x2d, 0xd4, 0xa5, 0x5b, 0xb1, 0xb6, 0xa9, 0xaa, 0x20, 0x9d, 0x82, 0x90, + 0x26, 0x98, 0x52, 0x6d, 0x08, 0xd0, 0x8e, 0x7d, 0x03, 0x0a, 0x13, 0x0a, 0x19, 0x1a, 0x12, 0x97, + 0xc8, 0x4d, 0xcc, 0x62, 0x2d, 0xb1, 0x8b, 0xe3, 0x74, 0xe5, 0x1b, 0xec, 0xc8, 0x77, 0xe0, 0x5b, + 0x70, 0xe2, 0xb8, 0xe3, 0x8e, 0x88, 0x43, 0x85, 0xda, 0x2f, 0x82, 0xec, 0xa4, 0xeb, 0xc4, 0x61, + 0xeb, 0x2d, 0xcf, 0x93, 0xdf, 0xff, 0x79, 0x37, 0xd8, 0xf5, 0x59, 0x3c, 0x64, 0x09, 0x1a, 0x44, + 0xb8, 0xc9, 0x91, 0xc0, 0x11, 0x89, 0x89, 0x68, 0x8e, 0xf6, 0x06, 0x58, 0xa0, 0xbd, 0x85, 0xc7, + 0x1e, 0x72, 0x26, 0x18, 0x7c, 0xb0, 0xa0, 0xed, 0xc5, 0xbf, 0x9c, 0xae, 0x6f, 0x9c, 0xb0, 0x13, + 0xa6, 0xc0, 0xa6, 0xfc, 0xca, 0x34, 0xd6, 0x5b, 0x60, 0x38, 0x48, 0x84, 0x70, 0x03, 0x14, 0x02, + 0x4c, 0x59, 0x5c, 0xd3, 0xb7, 0xf5, 0x9d, 0x92, 0x9b, 0x19, 0x70, 0x17, 0x00, 0x3f, 0x44, 0x94, + 0xe2, 0xc8, 0x23, 0x41, 0x6d, 0x45, 0xfe, 0x6a, 0x57, 0xa6, 0x93, 0x46, 0xa9, 0x93, 0x79, 0xfb, + 0x5d, 0xb7, 0x94, 0x03, 0xfd, 0xc0, 0xfa, 0xa5, 0x83, 0xc2, 0x87, 0x94, 0x09, 0x04, 0x5f, 0x83, + 0x6a, 0x8c, 0xc6, 0xde, 0x10, 0x73, 0x1f, 0x53, 0xe1, 0x25, 0x98, 0x06, 0x59, 0xe0, 0xf6, 0xc3, + 0x8b, 0x49, 0x43, 0xfb, 0x33, 0x69, 0x6c, 0xfa, 0x2c, 0x89, 0x59, 0x92, 0x04, 0xa7, 0x36, 0x61, + 0xcd, 0x18, 0x89, 0xd0, 0xee, 0x53, 0xe1, 0xae, 0xc5, 0x68, 0xec, 0x64, 0xaa, 0x23, 0x4c, 0x83, + 0xff, 0x03, 0x71, 0xec, 0x8f, 0xf2, 0x32, 0x96, 0x0f, 0xe4, 0x62, 0x7f, 0x04, 0x1f, 0x83, 0xb5, + 0x20, 0xe5, 0x48, 0x10, 0x46, 0xbd, 0x90, 0xa5, 0x3c, 0xa9, 0xad, 0x6e, 0xeb, 0x3b, 0x86, 0x5b, + 0x99, 0x7b, 0xdf, 0x48, 0xa7, 0xf5, 0x53, 0x07, 0xc6, 0xab, 0x88, 0x9d, 0xc1, 0xe7, 0xa0, 0x48, + 0xe8, 0x97, 0x88, 0x9d, 0x2d, 0x57, 0x77, 0x0e, 0xc3, 0x97, 0xe0, 0x0e, 0x4b, 0x85, 0xd2, 0x2d, + 0x55, 0xe6, 0x9c, 0x86, 0x6d, 0x50, 0x99, 0x4f, 0x7a, 0x84, 0xa2, 0x14, 0xab, 0xf2, 0x6e, 0x95, + 0xdf, 0xcb, 0x35, 0xc7, 0x52, 0x62, 0x9d, 0xaf, 0x80, 0x92, 0x8b, 0x04, 0x3e, 0x94, 0x7b, 0x87, + 0x2f, 0x80, 0x31, 0x44, 0x22, 0x54, 0xf5, 0x97, 0xf7, 0x2d, 0xfb, 0xa6, 0xe3, 0xb0, 0xe5, 0x0d, + 0xb8, 0x8a, 0x87, 0x07, 0xa0, 0xf0, 0x55, 0x2e, 0x51, 0x35, 0x50, 0xde, 0x7f, 0x74, 0xb3, 0x50, + 0xed, 0xdb, 0xcd, 0x14, 0x32, 0xa5, 0x6a, 0x7d, 0x75, 0x99, 0x94, 0x72, 0xcc, 0xae, 0xe2, 0xa1, + 0x03, 0x36, 0x63, 0x42, 0x3d, 0xc9, 0x78, 0x0a, 0xf2, 0x50, 0xcc, 0x52, 0x2a, 0x6a, 0xc6, 0x32, + 0x43, 0x80, 0x31, 0xa1, 0x57, 0x6d, 0xb7, 0x94, 0xd0, 0x3a, 0x04, 0x5b, 0x9f, 0x42, 0x22, 0x53, + 0x26, 0x02, 0x07, 0xad, 0x20, 0xe0, 0x38, 0x49, 0x1c, 0x44, 0x38, 0xdc, 0x02, 0x45, 0x79, 0x8e, + 0x98, 0xe7, 0x97, 0x9e, 0x5b, 0xb0, 0x0e, 0xee, 0x72, 0xec, 0x63, 0x32, 0xc2, 0x3c, 0x5b, 0x9d, + 0x7b, 0x65, 0x3f, 0x39, 0x00, 0xeb, 0x0e, 0xf2, 0x4f, 0xb1, 0xe8, 0x12, 0x8e, 0x7d, 0x79, 0x2d, + 0x70, 0x1d, 0x94, 0x9d, 0x56, 0xe7, 0x5d, 0xef, 0xa3, 0x77, 0xd4, 0x7b, 0xdf, 0xad, 0x6a, 0xd7, + 0x1c, 0x6e, 0xaf, 0x73, 0x5c, 0xd5, 0xeb, 0xc6, 0xf9, 0x0f, 0x53, 0x6b, 0x3f, 0xbd, 0x98, 0x9a, + 0xfa, 0xe5, 0xd4, 0xd4, 0xff, 0x4e, 0x4d, 0xfd, 0xfb, 0xcc, 0xd4, 0x2e, 0x67, 0xa6, 0xf6, 0x7b, + 0x66, 0x6a, 0x9f, 0xef, 0x8f, 0xaf, 0x3d, 0x69, 0xf1, 0x6d, 0x88, 0x93, 0x41, 0x51, 0xbd, 0xc9, + 0x67, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x58, 0xbf, 0x35, 0x49, 0xf7, 0x03, 0x00, 0x00, } func (m *Path) Marshal() (dAtA []byte, err error) { diff --git a/x/ratelimit/types/tx.pb.go b/x/ratelimit/types/tx.pb.go index 51439e8bd..d9337a4a5 100644 --- a/x/ratelimit/types/tx.pb.go +++ b/x/ratelimit/types/tx.pb.go @@ -5,8 +5,8 @@ package types import ( context "context" + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" @@ -39,13 +39,13 @@ type MsgAddRateLimit struct { // The channel that is limited when transferr ICS 20 packet of denom ChannelID string `protobuf:"bytes,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` // Max rate limit send - MaxPercentSend github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=max_percent_send,json=maxPercentSend,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"max_percent_send"` + MaxPercentSend cosmossdk_io_math.Int `protobuf:"bytes,4,opt,name=max_percent_send,json=maxPercentSend,proto3,customtype=cosmossdk.io/math.Int" json:"max_percent_send"` // Max rate limit receive - MaxPercentRecv github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=max_percent_recv,json=maxPercentRecv,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"max_percent_recv"` + MaxPercentRecv cosmossdk_io_math.Int `protobuf:"bytes,5,opt,name=max_percent_recv,json=maxPercentRecv,proto3,customtype=cosmossdk.io/math.Int" json:"max_percent_recv"` // Duration of rate limit. The rate limit will reset when reach the duration. DurationHours uint64 `protobuf:"varint,6,opt,name=duration_hours,json=durationHours,proto3" json:"duration_hours,omitempty"` // Min amount of rate limit (allow transfer max(min-amout, rate-limit)) - MinRateLimitAmount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=min_rate_limit_amount,json=minRateLimitAmount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"min_rate_limit_amount"` + MinRateLimitAmount cosmossdk_io_math.Int `protobuf:"bytes,7,opt,name=min_rate_limit_amount,json=minRateLimitAmount,proto3,customtype=cosmossdk.io/math.Int" json:"min_rate_limit_amount"` } func (m *MsgAddRateLimit) Reset() { *m = MsgAddRateLimit{} } @@ -148,13 +148,13 @@ var xxx_messageInfo_MsgAddRateLimitResponse proto.InternalMessageInfo type MsgUpdateRateLimit struct { // authority is the address that controls the module (defaults to x/gov unless // overwritten). - Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty" yaml:"authority"` - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - ChannelID string `protobuf:"bytes,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` - MaxPercentSend github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=max_percent_send,json=maxPercentSend,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"max_percent_send"` - MaxPercentRecv github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=max_percent_recv,json=maxPercentRecv,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"max_percent_recv"` - MinRateLimitAmount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,6,opt,name=min_rate_limit_amount,json=minRateLimitAmount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"min_rate_limit_amount"` - DurationHours uint64 `protobuf:"varint,7,opt,name=duration_hours,json=durationHours,proto3" json:"duration_hours,omitempty"` + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty" yaml:"authority"` + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + ChannelID string `protobuf:"bytes,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + MaxPercentSend cosmossdk_io_math.Int `protobuf:"bytes,4,opt,name=max_percent_send,json=maxPercentSend,proto3,customtype=cosmossdk.io/math.Int" json:"max_percent_send"` + MaxPercentRecv cosmossdk_io_math.Int `protobuf:"bytes,5,opt,name=max_percent_recv,json=maxPercentRecv,proto3,customtype=cosmossdk.io/math.Int" json:"max_percent_recv"` + MinRateLimitAmount cosmossdk_io_math.Int `protobuf:"bytes,6,opt,name=min_rate_limit_amount,json=minRateLimitAmount,proto3,customtype=cosmossdk.io/math.Int" json:"min_rate_limit_amount"` + DurationHours uint64 `protobuf:"varint,7,opt,name=duration_hours,json=durationHours,proto3" json:"duration_hours,omitempty"` } func (m *MsgUpdateRateLimit) Reset() { *m = MsgUpdateRateLimit{} } @@ -466,45 +466,44 @@ func init() { } var fileDescriptor_7c4a582edd75a41c = []byte{ - // 594 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x96, 0x4f, 0x6b, 0x13, 0x4f, - 0x18, 0xc7, 0xb3, 0xbf, 0xa4, 0x29, 0x19, 0x68, 0x7e, 0xed, 0x10, 0xcd, 0x76, 0x2d, 0x9b, 0x12, - 0xa8, 0x14, 0xb5, 0xbb, 0xa6, 0x22, 0x4a, 0x6f, 0xa9, 0x1e, 0x0c, 0x18, 0x90, 0x55, 0x41, 0xbc, - 0x2c, 0x93, 0x9d, 0x71, 0xb3, 0x98, 0x99, 0x59, 0x76, 0x26, 0x21, 0x01, 0x4f, 0x05, 0xef, 0x1e, - 0x05, 0x7d, 0x11, 0xbe, 0x8c, 0x1e, 0x7b, 0x53, 0x7a, 0x08, 0x92, 0x1c, 0xbc, 0xfb, 0x0a, 0x64, - 0x77, 0xf3, 0xa7, 0x66, 0x1b, 0x6d, 0xa2, 0xa0, 0x07, 0x4f, 0x93, 0xcc, 0xf3, 0x7d, 0xbe, 0x7c, - 0x87, 0xcf, 0xb3, 0xb3, 0x0b, 0x76, 0x1c, 0x4e, 0x7d, 0x2e, 0x50, 0xa3, 0x45, 0xcc, 0x00, 0x49, - 0xd2, 0xf2, 0xa8, 0x27, 0xcd, 0x4e, 0xa5, 0x41, 0x24, 0xaa, 0x98, 0xb2, 0x6b, 0xf8, 0x01, 0x97, - 0x1c, 0x6e, 0x4d, 0x65, 0xc6, 0x44, 0x66, 0x8c, 0x64, 0x5a, 0xc1, 0xe5, 0x2e, 0x8f, 0x84, 0x66, - 0xf8, 0x2b, 0xee, 0xd1, 0x8a, 0x0e, 0x17, 0x94, 0x0b, 0x93, 0x0a, 0xd7, 0xec, 0x54, 0xc2, 0x25, - 0x2e, 0x94, 0x3f, 0xa6, 0xc1, 0xff, 0x75, 0xe1, 0x56, 0x31, 0xb6, 0x90, 0x24, 0x0f, 0x43, 0x2b, - 0xb8, 0x0f, 0x72, 0xa8, 0x2d, 0x9b, 0x3c, 0xf0, 0x64, 0x4f, 0x55, 0xb6, 0x95, 0xdd, 0xdc, 0x61, - 0xe1, 0x6b, 0xbf, 0xb4, 0xde, 0x43, 0xb4, 0x75, 0x50, 0x9e, 0x94, 0xca, 0xd6, 0x54, 0x06, 0x0b, - 0x60, 0x05, 0x13, 0xc6, 0xa9, 0xfa, 0x5f, 0xa8, 0xb7, 0xe2, 0x3f, 0xf0, 0x06, 0x00, 0x4e, 0x13, - 0x31, 0x46, 0x5a, 0xb6, 0x87, 0xd5, 0x74, 0x64, 0xb5, 0x36, 0xe8, 0x97, 0x72, 0xf7, 0xe2, 0xdd, - 0xda, 0x7d, 0x2b, 0x37, 0x12, 0xd4, 0x30, 0x7c, 0x06, 0xd6, 0x29, 0xea, 0xda, 0x3e, 0x09, 0x1c, - 0xc2, 0xa4, 0x2d, 0x08, 0xc3, 0x6a, 0x26, 0xea, 0x31, 0x8e, 0xfb, 0xa5, 0xd4, 0x69, 0xbf, 0x74, - 0xd5, 0xf5, 0x64, 0xb3, 0xdd, 0x30, 0x1c, 0x4e, 0xcd, 0xd1, 0x89, 0xe2, 0x65, 0x4f, 0xe0, 0x97, - 0xa6, 0xec, 0xf9, 0x44, 0x18, 0x35, 0x26, 0xad, 0x3c, 0x45, 0xdd, 0x47, 0xb1, 0xcd, 0x63, 0xc2, - 0x12, 0xce, 0x01, 0x71, 0x3a, 0xea, 0xca, 0xaf, 0x3a, 0x5b, 0xc4, 0xe9, 0xc0, 0x1d, 0x90, 0xc7, - 0xed, 0x00, 0x49, 0x8f, 0x33, 0xbb, 0xc9, 0xdb, 0x81, 0x50, 0xb3, 0xdb, 0xca, 0x6e, 0xc6, 0x5a, - 0x1b, 0xef, 0x3e, 0x08, 0x37, 0x21, 0x02, 0x97, 0xa8, 0xc7, 0xec, 0x10, 0x97, 0x1d, 0xf1, 0xb2, - 0x11, 0xe5, 0x6d, 0x26, 0xd5, 0xd5, 0xa5, 0x52, 0x40, 0xea, 0xb1, 0x09, 0xaf, 0x6a, 0xe4, 0x74, - 0x90, 0x3f, 0xfa, 0xf2, 0xe1, 0xda, 0x94, 0x48, 0x79, 0x13, 0x14, 0x67, 0xc0, 0x5a, 0x44, 0xf8, - 0x9c, 0x09, 0x52, 0x3e, 0x4d, 0x03, 0x58, 0x17, 0xee, 0x53, 0x1f, 0x23, 0x49, 0xfe, 0x71, 0x5f, - 0x86, 0xfb, 0x5c, 0xa0, 0xd9, 0xdf, 0x05, 0xf4, 0x9c, 0xd1, 0x5a, 0x3d, 0x67, 0xb4, 0x12, 0xdc, - 0xb7, 0x80, 0x96, 0x64, 0x3b, 0x41, 0xff, 0x5e, 0x89, 0xd0, 0x5b, 0x84, 0xf2, 0xce, 0x9f, 0x47, - 0x3f, 0x27, 0xfc, 0x4c, 0xba, 0x49, 0xf8, 0x77, 0x0a, 0xd8, 0x88, 0xca, 0x82, 0xc8, 0xbf, 0x2f, - 0xfb, 0x15, 0xb0, 0x99, 0x08, 0x37, 0x8e, 0xbe, 0xff, 0x36, 0x03, 0xd2, 0x75, 0xe1, 0xc2, 0x57, - 0xa0, 0x50, 0xc5, 0xf8, 0x49, 0x80, 0x98, 0x78, 0x41, 0x82, 0xe9, 0x21, 0xf6, 0x8c, 0x1f, 0xdd, - 0xea, 0xc6, 0xcc, 0x93, 0xac, 0xdd, 0x5e, 0x48, 0x3e, 0x4e, 0x01, 0x5f, 0x2b, 0xa0, 0x18, 0x4f, - 0x46, 0x32, 0xc1, 0xcd, 0x9f, 0x5a, 0xce, 0xcc, 0x94, 0x76, 0x77, 0xd1, 0x8e, 0xef, 0x72, 0xc4, - 0x90, 0x97, 0xc9, 0x31, 0x33, 0x1e, 0x17, 0xc8, 0x31, 0x67, 0xa0, 0xe0, 0x91, 0x02, 0x2e, 0x47, - 0xc0, 0x92, 0x31, 0xcc, 0x0b, 0x98, 0x9e, 0x25, 0xad, 0xdd, 0x59, 0xb0, 0x61, 0x1c, 0xe2, 0xf0, - 0xfa, 0xf1, 0x40, 0x57, 0x4e, 0x06, 0xba, 0xf2, 0x79, 0xa0, 0x2b, 0x6f, 0x86, 0x7a, 0xea, 0x64, - 0xa8, 0xa7, 0x3e, 0x0d, 0xf5, 0xd4, 0xf3, 0x8d, 0xee, 0x99, 0xef, 0x80, 0xe8, 0xb2, 0x68, 0x64, - 0xa3, 0xd7, 0xf6, 0xad, 0x6f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x79, 0x45, 0x81, 0x07, 0x2c, 0x08, - 0x00, 0x00, + // 585 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x95, 0x3f, 0x6f, 0xd3, 0x40, + 0x18, 0xc6, 0x63, 0xd2, 0xa6, 0xca, 0x49, 0x0d, 0xed, 0x29, 0x25, 0xae, 0x29, 0x4e, 0x15, 0xa9, + 0x52, 0xc5, 0x1f, 0x9b, 0x14, 0x21, 0x50, 0xb7, 0x14, 0x24, 0x88, 0x44, 0xa4, 0xca, 0xc0, 0xc2, + 0x62, 0x5d, 0x7c, 0x87, 0x63, 0x91, 0xbb, 0xb3, 0x7c, 0x97, 0x28, 0x91, 0x98, 0x2a, 0xb1, 0x33, + 0x22, 0xc1, 0x88, 0xc4, 0xca, 0xc7, 0xe8, 0xd8, 0x11, 0x31, 0x44, 0x28, 0x19, 0xd8, 0xf9, 0x04, + 0xc8, 0x76, 0x93, 0x14, 0xbb, 0x81, 0xa4, 0x0b, 0x0c, 0x4c, 0xb6, 0xef, 0x9e, 0xf7, 0xf5, 0x73, + 0xf7, 0x7b, 0xec, 0x03, 0x3b, 0x0e, 0xa7, 0x3e, 0x17, 0xa8, 0xd9, 0x26, 0x66, 0x80, 0x24, 0x69, + 0x7b, 0xd4, 0x93, 0x66, 0xb7, 0xda, 0x24, 0x12, 0x55, 0x4d, 0xd9, 0x33, 0xfc, 0x80, 0x4b, 0x0e, + 0xb7, 0xa6, 0x32, 0x63, 0x22, 0x33, 0x4e, 0x65, 0x5a, 0xd1, 0xe5, 0x2e, 0x8f, 0x84, 0x66, 0x78, + 0x17, 0xd7, 0x68, 0x25, 0x87, 0x0b, 0xca, 0x85, 0x49, 0x85, 0x6b, 0x76, 0xab, 0xe1, 0x25, 0x9e, + 0xa8, 0x7c, 0xcc, 0x82, 0xcb, 0x0d, 0xe1, 0xd6, 0x30, 0xb6, 0x90, 0x24, 0x4f, 0xc2, 0x56, 0x70, + 0x0f, 0xe4, 0x51, 0x47, 0xb6, 0x78, 0xe0, 0xc9, 0xbe, 0xaa, 0x6c, 0x2b, 0xbb, 0xf9, 0x83, 0xe2, + 0x8f, 0x41, 0x79, 0xad, 0x8f, 0x68, 0x7b, 0xbf, 0x32, 0x99, 0xaa, 0x58, 0x53, 0x19, 0x2c, 0x82, + 0x65, 0x4c, 0x18, 0xa7, 0xea, 0xa5, 0x50, 0x6f, 0xc5, 0x0f, 0xf0, 0x26, 0x00, 0x4e, 0x0b, 0x31, + 0x46, 0xda, 0xb6, 0x87, 0xd5, 0x6c, 0xd4, 0x6a, 0x75, 0x38, 0x28, 0xe7, 0x1f, 0xc4, 0xa3, 0xf5, + 0x87, 0x56, 0xfe, 0x54, 0x50, 0xc7, 0xf0, 0x11, 0x58, 0xa3, 0xa8, 0x67, 0xfb, 0x24, 0x70, 0x08, + 0x93, 0xb6, 0x20, 0x0c, 0xab, 0x4b, 0x51, 0xcd, 0xb5, 0xe3, 0x41, 0x39, 0xf3, 0x75, 0x50, 0xde, + 0x88, 0x97, 0x21, 0xf0, 0x2b, 0xc3, 0xe3, 0x26, 0x45, 0xb2, 0x65, 0xd4, 0x99, 0xb4, 0x0a, 0x14, + 0xf5, 0x0e, 0xe3, 0xaa, 0xa7, 0x84, 0xa5, 0x1a, 0x05, 0xc4, 0xe9, 0xaa, 0xcb, 0x0b, 0x36, 0xb2, + 0x88, 0xd3, 0x85, 0x3b, 0xa0, 0x80, 0x3b, 0x01, 0x92, 0x1e, 0x67, 0x76, 0x8b, 0x77, 0x02, 0xa1, + 0xe6, 0xb6, 0x95, 0xdd, 0x25, 0x6b, 0x75, 0x3c, 0xfa, 0x38, 0x1c, 0x84, 0x87, 0x60, 0x83, 0x7a, + 0xcc, 0x0e, 0x61, 0xd8, 0x11, 0x0d, 0x1b, 0x51, 0xde, 0x61, 0x52, 0x5d, 0x99, 0xe7, 0xa5, 0x90, + 0x7a, 0x6c, 0xb2, 0xf9, 0xb5, 0xa8, 0x70, 0xbf, 0x70, 0xf4, 0xfd, 0xf3, 0xf5, 0xe9, 0xf6, 0x56, + 0x36, 0x41, 0x29, 0x41, 0xc9, 0x22, 0xc2, 0xe7, 0x4c, 0x90, 0xca, 0xa7, 0x2c, 0x80, 0x0d, 0xe1, + 0x3e, 0xf7, 0x31, 0x92, 0xe4, 0x3f, 0xc4, 0x34, 0xc4, 0x99, 0x74, 0x72, 0x17, 0xa4, 0x73, 0x4e, + 0x2c, 0x56, 0xce, 0x89, 0x45, 0x0a, 0xe2, 0x16, 0xd0, 0xd2, 0xa0, 0x26, 0x1c, 0x3f, 0x28, 0x11, + 0x47, 0x8b, 0x50, 0xde, 0xfd, 0xfb, 0x1c, 0x67, 0x98, 0x4f, 0xb8, 0x9b, 0x98, 0x7f, 0xaf, 0x80, + 0xf5, 0x68, 0x5a, 0x10, 0xf9, 0xef, 0x79, 0xbf, 0x0a, 0x36, 0x53, 0xe6, 0xc6, 0xd6, 0xf7, 0xde, + 0x2d, 0x81, 0x6c, 0x43, 0xb8, 0xf0, 0x35, 0x28, 0xd6, 0x30, 0x7e, 0x16, 0x20, 0x26, 0x5e, 0x92, + 0x60, 0xba, 0x88, 0x5b, 0xc6, 0xef, 0xfe, 0xb7, 0x46, 0xe2, 0xb3, 0xd4, 0xee, 0x2e, 0x24, 0x1f, + 0xbb, 0x80, 0x6f, 0x14, 0x50, 0x8a, 0x93, 0x91, 0x76, 0x70, 0xfb, 0x8f, 0x2d, 0x13, 0x99, 0xd2, + 0xee, 0x2f, 0x5a, 0xf1, 0x8b, 0x8f, 0x18, 0xf2, 0x45, 0x7c, 0x24, 0xe2, 0x31, 0x87, 0x8f, 0x19, + 0x81, 0x82, 0x47, 0x0a, 0xb8, 0x12, 0x01, 0x4b, 0xdb, 0x30, 0xe7, 0x68, 0x7a, 0x96, 0xb4, 0x76, + 0x6f, 0xc1, 0x82, 0xb1, 0x89, 0x83, 0x1b, 0xc7, 0x43, 0x5d, 0x39, 0x19, 0xea, 0xca, 0xb7, 0xa1, + 0xae, 0xbc, 0x1d, 0xe9, 0x99, 0x93, 0x91, 0x9e, 0xf9, 0x32, 0xd2, 0x33, 0x2f, 0xd6, 0x7b, 0x67, + 0x4e, 0x68, 0xd9, 0xf7, 0x89, 0x68, 0xe6, 0xa2, 0x03, 0xf5, 0xce, 0xcf, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x70, 0x20, 0xb8, 0x09, 0xc6, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/stakingmiddleware/keeper/keeper.go b/x/stakingmiddleware/keeper/keeper.go index 4580cb017..f1bbc0da6 100644 --- a/x/stakingmiddleware/keeper/keeper.go +++ b/x/stakingmiddleware/keeper/keeper.go @@ -3,11 +3,11 @@ package keeper import ( "fmt" - "github.com/cometbft/cometbft/libs/log" + "cosmossdk.io/log" "github.com/notional-labs/composable/v6/x/stakingmiddleware/types" + storetypes "cosmossdk.io/store/types" "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" ) diff --git a/x/stakingmiddleware/module.go b/x/stakingmiddleware/module.go index 4c656f6ce..8bdb338ce 100644 --- a/x/stakingmiddleware/module.go +++ b/x/stakingmiddleware/module.go @@ -103,6 +103,12 @@ func (AppModule) Name() string { return types.ModuleName } +// IsAppModule implements module.AppModule. +func (AppModule) IsAppModule() {} + +// IsOnePerModuleType implements module.AppModule. +func (AppModule) IsOnePerModuleType() {} + // RegisterInvariants registers the staking middleware module invariants. func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {} @@ -133,11 +139,6 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw // ConsensusVersion implements AppModule/ConsensusVersion. func (AppModule) ConsensusVersion() uint64 { return 1 } -// BeginBlock returns the begin blocker for the staking middleware module. -func (am AppModule) BeginBlock(ctx sdk.Context, _ abci.RequestBeginBlock) { - // BeginBlocker(ctx, am.keeper) ??? -} - // AppModuleSimulation functions // GenerateGenesisState creates a randomized GenState of the staking middleware module. func (AppModule) GenerateGenesisState(simState *module.SimulationState) {} @@ -148,7 +149,7 @@ func (AppModule) ProposalContents(_ module.SimulationState) []simtypes.WeightedP } // RegisterStoreDecoder registers a decoder for staking middleware module's types. -func (am AppModule) RegisterStoreDecoder(_ sdk.StoreDecoderRegistry) {} +func (am AppModule) RegisterStoreDecoder(registry simtypes.StoreDecoderRegistry) {} // WeightedOperations doesn't return any staking middleware module operation. func (AppModule) WeightedOperations(_ module.SimulationState) []simtypes.WeightedOperation { diff --git a/x/stakingmiddleware/types/codec.go b/x/stakingmiddleware/types/codec.go index c8986807f..5452fd0a2 100644 --- a/x/stakingmiddleware/types/codec.go +++ b/x/stakingmiddleware/types/codec.go @@ -6,9 +6,6 @@ import ( codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" "github.com/cosmos/cosmos-sdk/types/msgservice" - authzcodec "github.com/cosmos/cosmos-sdk/x/authz/codec" - govcodec "github.com/cosmos/cosmos-sdk/x/gov/codec" - groupcodec "github.com/cosmos/cosmos-sdk/x/group/codec" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -39,7 +36,7 @@ func init() { // Register all Amino interfaces and concrete types on the authz and gov Amino codec so that this can later be // used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances - RegisterLegacyAminoCodec(authzcodec.Amino) - RegisterLegacyAminoCodec(govcodec.Amino) - RegisterLegacyAminoCodec(groupcodec.Amino) + // RegisterLegacyAminoCodec(authzcodec.Amino) + // RegisterLegacyAminoCodec(govcodec.Amino) + // RegisterLegacyAminoCodec(groupcodec.Amino) } diff --git a/x/transfermiddleware/ibc_ante_test.go b/x/transfermiddleware/ibc_ante_test.go index 5c6770de0..5eae07b96 100644 --- a/x/transfermiddleware/ibc_ante_test.go +++ b/x/transfermiddleware/ibc_ante_test.go @@ -5,11 +5,12 @@ import ( "os" "testing" + storetypes "cosmossdk.io/store/types" sdk "github.com/cosmos/cosmos-sdk/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - "github.com/cosmos/ibc-go/v7/modules/core/exported" - wasmkeeper "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/keeper" - wasmtypes "github.com/cosmos/ibc-go/v7/modules/light-clients/08-wasm/types" + wasmkeeper "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/keeper" + wasmtypes "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + "github.com/cosmos/ibc-go/v8/modules/core/exported" "github.com/stretchr/testify/suite" customibctesting "github.com/notional-labs/composable/v6/app/ibctesting" @@ -27,7 +28,7 @@ type TransferTestSuite struct { chainB *customibctesting.TestChain ctx sdk.Context - store sdk.KVStore + store storetypes.KVStore testData map[string]string wasmKeeper wasmkeeper.Keeper @@ -35,8 +36,8 @@ type TransferTestSuite struct { func (suite *TransferTestSuite) SetupTest() { suite.coordinator = customibctesting.NewCoordinator(suite.T(), 2) - suite.chainA = suite.coordinator.GetChain(customibctesting.GetChainID(0)) - suite.chainB = suite.coordinator.GetChain(customibctesting.GetChainID(1)) + suite.chainA = suite.coordinator.GetChain(customibctesting.GetChainID(1)) + suite.chainB = suite.coordinator.GetChain(customibctesting.GetChainID(2)) suite.chainB.SetWasm(true) suite.coordinator.CommitNBlocks(suite.chainA, 2) @@ -47,21 +48,21 @@ func (suite *TransferTestSuite) SetupTest() { err = json.Unmarshal(data, &suite.testData) suite.Require().NoError(err) - suite.ctx = suite.chainB.GetContext().WithBlockGasMeter(sdk.NewInfiniteGasMeter()) + suite.ctx = suite.chainB.GetContext().WithBlockGasMeter(storetypes.NewInfiniteGasMeter()) suite.store = suite.chainB.App.GetIBCKeeper().ClientKeeper.ClientStore(suite.ctx, "08-wasm-0") wasmContract, err := os.ReadFile("../../contracts/ics10_grandpa_cw.wasm") suite.Require().NoError(err) - suite.wasmKeeper = suite.chainB.GetTestSupport().Wasm08Keeper() + suite.wasmKeeper = suite.chainB.Wasm08Keeper() - msg := wasmtypes.NewMsgPushNewWasmCode(govAuthorityAddress, wasmContract) + msg := wasmtypes.NewMsgStoreCode(govAuthorityAddress, wasmContract) - response, err := suite.wasmKeeper.PushNewWasmCode(suite.ctx, msg) + response, err := suite.wasmKeeper.StoreCode(suite.ctx, msg) suite.Require().NoError(err) - suite.Require().NotNil(response.CodeId) - suite.coordinator.CodeID = response.CodeId + suite.Require().NotNil(response.Checksum) + suite.coordinator.CodeID = response.Checksum } func TestTransferTestSuite(t *testing.T) { @@ -98,7 +99,7 @@ func (suite *TransferTestSuite) TestIbcAnteWithTenderMintUpdateClient() { // ensure counterparty has committed state suite.chainA.Coordinator.CommitBlock(suite.chainA) - header := suite.chainA.CurrentTMClientHeader() + header, _ := suite.chainA.ConstructUpdateTMClientHeader(path.EndpointA.Chain, path.EndpointB.ClientID) msg, err := clienttypes.NewMsgUpdateClient( path.EndpointB.ClientID, header, diff --git a/x/transfermiddleware/ibc_middleware.go b/x/transfermiddleware/ibc_middleware.go index 875bfbc5c..ebfddf100 100644 --- a/x/transfermiddleware/ibc_middleware.go +++ b/x/transfermiddleware/ibc_middleware.go @@ -4,12 +4,12 @@ import ( "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" - ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" + ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" "github.com/notional-labs/composable/v6/x/transfermiddleware/keeper" ) diff --git a/x/transfermiddleware/keeper/genesis.go b/x/transfermiddleware/keeper/genesis.go index 6a4615b7e..677ecc496 100644 --- a/x/transfermiddleware/keeper/genesis.go +++ b/x/transfermiddleware/keeper/genesis.go @@ -1,6 +1,7 @@ package keeper import ( + storetypes "cosmossdk.io/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/notional-labs/composable/v6/x/transfermiddleware/types" @@ -19,7 +20,7 @@ func (k Keeper) InitGenesis(ctx sdk.Context, genState types.GenesisState) { func (k Keeper) IterateParaTokenInfos(ctx sdk.Context, fn func(index int64, info types.ParachainIBCTokenInfo) (stop bool)) { store := ctx.KVStore(k.storeKey) - iterator := sdk.KVStorePrefixIterator(store, types.KeyParachainIBCTokenInfoByAssetID) + iterator := storetypes.KVStorePrefixIterator(store, types.KeyParachainIBCTokenInfoByAssetID) defer iterator.Close() i := int64(0) diff --git a/x/transfermiddleware/keeper/grpc_query.go b/x/transfermiddleware/keeper/grpc_query.go index dbf461a9b..d1269603e 100644 --- a/x/transfermiddleware/keeper/grpc_query.go +++ b/x/transfermiddleware/keeper/grpc_query.go @@ -3,10 +3,10 @@ package keeper import ( "context" - "github.com/cosmos/cosmos-sdk/store/prefix" + "cosmossdk.io/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" sdkquery "github.com/cosmos/cosmos-sdk/types/query" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" "github.com/notional-labs/composable/v6/x/transfermiddleware/types" ) diff --git a/x/transfermiddleware/keeper/ics4wrapper.go b/x/transfermiddleware/keeper/ics4wrapper.go index 14dd2e898..6487b8841 100644 --- a/x/transfermiddleware/keeper/ics4wrapper.go +++ b/x/transfermiddleware/keeper/ics4wrapper.go @@ -4,13 +4,14 @@ import ( "fmt" "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" - ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" "github.com/notional-labs/composable/v6/x/transfermiddleware/types" ) @@ -43,7 +44,7 @@ func (keeper Keeper) handleOverrideSendPacketTransferLogic( parachainInfo := keeper.GetParachainIBCTokenInfoByNativeDenom(ctx, fungibleTokenPacketData.Denom) // burn native token in escrow address - transferAmount, ok := sdk.NewIntFromString(fungibleTokenPacketData.Amount) + transferAmount, ok := sdkmath.NewIntFromString(fungibleTokenPacketData.Amount) // TODO: remove this panic and replace by err hanlde if !ok { @@ -59,7 +60,10 @@ func (keeper Keeper) handleOverrideSendPacketTransferLogic( } // burn native token // Get Coin from excrow address - keeper.bankKeeper.BurnCoins(ctx, transfertypes.ModuleName, sdk.NewCoins(nativeTransferToken)) + err = keeper.bankKeeper.BurnCoins(ctx, transfertypes.ModuleName, sdk.NewCoins(nativeTransferToken)) + if err != nil { + panic(err) + } // release lock IBC token and send it to sender // TODO: should we use a module address for this ? @@ -164,7 +168,7 @@ func (keeper Keeper) refundToken(ctx sdk.Context, packet channeltypes.Packet, da // parse the denomination from the full denom path trace := transfertypes.ParseDenomTrace(data.Denom) // parse the transfer amount - transferAmount, ok := sdk.NewIntFromString(data.Amount) + transferAmount, ok := sdkmath.NewIntFromString(data.Amount) if !ok { return errors.Wrapf(transfertypes.ErrInvalidAmount, "unable to parse transfer amount (%s) into math.Int", data.Amount) } diff --git a/x/transfermiddleware/keeper/keeper.go b/x/transfermiddleware/keeper/keeper.go index 005b593ea..fd369e8f7 100644 --- a/x/transfermiddleware/keeper/keeper.go +++ b/x/transfermiddleware/keeper/keeper.go @@ -4,16 +4,16 @@ import ( "time" errorsmod "cosmossdk.io/errors" - "github.com/cometbft/cometbft/libs/log" + "cosmossdk.io/log" + "cosmossdk.io/store/prefix" + storetypes "cosmossdk.io/store/types" "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/store/prefix" - storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" - "github.com/cosmos/ibc-go/v7/modules/core/exported" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" + "github.com/cosmos/ibc-go/v8/modules/core/exported" ibctransfermiddleware "github.com/notional-labs/composable/v6/x/ibctransfermiddleware/keeper" "github.com/notional-labs/composable/v6/x/transfermiddleware/types" @@ -121,7 +121,7 @@ func (keeper Keeper) AddParachainIBCInfoToRemoveList(ctx sdk.Context, nativeDeno // IterateRemoveListInfo iterate all parachain token in remove list. func (keeper Keeper) IterateRemoveListInfo(ctx sdk.Context, cb func(removeInfo types.RemoveParachainIBCTokenInfo) (stop bool)) { store := ctx.KVStore(keeper.storeKey) - iterator := sdk.KVStorePrefixIterator(store, types.KeyParachainIBCTokenRemoveListByNativeDenom) + iterator := storetypes.KVStorePrefixIterator(store, types.KeyParachainIBCTokenRemoveListByNativeDenom) defer iterator.Close() for ; iterator.Valid(); iterator.Next() { @@ -173,7 +173,7 @@ func (keeper Keeper) HasAllowRlyAddress(ctx sdk.Context, rlyAddress string) bool func (keeper Keeper) IterateAllowRlyAddress(ctx sdk.Context, cb func(rlyAddress string) (stop bool)) { store := ctx.KVStore(keeper.storeKey) prefixStore := prefix.NewStore(store, types.KeyRlyAddress) - iterator := sdk.KVStorePrefixIterator(prefixStore, nil) + iterator := storetypes.KVStorePrefixIterator(prefixStore, nil) defer iterator.Close() for ; iterator.Valid(); iterator.Next() { diff --git a/x/transfermiddleware/keeper/relay.go b/x/transfermiddleware/keeper/relay.go index 35cf2ed90..7143c34e9 100644 --- a/x/transfermiddleware/keeper/relay.go +++ b/x/transfermiddleware/keeper/relay.go @@ -2,9 +2,10 @@ package keeper import ( errorsmod "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" "github.com/notional-labs/composable/v6/x/transfermiddleware/types" ) @@ -17,7 +18,7 @@ func (k Keeper) OnRecvPacket(ctx sdk.Context, packet channeltypes.Packet, data t } // parse the transfer amount - transferAmount, ok := sdk.NewIntFromString(data.Amount) + transferAmount, ok := sdkmath.NewIntFromString(data.Amount) if !ok { return errorsmod.Wrapf(transfertypes.ErrInvalidAmount, "unable to parse transfer amount: %s", data.Amount) } diff --git a/x/transfermiddleware/module.go b/x/transfermiddleware/module.go index 1f64a2b79..f02a7926b 100644 --- a/x/transfermiddleware/module.go +++ b/x/transfermiddleware/module.go @@ -75,6 +75,12 @@ type AppModule struct { keeper *keeper.Keeper } +// IsAppModule implements module.AppModule. +func (AppModule) IsAppModule() {} + +// IsOnePerModuleType implements module.AppModule. +func (AppModule) IsOnePerModuleType() {} + // NewAppModule creates a new router module func NewAppModule(k *keeper.Keeper) AppModule { return AppModule{ @@ -123,28 +129,18 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw // ConsensusVersion implements AppModule/ConsensusVersion. func (AppModule) ConsensusVersion() uint64 { return 1 } -// BeginBlock implements the AppModule interface -func (am AppModule) BeginBlock(ctx sdk.Context, _ abci.RequestBeginBlock) { - am.keeper.BeginBlocker(ctx) -} - -// EndBlock implements the AppModule interface -func (am AppModule) EndBlock(_ sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate { - return []abci.ValidatorUpdate{} -} - // AppModuleSimulation functions // GenerateGenesisState creates a randomized GenState of the router module. func (AppModule) GenerateGenesisState(_ *module.SimulationState) {} // ProposalContents doesn't return any content functions for governance proposals. -func (AppModule) ProposalContents(_ module.SimulationState) []simtypes.WeightedProposalContent { //nolint:staticcheck // WeightedProposalContent is necessary to satisfy the module interface +func (AppModule) ProposalContents(_ module.SimulationState) []simtypes.WeightedProposalContent { return nil } // RegisterStoreDecoder registers a decoder for router module's types -func (am AppModule) RegisterStoreDecoder(_ sdk.StoreDecoderRegistry) {} +func (am AppModule) RegisterStoreDecoder(registry simtypes.StoreDecoderRegistry) {} // WeightedOperations returns the all the router module operations with their respective weights. func (am AppModule) WeightedOperations(_ module.SimulationState) []simtypes.WeightedOperation { diff --git a/x/transfermiddleware/pfm_test.go b/x/transfermiddleware/pfm_test.go index ce9eb675d..e28d476c9 100644 --- a/x/transfermiddleware/pfm_test.go +++ b/x/transfermiddleware/pfm_test.go @@ -6,14 +6,14 @@ import ( "testing" "time" + sdkmath "cosmossdk.io/math" "github.com/cometbft/cometbft/crypto" "github.com/cometbft/cometbft/crypto/ed25519" sdk "github.com/cosmos/cosmos-sdk/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - "github.com/stretchr/testify/suite" - + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" customibctesting "github.com/notional-labs/composable/v6/app/ibctesting" + "github.com/stretchr/testify/suite" ) type PacketMetadata struct { @@ -89,7 +89,7 @@ func RandomBech32AccountAddress(tb testing.TB) string { func (suite *TransferMiddlewareTestSuite) TestTransferWithPFM_ErrorAck() { var ( - transferAmount = sdk.NewInt(1000000000) + transferAmount = sdkmath.NewInt(1000000000) timeoutHeight = clienttypes.NewHeight(1, 110) pathAtoB *customibctesting.Path pathBtoC *customibctesting.Path @@ -115,13 +115,13 @@ func (suite *TransferMiddlewareTestSuite) TestTransferWithPFM_ErrorAck() { } // set send params - suite.chainC.GetTestSupport().TransferKeeper().SetParams(suite.chainC.GetContext(), params) + suite.chainC.App.GetTransferKeeper().SetParams(suite.chainC.GetContext(), params) senderAOriginalBalance := suite.chainA.AllBalances(suite.chainA.SenderAccount.GetAddress()) testAcc := RandomAccountAddress(suite.T()) timeOut := 10 * time.Minute retries := uint8(0) - // Build MEMOtransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + // Build MEMOtransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" memo := PacketMetadata{ Forward: &ForwardMetadata{ Receiver: testAcc.String(), @@ -234,7 +234,7 @@ func (suite *TransferMiddlewareTestSuite) TestTransferWithPFM_ErrorAck() { func (suite *TransferMiddlewareTestSuite) TestTransferWithPFM() { var ( - transferAmount = sdk.NewInt(1000000000) + transferAmount = sdkmath.NewInt(1000000000) // when transfer via sdk transfer from A (module) -> B (contract) timeoutHeight = clienttypes.NewHeight(1, 110) pathAtoB *customibctesting.Path @@ -388,7 +388,7 @@ func (suite *TransferMiddlewareTestSuite) TestTransferWithPFM() { func (suite *TransferMiddlewareTestSuite) TestTransferWithPFMReverse_ErrorAck() { var ( - transferAmount = sdk.NewInt(1000000000) + transferAmount = sdkmath.NewInt(1000000000) // when transfer via sdk transfer from A (module) -> B (contract) timeoutHeight = clienttypes.NewHeight(1, 110) pathAtoB *customibctesting.Path @@ -430,7 +430,7 @@ func (suite *TransferMiddlewareTestSuite) TestTransferWithPFMReverse_ErrorAck() ReceiveEnabled: false, } // set send params - suite.chainA.GetTestSupport().TransferKeeper().SetParams(suite.chainA.GetContext(), params) + suite.chainA.App.GetTransferKeeper().SetParams(suite.chainA.GetContext(), params) timeOut := 10 * time.Minute retries := uint8(0) @@ -660,7 +660,7 @@ func (suite *TransferMiddlewareTestSuite) TestTransferWithPFMReverse_ErrorAck() func (suite *TransferMiddlewareTestSuite) TestTransferWithPFMReverse() { var ( - transferAmount = sdk.NewInt(1000000000) + transferAmount = sdkmath.NewInt(1000000000) // when transfer via sdk transfer from A (module) -> B (contract) timeoutHeight = clienttypes.NewHeight(1, 110) pathAtoB *customibctesting.Path diff --git a/x/transfermiddleware/relay_test.go b/x/transfermiddleware/relay_test.go index 6bf804ad9..60ae6fec4 100644 --- a/x/transfermiddleware/relay_test.go +++ b/x/transfermiddleware/relay_test.go @@ -5,9 +5,10 @@ import ( "testing" "time" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" "github.com/stretchr/testify/suite" customibctesting "github.com/notional-labs/composable/v6/app/ibctesting" @@ -16,7 +17,7 @@ import ( // TODO: use testsuite here. func (suite *TransferMiddlewareTestSuite) TestOnrecvPacket() { var ( - transferAmount = sdk.NewInt(1000000000) + transferAmount = sdkmath.NewInt(1000000000) // when transfer via sdk transfer from A (module) -> B (contract) coinToSendToB = sdk.NewCoin(sdk.DefaultBondDenom, transferAmount) timeoutHeight = clienttypes.NewHeight(1, 110) @@ -97,7 +98,7 @@ func (suite *TransferMiddlewareTestSuite) TestOnrecvPacket() { // TODO: use testsuite here. func (suite *TransferMiddlewareTestSuite) TestSendPacket() { var ( - transferAmount = sdk.NewInt(1000000000) + transferAmount = sdkmath.NewInt(1000000000) // when transfer via sdk transfer from A (module) -> B (contract) nativeTokenSendOnChainA = sdk.NewCoin(sdk.DefaultBondDenom, transferAmount) nativeTokenReceiveOnChainB = sdk.NewCoin("ppica", transferAmount) @@ -180,7 +181,7 @@ func (suite *TransferMiddlewareTestSuite) TestSendPacket() { // TODO: use testsuite here. func (suite *TransferMiddlewareTestSuite) TestTimeOutPacket() { var ( - transferAmount = sdk.NewInt(1000000000) + transferAmount = sdkmath.NewInt(1000000000) // when transfer via sdk transfer from A (module) -> B (contract) nativeToken = sdk.NewCoin(sdk.DefaultBondDenom, transferAmount) timeoutHeight = clienttypes.NewHeight(1, 110) @@ -262,8 +263,8 @@ func (suite *TransferMiddlewareTestSuite) TestMintAndEscrowProcessWhenLaunchChai timeoutHeight = clienttypes.NewHeight(1, 110) path *customibctesting.Path expDenom = "ibc/C053D637CCA2A2BA030E2C5EE1B28A16F71CCB0E45E8BE52766DC1B241B77878" - transferAmountFromChainBToChainA = sdk.NewInt(100000000000000) - transferAmountFromChainAToChainB = sdk.NewInt(1000000000000) + transferAmountFromChainBToChainA = sdkmath.NewInt(100000000000000) + transferAmountFromChainAToChainB = sdkmath.NewInt(1000000000000) // pathBtoC = NewTransferPath(suite.chainB, suite.chainC) ) diff --git a/x/transfermiddleware/types/codec.go b/x/transfermiddleware/types/codec.go index 523049256..f0ac97cd2 100644 --- a/x/transfermiddleware/types/codec.go +++ b/x/transfermiddleware/types/codec.go @@ -6,9 +6,9 @@ import ( codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" "github.com/cosmos/cosmos-sdk/types/msgservice" - authzcodec "github.com/cosmos/cosmos-sdk/x/authz/codec" - govcodec "github.com/cosmos/cosmos-sdk/x/gov/codec" - groupcodec "github.com/cosmos/cosmos-sdk/x/group/codec" + + // govcodec "github.com/cosmos/cosmos-sdk/x/gov/codec" + // groupcodec "github.com/cosmos/cosmos-sdk/x/group/codec" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -43,7 +43,7 @@ func init() { // Register all Amino interfaces and concrete types on the authz and gov Amino codec so that this can later be // used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances - RegisterLegacyAminoCodec(authzcodec.Amino) - RegisterLegacyAminoCodec(govcodec.Amino) - RegisterLegacyAminoCodec(groupcodec.Amino) + // RegisterLegacyAminoCodec(authzcodec.Amino) + // RegisterLegacyAminoCodec(govcodec.Amino) + // RegisterLegacyAminoCodec(groupcodec.Amino) } diff --git a/x/transfermiddleware/types/excepted_keepers.go b/x/transfermiddleware/types/excepted_keepers.go index 098de2df4..968e93a34 100644 --- a/x/transfermiddleware/types/excepted_keepers.go +++ b/x/transfermiddleware/types/excepted_keepers.go @@ -5,21 +5,20 @@ import ( tmbytes "github.com/cometbft/cometbft/libs/bytes" sdk "github.com/cosmos/cosmos-sdk/types" - transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" ) type BankKeeper interface { - MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error - BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - SendCoins(ctx sdk.Context, fromAddr, toAddr sdk.AccAddress, amt sdk.Coins) error + MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error + BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error + SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + SendCoins(ctx context.Context, fromAddr, toAddr sdk.AccAddress, amt sdk.Coins) error BlockedAddr(addr sdk.AccAddress) bool - GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin + GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin } type TransferKeeper interface { - GetReceiveEnabled(ctx sdk.Context) bool Transfer(goCtx context.Context, msg *transfertypes.MsgTransfer) (*transfertypes.MsgTransferResponse, error) HasDenomTrace(ctx sdk.Context, denomTraceHash tmbytes.HexBytes) bool SetDenomTrace(ctx sdk.Context, denomTrace transfertypes.DenomTrace) diff --git a/x/transfermiddleware/types/msg.go b/x/transfermiddleware/types/msg.go index 9ad3ee9a5..f4a7ee3d1 100644 --- a/x/transfermiddleware/types/msg.go +++ b/x/transfermiddleware/types/msg.go @@ -3,8 +3,8 @@ package types import ( sdkerrors "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - host "github.com/cosmos/ibc-go/v7/modules/core/24-host" + ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + host "github.com/cosmos/ibc-go/v8/modules/core/24-host" ) var _ sdk.Msg = &MsgAddParachainIBCTokenInfo{} diff --git a/x/tx-boundary/ante/antetest/ante_test.go b/x/tx-boundary/ante/antetest/ante_test.go index 3388f0b18..76c3ab85f 100644 --- a/x/tx-boundary/ante/antetest/ante_test.go +++ b/x/tx-boundary/ante/antetest/ante_test.go @@ -3,6 +3,8 @@ package antetest import ( "testing" + sdkmath "cosmossdk.io/math" + cdctypes "github.com/cosmos/cosmos-sdk/codec/types" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" "github.com/cosmos/cosmos-sdk/testutil/testdata" @@ -21,7 +23,7 @@ func TestAnteTestSuite(t *testing.T) { func (s *AnteTestSuite) TestStakingAnteBasic() { _, _, addr1 := testdata.KeyTestPubAddr() - delegateMsg := stakingtypes.NewMsgDelegate(s.delegator, s.validators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10000000))) + delegateMsg := stakingtypes.NewMsgDelegate(s.delegator.String(), s.validators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10000000))) msgDelegateAny, err := cdctypes.NewAnyWithValue(delegateMsg) require.NoError(s.T(), err) @@ -36,7 +38,7 @@ func (s *AnteTestSuite) TestStakingAnteBasic() { }{ { desc: "Case delegate success", - txMsg: stakingtypes.NewMsgDelegate(s.delegator, s.validators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10000000))), + txMsg: stakingtypes.NewMsgDelegate(s.delegator.String(), s.validators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10000000))), malleate: func() error { return nil }, @@ -44,7 +46,7 @@ func (s *AnteTestSuite) TestStakingAnteBasic() { }, { desc: "Case redelegate success", - txMsg: stakingtypes.NewMsgBeginRedelegate(s.delegator, s.validators[0].GetOperator(), s.newvalidators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10000000))), + txMsg: stakingtypes.NewMsgBeginRedelegate(s.delegator.String(), s.validators[0].GetOperator(), s.newvalidators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10000000))), malleate: func() error { return nil }, @@ -60,7 +62,7 @@ func (s *AnteTestSuite) TestStakingAnteBasic() { }, { desc: "Case delegate failed", - txMsg: stakingtypes.NewMsgDelegate(s.delegator, s.validators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10000000))), + txMsg: stakingtypes.NewMsgDelegate(s.delegator.String(), s.validators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10000000))), malleate: func() error { s.app.TxBoundaryKeepper.SetLimitPerAddr(s.ctx, addr2, types.LimitPerAddr{ DelegateCount: 5, @@ -73,7 +75,7 @@ func (s *AnteTestSuite) TestStakingAnteBasic() { }, { desc: "Case redelegate failed", - txMsg: stakingtypes.NewMsgBeginRedelegate(s.delegator, s.validators[0].GetOperator(), s.newvalidators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10000000))), + txMsg: stakingtypes.NewMsgBeginRedelegate(s.delegator.String(), s.validators[0].GetOperator(), s.newvalidators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10000000))), malleate: func() error { s.app.TxBoundaryKeepper.SetLimitPerAddr(s.ctx, addr2, types.LimitPerAddr{ DelegateCount: 5, @@ -122,7 +124,7 @@ func (s *AnteTestSuite) TestStakingAnteBasic() { func (s *AnteTestSuite) TestStakingAnteUpdateLimit() { _, _, addr1 := testdata.KeyTestPubAddr() - delegateMsg := stakingtypes.NewMsgDelegate(s.delegator, s.validators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10000000))) + delegateMsg := stakingtypes.NewMsgDelegate(s.delegator.String(), s.validators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10000000))) msgDelegateAny, err := cdctypes.NewAnyWithValue(delegateMsg) require.NoError(s.T(), err) @@ -139,7 +141,7 @@ func (s *AnteTestSuite) TestStakingAnteUpdateLimit() { }{ { desc: "Case delegate success update limit", - txMsg: stakingtypes.NewMsgDelegate(s.delegator, s.validators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10000000))), + txMsg: stakingtypes.NewMsgDelegate(s.delegator.String(), s.validators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10000000))), malleate: func() error { s.app.TxBoundaryKeepper.SetLimitPerAddr(s.ctx, addr2, types.LimitPerAddr{ DelegateCount: 5, @@ -153,7 +155,7 @@ func (s *AnteTestSuite) TestStakingAnteUpdateLimit() { }, { desc: "Case redelegate success update limit", - txMsg: stakingtypes.NewMsgBeginRedelegate(s.delegator, s.validators[0].GetOperator(), s.newvalidators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10000000))), + txMsg: stakingtypes.NewMsgBeginRedelegate(s.delegator.String(), s.validators[0].GetOperator(), s.newvalidators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10000000))), malleate: func() error { s.app.TxBoundaryKeepper.SetLimitPerAddr(s.ctx, addr2, types.LimitPerAddr{ DelegateCount: 5, @@ -181,7 +183,7 @@ func (s *AnteTestSuite) TestStakingAnteUpdateLimit() { }, { desc: "Case delegate fail update limit", - txMsg: stakingtypes.NewMsgDelegate(s.delegator, s.validators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10000000))), + txMsg: stakingtypes.NewMsgDelegate(s.delegator.String(), s.validators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10000000))), malleate: func() error { s.app.TxBoundaryKeepper.SetLimitPerAddr(s.ctx, addr2, types.LimitPerAddr{ DelegateCount: 5, @@ -195,7 +197,7 @@ func (s *AnteTestSuite) TestStakingAnteUpdateLimit() { }, { desc: "Case redelegate fail update limit", - txMsg: stakingtypes.NewMsgBeginRedelegate(s.delegator, s.validators[0].GetOperator(), s.newvalidators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10000000))), + txMsg: stakingtypes.NewMsgBeginRedelegate(s.delegator.String(), s.validators[0].GetOperator(), s.newvalidators[0].GetOperator(), sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10000000))), malleate: func() error { s.app.TxBoundaryKeepper.SetLimitPerAddr(s.ctx, addr2, types.LimitPerAddr{ DelegateCount: 5, diff --git a/x/tx-boundary/ante/antetest/ante_test_setup.go b/x/tx-boundary/ante/antetest/ante_test_setup.go index f66a64acf..21962bdae 100644 --- a/x/tx-boundary/ante/antetest/ante_test_setup.go +++ b/x/tx-boundary/ante/antetest/ante_test_setup.go @@ -1,10 +1,12 @@ package antetest import ( + "context" "time" - "cosmossdk.io/math" tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + + "cosmossdk.io/math" tmtypes "github.com/cometbft/cometbft/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/tx" @@ -16,14 +18,14 @@ import ( "github.com/cosmos/cosmos-sdk/types/tx/signing" xauthsigning "github.com/cosmos/cosmos-sdk/x/auth/signing" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/cosmos/ibc-go/v7/testing/mock" + "github.com/cosmos/ibc-go/v8/testing/mock" "github.com/notional-labs/composable/v6/app" "github.com/notional-labs/composable/v6/app/helpers" "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" ) -var BaseBalance = sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10000000000))) +var BaseBalance = sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(10000000000))) type AnteTestSuite struct { suite.Suite @@ -40,7 +42,7 @@ type AnteTestSuite struct { func (suite *AnteTestSuite) SetupTest() { suite.app, suite.delegator, suite.validators = helpers.SetupComposableAppWithValSetWithGenAccout(suite.T()) - suite.ctx = suite.app.BaseApp.NewContext(false, tmproto.Header{Height: 1, ChainID: "centauri-1", Time: time.Now().UTC()}) + suite.ctx = suite.app.BaseApp.NewContextLegacy(false, tmproto.Header{Height: 1, ChainID: "centauri-1", Time: time.Now().UTC()}) app.FundAccount(suite.app.BankKeeper, suite.ctx, suite.delegator, BaseBalance) encodingConfig := app.MakeEncodingConfig() @@ -56,7 +58,9 @@ func (suite *AnteTestSuite) SetupTest() { validators := make([]stakingtypes.Validator, 0, len(valSet.Validators)) for _, val := range valSet.Validators { + // lint:ignore SA1019 reason for ignoring pk, _ := cryptocodec.FromTmPubKeyInterface(val.PubKey) + pkAny, _ := codectypes.NewAnyWithValue(pk) validator := stakingtypes.Validator{ OperatorAddress: sdk.ValAddress(val.Address).String(), @@ -84,7 +88,7 @@ func (s *AnteTestSuite) CreateTestTx(privs []cryptotypes.PrivKey, accNums, accSe sigV2 := signing.SignatureV2{ PubKey: priv.PubKey(), Data: &signing.SingleSignatureData{ - SignMode: s.clientCtx.TxConfig.SignModeHandler().DefaultMode(), + SignMode: signing.SignMode(s.clientCtx.TxConfig.SignModeHandler().DefaultMode().Number()), Signature: nil, }, Sequence: accSeqs[i], @@ -105,7 +109,8 @@ func (s *AnteTestSuite) CreateTestTx(privs []cryptotypes.PrivKey, accNums, accSe Sequence: accSeqs[i], } sigV2, err := tx.SignWithPrivKey( - s.clientCtx.TxConfig.SignModeHandler().DefaultMode(), + context.Background(), + signing.SignMode(s.clientCtx.TxConfig.SignModeHandler().DefaultMode().Number()), signerData, s.txBuilder, priv, diff --git a/x/tx-boundary/keeper/keeper.go b/x/tx-boundary/keeper/keeper.go index 145c62807..cda0cfef4 100644 --- a/x/tx-boundary/keeper/keeper.go +++ b/x/tx-boundary/keeper/keeper.go @@ -3,10 +3,10 @@ package keeper import ( "fmt" - "github.com/cometbft/cometbft/libs/log" + "cosmossdk.io/log" + storetypes "cosmossdk.io/store/types" "github.com/cosmos/cosmos-sdk/codec" - storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/notional-labs/composable/v6/x/tx-boundary/types" diff --git a/x/tx-boundary/keeper/keeper_test.go b/x/tx-boundary/keeper/keeper_test.go index 660ee6303..8bfa5f16c 100644 --- a/x/tx-boundary/keeper/keeper_test.go +++ b/x/tx-boundary/keeper/keeper_test.go @@ -2,9 +2,7 @@ package keeper_test import ( "testing" - "time" - tmproto "github.com/cometbft/cometbft/proto/tendermint/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/suite" @@ -23,7 +21,7 @@ type KeeperTestSuite struct { func (suite *KeeperTestSuite) SetupTest() { suite.app = helpers.SetupComposableAppWithValSet(suite.T()) - suite.ctx = suite.app.BaseApp.NewContext(false, tmproto.Header{Height: 1, ChainID: "centauri-1", Time: time.Now().UTC()}) + suite.ctx = suite.app.BaseApp.NewContext(false) } func TestKeeperTestSuite(t *testing.T) { diff --git a/x/tx-boundary/module.go b/x/tx-boundary/module.go index 1229f262c..eb0d1c848 100644 --- a/x/tx-boundary/module.go +++ b/x/tx-boundary/module.go @@ -105,6 +105,12 @@ func (AppModule) Name() string { return types.ModuleName } +// IsAppModule implements module.AppModule. +func (AppModule) IsAppModule() {} + +// IsOnePerModuleType implements module.AppModule. +func (AppModule) IsOnePerModuleType() {} + // RegisterInvariants registers the tx-boundary module invariants. func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {} @@ -135,9 +141,6 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw // ConsensusVersion implements AppModule/ConsensusVersion. func (AppModule) ConsensusVersion() uint64 { return 1 } -// BeginBlock returns the begin blocker for the tx-boundary module. -func (am AppModule) BeginBlock(_ sdk.Context, _ abci.RequestBeginBlock) {} - // ProposalContents doesn't return any content functions for governance proposals. func (AppModule) ProposalContents(_ module.SimulationState) []simtypes.WeightedProposalMsg { return nil diff --git a/x/tx-boundary/types/codec.go b/x/tx-boundary/types/codec.go index b2822d85b..0816733a9 100644 --- a/x/tx-boundary/types/codec.go +++ b/x/tx-boundary/types/codec.go @@ -4,12 +4,11 @@ import ( "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/types" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" - authzcodec "github.com/cosmos/cosmos-sdk/x/authz/codec" - govcodec "github.com/cosmos/cosmos-sdk/x/gov/codec" ) var ( - amino = codec.NewLegacyAmino() + amino = codec.NewLegacyAmino() + //lint:ignore SA1019 reason for ignoring ModuleCdc = codec.NewAminoCodec(amino) ) @@ -17,8 +16,6 @@ func init() { RegisterLegacyAminoCodec(amino) cryptocodec.RegisterCrypto(amino) - RegisterLegacyAminoCodec(authzcodec.Amino) - RegisterLegacyAminoCodec(govcodec.Amino) amino.Seal() }