diff --git a/.cjsswcrc b/.cjsswcrc new file mode 100644 index 00000000..9251d7a2 --- /dev/null +++ b/.cjsswcrc @@ -0,0 +1,13 @@ +{ + "$schema": "https://json.schemastore.org/swcrc", + "exclude": [".*\\.test.ts$"], + "jsc": { + "parser": { + "syntax": "typescript" + }, + "target": "es2021" + }, + "module": { + "type": "commonjs" + } +} diff --git a/.devcontainer.json b/.devcontainer.json new file mode 100644 index 00000000..7313a52e --- /dev/null +++ b/.devcontainer.json @@ -0,0 +1,3 @@ +{ + "postCreateCommand": "git submodule update --init" +} diff --git a/.eslintignore b/.eslintignore index 7701c9c5..dc53f507 100644 --- a/.eslintignore +++ b/.eslintignore @@ -6,3 +6,6 @@ lib/ dist/ packages/core/scripts/ chopsticks.js +packages/core/src/wasm-executor/browser-wasm-executor.js +packages/core/src/wasm-executor/node-wasm-executor.js +packages/web-test/playwright-report diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 00000000..bdd86dc6 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,33 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "plugins": ["@typescript-eslint", "import", "sort-imports-es6-autofix"], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "prettier", + "plugin:import/recommended", + "plugin:import/typescript" + ], + "rules": { + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/explicit-module-boundary-types": "off", + "sort-imports-es6-autofix/sort-imports-es6": "error", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-unused-vars": [ + "warn", + { + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "caughtErrorsIgnorePattern": "^_" + } + ] + }, + "settings": { + "import/resolver": { + "typescript": { + "project": "tsconfig.json" + } + } + } +} diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 4015ae85..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,33 +0,0 @@ -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint', 'import', 'sort-imports-es6-autofix'], - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'prettier', - 'plugin:import/recommended', - 'plugin:import/typescript', - ], - rules: { - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - 'sort-imports-es6-autofix/sort-imports-es6': 'error', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-unused-vars': [ - 'warn', - { - argsIgnorePattern: '^_', - varsIgnorePattern: '^_', - caughtErrorsIgnorePattern: '^_', - }, - ], - }, - settings: { - 'import/resolver': { - typescript: { - project: 'tsconfig.json', - }, - }, - }, -} diff --git a/.esmswcrc b/.esmswcrc new file mode 100644 index 00000000..121f0ca2 --- /dev/null +++ b/.esmswcrc @@ -0,0 +1,13 @@ +{ + "$schema": "https://json.schemastore.org/swcrc", + "exclude": [".*\\.test.ts$"], + "jsc": { + "parser": { + "syntax": "typescript" + }, + "target": "esnext" + }, + "module": { + "type": "es6" + } +} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..8bd1fecf --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,65 @@ +name: Deploy + +on: + push: + branches: [ master ] + +# Grant GITHUB_TOKEN the permissions required to make a Pages deployment +permissions: + contents: read + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + +jobs: + setup: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + - uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + executor/target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + - name: Install toolchain + uses: dtolnay/rust-toolchain@nightly + with: + toolchain: nightly-2022-10-30 + components: rustfmt + target: wasm32-unknown-unknown + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: 18.x + cache: 'yarn' + - name: Build packages + run: | + yarn --immutable + yarn check + yarn build:web-test + - name: Generate Docs + run: | + yarn docs:build + - name: Setup Pages + uses: actions/configure-pages@v3 + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + path: './dist' + + deploy: + needs: setup + # Deploy to the github-pages environment + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 diff --git a/.gitignore b/.gitignore index d4d40044..664de805 100644 --- a/.gitignore +++ b/.gitignore @@ -122,6 +122,9 @@ dist *.sqlite *.sqlite-journal *.wasm +*.db +*.sqlite-shm +*.sqlite-wal .DS_store @@ -129,3 +132,9 @@ preview/ lib .parcel-cache + +# docs src output folder +docs-src + +# vitepress cache +.vitepress/cache diff --git a/.prettierignore b/.prettierignore index 42db64fb..a3f3eef7 100644 --- a/.prettierignore +++ b/.prettierignore @@ -7,4 +7,3 @@ vendor/ .pnp.loader.mjs lib/ preview/ -tsconfig.json diff --git a/.vitepress/config.mts b/.vitepress/config.mts new file mode 100644 index 00000000..dcbe03a9 --- /dev/null +++ b/.vitepress/config.mts @@ -0,0 +1,34 @@ +import { defineConfig } from 'vitepress' + +// https://vitepress.dev/reference/site-config +export default defineConfig({ + title: 'Chopsticks Docs', + description: 'Chopsticks Types Documentation', + base: '/chopsticks/docs/', + srcDir: 'docs-src', + outDir: 'dist/docs', + lastUpdated: true, + themeConfig: { + // https://vitepress.dev/reference/default-theme-config + nav: [{ text: 'Home', link: '/' }], + sidebar: [ + { + text: 'Packages', + items: [ + { text: 'Chopsticks', link: '/chopsticks/README.html' }, + { text: 'Core', link: '/core/README.html' }, + ], + }, + ], + search: { + provider: 'local', + }, + socialLinks: [{ icon: 'github', link: 'https://github.com/AcalaNetwork/chopsticks' }], + outline: 3, + }, + markdown: { + anchor: { + slugify: (s) => encodeURIComponent(String(s).trim().replace(/\s+/g, '-')).toLocaleLowerCase(), + }, + }, +}) diff --git a/.yarn/patches/@polkadot-rpc-provider-npm-10.10.1-c60ba50fe2.patch b/.yarn/patches/@polkadot-rpc-provider-npm-10.10.1-c60ba50fe2.patch new file mode 100644 index 00000000..72919cc3 --- /dev/null +++ b/.yarn/patches/@polkadot-rpc-provider-npm-10.10.1-c60ba50fe2.patch @@ -0,0 +1,55 @@ +diff --git a/http/index.js b/http/index.js +index 63d7d0439956851f8794e10defbbd944fdae2766..13a08f7451bcb5838b19a64d47182a1dd8a7a813 100644 +--- a/http/index.js ++++ b/http/index.js +@@ -1,4 +1,4 @@ +-import { logger, noop } from '@polkadot/util'; ++import { logger, noop, stringify } from '@polkadot/util'; + import { fetch } from '@polkadot/x-fetch'; + import { RpcCoder } from '../coder/index.js'; + import defaults from '../defaults.js'; +@@ -99,13 +99,14 @@ export class HttpProvider { + async send(method, params, isCacheable) { + this.__internal__stats.total.requests++; + const [, body] = this.__internal__coder.encodeJson(method, params); ++ const cacheKey = isCacheable ? `${method}::${stringify(params)}` : ''; + let resultPromise = isCacheable +- ? this.__internal__callCache.get(body) ++ ? this.__internal__callCache.get(cacheKey) + : null; + if (!resultPromise) { + resultPromise = this.__internal__send(body); + if (isCacheable) { +- this.__internal__callCache.set(body, resultPromise); ++ this.__internal__callCache.set(cacheKey, resultPromise); + } + } + else { +diff --git a/ws/index.js b/ws/index.js +index 879299b5d960a9bce6572a0e585ede29935db2a7..9ea7f184dd0c65dfe37585dd811120838ca580b9 100644 +--- a/ws/index.js ++++ b/ws/index.js +@@ -1,5 +1,5 @@ + import { EventEmitter } from 'eventemitter3'; +-import { isChildClass, isNull, isUndefined, logger, noop, objectSpread } from '@polkadot/util'; ++import { isChildClass, isNull, isUndefined, logger, noop, objectSpread, stringify } from '@polkadot/util'; + import { xglobal } from '@polkadot/x-global'; + import { WebSocket } from '@polkadot/x-ws'; + import { RpcCoder } from '../coder/index.js'; +@@ -395,13 +395,14 @@ export class WsProvider { + this.__internal__endpointStats.requests++; + this.__internal__stats.total.requests++; + const [id, body] = this.__internal__coder.encodeJson(method, params); ++ const cacheKey = isCacheable ? `${method}::${stringify(params)}` : ''; + let resultPromise = isCacheable +- ? this.__internal__callCache.get(body) ++ ? this.__internal__callCache.get(cacheKey) + : null; + if (!resultPromise) { + resultPromise = this.__internal__send(id, body, method, params, subscription); + if (isCacheable) { +- this.__internal__callCache.set(body, resultPromise); ++ this.__internal__callCache.set(cacheKey, resultPromise); + } + } + else { diff --git a/README.md b/README.md index 2d31a675..3ff9ca07 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,12 @@ Run node using config file npx @acala-network/chopsticks@latest -c acala ``` +## Web testing + +Run Chopsticks in browser? Now you can turn a mainnet into a devnet and play with it directly in your browser! + +An example is available at [acalanetwork.github.io/chopsticks](https://acalanetwork.github.io/chopsticks/), and the corresponding code can be found in [web-test](packages/web-test). + ## Environment Variables - `PORT`: Set port for Chopsticks to listen on, default is `8000` @@ -125,6 +131,14 @@ npx @acala-network/chopsticks@latest dry-run --config=configs/mandala.yml --prei } ] ] + }, + "Whitelist": { + "WhitelistedCall": [ + [ + ["0x3146d2141cdb95de80488d6cecbb5d7577dd59069efc366cb1be7fe64f02e62c"], + "0x" // please use 0x for null values + ], + ] } } ``` @@ -150,4 +164,13 @@ To learn more, see https://www.npmjs.com/package/global-agent?activeTab=readme External documentation on Chopsticks can be found at the following links: +- [Chopsticks types documentation](https://acalanetwork.github.io/chopsticks/docs) - [Moonbeam documentation site](https://docs.moonbeam.network/builders/build/substrate-api/chopsticks/) + +## Plugins + +Chopsticks is designed to be extensible. You can write your own plugin to extend Chopsticks' functionality. + +There are 2 types of plugins: `cli` and `rpc`. `cli` plugins are used to extend Chopsticks' CLI, while `rpc` plugins are used to extend Chopsticks' RPC. + +To create a new plugin, you could check out the [run-block plugin](packages/chopsticks/src/plugins/run-block/) as an example. diff --git a/configs/centrifuge.yml b/configs/centrifuge.yml new file mode 100644 index 00000000..e32e1a57 --- /dev/null +++ b/configs/centrifuge.yml @@ -0,0 +1,50 @@ +endpoint: wss://centrifuge-parachain.api.onfinality.io/public-ws/ +mock-signature-host: true +block: ${env.CENTRIFUGE_BLOCK_NUMBER} +db: ./db.sqlite +# wasm-override: centrifuge-1023.wasm + +import-storage: + # Sudo: + # Key: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY # Alice + System: + Account: + - + - + - "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" + - providers: 1 + data: + free: "1000000000000000000000000" + Council: + Members: [5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY] + Elections: + Members: + - who: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY + stake: "10000000000000000000000" + deposit: "10000000000000000000000" + OrmlTokens: + Accounts: + - + - + - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY + - ForeignAsset: 6 + - free: 1000000000000 + - + - + - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY + - ForeignAsset: 4 + - free: "1000000000000000000000" + Proxy: + Proxies: + - + - + - 4dTeMxuPJCK7zQGhFcgCivSJqBs9Wo2SuMSQeYCCuVJ9xrE2 + - + - + - delegate: "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" + - proxyType: "Any" + - delay: 0 + - "350000000000000000" + + + diff --git a/configs/dancebox.yml b/configs/dancebox.yml index 9ce41a37..28b92194 100644 --- a/configs/dancebox.yml +++ b/configs/dancebox.yml @@ -1,4 +1,4 @@ -endpoint: wss://vira-stagenet-dancebox-rpc.a.moondev.network +endpoint: wss://fraa-dancebox-rpc.a.dancebox.tanssi.network mock-signature-host: true import-storage: diff --git a/configs/karura.yml b/configs/karura.yml index 0d187a2a..e2e070b7 100644 --- a/configs/karura.yml +++ b/configs/karura.yml @@ -1,4 +1,4 @@ -endpoint: wss://karura-rpc.dwellir.com +endpoint: wss://karura-rpc.aca-api.network mock-signature-host: true block: ${env.KARURA_BLOCK_NUMBER} db: ./db.sqlite diff --git a/configs/kusama-bridge-hub.yml b/configs/kusama-bridge-hub.yml new file mode 100644 index 00000000..3b4884ec --- /dev/null +++ b/configs/kusama-bridge-hub.yml @@ -0,0 +1,16 @@ +endpoint: wss://kusama-bridge-hub-rpc.polkadot.io +mock-signature-host: true +block: ${env.KUSAMA_BRIDGEHUB_BLOCK_NUMBER} +db: ./db.sqlite + +import-storage: + System: + Account: + - + - + - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY + - providers: 1 + data: + free: 1000000000000000 + + diff --git a/configs/kusama.yml b/configs/kusama.yml index fe006a07..7e1d5840 100644 --- a/configs/kusama.yml +++ b/configs/kusama.yml @@ -1,8 +1,9 @@ -endpoint: wss://kusama-rpc.dwellir.com +endpoint: wss://kusama-rpc.polkadot.io mock-signature-host: true block: ${env.KUSAMA_BLOCK_NUMBER} db: ./db.sqlite -# wasm-override: kusama_runtime-v9380.compact.compressed.wasm +# wasm-override: staging_kusama_runtime.wasm +runtime-log-level: 5 import-storage: System: diff --git a/configs/polkadot-bridge-hub.yml b/configs/polkadot-bridge-hub.yml new file mode 100644 index 00000000..0750948c --- /dev/null +++ b/configs/polkadot-bridge-hub.yml @@ -0,0 +1,16 @@ +endpoint: wss://polkadot-bridge-hub-rpc.polkadot.io +mock-signature-host: true +block: ${env.POLKADOT_BRIDGEHUB_BLOCK_NUMBER} +db: ./db.sqlite + +import-storage: + System: + Account: + - + - + - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY + - providers: 1 + data: + free: 1000000000000000 + + diff --git a/configs/tinkernet.yml b/configs/tinkernet.yml index 42c22638..ae91920d 100644 --- a/configs/tinkernet.yml +++ b/configs/tinkernet.yml @@ -1,4 +1,4 @@ -endpoint: wss://invarch-tinkernet.api.onfinality.io:443/public-ws +endpoint: wss://tinkernet-rpc.dwellir.com mock-signature-host: true block: ${env.TINKERNET_BLOCK_NUMBER} db: ./tinkernet.db.sqlite diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..c1894a93 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,11 @@ + +[Home](./index.md) + +## API Reference + +## Packages + +| Package | Description | +| --- | --- | +| [@acala-network/chopsticks](./chopsticks/README.md) | Chopsticks cli and rpc server | +| [@acala-network/chopsticks-core](./core/README.md) | Blockchain data structure | \ No newline at end of file diff --git a/executor/Cargo.lock b/executor/Cargo.lock index e1748411..2fdbc49c 100644 --- a/executor/Cargo.lock +++ b/executor/Cargo.lock @@ -4,20 +4,27 @@ version = 3 [[package]] name = "ahash" -version = "0.7.6" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ - "getrandom", + "cfg-if", "once_cell", "version_check", + "zerocopy", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "arrayref" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" @@ -36,11 +43,13 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "async-lock" -version = "2.7.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +checksum = "deb2ab2aa8a746e221ab826c73f48bc6ba41be6763f0855cb249eb6d154cf1d7" dependencies = [ "event-listener", + "event-listener-strategy", + "pin-project-lite", ] [[package]] @@ -63,9 +72,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.2" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "bip39" @@ -103,9 +112,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] @@ -121,21 +130,21 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.2.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cfg-if" @@ -156,7 +165,7 @@ dependencies = [ [[package]] name = "chopsticks-executor" -version = "0.7.3" +version = "0.9.2" dependencies = [ "arrayvec 0.7.4", "console_error_panic_hook", @@ -184,6 +193,15 @@ dependencies = [ "inout", ] +[[package]] +name = "concurrent-queue" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "console_error_panic_hook" version = "0.1.7" @@ -218,9 +236,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] @@ -237,9 +255,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.12" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if", ] @@ -272,26 +290,14 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek" -version = "4.0.0-rc.3" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436ace70fc06e06f7f689d2624dc4e2f0ea666efb5aa704215f7249ae6e047a7" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" dependencies = [ "cfg-if", "cpufeatures", "curve25519-dalek-derive", + "digest 0.10.7", "fiat-crypto", "platforms", "rustc_version", @@ -301,26 +307,13 @@ dependencies = [ [[package]] name = "curve25519-dalek-derive" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", -] - -[[package]] -name = "curve25519-dalek-ng" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.6.4", - "subtle-ng", - "zeroize", + "syn 2.0.38", ] [[package]] @@ -333,7 +326,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 1.0.105", + "syn 1.0.109", ] [[package]] @@ -351,7 +344,7 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.3", + "block-buffer 0.10.4", "crypto-common", "subtle", ] @@ -362,37 +355,61 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + [[package]] name = "ed25519-zebra" -version = "3.1.0" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ - "curve25519-dalek 3.2.0", - "hashbrown 0.12.3", + "curve25519-dalek", + "ed25519", + "hashbrown", "hex", - "rand_core 0.6.4", - "sha2 0.9.9", + "rand_core", + "sha2 0.10.8", "zeroize", ] [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "event-listener" -version = "2.5.3" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160" +dependencies = [ + "event-listener", + "pin-project-lite", +] [[package]] name = "fiat-crypto" -version = "0.1.20" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" +checksum = "a481586acf778f1b1455424c343f71124b048ffa5f4fc3f8f6ae9dc432dcb3c7" [[package]] name = "fnv" @@ -402,9 +419,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "futures" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" dependencies = [ "futures-channel", "futures-core", @@ -416,9 +433,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", "futures-sink", @@ -426,21 +443,21 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] name = "futures-lite" -version = "1.13.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb" dependencies = [ "futures-core", "pin-project-lite", @@ -448,32 +465,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.38", ] [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ "futures-channel", "futures-core", @@ -489,9 +506,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -499,9 +516,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.7" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "js-sys", @@ -512,19 +529,12 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.3" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" dependencies = [ "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" -dependencies = [ + "allocator-api2", "serde", ] @@ -591,12 +601,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "intx" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f38a50a899dc47a6d0ed5508e7f601a2e34c3a85303514b5d137f3c10a0c75" - [[package]] name = "itertools" version = "0.11.0" @@ -608,36 +612,39 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.4" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" dependencies = [ "wasm-bindgen", ] [[package]] name = "keccak" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +dependencies = [ + "cpufeatures", +] [[package]] name = "libc" -version = "0.2.146" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "libm" -version = "0.2.5" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "292a948cd991e376cf75541fe5b97a1081d713c618b4f1b9500f8844e49eb565" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libsecp256k1" @@ -689,15 +696,15 @@ dependencies = [ [[package]] name = "log" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "merlin" @@ -707,7 +714,7 @@ checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core 0.6.4", + "rand_core", "zeroize", ] @@ -741,9 +748,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", @@ -774,18 +781,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] [[package]] name = "once_cell" -version = "1.15.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -795,44 +802,44 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "paste" -version = "1.0.9" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pbkdf2" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0ca0b5a68607598bf3bad68f32227a8164f6254833f84eafaac409cd6746c31" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", ] [[package]] name = "pin-project" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.38", ] [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -842,9 +849,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "platforms" -version = "3.0.2" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" [[package]] name = "poly1305" @@ -859,24 +866,24 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.29" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -889,7 +896,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -899,15 +906,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", + "rand_core", ] -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" - [[package]] name = "rand_core" version = "0.6.4" @@ -928,48 +929,49 @@ dependencies = [ [[package]] name = "ruzstd" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" +checksum = "58c4eb8a81997cf040a091d1f7e1938aeab6749d3a0dfa73af43cdc32393483d" dependencies = [ "byteorder", - "thiserror-core", + "derive_more", "twox-hash", ] [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "schnorrkel" -version = "0.10.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" +checksum = "da18ffd9f2f5d01bc0b3050b37ce7728665f926b4dd1157fe3221b05737d924f" dependencies = [ "arrayref", "arrayvec 0.7.4", - "curve25519-dalek-ng", + "curve25519-dalek", "merlin", - "rand_core 0.6.4", - "sha2 0.9.9", - "subtle-ng", + "rand_core", + "serde_bytes", + "sha2 0.10.8", + "subtle", "zeroize", ] [[package]] name = "semver" -version = "1.0.14" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.171" +version = "1.0.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9" +checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" dependencies = [ "serde_derive", ] @@ -985,22 +987,31 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "serde_bytes" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" -version = "1.0.171" +version = "1.0.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" +checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.38", ] [[package]] name = "serde_json" -version = "1.0.100" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f1e14e89be7aa4c4b78bdbdc9eb5bf8517829a600ae8eaa39a6e1d960b5185c" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -1035,44 +1046,60 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", "digest 0.10.7", ] +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" + [[package]] name = "siphasher" -version = "0.3.10" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "54ac45299ccbd390721be55b412d41931911f654fa99e2cb8bfb57184b2061fe" [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "smoldot" -version = "0.8.0" +version = "0.13.0" dependencies = [ "arrayvec 0.7.4", "async-lock", "atomic-take", - "base64 0.21.2", + "base64 0.21.5", "bip39", "blake2-rfc", "bs58", @@ -1083,13 +1110,13 @@ dependencies = [ "either", "event-listener", "fnv", - "futures-channel", "futures-lite", "futures-util", - "hashbrown 0.14.0", + "hashbrown", "hex", "hmac 0.12.1", "itertools", + "libm", "libsecp256k1", "merlin", "no-std-net", @@ -1106,12 +1133,12 @@ dependencies = [ "schnorrkel", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", + "sha3", "siphasher", "slab", "smallvec", "soketto", - "tiny-keccak", "twox-hash", "wasmi", "x25519-dalek", @@ -1147,21 +1174,15 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - -[[package]] -name = "subtle-ng" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "1.0.105" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -1170,56 +1191,15 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.25" +version = "2.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e3fc8c0c74267e2df136e5e5fb656a464158aa57624053375eb9c8c6e25ae2" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.105", - "unicode-xid", -] - -[[package]] -name = "thiserror-core" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d97345f6437bb2004cd58819d8a9ef8e36cdd7661c2abc4bbde0a7c40d9f497" -dependencies = [ - "thiserror-core-impl", -] - -[[package]] -name = "thiserror-core-impl" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.105", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - [[package]] name = "tinyvec" version = "1.6.0" @@ -1247,21 +1227,15 @@ dependencies = [ [[package]] name = "typenum" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-ident" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" - -[[package]] -name = "unicode-xid" -version = "0.2.4" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "universal-hash" @@ -1287,9 +1261,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1297,24 +1271,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.38", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.37" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" dependencies = [ "cfg-if", "js-sys", @@ -1324,9 +1298,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1334,30 +1308,29 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.38", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" [[package]] name = "wasmi" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51fb5c61993e71158abf5bb863df2674ca3ec39ed6471c64f07aeaf751d67b4" +checksum = "1f341edb80021141d4ae6468cbeefc50798716a347d4085c3811900049ea8945" dependencies = [ - "intx", "smallvec", "spin", "wasmi_arena", @@ -1373,9 +1346,9 @@ checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468" [[package]] name = "wasmi_core" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624e6333e861ef49095d2d678b76ebf30b06bf37effca845be7e5b87c90071b7" +checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a" dependencies = [ "downcast-rs", "libm", @@ -1394,9 +1367,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" dependencies = [ "js-sys", "wasm-bindgen", @@ -1404,16 +1377,36 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0-rc.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7fae07da688e17059d5886712c933bb0520f15eff2e09cfa18e30968f4e63a" +checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" dependencies = [ - "curve25519-dalek 4.0.0-rc.3", - "rand_core 0.6.4", + "curve25519-dalek", + "rand_core", "serde", "zeroize", ] +[[package]] +name = "zerocopy" +version = "0.7.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + [[package]] name = "zeroize" version = "1.6.0" @@ -1425,12 +1418,11 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 1.0.105", - "synstructure", + "syn 2.0.38", ] diff --git a/executor/Cargo.toml b/executor/Cargo.toml index a087cb24..e8dee95a 100644 --- a/executor/Cargo.toml +++ b/executor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "chopsticks-executor" -version = "0.7.3" +version = "0.9.2" description = "Chopsticks executor" repository = "https://github.com/AcalaNetwork/chopsticks" license = "Apache-2.0" @@ -12,27 +12,25 @@ edition = "2021" crate-type = ["cdylib"] [dependencies] -arrayvec = "0.7.3" +arrayvec = "0.7" getrandom = { version = "0.2", default-features = false, features = ["js"] } -serde = { version = "1.0.151", default-features = false } +serde = { version = "1.0", default-features = false } serde_json = { version = "1.0", default-features = false } hex = { version = "0.4.3", default-features = false } hex-literal = "0.4.1" wasm-bindgen = "0.2.87" -serde-wasm-bindgen = "0.5.0" -wasm-bindgen-futures = "0.4.37" -js-sys = "0.3.64" -log = "0.4.19" -console_error_panic_hook = "0.1.7" -console_log = { version = "1.0.0" } +serde-wasm-bindgen = "0.5" +wasm-bindgen-futures = "0.4" +js-sys = "0.3" +log = "0.4" +console_error_panic_hook = "0.1" +console_log = { version = "1.0" } smoldot = { path = '../vendor/smoldot/lib', default-features = false } [features] default = [] -std = [ - "smoldot/std" -] +std = ["smoldot/std"] [profile.release] codegen-units = 1 diff --git a/executor/package.json b/executor/package.json index 95bd560e..9c3c701e 100644 --- a/executor/package.json +++ b/executor/package.json @@ -1,31 +1,45 @@ { "name": "@tanssi/chopsticks-executor", "description": "Chopsticks executor", - "version": "0.8.0-7", + "version": "0.9.2", "license": "Apache-2.0", + "type": "module", "repository": { "type": "git", "url": "https://github.com/AcalaNetwork/chopsticks" }, "scripts": { - "clean": "rm -rf web node", - "build": "wasm-pack build --target web --out-dir browser; wasm-pack build --target nodejs --out-dir node; scripts/pack-wasm.js" + "clean": "rm -rf pkg dist", + "wasm": "yarn clean && wasm-pack build --target web --out-dir pkg && scripts/pack-wasm.cjs", + "build": "yarn wasm && yarn build:cjs && yarn build:esm", + "build:cjs": "swc ./pkg -C module.type=commonjs -d dist/cjs --copy-files && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json", + "build:esm": "swc ./pkg -C module.type=es6 -d dist/esm --copy-files && echo '{\"type\": \"module\"}' > dist/esm/package.json" }, "dependencies": { + "@polkadot/util": "^12.5.1", "@polkadot/wasm-util": "^7.2.2" }, "devDependencies": { - "@polkadot/util": "^12.4.1", - "fflate": "^0.8.0" + "@swc/cli": "0.1.62", + "@swc/core": "^1.3.96", + "fflate": "^0.8.1" }, "files": [ - "browser/index.js", - "browser/chopsticks_executor.js", - "browser/chopsticks_executor_bg.wasm", - "node/chopsticks_*" + "dist/esm/**", + "dist/cjs/**", + "pkg/chopsticks_executor.d.ts" ], - "main": "node/chopsticks_executor.js", - "types": "node/chopsticks_executor.d.ts", - "browser": "browser/index.js", - "stableVersion": "0.7.3" + "require": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./pkg/chopsticks_executor.d.ts", + "exports": { + ".": { + "require": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "default": "./dist/esm/index.js", + "types": "./pkg/chopsticks_executor.d.ts" + }, + "./package.json": "./package.json", + "./package.cjs.json": "./dist/cjs/package.json" + } } diff --git a/executor/scripts/pack-wasm.js b/executor/scripts/pack-wasm.cjs similarity index 61% rename from executor/scripts/pack-wasm.js rename to executor/scripts/pack-wasm.cjs index f750d6f0..9261fffb 100755 --- a/executor/scripts/pack-wasm.js +++ b/executor/scripts/pack-wasm.cjs @@ -5,13 +5,13 @@ const path = require('node:path'); const { zlibSync } = require('fflate/node'); const { formatNumber } = require('@polkadot/util'); -const data = fs.readFileSync(path.resolve(__dirname, `../browser/chopsticks_executor_bg.wasm`)); +const data = fs.readFileSync(path.resolve(__dirname, `../pkg/chopsticks_executor_bg.wasm`)); const compressed = Buffer.from(zlibSync(data, { level: 9 })); const base64 = compressed.toString('base64'); console.log(`*** Compressed WASM: in=${formatNumber(data.length)}, out=${formatNumber(compressed.length)}, opt=${(100 * compressed.length / data.length).toFixed(2)}%, base64=${formatNumber(base64.length)}`); -fs.writeFileSync(path.resolve(__dirname, `../browser/index.js`), `// Auto-generated file, do not edit by hand +fs.writeFileSync(path.resolve(__dirname, `../pkg/index.js`), `// Auto-generated file, do not edit by hand const LEN_IN = ${compressed.length}; const LEN_OUT = ${data.length}; const BYTES = '${base64}'; @@ -19,9 +19,12 @@ const BYTES = '${base64}'; import { base64Decode, unzlibSync } from '@polkadot/wasm-util'; const WASM_BYTES = unzlibSync(base64Decode(BYTES, new Uint8Array(LEN_IN)), new Uint8Array(LEN_OUT)); -import wasmInit from "./chopsticks_executor.js"; -const blob = new Blob([WASM_BYTES], { type: "application/wasm" }); -wasmInit(URL.createObjectURL(blob)); +import { initSync } from "./chopsticks_executor.js"; +initSync(new WebAssembly.Module(WASM_BYTES)); export * from "./chopsticks_executor.js"; `); + +// replace wasm with empty file because it's not needed +// but we need to have it in the repo for the build to work +fs.writeFileSync(path.resolve(__dirname, `../pkg/chopsticks_executor_bg.wasm`), '') diff --git a/executor/src/lib.rs b/executor/src/lib.rs index 4db121e9..222092d3 100644 --- a/executor/src/lib.rs +++ b/executor/src/lib.rs @@ -18,7 +18,7 @@ fn setup_console(level: Option) { #[wasm_bindgen(typescript_custom_section)] const _: &'static str = r#" -import { HexString } from '@polkadot/util/types'; +type HexString = `0x${string}`; export interface JsCallback { getStorage: (key: HexString) => Promise getStateRoot: () => Promise diff --git a/executor/src/proof.rs b/executor/src/proof.rs index f3f5e4c4..80838cbf 100644 --- a/executor/src/proof.rs +++ b/executor/src/proof.rs @@ -139,7 +139,6 @@ pub fn create_proof( let nodes = proof_builder .build() .map(|x| HexString(x.as_ref().to_vec())) - .into_iter() .skip(1) // length of nodes .enumerate() .filter(|(i, _)| i % 2 != 0) // length of each nodes diff --git a/executor/src/task.rs b/executor/src/task.rs index 1ac0fe00..cd48f9c5 100644 --- a/executor/src/task.rs +++ b/executor/src/task.rs @@ -12,8 +12,9 @@ use smoldot::{ trie::{ bytes_to_nibbles, calculate_root::{root_merkle_value, RootMerkleValueCalculation}, - nibbles_to_bytes_suffix_extend, TrieEntryVersion, + nibbles_to_bytes_suffix_extend, HashFunction, TrieEntryVersion, }, + verify::body_only::LogEmitInfo, }; use std::collections::BTreeMap; @@ -68,13 +69,21 @@ pub struct TaskCall { runtime_log_level: u32, } +#[derive(Serialize, Deserialize, Debug)] +#[serde(rename_all = "camelCase")] +pub struct LogInfo { + message: String, + level: Option, + target: Option, +} + #[derive(Serialize, Deserialize, Debug)] #[serde(rename_all = "camelCase")] pub struct CallResponse { result: HexString, storage_diff: Vec<(HexString, Option)>, offchain_storage_diff: Vec<(HexString, Option)>, - runtime_logs: Vec, + runtime_logs: Vec, } #[derive(Serialize, Deserialize, Debug)] @@ -88,8 +97,31 @@ fn is_magic_signature(signature: &[u8]) -> bool { signature.starts_with(&[0xde, 0xad, 0xbe, 0xef]) && signature[4..].iter().all(|&b| b == 0xcd) } +const DEFAULT_CHILD_STORAGE_PREFIX: &[u8] = b":child_storage:default:"; + +fn prefixed_child_key(child: impl Iterator, key: impl Iterator) -> Vec { + [ + DEFAULT_CHILD_STORAGE_PREFIX, + &child.collect::>(), + &key.collect::>(), + ] + .concat() +} + +fn handle_value(value: wasm_bindgen::JsValue) -> Result>, String> { + if value.is_string() { + let encoded = from_value::(value) + .map(|x| x.0) + .map_err(|e| e.to_string())?; + Ok(Some(encoded)) + } else { + Ok(None) + } +} + pub async fn run_task(task: TaskCall, js: crate::JsCallback) -> Result { let mut storage_main_trie_changes = TrieDiff::default(); + let mut storage_changes: BTreeMap, Option>> = Default::default(); let mut offchain_storage_changes: BTreeMap, Option>> = Default::default(); let vm_proto = HostVmPrototype::new(Config { @@ -100,7 +132,7 @@ pub async fn run_task(task: TaskCall, js: crate::JsCallback) -> Result, String> = Ok(Vec::new()); - let mut runtime_logs: Vec = vec![]; + let mut runtime_logs: Vec = vec![]; for (call, params) in task.calls { let mut vm = runtime_host::run(runtime_host::Config { @@ -109,6 +141,7 @@ pub async fn run_task(task: TaskCall, js: crate::JsCallback) -> Result Result { - let key = HexString(req.key().as_ref().to_vec()); - let key = to_value(&key).map_err(|e| e.to_string())?; - let value = js.get_storage(key).await; - let value = if value.is_string() { - let encoded = from_value::(value) - .map(|x| x.0) - .map_err(|e| e.to_string())?; - Some(encoded) + let key = if let Some(child) = req.child_trie() { + HexString(prefixed_child_key( + child.as_ref().iter().copied(), + req.key().as_ref().iter().copied(), + )) } else { - None + HexString(req.key().as_ref().to_vec()) }; - req.inject_value(value.map(|x| (iter::once(x), TrieEntryVersion::V1))) + + // check storage_changes first + if let Some(value) = storage_changes.get(&key.0) { + req.inject_value( + value + .to_owned() + .map(|x| (iter::once(x), TrieEntryVersion::V1)), + ) + } else { + // otherwise, ask chopsticks + let key = to_value(&key).map_err(|e| e.to_string())?; + + let value = js.get_storage(key).await; + let value = if value.is_string() { + let encoded = from_value::(value) + .map(|x| x.0) + .map_err(|e| e.to_string())?; + Some(encoded) + } else { + None + }; + req.inject_value(value.map(|x| (iter::once(x), TrieEntryVersion::V1))) + } } RuntimeHostVm::ClosestDescendantMerkleValue(req) => { @@ -148,23 +200,30 @@ pub async fn run_task(task: TaskCall, js: crate::JsCallback) -> Result>.map(|x| x.into_iter())) } else { - let prefix = HexString( - nibbles_to_bytes_suffix_extend(req.prefix()).collect::>(), - ); - let key = HexString( - nibbles_to_bytes_suffix_extend(req.key()).collect::>(), - ); + let prefix = if let Some(child) = req.child_trie() { + HexString(prefixed_child_key( + child.as_ref().iter().copied(), + nibbles_to_bytes_suffix_extend(req.prefix()), + )) + } else { + HexString( + nibbles_to_bytes_suffix_extend(req.prefix()).collect::>(), + ) + }; + let key = if let Some(child) = req.child_trie() { + HexString(prefixed_child_key( + child.as_ref().iter().copied(), + nibbles_to_bytes_suffix_extend(req.key()), + )) + } else { + HexString(nibbles_to_bytes_suffix_extend(req.key()).collect::>()) + }; let prefix = to_value(&prefix).map_err(|e| e.to_string())?; let key = to_value(&key).map_err(|e| e.to_string())?; let value = js.get_next_key(prefix, key).await; - let value = if value.is_string() { - from_value::(value) - .map(|x| Some(x.0)) - .map_err(|e| e.to_string())? - } else { - None - }; - req.inject_key(value.map(|x| bytes_to_nibbles(x.into_iter()))) + req.inject_key( + handle_value(value)?.map(|x| bytes_to_nibbles(x.into_iter())), + ) } } @@ -191,15 +250,7 @@ pub async fn run_task(task: TaskCall, js: crate::JsCallback) -> Result(value) - .map(|x| x.0) - .map_err(|e| e.to_string())?; - Some(encoded) - } else { - None - }; - req.inject_value(value) + req.inject_value(handle_value(value)?) } OffchainContext::StorageSet(req) => { @@ -245,6 +296,62 @@ pub async fn run_task(task: TaskCall, js: crate::JsCallback) -> Result { + { + match req.info() { + LogEmitInfo::Num(v) => { + log::info!("{}", v); + runtime_logs.push(LogInfo { + message: format!("{}", v), + level: None, + target: None, + }); + } + LogEmitInfo::Utf8(v) => { + log::info!("{}", v.to_string()); + runtime_logs.push(LogInfo { + message: v.to_string(), + level: None, + target: None, + }); + } + LogEmitInfo::Hex(v) => { + log::info!("{}", v.to_string()); + runtime_logs.push(LogInfo { + message: v.to_string(), + level: None, + target: None, + }); + } + LogEmitInfo::Log { + log_level, + target, + message, + } => { + let level = match log_level { + 0 => "ERROR".to_string(), + 1 => "WARN".to_string(), + 2 => "INFO".to_string(), + 3 => "DEBUG".to_string(), + 4 => "TRACE".to_string(), + l => format!("_{l}_"), + }; + log::info!( + "{}: {}", + format!("{:<28}{:>6}", target.to_string(), level), + message.to_string() + ); + runtime_logs.push(LogInfo { + message: message.to_string(), + level: Some(log_level), + target: Some(target.to_string()), + }); + } + }; + } + req.resume() + } } }; @@ -254,35 +361,42 @@ pub async fn run_task(task: TaskCall, js: crate::JsCallback) -> Result { ret = Ok(success.virtual_machine.value().as_ref().to_vec()); - storage_main_trie_changes = success.storage_changes.into_main_trie_diff(); + success + .storage_changes + .storage_changes_iter_unordered() + .for_each(|(child, key, value)| { + let prefixed_key = if let Some(child) = child { + prefixed_child_key(child.iter().copied(), key.iter().copied()) + } else { + key.to_vec() + }; + storage_changes.insert(prefixed_key, value.map(|x| x.to_vec())); + }); - if !success.logs.is_empty() { - runtime_logs.push(success.logs); - } + storage_main_trie_changes = success.storage_changes.into_main_trie_diff(); } Err(err) => { ret = Err(err.to_string()); - storage_main_trie_changes = TrieDiff::empty(); break; } } } Ok(ret.map_or_else(TaskResponse::Error, move |ret| { - let diff = storage_main_trie_changes - .diff_into_iter_unordered() - .map(|(k, v, _)| (HexString(k), v.map(HexString))) + let storage_diff = storage_changes + .into_iter() + .map(|(k, v)| (HexString(k), v.map(HexString))) .collect(); - let offchain_diff = offchain_storage_changes + let offchain_storage_diff = offchain_storage_changes .into_iter() .map(|(k, v)| (HexString(k), v.map(HexString))) .collect(); TaskResponse::Call(CallResponse { result: HexString(ret), - storage_diff: diff, - offchain_storage_diff: offchain_diff, + storage_diff, + offchain_storage_diff, runtime_logs, }) })) @@ -306,7 +420,7 @@ pub fn calculate_state_root( entries: Vec<(HexString, HexString)>, trie_version: TrieEntryVersion, ) -> HexString { - let mut calc = root_merkle_value(); + let mut calc = root_merkle_value(HashFunction::Blake2); let map = entries .into_iter() .map(|(k, v)| (k.0, v.0)) diff --git a/loader.js b/loader.js new file mode 100644 index 00000000..e642f2c1 --- /dev/null +++ b/loader.js @@ -0,0 +1,15 @@ +import * as tsConfigPaths from 'tsconfig-paths' +import { pathToFileURL } from 'url' +import { resolve as resolveTs } from 'ts-node/esm' + +const { absoluteBaseUrl, paths } = tsConfigPaths.loadConfig() +const matchPath = tsConfigPaths.createMatchPath(absoluteBaseUrl, paths) + +export function resolve(specifier, ctx, defaultResolve) { + const match = matchPath(specifier) + return match + ? resolveTs(pathToFileURL(`${match}`).href, ctx, defaultResolve) + : resolveTs(specifier, ctx, defaultResolve) +} + +export { load, transformSource } from 'ts-node/esm' diff --git a/package.json b/package.json index 8bbdde20..b7a6fcb7 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "license": "Apache-2.0", "packageManager": "yarn@3.5.0", "private": true, + "type": "module", "workspaces": [ "packages/*", "executor" @@ -18,11 +19,16 @@ "check": "cd executor && cargo check --locked", "test": "vitest run", "test:watch": "vitest", - "start": "yarn script:start", - "dev": "yarn script:run" + "start": "NODE_OPTIONS='--loader ts-node/esm --loader ./loader.js --no-warnings' node packages/chopsticks/src/cli.ts", + "dev": "NODE_OPTIONS='--loader ts-node/esm --loader ./loader.js --no-warnings' LOG_LEVEL=trace node packages/chopsticks/src/cli.ts -- --config=configs/dev.yml", + "script:start": "yarn start", + "docs:prep": "yarn workspaces foreach -pvit run docs:prep && cp docs/* docs-src", + "docs:dev": "yarn docs:prep && vitepress dev", + "docs:build": "yarn docs:prep && vitepress build", + "docs:preview": "yarn docs:build && vitepress preview" }, "engines": { - "node": ">=v14" + "node": ">=v18" }, "prettier": { "tabWidth": 2, @@ -34,22 +40,29 @@ "*.{js,ts,css,md}": "prettier --write" }, "devDependencies": { - "@swc/core": "^1.3.78", - "@types/node": "^20.5.1", + "@swc/core": "^1.3.96", + "@types/node": "^20.9.0", "@types/prettier": "^3.0.0", - "@typescript-eslint/eslint-plugin": "^6.4.0", - "@typescript-eslint/parser": "^6.4.0", - "eslint": "^8.47.0", + "@typescript-eslint/eslint-plugin": "^6.10.0", + "@typescript-eslint/parser": "^6.10.0", + "eslint": "^8.53.0", "eslint-config-prettier": "^9.0.0", - "eslint-import-resolver-typescript": "^3.6.0", - "eslint-plugin-import": "^2.28.1", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-sort-imports-es6-autofix": "^0.6.0", "husky": "^8.0.3", - "prettier": "^3.0.2", - "typescript": "^5.1.6", - "unplugin-swc": "^1.3.2", - "vite-tsconfig-paths": "^4.2.0", - "vitest": "^0.34.2", + "prettier": "^3.0.3", + "ts-node": "^10.9.1", + "typedoc": "^0.25.3", + "typedoc-plugin-markdown": "^3.17.1", + "typescript": "^5.2.2", + "unplugin-swc": "^1.4.3", + "vite-tsconfig-paths": "^4.2.1", + "vitepress": "^1.0.0-rc.23", + "vitest": "^0.34.6", "wasm-pack": "^0.12.1" + }, + "resolutions": { + "@polkadot/rpc-provider@10.10.1": "patch:@polkadot/rpc-provider@npm%3A10.10.1#./.yarn/patches/@polkadot-rpc-provider-npm-10.10.1-c60ba50fe2.patch" } } diff --git a/packages/chopsticks/chopsticks.cjs b/packages/chopsticks/chopsticks.cjs new file mode 100755 index 00000000..67f41b2e --- /dev/null +++ b/packages/chopsticks/chopsticks.cjs @@ -0,0 +1,2 @@ +#!/usr/bin/env node +require('./dist/cjs/cli.js') diff --git a/packages/chopsticks/chopsticks.js b/packages/chopsticks/chopsticks.js deleted file mode 100755 index 19bbfa61..00000000 --- a/packages/chopsticks/chopsticks.js +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -require('./lib/cli.js') diff --git a/packages/chopsticks/package.json b/packages/chopsticks/package.json index 13a08769..0a315fe9 100644 --- a/packages/chopsticks/package.json +++ b/packages/chopsticks/package.json @@ -1,62 +1,78 @@ { "name": "@tanssi/chopsticks", - "version": "0.8.0-7", "author": "Moondance Labs", + "version": "0.9.2", "license": "Apache-2.0", - "bin": "./chopsticks.js", + "bin": "./chopsticks.cjs", + "type": "module", "scripts": { - "clean": "rm -rf lib tsconfig.tsbuildinfo", - "build": "tsc -p ./tsconfig.json", - "script:start": "cd ../..; ts-node --transpile-only -r tsconfig-paths/register packages/chopsticks/src/cli.ts", - "script:run": "cd ../..; LOG_LEVEL=trace ts-node-dev --transpile-only -r tsconfig-paths/register --inspect --notify=false packages/chopsticks/src/cli.ts -- --config=configs/dev.yml", - "dev:karura": "cd ../..; ts-node-dev --transpile-only --inspect -r tsconfig-paths/register --notify=false packages/chopsticks/src/cli.ts -- --config=configs/karura.yml", - "dev:acala": "cd ../..; ts-node-dev --transpile-only --inspect -r tsconfig-paths/register --notify=false packages/chopsticks/src/cli.ts -- --config=configs/acala.yml", - "dev:polkadot": "cd ../..; ts-node-dev --transpile-only --inspect -r tsconfig-paths/register --notify=false packages/chopsticks/src/cli.ts -- --config=configs/polkadot.yml", - "dev:moonriver": "cd ../..; ts-node-dev --transpile-only --inspect -r tsconfig-paths/register --notify=false packages/chopsticks/src/cli.ts -- --config=configs/moonriver.yml", - "dev:moonbeam": "cd ../..; ts-node-dev --transpile-only --inspect -r tsconfig-paths/register --notify=false packages/chopsticks/src/cli.ts -- --config=configs/moonbeam.yml" + "clean": "rm -rf dist", + "build": "yarn clean && yarn build:cjs && yarn build:esm && yarn build:types", + "build:cjs": "swc ./src --config-file ../../.cjsswcrc -d dist/cjs --copy-files && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json", + "build:esm": "swc ./src --config-file ../../.esmswcrc -d dist/esm --copy-files", + "build:types": "tsc -p tsconfig.json --emitDeclarationOnly --outDir dist/types", + "docs:prep": "typedoc" }, "dependencies": { "@pnpm/npm-conf": "^2.2.2", "@polkadot/api": "^10.9.1", + "@polkadot/api-augment": "^10.10.1", + "@polkadot/types": "^10.10.1", + "@polkadot/util": "^12.5.1", + "@polkadot/util-crypto": "^12.5.1", "@tanssi/chopsticks-core": "workspace:*", - "axios": "^1.4.0", + "@tanssi/chopsticks-db": "workspace:*", + "axios": "^1.6.0", "dotenv": "^16.3.1", "global-agent": "^3.0.0", "js-yaml": "^4.1.0", "jsondiffpatch": "^0.5.0", "lodash": "^4.17.21", - "ws": "^8.13.0", + "ws": "^8.14.2", "yargs": "^17.7.2", - "zod": "^3.22.2" + "zod": "^3.22.4" }, "devDependencies": { - "@types/global-agent": "^2.1.1", - "@types/js-yaml": "^4.0.5", - "@types/lodash": "^4.14.197", - "@types/node": "^20.5.1", - "@types/ws": "^8.5.5", - "@types/yargs": "^17.0.24", - "ts-node": "^10.9.1", - "ts-node-dev": "^2.0.0", - "typescript": "^5.1.6" + "@swc/cli": "0.1.62", + "@swc/core": "^1.3.96", + "@types/global-agent": "^2.1.3", + "@types/js-yaml": "^4.0.9", + "@types/lodash": "^4.14.201", + "@types/node": "^20.9.0", + "@types/ws": "^8.5.9", + "@types/yargs": "^17.0.31", + "typescript": "^5.2.2", + "vitest": "^0.34.6" }, "files": [ - "lib", - "template", - "chopsticks.js" + "dist/esm/**", + "dist/cjs/**", + "dist/types/**", + "chopsticks.cjs" ], - "main": "./lib/index.js", - "types": "./lib/index.d.ts", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/types/index.d.ts", "exports": { ".": { - "types": "./lib/index.d.ts", - "default": "./lib/index.js" + "types": "./dist/types/index.d.ts", + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js", + "default": "./dist/esm/index.js" }, "./*": { - "types": "./lib/*.d.ts", - "default": "./lib/*.js" + "types": "./dist/types/*.d.ts", + "require": "./dist/cjs/*.js", + "import": "./dist/esm/*.js", + "default": "./dist/esm/*.js" }, - "./package.json": "./package.json" - }, - "stableVersion": "0.7.3" + "./plugins/*": { + "types": "./dist/types/plugins/*.d.ts", + "require": "./dist/cjs/plugins/*.js", + "import": "./dist/esm/plugins/*.js", + "default": "./dist/esm/plugins/*.js" + }, + "./package.json": "./package.json", + "./package.cjs.json": "./dist/cjs/package.json" + } } diff --git a/packages/chopsticks/src/cli.ts b/packages/chopsticks/src/cli.ts index 5a4cfb3a..198e228a 100644 --- a/packages/chopsticks/src/cli.ts +++ b/packages/chopsticks/src/cli.ts @@ -2,16 +2,17 @@ import { config as dotenvConfig } from 'dotenv' import { hideBin } from 'yargs/helpers' import _ from 'lodash' import yargs from 'yargs' +import type { MiddlewareFunction } from 'yargs' import { Blockchain, BuildBlockMode, connectParachains, connectVertical } from '@tanssi/chopsticks-core' -import { Config, fetchConfig } from './schema' -import { defaultOptions, mockOptions } from './cli-options' -import { pluginExtendCli } from './plugins' -import { setupWithServer } from '.' +import { Config, fetchConfig } from './schema/index.js' +import { defaultOptions, mockOptions } from './cli-options.js' +import { pluginExtendCli } from './plugins/index.js' +import { setupWithServer } from './index.js' dotenvConfig() -const processArgv: yargs.MiddlewareFunction<{ config?: string; port?: number }> = async (argv) => { +const processArgv: MiddlewareFunction<{ config?: string; port?: number }> = async (argv) => { if (argv.config) { Object.assign(argv, _.defaults(argv, await fetchConfig(argv.config))) } @@ -20,7 +21,7 @@ const processArgv: yargs.MiddlewareFunction<{ config?: string; port?: number }> const commands = yargs(hideBin(process.argv)) .scriptName('chopsticks') - .middleware(processArgv, true) + .middleware(processArgv, false) .command( '*', 'Dev mode, fork off a chain', @@ -44,6 +45,12 @@ const commands = yargs(hideBin(process.argv)) desc: 'Max memory block count', number: true, }, + resume: { + desc: `Resume from the specified block hash or block number in db. + If true, it will resume from the latest block in db. + Note this will override the block option`, + string: true, + }, }), async (argv) => { await setupWithServer(argv as Config) @@ -100,4 +107,8 @@ const commands = yargs(hideBin(process.argv)) .usage('Usage: $0 [options]') .example('$0', '-c acala') -pluginExtendCli(commands).then(() => commands.parse()) +if (!process.env.DISABLE_PLUGINS) { + pluginExtendCli(commands).then(() => commands.parse()) +} else { + commands.parse() +} diff --git a/packages/chopsticks/src/context.ts b/packages/chopsticks/src/context.ts index fe038c70..54aae0da 100644 --- a/packages/chopsticks/src/context.ts +++ b/packages/chopsticks/src/context.ts @@ -1,16 +1,45 @@ -import './utils/tunnel' -import { Config } from './schema' +import './utils/tunnel.js' +import { BlockEntry, GenesisProvider, defaultLogger, isUrl, setup, timeTravel } from '@tanssi/chopsticks-core' +import { Config } from './schema/index.js' import { HexString } from '@polkadot/util/types' -import { overrideStorage, overrideWasm } from './utils/override' -import { setup, timeTravel } from '@tanssi/chopsticks-core' +import { SqliteDatabase } from '@tanssi/chopsticks-db' +import { overrideStorage, overrideWasm } from './utils/override.js' +import axios from 'axios' + +const logger = defaultLogger.child({ name: 'setup-context' }) + +export const genesisFromUrl = async (url: string) => { + const getFile = async (url: string) => { + if (isUrl(url)) { + return axios.get(url).then((x) => x.data) + } else if (typeof process === 'object') { + const { lstatSync, readFileSync } = await import('node:fs') + if (lstatSync(url).isFile()) { + return JSON.parse(String(readFileSync(url))) + } + } + throw Error(`invalid genesis path or url ${url}`) + } + + return new GenesisProvider(await getFile(url)) +} export const setupContext = async (argv: Config, overrideParent = false) => { + let genesis: GenesisProvider | undefined + if (argv.genesis) { + if (typeof argv.genesis === 'string') { + genesis = await genesisFromUrl(argv.genesis) + } else { + genesis = new GenesisProvider(argv.genesis) + } + } + const chain = await setup({ endpoint: argv.endpoint, block: argv.block, - genesis: argv.genesis, + genesis, buildBlockMode: argv['build-block-mode'], - db: argv.db, + db: argv.db ? new SqliteDatabase(argv.db) : undefined, mockSignatureHost: argv['mock-signature-host'], allowUnresolvedImports: argv['allow-unresolved-imports'], runtimeLogLevel: argv['runtime-log-level'], @@ -19,6 +48,30 @@ export const setupContext = async (argv: Config, overrideParent = false) => { maxMemoryBlockCount: argv['max-memory-block-count'], }) + // load block from db + if (chain.db) { + if (argv.resume) { + let blockData: BlockEntry | null = null + if (typeof argv.resume === 'string' && argv.resume.startsWith('0x')) { + blockData = await chain.db.queryBlock(argv.resume as HexString) + } else if (typeof argv.resume === 'boolean' || argv.resume === 'true') { + blockData = await chain.db.queryHighestBlock() + } else if (Number.isInteger(+argv.resume)) { + blockData = await chain.db.queryBlockByNumber(+argv.resume) + } else { + throw new Error(`Resume failed. Invalid resume option ${argv.resume}`) + } + + if (blockData) { + const block = await chain.loadBlockFromDB(blockData.number) + block && (await chain.setHead(block)) + logger.info(`Resume from block ${blockData.number}, hash: ${blockData.hash}`) + } else { + throw new Error(`Resume failed. Cannot find block ${argv.resume}`) + } + } + } + if (argv.timestamp) await timeTravel(chain, argv.timestamp) let at: HexString | undefined @@ -31,8 +84,8 @@ export const setupContext = async (argv: Config, overrideParent = false) => { // override wasm before importing storage, in case new pallets have been // added that have storage imports - await overrideStorage(chain, argv['import-storage'], at) await overrideWasm(chain, argv['wasm-override'], at) + await overrideStorage(chain, argv['import-storage'], at) return { chain } } diff --git a/packages/chopsticks/src/index.ts b/packages/chopsticks/src/index.ts index 13065f4c..6becd69c 100644 --- a/packages/chopsticks/src/index.ts +++ b/packages/chopsticks/src/index.ts @@ -1,3 +1,4 @@ +import '@polkadot/api-augment' export * from '@tanssi/chopsticks-core' -export { setupWithServer } from './setup-with-server' -export { fetchConfig } from './schema' +export { setupWithServer } from './setup-with-server.js' +export { fetchConfig } from './schema/index.js' diff --git a/packages/chopsticks/src/plugins/decode-key/cli.ts b/packages/chopsticks/src/plugins/decode-key/cli.ts new file mode 100644 index 00000000..02292a8e --- /dev/null +++ b/packages/chopsticks/src/plugins/decode-key/cli.ts @@ -0,0 +1,39 @@ +import { Config } from '../../schema/index.js' +import { HexString } from '@polkadot/util/types' +import { decodeKey } from '@tanssi/chopsticks-core' +import { defaultOptions } from '../../cli-options.js' +import { setupContext } from '../../context.js' +import type { Argv } from 'yargs' + +export const cli = (y: Argv) => { + y.command( + 'decode-key ', + 'Deocde a key', + (yargs) => + yargs + .positional('key', { + desc: 'Key to decode', + type: 'string', + }) + .options({ + ...defaultOptions, + }), + async (argv) => { + const context = await setupContext(argv as Config) + const { storage, decodedKey } = decodeKey( + await context.chain.head.meta, + context.chain.head, + argv.key as HexString, + ) + if (storage && decodedKey) { + console.log( + `${storage.section}.${storage.method}`, + decodedKey.args.map((x) => JSON.stringify(x.toHuman())).join(', '), + ) + } else { + console.log('Unknown') + } + process.exit(0) + }, + ) +} diff --git a/packages/chopsticks/src/plugins/decode-key/index.ts b/packages/chopsticks/src/plugins/decode-key/index.ts index 0b1055e9..a1fc9470 100644 --- a/packages/chopsticks/src/plugins/decode-key/index.ts +++ b/packages/chopsticks/src/plugins/decode-key/index.ts @@ -1,39 +1 @@ -import { Config } from '../../schema' -import { HexString } from '@polkadot/util/types' -import { decodeKey } from '@tanssi/chopsticks-core' -import { defaultOptions } from '../../cli-options' -import { setupContext } from '../../context' -import type yargs from 'yargs' - -export const cli = (y: yargs.Argv) => { - y.command( - 'decode-key ', - 'Deocde a key', - (yargs) => - yargs - .positional('key', { - desc: 'Key to decode', - type: 'string', - }) - .options({ - ...defaultOptions, - }), - async (argv) => { - const context = await setupContext(argv as Config) - const { storage, decodedKey } = decodeKey( - await context.chain.head.meta, - context.chain.head, - argv.key as HexString, - ) - if (storage && decodedKey) { - console.log( - `${storage.section}.${storage.method}`, - decodedKey.args.map((x) => JSON.stringify(x.toHuman())).join(', '), - ) - } else { - console.log('Unknown') - } - process.exit(0) - }, - ) -} +export * from './cli.js' diff --git a/packages/chopsticks/src/plugins/dry-run/cli.ts b/packages/chopsticks/src/plugins/dry-run/cli.ts index 7c21b3d5..44f849d2 100644 --- a/packages/chopsticks/src/plugins/dry-run/cli.ts +++ b/packages/chopsticks/src/plugins/dry-run/cli.ts @@ -1,10 +1,10 @@ -import { Config } from '../../schema' -import { defaultOptions, mockOptions } from '../../cli-options' -import { dryRunExtrinsic } from './dry-run-extrinsic' -import { dryRunPreimage } from './dry-run-preimage' -import type yargs from 'yargs' +import { Config } from '../../schema/index.js' +import { defaultOptions, mockOptions } from '../../cli-options.js' +import { dryRunExtrinsic } from './dry-run-extrinsic.js' +import { dryRunPreimage } from './dry-run-preimage.js' +import type { Argv } from 'yargs' -export const cli = (y: yargs.Argv) => { +export const cli = (y: Argv) => { y.command( 'dry-run', 'Dry run an extrinsic', diff --git a/packages/chopsticks/src/plugins/dry-run/dry-run-extrinsic.ts b/packages/chopsticks/src/plugins/dry-run/dry-run-extrinsic.ts index 0e36b75c..2e1c4476 100644 --- a/packages/chopsticks/src/plugins/dry-run/dry-run-extrinsic.ts +++ b/packages/chopsticks/src/plugins/dry-run/dry-run-extrinsic.ts @@ -1,11 +1,11 @@ import { blake2AsHex } from '@polkadot/util-crypto' import { writeFileSync } from 'node:fs' -import { Config } from '../../schema' -import { defaultLogger } from '../../logger' -import { generateHtmlDiffPreviewFile } from '../../utils/generate-html-diff' -import { openHtml } from '../../utils/open-html' -import { setupContext } from '../../context' +import { Config } from '../../schema/index.js' +import { defaultLogger } from '../../logger.js' +import { generateHtmlDiffPreviewFile } from '../../utils/generate-html-diff.js' +import { openHtml } from '../../utils/open-html.js' +import { setupContext } from '../../context.js' export const dryRunExtrinsic = async (argv: Config) => { const context = await setupContext(argv) diff --git a/packages/chopsticks/src/plugins/dry-run/dry-run-preimage.ts b/packages/chopsticks/src/plugins/dry-run/dry-run-preimage.ts index 85fdbb9d..1d9cc980 100644 --- a/packages/chopsticks/src/plugins/dry-run/dry-run-preimage.ts +++ b/packages/chopsticks/src/plugins/dry-run/dry-run-preimage.ts @@ -1,13 +1,12 @@ +import { Config } from '../../schema/index.js' import { HexString } from '@polkadot/util/types' import { blake2AsHex } from '@polkadot/util-crypto' +import { defaultLogger } from '../../logger.js' +import { generateHtmlDiffPreviewFile } from '../../utils/generate-html-diff.js' import { hexToU8a } from '@polkadot/util' - -import { Config } from '../../schema' -import { defaultLogger } from '../../logger' -import { generateHtmlDiffPreviewFile } from '../../utils/generate-html-diff' import { newHeader, runTask, setStorage, taskHandler } from '@tanssi/chopsticks-core' -import { openHtml } from '../../utils/open-html' -import { setupContext } from '../../context' +import { openHtml } from '../../utils/open-html.js' +import { setupContext } from '../../context.js' export const dryRunPreimage = async (argv: Config) => { const context = await setupContext(argv) @@ -81,14 +80,10 @@ export const dryRunPreimage = async (argv: Config) => { taskHandler(block), ) - if (result.Error) { + if ('Error' in result) { throw new Error(result.Error) } - for (const logs of result.Call.runtimeLogs) { - defaultLogger.info(`RuntimeLogs:\n${logs}`) - } - const filePath = await generateHtmlDiffPreviewFile(block, result.Call.storageDiff, hash) console.log(`Generated preview ${filePath}`) if (argv['open']) { @@ -96,7 +91,7 @@ export const dryRunPreimage = async (argv: Config) => { } // if dry-run preimage has extrinsic arguments then dry-run extrinsic - // this is usefull to test something after preimage is applied + // this is useful to test something after preimage is applied if (argv['extrinsic']) { await context.chain.newBlock() const input = argv['address'] ? { call: argv['extrinsic'], address: argv['address'] } : argv['extrinsic'] diff --git a/packages/chopsticks/src/plugins/dry-run/index.ts b/packages/chopsticks/src/plugins/dry-run/index.ts index 133b11a9..643a40b0 100644 --- a/packages/chopsticks/src/plugins/dry-run/index.ts +++ b/packages/chopsticks/src/plugins/dry-run/index.ts @@ -1,2 +1,2 @@ -export * from './cli' -export * from './rpc' +export * from './cli.js' +export * from './rpc.js' diff --git a/packages/chopsticks/src/plugins/dry-run/rpc.ts b/packages/chopsticks/src/plugins/dry-run/rpc.ts index 27900394..15efb330 100644 --- a/packages/chopsticks/src/plugins/dry-run/rpc.ts +++ b/packages/chopsticks/src/plugins/dry-run/rpc.ts @@ -1,13 +1,10 @@ -import { HexString } from '@polkadot/util/types' -import _ from 'lodash' -import z from 'zod' +import { z } from 'zod' -import { Handler, ResponseError } from '../../rpc/shared' -import { decodeStorageDiff } from '../../utils/decoder' -import { generateHtmlDiff } from '../../utils/generate-html-diff' +import { Context, ResponseError } from '@tanssi/chopsticks-core' +import { decodeStorageDiff } from '../../utils/decoder.js' +import { generateHtmlDiff } from '../../utils/generate-html-diff.js' +import { zHash, zHex } from '../../schema/index.js' -const zHex = z.custom((val: any) => /^0x\w+$/.test(val)) -const zHash = z.string().length(66).and(zHex) const zParaId = z.string().regex(/^\d+$/).transform(Number) const schema = z.object({ @@ -47,10 +44,70 @@ const schema = z.object({ at: zHash.optional(), }) -// custom rpc name (optional). e.g. dryRun will be called as dev_dryRun -export const name = 'dryRun' +type Params = z.infer -export const rpc: Handler = async (context, [params]) => { +export interface DryRunParams { + /** + * Return the raw storage diff + */ + raw: Params['raw'] + /** + * Return the html storage diff + */ + html: Params['html'] + /** + * The extrinsic to run + */ + extrinsic: Params['extrinsic'] + /** + * The horizontal messages to run + */ + hrmp: Params['hrmp'] + /** + * The downward messages to run + */ + dmp: Params['dmp'] + /** + * The upward messages to run + */ + ump: Params['ump'] + /** + * The block hash or number to run the extrinsic at + */ + at: Params['at'] +} + +/** + * Dry run an extrinsic or messages. + * If `html` is true, return the generated storage diff html string. + * If `raw` is true, return the raw storage diff. + * Otherwise, return `{ oldState, newState, delta }`. + * + * This function is a dev rpc handler. Use `dev_dryRun` as the method name when calling it. + * + * @param context - The context object of the rpc handler + * @param params - The parameters of the rpc handler + * + * @example Dry run an dmp + * ```ts + * import { WsProvider } from '@polkadot/rpc-provider' + * const ws = new WsProvider(`ws://localhost:8000`) + * const params = [ + { + raw: false, + dmp: [ + // https://acala.subscan.io/xcm_message/polkadot-2ab22918c567455af3563989d852f307f4cc1250 + { + sentAt: 14471353, + msg: '0x02100104000100000b00280b9bba030a13000100000b00280b9bba03010300286bee0d0100040001010070c53d8e216f9c0f2e3b11c53f5f4bf3e078b995d5f0ed590f889f41e20e6531', + }, + ], + }, + ] + * await ws.send('dev_dryRun', params) + * ``` + */ +export const rpc = async (context: Context, [params]: [DryRunParams]) => { const { html, extrinsic, hrmp, dmp, ump, raw, at } = schema.parse(params) const dryRun = async () => { if (extrinsic) { diff --git a/packages/chopsticks/src/plugins/follow-chain/cli.ts b/packages/chopsticks/src/plugins/follow-chain/cli.ts new file mode 100644 index 00000000..fd1cb25a --- /dev/null +++ b/packages/chopsticks/src/plugins/follow-chain/cli.ts @@ -0,0 +1,91 @@ +import { Block, defaultLogger, runTask, taskHandler } from '@tanssi/chopsticks-core' +import { Header } from '@polkadot/types/interfaces' +import { HexString } from '@polkadot/util/types' +import _ from 'lodash' +import type { Argv } from 'yargs' + +import { createServer } from '../../server.js' +import { defaultOptions } from '../../cli-options.js' +import { handler } from '../../rpc/index.js' +import { setupContext } from '../../context.js' +import type { Config } from '../../schema/index.js' + +const logger = defaultLogger.child({ name: 'follow-chain' }) +const options = _.pick(defaultOptions, ['endpoint', 'wasm-override', 'runtime-log-level', 'offchain-worker']) + +export const cli = (y: Argv) => { + y.command( + 'follow-chain', + 'Always follow the latest block on upstream', + (yargs) => + yargs.options({ + ...options, + port: { + desc: 'Port to listen on', + number: true, + }, + 'head-mode': { + desc: 'Head mode', + choices: ['latest', 'finalized'], + default: 'finalized', + }, + }), + async (argv) => { + const port = argv.port ?? 8000 + const endpoint = argv.endpoint as string + if (/^(https|http):\/\//.test(endpoint || '')) { + throw Error('http provider is not supported') + } + + const context = await setupContext(argv as Config, true) + const { close, port: listenPort } = await createServer(handler(context), port) + logger.info(`${await context.chain.api.getSystemChain()} RPC listening on port ${listenPort}`) + + const chain = context.chain + + chain.api[argv.headMode === 'latest' ? 'subscribeRemoteNewHeads' : 'subscribeRemoteFinalizedHeads']( + async (error, data) => { + try { + if (error) throw error + logger.info({ header: data }, `Follow ${argv.headMode} head from upstream`) + const parent = await chain.getBlock(data.parentHash) + if (!parent) throw Error(`Cannot find parent', ${data.parentHash}`) + const registry = await parent.registry + const header = registry.createType
('Header', data) + const wasm = await parent.wasm + + const block = new Block(chain, header.number.toNumber(), header.hash.toHex(), parent) + await chain.setHead(block) + + const calls: [string, HexString[]][] = [['Core_initialize_block', [header.toHex()]]] + + for (const extrinsic of await block.extrinsics) { + calls.push(['BlockBuilder_apply_extrinsic', [extrinsic]]) + } + + calls.push(['BlockBuilder_finalize_block', []]) + + const result = await runTask( + { + wasm, + calls, + mockSignatureHost: false, + allowUnresolvedImports: false, + runtimeLogLevel: (argv.runtimeLogLevel as number) || 0, + }, + taskHandler(parent), + ) + + if ('Error' in result) { + throw new Error(result.Error) + } + } catch (e) { + logger.error(e, 'Error when processing new head') + await close() + process.exit(1) + } + }, + ) + }, + ) +} diff --git a/packages/chopsticks/src/plugins/follow-chain/index.ts b/packages/chopsticks/src/plugins/follow-chain/index.ts new file mode 100644 index 00000000..a1fc9470 --- /dev/null +++ b/packages/chopsticks/src/plugins/follow-chain/index.ts @@ -0,0 +1 @@ +export * from './cli.js' diff --git a/packages/chopsticks/src/plugins/index.ts b/packages/chopsticks/src/plugins/index.ts index bdc0f88f..fcb49f99 100644 --- a/packages/chopsticks/src/plugins/index.ts +++ b/packages/chopsticks/src/plugins/index.ts @@ -1,33 +1,51 @@ -import { camelCase } from 'lodash' +import { Handlers } from '@tanssi/chopsticks-core' import { lstatSync, readdirSync } from 'fs' -import type yargs from 'yargs' +import _ from 'lodash' +import type { Argv } from 'yargs' -import { Handlers } from '../rpc/shared' -import { defaultLogger } from '../logger' +import { defaultLogger } from '../logger.js' const logger = defaultLogger.child({ name: 'plugin' }) -export const pluginHandlers: Handlers = {} +export const rpcPluginHandlers: Handlers = {} -const plugins = readdirSync(__dirname).filter((file) => lstatSync(`${__dirname}/${file}`).isDirectory()) +// list of plugins directory +const plugins = readdirSync(new URL('.', import.meta.url)).filter((file) => + lstatSync(new URL(file, import.meta.url)).isDirectory(), +) -;(async () => { - for (const plugin of plugins) { - const { rpc, name } = await import(`./${plugin}`) - if (rpc) { - const methodName = name || camelCase(plugin) - pluginHandlers[`dev_${methodName}`] = rpc - logger.debug(`Registered plugin ${plugin} RPC`) - } +// find all rpc methods +export const rpcPluginMethods = plugins + .filter((name) => readdirSync(new URL(name, import.meta.url)).some((file) => file.startsWith('rpc'))) + .map((name) => `dev_${_.camelCase(name)}`) + +export const loadRpcPlugin = async (method: string) => { + if (process.env.DISABLE_PLUGINS) { + return undefined } -})() + if (rpcPluginHandlers[method]) return rpcPluginHandlers[method] + + const plugin = _.snakeCase(method.split('dev_')[1]).replaceAll('_', '-') + if (!plugin) return undefined + + const location = new URL(`${plugin}/index.js`, import.meta.url) + + const { rpc } = await import(location.pathname) + if (!rpc) return undefined + + rpcPluginHandlers[method] = rpc + logger.debug(`Registered plugin ${plugin} RPC`) + + return rpc +} -export const pluginExtendCli = async (y: yargs.Argv) => { +export const pluginExtendCli = async (y: Argv) => { for (const plugin of plugins) { - const { cli } = await import(`./${plugin}`) + const location = new URL(`${plugin}/index.js`, import.meta.url) + const { cli } = await import(location.pathname) if (cli) { cli(y) - logger.debug(`Registered plugin ${plugin} CLI`) + logger.debug(`Registered plugin CLI: ${plugin}`) } } } diff --git a/packages/chopsticks/src/plugins/new-block/index.ts b/packages/chopsticks/src/plugins/new-block/index.ts index d84e0ddb..d1e0e360 100644 --- a/packages/chopsticks/src/plugins/new-block/index.ts +++ b/packages/chopsticks/src/plugins/new-block/index.ts @@ -1,28 +1 @@ -import { Handler, ResponseError } from '../../rpc/shared' -import { defaultLogger } from '../../logger' - -export const rpc: Handler = async (context, [param]) => { - const { count, to, hrmp, ump, dmp, transactions } = param || {} - const now = context.chain.head.number - const diff = to ? to - now : count - const finalCount = diff > 0 ? diff : 1 - - let finalHash: string | undefined - - for (let i = 0; i < finalCount; i++) { - const block = await context.chain - .newBlock({ - transactions, - horizontalMessages: hrmp, - upwardMessages: ump, - downwardMessages: dmp, - }) - .catch((error) => { - throw new ResponseError(1, error.toString()) - }) - defaultLogger.debug({ hash: block.hash }, 'dev_newBlock') - finalHash = block.hash - } - - return finalHash -} +export * from './rpc.js' diff --git a/packages/chopsticks/src/plugins/new-block/rpc.ts b/packages/chopsticks/src/plugins/new-block/rpc.ts new file mode 100644 index 00000000..abc2c0a6 --- /dev/null +++ b/packages/chopsticks/src/plugins/new-block/rpc.ts @@ -0,0 +1,136 @@ +import { Context, ResponseError } from '@tanssi/chopsticks-core' +import { z } from 'zod' + +import { defaultLogger } from '../../logger.js' +import { zHex } from '../../schema/index.js' + +const schema = z.object({ + count: z.number().optional(), + to: z.number().optional(), + dmp: z + .array( + z.object({ + sentAt: z.number(), + msg: zHex, + }), + ) + .min(1) + .optional(), + ump: z.record(z.number(), z.array(zHex).min(1)).optional(), + hrmp: z + .record( + z.number(), + z + .array( + z.object({ + sentAt: z.number(), + data: zHex, + }), + ) + .min(1), + ) + .optional(), + transactions: z.array(zHex).min(1).optional(), + unsafeBlockHeight: z.number().optional(), +}) + +type Params = z.infer + +export interface NewBlockParams { + /** + * The number of blocks to build + */ + count: Params['count'] + /** + * The block number to build to + */ + to: Params['to'] + /** + * The downward messages to include in the block + */ + dmp: Params['dmp'] + /** + * The upward messages to include in the block + */ + ump: Params['ump'] + /** + * The horizontal messages to include in the block + */ + hrmp: Params['hrmp'] + /** + * The transactions to include in the block + */ + transactions: Params['transactions'] + /** + * Build block using a specific block height (unsafe) + */ + unsafeBlockHeight: Params['unsafeBlockHeight'] +} + +/** + * Build new blocks. + * + * This function is a dev rpc handler. Use `dev_newBlock` as the method name when calling it. + * + * @param context - The context object of the rpc handler + * @param params - The parameters of the rpc handler + * + * @example Build 2 blocks + * ```ts + * import { WsProvider } from '@polkadot/rpc-provider' + * const ws = new WsProvider(`ws://localhost:8000`) + * await ws.send('dev_newBlock', [{ count: 2 }]) + * ``` + * @example Build a block with upward messages + * ```ts + * import { WsProvider } from '@polkadot/rpc-provider' + * const ws = new WsProvider(`ws://localhost:8000`) + * await ws.send('dev_newBlock', [ + * { + * ump: { + * // https://acala.subscan.io/xcm_message/polkadot-ff66f28818d0b74573e62db8317e354b253fbc80 + * 2000: [ + * '0x021000040000000007903fc4db080a130000000007903fc4db08000d010004000101009c4b11a0974cba4a395c94832fba812868a6cb0ba09e8519b3521093ea359905', + * ], + * } + * } + * ]) + * ``` + * + * @example Build two blocks with unsafeBlockHeight + * ```ts + * import { WsProvider } from '@polkadot/rpc-provider' + * const ws = new WsProvider(`ws://localhost:8000`) + * // this will create two blocks with block height 100000001 and 100000002 + * await ws.send('dev_newBlock', [{ count: 2, unsafeBlockHeight: 100000001 }]) + * ``` + */ +export const rpc = async (context: Context, [params]: [NewBlockParams]) => { + const { count, to, hrmp, ump, dmp, transactions, unsafeBlockHeight } = schema.parse(params || {}) + const now = context.chain.head.number + const diff = to ? to - now : count + const finalCount = diff !== undefined ? Math.max(diff, 1) : 1 + + let finalHash: string | undefined + if (unsafeBlockHeight !== undefined && unsafeBlockHeight <= now) { + throw new ResponseError(1, 'unsafeBlockHeight must be greater than current block height') + } + + for (let i = 0; i < finalCount; i++) { + const block = await context.chain + .newBlock({ + transactions, + horizontalMessages: hrmp, + upwardMessages: ump, + downwardMessages: dmp, + unsafeBlockHeight: i === 0 ? unsafeBlockHeight : undefined, + }) + .catch((error) => { + throw new ResponseError(1, error.toString()) + }) + defaultLogger.debug({ hash: block.hash }, 'dev_newBlock') + finalHash = block.hash + } + + return finalHash +} diff --git a/packages/chopsticks/src/plugins/run-block/__snapshots__/index.test.ts.snap b/packages/chopsticks/src/plugins/run-block/__snapshots__/index.test.ts.snap new file mode 100644 index 00000000..9bb85343 --- /dev/null +++ b/packages/chopsticks/src/plugins/run-block/__snapshots__/index.test.ts.snap @@ -0,0 +1,16745 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`run-block > should work 1`] = ` +{ + "blockDetails": { + "events": [ + { + "args": [ + "0x00000000000000000616aa413eca6640", + "0x00000000000000000616aa415e1ecdd2", + ], + "method": "UpdatedInactive", + "phase": "Initialization", + "section": "treasury", + }, + { + "args": [ + { + "class": "Mandatory", + "paysFee": "Yes", + "weight": { + "proofSize": 1493, + "refTime": 242610000, + }, + }, + ], + "method": "ExtrinsicSuccess", + "phase": 0, + "section": "system", + }, + { + "args": [ + { + "commitmentsHash": "0x0e2090788212ce1bdca5c639818ed3522fa1c400128e0f53a7fbf4446ae4f659", + "descriptor": { + "collator": "0x921c700d0d0035423cda5dabfe06c5eaf1b1fd98747ef261ae54e415ba8af232", + "erasureRoot": "0x4eb63f82d7d8ee7fd25aa212787bfb337baab299d3bd5034353c8542bb952b0c", + "paraHead": "0x20c9363b1651637d421f86cf1b5a95e349b66ea4444abd382ee1fa07fe5e443e", + "paraId": 1000, + "persistedValidationDataHash": "0x7f9e02fc568c9b71162003510947d9c35a4e47190f74ac849334e18b84138b81", + "povHash": "0x70b81f8722c6a4beb46544b8375b2f45990eeb1c1698cba702a5e3d679382e30", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x7260e8c1461484278e3250991d97da38f79937331e1475896260ef31dc8b721670561b0073ce69379dd68792eaca69479b7f9b359ea8f7802a04c04959688d84", + "validationCodeHash": "0xc90110c215c22fbdbc9ad6dad96b04622672e7107e272f99b1d8087d886bcb91", + }, + }, + "0x22abec64e37493e248e1ca812c0cd774bbb822df4901d8bf8434a675605ca6195a052d017e987014c47156cfc9bd7cabf5fd4a00d20c0b333fdd682942ca63decc1634e49ae12012b14a9ef6ce5551d0a4b3cd6d125de300ee59732bc294b0e46eed75dc0c066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040561757261010173594d2d847d251c9df7c7f7f58da1a51d07c53fdb64e3a8037b49144d9db1cc8297042c36d17d5449463729ddc643f59dc7c8cf776bea836e86f2b1b3840a0d", + 0, + 10, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x0c412e6e2606170b0d9a506a1358fb7341bad6b2f30fd563d87dc56cbf7247fe", + "descriptor": { + "collator": "0xbab28b9bb643c51900fc18e21a6894792eb10aa1533f137dbce9c2ddd1dfeb16", + "erasureRoot": "0xb8802e47228a839a0ad70cfd543654eb0a5175014bbce1285bd34742c5197816", + "paraHead": "0xa4a792f6dab8de4af7ea80a14fbe822416b15ef4170681f617dd12d78a877c21", + "paraId": 1002, + "persistedValidationDataHash": "0x852b24a5f1763b3d9cd02b515e561ca6d81b24dc80b640dcab139575324d3585", + "povHash": "0xfcfa4fd84decb88184a6f3e09e836e0f41bc556480936ad16a9dc95e6af681cb", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x328167918574d78230d025e60d389d66884614d2ae491ac8690c6b10558ef518856188a53ae1acbaf293bb6eb8821f3457cd37952176b615d78baf638b5ca88a", + "validationCodeHash": "0x1cbac9d27448dc0777f7253fb8b976bc60c6077178a4cec9c8582d12199490bd", + }, + }, + "0x8539833edd560bdd98fb2b1ec2a9d9f9aed2c780cf69205c50205ba6399f1774122f4c00a313d9556c9ea52301e74bbdf946780e68e2a6c97397b1fb50401292a810bdd6dbaa8f147b9bc6edf97de0d7bf1bebfa7b271f1ac5ca6d421b79456149581c300c066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a04056175726101013072a194cbbe9d99411ad5c1e110e107ae2ddc4f77a7e4c83f7e771119718604fcd1ef6116ac3ccd620bdf02f4674ab13b610b6120a626a732b8d099f9c85686", + 2, + 12, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x60cb9e4e6b14ebe500f1cc39215dcda65a623a4e8171c5613040b803a529dd57", + "descriptor": { + "collator": "0x14bda95ebd707566956dab6c97ffd23d17438fd875136efa74cdd7007a05662f", + "erasureRoot": "0x1baf5c2473c44bc6f17e41aac98896dd337510227159c3cdc302452bf59a0aeb", + "paraHead": "0x0ac7b03739415c4dcaa5b6c140fb37b84ff642f6640126347dbd1c39b338346e", + "paraId": 2000, + "persistedValidationDataHash": "0x844018d9ce49d70af65670e76ef04a433a1c082f7a1659c60d6697fd7c2a567c", + "povHash": "0xf2cccfab3878393c71880cd4fc27cf24ca0f8fbe7a8d344a7f9c416e4a56fbb1", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0xf0f1f70c243822e2b3e1452373db9d957ecc6bfa923db229551b1e31f528b156d4ae47a6e6e47a153de5ae7dfe3e1e807c7f201257ac93b463252e68756ef883", + "validationCodeHash": "0xd756da5f7ee434fb9029951026766affd025c043dbfc29710e7966a3917379d0", + }, + }, + "0x70584fd0d546b8e9e9e3d1a371439a82a9a2606284d290f203c3001ef45357ad4a79250182d15f96eefe97451e47fd97e24e770eea2f3bded4a0fbc0e34d8e7f473e8cf455a29b26a9e2d8b0df76c5e69cf43870b6f4907d19d55b49b368008d3e20adde0c066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a04056175726101011cc139c42324143505af185331f30553c02f0e4e745cf0670108715047dbab36dcf9d630207409ef0dd9756f32a9a0ab3ed812901b2b2b8cc2b96689af0ad68d", + 3, + 13, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xf9e95e30a03c70cadce43a0d376c8bc276f65bd5eda90bb905a3d4b8d0bc28bd", + "descriptor": { + "collator": "0xc08e12358442cb738d84a1a17cb62be8c9433924e8f585d2b9387829c0005f5d", + "erasureRoot": "0x59ba7a5a2e017a1ec11c78be28ab07d3018f2b35b2f2ed9b9eb9c4af15179386", + "paraHead": "0x1de4d04492ac4ea1ce090090d55ebb78b12e83bd57d2651d54b67cc6e0f04d70", + "paraId": 2004, + "persistedValidationDataHash": "0x61c93cbf0079d2e336f89f2d70d34a6f3d49285cf9937d3fec580c6888441304", + "povHash": "0xfaf1505a0a1436b000e095fd62c0f92247efb03c27534057944eb98c654bf313", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x66a1f56e529d9efcc26d12f49571a4a2461863a6d7739afc88022ac99cad080f3063a8ae374fd8378d4010d1b6d619523efbd566967e940ab644e3292b940c8b", + "validationCodeHash": "0x01dc8e980878fa1cc66fe7fa4b64d65254282b8a91eb745da69040976defb86f", + }, + }, + "0x92cb56a15578ea5fa2233e57ccad302097fdcdd2c56bb532914fe702d740c4f2d21424014f0dd53549f4c633dd5747dede56d949e88f199fd8696e1ababa15b9d52ed96ec374c0f962cee5b8415e805cfb2ec68da77f01a3cecc0a71a400a2308719275d14066e6d627380f659b4784f3746b6325d84d74fc284d8a9f8fb1ee6a04044c468dd97120a141a0672616e6481015a91130365f3d818d3d21a1e7442e831ce6b759559faafd96e5f6f75700f1b418f13b5b7c6b5eb39097ce257fb78712ca68dc851cfa9d5954e3b708a8e699a053c88dfc97ad2459926d07bfbb4fa74be620366b55465065fc2b996f6c79e1603045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040466726f6e890201ff34613489a1fb5c820acec74c4bdf7e813d8b7bc91a22adb712daed9277f89a10845dacef8a57fa1624ae12140df34003f2f4d170789004b22eab96d123b03f6b0852b598d74b8959410e3669303d881490f769216e1c7563d8227acdd8b8fb322e7cfbf75c702777cdcebbfeaaacbbfcfded248bcc0180515a79d2110c2f048c4b1d97e9cd345b269ba0cea038bd32ecb1e72eaf1c8800adbe01282abe5a437f056e6d627301015ef578148600e0661235f62a4abbdd7942774a84980c4effd9fc0db7a733e103ffccd5a5842197e27389b8e97f16b34575cd39ed67b4d63cd1a85454c6ed5d8b", + 4, + 14, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x7e9a403a4c7fbf44845bb17fa19976a29306fdd5fec8afec1ed48cbce9d3bcf4", + "descriptor": { + "collator": "0x84052d2e1c254e02b10f57764a638ee974e9ad9bfb5054a3749baf31ec5efa1d", + "erasureRoot": "0x5c298d584214caeb3762555a0a2d72e3178380a3c61bd623d4587c804508756a", + "paraHead": "0x29e86aba92c6938b8585b4df81bd7bb3f396a5d60fd4915733317398f9d6ece0", + "paraId": 2007, + "persistedValidationDataHash": "0x1c8456cdd4de5e8275b872ea1a8b1d465e643a4a21961be8b6eec94bd50a01a2", + "povHash": "0xb2304661dca7ab7dfb98ca73638bf8c5d8aa1432ba119a7edeb60f53820bbf8e", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0xc8e65a9649ed478a2dc02f0f7cf71af519ceb4d8c5c0f151bf87d053fbb58b42e3be9fc931bcd50fee004c1ec346c418f686b6be26156587a5b7cac53320278e", + "validationCodeHash": "0x6f56b000a3d76079c777acfbeaf65361599b9421569cd36f4f80df39cf427986", + }, + }, + "0xdc8b97e7716f660b1c4cd3881fc366ee870c56baf03fd38961bf826ffa13a59ebe10b2003ae56721fda3932547cc3c1c47e7688c61a68d0bf790640eb5fe0912c19c3a050403ef900f6e2b6ffa80ba5290a13ca428157ebacd5da88264e0c3670b8050bc08066175726120335d70080000000005617572610101d003bf209f6c3d265d50ed77f241326c6a82e1bcc1ebf479d78d5c79ad5fc850bd16938f2e6ca676c5df6aebbec929a3df5351ad13c7d27b4d1546fa2d0ff988", + 6, + 16, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x677cce1a9dfd7c2732bcf909cb0b260c8fd97bb9d31ff0c39c4c1a98fb22223d", + "descriptor": { + "collator": "0x8ead6347ed412e5de1b76121ad60300b1d888d8946b023f073576df833e0604c", + "erasureRoot": "0x2962a08aff0139645dc0b3d0f923143e3ca79216b87c886313349a5ec4dcdaa5", + "paraHead": "0x6b317da054a1e41eb3ecdd7f5d89df945dad05d980ee5c2505c249b2eb00f792", + "paraId": 2008, + "persistedValidationDataHash": "0x4f64d01902a10e9d75abe3af4f1ee36ab09e4dbad35e67e95d5cbbd6ca5e7851", + "povHash": "0x3a620b7a555ccca164881cb1b3eae27a4131e3df1cb56ff831664990a440769e", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x6a89c81091aa1de6fdf66d9e4d16fcd3f6f82c89a1b1c2383c367d3826961a24068c928d8beee2ab5bb4c18ad99c950020f43fe3ca872d28fd983a9afa83a083", + "validationCodeHash": "0x370085df65a76eb880baf100b4c7401d011a1fa1648876798a747f9aa372d114", + }, + }, + "0xec22801150dd2dca4e0af685a6c3eeb80843fe34d93d8d19db2a92a68dfa9d1a62bd7f0092cf5fd002f78fbf4c772b502935ce0e14d9c6d8921935e725e1cdfb7ee736fabf673989fe9b2ffa8aae0f808328b26e5d6fedd1b31f9c3b4e1b65763b6f3f2908066175726120335d70080000000005617572610101f0039e5de47a05afe9b9fff32e8ee72d70099eaaaa9fa75fd5a085812206b900883d2b17aa80bac0e352e69af81a33c5f8c20458d067a7788f00fa6e3bb97f8f", + 7, + 17, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x81b7fb236dbb7de361d251e5d92588f85f47e84aeb3e6854b337fffa80fcbbd9", + "descriptor": { + "collator": "0x486aa4c5beaad0a24893eaaabc9d9a9c35eacafb6a2634bb47d235168638346a", + "erasureRoot": "0x041a0e75a09dae025b502b1b988dfdc4026e4ac8fa049c2111713d01324fd470", + "paraHead": "0xb535f9b90c6e7c020aaab2b0965e22c419619f39fe7a1088157cc0eb881d445c", + "paraId": 2013, + "persistedValidationDataHash": "0xdbe098eb46142f74d196d75330db5fd51b0294881aeb65ced0e850cef85ac3f8", + "povHash": "0x44244a4f66e09e7d9fa8cc1f15f16cc1f1167864a6aa269a4636884927df3d1d", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x52833aa78c89ceb5f79fd524568541e6a986db86d4e824f4c3529044dae9181c3f210d806764b842f1a37f0d7021af47fb0b6d9dd87ab2ce8bd25b1fce6af68b", + "validationCodeHash": "0x8a155e1e06a00c28bd7beca09ac6a5ae143461c54658f2a436ba5c231e2acb89", + }, + }, + "0x18f704ad2e8b94520ccc219b871bb744a11d26f2d77d1a52f669c196aa1f4f8b5690d800486e4641547fa51acc974f1821eea340c7a9459b2e4c6f034b45c7f58be7cfbf1012fccea97adc203090bb3d04a754130b8123169ed6d43cb0e56ec894bd8ed308066175726120335d7008000000000561757261010100251c77366369436e0799cc2000040b2b2dc073389f0f996f00696bc36cf41ea066dd5dce1236e3313bbab795d13e19b5057204e96ad55111670962d695af8d", + 10, + 20, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x8185edcf047f0c3d1d209d90750144ed76d97507fc8eb2dd0bf1cf8e473ebb27", + "descriptor": { + "collator": "0x2a0a7d38538e9ff66f50125e6a020bdd7b1358cd4164601ef06f13edffd9e244", + "erasureRoot": "0x38ec32ab98a4cf242abbafd7c2145ab9ec3872115d82e5bd44001e72fb516008", + "paraHead": "0x61964ef2e8cfb97dd3f0a03d16a4c238a853e78bcbbd33fb58e0ab4d6bf1c5a3", + "paraId": 2019, + "persistedValidationDataHash": "0x0ba76fd1f8a5269b6faaba55cf57ebcd265ef433dc3a37ecde9a57464d4ddfd0", + "povHash": "0xd536d945af95860b93e81a9569fe58d1a527649990bc49bbeec00a8a54bc8b12", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x8e7f3d465d418eb2ef5e18a57cb82e66729239015bbf011c62f9ed520462bb6b0a039f77426f6da23020dc10ca465f6e3dbc2078012f82e099323b073b5b9f8a", + "validationCodeHash": "0xf3bc475f90592c2dda23b9772d5686ccc552595f65c2c3d3682ec5f64485963e", + }, + }, + "0xba82c89cc1469012daefe5399d349a01a9eec71d4b71434d1a887027a50ab0d562b4c5006bf9546ac1d3edd2e2a0c8cf6b182c18bf5d31fe095f89ff228fa2ef9488f69662489371646eb14af90a078e85465dcea913bf2f83ab1197e0146ef560b41d6a08066175726120335d700800000000056175726101011c4e44d6d2e247344d57a7730d28f003bdda19375b474591da97cc8b28ff562e684cc74c0fa68f32e85d4c5d471c061cc7cc06a121e5905de86806e41501e38f", + 11, + 21, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xec1ea0cb9a04be3596c12375ea15747dc71f8f382d176951eb67a8c45361962a", + "descriptor": { + "collator": "0xcc56deee86470e6a1eddb276cb92c2af66086509d9b9a6a09679a80168b96069", + "erasureRoot": "0x8a8510fda21b5404e435d5b1c82316dcb4ee47bc2e0d2d9f8a02cbdc69f9043d", + "paraHead": "0x5a30513310278ac74d98e9ec55719a97a0bf657e41e41f8b126a5365677a0f76", + "paraId": 2034, + "persistedValidationDataHash": "0xf5534d05702f0b7e8c81a1f74ba3cb596410e1ef32c03cc7753b593dbf4f1200", + "povHash": "0x02e3568e37b76f05c2c6876102076bdc3f6024219661faed6c6c06c426cebf68", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x6e8ce1e6b84b21241f7ccc67dd30a8629c8ebb58991267984279bac2a7d21975eac3e8f273559c1c71d4fff4f1b3fc57af34d948fc497fdcb713592905983787", + "validationCodeHash": "0x8098f1cbfa449d9bc37d8d4472771f65d1470d389e7f53d6df883fae74dab5b2", + }, + }, + "0x4e69ab5dae982857e2cd3be4fce28f202bd62f15f54361b659a37d82a9ef88cfcecbe4002bcee2d6c3692e08319c626c94122f0cce578cdf3c0858e265497245136d6cfff73dccbb31b244a289ff89db4617e902605c9addae60ec50da640b9748b269d108066175726120335d70080000000005617572610101c60f1fe340f7a8e1268c70522f203b33047669eeef6f4d8bdf395d2345d7f17da025456b35f214ea4354d10b0e7ced888c05b5b3a075dbc349c42019749ec085", + 18, + 28, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xc1f2bca350fb5b5288e008fabe9d1e7fe3f3af08b19376f2772cb85a530d59f9", + "descriptor": { + "collator": "0x0c10d20d350987ee531b54fa37e98a654b224b418f6312616bd9a110271d5f3a", + "erasureRoot": "0xb1d4c2a34b27fc4d6efa0c512d64c4c5125f02d224416778fcade35913463b36", + "paraHead": "0x35f41df418edc161464549d47040309fd4b6a8245fa29486481d1a9462191e9f", + "paraId": 2037, + "persistedValidationDataHash": "0x9fb0b47bb6a3e6d05c0f174b2f7d5881a3d9bd4e680fa7ec137803a2651b8d69", + "povHash": "0x19588a50ce541a1c760569b1eb486658c3648bd1a5960836aea110f6d79f7ffd", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x386e61c5e00bf3534fa2ebfd853f73edd2fb76143107ebf29234ec590d98132291662bb9efe4a2dd13005828e7919f894982c20966d18dbd0fd253dd2ea39589", + "validationCodeHash": "0x4587c0d2a53903b8573694aed33a048c1858b7fe6f3985ef467a9fc8c9defe9a", + }, + }, + "0x159dc3fb56fb70cb54f76a6ed216d74a82b56acc2b8595c7533df48b15dd366456c9da00641d1cae2f429fa88c46b79bd307eb7f4da977f4f5cc62181b9f6516648383c291277b6e9525159692b762f73d19d9e6662fcef8a6aa6112860a3ef54c298e3d10066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040466726f6e880103248d4be8e7d5e83b4388309fbe158516640f290bba7ab5d5a8c6dac41650a10005617572610101f8d45a7a23c8bb14500490255a3f5a319f348571b04d77e90b3ea35a80907449aafe8f60f8a50090427d2411f25de3fed419aae902989788dd1e0e53be50af84", + 20, + 30, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xddb06435304085b16cf8f321e1dc59127b21bf36a5128b8a42a53ddb0a21abf4", + "descriptor": { + "collator": "0x36c4ec160038d9042b04ce6954a3b001d0170036e313a3f125aac455ab96482e", + "erasureRoot": "0xcca9ff8ad33d71879a75745678804febeaedc2eab0a12e2ec588b98aefb429ca", + "paraHead": "0xa3415528d62e24e3d932bfc0abfb0b16ad33d580d6710bdc88d811915781d072", + "paraId": 2046, + "persistedValidationDataHash": "0x60391ba33983f7a998377d8ee488d13bce694261659a2d54f3c9432306f65cb8", + "povHash": "0xa6bed314acc42f5100ce09a4627b7628bebbe32722a78d1b17919dec7853de1f", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x64b74d552a20675b9c1842f70f8334b67f5cfa2558682c87a633a77e0485bd22be843588f716b9a3718522a8f5fd2870a1aa6932b63c3fae5f4ca1709408c18a", + "validationCodeHash": "0x5fd20ad807e85f9829a7805488730f6c4942c839bdd99aae8d3139aac1e1f577", + }, + }, + "0x63dd297362596a5f93cdf4f6f5d9304a2827d6251fe11dea402c121a39f686209a4f5200d4de2ee339a4c3b03781eb497f9f35b7a9e66597c8cba2e053299db8cb23251e60754acfbada1308a1a44fb9a18375e025f4ef013704e21c655daf4c40c98c2710066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040466726f6e88017c7bed4ac33eef9c98d844457f6a7211a07fb459362a7bc5b822d7bfcac55bb80005617572610101fe5346cab80c7e40bac20071d29704bf560f656e94c62d608fec2214c90c7e6ae1e5d4a2f04293e5d3422bb5d902f5754b78f81555d73809fbea87062a1eac8f", + 24, + 34, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x1678a7d74f1430f40e2fae8f3494a2e06ef9b80efe7f7d980659df622c822c98", + "descriptor": { + "collator": "0x62c3950807b3c942628dfef796b421a91c4af37965d6191a944eb52d98a8555f", + "erasureRoot": "0x6d1b373ff7357fbe758733f0918a1ddada3abae4a541008206e30eda57327918", + "paraHead": "0x0d059434ce4d179c83ec6d0753d7d26cc3be1d4be10afa079ca54ff9ec2a1cd1", + "paraId": 2051, + "persistedValidationDataHash": "0xb07a96b93db8cbe7147af331d0fdd26fec5e93e1a78e62d14f715da61e1b9245", + "povHash": "0x872df3c76c2a34a4fa1e63fea4d42e5bf8ce87dbdef2f238c0ea7a779af8749e", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x3085386ee7c0d0449bb8c337018ca51d969eb6faf44a3564abbf34771c31814e9adacda17ec9159676f913b65859afbbe660c158809347d416e5f130986ffd89", + "validationCodeHash": "0xf24b1c1afe56fbfcc4df921379be93d6320632d3d5cb60e54eab05a43d397434", + }, + }, + "0x777a101bb8e7a8c76bbdf0e6ed6678ea45b23c30f95df47f6e7fae6e398162fa46889000c24b15f18a12b9091585b70916d900f0ef17b38d77d70334eb9afbe25f407f08b5c554175b0fb5d2eea4936b8369292d1f387c3bec20c301f5b1f4b4512aa5ef08066175726120335d7008000000000561757261010128e7f09407d0a6d5521ce46aed77be59ee453eb38fd78225f99a348d72116b732450f30297240696dbacaa68f24c717db9be5ab3713ecc0c60fbe8bcaab05b8f", + 26, + 36, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xb5c93d54f7d47e9e230422460bc11010b22f121af9bf19d24186f852e797397e", + "descriptor": { + "collator": "0x604bd22fc4ec65f712bfd5c6044181fb483054bef62fc927ddf21f31d4bc736f", + "erasureRoot": "0xfba1e099f7c78b13e910174f0eeade132ac7ee00be70f796b47cf57e909f0e17", + "paraHead": "0xc8e6a0f330ee8062fc26cb6d94004ff461ff30c2ee47b7411aafec4821f35cc7", + "paraId": 2056, + "persistedValidationDataHash": "0xf9ca35a64e5cc99ce42ae9319ebf34b261b2bc594ec21b80309d4dbe2000d264", + "povHash": "0x90d9b60ef3ff2fccee057c666cb781be174ae1ec803070ce0db1420e03a04796", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0xd098ad5be9d738dd892eb5136a33b9c2cf61c51c1ac4607334965d0775d0d01bb81b91ce43ef69108b18ebfebd1e7ea32ff8c8f36f3b61ad69e3b6064871d38e", + "validationCodeHash": "0xfea7101fc0254e4e0ddd3afe1901e01e476dddc0d1b4e3224caf9519e3a712c0", + }, + }, + "0xca95cf9b8f5fae97fe63e55cf163beaf7cf312ca6a1905874d877c0203d5368a425f8e005d4ffa776e2736227bd177a295f95d1ca58027812f5b035522df5daa499535a5e72385e0101b07e9f8530630b7c37eb5188b254d808233252c9f2429480b07d708066175726120335d70080000000005617572610101eaea2cb7608efdb377698f80d4daec18b04e00b3ae99fb105fed10e54577ee53842477b3568c28baf56c6352cfc59ca69348841ea548f3edb2fd49613314a18f", + 30, + 40, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x0ce8341414f5d3136c8767e20598bfa10e3fde60718df270348fc4e6e673b89b", + "descriptor": { + "collator": "0x74ee77bd39b19e51d65dc52ccde7273394f32a3698946392983d65975608843a", + "erasureRoot": "0x712325d679cafdc52e4707fc7806926a8c3b2b75bdd72a7dcd2af5444d8ad01e", + "paraHead": "0x57d9318221d3b394d4087c993d4988324d0613d01f278ee66266eaba0282e358", + "paraId": 2058, + "persistedValidationDataHash": "0x7f1083ae5c0e77bc8fefe5ba11929675c3cd4b336d861a40f2c07ad164bf4490", + "povHash": "0x79c8aec9c0095e04140b2b4bf55d2b6401f685f563b1f9a419bcbeb1597e9918", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x8e12f7c5e591184aaeac8a1d69b40de51d158817c0ed9fc554abc133f7b7d33042b011b53782e8059f376eaee2ec2857b6e67f88fb24a6ad0a2a9854d09b3783", + "validationCodeHash": "0x349bac4ca39f6f77e5d4dc7b8435177212609badfe18bd85c4ae6bf2d1dbc89a", + }, + }, + "0x6d344c177401040c060541f9544dd283d265cead206920b64e33110a96e36db1024d0300ade87d707d381fe47a591f5585918980a82b0f4f229560984c11fa7d12e8f8661a7179099298604be1d8ab66862d786b59b50a01afbc44139c7278b4362b01d910066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040466726f6e8801cd589d633b66cb5dc393c9879457294144a5fc7e2ddb48cff80f587080faa3f90005617572610101f0d40fea5163de6c535953f3c101558f67ceffd7967fca06d32af05956d8ea3d5a774e5bfd28a24b94fc976a5505434bbc976e69bc3d23e5db4881f3dfb1438b", + 31, + 41, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x6bdce7931ffdd28f17b911547056b04558874e4471a861437528a1cf7f6d5743", + "descriptor": { + "collator": "0x8c53245207e4c4335d4e8e5065a9798f09e1a6e3a7dbe4f859a0ab21f85a2c40", + "erasureRoot": "0x17e98fec744795de03cced37ed6e516e87846bd55ac6a68567315f6fac54fa13", + "paraHead": "0x131603f7cb17acd270d5c539fb85ea0c3a9322ef081a72f1b82f058f3e35b261", + "paraId": 2091, + "persistedValidationDataHash": "0x628126610010184a943c0c1b19fe9448048306031fb5071326fe3ef50ef6a173", + "povHash": "0xb770a07244428ac01f61ecd16f0e2bec816f078e8f330e6c2de2710d1ef09eba", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x5ef690f331f3a093de5b0fcb479b06abf3b4d6df4297293b9d6e4b469d8a2a610c147c41d97c2dbccad9ef8872620a3c4ff8302f5e76f5781d50f554e5679e87", + "validationCodeHash": "0x968681974762c4dbaf591c05c4cd50d15e94f876bda8d5582e4de4fd361fbf63", + }, + }, + "0x550527a4ad76f73152190e8fe2ef9b9d04351ef591f80d1be651b507ce6c60f982b19200ec908b648b83ebbd02d9d7419fa19596bafa0827617deb1c3bf720610502bf9e0a62a6694d9c04204568e099fb3755ca17242c81065efe818928d3f6985581a308066175726120335d70080000000005617572610101b6764ce5380ed3cf21f7b2e5d7d2989d89fab08e634c864dfc08dbffa74d3e1b2e3bcbe1fad7130cde86834b82120bdf291d0eef09b0d530e5e17a83c5723088", + 34, + 44, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x663cc160a3e6a051138b80ae67123195d6eedc008dcba3af13a0d9d5a4f11567", + "descriptor": { + "collator": "0x4e5baf80b45e057132b4b72d46cd6c83ed263fe55d0604f4f5d0bea0d4e2b75f", + "erasureRoot": "0x1d71df26f05127b3495843cf081e4fa91c4c9422b3ba8ac0f1851fab7d5566e7", + "paraHead": "0x6367227d3fa159e74f3f5b43825b66a5ec56fea957fd2f30aadb618215cba2c7", + "paraId": 2092, + "persistedValidationDataHash": "0x4737caebc0e5de5a85eace3b67a5039b72784117dbaa2e91aa1da71f8ca87f09", + "povHash": "0x70ec4c2c65e45d5b3d135736c749d9de223d4cb2ba265829eeebfd94a3197ffd", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x942206ef39bb1149988f26b80ca6ae7d173da6a95e7006c8967063d7fb113313703a16d33af3dfec6451e6938447b3373d74e302ea82e88ac0adaa09871e5988", + "validationCodeHash": "0x14a04426b7fc33b4a5e0faa63c04532f01affe6e05b3864a25efd7d6f552c19b", + }, + }, + "0x9b5ce0147fac187a79c1e7df5795bdcdcd1048805bae1f356100420df5a42a081600ff006b55d664c0126aea08925366ac906c22d6de9699fa01f0dc7e8429a8ff4be1d1c7a1214ac0f90176fd4660b3f13531b24e66c704c01e8609c636d3ccefea7de708066e6d6273807c1cff1f7efcc8b797c83777c17436bdd7294c24ca59a275bddf002ff973b26e056e6d62730101324fb4c4532da0fe42a8905859c54575dc2e0ec250a43f7b1ec4f2ea4da3fc04f65c0406d6311a4ea77486fc6f75c7cbdc988184869206c7054cb8656d7a1c8b", + 35, + 45, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x00064d9dc3e241679965b399b7319cd2ac257b86da061107844d4c8a90f0f8b4", + "descriptor": { + "collator": "0x66064f3465604d64246bf810b9fe8e49a1cf470be7263b11a699edc83a9f352d", + "erasureRoot": "0x1c575ed0f6bf2b84502674fd7d8bbf33c701195071eb4275fd7ca6361f50ed1d", + "paraHead": "0x06bcaa86b23fa53728578b883f10ea93dec4346d862f66b9e74bc6436a02bf6b", + "paraId": 2093, + "persistedValidationDataHash": "0x5f6a300570d448c56c845f0398661889a8c0ad578d7404777870b802826130cb", + "povHash": "0x047029704dc2781b1a04b1f21ce09c6d3dc21a90941ed39f82b86e7af31c4765", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0xa4140048bb04649e8643c9fa2ec9b2a3fe8ab7d12f24e8b0d7a8167fb456da2df7e07a063ec4023699d1bd1f042e9af90568782f2aedf369adc8e5d5f1e46f88", + "validationCodeHash": "0xaaf8b111859be1b3d33934ee9bc8a6fdc2bd674f5236099d42bf469cae8e9dde", + }, + }, + "0x2d14d0e64f707ef39a2b21e5876e0bb4db89cb8b5060cea7e7ac805c0bd7ec6052356c0082abdf3a0be8ef8e3caede4f8e42235482fc0b031ca3fb1ea0f719ca5b4d9bddf4989bed5a862f938d7deef7ea5530fac612b1d167f4bb824ebe8fef3099f92408066175726120335d700800000000056175726101018e2f13a9db4056328608e918db251b8cbc2603b3e183b92fb7f60221483edc03106b0b8798a8475908252e5b6c5dd7bfc305fcb117128c0df0cbad22cc956887", + 36, + 46, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xf1b37fdbd1ee8a6aa7b10d0b5c9d9f51c5efa15bee96c2765126d8c00d5a976d", + "descriptor": { + "collator": "0x36342a9a7780f10c679df0b2405586d136f25881f187627542f4b969b614fe0e", + "erasureRoot": "0x6760b9ca90785f2e1af547f416b0d185f442f8ae805e67da066caa41933d6240", + "paraHead": "0x72b5b122aa5cab30e5e93377854b1d1932ba66935660c15de46137b317f2f9d4", + "paraId": 2101, + "persistedValidationDataHash": "0x58b35e1901929a537c569bf7b3a160cf1ba90eb2e23e72a43b08286577fa7b69", + "povHash": "0x169dd78cc5ef070e9fa7c70b549866d787d333ac5a40c706f726b41d0586b6d7", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x0835d95483d1d6aababc3583e0e9ebcd5384f3f5965be90085742cc4f202ef4316be0b56c2a670161391c281dc23d3ab55d34a2fce677863905b58ee2e02f285", + "validationCodeHash": "0xb25b6ad33d86e31a5f81ff4c731b7c5505850c0a5970a522c41045ec52dffc3b", + }, + }, + "0xc345b70a5c9245ac4ee22cabe47cfeac04021091b4b6e4ba03b8eaecb3ae2b4f0eb8f80006272eb99dade4607f0004bf28a27a2fe99b1dc3362dada56abbbf1b3f8f19ce29fc463f0f6cfe30224ea57146942d16d285c99263895e9459adda87da22e0e108066175726120335d700800000000056175726101010613c50b556df1f7dc7b4cb55ed82f82c9bcfddaf9c4e8c87cf528ece49f406974f73156c3330090661875abaa60889c14f0144873cb8977ba5b7ed32555ff86", + 39, + 49, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x38b689caf5275fb9c6a5bf3ea95d88be87729e17423efe6a9b91c3e3a0f6ded1", + "descriptor": { + "collator": "0x187759aafd34f901ace529c876422dfdfb1c127d677650ab414e638f27c72d66", + "erasureRoot": "0x9e37fd78556d0cf4ee872ae28aadb3c48e56bf15a0cf4d8ea9075618eeb30514", + "paraHead": "0x6242073775c55b1d319606485e263cfa7ac9af94e7edc20a4dcb6b833866262d", + "paraId": 2104, + "persistedValidationDataHash": "0xb09b997142c93bc06b0b1ef61451ca092df3c478c6667516408999273f7410f4", + "povHash": "0xc379a755a3d741ede4c131bcc5af5898c1a8022a941e2f6945acd6a09c9add39", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0xf6b8b38384f72f75a6870cd611750a141c3fb0dc2c839d7ed6ce9e19b3576e0ffde5c7c8866396dfe285f37f42a8f3eae7248e4d30b4b3082c088efadee24889", + "validationCodeHash": "0x0df5e7fe44f3bacb3193b6d8a993de42eff11b92940b81a4c71e15a2d1630b2a", + }, + }, + "0x6a4b49ac9bcca7b1f66b4e4e74d37a359329ec7f8406297ee37116bc79337a2126646100ec1af5644b9a5e79a5207a127e4d25373ae25bbf029aa9d2869f8d009477d34c0cf7ea5c77a35911207b0bed3a043f6dd3b66d44f0f3fec94bcf34be5161d36e08066e6d627380a2d32cfe62273ab87ee00d33bc81abb038292e2dd1e9584b1e81f295ba8ee25a056e6d627301015a01be5018f90bef32dc0fba27502d7c9d3c6dc5fc9fade256f3dc69afc67a23ac4418e3f4feec459a36ca2fc6bd80e988d64149eaa9990ba06195069a018d81", + 40, + 50, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xb7fe47325af0cdc596764ec459139abcdaf970054f8b131cce404104f85780b2", + "descriptor": { + "collator": "0x647f8bb7271fafa341216f74d3e0e04c9e476926f0c6053f0e1a03e5ca90d27e", + "erasureRoot": "0xb8d56e5329876b2f8fdf234edf1e79980f7e32c086790fe65b3ced61b8a499ce", + "paraHead": "0x9767aa0969fb568a58de7c4485208068a7c8accc89335bdd64ea936e8d949c69", + "paraId": 3333, + "persistedValidationDataHash": "0x6e65d841f3ac952797e538461ab5e3a86ed266a10fafa1f0d52b6d7d45306152", + "povHash": "0xd1cd3e4ecfb5e80ff9c2f8afa52db80edc772c025b8f06f30cf20e75e09063aa", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x9038d289b9004f849c478043298f72044a115bd0143dc674cb02593757ed4f000b4653036ec09e600dd9834eaf9bed3704cd36a4fe7959065fedf0fa1b4b648f", + "validationCodeHash": "0x6e25771c2505f549b5af7734c84213bd1fd39278fa8f07298ba69da55a5c7089", + }, + }, + "0x20d98e73a9d2a336a7da5bf0a10158578ff77b82554bb96094221d0df528a17ec6c468007607889634566f75cbfaf4fb8414943bb109da8c923aa4836d6e6af90302cb8da48db99cf00131ffcd9ac63ccac44b75aafbc5b803274ebe9b421154debbd20908066175726120335d700800000000056175726101010e2f4e67d5651b087d44390900f557743186f7828a5b9296cfdc8fa247da1c03a3f64ab6bb743e88ce6a45b0036183da9dce43f102f8ea00f1731d26ee18f98d", + 42, + 52, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xf1bb28fa7481f8510badec7b5a2bb932b5d9c1de132dbb39e7d25a292aa5252c", + "descriptor": { + "collator": "0x04d4879d7041bc691ecd91d5ca230318b5ad6835339060002bbd30819a95a56c", + "erasureRoot": "0xd623ff04e37c1cc44170c5667311235f41f0f703108995df2e62e1620c59b8ef", + "paraHead": "0xc95a2541ca0a4474c09823c087aac23dc17138351caa229b9149d87923953e9a", + "paraId": 3345, + "persistedValidationDataHash": "0xe8bd9a4b82ef8683dcce01453e10e1a55247030df3e522b1f44c23806293c8e5", + "povHash": "0xc4e6802703daa27d9bbf5447c5fe1e1f7faa57c782ac4c47c22873c94a2239b5", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0xe8e76c8d8a0f826eb2a9c5c10be123e064ffb8380b5b7919b252617e5d8aa722c7f457348404f5a027d71682844c7f5a88132820ba38202e8698358b93550983", + "validationCodeHash": "0x73f790417fb85f65160f31d6d8283f3685b9f6027d7516cabd0640f0750b32de", + }, + }, + "0x01fbe8a3bf06b88aab862fb972255689025c2b7ca767c5044dc317b2b79551299a490400ff4050d2641eb041b679a78b8b250373d778f290a8a8632be509641932bead583bc257582909c9c63f97848c59d83c2777bf59ca005e6883c9486622d51b40d408066175726120335d700800000000056175726101014a06de6711f325f97cbcc9094b909b0c8a8228558a14297dfebe4eb36322ef5cab97d9da5251a284b6ecbd42c1e543eece25ee207c878775b47ce9f9ab4bec8f", + 47, + 57, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x39b64cd685619117cc5cfabed04653166cf573d97f0f4fda94c7245e26518bc6", + "descriptor": { + "collator": "0xbc5888623192af1ef4f7b3d8f01ce5c71f8e564b70341721770a20b11fdca319", + "erasureRoot": "0xae96730dd75e652af8cb31962fd2ef9e4911a12ac9b8aa3136dd7b46cfa747ec", + "paraHead": "0x6e74b920f028dba3c11293d3926bf720dfdaa676e48e5fdd8c49cad142e534b5", + "paraId": 3346, + "persistedValidationDataHash": "0x3b1823a78edd8d4c1ff06e7463c80b731d51e73e6ea49e9a1242e21ca01d128e", + "povHash": "0x45b1ce20e797379cc7487684fc10d84efb10fd0fd201cc5443e16d3f551efa4c", + "relayParent": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "signature": "0x98a1ceb4a1513f8d6f99f9809ba4bb6c5cfce3f87b56699d248161c27871b517418b3be184828da9852b8fa8b0aaf8203c47adc9cc85efd97d2ac905fdc2a384", + "validationCodeHash": "0x1161fa8c2d2563429af767be4b1587b806118dcf2c16a881bb0f5f278f7fbe91", + }, + }, + "0xe8ef4e11f85cdf7005b404b9d1f60ee9b15cae543f7dccc9a0a779eaa0c45e8bba3e040095a29d6905379ca20e4ffb445f1c54ad55a03eece393e1a1f07634e007db3e9183a9db2ad9b67f4b243d4ce633b4c5b8c3982cf29f69925707538460ecf9c59408066175726120335d7008000000000561757261010116d35c68b66a4a981b2d9ad915c5cdc13166a4251a41119869373643f1ccb601e125a8532adc14ed0c877a6ad99c40d97811bda25f51a43c94a8d5007e40e485", + 48, + 58, + ], + "method": "CandidateIncluded", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xb1e9aaed9c50fd43094530ae0f1f2e4713658b634419f6f166d044107cb44f32", + "descriptor": { + "collator": "0x34bce420b5376344db4f9c04de7c2c35dc8bb49e2dd8580d933ef2c9ef484052", + "erasureRoot": "0xbc3f2f38198a7604d5f10dc61bd74b1ff2108cc2df05b1304a6c1cc3c675042e", + "paraHead": "0xafa5a5eb69dab489922f186997dea7c0ef610533a2142eff40586bda99a19dea", + "paraId": 1001, + "persistedValidationDataHash": "0x81c1db497beef5b3e1c6c50d6eb7784c132614f02f06d2e991794a9eeb59b881", + "povHash": "0x515f7ba9e497cdd448b0192808971b8930e978142924049937d5f4b93872874b", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xb08eb5b8e49f380d8e345779c6ef6b99fa0b31506b655c1b41b5017e8aa61b34ba6c3f29d51a1c7f31689420f986ba42f8686337fc842403c9089abf727f5587", + "validationCodeHash": "0xf626bf4b4a80fba4c6b21fda0c8b49c44a2115dfc5320d0a67a6e6c17e87a3ed", + }, + }, + "0x842570dbdc4d81d03128e685ec227b7a3144cfc33e0133529d1d819f2a2ef15d16829600ae88ff7fa5cc05a3b5d797e2398b9cbd1edc6b74256ff973508074f7ed2cd9f0afcc1e367bebf2051c30d93c5ddff2dd9568c0c69ab024679bcebb1b6b6589210c066175726120345d700800000000045250535290166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729fea14a0405617572610101c60d725111b8b192ec9373c8ef077171bff5bce1ec66c33ad867cbfd4cca420996789b6bf8c12f3fa6ed7a65414180c6799d1a70bbd93831df322af542d7f384", + 1, + 11, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x215f30e9f691fb84620ff1051541ff38849a7158b609936a67b036725b14c727", + "descriptor": { + "collator": "0x088b5e65c4b28d74bae6df0e1bbcb06b42ae37902dd4a22e98878e394a72aa31", + "erasureRoot": "0x834ad3bf487a9de3667e1be825463823254169d2af862040132d1b641d452da0", + "paraHead": "0x50bf2ab7be3d8f63f7f268f1b47b4fa7c75717325345b552c08173ba26b75046", + "paraId": 2006, + "persistedValidationDataHash": "0x68cfee47e8d353673c0c102126c4794f44031fe61fdbd9588adf65c123cf5f73", + "povHash": "0x84b45695fa54277005e7ba803243448a7defd0778d0f4e3190fe15611b050a61", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x109be59a09e082f2cee3aa1a413a20cb00bf8ea28dc73a71f6f37ae5044979131a89d25a701c58f0cf7b88923504a5f6c7ae46dc94764289e025477a66e36284", + "validationCodeHash": "0x665de129373c6fc927cc5320320e120b01af446e8a04430d6649a97099b2de3b", + }, + }, + "0xdcd5a05f50e27394877b0338870c15b4aa77931159b90acea3b5a379c72b785262a82401c3cda6067a0f3837db7e6bb1a4d386f7adcd6b9be66a9d1931019fe2c8194ec1ac5f0140e3898bbb50d518600e6495db22868d502bf0e2af0a1ae73f2689a61310066175726120345d700800000000045250535290166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729fea14a040466726f6e890201869fa7fbe9f0a8c681177f8f7f70cbff2037ef46b6a698b52d9ceca53ad7357b10680c1f393c6166fbdcc94c05e564547afe1fe2f1f0f3f06fc59b4889f6f2b4cd07b52874e8a7462d7924bd32f2091d5d456ea2b75ed47b2f0bfbf472fa65f434489dfe90ecf1e94f0cd309c868abeb93759297166bb300af2c56a72bd13378fbb1b8ea3dfe724c8498d749cabcdb7c00660cfcd8219a543757cd8476fb2c84880561757261010140485f3b47156f052f984412d32e5c8138dfdb42dff404a6da60679dcc0b797cd33d58d0123780949caa3c6d6145081aace0355aedfe78699c40b5a589d5878a", + 5, + 15, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x9b1665f8e795309fe3fd0384358fde69eebe300a55c7829e3dfb3776c00da15d", + "descriptor": { + "collator": "0x36fec74c47ae63e590c30bdcd2ad61421f53ecfeec62a087406d8bc7089d877a", + "erasureRoot": "0x6e2237470f29cb7849760a2508187989e89958cc6f9b072cf5b7e64d34eba82e", + "paraHead": "0x7443c966c47bee5add41aac1411ed51c7bf7bda5d3f013de6b2f49d2bbb18883", + "paraId": 2011, + "persistedValidationDataHash": "0xbf42ad0cb9cde1af904808e33f105cd938583cb5f70b1d49d7457e99fa7d43ef", + "povHash": "0xae9b745110d9a833b2c0b2d8d40a6750471fd279fc07245bfaa04d18e929cd89", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x2af03a5e9fe79882a6c25b6a869c9e562e9b865fa4281fb45b2b694182c2b879bf02a7b4bab3fd203dc141451c8fc47a6a17a3611c458afaf06893efafdb5e8b", + "validationCodeHash": "0x0cbe7526ccc44bc30e3a46d3c5f30e18935c3adff597f1ec0b621f46efa1e79e", + }, + }, + "0xe44c6118a1e1ace8cbeb98594c6188f72e319d41b70fddc2a1e08d96d68c9b1fe6a4db00254fe6eea7ddeba2c235b123f2148bc531398b9a6ed794bc1aa9a5027cc2b1e1d2c1aea70c43d96ea6cf818cacecb6d11312b489e62c5f04737e994d22b1205008066175726120345d700800000000056175726101010c911e709a98699155b610aaf530518096e6f2708aa71f62c983ef0fed8fe967c9fcb49421fa5557a6d80250466780f9ecd1eaf0e8cab76f98271a682da0f986", + 8, + 18, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xf07cdda2f9ec7c48fc3d5687e543f71d4db6fe8bf38051a7b981817676f805f4", + "descriptor": { + "collator": "0x38af43e5bf497bb4dda48b1baf8a3e3239baa9c0436720196c0a83be6b98212e", + "erasureRoot": "0x2b35b9a8cd21051557c17a4680a8be20242a7d0faed3ca6dca6ff8767043356a", + "paraHead": "0x2c9283bccdd2d23d2960fa740d15b8455365d2fbeded544b6da17e895142e040", + "paraId": 2012, + "persistedValidationDataHash": "0x5b2ccaed8444f3e5c50d1b2d8a41a7c0799108d19f71dd6a864e94e8c48634d7", + "povHash": "0x3dd34504fd032ea1440fe419e3d9beb41761c863227df304ab3a385c43d935a7", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x947bcf88f20fdc83bbd59ad1aa82da8b237052313aa56d91d3605cfaa13b1f70b21db8920a4ae0133fa65caccebb8e4b9670805a12ca6a74ddcc13d3cb7a8e87", + "validationCodeHash": "0x9fc8f19dc6d3f4966556139992c83c6f54abef6264b6a9c7ebb8243a9fd53245", + }, + }, + "0x26f98caf4fdfb94fef173990b77d634adf55323d6b5e3b6898495bfb5ac165ac6aaa1d01b3947288ddc2652305817a79b62f178a1bc8a339b1cc56ac9e030c4a726e5bdaa59f322d300b1173d0d77a86a5aca781d76bcee5d0fb92c34083a93c648f0d8c0c066175726120345d7008000000000466726f6e8801c5a60d8e3053e9d4430b3644733b8fa199a321e7e4b1a1008140129bb0e10bf20005617572610101641ea859a950459efee26fc3fcd8287416a7aaf8bea1e2c38be93f60ba357f084be7644743511cbc991e8a342aa84dd99d96ea591fbf4e3fd5368af294be4b83", + 9, + 19, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x78c22af305d232c0978fb983efc41330a48ac47db21a1aedd63a22d646b26802", + "descriptor": { + "collator": "0x449e038875bcd7b68758154109264251f3c6b84d1395957198bf8cb39f30e934", + "erasureRoot": "0x2d65198730c68549361d8371ca433526a7023bc336379c2594333daf76823e4e", + "paraHead": "0x7ffea3aa15dd7588873e3f774726c399e2af8690f64af69538238a70c7b908b9", + "paraId": 2026, + "persistedValidationDataHash": "0x45b1d394eeb1f2a26a7288a6b446361cecb1d2e138c93d8109afdc41403c2855", + "povHash": "0x4c1e42ed1cc74b6d33294727d75de7faa00e80e8e6ff9e04d9f3b606715e4d92", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x0e3d25bb91a4257086d214d66374a9a96838f7286aa80fad1d1bf78ea46d3a416a7d757425438c5d1d833dcec2a5b97029623f30b1babea300791d540915af8e", + "validationCodeHash": "0x207767fb73e1fcf8ae32455843419e51c94987228a4b77857aff7653d103cac3", + }, + }, + "0xacbb3d0a662f11b53bee55c592de298cd4d4eaa7fbef3fadee70be2bb9db2b17faf5e000130097212616d6d0fd078a05a36296a9d627e07508fb2296722415d732350d7f1f4dc0b5fd4dfb0028ef8d79fd16a6f94b3785eb1276a2d9e619d23727eb558108066175726120345d7008000000000561757261010106a42d999b0044a3a7c14b166255a38c87a9a01a73b1980f2156947659b5b119aab283c09fe17569f018a520513a1d46c1e5fda2bfaa23b88412df6028646d8a", + 13, + 23, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xfdce9847e4ad002474cbde21028c6404a93a4a3e2535274f8c1dbd2136e12887", + "descriptor": { + "collator": "0x86b64734fc2f4a78b337e299a52666297e4c6e9f373cd056df2a0d4cc0cd1725", + "erasureRoot": "0x441c9a1987786142e22a392cd72eb45c0e3b7c9dc48e6d715ae7103c252478e8", + "paraHead": "0x8699e8765c1aec206e0d80f31dbc735346a3f1d5479ff4584e91889c06fc6e7b", + "paraId": 2030, + "persistedValidationDataHash": "0x7b2072cb946ea7011c0f07d3747825e1d5a7f257d83ed7b53789c90ad59457c6", + "povHash": "0x0f691c2555cc87c53e82c67eab26a2a55fff5c856dc8539b1d330bbc8034f725", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x1c0acec361273e23654a4b0cdbbffc7c756f607892038ed79f8a9ecd286c877ec0bf774ec74e6df0b5e692d12e92baea93a7e696e2469d3fd7d881765fb0ed8f", + "validationCodeHash": "0x9b0320f665e103a6b614b812c6fa1569e2c7b53c4c98c5eee9e0fd126afef95a", + }, + }, + "0x4ec777dfa00a6968ad2d5b06f5323e88fd577a9a05e0e74d5f8128da9dc38dab0657ce00a8c918077241d427da1ff23dcc29a520ca0f07bdc4b06d17bc7cf9b7b6d047477987af21ee799223c397b674943a4d599f1b5c2758eb0ee120a17e17b4e90c7208066175726120345d700800000000056175726101010acc4afb6c2322248b272f50bc4a7b020d6922f5b32785090f341f276fbcd71b83758b6161d539e3aee43e3f470f3f71a5f454d34721a0882d34220c18381084", + 15, + 25, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x0cb2398f0181f33f833c449691fb34ad405520bd8c38c88e86a17cbbbab74025", + "descriptor": { + "collator": "0x0ca77d1cbfabe3485794fd86491a18048e0520a3524c6bdc7e5691017890e94d", + "erasureRoot": "0xb50008440c1bac3452d4a606a16edf418dbbd08911ec17f22f36e63ca4a9d3e9", + "paraHead": "0x129ec7d1f2f83fb0df4b829b20e25fa28b6b001ffea898a0aa1c57d5c744b1ed", + "paraId": 2031, + "persistedValidationDataHash": "0xa077a2e703cc2d2cfa0a11bf48492dbf0d8c8050b29a40b0a4b0ed65802556da", + "povHash": "0xb41e615729474d448c9d7cac6ecc4eabad7a71467c7f4029e05e2fc4ffc45345", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xb8744aa16a3cdf4c02dd11277a0eb22a39983f72f61ffe5e6bb5486a69239a4eb552a10eda1ca2778dde417b2b1f88017263120754234a82a0692bce55c5538c", + "validationCodeHash": "0xcd393115b86484068d173d2b582f843e5f7c15f42d4026470316ce9a64d07701", + }, + }, + "0x0685da51c301fba9bc71403856eb1d18fe9972570a4d3a34367161e3a04bdb5a1a05ff0005a23b8eb5de6766a0878928b8b0bfd8e807323ef79a992fb1b3ca00d2562d301c70c55c2c14c79723438527784828a73a8ee85e438dc1abb14d5ffb29b5479d0c066175726120345d7008000000000466726f6e8801ca3f99fe04016770998ddfeaf672a35a7d3a178ea559d8eb6a96fc2a3e84147000056175726101015ec4b582a9edc70533e385cf8a407e76c467165e54007dfa21122da547a83653ab0803d0532db6f4214878b4b598fc1f7d418b9fbc94b97c47d0b67dfe4bf789", + 16, + 26, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x1d638da30e25b8fd25dff45be1a32ee26fe0cb5ec4525bc6db6886e52cec8c94", + "descriptor": { + "collator": "0x9247e05ea9167e413d53cfbb6d2425fa4a7e587045ffe59e5cb12292414d9d40", + "erasureRoot": "0xda544a2cce6b1e099a76c09f21812f529bd3f03391b8acbb4382ccd0ef055884", + "paraHead": "0x951923807ea792b7647f6364b6a16a4805f5e41903e1d94938c9100e4c1ae79c", + "paraId": 2032, + "persistedValidationDataHash": "0x7d9335a339900ab6319773c33d71553e44201601b6a86f65c96dc8f2d57dc808", + "povHash": "0xf710d8cf9d853272d9582f36cbfc0f5462a0a88a3d829d246bb8b962de694682", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xfe6aacb297f282bfa876b8f8a7b46183f140c1081432784496b908096692736d57b1f24ad23a9018cb4b8aed5e1c1c507a4e1c89c4a25fc1e9dcbfc8c36baf88", + "validationCodeHash": "0xb9f8cb5040d1bbf541e0909a87a87b7101a8a43ad43eee2a62f712a8a2fad707", + }, + }, + "0xf6f0b607161e51dd978aaeea8749b3bf3c0b1d41c38109f5cee0256a941571e362e8ec006c9f69dd5f88774a0ffb73d275276c5a079b8de4229eb9192b6f5266b0b472d360621128687232d33947f5fcecf8c0609bafac7bdf184422266f6209a64f70370c066175726120345d7008000000000466726f6e88013ad0663f8da2d8f8185c72a10e5851c2e931fcaf02e1341b8a45cd28181ed60d00056175726101016af1c735e20d064cace90780a93c11a23f8ff0a6dc1a5b8d3c757ff52e731a79111039beb4cb99938314f95c1b14637a507f6723a691d69709415fb431e54a82", + 17, + 27, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xf8b39e0492eae274be6215f825efe3e771e6387db96f1f01c002ac8e1e4d85d1", + "descriptor": { + "collator": "0x7add50f4a537b69ac1a069d85b5969dc4e6f14f13311e994e43c88a5ca3d820e", + "erasureRoot": "0xf5f2f4a0445de28aae256a5f87cc0760ea20927546ed3d53bab217b075ebe949", + "paraHead": "0x5c74c1d74eaf9016d26cb67c176304788e2178174bcd66f53924a414879d6757", + "paraId": 2035, + "persistedValidationDataHash": "0xfd271daba2d9fb590142bce6868cbbbd0fec95e917c44b63ccb0a7fcf7d40715", + "povHash": "0x98ee2d22502c68e527b45e0a035382056681cd69c109be3fc90a14a3e1575d16", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x862b0380bc529ea6ddd75c61a3a64b0d5b9138e670a65c5a9a6ff89a28071070d085f985bfb55e22f5ccec11dea0f01ecbde3162545f463a4e53c30c119d5184", + "validationCodeHash": "0xc422ab75036b13335d16daf8eb4ac486673b5ba987b47f3b3073d277415f15b8", + }, + }, + "0x07c63ce4b54c4a1ad8f202bda5837d5768efb0f72e4fe65d91e20ab002cb01ab86d1e5009b501bdb8cb0834c3854b4962f43d302ef70e57865a637c82986430414980bdbd1c237628fe688b0175fee042ffba7e7f45e3d3d29a12453a2a7e42644934b6508066175726120345d70080000000005617572610101886a755e27c9511c1c40184af29799eb8fc3ea3e3cfb863d3520a9b2e3161555d9070552599fa9f8812dcc7463d2d40beebb233fe5b0e00dfd8f3ed79872d38d", + 19, + 29, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x7645f472595fe1126c125e050b012211e7082d645aeb2816a115968b07281abd", + "descriptor": { + "collator": "0xe0b5632409e78aba11d0d559c96acff0247194879afad0741ae3848f61e74a02", + "erasureRoot": "0x6c32d1e9b020d2d3f4f7a6aef673a941cc291070f4dd4f0919cc3a850f4a8b98", + "paraHead": "0x6270b82484129fa3e8f808c3bda80bf9614ef5017af435e7ff50de5a68a82cd4", + "paraId": 2039, + "persistedValidationDataHash": "0xd80d8aa66b597caadddfccd30c47f99649a55db09807ad5e44cfc0a9b2d6614a", + "povHash": "0xbcf9b988987fd02dea4733fa454e6d20464e372367f530b49080c7cf321c80f7", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xc08bf278544c6d723e25b49c8226696af983e63b170f79c5ad87fcca5079e973557b3554a3236f6855114e4f626133a0965dae5de52d8e2b8e7f405c2909108a", + "validationCodeHash": "0x088b3f2153fdc8dedb22d5984ca5773ab7e794d3a9a6f700d1fdac1e54ca83a9", + }, + }, + "0x9bd56c1a9c31ae98ae3c0d643e25c206107250bdb43d4fa0634845fecf7faa85f2ef81006e3ef94082384c33c633108bf7dfd7deab24726e69a34a0bec551712d602cafebceba9efe8275a13013c8a1813191c71f7c7dce2a85ecf1f3f8ed233482e983408066175726120345d7008000000000561757261010194adce8fa9e7a50c185af4445432bde3178ec637046770d5b351fa39dc414945074c8846f716faf38fe7a00feb277f6bbd1d36fff80c49f4366280159f409a8d", + 21, + 31, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x1d65fc0e7feb9e52e40b57d168e876d7093ff1a911d452a8f4a0cf8276e0e1ed", + "descriptor": { + "collator": "0xa604c6cd403daac04dc0c95fd573fbfc54f6359db5c549d626222973c88e9245", + "erasureRoot": "0x6d9dea464c880e6827b5f1c72acdb47fe7f7dd3b6764849023e5d7db2a8b40f4", + "paraHead": "0x3aae124bec893c6d9588b4a9a0dc592d1be3a41e8061c0673b2b244175afe450", + "paraId": 2040, + "persistedValidationDataHash": "0x4d69f9a5781d13c28b8355f96ced9f8623a5f165463c96e93269d54a910f8386", + "povHash": "0xa6b7d9a03eb71f39409558b24f8461837ffae480f56d8c87a252e91bd2674ba4", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x8cb5ea510c06ecc1561aafd614de19cdb0c812fb77f0f06be0a3b614c1bfe005c9f5e5a43ca9a2d62a6d9aa032f5b054c1167ea2e0a323eb2eeda7278adbc888", + "validationCodeHash": "0x22c6a3c71603225c485cd7bca887833449b3ad4578d440f2bb4bc8722a6e9e04", + }, + }, + "0x16ee97f9cd63bb9956ede7c9258bde5df092347a8b5fb89ea53c0daeaaebd5269ea4d500c9f37b9c4e937621d09b358a8c6ac8cdf7dfdfe9a1c3b7d0453f5dcff338c9bd1355a36e870cec9fc59ddeae24ed8700c0d61d5d381c41aa6cfbc15a766e148c0c066175726120345d700800000000045250535290166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729fea14a04056175726101017a727aedd45edece678de781c0b120b17a9ccf17a01f711563ea135a96109205ccffb0c49a6fd67048fdf660a7c272269bf8d59c89d9b7eb12148a5288a77e86", + 22, + 32, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xd602c5ccc4dd3f4fa71bd465940b17c5127df9f44ab463330055d7747c68dd72", + "descriptor": { + "collator": "0xeac753e508b8d16b4ab5b3709a0a5821144cbdb89e68967f7b02bb1af21a714b", + "erasureRoot": "0x03bc9f5e9b35af54a66d15ca36eb52117e98c69adb884f34f4b84ec17342f5aa", + "paraHead": "0xb45f6e456e9b91c4e8284239a1e6a834a7bdb7a7eb89cfa230b1406617d2adaf", + "paraId": 2043, + "persistedValidationDataHash": "0x06d151eeb3824eb6f0cc2ddc81f083e49cd4df8d969b6e132c678666e0b299e1", + "povHash": "0x41233730532342edd7f6d9becb76c8d7caa7aa80817c1abda327b6fe03198bbc", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xe60b63f5b812a3ec88c0b216447f1902ea15258a0cab4a81773fa4b08ef9ea29c3a9b16e9c700a9f597d89a307725957ff23795e0b3c76b3c516edc0b9f97e83", + "validationCodeHash": "0xc7f62a3b792962188d29434c701695fac145be19180c6121beac2e168c7dba89", + }, + }, + "0xac8940458079d15b63ffc2e5cfb7f50a589cd29c8f0eaffa2c3fe3d2518db8eb7627dc0073da7daa8eb8fb301595133fdb6c4d198d9c5ac6de7ac5e72f616534f04007b205ff02d4a0a6fa2122a963f0c3ad285cc693c299e4aa37a8a5b3492660310fda0c066175726120345d7008000000000466726f6e890d0192b670b693e51ac14253781854268a0cc979f5d694dbbf658576bbcb7413e1256801adf62c90a12c216d2a523ac23afaf369b004d41065312864a39320974a72ae33e44fa7d5fc04682f91870d433e216c627ae9783119d3d9659aeb7b81996ba28dd4d4447d023cbe6d6115764533ade07e38a76f0d9b31f95710b00b1d215cc02c3286240e61b35d3a3c2bbb6c5dec94997eb6d37d0166163f6eb1616c961bb2dba6a9ee43d84f12320176c305b315a35fa07951ad8d7c3fdc29af92380972cfdcc0bf2a0338ac9207c947d6c16e5fa658365cdb703f682206c24931e5174b0addec573809d9a1024c607c3844ea43849a0f53a0e70a6f57e13eeb501e28dc5cbb61c7e0c9e8366f9c9d3248138bfce7e9e8881e152e284e5386e7fe3a5dbcb2a3ad5796712c4f5aa1f6268281dc5d3f1dc1a2c1f499b63da1920eeb0df50b481408d9f1fa70599662686669bbdce56a016e0c377e0868d6ed190683ce8cd4a925de9d37bbeadb55eb1e545d2ea551575b2018dbed114dda8863830af2cfb42bcd9cac46feb0ac738d1bbc6aca88a673ac14a1616f7fe3e19de18eac5317eb382b9469a65f586748c09c0d1730376d2ab28e97f6081a9df7cee140180c3dfb6776baf7bd9670dbb2b95146d96ea1459132968ff996a694367c9c9660382098e0dc21a8af7213b0a1ebe3e0d94b3d111294bc4a868bd3f3b71b93ae10ce28a13962aca892c62f940701ed5e235f0aa6d33868343b1379a8ec88025dab078b9377c7a1312babdd4d5e50a3389e07662160830c453030d37439528656625ad658a21a04d3324a4acaff3516e6da59948755fdaf1cf372ca224597ba6dcf53555d8fdd2ca3ba56c7e3d4a3980d62b8faab0e0d34c4ccae563c47ced71c15660f8fea8aaead35cef36dec481f941cc2ae1185911ca0b801cf610310cacfd952b629165423910d68b6ca56ed778c79f4de50f7bb733a10c057be1980d50b7c29c6c69f1f0477d28cd27a44a28ca4fc0a12fcfc1e5db0b84cb65e750b6a0c6a517842591a4a02447e7051ba68b30223bdb3d1476bfb5eaeb0387f0616564d6be195cd5cea696d24bba5ff5f731e85a1b8d9142d302c7d01223f05d522dbd6c2ec07d778562ad21c33b0cd1e309831cdc90f09758639fcebed82019094ded6ec4d37b9f9b2e6e63db4502884014c7c0aeee35c1a85d60f0ccb949247025321bd8690da38056175726101011cdb4c9843a55df806824d95ff9039c8256314875758f90aa886583755cd726627c5c21404abd47b28b3d1a9c53ba1329d3b1fa14a32e3311445765e050edc83", + 23, + 33, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x7e4c8d53451a3fac517cd565de7cec5d60dd6a144c3921c5d5f0d243751d255f", + "descriptor": { + "collator": "0xc4ddc0b208edf9a6ba89eca5a3370018e9209a198b168d0c196f66107b4d7115", + "erasureRoot": "0x6735cdab2d3b2720a6ca23d08f33af152ea6624e017507b83c25072e4b061939", + "paraHead": "0xca758ecfac046d55e355bf851798181471dfa358d50eb460e8bbd5cbcd6c37cd", + "paraId": 2052, + "persistedValidationDataHash": "0x46108471ad3e4c9a3fdd9097d29528fda25f10589d758165bd97353340efd403", + "povHash": "0x9f571a07361aa886a54a88bf635add2df3510086f6c18f56df9697e32ec54746", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xac64ecd1c088e5cb428f958008487419cb5f5a39e0fdf1ad79843d6ab6a3983611517e5418c69a067873c6af2378fa27d513ae474a0111d731f8fe8322706487", + "validationCodeHash": "0x3197520fd2b95cc9d14e1fd96f4b3106e1c1dd52e0712dedcaf1fc1e7340900c", + }, + }, + "0xf2bf345c877a0179ffe678972d7dd04e356879f09c4e007f1d6c63ed09668f1152106100504b16b6a6179a5d7f9c9793a28baca4473cc2236e9700b8e49a4c4955b971ac32a9c4ab79494d72dc7cb987122766eb8b3439162a43acb85ee550f79c3925c508066175726120345d700800000000056175726101019801ee8e18c338a5bbcd2534b3bd89ad07801fcc2b7e4506233e9028127b4a09b75e8fae19d367b5fff199736c7f05cb2f4284eec6237fe0d937a48f3684408e", + 27, + 37, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xcc277e6d77133594730cf6cc3838e2b6993e31c4ea078380288e7944d64655d3", + "descriptor": { + "collator": "0x56d9deb60ec47ab2da0e4b08840d613d143dc6202d86a2a4ff1daeca55d0f30d", + "erasureRoot": "0x899c10b9c1c1a4d24f51d969792dd8c2b6a4b2dab5854079a2e128d80ecb9fa2", + "paraHead": "0x5a4c852abcdc4c60b2a6da1f0a1da29f2dc4521f31642773a84f36659cecf900", + "paraId": 2086, + "persistedValidationDataHash": "0xa1e2c868f5b4a5c982ada0bca8c204183a885374bbfc7a2ec325aa2454e98ebb", + "povHash": "0x5809b3d9c380b38f388b8d017441cffea65985570434ba49c2096b06d7c28de4", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x7280dbafdb1e6dc0b1cf0eb65511119d33304392a2a3dec87c051e14e16f527b785aca558f0248a09040c626a77e37677cc360fda33ae9b4b77585d523e97d8e", + "validationCodeHash": "0xc617bbd6231c429151c03b859a19e92831a7b4bc14b12cc5a9a6f9be99be677f", + }, + }, + "0x08f31e854f4197fd6e8c2b61a666b76d6f23462386e6b3a1fce22a6afe62325716ef2d01daa7638d645769233672d7bcb3624d477a3ac32457c6ff033323ebf8af9ac9ccbe671ed7c4eb9ba7b31bde450009e6a4e0d645a99ed8df6be5d7b41e265b5c9908066175726120345d700800000000056175726101019a09950748386c50143e7f1d0024baa1af6d67e4a6968608c77c970c484c3a6e379c22a30f5ccc21b95f98fc1e9823bc6d6cf94817f915e20dd2f99c31b55b82", + 32, + 42, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0x3d165636588da04cb8001d03045184a72629dbf9abc272f2ff6c04a11bfe7545", + "descriptor": { + "collator": "0xe483d298c8d6302c3cf9f682648e6033e0891910706428c3cfdd444423ecc607", + "erasureRoot": "0xbbd4abb1d91cfc8ae2aa516631ca8ddd1e16a17a6961dcb5b8eb209d74361e0e", + "paraHead": "0x82c3e2e211eb9bc74d5a54b9b1f5e69bb81b0ebf552a9fa1b43433b8a97649aa", + "paraId": 2094, + "persistedValidationDataHash": "0x4ab643be90b01dd56b1f99357d96fdfc1b65d341967078aee1dfdb26e0a52db5", + "povHash": "0x75331f761a6f3291bb0d0d7b6865867ee996b6400333d9582eacfbbc0b629e05", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xbe4377fe3f2fa565c30e1cb6e5d2596e00f52a92087b97125aedada86e5ec6448ebe7c88b36654938ea652c189c0cb7f326f8e3f935df8a2164dbb91219cef89", + "validationCodeHash": "0x1915b12af1b41674612e52d554ff1e56c5c0a4e8ff66a1d10eed853432d35803", + }, + }, + "0xd69d80a7c16c51a227bee83decec3e088de5046a12b462dd73da6232b502a2effac46d00d74136d95afacda8a7fda5b3f2b855d72ab19d69e65489761935c9204ab9486b62c81c9a3561b6ffb61e117f19a03fd6205e4d2548e5f5391b310d748d88f06a08066175726120345d70080000000005617572610101a213919fdf885fe22b32321d787bd092c147ea540bbf612b7c7e3bd61aade146c8bfe55bfbe65faac675a5f461778a44ca54314a2dad823ac35f55bdb5aa0a89", + 37, + 47, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "commitmentsHash": "0xd9f40f87d1904d3ffc27d33604375852aaec247b19d4ea55801a9e9f1d0d9e0c", + "descriptor": { + "collator": "0xe816db14581022097b59fc0ab855bf196d2028f78b6bb4589bf61271a52ef361", + "erasureRoot": "0x88693437a521bcfc422987d1372b397df4b218303aee529ab9a9eb62b507dea4", + "paraHead": "0xf646baddeafa3e194f58798af1ea362145ff3bad8f8a1a86ef1e57e9e6511ff8", + "paraId": 3340, + "persistedValidationDataHash": "0x5285f73141c251077d1f2b7436568f0c2f2d7aa74f0337d4a3c5117c1f4de4c6", + "povHash": "0xfcee3417f04ce21d7cdad1998c5feadc186c152b1c5df4943b0cf15bab149c8d", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xfaebbe677cb3739dbabf8cade29998523c2d031b6b96a2b8141522a5fc94862d664b32fcba8854e47d93a165c8d8c1f0632711ca0845bf7c9fb7fdfd8749bd8f", + "validationCodeHash": "0x30e9606177112b9f3a6272515b9c2073309b18549a1c09bbf37bbcf6cd2ed6bf", + }, + }, + "0x4b0bc2b486f8876b43ce78b1e91babcacdd1f59f5d64f28a8e99bc4d7a9c899ec6190400dc334d894cdf430634c3b00422446adb7999a3fca08812d2de672223d72e8ca3defef1365303be859d1d5241979b64fef02843f5f7ff4e3f74b5181cd250083d0806617572612068bae01000000000056175726101017e3f633fde0356ea3e869e887547c9af4110f0df695bc39620d6736f0de8bf22aea18ddb11c834dfc5a45ac114c0c7adafcb52f7cf87271702e50854dac78d89", + 45, + 55, + ], + "method": "CandidateBacked", + "phase": 1, + "section": "paraInclusion", + }, + { + "args": [ + { + "class": "Mandatory", + "paysFee": "Yes", + "weight": { + "proofSize": 15239920, + "refTime": 699629547968, + }, + }, + ], + "method": "ExtrinsicSuccess", + "phase": 1, + "section": "system", + }, + ], + "extrinsics": [ + { + "args": [ + 1698979446000, + ], + "method": "set", + "section": "timestamp", + "success": true, + }, + { + "args": [ + { + "backedCandidates": [ + { + "candidate": { + "commitments": { + "headData": "0x842570dbdc4d81d03128e685ec227b7a3144cfc33e0133529d1d819f2a2ef15d16829600ae88ff7fa5cc05a3b5d797e2398b9cbd1edc6b74256ff973508074f7ed2cd9f0afcc1e367bebf2051c30d93c5ddff2dd9568c0c69ab024679bcebb1b6b6589210c066175726120345d700800000000045250535290166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729fea14a0405617572610101c60d725111b8b192ec9373c8ef077171bff5bce1ec66c33ad867cbfd4cca420996789b6bf8c12f3fa6ed7a65414180c6799d1a70bbd93831df322af542d7f384", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0x34bce420b5376344db4f9c04de7c2c35dc8bb49e2dd8580d933ef2c9ef484052", + "erasureRoot": "0xbc3f2f38198a7604d5f10dc61bd74b1ff2108cc2df05b1304a6c1cc3c675042e", + "paraHead": "0xafa5a5eb69dab489922f186997dea7c0ef610533a2142eff40586bda99a19dea", + "paraId": 1001, + "persistedValidationDataHash": "0x81c1db497beef5b3e1c6c50d6eb7784c132614f02f06d2e991794a9eeb59b881", + "povHash": "0x515f7ba9e497cdd448b0192808971b8930e978142924049937d5f4b93872874b", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xb08eb5b8e49f380d8e345779c6ef6b99fa0b31506b655c1b41b5017e8aa61b34ba6c3f29d51a1c7f31689420f986ba42f8686337fc842403c9089abf727f5587", + "validationCodeHash": "0xf626bf4b4a80fba4c6b21fda0c8b49c44a2115dfc5320d0a67a6e6c17e87a3ed", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0xb88237c842afadbb0b0b90d0b81d68252b952b94b31d3ee7bbf40eb051a6fb0eb83aadeeb64c7b4239e1c23f3bc5bcbb111e1914ef02a9a28422f0e2b585168b", + }, + { + "explicit": "0x58ea5a84e8260e277bd34c129abca39ee0d5b2e5467ca2c9b0dcd9e338ba5f4d79fd14f08de3ef86819248127bdb31cf1830dca7811b342222d0074e215ab681", + }, + { + "explicit": "0x9a6a1244efb1ce4b3833f5d586521efa3216d92c92b0db9774dbea030a76a12805a1660cb09504e9c19ed4b085e5bfc6ab5ac531ee16b37c7e910ed29f5f7787", + }, + { + "implicit": "0x4af9df994baf78e1c57535c507237f874b5838f1d60b19ff54be95f89047df22f2e19da4095d673bf5a0bf1a1cd598d00e52ffb8286fbb950a9af81065ef9585", + }, + { + "explicit": "0xc4f5a8034ff0885e9de3c70a8c8fb1b6d39ba8e20969dc69410ddb6646f38a3622b57464e5513abd903e3aea0881ae7187d54f911619b5940de54a959b882e87", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0xdcd5a05f50e27394877b0338870c15b4aa77931159b90acea3b5a379c72b785262a82401c3cda6067a0f3837db7e6bb1a4d386f7adcd6b9be66a9d1931019fe2c8194ec1ac5f0140e3898bbb50d518600e6495db22868d502bf0e2af0a1ae73f2689a61310066175726120345d700800000000045250535290166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729fea14a040466726f6e890201869fa7fbe9f0a8c681177f8f7f70cbff2037ef46b6a698b52d9ceca53ad7357b10680c1f393c6166fbdcc94c05e564547afe1fe2f1f0f3f06fc59b4889f6f2b4cd07b52874e8a7462d7924bd32f2091d5d456ea2b75ed47b2f0bfbf472fa65f434489dfe90ecf1e94f0cd309c868abeb93759297166bb300af2c56a72bd13378fbb1b8ea3dfe724c8498d749cabcdb7c00660cfcd8219a543757cd8476fb2c84880561757261010140485f3b47156f052f984412d32e5c8138dfdb42dff404a6da60679dcc0b797cd33d58d0123780949caa3c6d6145081aace0355aedfe78699c40b5a589d5878a", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0x088b5e65c4b28d74bae6df0e1bbcb06b42ae37902dd4a22e98878e394a72aa31", + "erasureRoot": "0x834ad3bf487a9de3667e1be825463823254169d2af862040132d1b641d452da0", + "paraHead": "0x50bf2ab7be3d8f63f7f268f1b47b4fa7c75717325345b552c08173ba26b75046", + "paraId": 2006, + "persistedValidationDataHash": "0x68cfee47e8d353673c0c102126c4794f44031fe61fdbd9588adf65c123cf5f73", + "povHash": "0x84b45695fa54277005e7ba803243448a7defd0778d0f4e3190fe15611b050a61", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x109be59a09e082f2cee3aa1a413a20cb00bf8ea28dc73a71f6f37ae5044979131a89d25a701c58f0cf7b88923504a5f6c7ae46dc94764289e025477a66e36284", + "validationCodeHash": "0x665de129373c6fc927cc5320320e120b01af446e8a04430d6649a97099b2de3b", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0x48452c9e9f5e35f9db6ab7e2d04d6c6667f562df96e69f3817ee11228751de45ffbb9c763f072bd1d6866920652cf70e0a68ab234fc4c21a7b602b00e7fef782", + }, + { + "implicit": "0x5c83822e5b05f758c20cc5e4cc4fd5e82553b3253e2d92210935949e6819e1418f19e7b78b67c80de3e7c7e6c3340e8145326b6c13ec6e04863bf8ee3742cb88", + }, + { + "explicit": "0x1cd4ba3f4ad9936235800d364a7bbc083676b7e82d96b146c663b1ecdc39880baa917cb6f5f0941a1bf0711f56b23fa401346821927c0ebce66924622bce3c83", + }, + { + "implicit": "0xca94c2098a5079de62cdb15ffc1a1999f83e9f40497cc1241e042c8678cd77519e826c73a3b5e758585afc4001f3a7cb142a49c6429b927ae3290cd05614bb85", + }, + { + "explicit": "0x744ddcbfb8742057ad646af294923c5ae0c8744e9ff4c0d8fa849eb7899da076dc8f1bec47bc7dc6852a60e6869af3d1a48b10d819f4dde8e5f879f0b294b982", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0xe44c6118a1e1ace8cbeb98594c6188f72e319d41b70fddc2a1e08d96d68c9b1fe6a4db00254fe6eea7ddeba2c235b123f2148bc531398b9a6ed794bc1aa9a5027cc2b1e1d2c1aea70c43d96ea6cf818cacecb6d11312b489e62c5f04737e994d22b1205008066175726120345d700800000000056175726101010c911e709a98699155b610aaf530518096e6f2708aa71f62c983ef0fed8fe967c9fcb49421fa5557a6d80250466780f9ecd1eaf0e8cab76f98271a682da0f986", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0x36fec74c47ae63e590c30bdcd2ad61421f53ecfeec62a087406d8bc7089d877a", + "erasureRoot": "0x6e2237470f29cb7849760a2508187989e89958cc6f9b072cf5b7e64d34eba82e", + "paraHead": "0x7443c966c47bee5add41aac1411ed51c7bf7bda5d3f013de6b2f49d2bbb18883", + "paraId": 2011, + "persistedValidationDataHash": "0xbf42ad0cb9cde1af904808e33f105cd938583cb5f70b1d49d7457e99fa7d43ef", + "povHash": "0xae9b745110d9a833b2c0b2d8d40a6750471fd279fc07245bfaa04d18e929cd89", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x2af03a5e9fe79882a6c25b6a869c9e562e9b865fa4281fb45b2b694182c2b879bf02a7b4bab3fd203dc141451c8fc47a6a17a3611c458afaf06893efafdb5e8b", + "validationCodeHash": "0x0cbe7526ccc44bc30e3a46d3c5f30e18935c3adff597f1ec0b621f46efa1e79e", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0xa027651ef3abdf36a2a25f93441759614202f8f57b43853c5d82648da3dac77603886610b553c1eb1b354e02913c083c2d996236ebc66bedbdecf3de1ba11f87", + }, + { + "explicit": "0x4e088de72c30d79e82940af9e20bd41480144e0273e9c873691f65d29a664258e96dac4fbe7f201d933b4b2b148b2fba7905ec18214fce9b1674c518a1b9ca81", + }, + { + "implicit": "0x229ed2791ef0247adf85ee05f1c2eadae6eb4bfff1d504e4bb4c7d220eaa337e0cbc9b197e6416287563dc431f4e45b513ebcca26b6a3ec1e55f6a3cb89c7d81", + }, + { + "implicit": "0x645ea3825ab5ba93bdc0b79d29781baeb5668a7adec2a47947418682cbaaad11721e465fd94e54824ee0adcf68dac235cff8a2a5e06af05aef645ff094b1c380", + }, + { + "explicit": "0xd6d720cba159744fa829fb202b32188a4420d23aeef6ebd0176ac248fdccf1308676e97f6293510e1c446ae294f639b5731817a7597320dea4ecbc28f712da82", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0x26f98caf4fdfb94fef173990b77d634adf55323d6b5e3b6898495bfb5ac165ac6aaa1d01b3947288ddc2652305817a79b62f178a1bc8a339b1cc56ac9e030c4a726e5bdaa59f322d300b1173d0d77a86a5aca781d76bcee5d0fb92c34083a93c648f0d8c0c066175726120345d7008000000000466726f6e8801c5a60d8e3053e9d4430b3644733b8fa199a321e7e4b1a1008140129bb0e10bf20005617572610101641ea859a950459efee26fc3fcd8287416a7aaf8bea1e2c38be93f60ba357f084be7644743511cbc991e8a342aa84dd99d96ea591fbf4e3fd5368af294be4b83", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0x38af43e5bf497bb4dda48b1baf8a3e3239baa9c0436720196c0a83be6b98212e", + "erasureRoot": "0x2b35b9a8cd21051557c17a4680a8be20242a7d0faed3ca6dca6ff8767043356a", + "paraHead": "0x2c9283bccdd2d23d2960fa740d15b8455365d2fbeded544b6da17e895142e040", + "paraId": 2012, + "persistedValidationDataHash": "0x5b2ccaed8444f3e5c50d1b2d8a41a7c0799108d19f71dd6a864e94e8c48634d7", + "povHash": "0x3dd34504fd032ea1440fe419e3d9beb41761c863227df304ab3a385c43d935a7", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x947bcf88f20fdc83bbd59ad1aa82da8b237052313aa56d91d3605cfaa13b1f70b21db8920a4ae0133fa65caccebb8e4b9670805a12ca6a74ddcc13d3cb7a8e87", + "validationCodeHash": "0x9fc8f19dc6d3f4966556139992c83c6f54abef6264b6a9c7ebb8243a9fd53245", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0xd2f2f623d79ed5d3284ef4e05f2390e8ca9de563e1134e06662910d750d58a5416a0eef6bdd602a23e11c9c6faacd3ea261571719db68e0023b33f4de6332a86", + }, + { + "explicit": "0x363b1b5a58cf94d6d8ebcbe07dc0f684424d4f419bda4d0f7412d2a94f1f20747ba1856cd9412c83b1224f5b990e6f83e6769f476a1fdadf5a76f3975d0dce8e", + }, + { + "explicit": "0xa2acd29dd8951136aed54d1f2225c8504d2cf9b71cd376dced39a25c8826347cd40c6145ce8b6216dc19bf687897fae316ceb9cfcf25eec6bc59605e9613b08e", + }, + { + "implicit": "0x363adc93fc51ff4de41d077d33d629691c731d4f86048344a5e4fed325d371003affd21fa515b0d6c94ab33b7e3ce1d1a1d0b836389aa47f904a41aa4f9d4283", + }, + { + "implicit": "0x3e71dbf2c5df2979d16f6d37c24d17f852f6efa48815355a2c73b152addce11add5168629cd5869b86b78b03f4f11c096ff202c6bfa47ef03c13e959d6610589", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0xacbb3d0a662f11b53bee55c592de298cd4d4eaa7fbef3fadee70be2bb9db2b17faf5e000130097212616d6d0fd078a05a36296a9d627e07508fb2296722415d732350d7f1f4dc0b5fd4dfb0028ef8d79fd16a6f94b3785eb1276a2d9e619d23727eb558108066175726120345d7008000000000561757261010106a42d999b0044a3a7c14b166255a38c87a9a01a73b1980f2156947659b5b119aab283c09fe17569f018a520513a1d46c1e5fda2bfaa23b88412df6028646d8a", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0x449e038875bcd7b68758154109264251f3c6b84d1395957198bf8cb39f30e934", + "erasureRoot": "0x2d65198730c68549361d8371ca433526a7023bc336379c2594333daf76823e4e", + "paraHead": "0x7ffea3aa15dd7588873e3f774726c399e2af8690f64af69538238a70c7b908b9", + "paraId": 2026, + "persistedValidationDataHash": "0x45b1d394eeb1f2a26a7288a6b446361cecb1d2e138c93d8109afdc41403c2855", + "povHash": "0x4c1e42ed1cc74b6d33294727d75de7faa00e80e8e6ff9e04d9f3b606715e4d92", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x0e3d25bb91a4257086d214d66374a9a96838f7286aa80fad1d1bf78ea46d3a416a7d757425438c5d1d833dcec2a5b97029623f30b1babea300791d540915af8e", + "validationCodeHash": "0x207767fb73e1fcf8ae32455843419e51c94987228a4b77857aff7653d103cac3", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0x7c366d694674f78c2d23e0b512b9112e6b90c6bb10af3cc85b1fdc1a4f432f5770147f9b9dbadc573b13c4b3c719c5d50fd7f305d9732351e8f6778bff53e287", + }, + { + "implicit": "0x8c7b771f09a040fe99c0c5f855f80225b254a6acf6f3f6c615b94826ce37202b80d8403840b971815a0dd5fa5176810ff7adcf7972979b2fb148c07fc00a5583", + }, + { + "explicit": "0x6e3e67abb6d7f00d52e59e7a4cf085b90158934a8263e903da29eceb7bd0f75cf87c220c656d7aa81c56440dd66a7cfa7fe0af4fc85c724c3ff4a6ccc61cf588", + }, + { + "explicit": "0xa0339318ce2b6d8d91ba3b8d1af129225eac6e046dee581f1fe41d3d84184d0ce471e24c34e3ba8c59af283c54dbf947da4ae4aa2de13df4789849d1b2863f84", + }, + { + "explicit": "0x34a7f79d6dab6e1fd704c78c09874407434f415ec07832a8b3fd487b5007e244ab484ed5fa3e3e68f386502e120571438874d9dc5087cf1178a06bcd8251258d", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0x4ec777dfa00a6968ad2d5b06f5323e88fd577a9a05e0e74d5f8128da9dc38dab0657ce00a8c918077241d427da1ff23dcc29a520ca0f07bdc4b06d17bc7cf9b7b6d047477987af21ee799223c397b674943a4d599f1b5c2758eb0ee120a17e17b4e90c7208066175726120345d700800000000056175726101010acc4afb6c2322248b272f50bc4a7b020d6922f5b32785090f341f276fbcd71b83758b6161d539e3aee43e3f470f3f71a5f454d34721a0882d34220c18381084", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0x86b64734fc2f4a78b337e299a52666297e4c6e9f373cd056df2a0d4cc0cd1725", + "erasureRoot": "0x441c9a1987786142e22a392cd72eb45c0e3b7c9dc48e6d715ae7103c252478e8", + "paraHead": "0x8699e8765c1aec206e0d80f31dbc735346a3f1d5479ff4584e91889c06fc6e7b", + "paraId": 2030, + "persistedValidationDataHash": "0x7b2072cb946ea7011c0f07d3747825e1d5a7f257d83ed7b53789c90ad59457c6", + "povHash": "0x0f691c2555cc87c53e82c67eab26a2a55fff5c856dc8539b1d330bbc8034f725", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x1c0acec361273e23654a4b0cdbbffc7c756f607892038ed79f8a9ecd286c877ec0bf774ec74e6df0b5e692d12e92baea93a7e696e2469d3fd7d881765fb0ed8f", + "validationCodeHash": "0x9b0320f665e103a6b614b812c6fa1569e2c7b53c4c98c5eee9e0fd126afef95a", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0x76a009a149977a619a5424715dca56de66bcad320103733dd2582fcfa76370115a54d69d9258aa4de0f19961b6dfad4b93d3904a5cb07cbff172929261762588", + }, + { + "explicit": "0xf2ac4cbb59c04a9755986c447924d2a32973d493b55f1f1528330f3db4366e6d9a462896e2ebad94ada53d0984eadcb6e09109025e5e586bda284550362a4f86", + }, + { + "implicit": "0xc091fff3d6b4662b6c4be72ceb5fcc3b4d55ec2a722ed585f9be450329189217891b2fe84f8d0ff325c80e3be8ff0e1c1430d80ffadd2e2e83885aec893f9288", + }, + { + "explicit": "0x5e982338d8eee499c953f0ec1a1a235e635fab15108c0d2dbf92a38366e786292a38de9ef0851129b9096b14737a1c6610a5031bf0e6b5f9905ebd3ee8ca5d8f", + }, + { + "explicit": "0x3a051f7de3ba3c644c904e38ff8df87c8407257dc69c844f4a2dfc6ac086b66841726956316d8075d9273ca36eb643b63623298ae853157ca7127757f9453982", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0x0685da51c301fba9bc71403856eb1d18fe9972570a4d3a34367161e3a04bdb5a1a05ff0005a23b8eb5de6766a0878928b8b0bfd8e807323ef79a992fb1b3ca00d2562d301c70c55c2c14c79723438527784828a73a8ee85e438dc1abb14d5ffb29b5479d0c066175726120345d7008000000000466726f6e8801ca3f99fe04016770998ddfeaf672a35a7d3a178ea559d8eb6a96fc2a3e84147000056175726101015ec4b582a9edc70533e385cf8a407e76c467165e54007dfa21122da547a83653ab0803d0532db6f4214878b4b598fc1f7d418b9fbc94b97c47d0b67dfe4bf789", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0x0ca77d1cbfabe3485794fd86491a18048e0520a3524c6bdc7e5691017890e94d", + "erasureRoot": "0xb50008440c1bac3452d4a606a16edf418dbbd08911ec17f22f36e63ca4a9d3e9", + "paraHead": "0x129ec7d1f2f83fb0df4b829b20e25fa28b6b001ffea898a0aa1c57d5c744b1ed", + "paraId": 2031, + "persistedValidationDataHash": "0xa077a2e703cc2d2cfa0a11bf48492dbf0d8c8050b29a40b0a4b0ed65802556da", + "povHash": "0xb41e615729474d448c9d7cac6ecc4eabad7a71467c7f4029e05e2fc4ffc45345", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xb8744aa16a3cdf4c02dd11277a0eb22a39983f72f61ffe5e6bb5486a69239a4eb552a10eda1ca2778dde417b2b1f88017263120754234a82a0692bce55c5538c", + "validationCodeHash": "0xcd393115b86484068d173d2b582f843e5f7c15f42d4026470316ce9a64d07701", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0x629628723fd4f6a5c0f5c5c98f5f90009d3118b4ac0bb4d95d92d5ed622072521e221df6a1ee304c3f9cb2247ed37e29518b651402f1f2328d1a61b85fe93785", + }, + { + "implicit": "0x50e8a0bc93df5a222a9f432ac33445d987c4a65ab1e3ab4bd3fb90b12b79692d521abc6b35821fbcdb06516701d1278c18fdb185e9f98d07fcd5456378f32e8f", + }, + { + "explicit": "0x7e3bdf2ab8a46f3db9890d458bb1b34598937f34dd1e70f952de1f739b1b365d01075dcd6013a889f16874cf627ac1fa61aad8532f3423d3b32b175e46a8e58f", + }, + { + "explicit": "0xb879866b3e86077611ba8095d31f16a3b99e02ec41d58c7a79c526f839c59e1b81f7049612cd02c2ec3c370d69f0c3eb2ebb6a78fe6d5c825d74b9512b174587", + }, + { + "explicit": "0xa06cc198ab4275d7fc10d87d85cd70d735e9c5d769ba0072a9dfee29ce88966b61dc2a81ed315c73e5f4951ed9003da15fa722066eea89442f8017cf68cf3387", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0xf6f0b607161e51dd978aaeea8749b3bf3c0b1d41c38109f5cee0256a941571e362e8ec006c9f69dd5f88774a0ffb73d275276c5a079b8de4229eb9192b6f5266b0b472d360621128687232d33947f5fcecf8c0609bafac7bdf184422266f6209a64f70370c066175726120345d7008000000000466726f6e88013ad0663f8da2d8f8185c72a10e5851c2e931fcaf02e1341b8a45cd28181ed60d00056175726101016af1c735e20d064cace90780a93c11a23f8ff0a6dc1a5b8d3c757ff52e731a79111039beb4cb99938314f95c1b14637a507f6723a691d69709415fb431e54a82", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0x9247e05ea9167e413d53cfbb6d2425fa4a7e587045ffe59e5cb12292414d9d40", + "erasureRoot": "0xda544a2cce6b1e099a76c09f21812f529bd3f03391b8acbb4382ccd0ef055884", + "paraHead": "0x951923807ea792b7647f6364b6a16a4805f5e41903e1d94938c9100e4c1ae79c", + "paraId": 2032, + "persistedValidationDataHash": "0x7d9335a339900ab6319773c33d71553e44201601b6a86f65c96dc8f2d57dc808", + "povHash": "0xf710d8cf9d853272d9582f36cbfc0f5462a0a88a3d829d246bb8b962de694682", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xfe6aacb297f282bfa876b8f8a7b46183f140c1081432784496b908096692736d57b1f24ad23a9018cb4b8aed5e1c1c507a4e1c89c4a25fc1e9dcbfc8c36baf88", + "validationCodeHash": "0xb9f8cb5040d1bbf541e0909a87a87b7101a8a43ad43eee2a62f712a8a2fad707", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0x2066495b2a622780d00d98ba750e6cd3128f321ae988c901cac765d78ae7eb268cf828257452e8715cf2b1a8ac07100912dec1fb17eadf65d205a8727d840f88", + }, + { + "explicit": "0x8aecf1b7bb7d8c8ebab0d8af70041f2db7f61a405ff49b14d04c79ce78939e7e642b19224215bfbd5aa166854f7afbf4399f2b6be89ff884b82754b820ed0384", + }, + { + "implicit": "0xbacd413b0606ff876c1dbb0805da160d5adb236f01545aa950736640d482ad701cac7861851a68b765e3e26f773a26dca1ed19db96cb8c9b921e3ede4e121486", + }, + { + "implicit": "0x42645d58475c86b781546c6b8f5395c5b3e205bb23641abefc6ea34892b2032fda5a3587701a24097a6fbd9c87805a1a9fc8d2698872717e74d23918960cc08c", + }, + { + "explicit": "0x78fef717a740199fd80bc4baab93a8d5fa905259147d32c65db51c9b92c80d2031631e8e0ba451e4075d95a07485a489fc6f6c679965d2e4686ad5ea75888c86", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0x07c63ce4b54c4a1ad8f202bda5837d5768efb0f72e4fe65d91e20ab002cb01ab86d1e5009b501bdb8cb0834c3854b4962f43d302ef70e57865a637c82986430414980bdbd1c237628fe688b0175fee042ffba7e7f45e3d3d29a12453a2a7e42644934b6508066175726120345d70080000000005617572610101886a755e27c9511c1c40184af29799eb8fc3ea3e3cfb863d3520a9b2e3161555d9070552599fa9f8812dcc7463d2d40beebb233fe5b0e00dfd8f3ed79872d38d", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0x7add50f4a537b69ac1a069d85b5969dc4e6f14f13311e994e43c88a5ca3d820e", + "erasureRoot": "0xf5f2f4a0445de28aae256a5f87cc0760ea20927546ed3d53bab217b075ebe949", + "paraHead": "0x5c74c1d74eaf9016d26cb67c176304788e2178174bcd66f53924a414879d6757", + "paraId": 2035, + "persistedValidationDataHash": "0xfd271daba2d9fb590142bce6868cbbbd0fec95e917c44b63ccb0a7fcf7d40715", + "povHash": "0x98ee2d22502c68e527b45e0a035382056681cd69c109be3fc90a14a3e1575d16", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x862b0380bc529ea6ddd75c61a3a64b0d5b9138e670a65c5a9a6ff89a28071070d085f985bfb55e22f5ccec11dea0f01ecbde3162545f463a4e53c30c119d5184", + "validationCodeHash": "0xc422ab75036b13335d16daf8eb4ac486673b5ba987b47f3b3073d277415f15b8", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0x2c0aea69eff094a9bfc65b94b71807b9a1b03b9fa9fc9ac26624eae375c62b65a3eef47067678be3dcc3a7675a6a891af0bf8b98f9cc4bc8e3b6d330f2020185", + }, + { + "explicit": "0xdcc63a54d44c23483d4c02c49a6e5e6b8908af7160c0dde7eeaca28d3d6b8e02fabe2cd876805cd552004fbbe1a1f0fc082d6905ee898e5f8608957148adfc8d", + }, + { + "implicit": "0x320514e5e93fe130b1a01a8b82f4e5b472c10a81af54e311c2ec9fa83c87004fd0b2dbf02bdfedf0faf53289bfe40e7915e111f5f7eb0d56eb07634bf554d68b", + }, + { + "explicit": "0x3aa862454593c78560442e0fb951d41c4179dda7644b7a2eb78c83690fdb9c20991a629d1eee44bad09d35db8da4de30a9aec53b7576642411b9483dbe0a108f", + }, + { + "explicit": "0xd4a8a191e948e13fb4ffda3481a10b6a1e70ecc321832a56eaadbb12e9eaa406b0c454d1a33837d516c73b8b66005f70c6e691661f3173a81628cc4923b9b288", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0x9bd56c1a9c31ae98ae3c0d643e25c206107250bdb43d4fa0634845fecf7faa85f2ef81006e3ef94082384c33c633108bf7dfd7deab24726e69a34a0bec551712d602cafebceba9efe8275a13013c8a1813191c71f7c7dce2a85ecf1f3f8ed233482e983408066175726120345d7008000000000561757261010194adce8fa9e7a50c185af4445432bde3178ec637046770d5b351fa39dc414945074c8846f716faf38fe7a00feb277f6bbd1d36fff80c49f4366280159f409a8d", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0xe0b5632409e78aba11d0d559c96acff0247194879afad0741ae3848f61e74a02", + "erasureRoot": "0x6c32d1e9b020d2d3f4f7a6aef673a941cc291070f4dd4f0919cc3a850f4a8b98", + "paraHead": "0x6270b82484129fa3e8f808c3bda80bf9614ef5017af435e7ff50de5a68a82cd4", + "paraId": 2039, + "persistedValidationDataHash": "0xd80d8aa66b597caadddfccd30c47f99649a55db09807ad5e44cfc0a9b2d6614a", + "povHash": "0xbcf9b988987fd02dea4733fa454e6d20464e372367f530b49080c7cf321c80f7", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xc08bf278544c6d723e25b49c8226696af983e63b170f79c5ad87fcca5079e973557b3554a3236f6855114e4f626133a0965dae5de52d8e2b8e7f405c2909108a", + "validationCodeHash": "0x088b3f2153fdc8dedb22d5984ca5773ab7e794d3a9a6f700d1fdac1e54ca83a9", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0xa20ea277446eb8bc761543f33180d45dd6278af0861b3c421255721ab59e1e2e2dcc15375f24d84e7145416d56ac4cc739e93e46fe9ed355829c9ed0f647ad83", + }, + { + "implicit": "0xd0b6af9b82e24ed1cf0d1806acc0dba47535c569c26d882f70015521bcb24b5d536421a0f7ad01a9bd8f1c58714bb5dcc2ec2ba469df148d2d06481bcc314380", + }, + { + "explicit": "0x60a6189cd44082e82331340405ecd2c8fb020fa4278faa4ed5c45873986c6c5d555ef187abd58ea18a750e6bcd71265ab477804bc316984435092a0fb15e658f", + }, + { + "explicit": "0xb843fc4714350fdb5761c1e4b383992fd15fcaa8b2c734f44a35b8303824732b428de8bccf2d5366692a64ebf2b45d864b3a58c9e7fbf2fb72c830cafe048984", + }, + { + "explicit": "0xeca94f74f632896afff44968a76ea740ed1e7454dce4f6e740b644b9209b7e0f32c9e406925c4366b04284d5c7b7a679ef16caba123f35448d6035edecbc108e", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0x16ee97f9cd63bb9956ede7c9258bde5df092347a8b5fb89ea53c0daeaaebd5269ea4d500c9f37b9c4e937621d09b358a8c6ac8cdf7dfdfe9a1c3b7d0453f5dcff338c9bd1355a36e870cec9fc59ddeae24ed8700c0d61d5d381c41aa6cfbc15a766e148c0c066175726120345d700800000000045250535290166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729fea14a04056175726101017a727aedd45edece678de781c0b120b17a9ccf17a01f711563ea135a96109205ccffb0c49a6fd67048fdf660a7c272269bf8d59c89d9b7eb12148a5288a77e86", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0xa604c6cd403daac04dc0c95fd573fbfc54f6359db5c549d626222973c88e9245", + "erasureRoot": "0x6d9dea464c880e6827b5f1c72acdb47fe7f7dd3b6764849023e5d7db2a8b40f4", + "paraHead": "0x3aae124bec893c6d9588b4a9a0dc592d1be3a41e8061c0673b2b244175afe450", + "paraId": 2040, + "persistedValidationDataHash": "0x4d69f9a5781d13c28b8355f96ced9f8623a5f165463c96e93269d54a910f8386", + "povHash": "0xa6b7d9a03eb71f39409558b24f8461837ffae480f56d8c87a252e91bd2674ba4", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x8cb5ea510c06ecc1561aafd614de19cdb0c812fb77f0f06be0a3b614c1bfe005c9f5e5a43ca9a2d62a6d9aa032f5b054c1167ea2e0a323eb2eeda7278adbc888", + "validationCodeHash": "0x22c6a3c71603225c485cd7bca887833449b3ad4578d440f2bb4bc8722a6e9e04", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0xe67f16c6d27b8df6ea6cca0d8a63254481e42113f07da27273dc1e02be3118485dae897dd955c8565a0c2d7920b84b8554eb8c25bbbf988f4b0d46728292d68c", + }, + { + "explicit": "0x164c59a638b86ce8a6687c447ef99bb33ad2f8c71c40a81b8e3cfc5e051c933a49c8362a22ae2d90aad3c4b77dc9464a3228bdd80c90ed886ce30179dc6e0586", + }, + { + "explicit": "0x02319a0efdcd8f6687b07aebcfc82b16b924088f9dae4603a7508bb2b9df227016885cebca36c6c142569e07d67784ba40c435ca8e68e98a03f708ee5de15a8a", + }, + { + "implicit": "0x0627106926444892686b2814aa4b78fa6046742de936826d873b92977a2ad001bc7de5f866f7653a61f010d48bfb17c33a6712c1331ec395184227de6fb80b8a", + }, + { + "implicit": "0x64f99d1e8a53a4c64eb461e43ef656b93fbfbb36b1757d5d99173940c144b663cba904fab2f7bd305715373cda627b1dac4ccd785919f7726baff6e1d56d6382", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0xac8940458079d15b63ffc2e5cfb7f50a589cd29c8f0eaffa2c3fe3d2518db8eb7627dc0073da7daa8eb8fb301595133fdb6c4d198d9c5ac6de7ac5e72f616534f04007b205ff02d4a0a6fa2122a963f0c3ad285cc693c299e4aa37a8a5b3492660310fda0c066175726120345d7008000000000466726f6e890d0192b670b693e51ac14253781854268a0cc979f5d694dbbf658576bbcb7413e1256801adf62c90a12c216d2a523ac23afaf369b004d41065312864a39320974a72ae33e44fa7d5fc04682f91870d433e216c627ae9783119d3d9659aeb7b81996ba28dd4d4447d023cbe6d6115764533ade07e38a76f0d9b31f95710b00b1d215cc02c3286240e61b35d3a3c2bbb6c5dec94997eb6d37d0166163f6eb1616c961bb2dba6a9ee43d84f12320176c305b315a35fa07951ad8d7c3fdc29af92380972cfdcc0bf2a0338ac9207c947d6c16e5fa658365cdb703f682206c24931e5174b0addec573809d9a1024c607c3844ea43849a0f53a0e70a6f57e13eeb501e28dc5cbb61c7e0c9e8366f9c9d3248138bfce7e9e8881e152e284e5386e7fe3a5dbcb2a3ad5796712c4f5aa1f6268281dc5d3f1dc1a2c1f499b63da1920eeb0df50b481408d9f1fa70599662686669bbdce56a016e0c377e0868d6ed190683ce8cd4a925de9d37bbeadb55eb1e545d2ea551575b2018dbed114dda8863830af2cfb42bcd9cac46feb0ac738d1bbc6aca88a673ac14a1616f7fe3e19de18eac5317eb382b9469a65f586748c09c0d1730376d2ab28e97f6081a9df7cee140180c3dfb6776baf7bd9670dbb2b95146d96ea1459132968ff996a694367c9c9660382098e0dc21a8af7213b0a1ebe3e0d94b3d111294bc4a868bd3f3b71b93ae10ce28a13962aca892c62f940701ed5e235f0aa6d33868343b1379a8ec88025dab078b9377c7a1312babdd4d5e50a3389e07662160830c453030d37439528656625ad658a21a04d3324a4acaff3516e6da59948755fdaf1cf372ca224597ba6dcf53555d8fdd2ca3ba56c7e3d4a3980d62b8faab0e0d34c4ccae563c47ced71c15660f8fea8aaead35cef36dec481f941cc2ae1185911ca0b801cf610310cacfd952b629165423910d68b6ca56ed778c79f4de50f7bb733a10c057be1980d50b7c29c6c69f1f0477d28cd27a44a28ca4fc0a12fcfc1e5db0b84cb65e750b6a0c6a517842591a4a02447e7051ba68b30223bdb3d1476bfb5eaeb0387f0616564d6be195cd5cea696d24bba5ff5f731e85a1b8d9142d302c7d01223f05d522dbd6c2ec07d778562ad21c33b0cd1e309831cdc90f09758639fcebed82019094ded6ec4d37b9f9b2e6e63db4502884014c7c0aeee35c1a85d60f0ccb949247025321bd8690da38056175726101011cdb4c9843a55df806824d95ff9039c8256314875758f90aa886583755cd726627c5c21404abd47b28b3d1a9c53ba1329d3b1fa14a32e3311445765e050edc83", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0xeac753e508b8d16b4ab5b3709a0a5821144cbdb89e68967f7b02bb1af21a714b", + "erasureRoot": "0x03bc9f5e9b35af54a66d15ca36eb52117e98c69adb884f34f4b84ec17342f5aa", + "paraHead": "0xb45f6e456e9b91c4e8284239a1e6a834a7bdb7a7eb89cfa230b1406617d2adaf", + "paraId": 2043, + "persistedValidationDataHash": "0x06d151eeb3824eb6f0cc2ddc81f083e49cd4df8d969b6e132c678666e0b299e1", + "povHash": "0x41233730532342edd7f6d9becb76c8d7caa7aa80817c1abda327b6fe03198bbc", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xe60b63f5b812a3ec88c0b216447f1902ea15258a0cab4a81773fa4b08ef9ea29c3a9b16e9c700a9f597d89a307725957ff23795e0b3c76b3c516edc0b9f97e83", + "validationCodeHash": "0xc7f62a3b792962188d29434c701695fac145be19180c6121beac2e168c7dba89", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "implicit": "0xcc8df425f24f706f05d23e1a20a903ededbf3466dcf11428632d4b7755761311508cc80f58880a51aedf3eb5fc9aaf35558f1b9ca63f48857bca265548b9e48a", + }, + { + "implicit": "0x161e3166a3c42941e080665246a35ace3cc7851f1a8c66584c2672bc3663132ddbda0c7a5e66a41c2dd042c44cab58cbaaa6ca3c682b18a4cf46c2df55474a8d", + }, + { + "implicit": "0x0694771b260f48fccbc5315f739481facf34f255d5d84025fc000da1732fb2566fd15a6ca6aa120ee7620d8f0998658189d27189a00919e5728d1c298bde2c8b", + }, + { + "explicit": "0xc40b74d1edda1fba70297bd3c969f6db1f0f007e93873067fe3c03d53aa04a6c36dc59b5eebe3001d9ae2d97da3048f3183511dec5be7e68611712a2e353db81", + }, + { + "explicit": "0xd4a52a88c8ed0a537356c020cc0249da6fd123d32124153f92e761f272c94428b094f67d7c37731306612c508ebf1d8eabc8f1102ae942fe53a8ee4e758b1f8e", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0xf2bf345c877a0179ffe678972d7dd04e356879f09c4e007f1d6c63ed09668f1152106100504b16b6a6179a5d7f9c9793a28baca4473cc2236e9700b8e49a4c4955b971ac32a9c4ab79494d72dc7cb987122766eb8b3439162a43acb85ee550f79c3925c508066175726120345d700800000000056175726101019801ee8e18c338a5bbcd2534b3bd89ad07801fcc2b7e4506233e9028127b4a09b75e8fae19d367b5fff199736c7f05cb2f4284eec6237fe0d937a48f3684408e", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0xc4ddc0b208edf9a6ba89eca5a3370018e9209a198b168d0c196f66107b4d7115", + "erasureRoot": "0x6735cdab2d3b2720a6ca23d08f33af152ea6624e017507b83c25072e4b061939", + "paraHead": "0xca758ecfac046d55e355bf851798181471dfa358d50eb460e8bbd5cbcd6c37cd", + "paraId": 2052, + "persistedValidationDataHash": "0x46108471ad3e4c9a3fdd9097d29528fda25f10589d758165bd97353340efd403", + "povHash": "0x9f571a07361aa886a54a88bf635add2df3510086f6c18f56df9697e32ec54746", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xac64ecd1c088e5cb428f958008487419cb5f5a39e0fdf1ad79843d6ab6a3983611517e5418c69a067873c6af2378fa27d513ae474a0111d731f8fe8322706487", + "validationCodeHash": "0x3197520fd2b95cc9d14e1fd96f4b3106e1c1dd52e0712dedcaf1fc1e7340900c", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0x926cdbb3f33dbce3f3a544104d292004148e2f2fe240f146131a1fce09c375730984126171c3f07c1a5fb67d1f48e8784c6c31c97b2a6e46d3f2e6282063308e", + }, + { + "explicit": "0xb0fe8942dc636e299bc59a29d49aee41aaf21ae84504c2f70f1b3a0652af4e26fce8e2ac8d11444e79ac0713cf5ea874a27af553c546f97d476cde56bb00818f", + }, + { + "implicit": "0x4c9335147ef3ac88950a2867d201f1b0b4507e0dc939bf6c832fadf08ce6966050cc1d44e8ebc6b622503e14c2c21cc82fbb1d679cec7d65e56a2eaa70cada80", + }, + { + "explicit": "0xe6619e64f3ca6513a1ec6848a4d9674640844829fea3d2f0ece02d90c4bf754820b7e53481bfc6507022a6045e35112e1da919635ad8113991b5621326851b83", + }, + { + "explicit": "0x186bd1e3e052595e804112a290365546d1621e362ec0978a3352bdba8c6b0d7b00b9e70b2dae4766aad5548209c0f19aa33b5176df32b13d1926b51b979ed080", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0x08f31e854f4197fd6e8c2b61a666b76d6f23462386e6b3a1fce22a6afe62325716ef2d01daa7638d645769233672d7bcb3624d477a3ac32457c6ff033323ebf8af9ac9ccbe671ed7c4eb9ba7b31bde450009e6a4e0d645a99ed8df6be5d7b41e265b5c9908066175726120345d700800000000056175726101019a09950748386c50143e7f1d0024baa1af6d67e4a6968608c77c970c484c3a6e379c22a30f5ccc21b95f98fc1e9823bc6d6cf94817f915e20dd2f99c31b55b82", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0x56d9deb60ec47ab2da0e4b08840d613d143dc6202d86a2a4ff1daeca55d0f30d", + "erasureRoot": "0x899c10b9c1c1a4d24f51d969792dd8c2b6a4b2dab5854079a2e128d80ecb9fa2", + "paraHead": "0x5a4c852abcdc4c60b2a6da1f0a1da29f2dc4521f31642773a84f36659cecf900", + "paraId": 2086, + "persistedValidationDataHash": "0xa1e2c868f5b4a5c982ada0bca8c204183a885374bbfc7a2ec325aa2454e98ebb", + "povHash": "0x5809b3d9c380b38f388b8d017441cffea65985570434ba49c2096b06d7c28de4", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x7280dbafdb1e6dc0b1cf0eb65511119d33304392a2a3dec87c051e14e16f527b785aca558f0248a09040c626a77e37677cc360fda33ae9b4b77585d523e97d8e", + "validationCodeHash": "0xc617bbd6231c429151c03b859a19e92831a7b4bc14b12cc5a9a6f9be99be677f", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0x70474c086c6f48fd65d013ca7c70616e7cc50f775fb550839365bbfe15b3fd504662607ec9c48400b3776c41889d477e1e51c47d7bb0b0d2197f951dc4c38d80", + }, + { + "implicit": "0x161a7391e3e4a62f6583bfbd68843ae77fbfaa1b3f636af0dec6f9323795c24d0c4afa37203844a3036e0e11f0948895b93f40871204b9a622aa9aaefe89bb8d", + }, + { + "explicit": "0xced8c1b840e6af666640dd908c7e16c72787a03a12f11c3a926b6b24ef17123f27911a4e5d4c6383e83d890e97b574568a7d7bc329dbcd09df9f6b349ec3ca89", + }, + { + "explicit": "0xccf494e5850196ed672349acd57d5008a64016170c7a6381a321b101d2ff1974b9e38a166fa44eb5b05ac282f5f34441af4ea639354e9e2707cc8fa1ca2aa18c", + }, + { + "explicit": "0x2c34a7bde47447189f578b2b62e2f9ea6c79769361177e68ff4264bdb68bc82da90b812f34c1cd8338706f5ec99d148ca0aaa27df86cb82b97512d61960b9181", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0xd69d80a7c16c51a227bee83decec3e088de5046a12b462dd73da6232b502a2effac46d00d74136d95afacda8a7fda5b3f2b855d72ab19d69e65489761935c9204ab9486b62c81c9a3561b6ffb61e117f19a03fd6205e4d2548e5f5391b310d748d88f06a08066175726120345d70080000000005617572610101a213919fdf885fe22b32321d787bd092c147ea540bbf612b7c7e3bd61aade146c8bfe55bfbe65faac675a5f461778a44ca54314a2dad823ac35f55bdb5aa0a89", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0xe483d298c8d6302c3cf9f682648e6033e0891910706428c3cfdd444423ecc607", + "erasureRoot": "0xbbd4abb1d91cfc8ae2aa516631ca8ddd1e16a17a6961dcb5b8eb209d74361e0e", + "paraHead": "0x82c3e2e211eb9bc74d5a54b9b1f5e69bb81b0ebf552a9fa1b43433b8a97649aa", + "paraId": 2094, + "persistedValidationDataHash": "0x4ab643be90b01dd56b1f99357d96fdfc1b65d341967078aee1dfdb26e0a52db5", + "povHash": "0x75331f761a6f3291bb0d0d7b6865867ee996b6400333d9582eacfbbc0b629e05", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xbe4377fe3f2fa565c30e1cb6e5d2596e00f52a92087b97125aedada86e5ec6448ebe7c88b36654938ea652c189c0cb7f326f8e3f935df8a2164dbb91219cef89", + "validationCodeHash": "0x1915b12af1b41674612e52d554ff1e56c5c0a4e8ff66a1d10eed853432d35803", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "implicit": "0xde3bcd2117ad9b010178fbfef10822ba5fcc501a0a8951cd03877e52463c4a3267f1f1d59a581324cb32b6e55e4b1ed94087ce649fe07268c92f2fd729686582", + }, + { + "explicit": "0xf2fcbdf476304feb4dfb4514568941a076fe917753eb11ffbb0333adb5e42d65dcce1624b5404ad49b67aa96f210c490b8cc515b1dcf036233fc95d5a30fa38f", + }, + { + "explicit": "0x1c847755825b6d83333b6ff327f31bdca0d9e67edb714cf5d3906ea2fe353375bdb81d88e4ae732bbfc5000850f0316d57a635e4d472058c08c16ab867ce498b", + }, + { + "explicit": "0x067eff3ae8673696ddabb8ed68970402ff24b09dc7a70554c09274fcac060e278f857f16b9a38c770b4764036acca2eae16fcccf44bf35196aa0a621436fe081", + }, + { + "explicit": "0xf0b7a676abf2c794b4e3d5c982bc66888620dea438d8d0c8dd9ad4b4c39ef559d6b740147b32b7df8c2ba22f09233e8d0295fa302c6eaf834b256a59bd72778f", + }, + ], + }, + { + "candidate": { + "commitments": { + "headData": "0x4b0bc2b486f8876b43ce78b1e91babcacdd1f59f5d64f28a8e99bc4d7a9c899ec6190400dc334d894cdf430634c3b00422446adb7999a3fca08812d2de672223d72e8ca3defef1365303be859d1d5241979b64fef02843f5f7ff4e3f74b5181cd250083d0806617572612068bae01000000000056175726101017e3f633fde0356ea3e869e887547c9af4110f0df695bc39620d6736f0de8bf22aea18ddb11c834dfc5a45ac114c0c7adafcb52f7cf87271702e50854dac78d89", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + "descriptor": { + "collator": "0xe816db14581022097b59fc0ab855bf196d2028f78b6bb4589bf61271a52ef361", + "erasureRoot": "0x88693437a521bcfc422987d1372b397df4b218303aee529ab9a9eb62b507dea4", + "paraHead": "0xf646baddeafa3e194f58798af1ea362145ff3bad8f8a1a86ef1e57e9e6511ff8", + "paraId": 3340, + "persistedValidationDataHash": "0x5285f73141c251077d1f2b7436568f0c2f2d7aa74f0337d4a3c5117c1f4de4c6", + "povHash": "0xfcee3417f04ce21d7cdad1998c5feadc186c152b1c5df4943b0cf15bab149c8d", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xfaebbe677cb3739dbabf8cade29998523c2d031b6b96a2b8141522a5fc94862d664b32fcba8854e47d93a165c8d8c1f0632711ca0845bf7c9fb7fdfd8749bd8f", + "validationCodeHash": "0x30e9606177112b9f3a6272515b9c2073309b18549a1c09bbf37bbcf6cd2ed6bf", + }, + }, + "validatorIndices": "0x1f", + "validityVotes": [ + { + "explicit": "0xd4257959308f460192ee0fcb225463b640ab5ba7b5a47c0615c762f361d49b1b7efca3836551ff969646a22b936a2a45b43da7130549ee352f375845e8e76f83", + }, + { + "explicit": "0x649e9fc22e606f40d2dce8c83785db5396c540d403c1b3e636554fa2f35a552bcbfd36bec18880c67e1cc17a71a40751a4b5c30601494e5af2d17a4d12a6548f", + }, + { + "explicit": "0xfa8a4432d289f75927061b57d1e1dabedb075f56a53f901f827decabfb44f733a1369c1161827b91c5ff87223ff6eba2ae7eda0254e4bbbd6914642aa2e6ce80", + }, + { + "explicit": "0xc047a32dd1c5a289fe7cc5b3dadd52ae55ee97c943064ca46146255147396f656f720a6ec861bfb7e63e340d7484ba8aa626c96cfdf3a8095fa19023a2771c86", + }, + { + "implicit": "0x16ad4d5be264f61cb2c483da8f8680af2efede7479b1c5f64cb8a63a36979631aff540965cd5cca8ada575615409d3bd6ad1b3813736c026c5739f1050f9de86", + }, + ], + }, + ], + "bitfields": [ + { + "payload": "0xdd0c14c59c850100", + "signature": "0x94f4f4d5075e2156de62048764663cbff18c6c5a387cbed3299877d493aaee0568e31d98b8d938bfec54441487cff791df65cf568c247033cce95cb0480daa82", + "validatorIndex": 0, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xd8aa0df77a44fbb5e0bf7739e57d68633a1d56d2b09da38262c00ab18a1e750f9744ae1fab85fe4774f5af888c8f6a670658dd7214c40415f0dc6c39bd83bb84", + "validatorIndex": 1, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x32fccd72773ead50b1926ccbc9a93202b307e53a445b4e966b856f5172298574093dc0d25123b3e7427e24b6b3d1eba65ee8e06c8e80401bc8e738f092c27181", + "validatorIndex": 2, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x08afbe59e3af11989bc5399c903164e7ee9729dba793b917a9832cbe7e36a145197ed56d0c7e25a816882d25ffa6a16ef2c75e5dad9a1119d30f90511c29148e", + "validatorIndex": 3, + }, + { + "payload": "0x0000000000000000", + "signature": "0xe61ba67b6b7edae7565d06e82260507697aea718c4248a755aff3b4006e4ba48e96e6c0fe146df603e7f3697dc1abc0d8a63117bb7a1686f427dc96a8216a284", + "validatorIndex": 4, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x8c2a1fe821bbbf6b38019a63f0424293cb088a7340150d45d3d8266d3283841f4ee6ad8580e82255932b186f1085b9fcdafc69f0989d63f10002b911267f388e", + "validatorIndex": 5, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xce91024158842518f1f8964c84b98dd619e74e16829853f9f1710cfc380576747b1c1c591ccd3daa1fdbd5b3b608db93dddbf27ea089cb1e665d7a463074c783", + "validatorIndex": 6, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x5ed8d17ccad157490a7732969568bb7a51913e8f323919bb040ae849042af7525cfc9401a8ab8ede6f80b76154e276ea889a141ed7e58d8a70e4d1e753a4638c", + "validatorIndex": 7, + }, + { + "payload": "0x0c00008190000000", + "signature": "0xf608ac109cc962f36a19ec3686d9ffd4753c10fa60c4080b2a2d5de42aef856057ed9e2408528d98bc1566dc10f09f312d4dd3001eba2f167b06277bfe911787", + "validatorIndex": 8, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xe49d1186b270373092dac2cbe651c996df55345ee7f54f61f6245d29dbf0a92891dabaa835100c6680cef122d9e3518397469ea94a0384b969530b7afc73ef86", + "validatorIndex": 9, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xa44552c0e385c0fb0b8e64ef338214cd1fa82d77075312e5ae80e2e8d78dfa53d51c7b00cde2e3dbb473fec18392188724018ad7b2a3fc9bc01357168c613988", + "validatorIndex": 10, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x0a379076574e1d0af7b035e8efe4e0a07d7cc6e75e5d364885f0cb8db7a3ae4f6ddacc8f218c3721df6bb20bcdabe9d28a05e0e4b9c29f944beddc134b18a288", + "validatorIndex": 11, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x483e3894572f3f421075bba5e8d8b4299bf73fd304af37ba3b49db4aa65b37664322b2c313f08e3f7c9d1b8644ccfb3b6485df89d845eba6ae57afea55a9b687", + "validatorIndex": 12, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xbcced8b4f8a2dd917a01857aaf16f7fa5027f151581780164d72c015dd751a759ba75eabf08476d56cfeba9eec965bf855451fe82417a11bda29994397105082", + "validatorIndex": 13, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x429eb0c3962e0b4bc686a8a7f63b00509d9a9eb3d7b9cca13d0af51d2156b1263040a36a8faae03b2ec61caefc8f12baed8ac388fdea197cfe248078eb321287", + "validatorIndex": 14, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x0a1ec0c08e534027ea754a4dec2e9236f8c1056405094e451584b81487875615db515712a80d8cda41fb246860efd7fec57c1dbbf0743db6372e713675988383", + "validatorIndex": 15, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xa6525b265b4135bb3f73fbb788b829e18add3ff3ad641be9598a6d3504727577282b031374604ab891a062c41a9c8c9d82766e78508c06e1ca103022f1096e8f", + "validatorIndex": 16, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x3a33bb8f53e193d0ecae27ecd876dcd1d2dd4b6ac9b2a4bf2650fc9f5e883a31bce49fd0c9fc7f84e41be6c5d2190f665803d7a6eae80b03ccb9496fefe8b68f", + "validatorIndex": 17, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x86ba7c38376cd1f8d5a9e4439d65a2f70c60c103785aedd71e8f4605fd75762707089e7a3ea0162dc50bf9ea8b4dffa410625a2410e9914e1c2a1a92b9316b82", + "validatorIndex": 18, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x8a76a6b4b235c809dd7ee6ba4f3fcb549a125228b3271e05f5d7766b86337e6c7d811c4561f2902e5c26843ddac3c8ccd48396d9ce1ba506106c94b5480c228c", + "validatorIndex": 19, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x060237baaa44739b74c692fa1d6db9c86c2db09c57c5fa1ffd35840791fe3e02dbaeae19e1151fe26e8371fd4e38872ae685d4fe44a0b5f61e76cc6bb7f84787", + "validatorIndex": 20, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x8803c5671935343d572b19c33856cf9f6da18ebef06d8d86d5398793785ca61f59f1c09b8ad72882ae46b7cf337366ce75a8911baa005bf9c0d858c02ed4888a", + "validatorIndex": 21, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x421df9850bfa9ced63218ac4451cd7b416e9133637636684dc388b3938eaa70cfc0bfbb0d01e635002d753f543be4ba5cd291f566b0ec26ed69029a74c0dd883", + "validatorIndex": 22, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x46e0cfc084350519e80e93fd1b6875c7e26917a2f9521a56829aa38d93b9777dc343990678f6fd50cfe8d644add633af355685073ad3181279607f2ba27a4581", + "validatorIndex": 23, + }, + { + "payload": "0x0000000000000000", + "signature": "0xc41639a8798317df13226cb11e174183d3a4096945aa42e9c1aab118c51a1b41e67761a0d9ae728753c4a50cf3003b2019692a37cf4e045716304ec05cbaad84", + "validatorIndex": 24, + }, + { + "payload": "0x0000000000000000", + "signature": "0x949866249ce8636b137cd9bb950784847ddd42d1929b35d336b5a9c05c050e1d6c10a76916cb87bdaac5bac0b1cce18b7d7d2040cac1fa592ab6d61feb60f58f", + "validatorIndex": 25, + }, + { + "payload": "0x0000000000000000", + "signature": "0xc64742150f7b908e9b15c6a3b8467b1d58ab752517fb4390d1bd81a156d5df764f305c968315aa56b38c1491dd16e153491f1b67004fc1e5b5d4da89415d1284", + "validatorIndex": 26, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x3639472440d04f599b7a7a3494a1a9228ef022b49dd65c8607b0352c9895e9256cc4ff0f928a60a186e49446d402fa1a61ef56cc29e6c65d3d124f55a2180280", + "validatorIndex": 27, + }, + { + "payload": "0x0000000000000000", + "signature": "0x98db39ea11e17b574e1aa80ef16a51ff32d2cb246a85ea8b6344d611de3f0a373b7bf5dd5cec7be174d2b8b965ad21e8393292a1bcd2a77846ccd50b5f4e858d", + "validatorIndex": 28, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x2a3f5437006c40e12412bf31f7cc96d975d8ed4536caca81b0428a2028726c083da5b31a9ec9995118a7b8d69a9a33c640fea3fccfc683bdd0b460668c935082", + "validatorIndex": 29, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xb2f2ce6f2c2365882cc9f90cf16faa37df9e0d4e22d3bc36b431771aac3abd20d6c0e010bb930ec15a54bf58199357d6960f982cd6c83fc27f585ffaf6d36d8b", + "validatorIndex": 30, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x96e4bdaa814fce523c944cbfa32ddc2bdcbc2726979c9a441e099ef43b4c1728607b535e0f4d838623d10b3abb8136f083c474c757d9e1351ac445ac218d9585", + "validatorIndex": 31, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x86308bf7874ce9c123f3c0ed0cbd2d2b270d69790a7a1aa669796dd9c01a9114244fb82b55922d34641813dce13caf31efe921c5f447fe8048543a0e2684b78e", + "validatorIndex": 32, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x5ec2152d564f9c01ff2b5f07c7d40764d804bcb8e2458e5fb1cf664bc42a496cceca7c4838f35ffc60931084eeb93ffe982f98db0fa36f98be0a5963ed968f88", + "validatorIndex": 33, + }, + { + "payload": "0x0000000000000000", + "signature": "0x22f126a668ed8a93c538dfa32f1ea03efd85ac38b37efe6614c5b6e68041855bc7dd29d2d3f11ffc0ec0dc927234be6058f029e258f7123aa1d7d7cdfd9cfe88", + "validatorIndex": 34, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x2a00a23a2c9781901b3ad49c05f2469a45c321a2e9f2f9eee4e1754f163b39703dbf01cccad2c79b42e5854b979a7bac21762769104b5a86e0c0786d6d7e7c8e", + "validatorIndex": 35, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xf08cda226254bcba108ad2051c8c7a96dadcdc449bcfd0c87316da586345545789e4ddb9dc7f5f8b91ac6cda1c0fdebdd7eb0c2d7b2f6e2a2795c2e6d689cf8f", + "validatorIndex": 36, + }, + { + "payload": "0x0000000000000000", + "signature": "0x1ec1dc93ba1e402589ef35205ec58fd89a86811918108e62fff518ed3958e23a3ea110fdff7ec5f14abb9a0291631f91c0fceb3ddc3ec2f8401e4b77f93b9f8d", + "validatorIndex": 37, + }, + { + "payload": "0xdd0c10c19c850100", + "signature": "0x346fb3c004759e349a08944bc6b178afab5ebac15ece2f79b236153077ef6f7fe71b4ed503b0e0aa2d79131e8af1f6a9d5e10008de2a7fac74af6e3eb64fd68f", + "validatorIndex": 38, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xc24451adc9726c2a0c64c6a55a916b34d39defa975efdf7a1a58c4e65e4cf36aa1772ecad6301ea119e1f3070639c2729652fccff00575faaf8594b5b029c183", + "validatorIndex": 39, + }, + { + "payload": "0x0000000000000000", + "signature": "0x5681755c9ef926f1fc24b35fd9b6067a1eef07a2149ad57e0cef85111a126b317f415dab9423018f7ae2b5f21841e9f41d2254217a3dc5e91c3f118412b25183", + "validatorIndex": 40, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x58b02ef6a5451fbcbb855a6160ad0b2118a349297701ed54cc0ce5043dcf67139d244a9dcd0d729b4444bd0d9ff9e3a24a23acadef240a1c1c967bbfd087f48a", + "validatorIndex": 41, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xe8a4eb2f02916849cecef1a5ec9042a30ae7fb2533a0068ff96266fb022841384f4ccd090313c65d8743647372b5036d818f2653219ebbcd931c5c9b2b935b8e", + "validatorIndex": 42, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xda783ceddcb990c47ac5a5a1212ad638aeb91491497921913ff483f18ebbee4f4e45a6a350e6aa1ac7fd4a1251977f5fb1911b9c62b539ef9653aa17e4cb3487", + "validatorIndex": 43, + }, + { + "payload": "0x0000000000000000", + "signature": "0x0a8e224e00097bc974d9f7477e6234c53ad854fb26ba42088a2d01155f1841485dbb25130a5a98c97b6177aea748fd115cb9117d203cd31b608a0ed3762eb487", + "validatorIndex": 44, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x4cc3904f9930a3ac46a42c71db36f26463c76f9810b5aed365496eacc57d3f1d1b930b756a2bb33636f2d0d00249179ba1a241b3f871ac8596115fe68c198d83", + "validatorIndex": 45, + }, + { + "payload": "0x0c00000000810000", + "signature": "0xd657b0f584d7464aeaa52740dafc90b7c1961b3aab8f66dda894809cd9c19f466980c98c0b3af6473087dc59760088dbcbe7b656e2a47e818668a1782419698c", + "validatorIndex": 46, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x0c2f23d522379d4a007bd0a0eebdb963a902a28f90c4ecb352416c1e92752b28b1a5aae175172eb75e2a2fb9dec7ae04655bdac0cdd0bb7ccbb4bf0121e8d782", + "validatorIndex": 47, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x9aebf6b976fda7b9a0bdb0a7da1e5cc93586c6f784763a65ae90ea7914a63348eb490e5d3e58e307780e20fceae014e38a94e73ccac1bc1163113dd10069cf8b", + "validatorIndex": 48, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xdc077c171b38f4d73191111c16008931f82b6cbf3ef38e1e981feaaa1fd02b223c2e51c5871802ccaa3e140c29404a73bcd5535a640ac6abc2e2fcab4598d484", + "validatorIndex": 49, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x76ac61839cbd9a1d862899bb125c1aab628c6a030b431dbbe3398b0ced6a973bbc0d14eedd2126e6ff76930218ec0eca62af1fc5e2670362a49887e9aafd4486", + "validatorIndex": 50, + }, + { + "payload": "0x0000000000000000", + "signature": "0x562feddc6d9fcf63e3ed436b9b3e11c6cabf5b11146b6bcddd759a77291877542be38bef1d1436049e2783a502b39d21b00ab78c02234c91bbdab683f2495f88", + "validatorIndex": 51, + }, + { + "payload": "0x0100000000000000", + "signature": "0xce1102f406264df7493b96c3c9d95bac508dc524f4b58322cbfbd364cb775f28c2f014564856e7685b69ade8a3dde6b84d5891e019f77c1c9c8953684183c88c", + "validatorIndex": 52, + }, + { + "payload": "0xd900008508840100", + "signature": "0x98c8200153eec2bea578e2b0b7b6f41eeebe8179ad4d818f7d1f837f68a72a1d8003bbb43755d452935b4c8d1e8a5c4216c608d478822c45c77d59dcd56b2389", + "validatorIndex": 53, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xcc45cd2b4cce72cad8db437bb1c27d74a8e8987b7148d7d692f2daad5b380e7acaa5765986229b4bddd2f87020428625d366dab92b46483fc9f8a8a7fa5d6a85", + "validatorIndex": 54, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x80a0206bd279c5910c1795891094ec33f634c6eac87b9d7dbde750d80c4ff130a96b76741d1cb53807ac81ec42db43d627cf99a215aa24b440cdf68a2c82cb8f", + "validatorIndex": 55, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x6a9e6875e4c718c754855a47a20b4da191fd96bdba022fdc929c37bebc54a81232fac9e1e1fa36ae896cc6005cd11756d1fc0fdafa8e308a471e6909abc67789", + "validatorIndex": 56, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x5e5bd607ba6f757cd7cdeab8aef5beb40f7ff6149ce995dbb594a9e3e31b267aa0e695cd221b302c8aa7fbc5e5dab6dc3fbc0f78ec0dc100efb817c3614ac48f", + "validatorIndex": 57, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x3e6cc92eac5a9a2af70e384531a1dfc92bbbb7dcde3d256b126102d635e28457a41f275e85905e65ba012687c3c01d8519b3a28c0c5486b197b5563eaf55718e", + "validatorIndex": 58, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x02091a840b35d59749ac5580555ad92534b854a1656e3239423a03da3970475dbcdd8aaea49bc122c4bcabe74ed6ea98de3ea574a482b5676919fb651520f487", + "validatorIndex": 59, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xdc41101862243894cde69d6ead08f1d94c6820cae49987f7b11122e8ff7b50031a302d4609b70e6ef8dd73e5c3d05c900488e0850a6a0f2f18cc5b0cf5f83f8f", + "validatorIndex": 60, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x14e0f3625dc00dbc779fa4c9231b90c70b555ad266baa37523717af9999c8b3bbe81920ceb4aa64008b15c2a9b0863c040c345b491f935906bf74d674de06c83", + "validatorIndex": 61, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x541ea591bed10485618f2cf4f147087bf73485486833fc03507b4aa654dd332008b20100842746cca8f6ad0b09da1cddccf36a5f85988ef5ba0991f34646c58d", + "validatorIndex": 62, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xe8ac5880a6f1f57ec654df1814341b8aa79d074b0dc21044bb16d19200dcec40aa492f2368200417b18de4ef0b04adca3920f8520c07ba9f247eb0fb3e4df48d", + "validatorIndex": 63, + }, + { + "payload": "0xcd0c14c598840100", + "signature": "0xa6a26c479478a72b98ed31219ffe840483b15a1cba3afaad1928316a72b2b95bf12a37baa4b30beb93eaa6ebcd4d0a847a7dca246967f4b10c97d726ccc1b981", + "validatorIndex": 64, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xeaf648e640f71bc60b321c981a04d0fa8f0cf8e0d5de5df80260f15cecdc490858aa114ae70d93bb22e6d086d6b2833cd8ea7c10a41533db34028fe8f762d180", + "validatorIndex": 65, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xb0f4694411d0fd997e7b8cdfec6284ffb76e0cbc3dcd6148a92bf9e3162c5f7a54ab9d1d8ded74ee316b614fc4cba82b24c98530676deb7425ff88316ac36185", + "validatorIndex": 66, + }, + { + "payload": "0x0800000000000000", + "signature": "0xace3b3eae4caea46e480cfdcb7f2e9523dc1ceda0b9a66d3285a3b05122fd900608403cd03e1fa51518081323676db32b092681d389ec6ab2a415ed44da97a89", + "validatorIndex": 67, + }, + { + "payload": "0x0800000000000000", + "signature": "0x3a90a353d27ef867f09119c6b610814ff84847e08dc432dc76a943343f86b834032c1cd2e8044d09a0ac16df972d7b5ad232001ea3849bfc947c44a4414c0580", + "validatorIndex": 68, + }, + { + "payload": "0x0800000000000000", + "signature": "0x4203ed94f8231b3d258b496107d2486b586815393226f5cffd6818c8a2e1867850d10242630f59dc046d1b0189233db285a0f32f48b61ba747f1dfe8ef9acf8c", + "validatorIndex": 69, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x4e4ad0bcb584bf4640f303f449a8936976753d83563dd83bcf3a66d3755e2618b5d0e0f525973000b089e0f0e99b5e2c1cb63711e4920e76d423d6ae534fcc8f", + "validatorIndex": 70, + }, + { + "payload": "0x0800000000000000", + "signature": "0xc876401a233d0211942800acc2ed2c431b9833e700914fd75388ea2642d6d606ec97dd9def0ba733620bef07664b2686c1e07f74b9d54c8da34db465c311c783", + "validatorIndex": 71, + }, + { + "payload": "0x1000000000000000", + "signature": "0xc8b526cffb98314d56da9c3038076e0d1fec33030e02bd98684920dfa87efd1452511b536921695e76c5b347adf796761e89c9f6e310e7e006d0939fcacf7481", + "validatorIndex": 72, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x60f7ce672cab96f9bfe47a876f759d99a25c94e48d77da62d3fea6d6a74e291d60296b863c66b14f86510959bcb3a8065f008bfb9f14287b1e5476348afe2681", + "validatorIndex": 73, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x4c0c155584eaa2d9cbdc99b1737c8e6d55ae8c1126337827b0d1caae5b85ae5df9f4fa1c79564d73f7a80b5ddfba7158d587060c9c9bd60bbba794481fd3068f", + "validatorIndex": 74, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xb0f807b4e79f879f95b00004a47c44f14bb965dad027aff8a19d1205ffc1415980fae1ec7afcab323f3a17a0c3bbcdd39e2d4f7d97b300d9985996c823ac5980", + "validatorIndex": 75, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xf6754e51ef8fcec13916a777e50a29eaa01a0372ad878b903093f668e28a4c2ebbf8d0362f945e3366f34c785d21f5969f319f90e3559821335331086b3b1c83", + "validatorIndex": 76, + }, + { + "payload": "0x0000000000000000", + "signature": "0xbef0cd4c5ebbda3f5c553cfd096425a2ef57ead69eb23e420b9e63c8a9ac985302badf4c736a23edcfc2b9e6594b38166cf2612cacde3f996e0c277e8bf78d88", + "validatorIndex": 77, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xc23b829170df73e847a5120f17c2b71bcc96c88cdda2379090234b4d9075555fa1e355c1d877aa8d7e280d3f8eb40a841cd968b2801ccc82f62476943ab1df8e", + "validatorIndex": 78, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xf661cf6d303b1c6d99f84406cc698f22f02aeb0100c09add4b93e9858d3f404abb0d8355d65258bed21c8475d4bbf6cef42c1cb9e6b00f2f1e00f6829ffdda86", + "validatorIndex": 79, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x50ff657f833aad891b83164bd0e606ad39780c0f6be4543c88850f5379e90a704b75ed1986ef00bcdc518ce47defc4bada1f8b3296a2e008bc1309a39135f288", + "validatorIndex": 80, + }, + { + "payload": "0x0000000000000000", + "signature": "0x74daebdfa676717e9f83554a2e6ed270eee4639ee5b7bc6feb3853ba3fc403434701ba2d7e2656808ea3af0156f01f95fbc5bc383596a0321a2989db36bac88e", + "validatorIndex": 81, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x261fe27fc3bb5b13858d8916ce383e1f675c97f3dce0468476758b14ce4f1e1d1666738ea90c3060b0e88b6dbd8fbc1ed9bc335c6f67070726c858a747220a80", + "validatorIndex": 82, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x9689badae84bfa0de970561805b3d78188c82d2b469a1cb9923a200671f19e631ea4a83d0b5b62d9c834b1b294690712777e27578c93715eac4e78811356858c", + "validatorIndex": 83, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xdccc2aaf7d8de4c80f0f89cca073d5d75ce53295a6cd129618ee68a486b93f6ff98beda4c91790e993ee3d4b6dd1f842726cb87c927bd8e86e0b7688918b1980", + "validatorIndex": 84, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x026e1e82c8a5f4ad0434bb7bcc873a6ae90d36b1622a9cc918682988e2eb5804fb2dd7b70b92f4937731eb6d1290782dc2acfb967ba62702d4c5dd63158dfb8f", + "validatorIndex": 85, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xaab314cd789880b1a78fbc0dbfbceb4ad42a37dd75186c04ef5f8f3b470c2054607279d5529e18a1203b0a49023f0fc500aa966c1b48b186456d0b4e81daa984", + "validatorIndex": 86, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x7659f0c3174d0b3db1ad37ad755003c8a2c57c78f644d73a435fd37616f04a46483537cb796588ff058b4547fd5a852db33bd294f58e84b84a77f7c2d476588d", + "validatorIndex": 87, + }, + { + "payload": "0xcd0c14c59c850100", + "signature": "0x707df310b67c3787e00ad5ce5328e45da639735bc69ba86d274004bac4b56f394a7c5912003a62a8bced16156e078266ed4c7212b305944c95b727ea7529a18f", + "validatorIndex": 88, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x688368ac580593445ea3cbe3b9084776f21319c808a0dd94defaef6f9f1b174d9a4c29ef84bbcc524b509b3102dc17e0a943602b1cf459b3232454aaeb76d589", + "validatorIndex": 89, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xecf4ee7fb0bec320e81a9f0627c1fd3d450e2ee95005b5ccbff545f4b64a4a27be9438521828a547b4032f9ba0ac81814c32343aec2f8e80a8bbdbf5cb9e2081", + "validatorIndex": 90, + }, + { + "payload": "0x8000000000000000", + "signature": "0x502bf37dfff270d2a933795fa86b4b61902c56c96be5506e4c0c3c377c526e54043f4689f2f1c4384bc50c7f8751a5299e9d08607f331ba130e491528424de85", + "validatorIndex": 91, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x22ab825586902e9e0db2941670e85b40c6a95d02d326010e9163929f72a42340598bab3d118759789d42e6699b721a0f42e13ff87c61ae560bc5cb3d462c758c", + "validatorIndex": 92, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xa4f7edfb2c72a13ededbdb609c60e54254b8410a770ac6f44a2060e63cd5c2770408dbdd6d598a1260559045568e57ea5a83bffb1966e4bca743a2dc5e608c81", + "validatorIndex": 93, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xc2f6e0e1963bca23addb24d2588dff9ce0f1af50f779f41971c415830b00ae70875f3f0013257cc4ec6b21f35cafebe13191a8749cddaafb89ecad5b5f36e085", + "validatorIndex": 94, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xd2dd2dea21c8aedd42058e0a9658aa1b923f6efcf69bc508f9d7e37a2ad8815f2629515aa8d3f513d88c8d9cef8dd6cea487d72186f71079719b30f88b2e298c", + "validatorIndex": 95, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xa8cb370944673556af8e370c7eb80b6ff4f0377c46573e102ebd95757b266776b5b2775b7e7801e9b177d5a940cec4f231288341b6db9edb2d0505308e44398a", + "validatorIndex": 96, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x10b3fd8c9e687c88d3783c615762aa4884e52c2c821e4a7a0270acbc552d6a086b4f15e03c6a1d325c86f97453a1b10cfbacf65ec4327e556c68400f0b888b80", + "validatorIndex": 97, + }, + { + "payload": "0xcd0c00c598850100", + "signature": "0x4afc5186c518a3cb3deaf55737eb5378e2c98355a69048d272618a2181a25731321f68628f6d9ac6a7890f73325fe25d0886163226fabc675cd5d76cf1816886", + "validatorIndex": 98, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xfe5ed45885d1d6b28a29f9f264d9ce932b9f2af0cf4f87a562b93364468bf921b67a99c1db273fa0609568b3467733bc6d92faf6c26b15d78145fe48ac337480", + "validatorIndex": 99, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x4eb91c5a6c7e41888dcd114918adad3c2fa77bd9786b1f5fb6d9b937da605f0914682a4ad49e67fef0aa3cddf76402be76274702c3a9b4e0ea02299016e9c381", + "validatorIndex": 100, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x701860a8cc9c58556e14fde56d298a571cd1c67f609618574f001990b166204985132ada6e679a821071be19e931e7d38afdf9613c8c16088e7bd93e95649184", + "validatorIndex": 101, + }, + { + "payload": "0x0004000000000000", + "signature": "0x8457c1f22acaeca2dadd933f6b0a2cb99422724dbadc081b11d8816465bbe82bb3aab6cb6ce270fbf1e1dd4d7e7ae4f84501232d05ab73790c113d3afd2d278d", + "validatorIndex": 102, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xeae99c56fe2bdc653419d3724a2278ba3bdf6e90628a09337a0170ec3e7d4d04dc7a9890af258516d04f11fc0834219d3fbf409d08a39953b1a163a210f6208c", + "validatorIndex": 103, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x625efed2a231225123b4539ee2fad038c07a1f005d2fe42b8946f43abdb1ce14a4c33f2da2cbfaaf0b288c21375955a6da4c6775e9acc29fb9c9ada84daae281", + "validatorIndex": 104, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xb0c161c71b09a03976ead483b01a0c79f37574a06fd20967629aadb49ce5b31c37041aa4f75ad35ecd8c848d179689bbbaa7623cd71ac3ed4e7464d542e33888", + "validatorIndex": 105, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x14848b21fa03414cebd412844e357fdca0839ab4bedc2270e58d9145204f4a0dfbfdf642113db971a99e8dd2395c66f9488ca52ac5391704c9acfb011a85d08b", + "validatorIndex": 106, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x10269c565d962e41ca3f88427a6ea2d15b9f72ef2234c6a91f916cf2ae880e06fcf05e65a9e9c86c2f47a61df0378d5e95cbdc473258d9c045bdfab9be3a2389", + "validatorIndex": 107, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x84dd8b84cbeb90f1b9922371928f4fe87e7a32fa6c1d4d155b1135e594bf271175b8ebef9acfea7996381d7676c1ba882e093e6685044e2fb60cc10c13e48f88", + "validatorIndex": 108, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xb4e98620eb22213ba248b5d4614b88cd9dda32936f1b933772456c69720f341fe9d97478e96ae1fab4655324c9c0b45c56d89c6e02f9e50fda2033be18e3d480", + "validatorIndex": 109, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xdc71bb2b2766dd7a5be29a239f68963a8ea08c58e33ea4846caaa7137d969143fa884aad2a7e1687e5e176c9536ee61142082f214a98db4d44501867a0d5c88b", + "validatorIndex": 110, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xf4e0a34715e32c921ea32e7101c90cab56b1fd8f93c0036ab153064458f66553bf3c631be107138c596717d8ff860d5f62e79ed611a99ab47c8f8fa936af298f", + "validatorIndex": 111, + }, + { + "payload": "0x0000000000000000", + "signature": "0xd63791c59efbd6b67f14885a05ff14b51bb9b6ee8cfa6e43ec2bc1628b8c873c58a461b960873a18a05d5cc51a61e2f68c30ae209734ae638e85a2ca0283dd8e", + "validatorIndex": 112, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x542dd33d45d3f898283d20bb744843c13e67544dd6142c28c40ec59121929c758965bf47e2903ba49467f7d4c19f66411971b0ba48830e2bce010cb51e91378a", + "validatorIndex": 113, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x0e1ce33fc1b1249b338dbb73735161341391d159da7d71b371c5d612c489a204e5f57160015d2bc8a7e49d85437f458c575f3aa3ead9e00f679a1c87ad99b087", + "validatorIndex": 114, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xb43bea482ca51efce0e5bf211b29a4a98712446b0bff52fb4f3ffeaf05b8856b47dc74a9d58ae238cff07b758674fc2f253dcde2b38e9e6a47852bee0a3bdc84", + "validatorIndex": 115, + }, + { + "payload": "0x0000000000000000", + "signature": "0x7ac2a21e64cd268d331c608de7925087d5e84698f335133ba679e94c6202fa2d50b67f1661f535fce31a9c37e0e62a7bdcc6b06f768a90a947d226dbdbe2c989", + "validatorIndex": 116, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x029157782aebd07c63970bdcda7107b4c25de877ed61f95523c2f51e579c9f258dd778b97792a1cb1eb4fe8ecdf66ea81da4c418fa8e2c8284264bff5db19580", + "validatorIndex": 117, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xe0d4a04f88725aa38861e1853d0b647456af07921abedd2500bd53bb87e4cb4cee44fe1baea50cd5d320db64977074a94ed48fe31d0193e38efcedd6ef17c188", + "validatorIndex": 118, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x848cddac2b2ff73424d87245ee23edc92c2e2e527fbfbecb6e009e49bc432a27197079817f40de7b353b75d1599001aacdf0655ba99bc4cb5087998442205382", + "validatorIndex": 119, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xacfd6b104dbb230d8050928a1bec04a0c1658ca3067248b7fbd60d72ddd26a121644fa8113e02e68e5797f5e13d4ccb8a8778601f2be8f3bee306682b79ea583", + "validatorIndex": 120, + }, + { + "payload": "0x0000000000000000", + "signature": "0x8e15ed39ae71f12e1e09d60b5ef3d8f9e9cfa8accd6a9ea55546e6aef4cd2004f4b9cc0f68642db8c464f4c0a5516b7b1c6607581ce8f93eab7b74b205d5fd80", + "validatorIndex": 121, + }, + { + "payload": "0xcd0c14c59c840100", + "signature": "0x027cb5d3247b6c4840e2ca7fbddd5bb3bbdad03249b1d6b5d767c46fd95ace1339b2a49b2942faf5ecb6c198afa5574cf3a5b771f1116a0e7d549702a6030989", + "validatorIndex": 122, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xa4846c33c84b2af3e521b6d6aad9578fe00649a4494c7fe01ccae3a128e5f11aa0024472d5721173023ba936a9bc79552cc54223495e082d74fa6cef64889587", + "validatorIndex": 123, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xb83ab78b1634a25ce950f9228067dd4d3399504d578ef3fd2271ba891f911d53783caf69703427ef3853587b5d626bb40bf65f1e0aa5a2253b1d2ac9838f2d85", + "validatorIndex": 124, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x0e250e67929f6fc68f4d4f4e23f41c803e12593f714d7e7b4bee93f7a9a56426ea449018c556b147456c3a7f9b84ab11839fe205772e52965492444fad69e580", + "validatorIndex": 125, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xe065cf6a61ad1141a7db22f0f2ddc317962d132043dbd105863cec9807691565c2a6422bd006da8aa80e7cdd6fd63a6777d7e80a3a6fc9ddea06c53eaf9d3284", + "validatorIndex": 126, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xecaa98c2f4ff67ddb59055b78d60cb99d131d92788eacb1b1bd7b90851cddb1f3ca74b05616751156f10aa468e2d65c1edb487596f333584be0be2662a2b1685", + "validatorIndex": 127, + }, + { + "payload": "0x0000000000000000", + "signature": "0x3af3d353cdbc383626b344544bcd7f4dfa4c90869b09021e4de584b341dfa06532bb3346d5ae53c36f5b420f90ac45c82afeb1903c68d9b02f84d5e10ccf728a", + "validatorIndex": 128, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x2ced82ddbe8abea7781f95cf3e820ef3e1f41a32bf4263336b3c0673e6d2ff2a0eb7dc24692b48830f7b37667b1f06abbda42fe3576a9c471c8c29ccfdd8f682", + "validatorIndex": 129, + }, + { + "payload": "0x0000000000000000", + "signature": "0x1060b51c655a42850875266d35826e55baa33b808b727f6c68b7665ff99fe92071038686bc88dd198481f192d7e2236108cdcdc4800de0a3e0ea045286d0458c", + "validatorIndex": 130, + }, + { + "payload": "0x0000000000000000", + "signature": "0x564ebb89920a32c49b787a7ed41a2e6fd47fe1e6d12fb440e5d6218fd653550900d05b7d790049ccbbf6aa6a9486a405fd89e2d7da4af3730f6aeb80c0e46780", + "validatorIndex": 131, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xbaef9b2feb9e7f120ef3ad5c5a5322cb542ecc4b15304caa24f9bf8b07fe5f6ebe08c4ff7f170db1bf0bfed09e7c5db0f5de46287a55c798f107e3ba53620982", + "validatorIndex": 132, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xd89967da49daa529485a5235d759bebc20d33ab37c986abfc878da1d4b258b549e67ab519d9462944038d704530381cc285a4d0a96590485f98ac6bfcc80e78d", + "validatorIndex": 133, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xfc00e5e105f5721b9f8e3faa328becf4b0f86f3e234da1457dd9bf8404dedb79f78230bd65e46ebcd8114ac69b926590e42ac0edb04d1ab044bc2eb95cfa848d", + "validatorIndex": 134, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x148be142bb99329dad8be05477111d0debb94af169418e7c6e64115617d3ab4b2ecfbd652c02d249eed9c2ebf854c069cca9ab34782302032792029efca34a87", + "validatorIndex": 135, + }, + { + "payload": "0x0000000000000000", + "signature": "0xee60b4782bb09d35fd111244e66440da143190a1e4f889f3f11e909331dd135502e2cc10ef314a6cb64337e5c7a95e51c03b64577ff4d057f6855691a2da2485", + "validatorIndex": 136, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xec72dd7b2d00d2ba55d68bc99d9694438cafdb69fa1802b505f2a90ffb94cc7770c2e93eb413a338717a51feddd9ede0b30360d55cc53eaba2e64a3c4aa6db84", + "validatorIndex": 137, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xc63603031140bffbfb0adf47d9bf3eb41395a02c8f2cc55dd44e206b266c6e094506139de7b0c8fda944135d09cff3fe85714ab8ce42661a599f63ad2837338a", + "validatorIndex": 138, + }, + { + "payload": "0x0000000000000000", + "signature": "0x22cd5c5f7cb311e9932635e4ed391e4c89a7a8f5ebb89e1b49e4652d679d1468dbc542b61a931c26d7027d5cd19e6b22cd8f750d9d23758e04ec70e313fe3e8e", + "validatorIndex": 139, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x26c0433935d3a7606013e55d15fc5f97054abbd74d49c0a1426a8fb339436850e22cb6e297dcd1f083f666a1e1a06d7cb79a829ae8cb49ac392887b246542e8e", + "validatorIndex": 140, + }, + { + "payload": "0x0000000000000000", + "signature": "0x6e1d3c7fac3dcc7d0647c66dcfdf367af0e70a758835d7ff0028e9f5d0cd1c51f030d2d5f34f165d5069df07cb29d3f787bd683e74bff144d939da58cecb788c", + "validatorIndex": 141, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x6009fc0d367a9c97671c555c965b47c3ea28b0fcdc90c77ec838dc45574dd22382b8071540082d84ccdc84df3664ebea85ef2c43702991d4aa7a66c12b33838d", + "validatorIndex": 142, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x807b71432559dbb9d3d25e04303e553c1ec1b829d8d3692c597ff67a646a6e6ed65599e83ef336d464559197b48d12fa1951072d9e802e1a34d7d24789790083", + "validatorIndex": 143, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x2e2bdf55a5800918f60c34ed93a6504cbcbc0b065bdda07ed35aa24f26fe8054409be3aa2e05cfc3f2030bfe66427fc522a2ef98d02d599cc0392e10d0a14687", + "validatorIndex": 144, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xa41766be0ff072cbe32a782dc720352b165abf621a9e771fab0ef68e268af17d622a30aab75df7aa9a14234b3829c71d4471060148ef1ad41a3cf54d87546785", + "validatorIndex": 145, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x9ac1cb8dde38d8f41b694e842344c55fea729841be97dfda50bb8c70c4553b633cfe2d05e8d90e71ddd8ddb8ec20198f0ba7939612fc7873b6182f2242c69f88", + "validatorIndex": 146, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x1e64e2de0303d52a28ec3d4d0b299f0d0955d5dbaad2cb45c7276ce99bfc8534d8c9c350e0df93f7310ba4cfe5290e2da486f6c20738863420cfeddb5d493287", + "validatorIndex": 147, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xf8b64b0059db2c13d20eb9916a37fa5d05a1dabf5fd36e80b4e1cb739ebfb633f0b09de5cf6b49ee40862ae4b0794d3959fa5a841aaa63f05bceb464fd595c80", + "validatorIndex": 148, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x722d4e9b67ed9941957ca9224b04836a5958c377bc703f159334e533e535860b6728bfe811e3c9156b1d21009090da178c64222fe390a479abfe66f0a1ee4d84", + "validatorIndex": 149, + }, + { + "payload": "0xcd0c10c59c850100", + "signature": "0x784d9df4f870539ae0cfda82bf5a8008396c72df5f7fc451927c036455810d5d3613c7d1f477a007ba52c9d34c0a222bb1dd32dd8575210c83807fd1bbb3db87", + "validatorIndex": 150, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x92161a31e1a5a88e2049bcc3eef471b8b7a579e98bc43364870fe0af87fdfd51da9a6c7d4bbade39106e575564aaa5e8fec116a2e65809bc482901ab38d1a48b", + "validatorIndex": 151, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xb2c5ad22235ec949d48f772d92e19f126e3789830ef57604544df662ee77bf371af61dbceb914b9da0bd9740ce151a6d5db6a643c2cd393c45c1181973fb1089", + "validatorIndex": 152, + }, + { + "payload": "0x0000100000000000", + "signature": "0x824f5a542ac72458a81f141e7e257bd9ce9d938c5c1df57e7b2b153380c9b17d7e51285535220f3692e4dac9c90fc27420991395361d5ed6b5a66a55afef1e89", + "validatorIndex": 153, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xae3925f59efbc90a852d0d04b013de480db246c52670250dfc3dc250f2afe27db04516c8bac89c0c3104d20c9c2427d391cd35170b3e5570fc2de0fb9382b58f", + "validatorIndex": 154, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x32c99de8a2c2465d0c6f37a46dd3bab96a87e94d9b8d0cd3968143e81c4bf92cde7ef6460e9ca49c509deff6d8f4130e9e38a1a3cbeabcb6c845305b517ea082", + "validatorIndex": 155, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x52b10a5fbaa6514a89a5dfc9a3a4fccf81de6a82c8049e83997b58115e16df4e3ab098c94dbad84af107195c8152c11f447dcb5ec0b530c42026f70f7466bc8b", + "validatorIndex": 156, + }, + { + "payload": "0x0000000000000000", + "signature": "0xb2f5988c2b44dc2cdf76f285d9e00f837357fb099e3b839c1fd2962f2ee4d2106da3125c618563a9bad89e3dc5a8408766f6e959c41bf6aa2282aac7bb4e9481", + "validatorIndex": 157, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x200e1ebeb677eab0cd6dc91424bcbb6e54ea2ec886a6328a96740f92ff965c3cdc11fdeefcb7891d09c4089f6f57e089ae4028f6da25b1136d8fcf0ec33dd58e", + "validatorIndex": 158, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xd8004314de91106bf2df5c6493a15b4e92eea2d129a75c8f595b55536921843858876a9cc2d4618c9d1f8fd272c7c7dc2920e2749e2dd8acc195a07013c53a85", + "validatorIndex": 159, + }, + { + "payload": "0x0000000000000000", + "signature": "0x7cb0427881bbbebc2647e20211021bb7f9d80c2b627d2c11db3d41d4a6184756a0979ec8f63fa0e0cef64e56b92c24ea7fd2e0fe3f51f66dcd85007d86c19284", + "validatorIndex": 160, + }, + { + "payload": "0x1000000000000000", + "signature": "0x9cc7dab1e89646829c107cbf86cdfeea1db7ee9b4adbe96838f98c76329b1b5e1bd52c4f8bb02a67bf5a67655c540db76a3c5f57cf0e7b0cb428148d6bd6f08a", + "validatorIndex": 161, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x568303c9f5fa6c104bceff1f26d7752756e158bf363c9f9eb5ec556d236ecf177efeaf166684403056888f698a05c7bf2e950069d0e588e0ede93fc412ec1286", + "validatorIndex": 162, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x2c0ba5fb5c09068750e12b418aaccfd7102dc0edf02726649899c1116201f45d916d6adfeb91ff1d6929347a000da586d95c3a5a4d5ac2eb6330f0bd54d36082", + "validatorIndex": 163, + }, + { + "payload": "0x0000000000000000", + "signature": "0x089ffa56c0bb627c73f2ab42a7d6b165a2ac0d183932c133981c16352a153b4de52a7883e3392ca66eebfdd88b837cb2cd33c6a380ce2b466582def063bdea83", + "validatorIndex": 164, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x68a0ca95e4fa1f76e45fc1f7c904aba00550e810e373f472bd0d6125b8500b502512944d412eae18792e391107e2bce070fed725ff32fe524ee31e0a4a357d81", + "validatorIndex": 165, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x122744d473b3fa54f8e53d957086b7e71f4d4f901d16b1e5b54c6e7d9aabd910fdcc595eff9ffe4f66164331689ddebb6ab5487e52a003f5af5f76956f918388", + "validatorIndex": 166, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x0cafca84138e9b6a5e2d39d3441346332e19d1c7bc5f39e02099809389f3d229aeed12da54e80a5fcf83688772b2e0497d15e91df287deccccec328923717c85", + "validatorIndex": 167, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xa2d9b8557760e9ef5e20d82d5d6e56360726357accfab49d57046ba53b37ee59064680b83029641d90e77d228cbac9da74c7bf289a345dc3782c69dd8dd8918c", + "validatorIndex": 168, + }, + { + "payload": "0x0000000000000000", + "signature": "0x248cfebf99a492427c9b8a4882938bdf2ba99c2e3f3989341129963f1393362169decabb7933f9a258f05db653c84e579a91dd975292e61401bc06987567d084", + "validatorIndex": 169, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x56d8764f69764087a20a70284e597bd374815e47456a9b1531cab9eb6196421ab2216de7f1425ccbb64ca19e7c12d4367d274252b84ee4891498902d653bfd8a", + "validatorIndex": 170, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x5a3f08d3977900f6967d480b58608444a4b17ecd724435b2e7f5768a3651a36e2993bcb6af48df651999553870084037a6651bc7862fa5c6b96154a6c1f83086", + "validatorIndex": 171, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x44685bf644779d69bf6809c3cf3e67d5fe0d81ac0608286d2ec5513b850ab11cb370824f4a3a234b0df20e206f854fe710cf791e91443d2fff9331dec98c2689", + "validatorIndex": 172, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x4a964347d8eac0833fc0cc4e7daed4af44f021aa8537d2a4db1616455b44b26ccb3fd45113c591e42ee3ab1cb25bd8a5902e1ba92db0ba623e818574f1023e86", + "validatorIndex": 173, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x9004a6ae3004100d099be69e110975b5d754d3233d1e08b7b8336bb03c368d4c607f6af4d4689085ef2fcc12fb43402a431ddbaeab66df2129770832eaa79684", + "validatorIndex": 174, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x40086956ca9fe47737b97053d870c07dfd225afff5ba95b3f28ada3564bb004594e770f2b05c9379a0072d907b0de0ed940c437ce45e1318e03c0389fadbed8b", + "validatorIndex": 175, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x927b29e2bd36a96f874b738519c07e2347b5dbf75a69f49211b3be430081114642ec8c1e71bf81018685cba8db659671d18c9bd3adc8c3fa58905268f0f98b89", + "validatorIndex": 176, + }, + { + "payload": "0x0000000000000000", + "signature": "0x5a4e3ab683d756c4a6cabb8653d0dc5363ae4f4625efe26fce9031e58d13381969f2a8bb34cae1af4f8bf19ed68c9cbf32b293964faa2dcf1d730b824497fb84", + "validatorIndex": 177, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x8886f12a45e78670ffed919b5d3afe786e6384e6506fd88b28337e875ebe581e703fec88c04024f54652c35423a4bad794fcec50ce6048e10a5845412892428e", + "validatorIndex": 178, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xaca117e8c8e72938bcd1ecde8b600b8da0544543ef5c8e72672d9c15ce90fe44c0465116809b6c5733d7b24dd89bda5843f0a84605996cd8a1e88b9a8ad58484", + "validatorIndex": 179, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x80ee1bbf8ec2b9c91b83984702bc4c9f7710e52333f3febd85af7a430116c77d9514cdf651ab11d61a88cf578b6eee7a1b6d97cbf799a03801ddab6d83236582", + "validatorIndex": 180, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x5c64f8f1ba23bb31d1eaa7589e09d93d328869fed47caa4dcae52040d70f247d359b8a04789984c7451ff41434c09156c02edc25e53e9fd0f957f98bb9f6308d", + "validatorIndex": 181, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xcc3e5656599a7bf8d76d5dc9829906e234c94833c7b0c7fd094b03f45e183339e1239bd861c8d807ea3acc972aa24adf68bae9beadae06afcc2793941966ee85", + "validatorIndex": 182, + }, + { + "payload": "0x0000000400000000", + "signature": "0xec1e2c1939ceb4581aab9f798f7d3bcaddead2abefbadd0e2e89c8b4f7744d73c67fee80aac5175724d24bb44d102985ea5af2c338bd3cd88dea1749bb8b0480", + "validatorIndex": 183, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xecd6cd49b8cbaaad3bac3f3b3ea092ec7dc7a41b465d0dc0db5b8e78f448b8390ffb64d82b6558640e5ba10cd13b87082a82c7e6eba623a17e1e190ced1cde82", + "validatorIndex": 184, + }, + { + "payload": "0x0000000400000000", + "signature": "0x34adbe5e25bd5e482d08779f7e4b028a9fed50c61c3410c7dba6354a9f9ac41e050be3d2d098bc9c7d282aa0e27f383fe2f393b1f5b3bb83eae7c79344b5cc87", + "validatorIndex": 185, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xfeedf42cb6f7b5cb9e84b5b014b211dd1b4ef80707e21f3e161fd2a231327a04a801879b0b40bd3e5ab075b1a8058e9cb81a236b8a1a2b1714e7ccbda0e5b782", + "validatorIndex": 186, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x9aa082878793f6549908e8f36d060b2a3fe7b08141e4dfde522efd81871326416e7517b9bf2e7b7f6a06c2a6d2413016565126c3f41629db288f3db1a76cac80", + "validatorIndex": 187, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x54f2ccb6d3777e29dcc463f42e0751711dec385d97c7db9a88c4a418aac396633912eb70d82ecac69e7b69980d7ea9b2143949c5a74f949e993505a9eb151582", + "validatorIndex": 188, + }, + { + "payload": "0x0000000000000000", + "signature": "0xf2f10e554018af6dca7824ea489689b636b8344f7551a0eeaaade2f37aa84e25fe930dc3d2f7d78a4330e645732f1cef5767eb2a516d279fa6c378bf29a57a86", + "validatorIndex": 189, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x6c159220249ca3c6c32886d74231c44171e5efb697421519fde4b05f143615201b0ffbffb7a8d42798f10fad594b716c206f252761eded6f3af1328406e4588e", + "validatorIndex": 190, + }, + { + "payload": "0x0000000000000000", + "signature": "0xb86d1429462fd84e1ff66ab1ff5b053b79d73e255f2b2619f4083e1f9d656c58d5bdf23c16cd389fe3846382e79098efcf13314380870930a089f0eb8e5f8489", + "validatorIndex": 191, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x061d02a9ef3e94948d96485c64bf77c0a911943921697e84ad37fcd8a07cbf2e68a329a2704046fa6ca80dd0d5e2dc8eedb6ca45e730d10f4907e6772af43580", + "validatorIndex": 192, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x4a21d5f1fd74d03e9925fa31e7d9393ce1ba94c13f5c71b05f7dbc2094cd1b28cf32e2cbc99aa45d2f0684c353f4c4b67c65012bedcf1d3edd1a47cae4a31084", + "validatorIndex": 193, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x6a4b24f5651b69ccdc7bef3f17bb5d0ec02108855501fe4fbf6566728bb128752fe485849d19d7a00f9f5216c4442cca4bf620730e018ec93b696bbe5cd4d781", + "validatorIndex": 194, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xf44bfbb00210ce82ee6aff6d4e09eac3057415506154667f6916df209f6fe642c808c466177043efc19d921646dc766a23420b1356b75bf128e854569374a78e", + "validatorIndex": 195, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x9c6d98e690747e0ecfb4e3d9063b198564547ce3a5f0bba35c88c9a96419d01920081890dad38dcae447f6628473e0c9e386dca0b275d2fa99e361f8a5c4768a", + "validatorIndex": 196, + }, + { + "payload": "0x0000000000000000", + "signature": "0x86a6febd760bd65de797a6466a83006bdedf787ae1dc9f09fc65ac935125423e25f666e5eb276abec4fb856d254e48a68d348d57e548343f9d2ef50ae50ac588", + "validatorIndex": 197, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x98c42f9ac423ed400dbbf1f4b44865a7b6c337586aad7264f0e005a6322ea26808b93cfc01611a93e545abcc9686e913f40998d92a81ab799794f4a63bf40181", + "validatorIndex": 198, + }, + { + "payload": "0x0804008400850000", + "signature": "0xb09866c61a1b77b8dde91bcfc2f9a14f2713f6340e44bfd92f3741f0ea84d143853fee35bdf2b9a69d78ff149515126a8a7ce3308fa8bcd09d0249e358994e81", + "validatorIndex": 199, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x92ba0e81a6360d9ff83de651fa9c10b5ccdb469febcdbd84723897118160a82d81dc41215a71b58e8baa601a36b6599dcdf84be15cc2fa9056c475264ac96282", + "validatorIndex": 200, + }, + { + "payload": "0x0000000000000000", + "signature": "0xf08621b0ca2c89ad00fe41ac173e9cd736aa4311618e03a69aae91cf7e6c8c7b6f398b832dd15e0ae0585d28275b23636631d75cde6b75087c316ab2e0304587", + "validatorIndex": 201, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x34f0b42c6d50008e01c0d557a114b62e2663c9d955e85f497a5534f54d8f5d4433d1e3f4dffac653afa46176db5e70fe6fb219cced11719e7f4f48f5cb274d86", + "validatorIndex": 202, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x10b347cddcd9c30850a8741270a046fc640c64c5611f4c9edf8124981d017b471b8c1542ca788dd9f322c8f058ba306843853cdbe237822b40712456ebfb9f8d", + "validatorIndex": 203, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x96790fd9814334396d1807dc5e00c5cdc438178dc43549a4b7ea57b5adb93b2b73ea0c55d83fa999835c4c7c3df834dd0503eb79b09f88ea96e13b4682cc718f", + "validatorIndex": 204, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x1e1d3b97feab29ae3a50c25779ed6ff36ef5642da20483bfcd6773a3807f7b6958396269ca93029160811b84c8404b4473c98be5ff87491f83e2265426f78d88", + "validatorIndex": 205, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x6016ff87e8cacf8de65fff88ae869aa9bbcac976bc0723fd24518f9a737e54548c3c9ed08a966f7f773831ab0026ba5c178817cdae1768b8874818df7b984f81", + "validatorIndex": 206, + }, + { + "payload": "0x0000008000000000", + "signature": "0x76517bfaa7f10561c65ebf6c6c737f40aff0b8211188f24c28673e6427ab8d0b4e9cb093e3a97a378333fbde312b36369964266906b52bf243fda5cc77e68089", + "validatorIndex": 207, + }, + { + "payload": "0x9004108518000000", + "signature": "0x521e7d294a35055d4099594120188e783241d73917efab60da6968d955c15139adf00f357c1000be4d043b6d41482a87880e0fda164062d7df9b5a4b40a90f86", + "validatorIndex": 208, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x3e9ce9afd445d18f98050ef53801e227db4abbfa29f98b0496ce6b97bb205417fe9d9fb1e15dd3edb6ad55b5b710f62230073487bcb014a1f1a4ff0976d95d8b", + "validatorIndex": 209, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x185b649f01310cfb01f1ebbad8c806896cc2db12012b91977982dd0ed01e463381115d924f440f734a6043b4fbf90f4b029338d27de8b395b8d1a525f6637e88", + "validatorIndex": 210, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xbaffa0f357380c623b1f5ee6639c6f2c021864dfcb0da72c950f2dd9164d3e2dcb17dea32e49683561d376f791d4929fcf7db719767aebe171b18ca8552ded8c", + "validatorIndex": 211, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xaa440cfb513bddd259ad49926018c21fddca27d8a6f10d42ea9eca80e2d29a1c9d66142b5566ab0eb9c1f2df8e407c8318f8f230db2c7a23ee4139be08e38382", + "validatorIndex": 212, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x00115f0c56e7eafd10242f157ddb9e39a1c80bd4bca8ff2296b4c40f6abec603009709f813196b4897300b103ae7ccf76305acf0bb7691e3f247b1d6f267af81", + "validatorIndex": 213, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xb869984656a003614d2fa5f50c159b641afdb9101d605f0bca36c34553d90a0327a90d2b9014b6503a72b9d2ea13c5df85b35fea69091ca89c21492d75186d85", + "validatorIndex": 214, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x822d1939897cabacdf2af5cb96669872fd6de3385b663cf06fadb689b66e8f4135c0031b79eaeb7b31961f6b44ed26de3e8f9fbcbbe35f0463d7668eae4c5382", + "validatorIndex": 215, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xa27c3f460cf232b5c9f576034f599658ea567ad2cf825d571942a1285b634a316f2bfe2bd9bd876e37120c14e52311602a6b889676efef9a21e5291208ab6d83", + "validatorIndex": 216, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x2cff638a63ebd49c77b5d7d4e5528381a63a5ae56a3e792a4b88340023a9da45922d9241e1aa111784845725643b02d195ad6b30bf15bdfb3d92c5da16cdca8e", + "validatorIndex": 217, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xeaf636f648c4c825437b7f644d67c005359d228ba08d79bfaee27b2fd615990f6942302cfa36fcff1059c8df5a58ba207b9a3066e3f7cd662d5938f3fd5f658a", + "validatorIndex": 218, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xa4b333fbf0fb3d61ff9216d5f383838dc8a6672cb5dad2c91f8ee33471e6920ad7026ae9c744a2b790c73fd4eb2eeac109eebbfb8edd4e12ba7655f50e512d88", + "validatorIndex": 219, + }, + { + "payload": "0x0000000000000000", + "signature": "0xf46040ad73aaabc08f0aafc94e00ca017e5ad545d79e0958d464db581ae1a872d8b4027dd3ff462f8b5f724d71e786a6ce15e19bb0fe6b00cdf1fd978ee4ef8b", + "validatorIndex": 220, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x62686f1be5033dd6c854789d61866d061cfccfbcdb4772e648f1ce0fdbdb356951b71da378095918e3bd1d092eba5271c2e70612d316a08e126adde11c8bae83", + "validatorIndex": 221, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xfa616fec8770db48af2cbefc3527fa72f5d198fb4d5010508476b30d3b40d072ce096f4307a36a68657a9978ba32432a060808cb4dd6e745e605837450841f83", + "validatorIndex": 222, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x66f09c32b2ffbfd0d9b2b9aa69ec5714dad03e651df42dfb5ed904993ac58034083b6758c607b6ef5f61b1dca2592e6da9b019a9caebb2d826bfff4ab2a15284", + "validatorIndex": 223, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x7039d38825833e52b6e24ac252d9565460152fd9331c87eb9dd56e3aef44a07aecb13c56cb2f1810946493f65b1efa6541c5c98ba60152e949818edf31863e83", + "validatorIndex": 224, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xf484d66a811ba2a44d150c0ddfcdb8860b94720199013a3027281ff4cde59c31b4583221321582809c15f7603e7c7c42cd79ef7244d02b159a9a4afe12fecc89", + "validatorIndex": 225, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x8acaa3df2f1bfd87973df901c1546111cad931426a7655ec4abe7ff521728a0a7974b4bef8dabcffe26f681e5043f9ab8cc64996403a24ca9d21465ea646f981", + "validatorIndex": 226, + }, + { + "payload": "0x0000000008000000", + "signature": "0x8e66cec525216d3ca12b396393891aaf4226a6f3f1162b2191a6ce1b61a2b11f139f943cdb429ebfdff95de0256cc19d1ecb9b0fd5d7ee51df7d367890477887", + "validatorIndex": 227, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xa2c99ee140a2c2967992a971e977abd1887154247b2ad4882b970466250b7453b17a15e14ebbcdc568eac7940793e6d3911a7dcbc13e829c6d76dd3ed60f2980", + "validatorIndex": 228, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xbc6489f364f7909480ed96e825584d3627854d428b9fcc4d0db11f16d28e2626683563f5ebf95536fbb3b68fb62ae19ca1ea07843442e2e17d22b2d321f6cf88", + "validatorIndex": 229, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x324ecd7aa85bdd8ff7128faf76a37f8f31b22c51182ccb94cd097849ec7e61384ae39da1fdbf16409518a84155f30e6abed3db001ebfbea19b26483eea7d7b8f", + "validatorIndex": 230, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x0e08789ed9d04f1387f00080596879dc28e1f1996e8cdc706853c91faf39de1f1fb96f4f12e8dcf781761282777911fdb1adcebcd1ad73c384606bd14ec2998d", + "validatorIndex": 231, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xf8a881deb8c531a51684ef64e32604df70c7f7115780ef47f61c4668ed4be70d71246bd0852232620929cb7ee3c6cf8e6058685f0283acd08fc155b0253da08b", + "validatorIndex": 232, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xbecc6a100e547eaf78d1e98f5046cd23cbdeaa1c54079c0d9a623082b835eb6c9a7af8b3fd47449277bcaeed48b35811745ee2b11a9cc9c948d1b8e6bcb21586", + "validatorIndex": 233, + }, + { + "payload": "0x0000000010000000", + "signature": "0x8ee662f27729f5cd3bf3a84b4c18d6c58dd4c658d9b9940c46cefd607160b10f2eb5a12130a132cbaebbfae89f9239aad5dbf627fecc4c3045f24f6675e68e88", + "validatorIndex": 234, + }, + { + "payload": "0xc108104098840100", + "signature": "0xac5d625157b455393e29747907220c7096734c0ed7bf85e4554cc38fde35386eeaf63c3a0dc64389d24cef1b9a1b7a6d848ea079fbf42b1cec9abaed0d03278d", + "validatorIndex": 235, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x261d4c28fd71222dda7594ab34f7f203269fbc5c99b6ea1c25e88b9e19dccf0581e6c00780145eb5c3cc366981afa7f0d7a2d23388e2b7e4b7ed6db12769688c", + "validatorIndex": 236, + }, + { + "payload": "0x0000000000000000", + "signature": "0x12b0c70b7ea3b4ae85083691914b570a6ab66b105f36b99fb219a8575a3a03072a49ad08512493338634456441a90b8562ecfb75904f60a6a94175e9e3935381", + "validatorIndex": 237, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xd2222b5a3218de1b8ee0d436fcdf15e961a3410effd3b2a93203f471b489746db8a3467ac494c0e4dbdf8f9e942b5eec00014dd10e234805e4e19bc3b9fdf386", + "validatorIndex": 238, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xc05d1af0af109e18850fddb5b8ff5c14c06c513e4b30d99ee523aabf675d0d6c8f6781be1328fd9b8f0e2ec6503ff000b1f11afab021c66123935d5f5f4de283", + "validatorIndex": 239, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x045f5d4e4a383dda8bd2957a97fbc0fdcb4d0e8c225c092bc190def89529af4febf97ea2829e912279ae3429fa38d2a75640bfe75cd4c0e1bc0329ecf65a118b", + "validatorIndex": 240, + }, + { + "payload": "0x0000000000000000", + "signature": "0x8eefc687eef1adf2743a3f44efe42742359831ece5b2c120ff9e75c6bf4fda508c9158ee0b416d026728ac0e3dc1a5b0c5838820993ab613c6e8cd905d16eb8a", + "validatorIndex": 241, + }, + { + "payload": "0x0000000000000000", + "signature": "0x0a06d357df36a9df5fb2eebd23771b3e51c2d3ee50ef9f829d9cb6ee33593d5477fbe293ffc514bc727a2b8eb667306842f2a2ae477ec26323813505005f7983", + "validatorIndex": 242, + }, + { + "payload": "0x0000000000000000", + "signature": "0x92b330c3cf9d80ea5113de433a6bd3981f704f4fc7de43b24dd1f8955fcd8c4256202769ea1d665af2dc292f9fcc32403e4a0ea2e97f7e519f8494f11fb88280", + "validatorIndex": 243, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xaabc4d01c31101eeef25acf0844d10892c3321c9b500d91ee1c6374aae90943c4b4cd4b03cad02aeb62a8d54d9f0e76f006dc38b578211a03ea0ae567f0a8280", + "validatorIndex": 244, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xc08fd1900bd5139b17aeace56e35de3327cc6c7871ad5498adfbcf16ffea6824421588d20c41b0df06fc0de7741beb594d43fd85169196aa5da54752d7529786", + "validatorIndex": 245, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x0057e6d3bbaa2566c29a263473d26b2e9318c3f5224380d99dfc52131001d131f570f0bd0a30eff598f1176b6e22925968a70f1c224dfda39c31e0f184294488", + "validatorIndex": 246, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x2453cc73438b497b13f2847350b7b632f8ac87965de5252034fd16d4f727392b0009663dd9b895b073db858074fdea5bb3138865fe2a06b4c468a59454408d82", + "validatorIndex": 247, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x16c6c100541672844703560cbb195f86f0d80de197f76803673e0e75f2322971cbd025597ac0cce2d2baa9baae79423e1cb6581349bcd76a581c4672d2346481", + "validatorIndex": 248, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x2ab4db07718620a7d15149a802185632dc2b1a4c18c4b38b0689d42eff4d806b0cf537dcf09ce1805820612f4eb6bcb0946b92a6819c5cac59252fac99d35182", + "validatorIndex": 249, + }, + { + "payload": "0x0000000080000000", + "signature": "0xc43f28711dd825251927ca181cecedbf574692deb74e236d73e257c22eb61444d59f98e6ee27807bc0d9d7b1319fe3fe9e778cb6b93cb5fdeb190cb8362c8580", + "validatorIndex": 250, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x5ac904bce7392cab5fe727a03d1510fdd6a9225f3368fdf229b839398d4a0d4e4c8d4d5bb3601e0a570899522f278b16bdefcc197013d0a34a44f38147ac3f8d", + "validatorIndex": 251, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xdc8f2898ef090b1928d877692a4f04a2b13a2e32740c0931f9001203c6efbe1142eb4f27bbf1b4a6bce49bd8383f10bf8216d80401eb99a118ffc258f5068a82", + "validatorIndex": 252, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x8e0fcfb117a8c7990f1d11ab95dd4ff2b4e7dabdce030f02618535aa139e7b72e26aed6c09adee7283dcec1bd83777684abd30973ce4e36e33539fd87a147783", + "validatorIndex": 253, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x46312f44710fff0e5dcf098f99ccb8e92d342a706644b1ff1ed614953cb80f3118fef897e2e711e31f83538210035de5b70cf89b155b016adeb358ad6e770d8f", + "validatorIndex": 254, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x0a1a38ad25ff4cab6827d5f249ac2da0f3ad82e1bef7c6d11643af399706a273b3bd4318c198792f5a47890a318f3dcfb59d845584c2605f3835509da8a9b184", + "validatorIndex": 255, + }, + { + "payload": "0x0000000000010000", + "signature": "0x8cd7d06bc1f386f101ef272c51d34cd9106ef303dfd29162d4bc16b6ee842c2f1a7735a3cf2320efb6a36d2ac85558cfac9206603b228145358dd831cd3f2683", + "validatorIndex": 256, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x2cf3d135d50b348780be5b74a263b6f05ebf1b02ea7f8dfebcc4f7a119a52a0d3d76592b31be6e709eed580a59af6a9b7d6274d653106979118c24432706228d", + "validatorIndex": 257, + }, + { + "payload": "0x0000000000000000", + "signature": "0x8053ab2e86d76416c020e538afdea5c4bfb6783938e37c64f2eaf905173d36614690a72eed0ffa271513d630d4cda965276686df22bff99891f185bee594be84", + "validatorIndex": 258, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xaa5a19d1a9f66a31b2c7434db5c6a0cbd2b24b28fae46610aa3eaade304e2d5d5d05b9634c7c0a70b051ac4a9a21a6324c04d0d8e7b51812ad1638b14237118b", + "validatorIndex": 259, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x46fbb5091b15674dcbb2384d86abcbec1b96ca33e997ad121fece22332919215068b7863c932f2f5678e507f6cfb5fe98a3e507143e0de1a8e2d0292a9630188", + "validatorIndex": 260, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xae97c15667122eccf41bfa493a3a11e6fee0e9eb8bde4f378e9571ecf2b7464491dfd13a4ae6cc26e594fbbfd600581a1f7d152e423f7bf2db609b99728ae986", + "validatorIndex": 261, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x4c1670d13ce3a429d1372fe35f78bc6b426886e4ac170b444b899b330485143e080018deb84a7c55d3123032bc4f2c61c83e0fb615bd426f81f1da4c52429f8a", + "validatorIndex": 262, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xb8c25ff30a9be474dae9b09ec70624ed4bc3073182aab52c0adc742807540a27a8b4abad6c2744de4ef5940c79000c121331d0d809bf4e416d888cf495e19c80", + "validatorIndex": 263, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x8a10439f819b6bb8ef14c05cb6149164dc6e9875b6b75428708c95ad32da524e4f56ca95137997af4fd715ef188584fe4595856ea7a4e312bafffe0dffb96e84", + "validatorIndex": 264, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xaa0a1b1368d84b6feb11ef79bf2a2a3ef65561dbcbaa6b843b21d266dca2e40f4fb59ed2dab1746fca27f7a22a53af2b9e23bf67e923c32c786aec123de9b58f", + "validatorIndex": 265, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xa8620ebda683dac1609d16e606d7746103d173f08b5a476b1f2af820aef84f452a251592d80da7ba53ef6d1547eae4f3b4db0960adbf2927b93ec9a05bb05587", + "validatorIndex": 266, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xdc58ffe09cd21e02a8841aa5d407bed79c356370cc8669a5c5ed19d29c59c931f3ef2a1ffd50f27c5c781ceca3c95c0febc3a1d0396b24036223fff42648bf8b", + "validatorIndex": 267, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x00e7d0a13d478cdd93f08248b47bf7e3f0e797ce6c7e740cf51cbd2eae70bc57f2d9454912455eb857a521caf52e2567e43c20edeaac850f97507c2b284baf8a", + "validatorIndex": 268, + }, + { + "payload": "0x9008100580840000", + "signature": "0xcc41b170d1dcf6cffd7c967f5e01c9da6ca5c72ee31a2e60a94d5951448bdf180f6e612d7f290bf345a79d0617e1d0d01c0385a879bbc36d533e770efc9c8c89", + "validatorIndex": 269, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x627a7e05b7b1771347ab758d4725a5e305b854374f309e806131d047fd31d35c3846675a635eacac95e45b3251e9933b9055cf5b0836d997e746a853dd266183", + "validatorIndex": 270, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xeef74f5a72dbd2471ab0787a9c76c74686cc0eaa43ae6530648c5d21a5d37d0baf199fb75682a5f3d74e3eba1cc4533c80c95036e5910b8c67e504a627b6e089", + "validatorIndex": 271, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xba384d303d6e08f1dbc7e759570f15c58b6598986e7f4bab42e4b3e8acaa1228a12413bc9b88be28e037490d113bea51f5b95a1cab931b6a503b1d25adf85a8a", + "validatorIndex": 272, + }, + { + "payload": "0x0000000000000000", + "signature": "0xf61a805be8a0e14084bdc4c058a997028458ba7f298f4a1fa1371a93f8a3be3913d79317435b60ca48c4c52e51c104ba232dabdc6b84cff61788d500f1127385", + "validatorIndex": 273, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x944ec2ce06ce323bd14f5c1d270a31bd23c9305710351b289034610b601224770d1a47d3823b5ff3d2b14da8edcdc0d9d54e444a515da12646b797182aefb588", + "validatorIndex": 274, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x3cef5a8a9e43fdae50e72fa8e21be72076363552b0969ea412851daf536c4f64f0bb9bc12972edf0d5f94cd8f575048cc291425ccfcf757c84ef48c5c5d34d8a", + "validatorIndex": 275, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x6c6f424b1bb2ceee8bdd2a80696fa544de9543e6c534941580ae5d4d55e38a55cbe3fe3375df611e8d9b89849d3e13c8504eee5eb4dca39d1126901e34802387", + "validatorIndex": 276, + }, + { + "payload": "0x480414c400040100", + "signature": "0xf412f7ca645a84e9695b0e68b4abeb0b6ffa1ab1c91304270bef4a656929af6cfd8db4d8fdd605da3b3c59e5612c050e5828fce08913dcfbe62a432c6df6db89", + "validatorIndex": 277, + }, + { + "payload": "0x0000000000000000", + "signature": "0x280fd8c42cbdc09bae374e9b0964e1cb55da0c249242de6d483d9164b06a530dddd0e33aca5fa0f040adac567497cc253d0ae23a0789e5cf46fca6ae628e8888", + "validatorIndex": 278, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xda9f3205b0ed0f9da3d81febc8e3fcadf694fd3556ffc2917a1a97ce4f9c500c42f9fc10300d5485f5ef08dcd6ae826cd47e5a70e0dce8431d8081d06d67e284", + "validatorIndex": 279, + }, + { + "payload": "0x0000000000000000", + "signature": "0x76872cc0347c567dff0073caf8a78ef97a7febcf527ff53e80ee4e09b1016e51f9c1391beca970070f61843dd62b465165f2f35e7f36b6c20d06cd84b8217580", + "validatorIndex": 280, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x0eee109d0d972221ae31c180242b40e58a9e945c41d419764b0752cee3521f1167a1bf48a7b45fb4a85e9fb552aa24745d71032528e809c1e1b5b5e724fd3d87", + "validatorIndex": 281, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x2a0505626e6464eeb69ffe68c077fcfcaa2d92f1044033039c110cfb801efb79f0b46e4057fa3b5aef917d83221c84bb673d55e73d4eb6b1575b812fef803a8e", + "validatorIndex": 282, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x40b52d07a4312583dfa4d4894bb74f2b9e648e0d232ce990b5fd0c6092de07176ce68738db9c8fe77ae4d951831b52b42cc905bfdabb5eb2e38da89ef3922a80", + "validatorIndex": 283, + }, + { + "payload": "0x0000000000000000", + "signature": "0x7aa7450bab5e40b9ba9f7019e392acc14a498d840b345be062486722f457942248457f292837ae9933b0efcd1b18ebe62a7d0d0048f0c1941635d80e94a6eb86", + "validatorIndex": 284, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x58654c37b746af3a10ff9db75fb5ed065d1f53397ed48131c32492059525a7394434998101e2fe3a423df43b91c16f729f034eb93e6192874ecf0f9dd20cf884", + "validatorIndex": 285, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x3a7d477017432a7e5cba3afcc2d9850c7066f1d160381184a5af19306f776066692239af5301d35f9c2c2cd345c4244ec96e62dd16d47e67b6fca1adb23cec85", + "validatorIndex": 286, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xe69c55621a6eeec454116314353dd3a3eb4063d928468fc9cafa44bc5a0f1c6c07e94d1231b85de6bfd15a61507fdb1981e73a98ec7e82d83a8e06040488d188", + "validatorIndex": 287, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x92b1bb6c86fc371a74c0bab53d8ef3a36965702b5f8d4ab8f89c23da578ed1133489c2f4f808e9a60cdaab27e23d67877ff3d5cdbd680cd9f61705b1df32ee80", + "validatorIndex": 288, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x9a1cb9d5069057313158cb334768d3e8f6f98739bbda2be86248c1ec97362112c2c12d76ff499147daf3d173eb1bcac90c42e28ed4ac64e72bdc43af521d7283", + "validatorIndex": 289, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xbea9c344caa0158a00711fe018722faf4a4a72730dfd9a76843989c7973f6e7f3ab97cfe22debf1bdde791df09678e4d896098464ac33089c4dcbe94243d5188", + "validatorIndex": 290, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xb8d3cf520a2769640bf0aaa50447bdc82050267b0da85fd7bd5fd9b3941469570c5bfb0ee57bf925bd4d86d4ae248d569e947c47c22bdd365279d46f392cc880", + "validatorIndex": 291, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xc6519e818a50ad902ccb8d162b040a27ffc70daf172380e78e4836731ce6e07c507fc46d4ad7fc52c81af98e7b4f6202f1a4eb25ff82c917042ce4e9e68c0186", + "validatorIndex": 292, + }, + { + "payload": "0x0000000000000100", + "signature": "0xe81d60f7b448f9dc2186a103b7b6032ac20cca0583fdcc4d64a8e4b993e62643890d095522584ad9d9cf123506ae63f485dcfabd833110c9348397893172308c", + "validatorIndex": 293, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x280d7878144ed804f9cc8409fea22da03f5bb77a069854fc9fda478282b8833351b390ccc2d68eab98a12d6b660d4ee11c30fc9d54395a51add7144e1f63c98e", + "validatorIndex": 294, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0xeabd019b7b63dc945cba7d2927df07e08cfbbf06d2045813691826c1f30ade02073cb7c1bfec0fb5a5d76dae36f8a5ddf711a0eef2d23e2177079cee0f12e78d", + "validatorIndex": 295, + }, + { + "payload": "0xdd0c14c59c850100", + "signature": "0x74546827e0159d96b7506b540d4e183b3af84cf1f7c648e84cbe1b8f8da3186b990f36d02e4211cc28c96460cbfe6675d0e2ae9e56f75b16519badce4c013d84", + "validatorIndex": 296, + }, + ], + "disputes": [], + "parentHeader": { + "digest": { + "logs": [ + { + "preRuntime": [ + "0x42414245", + "0x034900000068bae010000000006cbe088bfbb0c4bce62bd7da57a5021c7e8f1c1e1e2d4502c653a74a95f8bf2445d5ba0eb7be94365f01e16b2908faf4217c653c951644d5c350622fa8228c0909c58975adc0595205ab5e6d2c34552a39dad540b6ea2544b081ef471984960d", + ], + }, + { + "seal": [ + "0x42414245", + "0x382152434af16f3cf018ec7bd4facb69d925bfcbba59359156cc711725e58f67c6d270741751eaf9b99626baffd1890172f6dc058e4e744e4a040fac6ed56e8d", + ], + }, + ], + }, + "extrinsicsRoot": "0x57f9e6322157b4b0c025b45c3885bb71a3d8e924a2f182227934d4d5edb20639", + "number": 17999999, + "parentHash": "0x5a6f3abd6e197ade23abbe65d1d26ac9d6a7b741b5cb06b7485e034352760bbb", + "stateRoot": "0x166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729", + }, + }, + ], + "method": "enter", + "section": "paraInherent", + "success": true, + }, + ], + "timestamp": "1698979446000", + }, + "phases": [ + { + "logs": [], + "phase": "Initialization", + "storageDiff": [ + { + "parsed": { + "key": [], + "method": "versionDiscoveryQueue", + "section": "xcmPallet", + "value": [], + }, + "raw": { + "key": "0x1405f2411d0af5a7ff397e7c9dc68d194a222ba0333561192e474c59ed8e30e1", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [], + "method": "lateness", + "section": "babe", + "value": 0, + }, + "raw": { + "key": "0x1cb6f36e027abb2091cfb5110ab5087f0323475657e0890fbdbf66fb24b4649e", + "value": "0x00000000", + }, + }, + { + "parsed": { + "key": [], + "method": "currentSlot", + "section": "babe", + "value": 283163241, + }, + "raw": { + "key": "0x1cb6f36e027abb2091cfb5110ab5087f06155b3cd9a8c9e5e9a23fd5dc13a5ed", + "value": "0x69bae01000000000", + }, + }, + { + "parsed": { + "key": [], + "method": "initialized", + "section": "babe", + "value": { + "primary": { + "authorityIndex": 166, + "slot": 283163241, + "vrfSignature": { + "output": "0xa6057621ccc0332a3360dab0f8d76b0319271c2249f08bac04c36ca6564add6b", + "proof": "0x390fb4d08d206d87c40458134253f5c942707228a8b4d6dce13af8cad36312053c1d3633e07e068de2e5cf98f84dff0beed3be68d6744dc0db8827b9c55a3703", + }, + }, + }, + }, + "raw": { + "key": "0x1cb6f36e027abb2091cfb5110ab5087ffa92de910a7ce2bd58e99729c69727c1", + "value": "0x0101a600000069bae01000000000a6057621ccc0332a3360dab0f8d76b0319271c2249f08bac04c36ca6564add6b390fb4d08d206d87c40458134253f5c942707228a8b4d6dce13af8cad36312053c1d3633e07e068de2e5cf98f84dff0beed3be68d6744dc0db8827b9c55a3703", + }, + }, + { + "parsed": { + "key": [], + "method": "number", + "section": "system", + "value": 18000000, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac", + "value": "0x80a81201", + }, + }, + { + "parsed": { + "key": [], + "method": "eventCount", + "section": "system", + "value": 1, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850", + "value": "0x01000000", + }, + }, + { + "parsed": { + "key": [], + "method": "blockWeight", + "section": "system", + "value": { + "mandatory": { + "proofSize": 55083, + "refTime": 19787295254, + }, + "normal": { + "proofSize": 0, + "refTime": 0, + }, + "operational": { + "proofSize": 0, + "refTime": 0, + }, + }, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96", + "value": "0x0000000007162a6a9b04ae5c0300", + }, + }, + { + "parsed": { + "key": [], + "method": "parentHash", + "section": "system", + "value": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc", + "value": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + }, + }, + { + "parsed": { + "key": [], + "method": "digest", + "section": "system", + "value": { + "logs": [ + { + "preRuntime": [ + "0x42414245", + "0x01a600000069bae01000000000a6057621ccc0332a3360dab0f8d76b0319271c2249f08bac04c36ca6564add6b390fb4d08d206d87c40458134253f5c942707228a8b4d6dce13af8cad36312053c1d3633e07e068de2e5cf98f84dff0beed3be68d6744dc0db8827b9c55a3703", + ], + }, + ], + }, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef799e7f93fc6a98f0874fd057f111c4d2d", + "value": "0x040642414245b50101a600000069bae01000000000a6057621ccc0332a3360dab0f8d76b0319271c2249f08bac04c36ca6564add6b390fb4d08d206d87c40458134253f5c942707228a8b4d6dce13af8cad36312053c1d3633e07e068de2e5cf98f84dff0beed3be68d6744dc0db8827b9c55a3703", + }, + }, + { + "parsed": { + "key": [ + 17999999, + ], + "method": "blockHash", + "section": "system", + "value": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c1187464908796e1e9d3b737fa81201", + "value": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + }, + }, + { + "parsed": { + "key": [], + "method": "executionPhase", + "section": "system", + "value": { + "applyExtrinsic": 0, + }, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a", + "value": "0x0000000000", + }, + }, + { + "parsed": { + "key": [ + 7532, + "149NeZPEhMBJ5pUpeVu2LfMTAtXX4yw9UMRQL4r4rovFMbWD", + ], + "method": "authoredBlocks", + "section": "imOnline", + "value": 7, + }, + "raw": { + "key": "0x2b06af9719ac64d755623cda8ddd9b94b1c371ded9e9c565e89ba783c4d5f5f92ae80f924bb0e6266c1d0000f6c0f1e69d1f11808b1789281b38392a08ab0516a21dee49fba6f5e55381106ff7ae190563cc84f4", + "value": "0x07000000", + }, + }, + { + "parsed": { + "key": [], + "method": "hasInitialized", + "section": "initializer", + "value": null, + }, + "raw": { + "key": "0x31a3a2ce3603138b8b352e8f192ca55ac9e06aebb5bcb51e5f883784b1269289", + "value": "0x", + }, + }, + { + "parsed": { + "key": [], + "method": "extrinsicIndex", + "section": "substrate", + "value": 0, + }, + "raw": { + "key": "0x3a65787472696e7369635f696e646578", + "value": "0x00000000", + }, + }, + { + "parsed": { + "key": [], + "method": "intrablockEntropy", + "section": "substrate", + "value": "0x9e0ebad7877f1a277b642ef5b63bbee73a6ed271b45b87e38d63b262b13eb89e", + }, + "raw": { + "key": "0x3a696e747261626c6f636b5f656e74726f7079", + "value": "0x9e0ebad7877f1a277b642ef5b63bbee73a6ed271b45b87e38d63b262b13eb89e", + }, + }, + { + "parsed": { + "key": [ + 18000000, + ], + "method": "agenda", + "section": "scheduler", + "value": null, + }, + "raw": { + "key": "0x3db7a24cfdc9de785974746c14a99df91643f5419718219c95679ddd2d825574e569ff2b7fae34a780a81201", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 1249, + ], + "method": "erasRewardPoints", + "section": "staking", + "value": { + "individual": { + "111B8CxcmnWbuDLyGvgUmRezDCK1brRZmvUuQ6SrFdMyc3S": 42880, + "1124btppLcZCDo5F317Duybz6BPbbeDUpKaE4Xz6vWqGkxtk": 42980, + "114SUbKCXjmb9czpWTtS3JANSmNRwVa4mmsMrWYpRG1kDH5": 42540, + "11BgR7fH8Sq6CcGcXxZrhyrBM2PUpDmhnGZpxPGvVGXEiPT": 42360, + "11VR4pF6c7kfBhfmuwwjWY3FodeYBKWx7ix2rsRCU2q6hqJ": 43040, + "11uMPbeaEDJhUxzU4ZfWW9VQEsryP9XqFcNRfPdYda6aFWJ": 42580, + "121gZtuuG6sq3BZp1UKg8oRLRZvp89SAYSxXypwDJjaSRJR5": 42020, + "123VugBRFMqUEFviSYrG3ewdZ46ZmqxjmRaGY6BvakfdPVaG": 42580, + "123rZfdp1R6pBAN8Uft7NtsnSNLHvLgrBSkvLXtXcXtbP2Z9": 42300, + "124RsxuvWs31iWyUMvDsnoRUgLQfntxeBXnwWJd8eC7EVe1L": 42400, + "124X3VPduasSodAjS6MPd5nEqM8SUdKN5taMUUPtkWqF1fVf": 38780, + "124YFXA3XoRs9Epcx3aRUSk3EKYaznocqMWfrMKtGjx8TJ2W": 41560, + "126RwaHn4MDekLWfUYfiqcVbiQHapwDSAT9vZZS15HLqfDJh": 41620, + "12713bbq45c66CN9AD7yusSXWE1kY91DcMpjVcB2rXqZKy2w": 42400, + "12771k5UXewvK7FXd1RpPHxvFiCG4GQCrxRmXWN5tAAwDQoi": 42660, + "129TM37DNpyJqtRYYimSMp8aQZ8QW7Jg3b4qtSrRqjgAChQf": 42580, + "12DsYUto9AcKA4kRz1yLcGh13CTLe7LbUjDkMS8ZY8rCK4rn": 42560, + "12ECDEb18Wiy4MoLn3NTM5zhJfDfpS4mLNvjHpcEr8ogGrMZ": 41800, + "12F14P9VpqyLtjwTh66z9gDmjYh8rRFY2uV4BYxvPAz9Lhzw": 42680, + "12GTt3pfM3SjTU6UL6dQ3SMgMSvdw94PnRoF6osU6hPvxbUZ": 42300, + "12H9FfSYdQ4GrKc7tdxK8U6DitAZMqfnhB8gtHwd2rpCiZfN": 42640, + "12HFymxpDmi4XXPHaEMp74CNpRhkqwG5qxnrgikkhon1XMrj": 42160, + "12JZr1HgK8w6zsbBj6oAEVRkvisn8j3MrkXugqtvc4E8uwLo": 42860, + "12MgK2Sc8Rrh6DXS2gDrt7fWJ24eGeVb23NALbZLMw1grnkL": 42700, + "12QnCQKZnT77gEoHA1uGqESsCHq4QmwPhuTHgUo4SygBnxbW": 42820, + "12RVY2KvBCyBuKXNEpjqWVFaePhURwubBXqcyXKsEKdhhujG": 42620, + "12RXTLiaYh59PokjZVhQvKzcfBEB5CvDnjKKUmDUotzcTH3S": 42060, + "12Rnwa6JwTYcwv8pVcr5u9CfjTTgbm1wJimKjNpHL7uLV5yF": 42380, + "12TaRwyKkyiAc2hMGqfYAwNcrWyXBfne7teFbvkiuufNzuwb": 43300, + "12WmM98h4Ar6y7ZyyMKPXwSyuP5GSZvXTbEkDXm1tirbZFW4": 41300, + "12YFWxpS32wTZq4HcH28HMR5atkGhxzfD7aNjhTCu5Vyz9J9": 42640, + "12YP2b7L7gcHabZqE7vJMyF9eSZA9W68gnvb8BzTYx4MUxRo": 42740, + "12YVhYTtGpTCSXRvPHyNjDK7y5p4J52ppBVJGjWh2PGrUe9r": 42780, + "12YriAKEHukpdbFLB6C8Fyxsjo4bEW1Fk2RvYxMm1kZKUiGK": 39000, + "12bLdVAgWiKHgFHtAaQstasMUWVq35oG9iwHCwsKoFFNoNrk": 43040, + "12bUkY5nrGyoXqBpxKDf88z5VQWzaUK83PCgyHtJ1UN1ujjU": 42480, + "12dGS1zjyiUqj7GuxDDwv9i72RMye1mT7tSWNaSx7QVeJ32H": 42640, + "12doHFjPjPngNvZCWX4WeF4rkLFJ5LmmEyDvPGQ2C1aPppwy": 42640, + "12doSHUJN1P6HL9zj96Bh2ZwVBXH7NcCi78caVtte8aQWGHz": 42420, + "12e1tkDgfF3GYdiTkRq1vunXrvvhpKq3BQZYbJ1haXHApQTn": 41840, + "12eA9gosVR5Qa2hnibGZFNYSbxG3pafNeVGGi5eJQueautfX": 42560, + "12eRgJAAxrcikqRby3tqxykQZfJ9UXjhKGpaVR3KumUi9VSp": 42820, + "12eZSMk8GJYE2Lq943dSEnMUoZs1ek7jU8QN3rEA1yPZPjcR": 42880, + "12g7WPT9DiXnDurY4vebNkzXYth46r5voRtkd2gxpVSHFbWL": 41480, + "12gPFmRqnsDhc9C5DuXyXBFA23io5fSGtKTSAimQtAWgueD2": 42720, + "12gkhA8JEz8ywmVj1tsVafSp9C4saKzSofgMwBJcmFJAGUVX": 42580, + "12gp3USksqBBrThp7G3QYJ2Nw3JR2azFxqYgsSch4NyPFgN5": 41120, + "12gq6SixGV4Ny9Wzyn2MgDfHsSbevxASdrdXzQqm3XDKbXjo": 42640, + "12inPn9Ue4iEo93kCT3cNZNFtqn7htzrU7oiUX2ezWzsq5ja": 42860, + "12jZDB1QiwffAdADz7r2tBALX3rAWQjqvE3PRuNmQXsd9pnw": 42360, + "12pdN2XsNmG2yPAv5QCkq7YYUg1MM3prvGMgusH7S6FnDHAx": 42440, + "12rgiL4r56kPE4PuYmz8snR21isfbrcp5Vbf8VdJe2AWDuus": 43100, + "12ud6X3HTfWmV6rYZxiFo6f6QEDc1FF74k91vF76AmCDMT4j": 42840, + "12woCF72ik4rYzm8gUagTkEBw4S1zE4rRnAk7SaiHbbV9tDy": 42120, + "12wtfs4UfodYT1Y6y8NQsQaduLSJbhz7oaNt1F6gTLFHD1y5": 42680, + "12x3EG6dvZv9h3sLNaEFd4z2q8259tNgiEU6vismjrEZjbzN": 43060, + "12xedMA9ZJFe6Ui5VDYML3PsCde2LbhUzEYEPyCgFRcJvfRB": 42280, + "12xhnCTMJFL8PsUKq2oeowLBESbekuJ2SadKovKY7fML9QAj": 41940, + "12zcF9m6QpUaGeJrrKYRGubZuxa9YyuVRTjpXGyVNsCpzspY": 43000, + "133A8RPTXQK7EeiuvuXx9CxB3twZYFYEZJq8Z2Zhc76Dbusz": 42580, + "133TTqBqmhHo9X5YWxYKB3JNJCuLdnLQZLbaZDHqprAKVxgD": 42780, + "1342iFZNrBfCP9VWxqt5p39LiHp2ynyq85Ww9K7R8w6BURps": 42800, + "134Bw4gHcAaHBYx6JVK91b1CeC9yWseVdZqyttpaN5zBHn43": 42940, + "138X7AdRKX7myWMwoFgWfHj1WUZKKZrKTr2CZ8pGUUXTrkDu": 42340, + "138cbqFTzepokSzQaJB1AKtZjTHTss2EjDhqDgaB4kWZJhLz": 43180, + "139FVSnE8hkd1vVJmECkAsKeLyAJrS6kKq5TxTJbDEq1YvRc": 42660, + "13BN4WksoyexwDWhGsMMUbU5okehD19GzdyqL4DMPR2KkQpP": 42540, + "13BwD9Kd9VyjWgjPWjFRsKWEcfiWGcQDK5oPw9QaxugC2hxY": 43200, + "13DYVkBedGTiUC5SuRmgdtz3UnVbHmWUL2zXQtrNUryBUn3p": 42460, + "13Dc43nesjhyPzVX7ZpUjjmQcVMEyrif5ukSHoDpatvpwyrR": 43180, + "13EEEhiXeCFpFjVQxmjJsHjr9LFvnAurcnwQ1FDgB5LmJwQp": 43120, + "13HtFCrxyz55KgkPWcnhHPwE8f8GmZrfXR3uC6jNrihGzmqz": 42960, + "13N8fKHJDQpA4tAjW52iCsbPMaJHpw8aXfZMWoyfJWjUcDcP": 42920, + "13NL7w9SitBziaa9nBhWmuzmEaRTuX1RvWYs21zKyrvBokgT": 43060, + "13NdHEywqX71WyUzxEuemk9kdSE9KqEKMo1mhKH44uhTJY3e": 42040, + "13Q48Ep3PVpvXA1BeVcUhNJerLshsaeq4EdgPUHnemqJYmND": 42380, + "13QrvcU9EPy7xWMFmoG1R6kZmjBpveNNwzegvpxmQnojwCz8": 42460, + "13S541dQ5NXFCxSBqFUFghkCfUU6LsZUVem7z2tfvsJwWFys": 33240, + "13TBraYSRLejaxxMqAYFQ87RNPoCy3c4LTE3Y7FKq4qcFEqf": 42160, + "13TrdLhMVLcwcEhMYLcqrkxAgq9M5gnK1LZKAF4VupVfQDUg": 42600, + "13Ybj8CPEArUee78DxUAP9yX3ABmFNVQME1ZH4w8HVncHGzc": 42460, + "13bWcF6VD6gjpGeHeF5nWmY8qWPBXLMymuvJZHrtLmgQtcuC": 42860, + "13dVcF8BjzUpYujj5HxumDLPwpHzMPwzPZAZHJQEbKRJuNgT": 42320, + "13gMD93wc2P44QaVXRvThy1Q81846QKVovPBjZEWLzW9HnVR": 41960, + "13giQQe5CS4AAjkz1roun8NYUmZAQ2KYp32qTnJHLTcw4VxW": 42780, + "13iPW4pSokbEQWomqZhwsyrMWuNspt6R1YnuCHXqUVvFYM1H": 42240, + "13iTiojfEzSXLprKzvE7Sdmg8gtUD2S2Am2Xv61xrtmDHcvJ": 42620, + "13mK8AssyPekT5cFuYQ7ijKNXcjHPq8Gnx6TxF5eFCAwoLQ": 42320, + "13mMSS2XnGSWUJMT1ZdM7HdikZXR3RckSpMSMH3fHEDWCtxX": 43240, + "13mhUnQ6qwvuuTYoKTtJkmssm3jDCGhTTSsHCXvvRhFooDiF": 40440, + "13mscy5wfYAmDBgLoA43rkWGpR1PJApcGtXJt8NvtMcM9VAr": 42140, + "13ogHzWQksuwuw4dv6jph1GHGBxjSP8qzwRJzT69dhnhYEv2": 42360, + "13ougYD2SRkn88L14XiYCJc3mL7AzWoAMVdn1FwLumV49LjU": 42180, + "13p9kJiRnfy8QSjFoovHzatuE7SW5xdddxDvk9mXtERueo9E": 42700, + "13rkfSaFsMEFJAV1wcQcnbJnxiigJTb78qkkLSEvUNPA2QVZ": 42160, + "13rs4dYSECE6tLSp5poDAv6Td4Bp55wxyao1Vbw4CxiViTYL": 42300, + "13s9RrQSFbnp2TneY7nkdLmGc3ijBw12YQct8pc8km36Z9hg": 43000, + "13twvNBcVq7dHRKuUgWB8MTEvKHNchoTMfShKuPzEB9sNFXN": 42500, + "13uW7auWPX9WAtqwkBx7yagb78PLcv8FAcPZEVCovbXoNJK4": 43000, + "13uvDxdd6LUNp1WWzM3xbch7q1DFfAaqRaQE5bo5QG7RGqt": 40160, + "13wxjPuajyJrHcBabsgoD7oqL1mJhFVWjeXFxEvMbSBY9xn9": 42540, + "13xUAQ2pNrddNgLyPz6agvSrwnbmUaviXLXNnQxNfk39AyzV": 43280, + "13zYzYw1tQY5dfN4mRrHuuCfXBtKZgcq3uRfpH2Z9YyznpSv": 42080, + "141Qnt9LPnAfnurdY8RXcB8th5S5SNZbgk4ULpDJVdp5DSr2": 43320, + "143NUVB79QAoK9NXu1D45qhcC5cdXWAVeoTTbmTy63k45mCc": 43040, + "144fdQQrXGwWWwATr9b3CL7RWQyxNRGMm2XJanVKGrNSoepc": 43240, + "145MSC4N7BsnnXjunBjD7t5oKn6T2AR3T8Zi9zcupXUJoumC": 39780, + "145Vw57NN3Y4tqFNidLTmkhaMLD4HPoRtU91vioXrKcTcirS": 43100, + "145dFLti3WQXvMXWc7u2wMMHB21sRaspByGKp5icLmjW3hrE": 42380, + "1486kNkPxvF7Pmgfr4MskGnn4p4KXCigMejv5Q7szMowioKK": 41680, + "148CkH8YBzA1pbudK1bMo2zUMHZwbucBVH8s3utwTS687UiR": 42380, + "1497QNdycmxqMi3VJDxZDhaJh4s9tytr5RFWyrLcNse2xqPD": 42920, + "149NeZPEhMBJ5pUpeVu2LfMTAtXX4yw9UMRQL4r4rovFMbWD": 42640, + "14AkAFBzukRhAFh1wyko1ZoNWnUyq7bY1XbjeTeCHimCzPU1": 42180, + "14AvZYdYpbRprzbhNMLTpFxErfS62qvAfy9J6VMjFbtXB39M": 42960, + "14CRo92REj3aXfUeonVSti1VEHgxhWbtKY9hwxvD5T3BBXkK": 42900, + "14DE8GdKnNvgoXCLFq62ZjNz2zsGqnxXBsRMwNpiPip2JSFJ": 42460, + "14DXNLsWfpf1RZ3eZSemHaitFh7WM6ZwswJUVLxqQhRvc2ui": 42360, + "14E1X2DPZRMxaa5pTDCkBr8kGc5zfzQj59vDtxrDyajGcYgg": 42160, + "14GWWeZzMYkR7bwyeBvq7c44nJr4ncEodM4fAJX89ZSAHLw3": 41400, + "14JUa7g5AVsrLbvcL1cpgNvbd8pctwTaCiV1dBk7nFcZmCqE": 42580, + "14KDJPdZ7aNatRihFevpkz8JwGnsMSbtPQ3Nm5oiNMCnJK6s": 42420, + "14Meq7tN9RRkZCKiztmYLp3fMBFkftzfyFQNQrcyc619hgx5": 42160, + "14MvgGf3PzgsEmMBHxdqwQrfhEzsGhzPReATQdpLVpN6aK6U": 42960, + "14N5GT7YTaDBSsLpfxxtCxNdYfgDofGj5wQSfqC1URKHdT8C": 42980, + "14QBQABMSFBsT3pDTaEQdshq7ZLmhzKiae2weZH45pw5ErYu": 43220, + "14QRY2UTErfZCqVMFVRmgbeUt7XQdeCVgNUV1XqDcza4g9E": 42400, + "14SysKfnN8VzwbUCWbgZVApP27xqs5MPmrfXL2RGkePwy6Cc": 41960, + "14TSBiABUeR8Z5zgEkErb46WGcUyvAjTGJGMsrCxJbPmUJuB": 40120, + "14VWEJDSWfHyuTSwErEXxFaiCW3i2gf2NPRkZ5igx6rnmqFd": 42700, + "14VsdLMt7eH66aZFM13imSjFriYGU84bwPNZb99qNVhKuYSC": 42420, + "14XefeqDxiaVQEo7Xv7WBs3Wz8GZPes7DBjQxsNuxu683B9o": 39500, + "14Xi1iQvaHsDw6dHzwRDSPCToan35cf5VSyFawh22rx9uX2W": 42440, + "14Y4s6V1PWrwBLvxW47gcYgZCGTYekmmzvFsK1kiqNH2d84t": 43020, + "14Y626iStBUWcNtnmH97163BBJJ2f7jc1piGMZwEQfK3t8zw": 42880, + "14Y6TZaNAS43At4ovGMULSuGkdE7svmn6zqicWBkSiVd7A4T": 42840, + "14abtGtqVsnnKgSv4Cw6rm8DWn6aFej8Ko2tEjUXQbg7kURB": 38960, + "14bUYpiF2oxVpmXDnFxBipSi4m9zYBThMZoLpY8bRQrPQNG1": 42800, + "14cxMDpBNLsNEXWyCzked3zghzaYWXwoqGT4h12GqQXdVhmn": 42860, + "14d2kv44xf9nFnYdms32dYPKQsr5C9urbDzTz7iwU8iHb9az": 42560, + "14das6GvVjXMFf6PysheHX9ek59fCgH3MhnvQ2aNLD9n8VDV": 43100, + "14dffMjf4Ec1RwCLHp21CifU6CX4hVnZtRCKgc6AGCt9K4v9": 43000, + "14g7XsFWsMpsPNkwQNhdHfsqKRehdRbpPLaGVTEhBe4Pt3Eu": 42620, + "14ghKTz5mjZPgGYvgVC9VnFw1HYZmmsnYvSSHFgFTJfMvwQS": 42360, + "14hM4oLJCK6wtS7gNfwTDhthRjy5QJ1t3NAcoPjEepo9AH67": 42920, + "14ices1G5qTmqhMfDVBECh4jotNDGTLu8fhE9YktWT3cLF2F": 42360, + "14isBrPdSJDB6kGKoV8q5mFFYSg3rTD6w4QFypQtSWfmmqzD": 42320, + "14iwWDFGaqVagArviC9CMEPkREdNEvtR9aTfepv7r9FpUrSc": 41180, + "14j7YcVqpfiZwbrPuwMfcKWuY176cKN1SMHVSZvT7yrfhbnt": 42560, + "14jgoaaLe7L12zhRnyACPQXhNtRNCXXygvHc3FgZFxmQkXBJ": 42900, + "14oRE62MB1SWR6h5RTx3GY5HK2oZipi1Gp3zdiLwVYLfEyRZ": 42620, + "14rqNrqMwNK9YA1BSqRStNBUqGgwxKdysoL4dNQ8GH8LRcrq": 42700, + "14tcxHSTAiZf7M4vcLfFdGkGJFjfx6zDqds5QVyz2H24hKgG": 42320, + "14wFkAiTSxhUUdpkN37QMhZv6dYcURJVgSGwqDRd4TK2qhrL": 42140, + "14x97B47NEi8v1dSBPYobQDwe44U5Xj5RGATWpihQCyXcSX4": 41640, + "14xKzzU1ZYDnzFj7FgdtDAYSMJNARjDc2gNw4XAFDgr4uXgp": 42840, + "14yx4vPAACZRhoDQm1dyvXD3QdRQyCRRCe5tj1zPomhhS29a": 41980, + "1535dDRXs8ga9CJeAMinCogZcEhpfrmm8cdJnhkVehbnedmb": 42880, + "153PzXdNjL3FJLA8EMBaP4CZQb5keH3jcf1RDDJJGrUKHNLL": 42240, + "153YD8ZHD9dRh82U419bSCB5SzWhbdAFzjj4NtA5pMazR2yC": 42560, + "1557x4U7JTAcso9AHpiVfrEsadABQ2swNWhDeh5WvUn9Zdog": 42600, + "1569aqCBma2m4TuUe1MxEs8EXBAZFCmwwcZMLde6HNbimuW8": 41680, + "158B1DyQ2Ep5b5G4akA2mjUJeDwgZZ4Sh1ePnkGgcWrgtPMs": 38680, + "158Qkc34MXQkrDJ2yibw2p9eCvK8Up2WvP1LKhvmcpEBd2LU": 42700, + "158SDQwxy6VPAGhnrUnPSZ4u7uvTRjQGB7HLuvcw97jNofNC": 42000, + "15ANfaUMadXk65NtRqzCKuhAiVSA47Ks6fZs8rUcRQX11pzM": 40360, + "15AcyKihrmGs9RD4AHUwRvv6LkhbeDyGH3GVADp1Biv4bfFv": 42740, + "15BZW721S3fzMYT8vY3Dt2sVXNTECqwHQ1bNUM8q4fi7EVcc": 42920, + "15DDuwCK64iTnd5eBdrC7Wf7nP7iH9zXrpDLUuNP4Go6bYbq": 42980, + "15FctDfqPsFubuXo6UpKMQdbdCC3XXdnHsRMZ3DN6ZKPLrSu": 43100, + "15JGaHWAu1nAEtMMjKZSeu8VsYoTBMmoJq6uwxsDBqmwytSN": 42540, + "15MLn9YQaHZ4GMkhK3qXqR5iGGSdULyJ995ctjeBgFRseyi6": 42380, + "15MUBwP6dyVw5CXF9PjSSv7SdXQuDSwjX86v1kBodCSWVR7c": 42500, + "15PJA4PKoCZ2eeuaoFpoAQikHX6nZB7oW4qFTRhKutzekn1L": 42860, + "15QAsdJBhMQB7jL9bTVtQPNB5FUJW7igqw8Sq8eqtP51K4hL": 42380, + "15QbBVsKoTnshpY7tvntziYYSTD2FyUR15xPiMdpkpJDUygh": 42140, + "15SLZCze9J5Fi2Z6gBtP3mtAgUs7fzo8muWZPeqkiaMXCVz2": 42340, + "15UVN8DnBFdBJCStbaWeKT55wuSMAkoqEa7guYkZLtnszdQY": 43300, + "15UyiZ9rYhrX39Rasc1iE4sdME7WHNFSj8RQT3yuuytd3Nrd": 42160, + "15V6NjwmKkZihe644Tyr8GVLxjEzBAHktf6ZcJCTx7RPCoYS": 42820, + "15VbT8Zi4qC6iPfwobT9gQGFp3H7shdh2o6LouJ6o2w57qzp": 42280, + "15XvGmoR6NqAPoV86yDGMDkvU8PCtYGJoywGq1AFcwF6Y2qy": 42160, + "15a9ScnYeVfQGL9HQtTn3nkUY1DTB8LzEX391yZvFRzJZ9V7": 42620, + "15ciPs3xZsJd86WFoijPs365f7viqGnubZ14aa9fGavyWJoM": 42760, + "15dEbKrzyw8Hwb7KkZHYKgCaPQGxnMgWm2EXb1zh6DmRKX22": 42480, + "15dUcAECtMrGwWjd3Na2D3ZnntmaQ8FmLD3NWADc3PMMDukH": 42340, + "15drCUvFMiWvy1YfkU6xgENxRzmFXDaqQFpjUwR5nu11DHu3": 43340, + "15fU523Wq5BCt2NWAmrCU6p8nFB29uVifeG7bwYJHbw5Mmd9": 37540, + "15fd6W2m8GLyD6HghwCBuRuHS8w1N7Agbjzp6yU2gHbihEHt": 42120, + "15hjLwPcFofpmuf6yRRuor5EUFtVWD9MmuzS4ZDrmLy99XqK": 42940, + "15iA5hpjUecWBbf38Nfegwmtyux25o3LrGaNodfZDxq5nXXE": 42500, + "15kb76J3G8QvtoYKZdWyvPC12MzewsMYYneYT7E6SM2R3oTB": 42060, + "15oKi7HoBQbwwdQc47k71q4sJJWnu5opn1pqoGx4NAEYZSHs": 43400, + "15odauviAEhkhwSBNdLpMGAHR426m4h3e47Y6Z8viK9sKZpF": 42920, + "15omhU2Gi3ounztEznJ9Bj49dvoPhSi9wN1M7uoniTt9F72d": 42340, + "15p158r32Z12YyFU7BiqLcqpySmHUedVfJLJ4M73THBixKJY": 41820, + "15qomv8YFTpHrbiJKicP4oXfxRDyG4XEHZH7jdfJScnw2xnV": 42480, + "15tMJpyvNQ2Q7hoXYUFJw3EjjfxUnNhVq6RXpAwAobUUwXWM": 41180, + "15thjfpZX1xVcsnfya1oXmbXzau2on5abAc4XXYP62SNwwQQ": 42620, + "15tsaRbwLLBHst5chP1pVkQHc5n2JS4DcapFdhCnqJMZebda": 42080, + "15tu47DU6d75PtXdBBGLbKCAPKAgt7s2AEFw9etRH3eNyKLy": 43120, + "15twfAkh6TKdNpE7kNgxcQSRYtSpt3QpgjxmR6HKHFGs6Yrz": 42420, + "15uQdwDxDMKDrjjkuUqntrUTUHBFVPi3ZEA2UA7qbycEndzs": 39300, + "15uQxHKoGbA15XZUEtDXrD7ghh6G1QoCVYekkZKMgEhpeQmA": 42020, + "15vUnTtXK5BAv8UkEn7NMfYUVHp8Fr5EFburmL6CR7fhPyaU": 42120, + "15wT5c8vYVpRTZgvYXM7UaEBiUcyUyiZw47EvQqcbUmxrD3u": 43140, + "15wffJpUgdBqtdsaRQKAEvARhrLsEDSoGzYseGUnGrtFHddN": 42220, + "15wznkm7fMaJLFaw7B8KrJWkNcWsDziyTKVjrpPhRLMyXsr5": 41740, + "15yiAFuYzks3FGG8cTc2ukw86JCYKrZqKkmStVhTL4hv77XV": 42960, + "162ivoEbxP4mzsWrQvapACAx7TF8mzB3B7oJq4FYCbEwC2Sj": 43100, + "1653t723BHhC2krGCFKUUNDQb5sUafy5pZvKVwnwo1oMAMi7": 41760, + "167caBsxJsi9obagJdSwF8uU9Zit4ReDWi2ZwcKZX7JS2bE2": 42480, + "168FJ5cEwfoLnsBJw6HzGLN6AwMMn24rrXxqpqiSFSPCnCKR": 42660, + "168X6YCFoEDh8ZjxCcwzdjgZZhRjNHG6R45S7A3euxJcNXfN": 42600, + "168bhPTpsgByfKqM2pgUfZ2wPxQQpgTwxsA9iTV7vAN4wQiU": 42840, + "16A1zLQ3KjMnxch1NAU44hoijFK3fHUjqb11bVgcHCfoj9z3": 42200, + "16ARoGkkDSTmeu9tDvfBDksu4qURGz6s1HSvXzrwGnsjFtKg": 42620, + "16CdHjb4nxVwF6uwmPm6A29pc4ubnLiY7UqasMxt7cT9BcoK": 41800, + "16CmXwZbMu56nyYGqvqVjTaQhFpEtmuxuwF132BE4dd1QnoW": 40300, + "16DKyH4fggEXeGwCytqM19e9NFGkgR2neZPDJ5ta8BKpPbPK": 42120, + "16Divajwsc8nq8NLQUfVyDjbG18xp6GrAS4GSDVBTwm6eY27": 42820, + "16FRYg2zE5cgrkKQmJhU9YJRT7Uquqxfz6hmp6GnqgdcBv16": 41560, + "16G8NDzxUeUbGiw2bFX3Wy7JwNEJz9U8B1smCFqqe4GPZbdN": 41920, + "16GDRhRYxk42paoK6TfHAqWej8PdDDUwdDazjv4bAn4KGNeb": 43100, + "16LT2rsgKqaadjeGwfdhLDM6xEBjRHP1QN1ZeuBjMRnigLwE": 41720, + "16Ma3suDhT8TkTWffpPaS8sMFn2K6rEqddVJY4QCCUSj2J5J": 42640, + "16Q2PH4woP6gCE4LzgWtmwTGzxrrkxSsz5bDnXQnEpdabxf4": 41680, + "16SDUqoRr6f8DAyKhYWvo9dwFPdJHeFXFr1may1vhomqqPTQ": 42500, + "16SpacegeUTft9v3ts27CEC3tJaxgvE4uZeCctThFH3Vb24p": 42100, + "16VVhErhwncZjgz6Mgx391G8jbHaXspBNLh8Q3V5WK1vWF9J": 42920, + "16WzVw5JDCXLiA3t5D4LL15S2sqSBtCsjVNXkwLCVxGdeQGj": 42940, + "16XvkAHvSvcL8KpgfQN25b6BxgMgdmnvAUKjoY45VRTHeeo1": 40520, + "16XxKGBRWSCQZwrpgcnzE1HqcYC3xJBcSJrM1pRazfmuSrio": 42760, + "16aThbzrsb2ohiLXJLqN8jLST6JgUPRi3BqyHxUW4yVHBQ44": 42760, + "16cT2wjqq18WJdNwzeDvm57GgiQHhaQeWCrA5ZUPyKhyujtF": 42660, + "16ccn3xe5tAeR8kvzCRTcqHZjMJHvuF2pnLfTqyF1EmMusCU": 42580, + "16euDe2owvJq7LkwSujGxAFezCWopCKPENxwc2EKdzYTRBae": 41200, + "16fcR1ercimd6qyBVQyXTTjtWL1kosTS1myiSuVf7kxutxvg": 41520, + "16hzCDgyqnm1tskDccVWqxDVXYDLgdrrpC4Guxu3gPgLe5ib": 42400, + "16iD4v1FUHMauFB17MsrEFGMrEyGtWEwvgyZ6jCLC5eJdEiZ": 42260, + "16iiKwFsRKRsjAiEpD4zgNgEX84nzHtHHNFKXhz1sHtan3ne": 42140, + "16k4XHArVCpNJEjjcxjGxoh5eYv3ABWZKE3Sx3rwEmd4iQSB": 42940, + "16ky64Ktu3NWtjrVUZV2RDVe46GvhnUGrxqFrYAQZeB7LHHR": 42980, + "16mM7YxjyYqXu7uaJfmfCk9xcr8qqaYUyLazTBt3bueQJAFR": 43240, + "19K3AKAkcrVWcXrXCXJ1fbaySuo58kUXhpsh7gBpa6emdgz": 43300, + "19KaPfHSSjv4soqNW1tqPMwAnSGmG3pGydPzrPvaNLXLFDZ": 42540, + "1A2ATy1FEu5yQ9ZzghPLsRckPQ7XLmq5MJQYcTvGnxGvCho": 38960, + "1AXSTNj1JhUpg83Rwq9ayBfHVnQmoXmpvYKDffLNdmNY9gm": 41920, + "1Ew5wAsMtvbRdd4RdxSheLpEkSRc718gtcfTv8EmgzEbknA": 42220, + "1JoBYyPoUdsuU7vZi3KgQAaQYn6WhKqUDXRDmsaJ8Zgxr4T": 41940, + "1KSsKAbCmnAheLRMr6pQ3kUnLDhMtn3dVwwy3cSYHf5t3hz": 39260, + "1KmtAWkiVGRdMB9mBV6JVAcRw7ce8tZKY3L5ZH7uTNK4yMx": 42600, + "1LMtHkfrADk7awSEFC45nyDKWxPu9cK796vtrf7Fu3NZQmB": 43180, + "1LS8ixhua9Nwxq1KyEBTkS5mQMJ2KnXVs49FpQyn3wzzhQ3": 42380, + "1MrurrNb4VTrRJUXT6fGxHFdmwwscqHZUFkMistMsP8k5Nk": 41780, + "1NDRMvN7FH9YtJLVPf9doF5zbuUwn6hdH1b4WmVyZDr5joM": 42200, + "1NFjW3jbbzbHEq7PZReLxNpTn81SBFdpJSPxNsMbUacRehg": 41060, + "1Ntvj8hmfWFiemKLCW7uh4WxJ31UvirWc27A3m4aYocoCvP": 42740, + "1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih": 41640, + "1RG5T6zGY4XovW75mTgpH6Bx7Y6uwwMmPToMCJSdMwdm4EW": 41880, + "1RhqvtG4SS6ooc3JELk8kpTaDiLP9f92jdyR5p5efPWVsx1": 42460, + "1VzLR7pDbcSsJqXHaRZFzwCtSgjNWEcLddSfWij7Jx3p8FK": 42400, + "1WafyH6D6mAyFRTUvVM1DXqxSdVP7Ddea2mnBd7y1eADox8": 42640, + "1Wo6qcrh7wxc1kQY5nfixFuCAFuzkgiwau64SmrPXBE7vVf": 42480, + "1XQn94kWaMVJG16AWPKGmYFERfttsjZq4ompSTz2jxHK6uL": 42640, + "1YguHoyxTecVDPRksktGPPTXDMLbCoDaGprv1zcQNNWyC3X": 41160, + "1Z1KSJjbg5ub8ci4tQRcT6PYoMqnG4WKuhBeXzhdMj3HH47": 43100, + "1ZHNWmKsVHCS528yKDteRPpnx5hTrGUZvyjEpvaWppKDiPt": 42780, + "1ZKHNRib33noQn1FpjFsPCHuVYUfci5TXy4Lif1FcUUwZe6": 42120, + "1ZjP48pnmVw7oYNdoFQQAgH31Wt2rKa2wK6hcXLRShXwZim": 41380, + "1bAKJKQg3bWCeNVzGuc1TzF2y2h4DJfWR92CWAoLVNn7nN8": 43180, + "1bAVKRsNUbq1Qmvj7Cemkncjo17WgyWAusCFZQdUfeHSTYj": 42900, + "1cHUWUV3Eb6WucnFNxED3udYg94eSN5KUWvZbWmtVLFm1fJ": 42340, + "1dGsgLgFez7gt5WjX2FYzNCJtaCjGG6W9dA42d9cHngDYGg": 42200, + "1gBKvQ9vbraAfhxEroBnxoGp9687Hu5wR7NYSwgJeAsw4x8": 43140, + "1iyDF3iHuNjTNuQS7XEqMSdvx4CrdaxK6kLhpMCBc9rKumm": 42560, + "1jeB5w8XyBADtgmVmwk2stWpTyfTVWEgLo85tF7gYVxnmSw": 42440, + "1jqkeJhuoRudNTVL5dV1qZf8RQtyzcf6ZT4yyvUQbKFktr8": 42740, + "1nQBeeXXhZ3gPH95X1KcLfN5JwPCpFUXR5Sc4A5gr8nCALw": 42320, + "1nTfEEWASm1x6D16FPLLjPFC42Fb7Q5zLovrxQpPQe6j86s": 42340, + "1o6KaLJCHyz2CoTkxBmqabvrPHyhcpnjn4jCbt16mPgEx8v": 43020, + "1ufRSF5gx9Q8hrYoj7KwpzQzDNqLJdbKrFwC6okxa5gtBRd": 42400, + "1v7QwYLMaABh7eyFKN9PHbKquAyPt6PtcYZZWvf12KV5pMk": 42620, + "1vTaLKEyj2Wn9xEkUGixBkVXJAd4pzDgXzz9CuVjhVqhHRQ": 43040, + "1wcx1MBUQkmHL1ed4jMjo7U7eNNVvZjV7iVYedP7FEKqay6": 43020, + "1y6CPLgccsysCEii3M7jQF834GZsz9A3HMcZz3w7RjGPpBL": 42620, + "1yGJ3h7TQuJWLYSsUVPZbM8aR8UsQXCqMvrFx5Fn1ktiAmq": 41020, + "1zijcwLdu95adCJU7yjpHeZfoHZvSq1ANURorAwFH36mnis": 42640, + "1zugcaaABVRXtyepKmwNR4g5iH2NtTNVBz1McZ81p91uAm8": 42620, + "1zugcacYFxX3HveFpJVUShjfb3KyaomfVqMTFoxYuUWCdD8": 42480, + "1zugcacan4nrJ3HPBmiBgEn2XvRMbehqvmzSQXT3uLBDkh3": 42260, + "1zugcaebzKgKLebGSQvtxpmPGCZLFoEVu6AfqwD7W5ZKQZt": 42100, + "1zugcag7cJVBtVRnFxv5Qftn7xKAnR6YJ9x4x3XLgGgmNnS": 42980, + "1zugcajKZ8XwjWvC5QZWcrpjfnjZZ9FfxRB9f5Hy6GdXBpZ": 42820, + "1zugcakrhr3ZR7q7B8WKuaZY5BjZAU43m79xEyhNQwLTFjb": 42920, + "1zugcapKRuHy2C1PceJxTvXWiq6FHEDm2xa5XSU7KYP3rJE": 42380, + "1zugcawsx74AgoC4wz2dMEVFVDNo7rVuTRjZMnfNp9T49po": 42740, + }, + "total": 12565460, + }, + }, + "raw": { + "key": "0x5f3e4907f716ac89b6347d15ececedca80cc6574281671b299c1727d7ac68cabcf2ecfb860a8c0d9e1040000", + "value": "0xd4bbbf00a5040000966d74f8027e07b43717b6876d97544fe0d71facef06acc8382749ae944e80a70000000b93d72dcc12bd5577438c92a19c4778e12cfb8ada871a17694e5a2f86c3742ca600000023f35fad621e22d2da59dad0233f8d93e302cb55acbea4b2467e6a59ec5b3e78a50000005fa73637062be3fbfb972174a5bc85a2f6cc0350cb84aa9d657422796bfdf120a8000000b03b23766d70d0445943b290606521acaefee7660d521950faf2801c79d42854a6000000cf5e98635b822add0c97eeaa2adaaf1c7a40d50699fd56ffd73009ff3b1772e4a70000021ba8ef466ccb7a06bfdefdba01817e620ada5954c34f617f6662e267dbda1550a500000238a0a2b0989bb426df8ac92118b4228a81b354d0c87d8acd25c8de509f2226e09c0000029895c9fa4a9da296a325d8df40dbc2f0700c6b6dc159b22fe1c21c8f052d67a0a500000656ae99db65bd6b8fcda6bfdad3437f4a15d46024959e6eb413c4bfbb10556824a9000006587e9f7259dc22ef507a75650b5e0ee96d0b8ad4ddeeb8dda2b310d31cb9462ca6000006e11fd0d4df6c4765eb346aac47682cb7871da9ecfd235255f6eadb8392b20d309800000743acce78d21cbf23ddd27a960096028cadba6a80c2c7abd08a7baf726e128ec0a300000aa041bf62d5b52adee07e7cbc0687ace86e77308a982c07db871ef2dab63901eca400000d92a2524d501daccb88d86720079731f9b53038e0aeddefb8828afbafa5eacfd4a300000e117eb473a2617377b8ddcab2e411131969c226ba36618ea24514b6f736b77c5c9900000e518107b425628e49c4fee37fbc08020235d0664fc5052c4fa7415e5797c72c68a600000ec3f7291f82335606f98e16f5480b38b3da95d2e7ee9489a89a8a39f9dac956aca800000ed244b93c5b6d1be16c1c82622012fdb2b96c0e197ea78fffeebf1bfb736f738ca500000fe8ecbba7a1e216bd1c3bb7e749a98fcae77b4185c5522cbad8e826d0d9237134a30000102df685c4659f9c242ff9ac8a4ee5305770ede106db7a3cd5d3e8823e33d001d8a400001035bf98cbae5385855c527d922947b9868e2df63bc8c263cf8c29496c4b805d64a0000010b2f3fbaa08eb3361a1590bb8322b1fbef13bfd56bf5e04474d2a1ecaf9bb48f4a60000127a30e486492921e58f2564b36ab1ca21ff630672f0e76920edd601f8f2b89aa8a200001280a479ee3beca7af1636aca17582f30829782e2c9b1b9c72aaf8060563ab3798a3000012d761ac11e70c35595d382a0c860bb0501ab0690df6c9f96ea7179b206c1d40dca50000161be097a4282aa58dae029624395fa7fc1c25cfa95aa7cc5100654963368442a0a50000168f776962b55450034cdc679905319d9e51e31b607553120c3fb7599b79be0a90a6000016b94e2d5d12d60c7314cca383bf185ddda83f413da740a121601e3277d3083ef0a5000017316829c406a05cd9cdb8d5de5fb23d26b3672f8cbca1fcc6538833589a121a90a60000182aed996417072b53ee48cd26d29fd7d986de458e1427e9fa9f21fcb261505bc8a000001868ec482f6eb47619a67848abf5596a9e3064ce164847c3a469475c8385757a5ca80000189ef65d1a77acbc1492c95ea3a58cb70b9ffff211190368bbfa21198c734c2d1ca7000018a5657b88d667ab46d1070d58ecc1f15011f60df20f510ee0aac61754bb9e0188a4000018f6847e4d4c9bca7fdc694eeadfa8e36d2f49d581f3fe9e8599658f47dc2d5ca4a100001a0db3d684422fca64adaa9569861a3a1496fa4f45ab142b38423100d45c66f6aca800001a0e48b445798cbb689f86c9c17cd5428cec3bc370fe85a73cd3f1410c335d1e94a700001ae90be8a4787f97d1ccc95593553ca4a86a786f3e0033bbacab0ad60e23fa5764a500001baa453966c043ca367ccfa19f450244447b9d32f4b7af2d9749e55a57ac09ccd8a400001de154f8bc16e4a7bacf303141c913d91b1efdf4ae06c3a227f0a2877a19e90a84a80000200248f0353500a12798f54e5581206a45ac70b7f2d38481dd40c443dece9d2640a6000020857206fde63ea508a317a77bc1ca2a795c978533b71fc7bc21d352d832637cc8a5000020ac6c23e69518f5c048cdd4341f431d23f1bdcba3abfaf7349241db61ce1317f4a6000022a0160f0fb6403bd41db7862fd650ab5d425fa63b0bc09467f065918de0e97050a5000022abc926b7b1a5a0a202183919de1089d04939e09833ca7536b52cce9fa9bf3564a50000232732bb4a41ba025d2581a518dda87cd42013c11a313cb291fee7a339fb60d90ca80000282a194090fd6715e06430d8a6e9c682f021eaf398830b10db94ca8c27c9ae4ca0a50000288197fe1d9f6b12ee7f9656663791366fd5ea4ec01999d7a7f8b84e22a0591b7ca6000028c57701aff086e2d4d00536a35ebb0dea7732d5bd285c63fac7197b6bf3e37e20a8000029a843ce5a67c2d285cc5f302db173ee4563e7af383dfc6b9a8fa64e148efd120ca800002ac73c24bb740376a5b0f44814e8ce8b34f23be0650e99b7ac81e1159f9c31517ca600002ae939fcc0d4fb0bf095e48ed294463613a1e30381d269940ceafcdfaf87ec943ca000002c057adfe2964a58e311013d80e9955a8896ee86be537ef9c6bd983122d6ee5f90a600002c2a55b59a282fb173b7faf6e82984686f6fb83b0293dd498db6329464a45d1c7ca600002c2a55b5a609baff13899d4ba4bafec105038d66a716494968fae1a849d2dd5af0a500002c2a55b5a6413894e13836fb0165e6adce7d77c06dccf42b3b288397a27ddd3b14a500002c2a55b5b05723585c7421428d9ef451313e33e13803424b0f8cabd383d0df3774a400002c2a55b5b7e13a772e0b693c3b351d2fb5e5b4da18ac379ebdb2f1f2e7559776e4a700002c2a55b5c7e135ae443c6ed951338d4b32be6cf61ac5bd000b7a11c26b30782044a700002c2a55b5cf8d00511ef54ac7a60773810e906befb1b322f2d58199963dc97307a8a700002c2a55b5e0d28cc772b47bb9b25981cbb69eca73f7c3388fb6464e7d24be470e8ca500002c2a55b6068e3b8626608321044a89b82fc4898ece34524659f48aa72aef556cf4a600002cc16da9d1f7271475075aa8eb5c6667714426b8c41dbecf92bdedfa462b716324a400002e2409b5ef509e1e584584edc945545f42fcbb3f288f3355e9194206b4ce773f54a600002e6991a3223f09ddea0e0b1fffcffbed3f768d40231db602a030b7fba52c7d083ca500002ed9b8035e0bb64685f561677349c54d0ae8806f1ea86b74c12b51dc8154bc9ca0a500002eeb1a6884bf369c7d1ab3f9ff75b79dd0f6c6a9792834e026a8d2f7ef049e4d7c9700002eef2aee654d4975535f2701af86ba6d169c2c9a1599b16635a2a5e4640db94d58a2000030606b4c1b89b4e562efafe76bec80154ac8b3e16e04c2e0f619bcdc0a5eef5294a2000030cfdb48ff7f33b08499dfc618a8ef9699b8345fa65f0b1339eb8eec3c0e4555a0a5000030e3f26094a2536e02b6879a2a92752493302d84029b80ff449eba8b9dd80d1da4a6000032aee225f2714c573eec965a9dd1e1ca399636d9158ce068842f0558f360a43554a60000360d52090bbbd32b598beb80197c95c1004505135f0493b089334a52e3a1814040a60000364c29bfbc9f06a42b5cf37ffd831e91c843cc25d8b90071546810ecf279e45848a3000036e9dd8a810cd5f94f4f61cc59f1dd1a7df21e88261e6bc1fc23467f015e7b3cb8a60000380766b2d93f1737c6d8dc713e4a6d69b961a14a11f676fc479b1ebbe4b81f033ca50000388bf0fc0110c1b18dcab471725083bc6b0b52edabeab0c3e73e506a54f9e04d90a6000038a295559d8977464fd8cdd133f8805f2388e42a6e009219247048a27d9ac06bb0a4000039a1f89df89766e6e0771c1cf047fb712fdaff18eea966267c01ff74969876f66ca700003c017930b46ab5a4413bf3153b001287ed5ff7fdbd2734cf69abc843f4ee0447cca600003e5f05e5397c92e440de154097981b2c1fab4893b210cc2a8680b8096a6bef2344a700003eea2e1c17fc878e20fc5f88c82d6b08fd3324cbd24c176351aba2b06d874f217ca600003ef0a4136babea739fdcdc300f622f23d9a7fd229dd90c8f3c9e3d75fdeeaedc4ca400003f24c61f66f5c798cc97adf5258664937f3c16d0b35121a8b45cc81611bc8e598ca500004081265b36874557cfb2aeca1412e06a1a026c8c58a172a2d3644a6790bc9f5724a9000042efa2e57a813989da4bac4551e4010ee45003fc3f360f5202a958b2b1a2991854a100004411b54c486afdd65bbe6f482fab68a28443c845c004a1c5d141314577d67d0a90a60000442afde41c8d0cff9680849824712996d0cd96906dba9697aa5110cd6d025e15f4a600004441735173590bfe02493f4aa52f5de467182e8d1db637a7a1493d3c87d923511ca7000044882dbb3ffba5fdce03b87b0e750f293fcf840964a1d5fec119e89fee2e0e4258980000466ca78e64f7df8847d8c192f3daddf32426f72a3baa4c3e320082afdb88413420a800004687fe7e263038bbc1b371c67e4f18b23a6b2f65c9cfe87675db0693eca8161df0a5000047e503b630c37057023c04ea57149dc70ae19f186db24f59881c55cb61da522f90a60000484cdc76e0b6b2cb4e30850327cf37e717d91e343a62bbfaded38aa8133cfe3490a60000484d62a228121a1800e26e8b0139995703309a81ca4467308d734b4678da3d40b4a500004877511245f8954e48858da743b9eb3544681c27ffd8802c8ea1669e961a2b6170a3000048931d40a4936659a5b03e419db8d3dfc8fffaa9737ad5771651552cc840210a40a6000048c762a528dcaea1ebce57d7e1d2ba195c01e2cf7c336912fc7a349b607d315144a7000048e181bb690336782cfd0b422faec0a561b5b35a6c2277f8073127ea8cf67b3580a700004a10b527df2b2c7151322067a844143ac7827d036a9ca86f5ef10336b1298e1208a200004a45b84757c48776f4c5d887e269e8e6c3f2fc55f75adf222662f129f9fa5b40e0a600004a8de2c6b6c1690a27aaa4cb64e0168bced54ab568958965187646f06442be6d54a600004a9929f34dd83ee1c1ef7da143179fd3fa3f4196b26c855d3fce0fba83c6e703a0a000004a9cb3db5bb89f25ef6cb2fcdb9a3308022e6440c29a4bf673557847d0c8ef3f90a600004c1a19bfea6bbd257e6f193a0b07c393300896beeab2b621ff4a8b120b171f706ca700004cb0f7f17953e529b8106c743f78d238e3dd6a90f421d32bc920ce120682c80178a50000508f2cb4567caff040d0a47db244d7ea791d9ec23f0d5d33928a7c6a62b3077ac8a500005220f15324663f1bb0bad6212a344c7f4deb40aa6e3f489a56db71d545507e195ca80000545e8064f8898a29d4811e09b207cf3302e5cefef16615f8580fcd8fa63a624e58a700005606fcd617bb7328f828ebc07396ab27f038eb5f036125a2ab5b60ab9218f24288a4000056196c14df0a7036b943ecd01396685e799f786c0f131796c06850ec9342ff01b8a6000056363ba0631ca8cb1371e706a8c3af27011e983480e7d09124d7b3c6732d633b34a8000056ad64b58553e04382fbb95145efe3dfda88b5512c0f8fcf1cec8ee0a05dd17228a5000056b8018573af44e5a77be5a66628c3c261ec930d538e5a6fd578247727e5e419d4a30000582bdd02e8b7e3a97da353f92954db770676e7f07eddf2d08cb9f2430aaf4429f8a700005a1daf6281654754e3c1dda5a8e8593882b731757c390229943e754308e29d6254a600005a5809ecabcd564a3544f045d2f77a4a90104317df62fb949ba966484eae376e1ca700005ac7f6af5aeb5364188840d02f0e74e813e6d9cc0398d6994b66727658a4fb3030a700005ae7010248daf19a0b83b3d131f63a693785222293af4354035b8dce851fb02bbca700005e348817abb98cb962fc0780a47ebd471d9c318395fa80b4529a64cfabb2e32c64a500005e4706e0f10c8d2a1cf27d967c5945b8f4e5d7d164212915a702415776e2947aaca800005ec3359163109e793b726065a0ace5a201b72fbfc2d346c181773a04ee3ec872a4a60000605fd1308af1ce85bab5ba3fb19b330ab7dac29e01ad501420560f44df7e0e1c2ca6000060cf67ecc06e7a13a024ec0e172a65e5a55b5f808edf5cbb8482fd8685ca6221c0a8000062096f7555b367e16997d36a3a6b2a10f68e3549b45163eddec4dc3c7a6af964dca50000621568bf4b7ab90fc06ac194a743e4ac65bec5f7e3113254373d710854514b0daca80000628f36dddf8cdb0242104a2531e7d3efd4860a9a4633be69aaf30f63ccb25a5e70a800006558e62bb3e9e7da178a13f657c9a0e86044335a77a672f9f571489f43ae07b6d0a700006896688640393395e0bf64930fd5470987a903ccedc679b7153ce21066b37c6da8a7000068bcfb86663abec620784eec51572fa12ba5e10a7f312981e4d6f1bce379b93934a8000068f6bff49b2d945025f0addd42aaddba97809845a5572c24f7a911249ddc076338a400006a0da15516a63ecc95cccffecec2a2aed962e92cab661af4b1f76b65e429cf798ca500006aab2be7af29db2b89e3a4695b5270f1591ddeaf00370e4398a42376a24ccf1bdca500006b973df13cf0190a75f17633f8a391020df8bac9aa9e4c50670e0dad135bf726d88100006c71634f4422a46109618fa192d46be23d042ae4c555304e987a77482530f01ab0a400006cf3e7bf1cc5f0b87e7aaa8bc5acf2489651b14e768bcf5d9206f878778f440468a600007091f937fba948654220a41ede536b0d62cc30d20274a28005b8026564db8d25dca5000072ca7a95d321217aca6da464aeb6a401a48aa4b457ca17e8e5d1de800a076c436ca70000744d9a778b5c53b54eb743dd93cc90079261a6e7fdffd8798e6406817d125d7b50a50000767b1176304fbf79701bc22060126cdeff4748b95abdc5de32adc9823c381267e8a3000076c26a1fb9acbdd56be00d4c44901856929b9d2a879caad6119ad0417e9949491ca70000780946289b4befff0da9911c013aacd2b280ec0529a759b94c67e4899b9b705800a5000078177a8ac7c51e9a165edd1a027402555ab42d2f8ec8107536df7fb34084eb357ca600007a4c11157fa5b76f4abdf635b5aa7e8edbac3cf3f848b85423ebc6e9e4e62d04e8a800007a8f8779b66af64a095e9e6c7600a89d7c33a77fb95d5b503505d264ad559531f89d00007ab1aace7b8830ca683c8a8bf99a872996586b210e0f92b8f5a28fe985ac07319ca400007c1207030eebbff1aa8d1d3fb13ef4a44251f81480ff627240d45a0e4547c63978a500007c3f190f0abecf2b39643a21a67df302a024487d84128d5bc68fcc445ac23a06c4a400007c6e71dab02a17292e9c2f3fb01d12a3895af33971a8fa710bb2820cb9d7a31ecca600007e6a7945c3108fbc35ee60d6f338f4472d4658249d96493086994e02e7dd3a11b0a400007e800474f0ebab4fe4895006c96fed161972daa605e2921c2eea276dbceb96493ca500007eb71c2356edd039e714141ff023579e979466c0f3acec566714ebeed15f5d6cf8a700008016dc2b09c2277f4ac04054d67ac8bcee6368976dcfe191b2cdeeba9487246704a6000080833b98deaa7ae201c9d2aabba6d7cbdc14ecfe1548c52b8ac4907acb14c863f8a7000082635369d20e36ccce82c98283410bfa4a4153e31bedb52b33cbce5543cba21b2ca6000082c6664f95a65717f30013c91fd9ece1c1398c2f7ed5e7cefd23752b63f1073c10a90000845d26853b5caf8444b5995c50b7b9bab9e7ffb27cd20641cc4c9f04e5942b4160a400008504c9c90a2f5c8990837ffe39d8574d01e50800dbd4203acfa5c092bcaaa38738a9000086837a8e46d4cbf152e2c25ac7960f8b969e2c132e4cd6e12f85c322f492de5020a80000878078053ab93ca434a101b5c52292227afc2c1eb5538a2857a4b0b228793c4ee8a80000880678543460d4ad15fb10ea9ec36ab97d47e9317b7291fbe5c0c69aff6dab64649b00008823139e30d401f7a9422e68208ff3ad2f8e40e92c83af26e4002734760cb87e5ca80000883bb3846ccb18462abe27ce390fec5d7310cb1612a477a2a65a557b9d076d798ca500008a1ec46479fec3c43eea382d637de8f295ccb2c0b6f6fdd4c5d34a687737a601d0a200008a32f59713f0a129fbc395dbc853f51ab53d45d1684c4bc8ddad89fd55fc096f8ca500008ae437cc2420c617f2cdec05405db6c449bada7d2b2063eadeae636a25c5ca79a8a700008b1789281b38392a08ab0516a21dee49fba6f5e55381106ff7ae190563cc84f490a600008c23324b0cb29e4fd1a68cb08febe58b50e39d8afdb5f752d6c26c8ba52fc002c4a400008c46363a07966dc8f3e4557cddec25dd939e766456f3d9f0bba805d934e79616d0a700008d6bde6dcbc00b588a0ecb71f4c516d9ede311d3fcf942f89228221b92a2c1a394a700008e07d43b19d901badf3a7f57155ca84f2f835448e93a141bbbd33eac4b767d15dca500008e41df7864847ec31fc0168967dd5b7912c21f4a597438c697f7f4c1a29c4d5778a500008ea0a20d955de39318780c92ac196f0df571b382132dbde5c7e9649266f4156db0a400009088b991261091d43c92ce790d4c8fb007b7e8d19c9c619a7d722c6fbdb55f04b8a100009208af2fb9f1511facbd517ba7ec0296d6fc9fd010896eec0f43a415b68b370654a60000929885c66023f492df489cecc1316d0ba2d2e1af772c55c1d8285c409435b932b4a500009474f44fcec968ebd7bdaaec1bcdee0c01e940142ae81c6009933dbefc20760cb0a4000094aa4d33417623e208534893793c90f0f64149b879f71aaef4870f2526016623d0a7000094c7373d1e335e281b2a80565b3370c5de9d6b2d87fdf0cddac5641377a24b50e4a7000096625a0cbd0931ad831add3bcaa6320950385aec23b3854c6ce987de1c9f8837d4a80000988544d904b69f654c94a918de20f236d004ef63de772b0f2b91d6aa5b871e08e8a3000098dddc2627f6117cd1238850bda73c62aa1684b2497c5815f311dad23279b327b89c00009a71f753f8576834b7b43f9c33b61c177480e31c4b55308297fe3e7dfce06f7bcca600009ab9fed826edb372dd3ceab91b381da1304bba44e3017d86c74d098a47c49302b4a500009c14dbe4982ae73a084bafe1f7eea2d51f3819088f08a10eb2fd7a1343c5140b4c9a00009c201f4ab49cafdaec4088582fc08202ec71a769026c81394c7639746034a76ec8a500009c665073980c9bdbd5620ef9a860b9f1efbeda8f10e13ef7431f6970d765a2570ca800009c6a3401d06cef30fdbb33901328f3611dae8253708779a5d66179c96758263580a700009c6bae578812080b2f9ecdef913f4f68abc3dcee697f505625e8430c8ce3122c58a700009e553a94c461ade68e689e1372c3c863d1b49dbb629954cc62c263390c3a4a6e309800009effc7fb904ca3d8cc4f45b464ee4dac705c89888d298bc9dfd2ba563d5b3e3f30a70000a0209c10c7d6633de64e166a68d9b45e7f02aacd9497f5c552e577abcdb17d286ca70000a02f7333e25590e4f568ae8a2ddc93a879e92e48fa3cf1666ac56e020c106d5540a60000a09b87b34880c5375ecca849557dc87a00a6243938d5882017fa0d1f601938155ca80000a0abae3a305a7702055c212f7beb51b6d8f040b27db842752ae4cd0f36a10e59f8a70000a28942a9d2e8c8501860b847eecedc45d602e614b8b0849b959607d0dec3d0717ca60000a2fafeae641e6e264d77723c00ab05f503db48ca3597cb3242c2b54d90abd01d78a50000a37a1021f6eab9a2658f2f6a5e08f5851de80230d270662dfe648c0c7bec2e46a8a70000a471c7aa909cc665212bb36003c52c5d3eeec39f96556a8242e861c5dd7dde4178a50000a4a2b4ee5ad0bc423c3e2b5492545f2096550ff497b0749d535b885bd96d182850a50000a4b13ccfd4c7e16f188c088cd21e415cb73a8ad11bdef6931e6216dcdf0f2855dca00000a4d30a367570be5fc2ed7786254b990be8e9e4b0de0ccfa6ba610e445cbfa82640a60000a542ff1876727dc5075e0a328748e64c4249fc522aa72eb73d5dd6645a7468db94a70000a81b8a2a03afd92af18f0338e43afc504c6018aca6d9197c0d3a149ce65efa0e7ca60000aab69386e2b8264fbdbe9ab35706cee70fe33147d42ebe2b45b0521b43831d54cca60000ac133ebfde441672c055b79ca9a6059850984eead1ae036f48ca1230e7f0556f50a50000ae1595f870cc27a34374a6b819a554e242997efeb760433c6fdb4372c2f282049ca40000aec27c7e044d5b7619909aed070a38751546e4b7e7c3b98c1cc41476f335f64fa8a20000aee72821ca00e62304e4f0d858122a65b87c8df4f0eae224ae064b951d39f61058a70000b023d129d9a0cb9490d097dbd3ca947d4830d3a6d7e0fa9975ff2789d9d97352fca30000b286fddebe2f89e638d549f6751fc2c8896f0db829ebc20eb14218c76276653e80a70000b2c4d2772a169e3ccd912db6415a39a6f0228c89c7045556951b77913306237500a50000b2e07be4d6d82f546ec91d6009ee215bb736be5b4362e66e7b466ec72d47624f40a60000b4154f12cdef88338edfa85cbdd64b61c410187e4f7971057aef32cdafdfb70268a60000b4de0e0553f854c72746045b90c8e5c67d74f5d8a52d4134b259ff562e4b1409d0a20000b66953df31de525fd4c075b30b266f8fca1f29533c9dd7d45128408726d1997918970000b6979b7897a0fbf4d194190973a6487277b671932c68712c8861a3c0945a861ecca60000b69c8792d56762ddf68a261993acf24305a804494144a2d2235fa8a438e10f7510a40000b81712e18e76cfe727bda3fa65662405f584f1ed059aac110ab6f41851ba7e26a89d0000b8473b5e37e993092f313f54b58762953589245f5552612ec90042a6d59d807af4a60000b8fecc72fb024b6102c53a3924e8b7e2c163cfe6e5b84299c4481efa0580694ca8a70000ba4358b81da547ba46f897dcc83cd6c94a2aff075e25d2f92d420b090ece5728e4a70000bc1729a527ac8770c18456f142dc57b24069c9ff1032d6c3a1572d84b811ac7e5ca80000be1c8831d018fed582688b5e75be3c9983ac1761fb24a916451c6999c0c66f5e2ca60000c0746c03c3e5f7bf70f95401b92882821ae685f544a962703e05df4255732f0a8ca50000c08d5de7a5d97bea2c7ddf516d0635bddc43f326ae2f80e2595b49d4a08c461904a60000c1f215e6d1c4cede0f67c75dfe8c1f6f3244a318b4405fb775e76b8b6453cd3c6ca70000c29cd0286cd14a9d3538ab155180c8363b3e3af8e6e95561bfa0d9e4a459f65f8ca50000c2eea43fd0e45e0e756130e01667533bcaa001e29e0192501e7ce2186ec3554a9ca40000c443e5dc5778723ea429e138a10a43179659941ac631f97dcf9037bcb497966064a50000c5e80accf4092ea6f8ed087544576dddcfdd51366b492868f73b0c9ca19c5f3124a90000c6477bfd57c12587b1075a80d944c7829784eed61a5c8b8255817e1d62d1070eb0a40000c65de6003709aa5a6b81354c00fb13e281ac05e852cb4194c69f78566e8ac82844a70000c6bfc6a3cade13b0fc2d1ad1741f3fb4562b89c7f3bfb5622dcdae02db65345528a50000c885a011dbc63183416fa77f78a967ad0ffbbbb62e444e9eb490abd2fc67d326b0a40000ca38730919998d8ddcf5e729a8a275769b1ae064d1e0f5528db03eede05d5e247ca60000cc2dde4403d477d784abb0486ce18908af209f2c9d8581d33f7e847608b5d12408a70000cc9385c21d3b6b6380cb412a5c57a080327aed7868e09032d21c958a69e69e05f0a50000ccc2b2f7c10a3efef6b3681e853343c88459a77af486dc9e8800225ea4e17e5c64a50000cd0b6229844999d1cde6c2e74ff90057d24e5875b891f645e2fb4a47ab90745e4ca90000ce4761ea5d8d29dd92a78dc606246d8146320a5e9292de240ab15f60c7802e4aa4920000ce65c3e609e010d3760f8d7559f62211afba600292f5e5059dd1c50a364f9b5988a40000d0014ab170414e7f6fa6f6ef20ddd28fbca03f3349e577ced6073e2c14e6953dbca70000d05490aa747179f2b895c2c5171e9cb10a474fd07d1a8069389678e165369e5604a60000d22f4b3f7a9f0878a49954e7b4491ca841f68831c2e8aeb383cd79dcdc00295b4ca40000d44533a4d21fd9d6f5d57c8cd05c61a6f23f9131cec8ae386b6b437db399ec3d88a90000d48160a2ee8fd9432be3fb3619e4b309da87305b83f29f87ce3918460140ed09a8a70000d49cb030a944c5d66de3ca7d4b8f5b37df03a610a028efdf313b5b405b3614a464a50000d4c9b5341b6040e6f218c5476e5bb87a26fd80e03a0ac65b92d4d3eb917c8f225ca30000d62a2b80ebcda1b2f14d2a903088759ce56482401fb4130cde32775d6d210a6af0a50000d81acf644cfd94b6cb724a47226dcfffa83768cb6722e33e737642805ce3a61fdca00000d85f93f47f94abb8dfaf8c817af3d4b539847141277479506027f06c54cba4407ca60000d880b45154006c09eb568c69f1febc0dadccaa59723dcd058cdae45c9c13ae6860a40000d885ad688af3fd90712dbcf6a5eb840229139b3a1ba9b94f87f1f8db3ae0354370a80000d88e71e550f7c318065fe4ce9c7d58430af17fa534f87d27195dd93cce667719b4a50000d8e943700c6625ff869b258c77221ea5fe0a01380faf6059d28be5f69405fd5184990000d8ea5408a39f0d58bb8cfc1e307ef85ebab9b195ebaeb8b8782d35f525e4ec0d24a40000d9ba7812c46be60e86e1dce7cc23721d4cdcaeb25bd8a7960a5fbc48d68c410888a40000da77fa0d82d2d92ee03531ad36f3867ba4fe7ad8bbf7e9bc917c7a767c64ca3484a80000daa254113c992edbef28f452689f74b31d274d5681c2a012379fe4c40e40ee79eca40000dae2b867564f01654946a095e69f0f49df1eb5c0efce5730cc3d1d83da3f4b090ca30000dc313b667a08d4a8293ed90733697961647be1182449338e3ba7215cb786311dd0a70000de7d8da7b555d388f637270fe722557129b90be3844921a4b3e01f412a98f5495ca80000e043d8f7872cd895f8957c9179c4264816be3e649713cb3bdc523f752602cc3a20a30000e23862ea58297bc541940d558dc215aeda8816d2fa9d4245fce260647df60066f0a50000e2b4012c3ee5585e9f326b9d46d05a3e25dbe5e08897d10b26741c0ce0d50539a4a60000e2e9320d0826cc662051cae039bc0bfd629fe55bff6a4d2207f06b7d5aca4f8168a60000e2f8aef0d1bc20724c28440d40e2cd31e83805a1f641fbb73cc1c5b77734607658a70000e40db41d7f07b2b867fae0d7b8ed6767d23f7b53b032710dc5b5043474bf1d11d8a40000e45dda4a3ac186e2ac54d8aed98db9dbdfff54087b96414057ad263ca02bfb967ca60000e60b065719963027baac7cb4d68145539a0b428aa74048ec1c32b6b25553064648a30000e626c79ac1455fb2f64349ace8e054bab2ae746e52508eeaf741d505b4419b036c9d0000e693f8c8c6043a5d8c8ed64d56523d157625011947a8a79881987d9e9100963a88a40000e6e13d835bf8b44914ca24613b9ccd2aa2ff6a187dcdcb11d531701c5fcef91044a70000e82d3b7fbff7f5ff1010b279435012e0ce3b68dc387eb2827fc2e9d5001ada7c58a20000e8b6a4eefeb4942bbca2bee6baee73280d49c1b7aff8d1aa7616d06bc173ad7fc0a30000e8c7ad65c15fa3ba64424a61b177382a0c5468135aecca9ca454f5e7ce4d305b5ca80000ec027631ca56b18c5e87aa9b057f08c9e2d07ca2251527e5ca3058f70b71e432f8a20000ecdd548c83457ab43caf7867e2bef91ef783025db9659afd89794ec1220acf2990a60000eebc7887720ec1ce8b759629cb425df5f15011f0d455bfe1a22ad4cfb36d1a3bd0a20000f068505a66e272d987c377f0ae0c0a795edbb4db40be62187205803920118a2804a60000f0de782e8bad3c663be60812f0a2ac63464f5da3ec448c73334c07d71ef27f2c74a40000f2e8a164a3517d03fc58abedb1b8c6ed956c691b34ab28f86b3c45e1d8b7777aa8a70000f40cd7a2181289e32776625b9f3a193f749e33ce1bdeb76cfaabece606c7324cbca70000f4c372c3fd5ed3046e17fd395ebad1d45b0c46cd78e04f0e58af6cc2d9b1f01e489e0000f4c8bc5da2f0d0e2f6e040005f783c023b85a8cb21df5c1f509c144fe188720208a70000f6b2256178f0210557ddcc138e8b264204e4674fb2d73a8190faf4ac3724722f08a70000f836649df542b24a1b63d80916ee743d4734640aa796648649685dbdd430c362a4a60000f857311106c8d7b0daf6e096db9a0d759b52403e439ab23fd6559780a8b1c80354a60000fa150742c53997a227cb5648c21029d8a6a087ea1c27c502903aa60ef7701823f0a00000fa9fb4eccab4919417e2a6072c77e55b7d1b69a9682629a09953ce699260b56430a20000fc6f8380646bfa19f4dc7c1ed6ebfb0a93f5781793aef9224a05e805426d151ca0a50000fc9ada02baa2ef7a2a24a91f4fdadbbe83a22733dd3ae2deda97f45b4c30dc6714a50000fcfd589d8df6da23f65a51de867fac9490ead3ffbb36ce8d1946cec1789a9a469ca40000fe04936fb5c49222afabfadfa1a9de0937ef0ffdd79770c4f0588570b85f0546bca70000feb586a6d2406aeb67d8dc3895f09dde186e89556ec3c166b6fb1d94bd7a025ee4a70000feffabd8f3747b5ca19766866bd59856a2e65c537c6456c6f6863c026915f473e8a80000", + }, + }, + { + "parsed": { + "key": [], + "method": "deactivated", + "section": "treasury", + "value": "0x00000000000000000616aa415e1ecdd2", + }, + "raw": { + "key": "0x89d139e01a5eb2256f222e5fc5dbe6b3c93f8c5c4169138b035dc774e7a48e13", + "value": "0xd2cd1e5e41aa16060000000000000000", + }, + }, + { + "parsed": { + "key": [], + "method": "inactiveIssuance", + "section": "balances", + "value": "0x00000000000000000aece592aa9fa1ed", + }, + "raw": { + "key": "0xc2261276cc9d1f8598ea4b6a74b15c2f1ccde6872881f893a21de93dfe970cd5", + "value": "0xeda19faa92e5ec0a0000000000000000", + }, + }, + { + "parsed": { + "key": [], + "method": "upcomingUpgrades", + "section": "paras", + "value": [], + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa19463c716fb8fff3de61a883bb76adb34a2", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [], + "method": "pastCodePruning", + "section": "paras", + "value": [ + [ + 3334, + 17990778, + ], + [ + 2037, + 17992878, + ], + ], + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194fdad6eef5c4b1c68eaa71ea17a02d9de", + "value": "0x08060d00007a841201f5070000ae8c1201", + }, + }, + { + "parsed": { + "key": [], + "method": "author", + "section": "authorship", + "value": "149NeZPEhMBJ5pUpeVu2LfMTAtXX4yw9UMRQL4r4rovFMbWD", + }, + "raw": { + "key": "0xd57bce545fb382c34570e5dfbf338f5e326d21bc67a4b34023d577585d72bfd7", + "value": "0x8b1789281b38392a08ab0516a21dee49fba6f5e55381106ff7ae190563cc84f4", + }, + }, + { + "parsed": { + "key": [], + "method": "lowestUnbaked", + "section": "democracy", + "value": 128, + }, + "raw": { + "key": "0xf2794c22e353e9a839f12faab03a911be2f6cb0456905c189bcb0458f9440f13", + "value": "0x80000000", + }, + }, + ], + }, + { + "logs": [], + "phase": 0, + "storageDiff": [ + { + "parsed": { + "key": [], + "method": "eventCount", + "section": "system", + "value": 2, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850", + "value": "0x02000000", + }, + }, + { + "parsed": { + "key": [], + "method": "blockWeight", + "section": "system", + "value": { + "mandatory": { + "proofSize": 56576, + "refTime": 20029905254, + }, + "normal": { + "proofSize": 0, + "refTime": 0, + }, + "operational": { + "proofSize": 0, + "refTime": 0, + }, + }, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96", + "value": "0x00000000076619e0a90402740300", + }, + }, + { + "parsed": { + "key": [], + "method": "allExtrinsicsLen", + "section": "system", + "value": 11, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef7a86da5a932684f199539836fcb8c886f", + "value": "0x0b000000", + }, + }, + { + "parsed": { + "key": [], + "method": "executionPhase", + "section": "system", + "value": { + "applyExtrinsic": 1, + }, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a", + "value": "0x0001000000", + }, + }, + { + "parsed": { + "key": [], + "method": "extrinsicIndex", + "section": "substrate", + "value": 1, + }, + "raw": { + "key": "0x3a65787472696e7369635f696e646578", + "value": "0x01000000", + }, + }, + { + "parsed": { + "key": [], + "method": "transactionLevel", + "section": "substrate", + "value": undefined, + }, + "raw": { + "key": "0x3a7472616e73616374696f6e5f6c6576656c3a", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "now", + "section": "timestamp", + "value": 1698979446000, + }, + "raw": { + "key": "0xf0c365c3cf59d671eb72da0e7a4113c49f1f0515f462cdcf84e0f1d6045dfcbb", + "value": "0xf0fc10938b010000", + }, + }, + { + "parsed": { + "key": [], + "method": "didUpdate", + "section": "timestamp", + "value": true, + }, + "raw": { + "key": "0xf0c365c3cf59d671eb72da0e7a4113c4bbd108c4899964f707fdaffb82636065", + "value": "0x01", + }, + }, + ], + }, + { + "logs": [], + "phase": 1, + "storageDiff": [ + { + "parsed": { + "key": [ + 2094, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0xd69d80a7c16c51a227bee83decec3e088de5046a12b462dd73da6232b502a2effac46d00d74136d95afacda8a7fda5b3f2b855d72ab19d69e65489761935c9204ab9486b62c81c9a3561b6ffb61e117f19a03fd6205e4d2548e5f5391b310d748d88f06a08066175726120345d70080000000005617572610101a213919fdf885fe22b32321d787bd092c147ea540bbf612b7c7e3bd61aade146c8bfe55bfbe65faac675a5f461778a44ca54314a2dad823ac35f55bdb5aa0a89", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b071ceff5b0f64d362e080000", + "value": "0x000000e902d69d80a7c16c51a227bee83decec3e088de5046a12b462dd73da6232b502a2effac46d00d74136d95afacda8a7fda5b3f2b855d72ab19d69e65489761935c9204ab9486b62c81c9a3561b6ffb61e117f19a03fd6205e4d2548e5f5391b310d748d88f06a08066175726120345d70080000000005617572610101a213919fdf885fe22b32321d787bd092c147ea540bbf612b7c7e3bd61aade146c8bfe55bfbe65faac675a5f461778a44ca54314a2dad823ac35f55bdb5aa0a89000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2040, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0x16ee97f9cd63bb9956ede7c9258bde5df092347a8b5fb89ea53c0daeaaebd5269ea4d500c9f37b9c4e937621d09b358a8c6ac8cdf7dfdfe9a1c3b7d0453f5dcff338c9bd1355a36e870cec9fc59ddeae24ed8700c0d61d5d381c41aa6cfbc15a766e148c0c066175726120345d700800000000045250535290166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729fea14a04056175726101017a727aedd45edece678de781c0b120b17a9ccf17a01f711563ea135a96109205ccffb0c49a6fd67048fdf660a7c272269bf8d59c89d9b7eb12148a5288a77e86", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b0f474ee85a3cd622f8070000", + "value": "0x000000910316ee97f9cd63bb9956ede7c9258bde5df092347a8b5fb89ea53c0daeaaebd5269ea4d500c9f37b9c4e937621d09b358a8c6ac8cdf7dfdfe9a1c3b7d0453f5dcff338c9bd1355a36e870cec9fc59ddeae24ed8700c0d61d5d381c41aa6cfbc15a766e148c0c066175726120345d700800000000045250535290166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729fea14a04056175726101017a727aedd45edece678de781c0b120b17a9ccf17a01f711563ea135a96109205ccffb0c49a6fd67048fdf660a7c272269bf8d59c89d9b7eb12148a5288a77e86000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2035, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0x07c63ce4b54c4a1ad8f202bda5837d5768efb0f72e4fe65d91e20ab002cb01ab86d1e5009b501bdb8cb0834c3854b4962f43d302ef70e57865a637c82986430414980bdbd1c237628fe688b0175fee042ffba7e7f45e3d3d29a12453a2a7e42644934b6508066175726120345d70080000000005617572610101886a755e27c9511c1c40184af29799eb8fc3ea3e3cfb863d3520a9b2e3161555d9070552599fa9f8812dcc7463d2d40beebb233fe5b0e00dfd8f3ed79872d38d", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b160394315fe95b98f3070000", + "value": "0x000000e90207c63ce4b54c4a1ad8f202bda5837d5768efb0f72e4fe65d91e20ab002cb01ab86d1e5009b501bdb8cb0834c3854b4962f43d302ef70e57865a637c82986430414980bdbd1c237628fe688b0175fee042ffba7e7f45e3d3d29a12453a2a7e42644934b6508066175726120345d70080000000005617572610101886a755e27c9511c1c40184af29799eb8fc3ea3e3cfb863d3520a9b2e3161555d9070552599fa9f8812dcc7463d2d40beebb233fe5b0e00dfd8f3ed79872d38d000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2086, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0x08f31e854f4197fd6e8c2b61a666b76d6f23462386e6b3a1fce22a6afe62325716ef2d01daa7638d645769233672d7bcb3624d477a3ac32457c6ff033323ebf8af9ac9ccbe671ed7c4eb9ba7b31bde450009e6a4e0d645a99ed8df6be5d7b41e265b5c9908066175726120345d700800000000056175726101019a09950748386c50143e7f1d0024baa1af6d67e4a6968608c77c970c484c3a6e379c22a30f5ccc21b95f98fc1e9823bc6d6cf94817f915e20dd2f99c31b55b82", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b2c0cfd6c23b92a7826080000", + "value": "0x000000e90208f31e854f4197fd6e8c2b61a666b76d6f23462386e6b3a1fce22a6afe62325716ef2d01daa7638d645769233672d7bcb3624d477a3ac32457c6ff033323ebf8af9ac9ccbe671ed7c4eb9ba7b31bde450009e6a4e0d645a99ed8df6be5d7b41e265b5c9908066175726120345d700800000000056175726101019a09950748386c50143e7f1d0024baa1af6d67e4a6968608c77c970c484c3a6e379c22a30f5ccc21b95f98fc1e9823bc6d6cf94817f915e20dd2f99c31b55b82000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2032, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0xf6f0b607161e51dd978aaeea8749b3bf3c0b1d41c38109f5cee0256a941571e362e8ec006c9f69dd5f88774a0ffb73d275276c5a079b8de4229eb9192b6f5266b0b472d360621128687232d33947f5fcecf8c0609bafac7bdf184422266f6209a64f70370c066175726120345d7008000000000466726f6e88013ad0663f8da2d8f8185c72a10e5851c2e931fcaf02e1341b8a45cd28181ed60d00056175726101016af1c735e20d064cace90780a93c11a23f8ff0a6dc1a5b8d3c757ff52e731a79111039beb4cb99938314f95c1b14637a507f6723a691d69709415fb431e54a82", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b302b2165312d890ff0070000", + "value": "0x0000008903f6f0b607161e51dd978aaeea8749b3bf3c0b1d41c38109f5cee0256a941571e362e8ec006c9f69dd5f88774a0ffb73d275276c5a079b8de4229eb9192b6f5266b0b472d360621128687232d33947f5fcecf8c0609bafac7bdf184422266f6209a64f70370c066175726120345d7008000000000466726f6e88013ad0663f8da2d8f8185c72a10e5851c2e931fcaf02e1341b8a45cd28181ed60d00056175726101016af1c735e20d064cace90780a93c11a23f8ff0a6dc1a5b8d3c757ff52e731a79111039beb4cb99938314f95c1b14637a507f6723a691d69709415fb431e54a82000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 3333, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b38de339bbfcd5144050d0000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2051, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b3a35dd60021a6f6a03080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2039, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0x9bd56c1a9c31ae98ae3c0d643e25c206107250bdb43d4fa0634845fecf7faa85f2ef81006e3ef94082384c33c633108bf7dfd7deab24726e69a34a0bec551712d602cafebceba9efe8275a13013c8a1813191c71f7c7dce2a85ecf1f3f8ed233482e983408066175726120345d7008000000000561757261010194adce8fa9e7a50c185af4445432bde3178ec637046770d5b351fa39dc414945074c8846f716faf38fe7a00feb277f6bbd1d36fff80c49f4366280159f409a8d", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b451f0507c3963d8df7070000", + "value": "0x000000e9029bd56c1a9c31ae98ae3c0d643e25c206107250bdb43d4fa0634845fecf7faa85f2ef81006e3ef94082384c33c633108bf7dfd7deab24726e69a34a0bec551712d602cafebceba9efe8275a13013c8a1813191c71f7c7dce2a85ecf1f3f8ed233482e983408066175726120345d7008000000000561757261010194adce8fa9e7a50c185af4445432bde3178ec637046770d5b351fa39dc414945074c8846f716faf38fe7a00feb277f6bbd1d36fff80c49f4366280159f409a8d000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2008, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b5f9d7e46afdef838d8070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2000, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b63f5a4efb16ffa83d0070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2092, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b6e28b8ad2696ed532c080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2030, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0x4ec777dfa00a6968ad2d5b06f5323e88fd577a9a05e0e74d5f8128da9dc38dab0657ce00a8c918077241d427da1ff23dcc29a520ca0f07bdc4b06d17bc7cf9b7b6d047477987af21ee799223c397b674943a4d599f1b5c2758eb0ee120a17e17b4e90c7208066175726120345d700800000000056175726101010acc4afb6c2322248b272f50bc4a7b020d6922f5b32785090f341f276fbcd71b83758b6161d539e3aee43e3f470f3f71a5f454d34721a0882d34220c18381084", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b81004131e62a7368ee070000", + "value": "0x000000e9024ec777dfa00a6968ad2d5b06f5323e88fd577a9a05e0e74d5f8128da9dc38dab0657ce00a8c918077241d427da1ff23dcc29a520ca0f07bdc4b06d17bc7cf9b7b6d047477987af21ee799223c397b674943a4d599f1b5c2758eb0ee120a17e17b4e90c7208066175726120345d700800000000056175726101010acc4afb6c2322248b272f50bc4a7b020d6922f5b32785090f341f276fbcd71b83758b6161d539e3aee43e3f470f3f71a5f454d34721a0882d34220c18381084000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2104, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b890bbf94976e240b38080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2046, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b8bd977dcdc787ab9fe070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 3345, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b8f6ccad3d833b8c4110d0000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 3340, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0x4b0bc2b486f8876b43ce78b1e91babcacdd1f59f5d64f28a8e99bc4d7a9c899ec6190400dc334d894cdf430634c3b00422446adb7999a3fca08812d2de672223d72e8ca3defef1365303be859d1d5241979b64fef02843f5f7ff4e3f74b5181cd250083d0806617572612068bae01000000000056175726101017e3f633fde0356ea3e869e887547c9af4110f0df695bc39620d6736f0de8bf22aea18ddb11c834dfc5a45ac114c0c7adafcb52f7cf87271702e50854dac78d89", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b97463f617b300a4f0c0d0000", + "value": "0x000000e9024b0bc2b486f8876b43ce78b1e91babcacdd1f59f5d64f28a8e99bc4d7a9c899ec6190400dc334d894cdf430634c3b00422446adb7999a3fca08812d2de672223d72e8ca3defef1365303be859d1d5241979b64fef02843f5f7ff4e3f74b5181cd250083d0806617572612068bae01000000000056175726101017e3f633fde0356ea3e869e887547c9af4110f0df695bc39620d6736f0de8bf22aea18ddb11c834dfc5a45ac114c0c7adafcb52f7cf87271702e50854dac78d89000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2011, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0xe44c6118a1e1ace8cbeb98594c6188f72e319d41b70fddc2a1e08d96d68c9b1fe6a4db00254fe6eea7ddeba2c235b123f2148bc531398b9a6ed794bc1aa9a5027cc2b1e1d2c1aea70c43d96ea6cf818cacecb6d11312b489e62c5f04737e994d22b1205008066175726120345d700800000000056175726101010c911e709a98699155b610aaf530518096e6f2708aa71f62c983ef0fed8fe967c9fcb49421fa5557a6d80250466780f9ecd1eaf0e8cab76f98271a682da0f986", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b9ebb9f16811eab62db070000", + "value": "0x000000e902e44c6118a1e1ace8cbeb98594c6188f72e319d41b70fddc2a1e08d96d68c9b1fe6a4db00254fe6eea7ddeba2c235b123f2148bc531398b9a6ed794bc1aa9a5027cc2b1e1d2c1aea70c43d96ea6cf818cacecb6d11312b489e62c5f04737e994d22b1205008066175726120345d700800000000056175726101010c911e709a98699155b610aaf530518096e6f2708aa71f62c983ef0fed8fe967c9fcb49421fa5557a6d80250466780f9ecd1eaf0e8cab76f98271a682da0f986000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2004, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4b9f434b9dae0bfb8ed4070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2019, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4ba33ab67066cce00ee3070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2052, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0xf2bf345c877a0179ffe678972d7dd04e356879f09c4e007f1d6c63ed09668f1152106100504b16b6a6179a5d7f9c9793a28baca4473cc2236e9700b8e49a4c4955b971ac32a9c4ab79494d72dc7cb987122766eb8b3439162a43acb85ee550f79c3925c508066175726120345d700800000000056175726101019801ee8e18c338a5bbcd2534b3bd89ad07801fcc2b7e4506233e9028127b4a09b75e8fae19d367b5fff199736c7f05cb2f4284eec6237fe0d937a48f3684408e", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4ba60186ab87135da704080000", + "value": "0x000000e902f2bf345c877a0179ffe678972d7dd04e356879f09c4e007f1d6c63ed09668f1152106100504b16b6a6179a5d7f9c9793a28baca4473cc2236e9700b8e49a4c4955b971ac32a9c4ab79494d72dc7cb987122766eb8b3439162a43acb85ee550f79c3925c508066175726120345d700800000000056175726101019801ee8e18c338a5bbcd2534b3bd89ad07801fcc2b7e4506233e9028127b4a09b75e8fae19d367b5fff199736c7f05cb2f4284eec6237fe0d937a48f3684408e000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2007, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4ba6e81cc6a2c29a16d7070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2056, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4ba85b1ec02482089508080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 1001, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0x842570dbdc4d81d03128e685ec227b7a3144cfc33e0133529d1d819f2a2ef15d16829600ae88ff7fa5cc05a3b5d797e2398b9cbd1edc6b74256ff973508074f7ed2cd9f0afcc1e367bebf2051c30d93c5ddff2dd9568c0c69ab024679bcebb1b6b6589210c066175726120345d700800000000045250535290166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729fea14a0405617572610101c60d725111b8b192ec9373c8ef077171bff5bce1ec66c33ad867cbfd4cca420996789b6bf8c12f3fa6ed7a65414180c6799d1a70bbd93831df322af542d7f384", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4badc7217647a32b0be9030000", + "value": "0x0000009103842570dbdc4d81d03128e685ec227b7a3144cfc33e0133529d1d819f2a2ef15d16829600ae88ff7fa5cc05a3b5d797e2398b9cbd1edc6b74256ff973508074f7ed2cd9f0afcc1e367bebf2051c30d93c5ddff2dd9568c0c69ab024679bcebb1b6b6589210c066175726120345d700800000000045250535290166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729fea14a0405617572610101c60d725111b8b192ec9373c8ef077171bff5bce1ec66c33ad867cbfd4cca420996789b6bf8c12f3fa6ed7a65414180c6799d1a70bbd93831df322af542d7f384000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 1002, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bb2b032492225337bea030000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 1000, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bb6ff6f7d467b87a9e8030000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2031, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0x0685da51c301fba9bc71403856eb1d18fe9972570a4d3a34367161e3a04bdb5a1a05ff0005a23b8eb5de6766a0878928b8b0bfd8e807323ef79a992fb1b3ca00d2562d301c70c55c2c14c79723438527784828a73a8ee85e438dc1abb14d5ffb29b5479d0c066175726120345d7008000000000466726f6e8801ca3f99fe04016770998ddfeaf672a35a7d3a178ea559d8eb6a96fc2a3e84147000056175726101015ec4b582a9edc70533e385cf8a407e76c467165e54007dfa21122da547a83653ab0803d0532db6f4214878b4b598fc1f7d418b9fbc94b97c47d0b67dfe4bf789", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bb7be89c98b91434fef070000", + "value": "0x00000089030685da51c301fba9bc71403856eb1d18fe9972570a4d3a34367161e3a04bdb5a1a05ff0005a23b8eb5de6766a0878928b8b0bfd8e807323ef79a992fb1b3ca00d2562d301c70c55c2c14c79723438527784828a73a8ee85e438dc1abb14d5ffb29b5479d0c066175726120345d7008000000000466726f6e8801ca3f99fe04016770998ddfeaf672a35a7d3a178ea559d8eb6a96fc2a3e84147000056175726101015ec4b582a9edc70533e385cf8a407e76c467165e54007dfa21122da547a83653ab0803d0532db6f4214878b4b598fc1f7d418b9fbc94b97c47d0b67dfe4bf789000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2037, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bc12483a7cb568540f5070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2034, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bc77a93d174890f1ff2070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 3346, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bcf8e8ccd42a093bb120d0000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2012, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0x26f98caf4fdfb94fef173990b77d634adf55323d6b5e3b6898495bfb5ac165ac6aaa1d01b3947288ddc2652305817a79b62f178a1bc8a339b1cc56ac9e030c4a726e5bdaa59f322d300b1173d0d77a86a5aca781d76bcee5d0fb92c34083a93c648f0d8c0c066175726120345d7008000000000466726f6e8801c5a60d8e3053e9d4430b3644733b8fa199a321e7e4b1a1008140129bb0e10bf20005617572610101641ea859a950459efee26fc3fcd8287416a7aaf8bea1e2c38be93f60ba357f084be7644743511cbc991e8a342aa84dd99d96ea591fbf4e3fd5368af294be4b83", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bd4393eba91f117d9dc070000", + "value": "0x000000890326f98caf4fdfb94fef173990b77d634adf55323d6b5e3b6898495bfb5ac165ac6aaa1d01b3947288ddc2652305817a79b62f178a1bc8a339b1cc56ac9e030c4a726e5bdaa59f322d300b1173d0d77a86a5aca781d76bcee5d0fb92c34083a93c648f0d8c0c066175726120345d7008000000000466726f6e8801c5a60d8e3053e9d4430b3644733b8fa199a321e7e4b1a1008140129bb0e10bf20005617572610101641ea859a950459efee26fc3fcd8287416a7aaf8bea1e2c38be93f60ba357f084be7644743511cbc991e8a342aa84dd99d96ea591fbf4e3fd5368af294be4b83000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2043, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0xac8940458079d15b63ffc2e5cfb7f50a589cd29c8f0eaffa2c3fe3d2518db8eb7627dc0073da7daa8eb8fb301595133fdb6c4d198d9c5ac6de7ac5e72f616534f04007b205ff02d4a0a6fa2122a963f0c3ad285cc693c299e4aa37a8a5b3492660310fda0c066175726120345d7008000000000466726f6e890d0192b670b693e51ac14253781854268a0cc979f5d694dbbf658576bbcb7413e1256801adf62c90a12c216d2a523ac23afaf369b004d41065312864a39320974a72ae33e44fa7d5fc04682f91870d433e216c627ae9783119d3d9659aeb7b81996ba28dd4d4447d023cbe6d6115764533ade07e38a76f0d9b31f95710b00b1d215cc02c3286240e61b35d3a3c2bbb6c5dec94997eb6d37d0166163f6eb1616c961bb2dba6a9ee43d84f12320176c305b315a35fa07951ad8d7c3fdc29af92380972cfdcc0bf2a0338ac9207c947d6c16e5fa658365cdb703f682206c24931e5174b0addec573809d9a1024c607c3844ea43849a0f53a0e70a6f57e13eeb501e28dc5cbb61c7e0c9e8366f9c9d3248138bfce7e9e8881e152e284e5386e7fe3a5dbcb2a3ad5796712c4f5aa1f6268281dc5d3f1dc1a2c1f499b63da1920eeb0df50b481408d9f1fa70599662686669bbdce56a016e0c377e0868d6ed190683ce8cd4a925de9d37bbeadb55eb1e545d2ea551575b2018dbed114dda8863830af2cfb42bcd9cac46feb0ac738d1bbc6aca88a673ac14a1616f7fe3e19de18eac5317eb382b9469a65f586748c09c0d1730376d2ab28e97f6081a9df7cee140180c3dfb6776baf7bd9670dbb2b95146d96ea1459132968ff996a694367c9c9660382098e0dc21a8af7213b0a1ebe3e0d94b3d111294bc4a868bd3f3b71b93ae10ce28a13962aca892c62f940701ed5e235f0aa6d33868343b1379a8ec88025dab078b9377c7a1312babdd4d5e50a3389e07662160830c453030d37439528656625ad658a21a04d3324a4acaff3516e6da59948755fdaf1cf372ca224597ba6dcf53555d8fdd2ca3ba56c7e3d4a3980d62b8faab0e0d34c4ccae563c47ced71c15660f8fea8aaead35cef36dec481f941cc2ae1185911ca0b801cf610310cacfd952b629165423910d68b6ca56ed778c79f4de50f7bb733a10c057be1980d50b7c29c6c69f1f0477d28cd27a44a28ca4fc0a12fcfc1e5db0b84cb65e750b6a0c6a517842591a4a02447e7051ba68b30223bdb3d1476bfb5eaeb0387f0616564d6be195cd5cea696d24bba5ff5f731e85a1b8d9142d302c7d01223f05d522dbd6c2ec07d778562ad21c33b0cd1e309831cdc90f09758639fcebed82019094ded6ec4d37b9f9b2e6e63db4502884014c7c0aeee35c1a85d60f0ccb949247025321bd8690da38056175726101011cdb4c9843a55df806824d95ff9039c8256314875758f90aa886583755cd726627c5c21404abd47b28b3d1a9c53ba1329d3b1fa14a32e3311445765e050edc83", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bd8b9873ac6cf46d0fb070000", + "value": "0x0000008d10ac8940458079d15b63ffc2e5cfb7f50a589cd29c8f0eaffa2c3fe3d2518db8eb7627dc0073da7daa8eb8fb301595133fdb6c4d198d9c5ac6de7ac5e72f616534f04007b205ff02d4a0a6fa2122a963f0c3ad285cc693c299e4aa37a8a5b3492660310fda0c066175726120345d7008000000000466726f6e890d0192b670b693e51ac14253781854268a0cc979f5d694dbbf658576bbcb7413e1256801adf62c90a12c216d2a523ac23afaf369b004d41065312864a39320974a72ae33e44fa7d5fc04682f91870d433e216c627ae9783119d3d9659aeb7b81996ba28dd4d4447d023cbe6d6115764533ade07e38a76f0d9b31f95710b00b1d215cc02c3286240e61b35d3a3c2bbb6c5dec94997eb6d37d0166163f6eb1616c961bb2dba6a9ee43d84f12320176c305b315a35fa07951ad8d7c3fdc29af92380972cfdcc0bf2a0338ac9207c947d6c16e5fa658365cdb703f682206c24931e5174b0addec573809d9a1024c607c3844ea43849a0f53a0e70a6f57e13eeb501e28dc5cbb61c7e0c9e8366f9c9d3248138bfce7e9e8881e152e284e5386e7fe3a5dbcb2a3ad5796712c4f5aa1f6268281dc5d3f1dc1a2c1f499b63da1920eeb0df50b481408d9f1fa70599662686669bbdce56a016e0c377e0868d6ed190683ce8cd4a925de9d37bbeadb55eb1e545d2ea551575b2018dbed114dda8863830af2cfb42bcd9cac46feb0ac738d1bbc6aca88a673ac14a1616f7fe3e19de18eac5317eb382b9469a65f586748c09c0d1730376d2ab28e97f6081a9df7cee140180c3dfb6776baf7bd9670dbb2b95146d96ea1459132968ff996a694367c9c9660382098e0dc21a8af7213b0a1ebe3e0d94b3d111294bc4a868bd3f3b71b93ae10ce28a13962aca892c62f940701ed5e235f0aa6d33868343b1379a8ec88025dab078b9377c7a1312babdd4d5e50a3389e07662160830c453030d37439528656625ad658a21a04d3324a4acaff3516e6da59948755fdaf1cf372ca224597ba6dcf53555d8fdd2ca3ba56c7e3d4a3980d62b8faab0e0d34c4ccae563c47ced71c15660f8fea8aaead35cef36dec481f941cc2ae1185911ca0b801cf610310cacfd952b629165423910d68b6ca56ed778c79f4de50f7bb733a10c057be1980d50b7c29c6c69f1f0477d28cd27a44a28ca4fc0a12fcfc1e5db0b84cb65e750b6a0c6a517842591a4a02447e7051ba68b30223bdb3d1476bfb5eaeb0387f0616564d6be195cd5cea696d24bba5ff5f731e85a1b8d9142d302c7d01223f05d522dbd6c2ec07d778562ad21c33b0cd1e309831cdc90f09758639fcebed82019094ded6ec4d37b9f9b2e6e63db4502884014c7c0aeee35c1a85d60f0ccb949247025321bd8690da38056175726101011cdb4c9843a55df806824d95ff9039c8256314875758f90aa886583755cd726627c5c21404abd47b28b3d1a9c53ba1329d3b1fa14a32e3311445765e050edc83000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2058, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bdb5334ffb7cee19c0a080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2091, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bddcd36bd16bca7fe2b080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2093, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bdf9ffad132ed49ba2d080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2026, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0xacbb3d0a662f11b53bee55c592de298cd4d4eaa7fbef3fadee70be2bb9db2b17faf5e000130097212616d6d0fd078a05a36296a9d627e07508fb2296722415d732350d7f1f4dc0b5fd4dfb0028ef8d79fd16a6f94b3785eb1276a2d9e619d23727eb558108066175726120345d7008000000000561757261010106a42d999b0044a3a7c14b166255a38c87a9a01a73b1980f2156947659b5b119aab283c09fe17569f018a520513a1d46c1e5fda2bfaa23b88412df6028646d8a", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bdfdbdd688e7be47bea070000", + "value": "0x000000e902acbb3d0a662f11b53bee55c592de298cd4d4eaa7fbef3fadee70be2bb9db2b17faf5e000130097212616d6d0fd078a05a36296a9d627e07508fb2296722415d732350d7f1f4dc0b5fd4dfb0028ef8d79fd16a6f94b3785eb1276a2d9e619d23727eb558108066175726120345d7008000000000561757261010106a42d999b0044a3a7c14b166255a38c87a9a01a73b1980f2156947659b5b119aab283c09fe17569f018a520513a1d46c1e5fda2bfaa23b88412df6028646d8a000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2101, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bf7f7e146c4af733935080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2006, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": { + "headData": "0xdcd5a05f50e27394877b0338870c15b4aa77931159b90acea3b5a379c72b785262a82401c3cda6067a0f3837db7e6bb1a4d386f7adcd6b9be66a9d1931019fe2c8194ec1ac5f0140e3898bbb50d518600e6495db22868d502bf0e2af0a1ae73f2689a61310066175726120345d700800000000045250535290166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729fea14a040466726f6e890201869fa7fbe9f0a8c681177f8f7f70cbff2037ef46b6a698b52d9ceca53ad7357b10680c1f393c6166fbdcc94c05e564547afe1fe2f1f0f3f06fc59b4889f6f2b4cd07b52874e8a7462d7924bd32f2091d5d456ea2b75ed47b2f0bfbf472fa65f434489dfe90ecf1e94f0cd309c868abeb93759297166bb300af2c56a72bd13378fbb1b8ea3dfe724c8498d749cabcdb7c00660cfcd8219a543757cd8476fb2c84880561757261010140485f3b47156f052f984412d32e5c8138dfdb42dff404a6da60679dcc0b797cd33d58d0123780949caa3c6d6145081aace0355aedfe78699c40b5a589d5878a", + "horizontalMessages": [], + "hrmpWatermark": 17999999, + "newValidationCode": null, + "processedDownwardMessages": 0, + "upwardMessages": [], + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bfcbb81823589d77dd6070000", + "value": "0x0000003506dcd5a05f50e27394877b0338870c15b4aa77931159b90acea3b5a379c72b785262a82401c3cda6067a0f3837db7e6bb1a4d386f7adcd6b9be66a9d1931019fe2c8194ec1ac5f0140e3898bbb50d518600e6495db22868d502bf0e2af0a1ae73f2689a61310066175726120345d700800000000045250535290166eeedbdd65a6e441a937460cf36095b37ca1441f307ebe79ecf0e5ba830729fea14a040466726f6e890201869fa7fbe9f0a8c681177f8f7f70cbff2037ef46b6a698b52d9ceca53ad7357b10680c1f393c6166fbdcc94c05e564547afe1fe2f1f0f3f06fc59b4889f6f2b4cd07b52874e8a7462d7924bd32f2091d5d456ea2b75ed47b2f0bfbf472fa65f434489dfe90ecf1e94f0cd309c868abeb93759297166bb300af2c56a72bd13378fbb1b8ea3dfe724c8498d749cabcdb7c00660cfcd8219a543757cd8476fb2c84880561757261010140485f3b47156f052f984412d32e5c8138dfdb42dff404a6da60679dcc0b797cd33d58d0123780949caa3c6d6145081aace0355aedfe78699c40b5a589d5878a000000007fa81201", + }, + }, + { + "parsed": { + "key": [ + 2013, + ], + "method": "pendingAvailabilityCommitments", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded50433e4ed72dccf0edcf58c3192f16e4bfd3c4eac5d2f7717dd070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 224, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6001ee3d29e983c26e0000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 245, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6004e693f7c714983f5000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 288, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6005d69c036bcb52320010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 210, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca600bb2d2a5b09655dd2000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 30, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca601cfe8bf76ba27f01e000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 196, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca601f2ce7c23a494b2c4000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 168, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca602a3436cf474e57ba8000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 173, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca602a829faad94b351ad000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 206, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60330995773231af3ce000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 54, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60381a5fc457aa15c36000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 138, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca603c5963d865e449e8a000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 107, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60482d0ba5ddf7dbd6b000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 293, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca604c540ca8b42cd2225010000", + "value": "0xec000000000000010080a81201", + }, + }, + { + "parsed": { + "key": [ + 40, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca604c5c8b4e6df936d28000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 125, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60561a4a99c76db707d000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 137, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60589cecd2d8e195f89000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 275, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca607037fd957d524e613010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 112, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60862e4aa4debf9d670000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 98, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xcd0c00c598850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60916063c3c4b380762000000", + "value": "0xeccd0c00c59885010080a81201", + }, + }, + { + "parsed": { + "key": [ + 238, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca609817eca757b54f8ee000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 48, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6098c62a803faa4cc30000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 208, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x9004108518000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca609bd4a741e8892b9d0000000", + "value": "0xec900410851800000080a81201", + }, + }, + { + "parsed": { + "key": [ + 200, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60a31c34bd88c539ec8000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 282, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60a668d4efda742271a010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 247, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60add53c690df5174f7000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 215, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60c86255f8c1ddfd7d7000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 213, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60c986abb64e73797d5000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 64, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xcd0c14c598840100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60d54b59c80ee3d6140000000", + "value": "0xeccd0c14c59884010080a81201", + }, + }, + { + "parsed": { + "key": [ + 7, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60e0d969b0e48cab707000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 193, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60e2f981891b4f8a9c1000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 148, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca60e5df2fc0748d76494000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 252, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6103610acfced6316fc000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 267, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6107f1f649a225d5f0b010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 268, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca61081a1ce996d8eb90c010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 172, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca614421929a4042159ac000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 134, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca616edf70ea8b9044786000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 158, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca617a2ab4a7d90f4b99e000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 35, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca617a97cdde594c82e23000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 223, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca61a43b3983aabead7df000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 37, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca61a87dce6c74c4c4b25000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 66, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca61ab831b37c29790042000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 270, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca61b97d8ba0503f2d50e010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 162, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca61c09810d240304dea2000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 87, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca61dbdd9e89b24ae1c57000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 183, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000400000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca61dc955277d5eb046b7000000", + "value": "0xec000000040000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 96, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca61dd4d0e2f032f8fb60000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 273, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca61e0afc914fe4fafa11010000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 20, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca61f0e76f06ebd150314000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 165, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca62020cf1c296e4a67a5000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 143, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca620681fdf10c145f78f000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 266, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca62127ee6ce27edae00a010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 237, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca62291a27e2f1d000bed000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 203, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca622ea0f336a6bcb87cb000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 97, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca623cca24f559b81f161000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 163, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca623ef1efc427c2b99a3000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 128, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca625e1819f9e05336580000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 144, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca626ae334d66562f1490000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 113, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6287f35c1bce2527871000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 92, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca62899714fc5c21da95c000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 232, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca62a90c4114d745bf0e8000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 123, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca62a9a1a82315e68fd7b000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 38, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c10c19c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca62c1954dd9f53cf8c26000000", + "value": "0xecdd0c10c19c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 88, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xcd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca62c3b5f9185eb807358000000", + "value": "0xeccd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 122, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xcd0c14c59c840100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca62cd90f46f29e0d277a000000", + "value": "0xeccd0c14c59c84010080a81201", + }, + }, + { + "parsed": { + "key": [ + 145, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca62df3b7464cc2bfdb91000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 272, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca62e1f6856c5cd457510010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 78, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca62f48917b575ca3da4e000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 139, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6301fc4fbc2bc2b228b000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 62, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca630988731014ffd2c3e000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 13, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca63135383ae310c5170d000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 63, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca63190644d464b2ada3f000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 257, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6325933a17a5b4f1101010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 83, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca633d703a71c18388a53000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 26, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca634f85e685c16504e1a000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 91, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x8000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca63525d85e1a2f8d065b000000", + "value": "0xec800000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 243, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca63541f75d529325ecf3000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 129, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca636964e53ce2839ed81000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 181, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca637e59265ac2e9291b5000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 57, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca638a35891bef7ae6139000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 81, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca63909bec0ea9167f851000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 104, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6399c69463d4e60f368000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 5, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca639b9d2792f8bd4c305000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 233, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca639dfcbc2eacd4f88e9000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 160, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca63c83a9ec15ae6f9ba0000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 121, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca63c9dfb45f99d82a479000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 41, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca63cc9c353c0737ed329000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 74, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca63cde7397d1da2f934a000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 44, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca63e1f6295e49ed2492c000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 52, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0100000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6401b534b9db2069d34000000", + "value": "0xec010000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 99, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64155c2a66f0d62cb63000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 100, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64213c2713e48b45264000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 211, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64378c70cce0d43ccd3000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 231, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64387760e65b6539de7000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 188, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca643f31ad93e9ad149bc000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 167, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6467b53ca2e752700a7000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 8, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0c00008190000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca647ab1c010b3bff4908000000", + "value": "0xec0c0000819000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 59, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca647d3e11458bdb7d23b000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 55, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca647e71e8bab8df16b37000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 236, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64a3e97ea711db784ec000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 135, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64ba06ff3bf597bf487000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 171, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64c214877df3c00b9ab000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 131, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64cdd483a79f00fff83000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 106, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64d0211a3e928f50f6a000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 89, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64d2e391cb054825c59000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 254, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64e8fa131354ef557fe000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 75, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64e9f0caa17b4771b4b000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 142, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64f438e3b1a5b4dfe8e000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 201, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64fd7c72ab42c4238c9000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 33, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca64fff66b7ca63162821000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 39, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca65056c834eadafc6027000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 72, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x1000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca650cd454046f82f9a48000000", + "value": "0xec100000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 1, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca65153cb1f00942ff401000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 153, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000100000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6519745917af9dff299000000", + "value": "0xec000010000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 204, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca65197fcc7df907ce3cc000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 120, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca651ed4d51ab5cba8d78000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 116, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca652e8ae64909616ff74000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 101, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca65439c96feb48203e65000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 19, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6549892d44badd6af13000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 261, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca655fe77021fe1a0d505010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 226, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6560dc49d887d6812e2000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 276, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6565aae0267dd48c514010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 156, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca656edc5a9473024eb9c000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 71, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0800000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6571b7388d1b4acc847000000", + "value": "0xec080000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 263, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6575ea2109e2d8b3f07010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 45, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca657cc9d27e0a04ef82d000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 127, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca658fa8eff526098f17f000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 259, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca659321078a3b4f01b03010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 9, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6598b52bf1678443909000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 117, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca65a1aab8e72799bf775000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 198, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca65b32c27132d89ca3c6000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 194, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca65ca7f6aacd254d02c2000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 219, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca65d088a4a6df74c0bdb000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 105, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca65d2f0f204589620669000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 250, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000080000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca65f71fd6514a35b52fa000000", + "value": "0xec000000008000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 209, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6608d1032f7e28ac1d1000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 146, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca661e46558a675eb3192000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 202, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca662037dbc6e7d5a27ca000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 217, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca66279ef4a0e5dd0c4d9000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 70, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6648f1513cb50220646000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 222, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6654a6f1fa3c1bd27de000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 242, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca665fdc552d371f266f2000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 16, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca666ccada06515787c10000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 176, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca669169415a33cec6cb0000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 67, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0800000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6696e51c7f40142a143000000", + "value": "0xec080000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 291, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca66a242eb2c755ae0d23010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 53, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xd900008508840100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca66a5a72f5787cb1a035000000", + "value": "0xecd90000850884010080a81201", + }, + }, + { + "parsed": { + "key": [ + 14, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca66b25ca40f14443730e000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 180, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca66b4ca0db77738bd6b4000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 43, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca66bedfbd1761799352b000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 192, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca66c49e6308ca61c72c0000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 230, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca66f05a74cdad48a2de6000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 280, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca670cacdda3888487418010000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 31, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6724ecfc48eeb4c4c1f000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 225, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca673e82fa62461c68ee1000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 21, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca674e76a9656c0445715000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 79, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca675f476545300866c4f000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 175, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca67705bad421a9be60af000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 126, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca67803dd848370fe027e000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 108, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca679657c45bd3b0e4d6c000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 15, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca67bed79b7ec00219e0f000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 286, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca67c0ba8972aa9b7ab1e010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 271, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca67d99af8d7d6054b20f010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 218, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca67dded0dee2fc9898da000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 118, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca67f11a3dfff90718376000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 169, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca67f3a36b8ae84940ba9000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 295, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca67f7df985518de74827010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 47, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca67faf5aee76b6da942f000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 290, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6805cdf512c8994b622010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 132, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca680713696e38424d684000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 189, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca682be121594ba087ebd000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 141, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca683dcc0d7df43781c8d000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 85, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6845232b38c69c55b55000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 220, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6858f760905c8df5ddc000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 195, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca686dd2d720532700fc3000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 24, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca687351b19f226feaa18000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 197, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca687a11d05bacd22a9c5000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 133, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca687ac0caf8efaadb885000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 77, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6882549884eecaf5b4d000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 277, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x480414c400040100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6887cac01b5113abb15010000", + "value": "0xec480414c40004010080a81201", + }, + }, + { + "parsed": { + "key": [ + 130, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6891b000d5696f46882000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 248, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6891d99968ebcd508f8000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 110, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca689766995d6f5fddd6e000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 124, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6897e45746596be907c000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 265, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca68a7bb32eef2958e009010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 49, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca68e233f9722d30ebf31000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 278, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca69236a0b83f35b8cd16010000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 228, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6923e6cf1315208f9e4000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 22, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6926f3965faf45f0f16000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 51, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6926fee72d371f90b33000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 294, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca694691804dcd26f2826010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 65, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca696981f68b97df47f41000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 103, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca697a662163983bce167000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 90, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca697b3c130b5564d5d5a000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 149, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6987c55038b69758e95000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 177, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca69a4263c511c3b490b1000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 191, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca69bd8af7ca9687b43bf000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 221, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca69c68a96d0ee642eedd000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 166, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca69ccfcf0a9bf455f7a6000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 29, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca69d7a9a93920005ae1d000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 258, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca69dca24a0edd7e2fe02010000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 2, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca69eb2dcce60f37a2702000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 244, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca69fa42161901b855ff4000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 285, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6a34f2fb6a66ed7de1d010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 235, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xc108104098840100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6a3a7d57b97276db3eb000000", + "value": "0xecc10810409884010080a81201", + }, + }, + { + "parsed": { + "key": [ + 119, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6a492e1397828470f77000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 95, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6a4c0ca5d4ed90bc35f000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 283, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6a64bc66e5954c36d1b010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 10, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6a6b274250e6753f00a000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 214, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6a7dc728f61385843d6000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 61, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6a81526abea1f15b63d000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 27, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6a9ec63ce7d367c571b000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 241, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6a9f0218c1a9ba8c0f1000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 216, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6aa49fd608b4c4271d8000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 269, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x9008100580840000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6aa584b77bafb23f60d010000", + "value": "0xec900810058084000080a81201", + }, + }, + { + "parsed": { + "key": [ + 164, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6ab88ce53fd28697ba4000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 227, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000008000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6acb8e88fa4014703e3000000", + "value": "0xec000000000800000080a81201", + }, + }, + { + "parsed": { + "key": [ + 73, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6adb444df785313ea49000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 284, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6ae8f689ddebf7bc61c010000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 182, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6aebf2eacd574708cb6000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 58, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6b0a723b5515886f73a000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 28, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6b1ee89fbf5fe7bf01c000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 253, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6b25a11a9b236ec3efd000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 155, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6b26b3ae17416bd089b000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 157, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6b33958282cc4abe99d000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 93, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6b3d276a543d165445d000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 0, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6b4def25cfda6ef3a00000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 6, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6b61f803a716bd3b906000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 102, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0004000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6b6bd1edcc7dac77c66000000", + "value": "0xec000400000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 251, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6be5b9e0c598e56c9fb000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 11, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6be93d8a4ce7799c00b000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 3, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6bfb27f1eaef06bb903000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 179, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c13b9fb6292ded83b3000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 17, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c2d9675cf95dcf1a11000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 76, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c355d945662af3f54c000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 296, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c3e709fffe07ef1028010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 170, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c42ba4993a7fbafeaa000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 187, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c42e3c3d2db6203bbb000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 240, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c438538e2acf53baf0000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 154, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c57362b8b4d771509a000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 289, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c712dc6b7497cca421010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 18, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c8ea158dbfc2e1de12000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 178, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c91bbc7610fef554b2000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 159, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c9731785511061519f000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 151, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6c9fa7a5c585e377b97000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 56, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6caf0427aaa15e6e138000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 136, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6cc0f1135b9d1e9de88000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 68, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0800000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6cd70660717b7e77744000000", + "value": "0xec080000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 82, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6cda7b154ae2c3eac52000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 255, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6cefa03519a5301f4ff000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 185, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000400000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d1e1f3c7fc89a1d7b9000000", + "value": "0xec000000040000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 23, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d3f163007fa5a70017000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 262, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d4cf5ba2b988238a06010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 205, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d63004a43b8387afcd000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 84, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d7270f195e2e239e54000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 69, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0800000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d7b01ffae5405ae545000000", + "value": "0xec080000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 279, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d7b8783dc06df40f17010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 140, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d80313393b220a378c000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 239, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d8034653c363a11bef000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 86, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d914fc1bc25c1a0256000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 80, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d91adf0979c61e5050000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 114, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d93946f5c544421672000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 111, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d981b8668e11ddfd6f000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 4, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6d9c986912843223804000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 274, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6daa046256bea4d2712010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 34, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6dca155a227f42ece22000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 264, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6dd2cba68936a5b0708010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 207, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000008000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6dd836312fb365b00cf000000", + "value": "0xec000000800000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 287, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6df94c39c87f1475b1f010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 32, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6dfcda15e347d758120000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 94, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6e420dc6e976795f45e000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 234, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000010000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6e665a23078ecc014ea000000", + "value": "0xec000000001000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 184, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6e731c0a18737cf65b8000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 25, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6e99190c148ccde2019000000", + "value": "0xec000000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 115, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6e9af243d408b254873000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 186, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6ea422283583e6e61ba000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 229, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6eb1bb771c0630704e5000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 281, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6ec6019c65fc7236b19010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 292, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6ec84b960684aeb2624010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 212, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6ed24af7104d669add4000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 256, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0000000000010000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6ef42226ba1a05d9d00010000", + "value": "0xec000000000001000080a81201", + }, + }, + { + "parsed": { + "key": [ + 12, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6ef8763d79d01484e0c000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 161, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x1000000000000000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6efa9f374b4fad8b4a1000000", + "value": "0xec100000000000000080a81201", + }, + }, + { + "parsed": { + "key": [ + 260, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6efffa254e947924904010000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 60, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6f074d8ea3f6de8f43c000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 42, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6f10bc52fb6d756d72a000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 36, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6f1fc507d3bfbfd3f24000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 249, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6f22c644d13bf5496f9000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 152, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6f305066fbf6c5f4b98000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 46, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0c00000000810000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6f35b7abb205636532e000000", + "value": "0xec0c0000000081000080a81201", + }, + }, + { + "parsed": { + "key": [ + 50, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6f36341bfbb0a4e9232000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 199, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0x0804008400850000", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6f539269c6ccb67f2c7000000", + "value": "0xec080400840085000080a81201", + }, + }, + { + "parsed": { + "key": [ + 246, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6f722d7b9dfcab193f6000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 109, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6f7c97061631b62386d000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 190, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6fb4eac7c31e48cf5be000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 147, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6fbab4031017458e593000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 174, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xdd0c14c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6fc88e2c4af25ceabae000000", + "value": "0xecdd0c14c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 150, + ], + "method": "availabilityBitfields", + "section": "paraInclusion", + "value": { + "bitfield": "0xcd0c10c59c850100", + "submittedAt": 18000000, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded54c41cbd797546e5290a95ef20a38bca6ff636379a6216c2396000000", + "value": "0xeccd0c10c59c85010080a81201", + }, + }, + { + "parsed": { + "key": [ + 2094, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x0000000000000000000000000000000000000000000000000000000000e00300000000000000", + "backingGroup": 47, + "core": 37, + "descriptor": { + "collator": "0xe483d298c8d6302c3cf9f682648e6033e0891910706428c3cfdd444423ecc607", + "erasureRoot": "0xbbd4abb1d91cfc8ae2aa516631ca8ddd1e16a17a6961dcb5b8eb209d74361e0e", + "paraHead": "0x82c3e2e211eb9bc74d5a54b9b1f5e69bb81b0ebf552a9fa1b43433b8a97649aa", + "paraId": 2094, + "persistedValidationDataHash": "0x4ab643be90b01dd56b1f99357d96fdfc1b65d341967078aee1dfdb26e0a52db5", + "povHash": "0x75331f761a6f3291bb0d0d7b6865867ee996b6400333d9582eacfbbc0b629e05", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xbe4377fe3f2fa565c30e1cb6e5d2596e00f52a92087b97125aedada86e5ec6448ebe7c88b36654938ea652c189c0cb7f326f8e3f935df8a2164dbb91219cef89", + "validationCodeHash": "0x1915b12af1b41674612e52d554ff1e56c5c0a4e8ff66a1d10eed853432d35803", + }, + "hash": "0xf65d234f1041662fb945181b5fc7b90f6859a7422a155f339c9fa04400114003", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865071ceff5b0f64d362e080000", + "value": "0x25000000f65d234f1041662fb945181b5fc7b90f6859a7422a155f339c9fa044001140032e08000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fde483d298c8d6302c3cf9f682648e6033e0891910706428c3cfdd444423ecc6074ab643be90b01dd56b1f99357d96fdfc1b65d341967078aee1dfdb26e0a52db575331f761a6f3291bb0d0d7b6865867ee996b6400333d9582eacfbbc0b629e05bbd4abb1d91cfc8ae2aa516631ca8ddd1e16a17a6961dcb5b8eb209d74361e0ebe4377fe3f2fa565c30e1cb6e5d2596e00f52a92087b97125aedada86e5ec6448ebe7c88b36654938ea652c189c0cb7f326f8e3f935df8a2164dbb91219cef8982c3e2e211eb9bc74d5a54b9b1f5e69bb81b0ebf552a9fa1b43433b8a97649aa1915b12af1b41674612e52d554ff1e56c5c0a4e8ff66a1d10eed853432d35803a5040000000000000000000000000000000000000000000000000000000000000000000000000000a5040000000000000000000000000000000000000000000000000000000000e003000000000000007fa8120180a812012f000000", + }, + }, + { + "parsed": { + "key": [ + 2040, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x00000000000000000000000000000000000000007c0000000000000000000000000000000000", + "backingGroup": 32, + "core": 22, + "descriptor": { + "collator": "0xa604c6cd403daac04dc0c95fd573fbfc54f6359db5c549d626222973c88e9245", + "erasureRoot": "0x6d9dea464c880e6827b5f1c72acdb47fe7f7dd3b6764849023e5d7db2a8b40f4", + "paraHead": "0x3aae124bec893c6d9588b4a9a0dc592d1be3a41e8061c0673b2b244175afe450", + "paraId": 2040, + "persistedValidationDataHash": "0x4d69f9a5781d13c28b8355f96ced9f8623a5f165463c96e93269d54a910f8386", + "povHash": "0xa6b7d9a03eb71f39409558b24f8461837ffae480f56d8c87a252e91bd2674ba4", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x8cb5ea510c06ecc1561aafd614de19cdb0c812fb77f0f06be0a3b614c1bfe005c9f5e5a43ca9a2d62a6d9aa032f5b054c1167ea2e0a323eb2eeda7278adbc888", + "validationCodeHash": "0x22c6a3c71603225c485cd7bca887833449b3ad4578d440f2bb4bc8722a6e9e04", + }, + "hash": "0x994aa5607b1f46e51604b3fa17a8b02d64c48bbaeacca581ef9fdc8feac92456", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c8650f474ee85a3cd622f8070000", + "value": "0x16000000994aa5607b1f46e51604b3fa17a8b02d64c48bbaeacca581ef9fdc8feac92456f807000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fda604c6cd403daac04dc0c95fd573fbfc54f6359db5c549d626222973c88e92454d69f9a5781d13c28b8355f96ced9f8623a5f165463c96e93269d54a910f8386a6b7d9a03eb71f39409558b24f8461837ffae480f56d8c87a252e91bd2674ba46d9dea464c880e6827b5f1c72acdb47fe7f7dd3b6764849023e5d7db2a8b40f48cb5ea510c06ecc1561aafd614de19cdb0c812fb77f0f06be0a3b614c1bfe005c9f5e5a43ca9a2d62a6d9aa032f5b054c1167ea2e0a323eb2eeda7278adbc8883aae124bec893c6d9588b4a9a0dc592d1be3a41e8061c0673b2b244175afe45022c6a3c71603225c485cd7bca887833449b3ad4578d440f2bb4bc8722a6e9e04a5040000000000000000000000000000000000000000000000000000000000000000000000000000a50400000000000000000000000000000000000000007c00000000000000000000000000000000007fa8120180a8120120000000", + }, + }, + { + "parsed": { + "key": [ + 2035, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x000000000000000000000000000000000000f800000000000000000000000000000000000000", + "backingGroup": 29, + "core": 19, + "descriptor": { + "collator": "0x7add50f4a537b69ac1a069d85b5969dc4e6f14f13311e994e43c88a5ca3d820e", + "erasureRoot": "0xf5f2f4a0445de28aae256a5f87cc0760ea20927546ed3d53bab217b075ebe949", + "paraHead": "0x5c74c1d74eaf9016d26cb67c176304788e2178174bcd66f53924a414879d6757", + "paraId": 2035, + "persistedValidationDataHash": "0xfd271daba2d9fb590142bce6868cbbbd0fec95e917c44b63ccb0a7fcf7d40715", + "povHash": "0x98ee2d22502c68e527b45e0a035382056681cd69c109be3fc90a14a3e1575d16", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x862b0380bc529ea6ddd75c61a3a64b0d5b9138e670a65c5a9a6ff89a28071070d085f985bfb55e22f5ccec11dea0f01ecbde3162545f463a4e53c30c119d5184", + "validationCodeHash": "0xc422ab75036b13335d16daf8eb4ac486673b5ba987b47f3b3073d277415f15b8", + }, + "hash": "0xd0c50adb90e03dea9e56ee1cc567af143d3b65b242e54934d7ee6dcbb5adb812", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865160394315fe95b98f3070000", + "value": "0x13000000d0c50adb90e03dea9e56ee1cc567af143d3b65b242e54934d7ee6dcbb5adb812f307000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd7add50f4a537b69ac1a069d85b5969dc4e6f14f13311e994e43c88a5ca3d820efd271daba2d9fb590142bce6868cbbbd0fec95e917c44b63ccb0a7fcf7d4071598ee2d22502c68e527b45e0a035382056681cd69c109be3fc90a14a3e1575d16f5f2f4a0445de28aae256a5f87cc0760ea20927546ed3d53bab217b075ebe949862b0380bc529ea6ddd75c61a3a64b0d5b9138e670a65c5a9a6ff89a28071070d085f985bfb55e22f5ccec11dea0f01ecbde3162545f463a4e53c30c119d51845c74c1d74eaf9016d26cb67c176304788e2178174bcd66f53924a414879d6757c422ab75036b13335d16daf8eb4ac486673b5ba987b47f3b3073d277415f15b8a5040000000000000000000000000000000000000000000000000000000000000000000000000000a504000000000000000000000000000000000000f8000000000000000000000000000000000000007fa8120180a812011d000000", + }, + }, + { + "parsed": { + "key": [ + 2086, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x0000000000000000000000000000000000000000000000000000f00100000000000000000000", + "backingGroup": 42, + "core": 32, + "descriptor": { + "collator": "0x56d9deb60ec47ab2da0e4b08840d613d143dc6202d86a2a4ff1daeca55d0f30d", + "erasureRoot": "0x899c10b9c1c1a4d24f51d969792dd8c2b6a4b2dab5854079a2e128d80ecb9fa2", + "paraHead": "0x5a4c852abcdc4c60b2a6da1f0a1da29f2dc4521f31642773a84f36659cecf900", + "paraId": 2086, + "persistedValidationDataHash": "0xa1e2c868f5b4a5c982ada0bca8c204183a885374bbfc7a2ec325aa2454e98ebb", + "povHash": "0x5809b3d9c380b38f388b8d017441cffea65985570434ba49c2096b06d7c28de4", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x7280dbafdb1e6dc0b1cf0eb65511119d33304392a2a3dec87c051e14e16f527b785aca558f0248a09040c626a77e37677cc360fda33ae9b4b77585d523e97d8e", + "validationCodeHash": "0xc617bbd6231c429151c03b859a19e92831a7b4bc14b12cc5a9a6f9be99be677f", + }, + "hash": "0xc77e9aa4b116a7f8b622b83635ce67db05d93dcab54e53936ad8b2ad9e2b69d8", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c8652c0cfd6c23b92a7826080000", + "value": "0x20000000c77e9aa4b116a7f8b622b83635ce67db05d93dcab54e53936ad8b2ad9e2b69d82608000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd56d9deb60ec47ab2da0e4b08840d613d143dc6202d86a2a4ff1daeca55d0f30da1e2c868f5b4a5c982ada0bca8c204183a885374bbfc7a2ec325aa2454e98ebb5809b3d9c380b38f388b8d017441cffea65985570434ba49c2096b06d7c28de4899c10b9c1c1a4d24f51d969792dd8c2b6a4b2dab5854079a2e128d80ecb9fa27280dbafdb1e6dc0b1cf0eb65511119d33304392a2a3dec87c051e14e16f527b785aca558f0248a09040c626a77e37677cc360fda33ae9b4b77585d523e97d8e5a4c852abcdc4c60b2a6da1f0a1da29f2dc4521f31642773a84f36659cecf900c617bbd6231c429151c03b859a19e92831a7b4bc14b12cc5a9a6f9be99be677fa5040000000000000000000000000000000000000000000000000000000000000000000000000000a5040000000000000000000000000000000000000000000000000000f001000000000000000000007fa8120180a812012a000000", + }, + }, + { + "parsed": { + "key": [ + 2032, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x00000000000000000000000000000000003e0000000000000000000000000000000000000000", + "backingGroup": 27, + "core": 17, + "descriptor": { + "collator": "0x9247e05ea9167e413d53cfbb6d2425fa4a7e587045ffe59e5cb12292414d9d40", + "erasureRoot": "0xda544a2cce6b1e099a76c09f21812f529bd3f03391b8acbb4382ccd0ef055884", + "paraHead": "0x951923807ea792b7647f6364b6a16a4805f5e41903e1d94938c9100e4c1ae79c", + "paraId": 2032, + "persistedValidationDataHash": "0x7d9335a339900ab6319773c33d71553e44201601b6a86f65c96dc8f2d57dc808", + "povHash": "0xf710d8cf9d853272d9582f36cbfc0f5462a0a88a3d829d246bb8b962de694682", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xfe6aacb297f282bfa876b8f8a7b46183f140c1081432784496b908096692736d57b1f24ad23a9018cb4b8aed5e1c1c507a4e1c89c4a25fc1e9dcbfc8c36baf88", + "validationCodeHash": "0xb9f8cb5040d1bbf541e0909a87a87b7101a8a43ad43eee2a62f712a8a2fad707", + }, + "hash": "0x2db65cf1b75936539af5287d2e1d9fc00ea379995178c8c5c69a130d3386674b", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865302b2165312d890ff0070000", + "value": "0x110000002db65cf1b75936539af5287d2e1d9fc00ea379995178c8c5c69a130d3386674bf007000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd9247e05ea9167e413d53cfbb6d2425fa4a7e587045ffe59e5cb12292414d9d407d9335a339900ab6319773c33d71553e44201601b6a86f65c96dc8f2d57dc808f710d8cf9d853272d9582f36cbfc0f5462a0a88a3d829d246bb8b962de694682da544a2cce6b1e099a76c09f21812f529bd3f03391b8acbb4382ccd0ef055884fe6aacb297f282bfa876b8f8a7b46183f140c1081432784496b908096692736d57b1f24ad23a9018cb4b8aed5e1c1c507a4e1c89c4a25fc1e9dcbfc8c36baf88951923807ea792b7647f6364b6a16a4805f5e41903e1d94938c9100e4c1ae79cb9f8cb5040d1bbf541e0909a87a87b7101a8a43ad43eee2a62f712a8a2fad707a5040000000000000000000000000000000000000000000000000000000000000000000000000000a50400000000000000000000000000000000003e00000000000000000000000000000000000000007fa8120180a812011b000000", + }, + }, + { + "parsed": { + "key": [ + 3333, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c86538de339bbfcd5144050d0000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2051, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c8653a35dd60021a6f6a03080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2039, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x00000000000000000000000000000000000000e0030000000000000000000000000000000000", + "backingGroup": 31, + "core": 21, + "descriptor": { + "collator": "0xe0b5632409e78aba11d0d559c96acff0247194879afad0741ae3848f61e74a02", + "erasureRoot": "0x6c32d1e9b020d2d3f4f7a6aef673a941cc291070f4dd4f0919cc3a850f4a8b98", + "paraHead": "0x6270b82484129fa3e8f808c3bda80bf9614ef5017af435e7ff50de5a68a82cd4", + "paraId": 2039, + "persistedValidationDataHash": "0xd80d8aa66b597caadddfccd30c47f99649a55db09807ad5e44cfc0a9b2d6614a", + "povHash": "0xbcf9b988987fd02dea4733fa454e6d20464e372367f530b49080c7cf321c80f7", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xc08bf278544c6d723e25b49c8226696af983e63b170f79c5ad87fcca5079e973557b3554a3236f6855114e4f626133a0965dae5de52d8e2b8e7f405c2909108a", + "validationCodeHash": "0x088b3f2153fdc8dedb22d5984ca5773ab7e794d3a9a6f700d1fdac1e54ca83a9", + }, + "hash": "0xe08a2cdb7955f00a0fb381f87989e0f9b1604d961b8b254e17d6ad911758ced2", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865451f0507c3963d8df7070000", + "value": "0x15000000e08a2cdb7955f00a0fb381f87989e0f9b1604d961b8b254e17d6ad911758ced2f707000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fde0b5632409e78aba11d0d559c96acff0247194879afad0741ae3848f61e74a02d80d8aa66b597caadddfccd30c47f99649a55db09807ad5e44cfc0a9b2d6614abcf9b988987fd02dea4733fa454e6d20464e372367f530b49080c7cf321c80f76c32d1e9b020d2d3f4f7a6aef673a941cc291070f4dd4f0919cc3a850f4a8b98c08bf278544c6d723e25b49c8226696af983e63b170f79c5ad87fcca5079e973557b3554a3236f6855114e4f626133a0965dae5de52d8e2b8e7f405c2909108a6270b82484129fa3e8f808c3bda80bf9614ef5017af435e7ff50de5a68a82cd4088b3f2153fdc8dedb22d5984ca5773ab7e794d3a9a6f700d1fdac1e54ca83a9a5040000000000000000000000000000000000000000000000000000000000000000000000000000a50400000000000000000000000000000000000000e00300000000000000000000000000000000007fa8120180a812011f000000", + }, + }, + { + "parsed": { + "key": [ + 2008, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c8655f9d7e46afdef838d8070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2000, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c86563f5a4efb16ffa83d0070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2092, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c8656e28b8ad2696ed532c080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2030, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x000000000000000000000000000000800f000000000000000000000000000000000000000000", + "backingGroup": 25, + "core": 15, + "descriptor": { + "collator": "0x86b64734fc2f4a78b337e299a52666297e4c6e9f373cd056df2a0d4cc0cd1725", + "erasureRoot": "0x441c9a1987786142e22a392cd72eb45c0e3b7c9dc48e6d715ae7103c252478e8", + "paraHead": "0x8699e8765c1aec206e0d80f31dbc735346a3f1d5479ff4584e91889c06fc6e7b", + "paraId": 2030, + "persistedValidationDataHash": "0x7b2072cb946ea7011c0f07d3747825e1d5a7f257d83ed7b53789c90ad59457c6", + "povHash": "0x0f691c2555cc87c53e82c67eab26a2a55fff5c856dc8539b1d330bbc8034f725", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x1c0acec361273e23654a4b0cdbbffc7c756f607892038ed79f8a9ecd286c877ec0bf774ec74e6df0b5e692d12e92baea93a7e696e2469d3fd7d881765fb0ed8f", + "validationCodeHash": "0x9b0320f665e103a6b614b812c6fa1569e2c7b53c4c98c5eee9e0fd126afef95a", + }, + "hash": "0x9096ab78db3399288bcc500c8c53ede24ba4d3b9509d70074b4a480df272c6d4", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c86581004131e62a7368ee070000", + "value": "0x0f0000009096ab78db3399288bcc500c8c53ede24ba4d3b9509d70074b4a480df272c6d4ee07000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd86b64734fc2f4a78b337e299a52666297e4c6e9f373cd056df2a0d4cc0cd17257b2072cb946ea7011c0f07d3747825e1d5a7f257d83ed7b53789c90ad59457c60f691c2555cc87c53e82c67eab26a2a55fff5c856dc8539b1d330bbc8034f725441c9a1987786142e22a392cd72eb45c0e3b7c9dc48e6d715ae7103c252478e81c0acec361273e23654a4b0cdbbffc7c756f607892038ed79f8a9ecd286c877ec0bf774ec74e6df0b5e692d12e92baea93a7e696e2469d3fd7d881765fb0ed8f8699e8765c1aec206e0d80f31dbc735346a3f1d5479ff4584e91889c06fc6e7b9b0320f665e103a6b614b812c6fa1569e2c7b53c4c98c5eee9e0fd126afef95aa5040000000000000000000000000000000000000000000000000000000000000000000000000000a504000000000000000000000000000000800f0000000000000000000000000000000000000000007fa8120180a8120119000000", + }, + }, + { + "parsed": { + "key": [ + 2104, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865890bbf94976e240b38080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2046, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c8658bd977dcdc787ab9fe070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 3345, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c8658f6ccad3d833b8c4110d0000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 3340, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x00000000000000000000000000000000000000000000000000000000000000000000e0030000", + "backingGroup": 55, + "core": 45, + "descriptor": { + "collator": "0xe816db14581022097b59fc0ab855bf196d2028f78b6bb4589bf61271a52ef361", + "erasureRoot": "0x88693437a521bcfc422987d1372b397df4b218303aee529ab9a9eb62b507dea4", + "paraHead": "0xf646baddeafa3e194f58798af1ea362145ff3bad8f8a1a86ef1e57e9e6511ff8", + "paraId": 3340, + "persistedValidationDataHash": "0x5285f73141c251077d1f2b7436568f0c2f2d7aa74f0337d4a3c5117c1f4de4c6", + "povHash": "0xfcee3417f04ce21d7cdad1998c5feadc186c152b1c5df4943b0cf15bab149c8d", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xfaebbe677cb3739dbabf8cade29998523c2d031b6b96a2b8141522a5fc94862d664b32fcba8854e47d93a165c8d8c1f0632711ca0845bf7c9fb7fdfd8749bd8f", + "validationCodeHash": "0x30e9606177112b9f3a6272515b9c2073309b18549a1c09bbf37bbcf6cd2ed6bf", + }, + "hash": "0x28d40f91ed31bd982efc026bafff8691c8388310b06e6b7bce9161b2bf9220a6", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c86597463f617b300a4f0c0d0000", + "value": "0x2d00000028d40f91ed31bd982efc026bafff8691c8388310b06e6b7bce9161b2bf9220a60c0d000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fde816db14581022097b59fc0ab855bf196d2028f78b6bb4589bf61271a52ef3615285f73141c251077d1f2b7436568f0c2f2d7aa74f0337d4a3c5117c1f4de4c6fcee3417f04ce21d7cdad1998c5feadc186c152b1c5df4943b0cf15bab149c8d88693437a521bcfc422987d1372b397df4b218303aee529ab9a9eb62b507dea4faebbe677cb3739dbabf8cade29998523c2d031b6b96a2b8141522a5fc94862d664b32fcba8854e47d93a165c8d8c1f0632711ca0845bf7c9fb7fdfd8749bd8ff646baddeafa3e194f58798af1ea362145ff3bad8f8a1a86ef1e57e9e6511ff830e9606177112b9f3a6272515b9c2073309b18549a1c09bbf37bbcf6cd2ed6bfa5040000000000000000000000000000000000000000000000000000000000000000000000000000a50400000000000000000000000000000000000000000000000000000000000000000000e00300007fa8120180a8120137000000", + }, + }, + { + "parsed": { + "key": [ + 2011, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x0000000000000000000000f00100000000000000000000000000000000000000000000000000", + "backingGroup": 18, + "core": 8, + "descriptor": { + "collator": "0x36fec74c47ae63e590c30bdcd2ad61421f53ecfeec62a087406d8bc7089d877a", + "erasureRoot": "0x6e2237470f29cb7849760a2508187989e89958cc6f9b072cf5b7e64d34eba82e", + "paraHead": "0x7443c966c47bee5add41aac1411ed51c7bf7bda5d3f013de6b2f49d2bbb18883", + "paraId": 2011, + "persistedValidationDataHash": "0xbf42ad0cb9cde1af904808e33f105cd938583cb5f70b1d49d7457e99fa7d43ef", + "povHash": "0xae9b745110d9a833b2c0b2d8d40a6750471fd279fc07245bfaa04d18e929cd89", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x2af03a5e9fe79882a6c25b6a869c9e562e9b865fa4281fb45b2b694182c2b879bf02a7b4bab3fd203dc141451c8fc47a6a17a3611c458afaf06893efafdb5e8b", + "validationCodeHash": "0x0cbe7526ccc44bc30e3a46d3c5f30e18935c3adff597f1ec0b621f46efa1e79e", + }, + "hash": "0x69d5d4cf3dbc9f51488c60ff23d21da401cb66dd7bf7a0b321695b47703bc73f", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c8659ebb9f16811eab62db070000", + "value": "0x0800000069d5d4cf3dbc9f51488c60ff23d21da401cb66dd7bf7a0b321695b47703bc73fdb07000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd36fec74c47ae63e590c30bdcd2ad61421f53ecfeec62a087406d8bc7089d877abf42ad0cb9cde1af904808e33f105cd938583cb5f70b1d49d7457e99fa7d43efae9b745110d9a833b2c0b2d8d40a6750471fd279fc07245bfaa04d18e929cd896e2237470f29cb7849760a2508187989e89958cc6f9b072cf5b7e64d34eba82e2af03a5e9fe79882a6c25b6a869c9e562e9b865fa4281fb45b2b694182c2b879bf02a7b4bab3fd203dc141451c8fc47a6a17a3611c458afaf06893efafdb5e8b7443c966c47bee5add41aac1411ed51c7bf7bda5d3f013de6b2f49d2bbb188830cbe7526ccc44bc30e3a46d3c5f30e18935c3adff597f1ec0b621f46efa1e79ea5040000000000000000000000000000000000000000000000000000000000000000000000000000a5040000000000000000000000f001000000000000000000000000000000000000000000000000007fa8120180a8120112000000", + }, + }, + { + "parsed": { + "key": [ + 2004, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c8659f434b9dae0bfb8ed4070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2019, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865a33ab67066cce00ee3070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2052, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x0000000000000000000000000000000000000000000000f80000000000000000000000000000", + "backingGroup": 37, + "core": 27, + "descriptor": { + "collator": "0xc4ddc0b208edf9a6ba89eca5a3370018e9209a198b168d0c196f66107b4d7115", + "erasureRoot": "0x6735cdab2d3b2720a6ca23d08f33af152ea6624e017507b83c25072e4b061939", + "paraHead": "0xca758ecfac046d55e355bf851798181471dfa358d50eb460e8bbd5cbcd6c37cd", + "paraId": 2052, + "persistedValidationDataHash": "0x46108471ad3e4c9a3fdd9097d29528fda25f10589d758165bd97353340efd403", + "povHash": "0x9f571a07361aa886a54a88bf635add2df3510086f6c18f56df9697e32ec54746", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xac64ecd1c088e5cb428f958008487419cb5f5a39e0fdf1ad79843d6ab6a3983611517e5418c69a067873c6af2378fa27d513ae474a0111d731f8fe8322706487", + "validationCodeHash": "0x3197520fd2b95cc9d14e1fd96f4b3106e1c1dd52e0712dedcaf1fc1e7340900c", + }, + "hash": "0xd986b1f6d6cd2a4a8582c9cabd08e185ce3d3c5ebcdb4bdd9c3b4d1ae465609e", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865a60186ab87135da704080000", + "value": "0x1b000000d986b1f6d6cd2a4a8582c9cabd08e185ce3d3c5ebcdb4bdd9c3b4d1ae465609e0408000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fdc4ddc0b208edf9a6ba89eca5a3370018e9209a198b168d0c196f66107b4d711546108471ad3e4c9a3fdd9097d29528fda25f10589d758165bd97353340efd4039f571a07361aa886a54a88bf635add2df3510086f6c18f56df9697e32ec547466735cdab2d3b2720a6ca23d08f33af152ea6624e017507b83c25072e4b061939ac64ecd1c088e5cb428f958008487419cb5f5a39e0fdf1ad79843d6ab6a3983611517e5418c69a067873c6af2378fa27d513ae474a0111d731f8fe8322706487ca758ecfac046d55e355bf851798181471dfa358d50eb460e8bbd5cbcd6c37cd3197520fd2b95cc9d14e1fd96f4b3106e1c1dd52e0712dedcaf1fc1e7340900ca5040000000000000000000000000000000000000000000000000000000000000000000000000000a5040000000000000000000000000000000000000000000000f800000000000000000000000000007fa8120180a8120125000000", + }, + }, + { + "parsed": { + "key": [ + 2007, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865a6e81cc6a2c29a16d7070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2056, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865a85b1ec02482089508080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 1001, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x000000000000003e000000000000000000000000000000000000000000000000000000000000", + "backingGroup": 11, + "core": 1, + "descriptor": { + "collator": "0x34bce420b5376344db4f9c04de7c2c35dc8bb49e2dd8580d933ef2c9ef484052", + "erasureRoot": "0xbc3f2f38198a7604d5f10dc61bd74b1ff2108cc2df05b1304a6c1cc3c675042e", + "paraHead": "0xafa5a5eb69dab489922f186997dea7c0ef610533a2142eff40586bda99a19dea", + "paraId": 1001, + "persistedValidationDataHash": "0x81c1db497beef5b3e1c6c50d6eb7784c132614f02f06d2e991794a9eeb59b881", + "povHash": "0x515f7ba9e497cdd448b0192808971b8930e978142924049937d5f4b93872874b", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xb08eb5b8e49f380d8e345779c6ef6b99fa0b31506b655c1b41b5017e8aa61b34ba6c3f29d51a1c7f31689420f986ba42f8686337fc842403c9089abf727f5587", + "validationCodeHash": "0xf626bf4b4a80fba4c6b21fda0c8b49c44a2115dfc5320d0a67a6e6c17e87a3ed", + }, + "hash": "0xff5deebf9c8aa3303a05014c003a37230b9ffbdcfbbc7364c7700b05110f0fd9", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865adc7217647a32b0be9030000", + "value": "0x01000000ff5deebf9c8aa3303a05014c003a37230b9ffbdcfbbc7364c7700b05110f0fd9e903000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd34bce420b5376344db4f9c04de7c2c35dc8bb49e2dd8580d933ef2c9ef48405281c1db497beef5b3e1c6c50d6eb7784c132614f02f06d2e991794a9eeb59b881515f7ba9e497cdd448b0192808971b8930e978142924049937d5f4b93872874bbc3f2f38198a7604d5f10dc61bd74b1ff2108cc2df05b1304a6c1cc3c675042eb08eb5b8e49f380d8e345779c6ef6b99fa0b31506b655c1b41b5017e8aa61b34ba6c3f29d51a1c7f31689420f986ba42f8686337fc842403c9089abf727f5587afa5a5eb69dab489922f186997dea7c0ef610533a2142eff40586bda99a19deaf626bf4b4a80fba4c6b21fda0c8b49c44a2115dfc5320d0a67a6e6c17e87a3eda5040000000000000000000000000000000000000000000000000000000000000000000000000000a504000000000000003e0000000000000000000000000000000000000000000000000000000000007fa8120180a812010b000000", + }, + }, + { + "parsed": { + "key": [ + 1002, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865b2b032492225337bea030000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 1000, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865b6ff6f7d467b87a9e8030000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2031, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x00000000000000000000000000000000f0010000000000000000000000000000000000000000", + "backingGroup": 26, + "core": 16, + "descriptor": { + "collator": "0x0ca77d1cbfabe3485794fd86491a18048e0520a3524c6bdc7e5691017890e94d", + "erasureRoot": "0xb50008440c1bac3452d4a606a16edf418dbbd08911ec17f22f36e63ca4a9d3e9", + "paraHead": "0x129ec7d1f2f83fb0df4b829b20e25fa28b6b001ffea898a0aa1c57d5c744b1ed", + "paraId": 2031, + "persistedValidationDataHash": "0xa077a2e703cc2d2cfa0a11bf48492dbf0d8c8050b29a40b0a4b0ed65802556da", + "povHash": "0xb41e615729474d448c9d7cac6ecc4eabad7a71467c7f4029e05e2fc4ffc45345", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xb8744aa16a3cdf4c02dd11277a0eb22a39983f72f61ffe5e6bb5486a69239a4eb552a10eda1ca2778dde417b2b1f88017263120754234a82a0692bce55c5538c", + "validationCodeHash": "0xcd393115b86484068d173d2b582f843e5f7c15f42d4026470316ce9a64d07701", + }, + "hash": "0x3d6a06885f76684569d88e6a9ed83fc0bd04adfb8531c9ae0971b2430dbfdd86", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865b7be89c98b91434fef070000", + "value": "0x100000003d6a06885f76684569d88e6a9ed83fc0bd04adfb8531c9ae0971b2430dbfdd86ef07000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd0ca77d1cbfabe3485794fd86491a18048e0520a3524c6bdc7e5691017890e94da077a2e703cc2d2cfa0a11bf48492dbf0d8c8050b29a40b0a4b0ed65802556dab41e615729474d448c9d7cac6ecc4eabad7a71467c7f4029e05e2fc4ffc45345b50008440c1bac3452d4a606a16edf418dbbd08911ec17f22f36e63ca4a9d3e9b8744aa16a3cdf4c02dd11277a0eb22a39983f72f61ffe5e6bb5486a69239a4eb552a10eda1ca2778dde417b2b1f88017263120754234a82a0692bce55c5538c129ec7d1f2f83fb0df4b829b20e25fa28b6b001ffea898a0aa1c57d5c744b1edcd393115b86484068d173d2b582f843e5f7c15f42d4026470316ce9a64d07701a5040000000000000000000000000000000000000000000000000000000000000000000000000000a50400000000000000000000000000000000f00100000000000000000000000000000000000000007fa8120180a812011a000000", + }, + }, + { + "parsed": { + "key": [ + 2037, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865c12483a7cb568540f5070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2034, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865c77a93d174890f1ff2070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 3346, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865cf8e8ccd42a093bb120d0000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2012, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x0000000000000000000000003e00000000000000000000000000000000000000000000000000", + "backingGroup": 19, + "core": 9, + "descriptor": { + "collator": "0x38af43e5bf497bb4dda48b1baf8a3e3239baa9c0436720196c0a83be6b98212e", + "erasureRoot": "0x2b35b9a8cd21051557c17a4680a8be20242a7d0faed3ca6dca6ff8767043356a", + "paraHead": "0x2c9283bccdd2d23d2960fa740d15b8455365d2fbeded544b6da17e895142e040", + "paraId": 2012, + "persistedValidationDataHash": "0x5b2ccaed8444f3e5c50d1b2d8a41a7c0799108d19f71dd6a864e94e8c48634d7", + "povHash": "0x3dd34504fd032ea1440fe419e3d9beb41761c863227df304ab3a385c43d935a7", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x947bcf88f20fdc83bbd59ad1aa82da8b237052313aa56d91d3605cfaa13b1f70b21db8920a4ae0133fa65caccebb8e4b9670805a12ca6a74ddcc13d3cb7a8e87", + "validationCodeHash": "0x9fc8f19dc6d3f4966556139992c83c6f54abef6264b6a9c7ebb8243a9fd53245", + }, + "hash": "0xfb8b1eca9f0772cfeffa1c58520339d8347b4574419bce177c57e6d7b173ddb1", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865d4393eba91f117d9dc070000", + "value": "0x09000000fb8b1eca9f0772cfeffa1c58520339d8347b4574419bce177c57e6d7b173ddb1dc07000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd38af43e5bf497bb4dda48b1baf8a3e3239baa9c0436720196c0a83be6b98212e5b2ccaed8444f3e5c50d1b2d8a41a7c0799108d19f71dd6a864e94e8c48634d73dd34504fd032ea1440fe419e3d9beb41761c863227df304ab3a385c43d935a72b35b9a8cd21051557c17a4680a8be20242a7d0faed3ca6dca6ff8767043356a947bcf88f20fdc83bbd59ad1aa82da8b237052313aa56d91d3605cfaa13b1f70b21db8920a4ae0133fa65caccebb8e4b9670805a12ca6a74ddcc13d3cb7a8e872c9283bccdd2d23d2960fa740d15b8455365d2fbeded544b6da17e895142e0409fc8f19dc6d3f4966556139992c83c6f54abef6264b6a9c7ebb8243a9fd53245a5040000000000000000000000000000000000000000000000000000000000000000000000000000a5040000000000000000000000003e000000000000000000000000000000000000000000000000007fa8120180a8120113000000", + }, + }, + { + "parsed": { + "key": [ + 2043, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x0000000000000000000000000000000000000000800f00000000000000000000000000000000", + "backingGroup": 33, + "core": 23, + "descriptor": { + "collator": "0xeac753e508b8d16b4ab5b3709a0a5821144cbdb89e68967f7b02bb1af21a714b", + "erasureRoot": "0x03bc9f5e9b35af54a66d15ca36eb52117e98c69adb884f34f4b84ec17342f5aa", + "paraHead": "0xb45f6e456e9b91c4e8284239a1e6a834a7bdb7a7eb89cfa230b1406617d2adaf", + "paraId": 2043, + "persistedValidationDataHash": "0x06d151eeb3824eb6f0cc2ddc81f083e49cd4df8d969b6e132c678666e0b299e1", + "povHash": "0x41233730532342edd7f6d9becb76c8d7caa7aa80817c1abda327b6fe03198bbc", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xe60b63f5b812a3ec88c0b216447f1902ea15258a0cab4a81773fa4b08ef9ea29c3a9b16e9c700a9f597d89a307725957ff23795e0b3c76b3c516edc0b9f97e83", + "validationCodeHash": "0xc7f62a3b792962188d29434c701695fac145be19180c6121beac2e168c7dba89", + }, + "hash": "0x6f4a7cf8be973883fa5748d8bf9bb2a31bd5cd5732e5b6043820e36d6b035837", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865d8b9873ac6cf46d0fb070000", + "value": "0x170000006f4a7cf8be973883fa5748d8bf9bb2a31bd5cd5732e5b6043820e36d6b035837fb07000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fdeac753e508b8d16b4ab5b3709a0a5821144cbdb89e68967f7b02bb1af21a714b06d151eeb3824eb6f0cc2ddc81f083e49cd4df8d969b6e132c678666e0b299e141233730532342edd7f6d9becb76c8d7caa7aa80817c1abda327b6fe03198bbc03bc9f5e9b35af54a66d15ca36eb52117e98c69adb884f34f4b84ec17342f5aae60b63f5b812a3ec88c0b216447f1902ea15258a0cab4a81773fa4b08ef9ea29c3a9b16e9c700a9f597d89a307725957ff23795e0b3c76b3c516edc0b9f97e83b45f6e456e9b91c4e8284239a1e6a834a7bdb7a7eb89cfa230b1406617d2adafc7f62a3b792962188d29434c701695fac145be19180c6121beac2e168c7dba89a5040000000000000000000000000000000000000000000000000000000000000000000000000000a5040000000000000000000000000000000000000000800f000000000000000000000000000000007fa8120180a8120121000000", + }, + }, + { + "parsed": { + "key": [ + 2058, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865db5334ffb7cee19c0a080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2091, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865ddcd36bd16bca7fe2b080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2093, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865df9ffad132ed49ba2d080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2026, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x0000000000000000000000000000e00300000000000000000000000000000000000000000000", + "backingGroup": 23, + "core": 13, + "descriptor": { + "collator": "0x449e038875bcd7b68758154109264251f3c6b84d1395957198bf8cb39f30e934", + "erasureRoot": "0x2d65198730c68549361d8371ca433526a7023bc336379c2594333daf76823e4e", + "paraHead": "0x7ffea3aa15dd7588873e3f774726c399e2af8690f64af69538238a70c7b908b9", + "paraId": 2026, + "persistedValidationDataHash": "0x45b1d394eeb1f2a26a7288a6b446361cecb1d2e138c93d8109afdc41403c2855", + "povHash": "0x4c1e42ed1cc74b6d33294727d75de7faa00e80e8e6ff9e04d9f3b606715e4d92", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x0e3d25bb91a4257086d214d66374a9a96838f7286aa80fad1d1bf78ea46d3a416a7d757425438c5d1d833dcec2a5b97029623f30b1babea300791d540915af8e", + "validationCodeHash": "0x207767fb73e1fcf8ae32455843419e51c94987228a4b77857aff7653d103cac3", + }, + "hash": "0x14c575d7901d4d83aca57b72b875cd71fd42186c25a5951235b7c99517526b26", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865dfdbdd688e7be47bea070000", + "value": "0x0d00000014c575d7901d4d83aca57b72b875cd71fd42186c25a5951235b7c99517526b26ea07000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd449e038875bcd7b68758154109264251f3c6b84d1395957198bf8cb39f30e93445b1d394eeb1f2a26a7288a6b446361cecb1d2e138c93d8109afdc41403c28554c1e42ed1cc74b6d33294727d75de7faa00e80e8e6ff9e04d9f3b606715e4d922d65198730c68549361d8371ca433526a7023bc336379c2594333daf76823e4e0e3d25bb91a4257086d214d66374a9a96838f7286aa80fad1d1bf78ea46d3a416a7d757425438c5d1d833dcec2a5b97029623f30b1babea300791d540915af8e7ffea3aa15dd7588873e3f774726c399e2af8690f64af69538238a70c7b908b9207767fb73e1fcf8ae32455843419e51c94987228a4b77857aff7653d103cac3a5040000000000000000000000000000000000000000000000000000000000000000000000000000a5040000000000000000000000000000e003000000000000000000000000000000000000000000007fa8120180a8120117000000", + }, + }, + { + "parsed": { + "key": [ + 2101, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865f7f7e146c4af733935080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2006, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": { + "availabilityVotes": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000", + "backedInNumber": 18000000, + "backers": "0x000000000000000000e003000000000000000000000000000000000000000000000000000000", + "backingGroup": 15, + "core": 5, + "descriptor": { + "collator": "0x088b5e65c4b28d74bae6df0e1bbcb06b42ae37902dd4a22e98878e394a72aa31", + "erasureRoot": "0x834ad3bf487a9de3667e1be825463823254169d2af862040132d1b641d452da0", + "paraHead": "0x50bf2ab7be3d8f63f7f268f1b47b4fa7c75717325345b552c08173ba26b75046", + "paraId": 2006, + "persistedValidationDataHash": "0x68cfee47e8d353673c0c102126c4794f44031fe61fdbd9588adf65c123cf5f73", + "povHash": "0x84b45695fa54277005e7ba803243448a7defd0778d0f4e3190fe15611b050a61", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x109be59a09e082f2cee3aa1a413a20cb00bf8ea28dc73a71f6f37ae5044979131a89d25a701c58f0cf7b88923504a5f6c7ae46dc94764289e025477a66e36284", + "validationCodeHash": "0x665de129373c6fc927cc5320320e120b01af446e8a04430d6649a97099b2de3b", + }, + "hash": "0x77f967ece9b7b6a7bd2948358a7e314fe8a1b5f2b2a3df8dc353be514ce2f368", + "relayParentNumber": 17999999, + }, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865fcbb81823589d77dd6070000", + "value": "0x0500000077f967ece9b7b6a7bd2948358a7e314fe8a1b5f2b2a3df8dc353be514ce2f368d607000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd088b5e65c4b28d74bae6df0e1bbcb06b42ae37902dd4a22e98878e394a72aa3168cfee47e8d353673c0c102126c4794f44031fe61fdbd9588adf65c123cf5f7384b45695fa54277005e7ba803243448a7defd0778d0f4e3190fe15611b050a61834ad3bf487a9de3667e1be825463823254169d2af862040132d1b641d452da0109be59a09e082f2cee3aa1a413a20cb00bf8ea28dc73a71f6f37ae5044979131a89d25a701c58f0cf7b88923504a5f6c7ae46dc94764289e025477a66e3628450bf2ab7be3d8f63f7f268f1b47b4fa7c75717325345b552c08173ba26b75046665de129373c6fc927cc5320320e120b01af446e8a04430d6649a97099b2de3ba5040000000000000000000000000000000000000000000000000000000000000000000000000000a504000000000000000000e0030000000000000000000000000000000000000000000000000000007fa8120180a812010f000000", + }, + }, + { + "parsed": { + "key": [ + 2013, + ], + "method": "pendingAvailability", + "section": "paraInclusion", + "value": null, + }, + "raw": { + "key": "0x196e027349017067f9eb56e2c4d9ded5a2ee677da3917cc29ee3b29c9f94c865fd3c4eac5d2f7717dd070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "eventCount", + "section": "system", + "value": 41, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850", + "value": "0x29000000", + }, + }, + { + "parsed": { + "key": [], + "method": "blockWeight", + "section": "system", + "value": { + "mandatory": { + "proofSize": 15296496, + "refTime": 719659453222, + }, + "normal": { + "proofSize": 0, + "refTime": 0, + }, + "operational": { + "proofSize": 0, + "refTime": 0, + }, + }, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96", + "value": "0x000000000726cb0b8fa7c29fa503", + }, + }, + { + "parsed": { + "key": [], + "method": "allExtrinsicsLen", + "section": "system", + "value": 37571, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef7a86da5a932684f199539836fcb8c886f", + "value": "0xc3920000", + }, + }, + { + "parsed": { + "key": [], + "method": "executionPhase", + "section": "system", + "value": { + "applyExtrinsic": 2, + }, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a", + "value": "0x0002000000", + }, + }, + { + "parsed": { + "key": [], + "method": "extrinsicIndex", + "section": "substrate", + "value": 2, + }, + "raw": { + "key": "0x3a65787472696e7369635f696e646578", + "value": "0x02000000", + }, + }, + { + "parsed": { + "key": [], + "method": "transactionLevel", + "section": "substrate", + "value": undefined, + }, + "raw": { + "key": "0x3a7472616e73616374696f6e5f6c6576656c3a", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "onChainVotes", + "section": "paraInherent", + "value": { + "backingValidatorsPerCandidate": [ + [ + { + "commitmentsHash": "0xb1e9aaed9c50fd43094530ae0f1f2e4713658b634419f6f166d044107cb44f32", + "descriptor": { + "collator": "0x34bce420b5376344db4f9c04de7c2c35dc8bb49e2dd8580d933ef2c9ef484052", + "erasureRoot": "0xbc3f2f38198a7604d5f10dc61bd74b1ff2108cc2df05b1304a6c1cc3c675042e", + "paraHead": "0xafa5a5eb69dab489922f186997dea7c0ef610533a2142eff40586bda99a19dea", + "paraId": 1001, + "persistedValidationDataHash": "0x81c1db497beef5b3e1c6c50d6eb7784c132614f02f06d2e991794a9eeb59b881", + "povHash": "0x515f7ba9e497cdd448b0192808971b8930e978142924049937d5f4b93872874b", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xb08eb5b8e49f380d8e345779c6ef6b99fa0b31506b655c1b41b5017e8aa61b34ba6c3f29d51a1c7f31689420f986ba42f8686337fc842403c9089abf727f5587", + "validationCodeHash": "0xf626bf4b4a80fba4c6b21fda0c8b49c44a2115dfc5320d0a67a6e6c17e87a3ed", + }, + }, + [ + [ + 57, + { + "explicit": "0xb88237c842afadbb0b0b90d0b81d68252b952b94b31d3ee7bbf40eb051a6fb0eb83aadeeb64c7b4239e1c23f3bc5bcbb111e1914ef02a9a28422f0e2b585168b", + }, + ], + [ + 58, + { + "explicit": "0x58ea5a84e8260e277bd34c129abca39ee0d5b2e5467ca2c9b0dcd9e338ba5f4d79fd14f08de3ef86819248127bdb31cf1830dca7811b342222d0074e215ab681", + }, + ], + [ + 59, + { + "explicit": "0x9a6a1244efb1ce4b3833f5d586521efa3216d92c92b0db9774dbea030a76a12805a1660cb09504e9c19ed4b085e5bfc6ab5ac531ee16b37c7e910ed29f5f7787", + }, + ], + [ + 60, + { + "implicit": "0x4af9df994baf78e1c57535c507237f874b5838f1d60b19ff54be95f89047df22f2e19da4095d673bf5a0bf1a1cd598d00e52ffb8286fbb950a9af81065ef9585", + }, + ], + [ + 61, + { + "explicit": "0xc4f5a8034ff0885e9de3c70a8c8fb1b6d39ba8e20969dc69410ddb6646f38a3622b57464e5513abd903e3aea0881ae7187d54f911619b5940de54a959b882e87", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0x215f30e9f691fb84620ff1051541ff38849a7158b609936a67b036725b14c727", + "descriptor": { + "collator": "0x088b5e65c4b28d74bae6df0e1bbcb06b42ae37902dd4a22e98878e394a72aa31", + "erasureRoot": "0x834ad3bf487a9de3667e1be825463823254169d2af862040132d1b641d452da0", + "paraHead": "0x50bf2ab7be3d8f63f7f268f1b47b4fa7c75717325345b552c08173ba26b75046", + "paraId": 2006, + "persistedValidationDataHash": "0x68cfee47e8d353673c0c102126c4794f44031fe61fdbd9588adf65c123cf5f73", + "povHash": "0x84b45695fa54277005e7ba803243448a7defd0778d0f4e3190fe15611b050a61", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x109be59a09e082f2cee3aa1a413a20cb00bf8ea28dc73a71f6f37ae5044979131a89d25a701c58f0cf7b88923504a5f6c7ae46dc94764289e025477a66e36284", + "validationCodeHash": "0x665de129373c6fc927cc5320320e120b01af446e8a04430d6649a97099b2de3b", + }, + }, + [ + [ + 77, + { + "explicit": "0x48452c9e9f5e35f9db6ab7e2d04d6c6667f562df96e69f3817ee11228751de45ffbb9c763f072bd1d6866920652cf70e0a68ab234fc4c21a7b602b00e7fef782", + }, + ], + [ + 78, + { + "implicit": "0x5c83822e5b05f758c20cc5e4cc4fd5e82553b3253e2d92210935949e6819e1418f19e7b78b67c80de3e7c7e6c3340e8145326b6c13ec6e04863bf8ee3742cb88", + }, + ], + [ + 79, + { + "explicit": "0x1cd4ba3f4ad9936235800d364a7bbc083676b7e82d96b146c663b1ecdc39880baa917cb6f5f0941a1bf0711f56b23fa401346821927c0ebce66924622bce3c83", + }, + ], + [ + 80, + { + "implicit": "0xca94c2098a5079de62cdb15ffc1a1999f83e9f40497cc1241e042c8678cd77519e826c73a3b5e758585afc4001f3a7cb142a49c6429b927ae3290cd05614bb85", + }, + ], + [ + 81, + { + "explicit": "0x744ddcbfb8742057ad646af294923c5ae0c8744e9ff4c0d8fa849eb7899da076dc8f1bec47bc7dc6852a60e6869af3d1a48b10d819f4dde8e5f879f0b294b982", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0x9b1665f8e795309fe3fd0384358fde69eebe300a55c7829e3dfb3776c00da15d", + "descriptor": { + "collator": "0x36fec74c47ae63e590c30bdcd2ad61421f53ecfeec62a087406d8bc7089d877a", + "erasureRoot": "0x6e2237470f29cb7849760a2508187989e89958cc6f9b072cf5b7e64d34eba82e", + "paraHead": "0x7443c966c47bee5add41aac1411ed51c7bf7bda5d3f013de6b2f49d2bbb18883", + "paraId": 2011, + "persistedValidationDataHash": "0xbf42ad0cb9cde1af904808e33f105cd938583cb5f70b1d49d7457e99fa7d43ef", + "povHash": "0xae9b745110d9a833b2c0b2d8d40a6750471fd279fc07245bfaa04d18e929cd89", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x2af03a5e9fe79882a6c25b6a869c9e562e9b865fa4281fb45b2b694182c2b879bf02a7b4bab3fd203dc141451c8fc47a6a17a3611c458afaf06893efafdb5e8b", + "validationCodeHash": "0x0cbe7526ccc44bc30e3a46d3c5f30e18935c3adff597f1ec0b621f46efa1e79e", + }, + }, + [ + [ + 92, + { + "explicit": "0xa027651ef3abdf36a2a25f93441759614202f8f57b43853c5d82648da3dac77603886610b553c1eb1b354e02913c083c2d996236ebc66bedbdecf3de1ba11f87", + }, + ], + [ + 93, + { + "explicit": "0x4e088de72c30d79e82940af9e20bd41480144e0273e9c873691f65d29a664258e96dac4fbe7f201d933b4b2b148b2fba7905ec18214fce9b1674c518a1b9ca81", + }, + ], + [ + 94, + { + "implicit": "0x229ed2791ef0247adf85ee05f1c2eadae6eb4bfff1d504e4bb4c7d220eaa337e0cbc9b197e6416287563dc431f4e45b513ebcca26b6a3ec1e55f6a3cb89c7d81", + }, + ], + [ + 95, + { + "implicit": "0x645ea3825ab5ba93bdc0b79d29781baeb5668a7adec2a47947418682cbaaad11721e465fd94e54824ee0adcf68dac235cff8a2a5e06af05aef645ff094b1c380", + }, + ], + [ + 96, + { + "explicit": "0xd6d720cba159744fa829fb202b32188a4420d23aeef6ebd0176ac248fdccf1308676e97f6293510e1c446ae294f639b5731817a7597320dea4ecbc28f712da82", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0xf07cdda2f9ec7c48fc3d5687e543f71d4db6fe8bf38051a7b981817676f805f4", + "descriptor": { + "collator": "0x38af43e5bf497bb4dda48b1baf8a3e3239baa9c0436720196c0a83be6b98212e", + "erasureRoot": "0x2b35b9a8cd21051557c17a4680a8be20242a7d0faed3ca6dca6ff8767043356a", + "paraHead": "0x2c9283bccdd2d23d2960fa740d15b8455365d2fbeded544b6da17e895142e040", + "paraId": 2012, + "persistedValidationDataHash": "0x5b2ccaed8444f3e5c50d1b2d8a41a7c0799108d19f71dd6a864e94e8c48634d7", + "povHash": "0x3dd34504fd032ea1440fe419e3d9beb41761c863227df304ab3a385c43d935a7", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x947bcf88f20fdc83bbd59ad1aa82da8b237052313aa56d91d3605cfaa13b1f70b21db8920a4ae0133fa65caccebb8e4b9670805a12ca6a74ddcc13d3cb7a8e87", + "validationCodeHash": "0x9fc8f19dc6d3f4966556139992c83c6f54abef6264b6a9c7ebb8243a9fd53245", + }, + }, + [ + [ + 97, + { + "explicit": "0xd2f2f623d79ed5d3284ef4e05f2390e8ca9de563e1134e06662910d750d58a5416a0eef6bdd602a23e11c9c6faacd3ea261571719db68e0023b33f4de6332a86", + }, + ], + [ + 98, + { + "explicit": "0x363b1b5a58cf94d6d8ebcbe07dc0f684424d4f419bda4d0f7412d2a94f1f20747ba1856cd9412c83b1224f5b990e6f83e6769f476a1fdadf5a76f3975d0dce8e", + }, + ], + [ + 99, + { + "explicit": "0xa2acd29dd8951136aed54d1f2225c8504d2cf9b71cd376dced39a25c8826347cd40c6145ce8b6216dc19bf687897fae316ceb9cfcf25eec6bc59605e9613b08e", + }, + ], + [ + 100, + { + "implicit": "0x363adc93fc51ff4de41d077d33d629691c731d4f86048344a5e4fed325d371003affd21fa515b0d6c94ab33b7e3ce1d1a1d0b836389aa47f904a41aa4f9d4283", + }, + ], + [ + 101, + { + "implicit": "0x3e71dbf2c5df2979d16f6d37c24d17f852f6efa48815355a2c73b152addce11add5168629cd5869b86b78b03f4f11c096ff202c6bfa47ef03c13e959d6610589", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0x78c22af305d232c0978fb983efc41330a48ac47db21a1aedd63a22d646b26802", + "descriptor": { + "collator": "0x449e038875bcd7b68758154109264251f3c6b84d1395957198bf8cb39f30e934", + "erasureRoot": "0x2d65198730c68549361d8371ca433526a7023bc336379c2594333daf76823e4e", + "paraHead": "0x7ffea3aa15dd7588873e3f774726c399e2af8690f64af69538238a70c7b908b9", + "paraId": 2026, + "persistedValidationDataHash": "0x45b1d394eeb1f2a26a7288a6b446361cecb1d2e138c93d8109afdc41403c2855", + "povHash": "0x4c1e42ed1cc74b6d33294727d75de7faa00e80e8e6ff9e04d9f3b606715e4d92", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x0e3d25bb91a4257086d214d66374a9a96838f7286aa80fad1d1bf78ea46d3a416a7d757425438c5d1d833dcec2a5b97029623f30b1babea300791d540915af8e", + "validationCodeHash": "0x207767fb73e1fcf8ae32455843419e51c94987228a4b77857aff7653d103cac3", + }, + }, + [ + [ + 117, + { + "explicit": "0x7c366d694674f78c2d23e0b512b9112e6b90c6bb10af3cc85b1fdc1a4f432f5770147f9b9dbadc573b13c4b3c719c5d50fd7f305d9732351e8f6778bff53e287", + }, + ], + [ + 118, + { + "implicit": "0x8c7b771f09a040fe99c0c5f855f80225b254a6acf6f3f6c615b94826ce37202b80d8403840b971815a0dd5fa5176810ff7adcf7972979b2fb148c07fc00a5583", + }, + ], + [ + 119, + { + "explicit": "0x6e3e67abb6d7f00d52e59e7a4cf085b90158934a8263e903da29eceb7bd0f75cf87c220c656d7aa81c56440dd66a7cfa7fe0af4fc85c724c3ff4a6ccc61cf588", + }, + ], + [ + 120, + { + "explicit": "0xa0339318ce2b6d8d91ba3b8d1af129225eac6e046dee581f1fe41d3d84184d0ce471e24c34e3ba8c59af283c54dbf947da4ae4aa2de13df4789849d1b2863f84", + }, + ], + [ + 121, + { + "explicit": "0x34a7f79d6dab6e1fd704c78c09874407434f415ec07832a8b3fd487b5007e244ab484ed5fa3e3e68f386502e120571438874d9dc5087cf1178a06bcd8251258d", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0xfdce9847e4ad002474cbde21028c6404a93a4a3e2535274f8c1dbd2136e12887", + "descriptor": { + "collator": "0x86b64734fc2f4a78b337e299a52666297e4c6e9f373cd056df2a0d4cc0cd1725", + "erasureRoot": "0x441c9a1987786142e22a392cd72eb45c0e3b7c9dc48e6d715ae7103c252478e8", + "paraHead": "0x8699e8765c1aec206e0d80f31dbc735346a3f1d5479ff4584e91889c06fc6e7b", + "paraId": 2030, + "persistedValidationDataHash": "0x7b2072cb946ea7011c0f07d3747825e1d5a7f257d83ed7b53789c90ad59457c6", + "povHash": "0x0f691c2555cc87c53e82c67eab26a2a55fff5c856dc8539b1d330bbc8034f725", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x1c0acec361273e23654a4b0cdbbffc7c756f607892038ed79f8a9ecd286c877ec0bf774ec74e6df0b5e692d12e92baea93a7e696e2469d3fd7d881765fb0ed8f", + "validationCodeHash": "0x9b0320f665e103a6b614b812c6fa1569e2c7b53c4c98c5eee9e0fd126afef95a", + }, + }, + [ + [ + 127, + { + "explicit": "0x76a009a149977a619a5424715dca56de66bcad320103733dd2582fcfa76370115a54d69d9258aa4de0f19961b6dfad4b93d3904a5cb07cbff172929261762588", + }, + ], + [ + 128, + { + "explicit": "0xf2ac4cbb59c04a9755986c447924d2a32973d493b55f1f1528330f3db4366e6d9a462896e2ebad94ada53d0984eadcb6e09109025e5e586bda284550362a4f86", + }, + ], + [ + 129, + { + "implicit": "0xc091fff3d6b4662b6c4be72ceb5fcc3b4d55ec2a722ed585f9be450329189217891b2fe84f8d0ff325c80e3be8ff0e1c1430d80ffadd2e2e83885aec893f9288", + }, + ], + [ + 130, + { + "explicit": "0x5e982338d8eee499c953f0ec1a1a235e635fab15108c0d2dbf92a38366e786292a38de9ef0851129b9096b14737a1c6610a5031bf0e6b5f9905ebd3ee8ca5d8f", + }, + ], + [ + 131, + { + "explicit": "0x3a051f7de3ba3c644c904e38ff8df87c8407257dc69c844f4a2dfc6ac086b66841726956316d8075d9273ca36eb643b63623298ae853157ca7127757f9453982", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0x0cb2398f0181f33f833c449691fb34ad405520bd8c38c88e86a17cbbbab74025", + "descriptor": { + "collator": "0x0ca77d1cbfabe3485794fd86491a18048e0520a3524c6bdc7e5691017890e94d", + "erasureRoot": "0xb50008440c1bac3452d4a606a16edf418dbbd08911ec17f22f36e63ca4a9d3e9", + "paraHead": "0x129ec7d1f2f83fb0df4b829b20e25fa28b6b001ffea898a0aa1c57d5c744b1ed", + "paraId": 2031, + "persistedValidationDataHash": "0xa077a2e703cc2d2cfa0a11bf48492dbf0d8c8050b29a40b0a4b0ed65802556da", + "povHash": "0xb41e615729474d448c9d7cac6ecc4eabad7a71467c7f4029e05e2fc4ffc45345", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xb8744aa16a3cdf4c02dd11277a0eb22a39983f72f61ffe5e6bb5486a69239a4eb552a10eda1ca2778dde417b2b1f88017263120754234a82a0692bce55c5538c", + "validationCodeHash": "0xcd393115b86484068d173d2b582f843e5f7c15f42d4026470316ce9a64d07701", + }, + }, + [ + [ + 132, + { + "explicit": "0x629628723fd4f6a5c0f5c5c98f5f90009d3118b4ac0bb4d95d92d5ed622072521e221df6a1ee304c3f9cb2247ed37e29518b651402f1f2328d1a61b85fe93785", + }, + ], + [ + 133, + { + "implicit": "0x50e8a0bc93df5a222a9f432ac33445d987c4a65ab1e3ab4bd3fb90b12b79692d521abc6b35821fbcdb06516701d1278c18fdb185e9f98d07fcd5456378f32e8f", + }, + ], + [ + 134, + { + "explicit": "0x7e3bdf2ab8a46f3db9890d458bb1b34598937f34dd1e70f952de1f739b1b365d01075dcd6013a889f16874cf627ac1fa61aad8532f3423d3b32b175e46a8e58f", + }, + ], + [ + 135, + { + "explicit": "0xb879866b3e86077611ba8095d31f16a3b99e02ec41d58c7a79c526f839c59e1b81f7049612cd02c2ec3c370d69f0c3eb2ebb6a78fe6d5c825d74b9512b174587", + }, + ], + [ + 136, + { + "explicit": "0xa06cc198ab4275d7fc10d87d85cd70d735e9c5d769ba0072a9dfee29ce88966b61dc2a81ed315c73e5f4951ed9003da15fa722066eea89442f8017cf68cf3387", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0x1d638da30e25b8fd25dff45be1a32ee26fe0cb5ec4525bc6db6886e52cec8c94", + "descriptor": { + "collator": "0x9247e05ea9167e413d53cfbb6d2425fa4a7e587045ffe59e5cb12292414d9d40", + "erasureRoot": "0xda544a2cce6b1e099a76c09f21812f529bd3f03391b8acbb4382ccd0ef055884", + "paraHead": "0x951923807ea792b7647f6364b6a16a4805f5e41903e1d94938c9100e4c1ae79c", + "paraId": 2032, + "persistedValidationDataHash": "0x7d9335a339900ab6319773c33d71553e44201601b6a86f65c96dc8f2d57dc808", + "povHash": "0xf710d8cf9d853272d9582f36cbfc0f5462a0a88a3d829d246bb8b962de694682", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xfe6aacb297f282bfa876b8f8a7b46183f140c1081432784496b908096692736d57b1f24ad23a9018cb4b8aed5e1c1c507a4e1c89c4a25fc1e9dcbfc8c36baf88", + "validationCodeHash": "0xb9f8cb5040d1bbf541e0909a87a87b7101a8a43ad43eee2a62f712a8a2fad707", + }, + }, + [ + [ + 137, + { + "explicit": "0x2066495b2a622780d00d98ba750e6cd3128f321ae988c901cac765d78ae7eb268cf828257452e8715cf2b1a8ac07100912dec1fb17eadf65d205a8727d840f88", + }, + ], + [ + 138, + { + "explicit": "0x8aecf1b7bb7d8c8ebab0d8af70041f2db7f61a405ff49b14d04c79ce78939e7e642b19224215bfbd5aa166854f7afbf4399f2b6be89ff884b82754b820ed0384", + }, + ], + [ + 139, + { + "implicit": "0xbacd413b0606ff876c1dbb0805da160d5adb236f01545aa950736640d482ad701cac7861851a68b765e3e26f773a26dca1ed19db96cb8c9b921e3ede4e121486", + }, + ], + [ + 140, + { + "implicit": "0x42645d58475c86b781546c6b8f5395c5b3e205bb23641abefc6ea34892b2032fda5a3587701a24097a6fbd9c87805a1a9fc8d2698872717e74d23918960cc08c", + }, + ], + [ + 141, + { + "explicit": "0x78fef717a740199fd80bc4baab93a8d5fa905259147d32c65db51c9b92c80d2031631e8e0ba451e4075d95a07485a489fc6f6c679965d2e4686ad5ea75888c86", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0xf8b39e0492eae274be6215f825efe3e771e6387db96f1f01c002ac8e1e4d85d1", + "descriptor": { + "collator": "0x7add50f4a537b69ac1a069d85b5969dc4e6f14f13311e994e43c88a5ca3d820e", + "erasureRoot": "0xf5f2f4a0445de28aae256a5f87cc0760ea20927546ed3d53bab217b075ebe949", + "paraHead": "0x5c74c1d74eaf9016d26cb67c176304788e2178174bcd66f53924a414879d6757", + "paraId": 2035, + "persistedValidationDataHash": "0xfd271daba2d9fb590142bce6868cbbbd0fec95e917c44b63ccb0a7fcf7d40715", + "povHash": "0x98ee2d22502c68e527b45e0a035382056681cd69c109be3fc90a14a3e1575d16", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x862b0380bc529ea6ddd75c61a3a64b0d5b9138e670a65c5a9a6ff89a28071070d085f985bfb55e22f5ccec11dea0f01ecbde3162545f463a4e53c30c119d5184", + "validationCodeHash": "0xc422ab75036b13335d16daf8eb4ac486673b5ba987b47f3b3073d277415f15b8", + }, + }, + [ + [ + 147, + { + "explicit": "0x2c0aea69eff094a9bfc65b94b71807b9a1b03b9fa9fc9ac26624eae375c62b65a3eef47067678be3dcc3a7675a6a891af0bf8b98f9cc4bc8e3b6d330f2020185", + }, + ], + [ + 148, + { + "explicit": "0xdcc63a54d44c23483d4c02c49a6e5e6b8908af7160c0dde7eeaca28d3d6b8e02fabe2cd876805cd552004fbbe1a1f0fc082d6905ee898e5f8608957148adfc8d", + }, + ], + [ + 149, + { + "implicit": "0x320514e5e93fe130b1a01a8b82f4e5b472c10a81af54e311c2ec9fa83c87004fd0b2dbf02bdfedf0faf53289bfe40e7915e111f5f7eb0d56eb07634bf554d68b", + }, + ], + [ + 150, + { + "explicit": "0x3aa862454593c78560442e0fb951d41c4179dda7644b7a2eb78c83690fdb9c20991a629d1eee44bad09d35db8da4de30a9aec53b7576642411b9483dbe0a108f", + }, + ], + [ + 151, + { + "explicit": "0xd4a8a191e948e13fb4ffda3481a10b6a1e70ecc321832a56eaadbb12e9eaa406b0c454d1a33837d516c73b8b66005f70c6e691661f3173a81628cc4923b9b288", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0x7645f472595fe1126c125e050b012211e7082d645aeb2816a115968b07281abd", + "descriptor": { + "collator": "0xe0b5632409e78aba11d0d559c96acff0247194879afad0741ae3848f61e74a02", + "erasureRoot": "0x6c32d1e9b020d2d3f4f7a6aef673a941cc291070f4dd4f0919cc3a850f4a8b98", + "paraHead": "0x6270b82484129fa3e8f808c3bda80bf9614ef5017af435e7ff50de5a68a82cd4", + "paraId": 2039, + "persistedValidationDataHash": "0xd80d8aa66b597caadddfccd30c47f99649a55db09807ad5e44cfc0a9b2d6614a", + "povHash": "0xbcf9b988987fd02dea4733fa454e6d20464e372367f530b49080c7cf321c80f7", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xc08bf278544c6d723e25b49c8226696af983e63b170f79c5ad87fcca5079e973557b3554a3236f6855114e4f626133a0965dae5de52d8e2b8e7f405c2909108a", + "validationCodeHash": "0x088b3f2153fdc8dedb22d5984ca5773ab7e794d3a9a6f700d1fdac1e54ca83a9", + }, + }, + [ + [ + 157, + { + "explicit": "0xa20ea277446eb8bc761543f33180d45dd6278af0861b3c421255721ab59e1e2e2dcc15375f24d84e7145416d56ac4cc739e93e46fe9ed355829c9ed0f647ad83", + }, + ], + [ + 158, + { + "implicit": "0xd0b6af9b82e24ed1cf0d1806acc0dba47535c569c26d882f70015521bcb24b5d536421a0f7ad01a9bd8f1c58714bb5dcc2ec2ba469df148d2d06481bcc314380", + }, + ], + [ + 159, + { + "explicit": "0x60a6189cd44082e82331340405ecd2c8fb020fa4278faa4ed5c45873986c6c5d555ef187abd58ea18a750e6bcd71265ab477804bc316984435092a0fb15e658f", + }, + ], + [ + 160, + { + "explicit": "0xb843fc4714350fdb5761c1e4b383992fd15fcaa8b2c734f44a35b8303824732b428de8bccf2d5366692a64ebf2b45d864b3a58c9e7fbf2fb72c830cafe048984", + }, + ], + [ + 161, + { + "explicit": "0xeca94f74f632896afff44968a76ea740ed1e7454dce4f6e740b644b9209b7e0f32c9e406925c4366b04284d5c7b7a679ef16caba123f35448d6035edecbc108e", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0x1d65fc0e7feb9e52e40b57d168e876d7093ff1a911d452a8f4a0cf8276e0e1ed", + "descriptor": { + "collator": "0xa604c6cd403daac04dc0c95fd573fbfc54f6359db5c549d626222973c88e9245", + "erasureRoot": "0x6d9dea464c880e6827b5f1c72acdb47fe7f7dd3b6764849023e5d7db2a8b40f4", + "paraHead": "0x3aae124bec893c6d9588b4a9a0dc592d1be3a41e8061c0673b2b244175afe450", + "paraId": 2040, + "persistedValidationDataHash": "0x4d69f9a5781d13c28b8355f96ced9f8623a5f165463c96e93269d54a910f8386", + "povHash": "0xa6b7d9a03eb71f39409558b24f8461837ffae480f56d8c87a252e91bd2674ba4", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x8cb5ea510c06ecc1561aafd614de19cdb0c812fb77f0f06be0a3b614c1bfe005c9f5e5a43ca9a2d62a6d9aa032f5b054c1167ea2e0a323eb2eeda7278adbc888", + "validationCodeHash": "0x22c6a3c71603225c485cd7bca887833449b3ad4578d440f2bb4bc8722a6e9e04", + }, + }, + [ + [ + 162, + { + "explicit": "0xe67f16c6d27b8df6ea6cca0d8a63254481e42113f07da27273dc1e02be3118485dae897dd955c8565a0c2d7920b84b8554eb8c25bbbf988f4b0d46728292d68c", + }, + ], + [ + 163, + { + "explicit": "0x164c59a638b86ce8a6687c447ef99bb33ad2f8c71c40a81b8e3cfc5e051c933a49c8362a22ae2d90aad3c4b77dc9464a3228bdd80c90ed886ce30179dc6e0586", + }, + ], + [ + 164, + { + "explicit": "0x02319a0efdcd8f6687b07aebcfc82b16b924088f9dae4603a7508bb2b9df227016885cebca36c6c142569e07d67784ba40c435ca8e68e98a03f708ee5de15a8a", + }, + ], + [ + 165, + { + "implicit": "0x0627106926444892686b2814aa4b78fa6046742de936826d873b92977a2ad001bc7de5f866f7653a61f010d48bfb17c33a6712c1331ec395184227de6fb80b8a", + }, + ], + [ + 166, + { + "implicit": "0x64f99d1e8a53a4c64eb461e43ef656b93fbfbb36b1757d5d99173940c144b663cba904fab2f7bd305715373cda627b1dac4ccd785919f7726baff6e1d56d6382", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0xd602c5ccc4dd3f4fa71bd465940b17c5127df9f44ab463330055d7747c68dd72", + "descriptor": { + "collator": "0xeac753e508b8d16b4ab5b3709a0a5821144cbdb89e68967f7b02bb1af21a714b", + "erasureRoot": "0x03bc9f5e9b35af54a66d15ca36eb52117e98c69adb884f34f4b84ec17342f5aa", + "paraHead": "0xb45f6e456e9b91c4e8284239a1e6a834a7bdb7a7eb89cfa230b1406617d2adaf", + "paraId": 2043, + "persistedValidationDataHash": "0x06d151eeb3824eb6f0cc2ddc81f083e49cd4df8d969b6e132c678666e0b299e1", + "povHash": "0x41233730532342edd7f6d9becb76c8d7caa7aa80817c1abda327b6fe03198bbc", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xe60b63f5b812a3ec88c0b216447f1902ea15258a0cab4a81773fa4b08ef9ea29c3a9b16e9c700a9f597d89a307725957ff23795e0b3c76b3c516edc0b9f97e83", + "validationCodeHash": "0xc7f62a3b792962188d29434c701695fac145be19180c6121beac2e168c7dba89", + }, + }, + [ + [ + 167, + { + "implicit": "0xcc8df425f24f706f05d23e1a20a903ededbf3466dcf11428632d4b7755761311508cc80f58880a51aedf3eb5fc9aaf35558f1b9ca63f48857bca265548b9e48a", + }, + ], + [ + 168, + { + "implicit": "0x161e3166a3c42941e080665246a35ace3cc7851f1a8c66584c2672bc3663132ddbda0c7a5e66a41c2dd042c44cab58cbaaa6ca3c682b18a4cf46c2df55474a8d", + }, + ], + [ + 169, + { + "implicit": "0x0694771b260f48fccbc5315f739481facf34f255d5d84025fc000da1732fb2566fd15a6ca6aa120ee7620d8f0998658189d27189a00919e5728d1c298bde2c8b", + }, + ], + [ + 170, + { + "explicit": "0xc40b74d1edda1fba70297bd3c969f6db1f0f007e93873067fe3c03d53aa04a6c36dc59b5eebe3001d9ae2d97da3048f3183511dec5be7e68611712a2e353db81", + }, + ], + [ + 171, + { + "explicit": "0xd4a52a88c8ed0a537356c020cc0249da6fd123d32124153f92e761f272c94428b094f67d7c37731306612c508ebf1d8eabc8f1102ae942fe53a8ee4e758b1f8e", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0x7e4c8d53451a3fac517cd565de7cec5d60dd6a144c3921c5d5f0d243751d255f", + "descriptor": { + "collator": "0xc4ddc0b208edf9a6ba89eca5a3370018e9209a198b168d0c196f66107b4d7115", + "erasureRoot": "0x6735cdab2d3b2720a6ca23d08f33af152ea6624e017507b83c25072e4b061939", + "paraHead": "0xca758ecfac046d55e355bf851798181471dfa358d50eb460e8bbd5cbcd6c37cd", + "paraId": 2052, + "persistedValidationDataHash": "0x46108471ad3e4c9a3fdd9097d29528fda25f10589d758165bd97353340efd403", + "povHash": "0x9f571a07361aa886a54a88bf635add2df3510086f6c18f56df9697e32ec54746", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xac64ecd1c088e5cb428f958008487419cb5f5a39e0fdf1ad79843d6ab6a3983611517e5418c69a067873c6af2378fa27d513ae474a0111d731f8fe8322706487", + "validationCodeHash": "0x3197520fd2b95cc9d14e1fd96f4b3106e1c1dd52e0712dedcaf1fc1e7340900c", + }, + }, + [ + [ + 187, + { + "explicit": "0x926cdbb3f33dbce3f3a544104d292004148e2f2fe240f146131a1fce09c375730984126171c3f07c1a5fb67d1f48e8784c6c31c97b2a6e46d3f2e6282063308e", + }, + ], + [ + 188, + { + "explicit": "0xb0fe8942dc636e299bc59a29d49aee41aaf21ae84504c2f70f1b3a0652af4e26fce8e2ac8d11444e79ac0713cf5ea874a27af553c546f97d476cde56bb00818f", + }, + ], + [ + 189, + { + "implicit": "0x4c9335147ef3ac88950a2867d201f1b0b4507e0dc939bf6c832fadf08ce6966050cc1d44e8ebc6b622503e14c2c21cc82fbb1d679cec7d65e56a2eaa70cada80", + }, + ], + [ + 190, + { + "explicit": "0xe6619e64f3ca6513a1ec6848a4d9674640844829fea3d2f0ece02d90c4bf754820b7e53481bfc6507022a6045e35112e1da919635ad8113991b5621326851b83", + }, + ], + [ + 191, + { + "explicit": "0x186bd1e3e052595e804112a290365546d1621e362ec0978a3352bdba8c6b0d7b00b9e70b2dae4766aad5548209c0f19aa33b5176df32b13d1926b51b979ed080", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0xcc277e6d77133594730cf6cc3838e2b6993e31c4ea078380288e7944d64655d3", + "descriptor": { + "collator": "0x56d9deb60ec47ab2da0e4b08840d613d143dc6202d86a2a4ff1daeca55d0f30d", + "erasureRoot": "0x899c10b9c1c1a4d24f51d969792dd8c2b6a4b2dab5854079a2e128d80ecb9fa2", + "paraHead": "0x5a4c852abcdc4c60b2a6da1f0a1da29f2dc4521f31642773a84f36659cecf900", + "paraId": 2086, + "persistedValidationDataHash": "0xa1e2c868f5b4a5c982ada0bca8c204183a885374bbfc7a2ec325aa2454e98ebb", + "povHash": "0x5809b3d9c380b38f388b8d017441cffea65985570434ba49c2096b06d7c28de4", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0x7280dbafdb1e6dc0b1cf0eb65511119d33304392a2a3dec87c051e14e16f527b785aca558f0248a09040c626a77e37677cc360fda33ae9b4b77585d523e97d8e", + "validationCodeHash": "0xc617bbd6231c429151c03b859a19e92831a7b4bc14b12cc5a9a6f9be99be677f", + }, + }, + [ + [ + 212, + { + "explicit": "0x70474c086c6f48fd65d013ca7c70616e7cc50f775fb550839365bbfe15b3fd504662607ec9c48400b3776c41889d477e1e51c47d7bb0b0d2197f951dc4c38d80", + }, + ], + [ + 213, + { + "implicit": "0x161a7391e3e4a62f6583bfbd68843ae77fbfaa1b3f636af0dec6f9323795c24d0c4afa37203844a3036e0e11f0948895b93f40871204b9a622aa9aaefe89bb8d", + }, + ], + [ + 214, + { + "explicit": "0xced8c1b840e6af666640dd908c7e16c72787a03a12f11c3a926b6b24ef17123f27911a4e5d4c6383e83d890e97b574568a7d7bc329dbcd09df9f6b349ec3ca89", + }, + ], + [ + 215, + { + "explicit": "0xccf494e5850196ed672349acd57d5008a64016170c7a6381a321b101d2ff1974b9e38a166fa44eb5b05ac282f5f34441af4ea639354e9e2707cc8fa1ca2aa18c", + }, + ], + [ + 216, + { + "explicit": "0x2c34a7bde47447189f578b2b62e2f9ea6c79769361177e68ff4264bdb68bc82da90b812f34c1cd8338706f5ec99d148ca0aaa27df86cb82b97512d61960b9181", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0x3d165636588da04cb8001d03045184a72629dbf9abc272f2ff6c04a11bfe7545", + "descriptor": { + "collator": "0xe483d298c8d6302c3cf9f682648e6033e0891910706428c3cfdd444423ecc607", + "erasureRoot": "0xbbd4abb1d91cfc8ae2aa516631ca8ddd1e16a17a6961dcb5b8eb209d74361e0e", + "paraHead": "0x82c3e2e211eb9bc74d5a54b9b1f5e69bb81b0ebf552a9fa1b43433b8a97649aa", + "paraId": 2094, + "persistedValidationDataHash": "0x4ab643be90b01dd56b1f99357d96fdfc1b65d341967078aee1dfdb26e0a52db5", + "povHash": "0x75331f761a6f3291bb0d0d7b6865867ee996b6400333d9582eacfbbc0b629e05", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xbe4377fe3f2fa565c30e1cb6e5d2596e00f52a92087b97125aedada86e5ec6448ebe7c88b36654938ea652c189c0cb7f326f8e3f935df8a2164dbb91219cef89", + "validationCodeHash": "0x1915b12af1b41674612e52d554ff1e56c5c0a4e8ff66a1d10eed853432d35803", + }, + }, + [ + [ + 237, + { + "implicit": "0xde3bcd2117ad9b010178fbfef10822ba5fcc501a0a8951cd03877e52463c4a3267f1f1d59a581324cb32b6e55e4b1ed94087ce649fe07268c92f2fd729686582", + }, + ], + [ + 238, + { + "explicit": "0xf2fcbdf476304feb4dfb4514568941a076fe917753eb11ffbb0333adb5e42d65dcce1624b5404ad49b67aa96f210c490b8cc515b1dcf036233fc95d5a30fa38f", + }, + ], + [ + 239, + { + "explicit": "0x1c847755825b6d83333b6ff327f31bdca0d9e67edb714cf5d3906ea2fe353375bdb81d88e4ae732bbfc5000850f0316d57a635e4d472058c08c16ab867ce498b", + }, + ], + [ + 240, + { + "explicit": "0x067eff3ae8673696ddabb8ed68970402ff24b09dc7a70554c09274fcac060e278f857f16b9a38c770b4764036acca2eae16fcccf44bf35196aa0a621436fe081", + }, + ], + [ + 241, + { + "explicit": "0xf0b7a676abf2c794b4e3d5c982bc66888620dea438d8d0c8dd9ad4b4c39ef559d6b740147b32b7df8c2ba22f09233e8d0295fa302c6eaf834b256a59bd72778f", + }, + ], + ], + ], + [ + { + "commitmentsHash": "0xd9f40f87d1904d3ffc27d33604375852aaec247b19d4ea55801a9e9f1d0d9e0c", + "descriptor": { + "collator": "0xe816db14581022097b59fc0ab855bf196d2028f78b6bb4589bf61271a52ef361", + "erasureRoot": "0x88693437a521bcfc422987d1372b397df4b218303aee529ab9a9eb62b507dea4", + "paraHead": "0xf646baddeafa3e194f58798af1ea362145ff3bad8f8a1a86ef1e57e9e6511ff8", + "paraId": 3340, + "persistedValidationDataHash": "0x5285f73141c251077d1f2b7436568f0c2f2d7aa74f0337d4a3c5117c1f4de4c6", + "povHash": "0xfcee3417f04ce21d7cdad1998c5feadc186c152b1c5df4943b0cf15bab149c8d", + "relayParent": "0x68f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd", + "signature": "0xfaebbe677cb3739dbabf8cade29998523c2d031b6b96a2b8141522a5fc94862d664b32fcba8854e47d93a165c8d8c1f0632711ca0845bf7c9fb7fdfd8749bd8f", + "validationCodeHash": "0x30e9606177112b9f3a6272515b9c2073309b18549a1c09bbf37bbcf6cd2ed6bf", + }, + }, + [ + [ + 277, + { + "explicit": "0xd4257959308f460192ee0fcb225463b640ab5ba7b5a47c0615c762f361d49b1b7efca3836551ff969646a22b936a2a45b43da7130549ee352f375845e8e76f83", + }, + ], + [ + 278, + { + "explicit": "0x649e9fc22e606f40d2dce8c83785db5396c540d403c1b3e636554fa2f35a552bcbfd36bec18880c67e1cc17a71a40751a4b5c30601494e5af2d17a4d12a6548f", + }, + ], + [ + 279, + { + "explicit": "0xfa8a4432d289f75927061b57d1e1dabedb075f56a53f901f827decabfb44f733a1369c1161827b91c5ff87223ff6eba2ae7eda0254e4bbbd6914642aa2e6ce80", + }, + ], + [ + 280, + { + "explicit": "0xc047a32dd1c5a289fe7cc5b3dadd52ae55ee97c943064ca46146255147396f656f720a6ec861bfb7e63e340d7484ba8aa626c96cfdf3a8095fa19023a2771c86", + }, + ], + [ + 281, + { + "implicit": "0x16ad4d5be264f61cb2c483da8f8680af2efede7479b1c5f64cb8a63a36979631aff540965cd5cca8ada575615409d3bd6ad1b3813736c026c5739f1050f9de86", + }, + ], + ], + ], + ], + "disputes": [], + "session": 7532, + }, + }, + "raw": { + "key": "0x42b50b77ef717947e7043bb52127d665497c98950f50bade7420dce7829823a3", + "value": "0x6c1d000040e903000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd34bce420b5376344db4f9c04de7c2c35dc8bb49e2dd8580d933ef2c9ef48405281c1db497beef5b3e1c6c50d6eb7784c132614f02f06d2e991794a9eeb59b881515f7ba9e497cdd448b0192808971b8930e978142924049937d5f4b93872874bbc3f2f38198a7604d5f10dc61bd74b1ff2108cc2df05b1304a6c1cc3c675042eb08eb5b8e49f380d8e345779c6ef6b99fa0b31506b655c1b41b5017e8aa61b34ba6c3f29d51a1c7f31689420f986ba42f8686337fc842403c9089abf727f5587afa5a5eb69dab489922f186997dea7c0ef610533a2142eff40586bda99a19deaf626bf4b4a80fba4c6b21fda0c8b49c44a2115dfc5320d0a67a6e6c17e87a3edb1e9aaed9c50fd43094530ae0f1f2e4713658b634419f6f166d044107cb44f32143900000002b88237c842afadbb0b0b90d0b81d68252b952b94b31d3ee7bbf40eb051a6fb0eb83aadeeb64c7b4239e1c23f3bc5bcbb111e1914ef02a9a28422f0e2b585168b3a0000000258ea5a84e8260e277bd34c129abca39ee0d5b2e5467ca2c9b0dcd9e338ba5f4d79fd14f08de3ef86819248127bdb31cf1830dca7811b342222d0074e215ab6813b000000029a6a1244efb1ce4b3833f5d586521efa3216d92c92b0db9774dbea030a76a12805a1660cb09504e9c19ed4b085e5bfc6ab5ac531ee16b37c7e910ed29f5f77873c000000014af9df994baf78e1c57535c507237f874b5838f1d60b19ff54be95f89047df22f2e19da4095d673bf5a0bf1a1cd598d00e52ffb8286fbb950a9af81065ef95853d00000002c4f5a8034ff0885e9de3c70a8c8fb1b6d39ba8e20969dc69410ddb6646f38a3622b57464e5513abd903e3aea0881ae7187d54f911619b5940de54a959b882e87d607000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd088b5e65c4b28d74bae6df0e1bbcb06b42ae37902dd4a22e98878e394a72aa3168cfee47e8d353673c0c102126c4794f44031fe61fdbd9588adf65c123cf5f7384b45695fa54277005e7ba803243448a7defd0778d0f4e3190fe15611b050a61834ad3bf487a9de3667e1be825463823254169d2af862040132d1b641d452da0109be59a09e082f2cee3aa1a413a20cb00bf8ea28dc73a71f6f37ae5044979131a89d25a701c58f0cf7b88923504a5f6c7ae46dc94764289e025477a66e3628450bf2ab7be3d8f63f7f268f1b47b4fa7c75717325345b552c08173ba26b75046665de129373c6fc927cc5320320e120b01af446e8a04430d6649a97099b2de3b215f30e9f691fb84620ff1051541ff38849a7158b609936a67b036725b14c727144d0000000248452c9e9f5e35f9db6ab7e2d04d6c6667f562df96e69f3817ee11228751de45ffbb9c763f072bd1d6866920652cf70e0a68ab234fc4c21a7b602b00e7fef7824e000000015c83822e5b05f758c20cc5e4cc4fd5e82553b3253e2d92210935949e6819e1418f19e7b78b67c80de3e7c7e6c3340e8145326b6c13ec6e04863bf8ee3742cb884f000000021cd4ba3f4ad9936235800d364a7bbc083676b7e82d96b146c663b1ecdc39880baa917cb6f5f0941a1bf0711f56b23fa401346821927c0ebce66924622bce3c835000000001ca94c2098a5079de62cdb15ffc1a1999f83e9f40497cc1241e042c8678cd77519e826c73a3b5e758585afc4001f3a7cb142a49c6429b927ae3290cd05614bb855100000002744ddcbfb8742057ad646af294923c5ae0c8744e9ff4c0d8fa849eb7899da076dc8f1bec47bc7dc6852a60e6869af3d1a48b10d819f4dde8e5f879f0b294b982db07000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd36fec74c47ae63e590c30bdcd2ad61421f53ecfeec62a087406d8bc7089d877abf42ad0cb9cde1af904808e33f105cd938583cb5f70b1d49d7457e99fa7d43efae9b745110d9a833b2c0b2d8d40a6750471fd279fc07245bfaa04d18e929cd896e2237470f29cb7849760a2508187989e89958cc6f9b072cf5b7e64d34eba82e2af03a5e9fe79882a6c25b6a869c9e562e9b865fa4281fb45b2b694182c2b879bf02a7b4bab3fd203dc141451c8fc47a6a17a3611c458afaf06893efafdb5e8b7443c966c47bee5add41aac1411ed51c7bf7bda5d3f013de6b2f49d2bbb188830cbe7526ccc44bc30e3a46d3c5f30e18935c3adff597f1ec0b621f46efa1e79e9b1665f8e795309fe3fd0384358fde69eebe300a55c7829e3dfb3776c00da15d145c00000002a027651ef3abdf36a2a25f93441759614202f8f57b43853c5d82648da3dac77603886610b553c1eb1b354e02913c083c2d996236ebc66bedbdecf3de1ba11f875d000000024e088de72c30d79e82940af9e20bd41480144e0273e9c873691f65d29a664258e96dac4fbe7f201d933b4b2b148b2fba7905ec18214fce9b1674c518a1b9ca815e00000001229ed2791ef0247adf85ee05f1c2eadae6eb4bfff1d504e4bb4c7d220eaa337e0cbc9b197e6416287563dc431f4e45b513ebcca26b6a3ec1e55f6a3cb89c7d815f00000001645ea3825ab5ba93bdc0b79d29781baeb5668a7adec2a47947418682cbaaad11721e465fd94e54824ee0adcf68dac235cff8a2a5e06af05aef645ff094b1c3806000000002d6d720cba159744fa829fb202b32188a4420d23aeef6ebd0176ac248fdccf1308676e97f6293510e1c446ae294f639b5731817a7597320dea4ecbc28f712da82dc07000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd38af43e5bf497bb4dda48b1baf8a3e3239baa9c0436720196c0a83be6b98212e5b2ccaed8444f3e5c50d1b2d8a41a7c0799108d19f71dd6a864e94e8c48634d73dd34504fd032ea1440fe419e3d9beb41761c863227df304ab3a385c43d935a72b35b9a8cd21051557c17a4680a8be20242a7d0faed3ca6dca6ff8767043356a947bcf88f20fdc83bbd59ad1aa82da8b237052313aa56d91d3605cfaa13b1f70b21db8920a4ae0133fa65caccebb8e4b9670805a12ca6a74ddcc13d3cb7a8e872c9283bccdd2d23d2960fa740d15b8455365d2fbeded544b6da17e895142e0409fc8f19dc6d3f4966556139992c83c6f54abef6264b6a9c7ebb8243a9fd53245f07cdda2f9ec7c48fc3d5687e543f71d4db6fe8bf38051a7b981817676f805f4146100000002d2f2f623d79ed5d3284ef4e05f2390e8ca9de563e1134e06662910d750d58a5416a0eef6bdd602a23e11c9c6faacd3ea261571719db68e0023b33f4de6332a866200000002363b1b5a58cf94d6d8ebcbe07dc0f684424d4f419bda4d0f7412d2a94f1f20747ba1856cd9412c83b1224f5b990e6f83e6769f476a1fdadf5a76f3975d0dce8e6300000002a2acd29dd8951136aed54d1f2225c8504d2cf9b71cd376dced39a25c8826347cd40c6145ce8b6216dc19bf687897fae316ceb9cfcf25eec6bc59605e9613b08e6400000001363adc93fc51ff4de41d077d33d629691c731d4f86048344a5e4fed325d371003affd21fa515b0d6c94ab33b7e3ce1d1a1d0b836389aa47f904a41aa4f9d428365000000013e71dbf2c5df2979d16f6d37c24d17f852f6efa48815355a2c73b152addce11add5168629cd5869b86b78b03f4f11c096ff202c6bfa47ef03c13e959d6610589ea07000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd449e038875bcd7b68758154109264251f3c6b84d1395957198bf8cb39f30e93445b1d394eeb1f2a26a7288a6b446361cecb1d2e138c93d8109afdc41403c28554c1e42ed1cc74b6d33294727d75de7faa00e80e8e6ff9e04d9f3b606715e4d922d65198730c68549361d8371ca433526a7023bc336379c2594333daf76823e4e0e3d25bb91a4257086d214d66374a9a96838f7286aa80fad1d1bf78ea46d3a416a7d757425438c5d1d833dcec2a5b97029623f30b1babea300791d540915af8e7ffea3aa15dd7588873e3f774726c399e2af8690f64af69538238a70c7b908b9207767fb73e1fcf8ae32455843419e51c94987228a4b77857aff7653d103cac378c22af305d232c0978fb983efc41330a48ac47db21a1aedd63a22d646b268021475000000027c366d694674f78c2d23e0b512b9112e6b90c6bb10af3cc85b1fdc1a4f432f5770147f9b9dbadc573b13c4b3c719c5d50fd7f305d9732351e8f6778bff53e28776000000018c7b771f09a040fe99c0c5f855f80225b254a6acf6f3f6c615b94826ce37202b80d8403840b971815a0dd5fa5176810ff7adcf7972979b2fb148c07fc00a558377000000026e3e67abb6d7f00d52e59e7a4cf085b90158934a8263e903da29eceb7bd0f75cf87c220c656d7aa81c56440dd66a7cfa7fe0af4fc85c724c3ff4a6ccc61cf5887800000002a0339318ce2b6d8d91ba3b8d1af129225eac6e046dee581f1fe41d3d84184d0ce471e24c34e3ba8c59af283c54dbf947da4ae4aa2de13df4789849d1b2863f84790000000234a7f79d6dab6e1fd704c78c09874407434f415ec07832a8b3fd487b5007e244ab484ed5fa3e3e68f386502e120571438874d9dc5087cf1178a06bcd8251258dee07000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd86b64734fc2f4a78b337e299a52666297e4c6e9f373cd056df2a0d4cc0cd17257b2072cb946ea7011c0f07d3747825e1d5a7f257d83ed7b53789c90ad59457c60f691c2555cc87c53e82c67eab26a2a55fff5c856dc8539b1d330bbc8034f725441c9a1987786142e22a392cd72eb45c0e3b7c9dc48e6d715ae7103c252478e81c0acec361273e23654a4b0cdbbffc7c756f607892038ed79f8a9ecd286c877ec0bf774ec74e6df0b5e692d12e92baea93a7e696e2469d3fd7d881765fb0ed8f8699e8765c1aec206e0d80f31dbc735346a3f1d5479ff4584e91889c06fc6e7b9b0320f665e103a6b614b812c6fa1569e2c7b53c4c98c5eee9e0fd126afef95afdce9847e4ad002474cbde21028c6404a93a4a3e2535274f8c1dbd2136e12887147f0000000276a009a149977a619a5424715dca56de66bcad320103733dd2582fcfa76370115a54d69d9258aa4de0f19961b6dfad4b93d3904a5cb07cbff1729292617625888000000002f2ac4cbb59c04a9755986c447924d2a32973d493b55f1f1528330f3db4366e6d9a462896e2ebad94ada53d0984eadcb6e09109025e5e586bda284550362a4f868100000001c091fff3d6b4662b6c4be72ceb5fcc3b4d55ec2a722ed585f9be450329189217891b2fe84f8d0ff325c80e3be8ff0e1c1430d80ffadd2e2e83885aec893f928882000000025e982338d8eee499c953f0ec1a1a235e635fab15108c0d2dbf92a38366e786292a38de9ef0851129b9096b14737a1c6610a5031bf0e6b5f9905ebd3ee8ca5d8f83000000023a051f7de3ba3c644c904e38ff8df87c8407257dc69c844f4a2dfc6ac086b66841726956316d8075d9273ca36eb643b63623298ae853157ca7127757f9453982ef07000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd0ca77d1cbfabe3485794fd86491a18048e0520a3524c6bdc7e5691017890e94da077a2e703cc2d2cfa0a11bf48492dbf0d8c8050b29a40b0a4b0ed65802556dab41e615729474d448c9d7cac6ecc4eabad7a71467c7f4029e05e2fc4ffc45345b50008440c1bac3452d4a606a16edf418dbbd08911ec17f22f36e63ca4a9d3e9b8744aa16a3cdf4c02dd11277a0eb22a39983f72f61ffe5e6bb5486a69239a4eb552a10eda1ca2778dde417b2b1f88017263120754234a82a0692bce55c5538c129ec7d1f2f83fb0df4b829b20e25fa28b6b001ffea898a0aa1c57d5c744b1edcd393115b86484068d173d2b582f843e5f7c15f42d4026470316ce9a64d077010cb2398f0181f33f833c449691fb34ad405520bd8c38c88e86a17cbbbab74025148400000002629628723fd4f6a5c0f5c5c98f5f90009d3118b4ac0bb4d95d92d5ed622072521e221df6a1ee304c3f9cb2247ed37e29518b651402f1f2328d1a61b85fe93785850000000150e8a0bc93df5a222a9f432ac33445d987c4a65ab1e3ab4bd3fb90b12b79692d521abc6b35821fbcdb06516701d1278c18fdb185e9f98d07fcd5456378f32e8f86000000027e3bdf2ab8a46f3db9890d458bb1b34598937f34dd1e70f952de1f739b1b365d01075dcd6013a889f16874cf627ac1fa61aad8532f3423d3b32b175e46a8e58f8700000002b879866b3e86077611ba8095d31f16a3b99e02ec41d58c7a79c526f839c59e1b81f7049612cd02c2ec3c370d69f0c3eb2ebb6a78fe6d5c825d74b9512b1745878800000002a06cc198ab4275d7fc10d87d85cd70d735e9c5d769ba0072a9dfee29ce88966b61dc2a81ed315c73e5f4951ed9003da15fa722066eea89442f8017cf68cf3387f007000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd9247e05ea9167e413d53cfbb6d2425fa4a7e587045ffe59e5cb12292414d9d407d9335a339900ab6319773c33d71553e44201601b6a86f65c96dc8f2d57dc808f710d8cf9d853272d9582f36cbfc0f5462a0a88a3d829d246bb8b962de694682da544a2cce6b1e099a76c09f21812f529bd3f03391b8acbb4382ccd0ef055884fe6aacb297f282bfa876b8f8a7b46183f140c1081432784496b908096692736d57b1f24ad23a9018cb4b8aed5e1c1c507a4e1c89c4a25fc1e9dcbfc8c36baf88951923807ea792b7647f6364b6a16a4805f5e41903e1d94938c9100e4c1ae79cb9f8cb5040d1bbf541e0909a87a87b7101a8a43ad43eee2a62f712a8a2fad7071d638da30e25b8fd25dff45be1a32ee26fe0cb5ec4525bc6db6886e52cec8c941489000000022066495b2a622780d00d98ba750e6cd3128f321ae988c901cac765d78ae7eb268cf828257452e8715cf2b1a8ac07100912dec1fb17eadf65d205a8727d840f888a000000028aecf1b7bb7d8c8ebab0d8af70041f2db7f61a405ff49b14d04c79ce78939e7e642b19224215bfbd5aa166854f7afbf4399f2b6be89ff884b82754b820ed03848b00000001bacd413b0606ff876c1dbb0805da160d5adb236f01545aa950736640d482ad701cac7861851a68b765e3e26f773a26dca1ed19db96cb8c9b921e3ede4e1214868c0000000142645d58475c86b781546c6b8f5395c5b3e205bb23641abefc6ea34892b2032fda5a3587701a24097a6fbd9c87805a1a9fc8d2698872717e74d23918960cc08c8d0000000278fef717a740199fd80bc4baab93a8d5fa905259147d32c65db51c9b92c80d2031631e8e0ba451e4075d95a07485a489fc6f6c679965d2e4686ad5ea75888c86f307000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd7add50f4a537b69ac1a069d85b5969dc4e6f14f13311e994e43c88a5ca3d820efd271daba2d9fb590142bce6868cbbbd0fec95e917c44b63ccb0a7fcf7d4071598ee2d22502c68e527b45e0a035382056681cd69c109be3fc90a14a3e1575d16f5f2f4a0445de28aae256a5f87cc0760ea20927546ed3d53bab217b075ebe949862b0380bc529ea6ddd75c61a3a64b0d5b9138e670a65c5a9a6ff89a28071070d085f985bfb55e22f5ccec11dea0f01ecbde3162545f463a4e53c30c119d51845c74c1d74eaf9016d26cb67c176304788e2178174bcd66f53924a414879d6757c422ab75036b13335d16daf8eb4ac486673b5ba987b47f3b3073d277415f15b8f8b39e0492eae274be6215f825efe3e771e6387db96f1f01c002ac8e1e4d85d11493000000022c0aea69eff094a9bfc65b94b71807b9a1b03b9fa9fc9ac26624eae375c62b65a3eef47067678be3dcc3a7675a6a891af0bf8b98f9cc4bc8e3b6d330f20201859400000002dcc63a54d44c23483d4c02c49a6e5e6b8908af7160c0dde7eeaca28d3d6b8e02fabe2cd876805cd552004fbbe1a1f0fc082d6905ee898e5f8608957148adfc8d9500000001320514e5e93fe130b1a01a8b82f4e5b472c10a81af54e311c2ec9fa83c87004fd0b2dbf02bdfedf0faf53289bfe40e7915e111f5f7eb0d56eb07634bf554d68b96000000023aa862454593c78560442e0fb951d41c4179dda7644b7a2eb78c83690fdb9c20991a629d1eee44bad09d35db8da4de30a9aec53b7576642411b9483dbe0a108f9700000002d4a8a191e948e13fb4ffda3481a10b6a1e70ecc321832a56eaadbb12e9eaa406b0c454d1a33837d516c73b8b66005f70c6e691661f3173a81628cc4923b9b288f707000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fde0b5632409e78aba11d0d559c96acff0247194879afad0741ae3848f61e74a02d80d8aa66b597caadddfccd30c47f99649a55db09807ad5e44cfc0a9b2d6614abcf9b988987fd02dea4733fa454e6d20464e372367f530b49080c7cf321c80f76c32d1e9b020d2d3f4f7a6aef673a941cc291070f4dd4f0919cc3a850f4a8b98c08bf278544c6d723e25b49c8226696af983e63b170f79c5ad87fcca5079e973557b3554a3236f6855114e4f626133a0965dae5de52d8e2b8e7f405c2909108a6270b82484129fa3e8f808c3bda80bf9614ef5017af435e7ff50de5a68a82cd4088b3f2153fdc8dedb22d5984ca5773ab7e794d3a9a6f700d1fdac1e54ca83a97645f472595fe1126c125e050b012211e7082d645aeb2816a115968b07281abd149d00000002a20ea277446eb8bc761543f33180d45dd6278af0861b3c421255721ab59e1e2e2dcc15375f24d84e7145416d56ac4cc739e93e46fe9ed355829c9ed0f647ad839e00000001d0b6af9b82e24ed1cf0d1806acc0dba47535c569c26d882f70015521bcb24b5d536421a0f7ad01a9bd8f1c58714bb5dcc2ec2ba469df148d2d06481bcc3143809f0000000260a6189cd44082e82331340405ecd2c8fb020fa4278faa4ed5c45873986c6c5d555ef187abd58ea18a750e6bcd71265ab477804bc316984435092a0fb15e658fa000000002b843fc4714350fdb5761c1e4b383992fd15fcaa8b2c734f44a35b8303824732b428de8bccf2d5366692a64ebf2b45d864b3a58c9e7fbf2fb72c830cafe048984a100000002eca94f74f632896afff44968a76ea740ed1e7454dce4f6e740b644b9209b7e0f32c9e406925c4366b04284d5c7b7a679ef16caba123f35448d6035edecbc108ef807000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fda604c6cd403daac04dc0c95fd573fbfc54f6359db5c549d626222973c88e92454d69f9a5781d13c28b8355f96ced9f8623a5f165463c96e93269d54a910f8386a6b7d9a03eb71f39409558b24f8461837ffae480f56d8c87a252e91bd2674ba46d9dea464c880e6827b5f1c72acdb47fe7f7dd3b6764849023e5d7db2a8b40f48cb5ea510c06ecc1561aafd614de19cdb0c812fb77f0f06be0a3b614c1bfe005c9f5e5a43ca9a2d62a6d9aa032f5b054c1167ea2e0a323eb2eeda7278adbc8883aae124bec893c6d9588b4a9a0dc592d1be3a41e8061c0673b2b244175afe45022c6a3c71603225c485cd7bca887833449b3ad4578d440f2bb4bc8722a6e9e041d65fc0e7feb9e52e40b57d168e876d7093ff1a911d452a8f4a0cf8276e0e1ed14a200000002e67f16c6d27b8df6ea6cca0d8a63254481e42113f07da27273dc1e02be3118485dae897dd955c8565a0c2d7920b84b8554eb8c25bbbf988f4b0d46728292d68ca300000002164c59a638b86ce8a6687c447ef99bb33ad2f8c71c40a81b8e3cfc5e051c933a49c8362a22ae2d90aad3c4b77dc9464a3228bdd80c90ed886ce30179dc6e0586a40000000202319a0efdcd8f6687b07aebcfc82b16b924088f9dae4603a7508bb2b9df227016885cebca36c6c142569e07d67784ba40c435ca8e68e98a03f708ee5de15a8aa5000000010627106926444892686b2814aa4b78fa6046742de936826d873b92977a2ad001bc7de5f866f7653a61f010d48bfb17c33a6712c1331ec395184227de6fb80b8aa60000000164f99d1e8a53a4c64eb461e43ef656b93fbfbb36b1757d5d99173940c144b663cba904fab2f7bd305715373cda627b1dac4ccd785919f7726baff6e1d56d6382fb07000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fdeac753e508b8d16b4ab5b3709a0a5821144cbdb89e68967f7b02bb1af21a714b06d151eeb3824eb6f0cc2ddc81f083e49cd4df8d969b6e132c678666e0b299e141233730532342edd7f6d9becb76c8d7caa7aa80817c1abda327b6fe03198bbc03bc9f5e9b35af54a66d15ca36eb52117e98c69adb884f34f4b84ec17342f5aae60b63f5b812a3ec88c0b216447f1902ea15258a0cab4a81773fa4b08ef9ea29c3a9b16e9c700a9f597d89a307725957ff23795e0b3c76b3c516edc0b9f97e83b45f6e456e9b91c4e8284239a1e6a834a7bdb7a7eb89cfa230b1406617d2adafc7f62a3b792962188d29434c701695fac145be19180c6121beac2e168c7dba89d602c5ccc4dd3f4fa71bd465940b17c5127df9f44ab463330055d7747c68dd7214a700000001cc8df425f24f706f05d23e1a20a903ededbf3466dcf11428632d4b7755761311508cc80f58880a51aedf3eb5fc9aaf35558f1b9ca63f48857bca265548b9e48aa800000001161e3166a3c42941e080665246a35ace3cc7851f1a8c66584c2672bc3663132ddbda0c7a5e66a41c2dd042c44cab58cbaaa6ca3c682b18a4cf46c2df55474a8da9000000010694771b260f48fccbc5315f739481facf34f255d5d84025fc000da1732fb2566fd15a6ca6aa120ee7620d8f0998658189d27189a00919e5728d1c298bde2c8baa00000002c40b74d1edda1fba70297bd3c969f6db1f0f007e93873067fe3c03d53aa04a6c36dc59b5eebe3001d9ae2d97da3048f3183511dec5be7e68611712a2e353db81ab00000002d4a52a88c8ed0a537356c020cc0249da6fd123d32124153f92e761f272c94428b094f67d7c37731306612c508ebf1d8eabc8f1102ae942fe53a8ee4e758b1f8e0408000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fdc4ddc0b208edf9a6ba89eca5a3370018e9209a198b168d0c196f66107b4d711546108471ad3e4c9a3fdd9097d29528fda25f10589d758165bd97353340efd4039f571a07361aa886a54a88bf635add2df3510086f6c18f56df9697e32ec547466735cdab2d3b2720a6ca23d08f33af152ea6624e017507b83c25072e4b061939ac64ecd1c088e5cb428f958008487419cb5f5a39e0fdf1ad79843d6ab6a3983611517e5418c69a067873c6af2378fa27d513ae474a0111d731f8fe8322706487ca758ecfac046d55e355bf851798181471dfa358d50eb460e8bbd5cbcd6c37cd3197520fd2b95cc9d14e1fd96f4b3106e1c1dd52e0712dedcaf1fc1e7340900c7e4c8d53451a3fac517cd565de7cec5d60dd6a144c3921c5d5f0d243751d255f14bb00000002926cdbb3f33dbce3f3a544104d292004148e2f2fe240f146131a1fce09c375730984126171c3f07c1a5fb67d1f48e8784c6c31c97b2a6e46d3f2e6282063308ebc00000002b0fe8942dc636e299bc59a29d49aee41aaf21ae84504c2f70f1b3a0652af4e26fce8e2ac8d11444e79ac0713cf5ea874a27af553c546f97d476cde56bb00818fbd000000014c9335147ef3ac88950a2867d201f1b0b4507e0dc939bf6c832fadf08ce6966050cc1d44e8ebc6b622503e14c2c21cc82fbb1d679cec7d65e56a2eaa70cada80be00000002e6619e64f3ca6513a1ec6848a4d9674640844829fea3d2f0ece02d90c4bf754820b7e53481bfc6507022a6045e35112e1da919635ad8113991b5621326851b83bf00000002186bd1e3e052595e804112a290365546d1621e362ec0978a3352bdba8c6b0d7b00b9e70b2dae4766aad5548209c0f19aa33b5176df32b13d1926b51b979ed0802608000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fd56d9deb60ec47ab2da0e4b08840d613d143dc6202d86a2a4ff1daeca55d0f30da1e2c868f5b4a5c982ada0bca8c204183a885374bbfc7a2ec325aa2454e98ebb5809b3d9c380b38f388b8d017441cffea65985570434ba49c2096b06d7c28de4899c10b9c1c1a4d24f51d969792dd8c2b6a4b2dab5854079a2e128d80ecb9fa27280dbafdb1e6dc0b1cf0eb65511119d33304392a2a3dec87c051e14e16f527b785aca558f0248a09040c626a77e37677cc360fda33ae9b4b77585d523e97d8e5a4c852abcdc4c60b2a6da1f0a1da29f2dc4521f31642773a84f36659cecf900c617bbd6231c429151c03b859a19e92831a7b4bc14b12cc5a9a6f9be99be677fcc277e6d77133594730cf6cc3838e2b6993e31c4ea078380288e7944d64655d314d40000000270474c086c6f48fd65d013ca7c70616e7cc50f775fb550839365bbfe15b3fd504662607ec9c48400b3776c41889d477e1e51c47d7bb0b0d2197f951dc4c38d80d500000001161a7391e3e4a62f6583bfbd68843ae77fbfaa1b3f636af0dec6f9323795c24d0c4afa37203844a3036e0e11f0948895b93f40871204b9a622aa9aaefe89bb8dd600000002ced8c1b840e6af666640dd908c7e16c72787a03a12f11c3a926b6b24ef17123f27911a4e5d4c6383e83d890e97b574568a7d7bc329dbcd09df9f6b349ec3ca89d700000002ccf494e5850196ed672349acd57d5008a64016170c7a6381a321b101d2ff1974b9e38a166fa44eb5b05ac282f5f34441af4ea639354e9e2707cc8fa1ca2aa18cd8000000022c34a7bde47447189f578b2b62e2f9ea6c79769361177e68ff4264bdb68bc82da90b812f34c1cd8338706f5ec99d148ca0aaa27df86cb82b97512d61960b91812e08000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fde483d298c8d6302c3cf9f682648e6033e0891910706428c3cfdd444423ecc6074ab643be90b01dd56b1f99357d96fdfc1b65d341967078aee1dfdb26e0a52db575331f761a6f3291bb0d0d7b6865867ee996b6400333d9582eacfbbc0b629e05bbd4abb1d91cfc8ae2aa516631ca8ddd1e16a17a6961dcb5b8eb209d74361e0ebe4377fe3f2fa565c30e1cb6e5d2596e00f52a92087b97125aedada86e5ec6448ebe7c88b36654938ea652c189c0cb7f326f8e3f935df8a2164dbb91219cef8982c3e2e211eb9bc74d5a54b9b1f5e69bb81b0ebf552a9fa1b43433b8a97649aa1915b12af1b41674612e52d554ff1e56c5c0a4e8ff66a1d10eed853432d358033d165636588da04cb8001d03045184a72629dbf9abc272f2ff6c04a11bfe754514ed00000001de3bcd2117ad9b010178fbfef10822ba5fcc501a0a8951cd03877e52463c4a3267f1f1d59a581324cb32b6e55e4b1ed94087ce649fe07268c92f2fd729686582ee00000002f2fcbdf476304feb4dfb4514568941a076fe917753eb11ffbb0333adb5e42d65dcce1624b5404ad49b67aa96f210c490b8cc515b1dcf036233fc95d5a30fa38fef000000021c847755825b6d83333b6ff327f31bdca0d9e67edb714cf5d3906ea2fe353375bdb81d88e4ae732bbfc5000850f0316d57a635e4d472058c08c16ab867ce498bf000000002067eff3ae8673696ddabb8ed68970402ff24b09dc7a70554c09274fcac060e278f857f16b9a38c770b4764036acca2eae16fcccf44bf35196aa0a621436fe081f100000002f0b7a676abf2c794b4e3d5c982bc66888620dea438d8d0c8dd9ad4b4c39ef559d6b740147b32b7df8c2ba22f09233e8d0295fa302c6eaf834b256a59bd72778f0c0d000068f4abef922937019170a19765259f8cdf3b87fde52618810e66ef4aa3e0e7fde816db14581022097b59fc0ab855bf196d2028f78b6bb4589bf61271a52ef3615285f73141c251077d1f2b7436568f0c2f2d7aa74f0337d4a3c5117c1f4de4c6fcee3417f04ce21d7cdad1998c5feadc186c152b1c5df4943b0cf15bab149c8d88693437a521bcfc422987d1372b397df4b218303aee529ab9a9eb62b507dea4faebbe677cb3739dbabf8cade29998523c2d031b6b96a2b8141522a5fc94862d664b32fcba8854e47d93a165c8d8c1f0632711ca0845bf7c9fb7fdfd8749bd8ff646baddeafa3e194f58798af1ea362145ff3bad8f8a1a86ef1e57e9e6511ff830e9606177112b9f3a6272515b9c2073309b18549a1c09bbf37bbcf6cd2ed6bfd9f40f87d1904d3ffc27d33604375852aaec247b19d4ea55801a9e9f1d0d9e0c141501000002d4257959308f460192ee0fcb225463b640ab5ba7b5a47c0615c762f361d49b1b7efca3836551ff969646a22b936a2a45b43da7130549ee352f375845e8e76f831601000002649e9fc22e606f40d2dce8c83785db5396c540d403c1b3e636554fa2f35a552bcbfd36bec18880c67e1cc17a71a40751a4b5c30601494e5af2d17a4d12a6548f1701000002fa8a4432d289f75927061b57d1e1dabedb075f56a53f901f827decabfb44f733a1369c1161827b91c5ff87223ff6eba2ae7eda0254e4bbbd6914642aa2e6ce801801000002c047a32dd1c5a289fe7cc5b3dadd52ae55ee97c943064ca46146255147396f656f720a6ec861bfb7e63e340d7484ba8aa626c96cfdf3a8095fa19023a2771c86190100000116ad4d5be264f61cb2c483da8f8680af2efede7479b1c5f64cb8a63a36979631aff540965cd5cca8ada575615409d3bd6ad1b3813736c026c5739f1050f9de8600", + }, + }, + { + "parsed": { + "key": [], + "method": "included", + "section": "paraInherent", + "value": null, + }, + "raw": { + "key": "0x42b50b77ef717947e7043bb52127d665e2b2d1966457295060d0b3c7e44dca63", + "value": "0x", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x7e2ebe679f526e92794df9ea19f186acf7455491f3088031eae9c9a178f57b02", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d000004dff238d0b7ca16013320309c02a35f7e2ebe679f526e92794df9ea19f186acf7455491f3088031eae9c9a178f57b02", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0xfa5d6fdd18e9928a57eeb977f432c7878bd35a712b6a53dea659fa1513266bef", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000260f68c9a1f0fd03286678343efef5f9fa5d6fdd18e9928a57eeb977f432c7878bd35a712b6a53dea659fa1513266bef", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0xcdecb10df4c2a46411832bc59e47b99cae5641ab6cda43b9b2a92c679d545791", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d000026a426c37a6995705f51c90494d4018acdecb10df4c2a46411832bc59e47b99cae5641ab6cda43b9b2a92c679d545791", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x4f2e8d377fce325f46d9603d06ebe5ff71d31a14800c9a90106f12604a5a637b", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d00002ff9651d0d46ff8564f4c148823c82024f2e8d377fce325f46d9603d06ebe5ff71d31a14800c9a90106f12604a5a637b", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x16b3ae5f0bb6c133e990fc725e556b9c175acdac39f378e5faf3c37ef0173dc2", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000494d46ac1a54f3a1a21a16d1a0aecf8a16b3ae5f0bb6c133e990fc725e556b9c175acdac39f378e5faf3c37ef0173dc2", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x11d97c1645f0a22ce2399cb93925612d4250b786390ff68f6eff1a33cbdbb47d", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d000055dc2305c3fe71f49073fe531e6881f511d97c1645f0a22ce2399cb93925612d4250b786390ff68f6eff1a33cbdbb47d", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x5d817b1da24d5ebd937e6827a666e94b8fd5c611585100aa2a9634486fb2185b", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d00005ab7e5a923fb8cd8b3457f73dcf68b175d817b1da24d5ebd937e6827a666e94b8fd5c611585100aa2a9634486fb2185b", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0xe1b3cd3ee02e162b14978228fb16db19d8c25233c077fdea4a6a369c9590fa54", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000604d6f99e63116fe07b085d56e976690e1b3cd3ee02e162b14978228fb16db19d8c25233c077fdea4a6a369c9590fa54", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0xb69503e7e5e0a4c29185326f6e64bf47801e16b90f8f4ca35f2c5ea468debf0a", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d000064a81a5fa7653a9d35c55ad4473f60d4b69503e7e5e0a4c29185326f6e64bf47801e16b90f8f4ca35f2c5ea468debf0a", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x8af970c72055ae88f9f29d89fe06d94c4291d4549294e3d0df9003ec87ee01f9", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d00006c985890323c0121c5027ff11a33fd688af970c72055ae88f9f29d89fe06d94c4291d4549294e3d0df9003ec87ee01f9", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0xe33399a0ab79976dc5d6dc5b8ae1125dcf18cfab1af6d0fac827a9ca78d06c39", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000721ed5b97685848935bd57b0568cc3a3e33399a0ab79976dc5d6dc5b8ae1125dcf18cfab1af6d0fac827a9ca78d06c39", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x8ef35c4196a595aed2b47d79420352f94cbe07b1816aa931fdb524d494e492a1", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000834075bd7a5d54abf978c76dc336154f8ef35c4196a595aed2b47d79420352f94cbe07b1816aa931fdb524d494e492a1", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0xdf5c7e564d3f9dfccd8be2d650407e2857de9fbcd56fb89fcabb307fa571933a", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d000093c5ed012fa4f52d0ede17576b1128d0df5c7e564d3f9dfccd8be2d650407e2857de9fbcd56fb89fcabb307fa571933a", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x3c0377ed05d9ddd01f7dd08eb635f8ecf5001ba8fcecd162694b37c7671eebfd", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000abf0b4f5f8368b9115000befd810b8193c0377ed05d9ddd01f7dd08eb635f8ecf5001ba8fcecd162694b37c7671eebfd", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0xd1449a1c07208c3d9ea7fa13aea4186f50962f1f7de569d9442ef91e7e1cfccc", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000ae48e0dd3f6b7f49466ac6e335632db5d1449a1c07208c3d9ea7fa13aea4186f50962f1f7de569d9442ef91e7e1cfccc", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x0ce3c8f25ce14ba8f8c890016180ebed10b78b8c39ccb990051b6bf1060b3261", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000b5307f3b83261e8742bc852a670192cc0ce3c8f25ce14ba8f8c890016180ebed10b78b8c39ccb990051b6bf1060b3261", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0xc0b13a7d1ec21198f1d325341a13b801cb9ab9f6587cec68e5d2019859101bc2", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000c900f42433de6d88319e0a9a749632d6c0b13a7d1ec21198f1d325341a13b801cb9ab9f6587cec68e5d2019859101bc2", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x5dba3257e6656b73cb7d5c3452aaa0a2fcf6c1f1744b5f6ef2c5b60464f17237", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000cc902a4d0d71808fb2c78904e051d6ef5dba3257e6656b73cb7d5c3452aaa0a2fcf6c1f1744b5f6ef2c5b60464f17237", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x1518690a1fd1399183c9d10ab0455273a3c1e4cc8e75a8379e03d63fc99f7e71", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000dc912a8f954a1ed328a09336986219251518690a1fd1399183c9d10ab0455273a3c1e4cc8e75a8379e03d63fc99f7e71", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x4f4229205c5b8070473d6d3273c460bb2ef375f05193971a5f9f765f67afca24", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000de74f19c558519ef760c23e8e0a4dccb4f4229205c5b8070473d6d3273c460bb2ef375f05193971a5f9f765f67afca24", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0xa5d4d10f8b95eafb88c84497124787f15c0d45d0565951e5d375afbfe0d5f853", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000e5794f1346fd0d62439342cb3cde4e7fa5d4d10f8b95eafb88c84497124787f15c0d45d0565951e5d375afbfe0d5f853", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 7532, + "0x8bc7bc5e1cea3cb0e585215b042b16741fe1c61aa34093b4fe6118f229ea8c43", + ], + "method": "included", + "section": "parasDisputes", + "value": 17999999, + }, + "raw": { + "key": "0x50e709b04947c0cd2f04727ef76e88f6e2b2d1966457295060d0b3c7e44dca632ae80f924bb0e6266c1d0000f83f0e4f074aef1e0d14d63ebdf7db388bc7bc5e1cea3cb0e585215b042b16741fe1c61aa34093b4fe6118f229ea8c43", + "value": "0x7fa81201", + }, + }, + { + "parsed": { + "key": [ + 1249, + ], + "method": "erasRewardPoints", + "section": "staking", + "value": { + "individual": { + "111B8CxcmnWbuDLyGvgUmRezDCK1brRZmvUuQ6SrFdMyc3S": 42900, + "1124btppLcZCDo5F317Duybz6BPbbeDUpKaE4Xz6vWqGkxtk": 43000, + "114SUbKCXjmb9czpWTtS3JANSmNRwVa4mmsMrWYpRG1kDH5": 42540, + "11BgR7fH8Sq6CcGcXxZrhyrBM2PUpDmhnGZpxPGvVGXEiPT": 42360, + "11VR4pF6c7kfBhfmuwwjWY3FodeYBKWx7ix2rsRCU2q6hqJ": 43060, + "11uMPbeaEDJhUxzU4ZfWW9VQEsryP9XqFcNRfPdYda6aFWJ": 42580, + "121gZtuuG6sq3BZp1UKg8oRLRZvp89SAYSxXypwDJjaSRJR5": 42040, + "123VugBRFMqUEFviSYrG3ewdZ46ZmqxjmRaGY6BvakfdPVaG": 42580, + "123rZfdp1R6pBAN8Uft7NtsnSNLHvLgrBSkvLXtXcXtbP2Z9": 42300, + "124RsxuvWs31iWyUMvDsnoRUgLQfntxeBXnwWJd8eC7EVe1L": 42400, + "124X3VPduasSodAjS6MPd5nEqM8SUdKN5taMUUPtkWqF1fVf": 38780, + "124YFXA3XoRs9Epcx3aRUSk3EKYaznocqMWfrMKtGjx8TJ2W": 41580, + "126RwaHn4MDekLWfUYfiqcVbiQHapwDSAT9vZZS15HLqfDJh": 41620, + "12713bbq45c66CN9AD7yusSXWE1kY91DcMpjVcB2rXqZKy2w": 42420, + "12771k5UXewvK7FXd1RpPHxvFiCG4GQCrxRmXWN5tAAwDQoi": 42660, + "129TM37DNpyJqtRYYimSMp8aQZ8QW7Jg3b4qtSrRqjgAChQf": 42600, + "12DsYUto9AcKA4kRz1yLcGh13CTLe7LbUjDkMS8ZY8rCK4rn": 42580, + "12ECDEb18Wiy4MoLn3NTM5zhJfDfpS4mLNvjHpcEr8ogGrMZ": 41820, + "12F14P9VpqyLtjwTh66z9gDmjYh8rRFY2uV4BYxvPAz9Lhzw": 42680, + "12GTt3pfM3SjTU6UL6dQ3SMgMSvdw94PnRoF6osU6hPvxbUZ": 42300, + "12H9FfSYdQ4GrKc7tdxK8U6DitAZMqfnhB8gtHwd2rpCiZfN": 42640, + "12HFymxpDmi4XXPHaEMp74CNpRhkqwG5qxnrgikkhon1XMrj": 42160, + "12JZr1HgK8w6zsbBj6oAEVRkvisn8j3MrkXugqtvc4E8uwLo": 42860, + "12MgK2Sc8Rrh6DXS2gDrt7fWJ24eGeVb23NALbZLMw1grnkL": 42720, + "12QnCQKZnT77gEoHA1uGqESsCHq4QmwPhuTHgUo4SygBnxbW": 42820, + "12RVY2KvBCyBuKXNEpjqWVFaePhURwubBXqcyXKsEKdhhujG": 42620, + "12RXTLiaYh59PokjZVhQvKzcfBEB5CvDnjKKUmDUotzcTH3S": 42080, + "12Rnwa6JwTYcwv8pVcr5u9CfjTTgbm1wJimKjNpHL7uLV5yF": 42400, + "12TaRwyKkyiAc2hMGqfYAwNcrWyXBfne7teFbvkiuufNzuwb": 43300, + "12WmM98h4Ar6y7ZyyMKPXwSyuP5GSZvXTbEkDXm1tirbZFW4": 41300, + "12YFWxpS32wTZq4HcH28HMR5atkGhxzfD7aNjhTCu5Vyz9J9": 42640, + "12YP2b7L7gcHabZqE7vJMyF9eSZA9W68gnvb8BzTYx4MUxRo": 42760, + "12YVhYTtGpTCSXRvPHyNjDK7y5p4J52ppBVJGjWh2PGrUe9r": 42800, + "12YriAKEHukpdbFLB6C8Fyxsjo4bEW1Fk2RvYxMm1kZKUiGK": 39020, + "12bLdVAgWiKHgFHtAaQstasMUWVq35oG9iwHCwsKoFFNoNrk": 43040, + "12bUkY5nrGyoXqBpxKDf88z5VQWzaUK83PCgyHtJ1UN1ujjU": 42480, + "12dGS1zjyiUqj7GuxDDwv9i72RMye1mT7tSWNaSx7QVeJ32H": 42660, + "12doHFjPjPngNvZCWX4WeF4rkLFJ5LmmEyDvPGQ2C1aPppwy": 42660, + "12doSHUJN1P6HL9zj96Bh2ZwVBXH7NcCi78caVtte8aQWGHz": 42420, + "12e1tkDgfF3GYdiTkRq1vunXrvvhpKq3BQZYbJ1haXHApQTn": 41840, + "12eA9gosVR5Qa2hnibGZFNYSbxG3pafNeVGGi5eJQueautfX": 42560, + "12eRgJAAxrcikqRby3tqxykQZfJ9UXjhKGpaVR3KumUi9VSp": 42820, + "12eZSMk8GJYE2Lq943dSEnMUoZs1ek7jU8QN3rEA1yPZPjcR": 42880, + "12g7WPT9DiXnDurY4vebNkzXYth46r5voRtkd2gxpVSHFbWL": 41480, + "12gPFmRqnsDhc9C5DuXyXBFA23io5fSGtKTSAimQtAWgueD2": 42740, + "12gkhA8JEz8ywmVj1tsVafSp9C4saKzSofgMwBJcmFJAGUVX": 42580, + "12gp3USksqBBrThp7G3QYJ2Nw3JR2azFxqYgsSch4NyPFgN5": 41120, + "12gq6SixGV4Ny9Wzyn2MgDfHsSbevxASdrdXzQqm3XDKbXjo": 42660, + "12inPn9Ue4iEo93kCT3cNZNFtqn7htzrU7oiUX2ezWzsq5ja": 42860, + "12jZDB1QiwffAdADz7r2tBALX3rAWQjqvE3PRuNmQXsd9pnw": 42360, + "12pdN2XsNmG2yPAv5QCkq7YYUg1MM3prvGMgusH7S6FnDHAx": 42460, + "12rgiL4r56kPE4PuYmz8snR21isfbrcp5Vbf8VdJe2AWDuus": 43100, + "12ud6X3HTfWmV6rYZxiFo6f6QEDc1FF74k91vF76AmCDMT4j": 42840, + "12woCF72ik4rYzm8gUagTkEBw4S1zE4rRnAk7SaiHbbV9tDy": 42120, + "12wtfs4UfodYT1Y6y8NQsQaduLSJbhz7oaNt1F6gTLFHD1y5": 42700, + "12x3EG6dvZv9h3sLNaEFd4z2q8259tNgiEU6vismjrEZjbzN": 43060, + "12xedMA9ZJFe6Ui5VDYML3PsCde2LbhUzEYEPyCgFRcJvfRB": 42300, + "12xhnCTMJFL8PsUKq2oeowLBESbekuJ2SadKovKY7fML9QAj": 41940, + "12zcF9m6QpUaGeJrrKYRGubZuxa9YyuVRTjpXGyVNsCpzspY": 43000, + "133A8RPTXQK7EeiuvuXx9CxB3twZYFYEZJq8Z2Zhc76Dbusz": 42600, + "133TTqBqmhHo9X5YWxYKB3JNJCuLdnLQZLbaZDHqprAKVxgD": 42800, + "1342iFZNrBfCP9VWxqt5p39LiHp2ynyq85Ww9K7R8w6BURps": 42800, + "134Bw4gHcAaHBYx6JVK91b1CeC9yWseVdZqyttpaN5zBHn43": 42960, + "138X7AdRKX7myWMwoFgWfHj1WUZKKZrKTr2CZ8pGUUXTrkDu": 42340, + "138cbqFTzepokSzQaJB1AKtZjTHTss2EjDhqDgaB4kWZJhLz": 43200, + "139FVSnE8hkd1vVJmECkAsKeLyAJrS6kKq5TxTJbDEq1YvRc": 42660, + "13BN4WksoyexwDWhGsMMUbU5okehD19GzdyqL4DMPR2KkQpP": 42560, + "13BwD9Kd9VyjWgjPWjFRsKWEcfiWGcQDK5oPw9QaxugC2hxY": 43220, + "13DYVkBedGTiUC5SuRmgdtz3UnVbHmWUL2zXQtrNUryBUn3p": 42460, + "13Dc43nesjhyPzVX7ZpUjjmQcVMEyrif5ukSHoDpatvpwyrR": 43200, + "13EEEhiXeCFpFjVQxmjJsHjr9LFvnAurcnwQ1FDgB5LmJwQp": 43140, + "13HtFCrxyz55KgkPWcnhHPwE8f8GmZrfXR3uC6jNrihGzmqz": 42960, + "13N8fKHJDQpA4tAjW52iCsbPMaJHpw8aXfZMWoyfJWjUcDcP": 42920, + "13NL7w9SitBziaa9nBhWmuzmEaRTuX1RvWYs21zKyrvBokgT": 43080, + "13NdHEywqX71WyUzxEuemk9kdSE9KqEKMo1mhKH44uhTJY3e": 42060, + "13Q48Ep3PVpvXA1BeVcUhNJerLshsaeq4EdgPUHnemqJYmND": 42380, + "13QrvcU9EPy7xWMFmoG1R6kZmjBpveNNwzegvpxmQnojwCz8": 42460, + "13S541dQ5NXFCxSBqFUFghkCfUU6LsZUVem7z2tfvsJwWFys": 33240, + "13TBraYSRLejaxxMqAYFQ87RNPoCy3c4LTE3Y7FKq4qcFEqf": 42160, + "13TrdLhMVLcwcEhMYLcqrkxAgq9M5gnK1LZKAF4VupVfQDUg": 42600, + "13Ybj8CPEArUee78DxUAP9yX3ABmFNVQME1ZH4w8HVncHGzc": 42460, + "13bWcF6VD6gjpGeHeF5nWmY8qWPBXLMymuvJZHrtLmgQtcuC": 42880, + "13dVcF8BjzUpYujj5HxumDLPwpHzMPwzPZAZHJQEbKRJuNgT": 42340, + "13gMD93wc2P44QaVXRvThy1Q81846QKVovPBjZEWLzW9HnVR": 41960, + "13giQQe5CS4AAjkz1roun8NYUmZAQ2KYp32qTnJHLTcw4VxW": 42780, + "13iPW4pSokbEQWomqZhwsyrMWuNspt6R1YnuCHXqUVvFYM1H": 42240, + "13iTiojfEzSXLprKzvE7Sdmg8gtUD2S2Am2Xv61xrtmDHcvJ": 42620, + "13mK8AssyPekT5cFuYQ7ijKNXcjHPq8Gnx6TxF5eFCAwoLQ": 42340, + "13mMSS2XnGSWUJMT1ZdM7HdikZXR3RckSpMSMH3fHEDWCtxX": 43240, + "13mhUnQ6qwvuuTYoKTtJkmssm3jDCGhTTSsHCXvvRhFooDiF": 40460, + "13mscy5wfYAmDBgLoA43rkWGpR1PJApcGtXJt8NvtMcM9VAr": 42160, + "13ogHzWQksuwuw4dv6jph1GHGBxjSP8qzwRJzT69dhnhYEv2": 42380, + "13ougYD2SRkn88L14XiYCJc3mL7AzWoAMVdn1FwLumV49LjU": 42180, + "13p9kJiRnfy8QSjFoovHzatuE7SW5xdddxDvk9mXtERueo9E": 42700, + "13rkfSaFsMEFJAV1wcQcnbJnxiigJTb78qkkLSEvUNPA2QVZ": 42160, + "13rs4dYSECE6tLSp5poDAv6Td4Bp55wxyao1Vbw4CxiViTYL": 42300, + "13s9RrQSFbnp2TneY7nkdLmGc3ijBw12YQct8pc8km36Z9hg": 43000, + "13twvNBcVq7dHRKuUgWB8MTEvKHNchoTMfShKuPzEB9sNFXN": 42520, + "13uW7auWPX9WAtqwkBx7yagb78PLcv8FAcPZEVCovbXoNJK4": 43000, + "13uvDxdd6LUNp1WWzM3xbch7q1DFfAaqRaQE5bo5QG7RGqt": 40160, + "13wxjPuajyJrHcBabsgoD7oqL1mJhFVWjeXFxEvMbSBY9xn9": 42560, + "13xUAQ2pNrddNgLyPz6agvSrwnbmUaviXLXNnQxNfk39AyzV": 43300, + "13zYzYw1tQY5dfN4mRrHuuCfXBtKZgcq3uRfpH2Z9YyznpSv": 42080, + "141Qnt9LPnAfnurdY8RXcB8th5S5SNZbgk4ULpDJVdp5DSr2": 43320, + "143NUVB79QAoK9NXu1D45qhcC5cdXWAVeoTTbmTy63k45mCc": 43060, + "144fdQQrXGwWWwATr9b3CL7RWQyxNRGMm2XJanVKGrNSoepc": 43240, + "145MSC4N7BsnnXjunBjD7t5oKn6T2AR3T8Zi9zcupXUJoumC": 39780, + "145Vw57NN3Y4tqFNidLTmkhaMLD4HPoRtU91vioXrKcTcirS": 43120, + "145dFLti3WQXvMXWc7u2wMMHB21sRaspByGKp5icLmjW3hrE": 42380, + "1486kNkPxvF7Pmgfr4MskGnn4p4KXCigMejv5Q7szMowioKK": 41680, + "148CkH8YBzA1pbudK1bMo2zUMHZwbucBVH8s3utwTS687UiR": 42380, + "1497QNdycmxqMi3VJDxZDhaJh4s9tytr5RFWyrLcNse2xqPD": 42940, + "149NeZPEhMBJ5pUpeVu2LfMTAtXX4yw9UMRQL4r4rovFMbWD": 42640, + "14AkAFBzukRhAFh1wyko1ZoNWnUyq7bY1XbjeTeCHimCzPU1": 42180, + "14AvZYdYpbRprzbhNMLTpFxErfS62qvAfy9J6VMjFbtXB39M": 42960, + "14CRo92REj3aXfUeonVSti1VEHgxhWbtKY9hwxvD5T3BBXkK": 42920, + "14DE8GdKnNvgoXCLFq62ZjNz2zsGqnxXBsRMwNpiPip2JSFJ": 42480, + "14DXNLsWfpf1RZ3eZSemHaitFh7WM6ZwswJUVLxqQhRvc2ui": 42360, + "14E1X2DPZRMxaa5pTDCkBr8kGc5zfzQj59vDtxrDyajGcYgg": 42160, + "14GWWeZzMYkR7bwyeBvq7c44nJr4ncEodM4fAJX89ZSAHLw3": 41400, + "14JUa7g5AVsrLbvcL1cpgNvbd8pctwTaCiV1dBk7nFcZmCqE": 42580, + "14KDJPdZ7aNatRihFevpkz8JwGnsMSbtPQ3Nm5oiNMCnJK6s": 42420, + "14Meq7tN9RRkZCKiztmYLp3fMBFkftzfyFQNQrcyc619hgx5": 42160, + "14MvgGf3PzgsEmMBHxdqwQrfhEzsGhzPReATQdpLVpN6aK6U": 42960, + "14N5GT7YTaDBSsLpfxxtCxNdYfgDofGj5wQSfqC1URKHdT8C": 42980, + "14QBQABMSFBsT3pDTaEQdshq7ZLmhzKiae2weZH45pw5ErYu": 43240, + "14QRY2UTErfZCqVMFVRmgbeUt7XQdeCVgNUV1XqDcza4g9E": 42420, + "14SysKfnN8VzwbUCWbgZVApP27xqs5MPmrfXL2RGkePwy6Cc": 41960, + "14TSBiABUeR8Z5zgEkErb46WGcUyvAjTGJGMsrCxJbPmUJuB": 40140, + "14VWEJDSWfHyuTSwErEXxFaiCW3i2gf2NPRkZ5igx6rnmqFd": 42700, + "14VsdLMt7eH66aZFM13imSjFriYGU84bwPNZb99qNVhKuYSC": 42420, + "14XefeqDxiaVQEo7Xv7WBs3Wz8GZPes7DBjQxsNuxu683B9o": 39500, + "14Xi1iQvaHsDw6dHzwRDSPCToan35cf5VSyFawh22rx9uX2W": 42460, + "14Y4s6V1PWrwBLvxW47gcYgZCGTYekmmzvFsK1kiqNH2d84t": 43020, + "14Y626iStBUWcNtnmH97163BBJJ2f7jc1piGMZwEQfK3t8zw": 42900, + "14Y6TZaNAS43At4ovGMULSuGkdE7svmn6zqicWBkSiVd7A4T": 42840, + "14abtGtqVsnnKgSv4Cw6rm8DWn6aFej8Ko2tEjUXQbg7kURB": 38960, + "14bUYpiF2oxVpmXDnFxBipSi4m9zYBThMZoLpY8bRQrPQNG1": 42800, + "14cxMDpBNLsNEXWyCzked3zghzaYWXwoqGT4h12GqQXdVhmn": 42860, + "14d2kv44xf9nFnYdms32dYPKQsr5C9urbDzTz7iwU8iHb9az": 42560, + "14das6GvVjXMFf6PysheHX9ek59fCgH3MhnvQ2aNLD9n8VDV": 43120, + "14dffMjf4Ec1RwCLHp21CifU6CX4hVnZtRCKgc6AGCt9K4v9": 43020, + "14g7XsFWsMpsPNkwQNhdHfsqKRehdRbpPLaGVTEhBe4Pt3Eu": 42620, + "14ghKTz5mjZPgGYvgVC9VnFw1HYZmmsnYvSSHFgFTJfMvwQS": 42360, + "14hM4oLJCK6wtS7gNfwTDhthRjy5QJ1t3NAcoPjEepo9AH67": 42920, + "14ices1G5qTmqhMfDVBECh4jotNDGTLu8fhE9YktWT3cLF2F": 42360, + "14isBrPdSJDB6kGKoV8q5mFFYSg3rTD6w4QFypQtSWfmmqzD": 42320, + "14iwWDFGaqVagArviC9CMEPkREdNEvtR9aTfepv7r9FpUrSc": 41180, + "14j7YcVqpfiZwbrPuwMfcKWuY176cKN1SMHVSZvT7yrfhbnt": 42580, + "14jgoaaLe7L12zhRnyACPQXhNtRNCXXygvHc3FgZFxmQkXBJ": 42920, + "14oRE62MB1SWR6h5RTx3GY5HK2oZipi1Gp3zdiLwVYLfEyRZ": 42620, + "14rqNrqMwNK9YA1BSqRStNBUqGgwxKdysoL4dNQ8GH8LRcrq": 42700, + "14tcxHSTAiZf7M4vcLfFdGkGJFjfx6zDqds5QVyz2H24hKgG": 42320, + "14wFkAiTSxhUUdpkN37QMhZv6dYcURJVgSGwqDRd4TK2qhrL": 42160, + "14x97B47NEi8v1dSBPYobQDwe44U5Xj5RGATWpihQCyXcSX4": 41660, + "14xKzzU1ZYDnzFj7FgdtDAYSMJNARjDc2gNw4XAFDgr4uXgp": 42860, + "14yx4vPAACZRhoDQm1dyvXD3QdRQyCRRCe5tj1zPomhhS29a": 41980, + "1535dDRXs8ga9CJeAMinCogZcEhpfrmm8cdJnhkVehbnedmb": 42900, + "153PzXdNjL3FJLA8EMBaP4CZQb5keH3jcf1RDDJJGrUKHNLL": 42260, + "153YD8ZHD9dRh82U419bSCB5SzWhbdAFzjj4NtA5pMazR2yC": 42560, + "1557x4U7JTAcso9AHpiVfrEsadABQ2swNWhDeh5WvUn9Zdog": 42620, + "1569aqCBma2m4TuUe1MxEs8EXBAZFCmwwcZMLde6HNbimuW8": 41680, + "158B1DyQ2Ep5b5G4akA2mjUJeDwgZZ4Sh1ePnkGgcWrgtPMs": 38680, + "158Qkc34MXQkrDJ2yibw2p9eCvK8Up2WvP1LKhvmcpEBd2LU": 42720, + "158SDQwxy6VPAGhnrUnPSZ4u7uvTRjQGB7HLuvcw97jNofNC": 42000, + "15ANfaUMadXk65NtRqzCKuhAiVSA47Ks6fZs8rUcRQX11pzM": 40360, + "15AcyKihrmGs9RD4AHUwRvv6LkhbeDyGH3GVADp1Biv4bfFv": 42760, + "15BZW721S3fzMYT8vY3Dt2sVXNTECqwHQ1bNUM8q4fi7EVcc": 42920, + "15DDuwCK64iTnd5eBdrC7Wf7nP7iH9zXrpDLUuNP4Go6bYbq": 42980, + "15FctDfqPsFubuXo6UpKMQdbdCC3XXdnHsRMZ3DN6ZKPLrSu": 43100, + "15JGaHWAu1nAEtMMjKZSeu8VsYoTBMmoJq6uwxsDBqmwytSN": 42540, + "15MLn9YQaHZ4GMkhK3qXqR5iGGSdULyJ995ctjeBgFRseyi6": 42380, + "15MUBwP6dyVw5CXF9PjSSv7SdXQuDSwjX86v1kBodCSWVR7c": 42500, + "15PJA4PKoCZ2eeuaoFpoAQikHX6nZB7oW4qFTRhKutzekn1L": 42860, + "15QAsdJBhMQB7jL9bTVtQPNB5FUJW7igqw8Sq8eqtP51K4hL": 42400, + "15QbBVsKoTnshpY7tvntziYYSTD2FyUR15xPiMdpkpJDUygh": 42140, + "15SLZCze9J5Fi2Z6gBtP3mtAgUs7fzo8muWZPeqkiaMXCVz2": 42360, + "15UVN8DnBFdBJCStbaWeKT55wuSMAkoqEa7guYkZLtnszdQY": 43300, + "15UyiZ9rYhrX39Rasc1iE4sdME7WHNFSj8RQT3yuuytd3Nrd": 42160, + "15V6NjwmKkZihe644Tyr8GVLxjEzBAHktf6ZcJCTx7RPCoYS": 42820, + "15VbT8Zi4qC6iPfwobT9gQGFp3H7shdh2o6LouJ6o2w57qzp": 42280, + "15XvGmoR6NqAPoV86yDGMDkvU8PCtYGJoywGq1AFcwF6Y2qy": 42160, + "15a9ScnYeVfQGL9HQtTn3nkUY1DTB8LzEX391yZvFRzJZ9V7": 42620, + "15ciPs3xZsJd86WFoijPs365f7viqGnubZ14aa9fGavyWJoM": 42780, + "15dEbKrzyw8Hwb7KkZHYKgCaPQGxnMgWm2EXb1zh6DmRKX22": 42500, + "15dUcAECtMrGwWjd3Na2D3ZnntmaQ8FmLD3NWADc3PMMDukH": 42340, + "15drCUvFMiWvy1YfkU6xgENxRzmFXDaqQFpjUwR5nu11DHu3": 43340, + "15fU523Wq5BCt2NWAmrCU6p8nFB29uVifeG7bwYJHbw5Mmd9": 37540, + "15fd6W2m8GLyD6HghwCBuRuHS8w1N7Agbjzp6yU2gHbihEHt": 42120, + "15hjLwPcFofpmuf6yRRuor5EUFtVWD9MmuzS4ZDrmLy99XqK": 42940, + "15iA5hpjUecWBbf38Nfegwmtyux25o3LrGaNodfZDxq5nXXE": 42520, + "15kb76J3G8QvtoYKZdWyvPC12MzewsMYYneYT7E6SM2R3oTB": 42080, + "15oKi7HoBQbwwdQc47k71q4sJJWnu5opn1pqoGx4NAEYZSHs": 43400, + "15odauviAEhkhwSBNdLpMGAHR426m4h3e47Y6Z8viK9sKZpF": 42940, + "15omhU2Gi3ounztEznJ9Bj49dvoPhSi9wN1M7uoniTt9F72d": 42360, + "15p158r32Z12YyFU7BiqLcqpySmHUedVfJLJ4M73THBixKJY": 41840, + "15qomv8YFTpHrbiJKicP4oXfxRDyG4XEHZH7jdfJScnw2xnV": 42480, + "15tMJpyvNQ2Q7hoXYUFJw3EjjfxUnNhVq6RXpAwAobUUwXWM": 41180, + "15thjfpZX1xVcsnfya1oXmbXzau2on5abAc4XXYP62SNwwQQ": 42640, + "15tsaRbwLLBHst5chP1pVkQHc5n2JS4DcapFdhCnqJMZebda": 42100, + "15tu47DU6d75PtXdBBGLbKCAPKAgt7s2AEFw9etRH3eNyKLy": 43120, + "15twfAkh6TKdNpE7kNgxcQSRYtSpt3QpgjxmR6HKHFGs6Yrz": 42440, + "15uQdwDxDMKDrjjkuUqntrUTUHBFVPi3ZEA2UA7qbycEndzs": 39320, + "15uQxHKoGbA15XZUEtDXrD7ghh6G1QoCVYekkZKMgEhpeQmA": 42040, + "15vUnTtXK5BAv8UkEn7NMfYUVHp8Fr5EFburmL6CR7fhPyaU": 42140, + "15wT5c8vYVpRTZgvYXM7UaEBiUcyUyiZw47EvQqcbUmxrD3u": 43160, + "15wffJpUgdBqtdsaRQKAEvARhrLsEDSoGzYseGUnGrtFHddN": 42240, + "15wznkm7fMaJLFaw7B8KrJWkNcWsDziyTKVjrpPhRLMyXsr5": 41740, + "15yiAFuYzks3FGG8cTc2ukw86JCYKrZqKkmStVhTL4hv77XV": 42960, + "162ivoEbxP4mzsWrQvapACAx7TF8mzB3B7oJq4FYCbEwC2Sj": 43100, + "1653t723BHhC2krGCFKUUNDQb5sUafy5pZvKVwnwo1oMAMi7": 41760, + "167caBsxJsi9obagJdSwF8uU9Zit4ReDWi2ZwcKZX7JS2bE2": 42500, + "168FJ5cEwfoLnsBJw6HzGLN6AwMMn24rrXxqpqiSFSPCnCKR": 42660, + "168X6YCFoEDh8ZjxCcwzdjgZZhRjNHG6R45S7A3euxJcNXfN": 42600, + "168bhPTpsgByfKqM2pgUfZ2wPxQQpgTwxsA9iTV7vAN4wQiU": 42840, + "16A1zLQ3KjMnxch1NAU44hoijFK3fHUjqb11bVgcHCfoj9z3": 42220, + "16ARoGkkDSTmeu9tDvfBDksu4qURGz6s1HSvXzrwGnsjFtKg": 42620, + "16CdHjb4nxVwF6uwmPm6A29pc4ubnLiY7UqasMxt7cT9BcoK": 41800, + "16CmXwZbMu56nyYGqvqVjTaQhFpEtmuxuwF132BE4dd1QnoW": 40300, + "16DKyH4fggEXeGwCytqM19e9NFGkgR2neZPDJ5ta8BKpPbPK": 42140, + "16Divajwsc8nq8NLQUfVyDjbG18xp6GrAS4GSDVBTwm6eY27": 42840, + "16FRYg2zE5cgrkKQmJhU9YJRT7Uquqxfz6hmp6GnqgdcBv16": 41560, + "16G8NDzxUeUbGiw2bFX3Wy7JwNEJz9U8B1smCFqqe4GPZbdN": 41940, + "16GDRhRYxk42paoK6TfHAqWej8PdDDUwdDazjv4bAn4KGNeb": 43100, + "16LT2rsgKqaadjeGwfdhLDM6xEBjRHP1QN1ZeuBjMRnigLwE": 41720, + "16Ma3suDhT8TkTWffpPaS8sMFn2K6rEqddVJY4QCCUSj2J5J": 42640, + "16Q2PH4woP6gCE4LzgWtmwTGzxrrkxSsz5bDnXQnEpdabxf4": 41680, + "16SDUqoRr6f8DAyKhYWvo9dwFPdJHeFXFr1may1vhomqqPTQ": 42500, + "16SpacegeUTft9v3ts27CEC3tJaxgvE4uZeCctThFH3Vb24p": 42100, + "16VVhErhwncZjgz6Mgx391G8jbHaXspBNLh8Q3V5WK1vWF9J": 42920, + "16WzVw5JDCXLiA3t5D4LL15S2sqSBtCsjVNXkwLCVxGdeQGj": 42960, + "16XvkAHvSvcL8KpgfQN25b6BxgMgdmnvAUKjoY45VRTHeeo1": 40540, + "16XxKGBRWSCQZwrpgcnzE1HqcYC3xJBcSJrM1pRazfmuSrio": 42780, + "16aThbzrsb2ohiLXJLqN8jLST6JgUPRi3BqyHxUW4yVHBQ44": 42760, + "16cT2wjqq18WJdNwzeDvm57GgiQHhaQeWCrA5ZUPyKhyujtF": 42680, + "16ccn3xe5tAeR8kvzCRTcqHZjMJHvuF2pnLfTqyF1EmMusCU": 42600, + "16euDe2owvJq7LkwSujGxAFezCWopCKPENxwc2EKdzYTRBae": 41200, + "16fcR1ercimd6qyBVQyXTTjtWL1kosTS1myiSuVf7kxutxvg": 41540, + "16hzCDgyqnm1tskDccVWqxDVXYDLgdrrpC4Guxu3gPgLe5ib": 42420, + "16iD4v1FUHMauFB17MsrEFGMrEyGtWEwvgyZ6jCLC5eJdEiZ": 42260, + "16iiKwFsRKRsjAiEpD4zgNgEX84nzHtHHNFKXhz1sHtan3ne": 42140, + "16k4XHArVCpNJEjjcxjGxoh5eYv3ABWZKE3Sx3rwEmd4iQSB": 42940, + "16ky64Ktu3NWtjrVUZV2RDVe46GvhnUGrxqFrYAQZeB7LHHR": 42980, + "16mM7YxjyYqXu7uaJfmfCk9xcr8qqaYUyLazTBt3bueQJAFR": 43260, + "19K3AKAkcrVWcXrXCXJ1fbaySuo58kUXhpsh7gBpa6emdgz": 43320, + "19KaPfHSSjv4soqNW1tqPMwAnSGmG3pGydPzrPvaNLXLFDZ": 42540, + "1A2ATy1FEu5yQ9ZzghPLsRckPQ7XLmq5MJQYcTvGnxGvCho": 38960, + "1AXSTNj1JhUpg83Rwq9ayBfHVnQmoXmpvYKDffLNdmNY9gm": 41940, + "1Ew5wAsMtvbRdd4RdxSheLpEkSRc718gtcfTv8EmgzEbknA": 42220, + "1JoBYyPoUdsuU7vZi3KgQAaQYn6WhKqUDXRDmsaJ8Zgxr4T": 41940, + "1KSsKAbCmnAheLRMr6pQ3kUnLDhMtn3dVwwy3cSYHf5t3hz": 39260, + "1KmtAWkiVGRdMB9mBV6JVAcRw7ce8tZKY3L5ZH7uTNK4yMx": 42600, + "1LMtHkfrADk7awSEFC45nyDKWxPu9cK796vtrf7Fu3NZQmB": 43180, + "1LS8ixhua9Nwxq1KyEBTkS5mQMJ2KnXVs49FpQyn3wzzhQ3": 42400, + "1MrurrNb4VTrRJUXT6fGxHFdmwwscqHZUFkMistMsP8k5Nk": 41800, + "1NDRMvN7FH9YtJLVPf9doF5zbuUwn6hdH1b4WmVyZDr5joM": 42200, + "1NFjW3jbbzbHEq7PZReLxNpTn81SBFdpJSPxNsMbUacRehg": 41060, + "1Ntvj8hmfWFiemKLCW7uh4WxJ31UvirWc27A3m4aYocoCvP": 42740, + "1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih": 41660, + "1RG5T6zGY4XovW75mTgpH6Bx7Y6uwwMmPToMCJSdMwdm4EW": 41900, + "1RhqvtG4SS6ooc3JELk8kpTaDiLP9f92jdyR5p5efPWVsx1": 42460, + "1VzLR7pDbcSsJqXHaRZFzwCtSgjNWEcLddSfWij7Jx3p8FK": 42400, + "1WafyH6D6mAyFRTUvVM1DXqxSdVP7Ddea2mnBd7y1eADox8": 42640, + "1Wo6qcrh7wxc1kQY5nfixFuCAFuzkgiwau64SmrPXBE7vVf": 42500, + "1XQn94kWaMVJG16AWPKGmYFERfttsjZq4ompSTz2jxHK6uL": 42640, + "1YguHoyxTecVDPRksktGPPTXDMLbCoDaGprv1zcQNNWyC3X": 41160, + "1Z1KSJjbg5ub8ci4tQRcT6PYoMqnG4WKuhBeXzhdMj3HH47": 43120, + "1ZHNWmKsVHCS528yKDteRPpnx5hTrGUZvyjEpvaWppKDiPt": 42780, + "1ZKHNRib33noQn1FpjFsPCHuVYUfci5TXy4Lif1FcUUwZe6": 42120, + "1ZjP48pnmVw7oYNdoFQQAgH31Wt2rKa2wK6hcXLRShXwZim": 41400, + "1bAKJKQg3bWCeNVzGuc1TzF2y2h4DJfWR92CWAoLVNn7nN8": 43180, + "1bAVKRsNUbq1Qmvj7Cemkncjo17WgyWAusCFZQdUfeHSTYj": 42900, + "1cHUWUV3Eb6WucnFNxED3udYg94eSN5KUWvZbWmtVLFm1fJ": 42340, + "1dGsgLgFez7gt5WjX2FYzNCJtaCjGG6W9dA42d9cHngDYGg": 42200, + "1gBKvQ9vbraAfhxEroBnxoGp9687Hu5wR7NYSwgJeAsw4x8": 43140, + "1iyDF3iHuNjTNuQS7XEqMSdvx4CrdaxK6kLhpMCBc9rKumm": 42560, + "1jeB5w8XyBADtgmVmwk2stWpTyfTVWEgLo85tF7gYVxnmSw": 42440, + "1jqkeJhuoRudNTVL5dV1qZf8RQtyzcf6ZT4yyvUQbKFktr8": 42740, + "1nQBeeXXhZ3gPH95X1KcLfN5JwPCpFUXR5Sc4A5gr8nCALw": 42320, + "1nTfEEWASm1x6D16FPLLjPFC42Fb7Q5zLovrxQpPQe6j86s": 42340, + "1o6KaLJCHyz2CoTkxBmqabvrPHyhcpnjn4jCbt16mPgEx8v": 43040, + "1ufRSF5gx9Q8hrYoj7KwpzQzDNqLJdbKrFwC6okxa5gtBRd": 42400, + "1v7QwYLMaABh7eyFKN9PHbKquAyPt6PtcYZZWvf12KV5pMk": 42620, + "1vTaLKEyj2Wn9xEkUGixBkVXJAd4pzDgXzz9CuVjhVqhHRQ": 43040, + "1wcx1MBUQkmHL1ed4jMjo7U7eNNVvZjV7iVYedP7FEKqay6": 43020, + "1y6CPLgccsysCEii3M7jQF834GZsz9A3HMcZz3w7RjGPpBL": 42640, + "1yGJ3h7TQuJWLYSsUVPZbM8aR8UsQXCqMvrFx5Fn1ktiAmq": 41020, + "1zijcwLdu95adCJU7yjpHeZfoHZvSq1ANURorAwFH36mnis": 42660, + "1zugcaaABVRXtyepKmwNR4g5iH2NtTNVBz1McZ81p91uAm8": 42640, + "1zugcacYFxX3HveFpJVUShjfb3KyaomfVqMTFoxYuUWCdD8": 42500, + "1zugcacan4nrJ3HPBmiBgEn2XvRMbehqvmzSQXT3uLBDkh3": 42280, + "1zugcaebzKgKLebGSQvtxpmPGCZLFoEVu6AfqwD7W5ZKQZt": 42100, + "1zugcag7cJVBtVRnFxv5Qftn7xKAnR6YJ9x4x3XLgGgmNnS": 42980, + "1zugcajKZ8XwjWvC5QZWcrpjfnjZZ9FfxRB9f5Hy6GdXBpZ": 42840, + "1zugcakrhr3ZR7q7B8WKuaZY5BjZAU43m79xEyhNQwLTFjb": 42920, + "1zugcapKRuHy2C1PceJxTvXWiq6FHEDm2xa5XSU7KYP3rJE": 42380, + "1zugcawsx74AgoC4wz2dMEVFVDNo7rVuTRjZMnfNp9T49po": 42760, + }, + "total": 12567660, + }, + }, + "raw": { + "key": "0x5f3e4907f716ac89b6347d15ececedca80cc6574281671b299c1727d7ac68cabcf2ecfb860a8c0d9e1040000", + "value": "0x6cc4bf00a5040000966d74f8027e07b43717b6876d97544fe0d71facef06acc8382749ae944e94a70000000b93d72dcc12bd5577438c92a19c4778e12cfb8ada871a17694e5a2f86c3742ca600000023f35fad621e22d2da59dad0233f8d93e302cb55acbea4b2467e6a59ec5b3e78a50000005fa73637062be3fbfb972174a5bc85a2f6cc0350cb84aa9d657422796bfdf134a8000000b03b23766d70d0445943b290606521acaefee7660d521950faf2801c79d42854a6000000cf5e98635b822add0c97eeaa2adaaf1c7a40d50699fd56ffd73009ff3b1772f8a70000021ba8ef466ccb7a06bfdefdba01817e620ada5954c34f617f6662e267dbda1564a500000238a0a2b0989bb426df8ac92118b4228a81b354d0c87d8acd25c8de509f2226e09c0000029895c9fa4a9da296a325d8df40dbc2f0700c6b6dc159b22fe1c21c8f052d67b4a500000656ae99db65bd6b8fcda6bfdad3437f4a15d46024959e6eb413c4bfbb10556838a9000006587e9f7259dc22ef507a75650b5e0ee96d0b8ad4ddeeb8dda2b310d31cb9462ca6000006e11fd0d4df6c4765eb346aac47682cb7871da9ecfd235255f6eadb8392b20d309800000743acce78d21cbf23ddd27a960096028cadba6a80c2c7abd08a7baf726e128ed4a300000aa041bf62d5b52adee07e7cbc0687ace86e77308a982c07db871ef2dab63901eca400000d92a2524d501daccb88d86720079731f9b53038e0aeddefb8828afbafa5eacfd4a300000e117eb473a2617377b8ddcab2e411131969c226ba36618ea24514b6f736b77c5c9900000e518107b425628e49c4fee37fbc08020235d0664fc5052c4fa7415e5797c72c68a600000ec3f7291f82335606f98e16f5480b38b3da95d2e7ee9489a89a8a39f9dac956aca800000ed244b93c5b6d1be16c1c82622012fdb2b96c0e197ea78fffeebf1bfb736f73a0a500000fe8ecbba7a1e216bd1c3bb7e749a98fcae77b4185c5522cbad8e826d0d9237148a30000102df685c4659f9c242ff9ac8a4ee5305770ede106db7a3cd5d3e8823e33d001d8a400001035bf98cbae5385855c527d922947b9868e2df63bc8c263cf8c29496c4b805d64a0000010b2f3fbaa08eb3361a1590bb8322b1fbef13bfd56bf5e04474d2a1ecaf9bb48f4a60000127a30e486492921e58f2564b36ab1ca21ff630672f0e76920edd601f8f2b89abca200001280a479ee3beca7af1636aca17582f30829782e2c9b1b9c72aaf8060563ab37aca3000012d761ac11e70c35595d382a0c860bb0501ab0690df6c9f96ea7179b206c1d40dca50000161be097a4282aa58dae029624395fa7fc1c25cfa95aa7cc5100654963368442a0a50000168f776962b55450034cdc679905319d9e51e31b607553120c3fb7599b79be0a90a6000016b94e2d5d12d60c7314cca383bf185ddda83f413da740a121601e3277d3083e04a6000017316829c406a05cd9cdb8d5de5fb23d26b3672f8cbca1fcc6538833589a121a90a60000182aed996417072b53ee48cd26d29fd7d986de458e1427e9fa9f21fcb261505bc8a000001868ec482f6eb47619a67848abf5596a9e3064ce164847c3a469475c8385757a70a80000189ef65d1a77acbc1492c95ea3a58cb70b9ffff211190368bbfa21198c734c2d1ca7000018a5657b88d667ab46d1070d58ecc1f15011f60df20f510ee0aac61754bb9e0188a4000018f6847e4d4c9bca7fdc694eeadfa8e36d2f49d581f3fe9e8599658f47dc2d5cb8a100001a0db3d684422fca64adaa9569861a3a1496fa4f45ab142b38423100d45c66f6aca800001a0e48b445798cbb689f86c9c17cd5428cec3bc370fe85a73cd3f1410c335d1e94a700001ae90be8a4787f97d1ccc95593553ca4a86a786f3e0033bbacab0ad60e23fa5764a500001baa453966c043ca367ccfa19f450244447b9d32f4b7af2d9749e55a57ac09ccd8a400001de154f8bc16e4a7bacf303141c913d91b1efdf4ae06c3a227f0a2877a19e90a84a80000200248f0353500a12798f54e5581206a45ac70b7f2d38481dd40c443dece9d2640a6000020857206fde63ea508a317a77bc1ca2a795c978533b71fc7bc21d352d832637cc8a5000020ac6c23e69518f5c048cdd4341f431d23f1bdcba3abfaf7349241db61ce1317f4a6000022a0160f0fb6403bd41db7862fd650ab5d425fa63b0bc09467f065918de0e97050a5000022abc926b7b1a5a0a202183919de1089d04939e09833ca7536b52cce9fa9bf3564a50000232732bb4a41ba025d2581a518dda87cd42013c11a313cb291fee7a339fb60d920a80000282a194090fd6715e06430d8a6e9c682f021eaf398830b10db94ca8c27c9ae4ca0a50000288197fe1d9f6b12ee7f9656663791366fd5ea4ec01999d7a7f8b84e22a0591b7ca6000028c57701aff086e2d4d00536a35ebb0dea7732d5bd285c63fac7197b6bf3e37e20a8000029a843ce5a67c2d285cc5f302db173ee4563e7af383dfc6b9a8fa64e148efd120ca800002ac73c24bb740376a5b0f44814e8ce8b34f23be0650e99b7ac81e1159f9c315190a600002ae939fcc0d4fb0bf095e48ed294463613a1e30381d269940ceafcdfaf87ec943ca000002c057adfe2964a58e311013d80e9955a8896ee86be537ef9c6bd983122d6ee5fa4a600002c2a55b59a282fb173b7faf6e82984686f6fb83b0293dd498db6329464a45d1c90a600002c2a55b5a609baff13899d4ba4bafec105038d66a716494968fae1a849d2dd5a04a600002c2a55b5a6413894e13836fb0165e6adce7d77c06dccf42b3b288397a27ddd3b28a500002c2a55b5b05723585c7421428d9ef451313e33e13803424b0f8cabd383d0df3774a400002c2a55b5b7e13a772e0b693c3b351d2fb5e5b4da18ac379ebdb2f1f2e7559776e4a700002c2a55b5c7e135ae443c6ed951338d4b32be6cf61ac5bd000b7a11c26b30782058a700002c2a55b5cf8d00511ef54ac7a60773810e906befb1b322f2d58199963dc97307a8a700002c2a55b5e0d28cc772b47bb9b25981cbb69eca73f7c3388fb6464e7d24be470e8ca500002c2a55b6068e3b8626608321044a89b82fc4898ece34524659f48aa72aef556c08a700002cc16da9d1f7271475075aa8eb5c6667714426b8c41dbecf92bdedfa462b716338a400002e2409b5ef509e1e584584edc945545f42fcbb3f288f3355e9194206b4ce773f54a600002e6991a3223f09ddea0e0b1fffcffbed3f768d40231db602a030b7fba52c7d083ca500002ed9b8035e0bb64685f561677349c54d0ae8806f1ea86b74c12b51dc8154bc9ca0a500002eeb1a6884bf369c7d1ab3f9ff75b79dd0f6c6a9792834e026a8d2f7ef049e4d7c9700002eef2aee654d4975535f2701af86ba6d169c2c9a1599b16635a2a5e4640db94d6ca2000030606b4c1b89b4e562efafe76bec80154ac8b3e16e04c2e0f619bcdc0a5eef5294a2000030cfdb48ff7f33b08499dfc618a8ef9699b8345fa65f0b1339eb8eec3c0e4555b4a5000030e3f26094a2536e02b6879a2a92752493302d84029b80ff449eba8b9dd80d1da4a6000032aee225f2714c573eec965a9dd1e1ca399636d9158ce068842f0558f360a43568a60000360d52090bbbd32b598beb80197c95c1004505135f0493b089334a52e3a1814054a60000364c29bfbc9f06a42b5cf37ffd831e91c843cc25d8b90071546810ecf279e4585ca3000036e9dd8a810cd5f94f4f61cc59f1dd1a7df21e88261e6bc1fc23467f015e7b3cb8a60000380766b2d93f1737c6d8dc713e4a6d69b961a14a11f676fc479b1ebbe4b81f033ca50000388bf0fc0110c1b18dcab471725083bc6b0b52edabeab0c3e73e506a54f9e04d90a6000038a295559d8977464fd8cdd133f8805f2388e42a6e009219247048a27d9ac06bb0a4000039a1f89df89766e6e0771c1cf047fb712fdaff18eea966267c01ff74969876f66ca700003c017930b46ab5a4413bf3153b001287ed5ff7fdbd2734cf69abc843f4ee0447e0a600003e5f05e5397c92e440de154097981b2c1fab4893b210cc2a8680b8096a6bef2344a700003eea2e1c17fc878e20fc5f88c82d6b08fd3324cbd24c176351aba2b06d874f217ca600003ef0a4136babea739fdcdc300f622f23d9a7fd229dd90c8f3c9e3d75fdeeaedc60a400003f24c61f66f5c798cc97adf5258664937f3c16d0b35121a8b45cc81611bc8e59a0a500004081265b36874557cfb2aeca1412e06a1a026c8c58a172a2d3644a6790bc9f5724a9000042efa2e57a813989da4bac4551e4010ee45003fc3f360f5202a958b2b1a2991854a100004411b54c486afdd65bbe6f482fab68a28443c845c004a1c5d141314577d67d0a90a60000442afde41c8d0cff9680849824712996d0cd96906dba9697aa5110cd6d025e1508a700004441735173590bfe02493f4aa52f5de467182e8d1db637a7a1493d3c87d9235130a7000044882dbb3ffba5fdce03b87b0e750f293fcf840964a1d5fec119e89fee2e0e426c980000466ca78e64f7df8847d8c192f3daddf32426f72a3baa4c3e320082afdb88413420a800004687fe7e263038bbc1b371c67e4f18b23a6b2f65c9cfe87675db0693eca8161df0a5000047e503b630c37057023c04ea57149dc70ae19f186db24f59881c55cb61da522fa4a60000484cdc76e0b6b2cb4e30850327cf37e717d91e343a62bbfaded38aa8133cfe34a4a60000484d62a228121a1800e26e8b0139995703309a81ca4467308d734b4678da3d40b4a500004877511245f8954e48858da743b9eb3544681c27ffd8802c8ea1669e961a2b6170a3000048931d40a4936659a5b03e419db8d3dfc8fffaa9737ad5771651552cc840210a40a6000048c762a528dcaea1ebce57d7e1d2ba195c01e2cf7c336912fc7a349b607d315144a7000048e181bb690336782cfd0b422faec0a561b5b35a6c2277f8073127ea8cf67b3580a700004a10b527df2b2c7151322067a844143ac7827d036a9ca86f5ef10336b1298e1208a200004a45b84757c48776f4c5d887e269e8e6c3f2fc55f75adf222662f129f9fa5b40f4a600004a8de2c6b6c1690a27aaa4cb64e0168bced54ab568958965187646f06442be6d54a600004a9929f34dd83ee1c1ef7da143179fd3fa3f4196b26c855d3fce0fba83c6e703a0a000004a9cb3db5bb89f25ef6cb2fcdb9a3308022e6440c29a4bf673557847d0c8ef3fa4a600004c1a19bfea6bbd257e6f193a0b07c393300896beeab2b621ff4a8b120b171f706ca700004cb0f7f17953e529b8106c743f78d238e3dd6a90f421d32bc920ce120682c80178a50000508f2cb4567caff040d0a47db244d7ea791d9ec23f0d5d33928a7c6a62b3077adca500005220f15324663f1bb0bad6212a344c7f4deb40aa6e3f489a56db71d545507e195ca80000545e8064f8898a29d4811e09b207cf3302e5cefef16615f8580fcd8fa63a624e58a700005606fcd617bb7328f828ebc07396ab27f038eb5f036125a2ab5b60ab9218f24288a4000056196c14df0a7036b943ecd01396685e799f786c0f131796c06850ec9342ff01cca6000056363ba0631ca8cb1371e706a8c3af27011e983480e7d09124d7b3c6732d633b34a8000056ad64b58553e04382fbb95145efe3dfda88b5512c0f8fcf1cec8ee0a05dd1723ca5000056b8018573af44e5a77be5a66628c3c261ec930d538e5a6fd578247727e5e419d4a30000582bdd02e8b7e3a97da353f92954db770676e7f07eddf2d08cb9f2430aaf4429f8a700005a1daf6281654754e3c1dda5a8e8593882b731757c390229943e754308e29d6268a600005a5809ecabcd564a3544f045d2f77a4a90104317df62fb949ba966484eae376e30a700005ac7f6af5aeb5364188840d02f0e74e813e6d9cc0398d6994b66727658a4fb3030a700005ae7010248daf19a0b83b3d131f63a693785222293af4354035b8dce851fb02bd0a700005e348817abb98cb962fc0780a47ebd471d9c318395fa80b4529a64cfabb2e32c64a500005e4706e0f10c8d2a1cf27d967c5945b8f4e5d7d164212915a702415776e2947ac0a800005ec3359163109e793b726065a0ace5a201b72fbfc2d346c181773a04ee3ec872a4a60000605fd1308af1ce85bab5ba3fb19b330ab7dac29e01ad501420560f44df7e0e1c40a6000060cf67ecc06e7a13a024ec0e172a65e5a55b5f808edf5cbb8482fd8685ca6221d4a8000062096f7555b367e16997d36a3a6b2a10f68e3549b45163eddec4dc3c7a6af964dca50000621568bf4b7ab90fc06ac194a743e4ac65bec5f7e3113254373d710854514b0dc0a80000628f36dddf8cdb0242104a2531e7d3efd4860a9a4633be69aaf30f63ccb25a5e84a800006558e62bb3e9e7da178a13f657c9a0e86044335a77a672f9f571489f43ae07b6d0a700006896688640393395e0bf64930fd5470987a903ccedc679b7153ce21066b37c6da8a7000068bcfb86663abec620784eec51572fa12ba5e10a7f312981e4d6f1bce379b93948a8000068f6bff49b2d945025f0addd42aaddba97809845a5572c24f7a911249ddc07634ca400006a0da15516a63ecc95cccffecec2a2aed962e92cab661af4b1f76b65e429cf798ca500006aab2be7af29db2b89e3a4695b5270f1591ddeaf00370e4398a42376a24ccf1bdca500006b973df13cf0190a75f17633f8a391020df8bac9aa9e4c50670e0dad135bf726d88100006c71634f4422a46109618fa192d46be23d042ae4c555304e987a77482530f01ab0a400006cf3e7bf1cc5f0b87e7aaa8bc5acf2489651b14e768bcf5d9206f878778f440468a600007091f937fba948654220a41ede536b0d62cc30d20274a28005b8026564db8d25dca5000072ca7a95d321217aca6da464aeb6a401a48aa4b457ca17e8e5d1de800a076c4380a70000744d9a778b5c53b54eb743dd93cc90079261a6e7fdffd8798e6406817d125d7b64a50000767b1176304fbf79701bc22060126cdeff4748b95abdc5de32adc9823c381267e8a3000076c26a1fb9acbdd56be00d4c44901856929b9d2a879caad6119ad0417e9949491ca70000780946289b4befff0da9911c013aacd2b280ec0529a759b94c67e4899b9b705800a5000078177a8ac7c51e9a165edd1a027402555ab42d2f8ec8107536df7fb34084eb357ca600007a4c11157fa5b76f4abdf635b5aa7e8edbac3cf3f848b85423ebc6e9e4e62d04e8a800007a8f8779b66af64a095e9e6c7600a89d7c33a77fb95d5b503505d264ad5595310c9e00007ab1aace7b8830ca683c8a8bf99a872996586b210e0f92b8f5a28fe985ac0731b0a400007c1207030eebbff1aa8d1d3fb13ef4a44251f81480ff627240d45a0e4547c6398ca500007c3f190f0abecf2b39643a21a67df302a024487d84128d5bc68fcc445ac23a06c4a400007c6e71dab02a17292e9c2f3fb01d12a3895af33971a8fa710bb2820cb9d7a31ecca600007e6a7945c3108fbc35ee60d6f338f4472d4658249d96493086994e02e7dd3a11b0a400007e800474f0ebab4fe4895006c96fed161972daa605e2921c2eea276dbceb96493ca500007eb71c2356edd039e714141ff023579e979466c0f3acec566714ebeed15f5d6cf8a700008016dc2b09c2277f4ac04054d67ac8bcee6368976dcfe191b2cdeeba9487246718a6000080833b98deaa7ae201c9d2aabba6d7cbdc14ecfe1548c52b8ac4907acb14c863f8a7000082635369d20e36ccce82c98283410bfa4a4153e31bedb52b33cbce5543cba21b40a6000082c6664f95a65717f30013c91fd9ece1c1398c2f7ed5e7cefd23752b63f1073c24a90000845d26853b5caf8444b5995c50b7b9bab9e7ffb27cd20641cc4c9f04e5942b4160a400008504c9c90a2f5c8990837ffe39d8574d01e50800dbd4203acfa5c092bcaaa38738a9000086837a8e46d4cbf152e2c25ac7960f8b969e2c132e4cd6e12f85c322f492de5034a80000878078053ab93ca434a101b5c52292227afc2c1eb5538a2857a4b0b228793c4ee8a80000880678543460d4ad15fb10ea9ec36ab97d47e9317b7291fbe5c0c69aff6dab64649b00008823139e30d401f7a9422e68208ff3ad2f8e40e92c83af26e4002734760cb87e70a80000883bb3846ccb18462abe27ce390fec5d7310cb1612a477a2a65a557b9d076d798ca500008a1ec46479fec3c43eea382d637de8f295ccb2c0b6f6fdd4c5d34a687737a601d0a200008a32f59713f0a129fbc395dbc853f51ab53d45d1684c4bc8ddad89fd55fc096f8ca500008ae437cc2420c617f2cdec05405db6c449bada7d2b2063eadeae636a25c5ca79bca700008b1789281b38392a08ab0516a21dee49fba6f5e55381106ff7ae190563cc84f490a600008c23324b0cb29e4fd1a68cb08febe58b50e39d8afdb5f752d6c26c8ba52fc002c4a400008c46363a07966dc8f3e4557cddec25dd939e766456f3d9f0bba805d934e79616d0a700008d6bde6dcbc00b588a0ecb71f4c516d9ede311d3fcf942f89228221b92a2c1a3a8a700008e07d43b19d901badf3a7f57155ca84f2f835448e93a141bbbd33eac4b767d15f0a500008e41df7864847ec31fc0168967dd5b7912c21f4a597438c697f7f4c1a29c4d5778a500008ea0a20d955de39318780c92ac196f0df571b382132dbde5c7e9649266f4156db0a400009088b991261091d43c92ce790d4c8fb007b7e8d19c9c619a7d722c6fbdb55f04b8a100009208af2fb9f1511facbd517ba7ec0296d6fc9fd010896eec0f43a415b68b370654a60000929885c66023f492df489cecc1316d0ba2d2e1af772c55c1d8285c409435b932b4a500009474f44fcec968ebd7bdaaec1bcdee0c01e940142ae81c6009933dbefc20760cb0a4000094aa4d33417623e208534893793c90f0f64149b879f71aaef4870f2526016623d0a7000094c7373d1e335e281b2a80565b3370c5de9d6b2d87fdf0cddac5641377a24b50e4a7000096625a0cbd0931ad831add3bcaa6320950385aec23b3854c6ce987de1c9f8837e8a80000988544d904b69f654c94a918de20f236d004ef63de772b0f2b91d6aa5b871e08e8a3000098dddc2627f6117cd1238850bda73c62aa1684b2497c5815f311dad23279b327cc9c00009a71f753f8576834b7b43f9c33b61c177480e31c4b55308297fe3e7dfce06f7bcca600009ab9fed826edb372dd3ceab91b381da1304bba44e3017d86c74d098a47c49302b4a500009c14dbe4982ae73a084bafe1f7eea2d51f3819088f08a10eb2fd7a1343c5140b4c9a00009c201f4ab49cafdaec4088582fc08202ec71a769026c81394c7639746034a76edca500009c665073980c9bdbd5620ef9a860b9f1efbeda8f10e13ef7431f6970d765a2570ca800009c6a3401d06cef30fdbb33901328f3611dae8253708779a5d66179c96758263594a700009c6bae578812080b2f9ecdef913f4f68abc3dcee697f505625e8430c8ce3122c58a700009e553a94c461ade68e689e1372c3c863d1b49dbb629954cc62c263390c3a4a6e309800009effc7fb904ca3d8cc4f45b464ee4dac705c89888d298bc9dfd2ba563d5b3e3f30a70000a0209c10c7d6633de64e166a68d9b45e7f02aacd9497f5c552e577abcdb17d286ca70000a02f7333e25590e4f568ae8a2ddc93a879e92e48fa3cf1666ac56e020c106d5540a60000a09b87b34880c5375ecca849557dc87a00a6243938d5882017fa0d1f6019381570a80000a0abae3a305a7702055c212f7beb51b6d8f040b27db842752ae4cd0f36a10e590ca80000a28942a9d2e8c8501860b847eecedc45d602e614b8b0849b959607d0dec3d0717ca60000a2fafeae641e6e264d77723c00ab05f503db48ca3597cb3242c2b54d90abd01d78a50000a37a1021f6eab9a2658f2f6a5e08f5851de80230d270662dfe648c0c7bec2e46a8a70000a471c7aa909cc665212bb36003c52c5d3eeec39f96556a8242e861c5dd7dde4178a50000a4a2b4ee5ad0bc423c3e2b5492545f2096550ff497b0749d535b885bd96d182850a50000a4b13ccfd4c7e16f188c088cd21e415cb73a8ad11bdef6931e6216dcdf0f2855dca00000a4d30a367570be5fc2ed7786254b990be8e9e4b0de0ccfa6ba610e445cbfa82654a60000a542ff1876727dc5075e0a328748e64c4249fc522aa72eb73d5dd6645a7468dba8a70000a81b8a2a03afd92af18f0338e43afc504c6018aca6d9197c0d3a149ce65efa0e7ca60000aab69386e2b8264fbdbe9ab35706cee70fe33147d42ebe2b45b0521b43831d54cca60000ac133ebfde441672c055b79ca9a6059850984eead1ae036f48ca1230e7f0556f50a50000ae1595f870cc27a34374a6b819a554e242997efeb760433c6fdb4372c2f28204b0a40000aec27c7e044d5b7619909aed070a38751546e4b7e7c3b98c1cc41476f335f64fbca20000aee72821ca00e62304e4f0d858122a65b87c8df4f0eae224ae064b951d39f6106ca70000b023d129d9a0cb9490d097dbd3ca947d4830d3a6d7e0fa9975ff2789d9d97352fca30000b286fddebe2f89e638d549f6751fc2c8896f0db829ebc20eb14218c76276653e94a70000b2c4d2772a169e3ccd912db6415a39a6f0228c89c7045556951b77913306237514a50000b2e07be4d6d82f546ec91d6009ee215bb736be5b4362e66e7b466ec72d47624f40a60000b4154f12cdef88338edfa85cbdd64b61c410187e4f7971057aef32cdafdfb7027ca60000b4de0e0553f854c72746045b90c8e5c67d74f5d8a52d4134b259ff562e4b1409d0a20000b66953df31de525fd4c075b30b266f8fca1f29533c9dd7d45128408726d1997918970000b6979b7897a0fbf4d194190973a6487277b671932c68712c8861a3c0945a861ee0a60000b69c8792d56762ddf68a261993acf24305a804494144a2d2235fa8a438e10f7510a40000b81712e18e76cfe727bda3fa65662405f584f1ed059aac110ab6f41851ba7e26a89d0000b8473b5e37e993092f313f54b58762953589245f5552612ec90042a6d59d807a08a70000b8fecc72fb024b6102c53a3924e8b7e2c163cfe6e5b84299c4481efa0580694ca8a70000ba4358b81da547ba46f897dcc83cd6c94a2aff075e25d2f92d420b090ece5728e4a70000bc1729a527ac8770c18456f142dc57b24069c9ff1032d6c3a1572d84b811ac7e5ca80000be1c8831d018fed582688b5e75be3c9983ac1761fb24a916451c6999c0c66f5e2ca60000c0746c03c3e5f7bf70f95401b92882821ae685f544a962703e05df4255732f0a8ca50000c08d5de7a5d97bea2c7ddf516d0635bddc43f326ae2f80e2595b49d4a08c461904a60000c1f215e6d1c4cede0f67c75dfe8c1f6f3244a318b4405fb775e76b8b6453cd3c6ca70000c29cd0286cd14a9d3538ab155180c8363b3e3af8e6e95561bfa0d9e4a459f65fa0a50000c2eea43fd0e45e0e756130e01667533bcaa001e29e0192501e7ce2186ec3554a9ca40000c443e5dc5778723ea429e138a10a43179659941ac631f97dcf9037bcb497966078a50000c5e80accf4092ea6f8ed087544576dddcfdd51366b492868f73b0c9ca19c5f3124a90000c6477bfd57c12587b1075a80d944c7829784eed61a5c8b8255817e1d62d1070eb0a40000c65de6003709aa5a6b81354c00fb13e281ac05e852cb4194c69f78566e8ac82844a70000c6bfc6a3cade13b0fc2d1ad1741f3fb4562b89c7f3bfb5622dcdae02db65345528a50000c885a011dbc63183416fa77f78a967ad0ffbbbb62e444e9eb490abd2fc67d326b0a40000ca38730919998d8ddcf5e729a8a275769b1ae064d1e0f5528db03eede05d5e247ca60000cc2dde4403d477d784abb0486ce18908af209f2c9d8581d33f7e847608b5d1241ca70000cc9385c21d3b6b6380cb412a5c57a080327aed7868e09032d21c958a69e69e0504a60000ccc2b2f7c10a3efef6b3681e853343c88459a77af486dc9e8800225ea4e17e5c64a50000cd0b6229844999d1cde6c2e74ff90057d24e5875b891f645e2fb4a47ab90745e4ca90000ce4761ea5d8d29dd92a78dc606246d8146320a5e9292de240ab15f60c7802e4aa4920000ce65c3e609e010d3760f8d7559f62211afba600292f5e5059dd1c50a364f9b5988a40000d0014ab170414e7f6fa6f6ef20ddd28fbca03f3349e577ced6073e2c14e6953dbca70000d05490aa747179f2b895c2c5171e9cb10a474fd07d1a8069389678e165369e5618a60000d22f4b3f7a9f0878a49954e7b4491ca841f68831c2e8aeb383cd79dcdc00295b60a40000d44533a4d21fd9d6f5d57c8cd05c61a6f23f9131cec8ae386b6b437db399ec3d88a90000d48160a2ee8fd9432be3fb3619e4b309da87305b83f29f87ce3918460140ed09bca70000d49cb030a944c5d66de3ca7d4b8f5b37df03a610a028efdf313b5b405b3614a478a50000d4c9b5341b6040e6f218c5476e5bb87a26fd80e03a0ac65b92d4d3eb917c8f2270a30000d62a2b80ebcda1b2f14d2a903088759ce56482401fb4130cde32775d6d210a6af0a50000d81acf644cfd94b6cb724a47226dcfffa83768cb6722e33e737642805ce3a61fdca00000d85f93f47f94abb8dfaf8c817af3d4b539847141277479506027f06c54cba44090a60000d880b45154006c09eb568c69f1febc0dadccaa59723dcd058cdae45c9c13ae6874a40000d885ad688af3fd90712dbcf6a5eb840229139b3a1ba9b94f87f1f8db3ae0354370a80000d88e71e550f7c318065fe4ce9c7d58430af17fa534f87d27195dd93cce667719c8a50000d8e943700c6625ff869b258c77221ea5fe0a01380faf6059d28be5f69405fd5198990000d8ea5408a39f0d58bb8cfc1e307ef85ebab9b195ebaeb8b8782d35f525e4ec0d38a40000d9ba7812c46be60e86e1dce7cc23721d4cdcaeb25bd8a7960a5fbc48d68c41089ca40000da77fa0d82d2d92ee03531ad36f3867ba4fe7ad8bbf7e9bc917c7a767c64ca3498a80000daa254113c992edbef28f452689f74b31d274d5681c2a012379fe4c40e40ee7900a50000dae2b867564f01654946a095e69f0f49df1eb5c0efce5730cc3d1d83da3f4b090ca30000dc313b667a08d4a8293ed90733697961647be1182449338e3ba7215cb786311dd0a70000de7d8da7b555d388f637270fe722557129b90be3844921a4b3e01f412a98f5495ca80000e043d8f7872cd895f8957c9179c4264816be3e649713cb3bdc523f752602cc3a20a30000e23862ea58297bc541940d558dc215aeda8816d2fa9d4245fce260647df6006604a60000e2b4012c3ee5585e9f326b9d46d05a3e25dbe5e08897d10b26741c0ce0d50539a4a60000e2e9320d0826cc662051cae039bc0bfd629fe55bff6a4d2207f06b7d5aca4f8168a60000e2f8aef0d1bc20724c28440d40e2cd31e83805a1f641fbb73cc1c5b77734607658a70000e40db41d7f07b2b867fae0d7b8ed6767d23f7b53b032710dc5b5043474bf1d11eca40000e45dda4a3ac186e2ac54d8aed98db9dbdfff54087b96414057ad263ca02bfb967ca60000e60b065719963027baac7cb4d68145539a0b428aa74048ec1c32b6b25553064648a30000e626c79ac1455fb2f64349ace8e054bab2ae746e52508eeaf741d505b4419b036c9d0000e693f8c8c6043a5d8c8ed64d56523d157625011947a8a79881987d9e9100963a9ca40000e6e13d835bf8b44914ca24613b9ccd2aa2ff6a187dcdcb11d531701c5fcef91058a70000e82d3b7fbff7f5ff1010b279435012e0ce3b68dc387eb2827fc2e9d5001ada7c58a20000e8b6a4eefeb4942bbca2bee6baee73280d49c1b7aff8d1aa7616d06bc173ad7fd4a30000e8c7ad65c15fa3ba64424a61b177382a0c5468135aecca9ca454f5e7ce4d305b5ca80000ec027631ca56b18c5e87aa9b057f08c9e2d07ca2251527e5ca3058f70b71e432f8a20000ecdd548c83457ab43caf7867e2bef91ef783025db9659afd89794ec1220acf2990a60000eebc7887720ec1ce8b759629cb425df5f15011f0d455bfe1a22ad4cfb36d1a3bd0a20000f068505a66e272d987c377f0ae0c0a795edbb4db40be62187205803920118a2804a60000f0de782e8bad3c663be60812f0a2ac63464f5da3ec448c73334c07d71ef27f2c74a40000f2e8a164a3517d03fc58abedb1b8c6ed956c691b34ab28f86b3c45e1d8b7777aa8a70000f40cd7a2181289e32776625b9f3a193f749e33ce1bdeb76cfaabece606c7324cd0a70000f4c372c3fd5ed3046e17fd395ebad1d45b0c46cd78e04f0e58af6cc2d9b1f01e5c9e0000f4c8bc5da2f0d0e2f6e040005f783c023b85a8cb21df5c1f509c144fe18872021ca70000f6b2256178f0210557ddcc138e8b264204e4674fb2d73a8190faf4ac3724722f08a70000f836649df542b24a1b63d80916ee743d4734640aa796648649685dbdd430c362b8a60000f857311106c8d7b0daf6e096db9a0d759b52403e439ab23fd6559780a8b1c80368a60000fa150742c53997a227cb5648c21029d8a6a087ea1c27c502903aa60ef7701823f0a00000fa9fb4eccab4919417e2a6072c77e55b7d1b69a9682629a09953ce699260b56444a20000fc6f8380646bfa19f4dc7c1ed6ebfb0a93f5781793aef9224a05e805426d151cb4a50000fc9ada02baa2ef7a2a24a91f4fdadbbe83a22733dd3ae2deda97f45b4c30dc6714a50000fcfd589d8df6da23f65a51de867fac9490ead3ffbb36ce8d1946cec1789a9a469ca40000fe04936fb5c49222afabfadfa1a9de0937ef0ffdd79770c4f0588570b85f0546bca70000feb586a6d2406aeb67d8dc3895f09dde186e89556ec3c166b6fb1d94bd7a025ee4a70000feffabd8f3747b5ca19766866bd59856a2e65c537c6456c6f6863c026915f473fca80000", + }, + }, + { + "parsed": { + "key": [ + 3333, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba5738de339bbfcd5144050d0000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2051, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba573a35dd60021a6f6a03080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2008, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba575f9d7e46afdef838d8070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2000, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba5763f5a4efb16ffa83d0070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2092, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba576e28b8ad2696ed532c080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2104, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57890bbf94976e240b38080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2046, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba578bd977dcdc787ab9fe070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 3345, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba578f6ccad3d833b8c4110d0000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2004, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba579f434b9dae0bfb8ed4070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2019, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57a33ab67066cce00ee3070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2007, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57a6e81cc6a2c29a16d7070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2056, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57a85b1ec02482089508080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 1002, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57b2b032492225337bea030000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 1000, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57b6ff6f7d467b87a9e8030000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2037, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57c12483a7cb568540f5070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2034, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57c77a93d174890f1ff2070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 3346, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57cf8e8ccd42a093bb120d0000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2058, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57db5334ffb7cee19c0a080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2091, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57ddcd36bd16bca7fe2b080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2093, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57df9ffad132ed49ba2d080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2101, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57f7f7e146c4af733935080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2013, + ], + "method": "downwardMessageQueues", + "section": "dmp", + "value": [], + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ca95dac46c07a40d91506e7637ec4ba57fd3c4eac5d2f7717dd070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 3333, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa389938de339bbfcd5144050d0000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2051, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa38993a35dd60021a6f6a03080000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2008, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa38995f9d7e46afdef838d8070000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2000, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa389963f5a4efb16ffa83d0070000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2092, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa38996e28b8ad2696ed532c080000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2104, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899890bbf94976e240b38080000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2046, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa38998bd977dcdc787ab9fe070000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 3345, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa38998f6ccad3d833b8c4110d0000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2004, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa38999f434b9dae0bfb8ed4070000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2019, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899a33ab67066cce00ee3070000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2007, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899a6e81cc6a2c29a16d7070000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2056, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899a85b1ec02482089508080000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 1002, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899b2b032492225337bea030000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 1000, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899b6ff6f7d467b87a9e8030000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2037, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899c12483a7cb568540f5070000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2034, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899c77a93d174890f1ff2070000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 3346, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899cf8e8ccd42a093bb120d0000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2058, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899db5334ffb7cee19c0a080000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2091, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899ddcd36bd16bca7fe2b080000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2093, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899df9ffad132ed49ba2d080000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2101, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899f7f7e146c4af733935080000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 2013, + ], + "method": "deliveryFeeFactor", + "section": "dmp", + "value": "0x00000000000000000de0b6b3a7640000", + }, + "raw": { + "key": "0x63f78c98723ddc9073523ef3beefda0ce01f8c2b84fb2d18d7fc8f8b89fa3899fd3c4eac5d2f7717dd070000", + "value": "0x000064a7b3b6e00d0000000000000000", + }, + }, + { + "parsed": { + "key": [ + 3333, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a8038de339bbfcd5144050d0000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2051, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a803a35dd60021a6f6a03080000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2008, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a805f9d7e46afdef838d8070000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2000, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a8063f5a4efb16ffa83d0070000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2092, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a806e28b8ad2696ed532c080000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2104, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80890bbf94976e240b38080000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2046, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a808bd977dcdc787ab9fe070000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 3345, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a808f6ccad3d833b8c4110d0000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2004, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a809f434b9dae0bfb8ed4070000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2019, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80a33ab67066cce00ee3070000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2007, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80a6e81cc6a2c29a16d7070000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2056, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80a85b1ec02482089508080000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 1002, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80b2b032492225337bea030000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 1000, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80b6ff6f7d467b87a9e8030000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2037, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80c12483a7cb568540f5070000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2034, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80c77a93d174890f1ff2070000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 3346, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80cf8e8ccd42a093bb120d0000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2058, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80db5334ffb7cee19c0a080000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2091, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80ddcd36bd16bca7fe2b080000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2093, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80df9ffad132ed49ba2d080000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2101, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80f7f7e146c4af733935080000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 2013, + ], + "method": "hrmpWatermarks", + "section": "hrmp", + "value": 17999998, + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627c09d487abe9aa06b94c8e59c187429a80fd3c4eac5d2f7717dd070000", + "value": "0x7ea81201", + }, + }, + { + "parsed": { + "key": [ + 3333, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4c38de339bbfcd5144050d0000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2051, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4c3a35dd60021a6f6a03080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2008, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4c5f9d7e46afdef838d8070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2000, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4c63f5a4efb16ffa83d0070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2092, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4c6e28b8ad2696ed532c080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2104, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4c890bbf94976e240b38080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2046, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4c8bd977dcdc787ab9fe070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 3345, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4c8f6ccad3d833b8c4110d0000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2004, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4c9f434b9dae0bfb8ed4070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2019, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4ca33ab67066cce00ee3070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2007, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4ca6e81cc6a2c29a16d7070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2056, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4ca85b1ec02482089508080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 1002, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4cb2b032492225337bea030000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 1000, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4cb6ff6f7d467b87a9e8030000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2037, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4cc12483a7cb568540f5070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2034, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4cc77a93d174890f1ff2070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 3346, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4ccf8e8ccd42a093bb120d0000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2058, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4cdb5334ffb7cee19c0a080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2091, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4cddcd36bd16bca7fe2b080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2093, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4cdf9ffad132ed49ba2d080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2101, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4cf7f7e146c4af733935080000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [ + 2013, + ], + "method": "hrmpChannelDigests", + "section": "hrmp", + "value": [], + }, + "raw": { + "key": "0x6a0da05ca59913bc38a8630590f2627ce0e67da63472835bb0b737093a19ad4cfd3c4eac5d2f7717dd070000", + "value": "0x00", + }, + }, + { + "parsed": { + "key": [], + "method": "parathreadQueue", + "section": "paraScheduler", + "value": { + "nextCoreOffset": 0, + "queue": [], + }, + }, + "raw": { + "key": "0x94eadf0156a8ad5156507773d0471e4a64fb6e378f53d72f7859ad0e6b6d8810", + "value": "0x0000000000", + }, + }, + { + "parsed": { + "key": [], + "method": "scheduled", + "section": "paraScheduler", + "value": [ + { + "core": 0, + "groupIdx": 10, + "kind": { + "parachain": null, + }, + "paraId": 1000, + }, + { + "core": 2, + "groupIdx": 12, + "kind": { + "parachain": null, + }, + "paraId": 1002, + }, + { + "core": 3, + "groupIdx": 13, + "kind": { + "parachain": null, + }, + "paraId": 2000, + }, + { + "core": 4, + "groupIdx": 14, + "kind": { + "parachain": null, + }, + "paraId": 2004, + }, + { + "core": 6, + "groupIdx": 16, + "kind": { + "parachain": null, + }, + "paraId": 2007, + }, + { + "core": 7, + "groupIdx": 17, + "kind": { + "parachain": null, + }, + "paraId": 2008, + }, + { + "core": 10, + "groupIdx": 20, + "kind": { + "parachain": null, + }, + "paraId": 2013, + }, + { + "core": 11, + "groupIdx": 21, + "kind": { + "parachain": null, + }, + "paraId": 2019, + }, + { + "core": 12, + "groupIdx": 22, + "kind": { + "parachain": null, + }, + "paraId": 2021, + }, + { + "core": 14, + "groupIdx": 24, + "kind": { + "parachain": null, + }, + "paraId": 2027, + }, + { + "core": 18, + "groupIdx": 28, + "kind": { + "parachain": null, + }, + "paraId": 2034, + }, + { + "core": 20, + "groupIdx": 30, + "kind": { + "parachain": null, + }, + "paraId": 2037, + }, + { + "core": 24, + "groupIdx": 34, + "kind": { + "parachain": null, + }, + "paraId": 2046, + }, + { + "core": 25, + "groupIdx": 35, + "kind": { + "parachain": null, + }, + "paraId": 2048, + }, + { + "core": 26, + "groupIdx": 36, + "kind": { + "parachain": null, + }, + "paraId": 2051, + }, + { + "core": 28, + "groupIdx": 38, + "kind": { + "parachain": null, + }, + "paraId": 2053, + }, + { + "core": 29, + "groupIdx": 39, + "kind": { + "parachain": null, + }, + "paraId": 2055, + }, + { + "core": 30, + "groupIdx": 40, + "kind": { + "parachain": null, + }, + "paraId": 2056, + }, + { + "core": 31, + "groupIdx": 41, + "kind": { + "parachain": null, + }, + "paraId": 2058, + }, + { + "core": 33, + "groupIdx": 43, + "kind": { + "parachain": null, + }, + "paraId": 2090, + }, + { + "core": 34, + "groupIdx": 44, + "kind": { + "parachain": null, + }, + "paraId": 2091, + }, + { + "core": 35, + "groupIdx": 45, + "kind": { + "parachain": null, + }, + "paraId": 2092, + }, + { + "core": 36, + "groupIdx": 46, + "kind": { + "parachain": null, + }, + "paraId": 2093, + }, + { + "core": 38, + "groupIdx": 48, + "kind": { + "parachain": null, + }, + "paraId": 2097, + }, + { + "core": 39, + "groupIdx": 49, + "kind": { + "parachain": null, + }, + "paraId": 2101, + }, + { + "core": 40, + "groupIdx": 50, + "kind": { + "parachain": null, + }, + "paraId": 2104, + }, + { + "core": 41, + "groupIdx": 51, + "kind": { + "parachain": null, + }, + "paraId": 2106, + }, + { + "core": 42, + "groupIdx": 52, + "kind": { + "parachain": null, + }, + "paraId": 3333, + }, + { + "core": 43, + "groupIdx": 53, + "kind": { + "parachain": null, + }, + "paraId": 3334, + }, + { + "core": 44, + "groupIdx": 54, + "kind": { + "parachain": null, + }, + "paraId": 3338, + }, + { + "core": 46, + "groupIdx": 56, + "kind": { + "parachain": null, + }, + "paraId": 3344, + }, + { + "core": 47, + "groupIdx": 57, + "kind": { + "parachain": null, + }, + "paraId": 3345, + }, + { + "core": 48, + "groupIdx": 58, + "kind": { + "parachain": null, + }, + "paraId": 3346, + }, + { + "core": 49, + "groupIdx": 0, + "kind": { + "parachain": null, + }, + "paraId": 3353, + }, + ], + }, + "raw": { + "key": "0x94eadf0156a8ad5156507773d0471e4a9bc855155137f5ee950395a0aa27ea03", + "value": "0x8800000000e8030000000a00000002000000ea030000000c00000003000000d0070000000d00000004000000d4070000000e00000006000000d7070000001000000007000000d807000000110000000a000000dd07000000140000000b000000e307000000150000000c000000e507000000160000000e000000eb070000001800000012000000f2070000001c00000014000000f5070000001e00000018000000fe0700000022000000190000000008000000230000001a0000000308000000240000001c0000000508000000260000001d0000000708000000270000001e0000000808000000280000001f0000000a0800000029000000210000002a080000002b000000220000002b080000002c000000230000002c080000002d000000240000002d080000002e000000260000003108000000300000002700000035080000003100000028000000380800000032000000290000003a08000000330000002a000000050d000000340000002b000000060d000000350000002c0000000a0d000000360000002e000000100d000000380000002f000000110d0000003900000030000000120d0000003a00000031000000190d00000000000000", + }, + }, + { + "parsed": { + "key": [], + "method": "availabilityCores", + "section": "paraScheduler", + "value": [ + null, + { + "parachain": null, + }, + null, + null, + null, + { + "parachain": null, + }, + null, + null, + { + "parachain": null, + }, + { + "parachain": null, + }, + null, + null, + null, + { + "parachain": null, + }, + null, + { + "parachain": null, + }, + { + "parachain": null, + }, + { + "parachain": null, + }, + null, + { + "parachain": null, + }, + null, + { + "parachain": null, + }, + { + "parachain": null, + }, + { + "parachain": null, + }, + null, + null, + null, + { + "parachain": null, + }, + null, + null, + null, + null, + { + "parachain": null, + }, + null, + null, + null, + null, + { + "parachain": null, + }, + null, + null, + null, + null, + null, + null, + null, + { + "parachain": null, + }, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + ], + }, + "raw": { + "key": "0x94eadf0156a8ad5156507773d0471e4ab8ebad86f546c7e0b135a4212aace339", + "value": "0xec000101000000010100000101010100000001010001010101010100010100010101010101000000010100000000010100000000010100000000000000010100000000000000000000000000", + }, + }, + { + "parsed": { + "key": [ + 3333, + ], + "method": "heads", + "section": "paras", + "value": "0x20d98e73a9d2a336a7da5bf0a10158578ff77b82554bb96094221d0df528a17ec6c468007607889634566f75cbfaf4fb8414943bb109da8c923aa4836d6e6af90302cb8da48db99cf00131ffcd9ac63ccac44b75aafbc5b803274ebe9b421154debbd20908066175726120335d700800000000056175726101010e2f4e67d5651b087d44390900f557743186f7828a5b9296cfdc8fa247da1c03a3f64ab6bb743e88ce6a45b0036183da9dce43f102f8ea00f1731d26ee18f98d", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c338de339bbfcd5144050d0000", + "value": "0xe90220d98e73a9d2a336a7da5bf0a10158578ff77b82554bb96094221d0df528a17ec6c468007607889634566f75cbfaf4fb8414943bb109da8c923aa4836d6e6af90302cb8da48db99cf00131ffcd9ac63ccac44b75aafbc5b803274ebe9b421154debbd20908066175726120335d700800000000056175726101010e2f4e67d5651b087d44390900f557743186f7828a5b9296cfdc8fa247da1c03a3f64ab6bb743e88ce6a45b0036183da9dce43f102f8ea00f1731d26ee18f98d", + }, + }, + { + "parsed": { + "key": [ + 2051, + ], + "method": "heads", + "section": "paras", + "value": "0x777a101bb8e7a8c76bbdf0e6ed6678ea45b23c30f95df47f6e7fae6e398162fa46889000c24b15f18a12b9091585b70916d900f0ef17b38d77d70334eb9afbe25f407f08b5c554175b0fb5d2eea4936b8369292d1f387c3bec20c301f5b1f4b4512aa5ef08066175726120335d7008000000000561757261010128e7f09407d0a6d5521ce46aed77be59ee453eb38fd78225f99a348d72116b732450f30297240696dbacaa68f24c717db9be5ab3713ecc0c60fbe8bcaab05b8f", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c33a35dd60021a6f6a03080000", + "value": "0xe902777a101bb8e7a8c76bbdf0e6ed6678ea45b23c30f95df47f6e7fae6e398162fa46889000c24b15f18a12b9091585b70916d900f0ef17b38d77d70334eb9afbe25f407f08b5c554175b0fb5d2eea4936b8369292d1f387c3bec20c301f5b1f4b4512aa5ef08066175726120335d7008000000000561757261010128e7f09407d0a6d5521ce46aed77be59ee453eb38fd78225f99a348d72116b732450f30297240696dbacaa68f24c717db9be5ab3713ecc0c60fbe8bcaab05b8f", + }, + }, + { + "parsed": { + "key": [ + 2008, + ], + "method": "heads", + "section": "paras", + "value": "0xec22801150dd2dca4e0af685a6c3eeb80843fe34d93d8d19db2a92a68dfa9d1a62bd7f0092cf5fd002f78fbf4c772b502935ce0e14d9c6d8921935e725e1cdfb7ee736fabf673989fe9b2ffa8aae0f808328b26e5d6fedd1b31f9c3b4e1b65763b6f3f2908066175726120335d70080000000005617572610101f0039e5de47a05afe9b9fff32e8ee72d70099eaaaa9fa75fd5a085812206b900883d2b17aa80bac0e352e69af81a33c5f8c20458d067a7788f00fa6e3bb97f8f", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c35f9d7e46afdef838d8070000", + "value": "0xe902ec22801150dd2dca4e0af685a6c3eeb80843fe34d93d8d19db2a92a68dfa9d1a62bd7f0092cf5fd002f78fbf4c772b502935ce0e14d9c6d8921935e725e1cdfb7ee736fabf673989fe9b2ffa8aae0f808328b26e5d6fedd1b31f9c3b4e1b65763b6f3f2908066175726120335d70080000000005617572610101f0039e5de47a05afe9b9fff32e8ee72d70099eaaaa9fa75fd5a085812206b900883d2b17aa80bac0e352e69af81a33c5f8c20458d067a7788f00fa6e3bb97f8f", + }, + }, + { + "parsed": { + "key": [ + 2000, + ], + "method": "heads", + "section": "paras", + "value": "0x70584fd0d546b8e9e9e3d1a371439a82a9a2606284d290f203c3001ef45357ad4a79250182d15f96eefe97451e47fd97e24e770eea2f3bded4a0fbc0e34d8e7f473e8cf455a29b26a9e2d8b0df76c5e69cf43870b6f4907d19d55b49b368008d3e20adde0c066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a04056175726101011cc139c42324143505af185331f30553c02f0e4e745cf0670108715047dbab36dcf9d630207409ef0dd9756f32a9a0ab3ed812901b2b2b8cc2b96689af0ad68d", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c363f5a4efb16ffa83d0070000", + "value": "0x910370584fd0d546b8e9e9e3d1a371439a82a9a2606284d290f203c3001ef45357ad4a79250182d15f96eefe97451e47fd97e24e770eea2f3bded4a0fbc0e34d8e7f473e8cf455a29b26a9e2d8b0df76c5e69cf43870b6f4907d19d55b49b368008d3e20adde0c066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a04056175726101011cc139c42324143505af185331f30553c02f0e4e745cf0670108715047dbab36dcf9d630207409ef0dd9756f32a9a0ab3ed812901b2b2b8cc2b96689af0ad68d", + }, + }, + { + "parsed": { + "key": [ + 2092, + ], + "method": "heads", + "section": "paras", + "value": "0x9b5ce0147fac187a79c1e7df5795bdcdcd1048805bae1f356100420df5a42a081600ff006b55d664c0126aea08925366ac906c22d6de9699fa01f0dc7e8429a8ff4be1d1c7a1214ac0f90176fd4660b3f13531b24e66c704c01e8609c636d3ccefea7de708066e6d6273807c1cff1f7efcc8b797c83777c17436bdd7294c24ca59a275bddf002ff973b26e056e6d62730101324fb4c4532da0fe42a8905859c54575dc2e0ec250a43f7b1ec4f2ea4da3fc04f65c0406d6311a4ea77486fc6f75c7cbdc988184869206c7054cb8656d7a1c8b", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c36e28b8ad2696ed532c080000", + "value": "0x49039b5ce0147fac187a79c1e7df5795bdcdcd1048805bae1f356100420df5a42a081600ff006b55d664c0126aea08925366ac906c22d6de9699fa01f0dc7e8429a8ff4be1d1c7a1214ac0f90176fd4660b3f13531b24e66c704c01e8609c636d3ccefea7de708066e6d6273807c1cff1f7efcc8b797c83777c17436bdd7294c24ca59a275bddf002ff973b26e056e6d62730101324fb4c4532da0fe42a8905859c54575dc2e0ec250a43f7b1ec4f2ea4da3fc04f65c0406d6311a4ea77486fc6f75c7cbdc988184869206c7054cb8656d7a1c8b", + }, + }, + { + "parsed": { + "key": [ + 2104, + ], + "method": "heads", + "section": "paras", + "value": "0x6a4b49ac9bcca7b1f66b4e4e74d37a359329ec7f8406297ee37116bc79337a2126646100ec1af5644b9a5e79a5207a127e4d25373ae25bbf029aa9d2869f8d009477d34c0cf7ea5c77a35911207b0bed3a043f6dd3b66d44f0f3fec94bcf34be5161d36e08066e6d627380a2d32cfe62273ab87ee00d33bc81abb038292e2dd1e9584b1e81f295ba8ee25a056e6d627301015a01be5018f90bef32dc0fba27502d7c9d3c6dc5fc9fade256f3dc69afc67a23ac4418e3f4feec459a36ca2fc6bd80e988d64149eaa9990ba06195069a018d81", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3890bbf94976e240b38080000", + "value": "0x49036a4b49ac9bcca7b1f66b4e4e74d37a359329ec7f8406297ee37116bc79337a2126646100ec1af5644b9a5e79a5207a127e4d25373ae25bbf029aa9d2869f8d009477d34c0cf7ea5c77a35911207b0bed3a043f6dd3b66d44f0f3fec94bcf34be5161d36e08066e6d627380a2d32cfe62273ab87ee00d33bc81abb038292e2dd1e9584b1e81f295ba8ee25a056e6d627301015a01be5018f90bef32dc0fba27502d7c9d3c6dc5fc9fade256f3dc69afc67a23ac4418e3f4feec459a36ca2fc6bd80e988d64149eaa9990ba06195069a018d81", + }, + }, + { + "parsed": { + "key": [ + 2046, + ], + "method": "heads", + "section": "paras", + "value": "0x63dd297362596a5f93cdf4f6f5d9304a2827d6251fe11dea402c121a39f686209a4f5200d4de2ee339a4c3b03781eb497f9f35b7a9e66597c8cba2e053299db8cb23251e60754acfbada1308a1a44fb9a18375e025f4ef013704e21c655daf4c40c98c2710066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040466726f6e88017c7bed4ac33eef9c98d844457f6a7211a07fb459362a7bc5b822d7bfcac55bb80005617572610101fe5346cab80c7e40bac20071d29704bf560f656e94c62d608fec2214c90c7e6ae1e5d4a2f04293e5d3422bb5d902f5754b78f81555d73809fbea87062a1eac8f", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c38bd977dcdc787ab9fe070000", + "value": "0x310463dd297362596a5f93cdf4f6f5d9304a2827d6251fe11dea402c121a39f686209a4f5200d4de2ee339a4c3b03781eb497f9f35b7a9e66597c8cba2e053299db8cb23251e60754acfbada1308a1a44fb9a18375e025f4ef013704e21c655daf4c40c98c2710066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040466726f6e88017c7bed4ac33eef9c98d844457f6a7211a07fb459362a7bc5b822d7bfcac55bb80005617572610101fe5346cab80c7e40bac20071d29704bf560f656e94c62d608fec2214c90c7e6ae1e5d4a2f04293e5d3422bb5d902f5754b78f81555d73809fbea87062a1eac8f", + }, + }, + { + "parsed": { + "key": [ + 3345, + ], + "method": "heads", + "section": "paras", + "value": "0x01fbe8a3bf06b88aab862fb972255689025c2b7ca767c5044dc317b2b79551299a490400ff4050d2641eb041b679a78b8b250373d778f290a8a8632be509641932bead583bc257582909c9c63f97848c59d83c2777bf59ca005e6883c9486622d51b40d408066175726120335d700800000000056175726101014a06de6711f325f97cbcc9094b909b0c8a8228558a14297dfebe4eb36322ef5cab97d9da5251a284b6ecbd42c1e543eece25ee207c878775b47ce9f9ab4bec8f", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c38f6ccad3d833b8c4110d0000", + "value": "0xe90201fbe8a3bf06b88aab862fb972255689025c2b7ca767c5044dc317b2b79551299a490400ff4050d2641eb041b679a78b8b250373d778f290a8a8632be509641932bead583bc257582909c9c63f97848c59d83c2777bf59ca005e6883c9486622d51b40d408066175726120335d700800000000056175726101014a06de6711f325f97cbcc9094b909b0c8a8228558a14297dfebe4eb36322ef5cab97d9da5251a284b6ecbd42c1e543eece25ee207c878775b47ce9f9ab4bec8f", + }, + }, + { + "parsed": { + "key": [ + 2004, + ], + "method": "heads", + "section": "paras", + "value": "0x92cb56a15578ea5fa2233e57ccad302097fdcdd2c56bb532914fe702d740c4f2d21424014f0dd53549f4c633dd5747dede56d949e88f199fd8696e1ababa15b9d52ed96ec374c0f962cee5b8415e805cfb2ec68da77f01a3cecc0a71a400a2308719275d14066e6d627380f659b4784f3746b6325d84d74fc284d8a9f8fb1ee6a04044c468dd97120a141a0672616e6481015a91130365f3d818d3d21a1e7442e831ce6b759559faafd96e5f6f75700f1b418f13b5b7c6b5eb39097ce257fb78712ca68dc851cfa9d5954e3b708a8e699a053c88dfc97ad2459926d07bfbb4fa74be620366b55465065fc2b996f6c79e1603045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040466726f6e890201ff34613489a1fb5c820acec74c4bdf7e813d8b7bc91a22adb712daed9277f89a10845dacef8a57fa1624ae12140df34003f2f4d170789004b22eab96d123b03f6b0852b598d74b8959410e3669303d881490f769216e1c7563d8227acdd8b8fb322e7cfbf75c702777cdcebbfeaaacbbfcfded248bcc0180515a79d2110c2f048c4b1d97e9cd345b269ba0cea038bd32ecb1e72eaf1c8800adbe01282abe5a437f056e6d627301015ef578148600e0661235f62a4abbdd7942774a84980c4effd9fc0db7a733e103ffccd5a5842197e27389b8e97f16b34575cd39ed67b4d63cd1a85454c6ed5d8b", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c39f434b9dae0bfb8ed4070000", + "value": "0x310892cb56a15578ea5fa2233e57ccad302097fdcdd2c56bb532914fe702d740c4f2d21424014f0dd53549f4c633dd5747dede56d949e88f199fd8696e1ababa15b9d52ed96ec374c0f962cee5b8415e805cfb2ec68da77f01a3cecc0a71a400a2308719275d14066e6d627380f659b4784f3746b6325d84d74fc284d8a9f8fb1ee6a04044c468dd97120a141a0672616e6481015a91130365f3d818d3d21a1e7442e831ce6b759559faafd96e5f6f75700f1b418f13b5b7c6b5eb39097ce257fb78712ca68dc851cfa9d5954e3b708a8e699a053c88dfc97ad2459926d07bfbb4fa74be620366b55465065fc2b996f6c79e1603045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040466726f6e890201ff34613489a1fb5c820acec74c4bdf7e813d8b7bc91a22adb712daed9277f89a10845dacef8a57fa1624ae12140df34003f2f4d170789004b22eab96d123b03f6b0852b598d74b8959410e3669303d881490f769216e1c7563d8227acdd8b8fb322e7cfbf75c702777cdcebbfeaaacbbfcfded248bcc0180515a79d2110c2f048c4b1d97e9cd345b269ba0cea038bd32ecb1e72eaf1c8800adbe01282abe5a437f056e6d627301015ef578148600e0661235f62a4abbdd7942774a84980c4effd9fc0db7a733e103ffccd5a5842197e27389b8e97f16b34575cd39ed67b4d63cd1a85454c6ed5d8b", + }, + }, + { + "parsed": { + "key": [ + 2019, + ], + "method": "heads", + "section": "paras", + "value": "0xba82c89cc1469012daefe5399d349a01a9eec71d4b71434d1a887027a50ab0d562b4c5006bf9546ac1d3edd2e2a0c8cf6b182c18bf5d31fe095f89ff228fa2ef9488f69662489371646eb14af90a078e85465dcea913bf2f83ab1197e0146ef560b41d6a08066175726120335d700800000000056175726101011c4e44d6d2e247344d57a7730d28f003bdda19375b474591da97cc8b28ff562e684cc74c0fa68f32e85d4c5d471c061cc7cc06a121e5905de86806e41501e38f", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3a33ab67066cce00ee3070000", + "value": "0xe902ba82c89cc1469012daefe5399d349a01a9eec71d4b71434d1a887027a50ab0d562b4c5006bf9546ac1d3edd2e2a0c8cf6b182c18bf5d31fe095f89ff228fa2ef9488f69662489371646eb14af90a078e85465dcea913bf2f83ab1197e0146ef560b41d6a08066175726120335d700800000000056175726101011c4e44d6d2e247344d57a7730d28f003bdda19375b474591da97cc8b28ff562e684cc74c0fa68f32e85d4c5d471c061cc7cc06a121e5905de86806e41501e38f", + }, + }, + { + "parsed": { + "key": [ + 2007, + ], + "method": "heads", + "section": "paras", + "value": "0xdc8b97e7716f660b1c4cd3881fc366ee870c56baf03fd38961bf826ffa13a59ebe10b2003ae56721fda3932547cc3c1c47e7688c61a68d0bf790640eb5fe0912c19c3a050403ef900f6e2b6ffa80ba5290a13ca428157ebacd5da88264e0c3670b8050bc08066175726120335d70080000000005617572610101d003bf209f6c3d265d50ed77f241326c6a82e1bcc1ebf479d78d5c79ad5fc850bd16938f2e6ca676c5df6aebbec929a3df5351ad13c7d27b4d1546fa2d0ff988", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3a6e81cc6a2c29a16d7070000", + "value": "0xe902dc8b97e7716f660b1c4cd3881fc366ee870c56baf03fd38961bf826ffa13a59ebe10b2003ae56721fda3932547cc3c1c47e7688c61a68d0bf790640eb5fe0912c19c3a050403ef900f6e2b6ffa80ba5290a13ca428157ebacd5da88264e0c3670b8050bc08066175726120335d70080000000005617572610101d003bf209f6c3d265d50ed77f241326c6a82e1bcc1ebf479d78d5c79ad5fc850bd16938f2e6ca676c5df6aebbec929a3df5351ad13c7d27b4d1546fa2d0ff988", + }, + }, + { + "parsed": { + "key": [ + 2056, + ], + "method": "heads", + "section": "paras", + "value": "0xca95cf9b8f5fae97fe63e55cf163beaf7cf312ca6a1905874d877c0203d5368a425f8e005d4ffa776e2736227bd177a295f95d1ca58027812f5b035522df5daa499535a5e72385e0101b07e9f8530630b7c37eb5188b254d808233252c9f2429480b07d708066175726120335d70080000000005617572610101eaea2cb7608efdb377698f80d4daec18b04e00b3ae99fb105fed10e54577ee53842477b3568c28baf56c6352cfc59ca69348841ea548f3edb2fd49613314a18f", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3a85b1ec02482089508080000", + "value": "0xe902ca95cf9b8f5fae97fe63e55cf163beaf7cf312ca6a1905874d877c0203d5368a425f8e005d4ffa776e2736227bd177a295f95d1ca58027812f5b035522df5daa499535a5e72385e0101b07e9f8530630b7c37eb5188b254d808233252c9f2429480b07d708066175726120335d70080000000005617572610101eaea2cb7608efdb377698f80d4daec18b04e00b3ae99fb105fed10e54577ee53842477b3568c28baf56c6352cfc59ca69348841ea548f3edb2fd49613314a18f", + }, + }, + { + "parsed": { + "key": [ + 1002, + ], + "method": "heads", + "section": "paras", + "value": "0x8539833edd560bdd98fb2b1ec2a9d9f9aed2c780cf69205c50205ba6399f1774122f4c00a313d9556c9ea52301e74bbdf946780e68e2a6c97397b1fb50401292a810bdd6dbaa8f147b9bc6edf97de0d7bf1bebfa7b271f1ac5ca6d421b79456149581c300c066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a04056175726101013072a194cbbe9d99411ad5c1e110e107ae2ddc4f77a7e4c83f7e771119718604fcd1ef6116ac3ccd620bdf02f4674ab13b610b6120a626a732b8d099f9c85686", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3b2b032492225337bea030000", + "value": "0x91038539833edd560bdd98fb2b1ec2a9d9f9aed2c780cf69205c50205ba6399f1774122f4c00a313d9556c9ea52301e74bbdf946780e68e2a6c97397b1fb50401292a810bdd6dbaa8f147b9bc6edf97de0d7bf1bebfa7b271f1ac5ca6d421b79456149581c300c066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a04056175726101013072a194cbbe9d99411ad5c1e110e107ae2ddc4f77a7e4c83f7e771119718604fcd1ef6116ac3ccd620bdf02f4674ab13b610b6120a626a732b8d099f9c85686", + }, + }, + { + "parsed": { + "key": [ + 1000, + ], + "method": "heads", + "section": "paras", + "value": "0x22abec64e37493e248e1ca812c0cd774bbb822df4901d8bf8434a675605ca6195a052d017e987014c47156cfc9bd7cabf5fd4a00d20c0b333fdd682942ca63decc1634e49ae12012b14a9ef6ce5551d0a4b3cd6d125de300ee59732bc294b0e46eed75dc0c066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040561757261010173594d2d847d251c9df7c7f7f58da1a51d07c53fdb64e3a8037b49144d9db1cc8297042c36d17d5449463729ddc643f59dc7c8cf776bea836e86f2b1b3840a0d", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3b6ff6f7d467b87a9e8030000", + "value": "0x910322abec64e37493e248e1ca812c0cd774bbb822df4901d8bf8434a675605ca6195a052d017e987014c47156cfc9bd7cabf5fd4a00d20c0b333fdd682942ca63decc1634e49ae12012b14a9ef6ce5551d0a4b3cd6d125de300ee59732bc294b0e46eed75dc0c066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040561757261010173594d2d847d251c9df7c7f7f58da1a51d07c53fdb64e3a8037b49144d9db1cc8297042c36d17d5449463729ddc643f59dc7c8cf776bea836e86f2b1b3840a0d", + }, + }, + { + "parsed": { + "key": [ + 2037, + ], + "method": "heads", + "section": "paras", + "value": "0x159dc3fb56fb70cb54f76a6ed216d74a82b56acc2b8595c7533df48b15dd366456c9da00641d1cae2f429fa88c46b79bd307eb7f4da977f4f5cc62181b9f6516648383c291277b6e9525159692b762f73d19d9e6662fcef8a6aa6112860a3ef54c298e3d10066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040466726f6e880103248d4be8e7d5e83b4388309fbe158516640f290bba7ab5d5a8c6dac41650a10005617572610101f8d45a7a23c8bb14500490255a3f5a319f348571b04d77e90b3ea35a80907449aafe8f60f8a50090427d2411f25de3fed419aae902989788dd1e0e53be50af84", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3c12483a7cb568540f5070000", + "value": "0x3104159dc3fb56fb70cb54f76a6ed216d74a82b56acc2b8595c7533df48b15dd366456c9da00641d1cae2f429fa88c46b79bd307eb7f4da977f4f5cc62181b9f6516648383c291277b6e9525159692b762f73d19d9e6662fcef8a6aa6112860a3ef54c298e3d10066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040466726f6e880103248d4be8e7d5e83b4388309fbe158516640f290bba7ab5d5a8c6dac41650a10005617572610101f8d45a7a23c8bb14500490255a3f5a319f348571b04d77e90b3ea35a80907449aafe8f60f8a50090427d2411f25de3fed419aae902989788dd1e0e53be50af84", + }, + }, + { + "parsed": { + "key": [ + 2034, + ], + "method": "heads", + "section": "paras", + "value": "0x4e69ab5dae982857e2cd3be4fce28f202bd62f15f54361b659a37d82a9ef88cfcecbe4002bcee2d6c3692e08319c626c94122f0cce578cdf3c0858e265497245136d6cfff73dccbb31b244a289ff89db4617e902605c9addae60ec50da640b9748b269d108066175726120335d70080000000005617572610101c60f1fe340f7a8e1268c70522f203b33047669eeef6f4d8bdf395d2345d7f17da025456b35f214ea4354d10b0e7ced888c05b5b3a075dbc349c42019749ec085", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3c77a93d174890f1ff2070000", + "value": "0xe9024e69ab5dae982857e2cd3be4fce28f202bd62f15f54361b659a37d82a9ef88cfcecbe4002bcee2d6c3692e08319c626c94122f0cce578cdf3c0858e265497245136d6cfff73dccbb31b244a289ff89db4617e902605c9addae60ec50da640b9748b269d108066175726120335d70080000000005617572610101c60f1fe340f7a8e1268c70522f203b33047669eeef6f4d8bdf395d2345d7f17da025456b35f214ea4354d10b0e7ced888c05b5b3a075dbc349c42019749ec085", + }, + }, + { + "parsed": { + "key": [ + 3346, + ], + "method": "heads", + "section": "paras", + "value": "0xe8ef4e11f85cdf7005b404b9d1f60ee9b15cae543f7dccc9a0a779eaa0c45e8bba3e040095a29d6905379ca20e4ffb445f1c54ad55a03eece393e1a1f07634e007db3e9183a9db2ad9b67f4b243d4ce633b4c5b8c3982cf29f69925707538460ecf9c59408066175726120335d7008000000000561757261010116d35c68b66a4a981b2d9ad915c5cdc13166a4251a41119869373643f1ccb601e125a8532adc14ed0c877a6ad99c40d97811bda25f51a43c94a8d5007e40e485", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3cf8e8ccd42a093bb120d0000", + "value": "0xe902e8ef4e11f85cdf7005b404b9d1f60ee9b15cae543f7dccc9a0a779eaa0c45e8bba3e040095a29d6905379ca20e4ffb445f1c54ad55a03eece393e1a1f07634e007db3e9183a9db2ad9b67f4b243d4ce633b4c5b8c3982cf29f69925707538460ecf9c59408066175726120335d7008000000000561757261010116d35c68b66a4a981b2d9ad915c5cdc13166a4251a41119869373643f1ccb601e125a8532adc14ed0c877a6ad99c40d97811bda25f51a43c94a8d5007e40e485", + }, + }, + { + "parsed": { + "key": [ + 2058, + ], + "method": "heads", + "section": "paras", + "value": "0x6d344c177401040c060541f9544dd283d265cead206920b64e33110a96e36db1024d0300ade87d707d381fe47a591f5585918980a82b0f4f229560984c11fa7d12e8f8661a7179099298604be1d8ab66862d786b59b50a01afbc44139c7278b4362b01d910066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040466726f6e8801cd589d633b66cb5dc393c9879457294144a5fc7e2ddb48cff80f587080faa3f90005617572610101f0d40fea5163de6c535953f3c101558f67ceffd7967fca06d32af05956d8ea3d5a774e5bfd28a24b94fc976a5505434bbc976e69bc3d23e5db4881f3dfb1438b", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3db5334ffb7cee19c0a080000", + "value": "0x31046d344c177401040c060541f9544dd283d265cead206920b64e33110a96e36db1024d0300ade87d707d381fe47a591f5585918980a82b0f4f229560984c11fa7d12e8f8661a7179099298604be1d8ab66862d786b59b50a01afbc44139c7278b4362b01d910066175726120335d700800000000045250535290819884811c4346796e7bb89e6b649d4a59fea099988bef29348f5250b038aaf6faa14a040466726f6e8801cd589d633b66cb5dc393c9879457294144a5fc7e2ddb48cff80f587080faa3f90005617572610101f0d40fea5163de6c535953f3c101558f67ceffd7967fca06d32af05956d8ea3d5a774e5bfd28a24b94fc976a5505434bbc976e69bc3d23e5db4881f3dfb1438b", + }, + }, + { + "parsed": { + "key": [ + 2091, + ], + "method": "heads", + "section": "paras", + "value": "0x550527a4ad76f73152190e8fe2ef9b9d04351ef591f80d1be651b507ce6c60f982b19200ec908b648b83ebbd02d9d7419fa19596bafa0827617deb1c3bf720610502bf9e0a62a6694d9c04204568e099fb3755ca17242c81065efe818928d3f6985581a308066175726120335d70080000000005617572610101b6764ce5380ed3cf21f7b2e5d7d2989d89fab08e634c864dfc08dbffa74d3e1b2e3bcbe1fad7130cde86834b82120bdf291d0eef09b0d530e5e17a83c5723088", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3ddcd36bd16bca7fe2b080000", + "value": "0xe902550527a4ad76f73152190e8fe2ef9b9d04351ef591f80d1be651b507ce6c60f982b19200ec908b648b83ebbd02d9d7419fa19596bafa0827617deb1c3bf720610502bf9e0a62a6694d9c04204568e099fb3755ca17242c81065efe818928d3f6985581a308066175726120335d70080000000005617572610101b6764ce5380ed3cf21f7b2e5d7d2989d89fab08e634c864dfc08dbffa74d3e1b2e3bcbe1fad7130cde86834b82120bdf291d0eef09b0d530e5e17a83c5723088", + }, + }, + { + "parsed": { + "key": [ + 2093, + ], + "method": "heads", + "section": "paras", + "value": "0x2d14d0e64f707ef39a2b21e5876e0bb4db89cb8b5060cea7e7ac805c0bd7ec6052356c0082abdf3a0be8ef8e3caede4f8e42235482fc0b031ca3fb1ea0f719ca5b4d9bddf4989bed5a862f938d7deef7ea5530fac612b1d167f4bb824ebe8fef3099f92408066175726120335d700800000000056175726101018e2f13a9db4056328608e918db251b8cbc2603b3e183b92fb7f60221483edc03106b0b8798a8475908252e5b6c5dd7bfc305fcb117128c0df0cbad22cc956887", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3df9ffad132ed49ba2d080000", + "value": "0xe9022d14d0e64f707ef39a2b21e5876e0bb4db89cb8b5060cea7e7ac805c0bd7ec6052356c0082abdf3a0be8ef8e3caede4f8e42235482fc0b031ca3fb1ea0f719ca5b4d9bddf4989bed5a862f938d7deef7ea5530fac612b1d167f4bb824ebe8fef3099f92408066175726120335d700800000000056175726101018e2f13a9db4056328608e918db251b8cbc2603b3e183b92fb7f60221483edc03106b0b8798a8475908252e5b6c5dd7bfc305fcb117128c0df0cbad22cc956887", + }, + }, + { + "parsed": { + "key": [ + 2101, + ], + "method": "heads", + "section": "paras", + "value": "0xc345b70a5c9245ac4ee22cabe47cfeac04021091b4b6e4ba03b8eaecb3ae2b4f0eb8f80006272eb99dade4607f0004bf28a27a2fe99b1dc3362dada56abbbf1b3f8f19ce29fc463f0f6cfe30224ea57146942d16d285c99263895e9459adda87da22e0e108066175726120335d700800000000056175726101010613c50b556df1f7dc7b4cb55ed82f82c9bcfddaf9c4e8c87cf528ece49f406974f73156c3330090661875abaa60889c14f0144873cb8977ba5b7ed32555ff86", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3f7f7e146c4af733935080000", + "value": "0xe902c345b70a5c9245ac4ee22cabe47cfeac04021091b4b6e4ba03b8eaecb3ae2b4f0eb8f80006272eb99dade4607f0004bf28a27a2fe99b1dc3362dada56abbbf1b3f8f19ce29fc463f0f6cfe30224ea57146942d16d285c99263895e9459adda87da22e0e108066175726120335d700800000000056175726101010613c50b556df1f7dc7b4cb55ed82f82c9bcfddaf9c4e8c87cf528ece49f406974f73156c3330090661875abaa60889c14f0144873cb8977ba5b7ed32555ff86", + }, + }, + { + "parsed": { + "key": [ + 2013, + ], + "method": "heads", + "section": "paras", + "value": "0x18f704ad2e8b94520ccc219b871bb744a11d26f2d77d1a52f669c196aa1f4f8b5690d800486e4641547fa51acc974f1821eea340c7a9459b2e4c6f034b45c7f58be7cfbf1012fccea97adc203090bb3d04a754130b8123169ed6d43cb0e56ec894bd8ed308066175726120335d7008000000000561757261010100251c77366369436e0799cc2000040b2b2dc073389f0f996f00696bc36cf41ea066dd5dce1236e3313bbab795d13e19b5057204e96ad55111670962d695af8d", + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3fd3c4eac5d2f7717dd070000", + "value": "0xe90218f704ad2e8b94520ccc219b871bb744a11d26f2d77d1a52f669c196aa1f4f8b5690d800486e4641547fa51acc974f1821eea340c7a9459b2e4c6f034b45c7f58be7cfbf1012fccea97adc203090bb3d04a754130b8123169ed6d43cb0e56ec894bd8ed308066175726120335d7008000000000561757261010100251c77366369436e0799cc2000040b2b2dc073389f0f996f00696bc36cf41ea066dd5dce1236e3313bbab795d13e19b5057204e96ad55111670962d695af8d", + }, + }, + { + "parsed": { + "key": [ + 3333, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d338de339bbfcd5144050d0000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2051, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d33a35dd60021a6f6a03080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2008, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d35f9d7e46afdef838d8070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2000, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d363f5a4efb16ffa83d0070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2092, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d36e28b8ad2696ed532c080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2104, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3890bbf94976e240b38080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2046, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d38bd977dcdc787ab9fe070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 3345, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d38f6ccad3d833b8c4110d0000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2004, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d39f434b9dae0bfb8ed4070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2019, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3a33ab67066cce00ee3070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2007, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3a6e81cc6a2c29a16d7070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2056, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3a85b1ec02482089508080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 1002, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3b2b032492225337bea030000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 1000, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3b6ff6f7d467b87a9e8030000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2037, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3c12483a7cb568540f5070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2034, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3c77a93d174890f1ff2070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 3346, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3cf8e8ccd42a093bb120d0000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2058, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3db5334ffb7cee19c0a080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2091, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3ddcd36bd16bca7fe2b080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2093, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3df9ffad132ed49ba2d080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2101, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3f7f7e146c4af733935080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2013, + ], + "method": "upgradeGoAheadSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3fd3c4eac5d2f7717dd070000", + "value": undefined, + }, + }, + ], + }, + { + "logs": [], + "phase": "Finalization", + "storageDiff": [ + { + "parsed": { + "key": [], + "method": "lateness", + "section": "babe", + "value": null, + }, + "raw": { + "key": "0x1cb6f36e027abb2091cfb5110ab5087f0323475657e0890fbdbf66fb24b4649e", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 1, + ], + "method": "underConstruction", + "section": "babe", + "value": [ + "0x7eb998c35ad32ca5dc59f49c5908dc268c8cf965c7733fa04a6b92bbaad45b7c", + "0x2c0cf34643e3f3263fbfae6719e74910848227629209544ba85552188c8c3f4f", + "0x5e9e1e96861e857d7c11838ecbd2c0706464d68aaee572e90f85ad553b5a627b", + "0xb9013069f170f70505668d57b9329537ec67ac3faa11f45aca3d4cf52463afed", + "0x1976c6ad7c8e78b92bf68b04ba467e58d7d55aa2be05a117e939ad4e50206d21", + "0x5173b0dfeeadfb8f251dff24a1e2c3035130c86b314b42a25514a68938d1b00e", + "0x6a9a486c919765ede7f5cea68d28a0a24134fd64701c578fa0a328fa9f3b4a9d", + "0xca95c4f9c69590d93fd1c9b20746126801fdd14a1f4913b38f0fea1102dd1ab1", + "0x849c324d733f476e4baea262277b498fd679cea97d9158e5a0b9330f9cb2ae01", + "0xebd70670bd2c16b43b64369fab54093c41f042c09a88db22bf84fd6729f5e752", + "0x8b6acf0750f60c9bf74be99c3b4bf1e0eb95d390679ae5fbb909dc5d8468315a", + "0x18bf19e4b24a49b8b7a24442e5bc802894b2199470119315edad9a6a4288b44a", + "0x2d2fa36e7f21b1d4273a0b89c7f3818da128e6cfc1f249f643ea66c4f3f7819b", + "0x9736a3ec300165468694b843621a2afb3704b136c8ab2f6018d2c04f6297c229", + "0x98ef917e4d3b486617ea97a311ee30cdfad7471fa3038f3458867f1e3ab8eb5d", + "0x9115f64a109310fb098419e04b0d061e8062878be3f0cc5dfb5e4addb3c2ff15", + "0xb10f85dd55d727d3d8607f765abfde592f7d0edefb2427677edc177d36c31fdb", + "0xd1b56cbddfdff463d85ff8d4c4e37b0dbd5dd26e494d217fbd011d03310b6e70", + "0xc6190adc07d301aed9a72cb1c415bc0ce587790d498701d5d0808672389e6aab", + "0x5ea7159028b5ffbce178aa231ed05d3880d20128ea9e5e8c237e3e1bdfab3a28", + "0x68dcb5872387e4eb148fe68685f7708b813043635d95bff154e89f564b1807c0", + "0x80a39c880fd7356f000343d9df990bff0c9fcad0df4e3e789562f1f5ac57b708", + "0x6df0df429cf9deab208a0841cffc4f8086dbeb54236b0a1412cf256e7187e775", + "0x7fb7abd626110f50a69df7dbcf4c5085015abb0f92cd22ca995cebfc25d027e5", + "0x5ebfb05ff4ce483fb3b32a2e9dd360783eac1cde1408fdce4f8012a5d2c731d3", + "0x1e033fa55817c618039709a00fba04aaaee47b48e169753c475b9a839a7277f2", + "0xc2916e8f921fc84da3f1529a871942ebc38b625f4a5f971c9e0f968524dd3e47", + "0x4d726bccbe2fa22c6a37c5bdc3ecd9d0a9ce777bc3fc4a9140bba5a46ba7c5cc", + "0x1faf248582a923e00c87528d166728282bf5a5a87dfde89322c5ac9c6aa71d25", + "0x189825620eb1afca6ccd078c8c99ae8b19327bd827e3476afb6596059782fcd1", + "0x23d114fe1014383ef94092c2ace9df322e99268616e1aae5e4a8f9bb131a5e13", + "0x6b9400879d7eabff3b4ccee65de11910a3b16c04523f4504c5515c74880648fd", + "0x69c43f1e4b002dcbf5afc82b8a1ad7cbb6159617ca64207fbc5e114377dc5989", + "0x7f1186bb4ebd9b00930dbec9b9cf65a697473550d6248e6dfe224e022c2f4feb", + "0xd439432b0665ea4383f2f3c2887ccfa6a8e29c7585ef624cd35054a8adaa1098", + "0xb00b2680f86c7128ecf6632743821667b872fb9673c3fe3d4840e20cb69f47e0", + "0x3bd74402b8e4be27248b4e24f0ae12a1abd06ad588e2c0ca819eb0e8c9eb2d74", + "0x2058cf06790bac1e7adf0eb71225b0b37c21f6901c6fb151dd56e3b83c9fe4bc", + "0x89625f1335244a58e499a2d3611a269a0353e5ea7e6cfe5b5ece9c4bbf21ef90", + "0x5a4d862ffb8ca90b6394ddfca99f9674b5a7ad49a33616fb15601ce8af3e0ce9", + "0x7f9fbbfb94cbe6d65f72a90e61869858eab6f43a2b2a83d8c5ef4187bf33ad89", + "0x49c52369a7274ed00020c72166dacc36df3a41332217a12c3e5b1d8a40a31130", + "0xb0e2a25ee7c320ad8603bbdaaa453cd85d0c746a83a001a804b06dcd0b449bc4", + "0xef898539f5e6e6a496d1080ef6e28253c8345bde3d0b0c46f65844cc90406295", + "0x722289612b507b34f8b7ba4acc662e50beb0ba2fda376f1dd073cd4b2eacbb90", + "0xaff7575af68ab2d338ebb4d80d44beadf2796544c889853fa7c41c2e8806e3d1", + "0x630df13cdbf540955395f1b52c5fa2337536f73049975a86e32351f0fc80e1a8", + "0x56abed32515165168ee44007ce188b70dfe5bf8f79e72f71f0803e4e359523ed", + "0x23d01684c48733a235eedd76618c63510f625d3d6b3069fc4e37c17ef332a758", + "0x48a4ad06f320a23f92dc21d062ea7b3c652e51e7456b2a1b2a2b687ec8f51d10", + "0x7f3e3b731687cc52eef6d8212bccd58628b797bf9eaa43d54b72989b26ac9b4d", + "0x06c82a05f75f5f8dda5487ecf5f7e3e4aee513b6a3d4d8e7f7250d9e25662873", + "0xba48132f57ffa1995ce6d2de809f84a576fa7418868a32775443b792c98065af", + "0x3279830b567f76221ceece868250e7b42ef63f2a19e232f959421b9e0cb6db2c", + "0x453360a6b84793a00f1d7d475faff1a665ec66e0e399a7d4c92695b1d11f2aba", + "0xbcced21719cac6b17327530b04e5d2bbeae5e6bd3f5270cc55cf20e1b365954c", + "0x3cad1a63af6eed1b3cf0d4f5533717a3bf2b90a0787eabd954b024cfd6f49cce", + "0x6feea3e0199975dd27d4d94bdc5c6e60323758c38797b66c4b8e9025dcd07e7a", + "0x46fcd8c23b51563b6ce10a8564878ee1798091f5df161b221cace4e4fd4ac3c1", + "0x06a85929ce8d13bf7fb4290fec2bcf94c524e4d45e72e0e359ee06e1d583e5d5", + "0xe0dd98a4b60df1d33e2ae7121292ee454fe3101ec91fcc407ce5d423df170c82", + "0xb3802f4d685cd843ae0297a37a548a1bb16616534ab577a19d5663f803d2b12c", + "0x357b1d78fcc44ee80afd45e3f32e7b3b0742cd1f8410e22bc5c15aeb753d1cac", + "0x1d0fab149cc403367d197f751dcc88868b4e6bf1e59833f7b7fbf6b35d4b16c9", + "0x58359610c4362165ea49bfad41c296bd3c98ce7243e822e687a699151e1603ca", + "0xed2ee3e7b2009598fcf494a68046b958ef82444094f38556ab3bb336341e4e30", + "0x5897b1b5a002f8dbe947c766c7f6bbb303ed2ffa7a7f4bfba67255ea10108fbf", + "0x0eeb42525d4b4c8cfed49cea4579839db3002f27fc879af0b458c8148f550335", + "0x3c9bcd899b220a6f48a8dda667cbaf80867c0196bbbfd355680c583b908292fa", + "0x7bb4dc1775def2dd9720579df892428fac48a1071a69ff5b7ce1dea626911a11", + "0xd6fd50f3e2f9a1d9ece00b036dc120d539e93b7348558d0c32e0b4d73cc3a1f5", + "0x62693c8c8651936e98bec239faac21afe15fefbd0ad6bfbc1536d1c47f10b8bb", + "0xe99a94e1827115105b6fa43dc3d936e2a3fbcc036b1dd2b8085bd1476da89cb3", + "0x7293645c0629f7290194d39414abe7a690069a35c9b70fa75a0c278354c20dda", + "0x92bcea68004e179642f795f4225bc8bca74ae52d0fa0bb11d08df03a3a179a50", + "0xc5851cae2a5b37e254cf979398bb8b900668d75a66dc6745e7f5a50e6cff4ee3", + "0xc54a0e40bc37718d20bfed26323a42cb1cf2bdaabe218ecc25f62d96576f7a77", + "0x0bb057df5e8600907547c6c072428b1d60025311b362503ac702f772d971dde4", + "0xda3e2eae968f6509bc771fe02f5ba2a9d24a826761dc3bffac4de477083c3cb0", + "0x5baa8ac5fb89f9b1f8129a568ad26b21b20586c11b4a0ce049b51a98ea973d22", + "0x5451862947e2d975d45ba2aaf8b0854549abf62957460f76474403435db08146", + "0x8becb01116886ce8e9c81b97e9d5232c1ab3f1a47cc19639a111942b54be6651", + "0xb69ceed05d399764970c9479943f25238c1c060b80d39e5db75b2d429381bc14", + "0xff4e35f8ef1e05cc12da2621df1bb52eb117eea2269c69c8df3f9ee26bea7089", + "0xebd8f0124be72bbe5b07755c03b8d8831da9d33faff07d0b09f70f7700042524", + "0x402efbda143f307fe8b732a87d52d31d51f3f77e3064b81c4bd5d73e372e4c24", + "0x0edd7e4274f4f30d3f096cd0d718817e62aef55420d302a6e0f991d9defe7a49", + "0xd0c59328f0755acfee940b278a4a0e95e41bfb7fc0452849f2fdee31c900e806", + "0xd74d8b01ea7da0a07af4fd335a32c9eb9171f4105eb16813ddb1fbfbaa9e1095", + "0x1cb27a5b18c7300cb3b0b8c4b3b4b28c443fd7f3fafba86bbf045b9fab5507f8", + "0x298c30237907b882224b3b75cec58b8f3e23d51831ca876b2ee61069d9da6113", + "0xe98d26f511c5ccbb2c6c55a9f648e187c59c4a0ff5b52afc268dcb8fc2dec2d9", + "0x6c6bf591849778947062e510d439e85a949da2534f105cf5ffb0877674abf5a0", + "0x701f10ce36c36333089e504d9841fb6a2c9e8cb198e1bfbf32c33df365ee7fe9", + "0xad6efc7bfebe90bcedefe0bae6b7964e1eb4ac38707c3b5c8171916791ef69bb", + "0xa94c7f712ad30408475dfe8ab20a11816d7e055f179bdb3a072f631737a23eeb", + "0x367c7bd87b67dd3684a64e8888bd989573b9cd1359f552ccb354303548cdb6fc", + "0x645686aa2181347e7e9445c7fe5bba2abb9d480b8d010b2217fda798e0d9c034", + "0x03cfb8d6b0711b58b937ad9085d5a2d9d6a110503c4970e005a901d8974e1751", + "0x6dfb5104382f1c53eee67425eec017ab7c43553f487c2bd363d08fe73e0de84b", + "0xfa3f235f8a6bda080f5388a70ab763ac65add8d348f4b29af9873a2533027b5d", + "0xa934ee16236ba4c6d59c6fa1dd9de3f7fb8bb70b6c7a12b3341c4edd5d334890", + "0xa7a8ff1291a2089414150f5bb82f69fceb8419d2cf207c898566814465513c0e", + "0xe19b2e859ca80df7ab1d90cec079da51ccff8320cbbe4324c24fae665b862491", + "0x014b588b5a2aecc928c6d9e31ec7eb53ba00b35ac9cfdd0f18599cd7858c9bed", + "0xfebfc852a21f1618ec4ee186eaf481dc2a72106388ee8e3c99e442caeb200bce", + "0x5a652172c95d968e0fdd2331756fd922b5cf159309f80ed5355a2efaa8ad8864", + "0xd6333fb34f9fb624485359f4a9994bc62fd6df6f098491d182a0508e0cbe411b", + "0xc20f0c4358eb6b0a60503586a920885784289acf131669d431831238a346a08d", + "0xc172ccdaf8294a2aba39ed192f8209d8d95fd0a9adc2608eada95b421393c34c", + "0xbef06ddb091762b360008cd42f7dc77af79983053b5d96bce124e09072fd2d02", + "0x0ef6a0b56a72973f25589cccdb63963c112e12b8cd55f5ab2349628dc94a4899", + "0x7b54eee7781450e4a320ea8e6cb346a31a22ef2d31ade6a4b9a0fb8629ebbce7", + "0x2b309d5321b132cd6a3849c0aa84243cfb3bd0ffe5d9dcaa57a13cbd4e25c6ef", + "0x5dc2ba9de8e992b7e2138d861cd1cdd12572bdb59475facd65a508c9f6b69f05", + "0x25504fbffbce779d5c3139ec23084e8fde416c635c566458a20f1ebc17a84a15", + "0xb0ea8a1063503d002b580d6df601f3f262b899fffbbae53cac8ca2836ac50f06", + "0xfccc29e761f9cfa6fa2a212a654f946c524ee4b243abcb9cdc613c081a1d2a6f", + "0x12f00d6296a04b3ae6495601982d7d5281924195119d624cb63f7b3277079605", + "0x87cfd8f8ceea97f17aa4995d04aff29c4b24e0ffef7b8a898bb1966850b9ebdc", + "0x0078d731c8aa741a94eea08f8eed097ebfce972e8b2fe049598632f6696fa11d", + "0x1d5c4df8a7e473f70bc225f50d2bc834076f194e965e003ce41e720282b5f0a0", + "0xa435b517d308d76bceed04f30507c1acb885ce6bb863a0a130206a7cd34f7fcd", + "0xe977c995519e944f93348380805949c019130d2900cb46f7c2c6b3396f83d9bf", + "0x33418afe6c2d561c421eb7280c8343bc0aba82ee8538a2910b7007d2022b8784", + "0x5436f26721e92a2fb605ef40b59de4952913423cfb21d3b1366efaa90ec0a7b5", + "0x79b7dd90700f17db006b45e88b33a5ef923dd60284b70e8960392b01f296f848", + "0x15952570d2a644d087e6705c1b3fa1bc40bdc11fa7f905d0c1e605bacc514954", + "0x78cabb9eee84750239ea7dc925f974042a026ba7707367fcd5561266d905aab6", + "0x487a60919ca1ab1f067d59e8b1af015df8579a80f361da0468d4370bbd2ad6a1", + "0x9a5728b844a93fc8db8710ca201723623daf0953d24a2c57afb98261b565090b", + "0x89b37b4420ec7dbf546896491f4a729005aa8b2e2ce8ef404aadcf2ae8d09c1d", + "0xc08e32299a28a5f65bf47535eb96fb2c91f71a17519c1dabda0d2c07fc0b7e3a", + "0xdef41575d0297166caa84491b52a2846cb4b56bc3a65ca87c9aaeddf18207e85", + "0xb12ba3ebc2ff5acc6d0dd521bd440e0c2d0997240b4360a3d4ea4349fdd6c629", + "0xdcf882f81484babf7b5af8d2986bae7179224b0ca38c767483f9e271d464cdd2", + "0x0ff4ce1be655a4f69260ca62ee2706636692731dcf8c81c41bca00967f1fa76e", + "0x4134358671f3448a2e8fb2e07783cd0b7878c17de04f7c0b6a462364e1f1653e", + "0x5c78dd38a9f290097194860b53888d6fa7265c8d4fd064f1e4d9fd8d6e6eaf5d", + "0x99f26b28342c95ae17f9ab6b78d43628eca432eb4c3d6654ff6ef6eec9a0de0a", + "0x0862c51fdfb90b2798fd9f85fc4ef45ff1dd6f80aa3cf49e3e861a605de3509a", + "0xd00ef3c408dd11c908df6c330466ddd2bf301f9334212241fbb0cfbe996e8568", + "0x6ee298d407a1e81a8e3a35e7a6c4d9bd4d1fae60256246f1688a290992a032f7", + "0x14f44c71e90e324da501951a78205ec7cf343ada6a7edfcde31ce60c09999f38", + "0x81567e801a2dab135427de2efb814075f15848f79b773343e09bbe5f52ed01ea", + "0x969d060c3abfa560b9870994b1d8189d002fea4e0522c00b32b551e6e48022c4", + "0x3350c0ebbd6133e7efb6b79d3f798b14825b80e9d18cb32df49f27a95cfa1904", + "0x9ef2e499d8889932f3518fbac720eaca020cc5d43f07b40a64a298e8f6f4e9c2", + "0x626b451e635277e2f18b24bf96c62dbbba02107a24c86453b3c640b5d160644d", + "0xf9df8ed0485b94cfc33d0401538c3082957e8a6c3992980787c2c3106d75569b", + "0x7a74040d413022804fbf42381be4648066cd673af3b901a05f8ccfb3b50a988b", + "0xf326824762d2ef4ca6785da53b055636734f417fe6ec127aae3dfb3b9137d36c", + "0xc5a375ed00d1d1e51b9b7293fe8b3f0784f9b6d21d3462f0e7dc79fab27495ec", + "0x33bc1ecd13180ea7a81012e6df9ea4075b400482ecf1e7de8628f32e3e571dde", + "0x9b0f3abdcd5214e9b23927ed4245ecd8c503186d12a5842773de611262732f1e", + "0xd7f4d29d3df32a062564107f474cc5b4315b0e435f2f36aaea6e2dd007abd3cb", + "0xa1ed01a2098993d3615b11be51f6b761664179ca2989316e2505732bcf067d8d", + "0xc9bd38cbbd3a5c3bc01c7b21fd5e34c79573f51cc96420067f7493c994b2b55b", + "0x52e3b2b6fa5c3e6883945eed7529931d7409acf1e7d91f36e6277333754364c5", + "0x39f0b55deacee2cb4a62c4f701385a4a808e69f366ddbf6f4d0895c0e97cd271", + "0xa9c6028d09cf179f9cf7013a7aaf82ecd8e79b94c933e27054d982a0c8989050", + "0x814116c62b01531e7ff9c425e0247d91d94bcf29dbefff3e9ae6d80fea27f84f", + "0xd5f6ef4f3c7bb913223653137be9301cdd677004a7ce327549bb1aaf0f7982da", + "0x67dbca9431944cc349a45fbd0c19691cf7e3ead7925e0cf71d073ad398e2fef3", + "0x01db4c48a687d325ca9ae5f7fde2cc0e0930a678e41a44e7abb33e575b3d5aa3", + "0x33daedd4f13976f20eb005b15afa02c3504b835ec2d63d37104ca9bca7c21520", + "0xd508cfc63f9ce516483315cc21ba4ad7c79738aa1a56edcc30eae5f1fcc8142e", + "0x20ea1539f34ae4051804057e0e9053813815bbd5f7344a84370d04ac4ee40ac2", + "0x4bb96fa2a1633418351f1db0c4cfcdbf092c55a3b5da4d761d87c2ffc323722c", + "0xcd604a7e867df535894eca76835e4af6456ce1619a0a301e011c4407a9378672", + "0x8be48b6ff1d245dc998cbcd92489b098726bab2fcfc1857cc5138e37ad6ef09c", + "0xc53e2d0400a39100f5fbf8f4c54279158de366090fca16d6d8a2b7d262b9d69d", + "0x3d1e76d1945488b3a4f53fa0bedac1edf97dcc809b22e87188093b59b49f54d4", + "0x18ffec92a97af16a6cb474bafa0028bbd3d6f4e924229929c8e106511b61a1db", + "0x3264811550af4d2cc468160dc5ef781b80a84387951eeebb5fa827685d7ce728", + "0x3cc2f2bb7cae1d9e906db40e9c854b4a48305dea3360ced651b3639b383bc059", + "0x12bbc1c335b62db82a64d84b003249a847b3b04a3c3dffe0f7c44ae0aa75e97f", + "0x6dc71cb1648d4c7ed77d34df8483bdfa60743fa86886d2b213d1af1ea760960b", + "0x17291212a002760c4cb54d67e76833e2e9ee194a68519c1fd1a19024bfe5faf9", + "0x7c20f55842bb0d2b2fd2e617e5fabc5770cdc05c2191843778d8e1b7b4731858", + "0x82280d339960c3370aeaff14730a2a06d958f523ad26c11a4b651a95a4e1b32c", + "0x044cc292baa7f2890f837c5da231c59352efd94f202db8ad715ab8e998629d59", + ], + }, + "raw": { + "key": "0x1cb6f36e027abb2091cfb5110ab5087fb9093659d7a856809757134d2bc86e625153cb1f00942ff401000000", + "value": "0xd9027eb998c35ad32ca5dc59f49c5908dc268c8cf965c7733fa04a6b92bbaad45b7c2c0cf34643e3f3263fbfae6719e74910848227629209544ba85552188c8c3f4f5e9e1e96861e857d7c11838ecbd2c0706464d68aaee572e90f85ad553b5a627bb9013069f170f70505668d57b9329537ec67ac3faa11f45aca3d4cf52463afed1976c6ad7c8e78b92bf68b04ba467e58d7d55aa2be05a117e939ad4e50206d215173b0dfeeadfb8f251dff24a1e2c3035130c86b314b42a25514a68938d1b00e6a9a486c919765ede7f5cea68d28a0a24134fd64701c578fa0a328fa9f3b4a9dca95c4f9c69590d93fd1c9b20746126801fdd14a1f4913b38f0fea1102dd1ab1849c324d733f476e4baea262277b498fd679cea97d9158e5a0b9330f9cb2ae01ebd70670bd2c16b43b64369fab54093c41f042c09a88db22bf84fd6729f5e7528b6acf0750f60c9bf74be99c3b4bf1e0eb95d390679ae5fbb909dc5d8468315a18bf19e4b24a49b8b7a24442e5bc802894b2199470119315edad9a6a4288b44a2d2fa36e7f21b1d4273a0b89c7f3818da128e6cfc1f249f643ea66c4f3f7819b9736a3ec300165468694b843621a2afb3704b136c8ab2f6018d2c04f6297c22998ef917e4d3b486617ea97a311ee30cdfad7471fa3038f3458867f1e3ab8eb5d9115f64a109310fb098419e04b0d061e8062878be3f0cc5dfb5e4addb3c2ff15b10f85dd55d727d3d8607f765abfde592f7d0edefb2427677edc177d36c31fdbd1b56cbddfdff463d85ff8d4c4e37b0dbd5dd26e494d217fbd011d03310b6e70c6190adc07d301aed9a72cb1c415bc0ce587790d498701d5d0808672389e6aab5ea7159028b5ffbce178aa231ed05d3880d20128ea9e5e8c237e3e1bdfab3a2868dcb5872387e4eb148fe68685f7708b813043635d95bff154e89f564b1807c080a39c880fd7356f000343d9df990bff0c9fcad0df4e3e789562f1f5ac57b7086df0df429cf9deab208a0841cffc4f8086dbeb54236b0a1412cf256e7187e7757fb7abd626110f50a69df7dbcf4c5085015abb0f92cd22ca995cebfc25d027e55ebfb05ff4ce483fb3b32a2e9dd360783eac1cde1408fdce4f8012a5d2c731d31e033fa55817c618039709a00fba04aaaee47b48e169753c475b9a839a7277f2c2916e8f921fc84da3f1529a871942ebc38b625f4a5f971c9e0f968524dd3e474d726bccbe2fa22c6a37c5bdc3ecd9d0a9ce777bc3fc4a9140bba5a46ba7c5cc1faf248582a923e00c87528d166728282bf5a5a87dfde89322c5ac9c6aa71d25189825620eb1afca6ccd078c8c99ae8b19327bd827e3476afb6596059782fcd123d114fe1014383ef94092c2ace9df322e99268616e1aae5e4a8f9bb131a5e136b9400879d7eabff3b4ccee65de11910a3b16c04523f4504c5515c74880648fd69c43f1e4b002dcbf5afc82b8a1ad7cbb6159617ca64207fbc5e114377dc59897f1186bb4ebd9b00930dbec9b9cf65a697473550d6248e6dfe224e022c2f4febd439432b0665ea4383f2f3c2887ccfa6a8e29c7585ef624cd35054a8adaa1098b00b2680f86c7128ecf6632743821667b872fb9673c3fe3d4840e20cb69f47e03bd74402b8e4be27248b4e24f0ae12a1abd06ad588e2c0ca819eb0e8c9eb2d742058cf06790bac1e7adf0eb71225b0b37c21f6901c6fb151dd56e3b83c9fe4bc89625f1335244a58e499a2d3611a269a0353e5ea7e6cfe5b5ece9c4bbf21ef905a4d862ffb8ca90b6394ddfca99f9674b5a7ad49a33616fb15601ce8af3e0ce97f9fbbfb94cbe6d65f72a90e61869858eab6f43a2b2a83d8c5ef4187bf33ad8949c52369a7274ed00020c72166dacc36df3a41332217a12c3e5b1d8a40a31130b0e2a25ee7c320ad8603bbdaaa453cd85d0c746a83a001a804b06dcd0b449bc4ef898539f5e6e6a496d1080ef6e28253c8345bde3d0b0c46f65844cc90406295722289612b507b34f8b7ba4acc662e50beb0ba2fda376f1dd073cd4b2eacbb90aff7575af68ab2d338ebb4d80d44beadf2796544c889853fa7c41c2e8806e3d1630df13cdbf540955395f1b52c5fa2337536f73049975a86e32351f0fc80e1a856abed32515165168ee44007ce188b70dfe5bf8f79e72f71f0803e4e359523ed23d01684c48733a235eedd76618c63510f625d3d6b3069fc4e37c17ef332a75848a4ad06f320a23f92dc21d062ea7b3c652e51e7456b2a1b2a2b687ec8f51d107f3e3b731687cc52eef6d8212bccd58628b797bf9eaa43d54b72989b26ac9b4d06c82a05f75f5f8dda5487ecf5f7e3e4aee513b6a3d4d8e7f7250d9e25662873ba48132f57ffa1995ce6d2de809f84a576fa7418868a32775443b792c98065af3279830b567f76221ceece868250e7b42ef63f2a19e232f959421b9e0cb6db2c453360a6b84793a00f1d7d475faff1a665ec66e0e399a7d4c92695b1d11f2ababcced21719cac6b17327530b04e5d2bbeae5e6bd3f5270cc55cf20e1b365954c3cad1a63af6eed1b3cf0d4f5533717a3bf2b90a0787eabd954b024cfd6f49cce6feea3e0199975dd27d4d94bdc5c6e60323758c38797b66c4b8e9025dcd07e7a46fcd8c23b51563b6ce10a8564878ee1798091f5df161b221cace4e4fd4ac3c106a85929ce8d13bf7fb4290fec2bcf94c524e4d45e72e0e359ee06e1d583e5d5e0dd98a4b60df1d33e2ae7121292ee454fe3101ec91fcc407ce5d423df170c82b3802f4d685cd843ae0297a37a548a1bb16616534ab577a19d5663f803d2b12c357b1d78fcc44ee80afd45e3f32e7b3b0742cd1f8410e22bc5c15aeb753d1cac1d0fab149cc403367d197f751dcc88868b4e6bf1e59833f7b7fbf6b35d4b16c958359610c4362165ea49bfad41c296bd3c98ce7243e822e687a699151e1603caed2ee3e7b2009598fcf494a68046b958ef82444094f38556ab3bb336341e4e305897b1b5a002f8dbe947c766c7f6bbb303ed2ffa7a7f4bfba67255ea10108fbf0eeb42525d4b4c8cfed49cea4579839db3002f27fc879af0b458c8148f5503353c9bcd899b220a6f48a8dda667cbaf80867c0196bbbfd355680c583b908292fa7bb4dc1775def2dd9720579df892428fac48a1071a69ff5b7ce1dea626911a11d6fd50f3e2f9a1d9ece00b036dc120d539e93b7348558d0c32e0b4d73cc3a1f562693c8c8651936e98bec239faac21afe15fefbd0ad6bfbc1536d1c47f10b8bbe99a94e1827115105b6fa43dc3d936e2a3fbcc036b1dd2b8085bd1476da89cb37293645c0629f7290194d39414abe7a690069a35c9b70fa75a0c278354c20dda92bcea68004e179642f795f4225bc8bca74ae52d0fa0bb11d08df03a3a179a50c5851cae2a5b37e254cf979398bb8b900668d75a66dc6745e7f5a50e6cff4ee3c54a0e40bc37718d20bfed26323a42cb1cf2bdaabe218ecc25f62d96576f7a770bb057df5e8600907547c6c072428b1d60025311b362503ac702f772d971dde4da3e2eae968f6509bc771fe02f5ba2a9d24a826761dc3bffac4de477083c3cb05baa8ac5fb89f9b1f8129a568ad26b21b20586c11b4a0ce049b51a98ea973d225451862947e2d975d45ba2aaf8b0854549abf62957460f76474403435db081468becb01116886ce8e9c81b97e9d5232c1ab3f1a47cc19639a111942b54be6651b69ceed05d399764970c9479943f25238c1c060b80d39e5db75b2d429381bc14ff4e35f8ef1e05cc12da2621df1bb52eb117eea2269c69c8df3f9ee26bea7089ebd8f0124be72bbe5b07755c03b8d8831da9d33faff07d0b09f70f7700042524402efbda143f307fe8b732a87d52d31d51f3f77e3064b81c4bd5d73e372e4c240edd7e4274f4f30d3f096cd0d718817e62aef55420d302a6e0f991d9defe7a49d0c59328f0755acfee940b278a4a0e95e41bfb7fc0452849f2fdee31c900e806d74d8b01ea7da0a07af4fd335a32c9eb9171f4105eb16813ddb1fbfbaa9e10951cb27a5b18c7300cb3b0b8c4b3b4b28c443fd7f3fafba86bbf045b9fab5507f8298c30237907b882224b3b75cec58b8f3e23d51831ca876b2ee61069d9da6113e98d26f511c5ccbb2c6c55a9f648e187c59c4a0ff5b52afc268dcb8fc2dec2d96c6bf591849778947062e510d439e85a949da2534f105cf5ffb0877674abf5a0701f10ce36c36333089e504d9841fb6a2c9e8cb198e1bfbf32c33df365ee7fe9ad6efc7bfebe90bcedefe0bae6b7964e1eb4ac38707c3b5c8171916791ef69bba94c7f712ad30408475dfe8ab20a11816d7e055f179bdb3a072f631737a23eeb367c7bd87b67dd3684a64e8888bd989573b9cd1359f552ccb354303548cdb6fc645686aa2181347e7e9445c7fe5bba2abb9d480b8d010b2217fda798e0d9c03403cfb8d6b0711b58b937ad9085d5a2d9d6a110503c4970e005a901d8974e17516dfb5104382f1c53eee67425eec017ab7c43553f487c2bd363d08fe73e0de84bfa3f235f8a6bda080f5388a70ab763ac65add8d348f4b29af9873a2533027b5da934ee16236ba4c6d59c6fa1dd9de3f7fb8bb70b6c7a12b3341c4edd5d334890a7a8ff1291a2089414150f5bb82f69fceb8419d2cf207c898566814465513c0ee19b2e859ca80df7ab1d90cec079da51ccff8320cbbe4324c24fae665b862491014b588b5a2aecc928c6d9e31ec7eb53ba00b35ac9cfdd0f18599cd7858c9bedfebfc852a21f1618ec4ee186eaf481dc2a72106388ee8e3c99e442caeb200bce5a652172c95d968e0fdd2331756fd922b5cf159309f80ed5355a2efaa8ad8864d6333fb34f9fb624485359f4a9994bc62fd6df6f098491d182a0508e0cbe411bc20f0c4358eb6b0a60503586a920885784289acf131669d431831238a346a08dc172ccdaf8294a2aba39ed192f8209d8d95fd0a9adc2608eada95b421393c34cbef06ddb091762b360008cd42f7dc77af79983053b5d96bce124e09072fd2d020ef6a0b56a72973f25589cccdb63963c112e12b8cd55f5ab2349628dc94a48997b54eee7781450e4a320ea8e6cb346a31a22ef2d31ade6a4b9a0fb8629ebbce72b309d5321b132cd6a3849c0aa84243cfb3bd0ffe5d9dcaa57a13cbd4e25c6ef5dc2ba9de8e992b7e2138d861cd1cdd12572bdb59475facd65a508c9f6b69f0525504fbffbce779d5c3139ec23084e8fde416c635c566458a20f1ebc17a84a15b0ea8a1063503d002b580d6df601f3f262b899fffbbae53cac8ca2836ac50f06fccc29e761f9cfa6fa2a212a654f946c524ee4b243abcb9cdc613c081a1d2a6f12f00d6296a04b3ae6495601982d7d5281924195119d624cb63f7b327707960587cfd8f8ceea97f17aa4995d04aff29c4b24e0ffef7b8a898bb1966850b9ebdc0078d731c8aa741a94eea08f8eed097ebfce972e8b2fe049598632f6696fa11d1d5c4df8a7e473f70bc225f50d2bc834076f194e965e003ce41e720282b5f0a0a435b517d308d76bceed04f30507c1acb885ce6bb863a0a130206a7cd34f7fcde977c995519e944f93348380805949c019130d2900cb46f7c2c6b3396f83d9bf33418afe6c2d561c421eb7280c8343bc0aba82ee8538a2910b7007d2022b87845436f26721e92a2fb605ef40b59de4952913423cfb21d3b1366efaa90ec0a7b579b7dd90700f17db006b45e88b33a5ef923dd60284b70e8960392b01f296f84815952570d2a644d087e6705c1b3fa1bc40bdc11fa7f905d0c1e605bacc51495478cabb9eee84750239ea7dc925f974042a026ba7707367fcd5561266d905aab6487a60919ca1ab1f067d59e8b1af015df8579a80f361da0468d4370bbd2ad6a19a5728b844a93fc8db8710ca201723623daf0953d24a2c57afb98261b565090b89b37b4420ec7dbf546896491f4a729005aa8b2e2ce8ef404aadcf2ae8d09c1dc08e32299a28a5f65bf47535eb96fb2c91f71a17519c1dabda0d2c07fc0b7e3adef41575d0297166caa84491b52a2846cb4b56bc3a65ca87c9aaeddf18207e85b12ba3ebc2ff5acc6d0dd521bd440e0c2d0997240b4360a3d4ea4349fdd6c629dcf882f81484babf7b5af8d2986bae7179224b0ca38c767483f9e271d464cdd20ff4ce1be655a4f69260ca62ee2706636692731dcf8c81c41bca00967f1fa76e4134358671f3448a2e8fb2e07783cd0b7878c17de04f7c0b6a462364e1f1653e5c78dd38a9f290097194860b53888d6fa7265c8d4fd064f1e4d9fd8d6e6eaf5d99f26b28342c95ae17f9ab6b78d43628eca432eb4c3d6654ff6ef6eec9a0de0a0862c51fdfb90b2798fd9f85fc4ef45ff1dd6f80aa3cf49e3e861a605de3509ad00ef3c408dd11c908df6c330466ddd2bf301f9334212241fbb0cfbe996e85686ee298d407a1e81a8e3a35e7a6c4d9bd4d1fae60256246f1688a290992a032f714f44c71e90e324da501951a78205ec7cf343ada6a7edfcde31ce60c09999f3881567e801a2dab135427de2efb814075f15848f79b773343e09bbe5f52ed01ea969d060c3abfa560b9870994b1d8189d002fea4e0522c00b32b551e6e48022c43350c0ebbd6133e7efb6b79d3f798b14825b80e9d18cb32df49f27a95cfa19049ef2e499d8889932f3518fbac720eaca020cc5d43f07b40a64a298e8f6f4e9c2626b451e635277e2f18b24bf96c62dbbba02107a24c86453b3c640b5d160644df9df8ed0485b94cfc33d0401538c3082957e8a6c3992980787c2c3106d75569b7a74040d413022804fbf42381be4648066cd673af3b901a05f8ccfb3b50a988bf326824762d2ef4ca6785da53b055636734f417fe6ec127aae3dfb3b9137d36cc5a375ed00d1d1e51b9b7293fe8b3f0784f9b6d21d3462f0e7dc79fab27495ec33bc1ecd13180ea7a81012e6df9ea4075b400482ecf1e7de8628f32e3e571dde9b0f3abdcd5214e9b23927ed4245ecd8c503186d12a5842773de611262732f1ed7f4d29d3df32a062564107f474cc5b4315b0e435f2f36aaea6e2dd007abd3cba1ed01a2098993d3615b11be51f6b761664179ca2989316e2505732bcf067d8dc9bd38cbbd3a5c3bc01c7b21fd5e34c79573f51cc96420067f7493c994b2b55b52e3b2b6fa5c3e6883945eed7529931d7409acf1e7d91f36e6277333754364c539f0b55deacee2cb4a62c4f701385a4a808e69f366ddbf6f4d0895c0e97cd271a9c6028d09cf179f9cf7013a7aaf82ecd8e79b94c933e27054d982a0c8989050814116c62b01531e7ff9c425e0247d91d94bcf29dbefff3e9ae6d80fea27f84fd5f6ef4f3c7bb913223653137be9301cdd677004a7ce327549bb1aaf0f7982da67dbca9431944cc349a45fbd0c19691cf7e3ead7925e0cf71d073ad398e2fef301db4c48a687d325ca9ae5f7fde2cc0e0930a678e41a44e7abb33e575b3d5aa333daedd4f13976f20eb005b15afa02c3504b835ec2d63d37104ca9bca7c21520d508cfc63f9ce516483315cc21ba4ad7c79738aa1a56edcc30eae5f1fcc8142e20ea1539f34ae4051804057e0e9053813815bbd5f7344a84370d04ac4ee40ac24bb96fa2a1633418351f1db0c4cfcdbf092c55a3b5da4d761d87c2ffc323722ccd604a7e867df535894eca76835e4af6456ce1619a0a301e011c4407a93786728be48b6ff1d245dc998cbcd92489b098726bab2fcfc1857cc5138e37ad6ef09cc53e2d0400a39100f5fbf8f4c54279158de366090fca16d6d8a2b7d262b9d69d3d1e76d1945488b3a4f53fa0bedac1edf97dcc809b22e87188093b59b49f54d418ffec92a97af16a6cb474bafa0028bbd3d6f4e924229929c8e106511b61a1db3264811550af4d2cc468160dc5ef781b80a84387951eeebb5fa827685d7ce7283cc2f2bb7cae1d9e906db40e9c854b4a48305dea3360ced651b3639b383bc05912bbc1c335b62db82a64d84b003249a847b3b04a3c3dffe0f7c44ae0aa75e97f6dc71cb1648d4c7ed77d34df8483bdfa60743fa86886d2b213d1af1ea760960b17291212a002760c4cb54d67e76833e2e9ee194a68519c1fd1a19024bfe5faf97c20f55842bb0d2b2fd2e617e5fabc5770cdc05c2191843778d8e1b7b473185882280d339960c3370aeaff14730a2a06d958f523ad26c11a4b651a95a4e1b32c044cc292baa7f2890f837c5da231c59352efd94f202db8ad715ab8e998629d59", + }, + }, + { + "parsed": { + "key": [], + "method": "authorVrfRandomness", + "section": "babe", + "value": "0x044cc292baa7f2890f837c5da231c59352efd94f202db8ad715ab8e998629d59", + }, + "raw": { + "key": "0x1cb6f36e027abb2091cfb5110ab5087fd077dfdb8adb10f78f10a5df8742c545", + "value": "0x01044cc292baa7f2890f837c5da231c59352efd94f202db8ad715ab8e998629d59", + }, + }, + { + "parsed": { + "key": [], + "method": "initialized", + "section": "babe", + "value": null, + }, + "raw": { + "key": "0x1cb6f36e027abb2091cfb5110ab5087ffa92de910a7ce2bd58e99729c69727c1", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "blockWeight", + "section": "system", + "value": { + "mandatory": { + "proofSize": 15296496, + "refTime": 719741449222, + }, + "normal": { + "proofSize": 0, + "refTime": 0, + }, + "operational": { + "proofSize": 0, + "refTime": 0, + }, + }, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96", + "value": "0x000000000706f4ee93a7c29fa503", + }, + }, + { + "parsed": { + "key": [ + 17995903, + ], + "method": "blockHash", + "section": "system", + "value": null, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c1187468fc8352bc76d125b7f981201", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "allExtrinsicsLen", + "section": "system", + "value": null, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef7a86da5a932684f199539836fcb8c886f", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "extrinsicCount", + "section": "system", + "value": null, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef7bdc0bd303e9855813aa8a30d4efc5112", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "executionPhase", + "section": "system", + "value": null, + }, + "raw": { + "key": "0x26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "hasInitialized", + "section": "initializer", + "value": null, + }, + "raw": { + "key": "0x31a3a2ce3603138b8b352e8f192ca55ac9e06aebb5bcb51e5f883784b1269289", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "extrinsicIndex", + "section": "substrate", + "value": undefined, + }, + "raw": { + "key": "0x3a65787472696e7369635f696e646578", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "intrablockEntropy", + "section": "substrate", + "value": undefined, + }, + "raw": { + "key": "0x3a696e747261626c6f636b5f656e74726f7079", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "nextFeeMultiplier", + "section": "transactionPayment", + "value": "0x0000000000000000016345785d8a0000", + }, + "raw": { + "key": "0x3f1467a096bcd71a5b6a0c8155e208103f2edf3bdf381debe331ab7446addfdc", + "value": "0x00008a5d784563010000000000000000", + }, + }, + { + "parsed": { + "key": [], + "method": "included", + "section": "paraInherent", + "value": null, + }, + "raw": { + "key": "0x42b50b77ef717947e7043bb52127d665e2b2d1966457295060d0b3c7e44dca63", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "upgradeCooldowns", + "section": "paras", + "value": [ + [ + 2004, + 9281520, + ], + [ + 1000, + 9294597, + ], + [ + 2000, + 9390327, + ], + [ + 2031, + 9743946, + ], + [ + 2031, + 9761921, + ], + [ + 2012, + 9808629, + ], + [ + 1000, + 9822202, + ], + [ + 2032, + 9842844, + ], + [ + 2000, + 9864758, + ], + [ + 2006, + 9870605, + ], + [ + 2012, + 9915461, + ], + [ + 2000, + 9967061, + ], + [ + 2006, + 9974133, + ], + [ + 2031, + 9988290, + ], + [ + 2012, + 10074838, + ], + [ + 2004, + 10086525, + ], + [ + 2021, + 10153368, + ], + [ + 1000, + 10171262, + ], + [ + 2012, + 10182839, + ], + [ + 2011, + 10184880, + ], + [ + 2006, + 10254833, + ], + [ + 2000, + 10268214, + ], + [ + 2012, + 10282417, + ], + [ + 2006, + 10359769, + ], + [ + 2012, + 10361446, + ], + [ + 2000, + 10380272, + ], + [ + 2034, + 10390837, + ], + [ + 2021, + 10394667, + ], + [ + 2026, + 10441402, + ], + [ + 2000, + 10480692, + ], + [ + 2006, + 10484869, + ], + [ + 2004, + 10486424, + ], + [ + 2004, + 10504182, + ], + [ + 2004, + 10507102, + ], + [ + 2006, + 10530362, + ], + [ + 2019, + 10555127, + ], + [ + 2000, + 10579294, + ], + [ + 2026, + 10587819, + ], + [ + 2035, + 10588664, + ], + [ + 2032, + 10667194, + ], + [ + 2035, + 10684416, + ], + [ + 2013, + 10685636, + ], + [ + 2035, + 10753740, + ], + [ + 2012, + 10776350, + ], + [ + 2037, + 10779597, + ], + [ + 2000, + 10788968, + ], + [ + 2043, + 10834320, + ], + [ + 2032, + 10852780, + ], + [ + 2000, + 10875473, + ], + [ + 2012, + 10885866, + ], + [ + 2006, + 10942076, + ], + [ + 2004, + 10942795, + ], + [ + 2037, + 10949412, + ], + [ + 2000, + 10961142, + ], + [ + 2043, + 10987785, + ], + [ + 2000, + 10991435, + ], + [ + 2035, + 10994146, + ], + [ + 2012, + 11026242, + ], + [ + 2037, + 11062655, + ], + [ + 2034, + 11062926, + ], + [ + 2031, + 11091828, + ], + [ + 2002, + 11128721, + ], + [ + 1000, + 11155701, + ], + [ + 2000, + 11168628, + ], + [ + 2030, + 11189535, + ], + [ + 2026, + 11190111, + ], + [ + 2013, + 11261538, + ], + [ + 2011, + 11330356, + ], + [ + 2034, + 11332813, + ], + [ + 2032, + 11383663, + ], + [ + 2002, + 11385649, + ], + [ + 2006, + 11442664, + ], + [ + 2035, + 11443695, + ], + [ + 2019, + 11443716, + ], + [ + 2030, + 11467348, + ], + [ + 2000, + 11467893, + ], + [ + 2004, + 11473168, + ], + [ + 2012, + 11485438, + ], + [ + 2030, + 11571397, + ], + [ + 2002, + 11667685, + ], + [ + 2000, + 11683286, + ], + [ + 2011, + 11686304, + ], + [ + 2012, + 11723584, + ], + [ + 2026, + 11727411, + ], + [ + 2031, + 11759383, + ], + [ + 2043, + 11830731, + ], + [ + 2013, + 11860942, + ], + [ + 2030, + 11928345, + ], + [ + 2046, + 11940506, + ], + [ + 2030, + 11957493, + ], + [ + 2000, + 11959727, + ], + [ + 2004, + 11965765, + ], + [ + 2002, + 11970152, + ], + [ + 2046, + 11970818, + ], + [ + 2043, + 12027743, + ], + [ + 2006, + 12031948, + ], + [ + 1000, + 12042149, + ], + [ + 2012, + 12071612, + ], + [ + 2046, + 12157091, + ], + [ + 2004, + 12167775, + ], + [ + 2006, + 12168371, + ], + [ + 2000, + 12181808, + ], + [ + 2002, + 12183218, + ], + [ + 2000, + 12198281, + ], + [ + 2030, + 12228295, + ], + [ + 2086, + 12274533, + ], + [ + 2056, + 12276269, + ], + [ + 2031, + 12280172, + ], + [ + 2000, + 12312833, + ], + [ + 2086, + 12335491, + ], + [ + 2012, + 12434571, + ], + [ + 2030, + 12456398, + ], + [ + 2004, + 12482617, + ], + [ + 2013, + 12487851, + ], + [ + 2030, + 12506623, + ], + [ + 2031, + 12536983, + ], + [ + 1000, + 12547073, + ], + [ + 2021, + 12549613, + ], + [ + 2086, + 12560881, + ], + [ + 2013, + 12578316, + ], + [ + 2032, + 12675303, + ], + [ + 2030, + 12747119, + ], + [ + 2031, + 12869357, + ], + [ + 2000, + 12873506, + ], + [ + 2043, + 12877216, + ], + [ + 2086, + 12879019, + ], + [ + 2013, + 12893896, + ], + [ + 2030, + 12916058, + ], + [ + 2004, + 12979868, + ], + [ + 2013, + 13033790, + ], + [ + 2006, + 13095155, + ], + [ + 2011, + 13148597, + ], + [ + 2011, + 13151762, + ], + [ + 1000, + 13152026, + ], + [ + 2034, + 13152099, + ], + [ + 2086, + 13239060, + ], + [ + 2037, + 13250665, + ], + [ + 2011, + 13278119, + ], + [ + 2037, + 13280109, + ], + [ + 2056, + 13397300, + ], + [ + 2000, + 13432945, + ], + [ + 2048, + 13436692, + ], + [ + 2012, + 13446212, + ], + [ + 2008, + 13462136, + ], + [ + 2056, + 13495142, + ], + [ + 2011, + 13550596, + ], + [ + 1000, + 13555246, + ], + [ + 2011, + 13596573, + ], + [ + 2013, + 13653598, + ], + [ + 2034, + 13677676, + ], + [ + 2004, + 13701235, + ], + [ + 2030, + 13750161, + ], + [ + 2034, + 13753772, + ], + [ + 2008, + 13766918, + ], + [ + 2011, + 13770635, + ], + [ + 2007, + 13771017, + ], + [ + 2011, + 13782638, + ], + [ + 2032, + 13782769, + ], + [ + 2011, + 13784015, + ], + [ + 2021, + 13785602, + ], + [ + 2091, + 13789375, + ], + [ + 2011, + 13797725, + ], + [ + 2007, + 13799445, + ], + [ + 2007, + 13827259, + ], + [ + 1000, + 13871636, + ], + [ + 1001, + 13871638, + ], + [ + 2030, + 13877932, + ], + [ + 2000, + 13891171, + ], + [ + 2034, + 13899123, + ], + [ + 2048, + 13941614, + ], + [ + 2031, + 13972391, + ], + [ + 2006, + 13979236, + ], + [ + 2034, + 13982630, + ], + [ + 2011, + 14043685, + ], + [ + 2011, + 14098348, + ], + [ + 2056, + 14100401, + ], + [ + 2007, + 14148944, + ], + [ + 2011, + 14155234, + ], + [ + 2091, + 14181275, + ], + [ + 2011, + 14185015, + ], + [ + 2011, + 14186247, + ], + [ + 2031, + 14188469, + ], + [ + 2011, + 14241265, + ], + [ + 2011, + 14288359, + ], + [ + 2013, + 14303744, + ], + [ + 2086, + 14341843, + ], + [ + 2011, + 14345824, + ], + [ + 2094, + 14360204, + ], + [ + 2004, + 14390625, + ], + [ + 2008, + 14439599, + ], + [ + 2013, + 14445662, + ], + [ + 2037, + 14474308, + ], + [ + 1000, + 14484787, + ], + [ + 1001, + 14484796, + ], + [ + 2094, + 14545795, + ], + [ + 2012, + 14568326, + ], + [ + 2094, + 14576986, + ], + [ + 2030, + 14585848, + ], + [ + 2092, + 14632344, + ], + [ + 2011, + 14640993, + ], + [ + 2006, + 14655802, + ], + [ + 2101, + 14657435, + ], + [ + 2092, + 14658084, + ], + [ + 2058, + 14658740, + ], + [ + 2092, + 14673446, + ], + [ + 2037, + 14682340, + ], + [ + 2056, + 14686813, + ], + [ + 2019, + 14742704, + ], + [ + 2034, + 14772011, + ], + [ + 2091, + 14784485, + ], + [ + 2101, + 14787239, + ], + [ + 2011, + 14840739, + ], + [ + 2026, + 14847317, + ], + [ + 2019, + 14885023, + ], + [ + 2030, + 14899382, + ], + [ + 2019, + 14901038, + ], + [ + 2091, + 14905578, + ], + [ + 2086, + 14942504, + ], + [ + 2011, + 14954877, + ], + [ + 2006, + 14957191, + ], + [ + 2032, + 14969992, + ], + [ + 2004, + 14971402, + ], + [ + 2019, + 14971670, + ], + [ + 2013, + 14982340, + ], + [ + 2101, + 15002574, + ], + [ + 2035, + 15044706, + ], + [ + 2019, + 15074170, + ], + [ + 2101, + 15087813, + ], + [ + 2035, + 15102348, + ], + [ + 2091, + 15150710, + ], + [ + 2011, + 15157167, + ], + [ + 2104, + 15161964, + ], + [ + 2037, + 15184316, + ], + [ + 2091, + 15187100, + ], + [ + 2019, + 15191957, + ], + [ + 2046, + 15199401, + ], + [ + 2006, + 15216605, + ], + [ + 2091, + 15224318, + ], + [ + 2046, + 15243319, + ], + [ + 2035, + 15243836, + ], + [ + 2048, + 15259199, + ], + [ + 2011, + 15274165, + ], + [ + 2019, + 15277927, + ], + [ + 2019, + 15291428, + ], + [ + 2046, + 15296332, + ], + [ + 2000, + 15296816, + ], + [ + 2035, + 15300246, + ], + [ + 2048, + 15302968, + ], + [ + 2004, + 15320714, + ], + [ + 2094, + 15372114, + ], + [ + 2094, + 15373077, + ], + [ + 2094, + 15375906, + ], + [ + 2056, + 15376668, + ], + [ + 2012, + 15396198, + ], + [ + 3336, + 15440400, + ], + [ + 2035, + 15442718, + ], + [ + 2031, + 15449760, + ], + [ + 2056, + 15458193, + ], + [ + 2037, + 15544110, + ], + [ + 2056, + 15545053, + ], + [ + 2035, + 15573212, + ], + [ + 2026, + 15582187, + ], + [ + 2046, + 15586824, + ], + [ + 2019, + 15608584, + ], + [ + 2035, + 15618248, + ], + [ + 2011, + 15645529, + ], + [ + 2034, + 15646719, + ], + [ + 2011, + 15661893, + ], + [ + 2040, + 15692556, + ], + [ + 2034, + 15695575, + ], + [ + 2035, + 15752074, + ], + [ + 2019, + 15762857, + ], + [ + 1001, + 15764182, + ], + [ + 2021, + 15778667, + ], + [ + 2019, + 15850142, + ], + [ + 2104, + 15852314, + ], + [ + 2101, + 15893055, + ], + [ + 2037, + 15962412, + ], + [ + 2104, + 15974328, + ], + [ + 3334, + 15979926, + ], + [ + 2056, + 15980122, + ], + [ + 2104, + 15985994, + ], + [ + 1000, + 15992780, + ], + [ + 2019, + 15995570, + ], + [ + 2030, + 16004192, + ], + [ + 2101, + 16006719, + ], + [ + 2034, + 16055020, + ], + [ + 2030, + 16059278, + ], + [ + 2037, + 16062591, + ], + [ + 2104, + 16066394, + ], + [ + 2046, + 16076326, + ], + [ + 2030, + 16076756, + ], + [ + 2032, + 16077309, + ], + [ + 2104, + 16100888, + ], + [ + 1002, + 16103374, + ], + [ + 2094, + 16147451, + ], + [ + 2101, + 16151364, + ], + [ + 2035, + 16153325, + ], + [ + 2006, + 16162578, + ], + [ + 2012, + 16176877, + ], + [ + 2056, + 16180726, + ], + [ + 2043, + 16191261, + ], + [ + 2032, + 16206186, + ], + [ + 2104, + 16249375, + ], + [ + 2092, + 16249689, + ], + [ + 2051, + 16250193, + ], + [ + 2048, + 16251622, + ], + [ + 2031, + 16252921, + ], + [ + 3334, + 16253944, + ], + [ + 3334, + 16294065, + ], + [ + 2040, + 16352745, + ], + [ + 2000, + 16360637, + ], + [ + 2032, + 16393303, + ], + [ + 3334, + 16397938, + ], + [ + 2104, + 16403268, + ], + [ + 1000, + 16464426, + ], + [ + 1001, + 16464432, + ], + [ + 1002, + 16464436, + ], + [ + 2019, + 16468277, + ], + [ + 2104, + 16479608, + ], + [ + 2040, + 16509053, + ], + [ + 2030, + 16550822, + ], + [ + 2040, + 16551016, + ], + [ + 2040, + 16551977, + ], + [ + 2043, + 16565425, + ], + [ + 3334, + 16581510, + ], + [ + 2040, + 16598938, + ], + [ + 2040, + 16599718, + ], + [ + 2040, + 16608802, + ], + [ + 2019, + 16612782, + ], + [ + 2043, + 16660358, + ], + [ + 2035, + 16669724, + ], + [ + 2104, + 16670778, + ], + [ + 2092, + 16695494, + ], + [ + 2034, + 16710558, + ], + [ + 2011, + 16754397, + ], + [ + 2091, + 16755293, + ], + [ + 2004, + 16756234, + ], + [ + 2019, + 16784826, + ], + [ + 2101, + 16799475, + ], + [ + 2091, + 16859462, + ], + [ + 2019, + 16859879, + ], + [ + 2013, + 16952368, + ], + [ + 2092, + 16953499, + ], + [ + 2011, + 16955276, + ], + [ + 2026, + 16962657, + ], + [ + 2006, + 16984196, + ], + [ + 2101, + 17013270, + ], + [ + 2019, + 17055452, + ], + [ + 2030, + 17069473, + ], + [ + 2011, + 17084872, + ], + [ + 2043, + 17116317, + ], + [ + 2006, + 17183540, + ], + [ + 2000, + 17208724, + ], + [ + 2034, + 17217908, + ], + [ + 2031, + 17228086, + ], + [ + 2046, + 17264877, + ], + [ + 3334, + 17272131, + ], + [ + 2035, + 17273837, + ], + [ + 2056, + 17286121, + ], + [ + 2056, + 17288316, + ], + [ + 2056, + 17298453, + ], + [ + 2056, + 17299217, + ], + [ + 2011, + 17300464, + ], + [ + 2019, + 17302817, + ], + [ + 2086, + 17386894, + ], + [ + 2046, + 17399966, + ], + [ + 3334, + 17459542, + ], + [ + 2019, + 17463669, + ], + [ + 2032, + 17472035, + ], + [ + 2000, + 17496178, + ], + [ + 2011, + 17500137, + ], + [ + 2037, + 17500655, + ], + [ + 3334, + 17515994, + ], + [ + 3334, + 17517013, + ], + [ + 2004, + 17524215, + ], + [ + 2011, + 17589709, + ], + [ + 2035, + 17657986, + ], + [ + 2011, + 17675471, + ], + [ + 2007, + 17689561, + ], + [ + 2012, + 17697525, + ], + [ + 2046, + 17708656, + ], + [ + 2030, + 17713759, + ], + [ + 2031, + 17759180, + ], + [ + 2092, + 17762636, + ], + [ + 2007, + 17764838, + ], + [ + 2034, + 17776958, + ], + [ + 2011, + 17804910, + ], + [ + 2012, + 17816011, + ], + [ + 2032, + 17819400, + ], + [ + 2101, + 17832456, + ], + [ + 2030, + 17858798, + ], + [ + 2056, + 17876937, + ], + [ + 2056, + 17877628, + ], + [ + 2056, + 17878321, + ], + [ + 2092, + 17892207, + ], + [ + 2101, + 17904668, + ], + [ + 2058, + 17905304, + ], + [ + 2006, + 17961824, + ], + [ + 2046, + 17974342, + ], + [ + 2035, + 17978792, + ], + [ + 3334, + 18004573, + ], + [ + 2037, + 18006676, + ], + ], + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa1940b5b4dff03a5cf61db8ad989de75f0ab", + "value": "0x4d06d4070000f09f8d00e803000005d38d00d0070000f7488f00ef0700004aae9400ef07000081f49400dc070000f5aa9500e8030000fadf9500f00700009c309600d007000036869600d60700000d9d9600dc070000454c9700d0070000d5159800d607000075319800ef070000c2689800dc070000d6ba9900d40700007de89900e507000098ed9a00e80300007e339b00dc070000b7609b00db070000b0689b00d6070000f1799c00d007000036ae9c00dc070000b1e59c00d6070000d9139e00dc070000661a9e00d0070000f0639e00f2070000358d9e00e50700002b9c9e00ea070000ba529f00d007000034ec9f00d607000085fc9f00d40700009802a000d4070000f647a000d40700005e53a000d60700003aaea000e3070000f70ea100d00700005e6da100ea070000ab8ea100f3070000f891a100f0070000bac4a200f30700000008a300dd070000c40ca300f3070000cc16a400dc0700001e6fa400f5070000cd7ba400d007000068a0a400fb0700009051a500f0070000ac99a500d007000051f2a500dc070000ea1aa600d60700007cf6a600d40700004bf9a600f50700002413a700d0070000f640a700fb07000009a9a700d00700004bb7a700f3070000e2c1a700dc070000423fa800f50700007fcda800f20700008ecea800ef070000743fa900d207000091cfa900e8030000f538aa00d0070000746baa00ee0700001fbdaa00ea0700005fbfaa00dd07000062d6ab00db07000034e3ac00f2070000cdecac00f00700006fb3ad00d207000031bbad00d6070000e899ae00f3070000ef9dae00e3070000049eae00ee07000054faae00d007000075fcae00d40700001011af00dc070000fe40af00ee070000c590b000d2070000e508b200d0070000d645b200db070000a051b200dc07000040e3b200ea07000033f2b200ef070000176fb300fb070000cb85b400dd070000cefbb400ee0700001903b600fe0700009a32b600ee070000f574b600d0070000af7db600d40700004595b600d207000068a6b600fe07000002a9b600fb0700005f87b700d6070000cc97b700e8030000a5bfb700dc070000bc32b800fe070000a380b900d40700005faab900d6070000b3acb900d007000030e1b900d2070000b2e6b900d00700008921ba00ee070000c796ba0026080000654bbb00080800002d52bb00ef0700006c61bb00d007000001e1bb00260800008339bc00dc0700008bbcbd00ee070000ce11be00d40700003978be00dd070000ab8cbe00ee070000ffd5be00ef070000974cbf00e80300000174bf00e5070000ed7dbf0026080000f1a9bf00dd0700000ceebf00f0070000e768c100ee0700006f81c200ef070000ed5ec400d0070000226fc400fb070000a07dc40026080000ab84c400dd070000c8bec400ee0700005a15c500d40700009c0ec600dd0700003ee1c600d6070000f3d0c700db070000b5a1c800db07000012aec800e80300001aafc800f207000063afc800260800001403ca00f50700006930ca00db070000a79bca00f50700006da3ca0008080000346dcc00d007000071f8cc00000800001407cd00dc070000442ccd00d8070000786acd000808000066ebcd00db07000004c4ce00e80300002ed6ce00db0700009d77cf00dd0700005e56d000f20700006cb4d000d40700007310d100ee07000091cfd100f2070000acddd100d80700000611d200db0700008b1fd200d70700000921d200db0700006e4ed200f0070000f14ed200db070000cf53d200e5070000025ad2002b080000bf68d200db0700005d89d200d70700001590d200d7070000bbfcd200e803000014aad300e903000016aad300ee070000acc2d300d007000063f6d300f20700007315d400000800006ebbd400ef070000a733d500d6070000644ed500f2070000a65bd500db070000254ad600db070000ac1fd70008080000b127d700d707000050e5d700db070000e2fdd7002b0800009b63d800db0700003772d800db0700000777d800ef070000b57fd800db070000f14dd900db070000e705da00dd0700000042da0026080000d3d6da00db07000060e6da002e0800008c1edb00d40700006195db00d8070000af54dc00dd0700005e6cdc00f507000044dcdc00e80300003305dd00e90300003c05dd002e08000083f3dd00dc070000864bde002e0800005a6dde00ee070000f88fde002c0800009845df00db0700006167df00d60700003aa1df00350800009ba7df002c08000024aadf000a080000b4acdf002c08000026e6df00f5070000e408e000080800005d1ae000e3070000b0f4e000f20700002b67e1002b080000e597e10035080000a7a2e100db070000a373e200ea070000558de200e30700009f20e300ee070000b658e300e30700002e5fe3002b080000ea70e300260800002801e400db0700007d31e400d6070000873ae400f0070000886ce400d40700000a72e400e30700001673e400dd070000c49ce40035080000ceebe400f30700006290e500e30700007a03e60035080000c538e600f30700008c71e6002b080000762ee700db070000af47e700380800006c5ae700f5070000bcb1e7002b0800009cbce700e307000095cfe700fe070000a9ece700d6070000dd2fe8002b080000fe4de800fe0700003798e800f30700003c9ae800000800003fd6e800db070000b510e900e3070000671fe900e30700002454e900fe0700004c67e900d00700003069e900f30700009676e900000800003881e900d40700008ac6e9002e080000528fea002e0800001593ea002e080000229eea00080800001ca1ea00dc07000066edea00080d0000109aeb00f30700001ea3eb00ef070000a0beeb000808000091dfeb00f50700002e2fed0008080000dd32ed00f3070000dca0ed00ea070000ebc3ed00fe07000008d6ed00e3070000082bee00f3070000c850ee00db07000059bbee00f2070000ffbfee00db07000045fbee00f80700000c73ef00f2070000d77eef00f30700008a5bf000e3070000a985f000e9030000d68af000e50700006bc3f000e30700009edaf100380800001ae3f100350800003f82f200f50700002c91f30038080000b8bff300060d000096d5f300080800005ad6f300380800004aedf300e8030000cc07f400e3070000b212f400ee0700006034f400350800003f3ef400f2070000ecfaf400ee0700008e0bf500f50700007f18f500380800005a27f500fe070000264ef500ee070000d44ff500f0070000fd51f5003808000018aef500ea030000ceb7f5002e080000fb63f600350800004473f600f3070000ed7af600d6070000129ff600dc070000edd6f60008080000f6e5f600fb0700001d0ff700f00700006a49f700380800001ff2f7002c08000059f3f7000308000051f5f70000080000e6faf700ef070000f9fff700060d0000f803f800060d0000b1a0f800f8070000e985f900d0070000bda4f900f00700005724fa00060d00007236fa0038080000444bfa00e80300002a3afb00e9030000303afb00ea030000343afb00e30700003549fb00380800007875fb00f80700007de8fb00ee070000a68bfc00f8070000688cfc00f80700002990fc00fb070000b1c4fc00060d00008603fd00f80700009a47fd00f8070000a64afd00f8070000226efd00e3070000ae7dfd00fb0700008637fe00f30700001c5cfe00380800003a60fe002c080000c6c0fe00f20700009efbfe00db070000dda6ff002b0800005daaff00d40700000aaeff00e3070000ba1d000135080000f35600012b08000046410101e3070000e7420101dd07000030ac02012c0800009bb00201db0700008cb70201ea07000061d40201d60700008428030135080000169a0301e3070000dc3e0401ee070000a1750401db070000c8b10401fb0700009d2c0501d607000034330601d007000094950601f207000074b90601ef07000036e10601fe070000ed700701060d0000438d0701f3070000ed93070108080000e9c30701080800007ccc07010808000015f407010808000011f70701db070000f0fb0701e307000021050801260800008e4d0901fe0700009e800901060d000056690a01e307000075790a01f0070000239a0a01d007000072f80a01db070000e9070b01f5070000ef090b01060d0000da450b01060d0000d5490b01d4070000f7650b01db070000cd650c01f307000082700d01db070000cfb40d01d7070000d9eb0d01dc070000f50a0e01fe07000070360e01ee0700005f4a0e01ef070000ccfb0e012c0800004c090f01d7070000e6110f01f20700003e410f01db0700006eae0f01dc070000cbd90f01f007000008e70f0135080000081a1001ee070000ee80100108080000c9c71001080800007cca10010808000031cd10012c0800006f031101350800001c3411010a08000098361101d607000060131201fe07000046441201f3070000a8551201060d00005dba1201f507000094c21201", + }, + }, + { + "parsed": { + "key": [ + 2094, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a071ceff5b0f64d362e080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2040, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a0f474ee85a3cd622f8070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2035, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a160394315fe95b98f3070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2086, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a2c0cfd6c23b92a7826080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2032, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a302b2165312d890ff0070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2021, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a31275d2a59e7bf2be5070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2051, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a3a35dd60021a6f6a03080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2008, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a5f9d7e46afdef838d8070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2000, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a63f5a4efb16ffa83d0070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2048, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a6c3524f87eaf5eaf00080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2092, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a6e28b8ad2696ed532c080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2002, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a70bd9a93e85e3ce1d2070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2030, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a81004131e62a7368ee070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2104, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a890bbf94976e240b38080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2046, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a8bd977dcdc787ab9fe070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2011, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a9ebb9f16811eab62db070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2004, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56a9f434b9dae0bfb8ed4070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2019, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56aa33ab67066cce00ee3070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2007, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56aa6e81cc6a2c29a16d7070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2056, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56aa85b1ec02482089508080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 3334, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56aab6cb5748316c751060d0000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 1001, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56aadc7217647a32b0be9030000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 3336, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56ab0021d9da3ceafbd080d0000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 1002, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56ab2b032492225337bea030000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 1000, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56ab6ff6f7d467b87a9e8030000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2031, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56ab7be89c98b91434fef070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2037, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56ac12483a7cb568540f5070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2034, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56ac77a93d174890f1ff2070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2012, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56ad4393eba91f117d9dc070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2043, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56ad8b9873ac6cf46d0fb070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2058, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56adb5334ffb7cee19c0a080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2091, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56addcd36bd16bca7fe2b080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2026, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56adfdbdd688e7be47bea070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2101, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56af7f7e146c4af733935080000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2006, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56afcbb81823589d77dd6070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [ + 2013, + ], + "method": "upgradeRestrictionSignal", + "section": "paras", + "value": null, + }, + "raw": { + "key": "0xcd710b30bd2eab0352ddcc26417aa194f27bbb460270642b5bcaf032ea04d56afd3c4eac5d2f7717dd070000", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "author", + "section": "authorship", + "value": null, + }, + "raw": { + "key": "0xd57bce545fb382c34570e5dfbf338f5e326d21bc67a4b34023d577585d72bfd7", + "value": undefined, + }, + }, + { + "parsed": { + "key": [], + "method": "didUpdate", + "section": "timestamp", + "value": null, + }, + "raw": { + "key": "0xf0c365c3cf59d671eb72da0e7a4113c4bbd108c4899964f707fdaffb82636065", + "value": undefined, + }, + }, + ], + }, + ], +} +`; diff --git a/packages/chopsticks/src/plugins/run-block/cli.ts b/packages/chopsticks/src/plugins/run-block/cli.ts new file mode 100644 index 00000000..864135a7 --- /dev/null +++ b/packages/chopsticks/src/plugins/run-block/cli.ts @@ -0,0 +1,80 @@ +import { HexString } from '@polkadot/util/types' +import { writeFileSync } from 'node:fs' +import _ from 'lodash' +import type { Argv } from 'yargs' + +import { runTask, taskHandler } from '@tanssi/chopsticks-core' + +import { Config } from '../../schema/index.js' +import { defaultOptions, mockOptions } from '../../cli-options.js' +import { generateHtmlDiffPreviewFile } from '../../utils/generate-html-diff.js' +import { openHtml } from '../../utils/open-html.js' +import { setupContext } from '../../context.js' + +export const cli = (y: Argv) => { + y.command( + 'run-block', + 'Replay a block', + (yargs) => + yargs.options({ + ...defaultOptions, + ...mockOptions, + 'output-path': { + desc: 'File path to print output', + string: true, + }, + html: { + desc: 'Generate html with storage diff', + }, + open: { + desc: 'Open generated html', + }, + }), + async (argv) => { + const context = await setupContext(argv as Config, true) + + const header = await context.chain.head.header + const block = context.chain.head + const parent = await block.parentBlock + if (!parent) throw Error('cant find parent block') + const wasm = await parent.wasm + + const calls: [string, HexString[]][] = [['Core_initialize_block', [header.toHex()]]] + + for (const extrinsic of await block.extrinsics) { + calls.push(['BlockBuilder_apply_extrinsic', [extrinsic]]) + } + + calls.push(['BlockBuilder_finalize_block', []]) + + const result = await runTask( + { + wasm, + calls, + mockSignatureHost: false, + allowUnresolvedImports: false, + runtimeLogLevel: (argv.runtimeLogLevel as number) || 0, + }, + taskHandler(parent), + ) + + if ('Error' in result) { + throw new Error(result.Error) + } + + if (argv.html) { + const filePath = await generateHtmlDiffPreviewFile(parent, result.Call.storageDiff, block.hash) + console.log(`Generated preview ${filePath}`) + if (argv.open) { + openHtml(filePath) + } + } else if (argv.outputPath) { + writeFileSync(argv.outputPath, JSON.stringify(result, null, 2)) + } else { + console.dir(result, { depth: null, colors: false }) + } + + process.exit(0) + }, + ) +} diff --git a/packages/chopsticks/src/plugins/run-block/index.test.ts b/packages/chopsticks/src/plugins/run-block/index.test.ts new file mode 100644 index 00000000..45802017 --- /dev/null +++ b/packages/chopsticks/src/plugins/run-block/index.test.ts @@ -0,0 +1,35 @@ +import { SqliteDatabase } from '@tanssi/chopsticks-db' +import { describe, expect, it } from 'vitest' +import { setup } from '@tanssi/chopsticks-core' + +import { rpc } from './index.js' + +describe('run-block', () => { + it('should work', async () => { + const chain = await setup({ + endpoint: 'wss://rpc.polkadot.io', + block: 18000000, + db: !process.env.RUN_TESTS_WITHOUT_DB ? new SqliteDatabase('e2e-tests-db.sqlite') : undefined, + }) + + const block = (await chain.getBlockAt(18000000))! + const header = await block.header + const parent = header.parentHash.toHex() + + const result = await rpc({ chain }, [ + { + includeRaw: true, + includeParsed: true, + includeBlockDetails: true, + parent, + block: { + header: header.toJSON(), + extrinsics: await block.extrinsics, + }, + }, + ]) + expect(result).toMatchSnapshot() + + await chain.close() + }, 90000) +}) diff --git a/packages/chopsticks/src/plugins/run-block/index.ts b/packages/chopsticks/src/plugins/run-block/index.ts index e317233c..643a40b0 100644 --- a/packages/chopsticks/src/plugins/run-block/index.ts +++ b/packages/chopsticks/src/plugins/run-block/index.ts @@ -1,84 +1,2 @@ -import type yargs from 'yargs' - -import { HexString } from '@polkadot/util/types' -import { defaultOptions, mockOptions } from '../../cli-options' -import { writeFileSync } from 'node:fs' - -import { Config } from '../../schema' -import { defaultLogger } from '../../logger' -import { generateHtmlDiffPreviewFile } from '../../utils/generate-html-diff' -import { openHtml } from '../../utils/open-html' -import { runTask, taskHandler } from '@tanssi/chopsticks-core' -import { setupContext } from '../../context' - -export const cli = (y: yargs.Argv) => { - y.command( - 'run-block', - 'Replay a block', - (yargs) => - yargs.options({ - ...defaultOptions, - ...mockOptions, - 'output-path': { - desc: 'File path to print output', - string: true, - }, - html: { - desc: 'Generate html with storage diff', - }, - open: { - desc: 'Open generated html', - }, - }), - async (argv) => { - const context = await setupContext(argv as Config, true) - - const header = await context.chain.head.header - const block = context.chain.head - const parent = await block.parentBlock - if (!parent) throw Error('cant find parent block') - const wasm = await parent.wasm - - const calls: [string, HexString[]][] = [['Core_initialize_block', [header.toHex()]]] - - for (const extrinsic of await block.extrinsics) { - calls.push(['BlockBuilder_apply_extrinsic', [extrinsic]]) - } - - calls.push(['BlockBuilder_finalize_block', []]) - - const result = await runTask( - { - wasm, - calls, - mockSignatureHost: false, - allowUnresolvedImports: false, - runtimeLogLevel: (argv.runtimeLogLevel as number) || 0, - }, - taskHandler(parent), - ) - - if (result.Error) { - throw new Error(result.Error) - } - - for (const logs of result.Call.runtimeLogs) { - defaultLogger.info(`RuntimeLogs:\n${logs}`) - } - - if (argv.html) { - const filePath = await generateHtmlDiffPreviewFile(parent, result.Call.storageDiff, block.hash) - console.log(`Generated preview ${filePath}`) - if (argv.open) { - openHtml(filePath) - } - } else if (argv.outputPath) { - writeFileSync(argv.outputPath, JSON.stringify(result, null, 2)) - } else { - console.dir(result, { depth: null, colors: false }) - } - - process.exit(0) - }, - ) -} +export * from './cli.js' +export * from './rpc.js' diff --git a/packages/chopsticks/src/plugins/run-block/rpc.ts b/packages/chopsticks/src/plugins/run-block/rpc.ts new file mode 100644 index 00000000..5a1899e4 --- /dev/null +++ b/packages/chopsticks/src/plugins/run-block/rpc.ts @@ -0,0 +1,255 @@ +import { GenericExtrinsic } from '@polkadot/types' +import { Header } from '@polkadot/types/interfaces' +import { HexString } from '@polkadot/util/types' +import { u8aToHex } from '@polkadot/util' +import { z } from 'zod' +import _ from 'lodash' + +import { Block, Context, RuntimeLog, compactHex, decodeKeyValue, runTask, taskHandler } from '@tanssi/chopsticks-core' +import { zHash, zHex } from '../../schema/index.js' + +const schema = z.object({ + includeRaw: z.boolean().optional(), + includeParsed: z.boolean().optional(), + includeBlockDetails: z.boolean().optional(), + parent: zHash.optional(), + block: z.object({ + header: z.any(), + extrinsics: z.array(zHex), + }), +}) + +type Params = z.infer + +export interface RunBlockParams { + /** + * Include raw storage diff. Default to true + */ + includeRaw: Params['includeRaw'] + /** + * Include parsed storage diff in json format + */ + includeParsed: Params['includeParsed'] + /** + * Include block details such as parsed extrinsics in json format + */ + includeBlockDetails: Params['includeBlockDetails'] + /** + * The parent block hash to run on top of. Default to chain head. + */ + parent: Params['parent'] + /** + * Block to run + */ + block: Params['block'] +} + +/** + * The phase of an execution. + * `number` means the phase is ApplyExtrinsic and the value is the extrinsic index. + */ +export type Phase = 'Initialization' | 'Finalization' | number // extrinsic index + +export interface RunBlockResponse { + /** + * The storage diff of each phase. + */ + phases: { + /** + * The phase of the execution. See {@link Phase}. + */ + phase: Phase + /** + * The modified storages of this phase. + */ + storageDiff: { + /** + * Raw storage diff in bytes. Only available when `includeRaw` is true. + */ + raw?: { key: HexString; value: HexString | null } + /** + * Decoded storage diff. Only available when `includeParsed` is true. + */ + parsed?: { + method: string + section: string + key: any[] + value: any + } + }[] + /** + * Runtime logs. + */ + logs?: RuntimeLog[] + }[] + /** + * Block details. Only available when `includeBlockDetails` is true. + */ + blockDetails?: { + /** + * Block timestamp in ms + */ + timestamp?: string + /** + * Parsed events in this block. + */ + events?: { phase: Phase; section: string; method: string; args: any[] }[] + /** + * Parsed extrinsics in this block. + */ + extrinsics: { + section: string + method: string + args: any[] + success: boolean + }[] + } +} + +export const name = 'runBlock' + +/** + * Run a set of extrinsics on top of a block and get the storage diff + * and optionally the parsed storage diff and block details. + * NOTE: The extrinsics should include inherents or tranasctions may have unexpected results. + * NOTE: system.events and system.extrinsicData are excluded from storage diff to reduce size. + * + * This function is a dev rpc handler. Use `dev_runBlock` as the method name when calling it. + */ +export const rpc = async ({ chain }: Context, [params]: [RunBlockParams]): Promise => { + const { includeRaw, includeParsed, includeBlockDetails, parent, block } = schema.parse(params) + + const includeRawStorage = includeRaw ?? true + + const parentBlock = await chain.getBlock(parent) + if (!parentBlock) { + throw Error(`Invalid block hash ${parent}`) + } + + const registry = await parentBlock.registry + const header = registry.createType
('Header', block.header) + + const wasm = await parentBlock.wasm + const meta = await parentBlock.meta + + const blockNumber = parentBlock.number + 1 + const hash: HexString = `0x${Math.round(Math.random() * 100000000) + .toString(16) + .padEnd(64, '0')}` + + const newBlock = new Block(chain, blockNumber, hash, parentBlock, { + header, + extrinsics: [], + storage: parentBlock.storage, + }) + + const resp = { + phases: [], + } as RunBlockResponse + + // exclude system events because it can be stupidly large and redudant + const systemEventsKey = compactHex(meta.query.system.events()) + // large and not really useful + const systemExtrinsicDataKey = u8aToHex(meta.query.system.extrinsicData.keyPrefix()) + + const run = async (fn: string, args: HexString[]) => { + const result = await runTask( + { + wasm, + calls: [[fn, args]], + mockSignatureHost: false, + allowUnresolvedImports: false, + runtimeLogLevel: 5, + }, + taskHandler(newBlock), + ) + + if ('Error' in result) { + throw new Error(result.Error) + } + + const resp = { storageDiff: [] } as Omit + const raw = result.Call.storageDiff + + newBlock.pushStorageLayer().setAll(raw) + + for (const [key, value] of raw) { + if (key === systemEventsKey) { + continue + } + if (key.startsWith(systemExtrinsicDataKey)) { + continue + } + + const obj = {} as (typeof resp)['storageDiff'][number] + if (includeRawStorage) { + obj.raw = { key, value } + } + if (includeParsed) { + const decoded = decodeKeyValue(await newBlock.meta, newBlock, key, value, false) + if (decoded) { + obj.parsed = { + section: decoded.section, + method: decoded.method, + key: decoded.key, + value: decoded.value, + } + } + } + resp.storageDiff.push(obj) + } + + resp.logs = result.Call.runtimeLogs + + return resp + } + + const resInit = await run('Core_initialize_block', [header.toHex()]) + resp.phases.push({ phase: 'Initialization', ...resInit }) + + for (const extrinsic of block.extrinsics) { + const res = await run('BlockBuilder_apply_extrinsic', [extrinsic]) + resp.phases.push({ phase: resp.phases.length - 1, ...res }) + } + + const resFinalize = await run('BlockBuilder_finalize_block', []) + resp.phases.push({ phase: 'Finalization', ...resFinalize }) + + if (includeBlockDetails) { + const meta = await newBlock.meta + const registry = await newBlock.registry + const timestamp = await newBlock.read('u64', meta.query.timestamp.now) + const events = await newBlock.read('Vec', meta.query.system.events) + const parsedEvents = events?.map((event) => ({ + phase: event.phase.isApplyExtrinsic ? event.phase.asApplyExtrinsic.toNumber() : (event.phase.toString() as Phase), + section: event.event.section, + method: event.event.method, + args: event.event.data.map((arg) => arg.toJSON()), + })) + const extrinsics = block.extrinsics.map((extrinsic, idx) => { + const parsed = registry.createType('GenericExtrinsic', extrinsic) + const resultEvent = events?.find( + ({ event, phase }) => + event.section === 'system' && + (event.method === 'ExtrinsicSuccess' || event.method === 'ExtrinsicFailed') && + phase.isApplyExtrinsic && + phase.asApplyExtrinsic.eq(idx), + ) + + return { + section: parsed.method.section, + method: parsed.method.method, + args: parsed.method.args.map((arg) => arg.toJSON()), + success: resultEvent?.event.method === 'ExtrinsicSuccess', + } + }) + + resp.blockDetails = { + timestamp: timestamp?.toString(), + events: parsedEvents, + extrinsics, + } + } + + return resp +} diff --git a/packages/chopsticks/src/plugins/set-block-build-mode/index.ts b/packages/chopsticks/src/plugins/set-block-build-mode/index.ts index 84d1f03e..d1e0e360 100644 --- a/packages/chopsticks/src/plugins/set-block-build-mode/index.ts +++ b/packages/chopsticks/src/plugins/set-block-build-mode/index.ts @@ -1,13 +1 @@ -import { BuildBlockMode } from '@tanssi/chopsticks-core' -import { Handler, ResponseError } from '../../rpc/shared' -import { defaultLogger } from '../../logger' - -export const rpc: Handler = async (context, [mode]) => { - defaultLogger.debug({ mode }, 'dev_setBlockBuildMode') - - if (BuildBlockMode[mode] === undefined) { - throw new ResponseError(1, `Invalid mode ${mode}`) - } - - context.chain.txPool.mode = mode -} +export * from './rpc.js' diff --git a/packages/chopsticks/src/plugins/set-block-build-mode/rpc.ts b/packages/chopsticks/src/plugins/set-block-build-mode/rpc.ts new file mode 100644 index 00000000..e1663f42 --- /dev/null +++ b/packages/chopsticks/src/plugins/set-block-build-mode/rpc.ts @@ -0,0 +1,30 @@ +import { BuildBlockMode, Context, ResponseError } from '@tanssi/chopsticks-core' +import { defaultLogger } from '../../logger.js' + +/** + * Set a build block mode. See [BuildBlockMode](../core/enums/BuildBlockMode). + * + * 1 - Batch, 2 - Instant, 3 - Manual + * + * This function is a dev rpc handler. Use `dev_setBlockBuildMode` as the method name when calling it. + * + * @param context - The context object of the rpc handler + * @param params - The parameters of the rpc handler + * + * @example Set build block mode to instant + * ```ts + * import { WsProvider } from '@polkadot/rpc-provider' + * import { BuildBlockMode } from '@tanssi/chopsticks-core' + * const ws = new WsProvider(`ws://localhost:8000`) + * await ws.send('dev_setBlockBuildMode', [BuildBlockMode.Instant]) + * ``` + */ +export const rpc = async (context: Context, [mode]: [BuildBlockMode]) => { + defaultLogger.debug({ mode: BuildBlockMode[mode] }, 'dev_setBlockBuildMode') + + if (BuildBlockMode[mode] === undefined) { + throw new ResponseError(1, `Invalid mode ${mode}`) + } + + context.chain.txPool.mode = mode +} diff --git a/packages/chopsticks/src/plugins/set-head/index.ts b/packages/chopsticks/src/plugins/set-head/index.ts index d59ce36d..d1e0e360 100644 --- a/packages/chopsticks/src/plugins/set-head/index.ts +++ b/packages/chopsticks/src/plugins/set-head/index.ts @@ -1,17 +1 @@ -import { Block } from '@tanssi/chopsticks-core' -import { Handler, ResponseError } from '../../rpc/shared' - -export const rpc: Handler = async (context, [hashOrNumber]) => { - let block: Block | undefined - if (typeof hashOrNumber === 'number') { - const blockNumber = hashOrNumber > 0 ? hashOrNumber : context.chain.head.number + hashOrNumber - block = await context.chain.getBlockAt(blockNumber) - } else { - block = await context.chain.getBlock(hashOrNumber) - } - if (!block) { - throw new ResponseError(1, `Block not found ${hashOrNumber}`) - } - await context.chain.setHead(block) - return block.hash -} +export * from './rpc.js' diff --git a/packages/chopsticks/src/plugins/set-head/rpc.ts b/packages/chopsticks/src/plugins/set-head/rpc.ts new file mode 100644 index 00000000..8bc86486 --- /dev/null +++ b/packages/chopsticks/src/plugins/set-head/rpc.ts @@ -0,0 +1,38 @@ +import { Block, Context, ResponseError } from '@tanssi/chopsticks-core' +import { z } from 'zod' + +import { zHash } from '../../schema/index.js' + +const schema = zHash.or(z.number()) +type Params = z.infer + +/** + * Set head. + * + * This function is a dev rpc handler. Use `dev_setHead` as the method name when calling it. + * + * @param context - The context object of the rpc handler + * @param hashOrNumber - The block hash or number to set as head + * + * @example Set head to block 1000000 + * ```ts + * import { WsProvider } from '@polkadot/rpc-provider' + * const ws = new WsProvider(`ws://localhost:8000`) + * await ws.send('dev_setHead', [1000000]) + * ``` + */ +export const rpc = async (context: Context, [params]: [Params]) => { + const hashOrNumber = schema.parse(params) + let block: Block | undefined + if (typeof hashOrNumber === 'number') { + const blockNumber = hashOrNumber > 0 ? hashOrNumber : context.chain.head.number + hashOrNumber + block = await context.chain.getBlockAt(blockNumber) + } else { + block = await context.chain.getBlock(hashOrNumber) + } + if (!block) { + throw new ResponseError(1, `Block not found ${hashOrNumber}`) + } + await context.chain.setHead(block) + return block.hash +} diff --git a/packages/chopsticks/src/plugins/set-runtime-log-level/index.ts b/packages/chopsticks/src/plugins/set-runtime-log-level/index.ts new file mode 100644 index 00000000..d1e0e360 --- /dev/null +++ b/packages/chopsticks/src/plugins/set-runtime-log-level/index.ts @@ -0,0 +1 @@ +export * from './rpc.js' diff --git a/packages/chopsticks/src/plugins/set-runtime-log-level/rpc.ts b/packages/chopsticks/src/plugins/set-runtime-log-level/rpc.ts new file mode 100644 index 00000000..fe84123b --- /dev/null +++ b/packages/chopsticks/src/plugins/set-runtime-log-level/rpc.ts @@ -0,0 +1,27 @@ +import { Context, ResponseError } from '@tanssi/chopsticks-core' +import { defaultLogger } from '../../logger.js' + +/** + * Set runtime log level. + * + * This function is a dev rpc handler. Use `dev_setRuntimeLogLevel` as the method name when calling it. + * + * @param context - The context object of the rpc handler + * @param runtimeLogLevel - The runtime log level to set + * + * @example Set runtime log level to 1 + * ```ts + * import { WsProvider } from '@polkadot/rpc-provider' + * const ws = new WsProvider(`ws://localhost:8000`) + * await ws.send('dev_setRuntimeLogLevel', [1]) + * ``` + */ +export const rpc = async (context: Context, [runtimeLogLevel]: [number]) => { + defaultLogger.debug({ runtimeLogLevel }, 'dev_setRuntimeLogLevel') + + if (typeof runtimeLogLevel !== 'number') { + throw new ResponseError(1, `Invalid runtimeLogLevel ${runtimeLogLevel}`) + } + + context.chain.runtimeLogLevel = runtimeLogLevel +} diff --git a/packages/chopsticks/src/plugins/set-storage/index.ts b/packages/chopsticks/src/plugins/set-storage/index.ts index 2235f6ab..d1e0e360 100644 --- a/packages/chopsticks/src/plugins/set-storage/index.ts +++ b/packages/chopsticks/src/plugins/set-storage/index.ts @@ -1,20 +1 @@ -import { HexString } from '@polkadot/util/types' - -import { Handler, ResponseError } from '../../rpc/shared' -import { StorageValues, setStorage } from '@tanssi/chopsticks-core' -import { defaultLogger } from '../../logger' - -export const rpc: Handler = async (context, params) => { - const [values, blockHash] = params as [StorageValues, HexString?] - const hash = await setStorage(context.chain, values, blockHash).catch((error) => { - throw new ResponseError(1, error.toString()) - }) - defaultLogger.debug( - { - hash, - values, - }, - 'dev_setStorage', - ) - return hash -} +export * from './rpc.js' diff --git a/packages/chopsticks/src/plugins/set-storage/rpc.ts b/packages/chopsticks/src/plugins/set-storage/rpc.ts new file mode 100644 index 00000000..f4868149 --- /dev/null +++ b/packages/chopsticks/src/plugins/set-storage/rpc.ts @@ -0,0 +1,45 @@ +import { Context, ResponseError, StorageValues, setStorage } from '@tanssi/chopsticks-core' +import { HexString } from '@polkadot/util/types' + +import { defaultLogger } from '../../logger.js' + +/** + * Set storage values. + * + * This function is a dev rpc handler. Use `dev_setStorage` as the method name when calling it. + * + * @param context - The context object of the rpc handler + * @param params - The parameters of the rpc handler + * + * @example + * ```ts + * import { WsProvider } from '@polkadot/rpc-provider' + * import { Keyring } from '@polkadot/keyring' + * + * const ws = new WsProvider(`ws://localhost:8000`) + * const keyring = new Keyring({ type: 'ed25519' }) + * const bob = keyring.addFromUri('//Bob') + * + * const storage = { + * System: { + * Account: [[[bob.address], { data: { free: 100000 }, nonce: 1 }]], + * }, + * } + * await ws.send('dev_setStorage', [storage]) + * ``` + */ + +export const rpc = async (context: Context, params: [StorageValues, HexString?]) => { + const [values, blockHash] = params + const hash = await setStorage(context.chain, values, blockHash).catch((error) => { + throw new ResponseError(1, error.toString()) + }) + defaultLogger.debug( + { + hash, + values, + }, + 'dev_setStorage', + ) + return hash +} diff --git a/packages/chopsticks/src/plugins/time-travel/index.ts b/packages/chopsticks/src/plugins/time-travel/index.ts index 595811da..d1e0e360 100644 --- a/packages/chopsticks/src/plugins/time-travel/index.ts +++ b/packages/chopsticks/src/plugins/time-travel/index.ts @@ -1,9 +1 @@ -import { Handler, ResponseError } from '../../rpc/shared' -import { timeTravel } from '@tanssi/chopsticks-core' - -export const rpc: Handler = async (context, [date]) => { - const timestamp = typeof date === 'string' ? Date.parse(date) : date - if (Number.isNaN(timestamp)) throw new ResponseError(1, 'Invalid date') - await timeTravel(context.chain, timestamp) - return timestamp -} +export * from './rpc.js' diff --git a/packages/chopsticks/src/plugins/time-travel/rpc.ts b/packages/chopsticks/src/plugins/time-travel/rpc.ts new file mode 100644 index 00000000..35696073 --- /dev/null +++ b/packages/chopsticks/src/plugins/time-travel/rpc.ts @@ -0,0 +1,23 @@ +import { Context, ResponseError, timeTravel } from '@tanssi/chopsticks-core' + +/** + * Travel to a specific time. + * + * This function is a dev rpc handler. Use `dev_timeTravel` as the method name when calling it. + * + * @param context - The context object of the rpc handler + * @param date - Timestamp or date string to set + * + * @example + * ```ts + * import { WsProvider } from '@polkadot/rpc-provider' + * const ws = new WsProvider(`ws://localhost:8000`) + * await ws.send('dev_timeTravel', ['Jan 1, 2023']) + * ``` + */ +export const rpc = async (context: Context, [date]: [string | number]) => { + const timestamp = typeof date === 'string' ? Date.parse(date) : date + if (Number.isNaN(timestamp)) throw new ResponseError(1, 'Invalid date') + await timeTravel(context.chain, timestamp) + return timestamp +} diff --git a/packages/chopsticks/src/plugins/try-runtime/index.ts b/packages/chopsticks/src/plugins/try-runtime/index.ts index f87b0310..a1098e8b 100644 --- a/packages/chopsticks/src/plugins/try-runtime/index.ts +++ b/packages/chopsticks/src/plugins/try-runtime/index.ts @@ -1,13 +1,13 @@ import { writeFileSync } from 'node:fs' -import type yargs from 'yargs' +import type { Argv } from 'yargs' -import { Config } from '../../schema' -import { defaultOptions } from '../../cli-options' -import { generateHtmlDiffPreviewFile } from '../../utils/generate-html-diff' -import { openHtml } from '../../utils/open-html' -import { setupContext } from '../../context' +import { Config } from '../../schema/index.js' +import { defaultOptions } from '../../cli-options.js' +import { generateHtmlDiffPreviewFile } from '../../utils/generate-html-diff.js' +import { openHtml } from '../../utils/open-html.js' +import { setupContext } from '../../context.js' -export const cli = (y: yargs.Argv) => { +export const cli = (y: Argv) => { y.command( 'try-runtime', 'Runs runtime upgrade', diff --git a/packages/chopsticks/src/plugins/types.ts b/packages/chopsticks/src/plugins/types.ts new file mode 100644 index 00000000..6723c4bb --- /dev/null +++ b/packages/chopsticks/src/plugins/types.ts @@ -0,0 +1,12 @@ +export { rpc as newBlock } from './new-block/index.js' +export { rpc as dryRun } from './dry-run/index.js' +export { rpc as setBlockBuildMode } from './set-block-build-mode/index.js' +export { rpc as setHead } from './set-head/index.js' +export { rpc as setRuntimeLogLevel } from './set-runtime-log-level/index.js' +export { rpc as setStorage } from './set-storage/index.js' +export { rpc as timeTravel } from './time-travel/index.js' +export { rpc as runBlock } from './run-block/index.js' + +export type { NewBlockParams } from './new-block/index.js' +export type { DryRunParams } from './dry-run/index.js' +export type { RunBlockParams } from './run-block/index.js' diff --git a/packages/chopsticks/src/rpc/index.ts b/packages/chopsticks/src/rpc/index.ts index 6dabaee1..3b47a81e 100644 --- a/packages/chopsticks/src/rpc/index.ts +++ b/packages/chopsticks/src/rpc/index.ts @@ -1,31 +1,31 @@ -import { Context, Handlers, ResponseError, SubscriptionManager, logger } from './shared' -import { pluginHandlers } from '../plugins' -import substrate from './substrate' +import { Context, Handlers, ResponseError, SubscriptionManager, logger, substrate } from '@tanssi/chopsticks-core' + +import { loadRpcPlugin, rpcPluginMethods } from '../plugins/index.js' const allHandlers: Handlers = { ...substrate, rpc_methods: async () => Promise.resolve({ version: 1, - methods: [...Object.keys(allHandlers), ...Object.keys(pluginHandlers)], + methods: [...Object.keys(allHandlers), ...rpcPluginMethods], }), } -const getHandler = (method: string) => { +const getHandler = async (method: string) => { const handler = allHandlers[method] if (!handler) { // no handler for this method, check if it's a plugin - return pluginHandlers[method] + return loadRpcPlugin(method) } return handler } export const handler = (context: Context) => - ({ method, params }: { method: string; params: any[] }, subscriptionManager: SubscriptionManager) => { + async ({ method, params }: { method: string; params: any[] }, subscriptionManager: SubscriptionManager) => { logger.trace('Handling %s', method) - const handler = getHandler(method) + const handler = await getHandler(method) if (!handler) { logger.warn('Method not found %s', method) diff --git a/packages/chopsticks/src/rpc/substrate/author.ts b/packages/chopsticks/src/rpc/substrate/author.ts deleted file mode 100644 index 64a67a53..00000000 --- a/packages/chopsticks/src/rpc/substrate/author.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { APPLY_EXTRINSIC_ERROR, Block } from '@tanssi/chopsticks-core' -import { Handlers, ResponseError } from '../shared' -import { TransactionValidityError } from '@polkadot/types/interfaces' -import { defaultLogger } from '../../logger' - -const logger = defaultLogger.child({ name: 'rpc-author' }) - -const handlers: Handlers = { - author_submitExtrinsic: async (context, [extrinsic]) => { - return context.chain.submitExtrinsic(extrinsic).catch((error: TransactionValidityError) => { - const code = error.isInvalid ? 1010 : 1011 - throw new ResponseError(code, error.toString()) - }) - }, - author_submitAndWatchExtrinsic: async (context, [extrinsic], { subscribe, unsubscribe }) => { - let update = (_block: Block) => {} - - const id = context.chain.headState.subscribeHead((block) => update(block)) - const callback = subscribe('author_extrinsicUpdate', id, () => context.chain.headState.unsubscribeHead(id)) - - const onExtrinsicFail = ([failedExtrinsic, error]: [string, TransactionValidityError]) => { - if (failedExtrinsic === extrinsic) { - callback(error.toJSON()) - done(id) - } - } - - context.chain.txPool.event.on(APPLY_EXTRINSIC_ERROR, onExtrinsicFail) - - const done = (id: string) => { - context.chain.txPool.event.removeListener(APPLY_EXTRINSIC_ERROR, onExtrinsicFail) - unsubscribe(id) - } - - update = async (block) => { - const extrisnics = await block.extrinsics - if (!extrisnics.includes(extrinsic)) return - - logger.debug({ block: block.hash }, 'author_extrinsicUpdate') - - callback({ - InBlock: block.hash, - }) - callback({ - Finalized: block.hash, - }) - done(id) - } - - context.chain - .submitExtrinsic(extrinsic) - .then(() => { - callback({ - Ready: null, - }) - }) - .catch((error: TransactionValidityError) => { - logger.error({ error }, 'ExtrinsicFailed') - callback(error?.toJSON() ?? error) - done(id) - }) - return id - }, - author_unwatchExtrinsic: async (_context, [subid], { unsubscribe }) => { - unsubscribe(subid) - }, - author_pendingExtrinsics: async (context) => { - return context.chain.txPool.pendingExtrinsics - }, -} - -export default handlers diff --git a/packages/chopsticks/src/rpc/substrate/chain.ts b/packages/chopsticks/src/rpc/substrate/chain.ts deleted file mode 100644 index 0119107a..00000000 --- a/packages/chopsticks/src/rpc/substrate/chain.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { Handlers, ResponseError } from '../shared' - -const processHeader = (header: any) => { - const res = header.toJSON() as any - res.number = '0x' + res.number.toString(16) // number is hex format - return res -} - -const handlers: Handlers = { - chain_getBlockHash: async (context, [blockNumber]) => { - const block = await context.chain.getBlockAt(blockNumber) - if (!block) { - throw new ResponseError(1, `Block #${blockNumber} not found`) - } - return block.hash - }, - chain_getHeader: async (context, [hash]) => { - const block = await context.chain.getBlock(hash) - if (!block) { - throw new ResponseError(1, `Block ${hash} not found`) - } - return processHeader(await block.header) - }, - chain_getBlock: async (context, [hash]) => { - const block = await context.chain.getBlock(hash) - if (!block) { - throw new ResponseError(1, `Block ${hash} not found`) - } - return { - block: { - header: await block.header, - extrinsics: await block.extrinsics, - }, - justifications: null, - } - }, - chain_getFinalizedHead: async (context) => { - return context.chain.head.hash - }, - chain_subscribeNewHead: async (context, _params, { subscribe }) => { - let update = () => {} - - const id = context.chain.headState.subscribeHead(() => update()) - const callback = subscribe('chain_newHead', id, () => context.chain.headState.unsubscribeHead(id)) - - update = async () => { - callback(processHeader(await context.chain.head.header)) - } - - update() - - return id - }, - chain_subscribeFinalizedHeads: async (context, _params, { subscribe }) => { - let update = () => {} - - const id = context.chain.headState.subscribeHead(() => update()) - const callback = subscribe('chain_finalizedHead', id, () => context.chain.headState.unsubscribeHead(id)) - - update = async () => { - callback(processHeader(await context.chain.head.header)) - } - - update() - - return id - }, - chain_unsubscribeNewHead: async (_context, [subid], { unsubscribe }) => { - unsubscribe(subid) - }, -} - -const alias = { - chain_subscribeNewHeads: handlers.chain_subscribeNewHead, - chain_unsubscribeNewHeads: handlers.chain_unsubscribeNewHead, - chain_unsubscribeFinalizedHeads: handlers.chain_unsubscribeNewHead, -} - -export default { - ...handlers, - ...alias, -} diff --git a/packages/chopsticks/src/rpc/substrate/index.ts b/packages/chopsticks/src/rpc/substrate/index.ts deleted file mode 100644 index fe149541..00000000 --- a/packages/chopsticks/src/rpc/substrate/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import author from './author' -import chain from './chain' -import payment from './payment' -import state from './state' -import system from './system' - -import { Handlers } from '../shared' - -const handlers: Handlers = { - ...author, - ...chain, - ...state, - ...system, - ...payment, -} - -export default handlers diff --git a/packages/chopsticks/src/rpc/substrate/payment.ts b/packages/chopsticks/src/rpc/substrate/payment.ts deleted file mode 100644 index 3e310d67..00000000 --- a/packages/chopsticks/src/rpc/substrate/payment.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Handlers, ResponseError } from '../shared' -import { hexToU8a } from '@polkadot/util' - -const handlers: Handlers = { - payment_queryFeeDetails: async (context, [extrinsic, hash]) => { - const block = await context.chain.getBlock(hash) - if (!block) { - throw new ResponseError(1, `Block ${hash} not found`) - } - const registry = await block.registry - const tx = hexToU8a(extrinsic) - const resp = await block.call('TransactionPaymentApi_query_fee_details', [ - registry.createType('Extrinsic', tx).toHex(), - registry.createType('u32', tx.byteLength).toHex(), - ]) - return resp.result - }, - payment_queryInfo: async (context, [extrinsic, hash]) => { - const block = await context.chain.getBlock(hash) - if (!block) { - throw new ResponseError(1, `Block ${hash} not found`) - } - const registry = await block.registry - const tx = hexToU8a(extrinsic) - const resp = await block.call('TransactionPaymentApi_query_info', [ - registry.createType('Extrinsic', tx).toHex(), - registry.createType('u32', tx.byteLength).toHex(), - ]) - return resp.result - }, -} - -export default handlers diff --git a/packages/chopsticks/src/rpc/substrate/state.ts b/packages/chopsticks/src/rpc/substrate/state.ts deleted file mode 100644 index 0b545d01..00000000 --- a/packages/chopsticks/src/rpc/substrate/state.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { Block } from '@tanssi/chopsticks-core' -import { Handlers, ResponseError } from '../shared' -import { defaultLogger } from '../../logger' - -const logger = defaultLogger.child({ name: 'rpc-state' }) - -const handlers: Handlers = { - state_getRuntimeVersion: async (context, [hash]) => { - const block = await context.chain.getBlock(hash) - return block?.runtimeVersion - }, - state_getMetadata: async (context, [hash]) => { - const block = await context.chain.getBlock(hash) - return block?.metadata - }, - state_getStorage: async (context, [key, hash]) => { - const block = await context.chain.getBlock(hash) - return block?.get(key) - }, - state_getKeysPaged: async (context, [prefix, pageSize, startKey, hash]) => { - const block = await context.chain.getBlock(hash) - return block?.getKeysPaged({ prefix, pageSize, startKey }) - }, - state_queryStorageAt: async (context, [keys, hash]) => { - const block = await context.chain.getBlock(hash) - if (!block) { - return [] - } - const values = await Promise.all((keys as string[]).map(async (key) => [key, await block.get(key)])) - return [ - { - block: block.hash, - changes: values, - }, - ] - }, - state_call: async (context, [method, data, hash]) => { - const block = await context.chain.getBlock(hash) - if (!block) { - throw new ResponseError(1, `Block ${hash} not found`) - } - const resp = await block.call(method, [data]) - return resp.result - }, - state_subscribeRuntimeVersion: async (context, _params, { subscribe }) => { - let update = (_block: Block) => {} - const id = await context.chain.headState.subscrubeRuntimeVersion((block) => update(block)) - const callback = subscribe('state_runtimeVersion', id) - update = async (block) => callback(await block.runtimeVersion) - context.chain.head.runtimeVersion.then(callback) - return id - }, - state_unsubscribeRuntimeVersion: async (_context, [subid], { unsubscribe }) => { - unsubscribe(subid) - }, - state_subscribeStorage: async (context, [keys], { subscribe }) => { - let update = (_block: Block, _pairs: [string, string][]) => {} - - const id = await context.chain.headState.subscribeStorage(keys, (block, pairs) => update(block, pairs)) - const callback = subscribe('state_storage', id, () => context.chain.headState.unsubscribeStorage(id)) - - update = async (block, pairs) => { - logger.trace({ hash: block.hash }, 'state_subscribeStorage') - callback({ - block: block.hash, - changes: pairs, - }) - } - ;(async () => { - const pairs = await Promise.all( - (keys as string[]).map(async (key) => { - const val = await context.chain.head.get(key) - return [key, val] - }), - ) - callback({ - block: context.chain.head.hash, - changes: pairs, - }) - })() - - return id - }, - state_unsubscribeStorage: async (_context, [subid], { unsubscribe }) => { - unsubscribe(subid) - }, -} - -export default handlers diff --git a/packages/chopsticks/src/rpc/substrate/system.ts b/packages/chopsticks/src/rpc/substrate/system.ts deleted file mode 100644 index 73fd15ce..00000000 --- a/packages/chopsticks/src/rpc/substrate/system.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Index } from '@polkadot/types/interfaces' -import { hexToU8a } from '@polkadot/util' -import { readFileSync } from 'node:fs' -import path from 'node:path' - -import { Handlers } from '../shared' - -const handlers: Handlers = { - system_localPeerId: async () => '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', - system_nodeRoles: async () => ['Full'], - system_localListenAddresses: async () => [], - system_chain: async (context) => { - return context.chain.api.getSystemChain() - }, - system_properties: async (context) => { - return context.chain.api.getSystemProperties() - }, - system_name: async (context) => { - return context.chain.api.getSystemName() - }, - system_version: async (_context) => { - const { version } = JSON.parse(readFileSync(path.join(__dirname, '../../../package.json'), 'utf-8')) - return `chopsticks-v${version}` - }, - system_chainType: async (_context) => { - return 'Development' - }, - system_health: async () => { - return { - peers: 0, - isSyncing: false, - shouldHavePeers: false, - } - }, - system_dryRun: async (context, [extrinsic, at]) => { - const { outcome } = await context.chain.dryRunExtrinsic(extrinsic, at) - return outcome.toHex() - }, - system_accountNextIndex: async (context, [address]) => { - const head = context.chain.head - const registry = await head.registry - const account = registry.createType('AccountId', address) - const result = await head.call('AccountNonceApi_account_nonce', [account.toHex()]) - const nonce = registry.createType('Index', hexToU8a(result.result)).toNumber() - return nonce + context.chain.txPool.pendingExtrinsicsBy(address).length - }, -} - -export default handlers diff --git a/packages/chopsticks/src/schema/index.ts b/packages/chopsticks/src/schema/index.ts index eef6cdf3..e18fa3b5 100644 --- a/packages/chopsticks/src/schema/index.ts +++ b/packages/chopsticks/src/schema/index.ts @@ -1,4 +1,5 @@ import { BuildBlockMode, defaultLogger, genesisSchema, isUrl } from '@tanssi/chopsticks-core' +import { HexString } from '@polkadot/util/types' import { basename, extname } from 'node:path' import { readFileSync } from 'node:fs' import { z } from 'zod' @@ -6,6 +7,9 @@ import _ from 'lodash' import axios from 'axios' import yaml from 'js-yaml' +export const zHex = z.custom((val: any) => /^0x\w+$/.test(val)) +export const zHash = z.string().length(66).and(zHex) + export const configSchema = z .object({ port: z.number().optional(), @@ -22,6 +26,7 @@ export const configSchema = z 'registered-types': z.any().optional(), 'runtime-log-level': z.number().min(0).max(5).optional(), 'offchain-worker': z.boolean().optional(), + resume: z.union([z.string().length(66).startsWith('0x'), z.number(), z.boolean()]).optional(), }) .strict() diff --git a/packages/chopsticks/src/server.ts b/packages/chopsticks/src/server.ts index 8ba3e490..e429c668 100644 --- a/packages/chopsticks/src/server.ts +++ b/packages/chopsticks/src/server.ts @@ -1,10 +1,22 @@ -import WebSocket, { AddressInfo, WebSocketServer } from 'ws' +import { AddressInfo, WebSocket, WebSocketServer } from 'ws' +import { ResponseError, SubscriptionManager } from '@tanssi/chopsticks-core' +import { z } from 'zod' -import { ResponseError, SubscriptionManager } from './rpc/shared' -import { defaultLogger, truncate } from './logger' +import { defaultLogger, truncate } from './logger.js' const logger = defaultLogger.child({ name: 'ws' }) +const singleRequest = z.object({ + id: z.number(), + jsonrpc: z.literal('2.0'), + method: z.string(), + params: z.array(z.any()).default([]), +}) + +const batchRequest = z.array(singleRequest) + +const requestSchema = z.union([singleRequest, batchRequest]) + export type Handler = ( data: { method: string; params: string[] }, subscriptionManager: SubscriptionManager, @@ -87,6 +99,40 @@ export const createServer = async (handler: Handler, port?: number) => { }, } + const processRequest = async (req: Zod.infer) => { + logger.trace( + { + id: req.id, + method: req.method, + }, + 'Received message', + ) + + try { + const resp = await handler(req, subscriptionManager) + logger.trace( + { + id: req.id, + method: req.method, + result: truncate(resp), + }, + 'Response for request', + ) + return { + id: req.id, + jsonrpc: '2.0', + result: resp ?? null, + } + } catch (e) { + logger.info('Error handling request: %s %o', e, (e as Error).stack) + return { + id: req.id, + jsonrpc: '2.0', + error: e instanceof ResponseError ? e : { code: -32603, message: `Internal ${e}` }, + } + } + } + ws.on('close', () => { logger.debug('Connection closed') for (const [subid, onCancel] of Object.entries(subscriptions)) { @@ -103,8 +149,8 @@ export const createServer = async (handler: Handler, port?: number) => { }) ws.on('message', async (message) => { - const req = parseRequest(message.toString()) - if (!req || req.id == null || req.method == null) { + const parsed = await requestSchema.safeParseAsync(parseRequest(message.toString())) + if (!parsed.success) { logger.info('Invalid request: %s', message) send({ id: null, @@ -117,36 +163,15 @@ export const createServer = async (handler: Handler, port?: number) => { return } - logger.trace( - { - id: req.id, - method: req.method, - }, - 'Received message', - ) - - try { - const resp = await handler(req, subscriptionManager) - logger.trace( - { - id: req.id, - method: req.method, - result: truncate(resp), - }, - 'Sending response for request', - ) - send({ - id: req.id, - jsonrpc: '2.0', - result: resp ?? null, - }) - } catch (e) { - logger.info('Error handling request: %s %o', e, (e as Error).stack) - send({ - id: req.id, - jsonrpc: '2.0', - error: e instanceof ResponseError ? e : { code: -32603, message: `Internal ${e}` }, - }) + const { data: req } = parsed + if (Array.isArray(req)) { + logger.trace({ req }, 'Received batch request') + const resp = await Promise.all(req.map(processRequest)) + send(resp) + } else { + logger.trace({ req }, 'Received single request') + const resp = await processRequest(req) + send(resp) } }) }) diff --git a/packages/chopsticks/src/setup-with-server.ts b/packages/chopsticks/src/setup-with-server.ts index 776539d2..26dd54fc 100644 --- a/packages/chopsticks/src/setup-with-server.ts +++ b/packages/chopsticks/src/setup-with-server.ts @@ -1,9 +1,8 @@ -import { Config } from './schema' -import { createServer } from './server' -import { handler } from './rpc' -import { logger } from './rpc/shared' -import { setupContext } from './context' -import _ from 'lodash' +import { Config } from './schema/index.js' +import { createServer } from './server.js' +import { handler } from './rpc/index.js' +import { logger } from '@tanssi/chopsticks-core' +import { setupContext } from './context.js' export const setupWithServer = async (argv: Config) => { const context = await setupContext(argv) diff --git a/packages/chopsticks/src/types.ts b/packages/chopsticks/src/types.ts new file mode 100644 index 00000000..f66e9d38 --- /dev/null +++ b/packages/chopsticks/src/types.ts @@ -0,0 +1,15 @@ +/** + * Chopsticks JSON RPC and CLI. + * + * @remarks + * This package extends the `@acala-network/chopsticks-core` package a with JSON RPC server and CLI support. + * + * @privateRemarks + * Above is the package documentation for 'chopsticks' package. + * `export` below is for tsdoc. + * + * @packageDocumentation + */ +export type { ChainProperties, RuntimeVersion, Context, SubscriptionManager, Handler } from '@tanssi/chopsticks-core' +export * from '@tanssi/chopsticks-core/rpc/substrate/index.js' +export * from './plugins/types.js' diff --git a/packages/chopsticks/src/utils/generate-html-diff.ts b/packages/chopsticks/src/utils/generate-html-diff.ts index 83c05be0..6069ecdb 100644 --- a/packages/chopsticks/src/utils/generate-html-diff.ts +++ b/packages/chopsticks/src/utils/generate-html-diff.ts @@ -1,14 +1,13 @@ import { Block } from '@tanssi/chopsticks-core' import { HexString } from '@polkadot/util/types' -import { decodeStorageDiff } from './decoder' +import { decodeStorageDiff } from './decoder.js' import { mkdirSync, readFileSync, writeFileSync } from 'node:fs' -import { template } from 'lodash' -import path from 'node:path' +import _ from 'lodash' export const generateHtmlDiff = async (block: Block, diff: [HexString, HexString | null][]) => { const { oldState, delta } = await decodeStorageDiff(block, diff) - const htmlTemplate = readFileSync(path.join(__dirname, '../../template/diff.html'), 'utf-8') - return template(htmlTemplate)({ left: JSON.stringify(oldState), delta: JSON.stringify(delta) }) + const htmlTemplate = readFileSync(new URL('template/diff.html', import.meta.url), 'utf-8') + return _.template(htmlTemplate)({ left: JSON.stringify(oldState), delta: JSON.stringify(delta) }) } export const generateHtmlDiffPreviewFile = async ( diff --git a/packages/chopsticks/src/utils/index.ts b/packages/chopsticks/src/utils/index.ts new file mode 100644 index 00000000..80f81f69 --- /dev/null +++ b/packages/chopsticks/src/utils/index.ts @@ -0,0 +1,4 @@ +export * from './decoder.js' +export * from './generate-html-diff.js' +export * from './open-html.js' +export * from './override.js' diff --git a/packages/chopsticks/src/utils/override.ts b/packages/chopsticks/src/utils/override.ts index c380892d..7f303649 100644 --- a/packages/chopsticks/src/utils/override.ts +++ b/packages/chopsticks/src/utils/override.ts @@ -3,7 +3,7 @@ import { HexString } from '@polkadot/util/types' import { existsSync, readFileSync } from 'node:fs' import yaml from 'js-yaml' -import { defaultLogger } from '../logger' +import { defaultLogger } from '../logger.js' export const overrideStorage = async (chain: Blockchain, storage?: string | StorageValues, at?: HexString) => { if (storage == null) { diff --git a/packages/chopsticks/template/diff.html b/packages/chopsticks/src/utils/template/diff.html similarity index 100% rename from packages/chopsticks/template/diff.html rename to packages/chopsticks/src/utils/template/diff.html diff --git a/packages/chopsticks/src/utils/tunnel.ts b/packages/chopsticks/src/utils/tunnel.ts index 36faf425..a673a9d1 100644 --- a/packages/chopsticks/src/utils/tunnel.ts +++ b/packages/chopsticks/src/utils/tunnel.ts @@ -1,4 +1,5 @@ -import 'global-agent/bootstrap' +import { bootstrap } from 'global-agent' +bootstrap() import npmConf from '@pnpm/npm-conf' const npmConfig = npmConf().config diff --git a/packages/chopsticks/tsconfig.json b/packages/chopsticks/tsconfig.json index 18d3c939..3a427f45 100644 --- a/packages/chopsticks/tsconfig.json +++ b/packages/chopsticks/tsconfig.json @@ -1,12 +1,17 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "outDir": "lib", - "rootDir": "src" + "rootDir": "src", + "declarationDir": "dist/types" }, "include": ["src/**/*"], "exclude": ["src/**/*.test.ts"], - "references": [ - { "path": "../core" }, - ] + "references": [{ "path": "../core/tsconfig.json" }, { "path": "../db/tsconfig.json" }], + "ts-node": { + "esm": true, + "swc": true, + "transpileOnly": true, + "files": true, + "experimentalSpecifierResolution": "node" + } } diff --git a/packages/chopsticks/typedoc.json b/packages/chopsticks/typedoc.json new file mode 100644 index 00000000..249f35f8 --- /dev/null +++ b/packages/chopsticks/typedoc.json @@ -0,0 +1,7 @@ +{ + "entryPoints": ["src/types.ts"], + "out": "../../docs-src/chopsticks", + "plugin": ["typedoc-plugin-markdown"], + "readme": "none", + "tsconfig": "tsconfig.json" +} diff --git a/packages/core/package.json b/packages/core/package.json index 164cb57a..f78be735 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,49 +1,69 @@ { "name": "@tanssi/chopsticks-core", - "version": "0.8.0-7", "author": "Moondance Labs", + "version": "0.9.2", "license": "Apache-2.0", + "type": "module", "scripts": { - "clean": "rm -rf lib tsconfig.tsbuildinfo", - "pack-wasm": "scripts/pack-wasm.js", - "build": "yarn pack-wasm; tsc -p ./tsconfig.json" + "clean": "rm -rf dist", + "build": "yarn clean && yarn build:cjs && yarn build:esm && yarn build:types", + "build:cjs": "swc ./src --config-file ../../.cjsswcrc -d dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json", + "build:esm": "swc ./src --config-file ../../.esmswcrc -d dist/esm", + "build:types": "tsc -p tsconfig.json --emitDeclarationOnly --outDir dist/types", + "docs:prep": "typedoc" }, "dependencies": { - "@polkadot/api": "^10.9.1", - "@polkadot/util-crypto": "^12.3.2", + "@polkadot/api": "^10.10.1", + "@polkadot/rpc-provider": "^10.10.1", + "@polkadot/types": "^10.10.1", + "@polkadot/types-codec": "^10.10.1", + "@polkadot/types-known": "^10.10.1", + "@polkadot/util": "^12.5.1", + "@polkadot/util-crypto": "^12.5.1", "@tanssi/chopsticks-executor": "workspace:*", "axios": "^1.4.0", + "comlink": "^4.4.1", "eventemitter3": "^5.0.1", - "localforage": "^1.10.0", "lodash": "^4.17.21", - "pino": "^8.15.0", - "pino-pretty": "^10.2.0", - "sql.js": "^1.8.0", - "sqlite3": "^5.1.6", - "typeorm": "^0.3.17", - "zod": "^3.22.2" + "lru-cache": "^10.0.1", + "pino": "^8.16.1", + "pino-pretty": "^10.2.3", + "rxjs": "^7.8.1", + "zod": "^3.22.4" }, "devDependencies": { - "@types/lodash": "^4.14.197", - "@types/sql.js": "^1.4.4", - "fflate": "^0.8.0", - "typescript": "^5.1.6" + "@swc/cli": "0.1.62", + "@swc/core": "^1.3.96", + "@types/lodash": "^4.14.201", + "typescript": "^5.2.2", + "vitest": "^0.34.6" }, "files": [ - "lib" + "dist/esm/**", + "dist/cjs/**", + "dist/types/**" ], - "main": "./lib/index.js", - "types": "./lib/index.d.ts", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/types/index.d.ts", "exports": { ".": { - "types": "./lib/index.d.ts", - "default": "./lib/index.js" + "types": "./dist/types/index.d.ts", + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js", + "default": "./dist/esm/index.js" }, "./*": { - "types": "./lib/*.d.ts", - "default": "./lib/*.js" + "types": "./dist/types/*.d.ts", + "require": "./dist/cjs/*.js", + "import": "./dist/esm/*.js", + "default": "./dist/esm/*.js" }, - "./package.json": "./package.json" + "./package.json": "./package.json", + "./package.cjs.json": "./dist/cjs/package.json" }, - "stableVersion": "0.7.3" + "browser": { + "./dist/cjs/wasm-executor/node-worker.js": "./dist/cjs/wasm-executor/browser-worker.js", + "./dist/esm/wasm-executor/node-worker.js": "./dist/esm/wasm-executor/browser-worker.js" + } } diff --git a/packages/core/scripts/pack-wasm.js b/packages/core/scripts/pack-wasm.js deleted file mode 100755 index 81dfcd6e..00000000 --- a/packages/core/scripts/pack-wasm.js +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env node - -const fs = require('node:fs') -const path = require('node:path') -const { zlibSync } = require('fflate/node') -const { formatNumber } = require('@polkadot/util') - -const data = fs.readFileSync(path.resolve(__dirname, `../../../node_modules/sql.js/dist/sql-wasm.wasm`)) -const compressed = Buffer.from(zlibSync(data, { level: 9 })) -const base64 = compressed.toString('base64') - -console.log( - `*** Compressed WASM: in=${formatNumber(data.length)}, out=${formatNumber(compressed.length)}, opt=${( - (100 * compressed.length) / - data.length - ).toFixed(2)}%, base64=${formatNumber(base64.length)}`, -) - -fs.writeFileSync( - path.resolve(__dirname, `../src/db/sql-wasm.ts`), - `// Auto-generated file, do not edit by hand -const LEN_IN = ${compressed.length} -const LEN_OUT = ${data.length} -const BYTES = - '${base64}' - -import { base64Decode, unzlibSync } from '@polkadot/wasm-util' -export const SQL_WASM_BYTES = unzlibSync(base64Decode(BYTES, new Uint8Array(LEN_IN)), new Uint8Array(LEN_OUT)) -`, -) diff --git a/packages/core/src/api.test.ts b/packages/core/src/api.test.ts index 42bd0900..5f69bd68 100644 --- a/packages/core/src/api.test.ts +++ b/packages/core/src/api.test.ts @@ -1,9 +1,9 @@ -import { Api } from './api' -import { WsProvider } from '@polkadot/api' +import { Api } from './api.js' +import { WsProvider } from '@polkadot/rpc-provider' import { expect, test } from 'vitest' test('handle invalid block hash', async () => { - const api = new Api(new WsProvider('wss://acala-rpc-0.aca-api.network')) + const api = new Api(new WsProvider('wss://acala-rpc-0.aca-api.network', 3_000)) await api.isReady await expect(api.getHeader('0x')).rejects.toThrow('invalid length') diff --git a/packages/core/src/api.ts b/packages/core/src/api.ts index 92eab26a..ab6c402b 100644 --- a/packages/core/src/api.ts +++ b/packages/core/src/api.ts @@ -1,8 +1,9 @@ import { ExtDef } from '@polkadot/types/extrinsic/signedExtensions/types' import { HexString } from '@polkadot/util/types' -import { ProviderInterface } from '@polkadot/rpc-provider/types' +import { ProviderInterface, ProviderInterfaceCallback } from '@polkadot/rpc-provider/types' +import { prefixedChildKey, splitChildKey, stripChildPrefix } from './utils/index.js' -type ChainProperties = { +export type ChainProperties = { ss58Format?: number tokenDecimals?: number[] tokenSymbol?: string[] @@ -26,6 +27,18 @@ type SignedBlock = { justifications?: HexString[] } +/** + * API class. Calls provider to get on-chain data. + * Either `endpoint` or `genesis` porvider must be provided. + * + * @example Instantiate an API + * + * ```ts + * const provider = new WsProvider(options.endpoint) + * const api = new Api(provider) + * await api.isReady + * ``` + */ export class Api { #provider: ProviderInterface #ready: Promise | undefined @@ -49,10 +62,12 @@ export class Api { this.#ready = this.#provider['isReady'] } else { this.#ready = new Promise((resolve): void => { - this.#provider.on('connected', (): void => { + if (this.#provider.hasSubscriptions) { + this.#provider.on('connected', resolve) + this.#provider.connect() + } else { resolve() - }) - this.#provider.connect() + } }) } } @@ -90,26 +105,62 @@ export class Api { return this.#provider.send( 'chain_getBlockHash', Number.isInteger(blockNumber) ? [blockNumber] : [], + !!blockNumber, ) } async getHeader(hash?: string) { - return this.#provider.send
('chain_getHeader', hash ? [hash] : []) + return this.#provider.send
('chain_getHeader', hash ? [hash] : [], !!hash) } async getBlock(hash?: string) { - return this.#provider.send('chain_getBlock', hash ? [hash] : []) + return this.#provider.send('chain_getBlock', hash ? [hash] : [], !!hash) } async getStorage(key: string, hash?: string) { - const params = [key] - if (hash) params.push(hash) - return this.#provider.send('state_getStorage', params) + const [child, storageKey] = splitChildKey(key as HexString) + if (child) { + // child storage key, use childstate_getStorage + const params = [child, storageKey] + if (hash) params.push(hash as HexString) + return this.#provider.send('childstate_getStorage', params, !!hash) + } else { + // main storage key, use state_getStorage + const params = [key] + if (hash) params.push(hash) + return this.#provider.send('state_getStorage', params, !!hash) + } } async getKeysPaged(prefix: string, pageSize: number, startKey: string, hash?: string) { - const params = [prefix, pageSize, startKey] - if (hash) params.push(hash) - return this.#provider.send('state_getKeysPaged', params) + const [child, storageKey] = splitChildKey(prefix as HexString) + if (child) { + // child storage key, use childstate_getKeysPaged + // strip child prefix from startKey + const params = [child, storageKey, pageSize, stripChildPrefix(startKey as HexString)] + if (hash) params.push(hash as HexString) + return this.#provider + .send('childstate_getKeysPaged', params, !!hash) + .then((keys) => keys.map((key) => prefixedChildKey(child, key))) + } else { + // main storage key, use state_getKeysPaged + const params = [prefix, pageSize, startKey] + if (hash) params.push(hash) + return this.#provider.send('state_getKeysPaged', params, !!hash) + } + } + + async subscribeRemoteNewHeads(cb: ProviderInterfaceCallback) { + if (!this.#provider.hasSubscriptions) { + throw new Error('subscribeRemoteNewHeads only works with subscriptions') + } + return this.#provider.subscribe('chain_newHead', 'chain_subscribeNewHeads', [], cb) + } + + async subscribeRemoteFinalizedHeads(cb: ProviderInterfaceCallback) { + if (!this.#provider.hasSubscriptions) { + throw new Error('subscribeRemoteFinalizedHeads only works with subscriptions') + } + return this.#provider.subscribe('chain_finalizedHead', 'chain_subscribeFinalizedHeads', [], cb) } } diff --git a/packages/core/src/blockchain/block-builder.ts b/packages/core/src/blockchain/block-builder.ts index 92206ef0..e113af1e 100644 --- a/packages/core/src/blockchain/block-builder.ts +++ b/packages/core/src/blockchain/block-builder.ts @@ -6,15 +6,16 @@ import { RawBabePreDigest, TransactionValidityError, } from '@polkadot/types/interfaces' -import { Block, TaskCallResponse } from './block' -import { Blockchain } from '.' +import { Block } from './block.js' +import { Blockchain } from './index.js' import { GenericExtrinsic } from '@polkadot/types' import { HexString } from '@polkadot/util/types' -import { StorageLayer, StorageValueKind } from './storage-layer' +import { StorageLayer, StorageValueKind } from './storage-layer.js' +import { TaskCallResponse } from '../wasm-executor/index.js' import { compactAddLength, hexToU8a, stringToHex, u8aConcat, u8aToBigInt } from '@polkadot/util' -import { compactHex } from '../utils' -import { defaultLogger, truncate } from '../logger' -import { getCurrentSlot } from '../utils/time-travel' +import { compactHex } from '../utils/index.js' +import { defaultLogger, truncate } from '../logger.js' +import { getCurrentSlot } from '../utils/time-travel.js' const logger = defaultLogger.child({ name: 'block-builder' }) @@ -65,7 +66,7 @@ const getNewSlot = (digest: RawBabePreDigest, slotNumber: number) => { return digest.toJSON() } -export const newHeader = async (head: Block) => { +export const newHeader = async (head: Block, unsafeBlockHeight?: number) => { const meta = await head.meta const parentHeader = await head.header @@ -77,7 +78,7 @@ export const newHeader = async (head: Block) => { if ( preRuntimes?.find(({ consensusEngine }) => consensusEngine.isAura) && preRuntimes?.find(({ consensusEngine }) => consensusEngine.isNimbus) - ) { + ) { const authorities = await getAuthorities(head.chain) const auraBlob = preRuntimes?.find((x) => x.consensusEngine.isAura) const nimbusBlob = preRuntimes?.find((x) => x.consensusEngine.toString() == 'nmbs') @@ -133,7 +134,7 @@ export const newHeader = async (head: Block) => { const header = meta.registry.createType
('Header', { parentHash: head.hash, - number: head.number + 1, + number: unsafeBlockHeight ?? head.number + 1, stateRoot: '0x0000000000000000000000000000000000000000000000000000000000000000', extrinsicsRoot: '0x0000000000000000000000000000000000000000000000000000000000000000', digest: { @@ -144,7 +145,13 @@ export const newHeader = async (head: Block) => { return header } -const initNewBlock = async (head: Block, header: Header, inherents: HexString[], storageLayer?: StorageLayer) => { +const initNewBlock = async ( + head: Block, + header: Header, + inherents: HexString[], + storageLayer?: StorageLayer, + callback?: BuildBlockCallbacks, +) => { const blockNumber = header.number.toNumber() const hash: HexString = `0x${Math.round(Math.random() * 100000000) .toString(16) @@ -157,20 +164,22 @@ const initNewBlock = async (head: Block, header: Header, inherents: HexString[], { // initialize block - const { storageDiff } = await newBlock.call('Core_initialize_block', [header.toHex()]) - newBlock.pushStorageLayer().setAll(storageDiff) - logger.trace(truncate(storageDiff), 'Initialize block') + const resp = await newBlock.call('Core_initialize_block', [header.toHex()]) + newBlock.pushStorageLayer().setAll(resp.storageDiff) + + callback?.onPhaseApplied?.('initialize', resp) } const layers: StorageLayer[] = [] // apply inherents for (const extrinsic of inherents) { try { - const { storageDiff } = await newBlock.call('BlockBuilder_apply_extrinsic', [extrinsic]) + const resp = await newBlock.call('BlockBuilder_apply_extrinsic', [extrinsic]) const layer = newBlock.pushStorageLayer() - layer.setAll(storageDiff) + layer.setAll(resp.storageDiff) layers.push(layer) - logger.trace(truncate(storageDiff), 'Applied inherent') + + callback?.onPhaseApplied?.(layers.length - 1, resp) } catch (e) { logger.warn('Failed to apply inherents %o %s', e, e) throw new Error('Failed to apply inherents') @@ -183,23 +192,30 @@ const initNewBlock = async (head: Block, header: Header, inherents: HexString[], } } +export type BuildBlockCallbacks = { + onApplyExtrinsicError?: (extrinsic: HexString, error: TransactionValidityError) => void + onPhaseApplied?: (phase: 'initialize' | 'finalize' | number, resp: TaskCallResponse) => void +} + export const buildBlock = async ( head: Block, inherents: HexString[], extrinsics: HexString[], ump: Record, - onApplyExtrinsicError: (extrinsic: HexString, error: TransactionValidityError) => void, + callbacks?: BuildBlockCallbacks, + unsafeBlockHeight?: number, ): Promise<[Block, HexString[]]> => { const registry = await head.registry - const header = await newHeader(head) + const header = await newHeader(head, unsafeBlockHeight) + const newBlockNumber = header.number.toNumber() logger.info( { - number: head.number + 1, + number: newBlockNumber, extrinsicsCount: extrinsics.length, umpCount: Object.keys(ump).length, }, - `Try building block #${(head.number + 1).toLocaleString()}`, + `Try building block #${newBlockNumber.toLocaleString()}`, ) let layer: StorageLayer | undefined @@ -289,15 +305,16 @@ export const buildBlock = async ( // apply extrinsics for (const extrinsic of extrinsics) { try { - const { result, storageDiff } = await newBlock.call('BlockBuilder_apply_extrinsic', [extrinsic]) - const outcome = registry.createType('ApplyExtrinsicResult', result) + const resp = await newBlock.call('BlockBuilder_apply_extrinsic', [extrinsic]) + const outcome = registry.createType('ApplyExtrinsicResult', resp.result) if (outcome.isErr) { - onApplyExtrinsicError(extrinsic, outcome.asErr) + callbacks?.onApplyExtrinsicError?.(extrinsic, outcome.asErr) continue } - newBlock.pushStorageLayer().setAll(storageDiff) - logger.trace(truncate(storageDiff), 'Applied extrinsic') + newBlock.pushStorageLayer().setAll(resp.storageDiff) includedExtrinsic.push(extrinsic) + + callbacks?.onPhaseApplied?.(includedExtrinsic.length - 1, resp) } catch (e) { logger.info('Failed to apply extrinsic %o %s', e, e) pendingExtrinsics.push(extrinsic) @@ -306,10 +323,11 @@ export const buildBlock = async ( { // finalize block - const { storageDiff } = await newBlock.call('BlockBuilder_finalize_block', []) + const resp = await newBlock.call('BlockBuilder_finalize_block', []) + + newBlock.pushStorageLayer().setAll(resp.storageDiff) - newBlock.pushStorageLayer().setAll(storageDiff) - logger.trace(truncate(storageDiff), 'Finalize block') + callbacks?.onPhaseApplied?.('finalize', resp) } const blockData = registry.createType('Block', { @@ -318,10 +336,14 @@ export const buildBlock = async ( }) const storageDiff = await newBlock.storageDiff() - logger.trace( - Object.entries(storageDiff).map(([key, value]) => [key, truncate(value)]), - 'Final block', - ) + + if (logger.level.toLowerCase() === 'trace') { + logger.trace( + Object.entries(storageDiff).map(([key, value]) => [key, truncate(value)]), + 'Final block', + ) + } + const finalBlock = new Block(head.chain, newBlock.number, blockData.hash.toHex(), head, { header, extrinsics: [...inherents, ...includedExtrinsic], diff --git a/packages/core/src/blockchain/block.ts b/packages/core/src/blockchain/block.ts index 22df6b6b..d45915b0 100644 --- a/packages/core/src/blockchain/block.ts +++ b/packages/core/src/blockchain/block.ts @@ -1,31 +1,44 @@ -import { ChainProperties, Header } from '@polkadot/types/interfaces' import { DecoratedMeta } from '@polkadot/types/metadata/decorate/types' +import { Header } from '@polkadot/types/interfaces' import { Metadata, TypeRegistry } from '@polkadot/types' +import { StorageEntry } from '@polkadot/types/primitive/types' import { expandMetadata } from '@polkadot/types/metadata' -import { getSpecExtensions, getSpecHasher, getSpecTypes } from '@polkadot/types-known/util' -import { hexToU8a, objectSpread, stringToHex } from '@polkadot/util' -import type { ExtDef } from '@polkadot/types/extrinsic/signedExtensions/types' +import { hexToU8a, stringToHex } from '@polkadot/util' import type { HexString } from '@polkadot/util/types' -import { Blockchain } from '.' -import { RemoteStorageLayer, StorageLayer, StorageLayerProvider, StorageValue, StorageValueKind } from './storage-layer' -import { compactHex } from '../utils' -import { defaultLogger } from '../logger' -import { getRuntimeVersion, runTask, taskHandler } from '../executor' -import type { RuntimeVersion } from '../executor' - -export type TaskCallResponse = { - result: HexString - storageDiff: [HexString, HexString | null][] - offchainStorageDiff: [HexString, HexString | null][] - runtimeLogs: string[] -} - +import { Blockchain } from './index.js' +import { + RemoteStorageLayer, + StorageLayer, + StorageLayerProvider, + StorageValue, + StorageValueKind, +} from './storage-layer.js' +import { compactHex } from '../utils/index.js' +import { getRuntimeVersion, runTask, taskHandler } from '../wasm-executor/index.js' +import type { RuntimeVersion, TaskCallResponse } from '../wasm-executor/index.js' + +/** + * Block class. + * + * @example Instantiate a block + * + * ```ts + * const block = new Block(chain, number, hash) + * ``` + * + * @example Get storage + * + * ```ts + * const block = await chain.getBlock('0x...') + * block.storage() + * ``` + */ export class Block { #chain: Blockchain #header?: Header | Promise
- #parentBlock?: Block | Promise + #parentBlock?: WeakRef | Promise #extrinsics?: HexString[] | Promise #wasm?: Promise @@ -43,28 +56,38 @@ export class Block { public readonly hash: HexString, parentBlock?: Block, block?: { + /** See `@polkadot/types/interfaces` Header */ header: Header + /** Extrinsics */ extrinsics: HexString[] + /** Storage provider. Default to {@link RemoteStorageLayer} with {@link Blockchain.api chain.api} as remote. */ storage?: StorageLayerProvider + /** Storage diff to apply. */ storageDiff?: Record }, ) { this.#chain = chain - this.#parentBlock = parentBlock + this.#parentBlock = parentBlock ? new WeakRef(parentBlock) : undefined this.#header = block?.header this.#extrinsics = block?.extrinsics this.#baseStorage = block?.storage ?? new RemoteStorageLayer(chain.api, hash, chain.db) this.#storages = [] + this.#runtimeVersion = parentBlock?.runtimeVersion + this.#metadata = parentBlock?.metadata + this.#registry = parentBlock?.registry + this.#meta = parentBlock?.meta + const storageDiff = block?.storageDiff if (storageDiff) { - // if code doesn't change then reuse parent block's meta - if (!storageDiff?.[stringToHex(':code')]) { - this.#runtimeVersion = parentBlock?.runtimeVersion - this.#metadata = parentBlock?.metadata - this.#registry = parentBlock?.registry - this.#meta = parentBlock?.meta + // if code doesn't change then keep parent block's meta + // otherwise reset meta + if (storageDiff[stringToHex(':code')]) { + this.#runtimeVersion = undefined + this.#metadata = undefined + this.#registry = undefined + this.#meta = undefined } this.pushStorageLayer().setAll(storageDiff) @@ -96,51 +119,92 @@ export class Block { return this.#extrinsics } - get parentBlock(): undefined | Block | Promise { + get parentBlock(): Promise { if (this.number === 0) { - return undefined + return Promise.resolve(undefined) } - if (!this.#parentBlock) { - this.#parentBlock = Promise.resolve(this.header).then((h) => this.#chain.getBlock(h.parentHash.toHex())) + + const getBlock = async (header: Header | Promise
) => { + const _header = await header + const block = await this.#chain.getBlock(_header.parentHash.toHex()) + if (block) this.#parentBlock = new WeakRef(block) + return block + } + + if (this.#parentBlock instanceof WeakRef) { + const block = this.#parentBlock.deref() + if (block) return Promise.resolve(block) + this.#parentBlock = getBlock(this.header) + } else if (!this.#parentBlock) { + this.#parentBlock = getBlock(this.header) } return this.#parentBlock } + /** + * Get the block storage. + */ get storage(): StorageLayerProvider { return this.#storages[this.#storages.length - 1] ?? this.#baseStorage } - async get(key: string): Promise { + /** + * Get the block storage by key. + */ + async get(key: string): Promise { const val = await this.storage.get(key, true) switch (val) { case StorageValueKind.Deleted: return undefined default: - return val + return val as HexString + } + } + + async read(type: T, query: StorageEntry, ...args: any[]) { + const key = compactHex(query(...args)) + const value = await this.get(key) + if (!value) { + return undefined } + + const registry = await this.registry + return registry.createType(type, hexToU8a(value)) } + /** + * Get paged storage keys. + */ async getKeysPaged(options: { prefix?: string; startKey?: string; pageSize: number }): Promise { const layer = new StorageLayer(this.storage) await layer.fold() const prefix = options.prefix ?? '0x' - const startKey = options.startKey ?? prefix + const startKey = options.startKey ?? '0x' const pageSize = options.pageSize return layer.getKeysPaged(prefix, pageSize, startKey) } + /** + * Push a layer to the storage stack. + */ pushStorageLayer(): StorageLayer { const layer = new StorageLayer(this.storage) this.#storages.push(layer) return layer } + /** + * Pop a layer from the storage stack. + */ popStorageLayer(): void { this.#storages.pop() } + /** + * Get storage diff. + */ async storageDiff(): Promise> { const storage = {} @@ -151,6 +215,9 @@ export class Block { return storage } + /** + * Get the wasm string. + */ get wasm() { if (!this.#wasm) { this.#wasm = (async (): Promise => { @@ -166,6 +233,9 @@ export class Block { return this.#wasm } + /** + * Set the runtime wasm. + */ setWasm(wasm: HexString): void { const wasmKey = stringToHex(':code') this.pushStorageLayer().set(wasmKey, wasm) @@ -176,30 +246,15 @@ export class Block { this.#metadata = undefined } + /** + * Get the type registry. + * @see https://polkadot.js.org/docs/api/start/types.create#why-create-types + */ get registry(): Promise { if (!this.#registry) { - this.#registry = Promise.all([ - this.metadata, - this.#chain.api.chainProperties, - this.#chain.api.chain, - this.runtimeVersion, - ]).then(([data, properties, chain, version]) => { - const registry = new TypeRegistry(this.hash) - registry.setKnownTypes(this.chain.registeredTypes) - registry.setChainProperties(registry.createType('ChainProperties', properties) as ChainProperties) - registry.register(getSpecTypes(registry, chain, version.specName, version.specVersion)) - registry.setHasher(getSpecHasher(registry, chain, version.specName)) - registry.setMetadata( - new Metadata(registry, data), - undefined, - objectSpread( - {}, - getSpecExtensions(registry, chain, version.specName), - this.#chain.api.signedExtensions, - ), - ) - return registry - }) + this.#registry = Promise.all([this.metadata, this.runtimeVersion]).then(([data, version]) => + this.#chain.buildRegistry(data, version), + ) } return this.#registry } @@ -228,6 +283,9 @@ export class Block { return this.#meta } + /** + * Call a runtime method. + */ async call(method: string, args: HexString[]): Promise { const wasm = await this.wasm const response = await runTask( @@ -240,11 +298,7 @@ export class Block { }, taskHandler(this), ) - if (response.Call) { - for (const log of response.Call.runtimeLogs) { - defaultLogger.info(`RuntimeLogs:\n${log}`) - } - + if ('Call' in response) { if (this.chain.offchainWorker) { // apply offchain storage for (const [key, value] of response.Call.offchainStorageDiff) { diff --git a/packages/core/src/blockchain/head-state.ts b/packages/core/src/blockchain/head-state.ts index a1815adf..815f4c4c 100644 --- a/packages/core/src/blockchain/head-state.ts +++ b/packages/core/src/blockchain/head-state.ts @@ -1,10 +1,9 @@ import { stringToHex } from '@polkadot/util' -import _ from 'lodash' -import { Block } from './block' -import { defaultLogger } from '../logger' +import { Block } from './block.js' +import { defaultLogger } from '../logger.js' -type Callback = (block: Block, pairs: [string, string][]) => void | Promise +type Callback = (block: Block, pairs: [string, string | null][]) => void | Promise export const randomId = () => Math.random().toString(36).substring(2) @@ -13,7 +12,7 @@ const logger = defaultLogger.child({ name: 'head-state' }) export class HeadState { #headListeners: Record void | Promise> = {} #storageListeners: Record = {} - #oldValues: Record = {} + #oldValues: Record = {} #head: Block @@ -36,7 +35,7 @@ export class HeadState { this.#storageListeners[id] = [keys, cb] for (const key of keys) { - this.#oldValues[key] = await this.#head.get(key) + this.#oldValues[key] = await this.#head.get(key).then((val) => val || null) } return id @@ -50,7 +49,7 @@ export class HeadState { const id = randomId() const codeKey = stringToHex(':code') this.#storageListeners[id] = [[codeKey], cb] - this.#oldValues[codeKey] = await this.#head.get(codeKey) + this.#oldValues[codeKey] = await this.#head.get(codeKey).then((val) => val || null) return id } @@ -72,7 +71,7 @@ export class HeadState { const diff = await this.#head.storageDiff() for (const [keys, cb] of Object.values(this.#storageListeners)) { - const changed = keys.filter((key) => diff[key]).map((key) => [key, diff[key]] as [string, string]) + const changed = keys.filter((key) => diff[key]).map((key) => [key, diff[key]] as [string, string | null]) if (changed.length > 0) { try { await cb(head, changed) diff --git a/packages/core/src/blockchain/index.ts b/packages/core/src/blockchain/index.ts index 1dfa4b7b..6261ac72 100644 --- a/packages/core/src/blockchain/index.ts +++ b/packages/core/src/blockchain/index.ts @@ -1,46 +1,89 @@ -import { ApplyExtrinsicResult } from '@polkadot/types/interfaces' -import { DataSource } from 'typeorm' +import { ApplyExtrinsicResult, ChainProperties, Header } from '@polkadot/types/interfaces' import { HexString } from '@polkadot/util/types' +import { Metadata, TypeRegistry } from '@polkadot/types' import { RegisteredTypes } from '@polkadot/types/types' -import { blake2AsHex } from '@polkadot/util-crypto' -import { u8aConcat, u8aToHex } from '@polkadot/util' +import { blake2AsHex, xxhashAsHex } from '@polkadot/util-crypto' +import { getSpecExtensions, getSpecHasher, getSpecTypes } from '@polkadot/types-known/util' +import { objectSpread, u8aConcat, u8aToHex } from '@polkadot/util' +import _ from 'lodash' +import type { ExtDef } from '@polkadot/types/extrinsic/signedExtensions/types' import type { TransactionValidity } from '@polkadot/types/interfaces/txqueue' -import { Api } from '../api' -import { Block } from './block' -import { BlockEntity } from '../db/entities' -import { BuildBlockMode, BuildBlockParams, DownwardMessage, HorizontalMessage, TxPool } from './txpool' -import { HeadState } from './head-state' -import { InherentProvider } from './inherent' -import { OffchainWorker } from '../offchain' -import { StorageValue } from './storage-layer' -import { compactHex } from '../utils' -import { defaultLogger } from '../logger' -import { dryRunExtrinsic, dryRunInherents } from './block-builder' +import { Api } from '../api.js' +import { Block } from './block.js' +import { BuildBlockMode, BuildBlockParams, DownwardMessage, HorizontalMessage, TxPool } from './txpool.js' +import { Database } from '../database.js' +import { HeadState } from './head-state.js' +import { InherentProvider } from './inherent/index.js' +import { OffchainWorker } from '../offchain.js' +import { RuntimeVersion, releaseWorker } from '../wasm-executor/index.js' +import { StorageValue } from './storage-layer.js' +import { compactHex } from '../utils/index.js' +import { defaultLogger } from '../logger.js' +import { dryRunExtrinsic, dryRunInherents } from './block-builder.js' const logger = defaultLogger.child({ name: 'blockchain' }) export interface Options { + /** API instance, for getting on-chain data. */ api: Api + /** Build block mode. Default to Batch. */ buildBlockMode?: BuildBlockMode + /** Inherent provider, for creating inherents. */ inherentProvider: InherentProvider - db?: DataSource + /** Datasource for caching storage and blocks data. */ + db?: Database + /** Used to create the initial head. */ header: { number: number; hash: HexString } + /** Whether to enable mock signature. Any signature starts with 0xdeadbeef and filled by 0xcd is considered valid */ mockSignatureHost?: boolean + /** Whether to allow wasm unresolved imports. */ allowUnresolvedImports?: boolean + /** Wasm runtime log level. */ runtimeLogLevel?: number + /** Polkadot.js custom types registration. */ registeredTypes: RegisteredTypes + /** Whether to enable offchain Worker. */ offchainWorker?: boolean + /** Max memory block count */ maxMemoryBlockCount?: number } +/** + * Local blockchain which provides access to blocks, txpool and methods + * to manipulate the chain such as build blocks, submit extrinsics, xcm and more! + * + * @example + * + * ```ts + * const chain = new Blockchain({ + * api, + * buildBlockMode: BuildBlockMode.Manual, + * inherentProvider: inherents, + * header: { + * hash: blockHash, + * number: Number(header.number), + * }, + * mockSignatureHost: true, + * allowUnresolvedImports: true, + * registeredTypes: {}, + * }) + * // build a block + * chain.newBlock() + * ``` + */ export class Blockchain { readonly uid: string = Math.random().toString(36).substring(2) + /** API instance, for getting on-chain data. */ readonly api: Api - readonly db: DataSource | undefined + /** Datasource for caching storage and blocks data. */ + readonly db: Database | undefined + /** Enable mock signature. Any signature starts with 0xdeadbeef and filled by 0xcd is considered valid */ readonly mockSignatureHost: boolean + /** Allow wasm unresolved imports. */ readonly allowUnresolvedImports: boolean - readonly runtimeLogLevel: number + #runtimeLogLevel: number + /** Polkadot.js custom types registration. */ readonly registeredTypes: RegisteredTypes readonly #txpool: TxPool @@ -48,14 +91,39 @@ export class Blockchain { #head: Block readonly #blocksByNumber: Map = new Map() - readonly #blocksByHash: Record = {} + readonly #blocksByHash: Map = new Map() readonly #loadingBlocks: Record> = {} + /** For subscribing and managing the head state. */ readonly headState: HeadState readonly offchainWorker: OffchainWorker | undefined readonly #maxMemoryBlockCount: number + // first arg is used as cache key + readonly #registryBuilder = _.memoize( + async (_cacheKey: string, metadata: HexString, version: RuntimeVersion): Promise => { + const chain = await this.api.chain + const properties = await this.api.chainProperties + + const registry = new TypeRegistry() + registry.setKnownTypes(this.registeredTypes) + registry.setChainProperties(registry.createType('ChainProperties', properties) as ChainProperties) + registry.register(getSpecTypes(registry, chain, version.specName, version.specVersion)) + registry.setHasher(getSpecHasher(registry, chain, version.specName)) + registry.setMetadata( + new Metadata(registry, metadata), + undefined, + objectSpread({}, getSpecExtensions(registry, chain, version.specName), this.api.signedExtensions), + true, + ) + return registry + }, + ) + + /** + * @param options - Options for instantiating the blockchain + */ constructor({ api, buildBlockMode, @@ -67,13 +135,13 @@ export class Blockchain { runtimeLogLevel = 0, registeredTypes = {}, offchainWorker = false, - maxMemoryBlockCount = 2000, + maxMemoryBlockCount = 500, }: Options) { this.api = api this.db = db this.mockSignatureHost = mockSignatureHost this.allowUnresolvedImports = allowUnresolvedImports - this.runtimeLogLevel = runtimeLogLevel + this.#runtimeLogLevel = runtimeLogLevel this.registeredTypes = registeredTypes this.#head = new Block(this, header.number, header.hash) @@ -94,11 +162,12 @@ export class Blockchain { #registerBlock(block: Block) { // if exceed max memory block count, delete the oldest block if (this.#blocksByNumber.size === this.#maxMemoryBlockCount) { - const firstKey = this.#blocksByNumber.keys().next().value - this.#blocksByNumber.delete(firstKey) + const { hash, number }: Block = this.#blocksByNumber.values().next().value + this.#blocksByNumber.delete(number) + this.#blocksByHash.delete(hash) } this.#blocksByNumber.set(block.number, block) - this.#blocksByHash[block.hash] = block + this.#blocksByHash.set(block.hash, block) } get head(): Block { @@ -109,41 +178,60 @@ export class Blockchain { return this.#txpool } + get runtimeLogLevel(): number { + return this.#runtimeLogLevel + } + + set runtimeLogLevel(level: number) { + this.#runtimeLogLevel = level + logger.debug(`Runtime log level set to ${logger.level}`) + } + + async buildRegistry(metadata: HexString, version: RuntimeVersion) { + const cacheKey = `${xxhashAsHex(metadata, 256)}-${version.specVersion}` + return this.#registryBuilder(cacheKey, metadata, version) + } + async saveBlockToDB(block: Block) { if (this.db) { const { hash, number, header, extrinsics } = block // delete old ones with the same block number if any, keep the latest one - await this.db.transaction(async (transactionalEntityManager) => { - await transactionalEntityManager.getRepository(BlockEntity).delete({ number }) - await transactionalEntityManager.getRepository(BlockEntity).upsert( - { - hash, - number, - header: await header, - extrinsics: await extrinsics, - parentHash: (await block.parentBlock)?.hash, - storageDiff: await block.storageDiff(), - }, - ['hash'], - ) + await this.db.saveBlock({ + hash, + number, + header: (await header).toHex(), + extrinsics: await extrinsics, + parentHash: (await block.parentBlock)?.hash || null, + storageDiff: await block.storageDiff(), }) } } /** - * Try to load block from db and register it - * If pass in number, get block by number, else get block by hash + * Try to load block from db and register it. + * If pass in number, get block by number, else get block by hash. */ - async loadBlockFromDB(key: number | HexString): Promise { + async loadBlockFromDB(hashOrNumber: number | HexString): Promise { if (this.db) { - const blockData = await this.db - .getRepository(BlockEntity) - .findOne({ where: { [typeof key === 'number' ? 'number' : 'hash']: key } }) + const blockData = + typeof hashOrNumber === 'number' + ? await this.db.queryBlockByNumber(hashOrNumber) + : await this.db.queryBlock(hashOrNumber) if (blockData) { - const { hash, number, header, extrinsics, parentHash } = blockData - const parentBlock = parentHash ? this.#blocksByHash[parentHash] : undefined + const { hash, number, header, extrinsics } = blockData + const parentHash = blockData.parentHash || undefined + let parentBlock = parentHash ? this.#blocksByHash.get(parentHash) : undefined + if (!parentBlock) { + parentBlock = await this.getBlock(parentHash) + } const storageDiff = blockData.storageDiff ?? undefined - const block = new Block(this, number, hash, parentBlock, { header, extrinsics, storageDiff }) + const registry = await this.head.registry + const block = new Block(this, number, hash, parentBlock, { + header: registry.createType
('Header', header), + extrinsics, + storage: parentBlock?.storage, + storageDiff, + }) this.#registerBlock(block) return block } @@ -151,8 +239,11 @@ export class Blockchain { return undefined } - async getBlockAt(number?: number): Promise { - if (number === undefined) { + /** + * Get block by number. + */ + async getBlockAt(number?: number | null): Promise { + if (number === null || number === undefined) { return this.head } if (number > this.#head.number) { @@ -173,12 +264,15 @@ export class Blockchain { return this.#blocksByNumber.get(number) } + /** + * Get block by hash. + */ async getBlock(hash?: HexString): Promise { await this.api.isReady if (hash == null) { hash = this.head.hash } - if (!this.#blocksByHash[hash]) { + if (!this.#blocksByHash.has(hash)) { const loadingBlock = this.#loadingBlocks[hash] if (loadingBlock) { await loadingBlock @@ -203,13 +297,19 @@ export class Blockchain { delete this.#loadingBlocks[hash] } } - return this.#blocksByHash[hash] + return this.#blocksByHash.get(hash) } + /** + * Get all blocks in memory. + */ blocksInMemory(): Block[] { return Array.from(this.#blocksByNumber.values()) } + /** + * Remove block from memory and db. + */ async unregisterBlock(block: Block) { if (block.hash === this.head.hash) { throw new Error('Cannot unregister head block') @@ -217,10 +317,10 @@ export class Blockchain { if (this.#blocksByNumber.get(block.number)?.hash === block.hash) { this.#blocksByNumber.delete(block.number) } - delete this.#blocksByHash[block.hash] + this.#blocksByHash.delete(block.hash) // delete from db if (this.db) { - await this.db.getRepository(BlockEntity).delete({ hash: block.hash }) + await this.db.deleteBlock(block.hash) } } @@ -229,6 +329,9 @@ export class Blockchain { await this.saveBlockToDB(block) } + /** + * Set block as head. + */ async setHead(block: Block): Promise { logger.debug( { @@ -246,6 +349,9 @@ export class Blockchain { } } + /** + * Submit extrinsic to txpool. + */ async submitExtrinsic(extrinsic: HexString): Promise { const validity = await this.validateExtrinsic(extrinsic) if (validity.isOk) { @@ -255,6 +361,9 @@ export class Blockchain { throw validity.asErr } + /** + * Validate extrinsic by calling `TaggedTransactionQueue_validate_transaction`. + */ async validateExtrinsic( extrinsic: HexString, source: '0x00' | '0x01' | '0x02' = '0x02' /** External */, @@ -283,20 +392,32 @@ export class Blockchain { logger.debug({ id, hrmp }, 'submitHorizontalMessages') } + /** + * Build a new block with optional params. Use this when you don't have all the {@link BuildBlockParams} + */ async newBlock(params?: Partial): Promise { await this.#txpool.buildBlock(params) return this.#head } + /** + * Build a new block with {@link BuildBlockParams}. + */ async newBlockWithParams(params: BuildBlockParams): Promise { await this.#txpool.buildBlockWithParams(params) return this.#head } + /** + * Get the upcoming blocks. + */ async upcomingBlocks() { return this.#txpool.upcomingBlocks() } + /** + * Dry run extrinsic in block `at`. + */ async dryRunExtrinsic( extrinsic: HexString | { call: HexString; address: string }, at?: HexString, @@ -318,6 +439,10 @@ export class Blockchain { return { outcome, storageDiff } } + /** + * Dry run hrmp messages in block `at`. + * Return the storage diff. + */ async dryRunHrmp( hrmp: Record, at?: HexString, @@ -335,6 +460,11 @@ export class Blockchain { }) return dryRunInherents(head, inherents) } + + /** + * Dry run dmp messages in block `at`. + * Return the storage diff. + */ async dryRunDmp(dmp: DownwardMessage[], at?: HexString): Promise<[HexString, HexString | null][]> { await this.api.isReady const head = at ? await this.getBlock(at) : this.head @@ -349,6 +479,11 @@ export class Blockchain { }) return dryRunInherents(head, inherents) } + + /** + * Dry run ump messages in block `at`. + * Return the storage diff. + */ async dryRunUmp(ump: Record, at?: HexString): Promise<[HexString, HexString | null][]> { await this.api.isReady const head = at ? await this.getBlock(at) : this.head @@ -386,6 +521,9 @@ export class Blockchain { return dryRunInherents(head, inherents) } + /** + * Get inherents of head. + */ async getInherents(): Promise { await this.api.isReady const inherents = await this.#inherentProvider.createInherents(this.head, { @@ -397,7 +535,12 @@ export class Blockchain { return inherents } + /** + * Close the db and release worker. + */ async close() { - await this.db?.destroy() + await releaseWorker() + await this.api.disconnect() + await this.db?.close() } } diff --git a/packages/core/src/blockchain/inherent/index.ts b/packages/core/src/blockchain/inherent/index.ts index 1cc01117..6bc6856c 100644 --- a/packages/core/src/blockchain/inherent/index.ts +++ b/packages/core/src/blockchain/inherent/index.ts @@ -1,14 +1,13 @@ -import { Block } from '../block' -import { BuildBlockParams } from '../txpool' +import { Block } from '../block.js' +import { BuildBlockParams } from '../txpool.js' import { GenericExtrinsic } from '@polkadot/types' import { HexString } from '@polkadot/util/types' -import { getCurrentTimestamp, getSlotDuration } from '../../utils/time-travel' +import { getCurrentTimestamp, getSlotDuration } from '../../utils/time-travel.js' -export { SetValidationData } from './parachain/validation-data' -export { ParaInherentEnter } from './para-enter' -export { SetBabeRandomness } from './parachain/babe-randomness' -export { SetNimbusAuthorInherent } from './parachain/nimbus-author-inherent' -export { SetLatestAuthorData } from './parachain/latest-author' +export { SetValidationData } from './parachain/validation-data.js' +export { ParaInherentEnter } from './para-enter.js' +export { SetBabeRandomness } from './parachain/babe-randomness.js' +export { SetNimbusAuthorInherent } from './parachain/nimbus-author-inherent.js' export interface CreateInherents { createInherents(parent: Block, params: BuildBlockParams): Promise @@ -21,7 +20,7 @@ export class SetTimestamp implements InherentProvider { const meta = await parent.meta const slotDuration = await getSlotDuration(parent.chain) const currentTimestamp = await getCurrentTimestamp(parent.chain) - return [new GenericExtrinsic(meta.registry, meta.tx.timestamp.set(currentTimestamp + slotDuration)).toHex()] + return [new GenericExtrinsic(meta.registry, meta.tx.timestamp.set(currentTimestamp + BigInt(slotDuration))).toHex()] } } diff --git a/packages/core/src/blockchain/inherent/para-enter.ts b/packages/core/src/blockchain/inherent/para-enter.ts index a5cf1a4c..75345991 100644 --- a/packages/core/src/blockchain/inherent/para-enter.ts +++ b/packages/core/src/blockchain/inherent/para-enter.ts @@ -1,9 +1,9 @@ import { GenericExtrinsic } from '@polkadot/types' import { HexString } from '@polkadot/util/types' -import { Block } from '../block' -import { BuildBlockParams } from '../txpool' -import { CreateInherents } from '.' +import { Block } from '../block.js' +import { BuildBlockParams } from '../txpool.js' +import { CreateInherents } from './index.js' export class ParaInherentEnter implements CreateInherents { async createInherents(parent: Block, _params: BuildBlockParams): Promise { diff --git a/packages/core/src/blockchain/inherent/parachain/babe-randomness.ts b/packages/core/src/blockchain/inherent/parachain/babe-randomness.ts index 4e3c35d2..e883dc11 100644 --- a/packages/core/src/blockchain/inherent/parachain/babe-randomness.ts +++ b/packages/core/src/blockchain/inherent/parachain/babe-randomness.ts @@ -1,9 +1,9 @@ import { GenericExtrinsic } from '@polkadot/types' import { HexString } from '@polkadot/util/types' -import { Block } from '../../block' -import { BuildBlockParams } from '../../txpool' -import { CreateInherents } from '..' +import { Block } from '../../block.js' +import { BuildBlockParams } from '../../txpool.js' +import { CreateInherents } from '../index.js' // Support for Moonbeam pallet-randomness mandatory inherent export class SetBabeRandomness implements CreateInherents { diff --git a/packages/core/src/blockchain/inherent/parachain/latest-author.ts b/packages/core/src/blockchain/inherent/parachain/latest-author.ts index ddd21df0..a561b1c9 100644 --- a/packages/core/src/blockchain/inherent/parachain/latest-author.ts +++ b/packages/core/src/blockchain/inherent/parachain/latest-author.ts @@ -1,9 +1,9 @@ import { GenericExtrinsic } from '@polkadot/types' import { HexString } from '@polkadot/util/types' -import { Block } from '../../block' -import { BuildBlockParams } from '../../txpool' -import { CreateInherents } from '..' +import { Block } from '../../block.js' +import { BuildBlockParams } from '../../txpool.js' +import { CreateInherents } from '../index.js' export type LatestAuthorData = { relayStorageProof: { diff --git a/packages/core/src/blockchain/inherent/parachain/nimbus-author-inherent.ts b/packages/core/src/blockchain/inherent/parachain/nimbus-author-inherent.ts index d6684cb9..ff5d8e31 100644 --- a/packages/core/src/blockchain/inherent/parachain/nimbus-author-inherent.ts +++ b/packages/core/src/blockchain/inherent/parachain/nimbus-author-inherent.ts @@ -1,9 +1,9 @@ import { GenericExtrinsic } from '@polkadot/types' import { HexString } from '@polkadot/util/types' -import { Block } from '../../block' -import { BuildBlockParams } from '../../txpool' -import { CreateInherents } from '..' +import { Block } from '../../block.js' +import { BuildBlockParams } from '../../txpool.js' +import { CreateInherents } from '../index.js' // Support for Nimbus Author Inherent export class SetNimbusAuthorInherent implements CreateInherents { diff --git a/packages/core/src/blockchain/inherent/parachain/validation-data.ts b/packages/core/src/blockchain/inherent/parachain/validation-data.ts index 82810960..2e00f823 100644 --- a/packages/core/src/blockchain/inherent/parachain/validation-data.ts +++ b/packages/core/src/blockchain/inherent/parachain/validation-data.ts @@ -1,23 +1,24 @@ -import { AbridgedHrmpChannel, HrmpChannelId } from '@polkadot/types/interfaces' +import { AbridgedHrmpChannel, HrmpChannelId, Slot } from '@polkadot/types/interfaces' import { GenericExtrinsic } from '@polkadot/types' import { HexString } from '@polkadot/util/types' -import { hexToU8a, u8aConcat } from '@polkadot/util' +import { hexToU8a, u8aConcat, u8aToHex } from '@polkadot/util' import _ from 'lodash' -import { Block } from '../../block' -import { BuildBlockParams, DownwardMessage, HorizontalMessage } from '../../txpool' -import { CreateInherents } from '..' +import { Block } from '../../block.js' +import { BuildBlockParams, DownwardMessage, HorizontalMessage } from '../../txpool.js' +import { CreateInherents } from '../index.js' import { WELL_KNOWN_KEYS, dmqMqcHead, hrmpChannels, hrmpEgressChannelIndex, hrmpIngressChannelIndex, + paraHead, upgradeGoAheadSignal, -} from '../../../utils/proof' +} from '../../../utils/proof.js' import { blake2AsHex, blake2AsU8a } from '@polkadot/util-crypto' -import { compactHex, getParaId } from '../../../utils' -import { createProof, decodeProof } from '../../../executor' +import { compactHex, getParaId } from '../../../utils/index.js' +import { createProof, decodeProof } from '../../../wasm-executor/index.js' const MOCK_VALIDATION_DATA = { validationData: { @@ -101,11 +102,22 @@ export class SetValidationData implements CreateInherents { ) for (const key of Object.values(WELL_KNOWN_KEYS)) { - newEntries.push([key, decoded[key]]) + if (key === WELL_KNOWN_KEYS.CURRENT_SLOT) { + // increment current slot + const currentSlot = meta.registry.createType('Slot', hexToU8a(decoded[key])).toNumber() + const newSlot = meta.registry.createType('Slot', currentSlot + 2) + newEntries.push([key, u8aToHex(newSlot.toU8a())]) + } else { + newEntries.push([key, decoded[key]]) + } } newEntries.push([hrmpIngressChannelIndexKey, decoded[hrmpIngressChannelIndexKey]]) newEntries.push([hrmpEgressChannelIndexKey, decoded[hrmpEgressChannelIndexKey]]) + // inject paraHead + const headData = meta.registry.createType('HeadData', (await parent.header).toHex()) + newEntries.push([paraHead(paraId), u8aToHex(headData.toU8a())]) + // inject downward messages let dmqMqcHeadHash = decoded[dmqMqcHeadKey] if (dmqMqcHeadHash) { @@ -165,7 +177,10 @@ export class SetValidationData implements CreateInherents { .toJSON() const paraMessages: HorizontalMessage[] = [] - for (const { data, sentAt } of messages) { + for (const { data, sentAt: _unused } of messages) { + // fake relaychain sentAt to make validationData think this msg was sent at previous block + const sentAt = extrinsic.validationData.relayParentNumber + 1 + // calculate new hash const bytes = meta.registry.createType('Bytes', data) abridgedHrmp.mqcHead = blake2AsHex( diff --git a/packages/core/src/blockchain/storage-layer.ts b/packages/core/src/blockchain/storage-layer.ts index 7a7b28f2..3d1848ed 100644 --- a/packages/core/src/blockchain/storage-layer.ts +++ b/packages/core/src/blockchain/storage-layer.ts @@ -1,10 +1,10 @@ -import { DataSource } from 'typeorm' +import { HexString } from '@polkadot/util/types' import _ from 'lodash' -import { Api } from '../api' -import { KeyValuePair } from '../db/entities' -import { defaultLogger } from '../logger' -import KeyCache from '../utils/key-cache' +import { Api } from '../api.js' +import { Database } from '../database.js' +import { defaultLogger } from '../logger.js' +import KeyCache, { PREFIX_LENGTH } from '../utils/key-cache.js' const logger = defaultLogger.child({ name: 'layer' }) @@ -18,36 +18,46 @@ export const enum StorageValueKind { export type StorageValue = string | StorageValueKind | undefined export interface StorageLayerProvider { + /** + * Get the value of a storage key. + */ get(key: string, cache: boolean): Promise + /** + * Fold the storage layer into another layer. + */ foldInto(into: StorageLayer): Promise + /** + * Fold the storage layer into the parent if it exists. + */ fold(): Promise - + /** + * Get paged storage keys. + */ getKeysPaged(prefix: string, pageSize: number, startKey: string): Promise } export class RemoteStorageLayer implements StorageLayerProvider { readonly #api: Api readonly #at: string - readonly #db: DataSource | undefined + readonly #db: Database | undefined readonly #keyCache = new KeyCache() - constructor(api: Api, at: string, db: DataSource | undefined) { + constructor(api: Api, at: string, db: Database | undefined) { this.#api = api this.#at = at this.#db = db } - async get(key: string): Promise { - const keyValuePair = this.#db?.getRepository(KeyValuePair) + async get(key: string, _cache: boolean): Promise { if (this.#db) { - const res = await keyValuePair?.findOne({ where: { key, blockHash: this.#at } }) + const res = await this.#db.queryStorage(this.#at as HexString, key as HexString) if (res) { return res.value ?? undefined } } logger.trace({ at: this.#at, key }, 'RemoteStorageLayer get') const data = await this.#api.getStorage(key, this.#at) - keyValuePair?.upsert({ key, blockHash: this.#at, value: data }, ['key', 'blockHash']) + this.#db?.saveStorage(this.#at as HexString, key as HexString, data) return data ?? undefined } @@ -60,7 +70,7 @@ export class RemoteStorageLayer implements StorageLayerProvider { if (pageSize > BATCH_SIZE) throw new Error(`pageSize must be less or equal to ${BATCH_SIZE}`) logger.trace({ at: this.#at, prefix, pageSize, startKey }, 'RemoteStorageLayer getKeysPaged') // can't handle keyCache without prefix - if (prefix.length < 66) { + if (prefix.length < PREFIX_LENGTH || startKey.length < PREFIX_LENGTH) { return this.#api.getKeysPaged(prefix, pageSize, startKey, this.#at) } @@ -97,7 +107,7 @@ export class RemoteStorageLayer implements StorageLayerProvider { } export class StorageLayer implements StorageLayerProvider { - readonly #store: Record> = {} + readonly #store: Map> = new Map() readonly #keys: string[] = [] readonly #deletedPrefix: string[] = [] #parent?: StorageLayerProvider @@ -124,18 +134,18 @@ export class StorageLayer implements StorageLayerProvider { } async get(key: string, cache: boolean): Promise { - if (key in this.#store) { - return this.#store[key] + if (this.#store.has(key)) { + return this.#store.get(key) } - if (this.#deletedPrefix.some((prefix) => key.startsWith(prefix))) { + if (this.#deletedPrefix.some((dp) => key.startsWith(dp))) { return StorageValueKind.Deleted } if (this.#parent) { const val = this.#parent.get(key, false) if (cache) { - this.#store[key] = val + this.#store.set(key, val) } return val } @@ -146,24 +156,24 @@ export class StorageLayer implements StorageLayerProvider { set(key: string, value: StorageValue): void { switch (value) { case StorageValueKind.Deleted: - this.#store[key] = value + this.#store.set(key, StorageValueKind.Deleted) this.#removeKey(key) break case StorageValueKind.DeletedPrefix: this.#deletedPrefix.push(key) for (const k of this.#keys) { if (k.startsWith(key)) { - this.#store[k] = StorageValueKind.Deleted + this.#store.set(k, StorageValueKind.Deleted) this.#removeKey(k) } } break case undefined: - delete this.#store[key] + this.#store.delete(key) this.#removeKey(key) break default: - this.#store[key] = value + this.#store.set(key, value) this.#addKey(key) break } @@ -185,9 +195,8 @@ export class StorageLayer implements StorageLayerProvider { into.set(deletedPrefix, StorageValueKind.DeletedPrefix) } - for (const key of this.#keys) { - const value = await this.#store[key] - into.set(key, value) + for (const [key, value] of this.#store) { + into.set(key, await value) } return newParent @@ -200,10 +209,13 @@ export class StorageLayer implements StorageLayerProvider { } async getKeysPaged(prefix: string, pageSize: number, startKey: string): Promise { - if (!this.#deletedPrefix.some((prefix) => startKey.startsWith(prefix))) { + if (!this.#deletedPrefix.some((dp) => startKey.startsWith(dp))) { const remote = (await this.#parent?.getKeysPaged(prefix, pageSize, startKey)) ?? [] for (const key of remote) { - if (this.#deletedPrefix.some((prefix) => key.startsWith(prefix))) { + if (this.#store.get(key) === StorageValueKind.Deleted) { + continue + } + if (this.#deletedPrefix.some((dp) => key.startsWith(dp))) { continue } this.#addKey(key) @@ -226,8 +238,11 @@ export class StorageLayer implements StorageLayerProvider { return res } + /** + * Merge the storage layer into the given object, can be used to get sotrage diff. + */ async mergeInto(into: Record) { - for (const [key, maybeValue] of Object.entries(this.#store)) { + for (const [key, maybeValue] of this.#store) { const value = await maybeValue if (value === StorageValueKind.Deleted) { into[key] = null diff --git a/packages/core/src/blockchain/txpool.ts b/packages/core/src/blockchain/txpool.ts index d0bb3924..740c065c 100644 --- a/packages/core/src/blockchain/txpool.ts +++ b/packages/core/src/blockchain/txpool.ts @@ -3,20 +3,23 @@ import { GenericExtrinsic } from '@polkadot/types' import { HexString } from '@polkadot/util/types' import _ from 'lodash' -import { Blockchain } from '.' -import { Deferred, defer } from '../utils' -import { InherentProvider } from './inherent' -import { buildBlock } from './block-builder' -import { defaultLogger, truncate } from '../logger' +import { Blockchain } from './index.js' +import { Deferred, defer } from '../utils/index.js' +import { InherentProvider } from './inherent/index.js' +import { buildBlock } from './block-builder.js' +import { defaultLogger, truncate } from '../logger.js' const logger = defaultLogger.child({ name: 'txpool' }) export const APPLY_EXTRINSIC_ERROR = 'TxPool::ApplyExtrinsicError' export enum BuildBlockMode { - Batch, // one block per batch, default - Instant, // one block per tx - Manual, // only build when triggered + /** One block per batch (default) */ + Batch, + /** One block per tx */ + Instant, + /** Only build when triggered */ + Manual, } export interface DownwardMessage { @@ -34,6 +37,7 @@ export interface BuildBlockParams { upwardMessages: Record horizontalMessages: Record transactions: HexString[] + unsafeBlockHeight?: number } export class TxPool { @@ -171,6 +175,7 @@ export class TxPool { const upwardMessages = params?.upwardMessages || { ...this.#ump } const downwardMessages = params?.downwardMessages || this.#dmp.splice(0) const horizontalMessages = params?.horizontalMessages || { ...this.#hrmp } + const unsafeBlockHeight = params?.unsafeBlockHeight if (!params?.upwardMessages) { for (const id of Object.keys(this.#ump)) { delete this.#ump[id] @@ -186,6 +191,7 @@ export class TxPool { upwardMessages, downwardMessages, horizontalMessages, + unsafeBlockHeight, }) } @@ -228,9 +234,27 @@ export class TxPool { inherents, params.transactions, params.upwardMessages, - (extrinsic, error) => { - this.event.emit(APPLY_EXTRINSIC_ERROR, [extrinsic, error]) + { + onApplyExtrinsicError: (extrinsic, error) => { + this.event.emit(APPLY_EXTRINSIC_ERROR, [extrinsic, error]) + }, + onPhaseApplied: + logger.level.toLowerCase() === 'trace' + ? (phase, resp) => { + switch (phase) { + case 'initialize': + logger.trace(truncate(resp.storageDiff), 'Initialize block') + break + case 'finalize': + logger.trace(truncate(resp.storageDiff), 'Finalize block') + break + default: + logger.trace(truncate(resp.storageDiff), `Apply extrinsic ${phase}`) + } + } + : undefined, }, + params.unsafeBlockHeight, ) for (const extrinsic of pendingExtrinsics) { this.#pool.push({ extrinsic, signer: await this.#getSigner(extrinsic) }) diff --git a/packages/core/src/chopsticks-provider.ts b/packages/core/src/chopsticks-provider.ts new file mode 100644 index 00000000..4252cecf --- /dev/null +++ b/packages/core/src/chopsticks-provider.ts @@ -0,0 +1,193 @@ +import { EventEmitter } from 'eventemitter3' +import { + ProviderInterface, + ProviderInterfaceCallback, + ProviderInterfaceEmitCb, + ProviderInterfaceEmitted, +} from '@polkadot/rpc-provider/types' + +import { Blockchain } from './blockchain/index.js' +import { Context, Handlers, allHandlers } from './rpc/index.js' +import { Database } from './database.js' +import { defaultLogger } from './logger.js' +import { setup } from './setup.js' + +const providerHandlers: Handlers = { + ...allHandlers, + dev_newBlock: async (context: Context, _params: any, _subscriptionManager: any) => { + const block = await context.chain.newBlock() + return block.hash + }, +} + +const logger = defaultLogger.child({ name: '[Chopsticks provider]' }) + +interface SubscriptionHandler { + callback: ProviderInterfaceCallback + type: string +} + +interface Subscription extends SubscriptionHandler { + method: string + params?: unknown[] + onCancel?: () => void + result?: unknown +} + +/** + * Provider for local chopsticks chain + */ +export class ChopsticksProvider implements ProviderInterface { + #isConnected = false + #eventemitter = new EventEmitter() + #isReadyPromise: Promise + #subscriptions: Record = {} + + constructor(public readonly chain: Blockchain) { + this.#isReadyPromise = new Promise((resolve, reject): void => { + this.#eventemitter.once('connected', resolve) + this.#eventemitter.once('error', reject) + this.connect() + }) + } + + static fromEndpoint = async (endpoint: string, block?: number | string | null, db?: Database) => { + return new ChopsticksProvider( + await setup({ + endpoint, + mockSignatureHost: true, + block, + db, + }), + ) + } + + get hasSubscriptions(): boolean { + return true + } + + get isClonable(): boolean { + return true + } + + get isConnected(): boolean { + return this.#isConnected + } + + get isReady(): Promise { + return this.#isReadyPromise + } + + clone = () => { + return new ChopsticksProvider(this.chain) + } + + connect = async (): Promise => { + this.#isConnected = true + this.#eventemitter.emit('connected') + } + + disconnect = async (): Promise => { + this.#isConnected = false + this.#eventemitter.emit('disconnected') + } + + on = (type: ProviderInterfaceEmitted, sub: ProviderInterfaceEmitCb): (() => void) => { + this.#eventemitter.on(type, sub) + + return (): void => { + this.#eventemitter.removeListener(type, sub) + } + } + + subscriptionManager = { + subscribe: (method: string, subid: string, onCancel: () => void = () => {}) => { + const sub = this.#subscriptions[subid] + if (sub) { + sub.onCancel = onCancel + } + + return (data: any) => { + logger.debug('subscribe-callback', method, subid, data) + const sub = this.#subscriptions[subid] + if (sub) { + sub.callback(null, data) + } else { + logger.trace(`Unable to find active subscription=${subid}`) + } + } + }, + unsubscribe: (subid: string) => { + logger.debug('unsubscribe-callback', subid) + const sub = this.#subscriptions[subid] + if (sub) { + sub.onCancel?.() + delete this.#subscriptions[subid] + } else { + logger.trace(`Unable to find active subscription=${subid}`) + } + }, + } + + send = async ( + method: string, + params: unknown[], + _isCacheable?: boolean, + subscription?: SubscriptionHandler, + ): Promise => { + try { + logger.debug('send', { method, params }) + + const rpcHandler = providerHandlers[method] + if (!rpcHandler) { + logger.error(`Unable to find rpc handler=${method}`) + throw new Error(`Unable to find rpc handler=${method}`) + } + + if (subscription) { + logger.debug('subscribe', { method, params }) + const subid = await rpcHandler({ chain: this.chain }, params, this.subscriptionManager) + if (!subid) { + throw new Error(`Unable to subscribe=${method}`) + } + + this.#subscriptions[subid] = { + callback: subscription.callback, + method, + params, + type: subscription.type, + } + + return subid + } else { + logger.debug('call', { method, params }) + return rpcHandler({ chain: this.chain }, params, this.subscriptionManager) + } + } catch (e) { + logger.error('send error.', e) + throw e + } + } + + subscribe( + type: string, + method: string, + params: unknown[], + callback: ProviderInterfaceCallback, + ): Promise { + return this.send(method, params, false, { callback, type }) + } + + async unsubscribe(_type: string, method: string, id: number | string): Promise { + if (!this.#subscriptions[id]) { + logger.trace(`Unable to find active subscription=${id}`) + return false + } + + try { + return this.send(method, [id]) + } catch { + return false + } + } +} diff --git a/packages/core/src/database.ts b/packages/core/src/database.ts new file mode 100644 index 00000000..29b01c43 --- /dev/null +++ b/packages/core/src/database.ts @@ -0,0 +1,29 @@ +import { HexString } from '@polkadot/util/types' + +export interface BlockEntry { + hash: HexString + number: number + header: HexString + parentHash: HexString | null + extrinsics: HexString[] + storageDiff: Record | null +} + +export interface KeyValueEntry { + blockHash: string + key: string + value: string | null +} + +export declare class Database { + constructor(location: string) + close: () => Promise + saveBlock: (block: BlockEntry) => Promise + queryBlock: (hash: HexString) => Promise + queryBlockByNumber: (number: number) => Promise + queryHighestBlock: () => Promise + deleteBlock: (hash: HexString) => Promise + blocksCount: () => Promise + saveStorage: (blockHash: HexString, key: HexString, value: HexString | null) => Promise + queryStorage: (blockHash: HexString, key: HexString) => Promise +} diff --git a/packages/core/src/db/browser.ts b/packages/core/src/db/browser.ts deleted file mode 100644 index 6a629d50..00000000 --- a/packages/core/src/db/browser.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { DataSource } from 'typeorm' -import { createInstance } from 'localforage' -import initSqlJs from 'sql.js' - -import * as entities from './entities' -import { SQL_WASM_BYTES } from './sql-wasm' - -export const openDb = async (location: string): Promise => { - if (!globalThis.localforage) { - globalThis.localforage = createInstance({ name: 'chopsticks' }) - } - const source = new DataSource({ - type: 'sqljs', - location, - entities: Object.values(entities), - synchronize: true, - autoSave: true, - logging: false, - useLocalForage: true, - driver: initSqlJs, - sqlJsConfig: { - wasmBinary: SQL_WASM_BYTES, - }, - }) - - await source.initialize() - - return source -} diff --git a/packages/core/src/db/index.ts b/packages/core/src/db/index.ts deleted file mode 100644 index 320b4665..00000000 --- a/packages/core/src/db/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const openDb = async (dbPath: string) => { - if (typeof window === 'undefined') { - return (await import('./node')).openDb(dbPath) - } else { - return (await import('./browser')).openDb(dbPath) - } -} diff --git a/packages/core/src/db/sql-wasm.ts b/packages/core/src/db/sql-wasm.ts deleted file mode 100644 index cd4a79ab..00000000 --- a/packages/core/src/db/sql-wasm.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Auto-generated file, do not edit by hand -const LEN_IN = 310349 -const LEN_OUT = 613426 -const BYTES = - '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' - -import { base64Decode, unzlibSync } from '@polkadot/wasm-util' -export const SQL_WASM_BYTES = unzlibSync(base64Decode(BYTES, new Uint8Array(LEN_IN)), new Uint8Array(LEN_OUT)) diff --git a/packages/core/src/genesis-provider.ts b/packages/core/src/genesis-provider.ts index fb2acd75..519a17a3 100644 --- a/packages/core/src/genesis-provider.ts +++ b/packages/core/src/genesis-provider.ts @@ -1,31 +1,35 @@ -import { EventEmitter } from 'eventemitter3' import { HexString } from '@polkadot/util/types' import { ProviderInterface, ProviderInterfaceCallback, ProviderInterfaceEmitCb, ProviderInterfaceEmitted, - ProviderStats, } from '@polkadot/rpc-provider/types' -import axios from 'axios' - -import { Genesis, genesisSchema } from './schema' -import { JsCallback, calculateStateRoot, emptyTaskHandler } from './executor' -import { isUrl } from './utils' +import { EventEmitter } from 'eventemitter3' +import { Genesis, genesisSchema } from './schema/index.js' +import { JsCallback, calculateStateRoot, emptyTaskHandler } from './wasm-executor/index.js' +/** + * Provider to start a chain from genesis + */ export class GenesisProvider implements ProviderInterface { #isConnected = false - readonly stats?: ProviderStats - - #eventemitter: EventEmitter + #eventemitter = new EventEmitter() #isReadyPromise: Promise #genesis: Genesis #stateRoot: Promise + /** + * @ignore + * Create a genesis provider + * + * @param genesis - genesis file + * @requires genesis provider + */ constructor(genesis: Genesis) { - this.#genesis = genesis + this.#genesis = genesisSchema.parse(genesis) this.#stateRoot = calculateStateRoot( Object.entries(this.#genesis.genesis.raw.top).reduce( (accu, item) => { @@ -37,37 +41,20 @@ export class GenesisProvider implements ProviderInterface { 1, ) - this.#eventemitter = new EventEmitter() - this.#isReadyPromise = new Promise((resolve, reject): void => { this.#eventemitter.once('connected', (): void => { resolve() }) this.#eventemitter.once('error', reject) + this.connect() }) } - static fromUrl = async (url: string) => { - const getFile = async (url: string) => { - if (isUrl(url)) { - return axios.get(url).then((x) => x.data) - } else if (typeof process === 'object') { - const { lstatSync, readFileSync } = await import('node:fs') - if (lstatSync(url).isFile()) { - return JSON.parse(String(readFileSync(url))) - } - } - throw Error(`invalid genesis path or url ${url}`) - } - - return new GenesisProvider(genesisSchema.parse(await getFile(url))) - } - get isClonable(): boolean { return true } - clone = (): ProviderInterface => { + clone = (): GenesisProvider => { return new GenesisProvider(this.#genesis) } @@ -80,7 +67,6 @@ export class GenesisProvider implements ProviderInterface { } get isReady(): Promise { - this.connect() return this.#isReadyPromise } @@ -109,7 +95,7 @@ export class GenesisProvider implements ProviderInterface { getHeader = async () => { return { blockHash: this.blockHash, - number: 0, + number: '0x0' as HexString, stateRoot: await this.#stateRoot, digest: { logs: [], diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 14f3b3d5..3966a325 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,13 +1,28 @@ -export * from './api' -export * from './blockchain' -export * from './blockchain/block' -export * from './blockchain/block-builder' -export * from './blockchain/txpool' -export * from './blockchain/storage-layer' -export * from './utils' -export * from './executor' -export * from './schema' -export * from './xcm' -export * from './setup' -export * from './blockchain/inherent' -export * from './logger' +/** + * Chopsticks core package. A common package for usage in both server and browser. + * It contains a local blockchain implementation, a transaction pool, a runtime executor and more! + * + * @privateRemarks + * Above is the package description for `chopsticks-core` package. + * + * @packageDocumentation + */ +export * from './api.js' +export * from './blockchain/index.js' +export * from './blockchain/block.js' +export * from './blockchain/block-builder.js' +export * from './blockchain/txpool.js' +export * from './blockchain/storage-layer.js' +export * from './blockchain/head-state.js' +export * from './utils/index.js' +export * from './wasm-executor/index.js' +export * from './schema/index.js' +export * from './xcm/index.js' +export * from './setup.js' +export * from './database.js' +export * from './blockchain/inherent/index.js' +export * from './logger.js' +export * from './offchain.js' +export * from './chopsticks-provider.js' +export * from './genesis-provider.js' +export * from './rpc/index.js' diff --git a/packages/core/src/logger.ts b/packages/core/src/logger.ts index b531e4f6..b8a1f0c4 100644 --- a/packages/core/src/logger.ts +++ b/packages/core/src/logger.ts @@ -1,6 +1,6 @@ -import createLogger from 'pino' +import { pino } from 'pino' -export const defaultLogger = createLogger({ +export const defaultLogger = pino({ level: (typeof process === 'object' && process.env.LOG_LEVEL) || 'info', transport: { target: 'pino-pretty', diff --git a/packages/core/src/offchain.ts b/packages/core/src/offchain.ts index 65af3c2f..75a78f02 100644 --- a/packages/core/src/offchain.ts +++ b/packages/core/src/offchain.ts @@ -1,7 +1,7 @@ -import { Block } from './blockchain/block' +import { Block } from './blockchain/block.js' import { HexString } from '@polkadot/util/types' import { blake2AsHex } from '@polkadot/util-crypto' -import { defaultLogger } from './logger' +import { defaultLogger } from './logger.js' import { queueScheduler } from 'rxjs' const logger = defaultLogger.child({ name: 'offchain' }) diff --git a/packages/core/src/rpc/index.ts b/packages/core/src/rpc/index.ts new file mode 100644 index 00000000..72c57008 --- /dev/null +++ b/packages/core/src/rpc/index.ts @@ -0,0 +1,15 @@ +import { Handlers } from './shared.js' +import substrate from './substrate/index.js' + +export const allHandlers: Handlers = { + ...substrate, + rpc_methods: async () => + Promise.resolve({ + version: 1, + methods: [...Object.keys(allHandlers)], + }), +} + +export { default as substrate } from './substrate/index.js' +export { ResponseError } from './shared.js' +export type { Context, SubscriptionManager, Handler, Handlers } from './shared.js' diff --git a/packages/chopsticks/src/rpc/shared.ts b/packages/core/src/rpc/shared.ts similarity index 74% rename from packages/chopsticks/src/rpc/shared.ts rename to packages/core/src/rpc/shared.ts index 9be2666d..634e7a0e 100644 --- a/packages/chopsticks/src/rpc/shared.ts +++ b/packages/core/src/rpc/shared.ts @@ -1,5 +1,5 @@ -import { Blockchain } from '@tanssi/chopsticks-core' -import { defaultLogger } from '../logger' +import { Blockchain } from '../blockchain/index.js' +import { defaultLogger } from '../logger.js' export const logger = defaultLogger.child({ name: 'rpc' }) @@ -21,6 +21,9 @@ export class ResponseError extends Error { } export interface Context { + /** + * The blockchain instance + */ chain: Blockchain } @@ -29,9 +32,9 @@ export interface SubscriptionManager { unsubscribe: (subid: string) => void } -export type Handler = ( +export type Handler = ( context: Context, - params: any[], + params: TParams, subscriptionManager: SubscriptionManager, -) => Promise +) => Promise export type Handlers = Record diff --git a/packages/core/src/rpc/substrate/author.ts b/packages/core/src/rpc/substrate/author.ts new file mode 100644 index 00000000..a6242974 --- /dev/null +++ b/packages/core/src/rpc/substrate/author.ts @@ -0,0 +1,106 @@ +import { HexString } from '@polkadot/util/types' +import { TransactionValidityError } from '@polkadot/types/interfaces' + +import { APPLY_EXTRINSIC_ERROR } from '../../blockchain/txpool.js' +import { Block } from '../../blockchain/block.js' +import { Handler, ResponseError, SubscriptionManager } from '../shared.js' +import { defaultLogger } from '../../logger.js' + +const logger = defaultLogger.child({ name: 'rpc-author' }) + +/** + * @param context + * @param params - [`extrinsic`] + * + * @return Hash + */ +export const author_submitExtrinsic: Handler<[HexString], HexString> = async (context, [extrinsic]) => { + return context.chain.submitExtrinsic(extrinsic).catch((error: TransactionValidityError) => { + const code = error.isInvalid ? 1010 : 1011 + throw new ResponseError(code, error.toString()) + }) +} + +/** + * @param context + * @param params - [`extrinsic`] + * @param subscriptionManager + * + * @return subscription id + */ +export const author_submitAndWatchExtrinsic: Handler<[HexString], string> = async ( + context, + [extrinsic], + { subscribe, unsubscribe }: SubscriptionManager, +) => { + let update = (_block: Block) => {} + + const id = context.chain.headState.subscribeHead((block) => update(block)) + const callback = subscribe('author_extrinsicUpdate', id, () => context.chain.headState.unsubscribeHead(id)) + + const onExtrinsicFail = ([failedExtrinsic, error]: [string, TransactionValidityError]) => { + if (failedExtrinsic === extrinsic) { + callback(error.toJSON()) + done(id) + } + } + + context.chain.txPool.event.on(APPLY_EXTRINSIC_ERROR, onExtrinsicFail) + + const done = (id: string) => { + context.chain.txPool.event.removeListener(APPLY_EXTRINSIC_ERROR, onExtrinsicFail) + unsubscribe(id) + } + + update = async (block) => { + const extrisnics = await block.extrinsics + if (!extrisnics.includes(extrinsic)) return + + logger.debug({ block: block.hash }, 'author_extrinsicUpdate') + + callback({ + inBlock: block.hash, + }) + + // wait a bit for InBlock to be sent + await new Promise((r) => setTimeout(r, 100)) + + callback({ + finalized: block.hash, + }) + done(id) + } + + try { + await context.chain.submitExtrinsic(extrinsic) + // send callback after subscription id is returned + setTimeout(() => { + callback({ + ready: null, + }) + }, 50) + } catch (error) { + logger.error({ error }, 'ExtrinsicFailed') + const code = (error as TransactionValidityError).isInvalid ? 1010 : 1011 + done(id) + throw new ResponseError(code, (error as TransactionValidityError).toString()) + } + return id +} + +/** + * @param _context + * @param params - [`subid`] + */ +export const author_unwatchExtrinsic: Handler<[string], void> = async (_context, [subid], { unsubscribe }) => { + unsubscribe(subid) +} + +/** + * Get pending extrinsics + * + * @return Array of pending extrinsics + */ +export const author_pendingExtrinsics: Handler = async (context) => { + return context.chain.txPool.pendingExtrinsics +} diff --git a/packages/core/src/rpc/substrate/chain.ts b/packages/core/src/rpc/substrate/chain.ts new file mode 100644 index 00000000..4d418ac9 --- /dev/null +++ b/packages/core/src/rpc/substrate/chain.ts @@ -0,0 +1,112 @@ +import { Header } from '@polkadot/types/interfaces' +import { HexString } from '@polkadot/util/types' + +import { Handler, ResponseError } from '../shared.js' + +const processHeader = (header: Header) => { + const res = header.toJSON() as any + res.number = '0x' + res.number.toString(16) // number is hex format + return res +} + +/** + * @param context + * @param params - [`blockNumber` | `blockNumber[]` | null] + * + * @return Block hash | hash[] | null + */ +export const chain_getBlockHash: Handler<[number | number[] | null], HexString | (HexString | null)[] | null> = async ( + context, + [blockNumber], +) => { + const numbers = Array.isArray(blockNumber) ? blockNumber : [blockNumber] + const hashes = await Promise.all(numbers.map((n) => context.chain.getBlockAt(n))).then((blocks) => + blocks.map((b) => b?.hash || null), + ) + return Array.isArray(blockNumber) ? hashes : hashes[0] +} + +/** + * @param context + * @param params - [`blockhash`] + * + * @return Header - see `@polkadot/types/interfaces` + */ +export const chain_getHeader: Handler<[HexString], Header> = async (context, [hash]) => { + const block = await context.chain.getBlock(hash) + if (!block) { + throw new ResponseError(1, `Block ${hash} not found`) + } + return processHeader(await block.header) +} + +/** + * @param context + * @param params - [`blockhash`] + * + * @return Block header and extrinsics + */ +export const chain_getBlock: Handler< + [HexString], + { block: { header: Header; extrinsics: HexString[] }; justifications: null } +> = async (context, [hash]) => { + const block = await context.chain.getBlock(hash) + if (!block) { + throw new ResponseError(1, `Block ${hash} not found`) + } + return { + block: { + header: processHeader(await block.header), + extrinsics: await block.extrinsics, + }, + justifications: null, + } +} + +/** + * @param context + * + * @return head hash + */ +export const chain_getFinalizedHead: Handler = async (context) => { + return context.chain.head.hash +} + +export const chain_subscribeNewHead: Handler = async (context, _params, { subscribe }) => { + let update = () => {} + + const id = context.chain.headState.subscribeHead(() => update()) + const callback = subscribe('chain_newHead', id, () => context.chain.headState.unsubscribeHead(id)) + + update = async () => { + callback(processHeader(await context.chain.head.header)) + } + + setTimeout(update, 50) + + return id +} + +export const chain_subscribeFinalizedHeads: Handler = async (context, _params, { subscribe }) => { + let update = () => {} + + const id = context.chain.headState.subscribeHead(() => update()) + const callback = subscribe('chain_finalizedHead', id, () => context.chain.headState.unsubscribeHead(id)) + + update = async () => { + callback(processHeader(await context.chain.head.header)) + } + + setTimeout(update, 50) + + return id +} + +export const chain_unsubscribeNewHead: Handler<[string], void> = async (_context, [subid], { unsubscribe }) => { + unsubscribe(subid) +} + +export const chain_getHead = chain_getBlockHash +export const chain_subscribeNewHeads = chain_subscribeNewHead +export const chain_unsubscribeNewHeads = chain_unsubscribeNewHead +export const chain_unsubscribeFinalizedHeads = chain_unsubscribeNewHead diff --git a/packages/core/src/rpc/substrate/index.ts b/packages/core/src/rpc/substrate/index.ts new file mode 100644 index 00000000..4db882e6 --- /dev/null +++ b/packages/core/src/rpc/substrate/index.ts @@ -0,0 +1,21 @@ +import * as AuthorRPC from './author.js' +import * as ChainRPC from './chain.js' +import * as PaymentRPC from './payment.js' +import * as StateRPC from './state.js' +import * as SystemRPC from './system.js' + +export { AuthorRPC } +export { ChainRPC } +export { PaymentRPC } +export { StateRPC } +export { SystemRPC } + +const handlers = { + ...AuthorRPC, + ...ChainRPC, + ...PaymentRPC, + ...StateRPC, + ...SystemRPC, +} + +export default handlers diff --git a/packages/core/src/rpc/substrate/payment.ts b/packages/core/src/rpc/substrate/payment.ts new file mode 100644 index 00000000..780f6930 --- /dev/null +++ b/packages/core/src/rpc/substrate/payment.ts @@ -0,0 +1,47 @@ +import { HexString } from '@polkadot/util/types' +import { hexToU8a } from '@polkadot/util' + +import { Handler, ResponseError } from '../shared.js' + +/** + * @param context + * @param params - [`extrinsic`, `blockhash`] + * + * @return result in hash + */ +export const payment_queryFeeDetails: Handler<[HexString, HexString], HexString> = async ( + context, + [extrinsic, hash], +) => { + const block = await context.chain.getBlock(hash) + if (!block) { + throw new ResponseError(1, `Block ${hash} not found`) + } + const registry = await block.registry + const tx = hexToU8a(extrinsic) + const resp = await block.call('TransactionPaymentApi_query_fee_details', [ + registry.createType('Extrinsic', tx).toHex(), + registry.createType('u32', tx.byteLength).toHex(), + ]) + return resp.result +} + +/** + * @param context + * @param params - [`extrinsic`, `blockhash`] + * + * @return result in hash + */ +export const payment_queryInfo: Handler<[HexString, HexString], HexString> = async (context, [extrinsic, hash]) => { + const block = await context.chain.getBlock(hash) + if (!block) { + throw new ResponseError(1, `Block ${hash} not found`) + } + const registry = await block.registry + const tx = hexToU8a(extrinsic) + const resp = await block.call('TransactionPaymentApi_query_info', [ + registry.createType('Extrinsic', tx).toHex(), + registry.createType('u32', tx.byteLength).toHex(), + ]) + return resp.result +} diff --git a/packages/core/src/rpc/substrate/state.ts b/packages/core/src/rpc/substrate/state.ts new file mode 100644 index 00000000..2f1ce230 --- /dev/null +++ b/packages/core/src/rpc/substrate/state.ts @@ -0,0 +1,215 @@ +import { Block } from '../../blockchain/block.js' +import { HexString } from '@polkadot/util/types' + +import { Handler, ResponseError } from '../shared.js' +import { RuntimeVersion } from '../../wasm-executor/index.js' +import { defaultLogger } from '../../logger.js' +import { isPrefixedChildKey, prefixedChildKey, stripChildPrefix } from '../../utils/index.js' + +const logger = defaultLogger.child({ name: 'rpc-state' }) + +/** + * @param context + * @param params - [`blockhash`] + * + * @return runtime version + */ +export const state_getRuntimeVersion: Handler<[HexString], RuntimeVersion | null> = async (context, [hash]) => { + const block = await context.chain.getBlock(hash) + return block?.runtimeVersion || null +} + +/** + * @param context + * @param params - [`blockhash`] + * + * @return metadata + */ +export const state_getMetadata: Handler<[HexString], HexString | null> = async (context, [hash]) => { + const block = await context.chain.getBlock(hash) + return block?.metadata || null +} + +/** + * @param context + * @param params - [`key`, `blockhash`] + * + * @return storage value + */ +export const state_getStorage: Handler<[HexString, HexString], string | null> = async (context, [key, hash]) => { + const block = await context.chain.getBlock(hash) + const value = (await block?.get(key)) || null + return value || null +} + +/** + * @param context + * @param params - [`prefix`, `pageSize`, `startKey`, `blockhash`] + * + * @return paged keys + */ +export const state_getKeysPaged: Handler<[string, number, string, HexString], string[] | undefined> = async ( + context, + [prefix, pageSize, startKey, hash], +) => { + const block = await context.chain.getBlock(hash) + return block?.getKeysPaged({ prefix, pageSize, startKey }) +} + +/** + * @param context + * @param params - [`keys`, `blockhash`] + * + * @return storage values + */ +export const state_queryStorageAt: Handler< + [string[], HexString], + | [] + | [ + { + block: HexString + changes: [string, string | null][] + }, + ] +> = async (context, [keys, hash]) => { + const block = await context.chain.getBlock(hash) + if (!block) { + return [] + } + const values = await Promise.all( + keys.map(async (key) => [key, await block.get(key).then((val) => val || null)] as [string, string | null]), + ) + return [ + { + block: block.hash, + changes: values, + }, + ] +} + +/** + * @param context + * @param params - [`method`, `data`, `blockhash`] + * + * @return result in hash + */ +export const state_call: Handler<[HexString, HexString, HexString], HexString> = async ( + context, + [method, data, hash], +) => { + const block = await context.chain.getBlock(hash) + if (!block) { + throw new ResponseError(1, `Block ${hash} not found`) + } + const resp = await block.call(method, [data]) + return resp.result +} + +/** + * @return subscription id + */ +export const state_subscribeRuntimeVersion: Handler<[], string> = async (context, _params, { subscribe }) => { + let update = (_block: Block) => {} + const id = await context.chain.headState.subscrubeRuntimeVersion((block) => update(block)) + const callback = subscribe('state_runtimeVersion', id) + update = async (block) => callback(await block.runtimeVersion) + setTimeout(() => { + context.chain.head.runtimeVersion.then(callback) + }, 50) + return id +} + +/** + * @param context + * @param params - [`subid`] + * @param subscriptionManager + */ +export const state_unsubscribeRuntimeVersion: Handler<[HexString], void> = async ( + _context, + [subid], + { unsubscribe }, +) => { + unsubscribe(subid) +} + +/** + * @param context + * @param params - [`keys`] + * @param subscriptionManager + * + * @return subscription id + */ +export const state_subscribeStorage: Handler<[string[]], string> = async (context, [keys], { subscribe }) => { + let update = (_block: Block, _pairs: [string, string | null][]) => {} + + const id = await context.chain.headState.subscribeStorage(keys, (block, pairs) => update(block, pairs)) + const callback = subscribe('state_storage', id, () => context.chain.headState.unsubscribeStorage(id)) + + update = async (block, pairs) => { + logger.trace({ hash: block.hash }, 'state_subscribeStorage') + callback({ + block: block.hash, + changes: pairs, + }) + } + ;(async () => { + const pairs: [string, string | null][] = await Promise.all( + (keys as string[]).map(async (key) => { + const val = await context.chain.head.get(key) + return [key, val || null] + }), + ) + callback({ + block: context.chain.head.hash, + changes: pairs, + }) + })() + + return id +} + +/** + * @param context + * @param params - [`subid`] + * @param subscriptionManager + */ +export const state_unsubscribeStorage: Handler<[string], void> = async (_context, [subid], { unsubscribe }) => { + unsubscribe(subid) +} + +/** + * @param context + * @param params - [`child`, `key`, `blockhash`] + * + * @return storage valuse + */ +export const childstate_getStorage: Handler<[HexString, HexString, HexString], string | null> = async ( + context, + [child, key, hash], +) => { + if (!isPrefixedChildKey(child)) { + throw new ResponseError(-32000, 'Client error: Invalid child storage key') + } + const block = await context.chain.getBlock(hash) + const value = await block?.get(prefixedChildKey(child, key)) + return value || null +} + +/** + * @param context + * @param params - [`child`, `prefix`, `pageSize`, `startKey`, `blockhash`] + * + * @return paged keys + */ +export const childstate_getKeysPaged: Handler< + [HexString, HexString, number, HexString, HexString], + HexString[] | undefined +> = async (context, [child, prefix, pageSize, startKey, hash]) => { + if (!isPrefixedChildKey(child)) { + throw new ResponseError(-32000, 'Client error: Invalid child storage key') + } + const block = await context.chain.getBlock(hash) + return block + ?.getKeysPaged({ prefix: prefixedChildKey(child, prefix), pageSize, startKey: prefixedChildKey(child, startKey) }) + .then((keys: any[]) => keys.map(stripChildPrefix)) +} diff --git a/packages/core/src/rpc/substrate/system.ts b/packages/core/src/rpc/substrate/system.ts new file mode 100644 index 00000000..e8875f76 --- /dev/null +++ b/packages/core/src/rpc/substrate/system.ts @@ -0,0 +1,56 @@ +import { HexString } from '@polkadot/util/types' +import { Index } from '@polkadot/types/interfaces' +import { hexToU8a } from '@polkadot/util' + +import { ChainProperties } from '../../api.js' +import { Handler } from '../shared.js' + +export const system_localPeerId = async () => '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY' +export const system_nodeRoles = async () => ['Full'] +export const system_localListenAddresses = async () => [] +export const system_chain: Handler = async (context) => { + return context.chain.api.getSystemChain() +} +export const system_properties: Handler = async (context) => { + return context.chain.api.getSystemProperties() +} +export const system_name: Handler = async (context) => { + return context.chain.api.getSystemName() +} +export const system_version: Handler = async (_context) => { + return 'chopsticks-v1' +} +export const system_chainType: Handler = async (_context) => { + return 'Development' +} +export const system_health = async () => { + return { + peers: 0, + isSyncing: false, + shouldHavePeers: false, + } +} + +/** + * @param context + * @param params - [`extrinsic`, `at`] + * + * @return ApplyExtrinsicResult (see `@polkadot/types/interfaces`) in hash + */ +export const system_dryRun: Handler<[HexString, HexString], string> = async (context, [extrinsic, at]) => { + const { outcome } = await context.chain.dryRunExtrinsic(extrinsic, at) + return outcome.toHex() +} + +/** + * @param context + * @param params - [`address`] + */ +export const system_accountNextIndex: Handler<[HexString], number> = async (context, [address]) => { + const head = context.chain.head + const registry = await head.registry + const account = registry.createType('AccountId', address) + const result = await head.call('AccountNonceApi_account_nonce', [account.toHex()]) + const nonce = registry.createType('Index', hexToU8a(result.result)).toNumber() + return nonce + context.chain.txPool.pendingExtrinsicsBy(address).length +} diff --git a/packages/core/src/schema/index.ts b/packages/core/src/schema/index.ts index 61a61df5..aaf77bff 100644 --- a/packages/core/src/schema/index.ts +++ b/packages/core/src/schema/index.ts @@ -1,5 +1,4 @@ import { z } from 'zod' -import _ from 'lodash' export const genesisSchema = z.object({ id: z.string(), diff --git a/packages/core/src/setup.test.ts b/packages/core/src/setup.test.ts index 42fd2cfc..d9c46a00 100644 --- a/packages/core/src/setup.test.ts +++ b/packages/core/src/setup.test.ts @@ -1,5 +1,5 @@ import { expect, test } from 'vitest' -import { setup } from './setup' +import { setup } from './setup.js' test('handle invalid block ', async () => { await expect(setup({ endpoint: 'wss://acala-rpc-0.aca-api.network', block: '0x' })).rejects.toThrow('invalid length') diff --git a/packages/core/src/setup.ts b/packages/core/src/setup.ts index 378c6066..57dfa153 100644 --- a/packages/core/src/setup.ts +++ b/packages/core/src/setup.ts @@ -1,33 +1,30 @@ import '@polkadot/types-codec' -import { DataSource } from 'typeorm' +import { Api } from './api.js' +import { Blockchain } from './blockchain/index.js' +import { BuildBlockMode } from './blockchain/txpool.js' +import { Database } from './database.js' +import { GenesisProvider } from './genesis-provider.js' import { HexString } from '@polkadot/util/types' -import { ProviderInterface } from '@polkadot/rpc-provider/types' -import { RegisteredTypes } from '@polkadot/types/types' -import { WsProvider } from '@polkadot/api' - -import { Api } from './api' -import { Blockchain } from './blockchain' -import { BuildBlockMode } from './blockchain/txpool' -import { Genesis } from './schema' -import { GenesisProvider } from './genesis-provider' +import { HttpProvider, WsProvider } from '@polkadot/rpc-provider' import { InherentProviders, ParaInherentEnter, SetBabeRandomness, - SetLatestAuthorData, SetNimbusAuthorInherent, SetTimestamp, SetValidationData, -} from './blockchain/inherent' -import { defaultLogger } from './logger' -import { openDb } from './db' +} from './blockchain/inherent/index.js' +import { ProviderInterface } from '@polkadot/rpc-provider/types' +import { RegisteredTypes } from '@polkadot/types/types' +import { SetLatestAuthorData } from './blockchain/inherent/parachain/latest-author.js' +import { defaultLogger } from './logger.js' -type Options = { +export type SetupOptions = { endpoint?: string block?: string | number | null - genesis?: string | Genesis + genesis?: GenesisProvider buildBlockMode?: BuildBlockMode - db?: string + db?: Database mockSignatureHost?: boolean allowUnresolvedImports?: boolean runtimeLogLevel?: number @@ -36,16 +33,14 @@ type Options = { maxMemoryBlockCount?: number } -export const setup = async (options: Options) => { +export const setup = async (options: SetupOptions) => { let provider: ProviderInterface if (options.genesis) { - if (typeof options.genesis === 'string') { - provider = await GenesisProvider.fromUrl(options.genesis) - } else { - provider = new GenesisProvider(options.genesis) - } + provider = options.genesis + } else if (/^(https|http):\/\//.test(options.endpoint || '')) { + provider = new HttpProvider(options.endpoint) } else { - provider = new WsProvider(options.endpoint) + provider = new WsProvider(options.endpoint, 3_000) } const api = new Api(provider) await api.isReady @@ -74,11 +69,6 @@ export const setup = async (options: Options) => { defaultLogger.debug({ ...options, blockHash }, 'Args') - let db: DataSource | undefined - if (options.db) { - db = await openDb(options.db) - } - const header = await api.getHeader(blockHash) if (!header) { throw new Error(`Cannot find header for ${blockHash}`) @@ -96,7 +86,7 @@ export const setup = async (options: Options) => { api, buildBlockMode: options.buildBlockMode, inherentProvider: inherents, - db, + db: options.db, header: { hash: blockHash as HexString, number: Number(header.number), diff --git a/packages/core/src/utils/decoder.ts b/packages/core/src/utils/decoder.ts index 7f73710c..687d53b5 100644 --- a/packages/core/src/utils/decoder.ts +++ b/packages/core/src/utils/decoder.ts @@ -1,26 +1,36 @@ import '@polkadot/types-codec' -import { Block } from '../blockchain/block' +import { Block } from '../blockchain/block.js' import { DecoratedMeta } from '@polkadot/types/metadata/decorate/types' import { HexString } from '@polkadot/util/types' +import { LRUCache } from 'lru-cache' import { StorageEntry } from '@polkadot/types/primitive/types' import { StorageKey } from '@polkadot/types' -import { blake2AsHex } from '@polkadot/util-crypto' import { hexToU8a, u8aToHex } from '@polkadot/util' import _ from 'lodash' -const _CACHE: Record> = {} +import { decodeWellKnownKey } from './well-known-keys.js' -const getCache = (uid: string): Map => { +const _CACHE: Record> = {} + +function createCache() { + return new LRUCache({ + max: 50, // The maximum number of items in the cache + }) +} + +const getCache = (uid: string): LRUCache => { if (!_CACHE[uid]) { - _CACHE[uid] = new Map() + _CACHE[uid] = createCache() } return _CACHE[uid] } const getStorageEntry = (meta: DecoratedMeta, block: Block, key: HexString) => { const cache = getCache(block.chain.uid) - for (const [prefix, storageEntry] of cache.entries()) { - if (key.startsWith(prefix)) return storageEntry + for (const prefix of cache.keys()) { + if (key.startsWith(prefix)) + // update the recency of the cache entry + return cache.get(prefix) } for (const module of Object.values(meta.query)) { for (const storage of Object.values(module)) { @@ -48,48 +58,64 @@ export const decodeKey = ( return {} } -export const decodeKeyValue = (meta: DecoratedMeta, block: Block, key: HexString, value?: HexString | null) => { +export const decodeKeyValue = ( + meta: DecoratedMeta, + block: Block, + key: HexString, + value?: HexString | null, + toHuman = true, +) => { + const res = decodeWellKnownKey(meta.registry, key, value) + if (res) { + return { + section: 'substrate', + method: res.name, + key: res.key, + value: res.value, + } + } + const { storage, decodedKey } = decodeKey(meta, block, key) if (!storage || !decodedKey) { - return { [key]: value } + return undefined } const decodeValue = () => { if (!value) return null - if (storage.section === 'substrate' && storage.method === 'code') { - return `:code blake2_256 ${blake2AsHex(value, 256)} (${hexToU8a(value).length} bytes)` - } - return meta.registry.createType(decodedKey.outputType, hexToU8a(value)).toHuman() + return meta.registry.createType(decodedKey.outputType, hexToU8a(value))[toHuman ? 'toHuman' : 'toJSON']() } - switch (decodedKey.args.length) { - case 2: { - return { - [storage.section]: { - [storage.method]: { - [decodedKey.args[0].toString()]: { - [decodedKey.args[1].toString()]: decodeValue(), - }, - }, - }, - } - } - case 1: { - return { - [storage.section]: { - [storage.method]: { - [decodedKey.args[0].toString()]: decodeValue(), - }, - }, - } + return { + section: storage.section, + method: storage.method, + key: decodedKey.args.map((x) => x.toJSON()), + value: decodeValue(), + } +} + +export const toStorageObject = (decoded: ReturnType) => { + if (!decoded) { + return undefined + } + + const { section, method, key, value } = decoded + + let obj = value + + if (key) { + for (let i = key.length - 1; i >= 0; i--) { + const k = key[i] + const strKey = ['string', 'number'].includes(typeof k) ? k : JSON.stringify(k) + const newObj = { [strKey]: obj } + obj = newObj } - default: - return { - [storage.section]: { - [storage.method]: decodeValue(), - }, - } + } + + return { + [section]: { + [method]: obj, + }, } } @@ -104,8 +130,12 @@ export const decodeBlockStorageDiff = async (block: Block, diff: [HexString, Hex const newState = {} const meta = await block.meta for (const [key, value] of diff) { - _.merge(oldState, decodeKeyValue(meta, block, key, (await block.get(key)) as any)) - _.merge(newState, decodeKeyValue(meta, block, key, value)) + const oldValue = await block.get(key) + const oldDecoded = toStorageObject(decodeKeyValue(meta, block, key, oldValue)) ?? { [key]: oldValue } + _.merge(oldState, oldDecoded) + + const newDecoded = toStorageObject(decodeKeyValue(meta, block, key, value)) ?? { [key]: value } + _.merge(newState, newDecoded) } return [oldState, newState] } diff --git a/packages/core/src/utils/index.ts b/packages/core/src/utils/index.ts index 574dc85a..c70d1936 100644 --- a/packages/core/src/utils/index.ts +++ b/packages/core/src/utils/index.ts @@ -1,12 +1,13 @@ import { HexString } from '@polkadot/util/types' import { StorageKey } from '@polkadot/types' -import { compactStripLength, hexToU8a, u8aToHex } from '@polkadot/util' +import { compactStripLength, u8aToHex } from '@polkadot/util' +import { hexAddPrefix, hexStripPrefix } from '@polkadot/util/hex' -import { Blockchain } from '../blockchain' +import { Blockchain } from '../blockchain/index.js' -export * from './set-storage' -export * from './time-travel' -export * from './decoder' +export * from './set-storage.js' +export * from './time-travel.js' +export * from './decoder.js' export type GetKeys = (startKey?: string) => Promise[]> @@ -45,9 +46,11 @@ export const compactHex = (value: Uint8Array): HexString => { export const getParaId = async (chain: Blockchain) => { const meta = await chain.head.meta - const raw = await chain.head.get(compactHex(meta.query.parachainInfo.parachainId())) - if (!raw) throw new Error('Cannot find parachain id') - return meta.registry.createType('u32', hexToU8a(raw)) + const id = await chain.head.read('u32', meta.query.parachainInfo.parachainId) + if (!id) { + throw new Error('Cannot find parachain id') + } + return id } export const isUrl = (url: string) => { @@ -73,3 +76,34 @@ export function defer() { }) return deferred } + +// Chopsticks treats both main storage and child storage as a key-value store +// The difference is that child storage keys are prefixed with the child storage key + +// :child_storage:default: as hex string +const DEFAULT_CHILD_STORAGE = '0x3a6368696c645f73746f726167653a64656661756c743a' + +// length of the child storage key +const CHILD_LENGTH = DEFAULT_CHILD_STORAGE.length + 64 + +// returns a key that is prefixed with the child storage key +export const prefixedChildKey = (prefix: HexString, key: HexString) => prefix + hexStripPrefix(key) + +// returns true if the key is a child storage key +export const isPrefixedChildKey = (key: HexString) => key.startsWith(DEFAULT_CHILD_STORAGE) + +// returns a key that is split into the child storage key and the rest +export const splitChildKey = (key: HexString) => { + if (!key.startsWith(DEFAULT_CHILD_STORAGE)) return [] + if (key.length < CHILD_LENGTH) return [] + const child = key.slice(0, CHILD_LENGTH) + const rest = key.slice(CHILD_LENGTH) + return [child, hexAddPrefix(rest)] as [HexString, HexString] +} + +// returns a key that is stripped of the child storage key +export const stripChildPrefix = (key: HexString) => { + const [child, storageKey] = splitChildKey(key) + if (!child) return key + return storageKey +} diff --git a/packages/core/src/utils/key-cache.test.ts b/packages/core/src/utils/key-cache.test.ts index 25a2785b..8a9eff7d 100644 --- a/packages/core/src/utils/key-cache.test.ts +++ b/packages/core/src/utils/key-cache.test.ts @@ -1,6 +1,5 @@ import { describe, expect, it } from 'vitest' -import KeyCache from './key-cache' -import _ from 'lodash' +import KeyCache from './key-cache.js' const KEY_0 = '0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9_00' const KEY_1 = '0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9_01' diff --git a/packages/core/src/utils/proof.ts b/packages/core/src/utils/proof.ts index 8a836d28..4cbcfee0 100644 --- a/packages/core/src/utils/proof.ts +++ b/packages/core/src/utils/proof.ts @@ -41,3 +41,8 @@ export const hrmpChannels = (channelId: HrmpChannelId) => { const prefix = '0x6a0da05ca59913bc38a8630590f2627cb6604cff828a6e3f579ca6c59ace013d' return hash(prefix, channelId.toU8a()) } + +export const paraHead = (paraId: u32) => { + const prefix = '0xcd710b30bd2eab0352ddcc26417aa1941b3c252fcb29d88eff4f3de5de4476c3' + return hash(prefix, paraId.toU8a()) +} diff --git a/packages/core/src/utils/set-storage.ts b/packages/core/src/utils/set-storage.ts index af3fbe15..2f1315d5 100644 --- a/packages/core/src/utils/set-storage.ts +++ b/packages/core/src/utils/set-storage.ts @@ -4,8 +4,8 @@ import { StorageKey } from '@polkadot/types' import { stringCamelCase } from '@polkadot/util/string' import { u8aToHex } from '@polkadot/util' -import { Blockchain } from '../blockchain' -import { StorageValueKind } from '../blockchain/storage-layer' +import { Blockchain } from '../blockchain/index.js' +import { StorageValueKind } from '../blockchain/storage-layer.js' type RawStorageValues = [string, string | null][] type StorageConfig = Record> diff --git a/packages/core/src/utils/time-travel.ts b/packages/core/src/utils/time-travel.ts index 51c6eaa3..24cb3cab 100644 --- a/packages/core/src/utils/time-travel.ts +++ b/packages/core/src/utils/time-travel.ts @@ -2,10 +2,10 @@ import { BN, hexToU8a, u8aToHex } from '@polkadot/util' import { HexString } from '@polkadot/util/types' import { Slot } from '@polkadot/types/interfaces' -import { Blockchain } from '../blockchain' -import { compactHex } from '.' -import { getAuraSlotDuration } from '../executor' -import { setStorage } from './set-storage' +import { Blockchain } from '../blockchain/index.js' +import { compactHex } from './index.js' +import { getAuraSlotDuration } from '../wasm-executor/index.js' +import { setStorage } from './set-storage.js' export const getCurrentSlot = async (chain: Blockchain) => { const meta = await chain.head.meta @@ -19,8 +19,8 @@ export const getCurrentSlot = async (chain: Blockchain) => { export const getCurrentTimestamp = async (chain: Blockchain) => { const meta = await chain.head.meta - const currentTimestampRaw = (await chain.head.get(compactHex(meta.query.timestamp.now()))) || '0x' - return meta.registry.createType('u64', hexToU8a(currentTimestampRaw)).toNumber() + const timestamp = await chain.head.read('u64', meta.query.timestamp.now) + return timestamp?.toBigInt() ?? 0n } export const getSlotDuration = async (chain: Blockchain) => { @@ -28,8 +28,8 @@ export const getSlotDuration = async (chain: Blockchain) => { return meta.consts.babe ? (meta.consts.babe.expectedBlockTime as any as BN).toNumber() : meta.query.aura - ? getAuraSlotDuration(await chain.head.wasm, meta.registry) - : 12_000 + ? getAuraSlotDuration(await chain.head.wasm) + : 12_000 } export const timeTravel = async (chain: Blockchain, timestamp: number) => { diff --git a/packages/core/src/utils/well-known-keys.ts b/packages/core/src/utils/well-known-keys.ts new file mode 100644 index 00000000..762e4c4e --- /dev/null +++ b/packages/core/src/utils/well-known-keys.ts @@ -0,0 +1,85 @@ +import { HexString } from '@polkadot/util/types' +import { Registry } from '@polkadot/types-codec/types' +import { blake2AsHex } from '@polkadot/util-crypto' +import { hexToU8a, stringToHex } from '@polkadot/util' + +const decodeValue = (type: string) => (registry: Registry, value: HexString) => { + return registry.createType(type, hexToU8a(value)).toJSON() +} + +// https://github.com/paritytech/polkadot-sdk/issues/2126 +const wellKnownKeys = [ + { + name: 'code', + key: ':code', + decodeValue: (_registry: Registry, value: HexString) => { + return `<:code blake2_256 ${blake2AsHex(value, 256)} (${value.length / 2 - 1} bytes)>` + }, + }, + { + name: 'heapPages', + key: ':heappages', + type: 'u64', + }, + { + name: 'extrinsicIndex', + key: ':extrinsic_index', + type: 'u32', + }, + { + name: 'intrablockEntropy', + key: ':intrablock_entropy', + type: '[u8; 32]', + }, + { + name: 'transactionLevel', + key: ':transaction_level:', + type: 'u32', + }, + { + name: 'grandpaAuthorities', + key: ':grandpa_authorities', + type: '(u8, AuthorityList)', + }, + { + name: 'relayDispatchQueueRemainingCapacity', + prefix: ':relay_dispatch_queue_remaining_capacity', + decodeKey: (registry: Registry, key: HexString) => { + return [registry.createType('u32', hexToU8a(key)).toJSON()] + }, + type: '(u32, u32)', + }, + { + name: 'relay_dispatch_queue_size', + prefixHex: '0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e', + decodeKey: (registry: Registry, key: HexString) => { + // get last 4 bytes + const last4Bytes = '0x' + key.slice(-8) + return [registry.createType('u32', hexToU8a(last4Bytes)).toJSON()] + }, + type: '(u32, u32)', + }, +].map((def) => { + const prefix = def.prefixHex ?? stringToHex(def.prefix || def.key) + return { + name: def.name, + prefix, + decodeKey: def.decodeKey || ((_registry: Registry, key: HexString) => [key]), + decodeValue: def.decodeValue || decodeValue(def.type), + } +}) + +export const decodeWellKnownKey = (registry: Registry, key: HexString, value?: HexString | null) => { + for (const defs of wellKnownKeys) { + if (key.startsWith(defs.prefix)) { + const remaining = key.slice(defs.prefix.length) + const decodedKey = remaining ? defs.decodeKey(registry, `0x${remaining}`) : undefined + const decodedValue = value ? defs.decodeValue(registry, value) : undefined + return { + name: defs.name, + key: decodedKey ?? [], + value: decodedValue, + } + } + } +} diff --git a/packages/core/src/wasm-executor/__snapshots__/executor.test.ts.snap b/packages/core/src/wasm-executor/__snapshots__/executor.test.ts.snap new file mode 100644 index 00000000..4b9d6cef --- /dev/null +++ b/packages/core/src/wasm-executor/__snapshots__/executor.test.ts.snap @@ -0,0 +1,104 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`wasm > decode & create proof works 1`] = ` +{ + "0x06de3d8a54d27e44a9d5ce189618f22db4b49d95320d9021994c850f25b8e385": "0x00005000005000000a00000000c8000000c800000a0000000a000000c8000000640000000000500000c800000700e8764817020040010a0000000000000000c0220fca950300000000000000000000c0220fca9503000000000000000000e8030000009001000a00000000000000009001008070000000000000000000000a000000050000000500000001000000010500000001c800000006000000580200005802000002000000280000000000000002000000010000000700c817a8040200400101020000000f000000", + "0x1cb6f36e027abb2091cfb5110ab5087f06155b3cd9a8c9e5e9a23fd5dc13a5ed": "0x5d49a91000000000", + "0x1cb6f36e027abb2091cfb5110ab5087f38316cbf8fa0da822a20ac1c55bf1be3": "0xa262000000000000", + "0x1cb6f36e027abb2091cfb5110ab5087f7a414cb008e0e61e46722aa60abdd672": "0x2527aaef690b1334e4ec1bd567ea892286dc1265510ad57d74dd8628d4c47ad4", + "0x1cb6f36e027abb2091cfb5110ab5087f7ce678799d3eff024253b90e84927cc6": "0xcc322cfedfa300d9bec6649d65f16273941d0e2f90a4c0d7173dd7c95bb02597", + "0x1cb6f36e027abb2091cfb5110ab5087fd077dfdb8adb10f78f10a5df8742c545": "0x01083c38641effe2a1c267fb16654d73afd072e5bbbb58a3cee00b6f07858d7868", + "0x63f78c98723ddc9073523ef3beefda0c4d7fefc408aac59dbfe80a72ac8e3ce5b6ff6f7d467b87a9e8030000": "0xf217a51bf18a93d44906f8a3dbd8f60acb609b03c9ade7e38532e3f5f18f70e8", + "0x6a0da05ca59913bc38a8630590f2627c1d3719f5b0b12c7105c073c507445948b6ff6f7d467b87a9e8030000": "0x08d007000049080000", + "0x6a0da05ca59913bc38a8630590f2627cf12b746dcf32e843354583c9702cc020b6ff6f7d467b87a9e8030000": "0x08d007000049080000", + "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3b6ff6f7d467b87a9e8030000": undefined, +} +`; + +exports[`wasm > decode & create proof works 2`] = ` +{ + "chainAvailabilityPeriod": 5, + "codeRetentionPeriod": 0, + "disputeConclusionByTimeOutPeriod": 2, + "disputeMaxSpamSlots": 600, + "disputePeriod": 6, + "disputePostConclusionAcceptancePeriod": 600, + "groupRotationFrequency": 5, + "hrmpChannelMaxCapacity": 102400, + "hrmpChannelMaxMessageSize": 28800, + "hrmpChannelMaxTotalSize": 10, + "hrmpMaxMessageNumPerCandidate": 10, + "hrmpMaxParachainInboundChannels": 0, + "hrmpMaxParachainOutboundChannels": 10, + "hrmpMaxParathreadInboundChannels": 102400, + "hrmpMaxParathreadOutboundChannels": 0, + "hrmpOpenRequestTtl": 253935616, + "hrmpRecipientDeposit": "0x000003e80000000000000000000395ca", + "hrmpSenderDeposit": "0x0f22c0000000000000000000000395ca", + "maxCodeSize": 5242880, + "maxDownwardMessageSize": 51200, + "maxHeadDataSize": 20480, + "maxPovSize": 5242880, + "maxUpwardMessageNumPerCandidate": 10, + "maxUpwardMessageSize": 51200, + "maxUpwardQueueCount": 10, + "maxUpwardQueueSize": 51200, + "maxValidators": 200, + "maxValidatorsPerCore": null, + "nDelayTranches": 0, + "neededApprovals": 1, + "noShowSlots": 40, + "parathreadCores": 0, + "parathreadRetries": 10, + "preferredDispatchableUpwardMessagesStepWeight": { + "proofSize": 5242880, + "refTime": 100000000000, + }, + "relayVrfModuloSamples": 398983175, + "schedulingLookahead": 1281, + "threadAvailabilityPeriod": 1, + "validationUpgradeDelay": 100, + "validationUpgradeFrequency": 200, + "zerothDelayTrancheWidth": 2, +} +`; + +exports[`wasm > decode & create proof works 3`] = `"0x7db04060b46e67b4480c3cf9a1be364eca21a2972ce03f35b9d69d0015db1549"`; + +exports[`wasm > decode & create proof works 4`] = ` +[ + "0x9f012b746dcf32e843354583c9702cc02040884c5703f5a4efb16ffa83d00700001404e80300005c5706ff6f7d467b87a9e80300002408d0070000490800004c570c7327a2a48bf2b1490800001404e8030000", + "0x9f0cb6f36e027abb2091cfb5110ab5087f9960685f06155b3cd9a8c9e5e9a23fd5dc13a5ed205d49a91000000000685f08316cbf8fa0da822a20ac1c55bf1be320a262000000000000505f0e7b9012096b41c4eb3aaf947f6ea42908000080b06947b43b690f37d4acce3df0061e956e4b4249d58b80519935833c2c4eb0e680e627529ec0b70df9d4562816343d3fd0d30abe8b2b0c8d812a25d94a55974a34685f090e2fbf2d792cb324bffa9427fe1f0e20705be100ae5de100", + "0x9f0d710b30bd2eab0352ddcc26417aa19440824c5f03c716fb8fff3de61a883bb76adb34a2040080107a2888b632f818a19adeb1ccd4ddc7d677ea02956d755f678536a83a25f35e4c5f0dad6eef5c4b1c68eaa71ea17a02d9de0400", + "0x8000c080a703489351d812e54a745e221a7469907a21479e2cd8a9776ae340fdda898982485e4993f016e2d2f8e5f43be7bb2594860400", + "0x9f05207f03cfdce586301014700e2c2593d040505f0e7b9012096b41c4eb3aaf947f6ea429080100685f0d9ef3b78afddab7f5c7142131132ad4200700000000000000585f02275f64c354954352b71eea39cfaca210070000004c5f0ec2d17a76153ff51817f12d9cfc3c7f0400", + "0x800804806d6cd404605d5c2481bf43cb9403a6c8d6da004318e39fe1ff31c9f50042febd80929fccaf143551e3cee678117c06e6b8ebd6e3443214a8cbde73fb82d89c7111", + "0x5e414cb008e0e61e46722aa60abdd672802527aaef690b1334e4ec1bd567ea892286dc1265510ad57d74dd8628d4c47ad4", + "0x9f06de3d8a54d27e44a9d5ce189618f22d3008505f0e7b9012096b41c4eb3aaf947f6ea4290804004c5f03b4123b2e186e07fb7bad5dda5f55c004008077d0e6c6873fc637a60aa06503ed4ffbd0bfdd2b5d2f012343a72a303614afae", + "0x767fefc408aac59dbfe80a72ac8e3ce5b6ff6f7d467b87a9e803000080f217a51bf18a93d44906f8a3dbd8f60acb609b03c9ade7e38532e3f5f18f70e8", + "0x5f04b49d95320d9021994c850f25b8e3852d0300005000005000000a00000000c8000000c800000a0000000a000000c8000000640000000000500000c800000700e8764817020040010a0000000000000000c0220fca950300000000000000000000c0220fca9503000000000000000000e8030000009001000a00000000000000009001008070000000000000000000000a000000050000000500000001000000010500000001c800000006000000580200005802000002000000280000000000000002000000010000000700c817a8040200400101020000000f000000", + "0x5ee678799d3eff024253b90e84927cc680cc322cfedfa300d9bec6649d65f16273941d0e2f90a4c0d7173dd7c95bb02597", + "0x5f0077dfdb8adb10f78f10a5df8742c5458401083c38641effe2a1c267fb16654d73afd072e5bbbb58a3cee00b6f07858d7868", + "0x8043908017950ddfb68b41a6e0eb68483384a2642afdb241fd0d7fe021e5b9f20b6f275c80c94292198e0c8b47b9aee514c18d22879f4cb9f6bc9e5bb4e38594917f6f829680a3fd676e9772de52c2aa8efb3646ed1d6268894f406f415964305fc6352f0e7b804bd34dd0ef7e09359688e6df7b75dc510bb89d37ef08be2432302c2efef125bb80c31f960bc177852c1ff08ad7f576cd2955a72c9d8df1fe35cc0d98a49d730a6f", + "0x9f0f78c98723ddc9073523ef3beefda0c4006080466494236add4d65df86a49c798c1e67a9bbf772792e80988ba6923c109d59f44c5e7b9012096b41c4eb3aaf947f6ea429080000", + "0x9f0d3719f5b0b12c7105c073c50744594840884c5703f5a4efb16ffa83d00700001404e80300005c5706ff6f7d467b87a9e80300002408d0070000490800004c570c7327a2a48bf2b1490800001404e8030000", + "0x9e0da05ca59913bc38a8630590f2627c168080c208804fb9b3b0d5906eb36f941e821db3f79cb3210ca8aa4c0560dcc27980534c5f0a351b6a99a5b21324516e668bb86a570400505f0e7b9012096b41c4eb3aaf947f6ea42908000080faa229c2dbfea7ecf83e772ea2bc6e7bf8f77ff9b247e7ac953be64c15c498d6", + "0x9e94c040f5e73d9b7addd6cb603d15d308083c5701275d2a59e7bf2be507000004013c5706ff6f7d467b87a9e80300000401", + "0x80001480d1c5dfd27a348dfe6d0bbba95e4c43019bd078a4bf616f6a982a6b7eab2c932080c5c3fb9143839ec1e62ace0d5f5a99d1bc410e3475c3220c568c828ac1ec31db", +] +`; + +exports[`wasm > decode & create proof works 5`] = ` +{ + "0x06de3d8a54d27e44a9d5ce189618f22db4b49d95320d9021994c850f25b8e385": "0x00005000005000000a00000000c8000000c800000a0000000a000000c8000000640000000000500000c800000700e8764817020040010a0000000000000000c0220fca950300000000000000000000c0220fca9503000000000000000000e8030000009001000a00000000000000009001008070000000000000000000000a000000050000000500000001000000010500000001c800000006000000580200005802000002000000280000000000000002000000010000000700c817a8040200400101020000000f000000", + "0x1cb6f36e027abb2091cfb5110ab5087f06155b3cd9a8c9e5e9a23fd5dc13a5ed": "0x5d49a91000000000", + "0x1cb6f36e027abb2091cfb5110ab5087f38316cbf8fa0da822a20ac1c55bf1be3": "0xa262000000000000", + "0x1cb6f36e027abb2091cfb5110ab5087f7a414cb008e0e61e46722aa60abdd672": "0x2527aaef690b1334e4ec1bd567ea892286dc1265510ad57d74dd8628d4c47ad4", + "0x1cb6f36e027abb2091cfb5110ab5087f7ce678799d3eff024253b90e84927cc6": "0xcc322cfedfa300d9bec6649d65f16273941d0e2f90a4c0d7173dd7c95bb02597", + "0x1cb6f36e027abb2091cfb5110ab5087fd077dfdb8adb10f78f10a5df8742c545": "0x01083c38641effe2a1c267fb16654d73afd072e5bbbb58a3cee00b6f07858d7868", + "0x63f78c98723ddc9073523ef3beefda0c4d7fefc408aac59dbfe80a72ac8e3ce5b6ff6f7d467b87a9e8030000": "0xf217a51bf18a93d44906f8a3dbd8f60acb609b03c9ade7e38532e3f5f18f70e8", + "0x6a0da05ca59913bc38a8630590f2627c1d3719f5b0b12c7105c073c507445948b6ff6f7d467b87a9e8030000": "0x08d007000049080000", + "0x6a0da05ca59913bc38a8630590f2627cf12b746dcf32e843354583c9702cc020b6ff6f7d467b87a9e8030000": "0x08d007000049080000", + "0xcd710b30bd2eab0352ddcc26417aa1949e94c040f5e73d9b7addd6cb603d15d3b6ff6f7d467b87a9e8030000": "0x01", +} +`; diff --git a/packages/core/src/wasm-executor/browser-wasm-executor.js b/packages/core/src/wasm-executor/browser-wasm-executor.js new file mode 100644 index 00000000..e9f1ec14 --- /dev/null +++ b/packages/core/src/wasm-executor/browser-wasm-executor.js @@ -0,0 +1,27 @@ +import * as Comlink from 'comlink' +import * as pkg from '@tanssi/chopsticks-executor' + +const getRuntimeVersion = async (code) => { + return pkg.get_runtime_version(code) +} + +// trie_version: 0 for old trie, 1 for new trie +const calculateStateRoot = async (entries, trie_version) => { + return pkg.calculate_state_root(entries, trie_version) +} + +const decodeProof = async (trieRootHash, keys, nodes) => { + return pkg.decode_proof(trieRootHash, keys, nodes) +} + +const createProof = async (nodes, entries) => { + return pkg.create_proof(nodes, entries) +} + +const runTask = async (task, callback) => { + return pkg.run_task(task, callback, 'info') +} + +const wasmExecutor = { runTask, getRuntimeVersion, calculateStateRoot, createProof, decodeProof } + +Comlink.expose(wasmExecutor) diff --git a/packages/core/src/wasm-executor/browser-worker.ts b/packages/core/src/wasm-executor/browser-worker.ts new file mode 100644 index 00000000..38763988 --- /dev/null +++ b/packages/core/src/wasm-executor/browser-worker.ts @@ -0,0 +1,14 @@ +import { wrap } from 'comlink' + +export const startWorker = async () => { + const worker = new Worker(new URL('browser-wasm-executor.js', import.meta.url), { + type: 'module', + name: 'chopsticks-wasm-executor', + }) + return { + remote: wrap(worker), + terminate: async () => { + worker.terminate() + }, + } +} diff --git a/packages/core/src/executor.test.ts b/packages/core/src/wasm-executor/executor.test.ts similarity index 98% rename from packages/core/src/executor.test.ts rename to packages/core/src/wasm-executor/executor.test.ts index 7ff4d5d6..260e04de 100644 --- a/packages/core/src/executor.test.ts +++ b/packages/core/src/wasm-executor/executor.test.ts @@ -10,11 +10,11 @@ import { hrmpEgressChannelIndex, hrmpIngressChannelIndex, upgradeGoAheadSignal, -} from './utils/proof' -import { calculateStateRoot, createProof, decodeProof, getAuraSlotDuration, getRuntimeVersion } from './executor' +} from '../utils/proof.js' +import { calculateStateRoot, createProof, decodeProof, getAuraSlotDuration, getRuntimeVersion } from './index.js' const getCode = () => { - const code = String(readFileSync(path.join(__dirname, '../../e2e/blobs/acala-runtime-2101.txt'))).trim() + const code = String(readFileSync(path.join(__dirname, '../../../e2e/blobs/acala-runtime-2101.txt'))).trim() expect(code.length).toBeGreaterThan(2) return code as HexString } @@ -144,7 +144,7 @@ describe('wasm', () => { }) it('get aura slot duration', async () => { - const slotDuration = await getAuraSlotDuration(getCode(), new TypeRegistry()) + const slotDuration = await getAuraSlotDuration(getCode()) expect(slotDuration).eq(12000) }) }) diff --git a/packages/core/src/executor.ts b/packages/core/src/wasm-executor/index.ts similarity index 53% rename from packages/core/src/executor.ts rename to packages/core/src/wasm-executor/index.ts index 29b01419..264b3f53 100644 --- a/packages/core/src/executor.ts +++ b/packages/core/src/wasm-executor/index.ts @@ -1,21 +1,13 @@ +import * as Comlink from 'comlink' +import { Block } from '../blockchain/block.js' import { HexString } from '@polkadot/util/types' -import { hexToString, hexToU8a } from '@polkadot/util' +import { PREFIX_LENGTH } from '../utils/key-cache.js' +import { defaultLogger, truncate } from '../logger.js' +import { hexToString, hexToU8a, u8aToBn } from '@polkadot/util' import { randomAsHex } from '@polkadot/util-crypto' - -import { Block } from './blockchain/block' -import { PREFIX_LENGTH } from './utils/key-cache' -import { Registry } from '@polkadot/types-codec/types' -import { - calculate_state_root, - create_proof, - decode_proof, - get_runtime_version, - run_task, -} from '@tanssi/chopsticks-executor' -import { defaultLogger, truncate } from './logger' +import { stripChildPrefix } from '../utils/index.js' import _ from 'lodash' import type { JsCallback } from '@tanssi/chopsticks-executor' - export { JsCallback } export type RuntimeVersion = { @@ -29,38 +21,95 @@ export type RuntimeVersion = { stateVersion: number } +export type RuntimeLog = { + message: string + level?: number + target?: string +} + +export type TaskCallResponse = { + result: HexString + storageDiff: [HexString, HexString | null][] + offchainStorageDiff: [HexString, HexString | null][] + runtimeLogs: RuntimeLog[] +} + +export type TaskResponse = + | { + Call: TaskCallResponse + } + | { + Error: string + } + +export interface WasmExecutor { + getRuntimeVersion: (code: HexString) => Promise + calculateStateRoot: (entries: [HexString, HexString][], trie_version: number) => Promise + createProof: (nodes: HexString[], entries: [HexString, HexString | null][]) => Promise<[HexString, HexString[]]> + decodeProof: ( + trieRootHash: HexString, + keys: HexString[], + nodes: HexString[], + ) => Promise<[[HexString, HexString | null]]> + runTask: ( + task: { + wasm: HexString + calls: [string, HexString[]][] + mockSignatureHost: boolean + allowUnresolvedImports: boolean + runtimeLogLevel: number + }, + callback?: JsCallback, + ) => Promise +} + const logger = defaultLogger.child({ name: 'executor' }) -export const getRuntimeVersion = async (code: HexString): Promise => { - return get_runtime_version(code).then((version) => { +let __executor_worker: Promise<{ remote: Comlink.Remote; terminate: () => Promise }> | undefined +const getWorker = async () => { + if (__executor_worker) return __executor_worker + + const isNode = typeof process !== 'undefined' && process?.versions?.node // true for node or bun + + if (isNode) { + __executor_worker = import('./node-worker.js').then(({ startWorker }) => startWorker()) + } else { + __executor_worker = import('./browser-worker.js').then(({ startWorker }) => startWorker()) + } + return __executor_worker +} + +export const getRuntimeVersion = _.memoize(async (code: HexString): Promise => { + const worker = await getWorker() + return worker.remote.getRuntimeVersion(code).then((version) => { version.specName = hexToString(version.specName) version.implName = hexToString(version.implName) return version }) -} +}) // trie_version: 0 for old trie, 1 for new trie export const calculateStateRoot = async ( entries: [HexString, HexString][], trie_version: number, ): Promise => { - return calculate_state_root(entries, trie_version) + const worker = await getWorker() + return worker.remote.calculateStateRoot(entries, trie_version) } export const decodeProof = async (trieRootHash: HexString, keys: HexString[], nodes: HexString[]) => { - const decoded: [HexString, HexString | null][] = await decode_proof(trieRootHash, keys, nodes) - return decoded.reduce( - (accum, [key, value]) => { - accum[key] = value - return accum - }, - {} as Record, - ) + const worker = await getWorker() + const result = await worker.remote.decodeProof(trieRootHash, keys, nodes) + return result.reduce((accum, [key, value]) => { + accum[key] = value + return accum + }, {}) } export const createProof = async (nodes: HexString[], entries: [HexString, HexString | null][]) => { - const result = await create_proof(nodes, entries) - return { trieRootHash: result[0] as HexString, nodes: result[1] as HexString[] } + const worker = await getWorker() + const [trieRootHash, newNodes] = await worker.remote.createProof(nodes, entries) + return { trieRootHash, nodes: newNodes } } export const runTask = async ( @@ -73,9 +122,10 @@ export const runTask = async ( }, callback: JsCallback = emptyTaskHandler, ) => { + const worker = await getWorker() logger.trace(truncate(task), 'taskRun') - const response = await run_task(task, callback, typeof process === 'object' ? process.env.RUST_LOG : 'info') - if (response.Call) { + const response = await worker.remote.runTask(task, Comlink.proxy(callback)) + if ('Call' in response) { logger.trace(truncate(response.Call), 'taskResponse') } else { logger.trace({ response }, 'taskResponse') @@ -98,7 +148,7 @@ export const taskHandler = (block: Block): JsCallback => { pageSize: 1, startKey: key, }) - return nextKey + return nextKey && stripChildPrefix(nextKey as HexString) }, offchainGetStorage: async function (key: HexString) { if (!block.chain.offchainWorker) throw new Error('offchain worker not found') @@ -148,7 +198,7 @@ export const emptyTaskHandler = { }, } -export const getAuraSlotDuration = _.memoize(async (wasm: HexString, registry: Registry): Promise => { +export const getAuraSlotDuration = _.memoize(async (wasm: HexString): Promise => { const result = await runTask({ wasm, calls: [['AuraApi_slot_duration', []]], @@ -157,7 +207,17 @@ export const getAuraSlotDuration = _.memoize(async (wasm: HexString, registry: R runtimeLogLevel: 0, }) - if (!result.Call) throw new Error(result.Error) - const slotDuration = registry.createType('u64', hexToU8a(result.Call.result)).toNumber() - return slotDuration + if ('Error' in result) throw new Error(result.Error) + return u8aToBn(hexToU8a(result.Call.result).subarray(0, 8 /* u64: 8 bytes */)).toNumber() }) + +export const releaseWorker = async () => { + if (!__executor_worker) return + const executor = await __executor_worker + executor.remote[Comlink.releaseProxy]() + // this delay seems to fix hanging tests + // https://github.com/vitest-dev/vitest/issues/3077 + await new Promise((resolve) => setTimeout(resolve, 50)) + await executor.terminate() + __executor_worker = undefined +} diff --git a/packages/core/src/wasm-executor/node-wasm-executor.js b/packages/core/src/wasm-executor/node-wasm-executor.js new file mode 100644 index 00000000..ec00b9ab --- /dev/null +++ b/packages/core/src/wasm-executor/node-wasm-executor.js @@ -0,0 +1,30 @@ +import * as Comlink from 'comlink' +import * as pkg from '@tanssi/chopsticks-executor' + +import { parentPort } from 'node:worker_threads' +import nodeEndpoint from 'comlink/dist/umd/node-adapter.js' + +const getRuntimeVersion = async (code) => { + return pkg.get_runtime_version(code) +} + +// trie_version: 0 for old trie, 1 for new trie +const calculateStateRoot = async (entries, trie_version) => { + return pkg.calculate_state_root(entries, trie_version) +} + +const decodeProof = async (trieRootHash, keys, nodes) => { + return pkg.decode_proof(trieRootHash, keys, nodes) +} + +const createProof = async (nodes, entries) => { + return pkg.create_proof(nodes, entries) +} + +const runTask = async (task, callback) => { + return pkg.run_task(task, callback, process.env.RUST_LOG) +} + +const wasmExecutor = { runTask, getRuntimeVersion, calculateStateRoot, createProof, decodeProof } + +Comlink.expose(wasmExecutor, nodeEndpoint(parentPort)) diff --git a/packages/core/src/wasm-executor/node-worker.ts b/packages/core/src/wasm-executor/node-worker.ts new file mode 100644 index 00000000..89dabc59 --- /dev/null +++ b/packages/core/src/wasm-executor/node-worker.ts @@ -0,0 +1,15 @@ +import { wrap } from 'comlink' +import nodeEndpoint from 'comlink/dist/umd/node-adapter.js' +import threads from 'node:worker_threads' + +export const startWorker = async () => { + const worker = new threads.Worker(new URL('node-wasm-executor.js', import.meta.url), { + name: 'chopsticks-wasm-executor', + }) + return { + remote: wrap((nodeEndpoint as any)(worker)), + terminate: async () => { + await worker.terminate() + }, + } +} diff --git a/packages/core/src/xcm/downward.ts b/packages/core/src/xcm/downward.ts index e5f3ab3d..772d6a72 100644 --- a/packages/core/src/xcm/downward.ts +++ b/packages/core/src/xcm/downward.ts @@ -1,10 +1,10 @@ import { hexToU8a } from '@polkadot/util' -import { Blockchain } from '../blockchain' -import { DownwardMessage } from '../blockchain/txpool' -import { compactHex, getParaId } from '../utils' -import { logger } from '.' -import { setStorage } from '../utils/set-storage' +import { Blockchain } from '../blockchain/index.js' +import { DownwardMessage } from '../blockchain/txpool.js' +import { compactHex, getParaId } from '../utils/index.js' +import { logger } from './index.js' +import { setStorage } from '../utils/set-storage.js' export const connectDownward = async (relaychain: Blockchain, parachain: Blockchain) => { const meta = await relaychain.head.meta diff --git a/packages/core/src/xcm/horizontal.ts b/packages/core/src/xcm/horizontal.ts index 89aff7d6..a5f35fa9 100644 --- a/packages/core/src/xcm/horizontal.ts +++ b/packages/core/src/xcm/horizontal.ts @@ -1,9 +1,9 @@ import { HexString } from '@polkadot/util/types' import { hexToU8a } from '@polkadot/util' -import { Blockchain } from '../blockchain' -import { compactHex } from '../utils' -import { logger } from '.' +import { Blockchain } from '../blockchain/index.js' +import { compactHex } from '../utils/index.js' +import { logger } from './index.js' export const connectHorizontal = async (parachains: Record) => { for (const [id, chain] of Object.entries(parachains)) { diff --git a/packages/core/src/xcm/index.ts b/packages/core/src/xcm/index.ts index 26302525..cfe2cb18 100644 --- a/packages/core/src/xcm/index.ts +++ b/packages/core/src/xcm/index.ts @@ -1,9 +1,9 @@ -import { Blockchain } from '../blockchain' -import { connectDownward } from './downward' -import { connectHorizontal } from './horizontal' -import { connectUpward } from './upward' -import { defaultLogger } from '../logger' -import { getParaId } from '../utils' +import { Blockchain } from '../blockchain/index.js' +import { connectDownward } from './downward.js' +import { connectHorizontal } from './horizontal.js' +import { connectUpward } from './upward.js' +import { defaultLogger } from '../logger.js' +import { getParaId } from '../utils/index.js' export const logger = defaultLogger.child({ name: 'xcm' }) diff --git a/packages/core/src/xcm/upward.ts b/packages/core/src/xcm/upward.ts index cb4a12fe..668496ac 100644 --- a/packages/core/src/xcm/upward.ts +++ b/packages/core/src/xcm/upward.ts @@ -1,7 +1,7 @@ import { hexToU8a } from '@polkadot/util' -import { Blockchain } from '../blockchain' -import { compactHex, getParaId } from '../utils' +import { Blockchain } from '../blockchain/index.js' +import { compactHex, getParaId } from '../utils/index.js' export const connectUpward = async (parachain: Blockchain, relaychain: Blockchain) => { const meta = await parachain.head.meta diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index ee1be5db..04e967fb 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -1,12 +1,9 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "outDir": "lib", "rootDir": "src", - "target": "ESNext", - "lib": ["es6", "dom", "dom.iterable"], - "isolatedModules": true + "declarationDir": "dist/types" }, "include": ["src/**/*"], - "exclude": ["src/**/*.test.ts"], + "exclude": ["src/**/*.test.ts"] } diff --git a/packages/core/typedoc.json b/packages/core/typedoc.json new file mode 100644 index 00000000..a01e0167 --- /dev/null +++ b/packages/core/typedoc.json @@ -0,0 +1,8 @@ +{ + "entryPoints": ["src/index.ts"], + "out": "../../docs-src/core", + "plugin": "typedoc-plugin-markdown", + "readme": "none", + "excludePrivate": true, + "tsconfig": "tsconfig.json" +} diff --git a/packages/db/package.json b/packages/db/package.json new file mode 100644 index 00000000..58b27adc --- /dev/null +++ b/packages/db/package.json @@ -0,0 +1,50 @@ +{ + "name": "@tanssi/chopsticks-db", + "version": "0.9.2", + "author": "Moondance Labs", + "license": "Apache-2.0", + "type": "module", + "scripts": { + "clean": "rm -rf dist", + "build": "yarn clean && yarn build:cjs && yarn build:esm && yarn build:types", + "build:cjs": "swc ./src --config-file ../../.cjsswcrc -d dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json", + "build:esm": "swc ./src --config-file ../../.esmswcrc -d dist/esm", + "build:types": "tsc -p tsconfig.json --emitDeclarationOnly --outDir dist/types" + }, + "dependencies": { + "@polkadot/util": "^12.5.1", + "@tanssi/chopsticks-core": "workspace:*", + "idb": "^7.1.1", + "sqlite3": "^5.1.6", + "typeorm": "^0.3.17" + }, + "devDependencies": { + "@swc/cli": "0.1.62", + "@swc/core": "^1.3.96", + "typescript": "^5.2.2" + }, + "files": [ + "dist/esm/**", + "dist/cjs/**", + "dist/types/**" + ], + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/types/index.d.ts", + "exports": { + ".": { + "types": "./dist/types/index.d.ts", + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js", + "default": "./dist/esm/index.js" + }, + "./*": { + "types": "./dist/types/*.d.ts", + "require": "./dist/cjs/*.js", + "import": "./dist/esm/*.js", + "default": "./dist/esm/*.js" + }, + "./package.json": "./package.json", + "./package.cjs.json": "./dist/cjs/package.json" + } +} diff --git a/packages/db/src/base-sql.ts b/packages/db/src/base-sql.ts new file mode 100644 index 00000000..b5d174f8 --- /dev/null +++ b/packages/db/src/base-sql.ts @@ -0,0 +1,77 @@ +import { BlockEntry, Database, KeyValueEntry } from '@tanssi/chopsticks-core' +import { DataSource } from 'typeorm' +import { HexString } from '@polkadot/util/types' + +import { BlockEntity, KeyValuePair } from './db/entities.js' + +export abstract class BaseSqlDatabase implements Database { + abstract datasource: Promise + + close = async () => { + const db = await this.datasource + await db.destroy() + } + + async saveBlock(block: BlockEntry) { + const db = await this.datasource + + const { hash, number, header, extrinsics, parentHash, storageDiff } = block + + await db.transaction(async (transactionalEntityManager) => { + await transactionalEntityManager.getRepository(BlockEntity).delete({ number }) + await transactionalEntityManager.getRepository(BlockEntity).upsert( + { + hash, + number, + header, + extrinsics, + parentHash, + storageDiff, + }, + ['hash'], + ) + }) + } + + async queryBlock(hash: HexString): Promise { + const db = await this.datasource + return db.getRepository(BlockEntity).findOne({ where: { hash } }) + } + + async queryBlockByNumber(number: number): Promise { + const db = await this.datasource + return db.getRepository(BlockEntity).findOne({ where: { number }, order: { number: 'desc' } }) + } + + async queryHighestBlock(): Promise { + const db = await this.datasource + return db.getRepository(BlockEntity).findOne({ where: {}, order: { number: 'desc' } }) + } + + async deleteBlock(hash: HexString) { + const db = await this.datasource + await db.getRepository(BlockEntity).delete({ hash }) + } + + async blocksCount(): Promise { + const db = await this.datasource + return db.getRepository(BlockEntity).count() + } + + async saveStorage(blockHash: HexString, key: HexString, value: HexString | null) { + const db = await this.datasource + await db.getRepository(KeyValuePair).upsert( + { + blockHash, + key, + value, + }, + ['blockHash', 'key'], + ) + } + + async queryStorage(blockHash: HexString, key: HexString): Promise { + const db = await this.datasource + return db.getRepository(KeyValuePair).findOne({ where: { blockHash, key } }) + } +} diff --git a/packages/db/src/browser.ts b/packages/db/src/browser.ts new file mode 100644 index 00000000..e41487bd --- /dev/null +++ b/packages/db/src/browser.ts @@ -0,0 +1,81 @@ +import { BlockEntry, Database, KeyValueEntry } from '@tanssi/chopsticks-core' +import { DBSchema, IDBPDatabase, openDB } from 'idb' + +interface Schema extends DBSchema { + keyValue: { + key: string + value: string | null + } + block: { + key: string + value: BlockEntry + indexes: { byNumber: number } + } +} +export class IdbDatabase implements Database { + datasource: Promise> + + constructor(location: string) { + this.datasource = openDB(location, 1, { + upgrade(db) { + db.createObjectStore('keyValue') + const blockStore = db.createObjectStore('block', { keyPath: 'hash' }) + blockStore.createIndex('byNumber', 'number') + }, + }) + } + + async close(): Promise { + const db = await this.datasource + db.close() + } + + async saveBlock(block: BlockEntry): Promise { + const db = await this.datasource + const tx = db.transaction(['block'], 'readwrite') + const store = tx.objectStore('block') + store.delete(block.hash) + store.put(block) + await tx.done + } + + async queryBlock(hash: `0x${string}`): Promise { + const db = await this.datasource + const block = await db.get('block', hash) + return block ?? null + } + + async queryBlockByNumber(number: number): Promise { + const db = await this.datasource + const block = await db.getFromIndex('block', 'byNumber', number) + return block ?? null + } + + async queryHighestBlock(): Promise { + const db = await this.datasource + const index = db.transaction('block').store.index('byNumber') + const cursor = await index.openCursor(null, 'prev') + return cursor?.value ?? null + } + + async deleteBlock(hash: `0x${string}`): Promise { + const db = await this.datasource + await db.delete('block', hash) + } + + async blocksCount(): Promise { + const db = await this.datasource + return db.count('block') + } + + async saveStorage(blockHash: `0x${string}`, key: `0x${string}`, value: `0x${string}` | null): Promise { + const db = await this.datasource + await db.put('keyValue', value, `${blockHash}-${key}`) + } + + async queryStorage(blockHash: `0x${string}`, key: `0x${string}`): Promise { + const db = await this.datasource + const value = await db.get('keyValue', `${blockHash}-${key}`) + return value !== undefined ? { blockHash, key, value } : null + } +} diff --git a/packages/core/src/db/entities.ts b/packages/db/src/db/entities.ts similarity index 63% rename from packages/core/src/db/entities.ts rename to packages/db/src/db/entities.ts index a07762f6..9175a439 100644 --- a/packages/core/src/db/entities.ts +++ b/packages/db/src/db/entities.ts @@ -1,12 +1,7 @@ +import { BlockEntry, KeyValueEntry } from '@tanssi/chopsticks-core' import { EntitySchema } from 'typeorm' -import { Header } from '@polkadot/types/interfaces' -import { HexString } from '@polkadot/util/types' -export const KeyValuePair = new EntitySchema<{ - blockHash: string - key: string - value: string | null -}>({ +export const KeyValuePair = new EntitySchema({ name: 'KeyValuePair', columns: { blockHash: { @@ -26,14 +21,7 @@ export const KeyValuePair = new EntitySchema<{ }, }) -export const BlockEntity = new EntitySchema<{ - hash: HexString - number: number - header: Header - parentHash: HexString | null - extrinsics: HexString[] - storageDiff: Record | null -}>({ +export const BlockEntity = new EntitySchema({ name: 'Block', columns: { hash: { @@ -46,7 +34,7 @@ export const BlockEntity = new EntitySchema<{ nullable: false, }, header: { - type: 'simple-json', + type: 'text', nullable: false, }, parentHash: { diff --git a/packages/core/src/db/node.ts b/packages/db/src/db/index.ts similarity index 58% rename from packages/core/src/db/node.ts rename to packages/db/src/db/index.ts index 7b9c764f..3d3f0ab2 100644 --- a/packages/core/src/db/node.ts +++ b/packages/db/src/db/index.ts @@ -1,6 +1,6 @@ import { DataSource } from 'typeorm' -import * as entities from './entities' +import * as entities from './entities.js' export const openDb = async (dbPath: string): Promise => { const source = new DataSource({ @@ -9,6 +9,9 @@ export const openDb = async (dbPath: string): Promise => { entities: Object.values(entities), synchronize: true, logging: false, + enableWAL: true, // improve performance and concurrency + busyErrorRetry: 1000, // typeorm retry timeout + busyTimeout: 5000, // retry for 5 seconds, sqlite PRAGMA busy_timeout }) await source.initialize() diff --git a/packages/db/src/index.ts b/packages/db/src/index.ts new file mode 100644 index 00000000..6714c622 --- /dev/null +++ b/packages/db/src/index.ts @@ -0,0 +1,13 @@ +import { DataSource } from 'typeorm' + +import { BaseSqlDatabase } from './base-sql.js' +import { openDb } from './db/index.js' + +export class SqliteDatabase extends BaseSqlDatabase { + datasource: Promise + + constructor(location: string) { + super() + this.datasource = openDb(location) + } +} diff --git a/packages/db/tsconfig.json b/packages/db/tsconfig.json new file mode 100644 index 00000000..67521d76 --- /dev/null +++ b/packages/db/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "declarationDir": "dist/types" + }, + "include": ["src/**/*.ts"], + "exclude": ["src/**/*.test.ts"], + "references": [{ "path": "../core/tsconfig.json" }] +} diff --git a/packages/e2e/package.json b/packages/e2e/package.json index 1917ce45..f3ec9f88 100644 --- a/packages/e2e/package.json +++ b/packages/e2e/package.json @@ -1,21 +1,23 @@ { "name": "@tanssi/chopsticks-e2e", - "author": "", + "author": "Moondance Labs", "license": "Apache-2.0", "private": true, + "type": "module", "scripts": { "sidecar": "sh ./scripts/sidecar-chopsticks.sh" }, "engines": { - "node": ">=v14" + "node": ">=v18" }, "dependencies": { - "@polkadot/api": "^10.9.1", - "@tanssi/chopsticks": "workspace:*", - "@tanssi/chopsticks-testing": "workspace:*" + "@polkadot/api": "^10.9.1" }, "devDependencies": { - "typescript": "^5.1.6", - "vitest": "^0.34.2" + "@polkadot/api": "^10.10.1", + "@tanssi/chopsticks": "workspace:*", + "@tanssi/chopsticks-testing": "workspace:*", + "typescript": "^5.2.2", + "vitest": "^0.34.6" } } diff --git a/packages/e2e/scripts/sidecar-chopsticks.sh b/packages/e2e/scripts/sidecar-chopsticks.sh index 8617a4de..3a9024d8 100755 --- a/packages/e2e/scripts/sidecar-chopsticks.sh +++ b/packages/e2e/scripts/sidecar-chopsticks.sh @@ -2,39 +2,53 @@ set -x -# clone sidecard -git clone https://github.com/paritytech/substrate-api-sidecar.git - # run chopsticks node -yarn dev:acala --port 8011 & ACALA_PID=$! -yarn dev:karura --port 8012 & KARURA_PID=$! +yarn script:start -c acala --port 8011 & ACALA_PID=$! +yarn script:start -c karura --port 8012 & KARURA_PID=$! + +printf "Waiting for chains to be ready" +attempts=30 # 5 minutes +until nc -z localhost 8011 && nc -z localhost 8012; do + attempts=$((attempts - 1)) + if [ $attempts -eq 0 ]; then + echo "Chains failed to start" + exit 1 + fi + sleep 5 +done + +SAS_SUBSTRATE_URL=ws://127.0.0.1:8011 SAS_EXPRESS_PORT=8111 npx --yes @substrate/api-sidecar & ACALA_SIDECAR_PID=$! +SAS_SUBSTRATE_URL=ws://127.0.0.1:8012 SAS_EXPRESS_PORT=8112 npx --yes @substrate/api-sidecar & KARURA_SIDECAR_PID=$! + +printf "Waiting for sidecars to be ready" +attempts=30 # 5 minutes +until nc -z localhost 8111 && nc -z localhost 8112; do + attempts=$((attempts - 1)) + if [ $attempts -eq 0 ]; then + echo "Sidecars failed to start" + exit 1 + fi + sleep 5 +done + +# clone sidecard +git clone --depth 1 --branch v17.2.0 --single-branch https://github.com/paritytech/substrate-api-sidecar.git # prepare sidecar cd substrate-api-sidecar +yarn install -yarn -yarn add -D ts-node - -SAS_SUBSTRATE_URL=ws://127.0.0.1:8011 SAS_EXPRESS_PORT=8111 yarn ts-node src/main.ts & ACALA_SIDECAR_PID=$! -SAS_SUBSTRATE_URL=ws://127.0.0.1:8012 SAS_EXPRESS_PORT=8112 yarn ts-node src/main.ts & KARURA_SIDECAR_PID=$! - -# wait a bit for it to be ready -sleep 10 - -# run the tests -yarn ts-node e2e-tests/latest/index.ts --chain acala --url http://127.0.0.1:8111 +npx --yes ts-node --transpile-only e2e-tests/latest/index.ts --chain acala --url http://127.0.0.1:8111 ACALA_TEST_RESULT=$? -yarn ts-node e2e-tests/latest/index.ts --chain karura --url http://127.0.0.1:8112 +npx --yes ts-node --transpile-only e2e-tests/latest/index.ts --chain karura --url http://127.0.0.1:8112 KARURA_TEST_RESULT=$? cd .. # cleanup -kill $ACALA_SIDECAR_PID -kill $KARURA_SIDECAR_PID -kill $ACALA_PID -kill $KARURA_PID +kill -s INT $(pgrep -P $ACALA_SIDECAR_PID) $(pgrep -P $KARURA_SIDECAR_PID) +kill $ACALA_SIDECAR_PID $KARURA_SIDECAR_PID $ACALA_PID $KARURA_PID rm -rf substrate-api-sidecar diff --git a/packages/e2e/src/__snapshots__/author.test.ts.snap b/packages/e2e/src/__snapshots__/author.test.ts.snap index 937f4685..27df6ed5 100644 --- a/packages/e2e/src/__snapshots__/author.test.ts.snap +++ b/packages/e2e/src/__snapshots__/author.test.ts.snap @@ -18,6 +18,114 @@ exports[`author rpc > works 1`] = ` ], [ SubmittableResult { + "blockNumber": 3000001, + "dispatchError": undefined, + "dispatchInfo": { + "class": "Normal", + "paysFee": "Yes", + "weight": { + "proofSize": 0, + "refTime": 272785000, + }, + }, + "events": [ + { + "event": { + "data": [ + "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + 2420001756, + ], + "index": "0x0a08", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + "25cGUumcLHxwFuSnBkPnL8h8UnotvUEJVqfYFb7TPueVg5mU", + 100, + ], + "index": "0x0a02", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + "23M5ttkmR6KcoTAAE6gcmibnKFtVaTP5yxnY8HF1BmrJ2A1i", + 2420001756, + ], + "index": "0x0a07", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + 2420001756, + ], + "index": "0x1406", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + 2420001756, + 0, + 0, + ], + "index": "0x0e03", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + { + "class": "Normal", + "paysFee": "Yes", + "weight": { + "proofSize": 0, + "refTime": 272785000, + }, + }, + ], + "index": "0x0000", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + ], + "internalError": undefined, + "status": { + "inBlock": "0xeb8569300f4100e47e93ad71ddc36856dc1aaeecef78a2e20b9e49eb3a810c5f", + }, + "txHash": "0xde9a25fc11cab85850e9d903f1f013f4496c180a818851bd4858fc86fa7e584b", + "txIndex": 2, + }, + ], + [ + SubmittableResult { "blockNumber": 3000001, "dispatchError": undefined, "dispatchInfo": { @@ -132,7 +240,7 @@ exports[`author rpc > works 2`] = ` "block": { "extrinsics": [ "0x280401000b3c66a3778601", - "0x6145041e00e9026dc2421628217c7cbd600bd22ed731fe85fcef75d569aeb9edba2c0ea8a98bdbfe1ab700b3280bd77f399259fbfde7411d9917c5babdce1d6bc8be7d6a11a864a8fffe862347f0db9429f7a2af71152c9630ec5e5c597342b7002a0598318a5de6074b0b08066175726120e5785408000000000561757261010110c8a597be6f8dd375a90d89f9bf7b546be0f9a9ffda7c7c2f26e85194945f0ddd99348e44cd15348b7ac8d7363ed45729ba0a0fdce48e8e36a24af48bbe268efe0adb008b2be80c473c1e689c14a6a7efb7b255e035170d019587e3cc097ba2bcb81f9c00005000b0cc5703f5a4efb16ffa83d00700009424e8030000d4070000d6070000db070000dc070000f0070000f2070000f3070000f50700009d015d01c872d0ebaf85d0070000f50700005501e8030000009001000090010000000000000000000191839011893cecc504dbbc591d77f997a039dcc2ec72cd23895b9491400fb06700e8764817000000000000000000000000e8764817000000000000000000000019015d0bc334ef110d8af5070000d0070000d4e80300000090010000900100000000000000000001a74504d51260cdd1247bb6aa66bff0790464a366a78a18537c05fdf8fc07959f19015e046fae65527199f2070000d0070000d4e80300000090010000900100000000000000000001d215338f1e8f2523ca3d226552e88407386459e3ec7af33ea19dd27cf618581819015e04d2a15ab51127e8030000d0070000d4e80300000090010000900100000000000000000001d6f0c46ca516758d16838363477c00849a3dc8bce5ab3115882ac240c1d9648819015e057a605f506cfcd4070000d0070000d4e8030000009001000090010000000000000000000155093e463274cf133ead99c0d3c7422af7156080057df440373c997e57713dd319015e1c472775baca93f0070000d0070000d4e803000000900100009001000000000000000000010cb35d6b29a23eb53f2482badf1df31b9563da6752d00c6bcbca0d86cb98d3189d015e36ad4314650419d0070000f00700005501e803000000900100009001000000000000000000011e64505180d8a57d36e91ade40370774e30251d2f5865eea82aff8d43db0ffa700e8764817000000000000000000000000e876481700000000000000000000009d015e36c65ca123d5fbd0070000dc0700005501e80300000090010000900100000000000000000001826d774568396fdc7a86e19f850b1f2fc587c3bb766f652d14703e757a40a3ec00e8764817000000000000000000000000e87648170000000000000000000000c45e414cb008e0e61e46722aa60abdd67280b2ef81c981ec75170f14a8e18ab732a51a5151f7a58edb96f7137fc3aeeb48a119015e4361975d97255ddb070000d0070000d4e803000000900100009001000000000000000000018c74408c28f6627f58a8e10b3ec06b98b0166bfb148641a35c5cdfc7a56e68fb9d015e4be1ee506d55f8d0070000f30700005501e8030000009001000090010000000000000000000159898a2874487a46052f949bdc904ec14c45f5597fec9a64e53c73e1b15ae53900e8764817000000000000000000000000e876481700000000000000000000009d015e4f36708366b722d0070000e80300005501e803000000900100009001000000000000000000012e36e968e3ebab1ca3d34227d9140cb18bdd6a2fa79c81367c1d1161b5dfc0be00e8764817000000000000000000000000e8764817000000000000000000000019015e55c8e02d73966fd6070000d0070000d4e8030000009001000090010000000000000000000110a629dc8ad16cccd275c563a1a661bc266547934a7248d0dc1760a6aa8b5aa119015e8b652b2ae6ed1ddc070000d0070000d4e80300000090010000900100000000000000000001da4454c42d9af525d41150d2695f97ba755135d903f913af6cc53c3236d0281319015e968c2de8299067f3070000d0070000d4e80300000090010000900100000000000000000001c62b0fe87d05f8fea79214b917402334c0c8e88f07b969c82cf8891110201cdc9d015ea99274c2ff3639d0070000d60700005501e80300000090010000900100000000000000000001b5a80d571fccbb2e43ed84094706bbcacc2864e4ff8c37601995328ba9cd5f2c00e8764817000000000000000000000000e876481700000000000000000000009d015ec648b30353eed1d0070000db0700005501e8030000009001000090010000000000000000000100382d804f7b02c95c2d6b3b6a9cad2c97c2d7570bdfd32f8e8d961754b74b6d00e8764817000000000000000000000000e87648170000000000000000000000c45ee678799d3eff024253b90e84927cc680e72158d94abb352cf6f5b1acba2c15102148086d66f593f2818a03dcfe4815c4cc5f0077dfdb8adb10f78f10a5df8742c5458401b03037b418240790983e5d8d9aa9c2298fb208d039be7dced07bd66a648f6cc989035f04b49d95320d9021994c850f25b8e3853d030000a000005000000a00000000c8000000c800000a0000000a00000040380000580200000000500000c800000700e8764817020040011e0000000000000000e8764817000000000000000000000000e87648170000000000000000000000e8030000009001001e00000000000000009001004038000000000000000000000a0000000a0000000a00000001000000010500000001c8000000060000005802000002000000580200000200000059000000000000001e000000280000000700c817a80402004001010200000014000000a1015f050452a22bee61fad0070000f20700005501e8030000009001000090010000000000000000000134aff2e1cead7ca582e534e40f781c53162dfc70850507a96e8fb0cfdda5902d00e8764817000000000000000000000000e87648170000000000000000000000a1015f0fb7edc4cbc65e03d0070000d40700005501e8030000009001000090010000000000000000000140223c4f750207f3d42f737fd80e5df5691e274d2d5d264f1144f91dbb9e93b200e8764817000000000000000000000000e8764817000000000000000000000039017f17f78c98723ddc9073523ef3beefda0c4d7fefc408aac59dbfe80a72ac8e3ce563f5a4efb16ffa83d007000080ef60a9c5316d14504c092ec93ffe3f4cee4abfb9f248fedb1b9f3b64beb2b9ec150180001280ce308110f66298738301f634f91cd726fc260e327d4492ad183ab751736873ad8089d5a66c2c000a7d5ab25b252208b339267579174bef0dd044a51e599f945af115018000148047cbac8a30955e5a540066f6f2573309f22c3806882ffab67acc837f3f0b8eb0802756f6495ff1d085452661a5b5f3517959c2033c7c50d65cbcaf686781b0e57a1501800042800d2ea2354a07355a4cd0ab6d47a8ea0d12883bc57d03fbf6eb43154bab62e9f180f93bec29ee69b15649c10a80aabc65e29e265cbcad488452e47593b24885e93615018000c080b53c079fb3b3bc82049775eb4380f05dd48b80eda9494c9d2c1e9e76068eae8380009f5f4ea2d549e447b59d55b885a2e25c8ed61723eeb76bc4f06c1cd6e1d370150180041080759c64163f34a8957bc55792496338b24c698f0a5854edabb88f0df5a7779656808f0b48e8ae1df1a38e29d5f455957822dbd7f977016d0ebe567f31bf8969ccf8f480042078767bbb460270642b5bcaf032ea04d56a071ceff5b0f64d362e0800000400685ead6eef5c4b1c68eaa71ea17a02d9de24042e080000a8e8da00150180080280538bdf5c67a651e3bfdef47a0ea3e5f5b397965896799f1c6d843be2ba8d47dc80b7c605c7563374528b234bc353547805cd34fdea195429d681aca0c1f6b1dc4a150180080480b413ffde04b6762ff69bc50a6b94a88640ac1ce61b7fa7c1232e4a59838e8435805c48cf1601b28968c9f86c8e19a3d4f6999ee8b286df9f4ec81c505ca55bfcb01501801040806eb6c6756cf0cfc8fa41ff99dd5fd326a4abb0275e2bcecbf5530d34c492084080692755c9209155bd724071de137657f492de5bb5479738d1af7119739b4df4739901802030803129a5fa44877dada94ec460b3c9088c278e055be1d23a2121b120a91f48af0380364b714beff27681e21de331f20d3997419eb42298f732eddf299d59b02b93b080c477bab53b9a4bd8999263881ae020ccb149554346f8826b06d3d2b2fa4fd1be15018020408093a03a7836ee5bec1258447e650ffef0902095cc17d61f5ed4d92a8456283be08089126fbac7cc530e791f8755392432ce3d3221fd580cd709a1faf911326c5e4da1028043908044d481ad3f328b3fe2328d0dc1f8d17a321c7a3d623fe6cb65bd1dfeb587b07f8021458a366d19687aafe0d6a0ad3a2675d8192dce77d66da88d213c7a9f66a63580046503aca48ee225e7d48cca548c1f868dac05c21071e34e20a389b9b81af1a08068707a6ad5c663a1a6c8df17ee140b52c97f9b00821f1d17903d08d0dedc88a580da68cf8effc6c5ec15c0f401c4ee20e662248c1c185495886f6f92b51744d3ccd5019e0da05ca59913bc38a8630590f2627c028880c0db2fe9604143d7099d814dc44c6a7cea5d1560f50154b74975affa47ff1a2d80f726dbac340c690e07a097ce70495484854d6cd8063689cce6795ce1dd24ad26809811101556b9e7b5851d471b2aa26fa83c39f23ad4a2e10f231d7e9ff1c3967b81019f012b746dcf32e843354583c9702cc020e0004c570f9d7e46afdef838d80700001404db07000080cc0c38844aaa6edb1a75664c79c04a921573e48fa1dac5b44102cba2e60e4b315c5700bd9a93e85e3ce1d20700002408d6070000dc07000009019f05207f03cfdce586301014700e2c25934040685f0d9ef3b78afddab7f5c7142131132ad42001000000000000004c5f0ec2d17a76153ff51817f12d9cfc3c7f0400f1049f06604cff828a6e3f579ca6c59ace013d15af80a0fe6ba3173a5610b329a79f0162abce9c09672dbcf40a64b15d1e1c1892a27e802eca601679af9438dc9b531d77051b01bb17d5b2ea8bd96eff87db22ab5ed00680f3e9944c6d6140056fed7bceb8fb89db73e104fdc23b7f01d7576e7fb404988d804822186f7e32ff008dd0e75223aff46aa1755a32cc305580d914ee39fb38efe480fe722aebe8d31918bef2cac98aaa6f83977aa141db59fa6f60c5c7ad3cee725b80ecf5286845658ee48742709acc130eeb2d9711f64aa9ecd779546b33d3fe325780f489c06c1bf9de85c1fd1ffc66e7df5819ff9332c8aa175355d7b15fad9ef42d80ee16b9cd2becf317db1b39987478ec63ddc9bb8596fc0a898d1d0991db0308688011c94f20b3f6e285e1f4bba428e6afb9f174bd387a59aa4ad56747a5c4e353da75019f06de3d8a54d27e44a9d5ce189618f22d3008505f0e7b9012096b41c4eb3aaf947f6ea4290803004c5f03b4123b2e186e07fb7bad5dda5f55c004008057ab6abcf895dece27a356a900a7daab1355e0d2c9dacb1b2930ee85d3f31970ed029f0cb6f36e027abb2091cfb5110ab5087f9960685f06155b3cd9a8c9e5e9a23fd5dc13a5ed20cdf1a81000000000685f08316cbf8fa0da822a20ac1c55bf1be3207917000000000000505f0e7b9012096b41c4eb3aaf947f6ea42908000080670ea368cff00a419fb56bb1d23af27aca293992767621adebbda85bb216ede08092a93e39afd3cc5bfdf61fd75467b311989c8a11182041748f1627e0b7264358685f090e2fbf2d792cb324bffa9427fe1f0e20c5fcda002306db0081019f0d3719f5b0b12c7105c073c507445948e0004c570f9d7e46afdef838d80700001404db07000080cc0c38844aaa6edb1a75664c79c04a921573e48fa1dac5b44102cba2e60e4b315c5700bd9a93e85e3ce1d20700002408d6070000dc07000071019f0d710b30bd2eab0352ddcc26417aa19440824c5f03c716fb8fff3de61a883bb76adb34a204004c5f0f4993f016e2d2f8e5f43be7bb259486040080eb9e930dcfcab68937051ca6533d25491657fa4fb17f00358b95dcea542623e70024e803000000d407000000d607000000db07000000dc07000000f007000000f207000000f307000000f507000000", + "0x5949041e00e9026dc2421628217c7cbd600bd22ed731fe85fcef75d569aeb9edba2c0ea8a98bdbfe1ab700b3280bd77f399259fbfde7411d9917c5babdce1d6bc8be7d6a11a864a8fffe862347f0db9429f7a2af71152c9630ec5e5c597342b7002a0598318a5de6074b0b08066175726120e5785408000000000561757261010110c8a597be6f8dd375a90d89f9bf7b546be0f9a9ffda7c7c2f26e85194945f0ddd99348e44cd15348b7ac8d7363ed45729ba0a0fdce48e8e36a24af48bbe268efe0adb00b9f5a00d8d0e9e38cc22938fc94e891515e808fcfd2d61f0689012cefefaf41200005000b4cc5703f5a4efb16ffa83d00700009424e8030000d4070000d6070000db070000dc070000f0070000f2070000f3070000f50700009d015d01c872d0ebaf85d0070000f50700005501e8030000009001000090010000000000000000000191839011893cecc504dbbc591d77f997a039dcc2ec72cd23895b9491400fb06700e8764817000000000000000000000000e8764817000000000000000000000019015d0bc334ef110d8af5070000d0070000d4e80300000090010000900100000000000000000001a74504d51260cdd1247bb6aa66bff0790464a366a78a18537c05fdf8fc07959f19015e046fae65527199f2070000d0070000d4e80300000090010000900100000000000000000001d215338f1e8f2523ca3d226552e88407386459e3ec7af33ea19dd27cf618581819015e04d2a15ab51127e8030000d0070000d4e80300000090010000900100000000000000000001d6f0c46ca516758d16838363477c00849a3dc8bce5ab3115882ac240c1d9648819015e057a605f506cfcd4070000d0070000d4e8030000009001000090010000000000000000000155093e463274cf133ead99c0d3c7422af7156080057df440373c997e57713dd319015e1c472775baca93f0070000d0070000d4e803000000900100009001000000000000000000010cb35d6b29a23eb53f2482badf1df31b9563da6752d00c6bcbca0d86cb98d3189d015e36ad4314650419d0070000f00700005501e803000000900100009001000000000000000000011e64505180d8a57d36e91ade40370774e30251d2f5865eea82aff8d43db0ffa700e8764817000000000000000000000000e876481700000000000000000000009d015e36c65ca123d5fbd0070000dc0700005501e80300000090010000900100000000000000000001826d774568396fdc7a86e19f850b1f2fc587c3bb766f652d14703e757a40a3ec00e8764817000000000000000000000000e87648170000000000000000000000c45e414cb008e0e61e46722aa60abdd67280b2ef81c981ec75170f14a8e18ab732a51a5151f7a58edb96f7137fc3aeeb48a119015e4361975d97255ddb070000d0070000d4e803000000900100009001000000000000000000018c74408c28f6627f58a8e10b3ec06b98b0166bfb148641a35c5cdfc7a56e68fb9d015e4be1ee506d55f8d0070000f30700005501e8030000009001000090010000000000000000000159898a2874487a46052f949bdc904ec14c45f5597fec9a64e53c73e1b15ae53900e8764817000000000000000000000000e876481700000000000000000000009d015e4f36708366b722d0070000e80300005501e803000000900100009001000000000000000000012e36e968e3ebab1ca3d34227d9140cb18bdd6a2fa79c81367c1d1161b5dfc0be00e8764817000000000000000000000000e8764817000000000000000000000019015e55c8e02d73966fd6070000d0070000d4e8030000009001000090010000000000000000000110a629dc8ad16cccd275c563a1a661bc266547934a7248d0dc1760a6aa8b5aa119015e8b652b2ae6ed1ddc070000d0070000d4e80300000090010000900100000000000000000001da4454c42d9af525d41150d2695f97ba755135d903f913af6cc53c3236d0281319015e968c2de8299067f3070000d0070000d4e80300000090010000900100000000000000000001c62b0fe87d05f8fea79214b917402334c0c8e88f07b969c82cf8891110201cdc9d015ea99274c2ff3639d0070000d60700005501e80300000090010000900100000000000000000001b5a80d571fccbb2e43ed84094706bbcacc2864e4ff8c37601995328ba9cd5f2c00e8764817000000000000000000000000e876481700000000000000000000009d015ec648b30353eed1d0070000db0700005501e8030000009001000090010000000000000000000100382d804f7b02c95c2d6b3b6a9cad2c97c2d7570bdfd32f8e8d961754b74b6d00e8764817000000000000000000000000e87648170000000000000000000000c45ee678799d3eff024253b90e84927cc680e72158d94abb352cf6f5b1acba2c15102148086d66f593f2818a03dcfe4815c4cc5f0077dfdb8adb10f78f10a5df8742c5458401b03037b418240790983e5d8d9aa9c2298fb208d039be7dced07bd66a648f6cc989035f04b49d95320d9021994c850f25b8e3853d030000a000005000000a00000000c8000000c800000a0000000a00000040380000580200000000500000c800000700e8764817020040011e0000000000000000e8764817000000000000000000000000e87648170000000000000000000000e8030000009001001e00000000000000009001004038000000000000000000000a0000000a0000000a00000001000000010500000001c8000000060000005802000002000000580200000200000059000000000000001e000000280000000700c817a80402004001010200000014000000a1015f050452a22bee61fad0070000f20700005501e8030000009001000090010000000000000000000134aff2e1cead7ca582e534e40f781c53162dfc70850507a96e8fb0cfdda5902d00e8764817000000000000000000000000e87648170000000000000000000000a1015f0fb7edc4cbc65e03d0070000d40700005501e8030000009001000090010000000000000000000140223c4f750207f3d42f737fd80e5df5691e274d2d5d264f1144f91dbb9e93b200e8764817000000000000000000000000e876481700000000000000000000006d03770b3c252fcb29d88eff4f3de5de4476c363f5a4efb16ffa83d0070000f102e902cac10a54e37c1be8a246fc02dd2c4291a56de6d943281f602fda356dd033a235021bb700f83f40ca30a11be3d673ec0fb8d5ae939a4bc84a9bc2133f401e7d037355ad9b1a34a52b81a75c5b23f1efe97bbbd41f7d6b0eb6d0abd0b9fd87fe5d5d7e7d0b08066175726120e678540800000000056175726101010094fed33221b9de74104ba29b4b62e704442e6cdb37c808999df8b26f34ad50fb3319f8c549528ed8985e8e762a5ca5746a0caf4cb97074968e767b5afb3f8139017f17f78c98723ddc9073523ef3beefda0c4d7fefc408aac59dbfe80a72ac8e3ce563f5a4efb16ffa83d007000080ef60a9c5316d14504c092ec93ffe3f4cee4abfb9f248fedb1b9f3b64beb2b9ec150180001280ce308110f66298738301f634f91cd726fc260e327d4492ad183ab751736873ad8089d5a66c2c000a7d5ab25b252208b339267579174bef0dd044a51e599f945af115018000148047cbac8a30955e5a540066f6f2573309f22c3806882ffab67acc837f3f0b8eb0802756f6495ff1d085452661a5b5f3517959c2033c7c50d65cbcaf686781b0e57a1501800042800d2ea2354a07355a4cd0ab6d47a8ea0d12883bc57d03fbf6eb43154bab62e9f180f93bec29ee69b15649c10a80aabc65e29e265cbcad488452e47593b24885e93615018000c080b53c079fb3b3bc82049775eb4380f05dd48b80eda9494c9d2c1e9e76068eae8380009f5f4ea2d549e447b59d55b885a2e25c8ed61723eeb76bc4f06c1cd6e1d370150180041080759c64163f34a8957bc55792496338b24c698f0a5854edabb88f0df5a7779656808f0b48e8ae1df1a38e29d5f455957822dbd7f977016d0ebe567f31bf8969ccf8f480042078767bbb460270642b5bcaf032ea04d56a071ceff5b0f64d362e0800000400685ead6eef5c4b1c68eaa71ea17a02d9de24042e080000a8e8da00150180080280538bdf5c67a651e3bfdef47a0ea3e5f5b397965896799f1c6d843be2ba8d47dc80b7c605c7563374528b234bc353547805cd34fdea195429d681aca0c1f6b1dc4a150180080480b413ffde04b6762ff69bc50a6b94a88640ac1ce61b7fa7c1232e4a59838e8435805c48cf1601b28968c9f86c8e19a3d4f6999ee8b286df9f4ec81c505ca55bfcb01501801040806eb6c6756cf0cfc8fa41ff99dd5fd326a4abb0275e2bcecbf5530d34c492084080692755c9209155bd724071de137657f492de5bb5479738d1af7119739b4df4739901802030803129a5fa44877dada94ec460b3c9088c278e055be1d23a2121b120a91f48af0380364b714beff27681e21de331f20d3997419eb42298f732eddf299d59b02b93b080c477bab53b9a4bd8999263881ae020ccb149554346f8826b06d3d2b2fa4fd1be15018020408093a03a7836ee5bec1258447e650ffef0902095cc17d61f5ed4d92a8456283be08089126fbac7cc530e791f8755392432ce3d3221fd580cd709a1faf911326c5e4da1028043908044d481ad3f328b3fe2328d0dc1f8d17a321c7a3d623fe6cb65bd1dfeb587b07f80518e5c5358c34f6af7821694a9e5ad8404168c9dcef19f69881c9dba2ec309da80046503aca48ee225e7d48cca548c1f868dac05c21071e34e20a389b9b81af1a080d6f60a690c50dd64d9f4e27251e1fa6233fc47d763e7d9b8494b692b4e1af19e80da68cf8effc6c5ec15c0f401c4ee20e662248c1c185495886f6f92b51744d3ccd5019e0da05ca59913bc38a8630590f2627c028880c0db2fe9604143d7099d814dc44c6a7cea5d1560f50154b74975affa47ff1a2d80f726dbac340c690e07a097ce70495484854d6cd8063689cce6795ce1dd24ad26809811101556b9e7b5851d471b2aa26fa83c39f23ad4a2e10f231d7e9ff1c3967b81019f012b746dcf32e843354583c9702cc020e0004c570f9d7e46afdef838d80700001404db07000080cc0c38844aaa6edb1a75664c79c04a921573e48fa1dac5b44102cba2e60e4b315c5700bd9a93e85e3ce1d20700002408d6070000dc07000009019f05207f03cfdce586301014700e2c25934040685f0d9ef3b78afddab7f5c7142131132ad42001000000000000004c5f0ec2d17a76153ff51817f12d9cfc3c7f0400f1049f06604cff828a6e3f579ca6c59ace013d15af80a0fe6ba3173a5610b329a79f0162abce9c09672dbcf40a64b15d1e1c1892a27e802eca601679af9438dc9b531d77051b01bb17d5b2ea8bd96eff87db22ab5ed00680f3e9944c6d6140056fed7bceb8fb89db73e104fdc23b7f01d7576e7fb404988d804822186f7e32ff008dd0e75223aff46aa1755a32cc305580d914ee39fb38efe480fe722aebe8d31918bef2cac98aaa6f83977aa141db59fa6f60c5c7ad3cee725b80ecf5286845658ee48742709acc130eeb2d9711f64aa9ecd779546b33d3fe325780f489c06c1bf9de85c1fd1ffc66e7df5819ff9332c8aa175355d7b15fad9ef42d80ee16b9cd2becf317db1b39987478ec63ddc9bb8596fc0a898d1d0991db0308688011c94f20b3f6e285e1f4bba428e6afb9f174bd387a59aa4ad56747a5c4e353da75019f06de3d8a54d27e44a9d5ce189618f22d3008505f0e7b9012096b41c4eb3aaf947f6ea4290803004c5f03b4123b2e186e07fb7bad5dda5f55c004008057ab6abcf895dece27a356a900a7daab1355e0d2c9dacb1b2930ee85d3f31970ed029f0cb6f36e027abb2091cfb5110ab5087f9960685f06155b3cd9a8c9e5e9a23fd5dc13a5ed20cff1a81000000000685f08316cbf8fa0da822a20ac1c55bf1be3207917000000000000505f0e7b9012096b41c4eb3aaf947f6ea42908000080670ea368cff00a419fb56bb1d23af27aca293992767621adebbda85bb216ede08092a93e39afd3cc5bfdf61fd75467b311989c8a11182041748f1627e0b7264358685f090e2fbf2d792cb324bffa9427fe1f0e20c5fcda002306db0081019f0d3719f5b0b12c7105c073c507445948e0004c570f9d7e46afdef838d80700001404db07000080cc0c38844aaa6edb1a75664c79c04a921573e48fa1dac5b44102cba2e60e4b315c5700bd9a93e85e3ce1d20700002408d6070000dc070000f5019f0d710b30bd2eab0352ddcc26417aa1944282805c7035980fafa0c79ebf9ade1e8da73032039809d6595d933d2794395c95df904c5f03c716fb8fff3de61a883bb76adb34a204004c5f0f4993f016e2d2f8e5f43be7bb259486040080eb9e930dcfcab68937051ca6533d25491657fa4fb17f00358b95dcea542623e70024e803000000d407000000d607000000db07000000dc07000000f007000000f207000000f307000000f507000000", "0x3102840088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00a664aae1751aadaa84f2e5e495a8cda9607e3edd49e179e68232e8056a9678ee4da8a7d52f2926cc784f1ed8609c58f10ef623ad9d17b526a6ee96b139b8c900040000000a0000d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae699101", ], "header": { @@ -210,6 +318,114 @@ exports[`author rpc > works 5`] = ` ], [ SubmittableResult { + "blockNumber": 3000002, + "dispatchError": undefined, + "dispatchInfo": { + "class": "Normal", + "paysFee": "Yes", + "weight": { + "proofSize": 0, + "refTime": 272785000, + }, + }, + "events": [ + { + "event": { + "data": [ + "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + 2420001756, + ], + "index": "0x0a08", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + "25cGUumcLHxwFuSnBkPnL8h8UnotvUEJVqfYFb7TPueVg5mU", + 200, + ], + "index": "0x0a02", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + "23M5ttkmR6KcoTAAE6gcmibnKFtVaTP5yxnY8HF1BmrJ2A1i", + 2420001756, + ], + "index": "0x0a07", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + 2420001756, + ], + "index": "0x1406", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + 2420001756, + 0, + 0, + ], + "index": "0x0e03", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + { + "class": "Normal", + "paysFee": "Yes", + "weight": { + "proofSize": 0, + "refTime": 272785000, + }, + }, + ], + "index": "0x0000", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + ], + "internalError": undefined, + "status": { + "inBlock": "0xf593b2678b3b8be19f948804ef79e9c38719ac8a5920a8b544abab282e01a198", + }, + "txHash": "0x2d03306195ffbcddfd21ce5b4f0e132ecb4c6ffaa5f856e710c8c40073435dd5", + "txIndex": 2, + }, + ], + [ + SubmittableResult { "blockNumber": 3000002, "dispatchError": undefined, "dispatchInfo": { @@ -324,7 +540,7 @@ exports[`author rpc > works 6`] = ` "block": { "extrinsics": [ "0x280401000b1c95a3778601", - "0x6145041e00e9026dc2421628217c7cbd600bd22ed731fe85fcef75d569aeb9edba2c0ea8a98bdbfe1ab700b3280bd77f399259fbfde7411d9917c5babdce1d6bc8be7d6a11a864a8fffe862347f0db9429f7a2af71152c9630ec5e5c597342b7002a0598318a5de6074b0b08066175726120e5785408000000000561757261010110c8a597be6f8dd375a90d89f9bf7b546be0f9a9ffda7c7c2f26e85194945f0ddd99348e44cd15348b7ac8d7363ed45729ba0a0fdce48e8e36a24af48bbe268e000bdb008b2be80c473c1e689c14a6a7efb7b255e035170d019587e3cc097ba2bcb81f9c00005000b0cc5703f5a4efb16ffa83d00700009424e8030000d4070000d6070000db070000dc070000f0070000f2070000f3070000f50700009d015d01c872d0ebaf85d0070000f50700005501e8030000009001000090010000000000000000000191839011893cecc504dbbc591d77f997a039dcc2ec72cd23895b9491400fb06700e8764817000000000000000000000000e8764817000000000000000000000019015d0bc334ef110d8af5070000d0070000d4e80300000090010000900100000000000000000001a74504d51260cdd1247bb6aa66bff0790464a366a78a18537c05fdf8fc07959f19015e046fae65527199f2070000d0070000d4e80300000090010000900100000000000000000001d215338f1e8f2523ca3d226552e88407386459e3ec7af33ea19dd27cf618581819015e04d2a15ab51127e8030000d0070000d4e80300000090010000900100000000000000000001d6f0c46ca516758d16838363477c00849a3dc8bce5ab3115882ac240c1d9648819015e057a605f506cfcd4070000d0070000d4e8030000009001000090010000000000000000000155093e463274cf133ead99c0d3c7422af7156080057df440373c997e57713dd319015e1c472775baca93f0070000d0070000d4e803000000900100009001000000000000000000010cb35d6b29a23eb53f2482badf1df31b9563da6752d00c6bcbca0d86cb98d3189d015e36ad4314650419d0070000f00700005501e803000000900100009001000000000000000000011e64505180d8a57d36e91ade40370774e30251d2f5865eea82aff8d43db0ffa700e8764817000000000000000000000000e876481700000000000000000000009d015e36c65ca123d5fbd0070000dc0700005501e80300000090010000900100000000000000000001826d774568396fdc7a86e19f850b1f2fc587c3bb766f652d14703e757a40a3ec00e8764817000000000000000000000000e87648170000000000000000000000c45e414cb008e0e61e46722aa60abdd67280b2ef81c981ec75170f14a8e18ab732a51a5151f7a58edb96f7137fc3aeeb48a119015e4361975d97255ddb070000d0070000d4e803000000900100009001000000000000000000018c74408c28f6627f58a8e10b3ec06b98b0166bfb148641a35c5cdfc7a56e68fb9d015e4be1ee506d55f8d0070000f30700005501e8030000009001000090010000000000000000000159898a2874487a46052f949bdc904ec14c45f5597fec9a64e53c73e1b15ae53900e8764817000000000000000000000000e876481700000000000000000000009d015e4f36708366b722d0070000e80300005501e803000000900100009001000000000000000000012e36e968e3ebab1ca3d34227d9140cb18bdd6a2fa79c81367c1d1161b5dfc0be00e8764817000000000000000000000000e8764817000000000000000000000019015e55c8e02d73966fd6070000d0070000d4e8030000009001000090010000000000000000000110a629dc8ad16cccd275c563a1a661bc266547934a7248d0dc1760a6aa8b5aa119015e8b652b2ae6ed1ddc070000d0070000d4e80300000090010000900100000000000000000001da4454c42d9af525d41150d2695f97ba755135d903f913af6cc53c3236d0281319015e968c2de8299067f3070000d0070000d4e80300000090010000900100000000000000000001c62b0fe87d05f8fea79214b917402334c0c8e88f07b969c82cf8891110201cdc9d015ea99274c2ff3639d0070000d60700005501e80300000090010000900100000000000000000001b5a80d571fccbb2e43ed84094706bbcacc2864e4ff8c37601995328ba9cd5f2c00e8764817000000000000000000000000e876481700000000000000000000009d015ec648b30353eed1d0070000db0700005501e8030000009001000090010000000000000000000100382d804f7b02c95c2d6b3b6a9cad2c97c2d7570bdfd32f8e8d961754b74b6d00e8764817000000000000000000000000e87648170000000000000000000000c45ee678799d3eff024253b90e84927cc680e72158d94abb352cf6f5b1acba2c15102148086d66f593f2818a03dcfe4815c4cc5f0077dfdb8adb10f78f10a5df8742c5458401b03037b418240790983e5d8d9aa9c2298fb208d039be7dced07bd66a648f6cc989035f04b49d95320d9021994c850f25b8e3853d030000a000005000000a00000000c8000000c800000a0000000a00000040380000580200000000500000c800000700e8764817020040011e0000000000000000e8764817000000000000000000000000e87648170000000000000000000000e8030000009001001e00000000000000009001004038000000000000000000000a0000000a0000000a00000001000000010500000001c8000000060000005802000002000000580200000200000059000000000000001e000000280000000700c817a80402004001010200000014000000a1015f050452a22bee61fad0070000f20700005501e8030000009001000090010000000000000000000134aff2e1cead7ca582e534e40f781c53162dfc70850507a96e8fb0cfdda5902d00e8764817000000000000000000000000e87648170000000000000000000000a1015f0fb7edc4cbc65e03d0070000d40700005501e8030000009001000090010000000000000000000140223c4f750207f3d42f737fd80e5df5691e274d2d5d264f1144f91dbb9e93b200e8764817000000000000000000000000e8764817000000000000000000000039017f17f78c98723ddc9073523ef3beefda0c4d7fefc408aac59dbfe80a72ac8e3ce563f5a4efb16ffa83d007000080ef60a9c5316d14504c092ec93ffe3f4cee4abfb9f248fedb1b9f3b64beb2b9ec150180001280ce308110f66298738301f634f91cd726fc260e327d4492ad183ab751736873ad8089d5a66c2c000a7d5ab25b252208b339267579174bef0dd044a51e599f945af115018000148047cbac8a30955e5a540066f6f2573309f22c3806882ffab67acc837f3f0b8eb0802756f6495ff1d085452661a5b5f3517959c2033c7c50d65cbcaf686781b0e57a1501800042800d2ea2354a07355a4cd0ab6d47a8ea0d12883bc57d03fbf6eb43154bab62e9f180f93bec29ee69b15649c10a80aabc65e29e265cbcad488452e47593b24885e93615018000c080b53c079fb3b3bc82049775eb4380f05dd48b80eda9494c9d2c1e9e76068eae8380009f5f4ea2d549e447b59d55b885a2e25c8ed61723eeb76bc4f06c1cd6e1d370150180041080759c64163f34a8957bc55792496338b24c698f0a5854edabb88f0df5a7779656808f0b48e8ae1df1a38e29d5f455957822dbd7f977016d0ebe567f31bf8969ccf8f480042078767bbb460270642b5bcaf032ea04d56a071ceff5b0f64d362e0800000400685ead6eef5c4b1c68eaa71ea17a02d9de24042e080000a8e8da00150180080280538bdf5c67a651e3bfdef47a0ea3e5f5b397965896799f1c6d843be2ba8d47dc80b7c605c7563374528b234bc353547805cd34fdea195429d681aca0c1f6b1dc4a150180080480b413ffde04b6762ff69bc50a6b94a88640ac1ce61b7fa7c1232e4a59838e8435805c48cf1601b28968c9f86c8e19a3d4f6999ee8b286df9f4ec81c505ca55bfcb01501801040806eb6c6756cf0cfc8fa41ff99dd5fd326a4abb0275e2bcecbf5530d34c492084080692755c9209155bd724071de137657f492de5bb5479738d1af7119739b4df4739901802030803129a5fa44877dada94ec460b3c9088c278e055be1d23a2121b120a91f48af0380364b714beff27681e21de331f20d3997419eb42298f732eddf299d59b02b93b080c477bab53b9a4bd8999263881ae020ccb149554346f8826b06d3d2b2fa4fd1be15018020408093a03a7836ee5bec1258447e650ffef0902095cc17d61f5ed4d92a8456283be08089126fbac7cc530e791f8755392432ce3d3221fd580cd709a1faf911326c5e4da1028043908044d481ad3f328b3fe2328d0dc1f8d17a321c7a3d623fe6cb65bd1dfeb587b07f8021458a366d19687aafe0d6a0ad3a2675d8192dce77d66da88d213c7a9f66a63580046503aca48ee225e7d48cca548c1f868dac05c21071e34e20a389b9b81af1a08068707a6ad5c663a1a6c8df17ee140b52c97f9b00821f1d17903d08d0dedc88a580da68cf8effc6c5ec15c0f401c4ee20e662248c1c185495886f6f92b51744d3ccd5019e0da05ca59913bc38a8630590f2627c028880c0db2fe9604143d7099d814dc44c6a7cea5d1560f50154b74975affa47ff1a2d80f726dbac340c690e07a097ce70495484854d6cd8063689cce6795ce1dd24ad26809811101556b9e7b5851d471b2aa26fa83c39f23ad4a2e10f231d7e9ff1c3967b81019f012b746dcf32e843354583c9702cc020e0004c570f9d7e46afdef838d80700001404db07000080cc0c38844aaa6edb1a75664c79c04a921573e48fa1dac5b44102cba2e60e4b315c5700bd9a93e85e3ce1d20700002408d6070000dc07000009019f05207f03cfdce586301014700e2c25934040685f0d9ef3b78afddab7f5c7142131132ad42001000000000000004c5f0ec2d17a76153ff51817f12d9cfc3c7f0400f1049f06604cff828a6e3f579ca6c59ace013d15af80a0fe6ba3173a5610b329a79f0162abce9c09672dbcf40a64b15d1e1c1892a27e802eca601679af9438dc9b531d77051b01bb17d5b2ea8bd96eff87db22ab5ed00680f3e9944c6d6140056fed7bceb8fb89db73e104fdc23b7f01d7576e7fb404988d804822186f7e32ff008dd0e75223aff46aa1755a32cc305580d914ee39fb38efe480fe722aebe8d31918bef2cac98aaa6f83977aa141db59fa6f60c5c7ad3cee725b80ecf5286845658ee48742709acc130eeb2d9711f64aa9ecd779546b33d3fe325780f489c06c1bf9de85c1fd1ffc66e7df5819ff9332c8aa175355d7b15fad9ef42d80ee16b9cd2becf317db1b39987478ec63ddc9bb8596fc0a898d1d0991db0308688011c94f20b3f6e285e1f4bba428e6afb9f174bd387a59aa4ad56747a5c4e353da75019f06de3d8a54d27e44a9d5ce189618f22d3008505f0e7b9012096b41c4eb3aaf947f6ea4290803004c5f03b4123b2e186e07fb7bad5dda5f55c004008057ab6abcf895dece27a356a900a7daab1355e0d2c9dacb1b2930ee85d3f31970ed029f0cb6f36e027abb2091cfb5110ab5087f9960685f06155b3cd9a8c9e5e9a23fd5dc13a5ed20cdf1a81000000000685f08316cbf8fa0da822a20ac1c55bf1be3207917000000000000505f0e7b9012096b41c4eb3aaf947f6ea42908000080670ea368cff00a419fb56bb1d23af27aca293992767621adebbda85bb216ede08092a93e39afd3cc5bfdf61fd75467b311989c8a11182041748f1627e0b7264358685f090e2fbf2d792cb324bffa9427fe1f0e20c5fcda002306db0081019f0d3719f5b0b12c7105c073c507445948e0004c570f9d7e46afdef838d80700001404db07000080cc0c38844aaa6edb1a75664c79c04a921573e48fa1dac5b44102cba2e60e4b315c5700bd9a93e85e3ce1d20700002408d6070000dc07000071019f0d710b30bd2eab0352ddcc26417aa19440824c5f03c716fb8fff3de61a883bb76adb34a204004c5f0f4993f016e2d2f8e5f43be7bb259486040080eb9e930dcfcab68937051ca6533d25491657fa4fb17f00358b95dcea542623e70024e803000000d407000000d607000000db07000000dc07000000f007000000f207000000f307000000f507000000", + "0x5949041e00e9026dc2421628217c7cbd600bd22ed731fe85fcef75d569aeb9edba2c0ea8a98bdbfe1ab700b3280bd77f399259fbfde7411d9917c5babdce1d6bc8be7d6a11a864a8fffe862347f0db9429f7a2af71152c9630ec5e5c597342b7002a0598318a5de6074b0b08066175726120e5785408000000000561757261010110c8a597be6f8dd375a90d89f9bf7b546be0f9a9ffda7c7c2f26e85194945f0ddd99348e44cd15348b7ac8d7363ed45729ba0a0fdce48e8e36a24af48bbe268e000bdb009433c0b35881c0d051f065569616fc860e8480ba732a2c8500f2aef661e3388f00005000b4cc5703f5a4efb16ffa83d00700009424e8030000d4070000d6070000db070000dc070000f0070000f2070000f3070000f50700009d015d01c872d0ebaf85d0070000f50700005501e8030000009001000090010000000000000000000191839011893cecc504dbbc591d77f997a039dcc2ec72cd23895b9491400fb06700e8764817000000000000000000000000e8764817000000000000000000000019015d0bc334ef110d8af5070000d0070000d4e80300000090010000900100000000000000000001a74504d51260cdd1247bb6aa66bff0790464a366a78a18537c05fdf8fc07959f19015e046fae65527199f2070000d0070000d4e80300000090010000900100000000000000000001d215338f1e8f2523ca3d226552e88407386459e3ec7af33ea19dd27cf618581819015e04d2a15ab51127e8030000d0070000d4e80300000090010000900100000000000000000001d6f0c46ca516758d16838363477c00849a3dc8bce5ab3115882ac240c1d9648819015e057a605f506cfcd4070000d0070000d4e8030000009001000090010000000000000000000155093e463274cf133ead99c0d3c7422af7156080057df440373c997e57713dd319015e1c472775baca93f0070000d0070000d4e803000000900100009001000000000000000000010cb35d6b29a23eb53f2482badf1df31b9563da6752d00c6bcbca0d86cb98d3189d015e36ad4314650419d0070000f00700005501e803000000900100009001000000000000000000011e64505180d8a57d36e91ade40370774e30251d2f5865eea82aff8d43db0ffa700e8764817000000000000000000000000e876481700000000000000000000009d015e36c65ca123d5fbd0070000dc0700005501e80300000090010000900100000000000000000001826d774568396fdc7a86e19f850b1f2fc587c3bb766f652d14703e757a40a3ec00e8764817000000000000000000000000e87648170000000000000000000000c45e414cb008e0e61e46722aa60abdd67280b2ef81c981ec75170f14a8e18ab732a51a5151f7a58edb96f7137fc3aeeb48a119015e4361975d97255ddb070000d0070000d4e803000000900100009001000000000000000000018c74408c28f6627f58a8e10b3ec06b98b0166bfb148641a35c5cdfc7a56e68fb9d015e4be1ee506d55f8d0070000f30700005501e8030000009001000090010000000000000000000159898a2874487a46052f949bdc904ec14c45f5597fec9a64e53c73e1b15ae53900e8764817000000000000000000000000e876481700000000000000000000009d015e4f36708366b722d0070000e80300005501e803000000900100009001000000000000000000012e36e968e3ebab1ca3d34227d9140cb18bdd6a2fa79c81367c1d1161b5dfc0be00e8764817000000000000000000000000e8764817000000000000000000000019015e55c8e02d73966fd6070000d0070000d4e8030000009001000090010000000000000000000110a629dc8ad16cccd275c563a1a661bc266547934a7248d0dc1760a6aa8b5aa119015e8b652b2ae6ed1ddc070000d0070000d4e80300000090010000900100000000000000000001da4454c42d9af525d41150d2695f97ba755135d903f913af6cc53c3236d0281319015e968c2de8299067f3070000d0070000d4e80300000090010000900100000000000000000001c62b0fe87d05f8fea79214b917402334c0c8e88f07b969c82cf8891110201cdc9d015ea99274c2ff3639d0070000d60700005501e80300000090010000900100000000000000000001b5a80d571fccbb2e43ed84094706bbcacc2864e4ff8c37601995328ba9cd5f2c00e8764817000000000000000000000000e876481700000000000000000000009d015ec648b30353eed1d0070000db0700005501e8030000009001000090010000000000000000000100382d804f7b02c95c2d6b3b6a9cad2c97c2d7570bdfd32f8e8d961754b74b6d00e8764817000000000000000000000000e87648170000000000000000000000c45ee678799d3eff024253b90e84927cc680e72158d94abb352cf6f5b1acba2c15102148086d66f593f2818a03dcfe4815c4cc5f0077dfdb8adb10f78f10a5df8742c5458401b03037b418240790983e5d8d9aa9c2298fb208d039be7dced07bd66a648f6cc989035f04b49d95320d9021994c850f25b8e3853d030000a000005000000a00000000c8000000c800000a0000000a00000040380000580200000000500000c800000700e8764817020040011e0000000000000000e8764817000000000000000000000000e87648170000000000000000000000e8030000009001001e00000000000000009001004038000000000000000000000a0000000a0000000a00000001000000010500000001c8000000060000005802000002000000580200000200000059000000000000001e000000280000000700c817a80402004001010200000014000000a1015f050452a22bee61fad0070000f20700005501e8030000009001000090010000000000000000000134aff2e1cead7ca582e534e40f781c53162dfc70850507a96e8fb0cfdda5902d00e8764817000000000000000000000000e87648170000000000000000000000a1015f0fb7edc4cbc65e03d0070000d40700005501e8030000009001000090010000000000000000000140223c4f750207f3d42f737fd80e5df5691e274d2d5d264f1144f91dbb9e93b200e8764817000000000000000000000000e876481700000000000000000000006d03770b3c252fcb29d88eff4f3de5de4476c363f5a4efb16ffa83d0070000f102e902b5297d01adb0964d5195f9f17a3cf6e99ef8622e71863456eeb9296d5681292b061bb7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008066175726120e778540800000000056175726101010094fed33221b9de74104ba29b4b62e704442e6cdb37c808999df8b26f34ad50fb3319f8c549528ed8985e8e762a5ca5746a0caf4cb97074968e767b5afb3f8139017f17f78c98723ddc9073523ef3beefda0c4d7fefc408aac59dbfe80a72ac8e3ce563f5a4efb16ffa83d007000080ef60a9c5316d14504c092ec93ffe3f4cee4abfb9f248fedb1b9f3b64beb2b9ec150180001280ce308110f66298738301f634f91cd726fc260e327d4492ad183ab751736873ad8089d5a66c2c000a7d5ab25b252208b339267579174bef0dd044a51e599f945af115018000148047cbac8a30955e5a540066f6f2573309f22c3806882ffab67acc837f3f0b8eb0802756f6495ff1d085452661a5b5f3517959c2033c7c50d65cbcaf686781b0e57a1501800042800d2ea2354a07355a4cd0ab6d47a8ea0d12883bc57d03fbf6eb43154bab62e9f180f93bec29ee69b15649c10a80aabc65e29e265cbcad488452e47593b24885e93615018000c080b53c079fb3b3bc82049775eb4380f05dd48b80eda9494c9d2c1e9e76068eae8380009f5f4ea2d549e447b59d55b885a2e25c8ed61723eeb76bc4f06c1cd6e1d370150180041080759c64163f34a8957bc55792496338b24c698f0a5854edabb88f0df5a7779656808f0b48e8ae1df1a38e29d5f455957822dbd7f977016d0ebe567f31bf8969ccf8f480042078767bbb460270642b5bcaf032ea04d56a071ceff5b0f64d362e0800000400685ead6eef5c4b1c68eaa71ea17a02d9de24042e080000a8e8da00150180080280538bdf5c67a651e3bfdef47a0ea3e5f5b397965896799f1c6d843be2ba8d47dc80b7c605c7563374528b234bc353547805cd34fdea195429d681aca0c1f6b1dc4a150180080480b413ffde04b6762ff69bc50a6b94a88640ac1ce61b7fa7c1232e4a59838e8435805c48cf1601b28968c9f86c8e19a3d4f6999ee8b286df9f4ec81c505ca55bfcb01501801040806eb6c6756cf0cfc8fa41ff99dd5fd326a4abb0275e2bcecbf5530d34c492084080692755c9209155bd724071de137657f492de5bb5479738d1af7119739b4df4739901802030803129a5fa44877dada94ec460b3c9088c278e055be1d23a2121b120a91f48af0380364b714beff27681e21de331f20d3997419eb42298f732eddf299d59b02b93b080c477bab53b9a4bd8999263881ae020ccb149554346f8826b06d3d2b2fa4fd1be15018020408093a03a7836ee5bec1258447e650ffef0902095cc17d61f5ed4d92a8456283be08089126fbac7cc530e791f8755392432ce3d3221fd580cd709a1faf911326c5e4da1028043908044d481ad3f328b3fe2328d0dc1f8d17a321c7a3d623fe6cb65bd1dfeb587b07f80594f7ec248396791bf1155546eae358d8d8ac56ea820c54e7d6921092249646780046503aca48ee225e7d48cca548c1f868dac05c21071e34e20a389b9b81af1a08037be600f96f1e777212bc32b6dfce56dbaa35d8669d683c29bf8e73d3f5a912c80da68cf8effc6c5ec15c0f401c4ee20e662248c1c185495886f6f92b51744d3ccd5019e0da05ca59913bc38a8630590f2627c028880c0db2fe9604143d7099d814dc44c6a7cea5d1560f50154b74975affa47ff1a2d80f726dbac340c690e07a097ce70495484854d6cd8063689cce6795ce1dd24ad26809811101556b9e7b5851d471b2aa26fa83c39f23ad4a2e10f231d7e9ff1c3967b81019f012b746dcf32e843354583c9702cc020e0004c570f9d7e46afdef838d80700001404db07000080cc0c38844aaa6edb1a75664c79c04a921573e48fa1dac5b44102cba2e60e4b315c5700bd9a93e85e3ce1d20700002408d6070000dc07000009019f05207f03cfdce586301014700e2c25934040685f0d9ef3b78afddab7f5c7142131132ad42001000000000000004c5f0ec2d17a76153ff51817f12d9cfc3c7f0400f1049f06604cff828a6e3f579ca6c59ace013d15af80a0fe6ba3173a5610b329a79f0162abce9c09672dbcf40a64b15d1e1c1892a27e802eca601679af9438dc9b531d77051b01bb17d5b2ea8bd96eff87db22ab5ed00680f3e9944c6d6140056fed7bceb8fb89db73e104fdc23b7f01d7576e7fb404988d804822186f7e32ff008dd0e75223aff46aa1755a32cc305580d914ee39fb38efe480fe722aebe8d31918bef2cac98aaa6f83977aa141db59fa6f60c5c7ad3cee725b80ecf5286845658ee48742709acc130eeb2d9711f64aa9ecd779546b33d3fe325780f489c06c1bf9de85c1fd1ffc66e7df5819ff9332c8aa175355d7b15fad9ef42d80ee16b9cd2becf317db1b39987478ec63ddc9bb8596fc0a898d1d0991db0308688011c94f20b3f6e285e1f4bba428e6afb9f174bd387a59aa4ad56747a5c4e353da75019f06de3d8a54d27e44a9d5ce189618f22d3008505f0e7b9012096b41c4eb3aaf947f6ea4290803004c5f03b4123b2e186e07fb7bad5dda5f55c004008057ab6abcf895dece27a356a900a7daab1355e0d2c9dacb1b2930ee85d3f31970ed029f0cb6f36e027abb2091cfb5110ab5087f9960685f06155b3cd9a8c9e5e9a23fd5dc13a5ed20d1f1a81000000000685f08316cbf8fa0da822a20ac1c55bf1be3207917000000000000505f0e7b9012096b41c4eb3aaf947f6ea42908000080670ea368cff00a419fb56bb1d23af27aca293992767621adebbda85bb216ede08092a93e39afd3cc5bfdf61fd75467b311989c8a11182041748f1627e0b7264358685f090e2fbf2d792cb324bffa9427fe1f0e20c5fcda002306db0081019f0d3719f5b0b12c7105c073c507445948e0004c570f9d7e46afdef838d80700001404db07000080cc0c38844aaa6edb1a75664c79c04a921573e48fa1dac5b44102cba2e60e4b315c5700bd9a93e85e3ce1d20700002408d6070000dc070000f5019f0d710b30bd2eab0352ddcc26417aa19442828026767078e07be3335b57a5060ccfed12950b30db68256543bd6e6097114a0b8f4c5f03c716fb8fff3de61a883bb76adb34a204004c5f0f4993f016e2d2f8e5f43be7bb259486040080eb9e930dcfcab68937051ca6533d25491657fa4fb17f00358b95dcea542623e70024e803000000d407000000d607000000db07000000dc07000000f007000000f207000000f307000000f507000000", "0x3102840088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee005cdf96cedd05ca939320c9ce801324b0042974764761b4b04bdc550769b5db8c6d5c80020c8c536e622d81bca372a920ce39f3e663d27b0fa0d216f4ff3e4a0c140004000a0000d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae692103", ], "header": { @@ -402,6 +618,114 @@ exports[`author rpc > works 9`] = ` ], [ SubmittableResult { + "blockNumber": 3000003, + "dispatchError": undefined, + "dispatchInfo": { + "class": "Normal", + "paysFee": "Yes", + "weight": { + "proofSize": 0, + "refTime": 272785000, + }, + }, + "events": [ + { + "event": { + "data": [ + "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + 2420001756, + ], + "index": "0x0a08", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + "25cGUumcLHxwFuSnBkPnL8h8UnotvUEJVqfYFb7TPueVg5mU", + 300, + ], + "index": "0x0a02", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + "23M5ttkmR6KcoTAAE6gcmibnKFtVaTP5yxnY8HF1BmrJ2A1i", + 2420001756, + ], + "index": "0x0a07", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + 2420001756, + ], + "index": "0x1406", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + 2420001756, + 0, + 0, + ], + "index": "0x0e03", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + { + "event": { + "data": [ + { + "class": "Normal", + "paysFee": "Yes", + "weight": { + "proofSize": 0, + "refTime": 272785000, + }, + }, + ], + "index": "0x0000", + }, + "phase": { + "applyExtrinsic": 2, + }, + "topics": [], + }, + ], + "internalError": undefined, + "status": { + "inBlock": "0xfab81f03d3275189a7dc02b0e4fabfab3916ff9a729ba3ec6ad84e029f0a74e7", + }, + "txHash": "0xcf5cfc28881efd18f682645f36cd87f088cd68bc0977b4fafa71a367ec550e2f", + "txIndex": 2, + }, + ], + [ + SubmittableResult { "blockNumber": 3000003, "dispatchError": undefined, "dispatchInfo": { @@ -516,7 +840,7 @@ exports[`author rpc > works 10`] = ` "block": { "extrinsics": [ "0x280401000bfcc3a3778601", - "0x6145041e00e9026dc2421628217c7cbd600bd22ed731fe85fcef75d569aeb9edba2c0ea8a98bdbfe1ab700b3280bd77f399259fbfde7411d9917c5babdce1d6bc8be7d6a11a864a8fffe862347f0db9429f7a2af71152c9630ec5e5c597342b7002a0598318a5de6074b0b08066175726120e5785408000000000561757261010110c8a597be6f8dd375a90d89f9bf7b546be0f9a9ffda7c7c2f26e85194945f0ddd99348e44cd15348b7ac8d7363ed45729ba0a0fdce48e8e36a24af48bbe268e020bdb008b2be80c473c1e689c14a6a7efb7b255e035170d019587e3cc097ba2bcb81f9c00005000b0cc5703f5a4efb16ffa83d00700009424e8030000d4070000d6070000db070000dc070000f0070000f2070000f3070000f50700009d015d01c872d0ebaf85d0070000f50700005501e8030000009001000090010000000000000000000191839011893cecc504dbbc591d77f997a039dcc2ec72cd23895b9491400fb06700e8764817000000000000000000000000e8764817000000000000000000000019015d0bc334ef110d8af5070000d0070000d4e80300000090010000900100000000000000000001a74504d51260cdd1247bb6aa66bff0790464a366a78a18537c05fdf8fc07959f19015e046fae65527199f2070000d0070000d4e80300000090010000900100000000000000000001d215338f1e8f2523ca3d226552e88407386459e3ec7af33ea19dd27cf618581819015e04d2a15ab51127e8030000d0070000d4e80300000090010000900100000000000000000001d6f0c46ca516758d16838363477c00849a3dc8bce5ab3115882ac240c1d9648819015e057a605f506cfcd4070000d0070000d4e8030000009001000090010000000000000000000155093e463274cf133ead99c0d3c7422af7156080057df440373c997e57713dd319015e1c472775baca93f0070000d0070000d4e803000000900100009001000000000000000000010cb35d6b29a23eb53f2482badf1df31b9563da6752d00c6bcbca0d86cb98d3189d015e36ad4314650419d0070000f00700005501e803000000900100009001000000000000000000011e64505180d8a57d36e91ade40370774e30251d2f5865eea82aff8d43db0ffa700e8764817000000000000000000000000e876481700000000000000000000009d015e36c65ca123d5fbd0070000dc0700005501e80300000090010000900100000000000000000001826d774568396fdc7a86e19f850b1f2fc587c3bb766f652d14703e757a40a3ec00e8764817000000000000000000000000e87648170000000000000000000000c45e414cb008e0e61e46722aa60abdd67280b2ef81c981ec75170f14a8e18ab732a51a5151f7a58edb96f7137fc3aeeb48a119015e4361975d97255ddb070000d0070000d4e803000000900100009001000000000000000000018c74408c28f6627f58a8e10b3ec06b98b0166bfb148641a35c5cdfc7a56e68fb9d015e4be1ee506d55f8d0070000f30700005501e8030000009001000090010000000000000000000159898a2874487a46052f949bdc904ec14c45f5597fec9a64e53c73e1b15ae53900e8764817000000000000000000000000e876481700000000000000000000009d015e4f36708366b722d0070000e80300005501e803000000900100009001000000000000000000012e36e968e3ebab1ca3d34227d9140cb18bdd6a2fa79c81367c1d1161b5dfc0be00e8764817000000000000000000000000e8764817000000000000000000000019015e55c8e02d73966fd6070000d0070000d4e8030000009001000090010000000000000000000110a629dc8ad16cccd275c563a1a661bc266547934a7248d0dc1760a6aa8b5aa119015e8b652b2ae6ed1ddc070000d0070000d4e80300000090010000900100000000000000000001da4454c42d9af525d41150d2695f97ba755135d903f913af6cc53c3236d0281319015e968c2de8299067f3070000d0070000d4e80300000090010000900100000000000000000001c62b0fe87d05f8fea79214b917402334c0c8e88f07b969c82cf8891110201cdc9d015ea99274c2ff3639d0070000d60700005501e80300000090010000900100000000000000000001b5a80d571fccbb2e43ed84094706bbcacc2864e4ff8c37601995328ba9cd5f2c00e8764817000000000000000000000000e876481700000000000000000000009d015ec648b30353eed1d0070000db0700005501e8030000009001000090010000000000000000000100382d804f7b02c95c2d6b3b6a9cad2c97c2d7570bdfd32f8e8d961754b74b6d00e8764817000000000000000000000000e87648170000000000000000000000c45ee678799d3eff024253b90e84927cc680e72158d94abb352cf6f5b1acba2c15102148086d66f593f2818a03dcfe4815c4cc5f0077dfdb8adb10f78f10a5df8742c5458401b03037b418240790983e5d8d9aa9c2298fb208d039be7dced07bd66a648f6cc989035f04b49d95320d9021994c850f25b8e3853d030000a000005000000a00000000c8000000c800000a0000000a00000040380000580200000000500000c800000700e8764817020040011e0000000000000000e8764817000000000000000000000000e87648170000000000000000000000e8030000009001001e00000000000000009001004038000000000000000000000a0000000a0000000a00000001000000010500000001c8000000060000005802000002000000580200000200000059000000000000001e000000280000000700c817a80402004001010200000014000000a1015f050452a22bee61fad0070000f20700005501e8030000009001000090010000000000000000000134aff2e1cead7ca582e534e40f781c53162dfc70850507a96e8fb0cfdda5902d00e8764817000000000000000000000000e87648170000000000000000000000a1015f0fb7edc4cbc65e03d0070000d40700005501e8030000009001000090010000000000000000000140223c4f750207f3d42f737fd80e5df5691e274d2d5d264f1144f91dbb9e93b200e8764817000000000000000000000000e8764817000000000000000000000039017f17f78c98723ddc9073523ef3beefda0c4d7fefc408aac59dbfe80a72ac8e3ce563f5a4efb16ffa83d007000080ef60a9c5316d14504c092ec93ffe3f4cee4abfb9f248fedb1b9f3b64beb2b9ec150180001280ce308110f66298738301f634f91cd726fc260e327d4492ad183ab751736873ad8089d5a66c2c000a7d5ab25b252208b339267579174bef0dd044a51e599f945af115018000148047cbac8a30955e5a540066f6f2573309f22c3806882ffab67acc837f3f0b8eb0802756f6495ff1d085452661a5b5f3517959c2033c7c50d65cbcaf686781b0e57a1501800042800d2ea2354a07355a4cd0ab6d47a8ea0d12883bc57d03fbf6eb43154bab62e9f180f93bec29ee69b15649c10a80aabc65e29e265cbcad488452e47593b24885e93615018000c080b53c079fb3b3bc82049775eb4380f05dd48b80eda9494c9d2c1e9e76068eae8380009f5f4ea2d549e447b59d55b885a2e25c8ed61723eeb76bc4f06c1cd6e1d370150180041080759c64163f34a8957bc55792496338b24c698f0a5854edabb88f0df5a7779656808f0b48e8ae1df1a38e29d5f455957822dbd7f977016d0ebe567f31bf8969ccf8f480042078767bbb460270642b5bcaf032ea04d56a071ceff5b0f64d362e0800000400685ead6eef5c4b1c68eaa71ea17a02d9de24042e080000a8e8da00150180080280538bdf5c67a651e3bfdef47a0ea3e5f5b397965896799f1c6d843be2ba8d47dc80b7c605c7563374528b234bc353547805cd34fdea195429d681aca0c1f6b1dc4a150180080480b413ffde04b6762ff69bc50a6b94a88640ac1ce61b7fa7c1232e4a59838e8435805c48cf1601b28968c9f86c8e19a3d4f6999ee8b286df9f4ec81c505ca55bfcb01501801040806eb6c6756cf0cfc8fa41ff99dd5fd326a4abb0275e2bcecbf5530d34c492084080692755c9209155bd724071de137657f492de5bb5479738d1af7119739b4df4739901802030803129a5fa44877dada94ec460b3c9088c278e055be1d23a2121b120a91f48af0380364b714beff27681e21de331f20d3997419eb42298f732eddf299d59b02b93b080c477bab53b9a4bd8999263881ae020ccb149554346f8826b06d3d2b2fa4fd1be15018020408093a03a7836ee5bec1258447e650ffef0902095cc17d61f5ed4d92a8456283be08089126fbac7cc530e791f8755392432ce3d3221fd580cd709a1faf911326c5e4da1028043908044d481ad3f328b3fe2328d0dc1f8d17a321c7a3d623fe6cb65bd1dfeb587b07f8021458a366d19687aafe0d6a0ad3a2675d8192dce77d66da88d213c7a9f66a63580046503aca48ee225e7d48cca548c1f868dac05c21071e34e20a389b9b81af1a08068707a6ad5c663a1a6c8df17ee140b52c97f9b00821f1d17903d08d0dedc88a580da68cf8effc6c5ec15c0f401c4ee20e662248c1c185495886f6f92b51744d3ccd5019e0da05ca59913bc38a8630590f2627c028880c0db2fe9604143d7099d814dc44c6a7cea5d1560f50154b74975affa47ff1a2d80f726dbac340c690e07a097ce70495484854d6cd8063689cce6795ce1dd24ad26809811101556b9e7b5851d471b2aa26fa83c39f23ad4a2e10f231d7e9ff1c3967b81019f012b746dcf32e843354583c9702cc020e0004c570f9d7e46afdef838d80700001404db07000080cc0c38844aaa6edb1a75664c79c04a921573e48fa1dac5b44102cba2e60e4b315c5700bd9a93e85e3ce1d20700002408d6070000dc07000009019f05207f03cfdce586301014700e2c25934040685f0d9ef3b78afddab7f5c7142131132ad42001000000000000004c5f0ec2d17a76153ff51817f12d9cfc3c7f0400f1049f06604cff828a6e3f579ca6c59ace013d15af80a0fe6ba3173a5610b329a79f0162abce9c09672dbcf40a64b15d1e1c1892a27e802eca601679af9438dc9b531d77051b01bb17d5b2ea8bd96eff87db22ab5ed00680f3e9944c6d6140056fed7bceb8fb89db73e104fdc23b7f01d7576e7fb404988d804822186f7e32ff008dd0e75223aff46aa1755a32cc305580d914ee39fb38efe480fe722aebe8d31918bef2cac98aaa6f83977aa141db59fa6f60c5c7ad3cee725b80ecf5286845658ee48742709acc130eeb2d9711f64aa9ecd779546b33d3fe325780f489c06c1bf9de85c1fd1ffc66e7df5819ff9332c8aa175355d7b15fad9ef42d80ee16b9cd2becf317db1b39987478ec63ddc9bb8596fc0a898d1d0991db0308688011c94f20b3f6e285e1f4bba428e6afb9f174bd387a59aa4ad56747a5c4e353da75019f06de3d8a54d27e44a9d5ce189618f22d3008505f0e7b9012096b41c4eb3aaf947f6ea4290803004c5f03b4123b2e186e07fb7bad5dda5f55c004008057ab6abcf895dece27a356a900a7daab1355e0d2c9dacb1b2930ee85d3f31970ed029f0cb6f36e027abb2091cfb5110ab5087f9960685f06155b3cd9a8c9e5e9a23fd5dc13a5ed20cdf1a81000000000685f08316cbf8fa0da822a20ac1c55bf1be3207917000000000000505f0e7b9012096b41c4eb3aaf947f6ea42908000080670ea368cff00a419fb56bb1d23af27aca293992767621adebbda85bb216ede08092a93e39afd3cc5bfdf61fd75467b311989c8a11182041748f1627e0b7264358685f090e2fbf2d792cb324bffa9427fe1f0e20c5fcda002306db0081019f0d3719f5b0b12c7105c073c507445948e0004c570f9d7e46afdef838d80700001404db07000080cc0c38844aaa6edb1a75664c79c04a921573e48fa1dac5b44102cba2e60e4b315c5700bd9a93e85e3ce1d20700002408d6070000dc07000071019f0d710b30bd2eab0352ddcc26417aa19440824c5f03c716fb8fff3de61a883bb76adb34a204004c5f0f4993f016e2d2f8e5f43be7bb259486040080eb9e930dcfcab68937051ca6533d25491657fa4fb17f00358b95dcea542623e70024e803000000d407000000d607000000db07000000dc07000000f007000000f207000000f307000000f507000000", + "0x5949041e00e9026dc2421628217c7cbd600bd22ed731fe85fcef75d569aeb9edba2c0ea8a98bdbfe1ab700b3280bd77f399259fbfde7411d9917c5babdce1d6bc8be7d6a11a864a8fffe862347f0db9429f7a2af71152c9630ec5e5c597342b7002a0598318a5de6074b0b08066175726120e5785408000000000561757261010110c8a597be6f8dd375a90d89f9bf7b546be0f9a9ffda7c7c2f26e85194945f0ddd99348e44cd15348b7ac8d7363ed45729ba0a0fdce48e8e36a24af48bbe268e020bdb00b60be0efa41ac1c0a71e66eaa2c1b74810a29580519eede78caf3dbe6d22c31e00005000b4cc5703f5a4efb16ffa83d00700009424e8030000d4070000d6070000db070000dc070000f0070000f2070000f3070000f50700009d015d01c872d0ebaf85d0070000f50700005501e8030000009001000090010000000000000000000191839011893cecc504dbbc591d77f997a039dcc2ec72cd23895b9491400fb06700e8764817000000000000000000000000e8764817000000000000000000000019015d0bc334ef110d8af5070000d0070000d4e80300000090010000900100000000000000000001a74504d51260cdd1247bb6aa66bff0790464a366a78a18537c05fdf8fc07959f19015e046fae65527199f2070000d0070000d4e80300000090010000900100000000000000000001d215338f1e8f2523ca3d226552e88407386459e3ec7af33ea19dd27cf618581819015e04d2a15ab51127e8030000d0070000d4e80300000090010000900100000000000000000001d6f0c46ca516758d16838363477c00849a3dc8bce5ab3115882ac240c1d9648819015e057a605f506cfcd4070000d0070000d4e8030000009001000090010000000000000000000155093e463274cf133ead99c0d3c7422af7156080057df440373c997e57713dd319015e1c472775baca93f0070000d0070000d4e803000000900100009001000000000000000000010cb35d6b29a23eb53f2482badf1df31b9563da6752d00c6bcbca0d86cb98d3189d015e36ad4314650419d0070000f00700005501e803000000900100009001000000000000000000011e64505180d8a57d36e91ade40370774e30251d2f5865eea82aff8d43db0ffa700e8764817000000000000000000000000e876481700000000000000000000009d015e36c65ca123d5fbd0070000dc0700005501e80300000090010000900100000000000000000001826d774568396fdc7a86e19f850b1f2fc587c3bb766f652d14703e757a40a3ec00e8764817000000000000000000000000e87648170000000000000000000000c45e414cb008e0e61e46722aa60abdd67280b2ef81c981ec75170f14a8e18ab732a51a5151f7a58edb96f7137fc3aeeb48a119015e4361975d97255ddb070000d0070000d4e803000000900100009001000000000000000000018c74408c28f6627f58a8e10b3ec06b98b0166bfb148641a35c5cdfc7a56e68fb9d015e4be1ee506d55f8d0070000f30700005501e8030000009001000090010000000000000000000159898a2874487a46052f949bdc904ec14c45f5597fec9a64e53c73e1b15ae53900e8764817000000000000000000000000e876481700000000000000000000009d015e4f36708366b722d0070000e80300005501e803000000900100009001000000000000000000012e36e968e3ebab1ca3d34227d9140cb18bdd6a2fa79c81367c1d1161b5dfc0be00e8764817000000000000000000000000e8764817000000000000000000000019015e55c8e02d73966fd6070000d0070000d4e8030000009001000090010000000000000000000110a629dc8ad16cccd275c563a1a661bc266547934a7248d0dc1760a6aa8b5aa119015e8b652b2ae6ed1ddc070000d0070000d4e80300000090010000900100000000000000000001da4454c42d9af525d41150d2695f97ba755135d903f913af6cc53c3236d0281319015e968c2de8299067f3070000d0070000d4e80300000090010000900100000000000000000001c62b0fe87d05f8fea79214b917402334c0c8e88f07b969c82cf8891110201cdc9d015ea99274c2ff3639d0070000d60700005501e80300000090010000900100000000000000000001b5a80d571fccbb2e43ed84094706bbcacc2864e4ff8c37601995328ba9cd5f2c00e8764817000000000000000000000000e876481700000000000000000000009d015ec648b30353eed1d0070000db0700005501e8030000009001000090010000000000000000000100382d804f7b02c95c2d6b3b6a9cad2c97c2d7570bdfd32f8e8d961754b74b6d00e8764817000000000000000000000000e87648170000000000000000000000c45ee678799d3eff024253b90e84927cc680e72158d94abb352cf6f5b1acba2c15102148086d66f593f2818a03dcfe4815c4cc5f0077dfdb8adb10f78f10a5df8742c5458401b03037b418240790983e5d8d9aa9c2298fb208d039be7dced07bd66a648f6cc989035f04b49d95320d9021994c850f25b8e3853d030000a000005000000a00000000c8000000c800000a0000000a00000040380000580200000000500000c800000700e8764817020040011e0000000000000000e8764817000000000000000000000000e87648170000000000000000000000e8030000009001001e00000000000000009001004038000000000000000000000a0000000a0000000a00000001000000010500000001c8000000060000005802000002000000580200000200000059000000000000001e000000280000000700c817a80402004001010200000014000000a1015f050452a22bee61fad0070000f20700005501e8030000009001000090010000000000000000000134aff2e1cead7ca582e534e40f781c53162dfc70850507a96e8fb0cfdda5902d00e8764817000000000000000000000000e87648170000000000000000000000a1015f0fb7edc4cbc65e03d0070000d40700005501e8030000009001000090010000000000000000000140223c4f750207f3d42f737fd80e5df5691e274d2d5d264f1144f91dbb9e93b200e8764817000000000000000000000000e876481700000000000000000000006d03770b3c252fcb29d88eff4f3de5de4476c363f5a4efb16ffa83d0070000f102e902eb8569300f4100e47e93ad71ddc36856dc1aaeecef78a2e20b9e49eb3a810c5f0a1bb7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008066175726120e878540800000000056175726101010094fed33221b9de74104ba29b4b62e704442e6cdb37c808999df8b26f34ad50fb3319f8c549528ed8985e8e762a5ca5746a0caf4cb97074968e767b5afb3f8139017f17f78c98723ddc9073523ef3beefda0c4d7fefc408aac59dbfe80a72ac8e3ce563f5a4efb16ffa83d007000080ef60a9c5316d14504c092ec93ffe3f4cee4abfb9f248fedb1b9f3b64beb2b9ec150180001280ce308110f66298738301f634f91cd726fc260e327d4492ad183ab751736873ad8089d5a66c2c000a7d5ab25b252208b339267579174bef0dd044a51e599f945af115018000148047cbac8a30955e5a540066f6f2573309f22c3806882ffab67acc837f3f0b8eb0802756f6495ff1d085452661a5b5f3517959c2033c7c50d65cbcaf686781b0e57a1501800042800d2ea2354a07355a4cd0ab6d47a8ea0d12883bc57d03fbf6eb43154bab62e9f180f93bec29ee69b15649c10a80aabc65e29e265cbcad488452e47593b24885e93615018000c080b53c079fb3b3bc82049775eb4380f05dd48b80eda9494c9d2c1e9e76068eae8380009f5f4ea2d549e447b59d55b885a2e25c8ed61723eeb76bc4f06c1cd6e1d370150180041080759c64163f34a8957bc55792496338b24c698f0a5854edabb88f0df5a7779656808f0b48e8ae1df1a38e29d5f455957822dbd7f977016d0ebe567f31bf8969ccf8f480042078767bbb460270642b5bcaf032ea04d56a071ceff5b0f64d362e0800000400685ead6eef5c4b1c68eaa71ea17a02d9de24042e080000a8e8da00150180080280538bdf5c67a651e3bfdef47a0ea3e5f5b397965896799f1c6d843be2ba8d47dc80b7c605c7563374528b234bc353547805cd34fdea195429d681aca0c1f6b1dc4a150180080480b413ffde04b6762ff69bc50a6b94a88640ac1ce61b7fa7c1232e4a59838e8435805c48cf1601b28968c9f86c8e19a3d4f6999ee8b286df9f4ec81c505ca55bfcb01501801040806eb6c6756cf0cfc8fa41ff99dd5fd326a4abb0275e2bcecbf5530d34c492084080692755c9209155bd724071de137657f492de5bb5479738d1af7119739b4df4739901802030803129a5fa44877dada94ec460b3c9088c278e055be1d23a2121b120a91f48af0380364b714beff27681e21de331f20d3997419eb42298f732eddf299d59b02b93b080c477bab53b9a4bd8999263881ae020ccb149554346f8826b06d3d2b2fa4fd1be15018020408093a03a7836ee5bec1258447e650ffef0902095cc17d61f5ed4d92a8456283be08089126fbac7cc530e791f8755392432ce3d3221fd580cd709a1faf911326c5e4da1028043908044d481ad3f328b3fe2328d0dc1f8d17a321c7a3d623fe6cb65bd1dfeb587b07f80c8d2a210249a96cca565af5fae8b5149d2f18490036d85984345def4273b798480046503aca48ee225e7d48cca548c1f868dac05c21071e34e20a389b9b81af1a080e5b8e015cb224af5daa4cb18bc8decc0bc42ae75330c672654697c9062c6ace280da68cf8effc6c5ec15c0f401c4ee20e662248c1c185495886f6f92b51744d3ccd5019e0da05ca59913bc38a8630590f2627c028880c0db2fe9604143d7099d814dc44c6a7cea5d1560f50154b74975affa47ff1a2d80f726dbac340c690e07a097ce70495484854d6cd8063689cce6795ce1dd24ad26809811101556b9e7b5851d471b2aa26fa83c39f23ad4a2e10f231d7e9ff1c3967b81019f012b746dcf32e843354583c9702cc020e0004c570f9d7e46afdef838d80700001404db07000080cc0c38844aaa6edb1a75664c79c04a921573e48fa1dac5b44102cba2e60e4b315c5700bd9a93e85e3ce1d20700002408d6070000dc07000009019f05207f03cfdce586301014700e2c25934040685f0d9ef3b78afddab7f5c7142131132ad42001000000000000004c5f0ec2d17a76153ff51817f12d9cfc3c7f0400f1049f06604cff828a6e3f579ca6c59ace013d15af80a0fe6ba3173a5610b329a79f0162abce9c09672dbcf40a64b15d1e1c1892a27e802eca601679af9438dc9b531d77051b01bb17d5b2ea8bd96eff87db22ab5ed00680f3e9944c6d6140056fed7bceb8fb89db73e104fdc23b7f01d7576e7fb404988d804822186f7e32ff008dd0e75223aff46aa1755a32cc305580d914ee39fb38efe480fe722aebe8d31918bef2cac98aaa6f83977aa141db59fa6f60c5c7ad3cee725b80ecf5286845658ee48742709acc130eeb2d9711f64aa9ecd779546b33d3fe325780f489c06c1bf9de85c1fd1ffc66e7df5819ff9332c8aa175355d7b15fad9ef42d80ee16b9cd2becf317db1b39987478ec63ddc9bb8596fc0a898d1d0991db0308688011c94f20b3f6e285e1f4bba428e6afb9f174bd387a59aa4ad56747a5c4e353da75019f06de3d8a54d27e44a9d5ce189618f22d3008505f0e7b9012096b41c4eb3aaf947f6ea4290803004c5f03b4123b2e186e07fb7bad5dda5f55c004008057ab6abcf895dece27a356a900a7daab1355e0d2c9dacb1b2930ee85d3f31970ed029f0cb6f36e027abb2091cfb5110ab5087f9960685f06155b3cd9a8c9e5e9a23fd5dc13a5ed20d3f1a81000000000685f08316cbf8fa0da822a20ac1c55bf1be3207917000000000000505f0e7b9012096b41c4eb3aaf947f6ea42908000080670ea368cff00a419fb56bb1d23af27aca293992767621adebbda85bb216ede08092a93e39afd3cc5bfdf61fd75467b311989c8a11182041748f1627e0b7264358685f090e2fbf2d792cb324bffa9427fe1f0e20c5fcda002306db0081019f0d3719f5b0b12c7105c073c507445948e0004c570f9d7e46afdef838d80700001404db07000080cc0c38844aaa6edb1a75664c79c04a921573e48fa1dac5b44102cba2e60e4b315c5700bd9a93e85e3ce1d20700002408d6070000dc070000f5019f0d710b30bd2eab0352ddcc26417aa194428280b8656f3474f49f3d9df85ddbc84c5490a7fd3e3295f2c7d2648028242aec6aad4c5f03c716fb8fff3de61a883bb76adb34a204004c5f0f4993f016e2d2f8e5f43be7bb259486040080eb9e930dcfcab68937051ca6533d25491657fa4fb17f00358b95dcea542623e70024e803000000d407000000d607000000db07000000dc07000000f007000000f207000000f307000000f507000000", "0x3102840088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00a831c49a9fce65e59a39d52f132dfae936da5d53a4c49035612b63850a8f07dca3231045277e48b8c748736f1c7549bc03f2d74b55371ef783043200674f570d240008000a0000d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69b104", ], "header": { diff --git a/packages/e2e/src/__snapshots__/batch-request.test.ts.snap b/packages/e2e/src/__snapshots__/batch-request.test.ts.snap new file mode 100644 index 00000000..ef524ed9 --- /dev/null +++ b/packages/e2e/src/__snapshots__/batch-request.test.ts.snap @@ -0,0 +1,19 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Batch request > batch getStorage 1`] = ` +[ + { + "id": 2, + "jsonrpc": "2.0", + "result": "0xb5297d01adb0964d5195f9f17a3cf6e99ef8622e71863456eeb9296d5681292b", + }, + { + "error": { + "code": -32601, + "message": "Method not found: not_found", + }, + "id": 3, + "jsonrpc": "2.0", + }, +] +`; diff --git a/packages/e2e/src/__snapshots__/chain.test.ts.snap b/packages/e2e/src/__snapshots__/chain.test.ts.snap index 4e6a2de5..626ce7a0 100644 --- a/packages/e2e/src/__snapshots__/chain.test.ts.snap +++ b/packages/e2e/src/__snapshots__/chain.test.ts.snap @@ -243,7 +243,7 @@ exports[`chain rpc > getXXX 12`] = ` "block": { "extrinsics": [ "0x280401000ba6dc70bd8801", - "0x2d4f041e00e9026c0bed8ea286dbea10d9add16a898ffe1943bb298283c4e52c4745f4f9e7bd1bfeeee700440ed43d7b7698bda1f350a6c89bdf2ecf1228b5b4322ecfb77d1c607d9e7b80fa7941f26fff6290c514267179c088e4a0b185fa23eafabd9ba29d53861953910806617572612050e260080000000005617572610101a66761c6f75913d47b4881ab589eee15fa8c0aeb6ed38b941108edd2642d7c3ddcc42ab8e79a244d06520e61c0670628415b4e4f6018d744da1fe19b87146d8e9bbef30041cf75765f4f63138b5a8e3a4dee5fbbb2fab650272a3c4066bef05dd74ee87200005000ccd856f5a4efb16ffa83d0070000a428e8030000d4070000d6070000d8070000db070000dc070000f0070000f2070000f3070000f5070000e856f5a4efb16ffa83d0070000b42ce8030000d4070000d6070000d8070000db070000dc070000f0070000f2070000f3070000f5070000380800009d015d01c872d0ebaf85d0070000f50700005501e803000000900100009001000000000000000000011a55dc86f62772e32e58a2b8d0371c0940701e21d0f42134905ad3e3c1d2070500e8764817000000000000000000000000e8764817000000000000000000000019015d057a605f506cfcd4070000d0070000d4e80300000090010000900100000000000000000001be71a21c87fd9fd837b0608dc9f780a666c890be213bb36ddc79179384c66835985d0a87461a6f93a938080000d007000054e8030000009001000090010000000000000000000019015d0bc334ef110d8af5070000d0070000d4e80300000090010000900100000000000000000001ee81f513b9828daddab221068bba9249fe60f5cde84201ce0190b8e9c86010c019015e046fae65527199f2070000d0070000d4e803000000900100009001000000000000000000011623200dc56d973c200448bf7a939ef621fe5f54fad26b838a7201459bf77e1e19015e04d2a15ab51127e8030000d0070000d4e8030000009001000090010000000000000000000171cdacbf1af48f4252086a6b2134ee98abd462392270f81885cef0c3f2ed8da119015e1c472775baca93f0070000d0070000d4e803000000900100009001000000000000000000019e938c3bafc461a3c99f1a18cf08ead21e2473f2eae1d67a6a2ffaefce6f49ce9d015e36ad4314650419d0070000f00700005501e803000000900100009001000000000000000000019f71e512f2d1cc38cef38aa8b517deaa0731e0d94a20e7907e7d2ed4d5767d0800e8764817000000000000000000000000e876481700000000000000000000009d015e36c65ca123d5fbd0070000dc0700005501e803000000900100009001000000000000000000016cc7baf613a7d02ff83b8c42d19ca65e4a2d054a136df871cb1aac62e941965000e8764817000000000000000000000000e87648170000000000000000000000c45e414cb008e0e61e46722aa60abdd67280647979f673b44a6927553adcc3d3b6eede7a2346b4665dd6ec19c8a10ceff67119015e4361975d97255ddb070000d0070000d4e803000000900100009001000000000000000000018c74408c28f6627f58a8e10b3ec06b98b0166bfb148641a35c5cdfc7a56e68fb9d015e4be1ee506d55f8d0070000f30700005501e8030000009001000090010000000000000000000159898a2874487a46052f949bdc904ec14c45f5597fec9a64e53c73e1b15ae53900e8764817000000000000000000000000e876481700000000000000000000009d015e4f36708366b722d0070000e80300005501e80300000090010000900100000000000000000001055771e1276fbc23eb4b7b4631d55e489b0a77310bc21d7da7f443f0973a0e1300e8764817000000000000000000000000e8764817000000000000000000000019015e55c8e02d73966fd6070000d0070000d4e80300000090010000900100000000000000000001fdf3e3a2d06e4834b3f407d6b2e7a547795f302818e7f9e9775135e70f0012b719015e8b652b2ae6ed1ddc070000d0070000d4e80300000090010000900100000000000000000001e66816642666a6ac1017fe14aa32407c4129bb05bd0e3f6786ac58945c025c9619015e968c2de8299067f3070000d0070000d4e80300000090010000900100000000000000000001772e98610c34bfcf0dfbdde1794231c18cef8e0d65b360eaa5be668c4c4f3bc79d015ea99274c2ff3639d0070000d60700005501e80300000090010000900100000000000000000001ff53da92e719208899fa521ea30b07cfce7c94299ba5c6de879d5a9c141bd65300e8764817000000000000000000000000e876481700000000000000000000009d015ec648b30353eed1d0070000db0700005501e8030000009001000090010000000000000000000100382d804f7b02c95c2d6b3b6a9cad2c97c2d7570bdfd32f8e8d961754b74b6d00e8764817000000000000000000000000e87648170000000000000000000000c45ee678799d3eff024253b90e84927cc680f126c9e4609547475ec38b61ba89dad52e716489aeae728840491797acbc07c4cc5f0077dfdb8adb10f78f10a5df8742c5458401614798c9b3f2ad435f4118b7f3af954904d78cc26443aadb8190dba355a2c6c0a1015f02c412f496dcf830d0070000d80700005501e8030000009001000090010000000000000000000162a9718fbc71e7dcc66f1dd50e9e4e2e7e825bf5e76f8a7993b6c1910360b28b00e8764817000000000000000000000000e8764817000000000000000000000079035f04b49d95320d9021994c850f25b8e3852d030000a000005000000a00000000c8000000c800000a0000000a00000040380000580200000000500000c800000700e8764817020040011e0000000000000000e8764817000000000000000000000000e87648170000000000000000000000e8030000009001001e00000000000000009001004038000000000000000000000a0000000a0000000a00000001000000010500000001c80000000600000058020000580200000200000059000000000000001e000000280000000700c817a80402004001010200000014000000a1015f050452a22bee61fad0070000f20700005501e8030000009001000090010000000000000000000187a6fe1514fd0de8ea5c6f8a7101ee5145aa4fb16e43d0c84860331ae44d402000e8764817000000000000000000000000e876481700000000000000000000001d015f0e1a4e21b9b6ce11d8070000d0070000d4e803000000900100009001000000000000000000015063b45fb0f97475aae3195a3a5ee0b06ce909ecc8c856d42d51ebde6fc67739a1015f0fb7edc4cbc65e03d0070000d40700005501e80300000090010000900100000000000000000001436ee8e8e7d06535bf6e65ab2f678f695100c87c22b60360c62a5712e2409f7a00e8764817000000000000000000000000e8764817000000000000000000000039017f17f78c98723ddc9073523ef3beefda0c4d7fefc408aac59dbfe80a72ac8e3ce563f5a4efb16ffa83d0070000804e75289a0a452807295c0050bd79ff49e15816d25f31d5f8b0b901491a9f3527150180001280787bcd8639494b1b4ac2cfe8a085b773c02770e2a0738c3ccbd81c2745eca42e808096d4cc8c7a0f9ae9be9cf36f4f988bfe9a67da1f430966125d08fe3b6f1b5f15018000148087a6bf935205a5258f5fd2e7a80027f6584311e8eb535a47e5984ce9a754c2db80445d631a1ecd6de9476c8b816d77a7a810d1d37497334536acb58c58f9a6a700150180004280b2c508bc1d844471c7ad2f7c5ca97fef59a081548aae90e0aa9e06d0153f871780ace790dae94e1087aac2c5c92f9260533491c30ceeeb9b5e4ba2a9af1f1e4bf4d48000c0787694c040f5e73d9b7addd6cb603d15d3b0021d9da3ceafbd080d00000401485e4993f016e2d2f8e5f43be7bb259486040015018000c080b53c079fb3b3bc82049775eb4380f05dd48b80eda9494c9d2c1e9e76068eae8380fa89937b8cf25785c5445d9485ea57494a9d7047e479f49a86f3804342837743150180010180e31631069d6ac20026ad2035691e6782b449ab7f5b9d6f5f50c247a0ad09ff2280779a0ba375994f5a851f4bd4d465eca93ce76a5aa070a22e4ddeabd6ca4d78ac150180041080fce1aa163cc5b8e44db68454b97b048bc15c218a35016c3ef275ecd6b5f7a11180cf62a6b73a8d6fb5f87f1aceac4728e0360561b3123fd2e33db53b74ee8d1f4b150180080280ca984071022534f19a8a83a50f126ed05857e02e28cec9ed17eb2e285c7bb21580405ba87190f8a85e61e53b808ab22bf49bc5e986802aa40756c2727facce9b5c150180080480bfa56ec6809fa5073a83b7e243d6a7884cca6cdda6ab353be1d5fd128670fa5080abe9d5a8ef18a5c3215055cc9f7eda97d6914f13946ae0e9ea3bd91a7d6bd8c0290180085080720475da1eb4b5f077fca4ad1e6add131c2ce61ab829c8ca4ef18029c79bacc048563524f87eaf5eaf000800001404e8030000485628b8ad2696ed532c0800001404f20700002901800850808eaf571106205a34213fb1fa2fa165744e6c0fe81f161d0cf6331d4158d0b8e648563524f87eaf5eaf000800001404e8030000485628b8ad2696ed532c0800001404f20700001501801040806eb6c6756cf0cfc8fa41ff99dd5fd326a4abb0275e2bcecbf5530d34c492084080692755c9209155bd724071de137657f492de5bb5479738d1af7119739b4df4739901802030803894a94f9b4992c3079fd4a5bcff3d3899d9398cfd80911cb00a80bc82d7077080aa48bfdc4268bca63120e4a05a80f2916c9fe68fda15eaf77f49070eb0201a7280c881051c790d8340a3e08959df95e63adcf50371b67eacc9fb988b145dceb6591501802040807bd7b7016c35992cfcafdc5e3ce3a63a3282d189b49b23fa983eec1c3dd48e5480d49f322f96a88b511a5589af3cb5d8aca0c0e40dac0b8f247969c8cb0cb85f14a102804390808b36e3e2db387419d62e134238e3a546480f1eda36681cab335283869379533c805060df3e1ef81a6ffa5b135034bf5a4bd0f10c236a8f0e611905a85fcb73f2358059e7633c91e51aeb553d06f4bc3a88ae8ecc51c565ba14749fcfb96b0a54f8568026de5cf05a0b126e10eeff3546d7a3d123bb0d4138b7fe5094359e391473de0b80da68cf8effc6c5ec15c0f401c4ee20e662248c1c185495886f6f92b51744d3ccd5019e0da05ca59913bc38a8630590f2627c028880d83e3a486745cd1840e03b54f3b8512e419242f895233a35f9e66bfe30a3fac580ec0dfe021509bf2973e7d1f084b5c9e6646a54e6d5b117b1ee4dfe0d21da9ea780ac02f82263541dbcb96fe33d55353798cdc255532ffb56140685c5873b7c3a23e1019f012b746dcf32e843354583c9702cc020e1004c57071ceff5b0f64d362e0800001404e80300005c570f9d7e46afdef838d80700002408d0070000db0700008090b114f5c86023a95e5f98df73f8c47d95ec44082dd256a205fb2d136839d80e5c5700bd9a93e85e3ce1d20700002408d6070000dc07000009019f05207f03cfdce586301014700e2c25934040685f0d9ef3b78afddab7f5c7142131132ad42001000000000000004c5f0ec2d17a76153ff51817f12d9cfc3c7f0400f9059f06604cff828a6e3f579ca6c59ace013d55bf80368eaed441929811018e6385c77832d150578f8c0f96249ef03402c07a8c9ef680b1bd948a1f07b46e0fdff6cc86d50d290141dbc98d6fa4b10f25152b9fd7ceb280df0a3cbe34cb0c9d4336993916be7f8c63d132420818a1ab86996336538003bb80cd3485f6bab7622b796cf1987f473cbf4fbe1c5f6a3c9af10aef48c25a228044804822186f7e32ff008dd0e75223aff46aa1755a32cc305580d914ee39fb38efe4802fc96ffdc855123bdd70462f0347ee3d0ca983e25ad26cf402c1307510fcb11980e1d5e9fdeb9bc11d29d2db619b8c4e9982663ac066315dad3b23d929729155c0802574b4f2b745a3efbae2b305787e507b4e6aa7fafd52878952bef038514a1ce580d950f46ce6318c467e4fcbe13eb7ba7e52efa47c5d3eb899cc11fd493899fc118020b913389e7db15cf2733d244bb1dc9b16514b9d5dba548eddbb7adc790e4f00802da1fd6f9fe0a8e6656a82d21c17cfbcc9df0561cb7030ee5f266f9d10f7611875019f06de3d8a54d27e44a9d5ce189618f22d3008505f0e7b9012096b41c4eb3aaf947f6ea4290804004c5f03b4123b2e186e07fb7bad5dda5f55c0040080eb9400585a9e8b2f26f1ee751ba989620f460abf9e3ce7c6b91693d785d8d453ed029f0cb6f36e027abb2091cfb5110ab5087f9960685f06155b3cd9a8c9e5e9a23fd5dc13a5ed20a3c4c11000000000685f08316cbf8fa0da822a20ac1c55bf1be3201f1a000000000000505f0e7b9012096b41c4eb3aaf947f6ea4290800008029f757f1d06d3000cd4662c35d2313adc96c09c67a7fd7a96e74bfa481eb5e6580836c2fe1c3f4c88b70cbb4fb8c277f324c126b5d20eb0c10ee611ebfad4a32de685f090e2fbf2d792cb324bffa9427fe1f0e20d6b1f30029bbf300e1019f0d3719f5b0b12c7105c073c507445948e1004c57071ceff5b0f64d362e0800001404e80300005c570f9d7e46afdef838d80700002408d0070000db0700008002764f06c998b78ae818bed2ab379c3decbf086b87ee6e023be93cccafbb2db05c5700bd9a93e85e3ce1d20700002408d6070000dc070000a1019f0d710b30bd2eab0352ddcc26417aa19440824c5f03c716fb8fff3de61a883bb76adb34a204008008a0c609ab4888f02c2545c002153297c2641c5a7b4f3d8e25c634e721f80bea7c77027bbb460270642b5bcaf032ea04d56aab6cb5748316c751060d00000400002ce803000000d407000000d607000000d807000000db07000000dc07000000f007000000f207000000f307000000f5070000003808000000", + "0x2553041e00e9026c0bed8ea286dbea10d9add16a898ffe1943bb298283c4e52c4745f4f9e7bd1bfeeee700440ed43d7b7698bda1f350a6c89bdf2ecf1228b5b4322ecfb77d1c607d9e7b80fa7941f26fff6290c514267179c088e4a0b185fa23eafabd9ba29d53861953910806617572612050e260080000000005617572610101a66761c6f75913d47b4881ab589eee15fa8c0aeb6ed38b941108edd2642d7c3ddcc42ab8e79a244d06520e61c0670628415b4e4f6018d744da1fe19b87146d8e9bbef3001ea2d9fc25b6714ef01e93f09baf301a7067573ad0a899baaeddca2525e191e100005000d0d856f5a4efb16ffa83d0070000a428e8030000d4070000d6070000d8070000db070000dc070000f0070000f2070000f3070000f5070000e856f5a4efb16ffa83d0070000b42ce8030000d4070000d6070000d8070000db070000dc070000f0070000f2070000f3070000f5070000380800009d015d01c872d0ebaf85d0070000f50700005501e803000000900100009001000000000000000000011a55dc86f62772e32e58a2b8d0371c0940701e21d0f42134905ad3e3c1d2070500e8764817000000000000000000000000e8764817000000000000000000000019015d057a605f506cfcd4070000d0070000d4e80300000090010000900100000000000000000001be71a21c87fd9fd837b0608dc9f780a666c890be213bb36ddc79179384c66835985d0a87461a6f93a938080000d007000054e8030000009001000090010000000000000000000019015d0bc334ef110d8af5070000d0070000d4e80300000090010000900100000000000000000001ee81f513b9828daddab221068bba9249fe60f5cde84201ce0190b8e9c86010c019015e046fae65527199f2070000d0070000d4e803000000900100009001000000000000000000011623200dc56d973c200448bf7a939ef621fe5f54fad26b838a7201459bf77e1e19015e04d2a15ab51127e8030000d0070000d4e8030000009001000090010000000000000000000171cdacbf1af48f4252086a6b2134ee98abd462392270f81885cef0c3f2ed8da119015e1c472775baca93f0070000d0070000d4e803000000900100009001000000000000000000019e938c3bafc461a3c99f1a18cf08ead21e2473f2eae1d67a6a2ffaefce6f49ce9d015e36ad4314650419d0070000f00700005501e803000000900100009001000000000000000000019f71e512f2d1cc38cef38aa8b517deaa0731e0d94a20e7907e7d2ed4d5767d0800e8764817000000000000000000000000e876481700000000000000000000009d015e36c65ca123d5fbd0070000dc0700005501e803000000900100009001000000000000000000016cc7baf613a7d02ff83b8c42d19ca65e4a2d054a136df871cb1aac62e941965000e8764817000000000000000000000000e87648170000000000000000000000c45e414cb008e0e61e46722aa60abdd67280647979f673b44a6927553adcc3d3b6eede7a2346b4665dd6ec19c8a10ceff67119015e4361975d97255ddb070000d0070000d4e803000000900100009001000000000000000000018c74408c28f6627f58a8e10b3ec06b98b0166bfb148641a35c5cdfc7a56e68fb9d015e4be1ee506d55f8d0070000f30700005501e8030000009001000090010000000000000000000159898a2874487a46052f949bdc904ec14c45f5597fec9a64e53c73e1b15ae53900e8764817000000000000000000000000e876481700000000000000000000009d015e4f36708366b722d0070000e80300005501e80300000090010000900100000000000000000001055771e1276fbc23eb4b7b4631d55e489b0a77310bc21d7da7f443f0973a0e1300e8764817000000000000000000000000e8764817000000000000000000000019015e55c8e02d73966fd6070000d0070000d4e80300000090010000900100000000000000000001fdf3e3a2d06e4834b3f407d6b2e7a547795f302818e7f9e9775135e70f0012b719015e8b652b2ae6ed1ddc070000d0070000d4e80300000090010000900100000000000000000001e66816642666a6ac1017fe14aa32407c4129bb05bd0e3f6786ac58945c025c9619015e968c2de8299067f3070000d0070000d4e80300000090010000900100000000000000000001772e98610c34bfcf0dfbdde1794231c18cef8e0d65b360eaa5be668c4c4f3bc79d015ea99274c2ff3639d0070000d60700005501e80300000090010000900100000000000000000001ff53da92e719208899fa521ea30b07cfce7c94299ba5c6de879d5a9c141bd65300e8764817000000000000000000000000e876481700000000000000000000009d015ec648b30353eed1d0070000db0700005501e8030000009001000090010000000000000000000100382d804f7b02c95c2d6b3b6a9cad2c97c2d7570bdfd32f8e8d961754b74b6d00e8764817000000000000000000000000e87648170000000000000000000000c45ee678799d3eff024253b90e84927cc680f126c9e4609547475ec38b61ba89dad52e716489aeae728840491797acbc07c4cc5f0077dfdb8adb10f78f10a5df8742c5458401614798c9b3f2ad435f4118b7f3af954904d78cc26443aadb8190dba355a2c6c0a1015f02c412f496dcf830d0070000d80700005501e8030000009001000090010000000000000000000162a9718fbc71e7dcc66f1dd50e9e4e2e7e825bf5e76f8a7993b6c1910360b28b00e8764817000000000000000000000000e8764817000000000000000000000079035f04b49d95320d9021994c850f25b8e3852d030000a000005000000a00000000c8000000c800000a0000000a00000040380000580200000000500000c800000700e8764817020040011e0000000000000000e8764817000000000000000000000000e87648170000000000000000000000e8030000009001001e00000000000000009001004038000000000000000000000a0000000a0000000a00000001000000010500000001c80000000600000058020000580200000200000059000000000000001e000000280000000700c817a80402004001010200000014000000a1015f050452a22bee61fad0070000f20700005501e8030000009001000090010000000000000000000187a6fe1514fd0de8ea5c6f8a7101ee5145aa4fb16e43d0c84860331ae44d402000e8764817000000000000000000000000e876481700000000000000000000001d015f0e1a4e21b9b6ce11d8070000d0070000d4e803000000900100009001000000000000000000015063b45fb0f97475aae3195a3a5ee0b06ce909ecc8c856d42d51ebde6fc67739a1015f0fb7edc4cbc65e03d0070000d40700005501e80300000090010000900100000000000000000001436ee8e8e7d06535bf6e65ab2f678f695100c87c22b60360c62a5712e2409f7a00e8764817000000000000000000000000e876481700000000000000000000006d03770b3c252fcb29d88eff4f3de5de4476c363f5a4efb16ffa83d0070000f102e902b60cb17d118325e80e5d1b36a5fe97115fc7b56230d5f3e287fc0317d4b16edf02efe700f058a653118a5b6d17532b5f05be14ccd2e1e48ac629f90fddd0173ac11ed5b83510ab964253daa8300bb0d49e37c6ac4940e954866862d3985f0ba13f9968e90806617572612051e260080000000005617572610101649411576e676f2a8635f943502bdfb6739282702112299fb5e6c346a93f1866b62a4e747dde76f738e492ca2eb0a03ed996336d7356988ab9d5adc19204cd8739017f17f78c98723ddc9073523ef3beefda0c4d7fefc408aac59dbfe80a72ac8e3ce563f5a4efb16ffa83d0070000804e75289a0a452807295c0050bd79ff49e15816d25f31d5f8b0b901491a9f3527150180001280787bcd8639494b1b4ac2cfe8a085b773c02770e2a0738c3ccbd81c2745eca42e808096d4cc8c7a0f9ae9be9cf36f4f988bfe9a67da1f430966125d08fe3b6f1b5f15018000148087a6bf935205a5258f5fd2e7a80027f6584311e8eb535a47e5984ce9a754c2db80445d631a1ecd6de9476c8b816d77a7a810d1d37497334536acb58c58f9a6a700150180004280b2c508bc1d844471c7ad2f7c5ca97fef59a081548aae90e0aa9e06d0153f871780ace790dae94e1087aac2c5c92f9260533491c30ceeeb9b5e4ba2a9af1f1e4bf4d48000c0787694c040f5e73d9b7addd6cb603d15d3b0021d9da3ceafbd080d00000401485e4993f016e2d2f8e5f43be7bb259486040015018000c080b53c079fb3b3bc82049775eb4380f05dd48b80eda9494c9d2c1e9e76068eae8380fa89937b8cf25785c5445d9485ea57494a9d7047e479f49a86f3804342837743150180010180e31631069d6ac20026ad2035691e6782b449ab7f5b9d6f5f50c247a0ad09ff2280779a0ba375994f5a851f4bd4d465eca93ce76a5aa070a22e4ddeabd6ca4d78ac150180041080fce1aa163cc5b8e44db68454b97b048bc15c218a35016c3ef275ecd6b5f7a11180cf62a6b73a8d6fb5f87f1aceac4728e0360561b3123fd2e33db53b74ee8d1f4b150180080280ca984071022534f19a8a83a50f126ed05857e02e28cec9ed17eb2e285c7bb21580405ba87190f8a85e61e53b808ab22bf49bc5e986802aa40756c2727facce9b5c150180080480bfa56ec6809fa5073a83b7e243d6a7884cca6cdda6ab353be1d5fd128670fa5080abe9d5a8ef18a5c3215055cc9f7eda97d6914f13946ae0e9ea3bd91a7d6bd8c0290180085080720475da1eb4b5f077fca4ad1e6add131c2ce61ab829c8ca4ef18029c79bacc048563524f87eaf5eaf000800001404e8030000485628b8ad2696ed532c0800001404f20700002901800850808eaf571106205a34213fb1fa2fa165744e6c0fe81f161d0cf6331d4158d0b8e648563524f87eaf5eaf000800001404e8030000485628b8ad2696ed532c0800001404f20700001501801040806eb6c6756cf0cfc8fa41ff99dd5fd326a4abb0275e2bcecbf5530d34c492084080692755c9209155bd724071de137657f492de5bb5479738d1af7119739b4df4739901802030803894a94f9b4992c3079fd4a5bcff3d3899d9398cfd80911cb00a80bc82d7077080aa48bfdc4268bca63120e4a05a80f2916c9fe68fda15eaf77f49070eb0201a7280c881051c790d8340a3e08959df95e63adcf50371b67eacc9fb988b145dceb6591501802040807bd7b7016c35992cfcafdc5e3ce3a63a3282d189b49b23fa983eec1c3dd48e5480d49f322f96a88b511a5589af3cb5d8aca0c0e40dac0b8f247969c8cb0cb85f14a102804390808b36e3e2db387419d62e134238e3a546480f1eda36681cab335283869379533c809752eed4fc605c94a04691297a2f90b47b555bcfb03d7f706de843568a2664da8059e7633c91e51aeb553d06f4bc3a88ae8ecc51c565ba14749fcfb96b0a54f8568053717ea68cf7a5abe273555d043a96eddd4b41b76044b3bb7899e35d2490d6f880da68cf8effc6c5ec15c0f401c4ee20e662248c1c185495886f6f92b51744d3ccd5019e0da05ca59913bc38a8630590f2627c028880d83e3a486745cd1840e03b54f3b8512e419242f895233a35f9e66bfe30a3fac580ec0dfe021509bf2973e7d1f084b5c9e6646a54e6d5b117b1ee4dfe0d21da9ea780ac02f82263541dbcb96fe33d55353798cdc255532ffb56140685c5873b7c3a23e1019f012b746dcf32e843354583c9702cc020e1004c57071ceff5b0f64d362e0800001404e80300005c570f9d7e46afdef838d80700002408d0070000db0700008090b114f5c86023a95e5f98df73f8c47d95ec44082dd256a205fb2d136839d80e5c5700bd9a93e85e3ce1d20700002408d6070000dc07000009019f05207f03cfdce586301014700e2c25934040685f0d9ef3b78afddab7f5c7142131132ad42001000000000000004c5f0ec2d17a76153ff51817f12d9cfc3c7f0400f9059f06604cff828a6e3f579ca6c59ace013d55bf80368eaed441929811018e6385c77832d150578f8c0f96249ef03402c07a8c9ef680b1bd948a1f07b46e0fdff6cc86d50d290141dbc98d6fa4b10f25152b9fd7ceb280df0a3cbe34cb0c9d4336993916be7f8c63d132420818a1ab86996336538003bb80cd3485f6bab7622b796cf1987f473cbf4fbe1c5f6a3c9af10aef48c25a228044804822186f7e32ff008dd0e75223aff46aa1755a32cc305580d914ee39fb38efe4802fc96ffdc855123bdd70462f0347ee3d0ca983e25ad26cf402c1307510fcb11980e1d5e9fdeb9bc11d29d2db619b8c4e9982663ac066315dad3b23d929729155c0802574b4f2b745a3efbae2b305787e507b4e6aa7fafd52878952bef038514a1ce580d950f46ce6318c467e4fcbe13eb7ba7e52efa47c5d3eb899cc11fd493899fc118020b913389e7db15cf2733d244bb1dc9b16514b9d5dba548eddbb7adc790e4f00802da1fd6f9fe0a8e6656a82d21c17cfbcc9df0561cb7030ee5f266f9d10f7611875019f06de3d8a54d27e44a9d5ce189618f22d3008505f0e7b9012096b41c4eb3aaf947f6ea4290804004c5f03b4123b2e186e07fb7bad5dda5f55c0040080eb9400585a9e8b2f26f1ee751ba989620f460abf9e3ce7c6b91693d785d8d453ed029f0cb6f36e027abb2091cfb5110ab5087f9960685f06155b3cd9a8c9e5e9a23fd5dc13a5ed20a5c4c11000000000685f08316cbf8fa0da822a20ac1c55bf1be3201f1a000000000000505f0e7b9012096b41c4eb3aaf947f6ea4290800008029f757f1d06d3000cd4662c35d2313adc96c09c67a7fd7a96e74bfa481eb5e6580836c2fe1c3f4c88b70cbb4fb8c277f324c126b5d20eb0c10ee611ebfad4a32de685f090e2fbf2d792cb324bffa9427fe1f0e20d6b1f30029bbf300e1019f0d3719f5b0b12c7105c073c507445948e1004c57071ceff5b0f64d362e0800001404e80300005c570f9d7e46afdef838d80700002408d0070000db0700008002764f06c998b78ae818bed2ab379c3decbf086b87ee6e023be93cccafbb2db05c5700bd9a93e85e3ce1d20700002408d6070000dc07000025029f0d710b30bd2eab0352ddcc26417aa194428280c8c17f098e461d1ef881c412c5bbeccbc4f07cc1440940473d273c8edf57dd2d4c5f03c716fb8fff3de61a883bb76adb34a204008008a0c609ab4888f02c2545c002153297c2641c5a7b4f3d8e25c634e721f80bea7c77027bbb460270642b5bcaf032ea04d56aab6cb5748316c751060d00000400002ce803000000d407000000d607000000d807000000db07000000dc07000000f007000000f207000000f307000000f5070000003808000000", ], "header": { "digest": { diff --git a/packages/e2e/src/__snapshots__/chopsticks-provider.test.ts.snap b/packages/e2e/src/__snapshots__/chopsticks-provider.test.ts.snap new file mode 100644 index 00000000..d14b918c --- /dev/null +++ b/packages/e2e/src/__snapshots__/chopsticks-provider.test.ts.snap @@ -0,0 +1,343 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`chopsticks provider works > chain rpc 1`] = ` +{ + "digest": { + "logs": [ + { + "preRuntime": [ + "0x61757261", + "0x51e2600800000000", + ], + }, + { + "seal": [ + "0x61757261", + "0x649411576e676f2a8635f943502bdfb6739282702112299fb5e6c346a93f1866b62a4e747dde76f738e492ca2eb0a03ed996336d7356988ab9d5adc19204cd87", + ], + }, + ], + }, + "extrinsicsRoot": "0x3510ab964253daa8300bb0d49e37c6ac4940e954866862d3985f0ba13f9968e9", + "number": 3800000, + "parentHash": "0xb60cb17d118325e80e5d1b36a5fe97115fc7b56230d5f3e287fc0317d4b16edf", + "stateRoot": "0xf058a653118a5b6d17532b5f05be14ccd2e1e48ac629f90fddd0173ac11ed5b8", +} +`; + +exports[`chopsticks provider works > chain rpc 2`] = ` +{ + "digest": { + "logs": [ + { + "preRuntime": [ + "0x61757261", + "0x51e2600800000000", + ], + }, + { + "seal": [ + "0x61757261", + "0x649411576e676f2a8635f943502bdfb6739282702112299fb5e6c346a93f1866b62a4e747dde76f738e492ca2eb0a03ed996336d7356988ab9d5adc19204cd87", + ], + }, + ], + }, + "extrinsicsRoot": "0x3510ab964253daa8300bb0d49e37c6ac4940e954866862d3985f0ba13f9968e9", + "number": 3800000, + "parentHash": "0xb60cb17d118325e80e5d1b36a5fe97115fc7b56230d5f3e287fc0317d4b16edf", + "stateRoot": "0xf058a653118a5b6d17532b5f05be14ccd2e1e48ac629f90fddd0173ac11ed5b8", +} +`; + +exports[`chopsticks provider works > chain rpc 3`] = ` +{ + "digest": { + "logs": [], + }, + "extrinsicsRoot": "0x03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314", + "number": 0, + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "stateRoot": "0x010c5745a5d42bcfbe0a644d5a2a4e22e2ff0fd378d48208ecfacea5b7e05a74", +} +`; + +exports[`chopsticks provider works > chain rpc 4`] = ` +{ + "digest": { + "logs": [ + { + "preRuntime": [ + "0x61757261", + "0x2b21250800000000", + ], + }, + { + "seal": [ + "0x61757261", + "0xba12b8f0cf97e0e0fcd885b889ae7e90b86277592690436b67eced4e0ef3e02ca094867287e94208a9d8a9e62402de9b4717247a6332bd55728420dbad0e8d8f", + ], + }, + ], + }, + "extrinsicsRoot": "0xe9033b0b86efaaa452fce2e3013806e480fa33195cfdd75d8263e5dc6acffffd", + "number": 1000, + "parentHash": "0x113384df3a413ca774ff5aebbef8045b9356493d9aeef5e59b036bd4bd3f21ba", + "stateRoot": "0x33cb61d08934b1de5be3453801450f36082cb1a060cd760b427efc65e96be63b", +} +`; + +exports[`chopsticks provider works > chain rpc 5`] = ` +{ + "block": { + "extrinsics": [ + "0x280401000bc6ad70bd8801", + "0xc1b2041e00e9026c0bed8ea286dbea10d9add16a898ffe1943bb298283c4e52c4745f4f9e7bd1bfeeee700440ed43d7b7698bda1f350a6c89bdf2ecf1228b5b4322ecfb77d1c607d9e7b80fa7941f26fff6290c514267179c088e4a0b185fa23eafabd9ba29d53861953910806617572612050e260080000000005617572610101a66761c6f75913d47b4881ab589eee15fa8c0aeb6ed38b941108edd2642d7c3ddcc42ab8e79a244d06520e61c0670628415b4e4f6018d744da1fe19b87146d8e99bef30039f24216a73fcc139aa779b5095a61bc12a9f934f10d59fa2740fd000c769c2e000050002901b456f5a4efb16ffa83d0070000804e75289a0a452807295c0050bd79ff49e15816d25f31d5f8b0b901491a9f3527d856f5a4efb16ffa83d0070000a428e8030000d4070000d6070000d8070000db070000dc070000f0070000f2070000f3070000f5070000e856f5a4efb16ffa83d0070000b42ce8030000d4070000d6070000d8070000db070000dc070000f0070000f2070000f3070000f50700003808000099015c61975d97255ddb070000d00700005501e803000000900100009001000000000000000000018c74408c28f6627f58a8e10b3ec06b98b0166bfb148641a35c5cdfc7a56e68fb00e8764817000000000000000000000000e8764817000000000000000000000099015c8c2de8299067f3070000d00700005501e80300000090010000900100000000000000000001772e98610c34bfcf0dfbdde1794231c18cef8e0d65b360eaa5be668c4c4f3bc700e8764817000000000000000000000000e876481700000000000000000000009d015d01c872d0ebaf85d0070000f50700005501e803000000900100009001000000000000000000011a55dc86f62772e32e58a2b8d0371c0940701e21d0f42134905ad3e3c1d2070500e8764817000000000000000000000000e876481700000000000000000000009d015d0452a22bee61fad0070000f20700005501e8030000009001000090010000000000000000000187a6fe1514fd0de8ea5c6f8a7101ee5145aa4fb16e43d0c84860331ae44d402000e8764817000000000000000000000000e876481700000000000000000000009d015d04d2a15ab51127e8030000d00700005501e8030000009001000090010000000000000000000171cdacbf1af48f4252086a6b2134ee98abd462392270f81885cef0c3f2ed8da100e8764817000000000000000000000000e876481700000000000000000000009d015d057a605f506cfcd4070000d00700005501e80300000090010000900100000000000000000001be71a21c87fd9fd837b0608dc9f780a666c890be213bb36ddc79179384c6683500e8764817000000000000000000000000e876481700000000000000000000009d015d07edc4cbc65e03d0070000d40700005501e80300000090010000900100000000000000000001436ee8e8e7d06535bf6e65ab2f678f695100c87c22b60360c62a5712e2409f7a00e8764817000000000000000000000000e8764817000000000000000000000019015d0a87461a6f93a938080000d0070000d4e8030000009001000090010000000000000000000000e8764817000000000000000000000000e876481700000000000000000000009d015d0b652b2ae6ed1ddc070000d00700005501e80300000090010000900100000000000000000001e66816642666a6ac1017fe14aa32407c4129bb05bd0e3f6786ac58945c025c9600e8764817000000000000000000000000e876481700000000000000000000009d015d0bc334ef110d8af5070000d00700005501e80300000090010000900100000000000000000001ee81f513b9828daddab221068bba9249fe60f5cde84201ce0190b8e9c86010c000e8764817000000000000000000000000e876481700000000000000000000009d015d0be1ee506d55f8d0070000f30700005501e8030000009001000090010000000000000000000159898a2874487a46052f949bdc904ec14c45f5597fec9a64e53c73e1b15ae53900e8764817000000000000000000000000e876481700000000000000000000009d015d0c472775baca93f0070000d00700005501e803000000900100009001000000000000000000019e938c3bafc461a3c99f1a18cf08ead21e2473f2eae1d67a6a2ffaefce6f49ce00e8764817000000000000000000000000e876481700000000000000000000009d015e046fae65527199f2070000d00700005501e803000000900100009001000000000000000000011623200dc56d973c200448bf7a939ef621fe5f54fad26b838a7201459bf77e1e00e8764817000000000000000000000000e876481700000000000000000000009d015e1a4e21b9b6ce11d8070000d00700005501e803000000900100009001000000000000000000015063b45fb0f97475aae3195a3a5ee0b06ce909ecc8c856d42d51ebde6fc6773900e8764817000000000000000000000000e876481700000000000000000000009d015e36ad4314650419d0070000f00700005501e803000000900100009001000000000000000000019f71e512f2d1cc38cef38aa8b517deaa0731e0d94a20e7907e7d2ed4d5767d0800e8764817000000000000000000000000e876481700000000000000000000009d015e36c65ca123d5fbd0070000dc0700005501e803000000900100009001000000000000000000016cc7baf613a7d02ff83b8c42d19ca65e4a2d054a136df871cb1aac62e941965000e8764817000000000000000000000000e87648170000000000000000000000c45e414cb008e0e61e46722aa60abdd67280647979f673b44a6927553adcc3d3b6eede7a2346b4665dd6ec19c8a10ceff6719d015e4f36708366b722d0070000e80300005501e80300000090010000900100000000000000000001055771e1276fbc23eb4b7b4631d55e489b0a77310bc21d7da7f443f0973a0e1300e8764817000000000000000000000000e876481700000000000000000000009d015e55c8e02d73966fd6070000d00700005501e80300000090010000900100000000000000000001fdf3e3a2d06e4834b3f407d6b2e7a547795f302818e7f9e9775135e70f0012b700e8764817000000000000000000000000e87648170000000000000000000000c85e77dfdb8adb10f78f10a5df8742c5458401614798c9b3f2ad435f4118b7f3af954904d78cc26443aadb8190dba355a2c6c09d015ea99274c2ff3639d0070000d60700005501e80300000090010000900100000000000000000001ff53da92e719208899fa521ea30b07cfce7c94299ba5c6de879d5a9c141bd65300e8764817000000000000000000000000e876481700000000000000000000009d015ec412f496dcf830d0070000d80700005501e8030000009001000090010000000000000000000162a9718fbc71e7dcc66f1dd50e9e4e2e7e825bf5e76f8a7993b6c1910360b28b00e8764817000000000000000000000000e876481700000000000000000000009d015ec648b30353eed1d0070000db0700005501e8030000009001000090010000000000000000000100382d804f7b02c95c2d6b3b6a9cad2c97c2d7570bdfd32f8e8d961754b74b6d00e8764817000000000000000000000000e87648170000000000000000000000c45ee678799d3eff024253b90e84927cc680f126c9e4609547475ec38b61ba89dad52e716489aeae728840491797acbc07c479035f04b49d95320d9021994c850f25b8e3852d030000a000005000000a00000000c8000000c800000a0000000a00000040380000580200000000500000c800000700e8764817020040011e0000000000000000e8764817000000000000000000000000e87648170000000000000000000000e8030000009001001e00000000000000009001004038000000000000000000000a0000000a0000000a00000001000000010500000001c80000000600000058020000580200000200000059000000000000001e000000280000000700c817a8040200400101020000001400000015018000148087a6bf935205a5258f5fd2e7a80027f6584311e8eb535a47e5984ce9a754c2db80445d631a1ecd6de9476c8b816d77a7a810d1d37497334536acb58c58f9a6a700d48000c0787694c040f5e73d9b7addd6cb603d15d3b0021d9da3ceafbd080d00000401485e4993f016e2d2f8e5f43be7bb2594860400150180010180e76205a9f40ea9d935f10dd1b76ec68ba02cb858e680311cf06493dbd52b7d2080ab8ec58738d227c258a530d72dfb279742d9074f55c71d366a57349989683df71501800102805ea926398d7f22c34a76cd27394e42b38b67d9a8e12682d42ef2c022f1e9d0a580c7a667171df523ff10c4bd107fff0b8505f0ed517343daf43db58f2589c919b91501800110802d0c8b37d222227c6599f8ddbc147a2a86601b6a6c3b350ab285fbbee6af0d3f800ebe650369ce0e3ce85b22816181f598cc6ecf7a3b22314357ab4181b9ccb867150180011080523c559cf4c2ecd7395a65d872d15cd441f3ee50ec5ac49b4d04bea30abc5970809ad1ad94de0fee6b6abf940739b2f72f260f8d952305ace91f4a7bd2976b89991501800404801f8c5940bb92977d89e30a335a296ca56a9ceb755370f6421d3bba50612f74ea800fe6b03639ff2739e42b263a64b97458bbb7b04a7f13a7dd10b77ba5c3d3940e1d028004648006eb75d1d207a5ff8776e8595245535c6a007781de7dcdd23e27eef27f87485580892ca882bcb7de6b01abe0617adeef1193fc432099544de3d933c433ad24f7a280df898b803d545cb2f590dac6c9e1264d7119e23eafb19fefa1826185bb3f6c9b809443b1774e380ca4f8ca172eb56d8f22fd0380e9171f3d411614bd136694300a150180080280ca984071022534f19a8a83a50f126ed05857e02e28cec9ed17eb2e285c7bb2158074b84c6cfc31dba4635917acd4d1ded1cbdb9853a998208eb17a4506d5564fb8150180080480cfd43d9d9f3bcc3622d30d6d839780cd864cebd53703d40f6e514a3eb60196018084bd8a9563de5ba3de25fd5fbd51e8dbf97ec84b7694b1dccc80c0562e5de4c3990180080c80d066a00dc79b0a8601ea466d09a4c969c246ed7d8b4f029afcd41944e33ae8b08021228c026fb40364eb5d5bd4b2ff1a3ea147449371719ba784241847db09c3a48097db38ba14a5a63a79e6b7ffc5541f99c82f13634789753afbb2fc365a500d6e290180085080720475da1eb4b5f077fca4ad1e6add131c2ce61ab829c8ca4ef18029c79bacc048563524f87eaf5eaf000800001404e8030000485628b8ad2696ed532c0800001404f20700002901800850808eaf571106205a34213fb1fa2fa165744e6c0fe81f161d0cf6331d4158d0b8e648563524f87eaf5eaf000800001404e8030000485628b8ad2696ed532c0800001404f2070000990180085080df4e4471ef3fea64b11dae1a81bb5b7bb5137ad4da9fa73906039a4c6a8f125c80aa355c7789c126573837fde95fd60e274cddf219667c77dafaf68056bda3be66808df47344d894c3b42ac9e47e98f014f07ae4bc17bc37bb734e57b5894fa3e2dba9038008bd80d7f054065a25e81afdd87d81191cd0d3f63cfbb65534cc6e94d8450084771f1480ae61c0d02438db7adda8e05b69b2e2fc6ff776a09c4521f3a149bcac39ba499a80e21ec27f1f4b8d429b10752c2d22caa92a36d14dd2610a9eb7f3a39ad27781b1803198918edb1541db193c4f4aa6969a32daf26c6b917b261b73550565953172cb8049dad376e9ab8f63f3ae0e31bcf7e01d034573a23c163336f64bb34e9932383080f3a4aaff8c298bf9e91f54c86240e0cafd4b03e75f1b01708b9953ad8afa91298065609a7ff729add198685230069fdafe46a61294414ffcc75e75841f37f9cf879101800c2078767bbb460270642b5bcaf032ea04d56aab6cb5748316c751060d00000400800c44b03e6e46f7d2749af6f5865af2e095c316ee46b1c0357e27ebfc030787e0806d2cefd922087a778a4b4c4110218b7257a9d0345d84f7ee90ef7e6635edc6dda10280101780214e0b3c1f1f8612ec8f8aedef5aaf9506c3ce2a2c3aaee20c7ec4eb80d274628075efd7ab003c663694f2168b8d18dfc395c531648e6a70bc1b831c499605963f80650d2f8aa2a5ef7119dd61f2c588410067b818c017139aa00d2ec6b84322fca580b02c981e77385f780fddf5a86b75d190a78e3ccde529266be13dffe7f3ac191080782da7db6940d8fe5817d87b19c484c1bb74e67f7bcc2bdf35270d081060ceb399018010608055f7120dbee2fc56df98dae7b16f99a6c1a0083180db28e75a0c7de276fb89b080130d8ca189ca04528b6c768c16d91748f4e8c4098239bf15ed58ceaaecc7ca64805f738e2d7016159bb83f0acfc05b94f3bfed39826328fbea9a5a6844b0ee9f62150180120080c087c34a62c2aafdef39ea9be0f9ac5764a624624f6259dc54d5e0825208ed5780a18673b451b154098a7a400495526a375c86a62e3c8f6def0a67b00eb6d26e87b104801b7680b63aa2fda4bc82cc53ddf68902b524145f83417dba47e44ff19e77ace918f53c803cc55fe3807c21dfb0360ec823ecf876e3b34c2c3e59c33d1aa9cfdc30bb697c80e3bac8ff7c3819e8351a6f38c6c32b2685a550ce4af50b631025a5d2ba7bdc5e80624df3ef29fac7071167c35c8080908b56cf1c2b209ee3140ed75bf93107b3c980787bcd8639494b1b4ac2cfe8a085b773c02770e2a0738c3ccbd81c2745eca42e80fe171033e944641bd7003b6bac42f5497a9fe6b398ad5beceaa1c4d7ed2d97bc8082e17813e9e31777745163d87491a58c355858f3b1f31dd88768344bb32ae9f880a6c7686e79b1c26c491f34f404aeab80c6d35a8d487b41a0f7bfc21712bbe27a80c6e23d4e232a91069bdb681e7e5a8309c6537da00df3ef481d6bc2859e0085c6250380225580c7f341af5a9b1a28524bb8b74512c3d9fab1b164dc92262c59af7aa77641db3d807eb28ee6f9bd0023945be7c0c9aff04734d59de30f2b74df7336317c968df73280a7114079c6e443ae5d81a7b2c9f316c8b77f977c7ef05ef29db60396009df42080d6c3ff5cce56c85a153f0ae049876fd59e17cdf75633440b597eb6b83a23148e8077e20e3e8fd18cebde793df6204f3259fb7851cd86b5e29df9245d4bb4d06fee80ad4b1f1bff610d731ae7bab96ee9dbd3c0396f92a720cc9a814202f007dc03fca10280283880a1a229374bb2b10777a483d6ca69fb41bd0f999d8212b78295a707c033637e9480b8ba9d6c26212e08a754b28634f4a39e298ee2b8ce7e8226f5649a8d9aa45ea5801e985a45c3af4b96423135fb9555c1a0b08b6d35f2d2265dcc14039b87f7ba5180aa48bfdc4268bca63120e4a05a80f2916c9fe68fda15eaf77f49070eb0201a728075e3a11a7e0bf3219c9d0e1fb599bb7a8ec67d80927cc485e540d7053d9bbe9c25038032468005d4a34f30db091ad60651636fd42946c1ef81c2d6355e9558ccdf18d75c61e0809b5ae29a9e4559ef4b9747b6cb051ad6f5e6e89dbdb07430fe996c3bf3f5991c807bd7b7016c35992cfcafdc5e3ce3a63a3282d189b49b23fa983eec1c3dd48e54802e4abf2a2bc7869170aa8c265f52eae73d46c3b30a1e38d66a01f6d54ad2735a808aa52620ee7b00389eeafb3bc397c1eced571825dd4c52c5d4678f9d7689efa5807b0bae7c6263eb548aee2f93c4ea7dc89a19b9357fc3be85b21487a979bb9458150180400880b83b0bcef0c15daf055f31e7bf25e31064a12ff9853c7d956a3938227a724d29808c68f773671aec1db46b2c37b4c827e64aa7290d65e305cdaaa6b175596256f11d028041098065b7de50f125aa94dadcb284b6416887705b8905fc50681983f3c6893d158c3b803fb4f928fe8c91abaf2bcd5d307bac924916635ea28caae82c6f81f1c6ec6b65805fdb71f3db4adaa5f1baf89d0dea15d9fdb4a1c8ac29a00ed1b8b6492bfdb35080efeb2226f503c7503e66a480da0364f772fec0db9bf08c8dd719f3056065d1eda1028048c2803b80402c3c9da1ee24b7f58d5321a089c7574ebc3d736a1b4177ccd2d5a81745801bb1bdd7cf0d97cece397f12e8518260848791b15d899aa1a91b27c5003ced198049da90db410ddc5fcb63a6ba31fff1140f1f027eab9f575207946938a6dff049800ab18793233e36de606cd42e3f040db265e3d13d2a9cf152634c6bd24818e0f6807185cd7e8b82776f18b6b6bd5010d88f653e6d8e2243c2a79ce200a34d324bcf250380505580acd9a3a26826803b03dd89f38fb37efbb0f5f45265ae3487af73cb081accebb680ebc042f91c3b3ae11ba93023785f7a812cc6d0af3650f6586de4ae0d24f0e64e80d216ec578538ea388262fdf0b4759d80d792b12ea4af54e394af19e6bc7465ee80cbc649bccb6cbe2678b258eb56b9985865852f8dc3ca4ac4608b46dc9a61a56580ffa8502e24b21c91f76c055be08dc51d52cee2fad51822ae96db01d78d0fada380692755c9209155bd724071de137657f492de5bb5479738d1af7119739b4df4731d02806500804727e8335c8d377bc2a4a9a5616df462601badc67dce6a7bf7bbe9782891d5128027b71acae222d753d0287662fc06e65809b2ab3b5e64d332d028349967678ecd80d886f041d6f6bd1d74dc4eff6fc050d2615e9a21355e539fc86362ebcde336e880af579d5ddc5c697d42bfc014076594e66c7b324cfd3017810c4e93e4f6f0ae9e15018080018068269bb8490669b94a5f1e0c3b4864e03224a2048271f11b8a95ea616875657380a37ee7ba5fb410d4656108ad2024fc1b0e9c3f2a3976094df2924503585748f425038086388068678eeef859c1acdee44e1d84ce7a69946ec7f9c5a98a7450de5d1160e325c5802fdf503990ad68c9e62cbbb53965c1b6754c6a252dd6704effb23a417b22f914807b7ad6eb73914fd07fc55ad89ba771070c1da532a9269475dc64f1995d4d9266801433baba94dada26a0bf7f2d9de0a4596261d582034ea9f3c802afe1a387ee23805bb9d84942e3c2a1d4d500b96ce9dc51ae0742a8f6d3b00a65904044f6a7f5b48084c1872503d1732a826b802530df0e02bfdc2c36f15472ccf7a22dc6c34b7e1b350580a7f28067a21fc297c072d86af8833dc8b7516ed7acfefe62347fdcc1a6aa3a7cf104eb80b4d6046e53d27c2b61d3af6e263b781d1a8acfeb2e90eefe2ba057bdb4be755e80f5d1bed807825da595b42ef1ac5619b90267c8a050a1a31ac7da9cf6f72b2f1c80ad0516c224a82f7c79d92f80f0b981c4edfee0f289f8d3e7cba5d584cd9b902a809a590d525881dd1982fe49342f2653320d885a5f20e8fdf6d49b5ad4e382879280378f7572795fb309410c1ecc04d82f00d15f0ba10daafef82b29aa0bb756e59f808fac6f5b26a0a091512ba579c768e78cd75b5f91ff02dcd27a011a1b9d3f8ca080aa9e94e049bcc2e0a5c905c06becceb05c00f9c80fcc9eb29366c73d1bf39b6a804d651edc43661d09e568716193187ab514517f6da8312e9657b13950f354d5f78006d4df118575950e562e99bb07c62e5bc6f92f32485be7b652d27a1f4c62f57bb10480b07b80f29c4fd8a0371ece6addc60a44846a6d1ce1535d00da6b93538cc74f8765a87e80461382cb1a3fb00528ee91d3438f042ffcc9a642fd6cad4de17cd78dd01da288807b69f5768869fca9dd833ddc7f79ecf65270670bc4e58afeae697e8f9dc0056f80bbf66f21d5dabbaf6d44f75020c92c76a3605752f6e0dc45f0117b82f1c7d47180b2c508bc1d844471c7ad2f7c5ca97fef59a081548aae90e0aa9e06d0153f871780970a300007c393772874653f354eb1e7834043f14c769f609de82db81164766d80f917d605e5ad49102aea239730d2e54412a70f70b8ba1185dcbe7501eea0910180e4cb877f7d9e4c10c8decd44b0394bc965745f657e509104168dc2687a17e2a180573b2ec10c21cde2f64d5929d775f718e9ef643064c478022a0fb2c17a2a7f3db10480cdd8802654f350f2901df03459efca15248804666c7ce2397bf89b8a61a52a7cb4908580342367be78060ae023356f64f72a9cb4833d12d07538b80f1a421b5e9e2fc3b3802e1953c645c2b0ed27aacb7a47675de1f2fb687cdc7cc67f2b4d9fc329e898ca80375a559dd205e45e904000e25e1603f6fcd32fa10bf10882a90c432d5f7002c780735ef803cdd397217afdfbbe850b3f5151d915a0e011e24fefe257f00327e91480045622a5e6f1835b920bbb8a0b3fd8c31f3516b74ddbc93628e6d8e2f830cebf80dc8ba398e0ab0313cff307a9bf29dbf30509bc737d3bcafcfb647f8a0b81290f80c02bd1fef4b8c700febf28d1739305b4a093ccf3fe0476b62c7861e865ad315180b53cae3c5263f0ac4bb987569a1db3ac0b8fcfd84053e6d35042b1dd7f83f0c84d0880ffff80347a6d9dfdaf17f1eeb537940a79510a99974493403a0b4242840ee08fee5c4c80a2cd072f120925b66f62e5278d73fa3a051cc137a6949b8636e0ae0625ea864080c31fe347c6cd57509acc5062b983205154a67256ceda0acda36d4965eeee764380bbbe76a4e854d9ee6ce37ca49c7d6992bdfcfb05c475e8034b0d9345df09df0d8073086e273c13d929bd9860a8d21c84478f64c9f97b9f18732d4c4c098d7bab07803ecf380b4e9dd41abbccdc65fa4d5c27741e6668ec465884d760ec2c13d147c2809b6e1e6f7470e20a2c4dee8a4fff29135fdbf2300ea5f4b277186ce2b5897fb3806adbdd9a456a56259ee5820fadd6b3321d563ff788fa93af1295d64d391f547280300ebfbed38b5b4db4a16474537035ea5afee43f789b6a766206af83a7a60f948055654aa1980d378c0f6ec10fe302a67593670337764a22d73dfa563f3d41496680c8c3f6c3916d046b56bb730f72ce63d3cceea92bd973f9e14f3df8b73503d6d780d0a76b51892298ba5a2f7e4370e3a97062fff76b8a2237398d23a288b69ef149804b56df7e832b1c5ca953e4bb42f3cf63885204ce6c9a1421c9a1994fcd2e76c280cab1191a4cd184502b7e9a860bd88fa54453e1086e62454ad0091e252e6f48fd80639a5762d502d2604443c6b04b714f320c9c38cecb45d159e5cd6cbe718df28380034677f9b06cb6eb74d93d2b47fdf822a5751799171879656c6af1b256efbed319018104090080bc3f526a853aef4ff8114cf9cc66e985bbf2bd836dfd2daa4be6292ebdb21499803b53cd7f8ee1ca0f9f9c28ae7330e7642cbab7bb4b114c004388bf876cf26346190181094001802df21d34fc4a95552ecb4e5f3f60e87e672905f9d1233e56ae6ebf4f8c2f0201803ad6bcad5d50683ed394aa9543d0ff55a0bd771b34edcc738add0896fdd08aa289019d007f03cfdce586301014700e2c2593414080776fdf331ededb557c273c87efa8d2e3919d6745e8645214665bf43afed8b5e9685f0d9ef3b78afddab7f5c7142131132ad42001000000000000004c5f0ec2d17a76153ff51817f12d9cfc3c7f040069049d0da05ca59913bc38a8630590f2627c07d9807d7de5a84809ca0b00a3ac866f86ae192d9f555d89b54faa6b8b7ff339ebf57c807a4afdbcd9cddae700652a9761fe5b87b86c50af152c8d96bebc658bf05166e6804cdd47050100982ed82bcfbd2aced0e8c1d7275a6b18fb43a2b38ddf175c51ab80dc9d3cbc43f9cdc5bbc40ef84d8493032a9284fdaea687ef27a833cdd7a12b1680777eca83403a79449b66ec72c8aa2c0b84d1824fc153325461efa5e22b010948804697609c51dc2ac58602f900a420a83a75f697102ed5c2b5df7676f8e8578a1e80e67bd2679abaf77e739ef31e2b1baf3b5d1f399f2f875a2a2553ea3f3ecaa65a801115a088852d0ab6cfa99007dd06e27364f12461fe516fd08bfa9b962e769ed5c1059e710b30bd2eab0352ddcc26417aa1945fd380a5122525df5d4cde481b758f7e06e43285ef68ffbc29b9594aa256d0eaf189fa8073c944f552a01b6fef2f8d9fdb2c3d7610d07049c652a5a5fc000c95822bb4e880251d3bb85380f154e39d6cf3f404d5e0db5b1441dd2f015842af4238eaad4814800187bf6b3d6c60fad89302cb112941c3df3b340ee8aee067cd9f369574bb915580b9aee043e378f8313e68a6030679ccf3880fa1e7ab19b6244b5c262b7a152f004c5f03c716fb8fff3de61a883bb76adb34a204008076f995cf48b511e3d0749120e9346d5075258b2ef294ebe38a67ad738c2f43ea8008a0c609ab4888f02c2545c002153297c2641c5a7b4f3d8e25c634e721f80bea80b6617c764df278313c426c46961ccde8ee7a03f9007b74bc8bc6c49d1583cf7d8050aa57828deb4541b9f63bc8c115854c0d027258bee71127479ae54790cafdee80e3c402b167106adc3b6086cbafa410a0887b999a326ad3abe29a74bf94b26f727d059eb6f36e027abb2091cfb5110ab5087ff96e685f06155b3cd9a8c9e5e9a23fd5dc13a5ed20a3c4c11000000000685f08316cbf8fa0da822a20ac1c55bf1be3201f1a000000000000505f0e7b9012096b41c4eb3aaf947f6ea42908000080dc92d628c176bb2c4e8acf32f34d8faf6ba994f594830a4fd910d989cebfe05680ccd7eea271ab4ba95eed0fbf898a82fb654e2a3232ed1234bcaa4ab30e8e91ec8029f757f1d06d3000cd4662c35d2313adc96c09c67a7fd7a96e74bfa481eb5e65800d49fef039517cc312c00412803ca1df50ac6d90c50541f649a9c85b83c0fdd880900b2ea5a9f88d4685b457687c6fb3a7494d91e6be35610fdda816f41c5546528047025a4ed8613e95ef3d1dcfb90c646d19355c7cadc95e6db0dbfa33f0338d0e8024632a360b69ce0f9f0ce4164ff4f3848b0bd75f3dcb67a0e23ed081a38a18c8685f090e2fbf2d792cb324bffa9427fe1f0e20d6b1f30029bbf30071019ede3d8a54d27e44a9d5ce189618f22d3008505f0e7b9012096b41c4eb3aaf947f6ea4290804004c5f03b4123b2e186e07fb7bad5dda5f55c0040080eb9400585a9e8b2f26f1ee751ba989620f460abf9e3ce7c6b91693d785d8d45351019ef78c98723ddc9073523ef3beefda0c100480f42c96236046f82b2b806746899e19e343576bb3c9a25fa4f39d3265e57bc92f8015aa329318b096e60063c610e350f1e1c8c13ca41f7f42cbb1c65ef959dcc09a85069f012b746dcf32e843354583c9702cc020ebbf4c57071ceff5b0f64d362e0800001404e803000080028dd19f9b7cb9cce329f090558b22d9bbfa1721c31c00624b0ee03b220163f780f8bead3458984257ef05d8569dbc03a65da511a627f8dcfb7ab3ab162713ee1e5c570f9d7e46afdef838d80700002408d0070000db0700008090b114f5c86023a95e5f98df73f8c47d95ec44082dd256a205fb2d136839d80e5c5700bd9a93e85e3ce1d20700002408d6070000dc07000080a22f25d7fd290f9c429c2435de4d3e652d2c8bd1b9212aa775f19e86a81c64918013664977c26a236045847eab84cdc0d81d74758abc89b90def871b9761647a0380bb97fb91938928cec97e87489ddd099cb1c4c8a6ec647f6dbebc1061b81c44b0802e2ee0831ba08eca89fbd8019acce5cee3981ec17fd6b881f5d4f4a693e93a6f80e5436286787e3ab5d17473ef24f26a433911086e875c80ea01d4ccb21a926dd280f16a8f3131a154cf5d143f612a03093561b7ce489a137180482ff8b80979f1af80c1fe76ee3b8cbf409e83f93c3f68f0d2095d8b111cce1b7ba5d98a70fa09dd348d089f06604cff828a6e3f579ca6c59ace013dffff809f1aa60b8d6e164483585f5cabc66a8b3dabf6d32a061755b66c0ee8b07595ec803e24ed622a15d729f7733e3892da1ab85676a70b1484bf39eb266e76f5f648918077e2e88905558ce5fdd271aea9357a1ba2232b79290b7137ec47d9b1d9966d888034baf1d2500a71627f88a8704ebe32746110956adc5bfcc02a3f8272d75fd7b880e72e5072b6333f61e271155161fdbc62e2b59b99281c133f86cefa9b21cb79f180a61e3b977f78fd4ba2f77469f2fc95beb3c196cbe198f06a09728bf3bbda644280bab75c7b22dff2b024cc899516e753cc17781c31ee47b2eb049b331ed6ac0fce8081e1463c86e8fa454a912998fda31e316e4f21d55ec17f3d6300deea5b2e774380ad9a376d36c370d3c8191ca1c3e14244405d9b435e9a4830731a24ae7d81736b80e01b925960e184afada5789d57dea8cbcaeb0866208725faa02a72503137ff1a804080a720d1eb23a3dbb415ff4a480f4639dcec3be925f22c2311d079e4f08a2a80510d59ea25b1fdae0278b904b89a6c8110da8edb7214c214e12eb14c49dc0b6d80ade20331f0fa754c0253841206e936d98995c8f054f858fe40d20715b7251d1a8081c1b041da80a4efa6469be72bd39a4016c7612d95ef7abecb89ac4651fa6a0b8088878cbd74a2a9b37077b3d448ff88db9350b6c395bd2024a1cf5be2c9d46ff880ce0116dc0f1aacea40db35dd1418a60c74d40328624db29751efb3c82d06eb8985069f0d3719f5b0b12c7105c073c507445948ebbf4c57071ceff5b0f64d362e0800001404e803000080908a4b83685980351382690794f2ba84e53bde8de88ac588b0e0cc0ddff6b03f800ca466110f080b72ac06a6a66b93c07fdf236804dcb37e3b386e5ad3f9b8722b5c570f9d7e46afdef838d80700002408d0070000db0700008002764f06c998b78ae818bed2ab379c3decbf086b87ee6e023be93cccafbb2db05c5700bd9a93e85e3ce1d20700002408d6070000dc0700008016d78a932ae335ecf7bb8553c6daf0b8fc78104569dba075413a3643c55fba0e8013664977c26a236045847eab84cdc0d81d74758abc89b90def871b9761647a0380bb97fb91938928cec97e87489ddd099cb1c4c8a6ec647f6dbebc1061b81c44b08012f1c805be5454f3059856ecb07f622d2d3d1c50c5fa8bc15242b9adeacbf4bd80e5436286787e3ab5d17473ef24f26a433911086e875c80ea01d4ccb21a926dd280f16a8f3131a154cf5d143f612a03093561b7ce489a137180482ff8b80979f1af803dc949b2d2c13a2f6ae200948d5e3b65f8dc3433fd731c4fd88dde33f5dc51b985079f0d7fefc408aac59dbfe80a72ac8e3ce5efbf805de2fa9a7cd87e554c2c8f29ee571f7dd17d8376129da6d11e01bc09e27b1d2e80c232dc1e7f67225218ddffc59ec9fc0f84530088bee316ef968315ebf5271cea807e1ee2c8362cd0745aa0c58780b99fefa1024c1b472d3386a2319e71b68028a680f7bca5e5caf5e8ef06c7b007aa8d6ca8493d952a71be8f334dea27ac6aca65a780dbc4dbcd82a9e3b1a99d25480444bf12317c55399f8eedfa3427cea02f19f89e80a2abd4abb01ffcf96a1d5176f5139f0efa879bc4be75c990cccaaec497e8903080a8842b069c158af198d7d570838f69a2f4c9a218d51c69ad60361a873a11bbea808257de717492dbeecc986a37b7ab4ec8d6160878c62ab15f0467b76acab83d79808dece2162d961f2c7ee521bc8a28035dca6dd9f6522cefc2d83c92ba8ae2f4f580dc8e6d2539404d5b0e899e75a60cf05696a6e8f7adb21048fdf6e826aa9a47b3806cb69d11563a5e8fb0cb211e2b4c1376eebf07bf33e2b0e0f5b6e7f7af6f43d1807d23d1ff5d1ca574f6f3d6905f7d25787c45e242415336eb11ebc6f3947f51c280aa6764053c327575cc0994647ca26d558cedefc08f07c41016bc995bca7a422d801dbb6ce0a615feb35e02a2f85d780a0135efb634ea49394a62496ac1124bdd13002ce803000000d407000000d607000000d807000000db07000000dc07000000f007000000f207000000f307000000f5070000003808000000", + "0x45028400507018e82cca161de634262fea6ac93bc0421e8680622da20704b4f52e9ac50f01082e923eb657565d5acb9e2f86b36930ce03c6f6586d0f9bcd67ab3ac6a41263d8be7953a9fdf27f91f0eb6bc7e6e526c400a65167cfd9b92f8b6cc0b73ab88cc401667e010000460008000200c01f837cdc4a3f0000000000000000000000d49cb103b47f000000000000000000", + ], + "header": { + "digest": { + "logs": [ + { + "preRuntime": [ + "0x61757261", + "0x51e2600800000000", + ], + }, + { + "seal": [ + "0x61757261", + "0x649411576e676f2a8635f943502bdfb6739282702112299fb5e6c346a93f1866b62a4e747dde76f738e492ca2eb0a03ed996336d7356988ab9d5adc19204cd87", + ], + }, + ], + }, + "extrinsicsRoot": "0x3510ab964253daa8300bb0d49e37c6ac4940e954866862d3985f0ba13f9968e9", + "number": 3800000, + "parentHash": "0xb60cb17d118325e80e5d1b36a5fe97115fc7b56230d5f3e287fc0317d4b16edf", + "stateRoot": "0xf058a653118a5b6d17532b5f05be14ccd2e1e48ac629f90fddd0173ac11ed5b8", + }, + }, + "justifications": null, +} +`; + +exports[`chopsticks provider works > chain rpc 6`] = ` +{ + "block": { + "extrinsics": [ + "0x280401000bc6ad70bd8801", + "0xc1b2041e00e9026c0bed8ea286dbea10d9add16a898ffe1943bb298283c4e52c4745f4f9e7bd1bfeeee700440ed43d7b7698bda1f350a6c89bdf2ecf1228b5b4322ecfb77d1c607d9e7b80fa7941f26fff6290c514267179c088e4a0b185fa23eafabd9ba29d53861953910806617572612050e260080000000005617572610101a66761c6f75913d47b4881ab589eee15fa8c0aeb6ed38b941108edd2642d7c3ddcc42ab8e79a244d06520e61c0670628415b4e4f6018d744da1fe19b87146d8e99bef30039f24216a73fcc139aa779b5095a61bc12a9f934f10d59fa2740fd000c769c2e000050002901b456f5a4efb16ffa83d0070000804e75289a0a452807295c0050bd79ff49e15816d25f31d5f8b0b901491a9f3527d856f5a4efb16ffa83d0070000a428e8030000d4070000d6070000d8070000db070000dc070000f0070000f2070000f3070000f5070000e856f5a4efb16ffa83d0070000b42ce8030000d4070000d6070000d8070000db070000dc070000f0070000f2070000f3070000f50700003808000099015c61975d97255ddb070000d00700005501e803000000900100009001000000000000000000018c74408c28f6627f58a8e10b3ec06b98b0166bfb148641a35c5cdfc7a56e68fb00e8764817000000000000000000000000e8764817000000000000000000000099015c8c2de8299067f3070000d00700005501e80300000090010000900100000000000000000001772e98610c34bfcf0dfbdde1794231c18cef8e0d65b360eaa5be668c4c4f3bc700e8764817000000000000000000000000e876481700000000000000000000009d015d01c872d0ebaf85d0070000f50700005501e803000000900100009001000000000000000000011a55dc86f62772e32e58a2b8d0371c0940701e21d0f42134905ad3e3c1d2070500e8764817000000000000000000000000e876481700000000000000000000009d015d0452a22bee61fad0070000f20700005501e8030000009001000090010000000000000000000187a6fe1514fd0de8ea5c6f8a7101ee5145aa4fb16e43d0c84860331ae44d402000e8764817000000000000000000000000e876481700000000000000000000009d015d04d2a15ab51127e8030000d00700005501e8030000009001000090010000000000000000000171cdacbf1af48f4252086a6b2134ee98abd462392270f81885cef0c3f2ed8da100e8764817000000000000000000000000e876481700000000000000000000009d015d057a605f506cfcd4070000d00700005501e80300000090010000900100000000000000000001be71a21c87fd9fd837b0608dc9f780a666c890be213bb36ddc79179384c6683500e8764817000000000000000000000000e876481700000000000000000000009d015d07edc4cbc65e03d0070000d40700005501e80300000090010000900100000000000000000001436ee8e8e7d06535bf6e65ab2f678f695100c87c22b60360c62a5712e2409f7a00e8764817000000000000000000000000e8764817000000000000000000000019015d0a87461a6f93a938080000d0070000d4e8030000009001000090010000000000000000000000e8764817000000000000000000000000e876481700000000000000000000009d015d0b652b2ae6ed1ddc070000d00700005501e80300000090010000900100000000000000000001e66816642666a6ac1017fe14aa32407c4129bb05bd0e3f6786ac58945c025c9600e8764817000000000000000000000000e876481700000000000000000000009d015d0bc334ef110d8af5070000d00700005501e80300000090010000900100000000000000000001ee81f513b9828daddab221068bba9249fe60f5cde84201ce0190b8e9c86010c000e8764817000000000000000000000000e876481700000000000000000000009d015d0be1ee506d55f8d0070000f30700005501e8030000009001000090010000000000000000000159898a2874487a46052f949bdc904ec14c45f5597fec9a64e53c73e1b15ae53900e8764817000000000000000000000000e876481700000000000000000000009d015d0c472775baca93f0070000d00700005501e803000000900100009001000000000000000000019e938c3bafc461a3c99f1a18cf08ead21e2473f2eae1d67a6a2ffaefce6f49ce00e8764817000000000000000000000000e876481700000000000000000000009d015e046fae65527199f2070000d00700005501e803000000900100009001000000000000000000011623200dc56d973c200448bf7a939ef621fe5f54fad26b838a7201459bf77e1e00e8764817000000000000000000000000e876481700000000000000000000009d015e1a4e21b9b6ce11d8070000d00700005501e803000000900100009001000000000000000000015063b45fb0f97475aae3195a3a5ee0b06ce909ecc8c856d42d51ebde6fc6773900e8764817000000000000000000000000e876481700000000000000000000009d015e36ad4314650419d0070000f00700005501e803000000900100009001000000000000000000019f71e512f2d1cc38cef38aa8b517deaa0731e0d94a20e7907e7d2ed4d5767d0800e8764817000000000000000000000000e876481700000000000000000000009d015e36c65ca123d5fbd0070000dc0700005501e803000000900100009001000000000000000000016cc7baf613a7d02ff83b8c42d19ca65e4a2d054a136df871cb1aac62e941965000e8764817000000000000000000000000e87648170000000000000000000000c45e414cb008e0e61e46722aa60abdd67280647979f673b44a6927553adcc3d3b6eede7a2346b4665dd6ec19c8a10ceff6719d015e4f36708366b722d0070000e80300005501e80300000090010000900100000000000000000001055771e1276fbc23eb4b7b4631d55e489b0a77310bc21d7da7f443f0973a0e1300e8764817000000000000000000000000e876481700000000000000000000009d015e55c8e02d73966fd6070000d00700005501e80300000090010000900100000000000000000001fdf3e3a2d06e4834b3f407d6b2e7a547795f302818e7f9e9775135e70f0012b700e8764817000000000000000000000000e87648170000000000000000000000c85e77dfdb8adb10f78f10a5df8742c5458401614798c9b3f2ad435f4118b7f3af954904d78cc26443aadb8190dba355a2c6c09d015ea99274c2ff3639d0070000d60700005501e80300000090010000900100000000000000000001ff53da92e719208899fa521ea30b07cfce7c94299ba5c6de879d5a9c141bd65300e8764817000000000000000000000000e876481700000000000000000000009d015ec412f496dcf830d0070000d80700005501e8030000009001000090010000000000000000000162a9718fbc71e7dcc66f1dd50e9e4e2e7e825bf5e76f8a7993b6c1910360b28b00e8764817000000000000000000000000e876481700000000000000000000009d015ec648b30353eed1d0070000db0700005501e8030000009001000090010000000000000000000100382d804f7b02c95c2d6b3b6a9cad2c97c2d7570bdfd32f8e8d961754b74b6d00e8764817000000000000000000000000e87648170000000000000000000000c45ee678799d3eff024253b90e84927cc680f126c9e4609547475ec38b61ba89dad52e716489aeae728840491797acbc07c479035f04b49d95320d9021994c850f25b8e3852d030000a000005000000a00000000c8000000c800000a0000000a00000040380000580200000000500000c800000700e8764817020040011e0000000000000000e8764817000000000000000000000000e87648170000000000000000000000e8030000009001001e00000000000000009001004038000000000000000000000a0000000a0000000a00000001000000010500000001c80000000600000058020000580200000200000059000000000000001e000000280000000700c817a8040200400101020000001400000015018000148087a6bf935205a5258f5fd2e7a80027f6584311e8eb535a47e5984ce9a754c2db80445d631a1ecd6de9476c8b816d77a7a810d1d37497334536acb58c58f9a6a700d48000c0787694c040f5e73d9b7addd6cb603d15d3b0021d9da3ceafbd080d00000401485e4993f016e2d2f8e5f43be7bb2594860400150180010180e76205a9f40ea9d935f10dd1b76ec68ba02cb858e680311cf06493dbd52b7d2080ab8ec58738d227c258a530d72dfb279742d9074f55c71d366a57349989683df71501800102805ea926398d7f22c34a76cd27394e42b38b67d9a8e12682d42ef2c022f1e9d0a580c7a667171df523ff10c4bd107fff0b8505f0ed517343daf43db58f2589c919b91501800110802d0c8b37d222227c6599f8ddbc147a2a86601b6a6c3b350ab285fbbee6af0d3f800ebe650369ce0e3ce85b22816181f598cc6ecf7a3b22314357ab4181b9ccb867150180011080523c559cf4c2ecd7395a65d872d15cd441f3ee50ec5ac49b4d04bea30abc5970809ad1ad94de0fee6b6abf940739b2f72f260f8d952305ace91f4a7bd2976b89991501800404801f8c5940bb92977d89e30a335a296ca56a9ceb755370f6421d3bba50612f74ea800fe6b03639ff2739e42b263a64b97458bbb7b04a7f13a7dd10b77ba5c3d3940e1d028004648006eb75d1d207a5ff8776e8595245535c6a007781de7dcdd23e27eef27f87485580892ca882bcb7de6b01abe0617adeef1193fc432099544de3d933c433ad24f7a280df898b803d545cb2f590dac6c9e1264d7119e23eafb19fefa1826185bb3f6c9b809443b1774e380ca4f8ca172eb56d8f22fd0380e9171f3d411614bd136694300a150180080280ca984071022534f19a8a83a50f126ed05857e02e28cec9ed17eb2e285c7bb2158074b84c6cfc31dba4635917acd4d1ded1cbdb9853a998208eb17a4506d5564fb8150180080480cfd43d9d9f3bcc3622d30d6d839780cd864cebd53703d40f6e514a3eb60196018084bd8a9563de5ba3de25fd5fbd51e8dbf97ec84b7694b1dccc80c0562e5de4c3990180080c80d066a00dc79b0a8601ea466d09a4c969c246ed7d8b4f029afcd41944e33ae8b08021228c026fb40364eb5d5bd4b2ff1a3ea147449371719ba784241847db09c3a48097db38ba14a5a63a79e6b7ffc5541f99c82f13634789753afbb2fc365a500d6e290180085080720475da1eb4b5f077fca4ad1e6add131c2ce61ab829c8ca4ef18029c79bacc048563524f87eaf5eaf000800001404e8030000485628b8ad2696ed532c0800001404f20700002901800850808eaf571106205a34213fb1fa2fa165744e6c0fe81f161d0cf6331d4158d0b8e648563524f87eaf5eaf000800001404e8030000485628b8ad2696ed532c0800001404f2070000990180085080df4e4471ef3fea64b11dae1a81bb5b7bb5137ad4da9fa73906039a4c6a8f125c80aa355c7789c126573837fde95fd60e274cddf219667c77dafaf68056bda3be66808df47344d894c3b42ac9e47e98f014f07ae4bc17bc37bb734e57b5894fa3e2dba9038008bd80d7f054065a25e81afdd87d81191cd0d3f63cfbb65534cc6e94d8450084771f1480ae61c0d02438db7adda8e05b69b2e2fc6ff776a09c4521f3a149bcac39ba499a80e21ec27f1f4b8d429b10752c2d22caa92a36d14dd2610a9eb7f3a39ad27781b1803198918edb1541db193c4f4aa6969a32daf26c6b917b261b73550565953172cb8049dad376e9ab8f63f3ae0e31bcf7e01d034573a23c163336f64bb34e9932383080f3a4aaff8c298bf9e91f54c86240e0cafd4b03e75f1b01708b9953ad8afa91298065609a7ff729add198685230069fdafe46a61294414ffcc75e75841f37f9cf879101800c2078767bbb460270642b5bcaf032ea04d56aab6cb5748316c751060d00000400800c44b03e6e46f7d2749af6f5865af2e095c316ee46b1c0357e27ebfc030787e0806d2cefd922087a778a4b4c4110218b7257a9d0345d84f7ee90ef7e6635edc6dda10280101780214e0b3c1f1f8612ec8f8aedef5aaf9506c3ce2a2c3aaee20c7ec4eb80d274628075efd7ab003c663694f2168b8d18dfc395c531648e6a70bc1b831c499605963f80650d2f8aa2a5ef7119dd61f2c588410067b818c017139aa00d2ec6b84322fca580b02c981e77385f780fddf5a86b75d190a78e3ccde529266be13dffe7f3ac191080782da7db6940d8fe5817d87b19c484c1bb74e67f7bcc2bdf35270d081060ceb399018010608055f7120dbee2fc56df98dae7b16f99a6c1a0083180db28e75a0c7de276fb89b080130d8ca189ca04528b6c768c16d91748f4e8c4098239bf15ed58ceaaecc7ca64805f738e2d7016159bb83f0acfc05b94f3bfed39826328fbea9a5a6844b0ee9f62150180120080c087c34a62c2aafdef39ea9be0f9ac5764a624624f6259dc54d5e0825208ed5780a18673b451b154098a7a400495526a375c86a62e3c8f6def0a67b00eb6d26e87b104801b7680b63aa2fda4bc82cc53ddf68902b524145f83417dba47e44ff19e77ace918f53c803cc55fe3807c21dfb0360ec823ecf876e3b34c2c3e59c33d1aa9cfdc30bb697c80e3bac8ff7c3819e8351a6f38c6c32b2685a550ce4af50b631025a5d2ba7bdc5e80624df3ef29fac7071167c35c8080908b56cf1c2b209ee3140ed75bf93107b3c980787bcd8639494b1b4ac2cfe8a085b773c02770e2a0738c3ccbd81c2745eca42e80fe171033e944641bd7003b6bac42f5497a9fe6b398ad5beceaa1c4d7ed2d97bc8082e17813e9e31777745163d87491a58c355858f3b1f31dd88768344bb32ae9f880a6c7686e79b1c26c491f34f404aeab80c6d35a8d487b41a0f7bfc21712bbe27a80c6e23d4e232a91069bdb681e7e5a8309c6537da00df3ef481d6bc2859e0085c6250380225580c7f341af5a9b1a28524bb8b74512c3d9fab1b164dc92262c59af7aa77641db3d807eb28ee6f9bd0023945be7c0c9aff04734d59de30f2b74df7336317c968df73280a7114079c6e443ae5d81a7b2c9f316c8b77f977c7ef05ef29db60396009df42080d6c3ff5cce56c85a153f0ae049876fd59e17cdf75633440b597eb6b83a23148e8077e20e3e8fd18cebde793df6204f3259fb7851cd86b5e29df9245d4bb4d06fee80ad4b1f1bff610d731ae7bab96ee9dbd3c0396f92a720cc9a814202f007dc03fca10280283880a1a229374bb2b10777a483d6ca69fb41bd0f999d8212b78295a707c033637e9480b8ba9d6c26212e08a754b28634f4a39e298ee2b8ce7e8226f5649a8d9aa45ea5801e985a45c3af4b96423135fb9555c1a0b08b6d35f2d2265dcc14039b87f7ba5180aa48bfdc4268bca63120e4a05a80f2916c9fe68fda15eaf77f49070eb0201a728075e3a11a7e0bf3219c9d0e1fb599bb7a8ec67d80927cc485e540d7053d9bbe9c25038032468005d4a34f30db091ad60651636fd42946c1ef81c2d6355e9558ccdf18d75c61e0809b5ae29a9e4559ef4b9747b6cb051ad6f5e6e89dbdb07430fe996c3bf3f5991c807bd7b7016c35992cfcafdc5e3ce3a63a3282d189b49b23fa983eec1c3dd48e54802e4abf2a2bc7869170aa8c265f52eae73d46c3b30a1e38d66a01f6d54ad2735a808aa52620ee7b00389eeafb3bc397c1eced571825dd4c52c5d4678f9d7689efa5807b0bae7c6263eb548aee2f93c4ea7dc89a19b9357fc3be85b21487a979bb9458150180400880b83b0bcef0c15daf055f31e7bf25e31064a12ff9853c7d956a3938227a724d29808c68f773671aec1db46b2c37b4c827e64aa7290d65e305cdaaa6b175596256f11d028041098065b7de50f125aa94dadcb284b6416887705b8905fc50681983f3c6893d158c3b803fb4f928fe8c91abaf2bcd5d307bac924916635ea28caae82c6f81f1c6ec6b65805fdb71f3db4adaa5f1baf89d0dea15d9fdb4a1c8ac29a00ed1b8b6492bfdb35080efeb2226f503c7503e66a480da0364f772fec0db9bf08c8dd719f3056065d1eda1028048c2803b80402c3c9da1ee24b7f58d5321a089c7574ebc3d736a1b4177ccd2d5a81745801bb1bdd7cf0d97cece397f12e8518260848791b15d899aa1a91b27c5003ced198049da90db410ddc5fcb63a6ba31fff1140f1f027eab9f575207946938a6dff049800ab18793233e36de606cd42e3f040db265e3d13d2a9cf152634c6bd24818e0f6807185cd7e8b82776f18b6b6bd5010d88f653e6d8e2243c2a79ce200a34d324bcf250380505580acd9a3a26826803b03dd89f38fb37efbb0f5f45265ae3487af73cb081accebb680ebc042f91c3b3ae11ba93023785f7a812cc6d0af3650f6586de4ae0d24f0e64e80d216ec578538ea388262fdf0b4759d80d792b12ea4af54e394af19e6bc7465ee80cbc649bccb6cbe2678b258eb56b9985865852f8dc3ca4ac4608b46dc9a61a56580ffa8502e24b21c91f76c055be08dc51d52cee2fad51822ae96db01d78d0fada380692755c9209155bd724071de137657f492de5bb5479738d1af7119739b4df4731d02806500804727e8335c8d377bc2a4a9a5616df462601badc67dce6a7bf7bbe9782891d5128027b71acae222d753d0287662fc06e65809b2ab3b5e64d332d028349967678ecd80d886f041d6f6bd1d74dc4eff6fc050d2615e9a21355e539fc86362ebcde336e880af579d5ddc5c697d42bfc014076594e66c7b324cfd3017810c4e93e4f6f0ae9e15018080018068269bb8490669b94a5f1e0c3b4864e03224a2048271f11b8a95ea616875657380a37ee7ba5fb410d4656108ad2024fc1b0e9c3f2a3976094df2924503585748f425038086388068678eeef859c1acdee44e1d84ce7a69946ec7f9c5a98a7450de5d1160e325c5802fdf503990ad68c9e62cbbb53965c1b6754c6a252dd6704effb23a417b22f914807b7ad6eb73914fd07fc55ad89ba771070c1da532a9269475dc64f1995d4d9266801433baba94dada26a0bf7f2d9de0a4596261d582034ea9f3c802afe1a387ee23805bb9d84942e3c2a1d4d500b96ce9dc51ae0742a8f6d3b00a65904044f6a7f5b48084c1872503d1732a826b802530df0e02bfdc2c36f15472ccf7a22dc6c34b7e1b350580a7f28067a21fc297c072d86af8833dc8b7516ed7acfefe62347fdcc1a6aa3a7cf104eb80b4d6046e53d27c2b61d3af6e263b781d1a8acfeb2e90eefe2ba057bdb4be755e80f5d1bed807825da595b42ef1ac5619b90267c8a050a1a31ac7da9cf6f72b2f1c80ad0516c224a82f7c79d92f80f0b981c4edfee0f289f8d3e7cba5d584cd9b902a809a590d525881dd1982fe49342f2653320d885a5f20e8fdf6d49b5ad4e382879280378f7572795fb309410c1ecc04d82f00d15f0ba10daafef82b29aa0bb756e59f808fac6f5b26a0a091512ba579c768e78cd75b5f91ff02dcd27a011a1b9d3f8ca080aa9e94e049bcc2e0a5c905c06becceb05c00f9c80fcc9eb29366c73d1bf39b6a804d651edc43661d09e568716193187ab514517f6da8312e9657b13950f354d5f78006d4df118575950e562e99bb07c62e5bc6f92f32485be7b652d27a1f4c62f57bb10480b07b80f29c4fd8a0371ece6addc60a44846a6d1ce1535d00da6b93538cc74f8765a87e80461382cb1a3fb00528ee91d3438f042ffcc9a642fd6cad4de17cd78dd01da288807b69f5768869fca9dd833ddc7f79ecf65270670bc4e58afeae697e8f9dc0056f80bbf66f21d5dabbaf6d44f75020c92c76a3605752f6e0dc45f0117b82f1c7d47180b2c508bc1d844471c7ad2f7c5ca97fef59a081548aae90e0aa9e06d0153f871780970a300007c393772874653f354eb1e7834043f14c769f609de82db81164766d80f917d605e5ad49102aea239730d2e54412a70f70b8ba1185dcbe7501eea0910180e4cb877f7d9e4c10c8decd44b0394bc965745f657e509104168dc2687a17e2a180573b2ec10c21cde2f64d5929d775f718e9ef643064c478022a0fb2c17a2a7f3db10480cdd8802654f350f2901df03459efca15248804666c7ce2397bf89b8a61a52a7cb4908580342367be78060ae023356f64f72a9cb4833d12d07538b80f1a421b5e9e2fc3b3802e1953c645c2b0ed27aacb7a47675de1f2fb687cdc7cc67f2b4d9fc329e898ca80375a559dd205e45e904000e25e1603f6fcd32fa10bf10882a90c432d5f7002c780735ef803cdd397217afdfbbe850b3f5151d915a0e011e24fefe257f00327e91480045622a5e6f1835b920bbb8a0b3fd8c31f3516b74ddbc93628e6d8e2f830cebf80dc8ba398e0ab0313cff307a9bf29dbf30509bc737d3bcafcfb647f8a0b81290f80c02bd1fef4b8c700febf28d1739305b4a093ccf3fe0476b62c7861e865ad315180b53cae3c5263f0ac4bb987569a1db3ac0b8fcfd84053e6d35042b1dd7f83f0c84d0880ffff80347a6d9dfdaf17f1eeb537940a79510a99974493403a0b4242840ee08fee5c4c80a2cd072f120925b66f62e5278d73fa3a051cc137a6949b8636e0ae0625ea864080c31fe347c6cd57509acc5062b983205154a67256ceda0acda36d4965eeee764380bbbe76a4e854d9ee6ce37ca49c7d6992bdfcfb05c475e8034b0d9345df09df0d8073086e273c13d929bd9860a8d21c84478f64c9f97b9f18732d4c4c098d7bab07803ecf380b4e9dd41abbccdc65fa4d5c27741e6668ec465884d760ec2c13d147c2809b6e1e6f7470e20a2c4dee8a4fff29135fdbf2300ea5f4b277186ce2b5897fb3806adbdd9a456a56259ee5820fadd6b3321d563ff788fa93af1295d64d391f547280300ebfbed38b5b4db4a16474537035ea5afee43f789b6a766206af83a7a60f948055654aa1980d378c0f6ec10fe302a67593670337764a22d73dfa563f3d41496680c8c3f6c3916d046b56bb730f72ce63d3cceea92bd973f9e14f3df8b73503d6d780d0a76b51892298ba5a2f7e4370e3a97062fff76b8a2237398d23a288b69ef149804b56df7e832b1c5ca953e4bb42f3cf63885204ce6c9a1421c9a1994fcd2e76c280cab1191a4cd184502b7e9a860bd88fa54453e1086e62454ad0091e252e6f48fd80639a5762d502d2604443c6b04b714f320c9c38cecb45d159e5cd6cbe718df28380034677f9b06cb6eb74d93d2b47fdf822a5751799171879656c6af1b256efbed319018104090080bc3f526a853aef4ff8114cf9cc66e985bbf2bd836dfd2daa4be6292ebdb21499803b53cd7f8ee1ca0f9f9c28ae7330e7642cbab7bb4b114c004388bf876cf26346190181094001802df21d34fc4a95552ecb4e5f3f60e87e672905f9d1233e56ae6ebf4f8c2f0201803ad6bcad5d50683ed394aa9543d0ff55a0bd771b34edcc738add0896fdd08aa289019d007f03cfdce586301014700e2c2593414080776fdf331ededb557c273c87efa8d2e3919d6745e8645214665bf43afed8b5e9685f0d9ef3b78afddab7f5c7142131132ad42001000000000000004c5f0ec2d17a76153ff51817f12d9cfc3c7f040069049d0da05ca59913bc38a8630590f2627c07d9807d7de5a84809ca0b00a3ac866f86ae192d9f555d89b54faa6b8b7ff339ebf57c807a4afdbcd9cddae700652a9761fe5b87b86c50af152c8d96bebc658bf05166e6804cdd47050100982ed82bcfbd2aced0e8c1d7275a6b18fb43a2b38ddf175c51ab80dc9d3cbc43f9cdc5bbc40ef84d8493032a9284fdaea687ef27a833cdd7a12b1680777eca83403a79449b66ec72c8aa2c0b84d1824fc153325461efa5e22b010948804697609c51dc2ac58602f900a420a83a75f697102ed5c2b5df7676f8e8578a1e80e67bd2679abaf77e739ef31e2b1baf3b5d1f399f2f875a2a2553ea3f3ecaa65a801115a088852d0ab6cfa99007dd06e27364f12461fe516fd08bfa9b962e769ed5c1059e710b30bd2eab0352ddcc26417aa1945fd380a5122525df5d4cde481b758f7e06e43285ef68ffbc29b9594aa256d0eaf189fa8073c944f552a01b6fef2f8d9fdb2c3d7610d07049c652a5a5fc000c95822bb4e880251d3bb85380f154e39d6cf3f404d5e0db5b1441dd2f015842af4238eaad4814800187bf6b3d6c60fad89302cb112941c3df3b340ee8aee067cd9f369574bb915580b9aee043e378f8313e68a6030679ccf3880fa1e7ab19b6244b5c262b7a152f004c5f03c716fb8fff3de61a883bb76adb34a204008076f995cf48b511e3d0749120e9346d5075258b2ef294ebe38a67ad738c2f43ea8008a0c609ab4888f02c2545c002153297c2641c5a7b4f3d8e25c634e721f80bea80b6617c764df278313c426c46961ccde8ee7a03f9007b74bc8bc6c49d1583cf7d8050aa57828deb4541b9f63bc8c115854c0d027258bee71127479ae54790cafdee80e3c402b167106adc3b6086cbafa410a0887b999a326ad3abe29a74bf94b26f727d059eb6f36e027abb2091cfb5110ab5087ff96e685f06155b3cd9a8c9e5e9a23fd5dc13a5ed20a3c4c11000000000685f08316cbf8fa0da822a20ac1c55bf1be3201f1a000000000000505f0e7b9012096b41c4eb3aaf947f6ea42908000080dc92d628c176bb2c4e8acf32f34d8faf6ba994f594830a4fd910d989cebfe05680ccd7eea271ab4ba95eed0fbf898a82fb654e2a3232ed1234bcaa4ab30e8e91ec8029f757f1d06d3000cd4662c35d2313adc96c09c67a7fd7a96e74bfa481eb5e65800d49fef039517cc312c00412803ca1df50ac6d90c50541f649a9c85b83c0fdd880900b2ea5a9f88d4685b457687c6fb3a7494d91e6be35610fdda816f41c5546528047025a4ed8613e95ef3d1dcfb90c646d19355c7cadc95e6db0dbfa33f0338d0e8024632a360b69ce0f9f0ce4164ff4f3848b0bd75f3dcb67a0e23ed081a38a18c8685f090e2fbf2d792cb324bffa9427fe1f0e20d6b1f30029bbf30071019ede3d8a54d27e44a9d5ce189618f22d3008505f0e7b9012096b41c4eb3aaf947f6ea4290804004c5f03b4123b2e186e07fb7bad5dda5f55c0040080eb9400585a9e8b2f26f1ee751ba989620f460abf9e3ce7c6b91693d785d8d45351019ef78c98723ddc9073523ef3beefda0c100480f42c96236046f82b2b806746899e19e343576bb3c9a25fa4f39d3265e57bc92f8015aa329318b096e60063c610e350f1e1c8c13ca41f7f42cbb1c65ef959dcc09a85069f012b746dcf32e843354583c9702cc020ebbf4c57071ceff5b0f64d362e0800001404e803000080028dd19f9b7cb9cce329f090558b22d9bbfa1721c31c00624b0ee03b220163f780f8bead3458984257ef05d8569dbc03a65da511a627f8dcfb7ab3ab162713ee1e5c570f9d7e46afdef838d80700002408d0070000db0700008090b114f5c86023a95e5f98df73f8c47d95ec44082dd256a205fb2d136839d80e5c5700bd9a93e85e3ce1d20700002408d6070000dc07000080a22f25d7fd290f9c429c2435de4d3e652d2c8bd1b9212aa775f19e86a81c64918013664977c26a236045847eab84cdc0d81d74758abc89b90def871b9761647a0380bb97fb91938928cec97e87489ddd099cb1c4c8a6ec647f6dbebc1061b81c44b0802e2ee0831ba08eca89fbd8019acce5cee3981ec17fd6b881f5d4f4a693e93a6f80e5436286787e3ab5d17473ef24f26a433911086e875c80ea01d4ccb21a926dd280f16a8f3131a154cf5d143f612a03093561b7ce489a137180482ff8b80979f1af80c1fe76ee3b8cbf409e83f93c3f68f0d2095d8b111cce1b7ba5d98a70fa09dd348d089f06604cff828a6e3f579ca6c59ace013dffff809f1aa60b8d6e164483585f5cabc66a8b3dabf6d32a061755b66c0ee8b07595ec803e24ed622a15d729f7733e3892da1ab85676a70b1484bf39eb266e76f5f648918077e2e88905558ce5fdd271aea9357a1ba2232b79290b7137ec47d9b1d9966d888034baf1d2500a71627f88a8704ebe32746110956adc5bfcc02a3f8272d75fd7b880e72e5072b6333f61e271155161fdbc62e2b59b99281c133f86cefa9b21cb79f180a61e3b977f78fd4ba2f77469f2fc95beb3c196cbe198f06a09728bf3bbda644280bab75c7b22dff2b024cc899516e753cc17781c31ee47b2eb049b331ed6ac0fce8081e1463c86e8fa454a912998fda31e316e4f21d55ec17f3d6300deea5b2e774380ad9a376d36c370d3c8191ca1c3e14244405d9b435e9a4830731a24ae7d81736b80e01b925960e184afada5789d57dea8cbcaeb0866208725faa02a72503137ff1a804080a720d1eb23a3dbb415ff4a480f4639dcec3be925f22c2311d079e4f08a2a80510d59ea25b1fdae0278b904b89a6c8110da8edb7214c214e12eb14c49dc0b6d80ade20331f0fa754c0253841206e936d98995c8f054f858fe40d20715b7251d1a8081c1b041da80a4efa6469be72bd39a4016c7612d95ef7abecb89ac4651fa6a0b8088878cbd74a2a9b37077b3d448ff88db9350b6c395bd2024a1cf5be2c9d46ff880ce0116dc0f1aacea40db35dd1418a60c74d40328624db29751efb3c82d06eb8985069f0d3719f5b0b12c7105c073c507445948ebbf4c57071ceff5b0f64d362e0800001404e803000080908a4b83685980351382690794f2ba84e53bde8de88ac588b0e0cc0ddff6b03f800ca466110f080b72ac06a6a66b93c07fdf236804dcb37e3b386e5ad3f9b8722b5c570f9d7e46afdef838d80700002408d0070000db0700008002764f06c998b78ae818bed2ab379c3decbf086b87ee6e023be93cccafbb2db05c5700bd9a93e85e3ce1d20700002408d6070000dc0700008016d78a932ae335ecf7bb8553c6daf0b8fc78104569dba075413a3643c55fba0e8013664977c26a236045847eab84cdc0d81d74758abc89b90def871b9761647a0380bb97fb91938928cec97e87489ddd099cb1c4c8a6ec647f6dbebc1061b81c44b08012f1c805be5454f3059856ecb07f622d2d3d1c50c5fa8bc15242b9adeacbf4bd80e5436286787e3ab5d17473ef24f26a433911086e875c80ea01d4ccb21a926dd280f16a8f3131a154cf5d143f612a03093561b7ce489a137180482ff8b80979f1af803dc949b2d2c13a2f6ae200948d5e3b65f8dc3433fd731c4fd88dde33f5dc51b985079f0d7fefc408aac59dbfe80a72ac8e3ce5efbf805de2fa9a7cd87e554c2c8f29ee571f7dd17d8376129da6d11e01bc09e27b1d2e80c232dc1e7f67225218ddffc59ec9fc0f84530088bee316ef968315ebf5271cea807e1ee2c8362cd0745aa0c58780b99fefa1024c1b472d3386a2319e71b68028a680f7bca5e5caf5e8ef06c7b007aa8d6ca8493d952a71be8f334dea27ac6aca65a780dbc4dbcd82a9e3b1a99d25480444bf12317c55399f8eedfa3427cea02f19f89e80a2abd4abb01ffcf96a1d5176f5139f0efa879bc4be75c990cccaaec497e8903080a8842b069c158af198d7d570838f69a2f4c9a218d51c69ad60361a873a11bbea808257de717492dbeecc986a37b7ab4ec8d6160878c62ab15f0467b76acab83d79808dece2162d961f2c7ee521bc8a28035dca6dd9f6522cefc2d83c92ba8ae2f4f580dc8e6d2539404d5b0e899e75a60cf05696a6e8f7adb21048fdf6e826aa9a47b3806cb69d11563a5e8fb0cb211e2b4c1376eebf07bf33e2b0e0f5b6e7f7af6f43d1807d23d1ff5d1ca574f6f3d6905f7d25787c45e242415336eb11ebc6f3947f51c280aa6764053c327575cc0994647ca26d558cedefc08f07c41016bc995bca7a422d801dbb6ce0a615feb35e02a2f85d780a0135efb634ea49394a62496ac1124bdd13002ce803000000d407000000d607000000d807000000db07000000dc07000000f007000000f207000000f307000000f5070000003808000000", + "0x45028400507018e82cca161de634262fea6ac93bc0421e8680622da20704b4f52e9ac50f01082e923eb657565d5acb9e2f86b36930ce03c6f6586d0f9bcd67ab3ac6a41263d8be7953a9fdf27f91f0eb6bc7e6e526c400a65167cfd9b92f8b6cc0b73ab88cc401667e010000460008000200c01f837cdc4a3f0000000000000000000000d49cb103b47f000000000000000000", + ], + "header": { + "digest": { + "logs": [ + { + "preRuntime": [ + "0x61757261", + "0x51e2600800000000", + ], + }, + { + "seal": [ + "0x61757261", + "0x649411576e676f2a8635f943502bdfb6739282702112299fb5e6c346a93f1866b62a4e747dde76f738e492ca2eb0a03ed996336d7356988ab9d5adc19204cd87", + ], + }, + ], + }, + "extrinsicsRoot": "0x3510ab964253daa8300bb0d49e37c6ac4940e954866862d3985f0ba13f9968e9", + "number": 3800000, + "parentHash": "0xb60cb17d118325e80e5d1b36a5fe97115fc7b56230d5f3e287fc0317d4b16edf", + "stateRoot": "0xf058a653118a5b6d17532b5f05be14ccd2e1e48ac629f90fddd0173ac11ed5b8", + }, + }, + "justifications": null, +} +`; + +exports[`chopsticks provider works > chain rpc 7`] = ` +{ + "block": { + "extrinsics": [], + "header": { + "digest": { + "logs": [], + }, + "extrinsicsRoot": "0x03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314", + "number": 0, + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "stateRoot": "0x010c5745a5d42bcfbe0a644d5a2a4e22e2ff0fd378d48208ecfacea5b7e05a74", + }, + }, + "justifications": null, +} +`; + +exports[`chopsticks provider works > chain rpc 8`] = ` +{ + "block": { + "extrinsics": [ + "0x280401000be3da72cc7d01", + "0x852a041e00e102baec04ac369022e4faf43843117d7f81c2a430f03d159085b4d5deddeae29c079d0f1b16fe9f370e4e3945eacb8fa5b0d81a08d7231e77ad4aea3d0f3eae2983c2c4c6da4663d824809d8d82a8139ddfbe0e66662afb13154f73cfb587ac91bfb255080661757261202a21250800000000056175726101013cf655d71fd013dda7751c884028595444886861fe876d7e77fa2e113f9b24210e217a607e86c43ffb750c95eb2cdf35ce3680df52761453c3133e74f9e06c8ce6e37c00d5a63e0b9fe13a4aa596bbdb5673fb96e45518d61a6a46821b42aeda3c6ac2f00000500040887e207f03cfdce586301014700e2c2593eec2d17a76153ff51817f12d9cfc3c7f0400150180011080001ba3284d25379d5c873c15be73139bf02b9358dbd6292cc42cc4686b876f5a8086066aedb2810114ea92813be3b5e4e1fac2dbca1a47c13df09488afc2f686c71d0280046480c2574193fbbf18c903b0fd0fa840d672dd9e3524545fb24a4f45c228a1f297f780cd38800e3212342bff0e780c84adc8901ca21d40c99c6b37ef59589bfeb0e03c80a31a84bf92bcb5d16ee02f4c0f039b3119eb2b8f638316501fc50406d58a25d480a6c43f77bd1efe5c3ec006b3370928ca0ae7404121bc2bffe6f5a0a8a9f3390755035f04b49d95320d9021994c850f25b8e38509030000a000005000000a00000000c8000000c800000a0000000a00000040380000580200000000500000c8000000e87648170000000a0000000000000000c0d3cf8eb70000000000000000000000c0d3cf8eb700000000000000000000e8030000009001000a00000000000000009001004038000000000000000000000a0000000a0000000a00000001000000010500000001c8000000060000005802000002000000580200000200000059000000000000001e0000002800000000c817a80400000051019ef78c98723ddc9073523ef3beefda0c1004801f48957fac85fdf29fb1468fc5eb0cf8bfa4ae00cd0c5f9f0f7a36f33e1381c68083579bb39a5b39f845ac736df5ec06546ee3db275f1622848759152effdab3be4d0880ffff8042c42b2d23ee9cf3dd24ed49d3d534f2a2cd2a97882e34540b10504bf66898bc80ebae4feb173077e4eec45e1c6f6397511f51341c48b4a50b0a8aaa1278c753eb8048c1c71fc9f5ca385c7f782ac59ad231ca643937f1feae142328eff0872e9706803d5f115258d6c4aec3ab7b240adaa7114a5f0464ead35e07f204836f97ac880a80487716854a90fe44b041a983b018659e195c2a17342a627176be317510fcc5e98042669088044e642cf3b6aca51389c8c6bd8c09fae652108c65bb5e4bdc784e7c809588915f8ae7c5f87b2531de9309cb72e53c8702b87551d17666842d5efaf75e807fb80fd1ed5d5055851d105f9258af9f41386f5e21e64a39d443696024f57c40804dce9ecae12df140f5cdeb46ab6e2ffd055f2b789a1d548a8b4d036640307a94802bc6d68ce8dd80b61749f7498d335076d2f9a24ee83de4e5e984caa45014065f806d7c8cde6c8a420f50a224c2e16c27dcc76670db1eab79a35212d749f5a1f4f180cb15c9d21172d4f7b014c687c5f018826dd2f5ba6fc9144fed41f4138ee64f4d80d3ff08530bf5cd3510b86189bcf51297277481e38ce06116be926c4afdf91b18800d378cc4bc71818d4e4f6ad9895fc2f161b4b4d89db6f570efa02eae80b312c6809382d7089f6232cdbb803dda2a7ac8a7be1fd296c36649340fa7d42d63d1bcf68069b435aeaffa7685b3b784353f861b77058a1441701e0c6e3659c8e1734ab88b35049e710b30bd2eab0352ddcc26417aa1944fc1801c7426dbfea7cbb200d0a7fc8e48ef41ba8eee499c9305f5b6f4ade0607d131580bcb6b0a9491d8841e300bb21d3b7e5efac614297adf7ffdea7fec411a160828a805eb03dbd8df10f79dbe7df4e92c3122916df5225a1f4e54061ca3e471ecaf42d80437b62bfda087ab8d83e746b98eb521aafbd2029e8f0df53b840a68833c0f79b4c5f03c716fb8fff3de61a883bb76adb34a2040080e21ebaef887f2cd90b06d279831b7b52e5a5828ec9ebd58e448a811abf9d9be88000da721b8040754f9505232f55716a90453b3aea2f771d1ad4e32cb1bb32ab72800c02093f06681f30f9fa57f71c511b34cfc045ddbe3e7099355909d304585273150180080480750002cd272da2b86bd01db28179f8bb1b107a11dbf7187184e1a66e655534bc8009635f73f069d962700bbd4eb39f14f0024abeb1180819aca68c6dd21606162c1d028065008013d9835d449809cdc304c4c27d862170fb64446b24e5c10abac8bdc30de85704800686b905d49f9718c457660c3124873cc412003103bc7eeb2818a3db48cbe1ed809f284a86f45e0802b1d3be101948799c566e6927487026cf11fa7b27c5ed045d80af579d5ddc5c697d42bfc014076594e66c7b324cfd3017810c4e93e4f6f0ae9e1501804008806ebd29e5caedceeec9703c349433c8722e33020e5f2ad3e9383e91221e009946808c68f773671aec1db46b2c37b4c827e64aa7290d65e305cdaaa6b175596256f121019ede3d8a54d27e44a9d5ce189618f22d1008505f0e7b9012096b41c4eb3aaf947f6ea429080100801a24f5ecdd7db94b76d89df1e4a144212e1f4d44e0a4add94c4ee616392a54d7f8770d7fefc408aac59dbfe80a72ac8e3ce5b6ff6f7d467b87a9e803000080af1e9de2d72c2cdbfe5e0075b2f57cb522ddf642aabde2286f36f4a23ee293b0a1019d0da05ca59913bc38a8630590f2627c054080b18627caf3c7d5f5d316f6381a0d596f95cdc4e3a94622b4caa29b64ac7da6594c5f0a351b6a99a5b21324516e668bb86a570400804674404781f00366ab9f434da57d26dfe81550b8f8302b10fe4d8692a605b509a10280101780cc087090217e4d6d0065105a21a252e75e7fe873baad752fc9dc96c9d6908e4680fe06c6800e4ce995469c5bc87aee741a107ac3af47b3669e6b7592614f1796cc806e0dbbf4efa8308e881f995e527aafc88a1b806b598a7748dda909cb8cc84c3d8026d4b5c5d7545e2aa5b8ddda85a15a061c92e99906887a406c41713f92d6ea1180b82bc2aef23d07ca81d30146e6b4c8725325dd82e93876056abac1d9d6ecaeb37d059eb6f36e027abb2091cfb5110ab5087ff96e685f06155b3cd9a8c9e5e9a23fd5dc13a5ed2057424a1000000000685f08316cbf8fa0da822a20ac1c55bf1be3205f0d000000000000505f0e7b9012096b41c4eb3aaf947f6ea4290800008075cf3f08bab6ffeda6b1551c872f7d962bd3df14a393e615154540f56281f8aa80f9308f091f100659446bc94c5332bd7a8ed442723ae55144e27ff7646b5bbad680aa5abaaa8c5b2eb41a3855cfebb362efcab3bf20a37720c80f77db5434657d04800d49fef039517cc312c00412803ca1df50ac6d90c50541f649a9c85b83c0fdd880594d7409c9cd6f9707d94d0af07dfa47ec7ab089ac60cab441feaa78e07e742480bf74b14443c1ea178c8890cbc88d74edddb857c48ceea84b492dbfdb30f8316e80d8e8ea527588c761763766a2b64b7c5f2a85f320e6fe89f3b04b9493470b99a9685f090e2fbf2d792cb324bffa9427fe1f0e2068d17c00c7da7c007901800c2078767bbb460270642b5bcaf032ea04d56ab6ff6f7d467b87a9e8030000040080cbe683b14948af0537e71ed1f78a16adb32d22f7b90b892ff9f79e37c415dd67685ead6eef5c4b1c68eaa71ea17a02d9de2404e8030000bdc57c000000", + ], + "header": { + "digest": { + "logs": [ + { + "preRuntime": [ + "0x61757261", + "0x2b21250800000000", + ], + }, + { + "seal": [ + "0x61757261", + "0xba12b8f0cf97e0e0fcd885b889ae7e90b86277592690436b67eced4e0ef3e02ca094867287e94208a9d8a9e62402de9b4717247a6332bd55728420dbad0e8d8f", + ], + }, + ], + }, + "extrinsicsRoot": "0xe9033b0b86efaaa452fce2e3013806e480fa33195cfdd75d8263e5dc6acffffd", + "number": 1000, + "parentHash": "0x113384df3a413ca774ff5aebbef8045b9356493d9aeef5e59b036bd4bd3f21ba", + "stateRoot": "0x33cb61d08934b1de5be3453801450f36082cb1a060cd760b427efc65e96be63b", + }, + }, + "justifications": null, +} +`; + +exports[`chopsticks provider works > handles tx 1`] = ` +{ + "block": { + "extrinsics": [ + "0x280401000ba6dc70bd8801", + "0x2553041e00e9026c0bed8ea286dbea10d9add16a898ffe1943bb298283c4e52c4745f4f9e7bd1bfeeee700440ed43d7b7698bda1f350a6c89bdf2ecf1228b5b4322ecfb77d1c607d9e7b80fa7941f26fff6290c514267179c088e4a0b185fa23eafabd9ba29d53861953910806617572612050e260080000000005617572610101a66761c6f75913d47b4881ab589eee15fa8c0aeb6ed38b941108edd2642d7c3ddcc42ab8e79a244d06520e61c0670628415b4e4f6018d744da1fe19b87146d8e9bbef3001ea2d9fc25b6714ef01e93f09baf301a7067573ad0a899baaeddca2525e191e100005000d0d856f5a4efb16ffa83d0070000a428e8030000d4070000d6070000d8070000db070000dc070000f0070000f2070000f3070000f5070000e856f5a4efb16ffa83d0070000b42ce8030000d4070000d6070000d8070000db070000dc070000f0070000f2070000f3070000f5070000380800009d015d01c872d0ebaf85d0070000f50700005501e803000000900100009001000000000000000000011a55dc86f62772e32e58a2b8d0371c0940701e21d0f42134905ad3e3c1d2070500e8764817000000000000000000000000e8764817000000000000000000000019015d057a605f506cfcd4070000d0070000d4e80300000090010000900100000000000000000001be71a21c87fd9fd837b0608dc9f780a666c890be213bb36ddc79179384c66835985d0a87461a6f93a938080000d007000054e8030000009001000090010000000000000000000019015d0bc334ef110d8af5070000d0070000d4e80300000090010000900100000000000000000001ee81f513b9828daddab221068bba9249fe60f5cde84201ce0190b8e9c86010c019015e046fae65527199f2070000d0070000d4e803000000900100009001000000000000000000011623200dc56d973c200448bf7a939ef621fe5f54fad26b838a7201459bf77e1e19015e04d2a15ab51127e8030000d0070000d4e8030000009001000090010000000000000000000171cdacbf1af48f4252086a6b2134ee98abd462392270f81885cef0c3f2ed8da119015e1c472775baca93f0070000d0070000d4e803000000900100009001000000000000000000019e938c3bafc461a3c99f1a18cf08ead21e2473f2eae1d67a6a2ffaefce6f49ce9d015e36ad4314650419d0070000f00700005501e803000000900100009001000000000000000000019f71e512f2d1cc38cef38aa8b517deaa0731e0d94a20e7907e7d2ed4d5767d0800e8764817000000000000000000000000e876481700000000000000000000009d015e36c65ca123d5fbd0070000dc0700005501e803000000900100009001000000000000000000016cc7baf613a7d02ff83b8c42d19ca65e4a2d054a136df871cb1aac62e941965000e8764817000000000000000000000000e87648170000000000000000000000c45e414cb008e0e61e46722aa60abdd67280647979f673b44a6927553adcc3d3b6eede7a2346b4665dd6ec19c8a10ceff67119015e4361975d97255ddb070000d0070000d4e803000000900100009001000000000000000000018c74408c28f6627f58a8e10b3ec06b98b0166bfb148641a35c5cdfc7a56e68fb9d015e4be1ee506d55f8d0070000f30700005501e8030000009001000090010000000000000000000159898a2874487a46052f949bdc904ec14c45f5597fec9a64e53c73e1b15ae53900e8764817000000000000000000000000e876481700000000000000000000009d015e4f36708366b722d0070000e80300005501e80300000090010000900100000000000000000001055771e1276fbc23eb4b7b4631d55e489b0a77310bc21d7da7f443f0973a0e1300e8764817000000000000000000000000e8764817000000000000000000000019015e55c8e02d73966fd6070000d0070000d4e80300000090010000900100000000000000000001fdf3e3a2d06e4834b3f407d6b2e7a547795f302818e7f9e9775135e70f0012b719015e8b652b2ae6ed1ddc070000d0070000d4e80300000090010000900100000000000000000001e66816642666a6ac1017fe14aa32407c4129bb05bd0e3f6786ac58945c025c9619015e968c2de8299067f3070000d0070000d4e80300000090010000900100000000000000000001772e98610c34bfcf0dfbdde1794231c18cef8e0d65b360eaa5be668c4c4f3bc79d015ea99274c2ff3639d0070000d60700005501e80300000090010000900100000000000000000001ff53da92e719208899fa521ea30b07cfce7c94299ba5c6de879d5a9c141bd65300e8764817000000000000000000000000e876481700000000000000000000009d015ec648b30353eed1d0070000db0700005501e8030000009001000090010000000000000000000100382d804f7b02c95c2d6b3b6a9cad2c97c2d7570bdfd32f8e8d961754b74b6d00e8764817000000000000000000000000e87648170000000000000000000000c45ee678799d3eff024253b90e84927cc680f126c9e4609547475ec38b61ba89dad52e716489aeae728840491797acbc07c4cc5f0077dfdb8adb10f78f10a5df8742c5458401614798c9b3f2ad435f4118b7f3af954904d78cc26443aadb8190dba355a2c6c0a1015f02c412f496dcf830d0070000d80700005501e8030000009001000090010000000000000000000162a9718fbc71e7dcc66f1dd50e9e4e2e7e825bf5e76f8a7993b6c1910360b28b00e8764817000000000000000000000000e8764817000000000000000000000079035f04b49d95320d9021994c850f25b8e3852d030000a000005000000a00000000c8000000c800000a0000000a00000040380000580200000000500000c800000700e8764817020040011e0000000000000000e8764817000000000000000000000000e87648170000000000000000000000e8030000009001001e00000000000000009001004038000000000000000000000a0000000a0000000a00000001000000010500000001c80000000600000058020000580200000200000059000000000000001e000000280000000700c817a80402004001010200000014000000a1015f050452a22bee61fad0070000f20700005501e8030000009001000090010000000000000000000187a6fe1514fd0de8ea5c6f8a7101ee5145aa4fb16e43d0c84860331ae44d402000e8764817000000000000000000000000e876481700000000000000000000001d015f0e1a4e21b9b6ce11d8070000d0070000d4e803000000900100009001000000000000000000015063b45fb0f97475aae3195a3a5ee0b06ce909ecc8c856d42d51ebde6fc67739a1015f0fb7edc4cbc65e03d0070000d40700005501e80300000090010000900100000000000000000001436ee8e8e7d06535bf6e65ab2f678f695100c87c22b60360c62a5712e2409f7a00e8764817000000000000000000000000e876481700000000000000000000006d03770b3c252fcb29d88eff4f3de5de4476c363f5a4efb16ffa83d0070000f102e902b60cb17d118325e80e5d1b36a5fe97115fc7b56230d5f3e287fc0317d4b16edf02efe700f058a653118a5b6d17532b5f05be14ccd2e1e48ac629f90fddd0173ac11ed5b83510ab964253daa8300bb0d49e37c6ac4940e954866862d3985f0ba13f9968e90806617572612051e260080000000005617572610101649411576e676f2a8635f943502bdfb6739282702112299fb5e6c346a93f1866b62a4e747dde76f738e492ca2eb0a03ed996336d7356988ab9d5adc19204cd8739017f17f78c98723ddc9073523ef3beefda0c4d7fefc408aac59dbfe80a72ac8e3ce563f5a4efb16ffa83d0070000804e75289a0a452807295c0050bd79ff49e15816d25f31d5f8b0b901491a9f3527150180001280787bcd8639494b1b4ac2cfe8a085b773c02770e2a0738c3ccbd81c2745eca42e808096d4cc8c7a0f9ae9be9cf36f4f988bfe9a67da1f430966125d08fe3b6f1b5f15018000148087a6bf935205a5258f5fd2e7a80027f6584311e8eb535a47e5984ce9a754c2db80445d631a1ecd6de9476c8b816d77a7a810d1d37497334536acb58c58f9a6a700150180004280b2c508bc1d844471c7ad2f7c5ca97fef59a081548aae90e0aa9e06d0153f871780ace790dae94e1087aac2c5c92f9260533491c30ceeeb9b5e4ba2a9af1f1e4bf4d48000c0787694c040f5e73d9b7addd6cb603d15d3b0021d9da3ceafbd080d00000401485e4993f016e2d2f8e5f43be7bb259486040015018000c080b53c079fb3b3bc82049775eb4380f05dd48b80eda9494c9d2c1e9e76068eae8380fa89937b8cf25785c5445d9485ea57494a9d7047e479f49a86f3804342837743150180010180e31631069d6ac20026ad2035691e6782b449ab7f5b9d6f5f50c247a0ad09ff2280779a0ba375994f5a851f4bd4d465eca93ce76a5aa070a22e4ddeabd6ca4d78ac150180041080fce1aa163cc5b8e44db68454b97b048bc15c218a35016c3ef275ecd6b5f7a11180cf62a6b73a8d6fb5f87f1aceac4728e0360561b3123fd2e33db53b74ee8d1f4b150180080280ca984071022534f19a8a83a50f126ed05857e02e28cec9ed17eb2e285c7bb21580405ba87190f8a85e61e53b808ab22bf49bc5e986802aa40756c2727facce9b5c150180080480bfa56ec6809fa5073a83b7e243d6a7884cca6cdda6ab353be1d5fd128670fa5080abe9d5a8ef18a5c3215055cc9f7eda97d6914f13946ae0e9ea3bd91a7d6bd8c0290180085080720475da1eb4b5f077fca4ad1e6add131c2ce61ab829c8ca4ef18029c79bacc048563524f87eaf5eaf000800001404e8030000485628b8ad2696ed532c0800001404f20700002901800850808eaf571106205a34213fb1fa2fa165744e6c0fe81f161d0cf6331d4158d0b8e648563524f87eaf5eaf000800001404e8030000485628b8ad2696ed532c0800001404f20700001501801040806eb6c6756cf0cfc8fa41ff99dd5fd326a4abb0275e2bcecbf5530d34c492084080692755c9209155bd724071de137657f492de5bb5479738d1af7119739b4df4739901802030803894a94f9b4992c3079fd4a5bcff3d3899d9398cfd80911cb00a80bc82d7077080aa48bfdc4268bca63120e4a05a80f2916c9fe68fda15eaf77f49070eb0201a7280c881051c790d8340a3e08959df95e63adcf50371b67eacc9fb988b145dceb6591501802040807bd7b7016c35992cfcafdc5e3ce3a63a3282d189b49b23fa983eec1c3dd48e5480d49f322f96a88b511a5589af3cb5d8aca0c0e40dac0b8f247969c8cb0cb85f14a102804390808b36e3e2db387419d62e134238e3a546480f1eda36681cab335283869379533c809752eed4fc605c94a04691297a2f90b47b555bcfb03d7f706de843568a2664da8059e7633c91e51aeb553d06f4bc3a88ae8ecc51c565ba14749fcfb96b0a54f8568053717ea68cf7a5abe273555d043a96eddd4b41b76044b3bb7899e35d2490d6f880da68cf8effc6c5ec15c0f401c4ee20e662248c1c185495886f6f92b51744d3ccd5019e0da05ca59913bc38a8630590f2627c028880d83e3a486745cd1840e03b54f3b8512e419242f895233a35f9e66bfe30a3fac580ec0dfe021509bf2973e7d1f084b5c9e6646a54e6d5b117b1ee4dfe0d21da9ea780ac02f82263541dbcb96fe33d55353798cdc255532ffb56140685c5873b7c3a23e1019f012b746dcf32e843354583c9702cc020e1004c57071ceff5b0f64d362e0800001404e80300005c570f9d7e46afdef838d80700002408d0070000db0700008090b114f5c86023a95e5f98df73f8c47d95ec44082dd256a205fb2d136839d80e5c5700bd9a93e85e3ce1d20700002408d6070000dc07000009019f05207f03cfdce586301014700e2c25934040685f0d9ef3b78afddab7f5c7142131132ad42001000000000000004c5f0ec2d17a76153ff51817f12d9cfc3c7f0400f9059f06604cff828a6e3f579ca6c59ace013d55bf80368eaed441929811018e6385c77832d150578f8c0f96249ef03402c07a8c9ef680b1bd948a1f07b46e0fdff6cc86d50d290141dbc98d6fa4b10f25152b9fd7ceb280df0a3cbe34cb0c9d4336993916be7f8c63d132420818a1ab86996336538003bb80cd3485f6bab7622b796cf1987f473cbf4fbe1c5f6a3c9af10aef48c25a228044804822186f7e32ff008dd0e75223aff46aa1755a32cc305580d914ee39fb38efe4802fc96ffdc855123bdd70462f0347ee3d0ca983e25ad26cf402c1307510fcb11980e1d5e9fdeb9bc11d29d2db619b8c4e9982663ac066315dad3b23d929729155c0802574b4f2b745a3efbae2b305787e507b4e6aa7fafd52878952bef038514a1ce580d950f46ce6318c467e4fcbe13eb7ba7e52efa47c5d3eb899cc11fd493899fc118020b913389e7db15cf2733d244bb1dc9b16514b9d5dba548eddbb7adc790e4f00802da1fd6f9fe0a8e6656a82d21c17cfbcc9df0561cb7030ee5f266f9d10f7611875019f06de3d8a54d27e44a9d5ce189618f22d3008505f0e7b9012096b41c4eb3aaf947f6ea4290804004c5f03b4123b2e186e07fb7bad5dda5f55c0040080eb9400585a9e8b2f26f1ee751ba989620f460abf9e3ce7c6b91693d785d8d453ed029f0cb6f36e027abb2091cfb5110ab5087f9960685f06155b3cd9a8c9e5e9a23fd5dc13a5ed20a5c4c11000000000685f08316cbf8fa0da822a20ac1c55bf1be3201f1a000000000000505f0e7b9012096b41c4eb3aaf947f6ea4290800008029f757f1d06d3000cd4662c35d2313adc96c09c67a7fd7a96e74bfa481eb5e6580836c2fe1c3f4c88b70cbb4fb8c277f324c126b5d20eb0c10ee611ebfad4a32de685f090e2fbf2d792cb324bffa9427fe1f0e20d6b1f30029bbf300e1019f0d3719f5b0b12c7105c073c507445948e1004c57071ceff5b0f64d362e0800001404e80300005c570f9d7e46afdef838d80700002408d0070000db0700008002764f06c998b78ae818bed2ab379c3decbf086b87ee6e023be93cccafbb2db05c5700bd9a93e85e3ce1d20700002408d6070000dc07000025029f0d710b30bd2eab0352ddcc26417aa194428280c8c17f098e461d1ef881c412c5bbeccbc4f07cc1440940473d273c8edf57dd2d4c5f03c716fb8fff3de61a883bb76adb34a204008008a0c609ab4888f02c2545c002153297c2641c5a7b4f3d8e25c634e721f80bea7c77027bbb460270642b5bcaf032ea04d56aab6cb5748316c751060d00000400002ce803000000d407000000d607000000d807000000db07000000dc07000000f007000000f207000000f307000000f5070000003808000000", + "0x3102840088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00bf6c55f2401e8bb84a68c970dff1e299c15ce5d2896a493cf15e86931c1e2585ff06727045dea10392f0c65823c4127bd95676dbb9ddda8f826518ba5958cf03040000000a0000d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae699101", + ], + "header": { + "digest": { + "logs": [ + { + "preRuntime": [ + "0x61757261", + "0x52e2600800000000", + ], + }, + { + "seal": [ + "0x61757261", + "0x649411576e676f2a8635f943502bdfb6739282702112299fb5e6c346a93f1866b62a4e747dde76f738e492ca2eb0a03ed996336d7356988ab9d5adc19204cd87", + ], + }, + ], + }, + "extrinsicsRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "number": 3800001, + "parentHash": "0x0df086f32a9c3399f7fa158d3d77a1790830bd309134c5853718141c969299c7", + "stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + }, + }, + "justifications": null, +} +`; + +exports[`chopsticks provider works > handles tx 2`] = ` +{ + "consumers": 0, + "data": { + "feeFrozen": 0, + "free": 997579998144, + "miscFrozen": 0, + "reserved": 0, + }, + "nonce": 1, + "providers": 0, + "sufficients": 0, +} +`; + +exports[`chopsticks provider works > handles tx 3`] = ` +{ + "consumers": 0, + "data": { + "feeFrozen": 0, + "free": 1000000000100, + "miscFrozen": 0, + "reserved": 0, + }, + "nonce": 0, + "providers": 0, + "sufficients": 0, +} +`; + +exports[`chopsticks provider works > state rpc 1`] = ` +{ + "apis": [ + [ + "0xdf6acb689907609b", + 4, + ], + [ + "0x37e397fc7c91f5e4", + 1, + ], + [ + "0x40fe3ad401f8959a", + 6, + ], + [ + "0xd2bc9897eed08f15", + 3, + ], + [ + "0xf78b278be53f454c", + 2, + ], + [ + "0xdd718d5cc53262d4", + 1, + ], + [ + "0xab3c0572291feb8b", + 1, + ], + [ + "0xbc9d89904f5b923f", + 1, + ], + [ + "0x37c8bb1350a9a2a8", + 2, + ], + [ + "0x6ef953004ba30e59", + 1, + ], + [ + "0x955e168e0cfb3409", + 1, + ], + [ + "0xe3df3f2aa8a5cc57", + 2, + ], + [ + "0xea93e3f16f3d6962", + 2, + ], + ], + "authoringVersion": 1, + "implName": "acala", + "implVersion": 0, + "specName": "acala", + "specVersion": 2170, + "stateVersion": 0, + "transactionVersion": 2, +} +`; + +exports[`chopsticks provider works > state rpc 2`] = `"0x6d6574610e8509000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f7279200104540000200c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6524010c75363400012870726f6f665f73697a6524010c75363400002400000628002800000506002c083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000030000002080034102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677338013c5665633c4469676573744974656d3e0000380000023c003c102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e00060024436f6e73656e7375730800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000400105365616c0800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000500144f74686572040030011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000400000030400000008004400000248004808306672616d655f73797374656d2c4576656e745265636f7264080445014c0454012c000c01147068617365e902011450686173650001146576656e744c010445000118746f70696373b10201185665633c543e00004c08346163616c615f72756e74696d653052756e74696d654576656e740001e41853797374656d04005001706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000245363686564756c6572040074018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e0002001c5574696c697479040088015470616c6c65745f7574696c6974793a3a4576656e74000300204d756c746973696704008c017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e0004001450726f7879040094017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e000500405472616e73616374696f6e50617573650400a001a06d6f64756c655f7472616e73616374696f6e5f70617573653a3a4576656e743c52756e74696d653e0006003449646c655363686564756c65720400ac01946d6f64756c655f69646c655f7363686564756c65723a3a4576656e743c52756e74696d653e00070020507265696d6167650400bc017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e0008002042616c616e6365730400c0017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a0018546f6b656e730400c8016c6f726d6c5f746f6b656e733a3a4576656e743c52756e74696d653e000b002843757272656e636965730400dc01846d6f64756c655f63757272656e636965733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00485472616e73616374696f6e5061796d656e740400ec01a86d6f64756c655f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000e002054726561737572790400f4017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00140020426f756e746965730400f8017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e00150010546970730400fc016c70616c6c65745f746970733a3a4576656e743c52756e74696d653e00160044436f6c6c61746f7253656c656374696f6e0400010101a46d6f64756c655f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0029001c53657373696f6e04000901015470616c6c65745f73657373696f6e3a3a4576656e74002a003853657373696f6e4d616e6167657204000d0101986d6f64756c655f73657373696f6e5f6d616e616765723a3a4576656e743c52756e74696d653e002d002458636d7051756575650400110101a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e0032002c506f6c6b61646f7458636d04002101016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e0033002843756d756c757358636d0400b101018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e00340020446d7051756575650400b50101a063756d756c75735f70616c6c65745f646d705f71756575653a3a4576656e743c52756e74696d653e0035001c58546f6b656e730400b90101706f726d6c5f78746f6b656e733a3a4576656e743c52756e74696d653e00360034556e6b6e6f776e546f6b656e730400bd0101686f726d6c5f756e6b6e6f776e5f746f6b656e733a3a4576656e740037001c4f726d6c58636d0400c10101606f726d6c5f78636d3a3a4576656e743c52756e74696d653e00380024417574686f726974790400c50101786f726d6c5f617574686f726974793a3a4576656e743c52756e74696d653e003c003847656e6572616c436f756e63696c0400f50101fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e003d006047656e6572616c436f756e63696c4d656d626572736869700400fd0101fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e003e004046696e616e6369616c436f756e63696c0400010201fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e003f006846696e616e6369616c436f756e63696c4d656d626572736869700400050201fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365323e0040002c486f6d61436f756e63696c0400090201fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365333e00410054486f6d61436f756e63696c4d656d6265727368697004000d0201fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365333e00420048546563686e6963616c436f6d6d69747465650400110201fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365343e00430070546563686e6963616c436f6d6d69747465654d656d626572736869700400150201fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365343e0044002444656d6f637261637904001902018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e0045002c4163616c614f7261636c650400290201cc6f726d6c5f6f7261636c653a3a4576656e743c52756e74696d652c206f726d6c5f6f7261636c653a3a496e7374616e6365313e0046005c4f70657261746f724d656d626572736869704163616c610400350201fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365353e0047001c41756374696f6e0400390201706f726d6c5f61756374696f6e3a3a4576656e743c52756e74696d653e0050001850726963657304003d0201746d6f64756c655f7072696365733a3a4576656e743c52756e74696d653e005a000c4465780400410201686d6f64756c655f6465783a3a4576656e743c52756e74696d653e005b003841756374696f6e4d616e616765720400510201986d6f64756c655f61756374696f6e5f6d616e616765723a3a4576656e743c52756e74696d653e006400144c6f616e730400550201706d6f64756c655f6c6f616e733a3a4576656e743c52756e74696d653e00650018486f6e7a6f6e04005d0201746d6f64756c655f686f6e7a6f6e3a3a4576656e743c52756e74696d653e0066002c436470547265617375727904006102018c6d6f64756c655f6364705f74726561737572793a3a4576656e743c52756e74696d653e00670024436470456e67696e650400650201846d6f64756c655f6364705f656e67696e653a3a4576656e743c52756e74696d653e00680044456d657267656e637953687574646f776e04006d0201a46d6f64756c655f656d657267656e63795f73687574646f776e3a3a4576656e743c52756e74696d653e00690010486f6d6104007902016c6d6f64756c655f686f6d613a3a4576656e743c52756e74696d653e0074003058636d496e746572666163650400850201906d6f64756c655f78636d5f696e746572666163653a3a4576656e743c52756e74696d653e00750028496e63656e746976657304008d0201846d6f64756c655f696e63656e74697665733a3a4576656e743c52756e74696d653e0078000c4e46540400950201686d6f64756c655f6e66743a3a4576656e743c52756e74696d653e00790034417373657452656769737472790400990201946d6f64756c655f61737365745f72656769737472793a3a4576656e743c52756e74696d653e007a000c45564d0400a50201686d6f64756c655f65766d3a3a4576656e743c52756e74696d653e0082002c45766d4163636f756e74730400d902018c6d6f64756c655f65766d5f6163636f756e74733a3a4576656e743c52756e74696d653e0084002c537461626c6541737365740400dd0201a06e75747366696e616e63655f737461626c655f61737365743a3a4576656e743c52756e74696d653e00c8003c50617261636861696e53797374656d0400e10201bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e001e00105375646f0400e502016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00ff0000500c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5401304469737061746368496e666f0000003c45787472696e7369634661696c656408013864697370617463685f6572726f7260013444697370617463684572726f7200013464697370617463685f696e666f5401304469737061746368496e666f0001002c436f646555706461746564000200284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e744964000300344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640004002052656d61726b656408011873656e646572000130543a3a4163636f756e744964000110686173682c011c543a3a4861736800050000540c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735801344469737061746368436c617373000120706179735f6665655c0110506179730000580c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f7279000200005c0c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000060082873705f72756e74696d653444697370617463684572726f72000134144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040064012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400680128546f6b656e4572726f720007002841726974686d6574696304006c013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007001485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c000064082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7240018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c082873705f72756e74696d653c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000070082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000740c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000118245363686564756c65640801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320000002043616e63656c65640801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c75333200010028446973706174636865640c01107461736b78016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869647c01404f7074696f6e3c5461736b4e616d653e000118726573756c748001384469737061746368526573756c740002003c43616c6c556e617661696c61626c650801107461736b78016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869647c01404f7074696f6e3c5461736b4e616d653e00030038506572696f6469634661696c65640801107461736b78016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869647c01404f7074696f6e3c5461736b4e616d653e000400545065726d616e656e746c794f7665727765696768740801107461736b78016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869647c01404f7074696f6e3c5461736b4e616d653e0005000078000004081010007c04184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000800418526573756c740804540184044501600108084f6b040084000000000c4572720400600000010000840000040000880c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7260013444697370617463684572726f72000000384261746368436f6d706c65746564000100604261746368436f6d706c65746564576974684572726f7273000200344974656d436f6d706c65746564000300284974656d4661696c65640401146572726f7260013444697370617463684572726f7200040030446973706174636865644173040118726573756c748001384469737061746368526573756c74000500008c0c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000000404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e7490016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000100404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e7490016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c748001384469737061746368526573756c74000200444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e7490016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680003000090083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c7533320000940c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001143450726f78794578656375746564040118726573756c748001384469737061746368526573756c740000002c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f74797065980130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465789c010c75313600010024416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f686173682c013443616c6c486173684f663c543e0002002850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720003003050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720004000098083872756e74696d655f636f6d6d6f6e2450726f7879547970650001280c416e790000002c43616e63656c50726f787900010028476f7665726e616e63650002001c41756374696f6e0003001053776170000400104c6f616e000500304465784c69717569646974790006003c537461626c6541737365745377617000070050537461626c6541737365744c697175696469747900080010486f6d61000900009c0000050400a00c606d6f64756c655f7472616e73616374696f6e5f7061757365186d6f64756c65144576656e74040454000110445472616e73616374696f6e50617573656408014470616c6c65745f6e616d655f627974657330011c5665633c75383e00014c66756e6374696f6e5f6e616d655f627974657330011c5665633c75383e0000004c5472616e73616374696f6e556e70617573656408014470616c6c65745f6e616d655f627974657330011c5665633c75383e00014c66756e6374696f6e5f6e616d655f627974657330011c5665633c75383e0001004c45766d507265636f6d70696c6550617573656404011c61646472657373a40110483136300002005445766d507265636f6d70696c65556e70617573656404011c61646472657373a401104831363000030000a4083c7072696d69746976655f7479706573104831363000000400a801205b75383b2032305d0000a8000003140000000800ac0c546d6f64756c655f69646c655f7363686564756c6572186d6f64756c65144576656e74040454000108385461736b4469737061746368656408011c7461736b5f69641001144e6f6e6365000118726573756c748001384469737061746368526573756c74000000245461736b416464656408011c7461736b5f69641001144e6f6e63650001107461736bb0011c543a3a5461736b00010000b008346163616c615f72756e74696d65385363686564756c65645461736b730001041c45766d5461736b0400b4014045766d5461736b3c52756e74696d653e00000000b408286d6f64756c655f65766d1c45766d5461736b04045401b80108205363686564756c6518011066726f6da4012845766d41646472657373000118746172676574a4012845766d41646472657373000114696e70757430011c5665633c75383e00011476616c756518013042616c616e63654f663c543e0001246761735f6c696d697428010c75363400013473746f726167655f6c696d697410010c7533320000001852656d6f76650c011863616c6c6572a4012845766d41646472657373000120636f6e7472616374a4012845766d416464726573730001286d61696e7461696e6572a4012845766d4164647265737300010000b808346163616c615f72756e74696d651c52756e74696d6500000000bc0c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f746564040110686173682c011c543a3a4861736800000024526571756573746564040110686173682c011c543a3a486173680001001c436c6561726564040110686173682c011c543a3a4861736800020000c00c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001281c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e636500000020447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000100205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002002842616c616e63655365740c010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500030020526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500040028556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650005004852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573c401185374617475730006001c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500070020576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008001c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500090000c414346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000c80c2c6f726d6c5f746f6b656e73186d6f64756c65144576656e740404540001341c456e646f7765640c012c63757272656e63795f6964cc0134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500000020447573744c6f73740c012c63757272656e63795f6964cc0134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000100205472616e7366657210012c63757272656e63795f6964cc0134543a3a43757272656e6379496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002002052657365727665640c012c63757272656e63795f6964cc0134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500030028556e72657365727665640c012c63757272656e63795f6964cc0134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650004004852657365727665526570617472696174656414012c63757272656e63795f6964cc0134543a3a43757272656e6379496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000118737461747573c4013442616c616e63655374617475730005002842616c616e636553657410012c63757272656e63795f6964cc0134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500060040546f74616c49737375616e636553657408012c63757272656e63795f6964cc0134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e63650007002457697468647261776e0c012c63757272656e63795f6964cc0134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008001c536c617368656410012c63757272656e63795f6964cc0134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e74496400012c667265655f616d6f756e74180128543a3a42616c616e636500013c72657365727665645f616d6f756e74180128543a3a42616c616e6365000900244465706f73697465640c012c63757272656e63795f6964cc0134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a001c4c6f636b53657410011c6c6f636b5f6964d801384c6f636b4964656e74696669657200012c63757272656e63795f6964cc0134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b002c4c6f636b52656d6f7665640c011c6c6f636b5f6964d801384c6f636b4964656e74696669657200012c63757272656e63795f6964cc0134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000c0000cc0c406163616c615f7072696d6974697665732063757272656e63792843757272656e6379496400011814546f6b656e0400d0012c546f6b656e53796d626f6c0000002044657853686172650800d4012044657853686172650000d4012044657853686172650001001445726332300400a4012845766d4164647265737300020050537461626c654173736574506f6f6c546f6b656e0400100144537461626c654173736574506f6f6c49640003003c4c697175696443726f77646c6f616e04001001144c6561736500040030466f726569676e417373657404009c0138466f726569676e4173736574496400050000d00c406163616c615f7072696d6974697665732063757272656e63792c546f6b656e53796d626f6c0001440c41434100000010415553440001000c444f54000200104c444f540003000c5441500004001852454e42544300140010434153480015000c4b4152008000104b5553440081000c4b534d008200104c4b534d0083000c5441490084000c424e4300a8001456534b534d00a9000c50484100aa00104b494e5400ab00104b42544300ac0000d40c406163616c615f7072696d6974697665732063757272656e637920446578536861726500011414546f6b656e0400d0012c546f6b656e53796d626f6c0000001445726332300400a4012845766d416464726573730001003c4c697175696443726f77646c6f616e04001001144c6561736500020030466f726569676e417373657404009c0138466f726569676e4173736574496400030050537461626c654173736574506f6f6c546f6b656e0400100144537461626c654173736574506f6f6c496400040000d8000003080000000800dc0c446d6f64756c655f63757272656e63696573186d6f64756c65144576656e740404540001102c5472616e7366657272656410012c63757272656e63795f6964cc012843757272656e6379496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0000002457697468647261776e0c012c63757272656e63795f6964cc012843757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000100244465706f73697465640c012c63757272656e63795f6964cc012843757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000200244475737453776570740c012c63757272656e63795f6964cc012843757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00030000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000001c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001005c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020000e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c686d6f64756c655f7472616e73616374696f6e5f7061796d656e74186d6f64756c65144576656e7404045400011050436861726765466565506f6f6c456e61626c656414012c7375625f6163636f756e74000130543a3a4163636f756e74496400012c63757272656e63795f6964cc012843757272656e6379496400013465786368616e67655f72617465f00114526174696f000124706f6f6c5f73697a6518011c42616c616e6365000138737761705f7468726573686f6c6418011c42616c616e636500000050436861726765466565506f6f6c5377617070656418012c7375625f6163636f756e74000130543a3a4163636f756e744964000148737570706c795f63757272656e63795f6964cc012843757272656e637949640001446f6c645f65786368616e67655f72617465f00114526174696f000148737761705f65786368616e67655f72617465f00114526174696f0001446e65775f65786368616e67655f72617465f00114526174696f0001346e65775f706f6f6c5f73697a6518011c42616c616e636500010054436861726765466565506f6f6c44697361626c65640c012c63757272656e63795f6964cc012843757272656e63794964000138666f726569676e5f616d6f756e7418011c42616c616e63650001346e61746976655f616d6f756e7418011c42616c616e6365000200485472616e73616374696f6e4665655061696410010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518014850616c6c657442616c616e63654f663c543e00012861637475616c5f74697018014850616c6c657442616c616e63654f663c543e00013861637475616c5f737572706c757318014850616c6c657442616c616e63654f663c543e00030000f00c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000f40c3c70616c6c65745f74726561737572791870616c6c6574144576656e740804540004490001202050726f706f73656404013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000000205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e0001001c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640002002052656a656374656408013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800011c736c617368656418013c42616c616e63654f663c542c20493e000300144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00040020526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0005001c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e000600345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e74496400070000f80c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7408045400044900011c38426f756e747950726f706f736564040114696e64657810012c426f756e7479496e64657800000038426f756e747952656a6563746564080114696e64657810012c426f756e7479496e646578000110626f6e6418013c42616c616e63654f663c542c20493e00010048426f756e7479426563616d65416374697665040114696e64657810012c426f756e7479496e64657800020034426f756e747941776172646564080114696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e74496400030034426f756e7479436c61696d65640c0114696e64657810012c426f756e7479496e6465780001187061796f757418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e74496400040038426f756e747943616e63656c6564040114696e64657810012c426f756e7479496e64657800050038426f756e7479457874656e646564040114696e64657810012c426f756e7479496e64657800060000fc0c2c70616c6c65745f746970731870616c6c6574144576656e74080454000449000114184e65775469700401207469705f686173682c011c543a3a4861736800000028546970436c6f73696e670401207469705f686173682c011c543a3a4861736800010024546970436c6f7365640c01207469705f686173682c011c543a3a4861736800010c77686f000130543a3a4163636f756e7449640001187061796f757418013c42616c616e63654f663c542c20493e000200305469705265747261637465640401207469705f686173682c011c543a3a4861736800030028546970536c61736865640c01207469705f686173682c011c543a3a4861736800011866696e646572000130543a3a4163636f756e74496400011c6465706f73697418013c42616c616e63654f663c542c20493e0004000001010c646d6f64756c655f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000114404e6577496e76756c6e657261626c65730401446e65775f696e76756c6e657261626c6573050101445665633c543a3a4163636f756e7449643e000000504e65774465736972656443616e646964617465730401586e65775f646573697265645f63616e6469646174657310010c753332000100404e657743616e646964616379426f6e640401486e65775f63616e6469646163795f626f6e6418013042616c616e63654f663c543e0002003843616e646964617465416464656408010c77686f000130543a3a4163636f756e744964000110626f6e6418013042616c616e63654f663c543e0003004043616e64696461746552656d6f76656404010c77686f000130543a3a4163636f756e744964000400000501000002000009010c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e646578000000000d010c586d6f64756c655f73657373696f6e5f6d616e61676572186d6f64756c65144576656e74040454000104605363686564756c656453657373696f6e4475726174696f6e0c0130626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d62657200013473657373696f6e5f696e64657810013053657373696f6e496e64657800014073657373696f6e5f6475726174696f6e100138543a3a426c6f636b4e756d6265720000000011010c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001201c537563636573730801306d6573736167655f686173681501013c4f7074696f6e3c543a3a486173683e000118776569676874200118576569676874000000104661696c0c01306d6573736167655f686173681501013c4f7074696f6e3c543a3a486173683e0001146572726f721901012058636d4572726f720001187765696768742001185765696768740001002842616456657273696f6e0401306d6573736167655f686173681501013c4f7074696f6e3c543a3a486173683e00020024426164466f726d61740401306d6573736167655f686173681501013c4f7074696f6e3c543a3a486173683e000300445570776172644d65737361676553656e740401306d6573736167655f686173681501013c4f7074696f6e3c543a3a486173683e0004003c58636d704d65737361676553656e740401306d6573736167655f686173681501013c4f7074696f6e3c543a3a486173683e000500484f766572776569676874456e71756575656410011873656e6465721d01011850617261496400011c73656e745f617410014052656c6179426c6f636b4e756d626572000114696e64657828013c4f766572776569676874496e6465780001207265717569726564200118576569676874000600484f7665727765696768745365727669636564080114696e64657828013c4f766572776569676874496e6465780001107573656420011857656967687400070000150104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100001901100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040028010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404002801185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900001d010c48706f6c6b61646f745f70617261636861696e287072696d6974697665730849640000040010010c753332000021010c2870616c6c65745f78636d1870616c6c6574144576656e7404045400014424417474656d7074656404002501015078636d3a3a6c61746573743a3a4f7574636f6d650000001053656e740c00290101344d756c74694c6f636174696f6e0000290101344d756c74694c6f636174696f6e00004901011c58636d3c28293e00010048556e6578706563746564526573706f6e73650800290101344d756c74694c6f636174696f6e000028011c5175657279496400020034526573706f6e73655265616479080028011c51756572794964000071010120526573706f6e7365000300204e6f7469666965640c0028011c517565727949640000080108753800000801087538000400404e6f746966794f766572776569676874140028011c517565727949640000080108753800000801087538000020011857656967687400002001185765696768740005004c4e6f7469667944697370617463684572726f720c0028011c517565727949640000080108753800000801087538000600484e6f746966794465636f64654661696c65640c0028011c51756572794964000008010875380000080108753800070040496e76616c6964526573706f6e6465720c00290101344d756c74694c6f636174696f6e000028011c517565727949640000950101544f7074696f6e3c4d756c74694c6f636174696f6e3e0008005c496e76616c6964526573706f6e64657256657273696f6e0800290101344d756c74694c6f636174696f6e000028011c5175657279496400090034526573706f6e736554616b656e040028011c51756572794964000a0034417373657473547261707065640c002c0110483235360000290101344d756c74694c6f636174696f6e00009901015056657273696f6e65644d756c7469417373657473000b005456657273696f6e4368616e67654e6f7469666965640800290101344d756c74694c6f636174696f6e000010012858636d56657273696f6e000c005c537570706f7274656456657273696f6e4368616e6765640800290101344d756c74694c6f636174696f6e000010012858636d56657273696f6e000d00504e6f7469667954617267657453656e644661696c0c00290101344d756c74694c6f636174696f6e000028011c5175657279496400001901012058636d4572726f72000e00644e6f746966795461726765744d6967726174696f6e4661696c0800ad01015856657273696f6e65644d756c74694c6f636174696f6e000028011c51756572794964000f0034417373657473436c61696d65640c002c0110483235360000290101344d756c74694c6f636174696f6e00009901015056657273696f6e65644d756c7469417373657473001000002501100c78636d087632187472616974731c4f7574636f6d6500010c20436f6d706c657465040028011857656967687400000028496e636f6d706c65746508002801185765696768740000190101144572726f72000100144572726f720400190101144572726f72000200002901100c78636d087631346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f722d0101244a756e6374696f6e7300002d01100c78636d087631346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400310101204a756e6374696f6e0001000858320800310101204a756e6374696f6e0000310101204a756e6374696f6e0002000858330c00310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0003000858341000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0004000858351400310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0005000858361800310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0006000858371c00310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0007000858382000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e000800003101100c78636d087631206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e04003501010c7533320000002c4163636f756e744964333208011c6e6574776f726b390101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b390101244e6574776f726b4964000114696e64657824010c753634000200304163636f756e744b6579323008011c6e6574776f726b390101244e6574776f726b496400010c6b6579a801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400e80110753132380005002847656e6572616c4b657904003d0101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c697479080108696441010118426f647949640001107061727445010120426f64795061727400080000350100000610003901100c78636d087630206a756e6374696f6e244e6574776f726b49640001100c416e79000000144e616d656404003d0101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d61000300003d01101c73705f636f72651c626f756e646564407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003001185665633c543e00004101100c78636d087630206a756e6374696f6e18426f6479496400011c10556e6974000000144e616d656404003d0101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e64657804003501010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c000600004501100c78636d087630206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e743501010c753332000100204672616374696f6e08010c6e6f6d3501010c75333200011464656e6f6d3501010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6d3501010c75333200011464656e6f6d3501010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6d3501010c75333200011464656e6f6d3501010c7533320004000049010c0c78636d0876320c58636d042c52756e74696d6543616c6c000004004d0101745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00004d0100000251010051010c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404005501012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404005501012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404005501012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f696424011c51756572794964000120726573706f6e736571010120526573706f6e73650001286d61785f77656967687424010c753634000300345472616e7366657241737365740801186173736574735501012c4d756c746941737365747300012c62656e6566696369617279290101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574735501012c4d756c746941737365747300011064657374290101344d756c74694c6f636174696f6e00010c78636d4901011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f747970657d0101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424010c75363400011063616c6c81010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465723501010c7533320001406d61785f6d6573736167655f73697a653501010c7533320001306d61785f63617061636974793501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e743501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f723501010c75333200011873656e6465723501010c753332000124726563697069656e743501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04002d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f696424011c5175657279496400011064657374290101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f77656967687424010c753634000c00304465706f73697441737365740c0118617373657473850101404d756c7469417373657446696c7465720001286d61785f6173736574733501010c75333200012c62656e6566696369617279290101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473850101404d756c7469417373657446696c7465720001286d61785f6173736574733501010c75333200011064657374290101344d756c74694c6f636174696f6e00010c78636d4901011c58636d3c28293e000e003445786368616e6765417373657408011067697665850101404d756c7469417373657446696c74657200011c726563656976655501012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473850101404d756c7469417373657446696c74657200011c72657365727665290101344d756c74694c6f636174696f6e00010c78636d4901011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473850101404d756c7469417373657446696c74657200011064657374290101344d756c74694c6f636174696f6e00010c78636d4901011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f696424011c5175657279496400011064657374290101344d756c74694c6f636174696f6e000118617373657473850101404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f77656967687424010c75363400120030427579457865637574696f6e080110666565735d0101284d756c746941737365740001307765696768745f6c696d69749101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004901014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804004901014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574735501012c4d756c74694173736574730001187469636b6574290101344d756c74694c6f636174696f6e0018001054726170040024010c7536340019004053756273637269626556657273696f6e08012071756572795f696424011c5175657279496400014c6d61785f726573706f6e73655f77656967687424010c753634001a0048556e73756273637269626556657273696f6e001b00005501100c78636d087631286d756c746961737365742c4d756c7469417373657473000004005901013c5665633c4d756c746941737365743e000059010000025d01005d01100c78636d087631286d756c74696173736574284d756c74694173736574000008010869646101011c4173736574496400010c66756e6501012c46756e676962696c69747900006101100c78636d087631286d756c746961737365741c4173736574496400010820436f6e63726574650400290101344d756c74694c6f636174696f6e000000204162737472616374040030011c5665633c75383e000100006501100c78636d087631286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400e80110753132380000002c4e6f6e46756e6769626c650400690101344173736574496e7374616e6365000100006901100c78636d087631286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400e801107531323800010018417272617934040040011c5b75383b20345d000200184172726179380400d8011c5b75383b20385d0003001c4172726179313604006d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040030011c5665633c75383e000600006d0100000310000000080071010c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304005501012c4d756c74694173736574730001003c457865637574696f6e526573756c740400750101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000750104184f7074696f6e0404540179010108104e6f6e6500000010536f6d65040079010000010000790100000408101901007d010c0c78636d087630284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d0003000081010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656430011c5665633c75383e00008501100c78636d087631286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504005501012c4d756c74694173736574730000001057696c6404008901013857696c644d756c74694173736574000100008901100c78636d087631286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869646101011c4173736574496400010c66756e8d01013c57696c6446756e676962696c697479000100008d01100c78636d087631286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000091010c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d69746564040024010c75363400010000950104184f7074696f6e0404540129010108104e6f6e6500000010536f6d650400290100000100009901080c78636d5056657273696f6e65644d756c746941737365747300010808563004009d01014c5665633c76303a3a4d756c746941737365743e00000008563104005501013c76313a3a4d756c7469417373657473000100009d01000002a10100a101100c78636d0876302c6d756c74695f6173736574284d756c74694173736574000130104e6f6e650000000c416c6c0001002c416c6c46756e6769626c6500020038416c6c4e6f6e46756e6769626c650003004c416c6c416273747261637446756e6769626c65040108696430011c5665633c75383e00040058416c6c41627374726163744e6f6e46756e6769626c65040114636c61737330011c5665633c75383e0005004c416c6c436f6e637265746546756e6769626c650401086964a50101344d756c74694c6f636174696f6e00060058416c6c436f6e63726574654e6f6e46756e6769626c65040114636c617373a50101344d756c74694c6f636174696f6e00070040416273747261637446756e6769626c65080108696430011c5665633c75383e000118616d6f756e74e80110753132380008004c41627374726163744e6f6e46756e6769626c65080114636c61737330011c5665633c75383e000120696e7374616e6365690101344173736574496e7374616e636500090040436f6e637265746546756e6769626c650801086964a50101344d756c74694c6f636174696f6e000118616d6f756e74e8011075313238000a004c436f6e63726574654e6f6e46756e6769626c65080114636c617373a50101344d756c74694c6f636174696f6e000120696e7374616e6365690101344173736574496e7374616e6365000b0000a501100c78636d087630386d756c74695f6c6f636174696f6e344d756c74694c6f636174696f6e000124104e756c6c0000000858310400a90101204a756e6374696f6e0001000858320800a90101204a756e6374696f6e0000a90101204a756e6374696f6e0002000858330c00a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0003000858341000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0004000858351400a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0005000858361800a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0006000858371c00a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0007000858382000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e0000a90101204a756e6374696f6e00080000a901100c78636d087630206a756e6374696f6e204a756e6374696f6e00012818506172656e740000002450617261636861696e04003501010c7533320001002c4163636f756e744964333208011c6e6574776f726b390101244e6574776f726b496400010869640401205b75383b2033325d000200384163636f756e74496e646578363408011c6e6574776f726b390101244e6574776f726b4964000114696e64657824010c753634000300304163636f756e744b6579323008011c6e6574776f726b390101244e6574776f726b496400010c6b6579a801205b75383b2032305d0004003850616c6c6574496e7374616e6365040008010875380005003047656e6572616c496e6465780400e80110753132380006002847656e6572616c4b657904003d0101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000700244f6e6c794368696c6400080024506c7572616c697479080108696441010118426f647949640001107061727445010120426f64795061727400090000ad01080c78636d5856657273696f6e65644d756c74694c6f636174696f6e0001080856300400a501014476303a3a4d756c74694c6f636174696f6e00000008563104002901014476313a3a4d756c74694c6f636174696f6e00010000b1010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d61740400d8011c5b75383b20385d00000048556e737570706f7274656456657273696f6e0400d8011c5b75383b20385d000100404578656375746564446f776e776172640800d8011c5b75383b20385d00002501011c4f7574636f6d6500020000b5010c6063756d756c75735f70616c6c65745f646d705f71756575651870616c6c6574144576656e7404045400011834496e76616c6964466f726d61740401286d6573736167655f69640401244d657373616765496400000048556e737570706f7274656456657273696f6e0401286d6573736167655f69640401244d6573736167654964000100404578656375746564446f776e776172640801286d6573736167655f69640401244d657373616765496400011c6f7574636f6d652501011c4f7574636f6d650002003c5765696768744578686175737465640c01286d6573736167655f69640401244d657373616765496400014072656d61696e696e675f77656967687420011857656967687400013c72657175697265645f776569676874200118576569676874000300484f766572776569676874456e7175657565640c01286d6573736167655f69640401244d65737361676549640001406f7665727765696768745f696e64657828013c4f766572776569676874496e64657800013c72657175697265645f776569676874200118576569676874000400484f76657277656967687453657276696365640801406f7665727765696768745f696e64657828013c4f766572776569676874496e64657800012c7765696768745f7573656420011857656967687400050000b9010c306f726d6c5f78746f6b656e73186d6f64756c65144576656e74040454000104585472616e736665727265644d756c746941737365747310011873656e646572000130543a3a4163636f756e7449640001186173736574735501012c4d756c746941737365747300010c6665655d0101284d756c7469417373657400011064657374290101344d756c74694c6f636174696f6e00000000bd010c4c6f726d6c5f756e6b6e6f776e5f746f6b656e73186d6f64756c65144576656e74000108244465706f736974656408011461737365745d0101284d756c7469417373657400010c77686f290101344d756c74694c6f636174696f6e0000002457697468647261776e08011461737365745d0101284d756c7469417373657400010c77686f290101344d756c74694c6f636174696f6e00010000c1010c206f726d6c5f78636d186d6f64756c65144576656e740404540001041053656e74080108746f290101344d756c74694c6f636174696f6e00011c6d6573736167654901011c58636d3c28293e00000000c5010c386f726d6c5f617574686f72697479186d6f64756c65144576656e740404540001202844697370617463686564040118726573756c748001384469737061746368526573756c74000000245363686564756c65640801186f726967696ec9010140543a3a50616c6c6574734f726967696e000114696e6465781001445363686564756c655461736b496e6465780001002c46617374547261636b65640c01186f726967696ec9010140543a3a50616c6c6574734f726967696e000114696e6465781001445363686564756c655461736b496e6465780001107768656e100138543a3a426c6f636b4e756d6265720002001c44656c617965640c01186f726967696ec9010140543a3a50616c6c6574734f726967696e000114696e6465781001445363686564756c655461736b496e6465780001107768656e100138543a3a426c6f636b4e756d6265720003002443616e63656c6c65640801186f726967696ec9010140543a3a50616c6c6574734f726967696e000114696e6465781001445363686564756c655461736b496e64657800040038417574686f72697a656443616c6c080110686173682c011c543a3a4861736800011863616c6c6572f10101504f7074696f6e3c543a3a4163636f756e7449643e0005005452656d6f766564417574686f72697a656443616c6c040110686173682c011c543a3a486173680006003c54726967676572656443616c6c4279080110686173682c011c543a3a4861736800011863616c6c6572000130543a3a4163636f756e74496400070000c90108346163616c615f72756e74696d65304f726967696e43616c6c65720001241873797374656d0400cd0101746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000002c506f6c6b61646f7458636d0400d101014870616c6c65745f78636d3a3a4f726967696e0033002843756d756c757358636d0400d501016863756d756c75735f70616c6c65745f78636d3a3a4f726967696e00340024417574686f726974790400d901017c6f726d6c5f617574686f726974793a3a4f726967696e3c52756e74696d653e003c003847656e6572616c436f756e63696c0400dd0101010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e003d004046696e616e6369616c436f756e63696c0400e10101010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e003f002c486f6d61436f756e63696c0400e50101010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365333e00410048546563686e6963616c436f6d6d69747465650400e90101010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365343e00430010566f69640400ed0101110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f696400080000cd010c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000d1010c2870616c6c65745f78636d1870616c6c6574184f726967696e0001080c58636d0400290101344d756c74694c6f636174696f6e00000020526573706f6e73650400290101344d756c74694c6f636174696f6e00010000d5010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574184f726967696e0001081452656c6179000000405369626c696e6750617261636861696e04001d01011850617261496400010000d90108386f726d6c5f617574686f726974793444656c617965644f726967696e082c426c6f636b4e756d62657201103450616c6c6574734f726967696e01c9010008011464656c617910012c426c6f636b4e756d6265720001186f726967696ec9010148426f783c50616c6c6574734f726967696e3e0000dd01084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000e101084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000e501084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000e901084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000ed01081c73705f636f726510566f696400010000f10104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000f5010c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f686173682c011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e7400000014566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f686173682c011c543a3a48617368000114766f746564f9010110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e7400010020417070726f76656404013470726f706f73616c5f686173682c011c543a3a486173680002002c446973617070726f76656404013470726f706f73616c5f686173682c011c543a3a4861736800030020457865637574656408013470726f706f73616c5f686173682c011c543a3a48617368000118726573756c748001384469737061746368526573756c74000400384d656d626572457865637574656408013470726f706f73616c5f686173682c011c543a3a48617368000118726573756c748001384469737061746368526573756c7400050018436c6f7365640c013470726f706f73616c5f686173682c011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e7400060000f9010000050000fd010c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000000344d656d62657252656d6f766564000100384d656d6265727353776170706564000200304d656d626572735265736574000300284b65794368616e6765640004001444756d6d790005000001020c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f686173682c011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e7400000014566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f686173682c011c543a3a48617368000114766f746564f9010110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e7400010020417070726f76656404013470726f706f73616c5f686173682c011c543a3a486173680002002c446973617070726f76656404013470726f706f73616c5f686173682c011c543a3a4861736800030020457865637574656408013470726f706f73616c5f686173682c011c543a3a48617368000118726573756c748001384469737061746368526573756c74000400384d656d626572457865637574656408013470726f706f73616c5f686173682c011c543a3a48617368000118726573756c748001384469737061746368526573756c7400050018436c6f7365640c013470726f706f73616c5f686173682c011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006000005020c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000000344d656d62657252656d6f766564000100384d656d6265727353776170706564000200304d656d626572735265736574000300284b65794368616e6765640004001444756d6d790005000009020c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f686173682c011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e7400000014566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f686173682c011c543a3a48617368000114766f746564f9010110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e7400010020417070726f76656404013470726f706f73616c5f686173682c011c543a3a486173680002002c446973617070726f76656404013470726f706f73616c5f686173682c011c543a3a4861736800030020457865637574656408013470726f706f73616c5f686173682c011c543a3a48617368000118726573756c748001384469737061746368526573756c74000400384d656d626572457865637574656408013470726f706f73616c5f686173682c011c543a3a48617368000118726573756c748001384469737061746368526573756c7400050018436c6f7365640c013470726f706f73616c5f686173682c011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000600000d020c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000000344d656d62657252656d6f766564000100384d656d6265727353776170706564000200304d656d626572735265736574000300284b65794368616e6765640004001444756d6d790005000011020c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f686173682c011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e7400000014566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f686173682c011c543a3a48617368000114766f746564f9010110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e7400010020417070726f76656404013470726f706f73616c5f686173682c011c543a3a486173680002002c446973617070726f76656404013470726f706f73616c5f686173682c011c543a3a4861736800030020457865637574656408013470726f706f73616c5f686173682c011c543a3a48617368000118726573756c748001384469737061746368526573756c74000400384d656d626572457865637574656408013470726f706f73616c5f686173682c011c543a3a48617368000118726573756c748001384469737061746368526573756c7400050018436c6f7365640c013470726f706f73616c5f686173682c011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006000015020c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000000344d656d62657252656d6f766564000100384d656d6265727353776170706564000200304d656d626572735265736574000300284b65794368616e6765640004001444756d6d790005000019020c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001382050726f706f73656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000000185461626c656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e0001003845787465726e616c5461626c65640002001c537461727465640801247265665f696e64657810013c5265666572656e64756d496e6465780001247468726573686f6c641d020134566f74655468726573686f6c64000300185061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000400244e6f745061737365640401247265665f696e64657810013c5265666572656e64756d496e6465780005002443616e63656c6c65640401247265665f696e64657810013c5265666572656e64756d496e6465780006002444656c65676174656408010c77686f000130543a3a4163636f756e744964000118746172676574000130543a3a4163636f756e7449640007002c556e64656c65676174656404011c6163636f756e74000130543a3a4163636f756e744964000800185665746f65640c010c77686f000130543a3a4163636f756e74496400013470726f706f73616c5f686173682c011048323536000114756e74696c100138543a3a426c6f636b4e756d6265720009002c426c61636b6c697374656404013470726f706f73616c5f686173682c011048323536000a0014566f7465640c0114766f746572000130543a3a4163636f756e7449640001247265665f696e64657810013c5265666572656e64756d496e646578000110766f7465210201644163636f756e74566f74653c42616c616e63654f663c543e3e000b00205365636f6e6465640801207365636f6e646572000130543a3a4163636f756e74496400012870726f705f696e64657810012450726f70496e646578000c004050726f706f73616c43616e63656c656404012870726f705f696e64657810012450726f70496e646578000d00001d020c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f726974790002000021020c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f746525020110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001000025020c4070616c6c65745f64656d6f637261637910766f746510566f7465000004000800000029020c2c6f726d6c5f6f7261636c65186d6f64756c65144576656e740804540004490001042c4e6577466565644461746108011873656e646572000130543a3a4163636f756e74496400011876616c7565732d02018c5665633c28543a3a4f7261636c654b65792c20543a3a4f7261636c6556616c7565293e000000002d02000002310200310200000408ccf00035020c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000000344d656d62657252656d6f766564000100384d656d6265727353776170706564000200304d656d626572735265736574000300284b65794368616e6765640004001444756d6d790005000039020c306f726d6c5f61756374696f6e186d6f64756c65144576656e740404540001040c4269640c012861756374696f6e5f6964100130543a3a41756374696f6e4964000118626964646572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000000003d020c346d6f64756c655f707269636573186d6f64756c65144576656e74040454000108244c6f636b507269636508012c63757272656e63795f6964cc012843757272656e637949640001306c6f636b65645f7072696365f0011450726963650000002c556e6c6f636b507269636504012c63757272656e63795f6964cc012843757272656e637949640001000041020c286d6f64756c655f646578186d6f64756c65144576656e740404540001283041646450726f766973696f6e14010c77686f000130543a3a4163636f756e74496400012863757272656e63795f30cc012843757272656e63794964000138636f6e747269627574696f6e5f3018011c42616c616e636500012863757272656e63795f31cc012843757272656e63794964000138636f6e747269627574696f6e5f3118011c42616c616e6365000000304164644c697175696469747918010c77686f000130543a3a4163636f756e74496400012863757272656e63795f30cc012843757272656e63794964000118706f6f6c5f3018011c42616c616e636500012863757272656e63795f31cc012843757272656e63794964000118706f6f6c5f3118011c42616c616e636500013c73686172655f696e6372656d656e7418011c42616c616e63650001003c52656d6f76654c697175696469747918010c77686f000130543a3a4163636f756e74496400012863757272656e63795f30cc012843757272656e63794964000118706f6f6c5f3018011c42616c616e636500012863757272656e63795f31cc012843757272656e63794964000118706f6f6c5f3118011c42616c616e636500013c73686172655f64656372656d656e7418011c42616c616e636500020010537761700c0118747261646572000130543a3a4163636f756e744964000110706174684502013c5665633c43757272656e637949643e0001446c69717569646974795f6368616e676573490201305665633c42616c616e63653e00030044456e61626c6554726164696e675061697204013074726164696e675f706169724d02012c54726164696e6750616972000400404c69737450726f766973696f6e696e6704013074726164696e675f706169724d02012c54726164696e67506169720005004844697361626c6554726164696e675061697204013074726164696e675f706169724d02012c54726164696e67506169720006005450726f766973696f6e696e67546f456e61626c656410013074726164696e675f706169724d02012c54726164696e6750616972000118706f6f6c5f3018011c42616c616e6365000118706f6f6c5f3118011c42616c616e636500013073686172655f616d6f756e7418011c42616c616e63650007003c526566756e6450726f766973696f6e14010c77686f000130543a3a4163636f756e74496400012863757272656e63795f30cc012843757272656e63794964000138636f6e747269627574696f6e5f3018011c42616c616e636500012863757272656e63795f31cc012843757272656e63794964000138636f6e747269627574696f6e5f3118011c42616c616e63650008004c50726f766973696f6e696e6741626f727465640c013074726164696e675f706169724d02012c54726164696e675061697200015c616363756d756c617465645f70726f766973696f6e5f3018011c42616c616e636500015c616363756d756c617465645f70726f766973696f6e5f3118011c42616c616e6365000900004502000002cc00490200000218004d0208406163616c615f7072696d6974697665732c54726164696e675061697200000800cc012843757272656e637949640000cc012843757272656e63794964000051020c586d6f64756c655f61756374696f6e5f6d616e61676572186d6f64756c65144576656e74040454000114504e6577436f6c6c61746572616c41756374696f6e10012861756374696f6e5f696410012441756374696f6e496400013c636f6c6c61746572616c5f74797065cc012843757272656e63794964000144636f6c6c61746572616c5f616d6f756e7418011c42616c616e63650001407461726765745f6269645f707269636518011c42616c616e63650000003443616e63656c41756374696f6e04012861756374696f6e5f696410012441756374696f6e496400010058436f6c6c61746572616c41756374696f6e4465616c7414012861756374696f6e5f696410012441756374696f6e496400013c636f6c6c61746572616c5f74797065cc012843757272656e63794964000144636f6c6c61746572616c5f616d6f756e7418011c42616c616e636500011877696e6e6572000130543a3a4163636f756e7449640001387061796d656e745f616d6f756e7418011c42616c616e63650002006044455854616b65436f6c6c61746572616c41756374696f6e14012861756374696f6e5f696410012441756374696f6e496400013c636f6c6c61746572616c5f74797065cc012843757272656e63794964000144636f6c6c61746572616c5f616d6f756e7418011c42616c616e6365000160737570706c795f636f6c6c61746572616c5f616d6f756e7418011c42616c616e63650001507461726765745f737461626c655f616d6f756e7418011c42616c616e636500030060436f6c6c61746572616c41756374696f6e41626f7274656414012861756374696f6e5f696410012441756374696f6e496400013c636f6c6c61746572616c5f74797065cc012843757272656e63794964000144636f6c6c61746572616c5f616d6f756e7418011c42616c616e63650001507461726765745f737461626c655f616d6f756e7418011c42616c616e6365000140726566756e645f726563697069656e74000130543a3a4163636f756e7449640004000055020c306d6f64756c655f6c6f616e73186d6f64756c65144576656e7404045400010c3c506f736974696f6e557064617465641001146f776e6572000130543a3a4163636f756e74496400013c636f6c6c61746572616c5f74797065cc012843757272656e63794964000154636f6c6c61746572616c5f61646a7573746d656e7459020118416d6f756e7400014064656269745f61646a7573746d656e7459020118416d6f756e7400000070436f6e66697363617465436f6c6c61746572616c416e6444656269741001146f776e6572000130543a3a4163636f756e74496400013c636f6c6c61746572616c5f74797065cc012843757272656e63794964000174636f6e66697363617465645f636f6c6c61746572616c5f616d6f756e7418011c42616c616e636500014c6465647563745f64656269745f616d6f756e7418011c42616c616e6365000100305472616e736665724c6f616e0c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400012c63757272656e63795f6964cc012843757272656e637949640002000059020000050d005d020c346d6f64756c655f686f6e7a6f6e186d6f64756c65144576656e7404045400011034417574686f72697a6174696f6e0c0128617574686f72697a6572000130543a3a4163636f756e744964000128617574686f72697a6565000130543a3a4163636f756e74496400013c636f6c6c61746572616c5f74797065cc012843757272656e637949640000003c556e417574686f72697a6174696f6e0c0128617574686f72697a6572000130543a3a4163636f756e744964000128617574686f72697a6565000130543a3a4163636f756e74496400013c636f6c6c61746572616c5f74797065cc012843757272656e6379496400010048556e417574686f72697a6174696f6e416c6c040128617574686f72697a6572000130543a3a4163636f756e744964000200345472616e7366657244656269740c013466726f6d5f63757272656e6379cc012843757272656e6379496400012c746f5f63757272656e6379cc012843757272656e63794964000118616d6f756e7418011c42616c616e63650003000061020c4c6d6f64756c655f6364705f7472656173757279186d6f64756c65144576656e74040454000108904578706563746564436f6c6c61746572616c41756374696f6e53697a655570646174656408013c636f6c6c61746572616c5f74797065cc012843757272656e637949640001206e65775f73697a6518011c42616c616e63650000006044656269744f666673657442756666657255706461746564040118616d6f756e7418011c42616c616e63650001000065020c446d6f64756c655f6364705f656e67696e65186d6f64756c65144576656e74040454000128484c6971756964617465556e7361666543445014013c636f6c6c61746572616c5f74797065cc012843757272656e637949640001146f776e6572000130543a3a4163636f756e744964000144636f6c6c61746572616c5f616d6f756e7418011c42616c616e63650001386261645f646562745f76616c756518011c42616c616e63650001347461726765745f616d6f756e7418011c42616c616e636500000040536574746c65434450496e446562697408013c636f6c6c61746572616c5f74797065cc012843757272656e637949640001146f776e6572000130543a3a4163636f756e74496400010050436c6f7365434450496e4465626974427944455814013c636f6c6c61746572616c5f74797065cc012843757272656e637949640001146f776e6572000130543a3a4163636f756e744964000158736f6c645f636f6c6c61746572616c5f616d6f756e7418011c42616c616e6365000160726566756e645f636f6c6c61746572616c5f616d6f756e7418011c42616c616e636500012c64656269745f76616c756518011c42616c616e636500020064496e746572657374526174655065725365635570646174656408013c636f6c6c61746572616c5f74797065cc012843757272656e637949640001646e65775f696e7465726573745f726174655f7065725f736563690201304f7074696f6e3c526174653e0003005c4c69717569646174696f6e526174696f5570646174656408013c636f6c6c61746572616c5f74797065cc012843757272656e637949640001546e65775f6c69717569646174696f6e5f726174696f690201344f7074696f6e3c526174696f3e000400644c69717569646174696f6e50656e616c74795570646174656408013c636f6c6c61746572616c5f74797065cc012843757272656e6379496400015c6e65775f6c69717569646174696f6e5f70656e616c7479690201304f7074696f6e3c526174653e000500785265717569726564436f6c6c61746572616c526174696f5570646174656408013c636f6c6c61746572616c5f74797065cc012843757272656e637949640001746e65775f72657175697265645f636f6c6c61746572616c5f726174696f690201344f7074696f6e3c526174696f3e000600744d6178696d756d546f74616c446562697456616c75655570646174656408013c636f6c6c61746572616c5f74797065cc012843757272656e637949640001546e65775f746f74616c5f64656269745f76616c756518011c42616c616e6365000700744c69717569646174696f6e436f6e74726163745265676973746572656404011c61646472657373a4012845766d416464726573730008007c4c69717569646174696f6e436f6e747261637444657265676973746572656404011c61646472657373a4012845766d4164647265737300090000690204184f7074696f6e04045401f00108104e6f6e6500000010536f6d650400f000000100006d020c646d6f64756c655f656d657267656e63795f73687574646f776e186d6f64756c65144576656e7404045400010c2053687574646f776e040130626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d626572000000284f70656e526566756e64040130626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d62657200010018526566756e640c010c77686f000130543a3a4163636f756e744964000148737461626c655f636f696e5f616d6f756e7418011c42616c616e636500012c726566756e645f6c697374710201685665633c2843757272656e637949642c2042616c616e6365293e000200007102000002750200750200000408cc180079020c2c6d6f64756c655f686f6d61186d6f64756c65144576656e74040454000140184d696e7465641001186d696e746572000130543a3a4163636f756e74496400015c7374616b696e675f63757272656e63795f616d6f756e7418011c42616c616e63650001586c69717569645f616d6f756e745f726563656976656418011c42616c616e636500016c6c69717569645f616d6f756e745f61646465645f746f5f766f696418011c42616c616e63650000003c52657175657374656452656465656d0c012072656465656d6572000130543a3a4163636f756e7449640001346c69717569645f616d6f756e7418011c42616c616e6365000140616c6c6f775f666173745f6d61746368f9010110626f6f6c0001005852656465656d5265717565737443616e63656c6c656408012072656465656d6572000130543a3a4163636f756e74496400015c63616e63656c6c65645f6c69717569645f616d6f756e7418011c42616c616e63650002004c52656465656d65644279466173744d6174636810012072656465656d6572000130543a3a4163636f756e7449640001546d6174636865645f6c69717569645f616d6f756e7418011c42616c616e63650001346665655f696e5f6c697175696418011c42616c616e636500015c72656465656d65645f7374616b696e675f616d6f756e7418011c42616c616e63650003004052656465656d65644279556e626f6e6410012072656465656d6572000130543a3a4163636f756e7449640001546572615f696e6465785f7768656e5f756e626f6e64100120457261496e6465780001346c69717569645f616d6f756e7418011c42616c616e6365000160756e626f6e64696e675f7374616b696e675f616d6f756e7418011c42616c616e6365000400485769746864726177526564656d7074696f6e08012072656465656d6572000130543a3a4163636f756e744964000144726564656d7074696f6e5f616d6f756e7418011c42616c616e63650005004043757272656e7445726142756d7065640401346e65775f6572615f696e646578100120457261496e6465780006003c43757272656e7445726152657365740401346e65775f6572615f696e646578100120457261496e646578000700444c6564676572426f6e64656452657365740801447375625f6163636f756e745f696e6465789c010c7531360001446e65775f626f6e6465645f616d6f756e7418011c42616c616e6365000800504c6564676572556e6c6f636b696e6752657365740801447375625f6163636f756e745f696e6465789c010c7531360001346e65775f756e6c6f636b696e677d0201405665633c556e6c6f636b4368756e6b3e00090084536f6674426f6e6465644361705065725375624163636f756e74557064617465640401286361705f616d6f756e7418011c42616c616e6365000a0080457374696d61746564526577617264526174655065724572615570646174656404012c7265776172645f72617465f0011052617465000b0054436f6d6d697373696f6e526174655570646174656404013c636f6d6d697373696f6e5f72617465f0011052617465000c005c466173744d61746368466565526174655570646174656404014c666173745f6d617463685f6665655f72617465f0011052617465000d00644c61737445726142756d706564426c6f636b557064617465640401546c6173745f6572615f62756d7065645f626c6f636b100138543a3a426c6f636b4e756d626572000e005c42756d704572614672657175656e6379557064617465640401246672657175656e6379100138543a3a426c6f636b4e756d626572000f00007d0200000281020081020c2c6d6f64756c655f686f6d61186d6f64756c652c556e6c6f636b4368756e6b000008011476616c7565e8011c42616c616e636500010c65726135010120457261496e646578000085020c506d6f64756c655f78636d5f696e74657266616365186d6f64756c65144576656e740404540001085058636d446573745765696768745570646174656408013478636d5f6f7065726174696f6e8902015458636d496e746572666163654f7065726174696f6e00014c6e65775f78636d5f646573745f77656967687428012458636d5765696768740000003458636d4665655570646174656408013478636d5f6f7065726174696f6e8902015458636d496e746572666163654f7065726174696f6e00014c6e65775f78636d5f646573745f77656967687418011c42616c616e63650001000089020c506d6f64756c655f78636d5f696e74657266616365186d6f64756c655458636d496e746572666163654f7065726174696f6e0001143c58746f6b656e735472616e7366657200000050486f6d615769746864726177556e626f6e64656400010034486f6d61426f6e64457874726100020028486f6d61556e626f6e640003003050617261636861696e466565040029010148426f783c4d756c74694c6f636174696f6e3e000400008d020c446d6f64756c655f696e63656e7469766573186d6f64756c65144576656e740404540001143c4465706f73697444657853686172650c010c77686f000130543a3a4163636f756e7449640001386465785f73686172655f74797065cc012843757272656e6379496400011c6465706f73697418011c42616c616e636500000040576974686472617744657853686172650c010c77686f000130543a3a4163636f756e7449640001386465785f73686172655f74797065cc012843757272656e63794964000120776974686472617718011c42616c616e636500010030436c61696d5265776172647314010c77686f000130543a3a4163636f756e744964000110706f6f6c91020118506f6f6c49640001487265776172645f63757272656e63795f6964cc012843757272656e6379496400013461637475616c5f616d6f756e7418011c42616c616e6365000140646564756374696f6e5f616d6f756e7418011c42616c616e636500020070496e63656e74697665526577617264416d6f756e74557064617465640c0110706f6f6c91020118506f6f6c49640001487265776172645f63757272656e63795f6964cc012843757272656e637949640001607265776172645f616d6f756e745f7065725f706572696f6418011c42616c616e63650003007c436c61696d526577617264446564756374696f6e5261746555706461746564080110706f6f6c91020118506f6f6c4964000138646564756374696f6e5f72617465f00110526174650004000091020c386d6f64756c655f737570706f727428696e63656e746976657318506f6f6c4964000108144c6f616e730400cc012843757272656e637949640000000c4465780400cc012843757272656e637949640001000095020c286d6f64756c655f6e6674186d6f64756c65144576656e740404540001183043726561746564436c6173730801146f776e6572000130543a3a4163636f756e744964000120636c6173735f6964100130436c61737349644f663c543e0000002c4d696e746564546f6b656e10011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000120636c6173735f6964100130436c61737349644f663c543e0001207175616e7469747910010c753332000100405472616e73666572726564546f6b656e10011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000120636c6173735f6964100130436c61737349644f663c543e000120746f6b656e5f6964280130546f6b656e49644f663c543e0002002c4275726e6564546f6b656e0c01146f776e6572000130543a3a4163636f756e744964000120636c6173735f6964100130436c61737349644f663c543e000120746f6b656e5f6964280130546f6b656e49644f663c543e000300544275726e6564546f6b656e5769746852656d61726b1001146f776e6572000130543a3a4163636f756e744964000120636c6173735f6964100130436c61737349644f663c543e000120746f6b656e5f6964280130546f6b656e49644f663c543e00012c72656d61726b5f686173682c011c543a3a486173680004003844657374726f796564436c6173730801146f776e6572000130543a3a4163636f756e744964000120636c6173735f6964100130436c61737349644f663c543e0005000099020c546d6f64756c655f61737365745f7265676973747279186d6f64756c65144576656e7404045400011058466f726569676e4173736574526567697374657265640c012061737365745f69649c0138466f726569676e4173736574496400013461737365745f61646472657373290101344d756c74694c6f636174696f6e0001206d657461646174619d02016c41737365744d657461646174613c42616c616e63654f663c543e3e0000004c466f726569676e4173736574557064617465640c012061737365745f69649c0138466f726569676e4173736574496400013461737365745f61646472657373290101344d756c74694c6f636174696f6e0001206d657461646174619d02016c41737365744d657461646174613c42616c616e63654f663c543e3e0001003c41737365745265676973746572656408012061737365745f6964a102012041737365744964730001206d657461646174619d02016c41737365744d657461646174613c42616c616e63654f663c543e3e0002003041737365745570646174656408012061737365745f6964a102012041737365744964730001206d657461646174619d02016c41737365744d657461646174613c42616c616e63654f663c543e3e000300009d020c406163616c615f7072696d6974697665732063757272656e63793441737365744d65746164617461041c42616c616e63650118001001106e616d6530011c5665633c75383e00011873796d626f6c30011c5665633c75383e000120646563696d616c73080108753800013c6d696e696d616c5f62616c616e636518011c42616c616e63650000a1020c406163616c615f7072696d6974697665732063757272656e63792041737365744964730001101445726332300400a4012845766d4164647265737300000034537461626c65417373657449640400100144537461626c654173736574506f6f6c496400010038466f726569676e4173736574496404009c0138466f726569676e41737365744964000200344e6174697665417373657449640400cc012843757272656e6379496400030000a5020c286d6f64756c655f65766d186d6f64756c65144576656e740404540001281c4372656174656414011066726f6da4012845766d41646472657373000120636f6e7472616374a4012845766d416464726573730001106c6f6773a90201205665633c4c6f673e000120757365645f67617328010c753634000130757365645f73746f72616765b502010c69333200000034437265617465644661696c656418011066726f6da4012845766d41646472657373000120636f6e7472616374a4012845766d4164647265737300012c657869745f726561736f6eb902012845786974526561736f6e0001106c6f6773a90201205665633c4c6f673e000120757365645f67617328010c753634000130757365645f73746f72616765b502010c69333200010020457865637574656414011066726f6da4012845766d41646472657373000120636f6e7472616374a4012845766d416464726573730001106c6f6773a90201205665633c4c6f673e000120757365645f67617328010c753634000130757365645f73746f72616765b502010c6933320002003845786563757465644661696c65641c011066726f6da4012845766d41646472657373000120636f6e7472616374a4012845766d4164647265737300012c657869745f726561736f6eb902012845786974526561736f6e0001186f757470757430011c5665633c75383e0001106c6f6773a90201205665633c4c6f673e000120757365645f67617328010c753634000130757365645f73746f72616765b502010c693332000300545472616e736665727265644d61696e7461696e6572080120636f6e7472616374a4012845766d416464726573730001386e65775f6d61696e7461696e6572a4012845766d4164647265737300040068436f6e7472616374446576656c6f706d656e74456e61626c656404010c77686f000130543a3a4163636f756e7449640005006c436f6e7472616374446576656c6f706d656e7444697361626c656404010c77686f000130543a3a4163636f756e74496400060044436f6e74726163745075626c6973686564040120636f6e7472616374a4012845766d416464726573730007003c436f6e7472616374536574436f6465040120636f6e7472616374a4012845766d4164647265737300080058436f6e747261637453656c6664657374727563746564040120636f6e7472616374a4012845766d4164647265737300090000a902000002ad0200ad020c20657468657265756d0c6c6f670c4c6f6700000c011c61646472657373a4011048313630000118746f70696373b10201245665633c483235363e0001106461746130011442797465730000b1020000022c00b5020000050b00b9020c2065766d5f636f7265146572726f722845786974526561736f6e0001101c537563636565640400bd02012c4578697453756363656564000000144572726f720400c1020124457869744572726f72000100185265766572740400d10201284578697452657665727400020014466174616c0400d502012445786974466174616c00030000bd020c2065766d5f636f7265146572726f722c457869745375636365656400010c1c53746f707065640000002052657475726e656400010020537569636964656400020000c1020c2065766d5f636f7265146572726f7224457869744572726f7200013c38537461636b556e646572666c6f7700000034537461636b4f766572666c6f770001002c496e76616c69644a756d7000020030496e76616c696452616e67650003004444657369676e61746564496e76616c69640004002c43616c6c546f6f446565700005003c437265617465436f6c6c6973696f6e0006004c437265617465436f6e74726163744c696d69740007002c496e76616c6964436f64650400c50201184f70636f6465000f002c4f75744f664f6666736574000800204f75744f66476173000900244f75744f6646756e64000a002c5043556e646572666c6f77000b002c437265617465456d707479000c00144f746865720400c9020144436f773c277374617469632c207374723e000d0000c5020c2065766d5f636f7265186f70636f6465184f70636f64650000040008010875380000c902040c436f7704045401cd02000400cd02000000cd020000050200d1020c2065766d5f636f7265146572726f72284578697452657665727400010420526576657274656400000000d5020c2065766d5f636f7265146572726f722445786974466174616c000110304e6f74537570706f7274656400000048556e68616e646c6564496e746572727570740001004043616c6c4572726f724173466174616c0400c1020124457869744572726f72000200144f746865720400c9020144436f773c277374617469632c207374723e00030000d9020c4c6d6f64756c655f65766d5f6163636f756e7473186d6f64756c65144576656e7404045400010430436c61696d4163636f756e740801286163636f756e745f6964000130543a3a4163636f756e74496400012c65766d5f61646472657373a4012845766d4164647265737300000000dd020c606e75747366696e616e63655f737461626c655f61737365741870616c6c6574144576656e7404045400013028437265617465506f6f6c10011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001046118015c543a3a41744c656173743634426974556e7369676e656400011c737761705f6964000130543a3a4163636f756e74496400012470616c6c65745f6964000130543a3a4163636f756e744964000000184d696e7465642401186d696e746572000130543a3a4163636f756e74496400011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001046118015c543a3a41744c656173743634426974556e7369676e6564000134696e7075745f616d6f756e74734902013c5665633c543a3a42616c616e63653e0001446d696e5f6f75747075745f616d6f756e74180128543a3a42616c616e636500012062616c616e6365734902013c5665633c543a3a42616c616e63653e000130746f74616c5f737570706c79180128543a3a42616c616e63650001286665655f616d6f756e74180128543a3a42616c616e63650001346f75747075745f616d6f756e74180128543a3a42616c616e636500010030546f6b656e5377617070656428011c73776170706572000130543a3a4163636f756e74496400011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001046118015c543a3a41744c656173743634426974556e7369676e656400012c696e7075745f6173736574cc0128543a3a417373657449640001306f75747075745f6173736574cc0128543a3a41737365744964000130696e7075745f616d6f756e74180128543a3a42616c616e63650001446d696e5f6f75747075745f616d6f756e74180128543a3a42616c616e636500012062616c616e6365734902013c5665633c543a3a42616c616e63653e000130746f74616c5f737570706c79180128543a3a42616c616e63650001346f75747075745f616d6f756e74180128543a3a42616c616e63650002004852656465656d656450726f706f7274696f6e24012072656465656d6572000130543a3a4163636f756e74496400011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001046118015c543a3a41744c656173743634426974556e7369676e6564000130696e7075745f616d6f756e74180128543a3a42616c616e63650001486d696e5f6f75747075745f616d6f756e74734902013c5665633c543a3a42616c616e63653e00012062616c616e6365734902013c5665633c543a3a42616c616e63653e000130746f74616c5f737570706c79180128543a3a42616c616e63650001286665655f616d6f756e74180128543a3a42616c616e63650001386f75747075745f616d6f756e74734902013c5665633c543a3a42616c616e63653e0003003852656465656d656453696e676c6528012072656465656d6572000130543a3a4163636f756e74496400011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001046118015c543a3a41744c656173743634426974556e7369676e6564000130696e7075745f616d6f756e74180128543a3a42616c616e63650001306f75747075745f6173736574cc0128543a3a417373657449640001446d696e5f6f75747075745f616d6f756e74180128543a3a42616c616e636500012062616c616e6365734902013c5665633c543a3a42616c616e63653e000130746f74616c5f737570706c79180128543a3a42616c616e63650001286665655f616d6f756e74180128543a3a42616c616e63650001346f75747075745f616d6f756e74180128543a3a42616c616e63650004003452656465656d65644d756c746924012072656465656d6572000130543a3a4163636f756e74496400011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001046118015c543a3a41744c656173743634426974556e7369676e65640001386f75747075745f616d6f756e74734902013c5665633c543a3a42616c616e63653e0001406d61785f696e7075745f616d6f756e74180128543a3a42616c616e636500012062616c616e6365734902013c5665633c543a3a42616c616e63653e000130746f74616c5f737570706c79180128543a3a42616c616e63650001286665655f616d6f756e74180128543a3a42616c616e6365000130696e7075745f616d6f756e74180128543a3a42616c616e63650005003842616c616e6365557064617465640c011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001306f6c645f62616c616e6365734902013c5665633c543a3a42616c616e63653e0001306e65775f62616c616e6365734902013c5665633c543a3a42616c616e63653e000600385969656c64436f6c6c656374656418011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001046118015c543a3a41744c656173743634426974556e7369676e65640001406f6c645f746f74616c5f737570706c79180128543a3a42616c616e63650001406e65775f746f74616c5f737570706c79180128543a3a42616c616e636500010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500070030466565436f6c6c656374656420011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001046118015c543a3a41744c656173743634426974556e7369676e65640001306f6c645f62616c616e6365734902013c5665633c543a3a42616c616e63653e0001306e65775f62616c616e6365734902013c5665633c543a3a42616c616e63653e0001406f6c645f746f74616c5f737570706c79180128543a3a42616c616e63650001406e65775f746f74616c5f737570706c79180128543a3a42616c616e636500010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500080024414d6f6469666965640c011c706f6f6c5f6964100144537461626c654173736574506f6f6c496400011476616c756518015c543a3a41744c656173743634426974556e7369676e656400011074696d65100138543a3a426c6f636b4e756d6265720009002c4665654d6f64696669656410011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001206d696e745f66656518015c543a3a41744c656173743634426974556e7369676e6564000120737761705f66656518015c543a3a41744c656173743634426974556e7369676e656400012872656465656d5f66656518015c543a3a41744c656173743634426974556e7369676e6564000a0044526563697069656e744d6f6469666965640c011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001346665655f726563697069656e74000130543a3a4163636f756e74496400013c7969656c645f726563697069656e74000130543a3a4163636f756e744964000b0000e1020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f7265640000006456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d6265720001006c56616c69646174696f6e46756e6374696f6e4469736361726465640002004455706772616465417574686f72697a6564040124636f64655f686173682c011c543a3a4861736800030060446f776e776172644d657373616765735265636569766564040114636f756e7410010c75333200040064446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564200118576569676874000120646d715f686561642c014472656c61795f636861696e3a3a4861736800050000e5020c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c748001384469737061746368526573756c74000000284b65794368616e6765640401286f6c645f7375646f6572f10101504f7074696f6e3c543a3a4163636f756e7449643e000100285375646f4173446f6e6504012c7375646f5f726573756c748001384469737061746368526573756c7400020000e90208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000ed020000027800f10208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e3501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65cd02016473705f72756e74696d653a3a52756e74696d65537472696e670000f5020c306672616d655f73797374656d1870616c6c65741043616c6c0404540001242866696c6c5f626c6f636b040114726174696ff902011c50657262696c6c0000001872656d61726b04011872656d61726b30011c5665633c75383e000100387365745f686561705f7061676573040114706167657328010c753634000200207365745f636f6465040110636f646530011c5665633c75383e0003005c7365745f636f64655f776974686f75745f636865636b73040110636f646530011c5665633c75383e0004002c7365745f73746f726167650401146974656d73fd0201345665633c4b657956616c75653e000500306b696c6c5f73746f726167650401106b657973050301205665633c4b65793e0006002c6b696c6c5f70726566697808011870726566697830010c4b657900011c7375626b65797310010c7533320007004472656d61726b5f776974685f6576656e7404011872656d61726b30011c5665633c75383e00080000f9020c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000fd020000020103000103000004083030000503000002300009030c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c6173730d0301845065724469737061746368436c6173733c57656967687473506572436c6173733e00000d030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454011103000c01186e6f726d616c110301045400012c6f7065726174696f6e616c11030104540001246d616e6461746f72791103010454000011030c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963150301384f7074696f6e3c5765696768743e0001246d61785f746f74616c150301384f7074696f6e3c5765696768743e0001207265736572766564150301384f7074696f6e3c5765696768743e0000150304184f7074696f6e04045401200108104e6f6e6500000010536f6d65040020000001000019030c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61781d0301545065724469737061746368436c6173733c7533323e00001d030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400002103082873705f776569676874733c52756e74696d65446257656967687400000801107265616428010c753634000114777269746528010c75363400002503082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65cd02013452756e74696d65537472696e67000124696d706c5f6e616d65cd02013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069732903011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800002903040c436f77040454012d030004002d030000002d03000002310300310300000408d8100035030c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d65000000685370656356657273696f6e4e65656473546f496e637265617365000100744661696c6564546f4578747261637452756e74696d6556657273696f6e0002004c4e6f6e44656661756c74436f6d706f736974650003003c4e6f6e5a65726f526566436f756e740004003043616c6c46696c74657265640005000039030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77240124543a3a4d6f6d656e74000000003d03101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e6465645665630804540141030453000004009d0501185665633c543e0000410304184f7074696f6e0404540145030108104e6f6e6500000010536f6d650400450300000100004503084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c0149032c426c6f636b4e756d62657201103450616c6c6574734f726967696e01c901244163636f756e7449640100001401206d617962655f69647c01304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c4903011043616c6c0001386d617962655f706572696f646963550301944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696ec901013450616c6c6574734f726967696e0000490310346672616d655f737570706f72741874726169747324707265696d616765731c426f756e646564040454014d03010c184c6567616379040110686173682c01104861736800000018496e6c696e65040099050134426f756e646564496e6c696e65000100184c6f6f6b7570080110686173682c01104861736800010c6c656e10010c753332000200004d0308346163616c615f72756e74696d652c52756e74696d6543616c6c0001ec1853797374656d0400f50201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400390301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e000100245363686564756c65720400510301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e0002001c5574696c6974790400590301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e000300204d756c74697369670400610301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e0004001450726f78790400690301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e000500405472616e73616374696f6e50617573650400750301d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73616374696f6e50617573652c2052756e74696d653e0006003449646c655363686564756c65720400790301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c49646c655363686564756c65722c2052756e74696d653e00070020507265696d61676504007d0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e0008002042616c616e6365730400810301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a002843757272656e636965730400850301bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43757272656e636965732c2052756e74696d653e000c001c56657374696e670400890301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00485472616e73616374696f6e5061796d656e740400910301dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73616374696f6e5061796d656e742c2052756e74696d653e000e002054726561737572790400b90301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00140020426f756e746965730400bd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e00150010546970730400c10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546970732c2052756e74696d653e00160028417574686f72736869700400c50301bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f72736869702c2052756e74696d653e00280044436f6c6c61746f7253656c656374696f6e0400d50301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0029001c53657373696f6e0400d90301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e002a003853657373696f6e4d616e616765720400e90301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e4d616e616765722c2052756e74696d653e002d002458636d7051756575650400ed0301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e0032002c506f6c6b61646f7458636d0400f10301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e00330020446d7051756575650400590401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446d7051756575652c2052756e74696d653e0035001c58546f6b656e7304005d0401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58546f6b656e732c2052756e74696d653e0036001c4f726d6c58636d0400650401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f726d6c58636d2c2052756e74696d653e00380024417574686f726974790400690401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f726974792c2052756e74696d653e003c003847656e6572616c436f756e63696c04007d0401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c47656e6572616c436f756e63696c2c2052756e74696d653e003d006047656e6572616c436f756e63696c4d656d626572736869700400810401f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c47656e6572616c436f756e63696c4d656d626572736869702c2052756e74696d653e003e004046696e616e6369616c436f756e63696c0400850401d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696e616e6369616c436f756e63696c2c2052756e74696d653e003f006846696e616e6369616c436f756e63696c4d656d626572736869700400890401fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696e616e6369616c436f756e63696c4d656d626572736869702c2052756e74696d653e0040002c486f6d61436f756e63696c04008d0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c486f6d61436f756e63696c2c2052756e74696d653e00410054486f6d61436f756e63696c4d656d626572736869700400910401e90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c486f6d61436f756e63696c4d656d626572736869702c2052756e74696d653e00420048546563686e6963616c436f6d6d69747465650400950401dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e00430070546563686e6963616c436f6d6d69747465654d656d626572736869700400990401050273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465654d656d626572736869702c2052756e74696d653e0044002444656d6f637261637904009d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e0045002c4163616c614f7261636c650400a50401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4163616c614f7261636c652c2052756e74696d653e0046005c4f70657261746f724d656d626572736869704163616c610400a90401f10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f70657261746f724d656d626572736869704163616c612c2052756e74696d653e0047001c41756374696f6e0400ad0401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41756374696f6e2c2052756e74696d653e0050001c526577617264730400b10401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e005100185072696365730400b50401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5072696365732c2052756e74696d653e005a000c4465780400b90401a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4465782c2052756e74696d653e005b00244465784f7261636c650400bd0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4465784f7261636c652c2052756e74696d653e005c0034416767726567617465644465780400c10401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c416767726567617465644465782c2052756e74696d653e005d003841756374696f6e4d616e616765720400d50401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41756374696f6e4d616e616765722c2052756e74696d653e006400144c6f616e730400d90401a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6f616e732c2052756e74696d653e00650018486f6e7a6f6e0400dd0401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c486f6e7a6f6e2c2052756e74696d653e0066002c43647054726561737572790400e10401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43647054726561737572792c2052756e74696d653e00670024436470456e67696e650400e90401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436470456e67696e652c2052756e74696d653e00680044456d657267656e637953687574646f776e0400f50401d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456d657267656e637953687574646f776e2c2052756e74696d653e00690010486f6d610400f90401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c486f6d612c2052756e74696d653e0074003058636d496e7465726661636504000d0501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d496e746572666163652c2052756e74696d653e00750028496e63656e746976657304001d0501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e63656e74697665732c2052756e74696d653e0078000c4e46540400310501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e46542c2052756e74696d653e00790034417373657452656769737472790400450501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417373657452656769737472792c2052756e74696d653e007a000c45564d0400490501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c45564d2c2052756e74696d653e0082002c45766d4163636f756e74730400590501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c45766d4163636f756e74732c2052756e74696d653e0084002c537461626c65417373657404005d0501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c537461626c6541737365742c2052756e74696d653e00c8003c50617261636861696e53797374656d0400610501d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e001e00105375646f0400950501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00ff000051030c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963550301a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000001863616e63656c0801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c753332000100387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963550301a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0002003063616e63656c5f6e616d656404010869640401205461736b4e616d65000300387363686564756c655f61667465721001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963550301a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000400507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963550301a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00050000550304184f7074696f6e04045401780108104e6f6e6500000010536f6d65040078000001000059030c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011414626174636804011463616c6c735d03017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000003461735f64657269766174697665080114696e6465789c010c75313600011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001002462617463685f616c6c04011463616c6c735d03017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0002002c64697370617463685f617308012461735f6f726967696ec9010154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003002c666f7263655f626174636804011463616c6c735d03017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000400005d030000024d030061030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573050101445665633c543a3a4163636f756e7449643e00011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000002061735f6d756c74691401247468726573686f6c649c010c7531360001446f746865725f7369676e61746f72696573050101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74650301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687420011857656967687400010040617070726f76655f61735f6d756c74691401247468726573686f6c649c010c7531360001446f746865725f7369676e61746f72696573050101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74650301844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742001185765696768740002003c63616e63656c5f61735f6d756c74691001247468726573686f6c649c010c7531360001446f746865725f7369676e61746f72696573050101445665633c543a3a4163636f756e7449643e00012474696d65706f696e7490016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d00030000650304184f7074696f6e04045401900108104e6f6e6500000010536f6d65040090000001000069030c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c6d0301504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065710301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000000246164645f70726f78790c012064656c65676174656d0301504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720001003072656d6f76655f70726f78790c012064656c65676174656d0301504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720002003872656d6f76655f70726f786965730003002c6372656174655f707572650c012870726f78795f74797065980130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d626572000114696e6465789c010c753136000400246b696c6c5f7075726514011c737061776e65726d0301504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065980130543a3a50726f787954797065000114696e6465789c010c75313600011868656967687435010138543a3a426c6f636b4e756d6265720001246578745f696e6465783501010c75333200050020616e6e6f756e63650801107265616c6d0301504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f686173682c013443616c6c486173684f663c543e0006004c72656d6f76655f616e6e6f756e63656d656e740801107265616c6d0301504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f686173682c013443616c6c486173684f663c543e0007004c72656a6563745f616e6e6f756e63656d656e7408012064656c65676174656d0301504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f686173682c013443616c6c486173684f663c543e0008003c70726f78795f616e6e6f756e63656410012064656c65676174656d0301504163636f756e7449644c6f6f6b75704f663c543e0001107265616c6d0301504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065710301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000900006d030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780110011408496404000001244163636f756e74496400000014496e6465780400350101304163636f756e74496e6465780001000c526177040030011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400a801205b75383b2032305d00040000710304184f7074696f6e04045401980108104e6f6e6500000010536f6d65040098000001000075030c606d6f64756c655f7472616e73616374696f6e5f7061757365186d6f64756c651043616c6c0404540001104470617573655f7472616e73616374696f6e08012c70616c6c65745f6e616d6530011c5665633c75383e00013466756e6374696f6e5f6e616d6530011c5665633c75383e0000004c756e70617573655f7472616e73616374696f6e08012c70616c6c65745f6e616d6530011c5665633c75383e00013466756e6374696f6e5f6e616d6530011c5665633c75383e0001005070617573655f65766d5f707265636f6d70696c6504011c61646472657373a401104831363000020058756e70617573655f65766d5f707265636f6d70696c6504011c61646472657373a40110483136300003000079030c546d6f64756c655f69646c655f7363686564756c6572186d6f64756c651043616c6c040454000104347363686564756c655f7461736b0401107461736bb0011c543a3a5461736b000000007d030c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000110346e6f74655f707265696d616765040114627974657330011c5665633c75383e0000003c756e6e6f74655f707265696d616765040110686173682c011c543a3a4861736800010040726571756573745f707265696d616765040110686173682c011c543a3a4861736800020048756e726571756573745f707265696d616765040110686173682c011c543a3a486173680003000081030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573746d0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650000002c7365745f62616c616e63650c010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e63650001306e65775f7265736572766564e80128543a3a42616c616e636500010038666f7263655f7472616e736665720c0118736f757263656d0301504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002004c7472616e736665725f6b6565705f616c697665080110646573746d0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e6365000300307472616e736665725f616c6c080110646573746d0301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665f9010110626f6f6c0004003c666f7263655f756e7265736572766508010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e63650005000085030c446d6f64756c655f63757272656e63696573186d6f64756c651043616c6c040454000118207472616e736665720c0110646573746d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964cc012843757272656e63794964000118616d6f756e74e8013042616c616e63654f663c543e000000607472616e736665725f6e61746976655f63757272656e6379080110646573746d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e74e8013042616c616e63654f663c543e000100387570646174655f62616c616e63650c010c77686f6d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964cc012843757272656e63794964000118616d6f756e745902012c416d6f756e744f663c543e0002002873776565705f6475737408012c63757272656e63795f6964cc012843757272656e637949640001206163636f756e7473050101445665633c543a3a4163636f756e7449643e00030038666f7263655f7365745f6c6f636b10010c77686f6d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964cc012843757272656e63794964000118616d6f756e74e8013042616c616e63654f663c543e00011c6c6f636b5f6964d801384c6f636b4964656e74696669657200040044666f7263655f72656d6f76655f6c6f636b0c010c77686f6d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964cc012843757272656e6379496400011c6c6f636b5f6964d801384c6f636b4964656e7469666965720005000089030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d0000003c7665737465645f7472616e73666572080110646573746d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e000100607570646174655f76657374696e675f7363686564756c657308010c77686f6d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65738d0301645665633c56657374696e675363686564756c654f663c543e3e00020024636c61696d5f666f72040110646573746d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000300008d03000002e40091030c686d6f64756c655f7472616e73616374696f6e5f7061796d656e74186d6f64756c651043616c6c04045400011c747365745f616c7465726e61746976655f6665655f737761705f706174680401346665655f737761705f706174689503015c4f7074696f6e3c5665633c43757272656e637949643e3e00000058656e61626c655f6368617267655f6665655f706f6f6c0c012c63757272656e63795f6964cc012843757272656e63794964000124706f6f6c5f73697a6518011c42616c616e6365000138737761705f7468726573686f6c6418011c42616c616e63650001005c64697361626c655f6368617267655f6665655f706f6f6c04012c63757272656e63795f6964cc012843757272656e6379496400020034776974685f6665655f706174680801346665655f737761705f706174684502013c5665633c43757272656e637949643e00011063616c6c4d030138426f783c43616c6c4f663c543e3e00030044776974685f6665655f63757272656e637908012c63757272656e63795f6964cc012843757272656e6379496400011063616c6c4d030138426f783c43616c6c4f663c543e3e00040040776974685f6665655f706169645f62790c011063616c6c4d030138426f783c43616c6c4f663c543e3e00012870617965725f61646472000130543a3a4163636f756e74496400012470617965725f736967990301384d756c74695369676e617475726500050060776974685f6665655f616767726567617465645f7061746808014c6665655f616767726567617465645f70617468b103018c5665633c4167677265676174656453776170506174683c43757272656e637949643e3e00011063616c6c4d030138426f783c43616c6c4f663c543e3e00060000950304184f7074696f6e0404540145020108104e6f6e6500000010536f6d650400450200000100009903082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904009d030148656432353531393a3a5369676e61747572650000001c537232353531390400a5030148737232353531393a3a5369676e61747572650001001445636473610400a903014065636473613a3a5369676e6174757265000200009d030c1c73705f636f72651c65643235353139245369676e617475726500000400a10301205b75383b2036345d0000a103000003400000000800a5030c1c73705f636f72651c73723235353139245369676e617475726500000400a10301205b75383b2036345d0000a9030c1c73705f636f7265146563647361245369676e617475726500000400ad0301205b75383b2036355d0000ad03000003410000000800b103000002b50300b5030c386d6f64756c655f737570706f72740c64657848416767726567617465645377617050617468042843757272656e6379496401cc01080c44657804004502013c5665633c43757272656e637949643e0000001454616967610c00100144537461626c654173736574506f6f6c49640000100138506f6f6c546f6b656e496e6465780000100138506f6f6c546f6b656e496e64657800010000b9030c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001143470726f706f73655f7370656e6408011476616c7565e8013c42616c616e63654f663c542c20493e00012c62656e65666963696172796d0301504163636f756e7449644c6f6f6b75704f663c543e0000003c72656a6563745f70726f706f73616c04012c70726f706f73616c5f69643501013450726f706f73616c496e64657800010040617070726f76655f70726f706f73616c04012c70726f706f73616c5f69643501013450726f706f73616c496e646578000200147370656e64080118616d6f756e74e8013c42616c616e63654f663c542c20493e00012c62656e65666963696172796d0301504163636f756e7449644c6f6f6b75704f663c543e0003003c72656d6f76655f617070726f76616c04012c70726f706f73616c5f69643501013450726f706f73616c496e64657800040000bd030c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c0804540004490001243870726f706f73655f626f756e747908011476616c7565e8013c42616c616e63654f663c542c20493e00012c6465736372697074696f6e30011c5665633c75383e00000038617070726f76655f626f756e7479040124626f756e74795f69643501012c426f756e7479496e6465780001003c70726f706f73655f63757261746f720c0124626f756e74795f69643501012c426f756e7479496e64657800011c63757261746f726d0301504163636f756e7449644c6f6f6b75704f663c543e00010c666565e8013c42616c616e63654f663c542c20493e00020040756e61737369676e5f63757261746f72040124626f756e74795f69643501012c426f756e7479496e646578000300386163636570745f63757261746f72040124626f756e74795f69643501012c426f756e7479496e6465780004003061776172645f626f756e7479080124626f756e74795f69643501012c426f756e7479496e64657800012c62656e65666963696172796d0301504163636f756e7449644c6f6f6b75704f663c543e00050030636c61696d5f626f756e7479040124626f756e74795f69643501012c426f756e7479496e64657800060030636c6f73655f626f756e7479040124626f756e74795f69643501012c426f756e7479496e64657800070050657874656e645f626f756e74795f657870697279080124626f756e74795f69643501012c426f756e7479496e64657800011872656d61726b30011c5665633c75383e00080000c1030c2c70616c6c65745f746970731870616c6c65741043616c6c080454000449000118387265706f72745f617765736f6d65080118726561736f6e30011c5665633c75383e00010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0000002c726574726163745f746970040110686173682c011c543a3a486173680001001c7469705f6e65770c0118726561736f6e30011c5665633c75383e00010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0001247469705f76616c7565e8013c42616c616e63654f663c542c20493e0002000c746970080110686173682c011c543a3a486173680001247469705f76616c7565e8013c42616c616e63654f663c542c20493e00030024636c6f73655f746970040110686173682c011c543a3a4861736800040024736c6173685f746970040110686173682c011c543a3a4861736800050000c5030c4470616c6c65745f617574686f72736869701870616c6c65741043616c6c040454000104287365745f756e636c65730401286e65775f756e636c6573c90301385665633c543a3a4865616465723e00000000c903000002cd0300cd03102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d6265720110104861736801d1030014012c706172656e745f686173682c0130486173683a3a4f75747075740001186e756d626572350101184e756d62657200012873746174655f726f6f742c0130486173683a3a4f757470757400013c65787472696e736963735f726f6f742c0130486173683a3a4f75747075740001186469676573743401184469676573740000d1030c2873705f72756e74696d65187472616974732c426c616b6554776f32353600000000d5030c646d6f64756c655f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c04045400011c447365745f696e76756c6e657261626c657304010c6e6577050101445665633c543a3a4163636f756e7449643e000000587365745f646573697265645f63616e6469646174657304010c6d61783501010c753332000100487365745f63616e6469646163795f626f6e64040110626f6e64e8013042616c616e63654f663c543e0002005472656769737465725f61735f63616e6469646174650003004872656769737465725f63616e6469646174650401346e65775f63616e646964617465000130543a3a4163636f756e744964000400306c656176655f696e74656e740005003477697468647261775f626f6e6400060000d9030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b657973dd03011c543a3a4b65797300011470726f6f6630011c5665633c75383e0000002870757267655f6b65797300010000dd0308346163616c615f72756e74696d652c53657373696f6e4b657973000004011061757261e10301c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630000e103104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c696300000400e503013c737232353531393a3a5075626c69630000e5030c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000e9030c586d6f64756c655f73657373696f6e5f6d616e61676572186d6f64756c651043616c6c040454000104647363686564756c655f73657373696f6e5f6475726174696f6e08013473746172745f73657373696f6e3501013053657373696f6e496e6465780001206475726174696f6e35010138543a3a426c6f636b4e756d62657200000000ed030c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c04045400012448736572766963655f6f766572776569676874080114696e64657828013c4f766572776569676874496e6465780001307765696768745f6c696d697428012458636d5765696768740000005473757370656e645f78636d5f657865637574696f6e00010050726573756d655f78636d5f657865637574696f6e000200607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c753332000300547570646174655f64726f705f7468726573686f6c6404010c6e657710010c7533320004005c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005005c7570646174655f7468726573686f6c645f77656967687404010c6e657728012458636d576569676874000600707570646174655f7765696768745f72657374726963745f646563617904010c6e657728012458636d576569676874000700847570646174655f78636d705f6d61785f696e646976696475616c5f77656967687404010c6e657728012458636d57656967687400080000f1030c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001281073656e6408011064657374ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00011c6d657373616765f5030154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00012c62656e6566696369617279ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00011861737365747399010164426f783c56657273696f6e65644d756c74694173736574733e0001386665655f61737365745f6974656d10010c7533320001005c726573657276655f7472616e736665725f61737365747310011064657374ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00012c62656e6566696369617279ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00011861737365747399010164426f783c56657273696f6e65644d756c74694173736574733e0001386665655f61737365745f6974656d10010c7533320002001c6578656375746508011c6d657373616765210401c0426f783c56657273696f6e656458636d3c3c5420617320537973436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f77656967687428012458636d57656967687400030044666f7263655f78636d5f76657273696f6e0801206c6f636174696f6e29010148426f783c4d756c74694c6f636174696f6e3e00012c78636d5f76657273696f6e10012858636d56657273696f6e00040064666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e550401484f7074696f6e3c58636d56657273696f6e3e00050078666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ead01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00060080666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ead01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e0007007c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00012c62656e6566696369617279ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00011861737365747399010164426f783c56657273696f6e65644d756c74694173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69749101012c5765696768744c696d69740008005c6c696d697465645f74656c65706f72745f61737365747314011064657374ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00012c62656e6566696369617279ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00011861737365747399010164426f783c56657273696f6e65644d756c74694173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69749101012c5765696768744c696d697400090000f503080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c0856300400f903015076303a3a58636d3c52756e74696d6543616c6c3e00000008563104000d04015076313a3a58636d3c52756e74696d6543616c6c3e00010008563204004901015076323a3a58636d3c52756e74696d6543616c6c3e00020000f9030c0c78636d0876300c58636d042c52756e74696d6543616c6c00012c34576974686472617741737365740801186173736574739d01013c5665633c4d756c746941737365743e00011c65666665637473fd03015c5665633c4f726465723c52756e74696d6543616c6c3e3e0000004c5265736572766541737365744465706f7369740801186173736574739d01013c5665633c4d756c746941737365743e00011c65666665637473fd03015c5665633c4f726465723c52756e74696d6543616c6c3e3e0001003454656c65706f727441737365740801186173736574739d01013c5665633c4d756c746941737365743e00011c65666665637473fd03015c5665633c4f726465723c52756e74696d6543616c6c3e3e000200345175657279526573706f6e736508012071756572795f696424010c753634000120726573706f6e736509040120526573706f6e7365000300345472616e7366657241737365740801186173736574739d01013c5665633c4d756c746941737365743e00011064657374a50101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574739d01013c5665633c4d756c746941737365743e00011064657374a50101344d756c74694c6f636174696f6e00011c65666665637473fd0301385665633c4f726465723c28293e3e000500205472616e736163740c012c6f726967696e5f747970657d0101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c81010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465723501010c7533320001406d61785f6d6573736167655f73697a653501010c7533320001306d61785f63617061636974793501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e743501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f723501010c75333200011873656e6465723501010c753332000124726563697069656e743501010c7533320009002c52656c6179656446726f6d08010c77686fa50101344d756c74694c6f636174696f6e00011c6d657373616765f903018c616c6c6f633a3a626f7865643a3a426f783c58636d3c52756e74696d6543616c6c3e3e000a0000fd030000020104000104100c78636d087630146f72646572144f72646572042c52756e74696d6543616c6c000120104e756c6c000000304465706f73697441737365740801186173736574739d01013c5665633c4d756c746941737365743e00011064657374a50101344d756c74694c6f636174696f6e0001004c4465706f7369745265736572766541737365740c01186173736574739d01013c5665633c4d756c746941737365743e00011064657374a50101344d756c74694c6f636174696f6e00011c65666665637473fd0301385665633c4f726465723c28293e3e0002003445786368616e67654173736574080110676976659d01013c5665633c4d756c746941737365743e00011c726563656976659d01013c5665633c4d756c746941737365743e0003005c496e6974696174655265736572766557697468647261770c01186173736574739d01013c5665633c4d756c746941737365743e00011c72657365727665a50101344d756c74694c6f636174696f6e00011c65666665637473fd0301385665633c4f726465723c28293e3e00040040496e69746961746554656c65706f72740c01186173736574739d01013c5665633c4d756c746941737365743e00011064657374a50101344d756c74694c6f636174696f6e00011c65666665637473fd0301385665633c4f726465723c28293e3e000500305175657279486f6c64696e670c012071756572795f696424010c75363400011064657374a50101344d756c74694c6f636174696f6e0001186173736574739d01013c5665633c4d756c746941737365743e00060030427579457865637574696f6e14011066656573a10101284d756c7469417373657400011877656967687428010c7536340001106465627428010c75363400013468616c745f6f6e5f6572726f72f9010110626f6f6c00010c78636d050401545665633c58636d3c52756e74696d6543616c6c3e3e000700000504000002f9030009040c0c78636d08763020526573706f6e73650001041841737365747304009d01013c5665633c4d756c746941737365743e000000000d040c0c78636d0876310c58636d042c52756e74696d6543616c6c00013434576974686472617741737365740801186173736574735501012c4d756c746941737365747300011c656666656374731104015c5665633c4f726465723c52756e74696d6543616c6c3e3e000000545265736572766541737365744465706f73697465640801186173736574735501012c4d756c746941737365747300011c656666656374731104015c5665633c4f726465723c52756e74696d6543616c6c3e3e000100585265636569766554656c65706f7274656441737365740801186173736574735501012c4d756c746941737365747300011c656666656374731104015c5665633c4f726465723c52756e74696d6543616c6c3e3e000200345175657279526573706f6e736508012071756572795f696424010c753634000120726573706f6e73651d040120526573706f6e7365000300345472616e7366657241737365740801186173736574735501012c4d756c746941737365747300012c62656e6566696369617279290101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574735501012c4d756c746941737365747300011064657374290101344d756c74694c6f636174696f6e00011c65666665637473110401385665633c4f726465723c28293e3e000500205472616e736163740c012c6f726967696e5f747970657d0101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c81010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465723501010c7533320001406d61785f6d6573736167655f73697a653501010c7533320001306d61785f63617061636974793501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e743501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f723501010c75333200011873656e6465723501010c753332000124726563697069656e743501010c7533320009002c52656c6179656446726f6d08010c77686f2d010154496e746572696f724d756c74694c6f636174696f6e00011c6d6573736167650d04018c616c6c6f633a3a626f7865643a3a426f783c58636d3c52756e74696d6543616c6c3e3e000a004053756273637269626556657273696f6e08012071756572795f696424010c75363400014c6d61785f726573706f6e73655f77656967687424010c753634000b0048556e73756273637269626556657273696f6e000c000011040000021504001504100c78636d087631146f72646572144f72646572042c52756e74696d6543616c6c000120104e6f6f70000000304465706f73697441737365740c0118617373657473850101404d756c7469417373657446696c7465720001286d61785f61737365747310010c75333200012c62656e6566696369617279290101344d756c74694c6f636174696f6e0001004c4465706f736974526573657276654173736574100118617373657473850101404d756c7469417373657446696c7465720001286d61785f61737365747310010c75333200011064657374290101344d756c74694c6f636174696f6e00011c65666665637473110401385665633c4f726465723c28293e3e0002003445786368616e6765417373657408011067697665850101404d756c7469417373657446696c74657200011c726563656976655501012c4d756c74694173736574730003005c496e6974696174655265736572766557697468647261770c0118617373657473850101404d756c7469417373657446696c74657200011c72657365727665290101344d756c74694c6f636174696f6e00011c65666665637473110401385665633c4f726465723c28293e3e00040040496e69746961746554656c65706f72740c0118617373657473850101404d756c7469417373657446696c74657200011064657374290101344d756c74694c6f636174696f6e00011c65666665637473110401385665633c4f726465723c28293e3e000500305175657279486f6c64696e670c012071756572795f696424010c75363400011064657374290101344d756c74694c6f636174696f6e000118617373657473850101404d756c7469417373657446696c74657200060030427579457865637574696f6e140110666565735d0101284d756c7469417373657400011877656967687428010c7536340001106465627428010c75363400013468616c745f6f6e5f6572726f72f9010110626f6f6c000130696e737472756374696f6e73190401545665633c58636d3c52756e74696d6543616c6c3e3e0007000019040000020d04001d040c0c78636d08763120526573706f6e73650001081841737365747304005501012c4d756c74694173736574730000001c56657273696f6e040010013873757065723a3a56657273696f6e000100002104080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563004002504015076303a3a58636d3c52756e74696d6543616c6c3e00000008563104003904015076313a3a58636d3c52756e74696d6543616c6c3e00010008563204004904015076323a3a58636d3c52756e74696d6543616c6c3e0002000025040c0c78636d0876300c58636d042c52756e74696d6543616c6c00012c34576974686472617741737365740801186173736574739d01013c5665633c4d756c746941737365743e00011c656666656374732904015c5665633c4f726465723c52756e74696d6543616c6c3e3e0000004c5265736572766541737365744465706f7369740801186173736574739d01013c5665633c4d756c746941737365743e00011c656666656374732904015c5665633c4f726465723c52756e74696d6543616c6c3e3e0001003454656c65706f727441737365740801186173736574739d01013c5665633c4d756c746941737365743e00011c656666656374732904015c5665633c4f726465723c52756e74696d6543616c6c3e3e000200345175657279526573706f6e736508012071756572795f696424010c753634000120726573706f6e736509040120526573706f6e7365000300345472616e7366657241737365740801186173736574739d01013c5665633c4d756c746941737365743e00011064657374a50101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574739d01013c5665633c4d756c746941737365743e00011064657374a50101344d756c74694c6f636174696f6e00011c65666665637473fd0301385665633c4f726465723c28293e3e000500205472616e736163740c012c6f726967696e5f747970657d0101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c35040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465723501010c7533320001406d61785f6d6573736167655f73697a653501010c7533320001306d61785f63617061636974793501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e743501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f723501010c75333200011873656e6465723501010c753332000124726563697069656e743501010c7533320009002c52656c6179656446726f6d08010c77686fa50101344d756c74694c6f636174696f6e00011c6d6573736167652504018c616c6c6f633a3a626f7865643a3a426f783c58636d3c52756e74696d6543616c6c3e3e000a000029040000022d04002d04100c78636d087630146f72646572144f72646572042c52756e74696d6543616c6c000120104e756c6c000000304465706f73697441737365740801186173736574739d01013c5665633c4d756c746941737365743e00011064657374a50101344d756c74694c6f636174696f6e0001004c4465706f7369745265736572766541737365740c01186173736574739d01013c5665633c4d756c746941737365743e00011064657374a50101344d756c74694c6f636174696f6e00011c65666665637473fd0301385665633c4f726465723c28293e3e0002003445786368616e67654173736574080110676976659d01013c5665633c4d756c746941737365743e00011c726563656976659d01013c5665633c4d756c746941737365743e0003005c496e6974696174655265736572766557697468647261770c01186173736574739d01013c5665633c4d756c746941737365743e00011c72657365727665a50101344d756c74694c6f636174696f6e00011c65666665637473fd0301385665633c4f726465723c28293e3e00040040496e69746961746554656c65706f72740c01186173736574739d01013c5665633c4d756c746941737365743e00011064657374a50101344d756c74694c6f636174696f6e00011c65666665637473fd0301385665633c4f726465723c28293e3e000500305175657279486f6c64696e670c012071756572795f696424010c75363400011064657374a50101344d756c74694c6f636174696f6e0001186173736574739d01013c5665633c4d756c746941737365743e00060030427579457865637574696f6e14011066656573a10101284d756c7469417373657400011877656967687428010c7536340001106465627428010c75363400013468616c745f6f6e5f6572726f72f9010110626f6f6c00010c78636d310401545665633c58636d3c52756e74696d6543616c6c3e3e00070000310400000225040035040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656430011c5665633c75383e000039040c0c78636d0876310c58636d042c52756e74696d6543616c6c00013434576974686472617741737365740801186173736574735501012c4d756c746941737365747300011c656666656374733d04015c5665633c4f726465723c52756e74696d6543616c6c3e3e000000545265736572766541737365744465706f73697465640801186173736574735501012c4d756c746941737365747300011c656666656374733d04015c5665633c4f726465723c52756e74696d6543616c6c3e3e000100585265636569766554656c65706f7274656441737365740801186173736574735501012c4d756c746941737365747300011c656666656374733d04015c5665633c4f726465723c52756e74696d6543616c6c3e3e000200345175657279526573706f6e736508012071756572795f696424010c753634000120726573706f6e73651d040120526573706f6e7365000300345472616e7366657241737365740801186173736574735501012c4d756c746941737365747300012c62656e6566696369617279290101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574735501012c4d756c746941737365747300011064657374290101344d756c74694c6f636174696f6e00011c65666665637473110401385665633c4f726465723c28293e3e000500205472616e736163740c012c6f726967696e5f747970657d0101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c35040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465723501010c7533320001406d61785f6d6573736167655f73697a653501010c7533320001306d61785f63617061636974793501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e743501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f723501010c75333200011873656e6465723501010c753332000124726563697069656e743501010c7533320009002c52656c6179656446726f6d08010c77686f2d010154496e746572696f724d756c74694c6f636174696f6e00011c6d6573736167653904018c616c6c6f633a3a626f7865643a3a426f783c58636d3c52756e74696d6543616c6c3e3e000a004053756273637269626556657273696f6e08012071756572795f696424010c75363400014c6d61785f726573706f6e73655f77656967687424010c753634000b0048556e73756273637269626556657273696f6e000c00003d040000024104004104100c78636d087631146f72646572144f72646572042c52756e74696d6543616c6c000120104e6f6f70000000304465706f73697441737365740c0118617373657473850101404d756c7469417373657446696c7465720001286d61785f61737365747310010c75333200012c62656e6566696369617279290101344d756c74694c6f636174696f6e0001004c4465706f736974526573657276654173736574100118617373657473850101404d756c7469417373657446696c7465720001286d61785f61737365747310010c75333200011064657374290101344d756c74694c6f636174696f6e00011c65666665637473110401385665633c4f726465723c28293e3e0002003445786368616e6765417373657408011067697665850101404d756c7469417373657446696c74657200011c726563656976655501012c4d756c74694173736574730003005c496e6974696174655265736572766557697468647261770c0118617373657473850101404d756c7469417373657446696c74657200011c72657365727665290101344d756c74694c6f636174696f6e00011c65666665637473110401385665633c4f726465723c28293e3e00040040496e69746961746554656c65706f72740c0118617373657473850101404d756c7469417373657446696c74657200011064657374290101344d756c74694c6f636174696f6e00011c65666665637473110401385665633c4f726465723c28293e3e000500305175657279486f6c64696e670c012071756572795f696424010c75363400011064657374290101344d756c74694c6f636174696f6e000118617373657473850101404d756c7469417373657446696c74657200060030427579457865637574696f6e140110666565735d0101284d756c7469417373657400011877656967687428010c7536340001106465627428010c75363400013468616c745f6f6e5f6572726f72f9010110626f6f6c000130696e737472756374696f6e73450401545665633c58636d3c52756e74696d6543616c6c3e3e00070000450400000239040049040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004004d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00004d0400000251040051040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404005501012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404005501012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404005501012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f696424011c51756572794964000120726573706f6e736571010120526573706f6e73650001286d61785f77656967687424010c753634000300345472616e7366657241737365740801186173736574735501012c4d756c746941737365747300012c62656e6566696369617279290101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574735501012c4d756c746941737365747300011064657374290101344d756c74694c6f636174696f6e00010c78636d4901011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f747970657d0101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424010c75363400011063616c6c35040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465723501010c7533320001406d61785f6d6573736167655f73697a653501010c7533320001306d61785f63617061636974793501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e743501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f723501010c75333200011873656e6465723501010c753332000124726563697069656e743501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04002d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f696424011c5175657279496400011064657374290101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f77656967687424010c753634000c00304465706f73697441737365740c0118617373657473850101404d756c7469417373657446696c7465720001286d61785f6173736574733501010c75333200012c62656e6566696369617279290101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473850101404d756c7469417373657446696c7465720001286d61785f6173736574733501010c75333200011064657374290101344d756c74694c6f636174696f6e00010c78636d4901011c58636d3c28293e000e003445786368616e6765417373657408011067697665850101404d756c7469417373657446696c74657200011c726563656976655501012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473850101404d756c7469417373657446696c74657200011c72657365727665290101344d756c74694c6f636174696f6e00010c78636d4901011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473850101404d756c7469417373657446696c74657200011064657374290101344d756c74694c6f636174696f6e00010c78636d4901011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f696424011c5175657279496400011064657374290101344d756c74694c6f636174696f6e000118617373657473850101404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f77656967687424010c75363400120030427579457865637574696f6e080110666565735d0101284d756c746941737365740001307765696768745f6c696d69749101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804004904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574735501012c4d756c74694173736574730001187469636b6574290101344d756c74694c6f636174696f6e0018001054726170040024010c7536340019004053756273637269626556657273696f6e08012071756572795f696424011c5175657279496400014c6d61785f726573706f6e73655f77656967687424010c753634001a0048556e73756273637269626556657273696f6e001b0000550404184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000059040c6063756d756c75735f70616c6c65745f646d705f71756575651870616c6c65741043616c6c04045400010448736572766963655f6f766572776569676874080114696e64657828013c4f766572776569676874496e6465780001307765696768745f6c696d697428012458636d576569676874000000005d040c306f726d6c5f78746f6b656e73186d6f64756c651043616c6c040454000118207472616e7366657210012c63757272656e63795f6964cc0134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e636500011064657374ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000144646573745f7765696768745f6c696d69749101012c5765696768744c696d69740000004c7472616e736665725f6d756c746961737365740c0114617373657461040160426f783c56657273696f6e65644d756c746941737365743e00011064657374ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000144646573745f7765696768745f6c696d69749101012c5765696768744c696d6974000100447472616e736665725f776974685f66656514012c63757272656e63795f6964cc0134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e636500010c666565180128543a3a42616c616e636500011064657374ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000144646573745f7765696768745f6c696d69749101012c5765696768744c696d6974000200707472616e736665725f6d756c746961737365745f776974685f666565100114617373657461040160426f783c56657273696f6e65644d756c746941737365743e00010c66656561040160426f783c56657273696f6e65644d756c746941737365743e00011064657374ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000144646573745f7765696768745f6c696d69749101012c5765696768744c696d6974000300607472616e736665725f6d756c746963757272656e6369657310012863757272656e63696573710201805665633c28543a3a43757272656e637949642c20543a3a42616c616e6365293e0001206665655f6974656d10010c75333200011064657374ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000144646573745f7765696768745f6c696d69749101012c5765696768744c696d6974000400507472616e736665725f6d756c746961737365747310011861737365747399010164426f783c56657273696f6e65644d756c74694173736574733e0001206665655f6974656d10010c75333200011064657374ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000144646573745f7765696768745f6c696d69749101012c5765696768744c696d6974000500006104080c78636d4c56657273696f6e65644d756c746941737365740001080856300400a101013876303a3a4d756c7469417373657400000008563104005d01013876313a3a4d756c746941737365740001000065040c206f726d6c5f78636d186d6f64756c651043616c6c0404540001044473656e645f61735f736f7665726569676e08011064657374ad01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00011c6d657373616765f5030154426f783c56657273696f6e656458636d3c28293e3e0000000069040c386f726d6c5f617574686f72697479186d6f64756c651043616c6c0404540001242c64697370617463685f617308012461735f6f726967696e6d040134543a3a41734f726967696e496400011063616c6c4d030138426f783c43616c6c4f663c543e3e000000447363686564756c655f64697370617463681001107768656e71040170446973706174636854696d653c543a3a426c6f636b4e756d6265723e0001207072696f726974790801205072696f7269747900014c776974685f64656c617965645f6f726967696ef9010110626f6f6c00011063616c6c4d030138426f783c43616c6c4f663c543e3e00010074666173745f747261636b5f7363686564756c65645f64697370617463680c0138696e697469616c5f6f726967696ec9010154426f783c543a3a50616c6c6574734f726967696e3e00011c7461736b5f69641001445363686564756c655461736b496e6465780001107768656e71040170446973706174636854696d653c543a3a426c6f636b4e756d6265723e0002006064656c61795f7363686564756c65645f64697370617463680c0138696e697469616c5f6f726967696ec9010154426f783c543a3a50616c6c6574734f726967696e3e00011c7461736b5f69641001445363686564756c655461736b496e6465780001406164646974696f6e616c5f64656c6179100138543a3a426c6f636b4e756d6265720003006463616e63656c5f7363686564756c65645f6469737061746368080138696e697469616c5f6f726967696ec9010154426f783c543a3a50616c6c6574734f726967696e3e00011c7461736b5f69641001445363686564756c655461736b496e64657800040038617574686f72697a655f63616c6c08011063616c6c4d030138426f783c43616c6c4f663c543e3e00011863616c6c6572f10101504f7074696f6e3c543a3a4163636f756e7449643e0005005872656d6f76655f617574686f72697a65645f63616c6c040110686173682c011c543a3a4861736800060040747269676765725f6f6c645f63616c6c080110686173682c011c543a3a4861736800014463616c6c5f7765696768745f626f756e64750401244f6c6457656967687400070030747269676765725f63616c6c080110686173682c011c543a3a4861736800014463616c6c5f7765696768745f626f756e64200118576569676874000800006d0408406163616c615f7072696d69746976657348417574686f72697479734f726967696e496400011410526f6f7400000020547265617375727900010038486f6e7a6f6e547265617375727900020030486f6d6154726561737572790003003c54726561737572795265736572766500040000710410346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d6265720001000075040000067904007904082873705f77656967687473244f6c645765696768740000040028010c75363400007d040c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c08045400044900011c2c7365745f6d656d626572730c012c6e65775f6d656d62657273050101445665633c543a3a4163636f756e7449643e0001147072696d65f10101504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e740000001c6578656375746508012070726f706f73616c4d03017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e643501010c7533320001001c70726f706f73650c01247468726573686f6c643501012c4d656d626572436f756e7400012070726f706f73616c4d03017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e643501010c75333200020010766f74650c012070726f706f73616c2c011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800011c617070726f7665f9010110626f6f6c00030040636c6f73655f6f6c645f77656967687410013470726f706f73616c5f686173682c011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64750401244f6c645765696768740001306c656e6774685f626f756e643501010c7533320004004c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f686173682c011c543a3a4861736800050014636c6f736510013470726f706f73616c5f686173682c011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642001185765696768740001306c656e6774685f626f756e643501010c7533320006000081040c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0000003472656d6f76655f6d656d62657204010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0001002c737761705f6d656d62657208011872656d6f76656d0301504163636f756e7449644c6f6f6b75704f663c543e00010c6164646d0301504163636f756e7449644c6f6f6b75704f663c543e0002003472657365745f6d656d6265727304011c6d656d62657273050101445665633c543a3a4163636f756e7449643e000300286368616e67655f6b657904010c6e65776d0301504163636f756e7449644c6f6f6b75704f663c543e000400247365745f7072696d6504010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0005002c636c6561725f7072696d650006000085040c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c08045400044900011c2c7365745f6d656d626572730c012c6e65775f6d656d62657273050101445665633c543a3a4163636f756e7449643e0001147072696d65f10101504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e740000001c6578656375746508012070726f706f73616c4d03017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e643501010c7533320001001c70726f706f73650c01247468726573686f6c643501012c4d656d626572436f756e7400012070726f706f73616c4d03017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e643501010c75333200020010766f74650c012070726f706f73616c2c011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800011c617070726f7665f9010110626f6f6c00030040636c6f73655f6f6c645f77656967687410013470726f706f73616c5f686173682c011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64750401244f6c645765696768740001306c656e6774685f626f756e643501010c7533320004004c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f686173682c011c543a3a4861736800050014636c6f736510013470726f706f73616c5f686173682c011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642001185765696768740001306c656e6774685f626f756e643501010c7533320006000089040c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0000003472656d6f76655f6d656d62657204010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0001002c737761705f6d656d62657208011872656d6f76656d0301504163636f756e7449644c6f6f6b75704f663c543e00010c6164646d0301504163636f756e7449644c6f6f6b75704f663c543e0002003472657365745f6d656d6265727304011c6d656d62657273050101445665633c543a3a4163636f756e7449643e000300286368616e67655f6b657904010c6e65776d0301504163636f756e7449644c6f6f6b75704f663c543e000400247365745f7072696d6504010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0005002c636c6561725f7072696d65000600008d040c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c08045400044900011c2c7365745f6d656d626572730c012c6e65775f6d656d62657273050101445665633c543a3a4163636f756e7449643e0001147072696d65f10101504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e740000001c6578656375746508012070726f706f73616c4d03017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e643501010c7533320001001c70726f706f73650c01247468726573686f6c643501012c4d656d626572436f756e7400012070726f706f73616c4d03017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e643501010c75333200020010766f74650c012070726f706f73616c2c011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800011c617070726f7665f9010110626f6f6c00030040636c6f73655f6f6c645f77656967687410013470726f706f73616c5f686173682c011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64750401244f6c645765696768740001306c656e6774685f626f756e643501010c7533320004004c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f686173682c011c543a3a4861736800050014636c6f736510013470726f706f73616c5f686173682c011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642001185765696768740001306c656e6774685f626f756e643501010c7533320006000091040c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0000003472656d6f76655f6d656d62657204010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0001002c737761705f6d656d62657208011872656d6f76656d0301504163636f756e7449644c6f6f6b75704f663c543e00010c6164646d0301504163636f756e7449644c6f6f6b75704f663c543e0002003472657365745f6d656d6265727304011c6d656d62657273050101445665633c543a3a4163636f756e7449643e000300286368616e67655f6b657904010c6e65776d0301504163636f756e7449644c6f6f6b75704f663c543e000400247365745f7072696d6504010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0005002c636c6561725f7072696d650006000095040c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c08045400044900011c2c7365745f6d656d626572730c012c6e65775f6d656d62657273050101445665633c543a3a4163636f756e7449643e0001147072696d65f10101504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e740000001c6578656375746508012070726f706f73616c4d03017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e643501010c7533320001001c70726f706f73650c01247468726573686f6c643501012c4d656d626572436f756e7400012070726f706f73616c4d03017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e643501010c75333200020010766f74650c012070726f706f73616c2c011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800011c617070726f7665f9010110626f6f6c00030040636c6f73655f6f6c645f77656967687410013470726f706f73616c5f686173682c011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64750401244f6c645765696768740001306c656e6774685f626f756e643501010c7533320004004c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f686173682c011c543a3a4861736800050014636c6f736510013470726f706f73616c5f686173682c011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642001185765696768740001306c656e6774685f626f756e643501010c7533320006000099040c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0000003472656d6f76655f6d656d62657204010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0001002c737761705f6d656d62657208011872656d6f76656d0301504163636f756e7449644c6f6f6b75704f663c543e00010c6164646d0301504163636f756e7449644c6f6f6b75704f663c543e0002003472657365745f6d656d6265727304011c6d656d62657273050101445665633c543a3a4163636f756e7449643e000300286368616e67655f6b657904010c6e65776d0301504163636f756e7449644c6f6f6b75704f663c543e000400247365745f7072696d6504010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0005002c636c6561725f7072696d65000600009d040c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c0404540001481c70726f706f736508012070726f706f73616c49030140426f756e64656443616c6c4f663c543e00011476616c7565e8013042616c616e63654f663c543e000000187365636f6e6404012070726f706f73616c3501012450726f70496e64657800010010766f74650801247265665f696e6465783501013c5265666572656e64756d496e646578000110766f7465210201644163636f756e74566f74653c42616c616e63654f663c543e3e00020040656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e6465780003004065787465726e616c5f70726f706f736504012070726f706f73616c49030140426f756e64656443616c6c4f663c543e0004006465787465726e616c5f70726f706f73655f6d616a6f7269747904012070726f706f73616c49030140426f756e64656443616c6c4f663c543e0005006065787465726e616c5f70726f706f73655f64656661756c7404012070726f706f73616c49030140426f756e64656443616c6c4f663c543e00060028666173745f747261636b0c013470726f706f73616c5f686173682c011048323536000134766f74696e675f706572696f64100138543a3a426c6f636b4e756d62657200011464656c6179100138543a3a426c6f636b4e756d626572000700347665746f5f65787465726e616c04013470726f706f73616c5f686173682c0110483235360008004463616e63656c5f7265666572656e64756d0401247265665f696e6465783501013c5265666572656e64756d496e6465780009002064656c65676174650c0108746f6d0301504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6ea1040128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000a0028756e64656c6567617465000b0058636c6561725f7075626c69635f70726f706f73616c73000c0018756e6c6f636b0401187461726765746d0301504163636f756e7449644c6f6f6b75704f663c543e000d002c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e646578000e004472656d6f76655f6f746865725f766f74650801187461726765746d0301504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c5265666572656e64756d496e646578000f0024626c61636b6c69737408013470726f706f73616c5f686173682c01104832353600013c6d617962655f7265665f696e6465785504015c4f7074696f6e3c5265666572656e64756d496e6465783e0010003c63616e63656c5f70726f706f73616c04012870726f705f696e6465783501012450726f70496e64657800110000a1040c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000a5040c2c6f726d6c5f6f7261636c65186d6f64756c651043616c6c0804540004490001042c666565645f76616c75657304011876616c7565732d02018c5665633c28543a3a4f7261636c654b65792c20543a3a4f7261636c6556616c7565293e00000000a9040c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0000003472656d6f76655f6d656d62657204010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0001002c737761705f6d656d62657208011872656d6f76656d0301504163636f756e7449644c6f6f6b75704f663c543e00010c6164646d0301504163636f756e7449644c6f6f6b75704f663c543e0002003472657365745f6d656d6265727304011c6d656d62657273050101445665633c543a3a4163636f756e7449643e000300286368616e67655f6b657904010c6e65776d0301504163636f756e7449644c6f6f6b75704f663c543e000400247365745f7072696d6504010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e0005002c636c6561725f7072696d6500060000ad040c306f726d6c5f61756374696f6e186d6f64756c651043616c6c0404540001040c6269640801086964100130543a3a41756374696f6e496400011476616c7565e80128543a3a42616c616e636500000000b1040c306f726d6c5f72657761726473186d6f64756c651043616c6c04045400010000b5040c346d6f64756c655f707269636573186d6f64756c651043616c6c040454000108286c6f636b5f707269636504012c63757272656e63795f6964cc012843757272656e6379496400000030756e6c6f636b5f707269636504012c63757272656e63795f6964cc012843757272656e6379496400010000b9040c286d6f64756c655f646578186d6f64756c651043616c6c04045400013458737761705f776974685f65786163745f737570706c790c0110706174684502013c5665633c43757272656e637949643e000134737570706c795f616d6f756e74e8011c42616c616e63650001446d696e5f7461726765745f616d6f756e74e8011c42616c616e636500000058737761705f776974685f65786163745f7461726765740c0110706174684502013c5665633c43757272656e637949643e0001347461726765745f616d6f756e74e8011c42616c616e63650001446d61785f737570706c795f616d6f756e74e8011c42616c616e6365000100346164645f6c697175696469747918013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e637949640001306d61785f616d6f756e745f61e8011c42616c616e63650001306d61785f616d6f756e745f62e8011c42616c616e636500014c6d696e5f73686172655f696e6372656d656e74e8011c42616c616e63650001547374616b655f696e6372656d656e745f7368617265f9010110626f6f6c000200346164645f70726f766973696f6e10013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e63794964000120616d6f756e745f61e8011c42616c616e6365000120616d6f756e745f62e8011c42616c616e63650003003c636c61696d5f6465785f73686172650c01146f776e6572000130543a3a4163636f756e74496400013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e637949640004004072656d6f76655f6c697175696469747918013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e6379496400013072656d6f76655f7368617265e8011c42616c616e636500013c6d696e5f77697468647261776e5f61e8011c42616c616e636500013c6d696e5f77697468647261776e5f62e8011c42616c616e636500012862795f756e7374616b65f9010110626f6f6c000500446c6973745f70726f766973696f6e696e671c013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e637949640001486d696e5f636f6e747269627574696f6e5f61e8011c42616c616e63650001486d696e5f636f6e747269627574696f6e5f62e8011c42616c616e63650001487461726765745f70726f766973696f6e5f61e8011c42616c616e63650001487461726765745f70726f766973696f6e5f62e8011c42616c616e63650001286e6f745f6265666f726535010138543a3a426c6f636b4e756d626572000600787570646174655f70726f766973696f6e696e675f706172616d65746572731c013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e637949640001486d696e5f636f6e747269627574696f6e5f61e8011c42616c616e63650001486d696e5f636f6e747269627574696f6e5f62e8011c42616c616e63650001487461726765745f70726f766973696f6e5f61e8011c42616c616e63650001487461726765745f70726f766973696f6e5f62e8011c42616c616e63650001286e6f745f6265666f726535010138543a3a426c6f636b4e756d62657200070040656e645f70726f766973696f6e696e6708013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e637949640008004c656e61626c655f74726164696e675f7061697208013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e637949640009005064697361626c655f74726164696e675f7061697208013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e63794964000a0040726566756e645f70726f766973696f6e0c01146f776e6572000130543a3a4163636f756e74496400013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e63794964000b004861626f72745f70726f766973696f6e696e6708013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e63794964000c0000bd040c446d6f64756c655f6465785f6f7261636c65186d6f64756c651043616c6c04045400010c50656e61626c655f617665726167655f70726963650c013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e63794964000120696e74657276616c28012c4d6f6d656e744f663c543e0000005464697361626c655f617665726167655f707269636508013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e63794964000100747570646174655f617665726167655f70726963655f696e74657276616c0c013463757272656e63795f69645f61cc012843757272656e6379496400013463757272656e63795f69645f62cc012843757272656e637949640001306e65775f696e74657276616c28012c4d6f6d656e744f663c543e00020000c1040c546d6f64756c655f616767726567617465645f646578186d6f64756c651043616c6c04045400010c58737761705f776974685f65786163745f737570706c790c01147061746873b10301345665633c53776170506174683e000134737570706c795f616d6f756e74e8011c42616c616e63650001446d696e5f7461726765745f616d6f756e74e8011c42616c616e636500000058737761705f776974685f65786163745f7461726765740c01147061746873b10301345665633c53776170506174683e0001347461726765745f616d6f756e74e8011c42616c616e63650001446d61785f737570706c795f616d6f756e74e8011c42616c616e6365000100707570646174655f616767726567617465645f737761705f706174687304011c75706461746573c50401d85665633c282843757272656e637949642c2043757272656e63794964292c204f7074696f6e3c5665633c53776170506174683e3e293e00020000c504000002c90400c90400000408cd04d10400cd0400000408cccc00d10404184f7074696f6e04045401b1030108104e6f6e6500000010536f6d650400b1030000010000d5040c586d6f64756c655f61756374696f6e5f6d616e61676572186d6f64756c651043616c6c0404540001041863616e63656c040108696410012441756374696f6e496400000000d9040c306d6f64756c655f6c6f616e73186d6f64756c651043616c6c04045400010000dd040c346d6f64756c655f686f6e7a6f6e186d6f64756c651043616c6c0404540001282c61646a7573745f6c6f616e0c012c63757272656e63795f6964cc012843757272656e63794964000154636f6c6c61746572616c5f61646a7573746d656e7459020118416d6f756e7400014064656269745f61646a7573746d656e7459020118416d6f756e740000006c636c6f73655f6c6f616e5f6861735f64656269745f62795f64657808012c63757272656e63795f6964cc012843757272656e637949640001546d61785f636f6c6c61746572616c5f616d6f756e74e8011c42616c616e6365000100487472616e736665725f6c6f616e5f66726f6d08012c63757272656e63795f6964cc012843757272656e6379496400011066726f6d6d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500020024617574686f72697a6508012c63757272656e63795f6964cc012843757272656e63794964000108746f6d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650003002c756e617574686f72697a6508012c63757272656e63795f6964cc012843757272656e63794964000108746f6d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650004003c756e617574686f72697a655f616c6c00050068657870616e645f706f736974696f6e5f636f6c6c61746572616c0c012c63757272656e63795f6964cc012843757272656e63794964000150696e6372656173655f64656269745f76616c756518011c42616c616e636500015c6d696e5f696e6372656173655f636f6c6c61746572616c18011c42616c616e636500060054736872696e6b5f706f736974696f6e5f64656269740c012c63757272656e63795f6964cc012843757272656e6379496400014c64656372656173655f636f6c6c61746572616c18011c42616c616e63650001606d696e5f64656372656173655f64656269745f76616c756518011c42616c616e63650007006861646a7573745f6c6f616e5f62795f64656269745f76616c75650c012c63757272656e63795f6964cc012843757272656e63794964000154636f6c6c61746572616c5f61646a7573746d656e7459020118416d6f756e7400015864656269745f76616c75655f61646a7573746d656e7459020118416d6f756e74000800387472616e736665725f64656269740c013466726f6d5f63757272656e6379cc012843757272656e6379496400012c746f5f63757272656e6379cc012843757272656e6379496400013864656269745f7472616e7366657218011c42616c616e636500090000e1040c4c6d6f64756c655f6364705f7472656173757279186d6f64756c651043616c6c0404540001146c657874726163745f737572706c75735f746f5f7472656173757279040118616d6f756e74e8011c42616c616e63650000004861756374696f6e5f636f6c6c61746572616c10012c63757272656e63795f6964cc012843757272656e63794964000118616d6f756e74e8011c42616c616e6365000118746172676574e8011c42616c616e636500011c73706c69746564f9010110626f6f6c0001007465786368616e67655f636f6c6c61746572616c5f746f5f737461626c6508012c63757272656e63795f6964cc012843757272656e63794964000128737761705f6c696d6974e5040148537761704c696d69743c42616c616e63653e000200907365745f65787065637465645f636f6c6c61746572616c5f61756374696f6e5f73697a6508012c63757272656e63795f6964cc012843757272656e6379496400011073697a65e8011c42616c616e63650003005c7365745f64656269745f6f66667365745f627566666572040118616d6f756e74e8011c42616c616e636500040000e5040c386d6f64756c655f737570706f72740c64657824537761704c696d6974041c42616c616e6365011801082c4578616374537570706c79080018011c42616c616e6365000018011c42616c616e63650000002c4578616374546172676574080018011c42616c616e6365000018011c42616c616e636500010000e9040c446d6f64756c655f6364705f656e67696e65186d6f64756c651043616c6c040454000114246c697175696461746508012c63757272656e63795f6964cc012843757272656e6379496400010c77686f6d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500000018736574746c6508012c63757272656e63795f6964cc012843757272656e6379496400010c77686f6d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000100547365745f636f6c6c61746572616c5f706172616d7318012c63757272656e63795f6964cc012843757272656e63794964000154696e7465726573745f726174655f7065725f736563ed0401404368616e67654f7074696f6e526174650001446c69717569646174696f6e5f726174696fed0401444368616e67654f7074696f6e526174696f00014c6c69717569646174696f6e5f70656e616c7479ed0401404368616e67654f7074696f6e5261746500016472657175697265645f636f6c6c61746572616c5f726174696fed0401444368616e67654f7074696f6e526174696f0001646d6178696d756d5f746f74616c5f64656269745f76616c7565f10401344368616e676542616c616e63650002007472656769737465725f6c69717569646174696f6e5f636f6e747261637404011c61646472657373a4012845766d416464726573730003007c646572656769737465725f6c69717569646174696f6e5f636f6e747261637404011c61646472657373a4012845766d4164647265737300040000ed04082c6f726d6c5f747261697473184368616e6765041456616c75650169020108204e6f4368616e6765000000204e657756616c756504006902011456616c756500010000f104082c6f726d6c5f747261697473184368616e6765041456616c756501180108204e6f4368616e6765000000204e657756616c7565040018011456616c756500010000f5040c646d6f64756c655f656d657267656e63795f73687574646f776e186d6f64756c651043616c6c04045400010c48656d657267656e63795f73687574646f776e000000586f70656e5f636f6c6c61746572616c5f726566756e6400010048726566756e645f636f6c6c61746572616c73040118616d6f756e74e8011c42616c616e636500020000f9040c2c6d6f64756c655f686f6d61186d6f64756c651043616c6c040454000128106d696e74040118616d6f756e74e8011c42616c616e636500000038726571756573745f72656465656d080118616d6f756e74e8011c42616c616e6365000140616c6c6f775f666173745f6d61746368f9010110626f6f6c00010048666173745f6d617463685f72656465656d7304013472656465656d65725f6c697374050101445665633c543a3a4163636f756e7449643e00020040636c61696d5f726564656d7074696f6e04012072656465656d6572000130543a3a4163636f756e744964000300487570646174655f686f6d615f706172616d7310017c736f66745f626f6e6465645f6361705f7065725f7375625f6163636f756e74fd04013c4f7074696f6e3c42616c616e63653e000174657374696d617465645f7265776172645f726174655f7065725f657261690201304f7074696f6e3c526174653e00013c636f6d6d697373696f6e5f72617465690201304f7074696f6e3c526174653e00014c666173745f6d617463685f6665655f72617465690201304f7074696f6e3c526174653e000400587570646174655f62756d705f6572615f706172616d730801546c6173745f6572615f62756d7065645f626c6f636b550401584f7074696f6e3c543a3a426c6f636b4e756d6265723e0001246672657175656e6379550401584f7074696f6e3c543a3a426c6f636b4e756d6265723e0005003472657365745f6c65646765727304011c75706461746573010501d45665633c287531362c204f7074696f6e3c42616c616e63653e2c204f7074696f6e3c5665633c556e6c6f636b4368756e6b3e3e293e0006004472657365745f63757272656e745f6572610401246572615f696e646578100120457261496e64657800070058666f7263655f62756d705f63757272656e745f65726104012c62756d705f616d6f756e74100120457261496e64657800080074666173745f6d617463685f72656465656d735f636f6d706c6574656c7904013472656465656d65725f6c697374050101445665633c543a3a4163636f756e7449643e00090000fd0404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000010500000205050005050000040c9cfd04090500090504184f7074696f6e040454017d020108104e6f6e6500000010536f6d6504007d0200000100000d050c506d6f64756c655f78636d5f696e74657266616365186d6f64756c651043616c6c040454000104787570646174655f78636d5f646573745f7765696768745f616e645f66656504011c7570646174657311050101015665633c2858636d496e746572666163654f7065726174696f6e2c204f7074696f6e3c58636d5765696768743e2c204f7074696f6e3c42616c616e63653e293e00000000110500000215050015050000040c89021905fd0400190504184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100001d050c446d6f64756c655f696e63656e7469766573186d6f64756c651043616c6c040454000114446465706f7369745f6465785f73686172650801386c705f63757272656e63795f6964cc012843757272656e63794964000118616d6f756e74e8011c42616c616e63650000004877697468647261775f6465785f73686172650801386c705f63757272656e63795f6964cc012843757272656e63794964000118616d6f756e74e8011c42616c616e636500010034636c61696d5f7265776172647304011c706f6f6c5f696491020118506f6f6c4964000200607570646174655f696e63656e746976655f7265776172647304011c75706461746573210501a45665633c28506f6f6c49642c205665633c2843757272656e637949642c2042616c616e6365293e293e0003008c7570646174655f636c61696d5f7265776172645f646564756374696f6e5f726174657304011c757064617465732905014c5665633c28506f6f6c49642c2052617465293e000400002105000002250500250500000408910271020029050000022d05002d05000004089102f00031050c286d6f64756c655f6e6674186d6f64756c651043616c6c04045400011c306372656174655f636c6173730c01206d6574616461746130010c43494400012870726f706572746965733505012850726f70657274696573000128617474726962757465733d05012841747472696275746573000000106d696e74140108746f6d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000120636c6173735f6964100130436c61737349644f663c543e0001206d6574616461746130010c434944000128617474726962757465733d050128417474726962757465730001207175616e746974793501010c753332000100207472616e73666572080108746f6d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000114746f6b656e4105017028436c61737349644f663c543e2c20546f6b656e49644f663c543e29000200106275726e040114746f6b656e4105017028436c61737349644f663c543e2c20546f6b656e49644f663c543e29000300406275726e5f776974685f72656d61726b080114746f6b656e4105017028436c61737349644f663c543e2c20546f6b656e49644f663c543e2900011872656d61726b30011c5665633c75383e0004003464657374726f795f636c617373080120636c6173735f6964100130436c61737349644f663c543e000110646573746d03018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650005005c7570646174655f636c6173735f70726f70657274696573080120636c6173735f6964100130436c61737349644f663c543e00012870726f706572746965733505012850726f706572746965730006000035050c406163616c615f7072696d6974697665730c6e667420426974466c616773040454013905000400080134436c61737350726f7065727479000039050c406163616c615f7072696d6974697665730c6e667434436c61737350726f7065727479000110305472616e7366657261626c65000100204275726e61626c65000200204d696e7461626c6500040058436c61737350726f706572746965734d757461626c65000800003d05042042547265654d617008044b013004560130000400fd0200000041050000040810280045050c546d6f64756c655f61737365745f7265676973747279186d6f64756c651043616c6c0404540001205872656769737465725f666f726569676e5f61737365740801206c6f636174696f6ead01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e0001206d657461646174619d020180426f783c41737365744d657461646174613c42616c616e63654f663c543e3e3e000000507570646174655f666f726569676e5f61737365740c0140666f726569676e5f61737365745f69649c0138466f726569676e417373657449640001206c6f636174696f6ead01016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e0001206d657461646174619d020180426f783c41737365744d657461646174613c42616c616e63654f663c543e3e3e0001005472656769737465725f737461626c655f61737365740401206d657461646174619d020180426f783c41737365744d657461646174613c42616c616e63654f663c543e3e3e0002004c7570646174655f737461626c655f617373657408013c737461626c655f61737365745f6964100144537461626c654173736574506f6f6c49640001206d657461646174619d020180426f783c41737365744d657461646174613c42616c616e63654f663c543e3e3e0003005072656769737465725f65726332305f6173736574080120636f6e7472616374a4012845766d4164647265737300013c6d696e696d616c5f62616c616e636518013042616c616e63654f663c543e000400487570646174655f65726332305f6173736574080120636f6e7472616374a4012845766d416464726573730001206d657461646174619d020180426f783c41737365744d657461646174613c42616c616e63654f663c543e3e3e0005005472656769737465725f6e61746976655f617373657408012c63757272656e63795f6964cc012843757272656e637949640001206d657461646174619d020180426f783c41737365744d657461646174613c42616c616e63654f663c543e3e3e0006004c7570646174655f6e61746976655f617373657408012c63757272656e63795f6964cc012843757272656e637949640001206d657461646174619d020180426f783c41737365744d657461646174613c42616c616e63654f663c543e3e3e0007000049050c286d6f64756c655f65766d186d6f64756c651043616c6c04045400013c206574685f63616c6c1c0118616374696f6e4d0501445472616e73616374696f6e416374696f6e000114696e70757430011c5665633c75383e00011476616c7565e8013042616c616e63654f663c543e0001246761735f6c696d697424010c75363400013473746f726167655f6c696d69743501010c75333200012c6163636573735f6c6973745105014c5665633c4163636573734c6973744974656d3e00012c76616c69645f756e74696c35010138543a3a426c6f636b4e756d6265720000001063616c6c180118746172676574a4012845766d41646472657373000114696e70757430011c5665633c75383e00011476616c7565e8013042616c616e63654f663c543e0001246761735f6c696d697424010c75363400013473746f726167655f6c696d69743501010c75333200012c6163636573735f6c6973745105014c5665633c4163636573734c6973744974656d3e000100387363686564756c65645f63616c6c1c011066726f6da4012845766d41646472657373000118746172676574a4012845766d41646472657373000114696e70757430011c5665633c75383e00011476616c7565e8013042616c616e63654f663c543e0001246761735f6c696d697424010c75363400013473746f726167655f6c696d69743501010c75333200012c6163636573735f6c6973745105014c5665633c4163636573734c6973744974656d3e00020018637265617465140114696e70757430011c5665633c75383e00011476616c7565e8013042616c616e63654f663c543e0001246761735f6c696d697424010c75363400013473746f726167655f6c696d69743501010c75333200012c6163636573735f6c6973745105014c5665633c4163636573734c6973744974656d3e0003001c63726561746532180114696e70757430011c5665633c75383e00011073616c742c01104832353600011476616c7565e8013042616c616e63654f663c543e0001246761735f6c696d697424010c75363400013473746f726167655f6c696d69743501010c75333200012c6163636573735f6c6973745105014c5665633c4163636573734c6973744974656d3e0004004c6372656174655f6e66745f636f6e7472616374140114696e70757430011c5665633c75383e00011476616c7565e8013042616c616e63654f663c543e0001246761735f6c696d697424010c75363400013473746f726167655f6c696d69743501010c75333200012c6163636573735f6c6973745105014c5665633c4163636573734c6973744974656d3e000500646372656174655f7072656465706c6f795f636f6e7472616374180118746172676574a4012845766d41646472657373000114696e70757430011c5665633c75383e00011476616c7565e8013042616c616e63654f663c543e0001246761735f6c696d697424010c75363400013473746f726167655f6c696d69743501010c75333200012c6163636573735f6c6973745105014c5665633c4163636573734c6973744974656d3e0006004c7472616e736665725f6d61696e7461696e6572080120636f6e7472616374a4012845766d416464726573730001386e65775f6d61696e7461696e6572a4012845766d41646472657373000700407075626c6973685f636f6e7472616374040120636f6e7472616374a4012845766d41646472657373000800307075626c6973685f66726565040120636f6e7472616374a4012845766d416464726573730009006c656e61626c655f636f6e74726163745f646576656c6f706d656e74000a007064697361626c655f636f6e74726163745f646576656c6f706d656e74000b00207365745f636f6465080120636f6e7472616374a4012845766d41646472657373000110636f646530011c5665633c75383e000c003073656c666465737472756374040120636f6e7472616374a4012845766d41646472657373000d002c7374726963745f63616c6c180118746172676574a4012845766d41646472657373000114696e70757430011c5665633c75383e00011476616c7565e8013042616c616e63654f663c543e0001246761735f6c696d697424010c75363400013473746f726167655f6c696d69743501010c75333200012c6163636573735f6c6973745105014c5665633c4163636573734c6973744974656d3e000e00004d050c20657468657265756d2c7472616e73616374696f6e445472616e73616374696f6e416374696f6e0001081043616c6c0400a40110483136300000001843726561746500010000510500000255050055050c20657468657265756d2c7472616e73616374696f6e384163636573734c6973744974656d000008011c61646472657373a4011c4164647265737300013073746f726167655f6b657973b10201245665633c483235363e000059050c4c6d6f64756c655f65766d5f6163636f756e7473186d6f64756c651043616c6c04045400010834636c61696d5f6163636f756e7408012c6574685f61646472657373a4012845766d416464726573730001346574685f7369676e6174757265ad03013c4569703731325369676e617475726500000054636c61696d5f64656661756c745f6163636f756e74000100005d050c606e75747366696e616e63655f737461626c655f61737365741870616c6c65741043616c6c0404540001242c6372656174655f706f6f6c280128706f6f6c5f6173736574cc0128543a3a417373657449640001186173736574734502013c5665633c543a3a417373657449643e000128707265636973696f6e73490201705665633c543a3a41744c656173743634426974556e7369676e65643e0001206d696e745f66656518015c543a3a41744c656173743634426974556e7369676e6564000120737761705f66656518015c543a3a41744c656173743634426974556e7369676e656400012872656465656d5f66656518015c543a3a41744c656173743634426974556e7369676e6564000124696e697469616c5f6118015c543a3a41744c656173743634426974556e7369676e65640001346665655f726563697069656e74000130543a3a4163636f756e74496400013c7969656c645f726563697069656e74000130543a3a4163636f756e744964000124707265636973696f6e18015c543a3a41744c656173743634426974556e7369676e6564000000106d696e740c011c706f6f6c5f6964100144537461626c654173736574506f6f6c496400011c616d6f756e74734902013c5665633c543a3a42616c616e63653e00013c6d696e5f6d696e745f616d6f756e74180128543a3a42616c616e6365000100107377617018011c706f6f6c5f6964100144537461626c654173736574506f6f6c496400010469100138506f6f6c546f6b656e496e6465780001046a100138506f6f6c546f6b656e496e6465780001086478180128543a3a42616c616e63650001186d696e5f6479180128543a3a42616c616e636500013061737365745f6c656e67746810010c7533320002004472656465656d5f70726f706f7274696f6e0c011c706f6f6c5f6964100144537461626c654173736574506f6f6c4964000118616d6f756e74180128543a3a42616c616e63650001486d696e5f72656465656d5f616d6f756e74734902013c5665633c543a3a42616c616e63653e0003003472656465656d5f73696e676c6514011c706f6f6c5f6964100144537461626c654173736574506f6f6c4964000118616d6f756e74180128543a3a42616c616e636500010469100138506f6f6c546f6b656e496e6465780001446d696e5f72656465656d5f616d6f756e74180128543a3a42616c616e636500013061737365745f6c656e67746810010c7533320004003072656465656d5f6d756c74690c011c706f6f6c5f6964100144537461626c654173736574506f6f6c496400011c616d6f756e74734902013c5665633c543a3a42616c616e63653e0001446d61785f72656465656d5f616d6f756e74180128543a3a42616c616e6365000500206d6f646966795f610c011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001046118015c543a3a41744c656173743634426974556e7369676e65640001386675747572655f615f626c6f636b100138543a3a426c6f636b4e756d6265720006002c6d6f646966795f6665657310011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001206d696e745f666565fd04017c4f7074696f6e3c543a3a41744c656173743634426974556e7369676e65643e000120737761705f666565fd04017c4f7074696f6e3c543a3a41744c656173743634426974556e7369676e65643e00012872656465656d5f666565fd04017c4f7074696f6e3c543a3a41744c656173743634426974556e7369676e65643e000700446d6f646966795f726563697069656e74730c011c706f6f6c5f6964100144537461626c654173736574506f6f6c49640001346665655f726563697069656e74f10101504f7074696f6e3c543a3a4163636f756e7449643e00013c7969656c645f726563697069656e74f10101504f7074696f6e3c543a3a4163636f756e7449643e0008000061050c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174616505015450617261636861696e496e686572656e7444617461000000607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653001345570776172644d65737361676500010044617574686f72697a655f75706772616465040124636f64655f686173682c011c543a3a4861736800020060656e6163745f617574686f72697a65645f75706772616465040110636f646530011c5665633c75383e000300006505089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174616905015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174657105015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737905016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573810501a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e000069050c4c706f6c6b61646f745f7072696d6974697665730876325c50657273697374656456616c69646174696f6e44617461080448012c044e01100010012c706172656e745f686561646d050120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f742c0104480001306d61785f706f765f73697a6510010c75333200006d050c48706f6c6b61646f745f70617261636861696e287072696d6974697665732048656164446174610000040030011c5665633c75383e000071050c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465737505014442547265655365743c5665633c75383e3e00007505042042547265655365740404540130000400050300000079050000027d05007d050860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736730013c446f776e776172644d65737361676500008105042042547265654d617008044b011d0104560185050004008d05000000850500000289050089050860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746130015073705f7374643a3a7665633a3a5665633c75383e00008d050000029105009105000004081d0185050095050c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000000547375646f5f756e636865636b65645f77656967687408011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001187765696768742001185765696768740001001c7365745f6b657904010c6e65776d0301504163636f756e7449644c6f6f6b75704f663c543e0002001c7375646f5f617308010c77686f6d0301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c4d03017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000300009905101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e00009d05000002410300a1050c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000000204e6f74466f756e640001005c546172676574426c6f636b4e756d626572496e506173740002004852657363686564756c654e6f4368616e6765000300144e616d656400040000a5050c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c7300000000a90500000408000400ad05083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e90015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73b105018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000b105101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e6465645665630804540100045300000400050101185665633c543e0000b5050c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000003c416c7265616479417070726f766564000100444e6f417070726f76616c734e656564656400020044546f6f4665775369676e61746f7269657300030048546f6f4d616e795369676e61746f72696573000400545369676e61746f726965734f75744f664f726465720005004c53656e646572496e5369676e61746f72696573000600204e6f74466f756e64000700204e6f744f776e65720008002c4e6f54696d65706f696e740009003857726f6e6754696d65706f696e74000a004c556e657870656374656454696d65706f696e74000b003c4d6178576569676874546f6f4c6f77000c0034416c726561647953746f726564000d0000b90500000408bd051800bd05101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401c105045300000400c50501185665633c543e0000c105083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f78795479706501982c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f7479706598012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000c505000002c10500c90500000408cd051800cd05101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401d105045300000400d50501185665633c543e0000d105083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e74496401001048617368012c2c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173682c01104861736800011868656967687410012c426c6f636b4e756d6265720000d505000002d10500d9050c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000000204e6f74466f756e64000100204e6f7450726f78790002002c556e70726f787961626c65000300244475706c6963617465000400304e6f5065726d697373696f6e0005002c556e616e6e6f756e6365640006002c4e6f53656c6650726f787900070000dd050c606d6f64756c655f7472616e73616374696f6e5f7061757365186d6f64756c65144572726f720404540001082c43616e6e6f74506175736500000040496e76616c696443686172616374657200010000e105083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f736974e5050150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974e90501704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656e5504012c4f7074696f6e3c7533323e00010000e50500000408001800e90504184f7074696f6e04045401e5050108104e6f6e6500000010536f6d650400e5050000010000ed05000004082c1000f105101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e0000f5050c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400011818546f6f42696700000030416c72656164794e6f746564000100344e6f74417574686f72697a6564000200204e6f744e6f74656400030024526571756573746564000400304e6f7452657175657374656400050000f905101c73705f636f72651c626f756e646564407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401fd05045300000400050601185665633c543e0000fd05083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964d801384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e730106011c526561736f6e7300000106083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200000506000002fd05000906101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454010d06045300000400150601185665633c543e00000d06083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e7469666965720111061c42616c616e6365011800080108696411060144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000110608406163616c615f7072696d69746976657344526573657276654964656e74696669657200012044436f6c6c61746f7253656c656374696f6e0000004445766d53746f726167654465706f7369740001004c45766d446576656c6f7065724465706f73697400020018486f6e7a6f6e0003000c4e6674000400485472616e73616374696f6e5061796d656e74000500645472616e73616374696f6e5061796d656e744465706f73697400060014436f756e740007000015060000020d06001906083c70616c6c65745f62616c616e6365732052656c65617365730001081856315f305f300000001856325f305f30000100001d060c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e6365000000544c69717569646974795265737472696374696f6e730001004c496e73756666696369656e7442616c616e6365000200484578697374656e7469616c4465706f736974000300244b656570416c6976650004005c4578697374696e6756657374696e675363686564756c650005002c446561644163636f756e740006003c546f6f4d616e7952657365727665730007000021060000040800cc002506101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e6465645665630804540129060453000004002d0601185665633c543e00002906082c6f726d6c5f746f6b656e732c42616c616e63654c6f636b041c42616c616e63650118000801086964d801384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500002d060000022906003106082c6f726d6c5f746f6b656e732c4163636f756e7444617461041c42616c616e63650118000c01106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e636500003506101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e6465645665630804540139060453000004003d0601185665633c543e00003906082c6f726d6c5f746f6b656e732c52657365727665446174610844526573657276654964656e7469666965720111061c42616c616e6365011800080108696411060144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e636500003d0600000239060041060c2c6f726d6c5f746f6b656e73186d6f64756c65144572726f720404540001203442616c616e6365546f6f4c6f770000005c416d6f756e74496e746f42616c616e63654661696c6564000100544c69717569646974795265737472696374696f6e73000200404d61784c6f636b734578636565646564000300244b656570416c697665000400484578697374656e7469616c4465706f7369740005002c446561644163636f756e740006003c546f6f4d616e7952657365727665730007000045060c446d6f64756c655f63757272656e63696573186d6f64756c65144572726f720404540001185c416d6f756e74496e746f42616c616e63654661696c65640000003442616c616e6365546f6f4c6f77000100544572633230496e76616c69644f7065726174696f6e0002004845766d4163636f756e744e6f74466f756e64000300485265616c4f726967696e4e6f74466f756e64000400344465706f7369744661696c6564000500004906101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401e40453000004008d0301185665633c543e00004d060c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f64000000585a65726f56657374696e67506572696f64436f756e7400010064496e73756666696369656e7442616c616e6365546f4c6f636b0002005c546f6f4d616e7956657374696e675363686564756c657300030024416d6f756e744c6f770004006c4d617856657374696e675363686564756c65734578636565646564000500005106101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401cc045300000400450201185665633c543e0000550608346672616d655f737570706f72742050616c6c6574496400000400d8011c5b75383b20385d000059060c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800005d060c686d6f64756c655f7472616e73616374696f6e5f7061796d656e74186d6f64756c65144572726f720404540001183c496e76616c6964537761705061746800000038496e76616c696442616c616e63650001002c496e76616c69645261746500020030496e76616c6964546f6b656e0003003c4465784e6f74417661696c61626c650004006c436861726765466565506f6f6c416c726561647945786973746564000500006106083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e636500006506101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e6465645665630804540110045300000400690601185665633c543e0000690600000210006d060c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c753332000071060c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900011470496e73756666696369656e7450726f706f7365727342616c616e636500000030496e76616c6964496e64657800010040546f6f4d616e79417070726f76616c7300020058496e73756666696369656e745065726d697373696f6e0003004c50726f706f73616c4e6f74417070726f766564000400007506083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e636500011873746174757379060190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e00007906083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001182050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d626572000500007d06101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e000081060c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7208045400044900012c70496e73756666696369656e7450726f706f7365727342616c616e636500000030496e76616c6964496e64657800010030526561736f6e546f6f42696700020040556e6578706563746564537461747573000300385265717569726543757261746f7200040030496e76616c696456616c756500050028496e76616c69644665650006003450656e64696e675061796f7574000700245072656d6174757265000800504861734163746976654368696c64426f756e747900090034546f6f4d616e79517565756564000a00008506082c70616c6c65745f746970731c4f70656e54697010244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201101048617368012c001c0118726561736f6e2c01104861736800010c77686f0001244163636f756e74496400011866696e6465720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000118636c6f7365735504014c4f7074696f6e3c426c6f636b4e756d6265723e00011074697073890601645665633c284163636f756e7449642c2042616c616e6365293e00012c66696e646572735f666565f9010110626f6f6c00008906000002e505008d060c2c70616c6c65745f746970731870616c6c6574144572726f7208045400044900011830526561736f6e546f6f42696700000030416c72656164794b6e6f776e00010028556e6b6e6f776e546970000200244e6f7446696e646572000300245374696c6c4f70656e000400245072656d6174757265000500009106101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454019506045300000400990601185665633c543e00009506084470616c6c65745f617574686f727368697038556e636c65456e7472794974656d0c2c426c6f636b4e756d62657201101048617368012c18417574686f72010001083c496e636c7573696f6e486569676874040010012c426c6f636b4e756d62657200000014556e636c6508002c0110486173680000f10101384f7074696f6e3c417574686f723e0001000099060000029506009d060c4470616c6c65745f617574686f72736869701870616c6c6574144572726f7204045400011c48496e76616c6964556e636c65506172656e7400000040556e636c6573416c726561647953657400010034546f6f4d616e79556e636c65730002003047656e65736973556e636c6500030030546f6f48696768556e636c6500040050556e636c65416c7265616479496e636c75646564000500204f6c64556e636c6500060000a106101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e6465645665630804540100045300000400050101185665633c543e0000a506101c73705f636f72651c626f756e64656444626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400a906012c42547265655365743c543e0000a9060420425472656553657404045401000004000501000000ad060c646d6f64756c655f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f72040454000134544d617843616e6469646174657345786365656465640000004842656c6f7743616e646964617465734d696e0001002c5374696c6c4c6f636b65640002001c556e6b6e6f776e000300285065726d697373696f6e00040040416c726561647943616e646964617465000500304e6f7443616e6469646174650006003c4e6f744e6f6e43616e646964617465000700444e6f7468696e67546f5769746864726177000800445265717569726553657373696f6e4b65790009004c416c7265616479496e76756c6e657261626c65000a0030496e76616c696450726f6f66000b00604d6178496e76756c6e657261626c65734578636565646564000c0000b106000002b50600b5060000040800dd0300b90600000408bd063000bd060c1c73705f636f72651863727970746f244b65795479706549640000040040011c5b75383b20345d0000c1060c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f660000005c4e6f4173736f63696174656456616c696461746f724964000100344475706c6963617465644b6579000200184e6f4b657973000300244e6f4163636f756e7400040000c506101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401e103045300000400c90601185665633c543e0000c906000002e10300cd06084873705f636f6e73656e7375735f736c6f747310536c6f740000040028010c7536340000d1060c586d6f64756c655f73657373696f6e5f6d616e61676572186d6f64756c65144572726f7204045400010c38496e76616c696453657373696f6e0000003c496e76616c69644475726174696f6e00010064457374696d6174654e65787453657373696f6e4661696c656400020000d506000002d90600d906086463756d756c75735f70616c6c65745f78636d705f717565756554496e626f756e644368616e6e656c44657461696c7300000c011873656e6465721d0101185061726149640001147374617465dd060130496e626f756e6453746174650001406d6573736167655f6d65746164617461e10601a85665633c2852656c6179426c6f636b4e756d6265722c2058636d704d657373616765466f726d6174293e0000dd06086463756d756c75735f70616c6c65745f78636d705f717565756530496e626f756e645374617465000108084f6b0000002453757370656e64656400010000e106000002e50600e5060000040810e90600e9060c48706f6c6b61646f745f70617261636861696e287072696d6974697665734458636d704d657373616765466f726d617400010c60436f6e636174656e6174656456657273696f6e656458636d0000005c436f6e636174656e61746564456e636f646564426c6f620001001c5369676e616c7300020000ed06000004081d011000f106000002f50600f506086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e741d0101185061726149640001147374617465f90601344f7574626f756e6453746174650001347369676e616c735f6578697374f9010110626f6f6c00012c66697273745f696e6465789c010c7531360001286c6173745f696e6465789c010c7531360000f906086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000fd06000004081d019c000107086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e66696744617461000018014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c7533320001407468726573686f6c645f7765696768742001185765696768740001547765696768745f72657374726963745f646563617920011857656967687400016878636d705f6d61785f696e646976696475616c5f776569676874200118576569676874000005070000040c1d0110300009070c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f72040454000114304661696c6564546f53656e640000003042616458636d4f726967696e0001001842616458636d000200484261644f766572776569676874496e6465780003003c5765696768744f7665724c696d6974000400000d070c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e670c0124726573706f6e646572ad01015856657273696f6e65644d756c74694c6f636174696f6e0001306d617962655f6e6f74696679110701404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ead01015856657273696f6e65644d756c74694c6f636174696f6e00012469735f616374697665f9010110626f6f6c000100145265616479080120726573706f6e73651907014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000110704184f7074696f6e0404540115070108104e6f6e6500000010536f6d650400150700000100001507000004080808001907080c78636d4456657273696f6e6564526573706f6e736500010c08563004000904013076303a3a526573706f6e736500000008563104001d04013076313a3a526573706f6e736500010008563204007101013076323a3a526573706f6e7365000200001d070000040810ad010021070000040c282810002507101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e6465645665630804540129070453000004002d0701185665633c543e0000290700000408ad0110002d0700000229070031070c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e745461726765747304003507013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000350704184f7074696f6e04045401300108104e6f6e6500000010536f6d65040030000001000039070c2870616c6c65745f78636d1870616c6c6574144572726f720404540001342c556e726561636861626c650000002c53656e644661696c7572650001002046696c746572656400020048556e776569676861626c654d6573736167650003006044657374696e6174696f6e4e6f74496e7665727469626c6500040014456d7074790005003843616e6e6f745265616e63686f7200060034546f6f4d616e7941737365747300070034496e76616c69644f726967696e0008002842616456657273696f6e0009002c4261644c6f636174696f6e000a00384e6f537562736372697074696f6e000b0044416c726561647953756273637269626564000c00003d070c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144572726f72040454000100004107086063756d756c75735f70616c6c65745f646d705f717565756528436f6e6669674461746100000401386d61785f696e646976696475616c20011857656967687400004507086063756d756c75735f70616c6c65745f646d705f71756575653450616765496e6465784461746100000c0128626567696e5f7573656410012c50616765436f756e746572000120656e645f7573656410012c50616765436f756e7465720001406f7665727765696768745f636f756e7428013c4f766572776569676874496e646578000049070000024d07004d070000040810300051070c6063756d756c75735f70616c6c65745f646d705f71756575651870616c6c6574144572726f720404540001081c556e6b6e6f776e000000244f7665724c696d69740001000055070c306f726d6c5f78746f6b656e73186d6f64756c65144572726f7204045400014c4441737365744861734e6f52657365727665000000544e6f7443726f7373436861696e5472616e736665720001002c496e76616c696444657374000200844e6f7443726f7373436861696e5472616e7366657261626c6543757272656e637900030048556e776569676861626c654d6573736167650004004858636d457865637574696f6e4661696c65640005003843616e6e6f745265616e63686f720006003c496e76616c6964416e63657374727900070030496e76616c696441737365740008006044657374696e6174696f6e4e6f74496e7665727469626c650009002842616456657273696f6e000a007444697374696e637452657365727665466f724173736574416e64466565000b001c5a65726f466565000c00285a65726f416d6f756e74000d0058546f6f4d616e794173736574734265696e6753656e74000e00544173736574496e6465784e6f6e4578697374656e74000f00304665654e6f74456e6f756768001000644e6f74537570706f727465644d756c74694c6f636174696f6e0011004c4d696e58636d4665654e6f74446566696e65640012000059070000040829012901005d07000004082901300061070c4c6f726d6c5f756e6b6e6f776e5f746f6b656e73186d6f64756c65144572726f7204045400010c3442616c616e6365546f6f4c6f770000003c42616c616e63654f766572666c6f7700010038556e68616e646c656441737365740002000065070c206f726d6c5f78636d186d6f64756c65144572726f7204045400010c2c556e726561636861626c650000002c53656e644661696c7572650001002842616456657273696f6e000200006907000004084d03f101006d070c386f726d6c5f617574686f72697479186d6f64756c65144572726f7204045400011c404661696c6564546f5363686564756c65000000384661696c6564546f43616e63656c000100444661696c6564546f46617374547261636b000200344661696c6564546f44656c61790003004443616c6c4e6f74417574686f72697a65640004005c5472696767657243616c6c4e6f745065726d69747465640005005057726f6e6743616c6c576569676874426f756e64000600007107101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454012c045300000400b10201185665633c543e00007507084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e7400011061796573050101385665633c4163636f756e7449643e0001106e617973050101385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d626572000079070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d626572000000444475706c696361746550726f706f73616c0001003c50726f706f73616c4d697373696e670002002857726f6e67496e646578000300344475706c6963617465566f746500040048416c7265616479496e697469616c697a656400050020546f6f4561726c7900060040546f6f4d616e7950726f706f73616c730007004c57726f6e6750726f706f73616c5765696768740008004c57726f6e6750726f706f73616c4c656e677468000900007d07101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e6465645665630804540100045300000400050101185665633c543e000081070c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010c34416c72656164794d656d626572000000244e6f744d656d62657200010038546f6f4d616e794d656d626572730002000085070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d626572000000444475706c696361746550726f706f73616c0001003c50726f706f73616c4d697373696e670002002857726f6e67496e646578000300344475706c6963617465566f746500040048416c7265616479496e697469616c697a656400050020546f6f4561726c7900060040546f6f4d616e7950726f706f73616c730007004c57726f6e6750726f706f73616c5765696768740008004c57726f6e6750726f706f73616c4c656e6774680009000089070c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010c34416c72656164794d656d626572000000244e6f744d656d62657200010038546f6f4d616e794d656d62657273000200008d070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d626572000000444475706c696361746550726f706f73616c0001003c50726f706f73616c4d697373696e670002002857726f6e67496e646578000300344475706c6963617465566f746500040048416c7265616479496e697469616c697a656400050020546f6f4561726c7900060040546f6f4d616e7950726f706f73616c730007004c57726f6e6750726f706f73616c5765696768740008004c57726f6e6750726f706f73616c4c656e6774680009000091070c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010c34416c72656164794d656d626572000000244e6f744d656d62657200010038546f6f4d616e794d656d626572730002000095070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d626572000000444475706c696361746550726f706f73616c0001003c50726f706f73616c4d697373696e670002002857726f6e67496e646578000300344475706c6963617465566f746500040048416c7265616479496e697469616c697a656400050020546f6f4561726c7900060040546f6f4d616e7950726f706f73616c730007004c57726f6e6750726f706f73616c5765696768740008004c57726f6e6750726f706f73616c4c656e6774680009000099070c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010c34416c72656164794d656d626572000000244e6f744d656d62657200010038546f6f4d616e794d656d62657273000200009d07101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401a107045300000400a50701185665633c543e0000a1070000040c1049030000a507000002a10700a90700000408b1051800ad070c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d62657201102050726f706f73616c0149031c42616c616e6365011801081c4f6e676f696e670400b10701c05265666572656e64756d5374617475733c426c6f636b4e756d6265722c2050726f706f73616c2c2042616c616e63653e0000002046696e6973686564080120617070726f766564f9010110626f6f6c00010c656e6410012c426c6f636b4e756d62657200010000b1070c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d62657201102050726f706f73616c0149031c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200012070726f706f73616c4903012050726f706f73616c0001247468726573686f6c641d020134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c79b507013854616c6c793c42616c616e63653e0000b5070c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e63650000b9070c4070616c6c65745f64656d6f637261637910766f746518566f74696e67101c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d6265720110204d6178566f746573000108184469726563740c0114766f746573bd0701f4426f756e6465645665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73c907015044656c65676174696f6e733c42616c616e63653e0001147072696f72cd07017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ea1040128436f6e76696374696f6e00012c64656c65676174696f6e73c907015044656c65676174696f6e733c42616c616e63653e0001147072696f72cd07017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000bd07101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401c107045300000400c50701185665633c543e0000c1070000040810210200c507000002c10700c9070c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000cd070c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000d1070000040849031d0200d5070000040810b10500d9070c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f7204045400015c2056616c75654c6f770000003c50726f706f73616c4d697373696e670001003c416c726561647943616e63656c6564000200444475706c696361746550726f706f73616c0003004c50726f706f73616c426c61636b6c6973746564000400444e6f7453696d706c654d616a6f726974790005002c496e76616c696448617368000600284e6f50726f706f73616c00070034416c72656164795665746f6564000800445265666572656e64756d496e76616c69640009002c4e6f6e6557616974696e67000a00204e6f74566f746572000b00304e6f5065726d697373696f6e000c0044416c726561647944656c65676174696e67000d0044496e73756666696369656e7446756e6473000e00344e6f7444656c65676174696e67000f0028566f746573457869737400100044496e7374616e744e6f74416c6c6f776564001100204e6f6e73656e73650012003c57726f6e675570706572426f756e640013003c4d6178566f746573526561636865640014001c546f6f4d616e790015003c566f74696e67506572696f644c6f7700160000dd070c2c6f726d6c5f6f7261636c65186d6f64756c654054696d657374616d70656456616c7565081456616c756501f0184d6f6d656e7401280008011476616c7565f0011456616c756500012474696d657374616d702801184d6f6d656e740000e1070c386f726d6c5f7574696c69746965732c6f7264657265645f736574284f7264657265645365740804540100045300000400e5070140426f756e6465645665633c542c20533e0000e507101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e6465645665630804540100045300000400050101185665633c543e0000e9070c2c6f726d6c5f6f7261636c65186d6f64756c65144572726f72080454000449000108304e6f5065726d697373696f6e00000034416c726561647946656564656400010000ed07101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e6465645665630804540100045300000400050101185665633c543e0000f1070c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010c34416c72656164794d656d626572000000244e6f744d656d62657200010038546f6f4d616e794d656d6265727300020000f5070c2c6f726d6c5f7472616974731c61756374696f6e2c41756374696f6e496e666f0c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d6265720110000c010c626964e90501704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114737461727410012c426c6f636b4e756d62657200010c656e645504014c4f7074696f6e3c426c6f636b4e756d6265723e0000f9070c306f726d6c5f61756374696f6e186d6f64756c65144572726f720404540001143c41756374696f6e4e6f7445786973740000004441756374696f6e4e6f7453746172746564000100384269644e6f7441636365707465640002003c496e76616c69644269645072696365000300504e6f417661696c61626c6541756374696f6e496400040000fd0708306f726d6c5f7265776172647320506f6f6c496e666f0c14536861726501181c42616c616e636501182843757272656e6379496401cc00080130746f74616c5f736861726573180114536861726500011c72657761726473010801a042547265654d61703c43757272656e637949642c202842616c616e63652c2042616c616e6365293e00000108042042547265654d617008044b01cc0456010508000400090800000005080000040818180009080000020d08000d0800000408cc05080011080000040891020000150800000408181908001908042042547265654d617008044b01cc0456011800040071020000001d080c306f726d6c5f72657761726473186d6f64756c65144572726f7204045400010c40506f6f6c446f65734e6f744578697374000000445368617265446f65734e6f7445786973740001006443616e53706c69744f6e6c794c6573735468616e536861726500020000210808206f726d6c5f6e667424436c617373496e666f101c546f6b656e49640128244163636f756e744964010010446174610125083c436c6173734d657461646174614f66012908001001206d657461646174612908013c436c6173734d657461646174614f66000138746f74616c5f69737375616e636528011c546f6b656e49640001146f776e65720001244163636f756e7449640001106461746125080110446174610000250808286d6f64756c655f6e667424436c61737344617461041c42616c616e63650118000c011c6465706f73697418011c42616c616e636500012870726f706572746965733505012850726f70657274696573000128617474726962757465733d0501284174747269627574657300002908101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e00002d0808206f726d6c5f6e667424546f6b656e496e666f0c244163636f756e744964010010446174610131083c546f6b656e4d657461646174614f66012908000c01206d657461646174612908013c546f6b656e4d657461646174614f660001146f776e65720001244163636f756e7449640001106461746131080110446174610000310808286d6f64756c655f6e667424546f6b656e44617461041c42616c616e636501180008011c6465706f73697418011c42616c616e6365000128617474726962757465733d05012841747472696275746573000035080000040c0010280039080c206f726d6c5f6e6674186d6f64756c65144572726f7204045400011c484e6f417661696c61626c65436c6173734964000000484e6f417661696c61626c65546f6b656e496400010034546f6b656e4e6f74466f756e6400020034436c6173734e6f74466f756e64000300304e6f5065726d697373696f6e0004004843616e6e6f7444657374726f79436c6173730005004c4d61784d657461646174614578636565646564000600003d080c346d6f64756c655f707269636573186d6f64756c65144572726f720404540001084441636365737350726963654661696c6564000000344e6f4c6f636b6564507269636500010000410808286d6f64756c655f6465784454726164696e6750616972537461747573081c42616c616e636501182c426c6f636b4e756d6265720110010c2044697361626c65640000003050726f766973696f6e696e670400450801b050726f766973696f6e696e67506172616d65746572733c42616c616e63652c20426c6f636b4e756d6265723e0001001c456e61626c656400020000450808286d6f64756c655f6465785850726f766973696f6e696e67506172616d6574657273081c42616c616e636501182c426c6f636b4e756d6265720110001001406d696e5f636f6e747269627574696f6e050801482842616c616e63652c2042616c616e6365290001407461726765745f70726f766973696f6e050801482842616c616e63652c2042616c616e636529000154616363756d756c617465645f70726f766973696f6e050801482842616c616e63652c2042616c616e6365290001286e6f745f6265666f726510012c426c6f636b4e756d62657200004908000004084d0200004d0800000408f0f00051080c286d6f64756c655f646578186d6f64756c65144572726f7204045400015c38416c7265616479456e61626c6564000000344d7573744265456e61626c6564000100484d757374426550726f766973696f6e696e67000200384d757374426544697361626c6564000300384e6f74416c6c6f7765644c69737400040070496e76616c6964436f6e747269627574696f6e496e6372656d656e7400050064496e76616c69644c6971756964697479496e6372656d656e7400060044496e76616c696443757272656e6379496400070060496e76616c696454726164696e67506174684c656e67746800080060496e73756666696369656e74546172676574416d6f756e7400090054457863657373697665537570706c79416d6f756e74000a0054496e73756666696369656e744c6971756964697479000b00405a65726f537570706c79416d6f756e74000c00405a65726f546172676574416d6f756e74000d0068556e61636365707461626c655368617265496e6372656d656e74000e0078556e61636365707461626c654c697175696469747957697468647261776e000f0050496e76617269616e74436865636b4661696c656400100050556e7175616c696669656450726f766973696f6e001100445374696c6c50726f766973696f6e696e67001200444173736574556e7265676973746572656400130048496e76616c696454726164696e6750617468001400404e6f74416c6c6f776564526566756e640015002843616e6e6f74537761700016000055080000040c5908590828005908083c7072696d69746976655f74797065731055323536000004005d0801205b7536343b20345d00005d08000003040000002800610800000418f0f05908590828280065080c446d6f64756c655f6465785f6f7261636c65186d6f64756c65144572726f7204045400011468417665726167655072696365416c7265616479456e61626c6564000000644176657261676550726963654d7573744265456e61626c65640001002c496e76616c6964506f6f6c00020044496e76616c696443757272656e6379496400030038496e74657276616c49735a65726f000400006908101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401b503045300000400b10301185665633c543e00006d0800000245020071080c546d6f64756c655f616767726567617465645f646578186d6f64756c65144572726f720404540001102843616e6e6f745377617000000034496e76616c6964506f6f6c496400010044496e76616c6964546f6b656e496e6465780002003c496e76616c6964537761705061746800030000750808586d6f64756c655f61756374696f6e5f6d616e6167657254436f6c6c61746572616c41756374696f6e4974656d08244163636f756e74496401002c426c6f636b4e756d626572011000180140726566756e645f726563697069656e740001244163636f756e74496400012c63757272656e63795f6964cc012843757272656e63794964000138696e697469616c5f616d6f756e74e8011c42616c616e6365000118616d6f756e74e8011c42616c616e6365000118746172676574e8011c42616c616e636500012873746172745f74696d6510012c426c6f636b4e756d626572000079080c586d6f64756c655f61756374696f6e5f6d616e61676572186d6f64756c65144572726f720404540001184041756374696f6e4e6f7445786973747300000038496e52657665727365537461676500010040496e76616c6964466565645072696365000200444d757374416674657253687574646f776e0003003c496e76616c6964426964507269636500040034496e76616c6964416d6f756e74000500007d0800000408cc0000810808406163616c615f7072696d69746976657320506f736974696f6e0000080128636f6c6c61746572616c18011c42616c616e6365000114646562697418011c42616c616e6365000085080c306d6f64756c655f6c6f616e73186d6f64756c65144572726f720404540001044c416d6f756e74436f6e766572744661696c656400000000890800000408007d08008d080c346d6f64756c655f686f6e7a6f6e186d6f64756c65144572726f72040454000110304e6f5065726d697373696f6e0000003c416c726561647953687574646f776e00010058417574686f72697a6174696f6e4e6f7445786973747300020044416c7265616479417574686f72697a65640003000091080c4c6d6f64756c655f6364705f7472656173757279186d6f64756c65144572726f720404540001144c436f6c6c61746572616c4e6f74456e6f75676800000050537572706c7573506f6f6c4e6f74456e6f756768000100484465626974506f6f6c4e6f74456e6f7567680002002843616e6e6f74537761700003002c4e6f74446578536861726500040000950808446d6f64756c655f6364705f656e67696e65505269736b4d616e6167656d656e74506172616d7300001401646d6178696d756d5f746f74616c5f64656269745f76616c756518011c42616c616e6365000154696e7465726573745f726174655f7065725f736563990801584f7074696f6e3c4672616374696f6e616c526174653e0001446c69717569646174696f6e5f726174696f690201344f7074696f6e3c526174696f3e00014c6c69717569646174696f6e5f70656e616c7479990801584f7074696f6e3c4672616374696f6e616c526174653e00016472657175697265645f636f6c6c61746572616c5f726174696f690201344f7074696f6e3c526174696f3e0000990804184f7074696f6e040454019d080108104e6f6e6500000010536f6d6504009d0800000100009d080c386d6f64756c655f737570706f72741c626f756e6465642c426f756e646564547970650c045401f01452616e676500304d61784368616e676541627300000400f00104540000a108101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401a4045300000400a50801185665633c543e0000a508000002a400a9080c446d6f64756c655f6364705f656e67696e65186d6f64756c65144572726f7204045400014c5c457863656564446562697456616c7565486172644361700000007042656c6f775265717569726564436f6c6c61746572616c526174696f0001005442656c6f774c69717569646174696f6e526174696f000200304d7573744265556e73616665000300284d75737442655361666500040054496e76616c6964436f6c6c61746572616c547970650005006052656d61696e446562697456616c7565546f6f536d616c6c00060070436f6c6c61746572616c416d6f756e7442656c6f774d696e696d756d00070040496e76616c6964466565645072696365000800304e6f446562697456616c75650009003c416c726561647953687574646f776e000a00444d757374416674657253687574646f776e000b004c436f6c6c61746572616c4e6f74456e6f756768000c005c4e6f74456e6f756768446562697444656372656d656e74000d0064436f6e76657274446562697442616c616e63654661696c6564000e00444c69717569646174696f6e4661696c6564000f006c546f6f4d616e794c69717569646174696f6e436f6e74726163747300100068436f6c6c61746572616c436f6e74726163744e6f74466f756e640011002c496e76616c69645261746500120000ad080c646d6f64756c655f656d657267656e63795f73687574646f776e186d6f64756c65144572726f720404540001143c416c726561647953687574646f776e000000444d757374416674657253687574646f776e0001003043616e4e6f74526566756e64000200544578697374506f74656e7469616c537572706c75730003004c4578697374556e68616e646c6564446562697400040000b1080c2c6d6f64756c655f686f6d61186d6f64756c65345374616b696e674c65646765720000080118626f6e646564e8011c42616c616e6365000124756e6c6f636b696e677d0201405665633c556e6c6f636b4368756e6b3e0000b5080000040818f90100b90800000408001000bd080000029c00c1080c2c6d6f64756c655f686f6d61186d6f64756c65144572726f720404540001244842656c6f774d696e745468726573686f6c640000005042656c6f7752656465656d5468726573686f6c640001007845786365656465645374616b696e6743757272656e6379536f66744361700002007c496e73756666696369656e74556e636c61696d6564526564656d7074696f6e000300404f75746461746564457261496e64657800040054466173744d6174636849734e6f74416c6c6f7765640005006443616e6e6f74436f6d706c6574656c79466173744d617463680006002c496e76616c69645261746500070064496e76616c69644c61737445726142756d706564426c6f636b00080000c50800000408281800c9080c506d6f64756c655f78636d5f696e74657266616365186d6f64756c65144572726f720404540001042458636d4661696c656400000000cd08000004089102cc00d1080c446d6f64756c655f696e63656e7469766573186d6f64756c65144572726f72040454000110244e6f74456e6f75676800000044496e76616c696443757272656e6379496400010034496e76616c6964506f6f6c49640002002c496e76616c69645261746500030000d5080c286d6f64756c655f6e6674186d6f64756c65144572726f7204045400012c3c436c61737349644e6f74466f756e640000003c546f6b656e49644e6f74466f756e64000100304e6f5065726d697373696f6e0002003c496e76616c69645175616e746974790003003c4e6f6e5472616e7366657261626c650004002c4e6f6e4275726e61626c650005002c4e6f6e4d696e7461626c650006004843616e6e6f7444657374726f79436c61737300070024496d6d757461626c650008004841747472696275746573546f6f4c6172676500090040496e636f7272656374546f6b656e4964000a0000d9080c546d6f64756c655f61737365745f7265676973747279186d6f64756c65144572726f720404540001102c4261644c6f636174696f6e000000504d756c74694c6f636174696f6e4578697374656400010040417373657449644e6f7445786973747300020038417373657449644578697374656400030000dd080c286d6f64756c655f65766d186d6f64756c652c4163636f756e74496e666f0414496e6465780110000801146e6f6e6365100114496e646578000134636f6e74726163745f696e666fe10801504f7074696f6e3c436f6e7472616374496e666f3e0000e10804184f7074696f6e04045401e5080108104e6f6e6500000010536f6d650400e5080000010000e5080c286d6f64756c655f65766d186d6f64756c6530436f6e7472616374496e666f00000c0124636f64655f686173682c0110483235360001286d61696e7461696e6572a4012845766d416464726573730001247075626c6973686564f9010110626f6f6c0000e90800000408a42c00ed08101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e0000f1080c286d6f64756c655f65766d186d6f64756c6520436f6465496e666f0000080124636f64655f73697a6510010c7533320001247265665f636f756e7410010c7533320000f5080c286d6f64756c655f65766d186d6f64756c65144572726f7204045400014040416464726573734e6f744d617070656400000040436f6e74726163744e6f74466f756e64000100304e6f5065726d697373696f6e00020074436f6e7472616374446576656c6f706d656e744e6f74456e61626c656400030084436f6e7472616374446576656c6f706d656e74416c7265616479456e61626c656400040060436f6e7472616374416c72656164795075626c697368656400050068436f6e7472616374457863656564734d6178436f646553697a6500060058436f6e7472616374416c726561647945786973746564000700304f75744f6653746f726167650008003c4368617267654665654661696c65640009004843616e6e6f744b696c6c436f6e7472616374000a00505265736572766553746f726167654661696c6564000b0058556e7265736572766553746f726167654661696c6564000c004c43686172676553746f726167654661696c6564000d003c496e76616c6964446563696d616c73000e004053747269637443616c6c4661696c6564000f0000f9080c446d6f64756c655f65766d5f627269646765186d6f64756c65144572726f7204045400011434457865637574696f6e4661696c0000003c457865637574696f6e52657665727400010038457865637574696f6e466174616c00020038457865637574696f6e4572726f7200030048496e76616c696452657475726e56616c756500040000fd080c4c6d6f64756c655f65766d5f6163636f756e7473186d6f64756c65144572726f72040454000114484163636f756e7449644861734d61707065640000004c457468416464726573734861734d6170706564000100304261645369676e617475726500020040496e76616c69645369676e61747572650003003c4e6f6e5a65726f526566436f756e7400040000010908606e75747366696e616e63655f737461626c655f61737365744c537461626c654173736574506f6f6c496e666f141c4173736574496401cc5041744c656173743634426974556e7369676e656401181c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011000400128706f6f6c5f6173736574cc011c41737365744964000118617373657473450201305665633c417373657449643e000128707265636973696f6e73490201645665633c41744c656173743634426974556e7369676e65643e0001206d696e745f66656518015041744c656173743634426974556e7369676e6564000120737761705f66656518015041744c656173743634426974556e7369676e656400012872656465656d5f66656518015041744c656173743634426974556e7369676e6564000130746f74616c5f737570706c7918011c42616c616e63650001046118015041744c656173743634426974556e7369676e656400011c615f626c6f636b10012c426c6f636b4e756d6265720001206675747572655f6118015041744c656173743634426974556e7369676e65640001386675747572655f615f626c6f636b10012c426c6f636b4e756d62657200012062616c616e636573490201305665633c42616c616e63653e0001346665655f726563697069656e740001244163636f756e7449640001286163636f756e745f69640001244163636f756e74496400013c7969656c645f726563697069656e740001244163636f756e744964000124707265636973696f6e18015041744c656173743634426974556e7369676e6564000005090c606e75747366696e616e63655f737461626c655f61737365741870616c6c6574144572726f7204045400012c4c496e636f6e73697374656e7453746f7261676500000040496e76616c6964506f6f6c417373657400010044417267756d656e74734d69736d6174636800020038417267756d656e74734572726f7200030030506f6f6c4e6f74466f756e64000400104d61746800050040496e76616c6964506f6f6c56616c7565000600304d696e74556e6465724d696e0007003053776170556e6465724d696e0008003852656465656d556e6465724d696e0009003452656465656d4f7665724d6178000a0000090904184f7074696f6e040454010d090108104e6f6e6500000010536f6d6504000d0900000100000d090c4c706f6c6b61646f745f7072696d69746976657308763248557067726164655265737472696374696f6e0001041c50726573656e740000000011090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f686561642c014472656c61795f636861696e3a3a4861736800016472656c61795f64697370617463685f71756575655f73697a65780128287533322c2075333229000140696e67726573735f6368616e6e656c73150901885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73150901885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000015090000021909001909000004081d011d09001d090c4c706f6c6b61646f745f7072696d6974697665730876324c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164150101304f7074696f6e3c486173683e000021090c4c706f6c6b61646f745f7072696d697469766573087632644162726964676564486f7374436f6e66696775726174696f6e00002401346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d62657200002509089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e000004002c012452656c61794861736800002909042042547265654d617008044b011d0104560125090004002d090000002d090000023109003109000004081d01250900350900000239090039090860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d65737361676504084964011d0100080124726563697069656e741d01010849640001106461746130015073705f7374643a3a7665633a3a5665633c75383e00003d090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000005050726f686962697465644279506f6c6b61646f7400010018546f6f4269670002006856616c69646174696f6e446174614e6f74417661696c61626c6500030074486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000400304e6f745363686564756c6564000500444e6f7468696e67417574686f72697a656400060030556e617574686f72697a65640007000041090c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000000045090c406163616c615f7072696d6974697665734c756e636865636b65645f65787472696e7369635c4163616c61556e636865636b656445787472696e736963181043616c6c014d0314457874726101490930436f6e766572744574685478005453746f726167654465706f736974506572427974650175092c547846656550657247617301790930436865636b50617965725478000004007d0901f4556e636865636b656445787472696e7369633c416464726573732c2043616c6c2c204163616c614d756c74695369676e61747572652c2045787472613e00004909000004244d095109550959095d09650969096d097109004d0910306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000510910306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000550910306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000590910306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000005d0910306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004006109010c45726100006109102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff000065090c3872756e74696d655f636f6d6d6f6e2c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000401146e6f6e636535010120543a3a496e6465780000690910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000006d0908286d6f64756c655f65766d3053657445766d4f726967696e04045400000000710908686d6f64756c655f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8014850616c6c657442616c616e63654f663c543e0000750908346163616c615f72756e74696d655453746f726167654465706f7369745065724279746500000000790908346163616c615f72756e74696d652c5478466565506572476173000000007d09102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d031043616c6c014d03245369676e61747572650181091445787472610149090004003000000081090c406163616c615f7072696d697469766573247369676e61747572654c4163616c614d756c74695369676e61747572650001181c4564323535313904009d030148656432353531393a3a5369676e61747572650000001c537232353531390400a5030148737232353531393a3a5369676e61747572650001001445636473610400a903014065636473613a3a5369676e617475726500020020457468657265756d0400ad0301205b75383b2036355d0003001c456970313535390400ad0301205b75383b2036355d0004002c4163616c614569703731320400ad0301205b75383b2036355d000500000d011853797374656d011853797374656d401c4163636f756e7401010402000c41010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003845787472696e736963436f756e740000100400002c426c6f636b57656967687401001c180000000000000040416c6c45787472696e736963734c656e00001004000024426c6f636b4861736801010405102c800000000000000000000000000000000000000000000000000000000000000000003445787472696e73696344617461010104051030040000184e756d62657201001010000000000028506172656e744861736801002c8000000000000000000000000000000000000000000000000000000000000000000018446967657374010034040000184576656e7473010044040000284576656e74436f756e740100101000000000002c4576656e74546f70696373010104022ced02040000484c61737452756e74696d65557067726164650000f102040000545570677261646564546f553332526566436f756e740100f901040000605570677261646564546f547269706c65526566436f756e740100f90104000038457865637574696f6e50686173650000e90204000001f50201501830426c6f636b5765696768747309036d01e2817a5500070088526a7402004001c2e49817000107d07e7ed3450200c0000107002ca07d510200e000010000c2e49817000107d0da30c0680200200101070088526a74020040010107005cb2ec2202006000c2e4981700000000002c426c6f636b4c656e6774681903300000380000005000000050000038426c6f636b48617368436f756e741010b00400000020446257656967687421034040787d010000000000e1f50500000000001c56657273696f6e2503e902146163616c61146163616c61010000007a0800000000000034df6acb689907609b0400000037e397fc7c91f5e40100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000dd718d5cc53262d401000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a8020000006ef953004ba30e5901000000955e168e0cfb340901000000e3df3f2aa8a5cc5702000000ea93e3f16f3d69620200000002000000000028535335385072656669789c080a0000013503002454696d657374616d70012454696d657374616d70080c4e6f7701002820000000000000000000244469645570646174650100f9010400000139030004344d696e696d756d506572696f6428207017000000000000000001245363686564756c657201245363686564756c65720c3c496e636f6d706c65746553696e6365000010040000184167656e646101010405103d03040000184c6f6f6b7570000104050478040000015103017408344d6178696d756d57656967687420280700a0db215d0200000100504d61785363686564756c6564506572426c6f636b10100a0000000001a105021c5574696c697479000159030188044c626174636865645f63616c6c735f6c696d69741010aa2a00000001a50503204d756c746973696701204d756c746973696704244d756c7469736967730001080502a905ad05040000016103018c0c2c4465706f7369744261736518400050b49daf030000000000000000000000344465706f736974466163746f72184000c0687804000000000000000000000000384d61785369676e61746f726965731010640000000001b505041450726f7879011450726f7879081c50726f786965730101040500b9054400000000000000000000000000000000000034416e6e6f756e63656d656e74730101040500c905440000000000000000000000000000000000000169030194184050726f78794465706f7369744261736518400070ae70a40300000000000000000000004850726f78794465706f736974466163746f72184000062c9c04000000000000000000000000284d617850726f7869657310102000000000284d617850656e64696e67101020000000005c416e6e6f756e63656d656e744465706f7369744261736518400070ae70a403000000000000000000000064416e6e6f756e63656d656e744465706f736974466163746f721840000c58380900000000000000000000000001d90505405472616e73616374696f6e506175736501405472616e73616374696f6e506175736508485061757365645472616e73616374696f6e73000104050103840400005050617573656445766d507265636f6d70696c657300010402a48404000001750301a00001dd05063449646c655363686564756c6572013449646c655363686564756c65720c145461736b730001040510b0040000284e6578745461736b49640100101000000000006050726576696f757352656c6179426c6f636b4e756d62657201001010000000000001790301ac08684d696e696d756d57656967687452656d61696e496e426c6f636b20280700e40b540266660600005444697361626c65426c6f636b5468726573686f6c6410100600000000000720507265696d6167650120507265696d6167650824537461747573466f72000104062ce1050400002c507265696d616765466f7200010406ed05f105040000017d0301bc0001f505082042616c616e636573012042616c616e6365731434546f74616c49737375616e63650100184000000000000000000000000000000000001c4163636f756e7401010402001401010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000144c6f636b730101040200f905040000205265736572766573010104020009060400003853746f7261676556657273696f6e0100190604000001810301c00c484578697374656e7469616c4465706f736974184000e8764817000000000000000000000000204d61784c6f636b73101032000000002c4d6178526573657276657310100700000000011d060a18546f6b656e730118546f6b656e731034546f74616c49737375616e636501010405cc18400000000000000000000000000000000000144c6f636b73010108020521062506040000204163636f756e7473010108020521063106c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002052657365727665730101080205210635060400000001c808204d61784c6f636b73101032000000002c4d61785265736572766573101007000000000141060b2843757272656e636965730001850301dc084c4765744e617469766543757272656e63794964cc080000004c4572633230486f6c64696e674163636f756e74a450000000000000000000ff00000000000000000000000145060c1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200490604000001890301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000000014d060d485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7418444e6578744665654d756c7469706c6965720100f040000064a7b3b6e00d00000000000000000058416c7465726e617469766546656553776170506174680001040500510604000044476c6f62616c466565537761705061746800010405cc510604000020506f6f6c53697a6501010405cc1840000000000000000000000000000000000044546f6b656e45786368616e67655261746500010405ccf0040000505377617042616c616e63655468726573686f6c6401010405cc1840000000000000000000000000000000000001910301ec34404e617469766543757272656e63794964cc08000000485472616e73616374696f6e4279746546656518408096980000000000000000000000000000604f7065726174696f6e616c4665654d756c7469706c696572282000407a10f35a0000004054697050657257656967687453746570184000e40b5402000000000000000000000000444d6178546970734f665072696f7269747918400000c16ff286230000000000000000000064416c7465726e6174697665466565537761704465706f736974184000e8764817000000000000000000000000784d617853776170536c697070616765436f6d70617265546f4f7261636c65f04000008a5d784563010000000000000000004054726164696e67506174684c696d6974101004000000002050616c6c657449645506206163612f66656573003c54726561737572794163636f756e7400806d6f646c6163612f7472737900000000000000000000000000000000000000000040437573746f6d466565537572706c7573590604320054416c7465726e6174697665466565537572706c757359060419004044656661756c74466565546f6b656e73450230100001040d0000000002000300015d060e205472656173757279012054726561737572790c3450726f706f73616c436f756e740100101000000000002450726f706f73616c730001040510610604000024417070726f76616c730100650604000001b90301f41c3050726f706f73616c426f6e646d061050c30000004c50726f706f73616c426f6e644d696e696d756d184000a0724e180900000000000000000000004c50726f706f73616c426f6e644d6178696d756dfd04440100203d88792d00000000000000000000002c5370656e64506572696f641010c089010000104275726e6d061000000000002050616c6c657449645506206163612f7472737900304d6178417070726f76616c7310101e000000000171061420426f756e746965730120426f756e74696573102c426f756e7479436f756e7401001010000000000020426f756e746965730001040510750604000048426f756e74794465736372697074696f6e7300010405107d060400003c426f756e7479417070726f76616c730100650604000001bd0301f82444426f756e74794465706f73697442617365184000409452a303000000000000000000000060426f756e74794465706f7369745061796f757444656c61791010c0a800000048426f756e7479557064617465506572696f64101060d80300006043757261746f724465706f7369744d756c7469706c6965726d061020a10700004443757261746f724465706f7369744d6178fd04440100407a10f35a00000000000000000000004443757261746f724465706f7369744d696efd0444010010a5d4e800000000000000000000000048426f756e747956616c75654d696e696d756d1840005039278c04000000000000000000000048446174614465706f7369745065724279746518400046c323000000000000000000000000004c4d6178696d756d526561736f6e4c656e67746810100020000000018106151054697073011054697073081054697073000104052c85060400001c526561736f6e73000104062c3004000001c10301fc144c4d6178696d756d526561736f6e4c656e6774681010002000000048446174614465706f7369745065724279746518400046c3230000000000000000000000000030546970436f756e74646f776e101040380000003454697046696e646572734665655906040500505469705265706f72744465706f73697442617365184000409452a3030000000000000000000000018d06163450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e496401001d01106400000000000000001f28417574686f72736869700128417574686f72736869700c18556e636c65730100910604000018417574686f7200000004000030446964536574556e636c65730100f90104000001c503000440556e636c6547656e65726174696f6e7310100000000000019d062844436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1834496e76756c6e657261626c65730100a1060400002843616e646964617465730100a506040000444465736972656443616e646964617465730100101000000000003443616e646964616379426f6e640100184000000000000000000000000000000000003453657373696f6e506f696e7473010104050010100000000000344e6f6e43616e6469646174657301010405001010000000000001d5030101011c14506f7449645506206163612f63706f7400344d696e43616e6469646174657310100100000000344d617843616e6469646174657310103200000000404d6178496e76756c6e657261626c657310100a00000000604b69636b50656e616c747953657373696f6e4c656e6774681010080000000054436f6c6c61746f724b69636b5468726573686f6c646d0610c027090000644d696e52657761726444697374726962757465416d6f756e741840000000000000000000000000000000000001ad06291c53657373696f6e011c53657373696f6e1c2856616c696461746f7273010005010400003043757272656e74496e646578010010100000000000345175657565644368616e6765640100f901040000285175657565644b6579730100b1060400004844697361626c656456616c696461746f727301006906040000204e6578744b6579730001040500dd03040000204b65794f776e657200010405b9060004000001d9030109010001c1062a1041757261011041757261082c417574686f7269746965730100c5060400002c43757272656e74536c6f740100cd0620000000000000000000000000002b1c41757261457874011c41757261457874042c417574686f7269746965730100c506040000000000002c3853657373696f6e4d616e61676572013853657373696f6e4d616e616765720c3c53657373696f6e4475726174696f6e010010100000000000384475726174696f6e4f66667365740100101000000000005853657373696f6e4475726174696f6e4368616e6765730101040510782000000000000000000001e903010d010001d1062d2458636d705175657565012458636d7051756575652444496e626f756e6458636d705374617475730100d5060400004c496e626f756e6458636d704d657373616765730101080205ed0630040000484f7574626f756e6458636d705374617475730100f106040000504f7574626f756e6458636d704d657373616765730101080205fd0630040000385369676e616c4d65737361676573010104021d01300400002c5175657565436f6e6669670100010774020000000500000001000000821a06000008000700c817a8040200040000284f766572776569676874000104052805070400003c4f766572776569676874436f756e740100282000000000000000000038517565756553757370656e6465640100f90104000001ed0301110100010907322c506f6c6b61646f7458636d012c506f6c6b61646f7458636d24305175657279436f756e746572010028200000000000000000001c5175657269657300010402280d070400002841737365745472617073010104062c10100000000000385361666558636d56657273696f6e00001004000040537570706f7274656456657273696f6e00010805021d07100400004056657273696f6e4e6f7469666965727300010805021d07280400005056657273696f6e4e6f746966795461726765747300010805021d0721070400005456657273696f6e446973636f766572795175657565010025070400004043757272656e744d6967726174696f6e0000310704000001f10301210100013907332843756d756c757358636d000001b10100013d073420446d7051756575650120446d7051756575651034436f6e66696775726174696f6e01004107280700e40b540202000400002450616765496e6465780100450740000000000000000000000000000000000014506167657301010402104907040000284f76657277656967687400010402284d0704000001590401b50100015107351c58546f6b656e7300015d0401b901083053656c664c6f636174696f6e290114010100411f00344261736558636d576569676874282000e1f50500000000000155073634556e6b6e6f776e546f6b656e730134556e6b6e6f776e546f6b656e730860436f6e637265746546756e6769626c6542616c616e636573010108020259071840000000000000000000000000000000000060416273747261637446756e6769626c6542616c616e63657301010802025d07184000000000000000000000000000000000000001bd0100016107371c4f726d6c58636d0001650401c101000165073824417574686f726974790124417574686f7269747908344e6578745461736b496e64657801001010000000000028536176656443616c6c73000104062c690704000001690401c50100016d073c3847656e6572616c436f756e63696c013847656e6572616c436f756e63696c182450726f706f73616c73010071070400002850726f706f73616c4f66000104062c4d0304000018566f74696e67000104062c75070400003450726f706f73616c436f756e740100101000000000001c4d656d6265727301000501040000145072696d65000000040000017d0401f501000179073d6047656e6572616c436f756e63696c4d656d62657273686970016047656e6572616c436f756e63696c4d656d62657273686970081c4d656d6265727301007d07040000145072696d6500000004000001810401fd01000181073e4046696e616e6369616c436f756e63696c014046696e616e6369616c436f756e63696c182450726f706f73616c73010071070400002850726f706f73616c4f66000104062c4d0304000018566f74696e67000104062c75070400003450726f706f73616c436f756e740100101000000000001c4d656d6265727301000501040000145072696d65000000040000018504010102000185073f6846696e616e6369616c436f756e63696c4d656d62657273686970016846696e616e6369616c436f756e63696c4d656d62657273686970081c4d656d6265727301007d07040000145072696d6500000004000001890401050200018907402c486f6d61436f756e63696c012c486f6d61436f756e63696c182450726f706f73616c73010071070400002850726f706f73616c4f66000104062c4d0304000018566f74696e67000104062c75070400003450726f706f73616c436f756e740100101000000000001c4d656d6265727301000501040000145072696d65000000040000018d0401090200018d074154486f6d61436f756e63696c4d656d626572736869700154486f6d61436f756e63696c4d656d62657273686970081c4d656d6265727301007d07040000145072696d65000000040000019104010d02000191074248546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c73010071070400002850726f706f73616c4f66000104062c4d0304000018566f74696e67000104062c75070400003450726f706f73616c436f756e740100101000000000001c4d656d6265727301000501040000145072696d65000000040000019504011102000195074370546563686e6963616c436f6d6d69747465654d656d626572736869700170546563686e6963616c436f6d6d69747465654d656d62657273686970081c4d656d6265727301007d07040000145072696d6500000004000001990401150200019907442444656d6f6372616379012444656d6f63726163792c3c5075626c696350726f70436f756e740100101000000000002c5075626c696350726f707301009d07040000244465706f7369744f660001040510a9070400003c5265666572656e64756d436f756e74010010100000000000344c6f77657374556e62616b6564010010100000000000405265666572656e64756d496e666f4f660001040510ad0704000020566f74696e674f660101040500b907d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000544c6173745461626c656457617345787465726e616c0100f901040000304e65787445787465726e616c0000d10704000024426c61636b6c697374000104062cd5070400003443616e63656c6c6174696f6e73010104062cf901040000019d04011902303c456e6163746d656e74506572696f6410104038000000304c61756e6368506572696f641010a08c00000030566f74696e67506572696f641010a08c00000044566f74654c6f636b696e67506572696f641010c089010000384d696e696d756d4465706f73697418400080c6a47e8d030000000000000000000038496e7374616e74416c6c6f776564f9010401005446617374547261636b566f74696e67506572696f641010840300000034436f6f6c6f6666506572696f641010e0c4000000204d6178566f74657310106400000000304d617850726f706f73616c73101064000000002c4d61784465706f7369747310106400000000384d6178426c61636b6c69737465641010640000000001d907452c4163616c614f7261636c65012c4163616c614f7261636c650c2452617756616c75657300010805052106dd070400001856616c75657300010405ccdd0704000034486173446973706174636865640100e10704000001a5040129020854526f6f744f70657261746f724163636f756e7449640080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00504d61784861734469737061746368656453697a651010140000000001e907465c4f70657261746f724d656d626572736869704163616c61015c4f70657261746f724d656d626572736869704163616c61081c4d656d626572730100ed07040000145072696d6500000004000001a9040135020001f107471c41756374696f6e011c41756374696f6e0c2041756374696f6e730001040510f5070400003441756374696f6e73496e6465780100101000000000003841756374696f6e456e6454696d650001080502788404000001ad040139020001f907501c52657761726473011c526577617264730824506f6f6c496e666f73010104059102fd074400000000000000000000000000000000000064536861726573416e6457697468647261776e526577617264730101080505110815084400000000000000000000000000000000000001b1040000011d08511c4f726d6c4e4654011c4f726d6c4e4654142c4e657874436c61737349640100101000000000002c4e657874546f6b656e4964010104051028200000000000000000001c436c61737365730001040510210804000018546f6b656e73000108050541052d0804000034546f6b656e7342794f776e657201010c020202350884000000000001390852185072696365730118507269636573042c4c6f636b6564507269636500010405ccf004000001b504013d02144c476574537461626c6543757272656e63794964cc0800010060537461626c6543757272656e637946697865645072696365f040000064a7b3b6e00d000000000000000000504765745374616b696e6743757272656e63794964cc080002004c4765744c697175696443757272656e63794964cc08000300705265776172645261746550657252656c6179636861696e426c6f636bf040000659cd05000000000000000000000000013d085a0c446578010c44657810344c6971756964697479506f6f6c010104054d020508800000000000000000000000000000000000000000000000000000000000000000004c54726164696e67506169725374617475736573010104054d0241080400004050726f766973696f6e696e67506f6f6c0101080505490805088000000000000000000000000000000000000000000000000000000000000000000064496e697469616c536861726545786368616e67655261746573010104054d024d088000000000000000000000000000000000000000000000000000000000000000000001b904014102103847657445786368616e6765466565782003000000e8030000004054726164696e67506174684c696d6974101004000000002050616c6c657449645506206163612f6465786d0068457874656e64656450726f766973696f6e696e67426c6f636b73101040380000000151085b244465784f7261636c6501244465784f7261636c65082c43756d756c617469766573010104054d0255082101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003441766572616765507269636573000104054d02610804000001bd0400000165085c3441676772656761746564446578013441676772656761746564446578044c4167677265676174656453776170506174687300010405cd04690804000001c104000840446578537761704a6f696e744c6973746d08401004040d000000040002040003040001003453776170506174684c696d6974101003000000000171085d3841756374696f6e4d616e61676572013841756374696f6e4d616e616765720c48436f6c6c61746572616c41756374696f6e730001040510750804000060546f74616c436f6c6c61746572616c496e41756374696f6e01010405cc1840000000000000000000000000000000000050546f74616c546172676574496e41756374696f6e01001840000000000000000000000000000000000001d50401510214504d696e696d756d496e6372656d656e7453697a65f040000082dfe40d47000000000000000000004841756374696f6e54696d65546f436c6f736510104b000000005841756374696f6e4475726174696f6e536f66744361701010201c0000004c476574537461626c6543757272656e63794964cc0800010040556e7369676e65645072696f72697479282030e8ab75a40d00000001790864144c6f616e7301144c6f616e730824506f736974696f6e7301010805057d0881088000000000000000000000000000000000000000000000000000000000000000000038546f74616c506f736974696f6e7301010405cc81088000000000000000000000000000000000000000000000000000000000000000000001d904015502042050616c6c657449645506206163612f6c6f616e000185086518486f6e7a6f6e0118486f6e7a6f6e0434417574686f72697a6174696f6e000108050289081804000001dd04015d02045c4465706f736974506572417574686f72697a6174696f6e184000c06543ac030000000000000000000000018d08662c4364705472656173757279012c43647054726561737572790c744578706563746564436f6c6c61746572616c41756374696f6e53697a6501010405cc18400000000000000000000000000000000000244465626974506f6f6c0100184000000000000000000000000000000000004444656269744f666673657442756666657201001840000000000000000000000000000000000001e104016102104c476574537461626c6543757272656e63794964cc08000100404d617841756374696f6e73436f756e74101032000000003c54726561737572794163636f756e7400806d6f646c6163612f687a74720000000000000000000000000000000000000000002050616c6c657449645506206163612f63647074000191086724436470456e67696e650124436470456e67696e651044446562697445786368616e67655261746500010405ccf004000040436f6c6c61746572616c506172616d7300010405cc9508040000504c617374416363756d756c6174696f6e5365637301002820000000000000000000504c69717569646174696f6e436f6e7472616374730100a10804000001e904016502285c44656661756c744c69717569646174696f6e526174696ff0400000167b0d12d1140000000000000000006044656661756c74446562697445786368616e676552617465f04000008a5d784563010000000000000000006444656661756c744c69717569646174696f6e50656e616c74799d08400000087e93371c01000000000000000000444d696e696d756d446562697456616c7565184000203d88792d00000000000000000000004c476574537461626c6543757272656e63794964cc08000100784d617853776170536c697070616765436f6d70617265546f4f7261636c65f04000008a5d7845630100000000000000000040556e7369676e65645072696f72697479282018ecab75a40d000000784d61784c69717569646174696f6e436f6e7472616374536c697070616765f04000004f8c34e814020000000000000000005c4d61784c69717569646174696f6e436f6e74726163747310100a000000002050616c6c657449645506206163612f636470650001a9086844456d657267656e637953687574646f776e0144456d657267656e637953687574646f776e0828497353687574646f776e0100f9010400002443616e526566756e640100f90104000001f504016d020001ad086910486f6d610110486f6d61385052656c6179436861696e43757272656e74457261010010100000000000385374616b696e674c656467657273000104059cb10804000048546f74616c5374616b696e67426f6e64656401001840000000000000000000000000000000000028546f426f6e64506f6f6c0100184000000000000000000000000000000000003c546f74616c566f69644c69717569640100184000000000000000000000000000000000004c556e636c61696d6564526564656d7074696f6e0100184000000000000000000000000000000000003852656465656d52657175657374730001040500b50804000028556e626f6e64696e67730101080505b9081840000000000000000000000000000000000064457374696d617465645265776172645261746550657245726101009d0840000000000000000000000000000000000068536f6674426f6e6465644361705065725375624163636f756e7401001840000000000000000000000000000000000038436f6d6d697373696f6e5261746501009d0840000000000000000000000000000000000040466173744d617463684665655261746501009d08400000000000000000000000000000000000484c61737445726142756d706564426c6f636b0100101000000000004042756d704572614672657175656e637901001010000000000001f90401790224445374616b696e6743757272656e63794964cc08000200404c697175696443757272656e63794964cc080003002050616c6c657449645506206163612f686f6d61004c44656661756c7445786368616e676552617465f04000008a5d784563010000000000000000003c54726561737572794163636f756e7400806d6f646c6163612f686d7472000000000000000000000000000000000000000000684163746976655375624163636f756e7473496e6465784c697374bd080c040000003c426f6e64696e674475726174696f6e10101c00000000344d696e745468726573686f6c64184000743ba40b0000000000000000000000003c52656465656d5468726573686f6c6418400088526a7400000000000000000000000001c108743058636d496e74657266616365013058636d496e74657266616365044c58636d44657374576569676874416e64466565010104058902c5086000000000000000000000000000000000000000000000000000010d050185020c445374616b696e6743757272656e63794964cc080002004050617261636861696e4163636f756e74008070617261d0070000000000000000000000000000000000000000000000000000008052656c6179436861696e556e626f6e64696e67536c617368696e675370616e731010050000000001c9087528496e63656e74697665730128496e63656e74697665730c58496e63656e74697665526577617264416d6f756e74730101080505cd081840000000000000000000000000000000000064436c61696d526577617264446564756374696f6e52617465730101040591029d084000000000000000000000000000000000004c50656e64696e674d756c746952657761726473010108050511081908040000011d05018d021440416363756d756c617465506572696f6410100500000000404e617469766543757272656e63794964cc080000003452657761726473536f7572636500806d6f646c6163612f75726c73000000000000000000000000000000000000000000404561726e5368617265426f6f737465726d0610e0930400002050616c6c657449645506206163612f696e63740001d108780c4e4654000131050195021448437265617465436c6173734465706f736974184000203d88792d000000000000000000000048437265617465546f6b656e4465706f736974184000d0ed902e00000000000000000000000048446174614465706f7369745065724279746518400046c323000000000000000000000000002050616c6c657449645506206163612f614e465400484d61784174747269627574657342797465731010000800000001d50879344173736574526567697374727901344173736574526567697374727918484e657874466f726569676e4173736574496401009c08000000444e657874537461626c654173736574496401001010000000000054466f726569676e41737365744c6f636174696f6e73000104059c2901040000544c6f636174696f6e546f43757272656e6379496473000104052901cc0400004045726332304964546f416464726573730001040510a40400003841737365744d657461646174617300010405a1029d0204000001450501990204445374616b696e6743757272656e63794964cc0800020001d9087a0c45564d010c45564d201c436861696e496401002820000000000000000000204163636f756e747300010405a4dd0804000050436f6e747261637453746f7261676553697a657301010405a4101000000000003c4163636f756e7453746f72616765730101080502e9082c8000000000000000000000000000000000000000000000000000000000000000000014436f646573010104062ced0804000024436f6465496e666f73000104062cf108040000504e6574776f726b436f6e7472616374496e646578010028200000000000000000003c45787472696e7369634f726967696e0000050104000001490501a5021c544e6577436f6e747261637445787472614279746573101010270000005453746f726167654465706f73697450657242797465184000c06e31d91001000000000000000000002c547846656550657247617318400000ed902e000000000000000000000000544e6574776f726b436f6e7472616374536f75726365a45000000000000000000000000000000000000000000040446576656c6f7065724465706f736974184000203d88792d0000000000000000000000385075626c69636174696f6e466565184000a0724e180900000000000000000000003c54726561737572794163636f756e7400806d6f646c6163612f7472737900000000000000000000000000000000000000000001f508822445564d4272696467650000000001f908832c45766d4163636f756e7473012c45766d4163636f756e747308204163636f756e747300010405a4000400003045766d4164647265737365730001040500a404000001590501d902041c436861696e4964282013030000000000000001fd08842c537461626c654173736574012c537461626c6541737365740824506f6f6c436f756e7401001010000000000014506f6f6c7300010402100109040000015d0501dd02142050616c6c657449645506206e7574732f7374610030466565507265636973696f6e184000e40b54020000000000000000000000004c5377617045786163744f766572416d6f756e74184064000000000000000000000000000000002841507265636973696f6e1840640000000000000000000000000000000038506f6f6c41737365744c696d697410100500000000010509c83c50617261636861696e53797374656d013c50617261636861696e53797374656d545450656e64696e6756616c69646174696f6e436f6465010030040000444e657756616c69646174696f6e436f64650000300400003856616c69646174696f6e44617461000069050400005044696453657456616c69646174696f6e436f64650100f901040000644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000060557067726164655265737472696374696f6e5369676e616c010009090400003c52656c6179537461746550726f6f66000071050400005852656c6576616e744d6573736167696e6753746174650000110904000044486f7374436f6e66696775726174696f6e00002109040000384c617374446d714d7163486561640100250980000000000000000000000000000000000000000000000000000000000000000000404c61737448726d704d71634865616473010029090400006450726f636573736564446f776e776172644d657373616765730100101000000000003448726d7057617465726d61726b0100101000000000005048726d704f7574626f756e644d6573736167657301003509040000385570776172644d65737361676573010005030400005450656e64696e675570776172644d657373616765730100050304000084416e6e6f756e63656448726d704d6573736167657350657243616e64696461746501001010000000000068526573657276656458636d705765696768744f76657272696465000020040000645265736572766564446d705765696768744f7665727269646500002004000044417574686f72697a65645570677261646500002c04000060437573746f6d56616c69646174696f6e486561644461746100003004000001610501e10200013d091e105375646f01105375646f040c4b657900000004000001950501e50200014109ff4509042448436865636b4e6f6e5a65726f53656e6465724d098440436865636b5370656356657273696f6e51091038436865636b547856657273696f6e55091030436865636b47656e6573697359092c38436865636b4d6f7274616c6974795d092c28436865636b4e6f6e63656509842c436865636b5765696768746909843053657445766d4f726967696e6d0984604368617267655472616e73616374696f6e5061796d656e74710984b8"`; diff --git a/packages/e2e/src/__snapshots__/decoder.test.ts.snap b/packages/e2e/src/__snapshots__/decoder.test.ts.snap index 928e40ef..8dd47372 100644 --- a/packages/e2e/src/__snapshots__/decoder.test.ts.snap +++ b/packages/e2e/src/__snapshots__/decoder.test.ts.snap @@ -1,6 +1,28 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`decoder > decode key-value 1`] = ` +exports[`decoder > with acala > decode key-value 1`] = ` +{ + "key": [ + "25fqepuLngYL2DK9ApTejNzqPadUUZ9ALYyKWX2jyvEiuZLa", + ], + "method": "account", + "section": "system", + "value": { + "consumers": "0", + "data": { + "feeFrozen": "0", + "free": "10,000,000,000", + "miscFrozen": "0", + "reserved": "0", + }, + "nonce": "0", + "providers": "0", + "sufficients": "0", + }, +} +`; + +exports[`decoder > with acala > decode key-value 2`] = ` { "system": { "account": { @@ -21,7 +43,25 @@ exports[`decoder > decode key-value 1`] = ` } `; -exports[`decoder > decode key-value 2`] = ` +exports[`decoder > with acala > decode key-value 3`] = ` +{ + "key": [ + "25fqepuLngYL2DK9ApTejNzqPadUUZ9ALYyKWX2jyvEiuZLa", + { + "token": "ACA", + }, + ], + "method": "accounts", + "section": "tokens", + "value": { + "free": "10,000,000,000", + "frozen": "0", + "reserved": "0", + }, +} +`; + +exports[`decoder > with acala > decode key-value 4`] = ` { "tokens": { "accounts": { @@ -37,7 +77,108 @@ exports[`decoder > decode key-value 2`] = ` } `; +exports[`decoder > with acala > decode key-value 5`] = ` +{ + "key": [], + "method": "now", + "section": "timestamp", + "value": "64,188,750,128,742,400", +} +`; + +exports[`decoder > with acala > decode key-value 6`] = ` +{ + "timestamp": { + "now": "64,188,750,128,742,400", + }, +} +`; + +exports[`decoder > with acala > decode keys 1`] = ` +{ + "decodedKey": "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", + "storage": [Function], +} +`; + +exports[`decoder > with acala > works with well known keys 1`] = ` +{ + "key": [], + "method": "code", + "section": "substrate", + "value": "<:code blake2_256 0x97e86e044a53385b642a902fd8ed05534d7590412a608f43dbb70e1f0e3664c7 (4 bytes)>", +} +`; + +exports[`decoder > with acala > works with well known keys 2`] = ` +{ + "key": [ + 3340, + ], + "method": "relayDispatchQueueRemainingCapacity", + "section": "substrate", + "value": [ + 174762, + 1048576, + ], +} +`; + +exports[`decoder > with acala > works with well known keys 3`] = ` +{ + "key": [], + "method": "transactionLevel", + "section": "substrate", + "value": undefined, +} +`; + +exports[`decoder > with acala > works with well known keys 4`] = ` +{ + "key": [], + "method": "extrinsicIndex", + "section": "substrate", + "value": 2, +} +`; + +exports[`decoder > with acala > works with well known keys 5`] = ` +{ + "key": [ + 2000, + ], + "method": "relay_dispatch_queue_size", + "section": "substrate", + "value": [ + 1, + 67, + ], +} +`; + exports[`decoder > works with multiple chains 1`] = ` +{ + "key": [ + "15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5", + ], + "method": "account", + "section": "system", + "value": { + "consumers": "0", + "data": { + "feeFrozen": "0", + "free": "10,000,000,000", + "miscFrozen": "0", + "reserved": "0", + }, + "nonce": "0", + "providers": "0", + "sufficients": "0", + }, +} +`; + +exports[`decoder > works with multiple chains 2`] = ` { "system": { "account": { diff --git a/packages/e2e/src/__snapshots__/dry-run-extrinsic.test.ts.snap b/packages/e2e/src/__snapshots__/dry-run-extrinsic.test.ts.snap index 96d202c0..d39925e6 100644 --- a/packages/e2e/src/__snapshots__/dry-run-extrinsic.test.ts.snap +++ b/packages/e2e/src/__snapshots__/dry-run-extrinsic.test.ts.snap @@ -10,37 +10,33 @@ exports[`dry-run-extrinsic > dry run extrinsic 1`] = ` exports[`dry-run-extrinsic > dry run extrinsic 2`] = ` [ + [ + "0x1da53b775b270400e7e61ed5cbc5a146c726478796bad0b9cabd7481dbe64983", + undefined, + ], [ "0x26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850", "0x0e000000", ], [ - "0x3a7472616e73616374696f6e5f6c6576656c3a", - undefined, + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96", + "0xa279094100000007493c6ebb0100", ], [ - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da98a437914f3dd43c1f1f4289c5f1baa47d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69", - "0x000000000000000001000000000000000010a5d4e80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7", + "0x38020b0a00016d6f646c6163612f63647074000000000000000000000000000000000000000011971a0007000000000000000000000000020b0a00016d6f646c6163612f636470740000000000000000000000000000000000000000cf75186100000000000000000000000000020b0a00016d6f646c6163612f636470740000000000000000000000000000000000000000b987cd2800000000000000000000000000020b0a00016d6f646c6163612f636470740000000000000000000000000000000000000000d16694700100000000000000000000000000000000000000c2321f3e0002000000010000000000c2e498170002010000020000000a0888dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0eedca5a0920000000000000000000000000000020000000003d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae690000020000000a00d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae690010a5d4e800000000000000000000000000020000000a0288dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0eed17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae690010a5d4e800000000000000000000000000020000000a076d6f646c6163612f747273790000000000000000000000000000000000000000dca5a0920000000000000000000000000000020000001406dca5a0920000000000000000000000000000020000000e0388dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0eedca5a09200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000a279094100000000", ], [ - "0x3a65787472696e7369635f696e646578", - "0x03000000", + "0x26aa394eea5630e07c48ae0c9558cef7a86da5a932684f199539836fcb8c886f", + "0x68150000", ], [ "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9280b197190fc1a763257f65171ea366e88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee", "0x0100000000000000010000000000000024ca803d958c03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", ], [ - "0x26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a", - "0x0003000000", - ], - [ - "0x1da53b775b270400e7e61ed5cbc5a146c726478796bad0b9cabd7481dbe64983", - undefined, - ], - [ - "0x26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7", - "0x38020b0a00016d6f646c6163612f63647074000000000000000000000000000000000000000011971a0007000000000000000000000000020b0a00016d6f646c6163612f636470740000000000000000000000000000000000000000cf75186100000000000000000000000000020b0a00016d6f646c6163612f636470740000000000000000000000000000000000000000b987cd2800000000000000000000000000020b0a00016d6f646c6163612f636470740000000000000000000000000000000000000000d16694700100000000000000000000000000000000000000c2321f3e0002000000010000000000c2e498170002010000020000000a0888dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0eedca5a0920000000000000000000000000000020000000003d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae690000020000000a00d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae690010a5d4e800000000000000000000000000020000000a0288dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0eed17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae690010a5d4e800000000000000000000000000020000000a076d6f646c6163612f747273790000000000000000000000000000000000000000dca5a0920000000000000000000000000000020000001406dca5a0920000000000000000000000000000020000000e0388dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0eedca5a09200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000a279094100000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da98a437914f3dd43c1f1f4289c5f1baa47d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69", + "0x000000000000000001000000000000000010a5d4e80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", ], [ "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9ae10bf9cd0e372c142b2ca90219666906d6f646c6163612f747273790000000000000000000000000000000000000000", @@ -51,12 +47,16 @@ exports[`dry-run-extrinsic > dry run extrinsic 2`] = ` "0x49024102840088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00d90258d0bb17c04ae889cea745c25f2210139fce8ba58b93f32cbb263264fdbd6350aa06556466ec13ad5c54ed3ae6821741baef385a4c0bfb879dc4c3651607040000000a0000d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69070010a5d4e8", ], [ - "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96", - "0xa279094100000007493c6ebb0100", + "0x26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a", + "0x0003000000", ], [ - "0x26aa394eea5630e07c48ae0c9558cef7a86da5a932684f199539836fcb8c886f", - "0x6a140000", + "0x3a65787472696e7369635f696e646578", + "0x03000000", + ], + [ + "0x3a7472616e73616374696f6e5f6c6576656c3a", + undefined, ], ] `; @@ -71,49 +71,49 @@ exports[`dry-run-extrinsic > dry run extrinsic with fake signature 1`] = ` exports[`dry-run-extrinsic > dry run extrinsic with fake signature 2`] = ` [ + [ + "0x1da53b775b270400e7e61ed5cbc5a146c726478796bad0b9cabd7481dbe64983", + undefined, + ], [ "0x26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850", "0x0b000000", ], [ - "0x3a7472616e73616374696f6e5f6c6576656c3a", - undefined, + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96", + "0x07302bec2f0136330300000007493c6ebb0100", ], [ - "0x3a65787472696e7369635f696e646578", - "0x03000000", + "0x26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7", + "0x2c020b0a00016d6f646c6163612f63647074000000000000000000000000000000000000000011971a0007000000000000000000000000020b0a00016d6f646c6163612f636470740000000000000000000000000000000000000000cf75186100000000000000000000000000020b0a00016d6f646c6163612f636470740000000000000000000000000000000000000000b987cd2800000000000000000000000000020b0a00016d6f646c6163612f636470740000000000000000000000000000000000000000d16694700100000000000000000000000000000000000000c2321f3e0002000000010000000000c2e498170002010000020000000a0888dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee56675d7e000000000000000000000000000002000000ff00000000020000000a0788dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee56675d7e0000000000000000000000000000020000000e0388dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000007302bec2f0136330300000100", ], [ - "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9280b197190fc1a763257f65171ea366e88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee", - "0x010000000000000001000000000000000080c6a47e8d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7a86da5a932684f199539836fcb8c886f", + "0x46150000", ], [ - "0x26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a", - "0x0003000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9280b197190fc1a763257f65171ea366e88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee", + "0x010000000000000001000000000000000080c6a47e8d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", ], [ - "0x1da53b775b270400e7e61ed5cbc5a146c726478796bad0b9cabd7481dbe64983", - undefined, + "0x26aa394eea5630e07c48ae0c9558cef7df1daeb8986837f21cc5d17596bb78d19eb2dcce60f37a2702000000", + "0xc101b901840088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee01deadbeefcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd000000ff00000080969800", ], [ - "0x26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7", - "0x2c020b0a00016d6f646c6163612f63647074000000000000000000000000000000000000000011971a0007000000000000000000000000020b0a00016d6f646c6163612f636470740000000000000000000000000000000000000000cf75186100000000000000000000000000020b0a00016d6f646c6163612f636470740000000000000000000000000000000000000000b987cd2800000000000000000000000000020b0a00016d6f646c6163612f636470740000000000000000000000000000000000000000d16694700100000000000000000000000000000000000000c2321f3e0002000000010000000000c2e498170002010000020000000a0888dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee56675d7e000000000000000000000000000002000000ff00000000020000000a0788dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee56675d7e0000000000000000000000000000020000000e0388dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000007302bec2f0136330300000100", + "0x26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a", + "0x0003000000", ], [ - "0x26aa394eea5630e07c48ae0c9558cef7df1daeb8986837f21cc5d17596bb78d19eb2dcce60f37a2702000000", - "0xc101b901840088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee01deadbeefcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd000000ff00000080969800", + "0x3a65787472696e7369635f696e646578", + "0x03000000", ], [ - "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96", - "0x07302bec2f0136330300000007493c6ebb0100", + "0x3a7472616e73616374696f6e5f6c6576656c3a", + undefined, ], [ "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80", "0x001faafaf5abc9353600000000000000", ], - [ - "0x26aa394eea5630e07c48ae0c9558cef7a86da5a932684f199539836fcb8c886f", - "0x48140000", - ], ] `; diff --git a/packages/e2e/src/__snapshots__/hrmp.test.ts.snap b/packages/e2e/src/__snapshots__/hrmp.test.ts.snap new file mode 100644 index 00000000..625d6620 --- /dev/null +++ b/packages/e2e/src/__snapshots__/hrmp.test.ts.snap @@ -0,0 +1,35 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`HRMP > Acala handles horizonal messages > system events 1`] = ` +[ + { + "data": { + "messageHash": "(hash)", + "messageId": "(hash)", + "weight": { + "proofSize": 0, + "refTime": 800000000, + }, + }, + "method": "Success", + "section": "xcmpQueue", + }, +] +`; + +exports[`HRMP > Statemine handles horizonal messages > system events 1`] = ` +[ + { + "data": { + "messageHash": "(hash)", + "messageId": "(hash)", + "weight": { + "proofSize": "(rounded 3600)", + "refTime": "(rounded 310000000)", + }, + }, + "method": "Success", + "section": "xcmpQueue", + }, +] +`; diff --git a/packages/e2e/src/__snapshots__/resume.test.ts.snap b/packages/e2e/src/__snapshots__/resume.test.ts.snap new file mode 100644 index 00000000..41908eaf --- /dev/null +++ b/packages/e2e/src/__snapshots__/resume.test.ts.snap @@ -0,0 +1,321 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`resume > resume with multi network > resume and xcm works > system events 1`] = ` +[ + { + "data": { + "amount": "(rounded 45000000000)", + "currencyId": { + "Token": "AUSD", + }, + "who": "23M5ttkmR6KcnvsNJdmYTpLo9xfc54g8uCk55buDfiJPon69", + }, + "method": "Deposited", + "section": "tokens", + }, + { + "data": { + "amount": "(rounded 2300000000)", + "currencyId": { + "Token": "AUSD", + }, + "who": "23M5ttkmR6KcnvsNJdmYTpLo9xfc54g8uCk55buDfiJPon69", + }, + "method": "Deposited", + "section": "tokens", + }, + { + "data": { + "amount": "(rounded 1200000000)", + "currencyId": { + "Token": "AUSD", + }, + "who": "23M5ttkmR6KcnvsNJdmYTpLo9xfc54g8uCk55buDfiJPon69", + }, + "method": "Deposited", + "section": "tokens", + }, + { + "data": { + "amount": "(rounded 6800000000)", + "currencyId": { + "Token": "AUSD", + }, + "who": "23M5ttkmR6KcnvsNJdmYTpLo9xfc54g8uCk55buDfiJPon69", + }, + "method": "Deposited", + "section": "tokens", + }, + { + "data": { + "dispatchInfo": { + "class": "Mandatory", + "paysFee": "Yes", + "weight": { + "proofSize": 0, + "refTime": "(rounded 260000000)", + }, + }, + }, + "method": "ExtrinsicSuccess", + "section": "system", + }, + { + "data": { + "dispatchInfo": { + "class": "Mandatory", + "paysFee": "No", + "weight": { + "proofSize": 0, + "refTime": "(rounded 99000000)", + }, + }, + }, + "method": "ExtrinsicSuccess", + "section": "system", + }, + { + "data": { + "amount": "(rounded 2600000000)", + "who": "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + }, + "method": "Withdraw", + "section": "balances", + }, + { + "data": { + "amount": 100000000000, + "currencyId": { + "Token": "DOT", + }, + "who": "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + }, + "method": "Withdrawn", + "section": "tokens", + }, + { + "data": { + "assets": [ + { + "fun": { + "Fungible": 100000000000, + }, + "id": { + "Concrete": { + "interior": "Here", + "parents": 1, + }, + }, + }, + ], + "dest": { + "interior": { + "X1": { + "AccountId32": { + "id": "(hash)", + "network": "Any", + }, + }, + }, + "parents": 1, + }, + "fee": { + "fun": { + "Fungible": 100000000000, + }, + "id": { + "Concrete": { + "interior": "Here", + "parents": 1, + }, + }, + }, + "sender": "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + }, + "method": "TransferredMultiAssets", + "section": "xTokens", + }, + { + "data": { + "amount": "(rounded 2600000000)", + "who": "23M5ttkmR6KcoTAAE6gcmibnKFtVaTP5yxnY8HF1BmrJ2A1i", + }, + "method": "Deposit", + "section": "balances", + }, + { + "data": { + "value": "(rounded 2600000000)", + }, + "method": "Deposit", + "section": "treasury", + }, + { + "data": { + "actualFee": "(rounded 2600000000)", + "actualSurplus": 0, + "actualTip": 0, + "who": "23y3WetbNi6rDMgHmyRDjgpb7PnhgPotuPPawxruTMLYTLzG", + }, + "method": "TransactionFeePaid", + "section": "transactionPayment", + }, + { + "data": { + "dispatchInfo": { + "class": "Normal", + "paysFee": "Yes", + "weight": { + "proofSize": 0, + "refTime": "(rounded 600000000)", + }, + }, + }, + "method": "ExtrinsicSuccess", + "section": "system", + }, +] +`; + +exports[`resume > resume with multi network > resume and xcm works > system events 2`] = ` +[ + { + "data": { + "dispatchInfo": { + "class": "Mandatory", + "paysFee": "Yes", + "weight": { + "proofSize": 0, + "refTime": "(rounded 230000000)", + }, + }, + }, + "method": "ExtrinsicSuccess", + "section": "system", + }, + { + "data": { + "amount": 100000000000, + "who": "13YMK2eYoAvStnzReuxBjMrAvPXmmdsURwZvc62PrdXimbNy", + }, + "method": "Withdraw", + "section": "balances", + }, + { + "data": { + "amount": "(rounded 100000000000)", + "who": "146SvjUZXoMaemdeiecyxgALeYMm8ZWh1yrGo8RtpoPfe7WL", + }, + "method": "Deposit", + "section": "balances", + }, + { + "data": { + "account": "146SvjUZXoMaemdeiecyxgALeYMm8ZWh1yrGo8RtpoPfe7WL", + }, + "method": "NewAccount", + "section": "system", + }, + { + "data": { + "account": "146SvjUZXoMaemdeiecyxgALeYMm8ZWh1yrGo8RtpoPfe7WL", + "freeBalance": "(rounded 100000000000)", + }, + "method": "Endowed", + "section": "balances", + }, + { + "data": { + "amount": "(rounded 410000000)", + "who": "12ZNJzjPBZUh8VV5cuJFkbbwMttFNkH39EhoeYcgGHsJd4MG", + }, + "method": "Deposit", + "section": "balances", + }, + { + "data": [ + "(hash)", + { + "Complete": 4000000000, + }, + ], + "method": "ExecutedUpward", + "section": "ump", + }, + { + "data": { + "dispatchInfo": { + "class": "Mandatory", + "paysFee": "Yes", + "weight": { + "proofSize": 0, + "refTime": "(rounded 98000000)", + }, + }, + }, + "method": "ExtrinsicSuccess", + "section": "system", + }, +] +`; + +exports[`resume > resume with multi network > resume and xcm works 1`] = ` +{ + "consumers": "0", + "data": { + "feeFrozen": "0", + "free": "0", + "miscFrozen": "0", + "reserved": "0", + }, + "nonce": "0", + "providers": "0", + "sufficients": "0", +} +`; + +exports[`resume > resume with multi network > resume and xcm works 2`] = ` +{ + "consumers": "0", + "data": { + "feeFrozen": "0", + "free": "10,000,000,000,000", + "miscFrozen": "0", + "reserved": "0", + }, + "nonce": "0", + "providers": "0", + "sufficients": "0", +} +`; + +exports[`resume > resume with multi network > resume and xcm works 3`] = ` +{ + "free": "10,000,000,000,000", + "frozen": "0", + "reserved": "0", +} +`; + +exports[`resume > resume with multi network > resume and xcm works 4`] = ` +{ + "free": "9,900,000,000,000", + "frozen": "0", + "reserved": "0", +} +`; + +exports[`resume > resume with multi network > resume and xcm works 5`] = ` +{ + "consumers": "0", + "data": { + "feeFrozen": "0", + "free": "99,591,353,032", + "miscFrozen": "0", + "reserved": "0", + }, + "nonce": "0", + "providers": "1", + "sufficients": "0", +} +`; diff --git a/packages/e2e/src/__snapshots__/xcm.test.ts.snap b/packages/e2e/src/__snapshots__/xcm.test.ts.snap index 865d96f6..d0c34739 100644 --- a/packages/e2e/src/__snapshots__/xcm.test.ts.snap +++ b/packages/e2e/src/__snapshots__/xcm.test.ts.snap @@ -127,138 +127,6 @@ exports[`XCM > Acala handles downward messages > system events 1`] = ` ] `; -exports[`XCM > Acala handles horizonal messages > system events 1`] = ` -[ - { - "data": { - "amount": "(rounded 45000000000)", - "currencyId": { - "Token": "AUSD", - }, - "who": "23M5ttkmR6KcnvsNJdmYTpLo9xfc54g8uCk55buDfiJPon69", - }, - "method": "Deposited", - "section": "tokens", - }, - { - "data": { - "amount": "(rounded 2300000000)", - "currencyId": { - "Token": "AUSD", - }, - "who": "23M5ttkmR6KcnvsNJdmYTpLo9xfc54g8uCk55buDfiJPon69", - }, - "method": "Deposited", - "section": "tokens", - }, - { - "data": { - "amount": "(rounded 1200000000)", - "currencyId": { - "Token": "AUSD", - }, - "who": "23M5ttkmR6KcnvsNJdmYTpLo9xfc54g8uCk55buDfiJPon69", - }, - "method": "Deposited", - "section": "tokens", - }, - { - "data": { - "amount": "(rounded 6800000000)", - "currencyId": { - "Token": "AUSD", - }, - "who": "23M5ttkmR6KcnvsNJdmYTpLo9xfc54g8uCk55buDfiJPon69", - }, - "method": "Deposited", - "section": "tokens", - }, - { - "data": { - "dispatchInfo": { - "class": "Mandatory", - "paysFee": "Yes", - "weight": { - "proofSize": 0, - "refTime": "(rounded 260000000)", - }, - }, - }, - "method": "ExtrinsicSuccess", - "section": "system", - }, - { - "data": { - "amount": "(rounded 9100000000000000)", - "currencyId": { - "Token": "AUSD", - }, - "who": "23UvQ3ZQXJ5LfTUSYkcRPkQX2FHgcKxGmqdxYJe9j5e3Lwsi", - }, - "method": "Withdrawn", - "section": "tokens", - }, - { - "data": { - "amount": "(rounded 9100000000000000)", - "currencyId": { - "Token": "AUSD", - }, - "who": "2561WgnRM2Nbec2WseHxVdpeW19YYHh7RM5gRWQV7zwwwgXQ", - }, - "method": "Endowed", - "section": "tokens", - }, - { - "data": { - "amount": "(rounded 9100000000000000)", - "currencyId": { - "Token": "AUSD", - }, - "who": "2561WgnRM2Nbec2WseHxVdpeW19YYHh7RM5gRWQV7zwwwgXQ", - }, - "method": "Deposited", - "section": "tokens", - }, - { - "data": { - "amount": "(rounded 2100000000)", - "currencyId": { - "Token": "AUSD", - }, - "who": "23M5ttkmR6KcoTAAE6gcmibnKFtVaTP5yxnY8HF1BmrJ2A1i", - }, - "method": "Deposited", - "section": "tokens", - }, - { - "data": { - "messageHash": "(hash)", - "weight": { - "proofSize": 0, - "refTime": 800000000, - }, - }, - "method": "Success", - "section": "xcmpQueue", - }, - { - "data": { - "dispatchInfo": { - "class": "Mandatory", - "paysFee": "No", - "weight": { - "proofSize": 0, - "refTime": "(rounded 99000000)", - }, - }, - }, - "method": "ExtrinsicSuccess", - "section": "system", - }, -] -`; - exports[`XCM > Acala send upward messages to Polkadot > system events 1`] = ` [ { diff --git a/packages/e2e/src/author.test.ts b/packages/e2e/src/author.test.ts index 97378085..69e92816 100644 --- a/packages/e2e/src/author.test.ts +++ b/packages/e2e/src/author.test.ts @@ -1,15 +1,14 @@ import { SubmittableResult } from '@polkadot/api' import { afterAll, describe, expect, it } from 'vitest' -import { defer, expectJson, mockCallback, testingPairs } from './helper' -import networks from './networks' +import { defer, expectJson, mockCallback, testingPairs } from './helper.js' +import networks from './networks.js' describe('author rpc', async () => { const { alice, bob } = testingPairs() - const acala = await networks.acala() - const { api, dev } = acala + const { api, dev, teardown } = await networks.acala() - await acala.dev.setStorage({ + await dev.setStorage({ System: { Account: [ [[alice.address], { data: { free: 10 * 1e12 } }], @@ -22,7 +21,7 @@ describe('author rpc', async () => { }) afterAll(async () => { - await acala.teardown() + await teardown() }) it('works', async () => { @@ -86,14 +85,28 @@ describe('author rpc', async () => { await expect(tx.send()).rejects.toThrow('1010: {"invalid":{"badProof":null}}') }) + it('reject unsigned extrinsic', async () => { + const tx = api.tx.balances.transfer(bob.address, 100) + + await expect(tx.send()).rejects.toThrow('1011: {"unknown":{"noUnsignedValidator":null}}') + }) + it('failed apply extirinsic', async () => { const finalized = defer() + const ready = defer() + const inBlock = defer() const invalid = defer() const onStatusUpdate = (result: SubmittableResult) => { if (result.status.isInvalid) { invalid.resolve(result.status.toString()) } + if (result.status.isReady) { + ready.resolve() + } + if (result.status.isInBlock) { + inBlock.resolve() + } if (result.status.isFinalized) { finalized.resolve() } @@ -105,6 +118,8 @@ describe('author rpc', async () => { await dev.newBlock() + await ready.promise + await inBlock.promise await finalized.promise expect(await invalid.promise).toBe('Invalid') }) diff --git a/packages/e2e/src/batch-request.test.ts b/packages/e2e/src/batch-request.test.ts new file mode 100644 index 00000000..9dc35d44 --- /dev/null +++ b/packages/e2e/src/batch-request.test.ts @@ -0,0 +1,56 @@ +import { WebSocket } from 'ws' +import { afterAll, beforeAll, describe, expect, it } from 'vitest' + +import networks from './networks.js' + +describe('Batch request', async () => { + const { chain, url, teardown } = await networks.acala() + const wsClient = new WebSocket(url) + + beforeAll(async () => { + await new Promise((resolve) => { + wsClient.on('open', () => resolve()) + }) + }) + + afterAll(async () => { + wsClient.close() + await teardown() + }) + + it('batch getStorage', async () => { + const blockNumber = chain.head.number + + const isFinish = new Promise((resolve) => { + wsClient.once('finished', () => { + resolve() + }) + }) + + wsClient.on('message', (data: any) => { + const response = JSON.parse(data) + + expect(response).toMatchSnapshot() + wsClient.emit('finished') + }) + + wsClient.send( + JSON.stringify([ + { + method: 'chain_getBlockHash', + params: [blockNumber], + id: 2, + jsonrpc: '2.0', + }, + { + method: 'not_found', + params: [''], + id: 3, + jsonrpc: '2.0', + }, + ]), + ) + + await isFinish + }) +}) diff --git a/packages/e2e/src/block.test.ts b/packages/e2e/src/block.test.ts index 8a4f81cd..5e0372f5 100644 --- a/packages/e2e/src/block.test.ts +++ b/packages/e2e/src/block.test.ts @@ -1,14 +1,13 @@ import { afterAll, describe, expect, it } from 'vitest' -import { delay } from './helper' -import networks from './networks' +import { delay } from './helper.js' +import networks from './networks.js' describe('block', async () => { - const acala = await networks.acala() - const { chain, dev } = acala + const { chain, dev, teardown } = await networks.acala() afterAll(async () => { - await acala.teardown() + await teardown() }) it('upcoming block works', async () => { diff --git a/packages/e2e/src/blocks-save.test.ts b/packages/e2e/src/blocks-save.test.ts deleted file mode 100644 index 929d8137..00000000 --- a/packages/e2e/src/blocks-save.test.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { afterAll, assert, describe, expect, it } from 'vitest' -import { resolve } from 'node:path' -import { tmpdir } from 'node:os' -import networks from './networks' - -describe('block-save', async () => { - const acala = await networks.acala({ db: resolve(tmpdir(), 'db.sqlite') }) - const { chain, dev } = acala - - afterAll(async () => { - await acala.teardown() - }) - - it('saved blocks data', async () => { - await dev.newBlock({ count: 2 }) - - const numberOfBlocks = await chain.db!.getRepository('Block').count() - expect(numberOfBlocks).toEqual(2) - - const block = await chain.getBlockAt(chain.head.number) - const blockData = await chain.db!.getRepository('Block').findOne({ where: { number: chain.head.number } }) - assert(block && blockData, 'block and blockData should be defined') - expect(blockData.hash).toEqual(block.hash) - expect(JSON.stringify(blockData.header)).toEqual(JSON.stringify(block.header)) - expect(blockData.parentHash).toEqual((await block.parentBlock)!.hash) - expect(JSON.stringify(blockData.extrinsics)).toEqual(JSON.stringify(await block.extrinsics)) - expect(JSON.stringify(blockData.storageDiff)).toEqual(JSON.stringify(await block.storageDiff())) - }) -}) diff --git a/packages/e2e/src/build-block.test.ts b/packages/e2e/src/build-block.test.ts index bfc4e886..7fc4bd89 100644 --- a/packages/e2e/src/build-block.test.ts +++ b/packages/e2e/src/build-block.test.ts @@ -1,6 +1,6 @@ import { afterAll, describe, expect, it } from 'vitest' -import { setupAll } from './helper' +import { setupAll } from './helper.js' const KUSAMA_STORAGE = { FellowshipCollective: { @@ -12,15 +12,15 @@ const KUSAMA_STORAGE = { }, } -describe.each([ - { chain: 'Polkadot', endpoint: 'wss://rpc.polkadot.io' }, +describe.runIf(process.env.CI).each([ + { chain: 'Polkadot', endpoint: 'https://rpc.polkadot.io' }, { chain: 'Statemint', endpoint: 'wss://statemint-rpc.polkadot.io' }, { chain: 'Polkadot Collectives', endpoint: 'wss://polkadot-collectives-rpc.polkadot.io' }, { chain: 'Acala', endpoint: 'wss://acala-rpc-1.aca-api.network' }, { chain: 'Kusama', endpoint: 'wss://kusama-rpc.polkadot.io', storage: KUSAMA_STORAGE }, { chain: 'Statemine', endpoint: 'wss://statemine-rpc.polkadot.io' }, - { chain: 'Karura', endpoint: 'wss://karura-rpc-1.aca-api.network' }, + { chain: 'Karura', endpoint: 'wss://karura-rpc-3.aca-api.network' }, { chain: 'Westend', endpoint: 'wss://westend-rpc.polkadot.io' }, { chain: 'Westmint', endpoint: 'wss://westmint-rpc.polkadot.io' }, @@ -32,7 +32,7 @@ describe.each([ await teardownAll() }) - it.runIf(process.env.CI)('build blocks', async () => { + it('build blocks', async () => { const { chain, ws, teardown } = await setup() storage && (await ws.send('dev_setStorage', [storage])) const blockNumber = chain.head.number @@ -40,4 +40,23 @@ describe.each([ expect(chain.head.number).eq(blockNumber + 2) await teardown() }) + + it('build block using unsafeBlockHeight', async () => { + const { chain, ws, teardown } = await setup() + storage && (await ws.send('dev_setStorage', [storage])) + const blockNumber = chain.head.number + const unsafeBlockHeight = blockNumber + 100 + + // unsafeBlockHeight works + await ws.send('dev_newBlock', [{ count: 2, unsafeBlockHeight }]) + expect(chain.head.number).eq(unsafeBlockHeight + 1) + + // unsafeBlockHeight using earlier block throw error but won't crash + await expect(ws.send('dev_newBlock', [{ unsafeBlockHeight: blockNumber - 1 }])).rejects.toThrowError( + '1: unsafeBlockHeight must be greater than current block height', + ) + expect(chain.head.number).eq(unsafeBlockHeight + 1) + + await teardown() + }) }) diff --git a/packages/e2e/src/chain.test.ts b/packages/e2e/src/chain.test.ts index 8daf0fa1..a0c8a138 100644 --- a/packages/e2e/src/chain.test.ts +++ b/packages/e2e/src/chain.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' -import { api, delay, dev, env, expectHex, expectJson, mockCallback, setupApi } from './helper' +import { api, delay, dev, env, expectHex, expectJson, mockCallback, setupApi } from './helper.js' setupApi(env.acala) @@ -14,6 +14,16 @@ describe('chain rpc', () => { expectHex(await api.rpc.chain.getBlockHash(0)).toMatch(hash0) expectHex(await api.rpc.chain.getBlockHash(1000)).toMatch(hash1000) + expect(await api.rpc('chain_getHead')).toEqual(hashHead) + expect(await api.rpc('chain_getBlockHash', null)).toEqual(hashHead) + expect(await api.rpc('chain_getBlockHash', undefined)).toEqual(hashHead) + expect(await api.rpc('chain_getBlockHash', [null])).toEqual(expect.arrayContaining([hashHead])) + expect(await api.rpc('chain_getBlockHash', [undefined])).toEqual(expect.arrayContaining([hashHead])) + expect(await api.rpc('chain_getBlockHash', [0, 1000])).toEqual(expect.arrayContaining([hash0, hash1000])) + expect(await api.rpc('chain_getBlockHash', [0, undefined, null])).toEqual( + expect.arrayContaining([hash0, hashHead, hashHead]), + ) + expectJson(await api.rpc.chain.getHeader()).toMatchSnapshot() expectJson(await api.rpc.chain.getHeader(hashHead)).toMatchSnapshot() expectJson(await api.rpc.chain.getHeader(hash0)).toMatchSnapshot() diff --git a/packages/e2e/src/chopsticks-provider.test.ts b/packages/e2e/src/chopsticks-provider.test.ts new file mode 100644 index 00000000..e33b2009 --- /dev/null +++ b/packages/e2e/src/chopsticks-provider.test.ts @@ -0,0 +1,96 @@ +import { ApiPromise } from '@polkadot/api' +import { BuildBlockMode, ChopsticksProvider, setStorage } from '@tanssi/chopsticks-core' +import { afterAll, beforeAll, describe, expect, it } from 'vitest' + +import { env, expectHex, expectJson, testingPairs } from './helper.js' +import networks from './networks.js' + +const { alice, bob } = testingPairs() + +describe('chopsticks provider works', async () => { + const { chain, teardown } = await networks.acala({ blockNumber: 3_800_000, endpoint: env.acala.endpoint }) + + const chopsticksProvider = new ChopsticksProvider(chain) + const api = await ApiPromise.create({ + provider: chopsticksProvider, + noInitWarn: true, + }) + + beforeAll(async () => { + await api.isReady + await setStorage(chopsticksProvider.chain, { + System: { + Account: [ + [[alice.address], { data: { free: 1 * 1e12 } }], + [[bob.address], { data: { free: 1 * 1e12 } }], + ], + }, + Sudo: { + Key: alice.address, + }, + }) + }) + + afterAll(async () => { + await api.disconnect() + await teardown() + }) + + it('chain rpc', async () => { + const hashHead = '0x0df086f32a9c3399f7fa158d3d77a1790830bd309134c5853718141c969299c7' + const hash0 = '0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c' + const hash1000 = '0x1d2927c6b4aca4c42cb1f88ed7fa46dc53118bb00370475aaf514ac88933e3cc' + + expectHex(await api.rpc.chain.getBlockHash()).toMatch(hashHead) + expectHex(await api.rpc.chain.getBlockHash(0)).toMatch(hash0) + expectHex(await api.rpc.chain.getBlockHash(1000)).toMatch(hash1000) + + expectJson(await api.rpc.chain.getHeader()).toMatchSnapshot() + expectJson(await api.rpc.chain.getHeader(hashHead)).toMatchSnapshot() + expectJson(await api.rpc.chain.getHeader(hash0)).toMatchSnapshot() + expectJson(await api.rpc.chain.getHeader(hash1000)).toMatchSnapshot() + + expectJson(await api.rpc.chain.getBlock()).toMatchSnapshot() + expectJson(await api.rpc.chain.getBlock(hashHead)).toMatchSnapshot() + expectJson(await api.rpc.chain.getBlock(hash0)).toMatchSnapshot() + expectJson(await api.rpc.chain.getBlock(hash1000)).toMatchSnapshot() + + expectHex(await api.rpc.chain.getFinalizedHead()).toMatch(hashHead) + }) + + it('state rpc', async () => { + expectJson(await api.rpc.state.getRuntimeVersion()).toMatchSnapshot() + expectHex(await api.rpc.state.getMetadata(env.acala.blockHash)).toMatchSnapshot() + const genesisHash = await api.rpc.chain.getBlockHash(0) + expect(await api.rpc.state.getMetadata(genesisHash)).to.not.be.eq(await api.rpc.state.getMetadata()) + }) + + it('system rpc', async () => { + expect(await api.rpc.system.chain()).toMatch('Acala') + expect(await api.rpc.system.name()).toMatch('Subway') + expect(await api.rpc.system.version()).toBeInstanceOf(String) + expect(await api.rpc.system.properties()).not.toBeNull() + expectJson(await api.rpc.system.health()).toMatchObject({ + peers: 0, + isSyncing: false, + shouldHavePeers: false, + }) + }) + + it('handles tx', async () => { + chain.txPool.mode = BuildBlockMode.Batch + + await new Promise((resolve) => { + api.tx.balances.transfer(bob.address, 100).signAndSend(alice, (status) => { + if (status.isInBlock) { + resolve() + } + }) + }) + chain.txPool.mode = BuildBlockMode.Batch + + expectJson(await api.rpc.chain.getBlock()).toMatchSnapshot() + expectJson(await api.query.system.account(alice.address)).toMatchSnapshot() + expectJson(await api.query.system.account(bob.address)).toMatchSnapshot() + }) +}) diff --git a/packages/e2e/src/crowdloan.redeem.test.ts b/packages/e2e/src/crowdloan.redeem.test.ts new file mode 100644 index 00000000..0110bad3 --- /dev/null +++ b/packages/e2e/src/crowdloan.redeem.test.ts @@ -0,0 +1,80 @@ +import { afterAll, beforeAll, describe, expect, it } from 'vitest' +import { testingPairs } from '@tanssi/chopsticks-testing' + +import networks from './networks.js' + +describe('Polkadot Crowdloan Refund', async () => { + const { alice } = testingPairs() + const { api, dev, teardown } = await networks.polkadot({ blockNumber: 17700000, timeout: 400_000 }) + + beforeAll(async () => { + // make sure crowdloan is ended + await dev.newBlock({ unsafeBlockHeight: 17855999, count: 3 }) + + // give alice some DOTs for transaction fee + await dev.setStorage({ + System: { + Account: [[[alice.address], { providers: 1, data: { free: 1000 * 1e10 } }]], + }, + }) + }, 200_000) + + it.runIf(process.env.CI)( + "should refund Acala's contributors", + async () => { + // trigger refund + await expect(api.tx.crowdloan.refund(3336).signAndSend(alice)).resolves.toBeTruthy() + await dev.newBlock() + + // some address get refund + expect((await api.query.system.events()).toHuman()).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + event: expect.objectContaining({ + method: 'Transfer', + section: 'balances', + data: expect.objectContaining({ + from: '13UVJyLnbVp77Z2t6qZV4fNpRjDHppL6c87bHcZKG48tKJad', + to: '111DbHPUxncZcffEfy1BrtFZNDUzK7hHchLpmJYFEFG4hy1', + amount: '1,000,000,000,000', + }), + }), + }), + ]), + ) + }, + { timeout: 400_000 }, + ) + + it('withdraw funds from crowdloan', async () => { + const expectedEvent = expect.arrayContaining([ + expect.objectContaining({ + event: expect.objectContaining({ + method: 'Transfer', + section: 'balances', + data: expect.objectContaining({ + from: '13UVJyLnbVp77Z2t6qZV4fNpRjDHppL6c87bHcZKG48tKJad', + to: '1E8EcginNpZRZezwa1A5eQT6crLQQj5R4T3pLKFbyJX3VU8', + amount: '500,000,000,000', + }), + }), + }), + ]) + + // trigger refund + await expect( + api.tx.crowdloan.withdraw('1E8EcginNpZRZezwa1A5eQT6crLQQj5R4T3pLKFbyJX3VU8', 3336).signAndSend(alice), + ).resolves.toBeTruthy() + await dev.newBlock() + expect((await api.query.system.events()).toHuman()).toEqual(expectedEvent) + + // doing the same thing again should fail because the funds are already withdrawn + await expect( + api.tx.crowdloan.withdraw('1E8EcginNpZRZezwa1A5eQT6crLQQj5R4T3pLKFbyJX3VU8', 3336).signAndSend(alice), + ).resolves.toBeTruthy() + await dev.newBlock() + expect((await api.query.system.events()).toHuman()).not.toEqual(expectedEvent) + }) + + afterAll(async () => await teardown()) +}) diff --git a/packages/e2e/src/decoder.test.ts b/packages/e2e/src/decoder.test.ts index 14e259dc..1e82abec 100644 --- a/packages/e2e/src/decoder.test.ts +++ b/packages/e2e/src/decoder.test.ts @@ -1,37 +1,67 @@ import { afterAll, describe, expect, it } from 'vitest' -import { decodeKey, decodeKeyValue } from '@tanssi/chopsticks-core/utils/decoder' +import { decodeKey, decodeKeyValue, toStorageObject } from '@tanssi/chopsticks-core/utils/decoder.js' -import networks from './networks' +import networks from './networks.js' const SYSTEM_ACCOUNT = '0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' const TOKENS_ACCOUNTS = '0x99971b5749ac43e0235e41b0d37869188ee7418a6531173d60d1f6a82d8f4d51de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d01a12dfa1fa4ab9a0000' +const TIMESTAMPE_NOW = '0xf0c365c3cf59d671eb72da0e7a4113c49f1f0515f462cdcf84e0f1d6045dfcbb' describe('decoder', async () => { - const acala = await networks.acala() - const { chain } = acala + describe('with acala', async () => { + const { chain, teardown } = await networks.acala() - afterAll(async () => { - await acala.teardown() - }) + afterAll(async () => { + await teardown() + }) - it('decode keys', async () => { - const { storage, decodedKey } = decodeKey(await chain.head.meta, chain.head, SYSTEM_ACCOUNT) - expect(storage?.section).eq('system') - expect(storage?.method).eq('account') - expect(decodedKey?.args.map((x) => x.toHuman())).contains('25fqepuLngYL2DK9ApTejNzqPadUUZ9ALYyKWX2jyvEiuZLa') - }) + it('decode keys', async () => { + expect(decodeKey(await chain.head.meta, chain.head, SYSTEM_ACCOUNT)).toMatchSnapshot() + }) - it('decode key-value', async () => { - const meta = await chain.head.meta - const data = { data: { free: 10000000000 } } - const value = meta.registry.createType('AccountInfo', data) - expect(decodeKeyValue(meta, chain.head, SYSTEM_ACCOUNT, value.toHex())).toMatchSnapshot() + it('decode key-value', async () => { + const meta = await chain.head.meta + const data = { data: { free: 10000000000 } } + const value = meta.registry.createType('AccountInfo', data) + const decoded = decodeKeyValue(meta, chain.head, SYSTEM_ACCOUNT, value.toHex()) + expect(decoded).toMatchSnapshot() + expect(toStorageObject(decoded)).toMatchSnapshot() + + const ormlAccountData = meta.registry.createType('AccountData', data.data) + const decoded2 = decodeKeyValue(meta, chain.head, TOKENS_ACCOUNTS, ormlAccountData.toHex()) + expect(decoded2).toMatchSnapshot() + expect(toStorageObject(decoded2)).toMatchSnapshot() - const ormlAccountData = meta.registry.createType('AccountData', data.data) - expect(decodeKeyValue(meta, chain.head, TOKENS_ACCOUNTS, ormlAccountData.toHex())).toMatchSnapshot() - await new Promise((resolve) => setTimeout(resolve, 1000)) + const timestampNow = meta.registry.createType('Moment', data.data) + const decoded3 = decodeKeyValue(meta, chain.head, TIMESTAMPE_NOW, timestampNow.toHex()) + expect(decoded3).toMatchSnapshot() + expect(toStorageObject(decoded3)).toMatchSnapshot() + }) + + it('works with well known keys', async () => { + const meta = await chain.head.meta + expect(decodeKeyValue(meta, chain.head, '0x3a636f6465', '0x12345678')).toMatchSnapshot() + expect( + decodeKeyValue( + meta, + chain.head, + '0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974790c0d0000', + '0xaaaa020000001000', + ), + ).toMatchSnapshot() + expect(decodeKeyValue(meta, chain.head, '0x3a7472616e73616374696f6e5f6c6576656c3a')).toMatchSnapshot() + expect(decodeKeyValue(meta, chain.head, '0x3a65787472696e7369635f696e646578', '0x02000000')).toMatchSnapshot() + expect( + decodeKeyValue( + meta, + chain.head, + '0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e63f5a4efb16ffa83d0070000', + '0x0100000043000000', + ), + ).toMatchSnapshot() + }) }) it('works with multiple chains', async () => { @@ -40,8 +70,9 @@ describe('decoder', async () => { const meta = await chain.head.meta const data = { data: { free: 10000000000 } } const value = meta.registry.createType('AccountInfo', data) - expect(decodeKeyValue(meta, chain.head, SYSTEM_ACCOUNT, value.toHex())).toMatchSnapshot() - + const decoded = decodeKeyValue(meta, chain.head, SYSTEM_ACCOUNT, value.toHex()) + expect(decoded).toMatchSnapshot() + expect(toStorageObject(decoded)).toMatchSnapshot() await teardown() }) }) diff --git a/packages/e2e/src/dev-dry-run-dmp.test.ts b/packages/e2e/src/dev-dry-run-dmp.test.ts index 4bca65b7..7fba923b 100644 --- a/packages/e2e/src/dev-dry-run-dmp.test.ts +++ b/packages/e2e/src/dev-dry-run-dmp.test.ts @@ -1,10 +1,10 @@ import { describe, expect, it } from 'vitest' -import networks from './networks' +import networks from './networks.js' describe('dev_dryRun dmp', () => { it('works', async () => { - const acala = await networks.acala({ + const { ws, teardown } = await networks.acala({ blockHash: '0x1d9223c88161b512ebaac53c2c7df6dc6bd2731b12273b898f582af929cc5331', }) const params = [ @@ -19,7 +19,8 @@ describe('dev_dryRun dmp', () => { ], }, ] - const resp = await acala.ws.send('dev_dryRun', params) + const resp = await ws.send('dev_dryRun', params) expect(resp.new.system.events).toMatchSnapshot() + await teardown() }) }) diff --git a/packages/e2e/src/dev-dry-run-ump.test.ts b/packages/e2e/src/dev-dry-run-ump.test.ts index 81c318af..f5c52aa0 100644 --- a/packages/e2e/src/dev-dry-run-ump.test.ts +++ b/packages/e2e/src/dev-dry-run-ump.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' -import { setupApi, ws } from './helper' +import { setupApi, ws } from './helper.js' setupApi({ endpoint: 'wss://rpc.polkadot.io', diff --git a/packages/e2e/src/dev.test.ts b/packages/e2e/src/dev.test.ts index a272b4bb..4ec17c9f 100644 --- a/packages/e2e/src/dev.test.ts +++ b/packages/e2e/src/dev.test.ts @@ -1,16 +1,15 @@ import { afterAll, describe, expect, it } from 'vitest' import { u8aToHex } from '@polkadot/util' -import { expectJson, testingPairs } from './helper' -import networks from './networks' +import { expectJson, testingPairs } from './helper.js' +import networks from './networks.js' describe('dev rpc', async () => { const { alice, bob } = testingPairs() - const acala = await networks.acala() - const { api, dev, ws } = acala + const { api, chain, dev, ws, teardown } = await networks.acala() - await acala.dev.setStorage({ + await dev.setStorage({ System: { Account: [[[alice.address], { data: { free: 10 * 1e12 } }]], }, @@ -20,7 +19,7 @@ describe('dev rpc', async () => { }) afterAll(async () => { - await acala.teardown() + await teardown() }) it('setStorage', async () => { @@ -98,8 +97,8 @@ describe('dev rpc', async () => { }) it('setHead', async () => { - const blockNumber = acala.chain.head.number - const hash = acala.chain.head.hash + const blockNumber = chain.head.number + const hash = chain.head.hash await dev.newBlock({ count: 3 }) await dev.setHead(hash) expect((await api.rpc.chain.getBlockHash()).toHex()).toBe(hash) diff --git a/packages/e2e/src/dry-run-extrinsic.test.ts b/packages/e2e/src/dry-run-extrinsic.test.ts index 944412cc..dab278ef 100644 --- a/packages/e2e/src/dry-run-extrinsic.test.ts +++ b/packages/e2e/src/dry-run-extrinsic.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' -import { api, chain, dev, env, setupApi, testingPairs } from './helper' +import { api, chain, dev, env, setupApi, testingPairs } from './helper.js' setupApi({ ...env.acala, diff --git a/packages/e2e/src/failed-tx-reverts.test.ts b/packages/e2e/src/failed-tx-reverts.test.ts index 63353800..8532a90e 100644 --- a/packages/e2e/src/failed-tx-reverts.test.ts +++ b/packages/e2e/src/failed-tx-reverts.test.ts @@ -1,6 +1,6 @@ import { afterAll, describe, expect, it } from 'vitest' -import { testingPairs } from './helper' -import networks from './networks' +import { testingPairs } from './helper.js' +import networks from './networks.js' // SPECIAL TEST CASE. DO NOT CHANGE describe('failed tx should revert storage changes', async () => { diff --git a/packages/e2e/src/genesis-provider.test.ts b/packages/e2e/src/genesis-provider.test.ts index fc3b5021..49df4543 100644 --- a/packages/e2e/src/genesis-provider.test.ts +++ b/packages/e2e/src/genesis-provider.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' -import { api, chain, dev, env, expectJson, setupApi, testingPairs } from './helper' +import { api, chain, dev, env, expectJson, setupApi, testingPairs } from './helper.js' setupApi(env.mandalaGenesis) diff --git a/packages/e2e/src/helper.ts b/packages/e2e/src/helper.ts index 7e2888ff..5d60835c 100644 --- a/packages/e2e/src/helper.ts +++ b/packages/e2e/src/helper.ts @@ -1,12 +1,8 @@ -import { ApiPromise, WsProvider } from '@polkadot/api' -import { Codec } from '@polkadot/types/types' -import { HexString } from '@polkadot/util/types' -import { beforeAll, beforeEach, expect, vi } from 'vitest' - import { Api } from '@tanssi/chopsticks' -import { Blockchain } from '@tanssi/chopsticks-core/blockchain' -import { BuildBlockMode } from '@tanssi/chopsticks-core/blockchain/txpool' -import { GenesisProvider } from '@tanssi/chopsticks-core/genesis-provider' +import { ApiPromise, HttpProvider, WsProvider } from '@polkadot/api' +import { Blockchain, BuildBlockMode, StorageValues } from '@tanssi/chopsticks-core' +import { Codec, RegisteredTypes } from '@polkadot/types/types' +import { HexString } from '@polkadot/util/types' import { InherentProviders, ParaInherentEnter, @@ -14,14 +10,17 @@ import { SetNimbusAuthorInherent, SetTimestamp, SetValidationData, - SetLatestAuthorData, -} from '@tanssi/chopsticks-core/blockchain/inherent' -import { StorageValues } from '@tanssi/chopsticks-core/utils/set-storage' -import { createServer } from '@tanssi/chopsticks/server' -import { defer } from '@tanssi/chopsticks-core/utils' -import { handler } from '@tanssi/chopsticks/rpc' +} from '@tanssi/chopsticks-core/blockchain/inherent/index.js' +import { ProviderInterface } from '@polkadot/rpc-provider/types' +import { SetLatestAuthorData } from '@tanssi/chopsticks-core/blockchain/inherent/parachain/latest-author.js' +import { SqliteDatabase } from '@tanssi/chopsticks-db' +import { beforeAll, beforeEach, expect, vi } from 'vitest' +import { createServer } from '@tanssi/chopsticks/server.js' +import { defer } from '@tanssi/chopsticks-core/utils/index.js' +import { genesisFromUrl } from '@tanssi/chopsticks/context.js' +import { handler } from '@tanssi/chopsticks/rpc/index.js' -export { expectJson, expectHex, testingPairs } from '@tanssi/chopsticks-testing' +export { expectHex, expectJson, testingPairs } from '@tanssi/chopsticks-testing' export type SetupOption = { endpoint?: string @@ -29,6 +28,8 @@ export type SetupOption = { mockSignatureHost?: boolean allowUnresolvedImports?: boolean genesis?: string + registeredTypes?: RegisteredTypes + runtimeLogLevel?: number } export const env = { @@ -53,10 +54,18 @@ export const setupAll = async ({ mockSignatureHost, allowUnresolvedImports, genesis, + registeredTypes = {}, + runtimeLogLevel, }: SetupOption) => { - const api = new Api(genesis ? await GenesisProvider.fromUrl(genesis) : new WsProvider(endpoint), { - SetEvmOrigin: { payload: {}, extrinsic: {} }, - }) + let provider: ProviderInterface + if (genesis) { + provider = await genesisFromUrl(genesis) + } else if (/^(https|http):\/\//.test(endpoint || '')) { + provider = new HttpProvider(endpoint) + } else { + provider = new WsProvider(endpoint, 3_000) + } + const api = new Api(provider) await api.isReady @@ -90,20 +99,17 @@ export const setupAll = async ({ }, mockSignatureHost, allowUnresolvedImports, - registeredTypes: {}, + registeredTypes, + runtimeLogLevel, + db: !process.env.RUN_TESTS_WITHOUT_DB ? new SqliteDatabase('e2e-tests-db.sqlite') : undefined, }) const { port, close } = await createServer(handler({ chain })) - const ws = new WsProvider(`ws://localhost:${port}`) + const ws = new WsProvider(`ws://localhost:${port}`, 3_000, undefined, 300_000) const apiPromise = await ApiPromise.create({ provider: ws, - signedExtensions: { - SetEvmOrigin: { - extrinsic: {}, - payload: {}, - }, - }, + noInitWarn: true, }) await apiPromise.isReady @@ -176,8 +182,10 @@ export const dev = { export const mockCallback = () => { let next = defer() const callback = vi.fn((...args) => { - next.resolve(args) - next = defer() + delay(100).then(() => { + next.resolve(args) + next = defer() + }) }) return { diff --git a/packages/e2e/src/hrmp.test.ts b/packages/e2e/src/hrmp.test.ts new file mode 100644 index 00000000..603b102e --- /dev/null +++ b/packages/e2e/src/hrmp.test.ts @@ -0,0 +1,38 @@ +import { describe, it } from 'vitest' + +import { HorizontalMessage } from '@tanssi/chopsticks-core/blockchain/txpool.js' +import { matchSystemEvents, setupContext } from '@tanssi/chopsticks-testing' + +const statemineHRMP: Record = { + 2000: [ + { + data: '0x0002100004000002043205011f0002093d000a13000002043205011f0002093d00000d0100040001010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee', + sentAt: 0, // doesn't matter. validate-data inherent will inject the relay chain block number + }, + ], +} + +const acalaHRMP: Record = { + 2004: [ + { + data: '0x000210000400000106080001000fc2ddd331d55e200a1300000106080001000fc2ddd331d55e20010700f2052a010d01000400010100ba686c8fa59178c699a698ea4d8e2c595394c2594bce4b6c2ca3a9bf3018e25d', + sentAt: 0, // doesn't matter. validate-data inherent will inject the relay chain block number + }, + ], +} + +describe('HRMP', () => { + it('Statemine handles horizonal messages', async () => { + const statemine = await setupContext({ endpoint: 'wss://statemine-rpc.polkadot.io' }) + await statemine.chain.newBlock({ horizontalMessages: statemineHRMP }) + await matchSystemEvents(statemine, 'xcmpQueue', 'Success') + await statemine.teardown() + }) + + it('Acala handles horizonal messages', async () => { + const acala = await setupContext({ endpoint: 'wss://acala-rpc.aca-api.network' }) + await acala.chain.newBlock({ horizontalMessages: acalaHRMP }) + await matchSystemEvents(acala, 'xcmpQueue', 'Success') + await acala.teardown() + }) +}) diff --git a/packages/e2e/src/import-storage/index.test.ts b/packages/e2e/src/import-storage/index.test.ts index 561c0807..a8332d77 100644 --- a/packages/e2e/src/import-storage/index.test.ts +++ b/packages/e2e/src/import-storage/index.test.ts @@ -1,9 +1,8 @@ +import { api, chain, setupApi } from '../helper.js' import { describe, expect, it } from 'vitest' +import { overrideStorage, overrideWasm } from '@tanssi/chopsticks/utils/override.js' import path from 'path' -import { api, chain, setupApi } from '../helper' -import { overrideStorage, overrideWasm } from '@tanssi/chopsticks/utils/override' - setupApi({ endpoint: 'wss://acala-rpc-1.aca-api.network', blockHash: '0x663c25dc86521f4b7f74dcbc26224bb0fac40e316e6b0bcf6a51de373f37afac', // 2_000_000 diff --git a/packages/e2e/src/max-memory-block-count.test.ts b/packages/e2e/src/max-memory-block-count.test.ts index ea54261f..7b5b6e2c 100644 --- a/packages/e2e/src/max-memory-block-count.test.ts +++ b/packages/e2e/src/max-memory-block-count.test.ts @@ -1,5 +1,5 @@ import { afterAll, describe, expect, it } from 'vitest' -import networks from './networks' +import networks from './networks.js' describe('max-memory-block-count', async () => { const acala = await networks.acala({ maxMemoryBlockCount: 2 }) diff --git a/packages/e2e/src/metadata.test.ts b/packages/e2e/src/metadata.test.ts index a44d2d4a..db576b49 100644 --- a/packages/e2e/src/metadata.test.ts +++ b/packages/e2e/src/metadata.test.ts @@ -1,4 +1,4 @@ -import { chain, setupApi } from './helper' +import { chain, setupApi } from './helper.js' import { describe, expect, it } from 'vitest' setupApi({ diff --git a/packages/e2e/src/mock-signature.test.ts b/packages/e2e/src/mock-signature.test.ts index d270c242..cfb00592 100644 --- a/packages/e2e/src/mock-signature.test.ts +++ b/packages/e2e/src/mock-signature.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it } from 'vitest' +import { signFake, signFakeWithApi } from '@tanssi/chopsticks-testing' -import { api, dev, env, setupApi, testingPairs } from './helper' +import { api, dev, env, setupApi, testingPairs } from './helper.js' setupApi({ ...env.acala, @@ -39,7 +40,22 @@ describe('mock signature', () => { await expect(tx.send()).rejects.toThrow('1010: {"invalid":{"badProof":null}}') }) - it('accept mock signature', async () => { + it('accept mock signature (with api)', async () => { + const { alice, bob } = testingPairs() + await dev.setStorage({ + System: { + Account: [[[alice.address], { providers: 1, data: { free: 1000 * 1e12 } }]], + }, + }) + + const tx = api.tx.balances.transfer(bob.address, 100) + + await signFakeWithApi(api, tx, alice.address) + + await expect(tx.send()).resolves.toBeTruthy() + }) + + it('accept mock signature (manually input options)', async () => { const { alice, bob } = testingPairs() await dev.setStorage({ System: { @@ -50,18 +66,13 @@ describe('mock signature', () => { const { nonce } = await api.query.system.account(alice.address) const tx = api.tx.balances.transfer(bob.address, 100) - tx.signFake(alice.address, { + signFake(tx, alice.address, { nonce, genesisHash: api.genesisHash, runtimeVersion: api.runtimeVersion, blockHash: api.genesisHash, }) - const mockSignature = new Uint8Array(64) - mockSignature.fill(0xcd) - mockSignature.set([0xde, 0xad, 0xbe, 0xef]) - tx.signature.set(mockSignature) - await expect(tx.send()).resolves.toBeTruthy() }) }) diff --git a/packages/e2e/src/relaychain.test.ts b/packages/e2e/src/relaychain.test.ts index 38c5291e..eef8968d 100644 --- a/packages/e2e/src/relaychain.test.ts +++ b/packages/e2e/src/relaychain.test.ts @@ -1,13 +1,12 @@ import { afterAll, describe, expect, it } from 'vitest' -import networks from './networks' +import networks from './networks.js' describe('relaychain dev rpc', async () => { - const polkadot = await networks.polkadot() - const { dev } = polkadot + const { dev, teardown } = await networks.polkadot() afterAll(async () => { - await polkadot.teardown() + await teardown() }) it('build blocks', async () => { diff --git a/packages/e2e/src/resume.test.ts b/packages/e2e/src/resume.test.ts new file mode 100644 index 00000000..92ceb22f --- /dev/null +++ b/packages/e2e/src/resume.test.ts @@ -0,0 +1,167 @@ +import { assert, describe, expect, it } from 'vitest' +import { connectUpward } from '@tanssi/chopsticks-core/xcm/upward.js' +import { matchSnapshot } from './helper.js' +import { matchSystemEvents, testingPairs } from '@tanssi/chopsticks-testing' +import { resolve } from 'node:path' +import { setStorage } from '@tanssi/chopsticks' +import { tmpdir } from 'node:os' +import networks from './networks.js' + +describe('resume', async () => { + const buildBlocksAndTeardown = async (network = 'acala', dbName = 'db.sqlite') => { + const blockchain = await networks[network]({ db: resolve(tmpdir(), dbName) }) + const { chain, dev } = blockchain + await dev.newBlock({ count: 2 }) + const head = await chain.getBlockAt(chain.head.number) + const savedHeadHash = head?.hash + await blockchain.teardown() + + return savedHeadHash + } + + it('save blocks data', async () => { + const { chain, dev, teardown } = await networks.acala({ db: resolve(tmpdir(), 'db.sqlite') }) + if (!chain.db) { + throw new Error('chain.db should be defined') + } + await dev.newBlock({ count: 2 }) + + const numberOfBlocks = await chain.db.blocksCount() + expect(numberOfBlocks).toEqual(2) + + const block = await chain.getBlockAt(chain.head.number) + const blockData = await chain.db.queryBlockByNumber(chain.head.number) + + assert(block && blockData, 'block and blockData should be defined') + expect(blockData.hash).toEqual(block.hash) + expect(blockData.header).toEqual((await block.header).toHex()) + expect(blockData.parentHash).toEqual((await block.parentBlock)!.hash) + expect(JSON.stringify(blockData.extrinsics)).toEqual(JSON.stringify(await block.extrinsics)) + expect(JSON.stringify(blockData.storageDiff)).toEqual(JSON.stringify(await block.storageDiff())) + + await teardown() + }) + + it('resume with the latest saved block', async () => { + const savedHeadHash = await buildBlocksAndTeardown() + + // load block + const newAcala = await networks.acala({ db: resolve(tmpdir(), 'db.sqlite'), resume: true }) + const newHeadNumber = newAcala.chain.head.number + const loadedHead = await newAcala.chain.getBlockAt(newHeadNumber) + + expect(loadedHead?.hash).toEqual(savedHeadHash) + await newAcala.teardown() + }) + + it('resume with a block number', async () => { + await buildBlocksAndTeardown() + + // load blocks + const newAcala = await networks.acala({ db: resolve(tmpdir(), 'db.sqlite'), resume: 3000001 }) + const newHeadNumber = newAcala.chain.head.number + + expect(newHeadNumber).toEqual(3000001) + await newAcala.teardown() + }) + + it('resume with a block hash', async () => { + const savedHeadHash = await buildBlocksAndTeardown() + + // load blocks + const newAcala = await networks.acala({ db: resolve(tmpdir(), 'db.sqlite'), resume: savedHeadHash }) + const newHeadNumber = newAcala.chain.head.number + const loadedHead = await newAcala.chain.getBlockAt(newHeadNumber) + + expect(loadedHead?.hash).toEqual(savedHeadHash) + await newAcala.teardown() + }) + + describe('resume with multi network', async () => { + it('resume with Acala and Polkadot works', async () => { + const savedAcalaHash = await buildBlocksAndTeardown('acala', 'db.acala.sqlite') + const savedPolkadotHash = await buildBlocksAndTeardown('polkadot', 'db.polkadot.sqlite') + + // resume + const acala = await networks.acala({ db: resolve(tmpdir(), 'db.acala.sqlite'), resume: savedAcalaHash }) + const polkadot = await networks.polkadot({ + db: resolve(tmpdir(), 'db.polkadot.sqlite'), + resume: savedPolkadotHash, + }) + + const loadedAcalaHead = acala.chain.head + const loadedPolkadotHead = polkadot.chain.head + + expect(loadedAcalaHead.hash).toEqual(savedAcalaHash) + expect(loadedPolkadotHead.hash).toEqual(savedPolkadotHash) + + await acala.teardown() + await polkadot.teardown() + }) + + it('resume and xcm works', async () => { + const savedAcalaHash = await buildBlocksAndTeardown('acala', 'db.acala.sqlite') + const savedPolkadotHash = await buildBlocksAndTeardown('polkadot', 'db.polkadot.sqlite') + + // resume + const acala = await networks.acala({ db: resolve(tmpdir(), 'db.acala.sqlite'), resume: savedAcalaHash }) + const polkadot = await networks.polkadot({ + db: resolve(tmpdir(), 'db.polkadot.sqlite'), + resume: savedPolkadotHash, + }) + + // test ump + await connectUpward(acala.chain, polkadot.chain) + const { alice } = testingPairs() + await setStorage(acala.chain, { + System: { + Account: [[[alice.address], { data: { free: 1000 * 1e10 } }]], + }, + Tokens: { + Accounts: [[[alice.address, { token: 'DOT' }], { free: 1000e10 }]], + }, + }) + + await matchSnapshot(polkadot.api.query.system.account(alice.address)) + await matchSnapshot(acala.api.query.system.account(alice.address)) + await matchSnapshot(acala.api.query.tokens.accounts(alice.address, { token: 'DOT' })) + + await acala.api.tx.xTokens + .transfer( + { + Token: 'DOT', + }, + 10e10, + { + V1: { + parents: 1, + interior: { + X1: { + AccountId32: { + network: 'Any', + id: alice.addressRaw, + }, + }, + }, + }, + }, + { + Unlimited: null, + }, + ) + .signAndSend(alice) + + await acala.chain.newBlock() + await matchSystemEvents(acala) + await matchSnapshot(acala.api.query.tokens.accounts(alice.address, { token: 'DOT' })) + + await polkadot.chain.newBlock() + + await matchSnapshot(polkadot.api.query.system.account(alice.address)) + await matchSystemEvents(polkadot) + + await acala.teardown() + await polkadot.teardown() + }) + }) +}) diff --git a/packages/e2e/src/state.test.ts b/packages/e2e/src/state.test.ts index 117bdf80..799531e0 100644 --- a/packages/e2e/src/state.test.ts +++ b/packages/e2e/src/state.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' -import { api, env, expectHex, expectJson, setupApi } from './helper' +import { api, env, expectHex, expectJson, setupApi } from './helper.js' setupApi(env.acala) diff --git a/packages/e2e/src/storage-migrate.test.ts b/packages/e2e/src/storage-migrate.test.ts new file mode 100644 index 00000000..52785047 --- /dev/null +++ b/packages/e2e/src/storage-migrate.test.ts @@ -0,0 +1,39 @@ +import { describe, expect, it } from 'vitest' + +import { api, dev, setupApi } from './helper.js' + +setupApi({ + endpoint: 'wss://kusama-archive.mangata.online', + blockHash: '0xea25e5e478f33cf70eebcd4a8b94b8dde361537eaa7a8b53c58a03026a4ebac0', + mockSignatureHost: true, + runtimeLogLevel: 5, + registeredTypes: { + types: { + ShufflingSeed: { + seed: 'H256', + proof: 'H512', + }, + Header: { + parentHash: 'Hash', + number: 'Compact', + stateRoot: 'Hash', + extrinsicsRoot: 'Hash', + digest: 'Digest', + seed: 'ShufflingSeed', + count: 'BlockNumber', + }, + }, + }, +}) + +describe.runIf(process.env.CI)('storage-migrate', async () => { + it( + 'no empty keys', + async () => { + await dev.newBlock() + const metadatas = await api.query.assetRegistry.metadata.entries() + expect(metadatas.some(([_, v]) => v.isEmpty)).toBeFalsy() + }, + { timeout: 300_000 }, + ) +}) diff --git a/packages/e2e/src/storage.test.ts b/packages/e2e/src/storage.test.ts index 018018dc..c14f8127 100644 --- a/packages/e2e/src/storage.test.ts +++ b/packages/e2e/src/storage.test.ts @@ -1,7 +1,7 @@ import '@polkadot/api-augment' import { describe, expect, it } from 'vitest' -import { api, delay, dev, env, expectJson, mockCallback, setupApi } from './helper' +import { api, delay, dev, env, expectJson, mockCallback, setupApi } from './helper.js' setupApi(env.acala) diff --git a/packages/e2e/src/system.test.ts b/packages/e2e/src/system.test.ts index 4a125160..ba47dc0e 100644 --- a/packages/e2e/src/system.test.ts +++ b/packages/e2e/src/system.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' -import { api, dev, env, expectJson, setupApi, testingPairs } from './helper' +import { api, dev, env, expectJson, setupApi, testingPairs } from './helper.js' setupApi(env.acala) diff --git a/packages/e2e/src/time-travel.test.ts b/packages/e2e/src/time-travel.test.ts index 2bdbd516..1a8ceeaf 100644 --- a/packages/e2e/src/time-travel.test.ts +++ b/packages/e2e/src/time-travel.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest' -import { getCurrentTimestamp, getSlotDuration, timeTravel } from '@tanssi/chopsticks-core/utils/time-travel' +import { getCurrentTimestamp, getSlotDuration, timeTravel } from '@tanssi/chopsticks-core/utils/time-travel.js' -import networks from './networks' +import networks from './networks.js' describe.each(['polkadot', 'acala'])('Can time-travel on %s', async (name) => { const { chain, ws } = await networks[name as keyof typeof networks]() @@ -11,11 +11,11 @@ describe.each(['polkadot', 'acala'])('Can time-travel on %s', async (name) => { await timeTravel(chain, timestamp) - expect(await getCurrentTimestamp(chain)).eq(timestamp) + expect(await getCurrentTimestamp(chain)).eq(BigInt(timestamp)) // can build block successfully await ws.send('dev_newBlock', []) - expect(await getCurrentTimestamp(chain)).eq(timestamp + (await getSlotDuration(chain))) + expect(await getCurrentTimestamp(chain)).eq(BigInt(timestamp + (await getSlotDuration(chain)))) }) }) diff --git a/packages/e2e/src/upgrade.test.ts b/packages/e2e/src/upgrade.test.ts index d11b4584..4d8c84ba 100644 --- a/packages/e2e/src/upgrade.test.ts +++ b/packages/e2e/src/upgrade.test.ts @@ -2,19 +2,18 @@ import { afterAll, describe, expect, it } from 'vitest' import { readFileSync } from 'node:fs' import path from 'node:path' -import { expectJson, testingPairs } from './helper' +import { expectJson, testingPairs } from './helper.js' -import networks from './networks' +import networks from './networks.js' describe('upgrade', async () => { const { alice, bob } = testingPairs() - const acala = await networks.acala({ + const { api, dev, chain, teardown } = await networks.acala({ blockNumber: 2000000, }) - const { api, dev, chain } = acala afterAll(async () => { - await acala.teardown() + await teardown() }) it('setCode works', async () => { diff --git a/packages/e2e/src/xcm.test.ts b/packages/e2e/src/xcm.test.ts index 1fdab5dd..5a6f578b 100644 --- a/packages/e2e/src/xcm.test.ts +++ b/packages/e2e/src/xcm.test.ts @@ -1,13 +1,13 @@ import { beforeEach, describe, it } from 'vitest' -import { DownwardMessage, HorizontalMessage } from '@tanssi/chopsticks-core/blockchain/txpool' -import { connectDownward } from '@tanssi/chopsticks-core/xcm/downward' -import { connectUpward } from '@tanssi/chopsticks-core/xcm/upward' +import { DownwardMessage } from '@tanssi/chopsticks-core/blockchain/txpool.js' +import { connectDownward } from '@tanssi/chopsticks-core/xcm/downward.js' +import { connectUpward } from '@tanssi/chopsticks-core/xcm/upward.js' import { matchSystemEvents, testingPairs } from '@tanssi/chopsticks-testing' -import { setStorage } from '@tanssi/chopsticks-core/utils/set-storage' +import { setStorage } from '@tanssi/chopsticks-core/utils/set-storage.js' -import { matchSnapshot } from './helper' -import networks, { Network } from './networks' +import { matchSnapshot } from './helper.js' +import networks, { Network } from './networks.js' const downwardMessages: DownwardMessage[] = [ { @@ -16,15 +16,6 @@ const downwardMessages: DownwardMessage[] = [ }, ] -const horizontalMessages: Record = { - 2004: [ - { - data: '0x000210000400000106080001000fc2ddd331d55e200a1300000106080001000fc2ddd331d55e20010700f2052a010d01000400010100ba686c8fa59178c699a698ea4d8e2c595394c2594bce4b6c2ca3a9bf3018e25d', - sentAt: 13509121, - }, - ], -} - describe('XCM', async () => { let acala: Network let polkadot: Network @@ -44,11 +35,6 @@ describe('XCM', async () => { await matchSystemEvents(acala) }) - it('Acala handles horizonal messages', async () => { - await acala.chain.newBlock({ horizontalMessages }) - await matchSystemEvents(acala) - }) - it('Polkadot send downward messages to Acala', async () => { await connectDownward(polkadot.chain, acala.chain) diff --git a/packages/e2e/tsconfig.json b/packages/e2e/tsconfig.json index 1deb8fcd..623f4f42 100644 --- a/packages/e2e/tsconfig.json +++ b/packages/e2e/tsconfig.json @@ -1,13 +1,8 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "outDir": "lib", - "rootDir": "src", + "rootDir": "src" }, "include": ["src/**/*"], - "references": [ - { "path": "../core" }, - { "path": "../chopsticks" }, - { "path": "../testing" }, - ], + "references": [{ "path": "../core" }, { "path": "../db" }, { "path": "../chopsticks" }, { "path": "../testing" }] } diff --git a/packages/node-test/index.cjs b/packages/node-test/index.cjs new file mode 100644 index 00000000..a6e9f8ca --- /dev/null +++ b/packages/node-test/index.cjs @@ -0,0 +1,8 @@ +const { setupWithServer } = require('@tanssi/chopsticks') + +async function main() { + const server = await setupWithServer({ endpoint: 'wss://rpc.polkadot.io', db: 'db.sqlite' }) + await server.chain.newBlock() + await server.close() +} +main() diff --git a/packages/node-test/index.mjs b/packages/node-test/index.mjs new file mode 100644 index 00000000..2b4d84cc --- /dev/null +++ b/packages/node-test/index.mjs @@ -0,0 +1,5 @@ +import { setupWithServer } from '@tanssi/chopsticks' + +const server = await setupWithServer({ endpoint: 'wss://rpc.polkadot.io', db: 'db.sqlite' }) +await server.chain.newBlock() +await server.close() diff --git a/packages/node-test/package.json b/packages/node-test/package.json new file mode 100644 index 00000000..d731d5b0 --- /dev/null +++ b/packages/node-test/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "dependencies": { + "@tanssi/chopsticks": "workspace:*" + } +} diff --git a/packages/testing/package.json b/packages/testing/package.json index 8087b0ef..80bcb85d 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -1,37 +1,53 @@ { "name": "@tanssi/chopsticks-testing", - "version": "0.8.0-7", "author": "", + "version": "0.9.2", "license": "Apache-2.0", + "type": "module", "scripts": { - "clean": "rm -rf lib tsconfig.tsbuildinfo", - "build": "tsc -p ./tsconfig.json" + "clean": "rm -rf dist", + "build": "yarn clean && yarn build:cjs && yarn build:esm && yarn build:types", + "build:cjs": "swc ./src --config-file ../../.cjsswcrc -d dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json", + "build:esm": "swc ./src --config-file ../../.esmswcrc -d dist/esm", + "build:types": "tsc -p tsconfig.json --emitDeclarationOnly --outDir dist/types" }, "dependencies": { - "@tanssi/chopsticks": "workspace:*" + "@polkadot/api": "^10.10.1", + "@polkadot/types": "^10.10.1", + "@tanssi/chopsticks": "workspace:*", + "@tanssi/chopsticks-utils": "workspace:*" }, "peerDependencies": { "vitest": "^0.34.0" }, "devDependencies": { - "@types/chai": "^4.3.5", - "typescript": "^5.1.6" + "@swc/cli": "0.1.62", + "@swc/core": "^1.3.96", + "@types/chai": "^4.3.10", + "typescript": "^5.2.2" }, "files": [ - "lib" + "dist/esm/**", + "dist/cjs/**", + "dist/types/**" ], - "main": "./lib/index.js", - "types": "./lib/index.d.ts", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/types/index.d.ts", "exports": { ".": { - "types": "./lib/index.d.ts", - "default": "./lib/index.js" + "types": "./dist/types/index.d.ts", + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js", + "default": "./dist/esm/index.js" }, "./*": { - "types": "./lib/*.d.ts", - "default": "./lib/*.js" + "types": "./dist/types/*.d.ts", + "require": "./dist/cjs/*.js", + "import": "./dist/esm/*.js", + "default": "./dist/esm/*.js" }, - "./package.json": "./package.json" - }, - "stableVersion": "0.7.3" + "./package.json": "./package.json", + "./package.cjs.json": "./dist/cjs/package.json" + } } diff --git a/packages/testing/src/index.ts b/packages/testing/src/index.ts index f1059be2..df1a63d1 100644 --- a/packages/testing/src/index.ts +++ b/packages/testing/src/index.ts @@ -1,157 +1,9 @@ -import { ApiPromise, WsProvider } from '@polkadot/api' -import { - BuildBlockMode, - StorageValues, - connectParachains, - connectVertical, - fetchConfig, - setupWithServer, -} from '@tanssi/chopsticks' +import { ApiPromise } from '@polkadot/api' import { Codec } from '@polkadot/types/types' -import { Config } from '@tanssi/chopsticks/schema' -import { HexString } from '@polkadot/util/types' -import { Keyring, createTestKeyring } from '@polkadot/keyring' -import { SubmittableExtrinsic } from '@polkadot/api-base/types' import { expect } from 'vitest' -export * from './check' - -export type SetupOption = { - endpoint: string - blockNumber?: number - blockHash?: HexString - wasmOverride?: string - db?: string - timeout?: number - port?: number - maxMemoryBlockCount?: number -} - -export type SetupConfig = Config & { - timeout?: number -} - -export const createConfig = ({ - endpoint, - blockNumber, - blockHash, - wasmOverride, - db, - timeout, - port, - maxMemoryBlockCount, -}: SetupOption): SetupConfig => { - // random port if not specified - port = port ?? Math.floor(Math.random() * 10000) + 10000 - const config = { - endpoint, - port, - block: blockNumber || blockHash, - mockSignatureHost: true, - 'build-block-mode': BuildBlockMode.Manual, - 'max-memory-block-count': maxMemoryBlockCount ?? 100, - db, - 'wasm-override': wasmOverride, - timeout, - } - return config -} - -export const setupContext = async (option: SetupOption) => { - return setupContextWithConfig(createConfig(option)) -} - -export const setupContextWithConfig = async ({ timeout, ...config }: SetupConfig) => { - const { chain, listenPort, close } = await setupWithServer(config) - - const url = `ws://localhost:${listenPort}` - const ws = new WsProvider(url, undefined, undefined, timeout) - const api = await ApiPromise.create({ - provider: ws, - signedExtensions: { - SetEvmOrigin: { - extrinsic: {}, - payload: {}, - }, - }, - }) - - await api.isReady - - return { - url, - chain, - ws, - api, - dev: { - newBlock: (param?: { count?: number; to?: number }): Promise => { - return ws.send('dev_newBlock', [param]) - }, - setStorage: (values: StorageValues, blockHash?: string) => { - return ws.send('dev_setStorage', [values, blockHash]) - }, - timeTravel: (date: string | number) => { - return ws.send('dev_timeTravel', [date]) - }, - setHead: (hashOrNumber: string | number) => { - return ws.send('dev_setHead', [hashOrNumber]) - }, - }, - async teardown() { - await api.disconnect() - await close() - }, - async pause() { - await ws.send('dev_setBlockBuildMode', [BuildBlockMode.Instant]) - - // log a bit later to ensure the message is visible - setTimeout(() => console.log(`Test paused. Polkadot.js apps URL: https://polkadot.js.org/apps/?rpc=${url}`), 100) - - return new Promise((_resolve) => {}) // wait forever - }, - } -} - -export type NetworkContext = Awaited> - -export const setupNetworks = async (networkOptions: Partial>) => { - const ret = {} as Record - - let wasmOverriden = false - - for (const [name, options] of Object.entries(networkOptions) as [string, Config | string | undefined][]) { - const config = typeof options === 'string' ? await fetchConfig(options) : options ?? (await fetchConfig(name)) - ret[name] = await setupContextWithConfig(config) - wasmOverriden ||= config['wasm-override'] != null - } - - const relaychainName = Object.keys(ret).filter((x) => ['polkadot', 'kusama'].includes(x.toLocaleLowerCase()))[0] - const { [relaychainName]: relaychain, ...parachains } = ret - - if (relaychain) { - for (const parachain of Object.values(parachains)) { - await connectVertical(relaychain.chain, parachain.chain) - } - } - - const parachainList = Object.values(parachains).map((i) => i.chain) - if (parachainList.length > 0) { - await connectParachains(parachainList) - } - - if (wasmOverriden) { - // trigger runtime upgrade if needed (due to wasm override) - for (const chain of Object.values(ret)) { - await chain.dev.newBlock() - } - // handle xcm version message if needed (due to wasm override triggered xcm version upgrade) - for (const chain of Object.values(ret)) { - await chain.dev.newBlock() - } - } - - return ret -} +export * from './check.js' +export * from '@tanssi/chopsticks-utils' type CodecOrArray = Codec | Codec[] @@ -236,52 +88,3 @@ export const redact = async (data: any | Promise) => { return process(json) } - -export function defer() { - const deferred = {} as { resolve: (value: any) => void; reject: (reason: any) => void; promise: Promise } - deferred.promise = new Promise((resolve, reject) => { - deferred.resolve = resolve - deferred.reject = reject - }) - return deferred -} - -export const sendTransaction = async (tx: Promise>) => { - const signed = await tx - const deferred = defer() - await signed.send((status) => { - console.log('tranaction status: ', status.status.toHuman()) - if (status.isInBlock || status.isFinalized) { - deferred.resolve(status.events) - } - if (status.isError) { - deferred.reject(status.status) - } - }) - - return { - events: deferred.promise, - } -} - -export const testingPairs = (keyringType: 'ed25519' | 'sr25519' = 'ed25519', ss58Format?: number) => { - const keyringEth = createTestKeyring({ type: 'ethereum' }) - // default to ed25519 because sr25519 signature is non-deterministic - const keyring = new Keyring({ type: keyringType, ss58Format }) - return { - alice: keyring.addFromUri('//Alice'), - bob: keyring.addFromUri('//Bob'), - charlie: keyring.addFromUri('//Charlie'), - dave: keyring.addFromUri('//Dave'), - eve: keyring.addFromUri('//Eve'), - - alith: keyringEth.getPair('0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac'), - baltathar: keyringEth.getPair('0x3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0'), - charleth: keyringEth.getPair('0x798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc'), - dorothy: keyringEth.getPair('0x773539d4Ac0e786233D90A233654ccEE26a613D9'), - ethan: keyringEth.getPair('0xFf64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB'), - - keyring, - keyringEth, - } -} diff --git a/packages/testing/tsconfig.json b/packages/testing/tsconfig.json index 95a60671..091bc76b 100644 --- a/packages/testing/tsconfig.json +++ b/packages/testing/tsconfig.json @@ -1,15 +1,10 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "outDir": "lib", "rootDir": "src", - "module": "ES2022", // this is required for vitest to work + "declarationDir": "dist/types" }, "include": ["src/**/*"], "exclude": ["src/**/*.test.ts"], - "references": [ - { - "path": "../chopsticks" - } - ], + "references": [{ "path": "../utils/tsconfig.json" }] } diff --git a/packages/utils/package.json b/packages/utils/package.json new file mode 100644 index 00000000..47a24fdd --- /dev/null +++ b/packages/utils/package.json @@ -0,0 +1,46 @@ +{ + "name": "@tanssi/chopsticks-utils", + "version": "0.9.2", + "author": "Moondance Labs", + "license": "Apache-2.0", + "type": "module", + "scripts": { + "clean": "rm -rf dist", + "build": "yarn clean && yarn build:cjs && yarn build:esm && yarn build:types", + "build:cjs": "swc ./src --config-file ../../.cjsswcrc -d dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json", + "build:esm": "swc ./src --config-file ../../.esmswcrc -d dist/esm", + "build:types": "tsc -p tsconfig.json --emitDeclarationOnly --outDir dist/types" + }, + "dependencies": { + "@tanssi/chopsticks": "workspace:*" + }, + "devDependencies": { + "@swc/cli": "0.1.62", + "@swc/core": "^1.3.96", + "typescript": "^5.2.2" + }, + "files": [ + "dist/esm/**", + "dist/cjs/**", + "dist/types/**" + ], + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/types/index.d.ts", + "exports": { + ".": { + "types": "./dist/types/index.d.ts", + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js", + "default": "./dist/esm/index.js" + }, + "./*": { + "types": "./dist/types/*.d.ts", + "require": "./dist/cjs/*.js", + "import": "./dist/esm/*.js", + "default": "./dist/esm/*.js" + }, + "./package.json": "./package.json", + "./package.cjs.json": "./dist/cjs/package.json" + } +} diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts new file mode 100644 index 00000000..4a9d420d --- /dev/null +++ b/packages/utils/src/index.ts @@ -0,0 +1,201 @@ +import { ApiPromise, WsProvider } from '@polkadot/api' +import { + BuildBlockMode, + StorageValues, + connectParachains, + connectVertical, + fetchConfig, + setupWithServer, +} from '@tanssi/chopsticks' +import { Codec } from '@polkadot/types/types' +import { Config } from '@tanssi/chopsticks/schema/index.js' +import { HexString } from '@polkadot/util/types' +import { Keyring, createTestKeyring } from '@polkadot/keyring' +import { SubmittableExtrinsic } from '@polkadot/api-base/types' + +export * from './signFake.js' + +export type SetupOption = { + endpoint: string + blockNumber?: number + blockHash?: HexString + wasmOverride?: string + db?: string + timeout?: number + port?: number + maxMemoryBlockCount?: number + resume?: boolean | HexString | number + runtimeLogLevel?: number +} + +export type SetupConfig = Config & { + timeout?: number +} + +export const createConfig = ({ + endpoint, + blockNumber, + blockHash, + wasmOverride, + db, + timeout, + port, + maxMemoryBlockCount, + resume, + runtimeLogLevel, +}: SetupOption): SetupConfig => { + // random port if not specified + port = port ?? Math.floor(Math.random() * 10000) + 10000 + const config = { + endpoint, + port, + block: blockNumber || blockHash, + 'mock-signature-host': true, + 'build-block-mode': BuildBlockMode.Manual, + 'max-memory-block-count': maxMemoryBlockCount ?? 100, + 'runtime-log-level': runtimeLogLevel, + db, + 'wasm-override': wasmOverride, + timeout, + resume: resume ?? false, + } + return config +} + +export const setupContext = async (option: SetupOption) => { + return setupContextWithConfig(createConfig(option)) +} + +export const setupContextWithConfig = async ({ timeout, ...config }: SetupConfig) => { + const { chain, listenPort, close } = await setupWithServer(config) + + const url = `ws://localhost:${listenPort}` + const ws = new WsProvider(url, 3_000, undefined, timeout) + const api = await ApiPromise.create({ + provider: ws, + noInitWarn: true, + }) + + return { + url, + chain, + ws, + api, + dev: { + newBlock: (param?: { count?: number; to?: number; unsafeBlockHeight?: number }): Promise => { + return ws.send('dev_newBlock', [param]) + }, + setStorage: (values: StorageValues, blockHash?: string) => { + return ws.send('dev_setStorage', [values, blockHash]) + }, + timeTravel: (date: string | number) => { + return ws.send('dev_timeTravel', [date]) + }, + setHead: (hashOrNumber: string | number) => { + return ws.send('dev_setHead', [hashOrNumber]) + }, + }, + async teardown() { + await api.disconnect() + await close() + }, + async pause() { + await ws.send('dev_setBlockBuildMode', [BuildBlockMode.Instant]) + + // log a bit later to ensure the message is visible + setTimeout(() => console.log(`Test paused. Polkadot.js apps URL: https://polkadot.js.org/apps/?rpc=${url}`), 100) + + return new Promise((_resolve) => {}) // wait forever + }, + } +} + +export type NetworkContext = Awaited> + +export const setupNetworks = async (networkOptions: Partial>) => { + const ret = {} as Record + + let wasmOverriden = false + + for (const [name, options] of Object.entries(networkOptions) as [string, Config | string | undefined][]) { + const config = typeof options === 'string' ? await fetchConfig(options) : options ?? (await fetchConfig(name)) + ret[name] = await setupContextWithConfig(config) + wasmOverriden ||= config['wasm-override'] != null + } + + const relaychainName = Object.keys(ret).filter((x) => ['polkadot', 'kusama'].includes(x.toLocaleLowerCase()))[0] + const { [relaychainName]: relaychain, ...parachains } = ret + + if (relaychain) { + for (const parachain of Object.values(parachains)) { + await connectVertical(relaychain.chain, parachain.chain) + } + } + + const parachainList = Object.values(parachains).map((i) => i.chain) + if (parachainList.length > 0) { + await connectParachains(parachainList) + } + + if (wasmOverriden) { + // trigger runtime upgrade if needed (due to wasm override) + for (const chain of Object.values(ret)) { + await chain.dev.newBlock() + } + // handle xcm version message if needed (due to wasm override triggered xcm version upgrade) + for (const chain of Object.values(ret)) { + await chain.dev.newBlock() + } + } + + return ret +} + +export function defer() { + const deferred = {} as { resolve: (value: any) => void; reject: (reason: any) => void; promise: Promise } + deferred.promise = new Promise((resolve, reject) => { + deferred.resolve = resolve + deferred.reject = reject + }) + return deferred +} + +export const sendTransaction = async (tx: Promise>) => { + const signed = await tx + const deferred = defer() + await signed.send((status) => { + console.log('tranaction status: ', status.status.toHuman()) + if (status.isInBlock || status.isFinalized) { + deferred.resolve(status.events) + } + if (status.isError) { + deferred.reject(status.status) + } + }) + + return { + events: deferred.promise, + } +} + +export const testingPairs = (keyringType: 'ed25519' | 'sr25519' = 'ed25519', ss58Format?: number) => { + const keyringEth = createTestKeyring({ type: 'ethereum' }) + // default to ed25519 because sr25519 signature is non-deterministic + const keyring = new Keyring({ type: keyringType, ss58Format }) + return { + alice: keyring.addFromUri('//Alice'), + bob: keyring.addFromUri('//Bob'), + charlie: keyring.addFromUri('//Charlie'), + dave: keyring.addFromUri('//Dave'), + eve: keyring.addFromUri('//Eve'), + + alith: keyringEth.getPair('0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac'), + baltathar: keyringEth.getPair('0x3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0'), + charleth: keyringEth.getPair('0x798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc'), + dorothy: keyringEth.getPair('0x773539d4Ac0e786233D90A233654ccEE26a613D9'), + ethan: keyringEth.getPair('0xFf64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB'), + + keyring, + keyringEth, + } +} diff --git a/packages/utils/src/signFake.ts b/packages/utils/src/signFake.ts new file mode 100644 index 00000000..3c6b5f61 --- /dev/null +++ b/packages/utils/src/signFake.ts @@ -0,0 +1,30 @@ +import { ApiPromise } from '@polkadot/api' +import { GenericExtrinsic } from '@polkadot/types' +import { SignatureOptions } from '@polkadot/types/types' + +export type SignFakeOptions = Partial + +export const signFakeWithApi = async ( + api: ApiPromise, + tx: GenericExtrinsic, + addr: string, + options: SignFakeOptions = {}, +) => { + const nonce = options.nonce ?? (await api.query.system.account(addr)).nonce + signFake(tx, addr, { + nonce, + genesisHash: api.genesisHash, + runtimeVersion: api.runtimeVersion, + blockHash: api.genesisHash, + ...options, + }) +} + +export const signFake = (tx: GenericExtrinsic, addr: string, options: SignatureOptions) => { + const mockSignature = new Uint8Array(64) + mockSignature.fill(0xcd) + mockSignature.set([0xde, 0xad, 0xbe, 0xef]) + tx.signFake(addr, options) + + tx.signature.set(mockSignature) +} diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json new file mode 100644 index 00000000..02a0d0f9 --- /dev/null +++ b/packages/utils/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "declarationDir": "dist/types" + }, + "include": ["src/**/*"], + "exclude": ["src/**/*.test.ts"], + "references": [{ "path": "../chopsticks/tsconfig.json" }] +} diff --git a/packages/web-test/index.html b/packages/web-test/index.html index 915ba92d..6e40d51f 100644 --- a/packages/web-test/index.html +++ b/packages/web-test/index.html @@ -1,18 +1,11 @@ + + + + -
Open console to access chain
-
Loading...
-
-
Caller 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
- - -

-		
- - +
+ diff --git a/packages/web-test/package.json b/packages/web-test/package.json index 7ca353ef..09f5ea8d 100644 --- a/packages/web-test/package.json +++ b/packages/web-test/package.json @@ -3,19 +3,29 @@ "author": "Acala Network ", "license": "Apache-2.0", "private": true, + "type": "module", "scripts": { + "build": "npx vite build", "vite:serve": "npx vite --port 3000 --host", + "vite:preview": "npx vite preview --port 3000", "parcel:serve": "npx parcel serve index.html --port 3000", - "test": "npx playwright test" - }, - "dependencies": { - "@tanssi/chopsticks-core": "workspace:*" + "test": "playwright test" }, "devDependencies": { - "@playwright/test": "^1.37.1", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", + "@mui/material": "^5.14.17", + "@playwright/test": "^1.39.0", + "@tanssi/chopsticks-core": "workspace:*", + "@tanssi/chopsticks-db": "workspace:*", + "@types/react": "^18.2.37", + "@types/react-dom": "^18.2.15", + "@vitejs/plugin-react": "^4.1.1", "crypto-browserify": "^3.12.0", "path-browserify": "^1.0.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", "stream-browserify": "^3.0.0", - "typescript": "^5.1.6" + "typescript": "^5.2.2" } } diff --git a/packages/web-test/src/App.tsx b/packages/web-test/src/App.tsx new file mode 100644 index 00000000..ef05c22e --- /dev/null +++ b/packages/web-test/src/App.tsx @@ -0,0 +1,315 @@ +import '@polkadot/api-augment' +import { + Alert, + Box, + CircularProgress, + Container, + FormControl, + Input, + InputLabel, + Button as MuiBtn, + TextField, + Typography, +} from '@mui/material' +import { ApiPromise } from '@polkadot/api' +import { ChopsticksProvider, setStorage, setup } from '@tanssi/chopsticks-core' +import { HexString } from '@polkadot/util/types' +import { IdbDatabase } from '@tanssi/chopsticks-db/browser.js' +import { createTestPairs } from '@polkadot/keyring' +import { styled } from '@mui/system' +import { useEffect, useState } from 'react' +import type { SetupOptions } from '@tanssi/chopsticks-core' + +const { alice, bob } = createTestPairs() + +const DocsLink = styled('a')` + position: absolute; + top: 16px; + right: 10px; +` + +const Button = styled(MuiBtn)` + border-radius: 8px; + padding: 0.4em 0.8em; + font-weight: 500; + font-family: inherit; + cursor: pointer; + transition: border-color 0.25s; +` + +const BlocksContainer = styled('div')` + width: 100%; + display: flex; + flex-direction: column; + justify-content: start; + font: 16px monospace; + overflow-x: scroll; + padding: 5px; +` + +const DryRunTextArea = styled(TextField)({ + width: '100%', +}) + +const Pre = styled('pre')` + max-width: 100%; + overflow: auto; + font-size: 14px; + margin: 4px 0; + padding: 4px 6px; + border-radius: 4px; + background-color: #ffe4efb7; +` + +const Section = styled('section')` + min-height: 180px; + margin-top: 24px; + display: flex; + flex-direction: column; + align-items: start; + justify-content: start; + max-width: 100%; +` + +const Code = styled('code')` + font-size: 14px; + margin: 0 2px; + padding: 4px 5px; + border-radius: 4px; + background-color: #ffe4efb7; +` + +function App() { + const [dryRunLoading, setDryRunLoading] = useState(false) + const [chainLoading, setChainLoading] = useState(false) + const [building, setBuilding] = useState(false) + const [extrinsic, setExtrinsic] = useState('') + const [dryRunResult, setDryRunResult] = useState('') + const [config, setConfig] = useState({ + endpoint: 'wss://acala-rpc.aca-api.network', + block: 4_000_000, + }) + const [blocks, setBlocks] = useState<{ number: number; hash: HexString }[]>([]) + const [bobBalance, setBobBalance] = useState('') + const [transferDisabled, setTransferDisabled] = useState(false) + + const resetState = () => { + setBlocks([]) + setDryRunLoading(false) + setExtrinsic('0x0a000088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee0f0090c04bb6db2b') + setDryRunResult('') + } + + const setupChain = async () => { + setChainLoading(true) + const chain = await setup({ + endpoint: config.endpoint, + block: config.block, + mockSignatureHost: true, + db: new IdbDatabase('cache'), + }) + globalThis.chain = chain + + await setStorage(chain, { + System: { + Account: [ + [ + ['5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY'], + { + providers: 1, + data: { + free: '1000000000000000000', + }, + }, + ], + [[alice.address], { providers: 1, data: { free: 1 * 1e12 } }], + [[bob.address], { providers: 1, data: { free: 1 * 1e12 } }], + ], + }, + }) + + const provider = new ChopsticksProvider(globalThis.chain) + const api = new ApiPromise({ provider, noInitWarn: true }) + await api.isReadyOrError + globalThis.api = api + + setChainLoading(false) + setBlocks([{ number: chain.head.number, hash: chain.head.hash }]) + } + + useEffect(() => { + resetState() + setupChain() + + return () => { + globalThis.chain?.close() + } + }, []) + + const handleBuildBlock = async () => { + // build a block + setBuilding(true) + await chain.newBlock().catch(console.error) + setBlocks((blocks) => [...blocks, { number: chain.head.number, hash: chain.head.hash }]) + setBuilding(false) + } + + const testChopsticksProvider = async () => { + setTransferDisabled(true) + + await new Promise((resolve) => { + globalThis.api.tx.balances.transfer(bob.address, 1000).signAndSend(alice, (status) => { + if (status.isInBlock || status.isFinalized) { + resolve() + } + }) + }) + + const bobAccount = await globalThis.api.query.system.account(bob.address) + setBobBalance(bobAccount.data.free.toString()) + setTransferDisabled(false) + } + + const handleDryRun = async () => { + setDryRunResult('') + setDryRunLoading(true) + const call = extrinsic.trim() as HexString + try { + const { outcome, storageDiff } = await globalThis.chain.dryRunExtrinsic({ + call, + address: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + }) + setDryRunResult(JSON.stringify({ outcome: outcome.toHuman(), storageDiff }, null, 2)) + } catch (e) { + setDryRunResult((e as Error).toString()) + } + setDryRunLoading(false) + } + + const handleSaveConfig = async () => { + await chain.api.disconnect() + await chain.close() + resetState() + setupChain() + } + + return ( + + + + + + + Open console to access chain + + +
+ + Configuration + + + + Block Number or Hash + + setConfig({ ...config, block: e.target.value })} + /> + + + + API Url + + setConfig({ ...config, endpoint: e.target.value })} + /> + + +
+ +
+ + Blocks + + + {blocks.map((block) => ( +
+							{block.number} {block.hash}
+						
+ ))} +
+ +
+ +
+ + Dry Run + +
Caller 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
+ { + setExtrinsic(e.target.value) + }} + /> + + {dryRunResult &&
{dryRunResult}
} + {dryRunLoading &&
Loading dry run result...
} +
+
+ + {transferDisabled &&
Transferring...
} + {bobBalance &&
Bob balance: {bobBalance}
} +
+
+ ) +} + +export default App diff --git a/packages/web-test/src/index.css b/packages/web-test/src/index.css new file mode 100644 index 00000000..d25e4edb --- /dev/null +++ b/packages/web-test/src/index.css @@ -0,0 +1,11 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; +} + +body { + margin: 0; + display: flex; + min-height: 100vh; +} diff --git a/packages/web-test/src/index.ts b/packages/web-test/src/index.ts deleted file mode 100644 index 1a2cbaa9..00000000 --- a/packages/web-test/src/index.ts +++ /dev/null @@ -1,55 +0,0 @@ -/// -/// - -const app = document.getElementById('app') as HTMLDivElement -const extrinsic = document.getElementById('extrinsic') as HTMLTextAreaElement -const submit = document.getElementById('submit') as HTMLInputElement -const result = document.getElementById('result') as HTMLPreElement - -import { setStorage, setup } from '@tanssi/chopsticks-core' -;(async () => { - const chain = await setup({ - endpoint: 'wss://acala-rpc-0.aca-api.network', - block: 4_000_000, - mockSignatureHost: true, - db: 'cache', - }) - globalThis.chain = chain - - await setStorage(chain, { - System: { - Account: [ - [ - ['5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY'], - { - providers: 1, - data: { - free: '1000000000000000000', - }, - }, - ], - ], - }, - }) - - submit.onclick = async () => { - result.innerHTML = 'Running...' - submit.disabled = true - const call = extrinsic.value.trim() as any - extrinsic.value = '' - try { - const { outcome, storageDiff } = await chain.dryRunExtrinsic({ - call, - address: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', - }) - result.innerHTML = JSON.stringify({ outcome: outcome.toHuman(), storageDiff }, null, 2) - } catch (e: any) { - result.innerHTML = e.toString() - } - submit.disabled = false - } - - app.innerHTML = chain.head.number + ' ' + chain.head.hash + '
' - await chain.newBlock().catch(console.error) - app.innerHTML += chain.head.number + ' ' + chain.head.hash -})() diff --git a/packages/web-test/src/index.tsx b/packages/web-test/src/index.tsx new file mode 100644 index 00000000..b1d8078c --- /dev/null +++ b/packages/web-test/src/index.tsx @@ -0,0 +1,11 @@ +import { createRoot } from 'react-dom/client' +import React from 'react' + +import './index.css' +import App from './App.js' + +createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/packages/web-test/src/vite-env.d.ts b/packages/web-test/src/vite-env.d.ts new file mode 100644 index 00000000..75ad8fae --- /dev/null +++ b/packages/web-test/src/vite-env.d.ts @@ -0,0 +1,11 @@ +/// + +import { ApiPromise } from '@polkadot/api' +import { Blockchain } from '@tanssi/chopsticks-core' + +declare global { + // eslint-disable-next-line no-var + var chain: Blockchain + // eslint-disable-next-line no-var + var api: ApiPromise +} diff --git a/packages/web-test/tests/chopsticks-provider.spec.ts b/packages/web-test/tests/chopsticks-provider.spec.ts new file mode 100644 index 00000000..e8679676 --- /dev/null +++ b/packages/web-test/tests/chopsticks-provider.spec.ts @@ -0,0 +1,22 @@ +import { expect, test } from '@playwright/test' + +test.describe('chopsticks provider', async () => { + test.beforeEach(async ({ page }) => { + // Go to the starting url before each test. + page.on('console', async (msg) => { + const args = await Promise.all(msg.args().map((arg) => arg.jsonValue())) + console.log(...args) + }) + await page.goto('/') + await page.waitForLoadState() + }) + + test('chopsticks provider send transaction', async ({ page }) => { + test.setTimeout(5 * 60 * 1000) // 5 minutes timeout + // chain is ready + await expect(page.locator('#blocks-section')).toHaveText(/4000000/, { timeout: 60_000 }) + + await page.getByText('Alice transfer 1000 to Bob').click() + await expect(page.locator('#chopsticks-provider')).toHaveText(/1000000001000/, { timeout: 200_000 }) + }) +}) diff --git a/packages/web-test/tests/index.spec.ts b/packages/web-test/tests/index.spec.ts index 7dc59ff6..8bbb0386 100644 --- a/packages/web-test/tests/index.spec.ts +++ b/packages/web-test/tests/index.spec.ts @@ -1,22 +1,120 @@ +import { HexString } from '@polkadot/util/types' import { expect, test } from '@playwright/test' -test('build blocks successfully', async ({ page }) => { - test.setTimeout(5 * 60 * 1000) // 5 minutes timeout +test.describe('index', () => { + test.beforeEach(async ({ page }) => { + // Go to the starting url before each test. + page.on('console', async (msg) => { + const args = await Promise.all(msg.args().map((arg) => arg.jsonValue())) + console.log(...args) + }) + await page.goto('/') + await page.waitForLoadState() + }) - page.on('console', async (msg) => { - const args = await Promise.all(msg.args().map((arg) => arg.jsonValue())) - console.log(...args) + test('build blocks successfully', async ({ page }) => { + test.setTimeout(5 * 60 * 1000) // 5 minutes timeout + // starts with Loading... + await expect(page.getByText('Save')).toBeDisabled() + // chain is ready + await expect(page.locator('#blocks-section')).toHaveText(/4000000/, { timeout: 60_000 }) + await page.getByText(/build block/i).click() + // wait for new block + await expect(page.locator('#blocks-section')).toHaveText(/4000001/, { timeout: 200_000 }) + // check indexedDB + const savedHash = await page.evaluate(async () => { + const db = window.indexedDB.open('cache', 1) + await new Promise((resolve) => { + db.onsuccess = resolve + }) + const tx = db.result.transaction('block', 'readonly') + const store = tx.objectStore('block') + const block = store.index('byNumber').get(4000001) + await new Promise((resolve) => { + block.onsuccess = resolve + }) + return block.result.hash + }) + expect(savedHash).toBe('0x6b81a9a7fabbe32c1e685b944c8f1afd06be7e58ae48bb8d5ac50cc761d9bb77') }) - await page.goto('/') - await page.waitForLoadState() + test('dry run extrinsic', async ({ page }) => { + test.setTimeout(5 * 60 * 1000) // 5 minutes timeout + // chain is ready + await expect(page.locator('#blocks-section')).toHaveText(/4000000/, { timeout: 60_000 }) + await page.getByText(/dry run call/i).click() + await expect(page.getByText('Loading dry run result...')).toBeVisible() + await expect(page.locator('#extrinsic-section')).toHaveText(/outcome/, { timeout: 200_000 }) + }) - // starts with Loading... - await expect(page.locator('div#app')).toHaveText(/Loading.../) + test('chain indexedDB works', async ({ page }) => { + test.setTimeout(6 * 60 * 1000) // 6 minutes timeout + // chain is ready + await expect(page.locator('#blocks-section')).toHaveText(/4000000/, { timeout: 60_000 }) + await page.getByText(/build block/i).click() + // wait for new block + await expect(page.locator('#blocks-section')).toHaveText(/4000001/, { timeout: 200_000 }) + await page.getByText(/build block/i).click() + // wait for new block + await expect(page.locator('#blocks-section')).toHaveText(/4000002/, { timeout: 20_000 }) - // chain is ready - await expect(page.locator('div#app')).toHaveText(/4000000/, { timeout: 60_000 }) + // test db methods + const hightestBlock = await page.evaluate(() => globalThis.chain.db?.queryHighestBlock()) + expect(hightestBlock).toEqual( + expect.objectContaining({ + number: 4_000_002, + hash: '0xdd1d5206ce64d643e262f0bdc351147e2ba9e20846fdf78c9c5855ab6e2bc0ca', + }), + ) + const blockByNumber = await page.evaluate(() => globalThis.chain.db?.queryBlockByNumber(4_000_001)) + expect(blockByNumber).toEqual( + expect.objectContaining({ + number: 4_000_001, + hash: '0x6b81a9a7fabbe32c1e685b944c8f1afd06be7e58ae48bb8d5ac50cc761d9bb77', + }), + ) + const blocksCount = await page.evaluate(() => globalThis.chain.db?.blocksCount()) + expect(blocksCount).toBe(2) + await page.evaluate( + (hightestBlock) => globalThis.chain.db?.deleteBlock(hightestBlock?.hash as HexString), + hightestBlock, + ) + // run test again after deleting hightest block + { + const blocksCount = await page.evaluate(() => globalThis.chain.db?.blocksCount()) + expect(blocksCount).toBe(1) + const hightestBlock = await page.evaluate(() => globalThis.chain.db?.queryHighestBlock()) + expect(hightestBlock).toEqual( + expect.objectContaining({ + number: 4_000_001, + hash: '0x6b81a9a7fabbe32c1e685b944c8f1afd06be7e58ae48bb8d5ac50cc761d9bb77', + }), + ) + } - // wait for new block - await expect(page.locator('div#app')).toHaveText(/4000001/, { timeout: 200_000 }) + // test storage + { + const storage = await page.evaluate(() => globalThis.chain.db?.queryStorage('0xaa', '0x01')) + expect(storage).toBeNull() + } + { + await page.evaluate(() => globalThis.chain.db?.saveStorage('0xaa', '0x01', null)) + const storage = await page.evaluate(() => globalThis.chain.db?.queryStorage('0xaa', '0x01')) + expect(storage).toEqual({ blockHash: '0xaa', key: '0x01', value: null }) + } + { + await page.evaluate(() => globalThis.chain.db?.saveStorage('0xaa', '0x01', '0x01')) + const storage = await page.evaluate(() => globalThis.chain.db?.queryStorage('0xaa', '0x01')) + expect(storage).toEqual({ blockHash: '0xaa', key: '0x01', value: '0x01' }) + } + { + await page.evaluate(() => globalThis.chain.db?.saveStorage('0xbb', '0x02', '0x02')) + const storage = await page.evaluate(() => globalThis.chain.db?.queryStorage('0xbb', '0x02')) + expect(storage).toEqual({ blockHash: '0xbb', key: '0x02', value: '0x02' }) + } + { + const storage = await page.evaluate(() => globalThis.chain.db?.queryStorage('0xbb', '0x01')) + expect(storage).toBeNull() + } + }) }) diff --git a/packages/web-test/tsconfig.json b/packages/web-test/tsconfig.json index 710d60bd..2428db0b 100644 --- a/packages/web-test/tsconfig.json +++ b/packages/web-test/tsconfig.json @@ -1,15 +1,14 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { + "jsx": "react-jsx", "outDir": "lib", "rootDir": "src", - "target": "ESNext", + "target": "es2021", "module": "ESNext", - "lib": ["es6", "dom", "dom.iterable"], + "lib": ["es2021", "dom", "dom.iterable"], "sourceMap": true }, "include": ["src/**/*"], - "references": [ - { "path": "../core" } - ] + "references": [{ "path": "../core/tsconfig.json" }, { "path": "../db/tsconfig.json" }] } diff --git a/packages/web-test/vite.config.js b/packages/web-test/vite.config.js deleted file mode 100644 index 908f5f08..00000000 --- a/packages/web-test/vite.config.js +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from 'vite' -import tsconfigPaths from 'vite-tsconfig-paths' - -export default defineConfig({ - plugins: [tsconfigPaths()], -}) diff --git a/packages/web-test/vite.config.mjs b/packages/web-test/vite.config.mjs new file mode 100644 index 00000000..f8a090a8 --- /dev/null +++ b/packages/web-test/vite.config.mjs @@ -0,0 +1,11 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import tsconfigPaths from 'vite-tsconfig-paths' + +export default defineConfig({ + plugins: [tsconfigPaths(), react()], + base: '/chopsticks/', + build: { + outDir: '../../dist', + }, +}) diff --git a/rust-toolchain.toml b/rust-toolchain.toml index be054789..535ea1c3 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.70" +channel = "1.72" targets = [ "wasm32-unknown-unknown" ] profile = "minimal" diff --git a/tsconfig.base.json b/tsconfig.base.json index f41fe9d0..f5b266ff 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -2,28 +2,32 @@ "compilerOptions": { "allowSyntheticDefaultImports": true, "esModuleInterop": true, - "lib": ["esnext"], - "module": "CommonJS", - "moduleResolution": "node", + "lib": ["esnext", "dom", "dom.iterable"], + "isolatedModules": true, + "module": "nodenext", + "moduleResolution": "nodenext", "noUnusedLocals": true, "noUnusedParameters": true, "noImplicitAny": false, "target": "esnext", - "skipLibCheck": true, + "skipLibCheck": false, "strict": true, "declaration": true, "resolveJsonModule": true, + "forceConsistentCasingInFileNames": true, "baseUrl": ".", "composite": true, "paths": { - "@tanssi/chopsticks": ["packages/chopsticks/src"], + "@tanssi/chopsticks": ["packages/chopsticks/src/index.ts"], "@tanssi/chopsticks/*": ["packages/chopsticks/src/*"], - "@tanssi/chopsticks-core": ["packages/core/src"], + "@tanssi/chopsticks-core": ["packages/core/src/index.ts"], "@tanssi/chopsticks-core/*": ["packages/core/src/*"], - "@tanssi/chopsticks-testing": ["packages/testing/src"], + "@tanssi/chopsticks-db": ["packages/db/src/index.ts"], + "@tanssi/chopsticks-db/*": ["packages/db/src/*"], + "@tanssi/chopsticks-testing": ["packages/testing/src/index.ts"], "@tanssi/chopsticks-testing/*": ["packages/testing/src/*"], - "@tanssi/web-test": ["packages/web/src"], - "@tanssi/web-test/*": ["packages/web/src/*"] + "@tanssi/chopsticks-utils": ["packages/utils/src/index.ts"], + "@tanssi/chopsticks-utils/*": ["packages/utils/src/*"] } } } diff --git a/tsconfig.json b/tsconfig.json index 2e3ea768..af8aa756 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,11 @@ { "extends": "./tsconfig.base.json", "exclude": ["**/node_modules", "**/lib"], - "include": ["./packages/**/*"] + "include": ["./packages/**/*"], + "ts-node": { + "transpileOnly": true, + "files": true, + "esm": true, + "swc": true + } } diff --git a/tsconfig.lint.json b/tsconfig.lint.json index 24199a6a..0d8e189d 100644 --- a/tsconfig.lint.json +++ b/tsconfig.lint.json @@ -1,6 +1,6 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "module": "es2020" + "jsx": "react-jsx" } } diff --git a/vendor/smoldot b/vendor/smoldot index cca0337c..2c106b39 160000 --- a/vendor/smoldot +++ b/vendor/smoldot @@ -1 +1 @@ -Subproject commit cca0337cee126f41dc8029e1f7e93909022080c3 +Subproject commit 2c106b398b66623a79356e050c8ffe325de514b6 diff --git a/vitest.config.mts b/vitest.config.mts new file mode 100644 index 00000000..33ec0f2c --- /dev/null +++ b/vitest.config.mts @@ -0,0 +1,15 @@ +import { defineConfig } from 'vitest/config' +import swc from 'unplugin-swc' +import tsconfigPaths from 'vite-tsconfig-paths' + +export default defineConfig({ + test: { + minThreads: process.env.CI ? 1 : undefined /* use defaults */, + maxThreads: process.env.CI ? 4 : undefined /* use defaults */, + hookTimeout: 30000, + testTimeout: 120000, + include: ['packages/**/*.test.ts'], + bail: process.env.CI ? 1 : undefined /* use defaults */, + }, + plugins: [swc.vite(), tsconfigPaths()], +}) diff --git a/vitest.config.ts b/vitest.config.ts deleted file mode 100644 index 04c6f5c2..00000000 --- a/vitest.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineConfig } from 'vitest/config' -import swc from 'unplugin-swc' -import tsconfigPaths from 'vite-tsconfig-paths' - -export default defineConfig({ - test: { - hookTimeout: 30000, - testTimeout: 120000, - include: ['packages/**/*.test.ts'], - }, - plugins: [swc.vite(), tsconfigPaths()], -}) diff --git a/yarn.lock b/yarn.lock index ebfc5d33..f9339759 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,12 +12,451 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.21.0": - version: 7.22.10 - resolution: "@babel/runtime@npm:7.22.10" +"@algolia/autocomplete-core@npm:1.9.3": + version: 1.9.3 + resolution: "@algolia/autocomplete-core@npm:1.9.3" + dependencies: + "@algolia/autocomplete-plugin-algolia-insights": 1.9.3 + "@algolia/autocomplete-shared": 1.9.3 + checksum: ce78048568660184a4fa3c6548f344a7f5ce0ba45d4cfc233f9756b6d4f360afd5ae3a18efefcd27a626d3a0d6cf22d9cba3e21b217afae62b8e9d11bc4960da + languageName: node + linkType: hard + +"@algolia/autocomplete-plugin-algolia-insights@npm:1.9.3": + version: 1.9.3 + resolution: "@algolia/autocomplete-plugin-algolia-insights@npm:1.9.3" + dependencies: + "@algolia/autocomplete-shared": 1.9.3 + peerDependencies: + search-insights: ">= 1 < 3" + checksum: 030695bf692021c27f52a3d4931efed23032796e326d4ae7957ae91b51c36a10dc2d885fb043909e853f961c994b8e9ff087f50bb918cfa075370562251a199f + languageName: node + linkType: hard + +"@algolia/autocomplete-preset-algolia@npm:1.9.3": + version: 1.9.3 + resolution: "@algolia/autocomplete-preset-algolia@npm:1.9.3" + dependencies: + "@algolia/autocomplete-shared": 1.9.3 + peerDependencies: + "@algolia/client-search": ">= 4.9.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + checksum: 1ab3273d3054b348eed286ad1a54b21807846326485507b872477b827dc688006d4f14233cebd0bf49b2932ec8e29eca6d76e48a3c9e9e963b25153b987549c0 + languageName: node + linkType: hard + +"@algolia/autocomplete-shared@npm:1.9.3": + version: 1.9.3 + resolution: "@algolia/autocomplete-shared@npm:1.9.3" + peerDependencies: + "@algolia/client-search": ">= 4.9.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + checksum: 06014c8b08d30c452de079f48c0235d8fa09904bf511da8dc1b7e491819940fd4ff36b9bf65340242b2e157a26799a3b9aea01feee9c5bf67be3c48d7dff43d7 + languageName: node + linkType: hard + +"@algolia/cache-browser-local-storage@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/cache-browser-local-storage@npm:4.20.0" + dependencies: + "@algolia/cache-common": 4.20.0 + checksum: b9ca7e190ab77ddf4d30d22223345f69fc89899aa6887ee716e4ffcef14c8c9d28b782cb7cc96a0f04eed95a989878a6feca5b9aa6add0cd1846222c3308bb65 + languageName: node + linkType: hard + +"@algolia/cache-common@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/cache-common@npm:4.20.0" + checksum: a46377de8a309feea109aae1283fc9157c73766a4c51e3085870a1fc49f6e33698814379f3bbdf475713fa0663dace86fc90f0466e64469b1b885a0538abace4 + languageName: node + linkType: hard + +"@algolia/cache-in-memory@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/cache-in-memory@npm:4.20.0" + dependencies: + "@algolia/cache-common": 4.20.0 + checksum: 3d67dcfae431605c8b9b1502f14865722f13b97b2822e1e3ed53bbf7bf66a120a825ccf5ed03476ebdf4aa15482dad5bfc6c2c93d81f07f862c373c689f49317 + languageName: node + linkType: hard + +"@algolia/client-account@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/client-account@npm:4.20.0" + dependencies: + "@algolia/client-common": 4.20.0 + "@algolia/client-search": 4.20.0 + "@algolia/transporter": 4.20.0 + checksum: b59e9c7a324bbfba4abdab3f41d333522eb1abce7dab74e69d297acd9ee2a3c60e82e5e9db42e6a46b5ea26a35728533e6e4ff846c631b588ceb73d14dcbc5fb + languageName: node + linkType: hard + +"@algolia/client-analytics@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/client-analytics@npm:4.20.0" + dependencies: + "@algolia/client-common": 4.20.0 + "@algolia/client-search": 4.20.0 + "@algolia/requester-common": 4.20.0 + "@algolia/transporter": 4.20.0 + checksum: 0be4120ab72162e0640e49eedddff81bfc2c590e9a9322d1788b8c01e06fdabcaaaa9cd75b5b516e502deb888d3ba2285ac5e1c3bb91fc9eb552a24a716dc6e3 + languageName: node + linkType: hard + +"@algolia/client-common@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/client-common@npm:4.20.0" + dependencies: + "@algolia/requester-common": 4.20.0 + "@algolia/transporter": 4.20.0 + checksum: 88a27b5f8bba38349e1dbe47634e2ee159a413ff1a3baf6a65fbf244835f8d368e9f0a5ccce8bfe94ec405b38608be5bed45bcb140517f3aba6fe3b7045db373 + languageName: node + linkType: hard + +"@algolia/client-personalization@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/client-personalization@npm:4.20.0" + dependencies: + "@algolia/client-common": 4.20.0 + "@algolia/requester-common": 4.20.0 + "@algolia/transporter": 4.20.0 + checksum: ddb92ebe135564e03db6ac75da7fdc1c7500a0deffb7e41d5a02a413216a06daea008f8062dab606ba8af4c3c34e550354f48e6ea7b048882c385d915643799a + languageName: node + linkType: hard + +"@algolia/client-search@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/client-search@npm:4.20.0" + dependencies: + "@algolia/client-common": 4.20.0 + "@algolia/requester-common": 4.20.0 + "@algolia/transporter": 4.20.0 + checksum: 9fb6624dab6753f336f3207ee2af3558baeec4772ef739b6f6ed6a754c366e2e8d62cbf1cf8b28d5f763bec276a0a5fc36db2bf6f53a707890a411afcf550e92 + languageName: node + linkType: hard + +"@algolia/logger-common@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/logger-common@npm:4.20.0" + checksum: 06ed28f76b630c8e7597534b15138ab6f71c10dfc6e13f1fb1b76965b39c88fd1d9cb3fe6bb9d046de6533ebcbe5ad92e751bc36fabe98ceda39d1d5f47bb637 + languageName: node + linkType: hard + +"@algolia/logger-console@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/logger-console@npm:4.20.0" + dependencies: + "@algolia/logger-common": 4.20.0 + checksum: 721dffe37563e2998d4c361f09a05736b4baa141bfb7da25d50f890ba8257ac99845dd94b43d0d6db38e2fdab96508a726e184a00e5b1e83ef18a16da6fc716c + languageName: node + linkType: hard + +"@algolia/requester-browser-xhr@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/requester-browser-xhr@npm:4.20.0" + dependencies: + "@algolia/requester-common": 4.20.0 + checksum: 669790c7dfd491318976b9d61d98d9785880d7385ba33669f3f8b9c66ea88320bcded82d34f58b5df74b2cb8beb62ef48a28d39117f7997be84348c9fa7f6132 + languageName: node + linkType: hard + +"@algolia/requester-common@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/requester-common@npm:4.20.0" + checksum: 8580ffd2be146bbdb5d4a57668bba4a5014f406cb2e5c65f596db6babab46c48d30c6e4732034ee1f987970aa27dcdab567959d654fa5fa74c4bcaf98312a724 + languageName: node + linkType: hard + +"@algolia/requester-node-http@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/requester-node-http@npm:4.20.0" + dependencies: + "@algolia/requester-common": 4.20.0 + checksum: 7857114b59c67e0d22e8a7ff3f755d11534a1602a4fc80802d3b35802777880a4980420914ea4a6e3e21198f5bacb95906289ce1bb9372458bf6a60a723bee59 + languageName: node + linkType: hard + +"@algolia/transporter@npm:4.20.0": + version: 4.20.0 + resolution: "@algolia/transporter@npm:4.20.0" + dependencies: + "@algolia/cache-common": 4.20.0 + "@algolia/logger-common": 4.20.0 + "@algolia/requester-common": 4.20.0 + checksum: f834d5c8fcb7dfa9b7044cb81e9fab44a32f9dd0c3868a0f85fe0de4f4d27ad11fdc9c3c78541bc944c2593f4be56517a8ce593309d062b8a46ca0d6fcb5dcbc + languageName: node + linkType: hard + +"@ampproject/remapping@npm:^2.2.0": + version: 2.2.1 + resolution: "@ampproject/remapping@npm:2.2.1" + dependencies: + "@jridgewell/gen-mapping": ^0.3.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 03c04fd526acc64a1f4df22651186f3e5ef0a9d6d6530ce4482ec9841269cf7a11dbb8af79237c282d721c5312024ff17529cd72cc4768c11e999b58e2302079 + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.22.13": + version: 7.22.13 + resolution: "@babel/code-frame@npm:7.22.13" + dependencies: + "@babel/highlight": ^7.22.13 + chalk: ^2.4.2 + checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.22.9": + version: 7.23.3 + resolution: "@babel/compat-data@npm:7.23.3" + checksum: 52fff649d4e25b10e29e8a9b1c9ef117f44d354273c17b5ef056555f8e5db2429b35df4c38bdfb6865d23133e0fba92e558d31be87bb8457db4ac688646fdbf1 + languageName: node + linkType: hard + +"@babel/core@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/core@npm:7.23.3" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.22.13 + "@babel/generator": ^7.23.3 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helpers": ^7.23.2 + "@babel/parser": ^7.23.3 + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.3 + "@babel/types": ^7.23.3 + convert-source-map: ^2.0.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: d306c1fa68972f4e085e9e7ad165aee80eb801ef331f6f07808c86309f03534d638b82ad00a3bc08f4d3de4860ccd38512b2790a39e6acc2caf9ea21e526afe7 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/generator@npm:7.23.3" + dependencies: + "@babel/types": ^7.23.3 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: b6e71cca852d4e1aa01a28a30b8c74ffc3b8d56ccb7ae3ee783028ee015f63ad861a2e386c3eb490a9a8634db485a503a33521680f4af510151e90346c46da17 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-compilation-targets@npm:7.22.15" + dependencies: + "@babel/compat-data": ^7.22.9 + "@babel/helper-validator-option": ^7.22.15 + browserslist: ^4.21.9 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: ce85196769e091ae54dd39e4a80c2a9df1793da8588e335c383d536d54f06baf648d0a08fc873044f226398c4ded15c4ae9120ee18e7dfd7c639a68e3cdc9980 + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 + languageName: node + linkType: hard + +"@babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" + dependencies: + "@babel/template": ^7.22.15 + "@babel/types": ^7.23.0 + checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 + languageName: node + linkType: hard + +"@babel/helper-hoist-variables@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-hoist-variables@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-module-imports@npm:7.22.15" + dependencies: + "@babel/types": ^7.22.15 + checksum: ecd7e457df0a46f889228f943ef9b4a47d485d82e030676767e6a2fdcbdaa63594d8124d4b55fd160b41c201025aec01fc27580352b1c87a37c9c6f33d116702 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/helper-module-transforms@npm:7.23.3" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-simple-access": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-validator-identifier": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 5d0895cfba0e16ae16f3aa92fee108517023ad89a855289c4eb1d46f7aef4519adf8e6f971e1d55ac20c5461610e17213f1144097a8f932e768a9132e2278d71 + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-plugin-utils@npm:7.22.5" + checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-simple-access@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2 + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/helper-split-export-declaration@npm:7.22.6" + dependencies: + "@babel/types": ^7.22.5 + checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-string-parser@npm:7.22.5" + checksum: 836851ca5ec813077bbb303acc992d75a360267aa3b5de7134d220411c852a6f17de7c0d0b8c8dcc0f567f67874c00f4528672b2a4f1bc978a3ada64c8c78467 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-validator-option@npm:7.22.15" + checksum: 68da52b1e10002a543161494c4bc0f4d0398c8fdf361d5f7f4272e95c45d5b32d974896d44f6a0ea7378c9204988879d73613ca683e13bd1304e46d25ff67a8d + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.23.2": + version: 7.23.2 + resolution: "@babel/helpers@npm:7.23.2" + dependencies: + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.2 + "@babel/types": ^7.23.0 + checksum: aaf4828df75ec460eaa70e5c9f66e6dadc28dae3728ddb7f6c13187dbf38030e142194b83d81aa8a31bbc35a5529a5d7d3f3cf59d5d0b595f5dd7f9d8f1ced8e + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.22.13": + version: 7.22.20 + resolution: "@babel/highlight@npm:7.22.20" + dependencies: + "@babel/helper-validator-identifier": ^7.22.20 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + checksum: 84bd034dca309a5e680083cd827a766780ca63cef37308404f17653d32366ea76262bd2364b2d38776232f2d01b649f26721417d507e8b4b6da3e4e739f6d134 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/parser@npm:7.23.3" + bin: + parser: ./bin/babel-parser.js + checksum: 4aa7366e401b5467192c1dbf2bef99ac0958c45ef69ed6704abbae68f98fab6409a527b417d1528fddc49d7664450670528adc7f45abb04db5fafca7ed766d57 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-self@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 882bf56bc932d015c2d83214133939ddcf342e5bcafa21f1a93b19f2e052145115e1e0351730897fd66e5f67cad7875b8a8d81ceb12b6e2a886ad0102cb4eb1f + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-source@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 92287fb797e522d99bdc77eaa573ce79ff0ad9f1cf4e7df374645e28e51dce0adad129f6f075430b129b5bac8dad843f65021970e12e992d6d6671f0d65bb1e0 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": + version: 7.23.2 + resolution: "@babel/runtime@npm:7.23.2" dependencies: regenerator-runtime: ^0.14.0 - checksum: 524d41517e68953dbc73a4f3616b8475e5813f64e28ba89ff5fca2c044d535c2ea1a3f310df1e5bb06162e1f0b401b5c4af73fe6e2519ca2450d9d8c44cf268d + checksum: 6c4df4839ec75ca10175f636d6362f91df8a3137f86b38f6cd3a4c90668a0fe8e9281d320958f4fbd43b394988958585a17c3aab2a4ea6bf7316b22916a371fb + languageName: node + linkType: hard + +"@babel/template@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/template@npm:7.22.15" + dependencies: + "@babel/code-frame": ^7.22.13 + "@babel/parser": ^7.22.15 + "@babel/types": ^7.22.15 + checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/traverse@npm:7.23.3" + dependencies: + "@babel/code-frame": ^7.22.13 + "@babel/generator": ^7.23.3 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.23.3 + "@babel/types": ^7.23.3 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: f4e0c05f2f82368b9be7e1fed38cfcc2e1074967a8b76ac837b89661adbd391e99d0b1fd8c31215ffc3a04d2d5d7ee5e627914a09082db84ec5606769409fe2b + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.3, @babel/types@npm:^7.8.3": + version: 7.23.3 + resolution: "@babel/types@npm:7.23.3" + dependencies: + "@babel/helper-string-parser": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 + to-fast-properties: ^2.0.0 + checksum: b96f1ec495351aeb2a5f98dd494aafa17df02a351548ae96999460f35c933261c839002a34c1e83552ff0d9f5e94d0b5b8e105d38131c7c9b0f5a6588676f35d languageName: node linkType: hard @@ -30,156 +469,345 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-arm64@npm:0.18.20" +"@docsearch/css@npm:3.5.2, @docsearch/css@npm:^3.5.2": + version: 3.5.2 + resolution: "@docsearch/css@npm:3.5.2" + checksum: d1d60dd230dd48f896755f21bd20b59583ba844212d7d336953ae48d389baaf868bdf83320fb734a4ed679c3f95b15d620cf3764cd538f6941cae239f8c9d35d + languageName: node + linkType: hard + +"@docsearch/js@npm:^3.5.2": + version: 3.5.2 + resolution: "@docsearch/js@npm:3.5.2" + dependencies: + "@docsearch/react": 3.5.2 + preact: ^10.0.0 + checksum: fce54f6d4df5f1fcc1318b825b016f800e06d43c8dddf305576a5fba717ae7741ca7e97169586f49d9ed2c4fd0fe12989e943e8d5ca8b2049d782ce896e22fb1 + languageName: node + linkType: hard + +"@docsearch/react@npm:3.5.2": + version: 3.5.2 + resolution: "@docsearch/react@npm:3.5.2" + dependencies: + "@algolia/autocomplete-core": 1.9.3 + "@algolia/autocomplete-preset-algolia": 1.9.3 + "@docsearch/css": 3.5.2 + algoliasearch: ^4.19.1 + peerDependencies: + "@types/react": ">= 16.8.0 < 19.0.0" + react: ">= 16.8.0 < 19.0.0" + react-dom: ">= 16.8.0 < 19.0.0" + search-insights: ">= 1 < 3" + peerDependenciesMeta: + "@types/react": + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + checksum: 4b4584c2c73fc18cbd599047538896450974e134c2c74f19eb202db0ce8e6c3c49c6f65ed6ade61c796d476d3cbb55d6be58df62bc9568a0c72d88e42fca1d16 + languageName: node + linkType: hard + +"@emotion/babel-plugin@npm:^11.11.0": + version: 11.11.0 + resolution: "@emotion/babel-plugin@npm:11.11.0" + dependencies: + "@babel/helper-module-imports": ^7.16.7 + "@babel/runtime": ^7.18.3 + "@emotion/hash": ^0.9.1 + "@emotion/memoize": ^0.8.1 + "@emotion/serialize": ^1.1.2 + babel-plugin-macros: ^3.1.0 + convert-source-map: ^1.5.0 + escape-string-regexp: ^4.0.0 + find-root: ^1.1.0 + source-map: ^0.5.7 + stylis: 4.2.0 + checksum: 6b363edccc10290f7a23242c06f88e451b5feb2ab94152b18bb8883033db5934fb0e421e2d67d09907c13837c21218a3ac28c51707778a54d6cd3706c0c2f3f9 + languageName: node + linkType: hard + +"@emotion/cache@npm:^11.11.0": + version: 11.11.0 + resolution: "@emotion/cache@npm:11.11.0" + dependencies: + "@emotion/memoize": ^0.8.1 + "@emotion/sheet": ^1.2.2 + "@emotion/utils": ^1.2.1 + "@emotion/weak-memoize": ^0.3.1 + stylis: 4.2.0 + checksum: 8eb1dc22beaa20c21a2e04c284d5a2630a018a9d51fb190e52de348c8d27f4e8ca4bbab003d68b4f6cd9cc1c569ca747a997797e0f76d6c734a660dc29decf08 + languageName: node + linkType: hard + +"@emotion/hash@npm:^0.9.1": + version: 0.9.1 + resolution: "@emotion/hash@npm:0.9.1" + checksum: 716e17e48bf9047bf9383982c071de49f2615310fb4e986738931776f5a823bc1f29c84501abe0d3df91a3803c80122d24e28b57351bca9e01356ebb33d89876 + languageName: node + linkType: hard + +"@emotion/is-prop-valid@npm:^1.2.1": + version: 1.2.1 + resolution: "@emotion/is-prop-valid@npm:1.2.1" + dependencies: + "@emotion/memoize": ^0.8.1 + checksum: 8f42dc573a3fad79b021479becb639b8fe3b60bdd1081a775d32388bca418ee53074c7602a4c845c5f75fa6831eb1cbdc4d208cc0299f57014ed3a02abcad16a + languageName: node + linkType: hard + +"@emotion/memoize@npm:^0.8.1": + version: 0.8.1 + resolution: "@emotion/memoize@npm:0.8.1" + checksum: a19cc01a29fcc97514948eaab4dc34d8272e934466ed87c07f157887406bc318000c69ae6f813a9001c6a225364df04249842a50e692ef7a9873335fbcc141b0 + languageName: node + linkType: hard + +"@emotion/react@npm:^11.11.1": + version: 11.11.1 + resolution: "@emotion/react@npm:11.11.1" + dependencies: + "@babel/runtime": ^7.18.3 + "@emotion/babel-plugin": ^11.11.0 + "@emotion/cache": ^11.11.0 + "@emotion/serialize": ^1.1.2 + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 + "@emotion/utils": ^1.2.1 + "@emotion/weak-memoize": ^0.3.1 + hoist-non-react-statics: ^3.3.1 + peerDependencies: + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: aec3c36650f5f0d3d4445ff44d73dd88712b1609645b6af3e6d08049cfbc51f1785fe13dea1a1d4ab1b0800d68f2339ab11e459687180362b1ef98863155aae5 + languageName: node + linkType: hard + +"@emotion/serialize@npm:^1.1.2": + version: 1.1.2 + resolution: "@emotion/serialize@npm:1.1.2" + dependencies: + "@emotion/hash": ^0.9.1 + "@emotion/memoize": ^0.8.1 + "@emotion/unitless": ^0.8.1 + "@emotion/utils": ^1.2.1 + csstype: ^3.0.2 + checksum: 413c352e657f1b5e27ea6437b3ef7dcc3860669b7ae17fd5c18bfbd44e033af1acc56b64d252284a813ca4f3b3e1b0841c42d3fb08e02d2df56fd3cd63d72986 + languageName: node + linkType: hard + +"@emotion/sheet@npm:^1.2.2": + version: 1.2.2 + resolution: "@emotion/sheet@npm:1.2.2" + checksum: d973273c9c15f1c291ca2269728bf044bd3e92a67bca87943fa9ec6c3cd2b034f9a6bfe95ef1b5d983351d128c75b547b43ff196a00a3875f7e1d269793cecfe + languageName: node + linkType: hard + +"@emotion/styled@npm:^11.11.0": + version: 11.11.0 + resolution: "@emotion/styled@npm:11.11.0" + dependencies: + "@babel/runtime": ^7.18.3 + "@emotion/babel-plugin": ^11.11.0 + "@emotion/is-prop-valid": ^1.2.1 + "@emotion/serialize": ^1.1.2 + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 + "@emotion/utils": ^1.2.1 + peerDependencies: + "@emotion/react": ^11.0.0-rc.0 + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 904f641aad3892c65d7d6c0808b036dae1e6d6dad4861c1c7dc0baa59977047c6cad220691206eba7b4059f1a1c6e6c1ef4ebb8c829089e280fa0f2164a01e6b + languageName: node + linkType: hard + +"@emotion/unitless@npm:^0.8.1": + version: 0.8.1 + resolution: "@emotion/unitless@npm:0.8.1" + checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88 + languageName: node + linkType: hard + +"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.1": + version: 1.0.1 + resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" + peerDependencies: + react: ">=16.8.0" + checksum: 700b6e5bbb37a9231f203bb3af11295eed01d73b2293abece0bc2a2237015e944d7b5114d4887ad9a79776504aa51ed2a8b0ddbc117c54495dd01a6b22f93786 + languageName: node + linkType: hard + +"@emotion/utils@npm:^1.2.1": + version: 1.2.1 + resolution: "@emotion/utils@npm:1.2.1" + checksum: e0b44be0705b56b079c55faff93952150be69e79b660ae70ddd5b6e09fc40eb1319654315a9f34bb479d7f4ec94be6068c061abbb9e18b9778ae180ad5d97c73 + languageName: node + linkType: hard + +"@emotion/weak-memoize@npm:^0.3.1": + version: 0.3.1 + resolution: "@emotion/weak-memoize@npm:0.3.1" + checksum: b2be47caa24a8122622ea18cd2d650dbb4f8ad37b636dc41ed420c2e082f7f1e564ecdea68122b546df7f305b159bf5ab9ffee872abd0f052e687428459af594 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/android-arm64@npm:0.19.5" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-arm@npm:0.18.20" +"@esbuild/android-arm@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/android-arm@npm:0.19.5" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-x64@npm:0.18.20" +"@esbuild/android-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/android-x64@npm:0.19.5" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/darwin-arm64@npm:0.18.20" +"@esbuild/darwin-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/darwin-arm64@npm:0.19.5" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/darwin-x64@npm:0.18.20" +"@esbuild/darwin-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/darwin-x64@npm:0.19.5" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/freebsd-arm64@npm:0.18.20" +"@esbuild/freebsd-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/freebsd-arm64@npm:0.19.5" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/freebsd-x64@npm:0.18.20" +"@esbuild/freebsd-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/freebsd-x64@npm:0.19.5" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-arm64@npm:0.18.20" +"@esbuild/linux-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-arm64@npm:0.19.5" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-arm@npm:0.18.20" +"@esbuild/linux-arm@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-arm@npm:0.19.5" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-ia32@npm:0.18.20" +"@esbuild/linux-ia32@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-ia32@npm:0.19.5" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-loong64@npm:0.18.20" +"@esbuild/linux-loong64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-loong64@npm:0.19.5" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-mips64el@npm:0.18.20" +"@esbuild/linux-mips64el@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-mips64el@npm:0.19.5" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-ppc64@npm:0.18.20" +"@esbuild/linux-ppc64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-ppc64@npm:0.19.5" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-riscv64@npm:0.18.20" +"@esbuild/linux-riscv64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-riscv64@npm:0.19.5" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-s390x@npm:0.18.20" +"@esbuild/linux-s390x@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-s390x@npm:0.19.5" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-x64@npm:0.18.20" +"@esbuild/linux-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-x64@npm:0.19.5" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/netbsd-x64@npm:0.18.20" +"@esbuild/netbsd-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/netbsd-x64@npm:0.19.5" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/openbsd-x64@npm:0.18.20" +"@esbuild/openbsd-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/openbsd-x64@npm:0.19.5" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/sunos-x64@npm:0.18.20" +"@esbuild/sunos-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/sunos-x64@npm:0.19.5" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-arm64@npm:0.18.20" +"@esbuild/win32-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/win32-arm64@npm:0.19.5" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-ia32@npm:0.18.20" +"@esbuild/win32-ia32@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/win32-ia32@npm:0.19.5" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-x64@npm:0.18.20" +"@esbuild/win32-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/win32-x64@npm:0.19.5" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -196,15 +824,15 @@ __metadata: linkType: hard "@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.7.0 - resolution: "@eslint-community/regexpp@npm:4.7.0" - checksum: 09b8d11a9957b58be870d76e36b718030ba2215e1fb9d009f7a0833733c86b47d8528c47808eeef389145ca198abc3ea4d169452840e36142ecfb9491e3a1d16 + version: 4.10.0 + resolution: "@eslint-community/regexpp@npm:4.10.0" + checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.2": - version: 2.1.2 - resolution: "@eslint/eslintrc@npm:2.1.2" +"@eslint/eslintrc@npm:^2.1.3": + version: 2.1.3 + resolution: "@eslint/eslintrc@npm:2.1.3" dependencies: ajv: ^6.12.4 debug: ^4.3.2 @@ -215,14 +843,52 @@ __metadata: js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: bc742a1e3b361f06fedb4afb6bf32cbd27171292ef7924f61c62f2aed73048367bcc7ac68f98c06d4245cd3fabc43270f844e3c1699936d4734b3ac5398814a7 + checksum: 5c6c3878192fe0ddffa9aff08b4e2f3bcc8f1c10d6449b7295a5f58b662019896deabfc19890455ffd7e60a5bd28d25d0eaefb2f78b2d230aae3879af92b89e5 languageName: node linkType: hard -"@eslint/js@npm:^8.47.0": - version: 8.47.0 - resolution: "@eslint/js@npm:8.47.0" - checksum: 0ef57fe27b6d4c305b33f3b2d2fee1ab397a619006f1d6f4ce5ee4746b8f03d11a4e098805a7d78601ca534cf72917d37f0ac19896c992a32e26299ecb9f9de1 +"@eslint/js@npm:8.53.0": + version: 8.53.0 + resolution: "@eslint/js@npm:8.53.0" + checksum: e0d5cfb0000aaee237c8e6d6d6e366faa60b1ef7f928ce17778373aa44d3b886368f6d5e1f97f913f0f16801aad016db8b8df78418c9d18825c15590328028af + languageName: node + linkType: hard + +"@floating-ui/core@npm:^1.4.2": + version: 1.5.0 + resolution: "@floating-ui/core@npm:1.5.0" + dependencies: + "@floating-ui/utils": ^0.1.3 + checksum: 54b4fe26b3c228746ac5589f97303abf158b80aa5f8b99027259decd68d1c2030c4c637648ebd33dfe78a4212699453bc2bd7537fd5a594d3bd3e63d362f666f + languageName: node + linkType: hard + +"@floating-ui/dom@npm:^1.5.1": + version: 1.5.3 + resolution: "@floating-ui/dom@npm:1.5.3" + dependencies: + "@floating-ui/core": ^1.4.2 + "@floating-ui/utils": ^0.1.3 + checksum: 00053742064aac70957f0bd5c1542caafb3bfe9716588bfe1d409fef72a67ed5e60450d08eb492a77f78c22ed1ce4f7955873cc72bf9f9caf2b0f43ae3561c21 + languageName: node + linkType: hard + +"@floating-ui/react-dom@npm:^2.0.4": + version: 2.0.4 + resolution: "@floating-ui/react-dom@npm:2.0.4" + dependencies: + "@floating-ui/dom": ^1.5.1 + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 91b2369e25f84888486e48c1656117468248906034ed482d411bb9ed1061b908dd32435b4ca3d0cd0ca6083291510a98ce74d76c671d5cc25b0c41e5fa824bae + languageName: node + linkType: hard + +"@floating-ui/utils@npm:^0.1.3": + version: 0.1.6 + resolution: "@floating-ui/utils@npm:0.1.6" + checksum: b34d4b5470869727f52e312e08272edef985ba5a450a76de0917ba0a9c6f5df2bdbeb99448e2c60f39b177fb8981c772ff1831424e75123471a27ebd5b52c1eb languageName: node linkType: hard @@ -233,14 +899,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.10": - version: 0.11.10 - resolution: "@humanwhocodes/config-array@npm:0.11.10" +"@humanwhocodes/config-array@npm:^0.11.13": + version: 0.11.13 + resolution: "@humanwhocodes/config-array@npm:0.11.13" dependencies: - "@humanwhocodes/object-schema": ^1.2.1 + "@humanwhocodes/object-schema": ^2.0.1 debug: ^4.1.1 minimatch: ^3.0.5 - checksum: 1b1302e2403d0e35bc43e66d67a2b36b0ad1119efc704b5faff68c41f791a052355b010fb2d27ef022670f550de24cd6d08d5ecf0821c16326b7dcd0ee5d5d8a + checksum: f8ea57b0d7ed7f2d64cd3944654976829d9da91c04d9c860e18804729a33f7681f78166ef4c761850b8c324d362f7d53f14c5c44907a6b38b32c703ff85e4805 languageName: node linkType: hard @@ -251,10 +917,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^1.2.1": - version: 1.2.1 - resolution: "@humanwhocodes/object-schema@npm:1.2.1" - checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1 +"@humanwhocodes/object-schema@npm:^2.0.1": + version: 2.0.1 + resolution: "@humanwhocodes/object-schema@npm:2.0.1" + checksum: 24929487b1ed48795d2f08346a0116cc5ee4634848bce64161fb947109352c562310fd159fc64dda0e8b853307f5794605191a9547f7341158559ca3c8262a45 languageName: node linkType: hard @@ -281,14 +947,32 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:^3.0.3": +"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.3 + resolution: "@jridgewell/gen-mapping@npm:0.3.3" + dependencies: + "@jridgewell/set-array": ^1.0.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.1 resolution: "@jridgewell/resolve-uri@npm:3.1.1" checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.15": +"@jridgewell/set-array@npm:^1.0.1": + version: 1.1.2 + resolution: "@jridgewell/set-array@npm:1.1.2" + checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 @@ -305,6 +989,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": + version: 0.3.20 + resolution: "@jridgewell/trace-mapping@npm:0.3.20" + dependencies: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: cd1a7353135f385909468ff0cf20bdd37e59f2ee49a13a966dedf921943e222082c583ade2b579ff6cd0d8faafcb5461f253e1bf2a9f48fec439211fdbe788f5 + languageName: node + linkType: hard + "@mapbox/node-pre-gyp@npm:^1.0.0": version: 1.0.11 resolution: "@mapbox/node-pre-gyp@npm:1.0.11" @@ -324,19 +1018,193 @@ __metadata: languageName: node linkType: hard -"@noble/curves@npm:1.1.0": - version: 1.1.0 - resolution: "@noble/curves@npm:1.1.0" +"@mole-inc/bin-wrapper@npm:^8.0.1": + version: 8.0.1 + resolution: "@mole-inc/bin-wrapper@npm:8.0.1" + dependencies: + bin-check: ^4.1.0 + bin-version-check: ^5.0.0 + content-disposition: ^0.5.4 + ext-name: ^5.0.0 + file-type: ^17.1.6 + filenamify: ^5.0.2 + got: ^11.8.5 + os-filter-obj: ^2.0.0 + checksum: 696bf652d37732d46d6b48c5a741f07958c2144df5b4a4bef3a235582e84e3687184cfa139c0e12443d03f123869819a0b7f2a7b0edc23daaebb94d70cc2e56c + languageName: node + linkType: hard + +"@mui/base@npm:5.0.0-beta.24": + version: 5.0.0-beta.24 + resolution: "@mui/base@npm:5.0.0-beta.24" + dependencies: + "@babel/runtime": ^7.23.2 + "@floating-ui/react-dom": ^2.0.4 + "@mui/types": ^7.2.9 + "@mui/utils": ^5.14.18 + "@popperjs/core": ^2.11.8 + clsx: ^2.0.0 + prop-types: ^15.8.1 + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: dbd6eb0af7cb89389b1dccd6a84d07128c41f60d297d8f1d484919950c9b45a5d8767042b622c74e311bce0368ee3f760afb34d80ad97af61f5b5650ae990c60 + languageName: node + linkType: hard + +"@mui/core-downloads-tracker@npm:^5.14.18": + version: 5.14.18 + resolution: "@mui/core-downloads-tracker@npm:5.14.18" + checksum: 3d367797282e4b93eacee997667d62bc4eeac979e9664724e9db8d632278d8629f2a141894cf53d706f1d2a9f19965bffe2858aa2bc9833722e674cd560b896e + languageName: node + linkType: hard + +"@mui/material@npm:^5.14.17": + version: 5.14.18 + resolution: "@mui/material@npm:5.14.18" dependencies: - "@noble/hashes": 1.3.1 - checksum: 2658cdd3f84f71079b4e3516c47559d22cf4b55c23ac8ee9d2b1f8e5b72916d9689e59820e0f9d9cb4a46a8423af5b56dc6bb7782405c88be06a015180508db5 + "@babel/runtime": ^7.23.2 + "@mui/base": 5.0.0-beta.24 + "@mui/core-downloads-tracker": ^5.14.18 + "@mui/system": ^5.14.18 + "@mui/types": ^7.2.9 + "@mui/utils": ^5.14.18 + "@types/react-transition-group": ^4.4.8 + clsx: ^2.0.0 + csstype: ^3.1.2 + prop-types: ^15.8.1 + react-is: ^18.2.0 + react-transition-group: ^4.4.5 + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: 488322f09638a71bb5d4bb5c027dde69d5cf89bcfd433594e3b90fea9fefa302bc85b9d2bf386493bf68d360107b59c6d148f46a68477e7f472f4f2d14d698a3 languageName: node linkType: hard -"@noble/hashes@npm:1.3.1": - version: 1.3.1 - resolution: "@noble/hashes@npm:1.3.1" - checksum: 7fdefc0f7a0c1ec27acc6ff88841793e3f93ec4ce6b8a6a12bfc0dd70ae6b7c4c82fe305fdfeda1735d5ad4a9eebe761e6693b3d355689c559e91242f4bc95b1 +"@mui/private-theming@npm:^5.14.18": + version: 5.14.18 + resolution: "@mui/private-theming@npm:5.14.18" + dependencies: + "@babel/runtime": ^7.23.2 + "@mui/utils": ^5.14.18 + prop-types: ^15.8.1 + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: e7ba8e945f589db16ed05d507b0821d2e07b3d760bf78c9f745a75d75b5a94d1e546278629de15b090de289a9244591bfa2c09bb9f9f8679fb4e1d8cec360833 + languageName: node + linkType: hard + +"@mui/styled-engine@npm:^5.14.18": + version: 5.14.18 + resolution: "@mui/styled-engine@npm:5.14.18" + dependencies: + "@babel/runtime": ^7.23.2 + "@emotion/cache": ^11.11.0 + csstype: ^3.1.2 + prop-types: ^15.8.1 + peerDependencies: + "@emotion/react": ^11.4.1 + "@emotion/styled": ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + checksum: 6eba307d95ef462f8b80aaa50ec1db7409d19cead985eba28e86aec066ad4bc70b0daa6d89158a7aae88ea43d614cace5f890cbebe0d8636573e894b7da9cae1 + languageName: node + linkType: hard + +"@mui/system@npm:^5.14.18": + version: 5.14.18 + resolution: "@mui/system@npm:5.14.18" + dependencies: + "@babel/runtime": ^7.23.2 + "@mui/private-theming": ^5.14.18 + "@mui/styled-engine": ^5.14.18 + "@mui/types": ^7.2.9 + "@mui/utils": ^5.14.18 + clsx: ^2.0.0 + csstype: ^3.1.2 + prop-types: ^15.8.1 + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: 8f7c4f3555ee64467826e1a40cfdb34b5c02520fd9f27779b8e6aa97cb9bbd27d98386a194d2e4c44b148babe5f67e3a715f8a09c03a1d71f2f14ddf60045174 + languageName: node + linkType: hard + +"@mui/types@npm:^7.2.9": + version: 7.2.9 + resolution: "@mui/types@npm:7.2.9" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 4888a1cf9a1adbae1c2f53ba9f8a0cf23eb5e0954bca00b958c240c87b5287771cb5e99bedb61a2c04f5dcbdef13a5b1f238153e98d8959ba51c5470db2c4b32 + languageName: node + linkType: hard + +"@mui/utils@npm:^5.14.18": + version: 5.14.18 + resolution: "@mui/utils@npm:5.14.18" + dependencies: + "@babel/runtime": ^7.23.2 + "@types/prop-types": ^15.7.10 + prop-types: ^15.8.1 + react-is: ^18.2.0 + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: f24badcb6b026b392b94919f65c7f3bea6cfb0f741c1b8ebd74b02bba9ffc61f72e35bdea887e47dfd97d37ff465863aa29c7c5cfd33fb83224f4ff2300432b3 + languageName: node + linkType: hard + +"@noble/curves@npm:^1.2.0": + version: 1.2.0 + resolution: "@noble/curves@npm:1.2.0" + dependencies: + "@noble/hashes": 1.3.2 + checksum: bb798d7a66d8e43789e93bc3c2ddff91a1e19fdb79a99b86cd98f1e5eff0ee2024a2672902c2576ef3577b6f282f3b5c778bebd55761ddbb30e36bf275e83dd0 + languageName: node + linkType: hard + +"@noble/hashes@npm:1.3.2, @noble/hashes@npm:^1.3.2": + version: 1.3.2 + resolution: "@noble/hashes@npm:1.3.2" + checksum: fe23536b436539d13f90e4b9be843cc63b1b17666a07634a2b1259dded6f490be3d050249e6af98076ea8f2ea0d56f578773c2197f2aa0eeaa5fba5bc18ba474 languageName: node linkType: hard @@ -367,6 +1235,19 @@ __metadata: languageName: node linkType: hard +"@npmcli/agent@npm:^2.0.0": + version: 2.2.0 + resolution: "@npmcli/agent@npm:2.2.0" + dependencies: + agent-base: ^7.1.0 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.1 + lru-cache: ^10.0.1 + socks-proxy-agent: ^8.0.1 + checksum: 3b25312edbdfaa4089af28e2d423b6f19838b945e47765b0c8174c1395c79d43c3ad6d23cb364b43f59fd3acb02c93e3b493f72ddbe3dfea04c86843a7311fc4 + languageName: node + linkType: hard + "@npmcli/fs@npm:^1.0.0": version: 1.1.1 resolution: "@npmcli/fs@npm:1.1.1" @@ -403,19 +1284,14 @@ __metadata: languageName: node linkType: hard -"@playwright/test@npm:^1.37.1": - version: 1.37.1 - resolution: "@playwright/test@npm:1.37.1" +"@playwright/test@npm:^1.39.0": + version: 1.40.0 + resolution: "@playwright/test@npm:1.40.0" dependencies: - "@types/node": "*" - fsevents: 2.3.2 - playwright-core: 1.37.1 - dependenciesMeta: - fsevents: - optional: true + playwright: 1.40.0 bin: playwright: cli.js - checksum: b7038f29000289103c08b215eff7aabdda70cdc1375fa7dad0e81651be71086a1e2fc0e0e29dc70348037c366cf0cc69f762373fda34ba1a74aa1658741d9195 + checksum: 128f05978f9f5a557f0b7924ec134d43cb70c78d74bc3bf7b18576f00e72399100ddf1f4a139e05ea8275407d8e27be0203ac34f514319a2cbeb01eaf0be5be4 languageName: node linkType: hard @@ -446,420 +1322,551 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-augment@npm:10.9.1": - version: 10.9.1 - resolution: "@polkadot/api-augment@npm:10.9.1" +"@polkadot/api-augment@npm:10.10.1, @polkadot/api-augment@npm:^10.10.1": + version: 10.10.1 + resolution: "@polkadot/api-augment@npm:10.10.1" dependencies: - "@polkadot/api-base": 10.9.1 - "@polkadot/rpc-augment": 10.9.1 - "@polkadot/types": 10.9.1 - "@polkadot/types-augment": 10.9.1 - "@polkadot/types-codec": 10.9.1 - "@polkadot/util": ^12.3.1 - tslib: ^2.5.3 - checksum: b0aeed5ebf640c58a252a29a33f12d4c39d0dcdf10b875501012c3b4b05955ed8be85efbf75e17ad237a561e1171821979ffdddf7e6a64cb0806badb2752c190 + "@polkadot/api-base": 10.10.1 + "@polkadot/rpc-augment": 10.10.1 + "@polkadot/types": 10.10.1 + "@polkadot/types-augment": 10.10.1 + "@polkadot/types-codec": 10.10.1 + "@polkadot/util": ^12.5.1 + tslib: ^2.6.2 + checksum: 16ca2d71215019faba506b6dc455ef15ea1eec8b97bd146aef49a04ae15dc9246405540219bfbea36027ee50c5dbb15885296c30ee98908afdd7a56626efd06c languageName: node linkType: hard -"@polkadot/api-base@npm:10.9.1": - version: 10.9.1 - resolution: "@polkadot/api-base@npm:10.9.1" +"@polkadot/api-base@npm:10.10.1": + version: 10.10.1 + resolution: "@polkadot/api-base@npm:10.10.1" dependencies: - "@polkadot/rpc-core": 10.9.1 - "@polkadot/types": 10.9.1 - "@polkadot/util": ^12.3.1 + "@polkadot/rpc-core": 10.10.1 + "@polkadot/types": 10.10.1 + "@polkadot/util": ^12.5.1 rxjs: ^7.8.1 - tslib: ^2.5.3 - checksum: a761f4ade747a295c16b7e6f24c1bb93e1736aa7fa9f1cb3c651c84d02a99cc62658e83326fa339882423966a55bf0046b74a69a1a4e4567c8d6c1c4db4eb306 + tslib: ^2.6.2 + checksum: 374a4378484817b29c52908a9dac649b4d4f231db21a0b0b3d3ec3331c7b9b9c374c103b5e64d028c212b8ab3eb98244cd760d20e2fe5f46a8fdc1d923555047 languageName: node linkType: hard -"@polkadot/api-derive@npm:10.9.1": - version: 10.9.1 - resolution: "@polkadot/api-derive@npm:10.9.1" - dependencies: - "@polkadot/api": 10.9.1 - "@polkadot/api-augment": 10.9.1 - "@polkadot/api-base": 10.9.1 - "@polkadot/rpc-core": 10.9.1 - "@polkadot/types": 10.9.1 - "@polkadot/types-codec": 10.9.1 - "@polkadot/util": ^12.3.1 - "@polkadot/util-crypto": ^12.3.1 +"@polkadot/api-derive@npm:10.10.1": + version: 10.10.1 + resolution: "@polkadot/api-derive@npm:10.10.1" + dependencies: + "@polkadot/api": 10.10.1 + "@polkadot/api-augment": 10.10.1 + "@polkadot/api-base": 10.10.1 + "@polkadot/rpc-core": 10.10.1 + "@polkadot/types": 10.10.1 + "@polkadot/types-codec": 10.10.1 + "@polkadot/util": ^12.5.1 + "@polkadot/util-crypto": ^12.5.1 rxjs: ^7.8.1 - tslib: ^2.5.3 - checksum: 072a43bcc55787beb6c29afe0f011c03cdde3a9b6ac38d972d0b13ff93a1e14198d769a926edfd324c3947735dd8c8fcb7a61629409322230fd8559e7c17a1d7 - languageName: node - linkType: hard - -"@polkadot/api@npm:10.9.1, @polkadot/api@npm:^10.9.1": - version: 10.9.1 - resolution: "@polkadot/api@npm:10.9.1" - dependencies: - "@polkadot/api-augment": 10.9.1 - "@polkadot/api-base": 10.9.1 - "@polkadot/api-derive": 10.9.1 - "@polkadot/keyring": ^12.3.1 - "@polkadot/rpc-augment": 10.9.1 - "@polkadot/rpc-core": 10.9.1 - "@polkadot/rpc-provider": 10.9.1 - "@polkadot/types": 10.9.1 - "@polkadot/types-augment": 10.9.1 - "@polkadot/types-codec": 10.9.1 - "@polkadot/types-create": 10.9.1 - "@polkadot/types-known": 10.9.1 - "@polkadot/util": ^12.3.1 - "@polkadot/util-crypto": ^12.3.1 + tslib: ^2.6.2 + checksum: ff0f016d39aa73f55a881927e6ae3dd75c2a81fe4095cdda5e558f420d815a12c204e6a2082acbef2c74867b810d41ef349de2b7924d46957be7260b71fb1512 + languageName: node + linkType: hard + +"@polkadot/api@npm:10.10.1, @polkadot/api@npm:^10.10.1, @polkadot/api@npm:^10.9.1": + version: 10.10.1 + resolution: "@polkadot/api@npm:10.10.1" + dependencies: + "@polkadot/api-augment": 10.10.1 + "@polkadot/api-base": 10.10.1 + "@polkadot/api-derive": 10.10.1 + "@polkadot/keyring": ^12.5.1 + "@polkadot/rpc-augment": 10.10.1 + "@polkadot/rpc-core": 10.10.1 + "@polkadot/rpc-provider": 10.10.1 + "@polkadot/types": 10.10.1 + "@polkadot/types-augment": 10.10.1 + "@polkadot/types-codec": 10.10.1 + "@polkadot/types-create": 10.10.1 + "@polkadot/types-known": 10.10.1 + "@polkadot/util": ^12.5.1 + "@polkadot/util-crypto": ^12.5.1 eventemitter3: ^5.0.1 rxjs: ^7.8.1 - tslib: ^2.5.3 - checksum: 6b37d9bacf0599bb7c385ddefca929547299a6f1d242ce3215f8480672297c81ec30c251bc9aac3889c5956bd9ef3918d69364819861eec308f4aa347c08110d + tslib: ^2.6.2 + checksum: de1aa727b63fb921854840fe2d18b55b99f512f4d3e08d3b895fceea7891f6dd0febe6aa5fb7b1778494c78d6a6a7ebd17d426ba2e3df459aa974b7bb8fee19c languageName: node linkType: hard -"@polkadot/keyring@npm:^12.3.1": - version: 12.4.2 - resolution: "@polkadot/keyring@npm:12.4.2" +"@polkadot/keyring@npm:^12.5.1": + version: 12.5.1 + resolution: "@polkadot/keyring@npm:12.5.1" dependencies: - "@polkadot/util": 12.4.2 - "@polkadot/util-crypto": 12.4.2 + "@polkadot/util": 12.5.1 + "@polkadot/util-crypto": 12.5.1 tslib: ^2.6.2 peerDependencies: - "@polkadot/util": 12.4.2 - "@polkadot/util-crypto": 12.4.2 - checksum: 51d0b23f0973efa781566b1a0dece7a346b0cbacc52b6fb57b474bc87aa03900377cf2aa227d86769db91c97f3d43f555a676f4446df464d588186afa7f3b8fe + "@polkadot/util": 12.5.1 + "@polkadot/util-crypto": 12.5.1 + checksum: d659e5980e4cd6b68f91448a817306666530c033410c713854547dbbbecacb7362346c3ada6c5ab9dc71437c3cf002f064d7db40d1588637b96e84ff8f35dcf4 languageName: node linkType: hard -"@polkadot/networks@npm:12.4.2, @polkadot/networks@npm:^12.3.1": - version: 12.4.2 - resolution: "@polkadot/networks@npm:12.4.2" +"@polkadot/networks@npm:12.5.1, @polkadot/networks@npm:^12.5.1": + version: 12.5.1 + resolution: "@polkadot/networks@npm:12.5.1" dependencies: - "@polkadot/util": 12.4.2 + "@polkadot/util": 12.5.1 "@substrate/ss58-registry": ^1.43.0 tslib: ^2.6.2 - checksum: 43a98414d9a540d3358b5ce69908bce4d07f32592edd52eef66c705705e4571aa55fff8442b7287986b052d328af3af08170c3a70848ebf1e9128a3f27c2571f + checksum: f8c64684f6806365c1aded6ebca52432050cc8caacd067faf339b2f37497b63b13cebb689f7b0f9c62a890566383cf1931552da82815cc52baa2166fb1772a43 languageName: node linkType: hard -"@polkadot/rpc-augment@npm:10.9.1": - version: 10.9.1 - resolution: "@polkadot/rpc-augment@npm:10.9.1" +"@polkadot/rpc-augment@npm:10.10.1": + version: 10.10.1 + resolution: "@polkadot/rpc-augment@npm:10.10.1" dependencies: - "@polkadot/rpc-core": 10.9.1 - "@polkadot/types": 10.9.1 - "@polkadot/types-codec": 10.9.1 - "@polkadot/util": ^12.3.1 - tslib: ^2.5.3 - checksum: 4f7b090be6d88ef6a56679a80da856bf007994e2142e16fbac6030132789b5a2411421650935ed4b18334afca399edfc0387135731836c6d9f8420acf510f11b + "@polkadot/rpc-core": 10.10.1 + "@polkadot/types": 10.10.1 + "@polkadot/types-codec": 10.10.1 + "@polkadot/util": ^12.5.1 + tslib: ^2.6.2 + checksum: d19ff447fea298387e8af9b7ac44c8eb8438b0e939608414c0ddc642fbd5c2d657d199a66741d9e330f28aa587486a163238cdf058cc69994178b121a0d26738 languageName: node linkType: hard -"@polkadot/rpc-core@npm:10.9.1": - version: 10.9.1 - resolution: "@polkadot/rpc-core@npm:10.9.1" +"@polkadot/rpc-core@npm:10.10.1": + version: 10.10.1 + resolution: "@polkadot/rpc-core@npm:10.10.1" dependencies: - "@polkadot/rpc-augment": 10.9.1 - "@polkadot/rpc-provider": 10.9.1 - "@polkadot/types": 10.9.1 - "@polkadot/util": ^12.3.1 + "@polkadot/rpc-augment": 10.10.1 + "@polkadot/rpc-provider": 10.10.1 + "@polkadot/types": 10.10.1 + "@polkadot/util": ^12.5.1 rxjs: ^7.8.1 - tslib: ^2.5.3 - checksum: 538a207f5d321b4b18b0580da438598dd78e496dbc7069a776abcc39ede36903981ba2b9897eea73ecfe2f48a4d0cbd5b5cd738b3184f5c333709e6f4603f22a + tslib: ^2.6.2 + checksum: 5ab21029fbafa13e50bb48161a82c023f7015b633e258b76c2cff25bf648d7f69baf18efc291ebec8dd635b38da8223e853e15b53478268b1f6b40d2ab0b3e09 languageName: node linkType: hard -"@polkadot/rpc-provider@npm:10.9.1": - version: 10.9.1 - resolution: "@polkadot/rpc-provider@npm:10.9.1" - dependencies: - "@polkadot/keyring": ^12.3.1 - "@polkadot/types": 10.9.1 - "@polkadot/types-support": 10.9.1 - "@polkadot/util": ^12.3.1 - "@polkadot/util-crypto": ^12.3.1 - "@polkadot/x-fetch": ^12.3.1 - "@polkadot/x-global": ^12.3.1 - "@polkadot/x-ws": ^12.3.1 - "@substrate/connect": 0.7.26 +"@polkadot/rpc-provider@npm:10.10.1, @polkadot/rpc-provider@npm:^10.10.1": + version: 10.10.1 + resolution: "@polkadot/rpc-provider@npm:10.10.1" + dependencies: + "@polkadot/keyring": ^12.5.1 + "@polkadot/types": 10.10.1 + "@polkadot/types-support": 10.10.1 + "@polkadot/util": ^12.5.1 + "@polkadot/util-crypto": ^12.5.1 + "@polkadot/x-fetch": ^12.5.1 + "@polkadot/x-global": ^12.5.1 + "@polkadot/x-ws": ^12.5.1 + "@substrate/connect": 0.7.33 eventemitter3: ^5.0.1 - mock-socket: ^9.2.1 - nock: ^13.3.1 - tslib: ^2.5.3 + mock-socket: ^9.3.1 + nock: ^13.3.4 + tslib: ^2.6.2 dependenciesMeta: "@substrate/connect": optional: true - checksum: 4521ba64a1e69ed323910796a4598755e8101704aae3be33b6c363be4ebb9ea1a99ced17b8cd9fa3ab15abf5900e1055279f532f47b8472e8a143a299bfa046d + checksum: 44147ad7ce4bb0fccf5272bbe56b3b65c1e907f02109c8e18a5b5da8c658f84c1d7741c5e6878adacd06514254b0a7fb8254d5a222f55f25f7a573b2ba970449 languageName: node linkType: hard -"@polkadot/types-augment@npm:10.9.1": - version: 10.9.1 - resolution: "@polkadot/types-augment@npm:10.9.1" +"@polkadot/rpc-provider@patch:@polkadot/rpc-provider@npm%3A10.10.1#./.yarn/patches/@polkadot-rpc-provider-npm-10.10.1-c60ba50fe2.patch::locator=chopsticks-monorepo%40workspace%3A.": + version: 10.10.1 + resolution: "@polkadot/rpc-provider@patch:@polkadot/rpc-provider@npm%3A10.10.1#./.yarn/patches/@polkadot-rpc-provider-npm-10.10.1-c60ba50fe2.patch::version=10.10.1&hash=0d586a&locator=chopsticks-monorepo%40workspace%3A." + dependencies: + "@polkadot/keyring": ^12.5.1 + "@polkadot/types": 10.10.1 + "@polkadot/types-support": 10.10.1 + "@polkadot/util": ^12.5.1 + "@polkadot/util-crypto": ^12.5.1 + "@polkadot/x-fetch": ^12.5.1 + "@polkadot/x-global": ^12.5.1 + "@polkadot/x-ws": ^12.5.1 + "@substrate/connect": 0.7.33 + eventemitter3: ^5.0.1 + mock-socket: ^9.3.1 + nock: ^13.3.4 + tslib: ^2.6.2 + dependenciesMeta: + "@substrate/connect": + optional: true + checksum: bc3325560561f9689b3e68d7394c6936c720e7d9662e8b09d5ca5cc5031f6d5bdbe1b2bac165fca9d16ec984e0b2b96517c437601e1512fdbd62cb92bf8493a0 + languageName: node + linkType: hard + +"@polkadot/types-augment@npm:10.10.1": + version: 10.10.1 + resolution: "@polkadot/types-augment@npm:10.10.1" dependencies: - "@polkadot/types": 10.9.1 - "@polkadot/types-codec": 10.9.1 - "@polkadot/util": ^12.3.1 - tslib: ^2.5.3 - checksum: d643f83ab0a9498267037d95b878fa4e3b0087882195c3bd609038e8c934a092d9c82f7164ac97989305805aabe0d9186736c50a372498c81c22b3d7f4cfcccb + "@polkadot/types": 10.10.1 + "@polkadot/types-codec": 10.10.1 + "@polkadot/util": ^12.5.1 + tslib: ^2.6.2 + checksum: 40440fc2a9568c9e636f478c4f191cbb38f07256f4db7f1bb9bdbcf0b928280315afee2843090a006a3dfd16e000f22dd6a9bd5687dd6400a1fc3dcd6ee59a25 languageName: node linkType: hard -"@polkadot/types-codec@npm:10.9.1": - version: 10.9.1 - resolution: "@polkadot/types-codec@npm:10.9.1" +"@polkadot/types-codec@npm:10.10.1, @polkadot/types-codec@npm:^10.10.1": + version: 10.10.1 + resolution: "@polkadot/types-codec@npm:10.10.1" dependencies: - "@polkadot/util": ^12.3.1 - "@polkadot/x-bigint": ^12.3.1 - tslib: ^2.5.3 - checksum: ac11b770fa4328f55daf6dd78fc8fc4d6906fb0d4b2bf92eaece58332c74f2b178d598a310a6dd068c72856acefddf5f7d23cac56991fa12f61d6853fb73d582 + "@polkadot/util": ^12.5.1 + "@polkadot/x-bigint": ^12.5.1 + tslib: ^2.6.2 + checksum: 17ceb561e6a82784febd5c8b0219050a9b8aeeb766ffbae8255ab586120063ca9fea1c89df776047e861aba87e43048a8060d5c469bcd42c169830a69416d62f languageName: node linkType: hard -"@polkadot/types-create@npm:10.9.1": - version: 10.9.1 - resolution: "@polkadot/types-create@npm:10.9.1" +"@polkadot/types-create@npm:10.10.1": + version: 10.10.1 + resolution: "@polkadot/types-create@npm:10.10.1" dependencies: - "@polkadot/types-codec": 10.9.1 - "@polkadot/util": ^12.3.1 - tslib: ^2.5.3 - checksum: 43f8fbd70a7891d6b49f1edb00b4a918c21924f2c1e44eb81ef7c9327e1fcc7eac65dbc2a9d0e3ba49079fdddda5498115e47f5fd99ec2a91f79c7f305bf553a + "@polkadot/types-codec": 10.10.1 + "@polkadot/util": ^12.5.1 + tslib: ^2.6.2 + checksum: 1dedef441218a0786774033c2d587b8ccdf184a72da671c7da70ced9f765073bfec4a15d8937b00d5d50cb0eb1b4bd25886ace3f7e024c95b46f58a1c318efd1 languageName: node linkType: hard -"@polkadot/types-known@npm:10.9.1": - version: 10.9.1 - resolution: "@polkadot/types-known@npm:10.9.1" +"@polkadot/types-known@npm:10.10.1, @polkadot/types-known@npm:^10.10.1": + version: 10.10.1 + resolution: "@polkadot/types-known@npm:10.10.1" dependencies: - "@polkadot/networks": ^12.3.1 - "@polkadot/types": 10.9.1 - "@polkadot/types-codec": 10.9.1 - "@polkadot/types-create": 10.9.1 - "@polkadot/util": ^12.3.1 - tslib: ^2.5.3 - checksum: 8a3dd0dead1759112b9011c5ff47bf9fa0f5a00d0d5cba841d724494a9434a2f565fad8ab654ae8cc3949a10c28f3966034bfc23e493b7cc373d3532de508953 + "@polkadot/networks": ^12.5.1 + "@polkadot/types": 10.10.1 + "@polkadot/types-codec": 10.10.1 + "@polkadot/types-create": 10.10.1 + "@polkadot/util": ^12.5.1 + tslib: ^2.6.2 + checksum: 25489967fcd6022f11a64c20884dd1ef49494f3b3e514034a08cc07f61267121adf8b96b307edc3381c445de58842d515aa8440ee888bc37120775deffae671a languageName: node linkType: hard -"@polkadot/types-support@npm:10.9.1": - version: 10.9.1 - resolution: "@polkadot/types-support@npm:10.9.1" +"@polkadot/types-support@npm:10.10.1": + version: 10.10.1 + resolution: "@polkadot/types-support@npm:10.10.1" dependencies: - "@polkadot/util": ^12.3.1 - tslib: ^2.5.3 - checksum: f5df33f215f529c33d4fd7ad7d6877a4567954488971c2986da416b6578ccb6d5c6eeadab4602abe0e3ce17373cdd6de0ce6f09529852b6e2fd6bc28b9183f9b + "@polkadot/util": ^12.5.1 + tslib: ^2.6.2 + checksum: 391857f39463fcc9bbc34a6bafd191e12eb3fd28f386d4094cc3cdcbcd0fcc8799c6e99a49b0e634c6a1b78d07188eb6e1e01299f55df2593c3f30fcb241631c languageName: node linkType: hard -"@polkadot/types@npm:10.9.1": - version: 10.9.1 - resolution: "@polkadot/types@npm:10.9.1" - dependencies: - "@polkadot/keyring": ^12.3.1 - "@polkadot/types-augment": 10.9.1 - "@polkadot/types-codec": 10.9.1 - "@polkadot/types-create": 10.9.1 - "@polkadot/util": ^12.3.1 - "@polkadot/util-crypto": ^12.3.1 +"@polkadot/types@npm:10.10.1, @polkadot/types@npm:^10.10.1": + version: 10.10.1 + resolution: "@polkadot/types@npm:10.10.1" + dependencies: + "@polkadot/keyring": ^12.5.1 + "@polkadot/types-augment": 10.10.1 + "@polkadot/types-codec": 10.10.1 + "@polkadot/types-create": 10.10.1 + "@polkadot/util": ^12.5.1 + "@polkadot/util-crypto": ^12.5.1 rxjs: ^7.8.1 - tslib: ^2.5.3 - checksum: c9b0873b52f33c5d7913bc1e474c67d797411ac592c10af987dfecfee7480aeda02b9fc100ff506bc8af704a7fc239162a8ec7eec580e2e7a62ac7f7b95f3900 + tslib: ^2.6.2 + checksum: 58b8b026e25f8156f270bdd240a2e384b64db93a6abe7c15abe9acdc2ce06a724328a8bf4d5b3047f5e398eef3d4961447d8511c52105c082dddd1b9d8fb0cb4 languageName: node linkType: hard -"@polkadot/util-crypto@npm:12.4.2, @polkadot/util-crypto@npm:^12.3.1, @polkadot/util-crypto@npm:^12.3.2": - version: 12.4.2 - resolution: "@polkadot/util-crypto@npm:12.4.2" +"@polkadot/util-crypto@npm:12.5.1, @polkadot/util-crypto@npm:^12.5.1": + version: 12.5.1 + resolution: "@polkadot/util-crypto@npm:12.5.1" dependencies: - "@noble/curves": 1.1.0 - "@noble/hashes": 1.3.1 - "@polkadot/networks": 12.4.2 - "@polkadot/util": 12.4.2 + "@noble/curves": ^1.2.0 + "@noble/hashes": ^1.3.2 + "@polkadot/networks": 12.5.1 + "@polkadot/util": 12.5.1 "@polkadot/wasm-crypto": ^7.2.2 "@polkadot/wasm-util": ^7.2.2 - "@polkadot/x-bigint": 12.4.2 - "@polkadot/x-randomvalues": 12.4.2 - "@scure/base": 1.1.1 + "@polkadot/x-bigint": 12.5.1 + "@polkadot/x-randomvalues": 12.5.1 + "@scure/base": ^1.1.3 tslib: ^2.6.2 peerDependencies: - "@polkadot/util": 12.4.2 - checksum: fbb2ba94d5369db98e19e94aa6c21d17af4018c65a670d49c6fa1d0ef1e8ee7f5cf76267c072400e16b9c8251a78031f2b25e86808ef6b0a4f028b0c1d6a02ee + "@polkadot/util": 12.5.1 + checksum: 4efb5ca6e48f7457d8dcfa02ac9f581ce23a90ba9e72c8f6fd7649296e92dcb3dfa3d2bdd0b5ed68b81bf15e32aabef34f60d47851249d8859dba7ebeb63501f languageName: node linkType: hard -"@polkadot/util@npm:12.4.2, @polkadot/util@npm:^12.3.1, @polkadot/util@npm:^12.4.1": - version: 12.4.2 - resolution: "@polkadot/util@npm:12.4.2" +"@polkadot/util@npm:12.5.1, @polkadot/util@npm:^12.5.1": + version: 12.5.1 + resolution: "@polkadot/util@npm:12.5.1" dependencies: - "@polkadot/x-bigint": 12.4.2 - "@polkadot/x-global": 12.4.2 - "@polkadot/x-textdecoder": 12.4.2 - "@polkadot/x-textencoder": 12.4.2 + "@polkadot/x-bigint": 12.5.1 + "@polkadot/x-global": 12.5.1 + "@polkadot/x-textdecoder": 12.5.1 + "@polkadot/x-textencoder": 12.5.1 "@types/bn.js": ^5.1.1 bn.js: ^5.2.1 tslib: ^2.6.2 - checksum: 0814f02b4f78a07bf67f53616114dfd99a89c9fdad4b39645784caee86d100a5ce1705ef3947ef9f41673125988faad0dc3d8fa8fceef34ec71af3834290580d + checksum: 955d41c01cb3c7da72c4f5f8faed13e1af1fa9603a3a1dd9f282eb69b5ebbffb889e76c595d1252ff5f9665cb3c55f1a96f908b020dc79356f92b2d5ce1aa81e languageName: node linkType: hard -"@polkadot/wasm-bridge@npm:7.2.2": - version: 7.2.2 - resolution: "@polkadot/wasm-bridge@npm:7.2.2" +"@polkadot/wasm-bridge@npm:7.3.1": + version: 7.3.1 + resolution: "@polkadot/wasm-bridge@npm:7.3.1" dependencies: - "@polkadot/wasm-util": 7.2.2 - tslib: ^2.6.1 + "@polkadot/wasm-util": 7.3.1 + tslib: ^2.6.2 peerDependencies: "@polkadot/util": "*" "@polkadot/x-randomvalues": "*" - checksum: b998b21bca963699c2958de0558bad83d19ca72922b7ca74beb99b8c418bdc4be7af86f7ea231b3224de55eb8ec59e0626642d393fc90192659cccaf346d5d2b + checksum: 0a0f644fe68ca74f8ba19910f6777870960e64d86c868b438d9bc6bd2ebd78eec0692c1ae096b5a70d2ebf247d414c47e1143a1a7c1a5fcd143ad0c9ed64fe4c languageName: node linkType: hard -"@polkadot/wasm-crypto-asmjs@npm:7.2.2": - version: 7.2.2 - resolution: "@polkadot/wasm-crypto-asmjs@npm:7.2.2" +"@polkadot/wasm-crypto-asmjs@npm:7.3.1": + version: 7.3.1 + resolution: "@polkadot/wasm-crypto-asmjs@npm:7.3.1" dependencies: - tslib: ^2.6.1 + tslib: ^2.6.2 peerDependencies: "@polkadot/util": "*" - checksum: 2eba52949b51adfa1e8183d406f40b935cdea1a3189994529febd9db4f1abf5f853782e2c15dad7ab0f2dd8641b3dbf40b221c0462b6a29ac11c38e8a70a8a5b + checksum: c4930ca070bf695dcc341f51861f0c8a5f11c2efdefbc5682b7d7bb3221c4d7b4f4ee26fe4b7b05f7fd344f9d119485e5b4c813dc1b540663fe477317c0616bc languageName: node linkType: hard -"@polkadot/wasm-crypto-init@npm:7.2.2": - version: 7.2.2 - resolution: "@polkadot/wasm-crypto-init@npm:7.2.2" +"@polkadot/wasm-crypto-init@npm:7.3.1": + version: 7.3.1 + resolution: "@polkadot/wasm-crypto-init@npm:7.3.1" dependencies: - "@polkadot/wasm-bridge": 7.2.2 - "@polkadot/wasm-crypto-asmjs": 7.2.2 - "@polkadot/wasm-crypto-wasm": 7.2.2 - "@polkadot/wasm-util": 7.2.2 - tslib: ^2.6.1 + "@polkadot/wasm-bridge": 7.3.1 + "@polkadot/wasm-crypto-asmjs": 7.3.1 + "@polkadot/wasm-crypto-wasm": 7.3.1 + "@polkadot/wasm-util": 7.3.1 + tslib: ^2.6.2 peerDependencies: "@polkadot/util": "*" "@polkadot/x-randomvalues": "*" - checksum: 75e4cc6cfecef13942397c0b0cbcd2ebf8534589b0a22104df6352908efbdc78e6fa42df3ce1660c1b267c8b7c40667a42c0d986a7a3bc4a2b9ea17ba97608af + checksum: 64de1573766c6ccb5a41d0b60c42654ed45ff80ac74742fe75855d37734b6a23a929a7f1c8495e14cabf4626e72500c7ae3e8f22cb5c99372d8866b729d0f189 languageName: node linkType: hard -"@polkadot/wasm-crypto-wasm@npm:7.2.2": - version: 7.2.2 - resolution: "@polkadot/wasm-crypto-wasm@npm:7.2.2" +"@polkadot/wasm-crypto-wasm@npm:7.3.1": + version: 7.3.1 + resolution: "@polkadot/wasm-crypto-wasm@npm:7.3.1" dependencies: - "@polkadot/wasm-util": 7.2.2 - tslib: ^2.6.1 + "@polkadot/wasm-util": 7.3.1 + tslib: ^2.6.2 peerDependencies: "@polkadot/util": "*" - checksum: e3d0aeb59fb7e5d3d25a256ed57c4e05895e9d7e29cb22214d9b59ff6e400f25b0c5758f77a0513befd99ef33051b43bbff3d1def978e87668aa74f3f8799c0b + checksum: 265a3260a09271b5a614cfa33f5e70602d36af0e737f1acf595c72867acdf60dc694aad5ae77413af96c801d882932f1da581bda83d2bcbf559f79f04c865009 languageName: node linkType: hard "@polkadot/wasm-crypto@npm:^7.2.2": - version: 7.2.2 - resolution: "@polkadot/wasm-crypto@npm:7.2.2" - dependencies: - "@polkadot/wasm-bridge": 7.2.2 - "@polkadot/wasm-crypto-asmjs": 7.2.2 - "@polkadot/wasm-crypto-init": 7.2.2 - "@polkadot/wasm-crypto-wasm": 7.2.2 - "@polkadot/wasm-util": 7.2.2 - tslib: ^2.6.1 + version: 7.3.1 + resolution: "@polkadot/wasm-crypto@npm:7.3.1" + dependencies: + "@polkadot/wasm-bridge": 7.3.1 + "@polkadot/wasm-crypto-asmjs": 7.3.1 + "@polkadot/wasm-crypto-init": 7.3.1 + "@polkadot/wasm-crypto-wasm": 7.3.1 + "@polkadot/wasm-util": 7.3.1 + tslib: ^2.6.2 peerDependencies: "@polkadot/util": "*" "@polkadot/x-randomvalues": "*" - checksum: 25710154c1a25aea59a8cdba4cfe051249e83b86cbc0869be7b0680c86f2841131f7df76881d422fb4d179b9037320957e725bc50546e63273bc11b85751b5a6 + checksum: 704a7d6edc35e5cb0b5bdbbc6e77694690f8a03bef1ad12ffb39e0ea32a2b8edae424745e7b5e4fb8877089425349978306895a01da895e1004a9ea554817710 languageName: node linkType: hard -"@polkadot/wasm-util@npm:7.2.2, @polkadot/wasm-util@npm:^7.2.2": - version: 7.2.2 - resolution: "@polkadot/wasm-util@npm:7.2.2" +"@polkadot/wasm-util@npm:7.3.1, @polkadot/wasm-util@npm:^7.2.2": + version: 7.3.1 + resolution: "@polkadot/wasm-util@npm:7.3.1" dependencies: - tslib: ^2.6.1 + tslib: ^2.6.2 peerDependencies: "@polkadot/util": "*" - checksum: b1ad387e5b2726183e1c141ac59f9e6e722d9c1e896dbe0069fb5ce46d30c3517f07b36c840c1d82d23256e111a3697ba3015e53073858e8e05ab3d0cbdbf05e + checksum: 6c412f9f69ffb6fea24705160567c7f76a3ed90507fd9d432bab1ecf73ec0f25bb5a95474011d894ce269264e9c590b6071e2d8ffb4503a5eb3bbfda954ba374 languageName: node linkType: hard -"@polkadot/x-bigint@npm:12.4.2, @polkadot/x-bigint@npm:^12.3.1": - version: 12.4.2 - resolution: "@polkadot/x-bigint@npm:12.4.2" +"@polkadot/x-bigint@npm:12.5.1, @polkadot/x-bigint@npm:^12.5.1": + version: 12.5.1 + resolution: "@polkadot/x-bigint@npm:12.5.1" dependencies: - "@polkadot/x-global": 12.4.2 + "@polkadot/x-global": 12.5.1 tslib: ^2.6.2 - checksum: 91f38cd7ff4b22dd24d470f26817032ef26edac1591f7bf8c1ff648ab26cd05a968d1f17fe9aba523858af7dba6d40c2f8145a2a2bc33fbb722358bec1ab0a2b + checksum: 295d00b17860196c43ac4957ffb052ca68bb4319990876238e3f0925ca6ca9106810204136315491116a11a277d8a1e1fae65cc43a168505ee5a69a27404d2e0 languageName: node linkType: hard -"@polkadot/x-fetch@npm:^12.3.1": - version: 12.4.2 - resolution: "@polkadot/x-fetch@npm:12.4.2" +"@polkadot/x-fetch@npm:^12.5.1": + version: 12.5.1 + resolution: "@polkadot/x-fetch@npm:12.5.1" dependencies: - "@polkadot/x-global": 12.4.2 + "@polkadot/x-global": 12.5.1 node-fetch: ^3.3.2 tslib: ^2.6.2 - checksum: 7f0a5263172bcb97f837b7efdeceffdc9dd1caeabb058ec718b26d367779aa5f248ebd0373c1eb09850a87b34ae8dadf96237412e7e0b940d750aa4b5b634d9a + checksum: 26b24b09f9074c181f53f13ea17a1389e823b262a956a28fddf609ba7d177a1cde3cd4db28e8e38320b207adcc675ac868dadfaeafe9cf3998a3861f02ee43d7 languageName: node linkType: hard -"@polkadot/x-global@npm:12.4.2, @polkadot/x-global@npm:^12.3.1": - version: 12.4.2 - resolution: "@polkadot/x-global@npm:12.4.2" +"@polkadot/x-global@npm:12.5.1, @polkadot/x-global@npm:^12.5.1": + version: 12.5.1 + resolution: "@polkadot/x-global@npm:12.5.1" dependencies: tslib: ^2.6.2 - checksum: 1489013e6ae3dce3c9f31f38f4ef8ca0956a18d35d12354c49cb7b256fef6dcbd3285a0c223509c8ed826b9d85fd8f59708312a010f1b69d5ee92963e38c48ac + checksum: d45e3d6096674b7495992c6e45cf1a284db545c16107ba9adae241d6aefe13c27adfaf93d58a3079e6a6b63acb221eb3181c7f55dc34124b24b542154724c506 languageName: node linkType: hard -"@polkadot/x-randomvalues@npm:12.4.2": - version: 12.4.2 - resolution: "@polkadot/x-randomvalues@npm:12.4.2" +"@polkadot/x-randomvalues@npm:12.5.1": + version: 12.5.1 + resolution: "@polkadot/x-randomvalues@npm:12.5.1" dependencies: - "@polkadot/x-global": 12.4.2 + "@polkadot/x-global": 12.5.1 tslib: ^2.6.2 peerDependencies: - "@polkadot/util": 12.4.2 + "@polkadot/util": 12.5.1 "@polkadot/wasm-util": "*" - checksum: 630d6c7c5af493c5d72ebc6262939c0de8cbc252f93b8d4224a9c7006ae2c641a2ad4eeee4f5ba7140609bbc4aaa2841ef29f86e680dfd512a5f68bc616016f4 + checksum: 52ee4b4206a98cac9e97e3d194db01fb4a540046672784442926478eaa2b2a74cebae59d10432671f544d72df5d623aedf57c301bcf447a4c72688ec3cb82fd5 languageName: node linkType: hard -"@polkadot/x-textdecoder@npm:12.4.2": - version: 12.4.2 - resolution: "@polkadot/x-textdecoder@npm:12.4.2" +"@polkadot/x-textdecoder@npm:12.5.1": + version: 12.5.1 + resolution: "@polkadot/x-textdecoder@npm:12.5.1" dependencies: - "@polkadot/x-global": 12.4.2 + "@polkadot/x-global": 12.5.1 tslib: ^2.6.2 - checksum: e9fe88b35cf355a8ddba3c60f2eeb58a60c58737c6f7272e392cda8d68fa57e508ad293a7551f86d926209acd1fe4e3a73f9d1b4b700dcfb061932fc007db205 + checksum: 202a9e216e9b89cc74012fa3f6c96eeb368dc3e6fa3c943f28c37c20941a6c678506cbc136946e9ff100123aa43846eab7765af074de94dfdd23f4ce2242c794 languageName: node linkType: hard -"@polkadot/x-textencoder@npm:12.4.2": - version: 12.4.2 - resolution: "@polkadot/x-textencoder@npm:12.4.2" +"@polkadot/x-textencoder@npm:12.5.1": + version: 12.5.1 + resolution: "@polkadot/x-textencoder@npm:12.5.1" dependencies: - "@polkadot/x-global": 12.4.2 + "@polkadot/x-global": 12.5.1 tslib: ^2.6.2 - checksum: c6599caa628ac78fd49f21618ad2863fdcae73d31cc98ebc67929f1c7083e6ba5188c48d3ea8604ef57e9f45ce46f4c4c63b1571ed0058f3d78aa30f31075498 + checksum: 7a8d99d203cbd9537e55405d737667ae8cd9ad40a9e3de52f2ef7580a23d27ebf7f7c52da4e0eca6ca34dc97aae33a97bab36afb54aaa7714f54a31931f94113 languageName: node linkType: hard -"@polkadot/x-ws@npm:^12.3.1": - version: 12.4.2 - resolution: "@polkadot/x-ws@npm:12.4.2" +"@polkadot/x-ws@npm:^12.5.1": + version: 12.5.1 + resolution: "@polkadot/x-ws@npm:12.5.1" dependencies: - "@polkadot/x-global": 12.4.2 + "@polkadot/x-global": 12.5.1 tslib: ^2.6.2 - ws: ^8.13.0 - checksum: 28a415d84780cbf2912f7b94c93dc85a7fea75564995cbc97b9a03cc2e1c0c93222f1e99c6d5add78cb1d9971e4605b36e23ae526b22ce3357619de26d9b15a6 + ws: ^8.14.1 + checksum: 839e82ab4bf013d17a356e2f10a42ba2ecf88f4e432985241e785416aeb6434c0e7c897b09aeeab23f5d27b27ef0dfe65eda85293c7a08f52d0774bb1b23704b languageName: node linkType: hard -"@scure/base@npm:1.1.1": - version: 1.1.1 - resolution: "@scure/base@npm:1.1.1" - checksum: b4fc810b492693e7e8d0107313ac74c3646970c198bbe26d7332820886fa4f09441991023ec9aa3a2a51246b74409ab5ebae2e8ef148bbc253da79ac49130309 +"@popperjs/core@npm:^2.11.8": + version: 2.11.8 + resolution: "@popperjs/core@npm:2.11.8" + checksum: e5c69fdebf52a4012f6a1f14817ca8e9599cb1be73dd1387e1785e2ed5e5f0862ff817f420a87c7fc532add1f88a12e25aeb010ffcbdc98eace3d55ce2139cf0 + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^5.0.5": + version: 5.0.5 + resolution: "@rollup/pluginutils@npm:5.0.5" + dependencies: + "@types/estree": ^1.0.0 + estree-walker: ^2.0.2 + picomatch: ^2.3.1 + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: dcd4d6e3cb6047f18c465a5f2bcd29995c565f083fb6ca5505bcf2018ae0c16634fd38d99538fbb7dcef4e1b491cf4b4465f8845b5666778a925a27e9202dbab + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.4.1": + version: 4.4.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.4.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.4.1": + version: 4.4.1 + resolution: "@rollup/rollup-android-arm64@npm:4.4.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.4.1": + version: 4.4.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.4.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.4.1": + version: 4.4.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.4.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.4.1": + version: 4.4.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.4.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.4.1": + version: 4.4.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.4.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.4.1": + version: 4.4.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.4.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.4.1": + version: 4.4.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.4.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.4.1": + version: 4.4.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.4.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.4.1": + version: 4.4.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.4.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.4.1": + version: 4.4.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.4.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.4.1": + version: 4.4.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.4.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@scure/base@npm:^1.1.3": + version: 1.1.3 + resolution: "@scure/base@npm:1.1.3" + checksum: 1606ab8a4db898cb3a1ada16c15437c3bce4e25854fadc8eb03ae93cbbbac1ed90655af4b0be3da37e12056fef11c0374499f69b9e658c9e5b7b3e06353c630c languageName: node linkType: hard @@ -870,6 +1877,13 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/is@npm:^4.0.0": + version: 4.6.0 + resolution: "@sindresorhus/is@npm:4.6.0" + checksum: 83839f13da2c29d55c97abc3bc2c55b250d33a0447554997a85c539e058e57b8da092da396e252b11ec24a0279a0bed1f537fa26302209327060643e327f81d2 + languageName: node + linkType: hard + "@sqltools/formatter@npm:^1.2.5": version: 1.2.5 resolution: "@sqltools/formatter@npm:1.2.5" @@ -884,108 +1898,133 @@ __metadata: languageName: node linkType: hard -"@substrate/connect@npm:0.7.26": - version: 0.7.26 - resolution: "@substrate/connect@npm:0.7.26" +"@substrate/connect@npm:0.7.33": + version: 0.7.33 + resolution: "@substrate/connect@npm:0.7.33" dependencies: "@substrate/connect-extension-protocol": ^1.0.1 - eventemitter3: ^4.0.7 - smoldot: 1.0.4 - checksum: 3179d241f073318d5973deb61c9c8d9b89ae28909a594b6b9fbcdfffd030a70ba58e8428eaa9d72484810bad10c93de1ad9c440b878d0fcfaaf4559d2e6f4502 + smoldot: 2.0.1 + checksum: b4cfb86bef46450b6635e7dbf1eb133603c6ad8c955046e72fc67aaf36b1fe5f2aeeb521f4b1ea0a1eea9ac4c49b0f6417c24eb1320e8da13cc0d3efd7ee4cd7 languageName: node linkType: hard "@substrate/ss58-registry@npm:^1.43.0": - version: 1.43.0 - resolution: "@substrate/ss58-registry@npm:1.43.0" - checksum: b2ecfd7365b946be2db7e2c5fa1f9136ff840bb2b8e6ffac0f48cd83f01a95c8a0fee1bb744255591bfc1f76766cd834182cde8cbd96e7849549d189c5812b3c + version: 1.44.0 + resolution: "@substrate/ss58-registry@npm:1.44.0" + checksum: 130fafc337a60bf22b1c01b8bd4fdbc2606a00483961bd173224478adb358a17b865d287cf99a2a32cb430d23d3a7969fce0457e8302dc48a98e1f666c7f6e40 + languageName: node + linkType: hard + +"@swc/cli@npm:0.1.62": + version: 0.1.62 + resolution: "@swc/cli@npm:0.1.62" + dependencies: + "@mole-inc/bin-wrapper": ^8.0.1 + commander: ^7.1.0 + fast-glob: ^3.2.5 + semver: ^7.3.8 + slash: 3.0.0 + source-map: ^0.7.3 + peerDependencies: + "@swc/core": ^1.2.66 + chokidar: ^3.5.1 + peerDependenciesMeta: + chokidar: + optional: true + bin: + spack: bin/spack.js + swc: bin/swc.js + swcx: bin/swcx.js + checksum: d44e88a724ba32d4f63856f15899f8eff78d90d0c5452e4882412307bf6353a64b25e7dc9992fd6e3975c87e6c0d7b494d859a0d8badb9f3c6103623ca89ddc2 languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.78": - version: 1.3.78 - resolution: "@swc/core-darwin-arm64@npm:1.3.78" +"@swc/core-darwin-arm64@npm:1.3.96": + version: 1.3.96 + resolution: "@swc/core-darwin-arm64@npm:1.3.96" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.78": - version: 1.3.78 - resolution: "@swc/core-darwin-x64@npm:1.3.78" +"@swc/core-darwin-x64@npm:1.3.96": + version: 1.3.96 + resolution: "@swc/core-darwin-x64@npm:1.3.96" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.78": - version: 1.3.78 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.78" +"@swc/core-linux-arm-gnueabihf@npm:1.3.96": + version: 1.3.96 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.96" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.78": - version: 1.3.78 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.78" +"@swc/core-linux-arm64-gnu@npm:1.3.96": + version: 1.3.96 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.96" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.78": - version: 1.3.78 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.78" +"@swc/core-linux-arm64-musl@npm:1.3.96": + version: 1.3.96 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.96" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.78": - version: 1.3.78 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.78" +"@swc/core-linux-x64-gnu@npm:1.3.96": + version: 1.3.96 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.96" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.78": - version: 1.3.78 - resolution: "@swc/core-linux-x64-musl@npm:1.3.78" +"@swc/core-linux-x64-musl@npm:1.3.96": + version: 1.3.96 + resolution: "@swc/core-linux-x64-musl@npm:1.3.96" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.78": - version: 1.3.78 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.78" +"@swc/core-win32-arm64-msvc@npm:1.3.96": + version: 1.3.96 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.96" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.78": - version: 1.3.78 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.78" +"@swc/core-win32-ia32-msvc@npm:1.3.96": + version: 1.3.96 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.96" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.78": - version: 1.3.78 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.78" +"@swc/core-win32-x64-msvc@npm:1.3.96": + version: 1.3.96 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.96" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:^1.3.78": - version: 1.3.78 - resolution: "@swc/core@npm:1.3.78" +"@swc/core@npm:^1.3.96": + version: 1.3.96 + resolution: "@swc/core@npm:1.3.96" dependencies: - "@swc/core-darwin-arm64": 1.3.78 - "@swc/core-darwin-x64": 1.3.78 - "@swc/core-linux-arm-gnueabihf": 1.3.78 - "@swc/core-linux-arm64-gnu": 1.3.78 - "@swc/core-linux-arm64-musl": 1.3.78 - "@swc/core-linux-x64-gnu": 1.3.78 - "@swc/core-linux-x64-musl": 1.3.78 - "@swc/core-win32-arm64-msvc": 1.3.78 - "@swc/core-win32-ia32-msvc": 1.3.78 - "@swc/core-win32-x64-msvc": 1.3.78 + "@swc/core-darwin-arm64": 1.3.96 + "@swc/core-darwin-x64": 1.3.96 + "@swc/core-linux-arm-gnueabihf": 1.3.96 + "@swc/core-linux-arm64-gnu": 1.3.96 + "@swc/core-linux-arm64-musl": 1.3.96 + "@swc/core-linux-x64-gnu": 1.3.96 + "@swc/core-linux-x64-musl": 1.3.96 + "@swc/core-win32-arm64-msvc": 1.3.96 + "@swc/core-win32-ia32-msvc": 1.3.96 + "@swc/core-win32-x64-msvc": 1.3.96 + "@swc/counter": ^0.1.1 + "@swc/types": ^0.1.5 peerDependencies: "@swc/helpers": ^0.5.0 dependenciesMeta: @@ -1012,7 +2051,30 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: b7494c4ca9a2e968cd00430c9dbb5cc4f0c3dd3baaf66d129185c5a8816caf6424a2da8e0f181ed94e7c0c39f76046ee995d6c5ec08198d5f5d6f60735ffb1ab + checksum: 41d4a4461b2952aaf8d3be945d373d0f3bd126115ee1aad0f76f2690e2b5635b6ec5bb54a7638deb9afedb1ad6f7d8453468a704e54e5fbb8234dd4a43b80205 + languageName: node + linkType: hard + +"@swc/counter@npm:^0.1.1": + version: 0.1.2 + resolution: "@swc/counter@npm:0.1.2" + checksum: 8427c594f1f0cf44b83885e9c8fe1e370c9db44ae96e07a37c117a6260ee97797d0709483efbcc244e77bac578690215f45b23254c4cd8a70fb25ddbb50bf33e + languageName: node + linkType: hard + +"@swc/types@npm:^0.1.5": + version: 0.1.5 + resolution: "@swc/types@npm:0.1.5" + checksum: 6aee11f62d3d805a64848e0bd5f0e0e615f958e327a9e1260056c368d7d28764d89e38bd8005a536c9bf18afbcd303edd84099d60df34a2975d62540f61df13b + languageName: node + linkType: hard + +"@szmarczak/http-timer@npm:^4.0.5": + version: 4.0.6 + resolution: "@szmarczak/http-timer@npm:4.0.6" + dependencies: + defer-to-connect: ^2.0.0 + checksum: c29df3bcec6fc3bdec2b17981d89d9c9fc9bd7d0c9bcfe92821dc533f4440bc890ccde79971838b4ceed1921d456973c4180d7175ee1d0023ad0562240a58d95 languageName: node linkType: hard @@ -1020,23 +2082,43 @@ __metadata: version: 0.0.0-use.local resolution: "@tanssi/chopsticks-core@workspace:packages/core" dependencies: - "@polkadot/api": ^10.9.1 - "@polkadot/util-crypto": ^12.3.2 + "@polkadot/api": ^10.10.1 + "@polkadot/rpc-provider": ^10.10.1 + "@polkadot/types": ^10.10.1 + "@polkadot/types-codec": ^10.10.1 + "@polkadot/types-known": ^10.10.1 + "@polkadot/util": ^12.5.1 + "@polkadot/util-crypto": ^12.5.1 + "@swc/cli": 0.1.62 + "@swc/core": ^1.3.96 "@tanssi/chopsticks-executor": "workspace:*" - "@types/lodash": ^4.14.197 - "@types/sql.js": ^1.4.4 + "@types/lodash": ^4.14.201 axios: ^1.4.0 + comlink: ^4.4.1 eventemitter3: ^5.0.1 - fflate: ^0.8.0 - localforage: ^1.10.0 lodash: ^4.17.21 - pino: ^8.15.0 - pino-pretty: ^10.2.0 - sql.js: ^1.8.0 + lru-cache: ^10.0.1 + pino: ^8.16.1 + pino-pretty: ^10.2.3 + rxjs: ^7.8.1 + typescript: ^5.2.2 + vitest: ^0.34.6 + zod: ^3.22.4 + languageName: unknown + linkType: soft + +"@tanssi/chopsticks-db@workspace:*, @tanssi/chopsticks-db@workspace:packages/db": + version: 0.0.0-use.local + resolution: "@tanssi/chopsticks-db@workspace:packages/db" + dependencies: + "@polkadot/util": ^12.5.1 + "@swc/cli": 0.1.62 + "@swc/core": ^1.3.96 + "@tanssi/chopsticks-core": "workspace:*" + idb: ^7.1.1 sqlite3: ^5.1.6 typeorm: ^0.3.17 - typescript: ^5.1.6 - zod: ^3.22.2 + typescript: ^5.2.2 languageName: unknown linkType: soft @@ -1044,11 +2126,11 @@ __metadata: version: 0.0.0-use.local resolution: "@tanssi/chopsticks-e2e@workspace:packages/e2e" dependencies: - "@polkadot/api": ^10.9.1 + "@polkadot/api": ^10.10.1 "@tanssi/chopsticks": "workspace:*" "@tanssi/chopsticks-testing": "workspace:*" - typescript: ^5.1.6 - vitest: ^0.34.2 + typescript: ^5.2.2 + vitest: ^0.34.6 languageName: unknown linkType: soft @@ -1056,9 +2138,11 @@ __metadata: version: 0.0.0-use.local resolution: "@tanssi/chopsticks-executor@workspace:executor" dependencies: - "@polkadot/util": ^12.4.1 + "@polkadot/util": ^12.5.1 "@polkadot/wasm-util": ^7.2.2 - fflate: ^0.8.0 + "@swc/cli": 0.1.62 + "@swc/core": ^1.3.96 + fflate: ^0.8.1 languageName: unknown linkType: soft @@ -1066,41 +2150,63 @@ __metadata: version: 0.0.0-use.local resolution: "@tanssi/chopsticks-testing@workspace:packages/testing" dependencies: + "@polkadot/api": ^10.10.1 + "@polkadot/types": ^10.10.1 + "@swc/cli": 0.1.62 + "@swc/core": ^1.3.96 "@tanssi/chopsticks": "workspace:*" - "@types/chai": ^4.3.5 - typescript: ^5.1.6 + "@tanssi/chopsticks-utils": "workspace:*" + "@types/chai": ^4.3.10 + typescript: ^5.2.2 peerDependencies: vitest: ^0.34.0 languageName: unknown linkType: soft +"@tanssi/chopsticks-utils@workspace:*, @tanssi/chopsticks-utils@workspace:packages/utils": + version: 0.0.0-use.local + resolution: "@tanssi/chopsticks-utils@workspace:packages/utils" + dependencies: + "@swc/cli": 0.1.62 + "@swc/core": ^1.3.96 + "@tanssi/chopsticks": "workspace:*" + typescript: ^5.2.2 + languageName: unknown + linkType: soft + "@tanssi/chopsticks@workspace:*, @tanssi/chopsticks@workspace:packages/chopsticks": version: 0.0.0-use.local resolution: "@tanssi/chopsticks@workspace:packages/chopsticks" dependencies: "@pnpm/npm-conf": ^2.2.2 "@polkadot/api": ^10.9.1 + "@polkadot/api-augment": ^10.10.1 + "@polkadot/types": ^10.10.1 + "@polkadot/util": ^12.5.1 + "@polkadot/util-crypto": ^12.5.1 + "@swc/cli": 0.1.62 + "@swc/core": ^1.3.96 "@tanssi/chopsticks-core": "workspace:*" - "@types/global-agent": ^2.1.1 - "@types/js-yaml": ^4.0.5 - "@types/lodash": ^4.14.197 - "@types/node": ^20.5.1 - "@types/ws": ^8.5.5 - "@types/yargs": ^17.0.24 - axios: ^1.4.0 + "@tanssi/chopsticks-db": "workspace:*" + "@types/global-agent": ^2.1.3 + "@types/js-yaml": ^4.0.9 + "@types/lodash": ^4.14.201 + "@types/node": ^20.9.0 + "@types/ws": ^8.5.9 + "@types/yargs": ^17.0.31 + axios: ^1.6.0 dotenv: ^16.3.1 global-agent: ^3.0.0 js-yaml: ^4.1.0 jsondiffpatch: ^0.5.0 lodash: ^4.17.21 - ts-node: ^10.9.1 - ts-node-dev: ^2.0.0 - typescript: ^5.1.6 - ws: ^8.13.0 + typescript: ^5.2.2 + vitest: ^0.34.6 + ws: ^8.14.2 yargs: ^17.7.2 - zod: ^3.22.2 + zod: ^3.22.4 bin: - chopsticks: ./chopsticks.js + chopsticks: ./chopsticks.cjs languageName: unknown linkType: soft @@ -1108,15 +2214,31 @@ __metadata: version: 0.0.0-use.local resolution: "@tanssi/web-test@workspace:packages/web-test" dependencies: - "@playwright/test": ^1.37.1 + "@emotion/react": ^11.11.1 + "@emotion/styled": ^11.11.0 + "@mui/material": ^5.14.17 + "@playwright/test": ^1.39.0 "@tanssi/chopsticks-core": "workspace:*" + "@tanssi/chopsticks-db": "workspace:*" + "@types/react": ^18.2.37 + "@types/react-dom": ^18.2.15 + "@vitejs/plugin-react": ^4.1.1 crypto-browserify: ^3.12.0 path-browserify: ^1.0.1 + react: ^18.2.0 + react-dom: ^18.2.0 stream-browserify: ^3.0.0 - typescript: ^5.1.6 + typescript: ^5.2.2 languageName: unknown linkType: soft +"@tokenizer/token@npm:^0.3.0": + version: 0.3.0 + resolution: "@tokenizer/token@npm:0.3.0" + checksum: 1d575d02d2a9f0c5a4ca5180635ebd2ad59e0f18b42a65f3d04844148b49b3db35cf00b6012a1af2d59c2ab3caca59451c5689f747ba8667ee586ad717ee58e1 + languageName: node + linkType: hard + "@tootallnate/once@npm:1": version: 1.1.2 resolution: "@tootallnate/once@npm:1.1.2" @@ -1124,13 +2246,6 @@ __metadata: languageName: node linkType: hard -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 - languageName: node - linkType: hard - "@tsconfig/node10@npm:^1.0.7": version: 1.0.9 resolution: "@tsconfig/node10@npm:1.0.9" @@ -1159,56 +2274,116 @@ __metadata: languageName: node linkType: hard +"@types/babel__core@npm:^7.20.4": + version: 7.20.4 + resolution: "@types/babel__core@npm:7.20.4" + dependencies: + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 + "@types/babel__generator": "*" + "@types/babel__template": "*" + "@types/babel__traverse": "*" + checksum: 75ed6072213423d2b827740d68bbf96f5a7050ce8bd842dde0ceec8d352d06e847166bac757df4beba55525b65f8727c0432adeb5cb4f83aa42e155ac555767e + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.6.7 + resolution: "@types/babel__generator@npm:7.6.7" + dependencies: + "@babel/types": ^7.0.0 + checksum: 03e96ea327a5238f00c38394a05cc01619b9f5f3ea57371419a1c25cf21676a6d327daf802435819f8cb3b8fa10e938a94bcbaf79a38c132068c813a1807ff93 + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" + dependencies: + "@babel/parser": ^7.1.0 + "@babel/types": ^7.0.0 + checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*": + version: 7.20.4 + resolution: "@types/babel__traverse@npm:7.20.4" + dependencies: + "@babel/types": ^7.20.7 + checksum: f044ba80e00d07e46ee917c44f96cfc268fcf6d3871f7dfb8db8d3c6dab1508302f3e6bc508352a4a3ae627d2522e3fc500fa55907e0410a08e2e0902a8f3576 + languageName: node + linkType: hard + "@types/bn.js@npm:^5.1.1": - version: 5.1.1 - resolution: "@types/bn.js@npm:5.1.1" + version: 5.1.5 + resolution: "@types/bn.js@npm:5.1.5" dependencies: "@types/node": "*" - checksum: e50ed2dd3abe997e047caf90e0352c71e54fc388679735217978b4ceb7e336e51477791b715f49fd77195ac26dd296c7bad08a3be9750e235f9b2e1edb1b51c2 + checksum: c87b28c4af74545624f8a3dae5294b16aa190c222626e8d4b2e327b33b1a3f1eeb43e7a24d914a9774bca43d8cd6e1cb0325c1f4b3a244af6693a024e1d918e6 + languageName: node + linkType: hard + +"@types/cacheable-request@npm:^6.0.1": + version: 6.0.3 + resolution: "@types/cacheable-request@npm:6.0.3" + dependencies: + "@types/http-cache-semantics": "*" + "@types/keyv": ^3.1.4 + "@types/node": "*" + "@types/responselike": ^1.0.0 + checksum: d9b26403fe65ce6b0cb3720b7030104c352bcb37e4fac2a7089a25a97de59c355fa08940658751f2f347a8512aa9d18fdb66ab3ade835975b2f454f2d5befbd9 languageName: node linkType: hard "@types/chai-subset@npm:^1.3.3": - version: 1.3.3 - resolution: "@types/chai-subset@npm:1.3.3" + version: 1.3.5 + resolution: "@types/chai-subset@npm:1.3.5" dependencies: "@types/chai": "*" - checksum: 4481da7345022995f5a105e6683744f7203d2c3d19cfe88d8e17274d045722948abf55e0adfd97709e0f043dade37a4d4e98cd4c660e2e8a14f23e6ecf79418f + checksum: 715c46d3e90f87482c2769389d560456bb257b225716ff44c275c231bdb62c8a30629f355f412bac0ecab07ebc036c1806d9ed9dde9792254f8ef4f07f76033b + languageName: node + linkType: hard + +"@types/chai@npm:*, @types/chai@npm:^4.3.10, @types/chai@npm:^4.3.5": + version: 4.3.10 + resolution: "@types/chai@npm:4.3.10" + checksum: cb9ebe31f5da2d72c4b9362ec4efb33497355372270163c0290f6b9c389934ff178dac933be6b2911a125f15972c0379603736ea83ad10bfca933b6aaf6c0c5b languageName: node linkType: hard -"@types/chai@npm:*, @types/chai@npm:^4.3.5": - version: 4.3.5 - resolution: "@types/chai@npm:4.3.5" - checksum: c8f26a88c6b5b53a3275c7f5ff8f107028e3cbb9ff26795fff5f3d9dea07106a54ce9e2dce5e40347f7c4cc35657900aaf0c83934a25a1ae12e61e0f5516e431 +"@types/estree@npm:^1.0.0": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a languageName: node linkType: hard -"@types/emscripten@npm:*": - version: 1.39.7 - resolution: "@types/emscripten@npm:1.39.7" - checksum: 9871e4495358cc06cc45b2798022cd097d8ac2eb5b2fae7c276c6c5cadea05507150fad053c73ed346d4cbd844c50a3438604e5d7c3c2a7446b703cacb1ce172 +"@types/global-agent@npm:^2.1.3": + version: 2.1.3 + resolution: "@types/global-agent@npm:2.1.3" + checksum: 6129b6d5ba871b9d111ddf91e6f9a1725d3f28bf2aa6869ec83bebd14c688cde4275ebea6fa45b0b1c00d78109d022c935f952e9e4876d76289d4706484776c3 languageName: node linkType: hard -"@types/global-agent@npm:^2.1.1": - version: 2.1.1 - resolution: "@types/global-agent@npm:2.1.1" - checksum: 33fddd83781706b60996d42e6e60a8a96b4163f5b54f5052c97b448edf8e7c834e9395613cec37a39da8d1d5286382e85ec09ba6b908fab5638055f7d6f76397 +"@types/http-cache-semantics@npm:*": + version: 4.0.4 + resolution: "@types/http-cache-semantics@npm:4.0.4" + checksum: 7f4dd832e618bc1e271be49717d7b4066d77c2d4eed5b81198eb987e532bb3e1c7e02f45d77918185bad936f884b700c10cebe06305f50400f382ab75055f9e8 languageName: node linkType: hard -"@types/js-yaml@npm:^4.0.5": - version: 4.0.5 - resolution: "@types/js-yaml@npm:4.0.5" - checksum: 7dcac8c50fec31643cc9d6444b5503239a861414cdfaa7ae9a38bc22597c4d850c4b8cec3d82d73b3fbca408348ce223b0408d598b32e094470dfffc6d486b4d +"@types/js-yaml@npm:^4.0.9": + version: 4.0.9 + resolution: "@types/js-yaml@npm:4.0.9" + checksum: e5e5e49b5789a29fdb1f7d204f82de11cb9e8f6cb24ab064c616da5d6e1b3ccfbf95aa5d1498a9fbd3b9e745564e69b4a20b6c530b5a8bbb2d4eb830cda9bc69 languageName: node linkType: hard "@types/json-schema@npm:^7.0.12": - version: 7.0.12 - resolution: "@types/json-schema@npm:7.0.12" - checksum: 00239e97234eeb5ceefb0c1875d98ade6e922bfec39dd365ec6bd360b5c2f825e612ac4f6e5f1d13601b8b30f378f15e6faa805a3a732f4a1bbe61915163d293 + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 languageName: node linkType: hard @@ -1219,17 +2394,59 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:^4.14.197": - version: 4.14.197 - resolution: "@types/lodash@npm:4.14.197" - checksum: 53d7567d1704de76cf33266c78062e0fd722d4b846e5b1417d0b6ef0ee41c0d9c451b92bc34f73d5f1fcc45c7d36511e92f6f47a9279b48157ba60a92ddaa078 +"@types/keyv@npm:^3.1.4": + version: 3.1.4 + resolution: "@types/keyv@npm:3.1.4" + dependencies: + "@types/node": "*" + checksum: e009a2bfb50e90ca9b7c6e8f648f8464067271fd99116f881073fa6fa76dc8d0133181dd65e6614d5fb1220d671d67b0124aef7d97dc02d7e342ab143a47779d + languageName: node + linkType: hard + +"@types/linkify-it@npm:*": + version: 3.0.5 + resolution: "@types/linkify-it@npm:3.0.5" + checksum: fac28f41a6e576282300a459d70ea0d33aab70dbb77c3d09582bb0335bb00d862b6de69585792a4d590aae4173fbab0bf28861e2d90ca7b2b1439b52688e9ff6 + languageName: node + linkType: hard + +"@types/lodash@npm:^4.14.201": + version: 4.14.201 + resolution: "@types/lodash@npm:4.14.201" + checksum: 484be655298e9b2dc2d218ea934071b2ea31e4a531c561dd220dbda65237e8d08c20dc2d457ac24f29be7fe167415bf7bb9360ea0d80bdb8b0f0ec8d8db92fae + languageName: node + linkType: hard + +"@types/markdown-it@npm:^13.0.6": + version: 13.0.6 + resolution: "@types/markdown-it@npm:13.0.6" + dependencies: + "@types/linkify-it": "*" + "@types/mdurl": "*" + checksum: 2d840372f909d6c000c37c89f720f17a6c3cfecfa1c2f10ec51d5b63a301a5316a3d9ca6855f2922420c23961600af83385cca142c2f2169db3126ad37215341 + languageName: node + linkType: hard + +"@types/mdurl@npm:*": + version: 1.0.5 + resolution: "@types/mdurl@npm:1.0.5" + checksum: e8e872e8da8f517a9c748b06cec61c947cb73fd3069e8aeb0926670ec5dfac5d30549b3d0f1634950401633e812f9b7263f2d5dbe7e98fce12bcb2c659aa4b21 + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:^20.9.0": + version: 20.9.1 + resolution: "@types/node@npm:20.9.1" + dependencies: + undici-types: ~5.26.4 + checksum: bb893c6790733dac32818c1ca170fa466622dec39a0ade4639463e1358cb811771e242accbd065e7a1bfe59adc989c0ee59be65e462d3a0ab49043426f0b7637 languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^20.5.1": - version: 20.5.4 - resolution: "@types/node@npm:20.5.4" - checksum: 18de76c990e1c298183661cfc7cf16c9384531538c8090cc27bc3cab801e7c46b9f6943591ab0433955dd57961601684cc0fb19ba2deee9609e137c91afd2e25 +"@types/parse-json@npm:^4.0.0": + version: 4.0.2 + resolution: "@types/parse-json@npm:4.0.2" + checksum: 5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 languageName: node linkType: hard @@ -1242,71 +2459,106 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.5.0": - version: 7.5.0 - resolution: "@types/semver@npm:7.5.0" - checksum: 0a64b9b9c7424d9a467658b18dd70d1d781c2d6f033096a6e05762d20ebbad23c1b69b0083b0484722aabf35640b78ccc3de26368bcae1129c87e9df028a22e2 +"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.10": + version: 15.7.10 + resolution: "@types/prop-types@npm:15.7.10" + checksum: 39ecc2d9e439ed16b32937a08d98b84ed4a70f53bcd52c8564c0cd7a36fe1004ca83a1fb94b13c1b7a5c048760f06445c3c6a91a6972c8eff652c0b50c9424b1 + languageName: node + linkType: hard + +"@types/react-dom@npm:^18.2.15": + version: 18.2.15 + resolution: "@types/react-dom@npm:18.2.15" + dependencies: + "@types/react": "*" + checksum: 8e9631600c21ff561328e38a951d1991b3b3b20f538af4c0efbd1327c883a5573a63f50e1b945c34fa51b114b30e1ca5e62317bd54f21e063d6697b4be843a03 + languageName: node + linkType: hard + +"@types/react-transition-group@npm:^4.4.8": + version: 4.4.9 + resolution: "@types/react-transition-group@npm:4.4.9" + dependencies: + "@types/react": "*" + checksum: be9e256e53919a7cf3b4a075f6d01c0a2dd3a67911dd28276aa6158be4beade4ca5327cbf1f096c28b413e04989f069122319b02e5a09c280d903a0accea9ead + languageName: node + linkType: hard + +"@types/react@npm:*, @types/react@npm:^18.2.37": + version: 18.2.37 + resolution: "@types/react@npm:18.2.37" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: 2d2599f1a09e4f678509161fea8baeaf76d21deee460f4f3ccc1ca431ebe85f896d7d0b906127de17e97ed57240cec61955eb97d0b5d9cbf4e97fd6620b1acdb + languageName: node + linkType: hard + +"@types/responselike@npm:^1.0.0": + version: 1.0.3 + resolution: "@types/responselike@npm:1.0.3" + dependencies: + "@types/node": "*" + checksum: 6ac4b35723429b11b117e813c7acc42c3af8b5554caaf1fc750404c1ae59f9b7376bc69b9e9e194a5a97357a597c2228b7173d317320f0360d617b6425212f58 languageName: node linkType: hard -"@types/sql.js@npm:^1.4.4": - version: 1.4.4 - resolution: "@types/sql.js@npm:1.4.4" - dependencies: - "@types/emscripten": "*" - "@types/node": "*" - checksum: c71928d76b59e4899da4b137a4f1bbf8cc0cf198928efa183bba90880ae69331da23a99175b88a7f5eaa34ce9ebef8f94dd1dcca8e4abdac2abb560d860e6636 +"@types/scheduler@npm:*": + version: 0.16.6 + resolution: "@types/scheduler@npm:0.16.6" + checksum: 4cec89727584a50c66a07c322469a4d9e64f5b0117691f36afd4ceae75741c0038a6e107c05e515511d5358b5897becbe065b6e4560664cb1b16f6754915043d languageName: node linkType: hard -"@types/strip-bom@npm:^3.0.0": - version: 3.0.0 - resolution: "@types/strip-bom@npm:3.0.0" - checksum: cb165d0c2ce6abbef95506ebee25be02bd453600ef1792dc1754236e5d6f9c830d52bdb85978d0b08ea1f36b96a61235ac5ad99e0f4c2767fb4ea004e141d2df +"@types/semver@npm:^7.5.0": + version: 7.5.5 + resolution: "@types/semver@npm:7.5.5" + checksum: 533e6c93d1262d65f449423d94a445f7f3db0672e7429f21b6a1636d6051dbab3a2989ddcda9b79c69bb37830931d09fc958a65305a891357f5cea3257c297f5 languageName: node linkType: hard -"@types/strip-json-comments@npm:0.0.30": - version: 0.0.30 - resolution: "@types/strip-json-comments@npm:0.0.30" - checksum: 829ddd389645073f347c5b1924a8c34b8813af29756576e511c46f40e218193cf93ccbade62661d47fc70f707e98f410331729b8c20edfcb2e807d51df1ad4b7 +"@types/web-bluetooth@npm:^0.0.20": + version: 0.0.20 + resolution: "@types/web-bluetooth@npm:0.0.20" + checksum: d6d61da683e876e8995ac57e2e5229d829d0f536deb3568d4430898fc626ebcb7e065fe7f655ac6a5205702f7f7049e6335abe689cd5291241eef6e39e8a4371 languageName: node linkType: hard -"@types/ws@npm:^8.5.5": - version: 8.5.5 - resolution: "@types/ws@npm:8.5.5" +"@types/ws@npm:^8.5.9": + version: 8.5.9 + resolution: "@types/ws@npm:8.5.9" dependencies: "@types/node": "*" - checksum: d00bf8070e6938e3ccf933010921c6ce78ac3606696ce37a393b27a9a603f7bd93ea64f3c5fa295a2f743575ba9c9a9fdb904af0f5fe2229bf2adf0630386e4a + checksum: 83f436b731d2cdc49a45ced31a0a65cdd2e39c24d7b882776c26efa190dad6553e266d624c7a7089f36ad3ed471e02e729f3219282c80689b435f665df4a2b0b languageName: node linkType: hard "@types/yargs-parser@npm:*": - version: 21.0.0 - resolution: "@types/yargs-parser@npm:21.0.0" - checksum: b2f4c8d12ac18a567440379909127cf2cec393daffb73f246d0a25df36ea983b93b7e9e824251f959e9f928cbc7c1aab6728d0a0ff15d6145f66cec2be67d9a2 + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc languageName: node linkType: hard -"@types/yargs@npm:^17.0.24": - version: 17.0.24 - resolution: "@types/yargs@npm:17.0.24" +"@types/yargs@npm:^17.0.31": + version: 17.0.31 + resolution: "@types/yargs@npm:17.0.31" dependencies: "@types/yargs-parser": "*" - checksum: 5f3ac4dc4f6e211c1627340160fbe2fd247ceba002190da6cf9155af1798450501d628c9165a183f30a224fc68fa5e700490d740ff4c73e2cdef95bc4e8ba7bf + checksum: a7f4fe5b05162790cbcbccceb22821e2cb3e49d95a4d8403352f258744cd504124f3ab502eddb2262f5d2d9cc6a0547851ae44621b14fe4c505d8f1434c2a19e languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^6.4.0": - version: 6.4.1 - resolution: "@typescript-eslint/eslint-plugin@npm:6.4.1" +"@typescript-eslint/eslint-plugin@npm:^6.10.0": + version: 6.11.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.11.0" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.4.1 - "@typescript-eslint/type-utils": 6.4.1 - "@typescript-eslint/utils": 6.4.1 - "@typescript-eslint/visitor-keys": 6.4.1 + "@typescript-eslint/scope-manager": 6.11.0 + "@typescript-eslint/type-utils": 6.11.0 + "@typescript-eslint/utils": 6.11.0 + "@typescript-eslint/visitor-keys": 6.11.0 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -1319,44 +2571,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: aa5f2f516a4ea07d1a9878d347dcb915808862f41efd3c4acd4955e616d265e051c4c93d597d30e54bee10bab9b965e2ef9cea1b497bf16f23a475d7911a8078 + checksum: 8ba9ce7ce8609a044e405baf57cc84d6973d7676950c870288d7eae2dba44b36664e3f4d90b94a4de08e17259fe8baa7790750cd4e5391dbe2a2743497d7fae2 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^6.4.0": - version: 6.4.1 - resolution: "@typescript-eslint/parser@npm:6.4.1" +"@typescript-eslint/parser@npm:^6.10.0": + version: 6.11.0 + resolution: "@typescript-eslint/parser@npm:6.11.0" dependencies: - "@typescript-eslint/scope-manager": 6.4.1 - "@typescript-eslint/types": 6.4.1 - "@typescript-eslint/typescript-estree": 6.4.1 - "@typescript-eslint/visitor-keys": 6.4.1 + "@typescript-eslint/scope-manager": 6.11.0 + "@typescript-eslint/types": 6.11.0 + "@typescript-eslint/typescript-estree": 6.11.0 + "@typescript-eslint/visitor-keys": 6.11.0 debug: ^4.3.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: cb61c757963f2a7964c2f846087eadda044720da769d96600f9f0069fe796d612caef5d9bb0c785aa4fa95028b2d231e7c83847ce44f02b1fa41f2102d6f444c + checksum: e9cb175e3537b82aa8cd39641ecb4e656586f89f8365cf05400b5aa8794dac0c8c10c6aa2fd7c13a684f62c1493f5e41c5534df49d377abe9dc89d861a51195c languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.4.1": - version: 6.4.1 - resolution: "@typescript-eslint/scope-manager@npm:6.4.1" +"@typescript-eslint/scope-manager@npm:6.11.0": + version: 6.11.0 + resolution: "@typescript-eslint/scope-manager@npm:6.11.0" dependencies: - "@typescript-eslint/types": 6.4.1 - "@typescript-eslint/visitor-keys": 6.4.1 - checksum: 8f7f90aa378a19838301b31cfa58a4b0641d2b84891705c8c006c67aacb5c0d07112b714e1f0e7a159c5736779c934ec26dadef42a0711fccb635596aba391fc + "@typescript-eslint/types": 6.11.0 + "@typescript-eslint/visitor-keys": 6.11.0 + checksum: d219a96fd80fb14176cdcc47b070e870c73ccc0dfb32a8657f6ceaefb613dc0ea240a77250dcfc437d9c9360ca165c2765d4cf8fe689dae7e9eee2c0d6a98a50 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.4.1": - version: 6.4.1 - resolution: "@typescript-eslint/type-utils@npm:6.4.1" +"@typescript-eslint/type-utils@npm:6.11.0": + version: 6.11.0 + resolution: "@typescript-eslint/type-utils@npm:6.11.0" dependencies: - "@typescript-eslint/typescript-estree": 6.4.1 - "@typescript-eslint/utils": 6.4.1 + "@typescript-eslint/typescript-estree": 6.11.0 + "@typescript-eslint/utils": 6.11.0 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -1364,23 +2616,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 33bcdd48bd4e07258ed1919b598d50354dd67d8f01702cd2fd46aa9250b7b7cba9caab640df01f4dc0e45dabeddbb3ca47bee88f81fe2087350ed6f70a4cbe5d + checksum: 2effbe62ae3b12f8a88663072f68a5dcb1135d9ee3c09a0d9fcf49b943837c0a5966e907d4a1a15c27ddf82af2fcf7f6e004655d3e1f7a17c21596469771ff7d languageName: node linkType: hard -"@typescript-eslint/types@npm:6.4.1": - version: 6.4.1 - resolution: "@typescript-eslint/types@npm:6.4.1" - checksum: 16ba46140dbe426407bbb940e87fb347e7eb53b64f74e8f6a819cd662aa25ccd0c25b1e588867ce3cd36a8b4eccea7bd81f4d429595e6e86d9a24c655b1c8617 +"@typescript-eslint/types@npm:6.11.0": + version: 6.11.0 + resolution: "@typescript-eslint/types@npm:6.11.0" + checksum: ca8a11320286c9b0759a70ec83b9fd99937c9686fafdd41d8ea09ed7b2fa12e6b342bf65547efe5495926cd04cfc6488315920e3caffd27f12d42cb9a8cf88c8 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.4.1": - version: 6.4.1 - resolution: "@typescript-eslint/typescript-estree@npm:6.4.1" +"@typescript-eslint/typescript-estree@npm:6.11.0": + version: 6.11.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.11.0" dependencies: - "@typescript-eslint/types": 6.4.1 - "@typescript-eslint/visitor-keys": 6.4.1 + "@typescript-eslint/types": 6.11.0 + "@typescript-eslint/visitor-keys": 6.11.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -1389,97 +2641,332 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 34c289e50a6337321154efe6c20c762e94fea308f9032971e356a266f63e99b908b1a00dd8cf51eba50a6f69db01d665faf2cf13454b355767fd167eebe60f1c + checksum: e137ba7c4cad08853a44d9c40072496ca5f2d440828be9fd2d207a59db56b05a6dcb4756f3ba341ee2ae714de45df80114477946d30801c5a46eed67314fd9c6 languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.4.1": - version: 6.4.1 - resolution: "@typescript-eslint/utils@npm:6.4.1" +"@typescript-eslint/utils@npm:6.11.0": + version: 6.11.0 + resolution: "@typescript-eslint/utils@npm:6.11.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.4.1 - "@typescript-eslint/types": 6.4.1 - "@typescript-eslint/typescript-estree": 6.4.1 + "@typescript-eslint/scope-manager": 6.11.0 + "@typescript-eslint/types": 6.11.0 + "@typescript-eslint/typescript-estree": 6.11.0 semver: ^7.5.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: 54e642a345790f912393a6f2821495e2359eff0f874a94cbe6fb3ef4411702983ed54fe88ca3ea9d28f2e93800a74dee22b7888838154bc1afd57c7e119e17ec + checksum: e90aa2c8c56038a48de65a5303f9e4a4a70bb0d4d0a05cfcd28157fc0f06b2fc186c2e76a495f4540a903ea37577daa1403bab923d940114ec27a6326153d60f languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.4.1": - version: 6.4.1 - resolution: "@typescript-eslint/visitor-keys@npm:6.4.1" +"@typescript-eslint/visitor-keys@npm:6.11.0": + version: 6.11.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.11.0" dependencies: - "@typescript-eslint/types": 6.4.1 + "@typescript-eslint/types": 6.11.0 eslint-visitor-keys: ^3.4.1 - checksum: bd9cd56fc793e1d880c24193f939c4992b2653f330baece41cd461d1fb48edb2c53696987cba0e29074bbb452dd181fd009db92dd19060fdcc417ad76768f18a + checksum: 6aae9dd79963bbefbf2e310015b909627da541a13ab4d8359eea3c86c34fdbb91e583f65b5a99dee1959f7c5d67b21b45e5a05c63ddb4b82dacd60c890ce8b25 + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.2.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 + languageName: node + linkType: hard + +"@vitejs/plugin-react@npm:^4.1.1": + version: 4.2.0 + resolution: "@vitejs/plugin-react@npm:4.2.0" + dependencies: + "@babel/core": ^7.23.3 + "@babel/plugin-transform-react-jsx-self": ^7.23.3 + "@babel/plugin-transform-react-jsx-source": ^7.23.3 + "@types/babel__core": ^7.20.4 + react-refresh: ^0.14.0 + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + checksum: 515dc270dc433d9d80806501221d152f627aabc342916e9dc0d1d840fec76bc00daf3e41738f9aad286de89ee9325fd423372298bd04a3bfd618601ae62d515d + languageName: node + linkType: hard + +"@vitejs/plugin-vue@npm:^4.5.0": + version: 4.5.0 + resolution: "@vitejs/plugin-vue@npm:4.5.0" + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + vue: ^3.2.25 + checksum: 50b8300537804fdc78c5b2448f608f9a09ce55230ca7988ada19ad8583a8185edf800f3e9ad9322bd74b89dbbe02d330e99fecee6918efcb92eb58ef34cf2863 languageName: node linkType: hard -"@vitest/expect@npm:0.34.2": - version: 0.34.2 - resolution: "@vitest/expect@npm:0.34.2" +"@vitest/expect@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/expect@npm:0.34.6" dependencies: - "@vitest/spy": 0.34.2 - "@vitest/utils": 0.34.2 - chai: ^4.3.7 - checksum: 974ae239f2799d0fdba0ba8acba9146d09a16c64b5270b7aec768d35ea4ab77d0e4a70edbc24bf47160696d99183b8c761ba6701d6429bb87d3de8ded2b204ec + "@vitest/spy": 0.34.6 + "@vitest/utils": 0.34.6 + chai: ^4.3.10 + checksum: 37a526f4af7e73fc56b71ba1139d6d93ff1972315d0e0691de967179298d2ad086e8803d2b28defe0e97a1326d808cd886e4b802d1691d8894cb234e35ed5185 languageName: node linkType: hard -"@vitest/runner@npm:0.34.2": - version: 0.34.2 - resolution: "@vitest/runner@npm:0.34.2" +"@vitest/runner@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/runner@npm:0.34.6" dependencies: - "@vitest/utils": 0.34.2 + "@vitest/utils": 0.34.6 p-limit: ^4.0.0 pathe: ^1.1.1 - checksum: 3b97304fcc1e48d31446940d5c19c3b3e3028110d7c9685729b20407a8a6913947c76107a924cec2d638283a27d3e36e1299bb4a6fc7d2d1c7b7b8dbedadaa2f + checksum: 0357f0a11f4e1e170099f9125e379bbe8049a59faa7b34b919b3e5ee8927f30824c2b3ebb814b6a77c75ec35a30bf9adb8ec2b5e051525b4edd0d17be15725cc languageName: node linkType: hard -"@vitest/snapshot@npm:0.34.2": - version: 0.34.2 - resolution: "@vitest/snapshot@npm:0.34.2" +"@vitest/snapshot@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/snapshot@npm:0.34.6" dependencies: magic-string: ^0.30.1 pathe: ^1.1.1 pretty-format: ^29.5.0 - checksum: abefb685f46ffb66d805999c868977543b976719bd8afc91596d91e0b50a452a41a1a5f6fda78d0e1f7e43f02f64d30c652727b971526c57af9b56008e7b7418 + checksum: c2f164b23741cdf10f449575a0f9996cf385675d0f76d2eb696f53b614743811f2fbefdc5eb0fd3f9544ccfbb566d57a5c50a70595167458579d56429b09151f languageName: node linkType: hard -"@vitest/spy@npm:0.34.2": - version: 0.34.2 - resolution: "@vitest/spy@npm:0.34.2" +"@vitest/spy@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/spy@npm:0.34.6" dependencies: tinyspy: ^2.1.1 - checksum: 25f6a14219e6a90f2c0bd5017c7d8d872fb34832a4c30b60f47b64ff48d3970d90666ec67534b046dd9c550e67f92797ade6d3925d3e339003e7caddd458d901 + checksum: b05e5906f2f489a3234a0380a21cb48635915aa7f28eac92a595e78e9ceefb95340311635e39684b32fff20f9c58fdc33488eeddee39a660cd94c9c6bc2febf7 languageName: node linkType: hard -"@vitest/utils@npm:0.34.2": - version: 0.34.2 - resolution: "@vitest/utils@npm:0.34.2" +"@vitest/utils@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/utils@npm:0.34.6" dependencies: diff-sequences: ^29.4.3 loupe: ^2.3.6 pretty-format: ^29.5.0 - checksum: 55081528a475413759bf752ec084ccfc013e1f549c4f9523535034c86aab6d2f8711ac44d462817d01d3ccb1608f9150809a94896a681be8602d78554b162037 + checksum: acf716af2bab66037e49bd6d3e8bae40b605b9bff515d4926c46d6f8cc2366decfac5a1756ea55029968e71fba1da1f992764c3a57c9b46eccce3f6db7197bd6 + languageName: node + linkType: hard + +"@vue/compiler-core@npm:3.3.8": + version: 3.3.8 + resolution: "@vue/compiler-core@npm:3.3.8" + dependencies: + "@babel/parser": ^7.23.0 + "@vue/shared": 3.3.8 + estree-walker: ^2.0.2 + source-map-js: ^1.0.2 + checksum: 772e9ec2049b53f3ee69f657f93e6b7a14a24aa51d2baecaa311805c6a328b944358143bf01ca58f189ad3e5239e2b057e1877e98c42939a8dd7b281741ec71c + languageName: node + linkType: hard + +"@vue/compiler-dom@npm:3.3.8": + version: 3.3.8 + resolution: "@vue/compiler-dom@npm:3.3.8" + dependencies: + "@vue/compiler-core": 3.3.8 + "@vue/shared": 3.3.8 + checksum: f897be7f08217e98d9b6cdf2f4663453f44cbddc4b84b74b3f979d78fc4b71021f4acfb1a5051b6af05378349ff423a37471ba595bde9c2441e610ba0b4f36d4 + languageName: node + linkType: hard + +"@vue/compiler-sfc@npm:3.3.8": + version: 3.3.8 + resolution: "@vue/compiler-sfc@npm:3.3.8" + dependencies: + "@babel/parser": ^7.23.0 + "@vue/compiler-core": 3.3.8 + "@vue/compiler-dom": 3.3.8 + "@vue/compiler-ssr": 3.3.8 + "@vue/reactivity-transform": 3.3.8 + "@vue/shared": 3.3.8 + estree-walker: ^2.0.2 + magic-string: ^0.30.5 + postcss: ^8.4.31 + source-map-js: ^1.0.2 + checksum: 7f931f3fe3fd117974b20f497267e9c29fea83d5703fe65aad5f0ea63c9563581b186acf02cdd1d85526395f0067dde9d05c5e522d9cffba2168b16c4a9414d9 + languageName: node + linkType: hard + +"@vue/compiler-ssr@npm:3.3.8": + version: 3.3.8 + resolution: "@vue/compiler-ssr@npm:3.3.8" + dependencies: + "@vue/compiler-dom": 3.3.8 + "@vue/shared": 3.3.8 + checksum: eddfbc884c0340ce0acccca503a10c04dc0bf8b612fb4220f7e6d41f9efe1c44fed37615ea5fc62d73e62c4900f55c44175f5d0a17d25b607367cbb127e61b67 + languageName: node + linkType: hard + +"@vue/devtools-api@npm:^6.5.1": + version: 6.5.1 + resolution: "@vue/devtools-api@npm:6.5.1" + checksum: 3de9ff5ec78890c84d22c59910e26bf53140413895ba85b0e2a276609c24d9dde007cf468d9f21ef18389eaef75605fe94e79a761beb30d3bbb7af1ef19bbd4e + languageName: node + linkType: hard + +"@vue/reactivity-transform@npm:3.3.8": + version: 3.3.8 + resolution: "@vue/reactivity-transform@npm:3.3.8" + dependencies: + "@babel/parser": ^7.23.0 + "@vue/compiler-core": 3.3.8 + "@vue/shared": 3.3.8 + estree-walker: ^2.0.2 + magic-string: ^0.30.5 + checksum: cc846146fe88aad18c9b7a5597862bee6763ad8c5afb9985a407c25430e9b512c450cf67972f944ab41f9cf3fd5237fd741c31a85a6c0961c49774cedbd0f2ff + languageName: node + linkType: hard + +"@vue/reactivity@npm:3.3.8": + version: 3.3.8 + resolution: "@vue/reactivity@npm:3.3.8" + dependencies: + "@vue/shared": 3.3.8 + checksum: 6c6e83c2c9cd29e230d7d45f8c60f9f344129a8904127c0e403f29c1727fb67ed903379c56f9e9fc4166f5e1ba29202604ac77f011d5e3fe7c8f32d6efe7f12a + languageName: node + linkType: hard + +"@vue/runtime-core@npm:3.3.8": + version: 3.3.8 + resolution: "@vue/runtime-core@npm:3.3.8" + dependencies: + "@vue/reactivity": 3.3.8 + "@vue/shared": 3.3.8 + checksum: 14b6a5293a25d80c681829b512be5b749fd66e9de4a5de65c9f7d6c82283d4ecb408e84bc485e214627cdb80d40ac8e9970a885592cec2d50acea29ec2ac6f18 + languageName: node + linkType: hard + +"@vue/runtime-dom@npm:3.3.8": + version: 3.3.8 + resolution: "@vue/runtime-dom@npm:3.3.8" + dependencies: + "@vue/runtime-core": 3.3.8 + "@vue/shared": 3.3.8 + csstype: ^3.1.2 + checksum: fec87df42b536e52da4ff44a0fc715314db0729d22893ba0d5420368dd0b2b8e4f32b51c2dcf0f1420c4b620a235e86a4b7c70d6a4d68ba28839f91bd18047e7 + languageName: node + linkType: hard + +"@vue/server-renderer@npm:3.3.8": + version: 3.3.8 + resolution: "@vue/server-renderer@npm:3.3.8" + dependencies: + "@vue/compiler-ssr": 3.3.8 + "@vue/shared": 3.3.8 + peerDependencies: + vue: 3.3.8 + checksum: b0577acc10e3b108b4f631af6b9d349747ac49bcce2e3bac7b237bdeaa295effe8e8ac3547fa5d0dc51e8d419d7553a3cb50c07b21ea9df8c422ee0acd9fbcf9 + languageName: node + linkType: hard + +"@vue/shared@npm:3.3.8": + version: 3.3.8 + resolution: "@vue/shared@npm:3.3.8" + checksum: d5bd795977c885017498e839f5462bc2b046fb4a4c4bf925b82ac0eaf883c1cf9203d69f17160f7be7b3c1d9acb5513d57010b401407b63f3c36c7af87778fae + languageName: node + linkType: hard + +"@vueuse/core@npm:10.6.1, @vueuse/core@npm:^10.6.1": + version: 10.6.1 + resolution: "@vueuse/core@npm:10.6.1" + dependencies: + "@types/web-bluetooth": ^0.0.20 + "@vueuse/metadata": 10.6.1 + "@vueuse/shared": 10.6.1 + vue-demi: ">=0.14.6" + checksum: 13b892a32fbf99a32947f7a7ff8014525ca1ceb937663b0d6c5ef811eceb7857138c2c3710c2aa9d21dda7a1cdacb1f0faf9f6e38efefb03c2bae4997d13dcc4 + languageName: node + linkType: hard + +"@vueuse/integrations@npm:^10.6.1": + version: 10.6.1 + resolution: "@vueuse/integrations@npm:10.6.1" + dependencies: + "@vueuse/core": 10.6.1 + "@vueuse/shared": 10.6.1 + vue-demi: ">=0.14.6" + peerDependencies: + async-validator: "*" + axios: "*" + change-case: "*" + drauu: "*" + focus-trap: "*" + fuse.js: "*" + idb-keyval: "*" + jwt-decode: "*" + nprogress: "*" + qrcode: "*" + sortablejs: "*" + universal-cookie: "*" + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + checksum: 214b3e9225889ffb8feff388f1dc787f01f563d16fe394d41c7793a7a601b7c499e0dd9b124f08afe381ccbb5136fa38f45c26e0140bda7d5694754a7af0c62c + languageName: node + linkType: hard + +"@vueuse/metadata@npm:10.6.1": + version: 10.6.1 + resolution: "@vueuse/metadata@npm:10.6.1" + checksum: 5739e5ebfd6e377bf50116ee0a5ee11ec97d62adf7336456fe1db2d6712d7fd7c4fcce04f7821494fa17424eca5cd17b38ed89a0b4b4625448dcce7ee9541a65 + languageName: node + linkType: hard + +"@vueuse/shared@npm:10.6.1": + version: 10.6.1 + resolution: "@vueuse/shared@npm:10.6.1" + dependencies: + vue-demi: ">=0.14.6" + checksum: 1e2fb9b0ce5092003d45042776adaeaa0094f209b864d43879496c69a51c2ab9b0c88cdf838fe9a65417f148867ad95f1bdf33b69f815ddcdb6bd9a1a8a80fb3 languageName: node linkType: hard -"abbrev@npm:1, abbrev@npm:^1.0.0": +"abbrev@npm:1": version: 1.1.1 resolution: "abbrev@npm:1.1.1" checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 languageName: node linkType: hard +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 + languageName: node + linkType: hard + "abort-controller@npm:^3.0.0": version: 3.0.0 resolution: "abort-controller@npm:3.0.0" @@ -1499,18 +2986,18 @@ __metadata: linkType: hard "acorn-walk@npm:^8.1.1, acorn-walk@npm:^8.2.0": - version: 8.2.0 - resolution: "acorn-walk@npm:8.2.0" - checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 + version: 8.3.0 + resolution: "acorn-walk@npm:8.3.0" + checksum: 15ea56ab6529135be05e7d018f935ca80a572355dd3f6d3cd717e36df3346e0f635a93ae781b1c7942607693e2e5f3ef81af5c6fc697bbadcc377ebda7b7f5f6 languageName: node linkType: hard -"acorn@npm:^8.10.0, acorn@npm:^8.4.1, acorn@npm:^8.9.0": - version: 8.10.0 - resolution: "acorn@npm:8.10.0" +"acorn@npm:^8.10.0, acorn@npm:^8.11.2, acorn@npm:^8.4.1, acorn@npm:^8.9.0": + version: 8.11.2 + resolution: "acorn@npm:8.11.2" bin: acorn: bin/acorn - checksum: 538ba38af0cc9e5ef983aee196c4b8b4d87c0c94532334fa7e065b2c8a1f85863467bb774231aae91613fcda5e68740c15d97b1967ae3394d20faddddd8af61d + checksum: 818450408684da89423e3daae24e4dc9b68692db8ab49ea4569c7c5abb7a3f23669438bf129cc81dfdada95e1c9b944ee1bfca2c57a05a4dc73834a612fbf6a7 languageName: node linkType: hard @@ -1523,7 +3010,16 @@ __metadata: languageName: node linkType: hard -"agentkeepalive@npm:^4.1.3, agentkeepalive@npm:^4.2.1": +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": + version: 7.1.0 + resolution: "agent-base@npm:7.1.0" + dependencies: + debug: ^4.3.4 + checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f + languageName: node + linkType: hard + +"agentkeepalive@npm:^4.1.3": version: 4.5.0 resolution: "agentkeepalive@npm:4.5.0" dependencies: @@ -1554,6 +3050,28 @@ __metadata: languageName: node linkType: hard +"algoliasearch@npm:^4.19.1": + version: 4.20.0 + resolution: "algoliasearch@npm:4.20.0" + dependencies: + "@algolia/cache-browser-local-storage": 4.20.0 + "@algolia/cache-common": 4.20.0 + "@algolia/cache-in-memory": 4.20.0 + "@algolia/client-account": 4.20.0 + "@algolia/client-analytics": 4.20.0 + "@algolia/client-common": 4.20.0 + "@algolia/client-personalization": 4.20.0 + "@algolia/client-search": 4.20.0 + "@algolia/logger-common": 4.20.0 + "@algolia/logger-console": 4.20.0 + "@algolia/requester-browser-xhr": 4.20.0 + "@algolia/requester-common": 4.20.0 + "@algolia/requester-node-http": 4.20.0 + "@algolia/transporter": 4.20.0 + checksum: 078954944452f57d2e3b47c6ed4905caf797814324a4d5068a8b6685d434a885977a3e607714c5fb6eb29c7c3e717b3ee9cb01c8b2320e2c7bd73bcd8d42e70f + languageName: node + linkType: hard + "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" @@ -1568,6 +3086,22 @@ __metadata: languageName: node linkType: hard +"ansi-sequence-parser@npm:^1.1.0": + version: 1.1.1 + resolution: "ansi-sequence-parser@npm:1.1.1" + checksum: ead5b15c596e8e85ca02951a844366c6776769dcc9fd1bd3a0db11bb21364554822c6a439877fb599e7e1ffa0b5f039f1e5501423950457f3dcb2f480c30b188 + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: ^1.9.0 + checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" @@ -1622,6 +3156,13 @@ __metadata: languageName: node linkType: hard +"arch@npm:^2.1.0": + version: 2.2.0 + resolution: "arch@npm:2.2.0" + checksum: e21b7635029fe8e9cdd5a026f9a6c659103e63fff423834323cdf836a1bb240a72d0c39ca8c470f84643385cf581bd8eda2cad8bf493e27e54bd9783abe9101f + languageName: node + linkType: hard + "are-we-there-yet@npm:^2.0.0": version: 2.0.0 resolution: "are-we-there-yet@npm:2.0.0" @@ -1666,16 +3207,16 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.6": - version: 3.1.6 - resolution: "array-includes@npm:3.1.6" +"array-includes@npm:^3.1.7": + version: 3.1.7 + resolution: "array-includes@npm:3.1.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - get-intrinsic: ^1.1.3 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + get-intrinsic: ^1.2.1 is-string: ^1.0.7 - checksum: f22f8cd8ba8a6448d91eebdc69f04e4e55085d09232b5216ee2d476dab3ef59984e8d1889e662c6a0ed939dcb1b57fd05b2c0209c3370942fc41b752c82a2ca5 + checksum: 06f9e4598fac12a919f7c59a3f04f010ea07f0b7f0585465ed12ef528a60e45f374e79d1bddbb34cdd4338357d00023ddbd0ac18b0be36964f5e726e8965d7fc languageName: node linkType: hard @@ -1686,54 +3227,55 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.2": - version: 1.2.2 - resolution: "array.prototype.findlastindex@npm:1.2.2" +"array.prototype.findlastindex@npm:^1.2.3": + version: 1.2.3 + resolution: "array.prototype.findlastindex@npm:1.2.3" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - get-intrinsic: ^1.1.3 - checksum: 8a166359f69a2a751c843f26b9c8cd03d0dc396a92cdcb85f4126b5f1cecdae5b2c0c616a71ea8aff026bde68165b44950b3664404bb73db0673e288495ba264 + get-intrinsic: ^1.2.1 + checksum: 31f35d7b370c84db56484618132041a9af401b338f51899c2e78ef7690fbba5909ee7ca3c59a7192085b328cc0c68c6fd1f6d1553db01a689a589ae510f3966e languageName: node linkType: hard -"array.prototype.flat@npm:^1.3.1": - version: 1.3.1 - resolution: "array.prototype.flat@npm:1.3.1" +"array.prototype.flat@npm:^1.3.2": + version: 1.3.2 + resolution: "array.prototype.flat@npm:1.3.2" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - checksum: 5a8415949df79bf6e01afd7e8839bbde5a3581300e8ad5d8449dea52639e9e59b26a467665622783697917b43bf39940a6e621877c7dd9b3d1c1f97484b9b88b + checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b languageName: node linkType: hard -"array.prototype.flatmap@npm:^1.3.1": - version: 1.3.1 - resolution: "array.prototype.flatmap@npm:1.3.1" +"array.prototype.flatmap@npm:^1.3.2": + version: 1.3.2 + resolution: "array.prototype.flatmap@npm:1.3.2" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - checksum: 8c1c43a4995f12cf12523436da28515184c753807b3f0bc2ca6c075f71c470b099e2090cc67dba8e5280958fea401c1d0c59e1db0143272aef6cd1103921a987 + checksum: ce09fe21dc0bcd4f30271f8144083aa8c13d4639074d6c8dc82054b847c7fc9a0c97f857491f4da19d4003e507172a78f4bcd12903098adac8b9cd374f734be3 languageName: node linkType: hard -"arraybuffer.prototype.slice@npm:^1.0.1": - version: 1.0.1 - resolution: "arraybuffer.prototype.slice@npm:1.0.1" +"arraybuffer.prototype.slice@npm:^1.0.2": + version: 1.0.2 + resolution: "arraybuffer.prototype.slice@npm:1.0.2" dependencies: array-buffer-byte-length: ^1.0.0 call-bind: ^1.0.2 define-properties: ^1.2.0 + es-abstract: ^1.22.1 get-intrinsic: ^1.2.1 is-array-buffer: ^3.0.2 is-shared-array-buffer: ^1.0.2 - checksum: e3e9b2a3e988ebfeddce4c7e8f69df730c9e48cb04b0d40ff0874ce3d86b3d1339dd520ffde5e39c02610bc172ecfbd4bc93324b1cabd9554c44a56b131ce0ce + checksum: c200faf437786f5b2c80d4564ff5481c886a16dee642ef02abdc7306c7edd523d1f01d1dd12b769c7eb42ac9bc53874510db19a92a2c035c0f6696172aafa5d3 languageName: node linkType: hard @@ -1786,14 +3328,25 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.4.0": - version: 1.4.0 - resolution: "axios@npm:1.4.0" +"axios@npm:^1.4.0, axios@npm:^1.6.0": + version: 1.6.2 + resolution: "axios@npm:1.6.2" dependencies: follow-redirects: ^1.15.0 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: 7fb6a4313bae7f45e89d62c70a800913c303df653f19eafec88e56cea2e3821066b8409bc68be1930ecca80e861c52aa787659df0ffec6ad4d451c7816b9386b + checksum: 4a7429e2b784be0f2902ca2680964391eae7236faa3967715f30ea45464b98ae3f1c6f631303b13dfe721b17126b01f486c7644b9ef276bfc63112db9fd379f8 + languageName: node + linkType: hard + +"babel-plugin-macros@npm:^3.1.0": + version: 3.1.0 + resolution: "babel-plugin-macros@npm:3.1.0" + dependencies: + "@babel/runtime": ^7.12.5 + cosmiconfig: ^7.0.0 + resolve: ^1.19.0 + checksum: 765de4abebd3e4688ebdfbff8571ddc8cd8061f839bb6c3e550b0344a4027b04c60491f843296ce3f3379fb356cc873d57a9ee6694262547eb822c14a25be9a6 languageName: node linkType: hard @@ -1811,6 +3364,37 @@ __metadata: languageName: node linkType: hard +"bin-check@npm:^4.1.0": + version: 4.1.0 + resolution: "bin-check@npm:4.1.0" + dependencies: + execa: ^0.7.0 + executable: ^4.1.0 + checksum: 16f6d5d86df9365dab682c7dd238f93678b773a908b3bccea4b1acb82b9b4e49fcfa24c99b99180a8e4cdd89a8f15f03700b09908ed5ae651f52fd82488a3507 + languageName: node + linkType: hard + +"bin-version-check@npm:^5.0.0": + version: 5.1.0 + resolution: "bin-version-check@npm:5.1.0" + dependencies: + bin-version: ^6.0.0 + semver: ^7.5.3 + semver-truncate: ^3.0.0 + checksum: d99679cfe0964703045fe0145a98f117888942b621dfe2c2377305ee9a9d735374d8e3ecb3b476507b284af2567699f24f7ecb2feb1f27ad6086ad60b3198893 + languageName: node + linkType: hard + +"bin-version@npm:^6.0.0": + version: 6.0.0 + resolution: "bin-version@npm:6.0.0" + dependencies: + execa: ^5.0.0 + find-versions: ^5.0.0 + checksum: 78c29422ea9597eb4c8d4f0eff96df60d09aa82b53a87925bc403efbe5c55251b1a07baac538381d9096377f92d27e3c03963efa86db5bc0d6431b9563946229 + languageName: node + linkType: hard + "binary-extensions@npm:^2.0.0": version: 2.2.0 resolution: "binary-extensions@npm:2.2.0" @@ -1836,7 +3420,7 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:^5.0.0, bn.js@npm:^5.1.1, bn.js@npm:^5.2.1": +"bn.js@npm:^5.0.0, bn.js@npm:^5.2.1": version: 5.2.1 resolution: "bn.js@npm:5.2.1" checksum: 3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 @@ -1922,7 +3506,7 @@ __metadata: languageName: node linkType: hard -"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.0.1": +"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.0": version: 4.1.0 resolution: "browserify-rsa@npm:4.1.0" dependencies: @@ -1933,26 +3517,33 @@ __metadata: linkType: hard "browserify-sign@npm:^4.0.0": - version: 4.2.1 - resolution: "browserify-sign@npm:4.2.1" + version: 4.2.2 + resolution: "browserify-sign@npm:4.2.2" dependencies: - bn.js: ^5.1.1 - browserify-rsa: ^4.0.1 + bn.js: ^5.2.1 + browserify-rsa: ^4.1.0 create-hash: ^1.2.0 create-hmac: ^1.1.7 - elliptic: ^6.5.3 + elliptic: ^6.5.4 inherits: ^2.0.4 - parse-asn1: ^5.1.5 - readable-stream: ^3.6.0 - safe-buffer: ^5.2.0 - checksum: 0221f190e3f5b2d40183fa51621be7e838d9caa329fe1ba773406b7637855f37b30f5d83e52ff8f244ed12ffe6278dd9983638609ed88c841ce547e603855707 + parse-asn1: ^5.1.6 + readable-stream: ^3.6.2 + safe-buffer: ^5.2.1 + checksum: b622730c0fc183328c3a1c9fdaaaa5118821ed6822b266fa6b0375db7e20061ebec87301d61931d79b9da9a96ada1cab317fce3c68f233e5e93ed02dbb35544c languageName: node linkType: hard -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb +"browserslist@npm:^4.21.9": + version: 4.22.1 + resolution: "browserslist@npm:4.22.1" + dependencies: + caniuse-lite: ^1.0.30001541 + electron-to-chromium: ^1.4.535 + node-releases: ^2.0.13 + update-browserslist-db: ^1.0.13 + bin: + browserslist: cli.js + checksum: 7e6b10c53f7dd5d83fd2b95b00518889096382539fed6403829d447e05df4744088de46a571071afb447046abc3c66ad06fbc790e70234ec2517452e32ffd862 languageName: node linkType: hard @@ -2006,14 +3597,14 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^17.0.0": - version: 17.1.4 - resolution: "cacache@npm:17.1.4" +"cacache@npm:^18.0.0": + version: 18.0.0 + resolution: "cacache@npm:18.0.0" dependencies: "@npmcli/fs": ^3.1.0 fs-minipass: ^3.0.0 glob: ^10.2.2 - lru-cache: ^7.7.1 + lru-cache: ^10.0.1 minipass: ^7.0.3 minipass-collect: ^1.0.2 minipass-flush: ^1.0.5 @@ -2022,17 +3613,40 @@ __metadata: ssri: ^10.0.0 tar: ^6.1.11 unique-filename: ^3.0.0 - checksum: b7751df756656954a51201335addced8f63fc53266fa56392c9f5ae83c8d27debffb4458ac2d168a744a4517ec3f2163af05c20097f93d17bdc2dc8a385e14a6 + checksum: 2cd6bf15551abd4165acb3a4d1ef0593b3aa2fd6853ae16b5bb62199c2faecf27d36555a9545c0e07dd03347ec052e782923bdcece724a24611986aafb53e152 languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": - version: 1.0.2 - resolution: "call-bind@npm:1.0.2" +"cacheable-lookup@npm:^5.0.3": + version: 5.0.4 + resolution: "cacheable-lookup@npm:5.0.4" + checksum: 763e02cf9196bc9afccacd8c418d942fc2677f22261969a4c2c2e760fa44a2351a81557bd908291c3921fe9beb10b976ba8fa50c5ca837c5a0dd945f16468f2d + languageName: node + linkType: hard + +"cacheable-request@npm:^7.0.2": + version: 7.0.4 + resolution: "cacheable-request@npm:7.0.4" dependencies: - function-bind: ^1.1.1 - get-intrinsic: ^1.0.2 - checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 + clone-response: ^1.0.2 + get-stream: ^5.1.0 + http-cache-semantics: ^4.0.0 + keyv: ^4.0.0 + lowercase-keys: ^2.0.0 + normalize-url: ^6.0.1 + responselike: ^2.0.0 + checksum: 0de9df773fd4e7dd9bd118959878f8f2163867e2e1ab3575ffbecbe6e75e80513dd0c68ba30005e5e5a7b377cc6162bbc00ab1db019bb4e9cb3c2f3f7a6f1ee4 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.4, call-bind@npm:^1.0.5": + version: 1.0.5 + resolution: "call-bind@npm:1.0.5" + dependencies: + function-bind: ^1.1.2 + get-intrinsic: ^1.2.1 + set-function-length: ^1.1.1 + checksum: 449e83ecbd4ba48e7eaac5af26fea3b50f8f6072202c2dd7c5a6e7a6308f2421abe5e13a3bbd55221087f76320c5e09f25a8fdad1bab2b77c68ae74d92234ea5 languageName: node linkType: hard @@ -2043,18 +3657,36 @@ __metadata: languageName: node linkType: hard -"chai@npm:^4.3.7": - version: 4.3.8 - resolution: "chai@npm:4.3.8" +"caniuse-lite@npm:^1.0.30001541": + version: 1.0.30001563 + resolution: "caniuse-lite@npm:1.0.30001563" + checksum: c90a1e6efc72fc73ad4a756011242211406883b36dde3a01726e7246281dcbceaf78e1ee61d1298624c4a69cf81c12b41e8d2a2f1b7c89ed84c9333026a0bfbd + languageName: node + linkType: hard + +"chai@npm:^4.3.10": + version: 4.3.10 + resolution: "chai@npm:4.3.10" dependencies: assertion-error: ^1.1.0 - check-error: ^1.0.2 - deep-eql: ^4.1.2 - get-func-name: ^2.0.0 - loupe: ^2.3.1 + check-error: ^1.0.3 + deep-eql: ^4.1.3 + get-func-name: ^2.0.2 + loupe: ^2.3.6 pathval: ^1.1.1 - type-detect: ^4.0.5 - checksum: 29e0984ed13308319cadc35437c8ef0a3e271544d226c991bf7e3b6d771bf89707321669e11d05e362bc0ad0bd26585079b989d1032f3c106e3bb95d7f079cce + type-detect: ^4.0.8 + checksum: 536668c60a0d985a0fbd94418028e388d243a925d7c5e858c7443e334753511614a3b6a124bac9ca077dfc4c37acc367d62f8c294960f440749536dc181dfc6d + languageName: node + linkType: hard + +"chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: ^3.2.1 + escape-string-regexp: ^1.0.5 + supports-color: ^5.3.0 + checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 languageName: node linkType: hard @@ -2078,14 +3710,16 @@ __metadata: languageName: node linkType: hard -"check-error@npm:^1.0.2": - version: 1.0.2 - resolution: "check-error@npm:1.0.2" - checksum: d9d106504404b8addd1ee3f63f8c0eaa7cd962a1a28eb9c519b1c4a1dc7098be38007fc0060f045ee00f075fbb7a2a4f42abcf61d68323677e11ab98dc16042e +"check-error@npm:^1.0.3": + version: 1.0.3 + resolution: "check-error@npm:1.0.3" + dependencies: + get-func-name: ^2.0.2 + checksum: e2131025cf059b21080f4813e55b3c480419256914601750b0fee3bd9b2b8315b531e551ef12560419b8b6d92a3636511322752b1ce905703239e7cc451b6399 languageName: node linkType: hard -"chokidar@npm:^3.5.1, chokidar@npm:^3.5.3": +"chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" dependencies: @@ -2108,22 +3742,26 @@ __metadata: version: 0.0.0-use.local resolution: "chopsticks-monorepo@workspace:." dependencies: - "@swc/core": ^1.3.78 - "@types/node": ^20.5.1 + "@swc/core": ^1.3.96 + "@types/node": ^20.9.0 "@types/prettier": ^3.0.0 - "@typescript-eslint/eslint-plugin": ^6.4.0 - "@typescript-eslint/parser": ^6.4.0 - eslint: ^8.47.0 + "@typescript-eslint/eslint-plugin": ^6.10.0 + "@typescript-eslint/parser": ^6.10.0 + eslint: ^8.53.0 eslint-config-prettier: ^9.0.0 - eslint-import-resolver-typescript: ^3.6.0 - eslint-plugin-import: ^2.28.1 + eslint-import-resolver-typescript: ^3.6.1 + eslint-plugin-import: ^2.29.0 eslint-plugin-sort-imports-es6-autofix: ^0.6.0 husky: ^8.0.3 - prettier: ^3.0.2 - typescript: ^5.1.6 - unplugin-swc: ^1.3.2 - vite-tsconfig-paths: ^4.2.0 - vitest: ^0.34.2 + prettier: ^3.0.3 + ts-node: ^10.9.1 + typedoc: ^0.25.3 + typedoc-plugin-markdown: ^3.17.1 + typescript: ^5.2.2 + unplugin-swc: ^1.4.3 + vite-tsconfig-paths: ^4.2.1 + vitepress: ^1.0.0-rc.23 + vitest: ^0.34.6 wasm-pack: ^0.12.1 languageName: unknown linkType: soft @@ -2190,6 +3828,31 @@ __metadata: languageName: node linkType: hard +"clone-response@npm:^1.0.2": + version: 1.0.3 + resolution: "clone-response@npm:1.0.3" + dependencies: + mimic-response: ^1.0.0 + checksum: 4e671cac39b11c60aa8ba0a450657194a5d6504df51bca3fac5b3bd0145c4f8e8464898f87c8406b83232e3bc5cca555f51c1f9c8ac023969ebfbf7f6bdabb2e + languageName: node + linkType: hard + +"clsx@npm:^2.0.0": + version: 2.0.0 + resolution: "clsx@npm:2.0.0" + checksum: a2cfb2351b254611acf92faa0daf15220f4cd648bdf96ce369d729813b85336993871a4bf6978ddea2b81b5a130478339c20d9d0b5c6fc287e5147f0c059276e + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: 1.1.3 + checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 + languageName: node + linkType: hard + "color-convert@npm:^2.0.1": version: 2.0.1 resolution: "color-convert@npm:2.0.1" @@ -2199,6 +3862,13 @@ __metadata: languageName: node linkType: hard +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + "color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" @@ -2231,6 +3901,20 @@ __metadata: languageName: node linkType: hard +"comlink@npm:^4.4.1": + version: 4.4.1 + resolution: "comlink@npm:4.4.1" + checksum: 16d58a8f590087fc45432e31d6c138308dfd4b75b89aec0b7f7bb97ad33d810381bd2b1e608a1fb2cf05979af9cbfcdcaf1715996d5fcf77aeb013b6da3260af + languageName: node + linkType: hard + +"commander@npm:^7.1.0": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc + languageName: node + linkType: hard + "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -2255,6 +3939,42 @@ __metadata: languageName: node linkType: hard +"content-disposition@npm:^0.5.4": + version: 0.5.4 + resolution: "content-disposition@npm:0.5.4" + dependencies: + safe-buffer: 5.2.1 + checksum: afb9d545e296a5171d7574fcad634b2fdf698875f4006a9dd04a3e1333880c5c0c98d47b560d01216fb6505a54a2ba6a843ee3a02ec86d7e911e8315255f56c3 + languageName: node + linkType: hard + +"convert-source-map@npm:^1.5.0": + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 + languageName: node + linkType: hard + +"cosmiconfig@npm:^7.0.0": + version: 7.1.0 + resolution: "cosmiconfig@npm:7.1.0" + dependencies: + "@types/parse-json": ^4.0.0 + import-fresh: ^3.2.1 + parse-json: ^5.0.0 + path-type: ^4.0.0 + yaml: ^1.10.0 + checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f + languageName: node + linkType: hard + "create-ecdh@npm:^4.0.0": version: 4.0.4 resolution: "create-ecdh@npm:4.0.4" @@ -2299,7 +4019,18 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2": +"cross-spawn@npm:^5.0.1": + version: 5.1.0 + resolution: "cross-spawn@npm:5.1.0" + dependencies: + lru-cache: ^4.0.1 + shebang-command: ^1.2.0 + which: ^1.2.9 + checksum: 726939c9954fc70c20e538923feaaa33bebc253247d13021737c3c7f68cdc3e0a57f720c0fe75057c0387995349f3f12e20e9bfdbf12274db28019c7ea4ec166 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" dependencies: @@ -2329,6 +4060,13 @@ __metadata: languageName: node linkType: hard +"csstype@npm:^3.0.2, csstype@npm:^3.1.2": + version: 3.1.2 + resolution: "csstype@npm:3.1.2" + checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 + languageName: node + linkType: hard + "data-uri-to-buffer@npm:^4.0.0": version: 4.0.1 resolution: "data-uri-to-buffer@npm:4.0.1" @@ -2373,7 +4111,16 @@ __metadata: languageName: node linkType: hard -"deep-eql@npm:^4.1.2": +"decompress-response@npm:^6.0.0": + version: 6.0.0 + resolution: "decompress-response@npm:6.0.0" + dependencies: + mimic-response: ^3.1.0 + checksum: d377cf47e02d805e283866c3f50d3d21578b779731e8c5072d6ce8c13cc31493db1c2f6784da9d1d5250822120cefa44f1deab112d5981015f2e17444b763812 + languageName: node + linkType: hard + +"deep-eql@npm:^4.1.3": version: 4.1.3 resolution: "deep-eql@npm:4.1.3" dependencies: @@ -2389,13 +4136,32 @@ __metadata: languageName: node linkType: hard +"defer-to-connect@npm:^2.0.0": + version: 2.0.1 + resolution: "defer-to-connect@npm:2.0.1" + checksum: 8a9b50d2f25446c0bfefb55a48e90afd58f85b21bcf78e9207cd7b804354f6409032a1705c2491686e202e64fc05f147aa5aa45f9aa82627563f045937f5791b + languageName: node + linkType: hard + +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.1": + version: 1.1.1 + resolution: "define-data-property@npm:1.1.1" + dependencies: + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: a29855ad3f0630ea82e3c5012c812efa6ca3078d5c2aa8df06b5f597c1cde6f7254692df41945851d903e05a1668607b6d34e778f402b9ff9ffb38111f1a3f0d + languageName: node + linkType: hard + "define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": - version: 1.2.0 - resolution: "define-properties@npm:1.2.0" + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" dependencies: + define-data-property: ^1.0.1 has-property-descriptors: ^1.0.0 object-keys: ^1.1.1 - checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 languageName: node linkType: hard @@ -2496,6 +4262,16 @@ __metadata: languageName: node linkType: hard +"dom-helpers@npm:^5.0.1": + version: 5.2.1 + resolution: "dom-helpers@npm:5.2.1" + dependencies: + "@babel/runtime": ^7.8.7 + csstype: ^3.0.2 + checksum: 863ba9e086f7093df3376b43e74ce4422571d404fc9828bf2c56140963d5edf0e56160f9b2f3bb61b282c07f8fc8134f023c98fd684bddcb12daf7b0f14d951c + languageName: node + linkType: hard + "dotenv@npm:^16.0.3, dotenv@npm:^16.3.1": version: 16.3.1 resolution: "dotenv@npm:16.3.1" @@ -2503,15 +4279,6 @@ __metadata: languageName: node linkType: hard -"dynamic-dedupe@npm:^0.3.0": - version: 0.3.0 - resolution: "dynamic-dedupe@npm:0.3.0" - dependencies: - xtend: ^4.0.0 - checksum: 5178b99ad30a59234c63b38b453183cfd0a6cb7acbe7b94b7aea9bf0f75376fdaab6e2ea7922931cfc0152390ccb20bd024d8d80b4fc8c3c3255a2fcadf2cafb - languageName: node - linkType: hard - "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -2519,7 +4286,14 @@ __metadata: languageName: node linkType: hard -"elliptic@npm:^6.5.3": +"electron-to-chromium@npm:^1.4.535": + version: 1.4.587 + resolution: "electron-to-chromium@npm:1.4.587" + checksum: 86d06fd6074bdfd0e726eb5809067d826b7275ac3417dc9caa651b467919231450b7892329c02b857d8f62c5353738e243796639a8b21ede1acc0f8f95ab37fb + languageName: node + linkType: hard + +"elliptic@npm:^6.5.3, elliptic@npm:^6.5.4": version: 6.5.4 resolution: "elliptic@npm:6.5.4" dependencies: @@ -2590,25 +4364,34 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4, es-abstract@npm:^1.21.2": - version: 1.22.1 - resolution: "es-abstract@npm:1.22.1" +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: ^0.2.1 + checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 + languageName: node + linkType: hard + +"es-abstract@npm:^1.22.1": + version: 1.22.3 + resolution: "es-abstract@npm:1.22.3" dependencies: array-buffer-byte-length: ^1.0.0 - arraybuffer.prototype.slice: ^1.0.1 + arraybuffer.prototype.slice: ^1.0.2 available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 + call-bind: ^1.0.5 es-set-tostringtag: ^2.0.1 es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.5 - get-intrinsic: ^1.2.1 + function.prototype.name: ^1.1.6 + get-intrinsic: ^1.2.2 get-symbol-description: ^1.0.0 globalthis: ^1.0.3 gopd: ^1.0.1 - has: ^1.0.3 has-property-descriptors: ^1.0.0 has-proto: ^1.0.1 has-symbols: ^1.0.3 + hasown: ^2.0.0 internal-slot: ^1.0.5 is-array-buffer: ^3.0.2 is-callable: ^1.2.7 @@ -2616,44 +4399,44 @@ __metadata: is-regex: ^1.1.4 is-shared-array-buffer: ^1.0.2 is-string: ^1.0.7 - is-typed-array: ^1.1.10 + is-typed-array: ^1.1.12 is-weakref: ^1.0.2 - object-inspect: ^1.12.3 + object-inspect: ^1.13.1 object-keys: ^1.1.1 object.assign: ^4.1.4 - regexp.prototype.flags: ^1.5.0 - safe-array-concat: ^1.0.0 + regexp.prototype.flags: ^1.5.1 + safe-array-concat: ^1.0.1 safe-regex-test: ^1.0.0 - string.prototype.trim: ^1.2.7 - string.prototype.trimend: ^1.0.6 - string.prototype.trimstart: ^1.0.6 + string.prototype.trim: ^1.2.8 + string.prototype.trimend: ^1.0.7 + string.prototype.trimstart: ^1.0.7 typed-array-buffer: ^1.0.0 typed-array-byte-length: ^1.0.0 typed-array-byte-offset: ^1.0.0 typed-array-length: ^1.0.4 unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.10 - checksum: 614e2c1c3717cb8d30b6128ef12ea110e06fd7d75ad77091ca1c5dbfb00da130e62e4bbbbbdda190eada098a22b27fe0f99ae5a1171dac2c8663b1e8be8a3a9b + which-typed-array: ^1.1.13 + checksum: b1bdc962856836f6e72be10b58dc128282bdf33771c7a38ae90419d920fc3b36cc5d2b70a222ad8016e3fc322c367bf4e9e89fc2bc79b7e933c05b218e83d79a languageName: node linkType: hard "es-set-tostringtag@npm:^2.0.1": - version: 2.0.1 - resolution: "es-set-tostringtag@npm:2.0.1" + version: 2.0.2 + resolution: "es-set-tostringtag@npm:2.0.2" dependencies: - get-intrinsic: ^1.1.3 - has: ^1.0.3 + get-intrinsic: ^1.2.2 has-tostringtag: ^1.0.0 - checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884 + hasown: ^2.0.0 + checksum: afcec3a4c9890ae14d7ec606204858441c801ff84f312538e1d1ccf1e5493c8b17bd672235df785f803756472cb4f2d49b87bde5237aef33411e74c22f194e07 languageName: node linkType: hard "es-shim-unscopables@npm:^1.0.0": - version: 1.0.0 - resolution: "es-shim-unscopables@npm:1.0.0" + version: 1.0.2 + resolution: "es-shim-unscopables@npm:1.0.2" dependencies: - has: ^1.0.3 - checksum: 83e95cadbb6ee44d3644dfad60dcad7929edbc42c85e66c3e99aefd68a3a5c5665f2686885cddb47dfeabfd77bd5ea5a7060f2092a955a729bbd8834f0d86fa1 + hasown: ^2.0.0 + checksum: 432bd527c62065da09ed1d37a3f8e623c423683285e6188108286f4a1e8e164a5bcbfbc0051557c7d14633cd2a41ce24c7048e6bbb66a985413fd32f1be72626 languageName: node linkType: hard @@ -2675,32 +4458,32 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.18.10": - version: 0.18.20 - resolution: "esbuild@npm:0.18.20" - dependencies: - "@esbuild/android-arm": 0.18.20 - "@esbuild/android-arm64": 0.18.20 - "@esbuild/android-x64": 0.18.20 - "@esbuild/darwin-arm64": 0.18.20 - "@esbuild/darwin-x64": 0.18.20 - "@esbuild/freebsd-arm64": 0.18.20 - "@esbuild/freebsd-x64": 0.18.20 - "@esbuild/linux-arm": 0.18.20 - "@esbuild/linux-arm64": 0.18.20 - "@esbuild/linux-ia32": 0.18.20 - "@esbuild/linux-loong64": 0.18.20 - "@esbuild/linux-mips64el": 0.18.20 - "@esbuild/linux-ppc64": 0.18.20 - "@esbuild/linux-riscv64": 0.18.20 - "@esbuild/linux-s390x": 0.18.20 - "@esbuild/linux-x64": 0.18.20 - "@esbuild/netbsd-x64": 0.18.20 - "@esbuild/openbsd-x64": 0.18.20 - "@esbuild/sunos-x64": 0.18.20 - "@esbuild/win32-arm64": 0.18.20 - "@esbuild/win32-ia32": 0.18.20 - "@esbuild/win32-x64": 0.18.20 +"esbuild@npm:^0.19.3": + version: 0.19.5 + resolution: "esbuild@npm:0.19.5" + dependencies: + "@esbuild/android-arm": 0.19.5 + "@esbuild/android-arm64": 0.19.5 + "@esbuild/android-x64": 0.19.5 + "@esbuild/darwin-arm64": 0.19.5 + "@esbuild/darwin-x64": 0.19.5 + "@esbuild/freebsd-arm64": 0.19.5 + "@esbuild/freebsd-x64": 0.19.5 + "@esbuild/linux-arm": 0.19.5 + "@esbuild/linux-arm64": 0.19.5 + "@esbuild/linux-ia32": 0.19.5 + "@esbuild/linux-loong64": 0.19.5 + "@esbuild/linux-mips64el": 0.19.5 + "@esbuild/linux-ppc64": 0.19.5 + "@esbuild/linux-riscv64": 0.19.5 + "@esbuild/linux-s390x": 0.19.5 + "@esbuild/linux-x64": 0.19.5 + "@esbuild/netbsd-x64": 0.19.5 + "@esbuild/openbsd-x64": 0.19.5 + "@esbuild/sunos-x64": 0.19.5 + "@esbuild/win32-arm64": 0.19.5 + "@esbuild/win32-ia32": 0.19.5 + "@esbuild/win32-x64": 0.19.5 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -2748,7 +4531,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 5d253614e50cdb6ec22095afd0c414f15688e7278a7eb4f3720a6dd1306b0909cf431e7b9437a90d065a31b1c57be60130f63fe3e8d0083b588571f31ee6ec7b + checksum: 5a0227cf6ffffa3076714d88230af1dfdd2fc363d91bd712a81fb91230c315a395e2c9b7588eee62986aeebf4999804b9b1b59eeab8e2457184eb0056bfe20c8 languageName: node linkType: hard @@ -2759,6 +4542,13 @@ __metadata: languageName: node linkType: hard +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -2766,6 +4556,13 @@ __metadata: languageName: node linkType: hard +"escape-string-regexp@npm:^5.0.0": + version: 5.0.0 + resolution: "escape-string-regexp@npm:5.0.0" + checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e + languageName: node + linkType: hard + "eslint-config-prettier@npm:^9.0.0": version: 9.0.0 resolution: "eslint-config-prettier@npm:9.0.0" @@ -2777,7 +4574,7 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-node@npm:^0.3.7": +"eslint-import-resolver-node@npm:^0.3.9": version: 0.3.9 resolution: "eslint-import-resolver-node@npm:0.3.9" dependencies: @@ -2788,9 +4585,9 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-typescript@npm:^3.6.0": - version: 3.6.0 - resolution: "eslint-import-resolver-typescript@npm:3.6.0" +"eslint-import-resolver-typescript@npm:^3.6.1": + version: 3.6.1 + resolution: "eslint-import-resolver-typescript@npm:3.6.1" dependencies: debug: ^4.3.4 enhanced-resolve: ^5.12.0 @@ -2802,7 +4599,7 @@ __metadata: peerDependencies: eslint: "*" eslint-plugin-import: "*" - checksum: 57b1b3859149f847e0d4174ff979cf35362d60c951df047f01b96f4c3794a7ea0d4e1ec85be25e610d3706902c3acfb964a66b825c1a55e3ce3a124b9a7a13bd + checksum: 454fa0646533050fb57f13d27daf8c71f51b0bb9156d6a461290ccb8576d892209fcc6702a89553f3f5ea8e5b407395ca2e5de169a952c953685f1f7c46b4496 languageName: node linkType: hard @@ -2818,30 +4615,30 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.28.1": - version: 2.28.1 - resolution: "eslint-plugin-import@npm:2.28.1" +"eslint-plugin-import@npm:^2.29.0": + version: 2.29.0 + resolution: "eslint-plugin-import@npm:2.29.0" dependencies: - array-includes: ^3.1.6 - array.prototype.findlastindex: ^1.2.2 - array.prototype.flat: ^1.3.1 - array.prototype.flatmap: ^1.3.1 + array-includes: ^3.1.7 + array.prototype.findlastindex: ^1.2.3 + array.prototype.flat: ^1.3.2 + array.prototype.flatmap: ^1.3.2 debug: ^3.2.7 doctrine: ^2.1.0 - eslint-import-resolver-node: ^0.3.7 + eslint-import-resolver-node: ^0.3.9 eslint-module-utils: ^2.8.0 - has: ^1.0.3 - is-core-module: ^2.13.0 + hasown: ^2.0.0 + is-core-module: ^2.13.1 is-glob: ^4.0.3 minimatch: ^3.1.2 - object.fromentries: ^2.0.6 - object.groupby: ^1.0.0 - object.values: ^1.1.6 + object.fromentries: ^2.0.7 + object.groupby: ^1.0.1 + object.values: ^1.1.7 semver: ^6.3.1 tsconfig-paths: ^3.14.2 peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: e8ae6dd8f06d8adf685f9c1cfd46ac9e053e344a05c4090767e83b63a85c8421ada389807a39e73c643b9bff156715c122e89778169110ed68d6428e12607edf + checksum: 19ee541fb95eb7a796f3daebe42387b8d8262bbbcc4fd8a6e92f63a12035f3d2c6cb8bc0b6a70864fa14b1b50ed6b8e6eed5833e625e16cb6bb98b665beff269 languageName: node linkType: hard @@ -2871,17 +4668,18 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.47.0": - version: 8.47.0 - resolution: "eslint@npm:8.47.0" +"eslint@npm:^8.53.0": + version: 8.53.0 + resolution: "eslint@npm:8.53.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.2 - "@eslint/js": ^8.47.0 - "@humanwhocodes/config-array": ^0.11.10 + "@eslint/eslintrc": ^2.1.3 + "@eslint/js": 8.53.0 + "@humanwhocodes/config-array": ^0.11.13 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 + "@ungap/structured-clone": ^1.2.0 ajv: ^6.12.4 chalk: ^4.0.0 cross-spawn: ^7.0.2 @@ -2914,7 +4712,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 1988617f703eadc5c7540468d54dc8e5171cf2bb9483f6172799cd1ff54a9a5e4470f003784e8cef92687eaa14de37172732787040e67817581a20bcb9c15970 + checksum: 2da808655c7aa4b33f8970ba30d96b453c3071cc4d6cd60d367163430677e32ff186b65270816b662d29139283138bff81f28dddeb2e73265495245a316ed02c languageName: node linkType: hard @@ -2954,6 +4752,13 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^2.0.2": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -2968,13 +4773,6 @@ __metadata: languageName: node linkType: hard -"eventemitter3@npm:^4.0.7": - version: 4.0.7 - resolution: "eventemitter3@npm:4.0.7" - checksum: 1875311c42fcfe9c707b2712c32664a245629b42bb0a5a84439762dd0fd637fc54d078155ea83c2af9e0323c9ac13687e03cfba79b03af9f40c89b4960099374 - languageName: node - linkType: hard - "eventemitter3@npm:^5.0.1": version: 5.0.1 resolution: "eventemitter3@npm:5.0.1" @@ -3000,6 +4798,47 @@ __metadata: languageName: node linkType: hard +"execa@npm:^0.7.0": + version: 0.7.0 + resolution: "execa@npm:0.7.0" + dependencies: + cross-spawn: ^5.0.1 + get-stream: ^3.0.0 + is-stream: ^1.1.0 + npm-run-path: ^2.0.0 + p-finally: ^1.0.0 + signal-exit: ^3.0.0 + strip-eof: ^1.0.0 + checksum: dd70206d74b7217bf678ec9f04dddedc82f425df4c1d70e34c9f429d630ec407819e4bd42e3af2618981a4a3a1be000c9b651c0637be486cdab985160c20337c + languageName: node + linkType: hard + +"execa@npm:^5.0.0": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^6.0.0 + human-signals: ^2.1.0 + is-stream: ^2.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^4.0.1 + onetime: ^5.1.2 + signal-exit: ^3.0.3 + strip-final-newline: ^2.0.0 + checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 + languageName: node + linkType: hard + +"executable@npm:^4.1.0": + version: 4.1.1 + resolution: "executable@npm:4.1.1" + dependencies: + pify: ^2.2.0 + checksum: f01927ce59bccec804e171bf859a26e362c1f50aa9ebc69f7cafdcce3859d29d4b6267fd47237c18b0a1830614bd3f0ee14b7380d9bad18a4e7af9b5f0b6984f + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -3007,6 +4846,25 @@ __metadata: languageName: node linkType: hard +"ext-list@npm:^2.0.0": + version: 2.2.2 + resolution: "ext-list@npm:2.2.2" + dependencies: + mime-db: ^1.28.0 + checksum: 9b2426bea312e674eeced62c5f18407ab9a8653bbdfbde36492331c7973dab7fbf9e11d6c38605786168b42da333910314988097ca06eee61f1b9b57efae3f18 + languageName: node + linkType: hard + +"ext-name@npm:^5.0.0": + version: 5.0.0 + resolution: "ext-name@npm:5.0.0" + dependencies: + ext-list: ^2.0.0 + sort-keys-length: ^1.0.0 + checksum: f598269bd5de4295540ea7d6f8f6a01d82a7508f148b7700a05628ef6121648d26e6e5e942049e953b3051863df6b54bd8fe951e7877f185e34ace5d44370b33 + languageName: node + linkType: hard + "fast-copy@npm:^3.0.0": version: 3.0.1 resolution: "fast-copy@npm:3.0.1" @@ -3021,16 +4879,16 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1": - version: 3.3.1 - resolution: "fast-glob@npm:3.3.1" +"fast-glob@npm:^3.2.5, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" dependencies: "@nodelib/fs.stat": ^2.0.2 "@nodelib/fs.walk": ^1.2.3 glob-parent: ^5.1.2 merge2: ^1.3.0 micromatch: ^4.0.4 - checksum: b6f3add6403e02cf3a798bfbb1183d0f6da2afd368f27456010c0bc1f9640aea308243d4cb2c0ab142f618276e65ecb8be1661d7c62a7b4e5ba774b9ce5432e5 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 languageName: node linkType: hard @@ -3081,10 +4939,10 @@ __metadata: languageName: node linkType: hard -"fflate@npm:^0.8.0": - version: 0.8.0 - resolution: "fflate@npm:0.8.0" - checksum: 6215f95ee01d620a41e459247a7de7e7117dd23e78ef017c26b64c26f2a880a90eedc77675918bbf816d18cc990f6505cd71be933c67cc48cc1e7ebbff1589ea +"fflate@npm:^0.8.1": + version: 0.8.1 + resolution: "fflate@npm:0.8.1" + checksum: 7207e2d333243724485d2488095256b776184bd4545aa9967b655feaee5dc18e9525ed9b6d75f94cfd71d98fb285336f4902641683472f1d0c19a99137084cec languageName: node linkType: hard @@ -3097,6 +4955,35 @@ __metadata: languageName: node linkType: hard +"file-type@npm:^17.1.6": + version: 17.1.6 + resolution: "file-type@npm:17.1.6" + dependencies: + readable-web-to-node-stream: ^3.0.2 + strtok3: ^7.0.0-alpha.9 + token-types: ^5.0.0-alpha.2 + checksum: 797e0d155ecaf4b575d4569a0188bfed85af19d18cf3d93ec8bb66d797172a1fde9f13d56135c6a0b471cacd7ecc1adb0c9a45c6e3a19436f682a275d0be16cc + languageName: node + linkType: hard + +"filename-reserved-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "filename-reserved-regex@npm:3.0.0" + checksum: 1803e19ce64d7cb88ee5a1bd3ce282470a5c263987269222426d889049fc857e302284fa71937de9582eba7a9f39539557d45e0562f2fa51cade8efc68c65dd9 + languageName: node + linkType: hard + +"filenamify@npm:^5.0.2": + version: 5.1.1 + resolution: "filenamify@npm:5.1.1" + dependencies: + filename-reserved-regex: ^3.0.0 + strip-outer: ^2.0.0 + trim-repeated: ^2.0.0 + checksum: 55a7ed0858eb2655bb1bb1e945a59e3fb30ba4767f6924fa064ccd731bff07678aac3cb4f3899ae0e1621fe81d6472b5688232bb6afd4eeb989ade785fc1c6f1 + languageName: node + linkType: hard + "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -3106,6 +4993,13 @@ __metadata: languageName: node linkType: hard +"find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "find-root@npm:1.1.0" + checksum: b2a59fe4b6c932eef36c45a048ae8f93c85640212ebe8363164814990ee20f154197505965f3f4f102efc33bfb1cbc26fd17c4a2fc739ebc51b886b137cbefaf + languageName: node + linkType: hard + "find-up@npm:^5.0.0": version: 5.0.0 resolution: "find-up@npm:5.0.0" @@ -3116,30 +5010,49 @@ __metadata: languageName: node linkType: hard +"find-versions@npm:^5.0.0": + version: 5.1.0 + resolution: "find-versions@npm:5.1.0" + dependencies: + semver-regex: ^4.0.5 + checksum: 680bdb0081f631f7bfb6f0f8edcfa0b74ab8cabc82097a4527a37b0d042aabc56685bf459ff27991eab0baddc04eb8e3bba8a2869f5004ecf7cdd2779b6e51de + languageName: node + linkType: hard + "flat-cache@npm:^3.0.4": - version: 3.0.4 - resolution: "flat-cache@npm:3.0.4" + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" dependencies: - flatted: ^3.1.0 + flatted: ^3.2.9 + keyv: ^4.5.3 rimraf: ^3.0.2 - checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 + checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec languageName: node linkType: hard -"flatted@npm:^3.1.0": - version: 3.2.7 - resolution: "flatted@npm:3.2.7" - checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 +"flatted@npm:^3.2.9": + version: 3.2.9 + resolution: "flatted@npm:3.2.9" + checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 + languageName: node + linkType: hard + +"focus-trap@npm:^7.5.4": + version: 7.5.4 + resolution: "focus-trap@npm:7.5.4" + dependencies: + tabbable: ^6.2.0 + checksum: 9589ae0c8ad2f0bb0610c23e949571ef956424f1e7f7e1981c0d95ce518ea97b8bdd3d43b68c6113cbbcf35c9d36d521ffc2841610f7d5cc1746e2aa84faf578 languageName: node linkType: hard "follow-redirects@npm:^1.14.8, follow-redirects@npm:^1.15.0": - version: 1.15.2 - resolution: "follow-redirects@npm:1.15.2" + version: 1.15.3 + resolution: "follow-redirects@npm:1.15.3" peerDependenciesMeta: debug: optional: true - checksum: faa66059b66358ba65c234c2f2a37fcec029dc22775f35d9ad6abac56003268baf41e55f9ee645957b32c7d9f62baf1f0b906e68267276f54ec4b4c597c2b190 + checksum: 584da22ec5420c837bd096559ebfb8fe69d82512d5585004e36a3b4a6ef6d5905780e0c74508c7b72f907d1fa2b7bd339e613859e9c304d0dc96af2027fd0231 languageName: node linkType: hard @@ -3217,7 +5130,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:~2.3.2": +"fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": version: 2.3.3 resolution: "fsevents@npm:2.3.3" dependencies: @@ -3229,42 +5142,42 @@ __metadata: "fsevents@patch:fsevents@2.3.2#~builtin": version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7" + resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" dependencies: node-gyp: latest conditions: os=darwin languageName: node linkType: hard -"fsevents@patch:fsevents@~2.3.2#~builtin": +"fsevents@patch:fsevents@~2.3.2#~builtin, fsevents@patch:fsevents@~2.3.3#~builtin": version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=18f3a7" + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" dependencies: node-gyp: latest conditions: os=darwin languageName: node linkType: hard -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 languageName: node linkType: hard -"function.prototype.name@npm:^1.1.5": - version: 1.1.5 - resolution: "function.prototype.name@npm:1.1.5" +"function.prototype.name@npm:^1.1.6": + version: 1.1.6 + resolution: "function.prototype.name@npm:1.1.6" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.0 - functions-have-names: ^1.2.2 - checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + functions-have-names: ^1.2.3 + checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 languageName: node linkType: hard -"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": +"functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 @@ -3304,6 +5217,13 @@ __metadata: languageName: node linkType: hard +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec + languageName: node + linkType: hard + "get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" @@ -3311,22 +5231,45 @@ __metadata: languageName: node linkType: hard -"get-func-name@npm:^2.0.0": - version: 2.0.0 - resolution: "get-func-name@npm:2.0.0" - checksum: 8d82e69f3e7fab9e27c547945dfe5cc0c57fc0adf08ce135dddb01081d75684a03e7a0487466f478872b341d52ac763ae49e660d01ab83741f74932085f693c3 +"get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": + version: 2.0.2 + resolution: "get-func-name@npm:2.0.2" + checksum: 3f62f4c23647de9d46e6f76d2b3eafe58933a9b3830c60669e4180d6c601ce1b4aa310ba8366143f55e52b139f992087a9f0647274e8745621fa2af7e0acf13b languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": - version: 1.2.1 - resolution: "get-intrinsic@npm:1.2.1" +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2": + version: 1.2.2 + resolution: "get-intrinsic@npm:1.2.2" dependencies: - function-bind: ^1.1.1 - has: ^1.0.3 + function-bind: ^1.1.2 has-proto: ^1.0.1 has-symbols: ^1.0.3 - checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f + hasown: ^2.0.0 + checksum: 447ff0724df26829908dc033b62732359596fcf66027bc131ab37984afb33842d9cd458fd6cecadfe7eac22fd8a54b349799ed334cf2726025c921c7250e7417 + languageName: node + linkType: hard + +"get-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "get-stream@npm:3.0.0" + checksum: 36142f46005ed74ce3a45c55545ec4e7da8e243554179e345a786baf144e5c4a35fb7bdc49fadfa9f18bd08000589b6fe364abdadfc4e1eb0e1b9914a6bb9c56 + languageName: node + linkType: hard + +"get-stream@npm:^5.1.0": + version: 5.2.0 + resolution: "get-stream@npm:5.2.0" + dependencies: + pump: ^3.0.0 + checksum: 8bc1a23174a06b2b4ce600df38d6c98d2ef6d84e020c1ddad632ad75bac4e092eeb40e4c09e0761c35fc2dbc5e7fff5dab5e763a383582c4a167dd69a905bd12 + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad languageName: node linkType: hard @@ -3341,11 +5284,11 @@ __metadata: linkType: hard "get-tsconfig@npm:^4.5.0": - version: 4.7.0 - resolution: "get-tsconfig@npm:4.7.0" + version: 4.7.2 + resolution: "get-tsconfig@npm:4.7.2" dependencies: resolve-pkg-maps: ^1.0.0 - checksum: 44536925720acc2f133d26301d5626405d8fe33066625484ff309bb6fb7f3310dc0bb202f862805f21a791e38a9870c6dddb013d1443dd5d745d91ad1946254a + checksum: 172358903250eff0103943f816e8a4e51d29b8e5449058bdf7266714a908a48239f6884308bd3a6ff28b09f692b9533dbebfd183ab63e4e14f073cda91f1bca9 languageName: node linkType: hard @@ -3367,18 +5310,18 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2": - version: 10.3.3 - resolution: "glob@npm:10.3.3" +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.3.10 + resolution: "glob@npm:10.3.10" dependencies: foreground-child: ^3.1.0 - jackspeak: ^2.0.3 + jackspeak: ^2.3.5 minimatch: ^9.0.1 minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 path-scurry: ^1.10.1 bin: - glob: dist/cjs/src/bin.js - checksum: 29190d3291f422da0cb40b77a72fc8d2c51a36524e99b8bf412548b7676a6627489528b57250429612b6eec2e6fe7826d328451d3e694a9d15e575389308ec53 + glob: dist/esm/bin.mjs + checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 languageName: node linkType: hard @@ -3423,12 +5366,19 @@ __metadata: languageName: node linkType: hard +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e + languageName: node + linkType: hard + "globals@npm:^13.19.0": - version: 13.21.0 - resolution: "globals@npm:13.21.0" + version: 13.23.0 + resolution: "globals@npm:13.23.0" dependencies: type-fest: ^0.20.2 - checksum: 86c92ca8a04efd864c10852cd9abb1ebe6d447dcc72936783e66eaba1087d7dba5c9c3421a48d6ca722c319378754dbcc3f3f732dbe47592d7de908edf58a773 + checksum: 194c97cf8d1ef6ba59417234c2386549c4103b6e5f24b1ff1952de61a4753e5d2069435ba629de711a6480b1b1d114a98e2ab27f85e966d5a10c319c3bbd3dc3 languageName: node linkType: hard @@ -3471,6 +5421,25 @@ __metadata: languageName: node linkType: hard +"got@npm:^11.8.5": + version: 11.8.6 + resolution: "got@npm:11.8.6" + dependencies: + "@sindresorhus/is": ^4.0.0 + "@szmarczak/http-timer": ^4.0.5 + "@types/cacheable-request": ^6.0.1 + "@types/responselike": ^1.0.0 + cacheable-lookup: ^5.0.3 + cacheable-request: ^7.0.2 + decompress-response: ^6.0.0 + http2-wrapper: ^1.0.0-beta.5.2 + lowercase-keys: ^2.0.0 + p-cancelable: ^2.0.0 + responselike: ^2.0.0 + checksum: bbc783578a8d5030c8164ef7f57ce41b5ad7db2ed13371e1944bef157eeca5a7475530e07c0aaa71610d7085474d0d96222c9f4268d41db333a17e39b463f45d + languageName: node + linkType: hard + "graceful-fs@npm:4.2.10": version: 4.2.10 resolution: "graceful-fs@npm:4.2.10" @@ -3492,6 +5461,24 @@ __metadata: languageName: node linkType: hard +"handlebars@npm:^4.7.7": + version: 4.7.8 + resolution: "handlebars@npm:4.7.8" + dependencies: + minimist: ^1.2.5 + neo-async: ^2.6.2 + source-map: ^0.6.1 + uglify-js: ^3.1.4 + wordwrap: ^1.0.0 + dependenciesMeta: + uglify-js: + optional: true + bin: + handlebars: bin/handlebars + checksum: 00e68bb5c183fd7b8b63322e6234b5ac8fbb960d712cb3f25587d559c2951d9642df83c04a1172c918c41bcfc81bfbd7a7718bbce93b893e0135fc99edea93ff + languageName: node + linkType: hard + "has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" @@ -3499,6 +5486,13 @@ __metadata: languageName: node linkType: hard +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -3507,11 +5501,11 @@ __metadata: linkType: hard "has-property-descriptors@npm:^1.0.0": - version: 1.0.0 - resolution: "has-property-descriptors@npm:1.0.0" + version: 1.0.1 + resolution: "has-property-descriptors@npm:1.0.1" dependencies: - get-intrinsic: ^1.1.1 - checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb + get-intrinsic: ^1.2.2 + checksum: 2bcc6bf6ec6af375add4e4b4ef586e43674850a91ad4d46666d0b28ba8e1fd69e424c7677d24d60f69470ad0afaa2f3197f508b20b0bb7dd99a8ab77ffc4b7c4 languageName: node linkType: hard @@ -3545,15 +5539,6 @@ __metadata: languageName: node linkType: hard -"has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" - dependencies: - function-bind: ^1.1.1 - checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 - languageName: node - linkType: hard - "hash-base@npm:^3.0.0": version: 3.1.0 resolution: "hash-base@npm:3.1.0" @@ -3575,6 +5560,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.0": + version: 2.0.0 + resolution: "hasown@npm:2.0.0" + dependencies: + function-bind: ^1.1.2 + checksum: 6151c75ca12554565098641c98a40f4cc86b85b0fd5b6fe92360967e4605a4f9610f7757260b4e8098dd1c2ce7f4b095f2006fe72a570e3b6d2d28de0298c176 + languageName: node + linkType: hard + "help-me@npm:^4.0.1": version: 4.2.0 resolution: "help-me@npm:4.2.0" @@ -3603,7 +5597,16 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": +"hoist-non-react-statics@npm:^3.3.1": + version: 3.3.2 + resolution: "hoist-non-react-statics@npm:3.3.2" + dependencies: + react-is: ^16.7.0 + checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 @@ -3621,14 +5624,23 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" +"http-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "http-proxy-agent@npm:7.0.0" dependencies: - "@tootallnate/once": 2 - agent-base: 6 - debug: 4 - checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 + agent-base: ^7.1.0 + debug: ^4.3.4 + checksum: 48d4fac997917e15f45094852b63b62a46d0c8a4f0b9c6c23ca26d27b8df8d178bed88389e604745e748bd9a01f5023e25093722777f0593c3f052009ff438b6 + languageName: node + linkType: hard + +"http2-wrapper@npm:^1.0.0-beta.5.2": + version: 1.0.3 + resolution: "http2-wrapper@npm:1.0.3" + dependencies: + quick-lru: ^5.1.1 + resolve-alpn: ^1.0.0 + checksum: 74160b862ec699e3f859739101ff592d52ce1cb207b7950295bf7962e4aa1597ef709b4292c673bece9c9b300efad0559fc86c71b1409c7a1e02b7229456003e languageName: node linkType: hard @@ -3642,6 +5654,23 @@ __metadata: languageName: node linkType: hard +"https-proxy-agent@npm:^7.0.1": + version: 7.0.2 + resolution: "https-proxy-agent@npm:7.0.2" + dependencies: + agent-base: ^7.0.2 + debug: 4 + checksum: 088969a0dd476ea7a0ed0a2cf1283013682b08f874c3bc6696c83fa061d2c157d29ef0ad3eb70a2046010bb7665573b2388d10fdcb3e410a66995e5248444292 + languageName: node + linkType: hard + +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 + languageName: node + linkType: hard + "humanize-ms@npm:^1.2.1": version: 1.2.1 resolution: "humanize-ms@npm:1.2.1" @@ -3669,6 +5698,13 @@ __metadata: languageName: node linkType: hard +"idb@npm:^7.1.1": + version: 7.1.1 + resolution: "idb@npm:7.1.1" + checksum: 1973c28d53c784b177bdef9f527ec89ec239ec7cf5fcbd987dae75a16c03f5b7dfcc8c6d3285716fd0309dd57739805390bd9f98ce23b1b7d8849a3b52de8d56 + languageName: node + linkType: hard + "ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" @@ -3677,16 +5713,9 @@ __metadata: linkType: hard "ignore@npm:^5.2.0, ignore@npm:^5.2.4": - version: 5.2.4 - resolution: "ignore@npm:5.2.4" - checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef - languageName: node - linkType: hard - -"immediate@npm:~3.0.5": - version: 3.0.6 - resolution: "immediate@npm:3.0.6" - checksum: f9b3486477555997657f70318cc8d3416159f208bec4cca3ff3442fd266bc23f50f0c9bd8547e1371a6b5e82b821ec9a7044a4f7b944798b25aa3cc6d5e63e62 + version: 5.3.0 + resolution: "ignore@npm:5.3.0" + checksum: 2736da6621f14ced652785cb05d86301a66d70248597537176612bd0c8630893564bd5f6421f8806b09e8472e75c591ef01672ab8059c07c6eb2c09cefe04bf9 languageName: node linkType: hard @@ -3746,13 +5775,13 @@ __metadata: linkType: hard "internal-slot@npm:^1.0.5": - version: 1.0.5 - resolution: "internal-slot@npm:1.0.5" + version: 1.0.6 + resolution: "internal-slot@npm:1.0.6" dependencies: - get-intrinsic: ^1.2.0 - has: ^1.0.3 + get-intrinsic: ^1.2.2 + hasown: ^2.0.0 side-channel: ^1.0.4 - checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a + checksum: 7872454888047553ce97a3fa1da7cc054a28ec5400a9c2e9f4dbe4fe7c1d041cb8e8301467614b80d4246d50377aad2fb58860b294ed74d6700cc346b6f89549 languageName: node linkType: hard @@ -3774,6 +5803,13 @@ __metadata: languageName: node linkType: hard +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f + languageName: node + linkType: hard + "is-bigint@npm:^1.0.1": version: 1.0.4 resolution: "is-bigint@npm:1.0.4" @@ -3809,12 +5845,12 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0": - version: 2.13.0 - resolution: "is-core-module@npm:2.13.0" +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": + version: 2.13.1 + resolution: "is-core-module@npm:2.13.1" dependencies: - has: ^1.0.3 - checksum: 053ab101fb390bfeb2333360fd131387bed54e476b26860dc7f5a700bbf34a0ec4454f7c8c4d43e8a0030957e4b3db6e16d35e1890ea6fb654c833095e040355 + hasown: ^2.0.0 + checksum: 256559ee8a9488af90e4bad16f5583c6d59e92f0742e9e8bb4331e758521ee86b810b93bae44f390766ffbc518a0488b18d9dab7da9a5ff997d499efc9403f7c languageName: node linkType: hard @@ -3887,6 +5923,13 @@ __metadata: languageName: node linkType: hard +"is-plain-obj@npm:^1.0.0": + version: 1.1.0 + resolution: "is-plain-obj@npm:1.1.0" + checksum: 0ee04807797aad50859652a7467481816cbb57e5cc97d813a7dcd8915da8195dc68c436010bf39d195226cde6a2d352f4b815f16f26b7bf486a5754290629931 + languageName: node + linkType: hard + "is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" @@ -3906,6 +5949,20 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^1.1.0": + version: 1.1.0 + resolution: "is-stream@npm:1.1.0" + checksum: 063c6bec9d5647aa6d42108d4c59723d2bd4ae42135a2d4db6eadbd49b7ea05b750fd69d279e5c7c45cf9da753ad2c00d8978be354d65aa9f6bb434969c6a2ae + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + languageName: node + linkType: hard + "is-string@npm:^1.0.5, is-string@npm:^1.0.7": version: 1.0.7 resolution: "is-string@npm:1.0.7" @@ -3924,7 +5981,7 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.9": +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.12, is-typed-array@npm:^1.1.9": version: 1.1.12 resolution: "is-typed-array@npm:1.1.12" dependencies: @@ -3956,16 +6013,23 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^2.0.3": - version: 2.3.0 - resolution: "jackspeak@npm:2.3.0" +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + languageName: node + linkType: hard + +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" dependencies: "@isaacs/cliui": ^8.0.2 "@pkgjs/parseargs": ^0.11.0 dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: 71bf716f4b5793226d4aeb9761ebf2605ee093b59f91a61451d57d998dd64bbf2b54323fb749b8b2ae8b6d8a463de4f6e3fedab50108671f247bbc80195a6306 + checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 languageName: node linkType: hard @@ -3976,6 +6040,13 @@ __metadata: languageName: node linkType: hard +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 + languageName: node + linkType: hard + "js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" @@ -3987,6 +6058,29 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d + languageName: node + linkType: hard + +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f + languageName: node + linkType: hard + "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -4019,6 +6113,15 @@ __metadata: languageName: node linkType: hard +"json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 + languageName: node + linkType: hard + "jsonc-parser@npm:^3.2.0": version: 3.2.0 resolution: "jsonc-parser@npm:3.2.0" @@ -4038,6 +6141,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^4.0.0, keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: 3.0.1 + checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 + languageName: node + linkType: hard + "levn@npm:^0.4.1": version: 0.4.1 resolution: "levn@npm:0.4.1" @@ -4048,28 +6160,24 @@ __metadata: languageName: node linkType: hard -"lie@npm:3.1.1": - version: 3.1.1 - resolution: "lie@npm:3.1.1" - dependencies: - immediate: ~3.0.5 - checksum: 6da9f2121d2dbd15f1eca44c0c7e211e66a99c7b326ec8312645f3648935bc3a658cf0e9fa7b5f10144d9e2641500b4f55bd32754607c3de945b5f443e50ddd1 +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 languageName: node linkType: hard -"local-pkg@npm:^0.4.3": - version: 0.4.3 - resolution: "local-pkg@npm:0.4.3" - checksum: 7825aca531dd6afa3a3712a0208697aa4a5cd009065f32e3fb732aafcc42ed11f277b5ac67229222e96f4def55197171cdf3d5522d0381b489d2e5547b407d55 +"load-tsconfig@npm:^0.2.5": + version: 0.2.5 + resolution: "load-tsconfig@npm:0.2.5" + checksum: 631740833c4a7157bb7b6eeae6e1afb6a6fac7416b7ba91bd0944d5c5198270af2d68bf8347af3cc2ba821adc4d83ef98f66278bd263bc284c863a09ec441503 languageName: node linkType: hard -"localforage@npm:^1.10.0": - version: 1.10.0 - resolution: "localforage@npm:1.10.0" - dependencies: - lie: 3.1.1 - checksum: f2978b434dafff9bcb0d9498de57d97eba165402419939c944412e179cab1854782830b5ec196212560b22712d1dd03918939f59cf1d4fc1d756fca7950086cf +"local-pkg@npm:^0.4.3": + version: 0.4.3 + resolution: "local-pkg@npm:0.4.3" + checksum: 7825aca531dd6afa3a3712a0208697aa4a5cd009065f32e3fb732aafcc42ed11f277b5ac67229222e96f4def55197171cdf3d5522d0381b489d2e5547b407d55 languageName: node linkType: hard @@ -4096,12 +6204,58 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^2.3.1, loupe@npm:^2.3.6": - version: 2.3.6 - resolution: "loupe@npm:2.3.6" +"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: ^3.0.0 || ^4.0.0 + bin: + loose-envify: cli.js + checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + +"loupe@npm:^2.3.6": + version: 2.3.7 + resolution: "loupe@npm:2.3.7" + dependencies: + get-func-name: ^2.0.1 + checksum: 96c058ec7167598e238bb7fb9def2f9339215e97d6685d9c1e3e4bdb33d14600e11fe7a812cf0c003dfb73ca2df374f146280b2287cae9e8d989e9d7a69a203b + languageName: node + linkType: hard + +"lowercase-keys@npm:^2.0.0": + version: 2.0.0 + resolution: "lowercase-keys@npm:2.0.0" + checksum: 24d7ebd56ccdf15ff529ca9e08863f3c54b0b9d1edb97a3ae1af34940ae666c01a1e6d200707bce730a8ef76cb57cc10e65f245ecaaf7e6bc8639f2fb460ac23 + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.0.2 + resolution: "lru-cache@npm:10.0.2" + dependencies: + semver: ^7.3.5 + checksum: 83ad0e899d79f48574bdda131fe8157c6d65cbd073a6e78e0d1a3467a85dce1ef4d8dc9fd618a56c57a068271501c81d54471e13f84dd121e046b155ed061ed4 + languageName: node + linkType: hard + +"lru-cache@npm:^4.0.1": + version: 4.1.5 + resolution: "lru-cache@npm:4.1.5" + dependencies: + pseudomap: ^1.0.2 + yallist: ^2.1.2 + checksum: 4bb4b58a36cd7dc4dcec74cbe6a8f766a38b7426f1ff59d4cf7d82a2aa9b9565cd1cb98f6ff60ce5cd174524868d7bc9b7b1c294371851356066ca9ac4cf135a + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" dependencies: - get-func-name: ^2.0.0 - checksum: cc83f1b124a1df7384601d72d8d1f5fe95fd7a8185469fec48bb2e4027e45243949e7a013e8d91051a138451ff0552310c32aa9786e60b6a30d1e801bdc2163f + yallist: ^3.0.2 + checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb languageName: node linkType: hard @@ -4114,26 +6268,19 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.7.1": - version: 7.18.3 - resolution: "lru-cache@npm:7.18.3" - checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 - languageName: node - linkType: hard - -"lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.0.1 - resolution: "lru-cache@npm:10.0.1" - checksum: 06f8d0e1ceabd76bb6f644a26dbb0b4c471b79c7b514c13c6856113879b3bf369eb7b497dad4ff2b7e2636db202412394865b33c332100876d838ad1372f0181 +"lunr@npm:^2.3.9": + version: 2.3.9 + resolution: "lunr@npm:2.3.9" + checksum: 176719e24fcce7d3cf1baccce9dd5633cd8bdc1f41ebe6a180112e5ee99d80373fe2454f5d4624d437e5a8319698ca6837b9950566e15d2cae5f2a543a3db4b8 languageName: node linkType: hard -"magic-string@npm:^0.30.1": - version: 0.30.3 - resolution: "magic-string@npm:0.30.3" +"magic-string@npm:^0.30.1, magic-string@npm:^0.30.5": + version: 0.30.5 + resolution: "magic-string@npm:0.30.5" dependencies: "@jridgewell/sourcemap-codec": ^1.4.15 - checksum: a5a9ddf9bd3bf49a2de1048bf358464f1bda7b3cc1311550f4a0ba8f81a4070e25445d53a5ee28850161336f1bff3cf28aa3320c6b4aeff45ce3e689f300b2f3 + checksum: da10fecff0c0a7d3faf756913ce62bd6d5e7b0402be48c3b27bfd651b90e29677e279069a63b764bcdc1b8ecdcdb898f29a5c5ec510f2323e8d62ee057a6eb18 languageName: node linkType: hard @@ -4153,26 +6300,22 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^11.0.3": - version: 11.1.1 - resolution: "make-fetch-happen@npm:11.1.1" +"make-fetch-happen@npm:^13.0.0": + version: 13.0.0 + resolution: "make-fetch-happen@npm:13.0.0" dependencies: - agentkeepalive: ^4.2.1 - cacache: ^17.0.0 + "@npmcli/agent": ^2.0.0 + cacache: ^18.0.0 http-cache-semantics: ^4.1.1 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.0 is-lambda: ^1.0.1 - lru-cache: ^7.7.1 - minipass: ^5.0.0 + minipass: ^7.0.2 minipass-fetch: ^3.0.0 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 negotiator: ^0.6.3 promise-retry: ^2.0.1 - socks-proxy-agent: ^7.0.0 ssri: ^10.0.0 - checksum: 7268bf274a0f6dcf0343829489a4506603ff34bd0649c12058753900b0eb29191dce5dba12680719a5d0a983d3e57810f594a12f3c18494e93a1fbc6348a4540 + checksum: 7c7a6d381ce919dd83af398b66459a10e2fe8f4504f340d1d090d3fa3d1b0c93750220e1d898114c64467223504bd258612ba83efbc16f31b075cd56de24b4af languageName: node linkType: hard @@ -4200,6 +6343,22 @@ __metadata: languageName: node linkType: hard +"mark.js@npm:8.11.1": + version: 8.11.1 + resolution: "mark.js@npm:8.11.1" + checksum: aa6b9ae1c67245348d5b7abd253ef2acd6bb05c6be358d7d192416d964e42665fc10e0e865591c6f93ab9b57e8da1f23c23216e8ebddb580905ea7a0c0df15d4 + languageName: node + linkType: hard + +"marked@npm:^4.3.0": + version: 4.3.0 + resolution: "marked@npm:4.3.0" + bin: + marked: bin/marked.js + checksum: 0db6817893952c3ec710eb9ceafb8468bf5ae38cb0f92b7b083baa13d70b19774674be04db5b817681fa7c5c6a088f61300815e4dd75a59696f4716ad69f6260 + languageName: node + linkType: hard + "matcher@npm:^3.0.0": version: 3.0.0 resolution: "matcher@npm:3.0.0" @@ -4220,6 +6379,13 @@ __metadata: languageName: node linkType: hard +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + languageName: node + linkType: hard + "merge2@npm:^1.3.0, merge2@npm:^1.4.1": version: 1.4.1 resolution: "merge2@npm:1.4.1" @@ -4249,7 +6415,7 @@ __metadata: languageName: node linkType: hard -"mime-db@npm:1.52.0": +"mime-db@npm:1.52.0, mime-db@npm:^1.28.0": version: 1.52.0 resolution: "mime-db@npm:1.52.0" checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f @@ -4265,6 +6431,27 @@ __metadata: languageName: node linkType: hard +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + languageName: node + linkType: hard + +"mimic-response@npm:^1.0.0": + version: 1.0.1 + resolution: "mimic-response@npm:1.0.1" + checksum: 034c78753b0e622bc03c983663b1cdf66d03861050e0c8606563d149bc2b02d63f62ce4d32be4ab50d0553ae0ffe647fc34d1f5281184c6e1e8cf4d85e8d9823 + languageName: node + linkType: hard + +"mimic-response@npm:^3.1.0": + version: 3.1.0 + resolution: "mimic-response@npm:3.1.0" + checksum: 25739fee32c17f433626bf19f016df9036b75b3d84a3046c7d156e72ec963dd29d7fc8a302f55a3d6c5a4ff24259676b15d915aad6480815a969ff2ec0836867 + languageName: node + linkType: hard + "minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": version: 1.0.1 resolution: "minimalistic-assert@npm:1.0.1" @@ -4297,7 +6484,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.1": +"minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": version: 9.0.3 resolution: "minimatch@npm:9.0.3" dependencies: @@ -4306,7 +6493,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.6": +"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 @@ -4395,10 +6582,17 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.3": - version: 7.0.3 - resolution: "minipass@npm:7.0.3" - checksum: 6f1614f5b5b55568a46bca5fec0e7c46dac027691db27d0e1923a8192866903144cd962ac772c0e9f89b608ea818b702709c042bce98e190d258847d85461531 +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 + languageName: node + linkType: hard + +"minisearch@npm:^6.2.0": + version: 6.2.0 + resolution: "minisearch@npm:6.2.0" + checksum: e52d8f4e363a47e85be6d609573b534796da23dca66a96b21e3d7a9043a12ab18fffc7cf45aa9f7b68059ad1768b2d1454eef370491541a19ba33e2f94556117 languageName: node linkType: hard @@ -4431,21 +6625,21 @@ __metadata: linkType: hard "mlly@npm:^1.2.0, mlly@npm:^1.4.0": - version: 1.4.0 - resolution: "mlly@npm:1.4.0" + version: 1.4.2 + resolution: "mlly@npm:1.4.2" dependencies: - acorn: ^8.9.0 + acorn: ^8.10.0 pathe: ^1.1.1 pkg-types: ^1.0.3 - ufo: ^1.1.2 - checksum: ebf2e2b5cfb4c6e45e8d0bbe82710952247023f12626cb0997c41b1bb6e57c8b6fc113aa709228ad511382ab0b4eebaab759806be0578093b3635d3e940bd63b + ufo: ^1.3.0 + checksum: ad0813eca133e59ac03b356b87deea57da96083dce7dda58a8eeb2dce92b7cc2315bedd9268f3ff8e98effe1867ddb1307486d4c5cd8be162daa8e0fa0a98ed4 languageName: node linkType: hard -"mock-socket@npm:^9.2.1": - version: 9.2.1 - resolution: "mock-socket@npm:9.2.1" - checksum: daf07689563163dbcefbefe23b2a9784a75d0af31706f23ad535c6ab2abbcdefa2e91acddeb50a3c39009139e47a8f909cbb38e8137452193ccb9331637fee3e +"mock-socket@npm:^9.3.1": + version: 9.3.1 + resolution: "mock-socket@npm:9.3.1" + checksum: cb2dde4fc5dde280dd5ccb78eaaa223382ee16437f46b86558017655584ad08c22e733bde2dd5cc86927def506b6caeb0147e3167b9a62d70d5cf19d44103853 languageName: node linkType: hard @@ -4475,11 +6669,11 @@ __metadata: linkType: hard "nanoid@npm:^3.3.6": - version: 3.3.6 - resolution: "nanoid@npm:3.3.6" + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" bin: nanoid: bin/nanoid.cjs - checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 languageName: node linkType: hard @@ -4497,15 +6691,21 @@ __metadata: languageName: node linkType: hard -"nock@npm:^13.3.1": - version: 13.3.3 - resolution: "nock@npm:13.3.3" +"neo-async@npm:^2.6.2": + version: 2.6.2 + resolution: "neo-async@npm:2.6.2" + checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 + languageName: node + linkType: hard + +"nock@npm:^13.3.4": + version: 13.3.8 + resolution: "nock@npm:13.3.8" dependencies: debug: ^4.1.0 json-stringify-safe: ^5.0.1 - lodash: ^4.17.21 propagate: ^2.0.0 - checksum: e3e4f0fb777ac63d74f89bbb7aebe8e815b891b64ac71983d91686f725fdab856fe189cf2fe23d4add9f5dd5da53f3568106a61116a771ce0f4ed0f5ad7b035b + checksum: 98f7d9d1c6b4fad560d7f1033705f9a0318e288060c10e36973d1798d6c824fee1f23a9ecbb1118bf70068f58bb04eaa50c5d046f5cf0ceaf4a2dc76fe7a82b2 languageName: node linkType: hard @@ -4571,26 +6771,40 @@ __metadata: linkType: hard "node-gyp@npm:latest": - version: 9.4.0 - resolution: "node-gyp@npm:9.4.0" + version: 10.0.1 + resolution: "node-gyp@npm:10.0.1" dependencies: env-paths: ^2.2.0 exponential-backoff: ^3.1.1 - glob: ^7.1.4 + glob: ^10.3.10 graceful-fs: ^4.2.6 - make-fetch-happen: ^11.0.3 - nopt: ^6.0.0 - npmlog: ^6.0.0 - rimraf: ^3.0.2 + make-fetch-happen: ^13.0.0 + nopt: ^7.0.0 + proc-log: ^3.0.0 semver: ^7.3.5 tar: ^6.1.2 - which: ^2.0.2 + which: ^4.0.0 bin: node-gyp: bin/node-gyp.js - checksum: 78b404e2e0639d64e145845f7f5a3cb20c0520cdaf6dda2f6e025e9b644077202ea7de1232396ba5bde3fee84cdc79604feebe6ba3ec84d464c85d407bb5da99 + checksum: 60a74e66d364903ce02049966303a57f898521d139860ac82744a5fdd9f7b7b3b61f75f284f3bfe6e6add3b8f1871ce305a1d41f775c7482de837b50c792223f + languageName: node + linkType: hard + +"node-releases@npm:^2.0.13": + version: 2.0.13 + resolution: "node-releases@npm:2.0.13" + checksum: 17ec8f315dba62710cae71a8dad3cd0288ba943d2ece43504b3b1aa8625bf138637798ab470b1d9035b0545996f63000a8a926e0f6d35d0996424f8b6d36dda3 languageName: node linkType: hard +"node-test-8fbed1@workspace:packages/node-test": + version: 0.0.0-use.local + resolution: "node-test-8fbed1@workspace:packages/node-test" + dependencies: + "@tanssi/chopsticks": "workspace:*" + languageName: unknown + linkType: soft + "nopt@npm:^5.0.0": version: 5.0.0 resolution: "nopt@npm:5.0.0" @@ -4602,14 +6816,14 @@ __metadata: languageName: node linkType: hard -"nopt@npm:^6.0.0": - version: 6.0.0 - resolution: "nopt@npm:6.0.0" +"nopt@npm:^7.0.0": + version: 7.2.0 + resolution: "nopt@npm:7.2.0" dependencies: - abbrev: ^1.0.0 + abbrev: ^2.0.0 bin: nopt: bin/nopt.js - checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac + checksum: a9c0f57fb8cb9cc82ae47192ca2b7ef00e199b9480eed202482c962d61b59a7fbe7541920b2a5839a97b42ee39e288c0aed770e38057a608d7f579389dfde410 languageName: node linkType: hard @@ -4620,6 +6834,31 @@ __metadata: languageName: node linkType: hard +"normalize-url@npm:^6.0.1": + version: 6.1.0 + resolution: "normalize-url@npm:6.1.0" + checksum: 4a4944631173e7d521d6b80e4c85ccaeceb2870f315584fa30121f505a6dfd86439c5e3fdd8cd9e0e291290c41d0c3599f0cb12ab356722ed242584c30348e50 + languageName: node + linkType: hard + +"npm-run-path@npm:^2.0.0": + version: 2.0.2 + resolution: "npm-run-path@npm:2.0.2" + dependencies: + path-key: ^2.0.0 + checksum: acd5ad81648ba4588ba5a8effb1d98d2b339d31be16826a118d50f182a134ac523172101b82eab1d01cb4c2ba358e857d54cfafd8163a1ffe7bd52100b741125 + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: ^3.0.0 + checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 + languageName: node + linkType: hard + "npmlog@npm:^5.0.1": version: 5.0.1 resolution: "npmlog@npm:5.0.1" @@ -4651,10 +6890,10 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": - version: 1.12.3 - resolution: "object-inspect@npm:1.12.3" - checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db +"object-inspect@npm:^1.13.1, object-inspect@npm:^1.9.0": + version: 1.13.1 + resolution: "object-inspect@npm:1.13.1" + checksum: 7d9fa9221de3311dcb5c7c307ee5dc011cdd31dc43624b7c184b3840514e118e05ef0002be5388304c416c0eb592feb46e983db12577fc47e47d5752fbbfb61f languageName: node linkType: hard @@ -4677,44 +6916,44 @@ __metadata: languageName: node linkType: hard -"object.fromentries@npm:^2.0.6": - version: 2.0.6 - resolution: "object.fromentries@npm:2.0.6" +"object.fromentries@npm:^2.0.7": + version: 2.0.7 + resolution: "object.fromentries@npm:2.0.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 453c6d694180c0c30df451b60eaf27a5b9bca3fb43c37908fd2b78af895803dc631242bcf05582173afa40d8d0e9c96e16e8874b39471aa53f3ac1f98a085d85 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 7341ce246e248b39a431b87a9ddd331ff52a454deb79afebc95609f94b1f8238966cf21f52188f2a353f0fdf83294f32f1ebf1f7826aae915ebad21fd0678065 languageName: node linkType: hard -"object.groupby@npm:^1.0.0": - version: 1.0.0 - resolution: "object.groupby@npm:1.0.0" +"object.groupby@npm:^1.0.1": + version: 1.0.1 + resolution: "object.groupby@npm:1.0.1" dependencies: call-bind: ^1.0.2 define-properties: ^1.2.0 - es-abstract: ^1.21.2 + es-abstract: ^1.22.1 get-intrinsic: ^1.2.1 - checksum: 64b00b287d57580111c958e7ff375c9b61811fa356f2cf0d35372d43cab61965701f00fac66c19fd8f49c4dfa28744bee6822379c69a73648ad03e09fcdeae70 + checksum: d7959d6eaaba358b1608066fc67ac97f23ce6f573dc8fc661f68c52be165266fcb02937076aedb0e42722fdda0bdc0bbf74778196ac04868178888e9fd3b78b5 languageName: node linkType: hard -"object.values@npm:^1.1.6": - version: 1.1.6 - resolution: "object.values@npm:1.1.6" +"object.values@npm:^1.1.7": + version: 1.1.7 + resolution: "object.values@npm:1.1.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: f6fff9fd817c24cfd8107f50fb33061d81cd11bacc4e3dbb3852e9ff7692fde4dbce823d4333ea27cd9637ef1b6690df5fbb61f1ed314fa2959598dc3ae23d8e + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: f3e4ae4f21eb1cc7cebb6ce036d4c67b36e1c750428d7b7623c56a0db90edced63d08af8a316d81dfb7c41a3a5fa81b05b7cc9426e98d7da986b1682460f0777 languageName: node linkType: hard "on-exit-leak-free@npm:^2.1.0": - version: 2.1.0 - resolution: "on-exit-leak-free@npm:2.1.0" - checksum: 7334d98b87b0c89c9b69c747760b21196ff35afdedc4eaf1a0a3a02964463d7f6802481b120e4c8298967c74773ca7b914ab2eb3d9b279010eb7f67ac4960eed + version: 2.1.2 + resolution: "on-exit-leak-free@npm:2.1.2" + checksum: 6ce7acdc7b9ceb51cf029b5239cbf41937ee4c8dcd9d4e475e1777b41702564d46caa1150a744e00da0ac6d923ab83471646a39a4470f97481cf6e2d8d253c3f languageName: node linkType: hard @@ -4727,6 +6966,15 @@ __metadata: languageName: node linkType: hard +"onetime@npm:^5.1.2": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: ^2.1.0 + checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -4741,6 +6989,29 @@ __metadata: languageName: node linkType: hard +"os-filter-obj@npm:^2.0.0": + version: 2.0.0 + resolution: "os-filter-obj@npm:2.0.0" + dependencies: + arch: ^2.1.0 + checksum: 08808a109b2dba9be8686cc006e082a0f6595e6d87e2a30e4147cb1d22b62a30a6e5f4fd78226aee76d9158c84db3cea292adec02e6591452e93cb33bf5da877 + languageName: node + linkType: hard + +"p-cancelable@npm:^2.0.0": + version: 2.1.1 + resolution: "p-cancelable@npm:2.1.1" + checksum: 3dba12b4fb4a1e3e34524535c7858fc82381bbbd0f247cc32dedc4018592a3950ce66b106d0880b4ec4c2d8d6576f98ca885dc1d7d0f274d1370be20e9523ddf + languageName: node + linkType: hard + +"p-finally@npm:^1.0.0": + version: 1.0.0 + resolution: "p-finally@npm:1.0.0" + checksum: 93a654c53dc805dd5b5891bab16eb0ea46db8f66c4bfd99336ae929323b1af2b70a8b0654f8f1eae924b2b73d037031366d645f1fd18b3d30cbd15950cc4b1d4 + languageName: node + linkType: hard + "p-limit@npm:^3.0.2": version: 3.1.0 resolution: "p-limit@npm:3.1.0" @@ -4777,13 +7048,6 @@ __metadata: languageName: node linkType: hard -"pako@npm:^2.0.4": - version: 2.1.0 - resolution: "pako@npm:2.1.0" - checksum: 71666548644c9a4d056bcaba849ca6fd7242c6cf1af0646d3346f3079a1c7f4a66ffec6f7369ee0dc88f61926c10d6ab05da3e1fca44b83551839e89edd75a3e - languageName: node - linkType: hard - "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -4793,7 +7057,7 @@ __metadata: languageName: node linkType: hard -"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.5": +"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.6": version: 5.1.6 resolution: "parse-asn1@npm:5.1.6" dependencies: @@ -4806,6 +7070,18 @@ __metadata: languageName: node linkType: hard +"parse-json@npm:^5.0.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": ^7.0.0 + error-ex: ^1.3.1 + json-parse-even-better-errors: ^2.3.0 + lines-and-columns: ^1.1.6 + checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + languageName: node + linkType: hard + "parse5-htmlparser2-tree-adapter@npm:^6.0.0": version: 6.0.1 resolution: "parse5-htmlparser2-tree-adapter@npm:6.0.1" @@ -4850,7 +7126,14 @@ __metadata: languageName: node linkType: hard -"path-key@npm:^3.1.0": +"path-key@npm:^2.0.0": + version: 2.0.1 + resolution: "path-key@npm:2.0.1" + checksum: f7ab0ad42fe3fb8c7f11d0c4f849871e28fbd8e1add65c370e422512fc5887097b9cf34d09c1747d45c942a8c1e26468d6356e2df3f740bf177ab8ca7301ebfd + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 @@ -4908,6 +7191,13 @@ __metadata: languageName: node linkType: hard +"peek-readable@npm:^5.0.0": + version: 5.0.0 + resolution: "peek-readable@npm:5.0.0" + checksum: bef5ceb50586eb42e14efba274ac57ffe97f0ed272df9239ce029f688f495d9bf74b2886fa27847c706a9db33acda4b7d23bbd09a2d21eb4c2a54da915117414 + languageName: node + linkType: hard + "picocolors@npm:^1.0.0": version: 1.0.0 resolution: "picocolors@npm:1.0.0" @@ -4922,19 +7212,26 @@ __metadata: languageName: node linkType: hard -"pino-abstract-transport@npm:^1.0.0, pino-abstract-transport@npm:v1.0.0": - version: 1.0.0 - resolution: "pino-abstract-transport@npm:1.0.0" +"pify@npm:^2.2.0": + version: 2.3.0 + resolution: "pify@npm:2.3.0" + checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba + languageName: node + linkType: hard + +"pino-abstract-transport@npm:^1.0.0, pino-abstract-transport@npm:v1.1.0": + version: 1.1.0 + resolution: "pino-abstract-transport@npm:1.1.0" dependencies: readable-stream: ^4.0.0 split2: ^4.0.0 - checksum: 05dd0eda52dd99fd204b39fe7b62656744b63e863bc052cdd5105d25f226a236966d0a46e39a1ace4838f6e988c608837ff946d2d0bc92835ca7baa0a3bff8d8 + checksum: cc84caabee5647b5753ae484d5f63a1bca0f6e1791845e2db2b6d830a561c2b5dd1177720f68d78994c8a93aecc69f2729e6ac2bc871a1bf5bb4b0ec17210668 languageName: node linkType: hard -"pino-pretty@npm:^10.2.0": - version: 10.2.0 - resolution: "pino-pretty@npm:10.2.0" +"pino-pretty@npm:^10.2.3": + version: 10.2.3 + resolution: "pino-pretty@npm:10.2.3" dependencies: colorette: ^2.0.7 dateformat: ^4.6.3 @@ -4952,7 +7249,7 @@ __metadata: strip-json-comments: ^3.1.1 bin: pino-pretty: bin.js - checksum: 8e8220ab647d11e05349adde37aac116dab1a96ce479297820475b7e2246ea5e56e3764b625c5877821ae66dcea62bdda563cc49eccbd4628c80952998068f48 + checksum: 9182886855515000df2ef381762c69fc29dbdd9014a76839cc3d8a7a94ac96d4ce17423adb9ddd61eae78986bb0ff3a1d9e6e7aa55476c096a3dd4a0c89440e8 languageName: node linkType: hard @@ -4963,24 +7260,24 @@ __metadata: languageName: node linkType: hard -"pino@npm:^8.15.0": - version: 8.15.0 - resolution: "pino@npm:8.15.0" +"pino@npm:^8.16.1": + version: 8.16.2 + resolution: "pino@npm:8.16.2" dependencies: atomic-sleep: ^1.0.0 fast-redact: ^3.1.1 on-exit-leak-free: ^2.1.0 - pino-abstract-transport: v1.0.0 + pino-abstract-transport: v1.1.0 pino-std-serializers: ^6.0.0 process-warning: ^2.0.0 quick-format-unescaped: ^4.0.3 real-require: ^0.2.0 safe-stable-stringify: ^2.3.1 - sonic-boom: ^3.1.0 + sonic-boom: ^3.7.0 thread-stream: ^2.0.0 bin: pino: bin.js - checksum: 9a54d0757f0256201fad01346be1c18b0a4378704fa383df867189da12151d664d2bd18b1e53df70633fbff6c90fd3175228c0c971eaaa734939709cc1a0005b + checksum: 78d194112f09f82471ec7e0022bc114ddb833375d60236be40ac55bf8a8ae26b88c8780d54912687c7cd6d0321ba5b1a78ffa89c5e9d5855ef849c3b9273c7ab languageName: node linkType: hard @@ -4995,23 +7292,45 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.37.1": - version: 1.37.1 - resolution: "playwright-core@npm:1.37.1" +"playwright-core@npm:1.40.0": + version: 1.40.0 + resolution: "playwright-core@npm:1.40.0" bin: playwright-core: cli.js - checksum: 69f818da2230057584140d5b3af7778a4f4a822b5b18d133abfc5d259128becb943c343a2ddf6b0635277a69f28983e83e2bc3fce23595ececb1e410475b6368 + checksum: 57de5c91a4c404b120ed2af8541b21cdedcbc4f27477341157666d356bbee3b3fab8e61d020f0f450708fa2e8f6dc244b9224cb1985d5426e609cebed15af095 + languageName: node + linkType: hard + +"playwright@npm:1.40.0": + version: 1.40.0 + resolution: "playwright@npm:1.40.0" + dependencies: + fsevents: 2.3.2 + playwright-core: 1.40.0 + dependenciesMeta: + fsevents: + optional: true + bin: + playwright: cli.js + checksum: 7ba49e5376a6cfd1d32048dbdb2fd38e09182aa2e4619fdb23d3e6530fa6987f2f3fd34ad1d9d906fb4ec2da69ee7536eeb881982d60750fde809183caa607fc languageName: node linkType: hard -"postcss@npm:^8.4.27": - version: 8.4.28 - resolution: "postcss@npm:8.4.28" +"postcss@npm:^8.4.31": + version: 8.4.31 + resolution: "postcss@npm:8.4.31" dependencies: nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: f605c24a36f7e400bad379735fbfc893ccb8d293ad6d419bb824db77cdcb69f43d614ef35f9f7091f32ca588d130ec60dbcf53b366e6bf88a8a64bbeb3c05f6d + checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea + languageName: node + linkType: hard + +"preact@npm:^10.0.0": + version: 10.19.2 + resolution: "preact@npm:10.19.2" + checksum: fec27fa3f14ac2d7a5061818d0cf2973ffaece83126047a47e5a075aa8e40ca56b5fcebc36106ee9cf59be0aeb51f3d996760e158d2a2660b42cbfb2e71f37bf languageName: node linkType: hard @@ -5022,30 +7341,37 @@ __metadata: languageName: node linkType: hard -"prettier@npm:*, prettier@npm:^3.0.2": - version: 3.0.2 - resolution: "prettier@npm:3.0.2" +"prettier@npm:*, prettier@npm:^3.0.3": + version: 3.1.0 + resolution: "prettier@npm:3.1.0" bin: prettier: bin/prettier.cjs - checksum: 118b59ddb6c80abe2315ab6d0f4dd1b253be5cfdb20622fa5b65bb1573dcd362e6dd3dcf2711dd3ebfe64aecf7bdc75de8a69dc2422dcd35bdde7610586b677a + checksum: 44b556bd56f74d7410974fbb2418bb4e53a894d3e7b42f6f87779f69f27a6c272fa7fc27cec0118cd11730ef3246478052e002cbd87e9a253f9cd04a56aa7d9b languageName: node linkType: hard "pretty-format@npm:^29.5.0": - version: 29.6.3 - resolution: "pretty-format@npm:29.6.3" + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" dependencies: "@jest/schemas": ^29.6.3 ansi-styles: ^5.0.0 react-is: ^18.0.0 - checksum: 4e1c0db48e65571c22e80ff92123925ff8b3a2a89b71c3a1683cfde711004d492de32fe60c6bc10eea8bf6c678e5cbe544ac6c56cb8096e1eb7caf856928b1c4 + checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6 + languageName: node + linkType: hard + +"proc-log@npm:^3.0.0": + version: 3.0.0 + resolution: "proc-log@npm:3.0.0" + checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 languageName: node linkType: hard "process-warning@npm:^2.0.0": - version: 2.2.0 - resolution: "process-warning@npm:2.2.0" - checksum: 394ae451c2622ee7d014a7196d36658fc1a5d5cc9f3bfeb54aadd5b77fcfecc89a30a25db259ae76ff49fde3f3f3dd7031dcdfb4da2e5445dac795549352e5d0 + version: 2.3.0 + resolution: "process-warning@npm:2.3.0" + checksum: ee795f7fba5b289a3c15a9dfcde40c277efe75ac1ad63f9fb7851d3eb08d1939c67e310dc7ca2cc914f8293e2517cd60839e19d1c130f908b06c970a51a0d2a7 languageName: node linkType: hard @@ -5073,6 +7399,17 @@ __metadata: languageName: node linkType: hard +"prop-types@npm:^15.6.2, prop-types@npm:^15.8.1": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: ^1.4.0 + object-assign: ^4.1.1 + react-is: ^16.13.1 + checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 + languageName: node + linkType: hard + "propagate@npm:^2.0.0": version: 2.0.1 resolution: "propagate@npm:2.0.1" @@ -5094,6 +7431,13 @@ __metadata: languageName: node linkType: hard +"pseudomap@npm:^1.0.2": + version: 1.0.2 + resolution: "pseudomap@npm:1.0.2" + checksum: 856c0aae0ff2ad60881168334448e898ad7a0e45fe7386d114b150084254c01e200c957cf378378025df4e052c7890c5bd933939b0e0d2ecfcc1dc2f0b2991f5 + languageName: node + linkType: hard + "public-encrypt@npm:^4.0.0": version: 4.0.3 resolution: "public-encrypt@npm:4.0.3" @@ -5119,9 +7463,9 @@ __metadata: linkType: hard "punycode@npm:^2.1.0": - version: 2.3.0 - resolution: "punycode@npm:2.3.0" - checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 languageName: node linkType: hard @@ -5139,6 +7483,13 @@ __metadata: languageName: node linkType: hard +"quick-lru@npm:^5.1.1": + version: 5.1.1 + resolution: "quick-lru@npm:5.1.1" + checksum: a516faa25574be7947969883e6068dbe4aa19e8ef8e8e0fd96cddd6d36485e9106d85c0041a27153286b0770b381328f4072aa40d3b18a19f5f7d2b78b94b5ed + languageName: node + linkType: hard + "randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -5158,14 +7509,64 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^18.0.0": +"react-dom@npm:^18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + scheduler: ^0.23.0 + peerDependencies: + react: ^18.2.0 + checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + languageName: node + linkType: hard + +"react-is@npm:^16.13.1, react-is@npm:^16.7.0": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + languageName: node + linkType: hard + +"react-is@npm:^18.0.0, react-is@npm:^18.2.0": version: 18.2.0 resolution: "react-is@npm:18.2.0" checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e languageName: node linkType: hard -"readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0": +"react-refresh@npm:^0.14.0": + version: 0.14.0 + resolution: "react-refresh@npm:0.14.0" + checksum: dc69fa8c993df512f42dd0f1b604978ae89bd747c0ed5ec595c0cc50d535fb2696619ccd98ae28775cc01d0a7c146a532f0f7fb81dc22e1977c242a4912312f4 + languageName: node + linkType: hard + +"react-transition-group@npm:^4.4.5": + version: 4.4.5 + resolution: "react-transition-group@npm:4.4.5" + dependencies: + "@babel/runtime": ^7.5.5 + dom-helpers: ^5.0.1 + loose-envify: ^1.4.0 + prop-types: ^15.6.2 + peerDependencies: + react: ">=16.6.0" + react-dom: ">=16.6.0" + checksum: 75602840106aa9c6545149d6d7ae1502fb7b7abadcce70a6954c4b64a438ff1cd16fc77a0a1e5197cdd72da398f39eb929ea06f9005c45b132ed34e056ebdeb1 + languageName: node + linkType: hard + +"react@npm:^18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + languageName: node + linkType: hard + +"readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0, readable-stream@npm:^3.6.2": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -5189,6 +7590,15 @@ __metadata: languageName: node linkType: hard +"readable-web-to-node-stream@npm:^3.0.2": + version: 3.0.2 + resolution: "readable-web-to-node-stream@npm:3.0.2" + dependencies: + readable-stream: ^3.6.0 + checksum: 8c56cc62c68513425ddfa721954875b382768f83fa20e6b31e365ee00cbe7a3d6296f66f7f1107b16cd3416d33aa9f1680475376400d62a081a88f81f0ea7f9c + languageName: node + linkType: hard + "readdirp@npm:~3.6.0": version: 3.6.0 resolution: "readdirp@npm:3.6.0" @@ -5219,14 +7629,14 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.0": - version: 1.5.0 - resolution: "regexp.prototype.flags@npm:1.5.0" +"regexp.prototype.flags@npm:^1.5.1": + version: 1.5.1 + resolution: "regexp.prototype.flags@npm:1.5.1" dependencies: call-bind: ^1.0.2 define-properties: ^1.2.0 - functions-have-names: ^1.2.3 - checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 + set-function-name: ^2.0.0 + checksum: 869edff00288442f8d7fa4c9327f91d85f3b3acf8cbbef9ea7a220345cf23e9241b6def9263d2c1ebcf3a316b0aa52ad26a43a84aa02baca3381717b3e307f47 languageName: node linkType: hard @@ -5237,6 +7647,13 @@ __metadata: languageName: node linkType: hard +"resolve-alpn@npm:^1.0.0": + version: 1.2.1 + resolution: "resolve-alpn@npm:1.2.1" + checksum: f558071fcb2c60b04054c99aebd572a2af97ef64128d59bef7ab73bd50d896a222a056de40ffc545b633d99b304c259ea9d0c06830d5c867c34f0bfa60b8eae0 + languageName: node + linkType: hard + "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -5251,29 +7668,38 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.0.0, resolve@npm:^1.22.4": - version: 1.22.4 - resolution: "resolve@npm:1.22.4" +"resolve@npm:^1.19.0, resolve@npm:^1.22.4": + version: 1.22.8 + resolution: "resolve@npm:1.22.8" dependencies: is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 23f25174c2736ce24c6d918910e0d1f89b6b38fefa07a995dff864acd7863d59a7f049e691f93b4b2ee29696303390d921552b6d1b841ed4a8101f517e1d0124 + checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c languageName: node linkType: hard -"resolve@patch:resolve@^1.0.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin": - version: 1.22.4 - resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=07638b" +"resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin": + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" dependencies: is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: c45f2545fdc4d21883861b032789e20aa67a2f2692f68da320cc84d5724cd02f2923766c5354b3210897e88f1a7b3d6d2c7c22faeead8eed7078e4c783a444bc + checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 + languageName: node + linkType: hard + +"responselike@npm:^2.0.0": + version: 2.0.1 + resolution: "responselike@npm:2.0.1" + dependencies: + lowercase-keys: ^2.0.0 + checksum: b122535466e9c97b55e69c7f18e2be0ce3823c5d47ee8de0d9c0b114aa55741c6db8bfbfce3766a94d1272e61bfb1ebf0a15e9310ac5629fbb7446a861b4fd3a languageName: node linkType: hard @@ -5291,17 +7717,6 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^2.6.1": - version: 2.7.1 - resolution: "rimraf@npm:2.7.1" - dependencies: - glob: ^7.1.3 - bin: - rimraf: ./bin.js - checksum: cdc7f6eacb17927f2a075117a823e1c5951792c6498ebcce81ca8203454a811d4cf8900314154d3259bb8f0b42ab17f67396a8694a54cae3283326e57ad250cd - languageName: node - linkType: hard - "rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -5337,17 +7752,53 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.27.1": - version: 3.28.1 - resolution: "rollup@npm:3.28.1" - dependencies: +"rollup@npm:^4.2.0": + version: 4.4.1 + resolution: "rollup@npm:4.4.1" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.4.1 + "@rollup/rollup-android-arm64": 4.4.1 + "@rollup/rollup-darwin-arm64": 4.4.1 + "@rollup/rollup-darwin-x64": 4.4.1 + "@rollup/rollup-linux-arm-gnueabihf": 4.4.1 + "@rollup/rollup-linux-arm64-gnu": 4.4.1 + "@rollup/rollup-linux-arm64-musl": 4.4.1 + "@rollup/rollup-linux-x64-gnu": 4.4.1 + "@rollup/rollup-linux-x64-musl": 4.4.1 + "@rollup/rollup-win32-arm64-msvc": 4.4.1 + "@rollup/rollup-win32-ia32-msvc": 4.4.1 + "@rollup/rollup-win32-x64-msvc": 4.4.1 fsevents: ~2.3.2 dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true fsevents: optional: true bin: rollup: dist/bin/rollup - checksum: 1fcab0929c16130218447c76c19b56ccc0e677110552462297e3679188fc70185a6ec418cef8ce138ec9fb78fd5188537a3f5d28762788e8c88b12a7fb8ba0fb + checksum: 1d6a79ec13781eaeabb5ac715b00631c8141729d6b499961b070aff7f5d9877021766c2da3a5c79b5a1a8ec95a3039296c47704f7acd42c03d875ca51a58b42a languageName: node linkType: hard @@ -5369,19 +7820,19 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.0.0": - version: 1.0.0 - resolution: "safe-array-concat@npm:1.0.0" +"safe-array-concat@npm:^1.0.1": + version: 1.0.1 + resolution: "safe-array-concat@npm:1.0.1" dependencies: call-bind: ^1.0.2 - get-intrinsic: ^1.2.0 + get-intrinsic: ^1.2.1 has-symbols: ^1.0.3 isarray: ^2.0.5 - checksum: f43cb98fe3b566327d0c09284de2b15fb85ae964a89495c1b1a5d50c7c8ed484190f4e5e71aacc167e16231940079b326f2c0807aea633d47cc7322f40a6b57f + checksum: 001ecf1d8af398251cbfabaf30ed66e3855127fbceee178179524b24160b49d15442f94ed6c0db0b2e796da76bb05b73bf3cc241490ec9c2b741b41d33058581 languageName: node linkType: hard -"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 @@ -5413,6 +7864,15 @@ __metadata: languageName: node linkType: hard +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" + dependencies: + loose-envify: ^1.1.0 + checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + languageName: node + linkType: hard + "secure-json-parse@npm:^2.4.0": version: 2.7.0 resolution: "secure-json-parse@npm:2.7.0" @@ -5427,6 +7887,22 @@ __metadata: languageName: node linkType: hard +"semver-regex@npm:^4.0.5": + version: 4.0.5 + resolution: "semver-regex@npm:4.0.5" + checksum: b9e5c0573c4a997fb7e6e76321385d254797e86c8dba5e23f3cd8cf8f40b40414097a51514e5fead61dcb88ff10d3676355c01e2040f3c68f6c24bfd2073da2e + languageName: node + linkType: hard + +"semver-truncate@npm:^3.0.0": + version: 3.0.0 + resolution: "semver-truncate@npm:3.0.0" + dependencies: + semver: ^7.3.5 + checksum: d8c23812218ff147f512ac4830e86860a377dba8a9733ae97d816102aca33236fa1c44c06544727153fffb93d15d0e45c49b2c40a7964aa3671769e9aed2f3f9 + languageName: node + linkType: hard + "semver@npm:^6.0.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" @@ -5436,7 +7912,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.5.4": +"semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -5463,6 +7939,29 @@ __metadata: languageName: node linkType: hard +"set-function-length@npm:^1.1.1": + version: 1.1.1 + resolution: "set-function-length@npm:1.1.1" + dependencies: + define-data-property: ^1.1.1 + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: c131d7569cd7e110cafdfbfbb0557249b538477624dfac4fc18c376d879672fa52563b74029ca01f8f4583a8acb35bb1e873d573a24edb80d978a7ee607c6e06 + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.0": + version: 2.0.1 + resolution: "set-function-name@npm:2.0.1" + dependencies: + define-data-property: ^1.0.1 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.0 + checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 + languageName: node + linkType: hard + "sha.js@npm:^2.4.0, sha.js@npm:^2.4.11, sha.js@npm:^2.4.8": version: 2.4.11 resolution: "sha.js@npm:2.4.11" @@ -5475,6 +7974,15 @@ __metadata: languageName: node linkType: hard +"shebang-command@npm:^1.2.0": + version: 1.2.0 + resolution: "shebang-command@npm:1.2.0" + dependencies: + shebang-regex: ^1.0.0 + checksum: 9eed1750301e622961ba5d588af2212505e96770ec376a37ab678f965795e995ade7ed44910f5d3d3cb5e10165a1847f52d3348c64e146b8be922f7707958908 + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -5484,6 +7992,13 @@ __metadata: languageName: node linkType: hard +"shebang-regex@npm:^1.0.0": + version: 1.0.0 + resolution: "shebang-regex@npm:1.0.0" + checksum: 404c5a752cd40f94591dfd9346da40a735a05139dac890ffc229afba610854d8799aaa52f87f7e0c94c5007f2c6af55bdcaeb584b56691926c5eaf41dc8f1372 + languageName: node + linkType: hard + "shebang-regex@npm:^3.0.0": version: 3.0.0 resolution: "shebang-regex@npm:3.0.0" @@ -5491,6 +8006,18 @@ __metadata: languageName: node linkType: hard +"shiki@npm:^0.14.1, shiki@npm:^0.14.5": + version: 0.14.5 + resolution: "shiki@npm:0.14.5" + dependencies: + ansi-sequence-parser: ^1.1.0 + jsonc-parser: ^3.2.0 + vscode-oniguruma: ^1.7.0 + vscode-textmate: ^8.0.0 + checksum: 41d847817cfc9bb6d8bf190316896698d250303656546446659cc02caed8dcc171b10cd113bb5da82425b51d0032e87aafcdc36c3dd61dadc123170b438da736 + languageName: node + linkType: hard + "side-channel@npm:^1.0.4": version: 1.0.4 resolution: "side-channel@npm:1.0.4" @@ -5509,7 +8036,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.7": +"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 @@ -5523,7 +8050,7 @@ __metadata: languageName: node linkType: hard -"slash@npm:^3.0.0": +"slash@npm:3.0.0, slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c @@ -5537,13 +8064,12 @@ __metadata: languageName: node linkType: hard -"smoldot@npm:1.0.4": - version: 1.0.4 - resolution: "smoldot@npm:1.0.4" +"smoldot@npm:2.0.1": + version: 2.0.1 + resolution: "smoldot@npm:2.0.1" dependencies: - pako: ^2.0.4 ws: ^8.8.1 - checksum: 81ecc38b98f7ac4dd093753e85956262608dca3c8a288c20a25fe1762a6afcdbe6f3622ea30a346df3f4145e0900ef0595e56e96e9e0de83c59f0649d1ab4786 + checksum: 77c1f541d039fe740157e9b81e2b13fc72dabe3ffd75644ee9958aee48d5c5458b6cc974d1e9233b1bcf3fde7af42a53a0e48452b6657405c64158a0c8168eee languageName: node linkType: hard @@ -5558,18 +8084,18 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^7.0.0": - version: 7.0.0 - resolution: "socks-proxy-agent@npm:7.0.0" +"socks-proxy-agent@npm:^8.0.1": + version: 8.0.2 + resolution: "socks-proxy-agent@npm:8.0.2" dependencies: - agent-base: ^6.0.2 - debug: ^4.3.3 - socks: ^2.6.2 - checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + agent-base: ^7.0.2 + debug: ^4.3.4 + socks: ^2.7.1 + checksum: 4fb165df08f1f380881dcd887b3cdfdc1aba3797c76c1e9f51d29048be6e494c5b06d68e7aea2e23df4572428f27a3ec22b3d7c75c570c5346507433899a4b6d languageName: node linkType: hard -"socks@npm:^2.6.2": +"socks@npm:^2.6.2, socks@npm:^2.7.1": version: 2.7.1 resolution: "socks@npm:2.7.1" dependencies: @@ -5579,12 +8105,30 @@ __metadata: languageName: node linkType: hard -"sonic-boom@npm:^3.0.0, sonic-boom@npm:^3.1.0": - version: 3.3.0 - resolution: "sonic-boom@npm:3.3.0" +"sonic-boom@npm:^3.0.0, sonic-boom@npm:^3.7.0": + version: 3.7.0 + resolution: "sonic-boom@npm:3.7.0" dependencies: atomic-sleep: ^1.0.0 - checksum: 4a290dd0f3edf49894bb72c631ee304dc3f9be0752c43d516808a365f341821f5cf49997c80ee7c0e67167e0e5131dc71afe7c58812858eb965d6b9746c0cac7 + checksum: 528f0f7f7e09dcdb02ad5985039f66554266cbd8813f9920781607c9248e01f468598c1334eab2cc740c016a63c8b2a20e15c3f618cddb08ea1cfb4a390a796e + languageName: node + linkType: hard + +"sort-keys-length@npm:^1.0.0": + version: 1.0.1 + resolution: "sort-keys-length@npm:1.0.1" + dependencies: + sort-keys: ^1.0.0 + checksum: f9acac5fb31580a9e3d43b419dc86a1b75e85b79036a084d95dd4d1062b621c9589906588ac31e370a0dd381be46d8dbe900efa306d087ca9c912d7a59b5a590 + languageName: node + linkType: hard + +"sort-keys@npm:^1.0.0": + version: 1.1.2 + resolution: "sort-keys@npm:1.1.2" + dependencies: + is-plain-obj: ^1.0.0 + checksum: 5963fd191a2a185a5ec86f06e47721e8e04713eda43bb04ae60d2a8afb21241553dd5bc9d863ed2bd7c3d541b609b0c8d0e58836b1a3eb6764c09c094bcc8b00 languageName: node linkType: hard @@ -5595,23 +8139,27 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.12": - version: 0.5.21 - resolution: "source-map-support@npm:0.5.21" - dependencies: - buffer-from: ^1.0.0 - source-map: ^0.6.0 - checksum: 43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137 +"source-map@npm:^0.5.7": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d languageName: node linkType: hard -"source-map@npm:^0.6.0": +"source-map@npm:^0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 languageName: node linkType: hard +"source-map@npm:^0.7.3": + version: 0.7.4 + resolution: "source-map@npm:0.7.4" + checksum: 01cc5a74b1f0e1d626a58d36ad6898ea820567e87f18dfc9d24a9843a351aaa2ec09b87422589906d6ff1deed29693e176194dc88bcae7c9a852dc74b311dbf5 + languageName: node + linkType: hard + "split2@npm:^4.0.0": version: 4.2.0 resolution: "split2@npm:4.2.0" @@ -5620,16 +8168,9 @@ __metadata: linkType: hard "sprintf-js@npm:^1.1.2": - version: 1.1.2 - resolution: "sprintf-js@npm:1.1.2" - checksum: d4bb46464632b335e5faed381bd331157e0af64915a98ede833452663bc672823db49d7531c32d58798e85236581fb7342fd0270531ffc8f914e186187bf1c90 - languageName: node - linkType: hard - -"sql.js@npm:^1.8.0": - version: 1.8.0 - resolution: "sql.js@npm:1.8.0" - checksum: 4c16846815664ef95c4dc2ffbbef4cba5236ead0798c9f1fac11f66c194a0ac51862fe26980be55cef8738b12ebe9d12efe71262953773cdcb41fbef034b2320 + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: a3fdac7b49643875b70864a9d9b469d87a40dfeaf5d34d9d0c5b1cda5fd7d065531fcb43c76357d62254c57184a7b151954156563a4d6a747015cfb41021cad0 languageName: node linkType: hard @@ -5679,9 +8220,9 @@ __metadata: linkType: hard "std-env@npm:^3.3.3": - version: 3.4.3 - resolution: "std-env@npm:3.4.3" - checksum: bef186fb2baddda31911234b1e58fa18f181eb6930616aaec3b54f6d5db65f2da5daaa5f3b326b98445a7d50ca81d6fe8809ab4ebab85ecbe4a802f1b40921bf + version: 3.5.0 + resolution: "std-env@npm:3.5.0" + checksum: 8eba87eab2d6933e0575f13a65a359952a2e3e8c4d24eb55beac5500fe0403b3482c7b59a5de8d035ae13d390c76dd6c677772f9d2a89ea7cf39ae267b71bdd3 languageName: node linkType: hard @@ -5717,36 +8258,36 @@ __metadata: languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.7": - version: 1.2.7 - resolution: "string.prototype.trim@npm:1.2.7" +"string.prototype.trim@npm:^1.2.8": + version: 1.2.8 + resolution: "string.prototype.trim@npm:1.2.8" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07 languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.trimend@npm:1.0.6" +"string.prototype.trimend@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimend@npm:1.0.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 2375516272fd1ba75992f4c4aa88a7b5f3c7a9ca308d963bcd5645adf689eba6f8a04ebab80c33e30ec0aefc6554181a3a8416015c38da0aa118e60ec896310c languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.trimstart@npm:1.0.6" +"string.prototype.trimstart@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimstart@npm:1.0.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 13d0c2cb0d5ff9e926fa0bec559158b062eed2b68cd5be777ffba782c96b2b492944e47057274e064549b94dd27cf81f48b27a31fee8af5b574cff253e7eb613 languageName: node linkType: hard @@ -5784,10 +8325,17 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^2.0.0": - version: 2.0.1 - resolution: "strip-json-comments@npm:2.0.1" - checksum: 1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1 +"strip-eof@npm:^1.0.0": + version: 1.0.0 + resolution: "strip-eof@npm:1.0.0" + checksum: 40bc8ddd7e072f8ba0c2d6d05267b4e0a4800898c3435b5fb5f5a21e6e47dfaff18467e7aa0d1844bb5d6274c3097246595841fbfeb317e541974ee992cac506 + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 languageName: node linkType: hard @@ -5807,6 +8355,39 @@ __metadata: languageName: node linkType: hard +"strip-outer@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-outer@npm:2.0.0" + checksum: 14ef9fe861e59a5f1555f1860982ae4edce2edb4ed34ab1b37cb62a8ba2f7c3540cbca6c884eabe4006e6cd729ab5d708a631169dd5b66fda570836e7e3b6589 + languageName: node + linkType: hard + +"strtok3@npm:^7.0.0-alpha.9": + version: 7.0.0 + resolution: "strtok3@npm:7.0.0" + dependencies: + "@tokenizer/token": ^0.3.0 + peek-readable: ^5.0.0 + checksum: 2ebe7ad8f2aea611dec6742cf6a42e82764892a362907f7ce493faf334501bf981ce21c828dcc300457e6d460dc9c34d644ededb3b01dcb9e37559203cf1748c + languageName: node + linkType: hard + +"stylis@npm:4.2.0": + version: 4.2.0 + resolution: "stylis@npm:4.2.0" + checksum: 0eb6cc1b866dc17a6037d0a82ac7fa877eba6a757443e79e7c4f35bacedbf6421fadcab4363b39667b43355cbaaa570a3cde850f776498e5450f32ed2f9b7584 + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: ^3.0.0 + checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac + languageName: node + linkType: hard + "supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -5823,6 +8404,13 @@ __metadata: languageName: node linkType: hard +"tabbable@npm:^6.2.0": + version: 6.2.0 + resolution: "tabbable@npm:6.2.0" + checksum: f8440277d223949272c74bb627a3371be21735ca9ad34c2570f7e1752bd646ccfc23a9d8b1ee65d6561243f4134f5fbbf1ad6b39ac3c4b586554accaff4a1300 + languageName: node + linkType: hard + "tapable@npm:^2.2.0": version: 2.2.1 resolution: "tapable@npm:2.2.1" @@ -5831,8 +8419,8 @@ __metadata: linkType: hard "tar@npm:^6.0.2, tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.1.15 - resolution: "tar@npm:6.1.15" + version: 6.2.0 + resolution: "tar@npm:6.2.0" dependencies: chownr: ^2.0.0 fs-minipass: ^2.0.0 @@ -5840,7 +8428,7 @@ __metadata: minizlib: ^2.1.1 mkdirp: ^1.0.3 yallist: ^4.0.0 - checksum: f23832fceeba7578bf31907aac744ae21e74a66f4a17a9e94507acf460e48f6db598c7023882db33bab75b80e027c21f276d405e4a0322d58f51c7088d428268 + checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c languageName: node linkType: hard @@ -5870,18 +8458,18 @@ __metadata: linkType: hard "thread-stream@npm:^2.0.0": - version: 2.4.0 - resolution: "thread-stream@npm:2.4.0" + version: 2.4.1 + resolution: "thread-stream@npm:2.4.1" dependencies: real-require: ^0.2.0 - checksum: 09b2daba1902ad5a8bca9adc97ae143ea7377292d4998b129ed625eb2d00be79d9fd77e1dc9480f7ae5f7b214b16dff849b7cd88090ff9fba8a3977574555a79 + checksum: 8b28e11eab2f805f963e6b6b23afab5523079575c4fc79c16eb29aa1c13d7931289762ebbc1268b3373d3f35ce795bd291df8e2d51eb45779ecaaecd06873459 languageName: node linkType: hard "tinybench@npm:^2.5.0": - version: 2.5.0 - resolution: "tinybench@npm:2.5.0" - checksum: 284bb9428f197ec8b869c543181315e65e41ccfdad3c4b6c916bb1fdae1b5c6785661b0d90cf135b48d833b03cb84dc5357b2d33ec65a1f5971fae0ab2023821 + version: 2.5.1 + resolution: "tinybench@npm:2.5.1" + checksum: 6d98526c00b68b50ab0a37590b3cc6713b96fee7dd6756a2a77bab071ed1b4a4fc54e7b11e28b35ec2f761c6a806c2befa95f10acf2fee111c49327b6fc3386f languageName: node linkType: hard @@ -5893,9 +8481,16 @@ __metadata: linkType: hard "tinyspy@npm:^2.1.1": - version: 2.1.1 - resolution: "tinyspy@npm:2.1.1" - checksum: cfe669803a7f11ca912742b84c18dcc4ceecaa7661c69bc5eb608a8a802d541c48aba220df8929f6c8cd09892ad37cb5ba5958ddbbb57940e91d04681d3cee73 + version: 2.2.0 + resolution: "tinyspy@npm:2.2.0" + checksum: 36431acaa648054406147a92b9bde494b7548d0f9f3ffbcc02113c25a6e59f3310cbe924353d7f4c51436299150bec2dbb3dc595748f58c4ddffea22d5baaadb + languageName: node + linkType: hard + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 languageName: node linkType: hard @@ -5908,6 +8503,16 @@ __metadata: languageName: node linkType: hard +"token-types@npm:^5.0.0-alpha.2": + version: 5.0.1 + resolution: "token-types@npm:5.0.1" + dependencies: + "@tokenizer/token": ^0.3.0 + ieee754: ^1.2.1 + checksum: 32780123bc6ce8b6a2231d860445c994a02a720abf38df5583ea957aa6626873cd1c4dd8af62314da4cf16ede00c379a765707a3b06f04b8808c38efdae1c785 + languageName: node + linkType: hard + "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -5915,52 +8520,25 @@ __metadata: languageName: node linkType: hard -"tree-kill@npm:^1.2.2": - version: 1.2.2 - resolution: "tree-kill@npm:1.2.2" - bin: - tree-kill: cli.js - checksum: 49117f5f410d19c84b0464d29afb9642c863bc5ba40fcb9a245d474c6d5cc64d1b177a6e6713129eb346b40aebb9d4631d967517f9fbe8251c35b21b13cd96c7 +"trim-repeated@npm:^2.0.0": + version: 2.0.0 + resolution: "trim-repeated@npm:2.0.0" + dependencies: + escape-string-regexp: ^5.0.0 + checksum: 4086eb0bc560f3da0370f427f423db4e3fc0a8e1560ecffc3b68512071319fe82dc9dd86d76b981d36ada76d7d49c3f8897ac054c87bc177e7a25abfd29e2bcd languageName: node linkType: hard "ts-api-utils@npm:^1.0.1": - version: 1.0.2 - resolution: "ts-api-utils@npm:1.0.2" + version: 1.0.3 + resolution: "ts-api-utils@npm:1.0.3" peerDependencies: typescript: ">=4.2.0" - checksum: 6375e12ba90b6cbe73f564405248da14c52aa44b62b386e1cbbb1da2640265dd33e99d3e019688dffa874e365cf596b161ccd49351e90638be825c2639697640 + checksum: 441cc4489d65fd515ae6b0f4eb8690057add6f3b6a63a36073753547fb6ce0c9ea0e0530220a0b282b0eec535f52c4dfc315d35f8a4c9a91c0def0707a714ca6 languageName: node linkType: hard -"ts-node-dev@npm:^2.0.0": - version: 2.0.0 - resolution: "ts-node-dev@npm:2.0.0" - dependencies: - chokidar: ^3.5.1 - dynamic-dedupe: ^0.3.0 - minimist: ^1.2.6 - mkdirp: ^1.0.4 - resolve: ^1.0.0 - rimraf: ^2.6.1 - source-map-support: ^0.5.12 - tree-kill: ^1.2.2 - ts-node: ^10.4.0 - tsconfig: ^7.0.0 - peerDependencies: - node-notifier: "*" - typescript: "*" - peerDependenciesMeta: - node-notifier: - optional: true - bin: - ts-node-dev: lib/bin.js - tsnd: lib/bin.js - checksum: d654b401de3d13c167981481be2a375229f6bfd2aeedf43bc0b6816e57676fcbfba3afdcf209c7a06fb6bd8768ca548c2eb0a0c9d38fa42246be3f50df1b28fb - languageName: node - linkType: hard - -"ts-node@npm:^10.4.0, ts-node@npm:^10.9.1": +"ts-node@npm:^10.9.1": version: 10.9.1 resolution: "ts-node@npm:10.9.1" dependencies: @@ -6024,19 +8602,7 @@ __metadata: languageName: node linkType: hard -"tsconfig@npm:^7.0.0": - version: 7.0.0 - resolution: "tsconfig@npm:7.0.0" - dependencies: - "@types/strip-bom": ^3.0.0 - "@types/strip-json-comments": 0.0.30 - strip-bom: ^3.0.0 - strip-json-comments: ^2.0.0 - checksum: 8bce05e93c673defd56d93d83d4055e49651d3947c076339c4bc15d47b7eb5029bed194087e568764213a2e4bf45c477ba9f4da16adfd92cd901af7c09e4517e - languageName: node - linkType: hard - -"tslib@npm:^2.1.0, tslib@npm:^2.5.0, tslib@npm:^2.5.3, tslib@npm:^2.6.1, tslib@npm:^2.6.2": +"tslib@npm:^2.1.0, tslib@npm:^2.5.0, tslib@npm:^2.6.2": version: 2.6.2 resolution: "tslib@npm:2.6.2" checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad @@ -6052,7 +8618,7 @@ __metadata: languageName: node linkType: hard -"type-detect@npm:^4.0.0, type-detect@npm:^4.0.5": +"type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": version: 4.0.8 resolution: "type-detect@npm:4.0.8" checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 @@ -6120,6 +8686,33 @@ __metadata: languageName: node linkType: hard +"typedoc-plugin-markdown@npm:^3.17.1": + version: 3.17.1 + resolution: "typedoc-plugin-markdown@npm:3.17.1" + dependencies: + handlebars: ^4.7.7 + peerDependencies: + typedoc: ">=0.24.0" + checksum: f12494bfc98ef532be63fb5e7630ff0aa2de17bb22b1d0b6260c416fe8b62cb537ddd3576cadc90c57c4aae2371722994ed873dc3220b23660e149a3eb676c04 + languageName: node + linkType: hard + +"typedoc@npm:^0.25.3": + version: 0.25.3 + resolution: "typedoc@npm:0.25.3" + dependencies: + lunr: ^2.3.9 + marked: ^4.3.0 + minimatch: ^9.0.3 + shiki: ^0.14.1 + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x + bin: + typedoc: bin/typedoc + checksum: 060a8f798b32a0e70aa3b16e04d95b56fcfabf54f75fdff74fd9ddeed8860db3ba030d153f8b535b409a9d8825856252bc59f401619e5e3e2f71d3b9e0de606a + languageName: node + linkType: hard + "typeorm@npm:^0.3.17": version: 0.3.17 resolution: "typeorm@npm:0.3.17" @@ -6200,30 +8793,39 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.1.6": - version: 5.1.6 - resolution: "typescript@npm:5.1.6" +"typescript@npm:^5.2.2": + version: 5.2.2 + resolution: "typescript@npm:5.2.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: b2f2c35096035fe1f5facd1e38922ccb8558996331405eb00a5111cc948b2e733163cc22fab5db46992aba7dd520fff637f2c1df4996ff0e134e77d3249a7350 + checksum: 7912821dac4d962d315c36800fe387cdc0a6298dba7ec171b350b4a6e988b51d7b8f051317786db1094bd7431d526b648aba7da8236607febb26cf5b871d2d3c languageName: node linkType: hard -"typescript@patch:typescript@^5.1.6#~builtin": - version: 5.1.6 - resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=bda367" +"typescript@patch:typescript@^5.2.2#~builtin": + version: 5.2.2 + resolution: "typescript@patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=85af82" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 21e88b0a0c0226f9cb9fd25b9626fb05b4c0f3fddac521844a13e1f30beb8f14e90bd409a9ac43c812c5946d714d6e0dee12d5d02dfc1c562c5aacfa1f49b606 + checksum: 07106822b4305de3f22835cbba949a2b35451cad50888759b6818421290ff95d522b38ef7919e70fb381c5fe9c1c643d7dea22c8b31652a717ddbd57b7f4d554 languageName: node linkType: hard -"ufo@npm:^1.1.2": - version: 1.2.0 - resolution: "ufo@npm:1.2.0" - checksum: eaac059b5fd64a6f80557093a49bb6bfd5d97aca433e641d5022db9cbd4be3e6a4011d2ffe1254cdb2fc8ab5cbe9942b0af834ee7ac7c63240ab542f5981f68e +"ufo@npm:^1.3.0": + version: 1.3.2 + resolution: "ufo@npm:1.3.2" + checksum: f1180bb715ff4dd46152fd4dec41c731e84d7b9eaf1432548a0210b2f7e0cd29de125ac88e582c6a079d8ae5bc9ab04ef2bdbafe125086480b10c1006b81bfce + languageName: node + linkType: hard + +"uglify-js@npm:^3.1.4": + version: 3.17.4 + resolution: "uglify-js@npm:3.17.4" + bin: + uglifyjs: bin/uglifyjs + checksum: 7b3897df38b6fc7d7d9f4dcd658599d81aa2b1fb0d074829dd4e5290f7318dbca1f4af2f45acb833b95b1fe0ed4698662ab61b87e94328eb4c0a0d3435baf924 languageName: node linkType: hard @@ -6239,6 +8841,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487 + languageName: node + linkType: hard + "unique-filename@npm:^1.1.1": version: 1.1.1 resolution: "unique-filename@npm:1.1.1" @@ -6275,39 +8884,42 @@ __metadata: languageName: node linkType: hard -"unplugin-swc@npm:^1.3.2": - version: 1.3.2 - resolution: "unplugin-swc@npm:1.3.2" +"unplugin-swc@npm:^1.4.3": + version: 1.4.3 + resolution: "unplugin-swc@npm:1.4.3" dependencies: - unplugin: ^0.6.0 + "@rollup/pluginutils": ^5.0.5 + load-tsconfig: ^0.2.5 + unplugin: ^1.5.0 peerDependencies: "@swc/core": ^1.2.108 - checksum: 3aea46ef5980603ec8842597c4d75254d8c09729ece3f221ab2b51f589bbbe4c53cd54d617baadc2786a68c4ddcf27bf53a4cd91226ff775d5b5736c2091d6c4 + checksum: 93d2bb91fbe2ce16f65063885b477dd8ed534381bda5d8e1fd249dc6c32b301c95a6a6a0074e8f102a80e1d2d76cf005718a67d70bf5e4d93c2a190428076cd8 languageName: node linkType: hard -"unplugin@npm:^0.6.0": - version: 0.6.3 - resolution: "unplugin@npm:0.6.3" +"unplugin@npm:^1.5.0": + version: 1.5.1 + resolution: "unplugin@npm:1.5.1" dependencies: + acorn: ^8.11.2 chokidar: ^3.5.3 webpack-sources: ^3.2.3 - webpack-virtual-modules: ^0.4.3 + webpack-virtual-modules: ^0.6.0 + checksum: c93cb8526026986ac34d79d7ee8a7c4f8371272bccc5f7a3f64158eb9fa2e296eb65345bd97f60be8f075188fcb681843b1c039eb2002f9a4b400f74e2bbae19 + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.0.13": + version: 1.0.13 + resolution: "update-browserslist-db@npm:1.0.13" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 peerDependencies: - esbuild: ">=0.13" - rollup: ^2.50.0 - vite: ^2.3.0 - webpack: 4 || 5 - peerDependenciesMeta: - esbuild: - optional: true - rollup: - optional: true - vite: - optional: true - webpack: - optional: true - checksum: 14e1f9c941e87e97fdda3efc745183e027de7d8b88eed8be5fa0708c2ec5dd114cc10e569c4b9dd2dafc89ba84d8bf90935d01e02cef510b7faedaa8af2b081f + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 languageName: node linkType: hard @@ -6328,11 +8940,11 @@ __metadata: linkType: hard "uuid@npm:^9.0.0": - version: 9.0.0 - resolution: "uuid@npm:9.0.0" + version: 9.0.1 + resolution: "uuid@npm:9.0.1" bin: uuid: dist/bin/uuid - checksum: 8dd2c83c43ddc7e1c71e36b60aea40030a6505139af6bee0f382ebcd1a56f6cd3028f7f06ffb07f8cf6ced320b76aea275284b224b002b289f89fe89c389b028 + checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 languageName: node linkType: hard @@ -6343,25 +8955,25 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:0.34.2": - version: 0.34.2 - resolution: "vite-node@npm:0.34.2" +"vite-node@npm:0.34.6": + version: 0.34.6 + resolution: "vite-node@npm:0.34.6" dependencies: cac: ^6.7.14 debug: ^4.3.4 mlly: ^1.4.0 pathe: ^1.1.1 picocolors: ^1.0.0 - vite: ^3.0.0 || ^4.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0-0 bin: vite-node: vite-node.mjs - checksum: 7861ab0b55ca01a417f2afbe9d55cf39e9cb25183a7508aeec9c4f19ae2b112d823d1fccaf66012479a805f75889c1bfdfe28b5410768a671437096bc0a8fd3e + checksum: 46eba82bf8b69c7dfeed901502533b172cc6303212f0f49f82c2f64758fa4b60acd1b1e37cb96aff944e36b510b0d1beedb50d9cb25ef39e0159b2b9d1136b1f languageName: node linkType: hard -"vite-tsconfig-paths@npm:^4.2.0": - version: 4.2.0 - resolution: "vite-tsconfig-paths@npm:4.2.0" +"vite-tsconfig-paths@npm:^4.2.1": + version: 4.2.1 + resolution: "vite-tsconfig-paths@npm:4.2.1" dependencies: debug: ^4.1.1 globrex: ^0.1.2 @@ -6371,20 +8983,20 @@ __metadata: peerDependenciesMeta: vite: optional: true - checksum: 73a8467de72d7ac502328454fd00c19571cd4bad2dd5982643b24718bb95e449a3f4153cfc2d58a358bfc8f37e592fb442fc10884b59ae82138c1329160cd952 + checksum: 8cfbd314eb82a9db97e193aef826e72a112ca8b98e68ef0f9cd8f8538fd5163afe67652507bae41d4aab967ab9a8b24dcf95bd0a8900d388cd6c500c5a82d3b1 languageName: node linkType: hard -"vite@npm:^3.0.0 || ^4.0.0": - version: 4.4.9 - resolution: "vite@npm:4.4.9" +"vite@npm:^3.0.0 || ^4.0.0 || ^5.0.0-0, vite@npm:^3.1.0 || ^4.0.0 || ^5.0.0-0, vite@npm:^5.0.0": + version: 5.0.0 + resolution: "vite@npm:5.0.0" dependencies: - esbuild: ^0.18.10 - fsevents: ~2.3.2 - postcss: ^8.4.27 - rollup: ^3.27.1 + esbuild: ^0.19.3 + fsevents: ~2.3.3 + postcss: ^8.4.31 + rollup: ^4.2.0 peerDependencies: - "@types/node": ">= 14" + "@types/node": ^18.0.0 || >=20.0.0 less: "*" lightningcss: ^1.21.0 sass: "*" @@ -6411,26 +9023,57 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: c511024ceae39c68c7dbf2ac4381ee655cd7bb62cf43867a14798bc835d3320b8fa7867a336143c30825c191c1fb4e9aa3348fce831ab617e96203080d3d2908 + checksum: 1f953b062593b072f0e718384e1ff3307b548235ff8c4016fcaa85c09568eb0ba8cd8cfd80e99d940d3bea296b4661b1d0384fe5cb9a996d3e935feb69259755 + languageName: node + linkType: hard + +"vitepress@npm:^1.0.0-rc.23": + version: 1.0.0-rc.27 + resolution: "vitepress@npm:1.0.0-rc.27" + dependencies: + "@docsearch/css": ^3.5.2 + "@docsearch/js": ^3.5.2 + "@types/markdown-it": ^13.0.6 + "@vitejs/plugin-vue": ^4.5.0 + "@vue/devtools-api": ^6.5.1 + "@vueuse/core": ^10.6.1 + "@vueuse/integrations": ^10.6.1 + focus-trap: ^7.5.4 + mark.js: 8.11.1 + minisearch: ^6.2.0 + shiki: ^0.14.5 + vite: ^5.0.0 + vue: ^3.3.8 + peerDependencies: + markdown-it-mathjax3: ^4.3.2 + postcss: ^8.4.31 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true + bin: + vitepress: bin/vitepress.js + checksum: 5c9f874b52d7d4cb09f1668ddf02ea3d83dd0edeeff4da261e96b91a202694ddb1a9422249c8633df2396a8d51845722b2320a9ed228f17036f8212f833c5096 languageName: node linkType: hard -"vitest@npm:^0.34.2": - version: 0.34.2 - resolution: "vitest@npm:0.34.2" +"vitest@npm:^0.34.6": + version: 0.34.6 + resolution: "vitest@npm:0.34.6" dependencies: "@types/chai": ^4.3.5 "@types/chai-subset": ^1.3.3 "@types/node": "*" - "@vitest/expect": 0.34.2 - "@vitest/runner": 0.34.2 - "@vitest/snapshot": 0.34.2 - "@vitest/spy": 0.34.2 - "@vitest/utils": 0.34.2 + "@vitest/expect": 0.34.6 + "@vitest/runner": 0.34.6 + "@vitest/snapshot": 0.34.6 + "@vitest/spy": 0.34.6 + "@vitest/utils": 0.34.6 acorn: ^8.9.0 acorn-walk: ^8.2.0 cac: ^6.7.14 - chai: ^4.3.7 + chai: ^4.3.10 debug: ^4.3.4 local-pkg: ^0.4.3 magic-string: ^0.30.1 @@ -6440,8 +9083,8 @@ __metadata: strip-literal: ^1.0.1 tinybench: ^2.5.0 tinypool: ^0.7.0 - vite: ^3.0.0 || ^4.0.0 - vite-node: 0.34.2 + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + vite-node: 0.34.6 why-is-node-running: ^2.2.2 peerDependencies: "@edge-runtime/vm": "*" @@ -6471,7 +9114,55 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 4dd77871583823ea389ec253a63b568e9225ae6bdac7a27a26611c52d82fdee1ca286570e0178bb879353dc0cbc545d6be997a503f7abe6d95dd29ed2fd6b61f + checksum: 45f5c1987fa8c76dbaf5db379bbdb4f6e3713c484e850149af38247b627e70016c1863286fd7fcfab08a1d98430f66ba1f45af6f14f5c467ded4b1ea6f26afa3 + languageName: node + linkType: hard + +"vscode-oniguruma@npm:^1.7.0": + version: 1.7.0 + resolution: "vscode-oniguruma@npm:1.7.0" + checksum: 53519d91d90593e6fb080260892e87d447e9b200c4964d766772b5053f5699066539d92100f77f1302c91e8fc5d9c772fbe40fe4c90f3d411a96d5a9b1e63f42 + languageName: node + linkType: hard + +"vscode-textmate@npm:^8.0.0": + version: 8.0.0 + resolution: "vscode-textmate@npm:8.0.0" + checksum: 127780dfea89559d70b8326df6ec344cfd701312dd7f3f591a718693812b7852c30b6715e3cfc8b3200a4e2515b4c96f0843c0eacc0a3020969b5de262c2a4bb + languageName: node + linkType: hard + +"vue-demi@npm:>=0.14.6": + version: 0.14.6 + resolution: "vue-demi@npm:0.14.6" + peerDependencies: + "@vue/composition-api": ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + "@vue/composition-api": + optional: true + bin: + vue-demi-fix: bin/vue-demi-fix.js + vue-demi-switch: bin/vue-demi-switch.js + checksum: 424b1f340d5111fc4d4a0f8042c14ae836ba983bc968773a6d955d6846202d7e6f951993ac1525be8732b0cfe0c81d94ab88f427c97bfa86ead08db06491279b + languageName: node + linkType: hard + +"vue@npm:^3.3.8": + version: 3.3.8 + resolution: "vue@npm:3.3.8" + dependencies: + "@vue/compiler-dom": 3.3.8 + "@vue/compiler-sfc": 3.3.8 + "@vue/runtime-dom": 3.3.8 + "@vue/server-renderer": 3.3.8 + "@vue/shared": 3.3.8 + peerDependencies: + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: 560c18aa37f3f2351de8245f7844611409e7b7cbaabaae0993bdacd6090bb5ca81d89366e324babfdc7063f2312de5b62b56fe8b4dadc586baef8e0968eb6e14 languageName: node linkType: hard @@ -6507,10 +9198,10 @@ __metadata: languageName: node linkType: hard -"webpack-virtual-modules@npm:^0.4.3": - version: 0.4.6 - resolution: "webpack-virtual-modules@npm:0.4.6" - checksum: cb056ba8c50b35436ae43149554b051b80065b0cf79f2d528ca692ddf344a422ac71c415adb9da83dc3acc6e7e58f518388cc1cd11cb4fa29dc04f2c4494afe3 +"webpack-virtual-modules@npm:^0.6.0": + version: 0.6.0 + resolution: "webpack-virtual-modules@npm:0.6.0" + checksum: 960cefac04bf90a50a04947c4420b5b46719e23eec08245d6c35e8ecb1558288c889481c610ffdd66d887e269f0d5d9d3dccfde155e7cd19b537701ece0fcf6a languageName: node linkType: hard @@ -6537,16 +9228,27 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.10, which-typed-array@npm:^1.1.11": - version: 1.1.11 - resolution: "which-typed-array@npm:1.1.11" +"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.13": + version: 1.1.13 + resolution: "which-typed-array@npm:1.1.13" dependencies: available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 + call-bind: ^1.0.4 for-each: ^0.3.3 gopd: ^1.0.1 has-tostringtag: ^1.0.0 - checksum: 711ffc8ef891ca6597b19539075ec3e08bb9b4c2ca1f78887e3c07a977ab91ac1421940505a197758fb5939aa9524976d0a5bbcac34d07ed6faa75cedbb17206 + checksum: 3828a0d5d72c800e369d447e54c7620742a4cc0c9baf1b5e8c17e9b6ff90d8d861a3a6dd4800f1953dbf80e5e5cec954a289e5b4a223e3bee4aeb1f8c5f33309 + languageName: node + linkType: hard + +"which@npm:^1.2.9": + version: 1.3.1 + resolution: "which@npm:1.3.1" + dependencies: + isexe: ^2.0.0 + bin: + which: ./bin/which + checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 languageName: node linkType: hard @@ -6561,6 +9263,17 @@ __metadata: languageName: node linkType: hard +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: ^3.1.1 + bin: + node-which: bin/which.js + checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 + languageName: node + linkType: hard + "why-is-node-running@npm:^2.2.2": version: 2.2.2 resolution: "why-is-node-running@npm:2.2.2" @@ -6582,6 +9295,13 @@ __metadata: languageName: node linkType: hard +"wordwrap@npm:^1.0.0": + version: 1.0.0 + resolution: "wordwrap@npm:1.0.0" + checksum: 2a44b2788165d0a3de71fd517d4880a8e20ea3a82c080ce46e294f0b68b69a2e49cff5f99c600e275c698a90d12c5ea32aff06c311f0db2eb3f1201f3e7b2a04 + languageName: node + linkType: hard + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -6611,9 +9331,9 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.13.0, ws@npm:^8.8.1": - version: 8.13.0 - resolution: "ws@npm:8.13.0" +"ws@npm:^8.14.1, ws@npm:^8.14.2, ws@npm:^8.8.1": + version: 8.14.2 + resolution: "ws@npm:8.14.2" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -6622,14 +9342,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c - languageName: node - linkType: hard - -"xtend@npm:^4.0.0": - version: 4.0.2 - resolution: "xtend@npm:4.0.2" - checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a + checksum: 3ca0dad26e8cc6515ff392b622a1467430814c463b3368b0258e33696b1d4bed7510bc7030f7b72838b9fdeb8dbd8839cbf808367d6aae2e1d668ce741d4308b languageName: node linkType: hard @@ -6640,6 +9353,20 @@ __metadata: languageName: node linkType: hard +"yallist@npm:^2.1.2": + version: 2.1.2 + resolution: "yallist@npm:2.1.2" + checksum: 9ba99409209f485b6fcb970330908a6d41fa1c933f75e08250316cce19383179a6b70a7e0721b89672ebb6199cc377bf3e432f55100da6a7d6e11902b0a642cb + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d + languageName: node + linkType: hard + "yallist@npm:^4.0.0": version: 4.0.0 resolution: "yallist@npm:4.0.0" @@ -6647,6 +9374,13 @@ __metadata: languageName: node linkType: hard +"yaml@npm:^1.10.0": + version: 1.10.2 + resolution: "yaml@npm:1.10.2" + checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f + languageName: node + linkType: hard + "yargs-parser@npm:^20.2.2": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" @@ -6712,9 +9446,9 @@ __metadata: languageName: node linkType: hard -"zod@npm:^3.22.2": - version: 3.22.2 - resolution: "zod@npm:3.22.2" - checksum: 231e2180c8eabb56e88680d80baff5cf6cbe6d64df3c44c50ebe52f73081ecd0229b1c7215b9552537f537a36d9e36afac2737ddd86dc14e3519bdbc777e82b9 +"zod@npm:^3.22.4": + version: 3.22.4 + resolution: "zod@npm:3.22.4" + checksum: 80bfd7f8039b24fddeb0718a2ec7c02aa9856e4838d6aa4864335a047b6b37a3273b191ef335bf0b2002e5c514ef261ffcda5a589fb084a48c336ffc4cdbab7f languageName: node linkType: hard